import type { Transition } from 'motion/react'; /** Mode for highlight tracking. */ export type HighlightMode = 'children' | 'parent'; /** Bounding rectangle offsets. */ export type Bounds = { top: number; left: number; width: number; height: number; }; /** Internal context type for Highlight state. */ export type HighlightContextType = { as?: keyof HTMLElementTagNameMap; mode: HighlightMode; activeValue: T | null; setActiveValue: (value: T | null) => void; setBounds: (bounds: DOMRect) => void; clearBounds: () => void; id: string; hover: boolean; click: boolean; className?: string; style?: React.CSSProperties; activeClassName?: string; setActiveClassName: (className: string) => void; transition?: Transition; disabled?: boolean; enabled?: boolean; exitDelay?: number; forceUpdateBounds?: boolean; }; /** Base props shared by all Highlight variants. */ export type BaseHighlightProps = { as?: T; ref?: React.Ref; mode?: HighlightMode; value?: string | null; defaultValue?: string | null; onValueChange?: (value: string | null) => void; className?: string; style?: React.CSSProperties; transition?: Transition; hover?: boolean; click?: boolean; disabled?: boolean; enabled?: boolean; exitDelay?: number; }; /** Props specific to parent mode. */ export type ParentModeHighlightProps = { boundsOffset?: Partial; containerClassName?: string; forceUpdateBounds?: boolean; }; /** Controlled parent mode highlight props. */ export type ControlledParentModeHighlightProps = BaseHighlightProps & ParentModeHighlightProps & { mode: 'parent'; controlledItems: true; children: React.ReactNode; }; /** Controlled children mode highlight props. */ export type ControlledChildrenModeHighlightProps = BaseHighlightProps & { mode?: 'children' | undefined; controlledItems: true; children: React.ReactNode; }; /** Uncontrolled parent mode highlight props. */ export type UncontrolledParentModeHighlightProps = BaseHighlightProps & ParentModeHighlightProps & { mode: 'parent'; controlledItems?: false; itemsClassName?: string; children: React.ReactElement | React.ReactElement[]; }; /** Uncontrolled children mode highlight props. */ export type UncontrolledChildrenModeHighlightProps = BaseHighlightProps & { mode?: 'children'; controlledItems?: false; itemsClassName?: string; children: React.ReactElement | React.ReactElement[]; }; /** * Props for the Highlight component. * Discriminated union supporting controlled/uncontrolled + children/parent modes. */ export type IHighlightProps = ControlledParentModeHighlightProps | ControlledChildrenModeHighlightProps | UncontrolledParentModeHighlightProps | UncontrolledChildrenModeHighlightProps; /** Extended child props used internally by HighlightItem. */ export type ExtendedChildProps = React.ComponentProps<'div'> & { id?: string; ref?: React.Ref; 'data-active'?: string; 'data-value'?: string; 'data-disabled'?: boolean; 'data-highlight'?: boolean; 'data-slot'?: string; }; /** * Props for a HighlightItem within a Highlight container. */ export type IHighlightItemProps = React.ComponentProps & { as?: T; children: React.ReactElement; id?: string; value?: string; className?: string; style?: React.CSSProperties; transition?: Transition; activeClassName?: string; disabled?: boolean; exitDelay?: number; asChild?: boolean; forceUpdateBounds?: boolean; }; //# sourceMappingURL=Highlight.types.d.ts.map