@sth87/shadcn-design-system 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/cjs/components/Checkbox/Checkbox.cjs +1 -1
  2. package/dist/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
  3. package/dist/cjs/components/Input/Input.cjs +1 -1
  4. package/dist/cjs/components/Input/Input.cjs.map +1 -1
  5. package/dist/cjs/components/Rate/Rate.cjs +1 -1
  6. package/dist/cjs/components/Rate/Rate.cjs.map +1 -1
  7. package/dist/cjs/components/Sheet/Sheet.cjs +1 -1
  8. package/dist/cjs/components/Sheet/Sheet.cjs.map +1 -1
  9. package/dist/cjs/components/Slider/Slider.cjs +1 -1
  10. package/dist/cjs/components/Slider/Slider.cjs.map +1 -1
  11. package/dist/cjs/components/Stepper/Stepper.cjs +1 -1
  12. package/dist/cjs/components/Stepper/Stepper.cjs.map +1 -1
  13. package/dist/cjs/components/Stepper/StepperWrapper.cjs +1 -1
  14. package/dist/cjs/components/Stepper/StepperWrapper.cjs.map +1 -1
  15. package/dist/cjs/components/Switch/Switch.cjs +1 -1
  16. package/dist/cjs/components/Switch/Switch.cjs.map +1 -1
  17. package/dist/cjs/components/Table/data-table-column-header.cjs +1 -1
  18. package/dist/cjs/components/Table/data-table-column-header.cjs.map +1 -1
  19. package/dist/cjs/components/Tabs/classes.cjs +1 -1
  20. package/dist/cjs/components/Tabs/classes.cjs.map +1 -1
  21. package/dist/cjs/components/TimeGridView.cjs +1 -1
  22. package/dist/cjs/components/TimeGridView.cjs.map +1 -1
  23. package/dist/cjs/components/Toast/Toast.cjs +1 -1
  24. package/dist/cjs/components/Toast/Toast.cjs.map +1 -1
  25. package/dist/cjs/components/Tooltip/Tooltip.cjs +1 -1
  26. package/dist/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  27. package/dist/cjs/components/WheelColumn.cjs +1 -1
  28. package/dist/cjs/components/WheelColumn.cjs.map +1 -1
  29. package/dist/cjs/packages/ui/src/components/calendar.cjs +1 -1
  30. package/dist/cjs/packages/ui/src/components/calendar.cjs.map +1 -1
  31. package/dist/cjs/styles/index.css +1 -1
  32. package/dist/esm/components/Checkbox/Checkbox.js +20 -20
  33. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  34. package/dist/esm/components/Input/Input.js +43 -43
  35. package/dist/esm/components/Input/Input.js.map +1 -1
  36. package/dist/esm/components/Rate/Rate.js +15 -15
  37. package/dist/esm/components/Rate/Rate.js.map +1 -1
  38. package/dist/esm/components/Sheet/Sheet.js +25 -25
  39. package/dist/esm/components/Sheet/Sheet.js.map +1 -1
  40. package/dist/esm/components/Slider/Slider.js +139 -139
  41. package/dist/esm/components/Slider/Slider.js.map +1 -1
  42. package/dist/esm/components/Stepper/Stepper.js +52 -52
  43. package/dist/esm/components/Stepper/Stepper.js.map +1 -1
  44. package/dist/esm/components/Stepper/StepperWrapper.js +25 -25
  45. package/dist/esm/components/Stepper/StepperWrapper.js.map +1 -1
  46. package/dist/esm/components/Switch/Switch.js +19 -19
  47. package/dist/esm/components/Switch/Switch.js.map +1 -1
  48. package/dist/esm/components/Table/data-table-column-header.js +22 -22
  49. package/dist/esm/components/Table/data-table-column-header.js.map +1 -1
  50. package/dist/esm/components/Tabs/classes.js +128 -128
  51. package/dist/esm/components/Tabs/classes.js.map +1 -1
  52. package/dist/esm/components/TimeGridView.js +27 -27
  53. package/dist/esm/components/TimeGridView.js.map +1 -1
  54. package/dist/esm/components/Toast/Toast.js +26 -26
  55. package/dist/esm/components/Toast/Toast.js.map +1 -1
  56. package/dist/esm/components/Tooltip/Tooltip.js +42 -42
  57. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  58. package/dist/esm/components/WheelColumn.js +9 -9
  59. package/dist/esm/components/WheelColumn.js.map +1 -1
  60. package/dist/esm/packages/ui/src/components/calendar.js +73 -73
  61. package/dist/esm/packages/ui/src/components/calendar.js.map +1 -1
  62. package/dist/esm/styles/index.css +1 -1
  63. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.js","sources":["../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport { cn } from \"@dsui/ui/lib/utils\";\nimport { motion, useMotionValue, useSpring, useTransform } from \"motion/react\";\nimport NumberFlow from \"@number-flow/react\";\nimport type { BasicColor } from \"@/types/variables\";\nimport { Badge } from \"../Badge\";\n\ntype LabelAnimation = \"number-flow\" | \"spec\" | \"none\";\ntype LabelDisplay = false | \"hover\" | \"always\";\ntype SliderColor = BasicColor | \"muted\" | \"accent\";\ntype SliderSize = \"sm\" | \"md\" | \"lg\";\ntype LabelPosition = \"top\" | \"bottom\" | \"left\" | \"right\";\n\nexport type SliderProps = Omit<\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>,\n \"color\" | \"defaultValue\" | \"value\" | \"min\" | \"max\"\n> & {\n color?: SliderColor;\n size?: SliderSize;\n showLabel?: LabelDisplay;\n labelArrow?: boolean;\n labelAnimation?: LabelAnimation;\n labelFormatter?: (value: number) => string;\n labelPosition?: LabelPosition;\n labelColor?: string;\n labelTextColor?: string;\n labelArrowColor?: string;\n sliderColor?: string;\n thumbBorderColor?: string;\n defaultValue?: number[];\n value?: number[];\n min?: number;\n max?: number;\n};\n\n// Color mapping configuration\nconst COLOR_CONFIG: Record<\n SliderColor,\n {\n range: string;\n thumb: string;\n labelBg: string;\n labelText: string;\n }\n> = {\n primary: {\n range: \"bg-primary\",\n thumb: \"border-primary/50\",\n labelBg: \"bg-primary\",\n labelText: \"text-primary-foreground\",\n },\n secondary: {\n range: \"bg-secondary\",\n thumb: \"border-secondary/50\",\n labelBg: \"bg-secondary\",\n labelText: \"text-secondary-foreground\",\n },\n success: {\n range: \"bg-success\",\n thumb: \"border-success/50\",\n labelBg: \"bg-success\",\n labelText: \"text-success-foreground\",\n },\n warning: {\n range: \"bg-warning\",\n thumb: \"border-warning/50\",\n labelBg: \"bg-warning\",\n labelText: \"text-warning-foreground\",\n },\n error: {\n range: \"bg-error\",\n thumb: \"border-error/50\",\n labelBg: \"bg-error\",\n labelText: \"text-error-foreground\",\n },\n glass: {\n range: \"bg-white/30 backdrop-blur-sm\",\n thumb: \"border-white/30 backdrop-blur-sm\",\n labelBg: \"bg-white/15\",\n labelText: \"text-foreground\",\n },\n muted: {\n range: \"bg-muted-foreground\",\n thumb: \"border-muted-foreground/50\",\n labelBg: \"bg-muted\",\n labelText: \"text-muted-foreground\",\n },\n accent: {\n range: \"bg-accent\",\n thumb: \"border-accent/50\",\n labelBg: \"bg-accent\",\n labelText: \"text-accent-foreground\",\n },\n};\n\n// Size configuration\nconst SIZE_CONFIG: Record<\n SliderSize,\n {\n track: string;\n thumb: string;\n }\n> = {\n sm: {\n track: \"data-[orientation=horizontal]:h-1 data-[orientation=vertical]:w-1\",\n thumb: \"size-3\",\n },\n md: {\n track:\n \"data-[orientation=horizontal]:h-1.5 data-[orientation=vertical]:w-1.5\",\n thumb: \"size-4\",\n },\n lg: {\n track: \"data-[orientation=horizontal]:h-2 data-[orientation=vertical]:w-2\",\n thumb: \"size-5\",\n },\n};\n\n// Helper to get arrow direction based on orientation and position\nconst getArrowDirection = (\n orientation: \"horizontal\" | \"vertical\",\n position: LabelPosition\n): \"top\" | \"bottom\" | \"left\" | \"right\" => {\n if (orientation === \"horizontal\") {\n if (position === \"bottom\") return \"bottom\";\n if (position === \"left\") return \"left\";\n if (position === \"right\") return \"right\";\n return \"top\";\n }\n // vertical\n if (position === \"right\") return \"right\";\n if (position === \"top\") return \"top\";\n if (position === \"bottom\") return \"bottom\";\n return \"left\";\n};\n\n// Helper to get arrow color class\nconst getArrowColorClass = (\n color: SliderColor,\n direction: \"top\" | \"bottom\" | \"left\" | \"right\"\n): string => {\n // Generate full border class (e.g., \"border-t-primary\")\n const prefix =\n direction === \"top\"\n ? \"t\"\n : direction === \"bottom\"\n ? \"b\"\n : direction === \"left\"\n ? \"l\"\n : \"r\";\n const colorMap: Record<SliderColor, string> = {\n primary: `border-${prefix}-primary`,\n secondary: `border-${prefix}-secondary`,\n success: `border-${prefix}-success`,\n warning: `border-${prefix}-warning`,\n error: `border-${prefix}-error`,\n glass: `border-${prefix}-white/15`,\n muted: `border-${prefix}-muted`,\n accent: `border-${prefix}-accent`,\n };\n\n return colorMap[color];\n};\n\n// Helper to get label position classes\nconst getLabelPositionClasses = (\n orientation: \"horizontal\" | \"vertical\",\n position: LabelPosition\n): { badge: string; arrow: string } => {\n const positions: Record<string, { badge: string; arrow: string }> = {\n \"horizontal-top\": {\n badge: \"left-1/2 -translate-x-1/2 bottom-full -translate-y-1/2\",\n arrow:\n \"top-full left-1/2 -translate-x-1/2 border-t-[6px] border-l-[6px] border-r-[6px] border-b-0 border-l-transparent border-r-transparent\",\n },\n \"horizontal-bottom\": {\n badge: \"left-1/2 -translate-x-1/2 top-full translate-y-1/2\",\n arrow:\n \"bottom-full left-1/2 -translate-x-1/2 border-b-[6px] border-l-[6px] border-r-[6px] border-t-0 border-l-transparent border-r-transparent\",\n },\n \"horizontal-left\": {\n badge: \"top-1/2 -translate-y-1/2 right-full -translate-x-1/2\",\n arrow:\n \"left-full top-1/2 -translate-y-1/2 border-l-[6px] border-t-[6px] border-b-[6px] border-r-0 border-t-transparent border-b-transparent\",\n },\n \"horizontal-right\": {\n badge: \"top-1/2 -translate-y-1/2 left-full translate-x-1/2\",\n arrow:\n \"right-full top-1/2 -translate-y-1/2 border-r-[6px] border-t-[6px] border-b-[6px] border-l-0 border-t-transparent border-b-transparent\",\n },\n \"vertical-left\": {\n badge: \"top-1/2 -translate-y-1/2 right-full -translate-x-1/2\",\n arrow:\n \"left-full top-1/2 -translate-y-1/2 border-l-[6px] border-t-[6px] border-b-[6px] border-r-0 border-t-transparent border-b-transparent\",\n },\n \"vertical-right\": {\n badge: \"top-1/2 -translate-y-1/2 left-full translate-x-1/2\",\n arrow:\n \"right-full top-1/2 -translate-y-1/2 border-r-[6px] border-t-[6px] border-b-[6px] border-l-0 border-t-transparent border-b-transparent\",\n },\n \"vertical-top\": {\n badge: \"left-1/2 -translate-x-1/2 bottom-full -translate-y-1/2\",\n arrow:\n \"top-full left-1/2 -translate-x-1/2 border-t-[6px] border-l-[6px] border-r-[6px] border-b-0 border-l-transparent border-r-transparent\",\n },\n \"vertical-bottom\": {\n badge: \"left-1/2 -translate-x-1/2 top-full translate-y-1/2\",\n arrow:\n \"bottom-full left-1/2 -translate-x-1/2 border-b-[6px] border-l-[6px] border-r-[6px] border-t-0 border-l-transparent border-r-transparent\",\n },\n };\n\n return positions[`${orientation}-${position}`];\n};\n\n// Helper to get spec label position classes\nconst getSpecLabelPositionClass = (\n orientation: \"horizontal\" | \"vertical\",\n position: LabelPosition\n): string => {\n const positions: Record<string, string> = {\n \"horizontal-top\":\n \"data-[orientation=horizontal]:bottom-full data-[orientation=horizontal]:left-1/2 data-[orientation=horizontal]:-translate-x-1/2 data-[orientation=horizontal]:-translate-y-1/2\",\n \"horizontal-bottom\":\n \"data-[orientation=horizontal]:top-full data-[orientation=horizontal]:left-1/2 data-[orientation=horizontal]:-translate-x-1/2 data-[orientation=horizontal]:translate-y-1/2\",\n \"horizontal-left\":\n \"data-[orientation=horizontal]:top-1/2 data-[orientation=horizontal]:right-full data-[orientation=horizontal]:-translate-y-1/2 data-[orientation=horizontal]:-translate-x-1/2\",\n \"horizontal-right\":\n \"data-[orientation=horizontal]:top-1/2 data-[orientation=horizontal]:left-full data-[orientation=horizontal]:-translate-y-1/2 data-[orientation=horizontal]:translate-x-1/2\",\n \"vertical-left\":\n \"data-[orientation=vertical]:right-full data-[orientation=vertical]:top-1/2 data-[orientation=vertical]:-translate-x-1/2 data-[orientation=vertical]:-translate-y-1/2\",\n \"vertical-right\":\n \"data-[orientation=vertical]:left-full data-[orientation=vertical]:top-1/2 data-[orientation=vertical]:translate-x-1/2 data-[orientation=vertical]:-translate-y-1/2\",\n \"vertical-top\":\n \"data-[orientation=vertical]:bottom-full data-[orientation=vertical]:left-1/2 data-[orientation=vertical]:-translate-x-1/2 data-[orientation=vertical]:-translate-y-1/2\",\n \"vertical-bottom\":\n \"data-[orientation=vertical]:top-full data-[orientation=vertical]:left-1/2 data-[orientation=vertical]:-translate-x-1/2 data-[orientation=vertical]:translate-y-1/2\",\n };\n\n return positions[`${orientation}-${position}`];\n};\n\nconst Slider = React.forwardRef<HTMLSpanElement, SliderProps>(\n (\n {\n className,\n color = \"primary\",\n size = \"md\",\n showLabel = false,\n labelArrow = false,\n labelAnimation = \"none\",\n labelFormatter = (value) => `${value}`,\n labelPosition = \"top\",\n labelColor,\n labelTextColor,\n labelArrowColor,\n sliderColor,\n thumbBorderColor,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n },\n ref\n ) => {\n const _values = React.useMemo(\n () =>\n Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max],\n [value, defaultValue, min, max]\n );\n\n // State for hover detection\n const [isHovered, setIsHovered] = React.useState(false);\n React.useEffect(() => {\n if (value !== undefined && !Array.isArray(value)) {\n console.error(\n \"[Slider] value prop must be an array of numbers, e.g., [50] or [25, 75]\"\n );\n }\n if (defaultValue !== undefined && !Array.isArray(defaultValue)) {\n console.error(\n \"[Slider] defaultValue prop must be an array of numbers, e.g., [50] or [25, 75]\"\n );\n }\n }, [value, defaultValue]);\n\n const orientation = props.orientation || \"horizontal\";\n\n // For spec animation - track thumb position and velocity\n const thumbPosition = useMotionValue(0);\n const thumbVelocity = useMotionValue(0);\n const prevThumbPosition = React.useRef(0);\n\n // Spring physics for label following effect - more dramatic\n const springConfig = { stiffness: 150, damping: 15, mass: 1 };\n const labelOffset = useSpring(0, springConfig);\n const labelRotate = useSpring(0, springConfig);\n\n // Track value changes to calculate velocity\n React.useEffect(() => {\n if (labelAnimation === \"spec\" && _values.length > 0) {\n const currentPos = _values[0];\n const velocity = currentPos - prevThumbPosition.current;\n\n // Cap velocity to prevent large jumps (e.g., on click or initial load)\n const maxVelocity = 5; // Maximum velocity threshold\n const cappedVelocity = Math.max(\n -maxVelocity,\n Math.min(maxVelocity, velocity)\n );\n\n // Update velocity and position\n thumbVelocity.set(cappedVelocity);\n thumbPosition.set(currentPos);\n\n // Calculate offset and rotation based on capped velocity\n // Negative velocity (moving left) -> positive offset (label lags behind to the right)\n const offsetAmount = -cappedVelocity * 12;\n const rotateAmount = -cappedVelocity * 20;\n\n labelOffset.set(offsetAmount);\n labelRotate.set(rotateAmount);\n\n // Reset to center when stopped\n setTimeout(() => {\n labelOffset.set(0);\n labelRotate.set(0);\n }, 100);\n\n prevThumbPosition.current = currentPos;\n }\n }, [\n _values,\n labelAnimation,\n thumbVelocity,\n thumbPosition,\n labelOffset,\n labelRotate,\n ]);\n\n // Memoized computed values\n const sliderColorClass = useMemo(() => {\n if (sliderColor || thumbBorderColor) {\n return {\n range: sliderColor || \"bg-primary\",\n thumb: thumbBorderColor || \"border-primary/50\",\n };\n }\n const config = COLOR_CONFIG[color];\n return {\n range: config.range,\n thumb: config.thumb,\n };\n }, [color, sliderColor, thumbBorderColor]);\n\n const sliderSizeClass = useMemo(() => SIZE_CONFIG[size], [size]);\n\n const labelColorClass = useMemo(() => {\n if (labelColor || labelTextColor) {\n return cn(labelColor, labelTextColor);\n }\n\n const config = COLOR_CONFIG[color];\n const direction = getArrowDirection(orientation, labelPosition);\n const arrowColor = getArrowColorClass(color, direction);\n\n if (color === \"glass\") {\n return `${config.labelBg} ${config.labelText} backdrop-blur-sm shadow-lg [&>div.arrow]:${arrowColor}`;\n }\n\n return `${config.labelBg} ${config.labelText} [&>div.arrow]:${arrowColor}`;\n }, [color, labelPosition, orientation, labelColor, labelTextColor]);\n\n const arrowColorClass = useMemo(() => {\n if (labelArrowColor) return labelArrowColor;\n const direction = getArrowDirection(orientation, labelPosition);\n return getArrowColorClass(color, direction);\n }, [color, labelPosition, orientation, labelArrowColor]);\n\n const labelVisibilityClass = useMemo(() => {\n if (showLabel === \"hover\") return \"scale-0 group-hover:scale-100\";\n if (showLabel === \"always\") return \"scale-100\";\n return \"hidden\";\n }, [showLabel]);\n\n const labelPositionClass = useMemo(\n () => getLabelPositionClasses(orientation, labelPosition),\n [labelPosition, orientation]\n );\n\n const labelPositionClassSpec = useMemo(\n () => getSpecLabelPositionClass(orientation, labelPosition),\n [labelPosition, orientation]\n );\n\n // Render label based on animation type\n const renderLabel = React.useCallback(\n (index: number) => {\n if (labelAnimation === \"spec\") {\n return (\n <motion.div\n className={cn(\n \"ds:pointer-events-none ds:absolute ds:z-50 ds:flex ds:flex-col ds:items-center ds:justify-center ds:rounded-md ds:px-3 ds:py-1.5 ds:text-xs ds:shadow-xl\",\n labelPositionClassSpec,\n labelColor && labelColor,\n labelTextColor && labelTextColor,\n !labelColor && !labelTextColor && labelColorClass\n )}\n data-orientation={orientation}\n initial={\n showLabel === \"always\"\n ? { opacity: 1, y: -5, scale: 1 }\n : { opacity: 0, y: 20, scale: 0 }\n }\n animate={\n (isHovered && showLabel === \"hover\") || showLabel === \"always\"\n ? {\n opacity: 1,\n y: -5,\n scale: 1,\n }\n : {\n opacity: 0,\n y: 20,\n scale: 0,\n }\n }\n transition={{\n type: \"tween\",\n duration: 0.2,\n ease: \"easeOut\",\n }}\n style={{\n x: labelOffset,\n rotate: labelRotate,\n whiteSpace: \"nowrap\",\n }}\n >\n <div className=\"ds:relative ds:z-1\">\n <NumberFlow\n value={_values[index]}\n format={{ notation: \"standard\" }}\n isolate\n />\n </div>\n {labelArrow && (\n <div\n className={cn(\n \"ds:arrow ds:absolute ds:border-transparent\",\n labelPositionClass.arrow,\n arrowColorClass\n )}\n />\n )}\n </motion.div>\n );\n }\n\n // Standard or number-flow animation\n return (\n <Badge\n size=\"lg\"\n color={\n labelColor || labelTextColor\n ? \"custom\"\n : color === \"glass\"\n ? \"custom\"\n : color === \"muted\"\n ? \"muted\"\n : color === \"accent\"\n ? \"accent\"\n : color\n }\n variant=\"solid\"\n className={cn(\n \"ds:transition-transform ds:absolute ds:px-3 ds:rounded-md\",\n labelPositionClass.badge,\n labelVisibilityClass,\n labelColor && labelColor,\n labelTextColor && labelTextColor,\n !labelColor &&\n !labelTextColor &&\n color === \"glass\" &&\n \"ds:bg-white/15 ds:text-foreground ds:backdrop-blur-sm ds:shadow-lg ds:[&>div.arrow]:border-t-white/15\"\n )}\n >\n {labelAnimation === \"number-flow\" ? (\n <NumberFlow\n value={_values[index]}\n format={{ notation: \"standard\" }}\n isolate\n />\n ) : (\n <span>{labelFormatter(_values[index])}</span>\n )}\n {labelArrow && (\n <div\n className={cn(\n \"ds:arrow ds:absolute ds:border-transparent\",\n labelPositionClass.arrow,\n arrowColorClass\n )}\n />\n )}\n </Badge>\n );\n },\n [\n labelAnimation,\n labelPositionClassSpec,\n labelColor,\n labelTextColor,\n labelColorClass,\n orientation,\n showLabel,\n labelOffset,\n labelRotate,\n labelFormatter,\n _values,\n color,\n labelPositionClass,\n labelVisibilityClass,\n labelArrow,\n arrowColorClass,\n isHovered,\n ]\n );\n\n // Render without label - use custom slider with color\n if (!showLabel) {\n return (\n <SliderPrimitive.Root\n ref={ref}\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n \"ds:relative ds:flex ds:w-full ds:touch-none ds:items-center ds:select-none ds:data-disabled:opacity-50 ds:data-[orientation=vertical]:h-full ds:data-[orientation=vertical]:min-h-44 ds:data-[orientation=vertical]:w-auto ds:data-[orientation=vertical]:flex-col\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n \"ds:bg-muted ds:relative ds:grow ds:overflow-hidden ds:rounded-full ds:data-[orientation=horizontal]:w-full ds:data-[orientation=vertical]:h-full\",\n sliderSizeClass.track\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn(\n \"ds:absolute ds:data-[orientation=horizontal]:h-full ds:data-[orientation=vertical]:w-full\",\n sliderColorClass.range\n )}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n key={index}\n data-slot=\"slider-thumb\"\n className={cn(\n \"ds:block ds:shrink-0 ds:rounded-full ds:border ds:bg-white ds:shadow-sm ds:transition-[color,box-shadow] ds:hover:ring-4 ds:focus-visible:ring-4 ds:focus-visible:outline-hidden ds:disabled:pointer-events-none ds:disabled:opacity-50 ds:ring-ring/50\",\n sliderColorClass.thumb,\n sliderSizeClass.thumb\n )}\n />\n ))}\n </SliderPrimitive.Root>\n );\n }\n\n // Render with label (standard, number-flow, or spec animation)\n return (\n <SliderPrimitive.Root\n ref={ref}\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n \"ds:relative ds:flex ds:w-full ds:touch-none ds:items-center ds:select-none ds:data-disabled:opacity-50 ds:data-[orientation=vertical]:h-full ds:data-[orientation=vertical]:min-h-44 ds:data-[orientation=vertical]:w-auto ds:data-[orientation=vertical]:flex-col\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n \"ds:bg-muted ds:relative ds:grow ds:overflow-hidden ds:rounded-full ds:data-[orientation=horizontal]:w-full ds:data-[orientation=vertical]:h-full\",\n sliderSizeClass.track\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn(\n \"ds:absolute ds:data-[orientation=horizontal]:h-full ds:data-[orientation=vertical]:w-full\",\n sliderColorClass.range\n )}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n key={index}\n data-slot=\"slider-thumb\"\n className={cn(\n \"ds:group ds:block ds:shrink-0 ds:rounded-full ds:border ds:bg-white ds:shadow-sm ds:transition-[color,box-shadow] ds:hover:ring-4 ds:focus-visible:ring-4 ds:focus-visible:outline-hidden ds:disabled:pointer-events-none ds:disabled:opacity-50 ds:ring-ring/50\",\n sliderColorClass.thumb,\n sliderSizeClass.thumb\n )}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n {renderLabel(index)}\n </SliderPrimitive.Thumb>\n ))}\n </SliderPrimitive.Root>\n );\n }\n);\n\nSlider.displayName = \"Slider\";\n\nexport default Slider;\n"],"names":["COLOR_CONFIG","SIZE_CONFIG","getArrowDirection","orientation","position","getArrowColorClass","color","direction","prefix","getLabelPositionClasses","getSpecLabelPositionClass","Slider","React","className","size","showLabel","labelArrow","labelAnimation","labelFormatter","value","labelPosition","labelColor","labelTextColor","labelArrowColor","sliderColor","thumbBorderColor","defaultValue","min","max","props","ref","_values","isHovered","setIsHovered","thumbPosition","useMotionValue","thumbVelocity","prevThumbPosition","springConfig","labelOffset","useSpring","labelRotate","currentPos","velocity","maxVelocity","cappedVelocity","offsetAmount","rotateAmount","sliderColorClass","useMemo","config","sliderSizeClass","labelColorClass","cn","arrowColor","arrowColorClass","labelVisibilityClass","labelPositionClass","labelPositionClassSpec","renderLabel","index","jsxs","motion","jsx","NumberFlow","Badge","SliderPrimitive","_"],"mappings":"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"}
