import { ClassValue, StyledComponentProps } from "../../types/shared.js"; import { CollapsibleSlots } from "./collapsible-variants.js"; import { CollapsibleContentProps, CollapsibleProps } from "@radix-ui/react-collapsible"; //#region src/components/collapsible/types.d.ts /** * Props for the collapsible root component. * Provides state management and interaction handling for the collapsible element. */ type CollapsibleRootProps = StyledComponentProps>; /** * Props for the collapsible content component. * The expandable/collapsible content area that shows or hides based on state. */ type CollapsibleContentProps$1 = StyledComponentProps; /** * Class names for different slots in the collapsible component. * Allows customizing styles for specific parts of the collapsible. */ type CollapsibleClassNames = Partial>; /** * Props for the main Collapsible component. * Controls the visibility of content with animation support. * * @example * ```tsx * Hidden content that toggles} * forceMountContent * defaultOpen={true} * /> * ``` */ interface CollapsibleProps$1 extends CollapsibleRootProps { /** * Custom class names for different collapsible UI slots. * Allows styling the root and content areas independently. */ classNames?: CollapsibleClassNames; /** * The content to display when the collapsible is expanded. * Can be text, HTML elements, or any React node. */ content?: React.ReactNode; /** * Forces the content to always be mounted in the DOM. * Enables animation control and prevents layout shifts. */ forceMountContent?: true; } //#endregion export { CollapsibleClassNames, CollapsibleContentProps$1 as CollapsibleContentProps, CollapsibleProps$1 as CollapsibleProps, CollapsibleRootProps };