'use client'; import * as SliderPrimitive from '@radix-ui/react-slider'; import * as React from 'react'; import { cn } from '@/lib/utils'; interface DualRangeSliderProps extends React.ComponentProps { labelPosition?: 'top' | 'bottom'; label?: (value: number | undefined) => React.ReactNode; } const DualRangeSlider = React.forwardRef< React.ElementRef, DualRangeSliderProps >(({ className, label, labelPosition = 'top', ...props }, ref) => { const initialValue = Array.isArray(props.value) ? props.value : [props.min, props.max]; return ( {initialValue.map((value, index) => ( {label && ( {label(value)} )} ))} ); }); DualRangeSlider.displayName = 'DualRangeSlider'; type SingleSliderProps = Omit< React.ComponentPropsWithoutRef, 'onChange' | 'value' > & { onChange: (value: number) => void; value: number }; const SingleFormSlider = React.forwardRef< React.ElementRef, SingleSliderProps >(({ value, onChange, ...props }, ref) => { return ( value} value={[value]} onValueChange={(vals) => { onChange(vals[0]); }} {...props} /> ); }); export { DualRangeSlider, SingleFormSlider };