1
+ {"version":3,"file":"Slider.js","sources":["../../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport { cn } from \"@dsui/ui/lib/utils\";\nimport { motion, useMotionValue, useSpring, useTransform } from \"motion/react\";\nimport NumberFlow from \"@number-flow/react\";\nimport type { BasicColor } from \"@/types/variables\";\nimport { Badge } from \"../Badge\";\n\ntype LabelAnimation = \"number-flow\" | \"spec\" | \"none\";\ntype LabelDisplay = false | \"hover\" | \"always\";\ntype SliderColor = BasicColor | \"muted\" | \"accent\";\ntype SliderSize = \"sm\" | \"md\" | \"lg\";\ntype LabelPosition = \"top\" | \"bottom\" | \"left\" | \"right\";\n\nexport type SliderProps = Omit<\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>,\n \"color\" | \"defaultValue\" | \"value\" | \"min\" | \"max\"\n> & {\n color?: SliderColor;\n size?: SliderSize;\n showLabel?: LabelDisplay;\n labelArrow?: boolean;\n labelAnimation?: LabelAnimation;\n labelFormatter?: (value: number) => string;\n labelPosition?: LabelPosition;\n labelColor?: string;\n labelTextColor?: string;\n labelArrowColor?: string;\n sliderColor?: string;\n thumbBorderColor?: string;\n defaultValue?: number[];\n value?: number[];\n min?: number;\n max?: number;\n};\n\n// Color mapping configuration\nconst COLOR_CONFIG: Record<\n SliderColor,\n {\n range: string;\n thumb: string;\n labelBg: string;\n labelText: string;\n }\n> = {\n primary: {\n range: \"ds:bg-primary\",\n thumb: \"ds:border-primary/50\",\n labelBg: \"ds:bg-primary\",\n labelText: \"ds:text-primary-foreground\",\n },\n secondary: {\n range: \"ds:bg-secondary\",\n thumb: \"ds:border-secondary/50\",\n labelBg: \"ds:bg-secondary\",\n labelText: \"ds:text-secondary-foreground\",\n },\n success: {\n range: \"ds:bg-success\",\n thumb: \"ds:border-success/50\",\n labelBg: \"ds:bg-success\",\n labelText: \"ds:text-success-foreground\",\n },\n warning: {\n range: \"ds:bg-warning\",\n thumb: \"ds:border-warning/50\",\n labelBg: \"ds:bg-warning\",\n labelText: \"ds:text-warning-foreground\",\n },\n error: {\n range: \"ds:bg-error\",\n thumb: \"ds:border-error/50\",\n labelBg: \"ds:bg-error\",\n labelText: \"ds:text-error-foreground\",\n },\n glass: {\n range: \"ds:bg-white/30 backdrop-blur-sm\",\n thumb: \"ds:border-white/30 backdrop-blur-sm\",\n labelBg: \"ds:bg-white/15\",\n labelText: \"ds:text-foreground\",\n },\n muted: {\n range: \"ds:bg-muted-foreground\",\n thumb: \"ds:border-muted-foreground/50\",\n labelBg: \"ds:bg-muted\",\n labelText: \"ds:text-muted-foreground\",\n },\n accent: {\n range: \"ds:bg-accent\",\n thumb: \"ds:border-accent/50\",\n labelBg: \"ds:bg-accent\",\n labelText: \"ds:text-accent-foreground\",\n },\n};\n\n// Size configuration\nconst SIZE_CONFIG: Record<\n SliderSize,\n {\n track: string;\n thumb: string;\n }\n> = {\n sm: {\n track: \"ds:data-[orientation=horizontal]:h-1 ds:data-[orientation=vertical]:w-1\",\n thumb: \"ds:size-3\",\n },\n md: {\n track:\n \"ds:data-[orientation=horizontal]:h-1.5 ds:data-[orientation=vertical]:w-1.5\",\n thumb: \"ds:size-4\",\n },\n lg: {\n track: \"ds:data-[orientation=horizontal]:h-2 ds:data-[orientation=vertical]:w-2\",\n thumb: \"ds:size-5\",\n },\n};\n\n// Helper to get arrow direction based on orientation and position\nconst getArrowDirection = (\n orientation: \"horizontal\" | \"vertical\",\n position: LabelPosition\n): \"top\" | \"bottom\" | \"left\" | \"right\" => {\n if (orientation === \"horizontal\") {\n if (position === \"bottom\") return \"bottom\";\n if (position === \"left\") return \"left\";\n if (position === \"right\") return \"right\";\n return \"top\";\n }\n // vertical\n if (position === \"right\") return \"right\";\n if (position === \"top\") return \"top\";\n if (position === \"bottom\") return \"bottom\";\n return \"left\";\n};\n\n// Helper to get arrow color class\nconst getArrowColorClass = (\n color: SliderColor,\n direction: \"top\" | \"bottom\" | \"left\" | \"right\"\n): string => {\n // Generate full border class (e.g., \"border-t-primary\")\n const prefix =\n direction === \"top\"\n ? \"t\"\n : direction === \"bottom\"\n ? \"b\"\n : direction === \"left\"\n ? \"l\"\n : \"r\";\n const colorMap: Record<SliderColor, string> = {\n primary: `ds:border-${prefix}-primary`,\n secondary: `ds:border-${prefix}-secondary`,\n success: `ds:border-${prefix}-success`,\n warning: `ds:border-${prefix}-warning`,\n error: `ds:border-${prefix}-error`,\n glass: `ds:border-${prefix}-white/15`,\n muted: `ds:border-${prefix}-muted`,\n accent: `ds:border-${prefix}-accent`,\n };\n\n return colorMap[color];\n};\n\n// Helper to get label position classes\nconst getLabelPositionClasses = (\n orientation: \"horizontal\" | \"vertical\",\n position: LabelPosition\n): { badge: string; arrow: string } => {\n const positions: Record<string, { badge: string; arrow: string }> = {\n \"horizontal-top\": {\n badge: \"ds:left-1/2 ds:-translate-x-1/2 ds:bottom-full ds:-translate-y-1/2\",\n arrow:\n \"ds:top-full left-1/2 ds:-translate-x-1/2 ds:border-t-[6px] ds:border-l-[6px] ds:border-r-[6px] ds:border-b-0 ds:border-l-transparent ds:border-r-transparent\",\n },\n \"horizontal-bottom\": {\n badge: \"ds:left-1/2 ds:-translate-x-1/2 ds:top-full ds:translate-y-1/2\",\n arrow:\n \"ds:bottom-full left-1/2 ds:-translate-x-1/2 ds:border-b-[6px] ds:border-l-[6px] ds:border-r-[6px] ds:border-t-0 ds:border-l-transparent ds:border-r-transparent\",\n },\n \"horizontal-left\": {\n badge: \"ds:top-1/2 ds:-translate-y-1/2 ds:right-full ds:-translate-x-1/2\",\n arrow:\n \"ds:left-full ds:top-1/2 ds:-translate-y-1/2 ds:border-l-[6px] ds:border-t-[6px] ds:border-b-[6px] ds:border-r-0 ds:border-t-transparent ds:border-b-transparent\",\n },\n \"horizontal-right\": {\n badge: \"ds:top-1/2 ds:-translate-y-1/2 ds:left-full ds:translate-x-1/2\",\n arrow:\n \"ds:right-full ds:top-1/2 ds:-translate-y-1/2 ds:border-r-[6px] ds:border-t-[6px] ds:border-b-[6px] ds:border-l-0 ds:border-t-transparent ds:border-b-transparent\",\n },\n \"vertical-left\": {\n badge: \"ds:top-1/2 ds:-translate-y-1/2 ds:right-full ds:-translate-x-1/2\",\n arrow:\n \"ds:left-full ds:top-1/2 ds:-translate-y-1/2 ds:border-l-[6px] ds:border-t-[6px] ds:border-b-[6px] ds:border-r-0 ds:border-t-transparent ds:border-b-transparent\",\n },\n \"vertical-right\": {\n badge: \"ds:top-1/2 ds:-translate-y-1/2 ds:left-full ds:translate-x-1/2\",\n arrow:\n \"ds:right-full ds:top-1/2 ds:-translate-y-1/2 ds:border-r-[6px] ds:border-t-[6px] ds:border-b-[6px] ds:border-l-0 ds:border-t-transparent ds:border-b-transparent\",\n },\n \"vertical-top\": {\n badge: \"ds:left-1/2 ds:-translate-x-1/2 ds:bottom-full ds:-translate-y-1/2\",\n arrow:\n \"ds:top-full ds:left-1/2 ds:-translate-x-1/2 ds:border-t-[6px] ds:border-l-[6px] ds:border-r-[6px] ds:border-b-0 ds:border-l-transparent ds:border-r-transparent\",\n },\n \"vertical-bottom\": {\n badge: \"ds:left-1/2 ds:-translate-x-1/2 ds:top-full ds:translate-y-1/2\",\n arrow:\n \"ds:bottom-full ds:left-1/2 ds:-translate-x-1/2 ds:border-b-[6px] ds:border-l-[6px] ds:border-r-[6px] ds:border-t-0 ds:border-l-transparent ds:border-r-transparent\",\n },\n };\n\n return positions[`${orientation}-${position}`];\n};\n\n// Helper to get spec label position classes\nconst getSpecLabelPositionClass = (\n orientation: \"horizontal\" | \"vertical\",\n position: LabelPosition\n): string => {\n const positions: Record<string, string> = {\n \"horizontal-top\":\n \"ds:data-[orientation=horizontal]:bottom-full ds:data-[orientation=horizontal]:left-1/2 ds:data-[orientation=horizontal]:-translate-x-1/2 ds:data-[orientation=horizontal]:-translate-y-1/2\",\n \"horizontal-bottom\":\n \"ds:data-[orientation=horizontal]:top-full ds:data-[orientation=horizontal]:left-1/2 ds:data-[orientation=horizontal]:-translate-x-1/2 ds:data-[orientation=horizontal]:translate-y-1/2\",\n \"horizontal-left\":\n \"ds:data-[orientation=horizontal]:top-1/2 ds:data-[orientation=horizontal]:right-full ds:data-[orientation=horizontal]:-translate-y-1/2 ds:data-[orientation=horizontal]:-translate-x-1/2\",\n \"horizontal-right\":\n \"ds:data-[orientation=horizontal]:top-1/2 ds:data-[orientation=horizontal]:left-full ds:data-[orientation=horizontal]:-translate-y-1/2 ds:data-[orientation=horizontal]:translate-x-1/2\",\n \"vertical-left\":\n \"ds:data-[orientation=vertical]:right-full ds:data-[orientation=vertical]:top-1/2 ds:data-[orientation=vertical]:-translate-x-1/2 ds:data-[orientation=vertical]:-translate-y-1/2\",\n \"vertical-right\":\n \"ds:data-[orientation=vertical]:left-full ds:data-[orientation=vertical]:top-1/2 ds:data-[orientation=vertical]:translate-x-1/2 ds:data-[orientation=vertical]:-translate-y-1/2\",\n \"vertical-top\":\n \"ds:data-[orientation=vertical]:bottom-full ds:data-[orientation=vertical]:left-1/2 ds:data-[orientation=vertical]:-translate-x-1/2 ds:data-[orientation=vertical]:-translate-y-1/2\",\n \"vertical-bottom\":\n \"ds:data-[orientation=vertical]:top-full ds:data-[orientation=vertical]:left-1/2 ds:data-[orientation=vertical]:-translate-x-1/2 ds:data-[orientation=vertical]:translate-y-1/2\",\n };\n\n return positions[`${orientation}-${position}`];\n};\n\nconst Slider = React.forwardRef<HTMLSpanElement, SliderProps>(\n (\n {\n className,\n color = \"primary\",\n size = \"md\",\n showLabel = false,\n labelArrow = false,\n labelAnimation = \"none\",\n labelFormatter = (value) => `${value}`,\n labelPosition = \"top\",\n labelColor,\n labelTextColor,\n labelArrowColor,\n sliderColor,\n thumbBorderColor,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n },\n ref\n ) => {\n const _values = React.useMemo(\n () =>\n Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max],\n [value, defaultValue, min, max]\n );\n\n // State for hover detection\n const [isHovered, setIsHovered] = React.useState(false);\n React.useEffect(() => {\n if (value !== undefined && !Array.isArray(value)) {\n console.error(\n \"[Slider] value prop must be an array of numbers, e.g., [50] or [25, 75]\"\n );\n }\n if (defaultValue !== undefined && !Array.isArray(defaultValue)) {\n console.error(\n \"[Slider] defaultValue prop must be an array of numbers, e.g., [50] or [25, 75]\"\n );\n }\n }, [value, defaultValue]);\n\n const orientation = props.orientation || \"horizontal\";\n\n // For spec animation - track thumb position and velocity\n const thumbPosition = useMotionValue(0);\n const thumbVelocity = useMotionValue(0);\n const prevThumbPosition = React.useRef(0);\n\n // Spring physics for label following effect - more dramatic\n const springConfig = { stiffness: 150, damping: 15, mass: 1 };\n const labelOffset = useSpring(0, springConfig);\n const labelRotate = useSpring(0, springConfig);\n\n // Track value changes to calculate velocity\n React.useEffect(() => {\n if (labelAnimation === \"spec\" && _values.length > 0) {\n const currentPos = _values[0];\n const velocity = currentPos - prevThumbPosition.current;\n\n // Cap velocity to prevent large jumps (e.g., on click or initial load)\n const maxVelocity = 5; // Maximum velocity threshold\n const cappedVelocity = Math.max(\n -maxVelocity,\n Math.min(maxVelocity, velocity)\n );\n\n // Update velocity and position\n thumbVelocity.set(cappedVelocity);\n thumbPosition.set(currentPos);\n\n // Calculate offset and rotation based on capped velocity\n // Negative velocity (moving left) -> positive offset (label lags behind to the right)\n const offsetAmount = -cappedVelocity * 12;\n const rotateAmount = -cappedVelocity * 20;\n\n labelOffset.set(offsetAmount);\n labelRotate.set(rotateAmount);\n\n // Reset to center when stopped\n setTimeout(() => {\n labelOffset.set(0);\n labelRotate.set(0);\n }, 100);\n\n prevThumbPosition.current = currentPos;\n }\n }, [\n _values,\n labelAnimation,\n thumbVelocity,\n thumbPosition,\n labelOffset,\n labelRotate,\n ]);\n\n // Memoized computed values\n const sliderColorClass = useMemo(() => {\n if (sliderColor || thumbBorderColor) {\n return {\n range: sliderColor || \"ds:bg-primary\",\n thumb: thumbBorderColor || \"ds:border-primary/50\",\n };\n }\n const config = COLOR_CONFIG[color];\n return {\n range: config.range,\n thumb: config.thumb,\n };\n }, [color, sliderColor, thumbBorderColor]);\n\n const sliderSizeClass = useMemo(() => SIZE_CONFIG[size], [size]);\n\n const labelColorClass = useMemo(() => {\n if (labelColor || labelTextColor) {\n return cn(labelColor, labelTextColor);\n }\n\n const config = COLOR_CONFIG[color];\n const direction = getArrowDirection(orientation, labelPosition);\n const arrowColor = getArrowColorClass(color, direction);\n\n if (color === \"glass\") {\n return `${config.labelBg} ${config.labelText} ds:backdrop-blur-sm ds:shadow-lg ds:[&>div.arrow]:${arrowColor}`;\n }\n\n return `${config.labelBg} ${config.labelText} ds:[&>div.arrow]:${arrowColor}`;\n }, [color, labelPosition, orientation, labelColor, labelTextColor]);\n\n const arrowColorClass = useMemo(() => {\n if (labelArrowColor) return labelArrowColor;\n const direction = getArrowDirection(orientation, labelPosition);\n return getArrowColorClass(color, direction);\n }, [color, labelPosition, orientation, labelArrowColor]);\n\n const labelVisibilityClass = useMemo(() => {\n if (showLabel === \"hover\") return \"ds:scale-0 ds:group-hover:scale-100\";\n if (showLabel === \"always\") return \"ds:scale-100\";\n return \"ds:hidden\";\n }, [showLabel]);\n\n const labelPositionClass = useMemo(\n () => getLabelPositionClasses(orientation, labelPosition),\n [labelPosition, orientation]\n );\n\n const labelPositionClassSpec = useMemo(\n () => getSpecLabelPositionClass(orientation, labelPosition),\n [labelPosition, orientation]\n );\n\n // Render label based on animation type\n const renderLabel = React.useCallback(\n (index: number) => {\n if (labelAnimation === \"spec\") {\n return (\n <motion.div\n className={cn(\n \"ds:pointer-events-none ds:absolute ds:z-50 ds:flex ds:flex-col ds:items-center ds:justify-center ds:rounded-md ds:px-3 ds:py-1.5 ds:text-xs ds:shadow-xl\",\n labelPositionClassSpec,\n labelColor && labelColor,\n labelTextColor && labelTextColor,\n !labelColor && !labelTextColor && labelColorClass\n )}\n data-orientation={orientation}\n initial={\n showLabel === \"always\"\n ? { opacity: 1, y: -5, scale: 1 }\n : { opacity: 0, y: 20, scale: 0 }\n }\n animate={\n (isHovered && showLabel === \"hover\") || showLabel === \"always\"\n ? {\n opacity: 1,\n y: -5,\n scale: 1,\n }\n : {\n opacity: 0,\n y: 20,\n scale: 0,\n }\n }\n transition={{\n type: \"tween\",\n duration: 0.2,\n ease: \"easeOut\",\n }}\n style={{\n x: labelOffset,\n rotate: labelRotate,\n whiteSpace: \"nowrap\",\n }}\n >\n <div className=\"ds:relative ds:z-1\">\n <NumberFlow\n value={_values[index]}\n format={{ notation: \"standard\" }}\n isolate\n />\n </div>\n {labelArrow && (\n <div\n className={cn(\n \"ds:arrow ds:absolute ds:border-transparent\",\n labelPositionClass.arrow,\n arrowColorClass\n )}\n />\n )}\n </motion.div>\n );\n }\n\n // Standard or number-flow animation\n return (\n <Badge\n size=\"lg\"\n color={\n labelColor || labelTextColor\n ? \"custom\"\n : color === \"glass\"\n ? \"custom\"\n : color === \"muted\"\n ? \"muted\"\n : color === \"accent\"\n ? \"accent\"\n : color\n }\n variant=\"solid\"\n className={cn(\n \"ds:transition-transform ds:absolute ds:px-3 ds:rounded-md\",\n labelPositionClass.badge,\n labelVisibilityClass,\n labelColor && labelColor,\n labelTextColor && labelTextColor,\n !labelColor &&\n !labelTextColor &&\n color === \"glass\" &&\n \"ds:bg-white/15 ds:text-foreground ds:backdrop-blur-sm ds:shadow-lg ds:[&>div.arrow]:border-t-white/15\"\n )}\n >\n {labelAnimation === \"number-flow\" ? (\n <NumberFlow\n value={_values[index]}\n format={{ notation: \"standard\" }}\n isolate\n />\n ) : (\n <span>{labelFormatter(_values[index])}</span>\n )}\n {labelArrow && (\n <div\n className={cn(\n \"ds:arrow ds:absolute ds:border-transparent\",\n labelPositionClass.arrow,\n arrowColorClass\n )}\n />\n )}\n </Badge>\n );\n },\n [\n labelAnimation,\n labelPositionClassSpec,\n labelColor,\n labelTextColor,\n labelColorClass,\n orientation,\n showLabel,\n labelOffset,\n labelRotate,\n labelFormatter,\n _values,\n color,\n labelPositionClass,\n labelVisibilityClass,\n labelArrow,\n arrowColorClass,\n isHovered,\n ]\n );\n\n // Render without label - use custom slider with color\n if (!showLabel) {\n return (\n <SliderPrimitive.Root\n ref={ref}\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n \"ds:relative ds:flex ds:w-full ds:touch-none ds:items-center ds:select-none ds:data-disabled:opacity-50 ds:data-[orientation=vertical]:h-full ds:data-[orientation=vertical]:min-h-44 ds:data-[orientation=vertical]:w-auto ds:data-[orientation=vertical]:flex-col\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n \"ds:bg-muted ds:relative ds:grow ds:overflow-hidden ds:rounded-full ds:data-[orientation=horizontal]:w-full ds:data-[orientation=vertical]:h-full\",\n sliderSizeClass.track\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn(\n \"ds:absolute ds:data-[orientation=horizontal]:h-full ds:data-[orientation=vertical]:w-full\",\n sliderColorClass.range\n )}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n key={index}\n data-slot=\"slider-thumb\"\n className={cn(\n \"ds:block ds:shrink-0 ds:rounded-full ds:border ds:bg-white ds:shadow-sm ds:transition-[color,box-shadow] ds:hover:ring-4 ds:focus-visible:ring-4 ds:focus-visible:outline-hidden ds:disabled:pointer-events-none ds:disabled:opacity-50 ds:ring-ring/50\",\n sliderColorClass.thumb,\n sliderSizeClass.thumb\n )}\n />\n ))}\n </SliderPrimitive.Root>\n );\n }\n\n // Render with label (standard, number-flow, or spec animation)\n return (\n <SliderPrimitive.Root\n ref={ref}\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n \"ds:relative ds:flex ds:w-full ds:touch-none ds:items-center ds:select-none ds:data-disabled:opacity-50 ds:data-[orientation=vertical]:h-full ds:data-[orientation=vertical]:min-h-44 ds:data-[orientation=vertical]:w-auto ds:data-[orientation=vertical]:flex-col\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n \"ds:bg-muted ds:relative ds:grow ds:overflow-hidden ds:rounded-full ds:data-[orientation=horizontal]:w-full ds:data-[orientation=vertical]:h-full\",\n sliderSizeClass.track\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn(\n \"ds:absolute ds:data-[orientation=horizontal]:h-full ds:data-[orientation=vertical]:w-full\",\n sliderColorClass.range\n )}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n key={index}\n data-slot=\"slider-thumb\"\n className={cn(\n \"ds:group ds:block ds:shrink-0 ds:rounded-full ds:border ds:bg-white ds:shadow-sm ds:transition-[color,box-shadow] ds:hover:ring-4 ds:focus-visible:ring-4 ds:focus-visible:outline-hidden ds:disabled:pointer-events-none ds:disabled:opacity-50 ds:ring-ring/50\",\n sliderColorClass.thumb,\n sliderSizeClass.thumb\n )}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n {renderLabel(index)}\n </SliderPrimitive.Thumb>\n ))}\n </SliderPrimitive.Root>\n );\n }\n);\n\nSlider.displayName = \"Slider\";\n\nexport default Slider;\n"],"names":["COLOR_CONFIG","SIZE_CONFIG","getArrowDirection","orientation","position","getArrowColorClass","color","direction","prefix","getLabelPositionClasses","getSpecLabelPositionClass","Slider","React","className","size","showLabel","labelArrow","labelAnimation","labelFormatter","value","labelPosition","labelColor","labelTextColor","labelArrowColor","sliderColor","thumbBorderColor","defaultValue","min","max","props","ref","_values","isHovered","setIsHovered","thumbPosition","useMotionValue","thumbVelocity","prevThumbPosition","springConfig","labelOffset","useSpring","labelRotate","currentPos","velocity","maxVelocity","cappedVelocity","offsetAmount","rotateAmount","sliderColorClass","useMemo","config","sliderSizeClass","labelColorClass","cn","arrowColor","arrowColorClass","labelVisibilityClass","labelPositionClass","labelPositionClassSpec","renderLabel","index","jsxs","motion","jsx","NumberFlow","Badge","SliderPrimitive","_"],"mappings":"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"}
@@ -33,7 +33,7 @@ import "@radix-ui/react-slider";
33
33
  import "../../packages/ui/src/components/tabs.js";
