import { type JSX } from "react"; import { type DrawerProps } from "../../drawer"; import * as styles from "./sidebar.css"; /** * Properties for the {@link SidebarLayout} component. */ type SidebarLayoutProps = JSX.IntrinsicElements["div"] & { /** * The layout variant determining sidebar position. * @defaultValue "inlineStart" */ variant?: keyof typeof styles.layoutVariants; /** * Whether the sidebar is expanded (`true`) or collapsed (`false`). */ open: boolean; /** * Callback triggered when the sidebar should close (e.g., clicking drawer backdrop). */ onClose?: () => void; /** * The initial size of the aside section (e.g., "250px", "20%"). * If not provided, the CSS default is used. */ defaultAsideSize?: string; /** * CSS media query to determine when the sidebar transforms into a mobile-friendly drawer. * @defaultValue "(max-width: 60rem)" */ drawerMediaQuery?: string; }; /** * A responsive sidebar layout component that supports resizable aside panels, * multiple layout variants (start/end, inline/block), and automatic * conversion to a Drawer on smaller screens. * * @remarks * This component coordinates the state between the {@link Aside} and {@link Content} * components. It handles the interactive resizing logic using pointer events and RxJS. * * @example * Basic usage with toggle: * ```tsx * const [isOpen, setIsOpen] = useState(true); * return ( * setIsOpen(false)}> * * * * Main Content * * * ); * ``` * * @param props - Component properties including variant and open state. * @returns A grid-based layout container. */ export declare function SidebarLayout({ variant, open, onClose, defaultAsideSize, drawerMediaQuery, ...props }: SidebarLayoutProps): JSX.Element; /** * Properties for the {@link Aside} component. */ type AsideProps = JSX.IntrinsicElements["aside"] & { /** * Optional props to pass to the {@link Drawer} component when in mobile/drawer mode. */ drawerProps?: DrawerProps; }; /** * The sidebar (aside) panel of the {@link SidebarLayout}. * * @remarks * This component is polymorphic: * - On large screens: It renders as a standard `