import { ReactNode } from 'react'; /** Which edge of the shell a pane or rail is docked to. */ export type PaneSide = 'left' | 'right' | 'bottom'; export interface SidebarPaneProps { /** * Heading text. Rendered uppercase with letter-spacing; pass it in natural * case and let the component style it. */ title: string; /** Panel body. Scrolls independently of the header. */ children?: ReactNode; /** * Called when the close button is pressed. Omit it to hide the close button * entirely — useful when the pane is always visible. */ onClose?: () => void; /** Fixed pane width, as a CSS length. Ignored when `side` is `"bottom"`. Defaults to `"300px"`. */ width?: string; /** Fixed pane height, as a CSS length. Only used when `side` is `"bottom"`. Defaults to `"240px"`. */ height?: string; /** * Which edge of the shell the pane is docked to. Defaults to `"left"`. * * Only the divider moves — a right-hand pane is the same container, so an * inspector does not need a component of its own. */ side?: PaneSide; /** Extra classes merged onto the root `