import type { CssLength } from '@breadstone/mosaik-themes'; import type { IDisableableProps } from '../../../Behaviors/Disableable'; import type { IFitableProps } from '../../../Behaviors/Fitable'; import type { IOrientableProps } from '../../../Behaviors/Orientable'; import type { IReversibleProps } from '../../../Behaviors/Reversible'; import type { ISlottableProps } from '../../../Behaviors/Slottable'; import type { SplitLock } from '../../../Types/SplitLock'; /** * Represents the `ISplitElementProps` interface. * * @public */ export interface ISplitElementProps extends IDisableableProps, IOrientableProps, IFitableProps, IReversibleProps, ISlottableProps { /** * The position of the divider. * Accepts any valid CSS length value except 'auto' (e.g., '50%', '200px', '10rem'). */ position: Exclude; /** * Determines which panel is the fixed reference for positioning and resize behavior. * - `'none'`: Start panel is primary. Position percentage preserved on resize (proportional). * - `'start'`: Like none, but absolute pixel size is preserved on resize. * - `'end'`: End panel becomes primary. Layout, drag, and keyboard are mirrored. Absolute pixel size preserved on resize. */ lock: SplitLock; /** * The snap points of the divider. A snap point is a position where the divider will snap to when it is dragged. */ snaps: Array>; /** * The snap threshold of the divider. */ snapThreshold: number; /** * The thickness describes the width or height of the divider. It is based on the orientation. */ thickness: number; /** * The minimum position constraint for the primary panel. * Accepts any valid CSS length value except 'auto' (e.g., '10%', '100px'). */ min: Exclude; /** * The maximum position constraint for the primary panel. * Accepts any valid CSS length value except 'auto' (e.g., '90%', '500px'). */ max: Exclude; /** * Whether the snap-to-collapse drag behavior is enabled. * When enabled, dragging beyond 50% of `min` collapses the panel to zero. * Dragging back beyond the threshold expands it to `min`. * Requires a meaningful `min` value to take effect. * Note: `collapsedPanel` reflects the visual state regardless of this setting. */ collapsible: boolean; } //# sourceMappingURL=ISplitElementProps.d.ts.map