import { TimelineInOutRangeControlOptions } from "../../hooks/viewport/useTimelineInOutRangeControl.mjs"; import "../../hooks/index.mjs"; import React from "react"; import { RationalTime } from "@techsquidtv/canvas-timeline-utils"; import { TimelineEngine } from "@techsquidtv/canvas-timeline-core"; import { Slider } from "@base-ui/react/slider"; //#region src/components/controls/RangeSelector.d.ts /** Timeline range boundary controlled by an In/Out grabber. */ type InOutBoundary = 'in' | 'out'; /** Render-prop payload for custom range selector grabber children. */ interface RangeSelectorGrabberRenderProps { /** Whether the grabber is actively being dragged. */ dragging: boolean; /** Current boundary time. */ time: RationalTime; /** Timeline engine that owns the boundary. */ engine: TimelineEngine; /** Which In/Out boundary this grabber controls. */ boundary: InOutBoundary; } /** Custom node or render prop used inside an In/Out range selector grabber. */ type RangeSelectorGrabberChildren = React.ReactNode | ((props: RangeSelectorGrabberRenderProps) => React.ReactNode); /** * Props for the RangeSelector Root component. */ interface RangeSelectorRootProps extends Omit, 'value' | 'defaultValue' | 'onValueChange' | 'onValueCommitted'> { /** Optional custom slider parts rendered inside the range selector root. */ children?: React.ReactNode; /** Whether pointer-driven changes should snap to timeline targets. */ snap?: boolean; /** Called after a range value commit has settled the engine. */ onValueCommitted?: TimelineInOutRangeControlOptions['onValueCommitted']; } /** * Headless, provider-aware root component for selection/loop boundary range sliders. * Wired directly to the `TimelineEngine`'s inPoint and outPoint state. */ declare const RangeSelectorRoot: React.ForwardRefExoticComponent>; /** * Props for the high-level timeline range selector overlay. */ interface RangeSelectorProps extends Omit, 'children'> { /** Minimum timeline time in seconds. Defaults to 0. */ min?: number; /** Maximum timeline time in seconds. Defaults to timeline content end or 100. */ max?: number; /** Whether pointer-driven boundary drags should snap to timeline targets. */ snap?: boolean; /** Fallback slider step used when deriving an empty content max. */ step?: number; /** Custom composable In-point grabber node or render prop function. */ inPointChildren?: RangeSelectorGrabberChildren; /** Custom composable Out-point grabber node or render prop function. */ outPointChildren?: RangeSelectorGrabberChildren; } /** * Slider control wrapper for range selection. */ declare const RangeSelectorControl: React.ForwardRefExoticComponent & React.RefAttributes, "ref"> & React.RefAttributes>; /** * Slider track wrapper for range selection. */ declare const RangeSelectorTrack: React.ForwardRefExoticComponent & React.RefAttributes, "ref"> & React.RefAttributes>; /** * Slider indicator wrapper for range selection. */ declare const RangeSelectorIndicator: React.ForwardRefExoticComponent & React.RefAttributes, "ref"> & React.RefAttributes>; /** * Slider thumb wrapper for range selection. */ declare const RangeSelectorThumb: React.ForwardRefExoticComponent & React.RefAttributes, "ref"> & React.RefAttributes>; declare const RangeSelector: React.ForwardRefExoticComponent> & { Root: React.ForwardRefExoticComponent>; Control: React.ForwardRefExoticComponent & React.RefAttributes, "ref"> & React.RefAttributes>; Track: React.ForwardRefExoticComponent & React.RefAttributes, "ref"> & React.RefAttributes>; Indicator: React.ForwardRefExoticComponent & React.RefAttributes, "ref"> & React.RefAttributes>; Thumb: React.ForwardRefExoticComponent & React.RefAttributes, "ref"> & React.RefAttributes>; }; //#endregion export { InOutBoundary, RangeSelector, RangeSelectorControl, RangeSelectorGrabberChildren, RangeSelectorGrabberRenderProps, RangeSelectorIndicator, RangeSelectorProps, RangeSelectorRoot, RangeSelectorRootProps, RangeSelectorThumb, RangeSelectorTrack }; //# sourceMappingURL=RangeSelector.d.mts.map