/** * Types for FilePanel. * * @module @mks2508/mks-ui/react/ui/FilePanel */ import type { ReactNode } from 'react'; import type { VariantProps } from 'class-variance-authority'; import type { SlotOverrides } from '../../../core/types'; import type { FilePanelSlot, filePanelVariants } from './FilePanel.styles'; /** Visual density for the panel frame. */ export type FilePanelDensity = NonNullable['density']>; /** * Props for FilePanel. * * FilePanel is a thin **frame**: header (title + actions), toolbar (search), * body (tree or any children), and a footer (status). Each region is a slot * so consumers compose the content — there is zero business logic here. * * @see {@link FilePanelSlot} */ export interface IFilePanelProps extends Omit, 'density' | 'bordered'> { /** Panel title rendered in the header. */ title?: ReactNode; /** Optional trailing actions (buttons, chips) next to the title. */ actions?: ReactNode; /** Search input slot content (e.g. an ``). Toolbar is hidden when both this and `toolbar` are absent. */ search?: ReactNode; /** Arbitrary toolbar content rendered next to `search`. */ toolbar?: ReactNode; /** Body content — typically a `` or custom children. */ children?: ReactNode; /** Footer status content (e.g. node count, last refresh). */ status?: ReactNode; /** Optional trailing footer actions. */ footerActions?: ReactNode; /** Density — proxied to child primitives via the consumer. */ density?: FilePanelDensity; /** Whether to render border + rounded frame. Default `true`. */ bordered?: boolean; /** Optional CSS class merged onto the root. */ className?: string; /** * Override default Tailwind classes for specific visual regions. * * @example * ```tsx * * ``` */ slots?: SlotOverrides; } //# sourceMappingURL=FilePanel.types.d.ts.map