import type { ComponentPropsWithoutRef, ReactNode, Ref } from 'react'; import type { ResizablePanelProps as SplitPanelProps, ContentProps as SplitContentProps } from '../../split-layout/slots.js'; import type { PanelWidth } from '../../split-layout/width-utils.js'; import type { CollapsiblePanel } from '../shared/collapsible.js'; /** @public */ export interface SidebarProps extends CollapsiblePanel, SplitPanelProps { } /** @internal */ export type ContentProps = SplitContentProps; /** @internal */ export interface ExtractedSidebarSlot { children?: ReactNode; config: { minWidth: PanelWidth; maxWidth: PanelWidth; defaultWidth: PanelWidth; resizable: boolean; collapsed?: boolean; defaultCollapsed: boolean; onCollapsedChange?: (value: boolean) => void; breakpoint: number; onResize?: (value: number) => void; }; domProps: ComponentPropsWithoutRef<'div'>; ref?: Ref; } /** @internal */ export interface ExtractedContentSlot { children?: ReactNode; config: { minWidth: PanelWidth; }; domProps: ComponentPropsWithoutRef<'div'>; ref?: Ref; }