/** * SidePanelDock — one shared right-hand column that stacks every open * SidePanel instead of laying panels out side by side. * * Wrap the app in SidePanelDockProvider and mount in the * layout's panel slot; every SidePanel rendered under the provider then * portals itself into the dock (wherever it appears in the tree). Open panels * split the column height, the width controls adjust the one shared column, * and the dock disappears entirely while nothing is open. Closed panels stay * mounted inside the hidden dock, so their state survives exactly as it does * for a standalone SidePanel. */ import { type ReactNode } from "react"; import { type SidePanelWidth } from "./variants.js"; type SidePanelDockContextValue = { /** The dock's DOM container — panels portal here once it mounts. */ node: HTMLElement | null; setNode: (node: HTMLElement | null) => void; /** How many registered panels are currently open. */ openCount: number; /** Panels report their open state so the dock can show, hide, and size itself. */ reportOpen: (id: string, open: boolean) => void; forget: (id: string) => void; /** The one column width every stacked panel shares. */ width: SidePanelWidth; setWidth: (width: SidePanelWidth) => void; }; /** The ambient dock, if any — how SidePanel discovers it should stack. */ export declare function useSidePanelDock(): SidePanelDockContextValue | null; type SidePanelDockProviderProps = { children: ReactNode; /** Column width preset the dock starts at (panel width controls adjust it). */ defaultWidth?: SidePanelWidth; }; export declare function SidePanelDockProvider({ children, defaultWidth, }: SidePanelDockProviderProps): import("react").JSX.Element; /** * The dock column itself — mount once in the layout's panel slot. Below `md` * it stays out of layout (panels overlay the viewport on their own); from `md` * up it is the sticky card column the panels stack inside, dividers between * open panels, hidden while none is open. */ export declare function SidePanelDock({ className }: { className?: string; }): import("react").JSX.Element | null; export {}; //# sourceMappingURL=dock.d.ts.map