import { ReactNode } from "react"; //#region src/inspector/dock.d.ts /** * Docked inspector pane: an in-flow spacer plus a fixed overlay. * * The spacer is what makes the content column reflow: the pane itself is * `position: fixed`, so without a same-width sibling in the flow it would * cover the content instead of displacing it. Keeping the pane fixed * (rather than in the flow) is what lets it span the full viewport height * regardless of the topbar above the content. * * The root carries the reserved inline size itself rather than leaving it to * the spacer alone: a block-level root in a plain block host would otherwise * take the full containing width and push the content column off-screen, * which is exactly the failure the spacer exists to prevent. With the width * on the root, the dock reserves the same footprint in a flex row, a grid * track, or a plain block. * * The permanent rail sits on the pane's inline-start edge, the same order * the workspace inspector panel uses: collapsed, the rail is the whole dock * on the viewport edge; expanded, the pane opens beyond the rail, so the * rail keeps its place beside the content and its tabs and toggle stay next * to the pane they drive instead of jumping to the far edge of the screen. */ type InspectorResizeHandleProps = { "aria-orientation": "vertical"; "aria-valuemax": number; "aria-valuemin": number; "aria-valuenow": number; onKeyDown: (event: React.KeyboardEvent) => void; onLostPointerCapture: (event: React.PointerEvent) => void; onPointerCancel: (event: React.PointerEvent) => void; onPointerDown: (event: React.PointerEvent) => void; onPointerMove: (event: React.PointerEvent) => void; onPointerUp: (event: React.PointerEvent) => void; tabIndex: number; }; /** * Where the dock hangs, which decides what its fixed pane has to paint above. * `shell-end` is the shell's own end column: it is a sibling of the content * column and never overlaps the sticky top bar. `content` is a dock a page * mounts inside that column; its pane still spans the full viewport height, * so it crosses the bar and has to cover it. */ export type InspectorDockMount = "content" | "shell-end"; type InspectorDockProps = { children: ReactNode; className?: string | undefined; mount?: InspectorDockMount | undefined; /** Permanent rail on the pane's inline-start edge, or by itself when collapsed. */ rail?: ReactNode | undefined; /** Accessible name for the drag handle. */ resizeHandleLabel: string; /** Handlers and ARIA state from `useInspectorPaneWidth`. */ resizeHandleProps: InspectorResizeHandleProps; /** Double-click affordance restoring the default width. */ onResetWidth?: (() => void) | undefined; /** Whether the full pane is shown, as opposed to the bare rail. */ showPaneContent: boolean; /** Inline size the dock reserves, in CSS pixels. */ width: number; }; export declare const InspectorDock: ({ children, className, mount, onResetWidth, rail, resizeHandleLabel, resizeHandleProps, showPaneContent, width }: InspectorDockProps) => import("react").JSX.Element; //#endregion