34
34
  import "../../packages/ui/src/components/toggle.js";
35
35
  import { useComposedRefs as vt } from "../../packages/ui/src/lib/compose-refs.js";
36
- const gt = "Stepper", At = "StepperList", dt = "StepperItem", nt = "StepperTrigger", lt = "StepperIndicator", pt = "StepperSeparator", ft = "StepperTitle", mt = "StepperDescription", Et = "StepperContent", Nt = "StepperPrev", Rt = "StepperNext", Tt = "stepperFocusGroup.onEntryFocus", Mt = { bubbles: !1, cancelable: !0 }, Dt = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"], at = {
36
+ const gt = "Stepper", At = "StepperList", it = "StepperItem", nt = "StepperTrigger", lt = "StepperIndicator", pt = "StepperSeparator", ft = "StepperTitle", mt = "StepperDescription", Et = "StepperContent", Nt = "StepperPrev", Rt = "StepperNext", Tt = "stepperFocusGroup.onEntryFocus", Mt = { bubbles: !1, cancelable: !0 }, Dt = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"], at = {
37
37
  primary: {
38
38
  indicator: {
39
39
  active: "ds:border-primary ds:bg-primary ds:text-primary-foreground ds:data-[variant=dot]:bg-primary/30 ds:data-[variant=dot]:border-primary/0",
@@ -199,8 +199,8 @@ function bt(e) {
199
199
  return t.current === null && (t.current = e()), t;
200
200
  }
201
201
  function Z(e, t, s, l, b = "item") {
202
- const a = Array.from(l.keys()), i = a.indexOf(t);
203
- return s?.completed ? "completed" : e === t ? b === "separator" ? "inactive" : "active" : e && a.indexOf(e) > i ? "completed" : "inactive";
202
+ const a = Array.from(l.keys()), d = a.indexOf(t);
203
+ return s?.completed ? "completed" : e === t ? b === "separator" ? "inactive" : "active" : e && a.indexOf(e) > d ? "completed" : "inactive";
204
204
  }
205
205
  const Kt = o.createContext(void 0);
206
206
  function $t(e) {
@@ -235,13 +235,13 @@ function Ae(e) {
235
235
  onValueChange: l,
236
236
  onValueComplete: b,
237
237
  onValueAdd: a,
238
- onValueRemove: i,
238
+ onValueRemove: d,
239
239
  onValidate: m,
240
240
  id: f,
241
241
  dir: n,
242
242
  orientation: v = "horizontal",
243
243
  activationMode: c = "automatic",
244
- asChild: d,
244
+ asChild: i,
245
245
  disabled: C = !1,
246
246
  nonInteractive: y = !1,
247
247
  loop: A = !1,
@@ -258,7 +258,7 @@ function Ae(e) {
258
258
  onValueChange: l,
259
259
  onValueComplete: b,
260
260
  onValueAdd: a,
261
- onValueRemove: i,
261
+ onValueRemove: d,
262
262
  onValidate: m
263
263
  }), u = o.useMemo(() => ({
264
264
  subscribe: (r) => (O.current.add(r), () => O.current.delete(r)),
@@ -326,7 +326,7 @@ function Ae(e) {
326
326
  T,
327
327
  M
328
328
  ]
329
- ), Y = d ? z : "div";
329
+ ), Y = i ? z : "div";
330
330
  return /* @__PURE__ */ k(Ct.Provider, { value: u, children: /* @__PURE__ */ k(St.Provider, { value: _, children: /* @__PURE__ */ k(
331
331
  Y,
332
332
  {
@@ -354,10 +354,10 @@ function Ut(e) {
354
354
  return t;
355
355
  }
356
356
  function Ee(e) {
357
- const { className: t, children: s, asChild: l, ref: b, ...a } = e, i = X(At), m = i.orientation, f = R((r) => r.value), [n, v] = o.useState(null), [c, d] = o.useState(!1), [C, y] = o.useState(0), A = o.useRef(!1), g = o.useRef(/* @__PURE__ */ new Map()), x = o.useRef(null), T = vt(b, x), M = o.useCallback((r) => {
357
+ const { className: t, children: s, asChild: l, ref: b, ...a } = e, d = X(At), m = d.orientation, f = R((r) => r.value), [n, v] = o.useState(null), [c, i] = o.useState(!1), [C, y] = o.useState(0), A = o.useRef(!1), g = o.useRef(/* @__PURE__ */ new Map()), x = o.useRef(null), T = vt(b, x), M = o.useCallback((r) => {
358
358
  v(r);
359
359
  }, []), V = o.useCallback(() => {
360
- d(!0);
360
+ i(!0);
361
361
  }, []), w = o.useCallback(() => {
362
362
  y((r) => r + 1);
363
363
  }, []), O = o.useCallback(() => {
@@ -373,7 +373,7 @@ function Ee(e) {
373
373
  return P & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : P & Node.DOCUMENT_POSITION_PRECEDING ? 1 : 0;
374
374
  }), []), F = o.useCallback(
375
375
  (r) => {
376
- a.onBlur?.(r), !r.defaultPrevented && d(!1);
376
+ a.onBlur?.(r), !r.defaultPrevented && i(!1);
377
377
  },
378
378
  [a.onBlur]
379
379
  ), K = o.useCallback(
@@ -431,7 +431,7 @@ function Ee(e) {
431
431
  "aria-orientation": m,
432
432
  "data-orientation": m,
433
433
  "data-slot": "stepper-list",
434
- dir: i.dir,
434
+ dir: d.dir,
435
435
  tabIndex: c || C === 0 ? -1 : 0,
436
436
  ...a,
437
437
  ref: T,
@@ -453,7 +453,7 @@ const It = o.createContext(
453
453
  function et(e) {
454
454
  const t = o.useContext(It);
455
455
  if (!t)
456
- throw new Error(`\`${e}\` must be used within \`${dt}\``);
456
+ throw new Error(`\`${e}\` must be used within \`${it}\``);
457
457
  return t;
458
458
  }
459
459
  function Ne(e) {
@@ -463,10 +463,10 @@ function Ne(e) {
463
463
  disabled: l = !1,
464
464
  asChild: b,
465
465
  className: a,
466
- children: i,
466
+ children: d,
467
467
  ref: m,
468
468
  ...f
469
- } = e, n = X(dt), v = tt(dt), c = n.orientation, d = n.labelPosition ?? "right", C = R((u) => u.value);
469
+ } = e, n = X(it), v = tt(it), c = n.orientation, i = n.labelPosition ?? "right", C = R((u) => u.value);
470
470
  Q(() => (v.addStep(t, s, l), () => {
471
471
  v.removeStep(t);
472
472
  }), [t, s, l]), Q(() => {
@@ -480,10 +480,10 @@ function Ne(e) {
480
480
  [t, y]
481
481
  ), O = () => {
482
482
  const u = "ds:relative ds:flex";
483
- return c === "horizontal" ? d === "top" || d === "bottom" ? `${u} flex-col items-center flex-1 gap-2` : `${u} flex-row items-center not-last:flex-1` : `${u} flex-col`;
483
+ return c === "horizontal" ? i === "top" || i === "bottom" ? `${u} ds:flex-col ds:items-center ds:flex-1 ds:gap-2` : `${u} ds:flex-row ds:items-center ds:not-last:flex-1` : `${u} ds:flex-col`;
484
484
  }, h = o.useMemo(() => {
485
- if (c === "horizontal" && (d === "top" || d === "bottom")) {
486
- const u = o.Children.toArray(i);
485
+ if (c === "horizontal" && (i === "top" || i === "bottom")) {
486
+ const u = o.Children.toArray(d);
487
487
  let F = null, K = null, $ = null;
488
488
  const _ = [];
489
489
  u.forEach((P) => {
@@ -534,13 +534,13 @@ function Ne(e) {
534
534
  },
535
535
  "indicator-row"
536
536
  );
537
- return d === "top" ? [F, E, ..._] : [E, F, ..._];
537
+ return i === "top" ? [F, E, ..._] : [E, F, ..._];
538
538
  }
539
- return i;
539
+ return d;
540
540
  }, [
541
- i,
542
- c,
543
541
  d,
542
+ c,
543
+ i,
544
544
  M,
545
545
  V,
546
546
  T,
@@ -557,7 +557,7 @@ function Ne(e) {
557
557
  "data-orientation": c,
558
558
  "data-state": g,
559
559
  "data-slot": "stepper-item",
560
- "data-label-position": d,
560
+ "data-label-position": i,
561
561
  dir: n.dir,
562
562
  ...f,
563
563
  ref: m,
@@ -567,7 +567,7 @@ function Ne(e) {
567
567
  ) });
568
568
  }
569
569
  function Wt(e) {
570
- const { asChild: t, disabled: s, className: l, ref: b, ...a } = e, i = X(nt), m = et(nt), f = tt(nt), n = Ut(nt), v = R((p) => p.value), c = m.value, d = R((p) => p.steps.get(c)), C = i.activationMode, y = i.orientation, A = i.loop, g = i.labelPosition ?? "right", x = R((p) => p.steps), M = Array.from(x.keys()).indexOf(c) + 1, V = x.size, w = H(i.id, "trigger", c), O = H(i.id, "content", c), h = H(i.id, "title", c), I = H(i.id, "description", c), u = i.disabled || d?.disabled || s, F = v === c, K = n.tabStopId === w, $ = Z(v, c, d, x), _ = o.useRef(null), Y = vt(b, _), r = o.useRef(!1), S = o.useRef(!1);
570
+ const { asChild: t, disabled: s, className: l, ref: b, ...a } = e, d = X(nt), m = et(nt), f = tt(nt), n = Ut(nt), v = R((p) => p.value), c = m.value, i = R((p) => p.steps.get(c)), C = d.activationMode, y = d.orientation, A = d.loop, g = d.labelPosition ?? "right", x = R((p) => p.steps), M = Array.from(x.keys()).indexOf(c) + 1, V = x.size, w = H(d.id, "trigger", c), O = H(d.id, "content", c), h = H(d.id, "title", c), I = H(d.id, "description", c), u = d.disabled || i?.disabled || s, F = v === c, K = n.tabStopId === w, $ = Z(v, c, i, x), _ = o.useRef(null), Y = vt(b, _), r = o.useRef(!1), S = o.useRef(!1);
571
571
  o.useEffect(() => {
572
572
  function p(q) {
573
573
  Dt.includes(q.key) && (r.current = !0);
@@ -589,14 +589,14 @@ function Wt(e) {
589
589
  }), [n, w, c, K, u]);
590
590
  const N = o.useCallback(
591
591
  async (p) => {
592
- if (a.onClick?.(p), !p.defaultPrevented && !u && !i.nonInteractive) {
592
+ if (a.onClick?.(p), !p.defaultPrevented && !u && !d.nonInteractive) {
593
593
  const D = Array.from(x.keys()).indexOf(v ?? ""), L = Array.from(x.keys()).indexOf(c) > D ? "next" : "prev";
594
594
  await f.setStateWithValidation(c, L);
595
595
  }
596
596
  },
597
597
  [
598
598
  u,
599
- i.nonInteractive,
599
+ d.nonInteractive,
600
600
  f,
601
601
  c,
602
602
  v,
@@ -608,7 +608,7 @@ function Wt(e) {
608
608
  if (a.onFocus?.(p), p.defaultPrevented) return;
609
609
  n.onItemFocus(w);
610
610
  const D = !S.current;
611
- if (!F && !u && C !== "manual" && !i.nonInteractive && D) {
611
+ if (!F && !u && C !== "manual" && !d.nonInteractive && D) {
612
612
  const q = Array.from(x.keys()).indexOf(v || ""), G = Array.from(x.keys()).indexOf(c) > q ? "next" : "prev";
613
613
  await f.setStateWithValidation(c, G);
614
614
  }
@@ -620,7 +620,7 @@ function Wt(e) {
620
620
  C,
621
621
  F,
622
622
  u,
623
- i.nonInteractive,
623
+ d.nonInteractive,
624
624
  f,
625
625
  c,
626
626
  v,
@@ -630,11 +630,11 @@ function Wt(e) {
630
630
  ), P = o.useCallback(
631
631
  async (p) => {
632
632
  if (a.onKeyDown?.(p), p.defaultPrevented) return;
633
- if (p.key === "Enter" && i.nonInteractive) {
633
+ if (p.key === "Enter" && d.nonInteractive) {
634
634
  p.preventDefault();
635
635
  return;
636
636
  }
637
- if ((p.key === "Enter" || p.key === " ") && C === "manual" && !i.nonInteractive) {
637
+ if ((p.key === "Enter" || p.key === " ") && C === "manual" && !d.nonInteractive) {
638
638
  p.preventDefault(), !u && _.current && _.current.click();
639
639
  return;
640
640
  }
@@ -643,7 +643,7 @@ function Wt(e) {
643
643
  return;
644
644
  }
645
645
  if (p.target !== p.currentTarget) return;
646
- const D = _t(p, i.dir, y);
646
+ const D = _t(p, d.dir, y);
647
647
  if (D !== void 0) {
648
648
  if (p.metaKey || p.ctrlKey || p.altKey || p.shiftKey)
649
649
  return;
@@ -661,14 +661,14 @@ function Wt(e) {
661
661
  }
662
662
  if (f.hasValidation() && L.length > 0) {
663
663
  const st = L[0]?.current, J = q.find(
664
- (it) => it.ref.current === st
664
+ (dt) => dt.ref.current === st
665
665
  );
666
666
  if (J && J.value !== c) {
667
- const it = Array.from(x.keys()).indexOf(
667
+ const dt = Array.from(x.keys()).indexOf(
668
668
  v || ""
669
669
  ), ut = Array.from(x.keys()).indexOf(
670
670
  J.value
671
- ) > it ? "next" : "prev";
671
+ ) > dt ? "next" : "prev";
672
672
  if (ut === "next") {
673
673
  if (!await f.setStateWithValidation(
674
674
  J.value,
@@ -685,8 +685,8 @@ function Wt(e) {
685
685
  },
686
686
  [
687
687
  n,
688
- i.nonInteractive,
689
- i.dir,
688
+ d.nonInteractive,
689
+ d.dir,
690
690
  C,
691
691
  y,
692
692
  A,
@@ -702,7 +702,7 @@ function Wt(e) {
702
702
  a.onMouseDown?.(p), !p.defaultPrevented && (S.current = !0, u ? p.preventDefault() : n.onItemFocus(w));
703
703
  },
704
704
  [n, w, u, a.onMouseDown]
705
- ), rt = () => y === "horizontal" && (g === "top" || g === "bottom") ? g === "top" ? "flex-col-reverse" : "flex-col" : g === "top" ? "flex-col-reverse" : g === "bottom" ? "flex-col" : g === "left" ? "flex-row-reverse" : "flex-row", U = y === "horizontal" && (g === "top" || g === "bottom"), ot = o.useMemo(() => U ? o.Children.toArray(a.children).filter((D) => o.isValidElement(D) ? !(D.props["data-slot"] === "stepper-indicator" || D.type === wt) : !0) : a.children, [U, a.children]);
705
+ ), rt = () => y === "horizontal" && (g === "top" || g === "bottom") ? g === "top" ? "ds:flex-col-reverse" : "ds:flex-col" : g === "top" ? "ds:flex-col-reverse" : g === "bottom" ? "ds:flex-col" : g === "left" ? "ds:flex-row-reverse" : "ds:flex-row", U = y === "horizontal" && (g === "top" || g === "bottom"), ot = o.useMemo(() => U ? o.Children.toArray(a.children).filter((D) => o.isValidElement(D) ? !(D.props["data-slot"] === "stepper-indicator" || D.type === wt) : !0) : a.children, [U, a.children]);
706
706
  return /* @__PURE__ */ k(
707
707
  t ? z : "button",
708
708
  {
@@ -744,10 +744,10 @@ function wt(e) {
744
744
  asChild: l,
745
745
  ref: b,
746
746
  color: a,
747
- customColor: i,
747
+ customColor: d,
748
748
  variant: m,
749
749
  ...f
750
- } = e, n = X(lt), v = et(lt), c = R((I) => I.value), d = v.value, C = R((I) => I.steps.get(d)), y = R((I) => I.steps), A = Array.from(y.keys()).indexOf(d) + 1, g = Z(c, d, C, y), x = a ?? n.color, T = i ?? n.customColor, M = m ?? n.variant ?? "normal", V = Ot(x, T, g), w = ct(T, g, !0), O = l ? z : "div", h = M === "dot";
750
+ } = e, n = X(lt), v = et(lt), c = R((I) => I.value), i = v.value, C = R((I) => I.steps.get(i)), y = R((I) => I.steps), A = Array.from(y.keys()).indexOf(i) + 1, g = Z(c, i, C, y), x = a ?? n.color, T = d ?? n.customColor, M = m ?? n.variant ?? "normal", V = Ot(x, T, g), w = ct(T, g, !0), O = l ? z : "div", h = M === "dot";
751
751
  return /* @__PURE__ */ k(
752
752
  O,
753
753
  {
@@ -775,9 +775,9 @@ function Bt(e) {
775
775
  forceMount: l = !1,
776
776
  ref: b,
777
777
  color: a,
778
- customColor: i,
778
+ customColor: d,
779
779
  ...m
780
- } = e, f = X(pt), n = et(pt), v = R((h) => h.value), c = f.orientation, d = f.labelPosition ?? "right", C = R((h) => h.steps);
780
+ } = e, f = X(pt), n = et(pt), v = R((h) => h.value), c = f.orientation, i = f.labelPosition ?? "right", C = R((h) => h.steps);
781
781
  if (Array.from(C.keys()).indexOf(n.value) === C.size - 1 && !l)
782
782
  return null;
783
783
  const g = Z(
@@ -786,7 +786,7 @@ function Bt(e) {
786
786
  n.stepState,
787
787
  C,
788
788
  "separator"
789
- ), x = a ?? f.color, T = i ?? f.customColor, M = xt(x, T, g), V = ct(T, g, !1), w = s ? z : "div", O = () => c === "horizontal" ? "h-px flex-1" : d === "top" || d === "bottom" ? "w-px absolute left-1/2 -translate-x-1/2 top-full h-full -z-10" : d === "left" ? "w-px absolute right-0 top-full h-full -z-10 translate-x-1/2" : "w-px absolute left-0 top-full h-full -z-10 -translate-x-1/2";
789
+ ), x = a ?? f.color, T = d ?? f.customColor, M = xt(x, T, g), V = ct(T, g, !1), w = s ? z : "div", O = () => c === "horizontal" ? "ds:h-px ds:flex-1" : i === "top" || i === "bottom" ? "ds:w-px ds:absolute ds:left-1/2 ds:-translate-x-1/2 ds:top-full ds:h-full ds:-z-10" : i === "left" ? "ds:w-px ds:absolute ds:right-0 ds:top-full ds:h-full ds:-z-10 ds:translate-x-1/2" : "ds:w-px ds:absolute ds:left-0 ds:top-full ds:h-full ds:-z-10 ds:-translate-x-1/2";
790
790
  return /* @__PURE__ */ k(
791
791
  w,
792
792
  {
@@ -810,7 +810,7 @@ function Bt(e) {
810
810
  );
811
811
  }
812
812
  function Re(e) {
813
- const { className: t, asChild: s, ref: l, ...b } = e, a = X(ft), i = et(ft), m = H(a.id, "title", i.value);
813
+ const { className: t, asChild: s, ref: l, ...b } = e, a = X(ft), d = et(ft), m = H(a.id, "title", d.value);
814
814
  return /* @__PURE__ */ k(
815
815
  s ? z : "span",
816
816
  {
@@ -824,7 +824,7 @@ function Re(e) {
824
824
  );
825
825
  }
826
826
  function Te(e) {
827
- const { className: t, asChild: s, ref: l, ...b } = e, a = X(mt), i = et(mt), m = H(a.id, "description", i.value);
827
+ const { className: t, asChild: s, ref: l, ...b } = e, a = X(mt), d = et(mt), m = H(a.id, "description", d.value);
828
828
  return /* @__PURE__ */ k(
829
829
  s ? z : "span",
830
830
  {
@@ -844,8 +844,8 @@ function Me(e) {
844
844
  forceMount: l = !1,
845
845
  ref: b,
846
846
  className: a,
847
- ...i
848
- } = e, m = X(Et), f = R((d) => d.value), n = H(m.id, "content", t), v = H(m.id, "trigger", t);
847
+ ...d
848
+ } = e, m = X(Et), f = R((i) => i.value), n = H(m.id, "content", t), v = H(m.id, "trigger", t);
849
849
  return t !== f && !l ? null : /* @__PURE__ */ k(
850
850
  s ? z : "div",
851
851
  {
@@ -854,16 +854,16 @@ function Me(e) {
854
854
  "aria-labelledby": v,
855
855
  "data-slot": "stepper-content",
856
856
  dir: m.dir,
857
- ...i,
857
+ ...d,
858
858
  ref: b,
859
859
  className: B("ds:flex-1 ds:outline-none", a)
860
860
  }
861
861
  );
862
862
  }
863
863
  function De(e) {
864
- const { asChild: t, disabled: s, ...l } = e, b = tt(Nt), a = R((d) => d.value), i = R((d) => d.steps), m = Array.from(i.keys()), f = a ? m.indexOf(a) : -1, n = s || f <= 0, v = o.useCallback(
865
- async (d) => {
866
- if (l.onClick?.(d), d.defaultPrevented || n) return;
864
+ const { asChild: t, disabled: s, ...l } = e, b = tt(Nt), a = R((i) => i.value), d = R((i) => i.steps), m = Array.from(d.keys()), f = a ? m.indexOf(a) : -1, n = s || f <= 0, v = o.useCallback(
865
+ async (i) => {
866
+ if (l.onClick?.(i), i.defaultPrevented || n) return;
867
867
  const C = Math.max(f - 1, 0), y = m[C];
868
868
  y && b.setState("value", y);
869
869
  },
@@ -881,9 +881,9 @@ function De(e) {
881
881
  );
882
882
  }
883
883
  function Oe(e) {
884
- const { asChild: t, disabled: s, ...l } = e, b = tt(Rt), a = R((d) => d.value), i = R((d) => d.steps), m = Array.from(i.keys()), f = a ? m.indexOf(a) : -1, n = s || f >= m.length - 1, v = o.useCallback(
885
- async (d) => {
886
- if (l.onClick?.(d), d.defaultPrevented || n) return;
884
+ const { asChild: t, disabled: s, ...l } = e, b = tt(Rt), a = R((i) => i.value), d = R((i) => i.steps), m = Array.from(d.keys()), f = a ? m.indexOf(a) : -1, n = s || f >= m.length - 1, v = o.useCallback(
885
+ async (i) => {
886
+ if (l.onClick?.(i), i.defaultPrevented || n) return;
887
887
  const C = Math.min(f + 1, m.length - 1), y = m[C];
888
888
  y && await b.setStateWithValidation(y, "next");
889
889
  },