import type { ComponentPropsWithoutRef, Ref } from 'react'; import type { ExtractedContentSlot } from '../../../split-layout/slots.js'; import type { ExtractedDetailsSlot } from '../../details-region/slots.js'; import type { ExtractedSidebarSlot } from '../../sidebar-region/slots.js'; import type { DetailsPanelState, SidebarPanelState } from '../panel-state/usePanelState.js'; /** * Value a slot component writes to the registry: the slot's own configuration, * the DOM props and ref the layout applies to the element it renders for that * slot, and the panel state the slot owns. `children` are delivered through * the portal host node instead. * * Config and state travel together in one entry so a reader can never observe * one without the other. Slots that own no panel state carry `undefined`. * * @internal */ export interface SlotEntry { config: C; domProps: ComponentPropsWithoutRef<'div'>; ref?: Ref; state: S; } /** * The header takes no configuration of its own yet. It still registers a * config so all four slots share one entry shape, which is what lets every * slot build its entry through the same `useSlotEntry` hook and lets a future * header prop be a one-line addition instead of a shape change. * * @internal */ export type HeaderConfig = Record; /** @internal */ export type HeaderSlotEntry = SlotEntry; /** @internal */ export type SidebarSlotEntry = SlotEntry; /** @internal */ export type ContentSlotEntry = SlotEntry; /** @internal */ export type DetailsSlotEntry = SlotEntry; //# sourceMappingURL=slot-config.d.ts.map