@purpur/library 9.0.0 → 9.0.1

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 (93) hide show
  1. package/CHANGELOG.json +12 -0
  2. package/CHANGELOG.md +8 -1
  3. package/dist/LICENSE.txt +5 -5
  4. package/dist/checkbox-Dk3bZkZ3.js.map +1 -1
  5. package/dist/checkbox-LYzMiXu7.mjs.map +1 -1
  6. package/dist/chip-group-CJVvfl_J.mjs.map +1 -1
  7. package/dist/chip-group-aj1fdnjC.js.map +1 -1
  8. package/dist/{date-picker-BRkh2YEH.mjs → date-picker-BRnwwZv1.mjs} +364 -354
  9. package/dist/date-picker-BRnwwZv1.mjs.map +1 -0
  10. package/dist/date-picker-DlJGggam.js +2 -0
  11. package/dist/date-picker-DlJGggam.js.map +1 -0
  12. package/dist/date-picker.cjs.js +1 -1
  13. package/dist/date-picker.es.js +1 -1
  14. package/dist/floating-ui.react-dom-0ol4sFzt.mjs +1363 -0
  15. package/dist/floating-ui.react-dom-0ol4sFzt.mjs.map +1 -0
  16. package/dist/floating-ui.react-dom-Cc_YSprQ.js +2 -0
  17. package/dist/floating-ui.react-dom-Cc_YSprQ.js.map +1 -0
  18. package/dist/index-2cFVyGXq.js.map +1 -1
  19. package/dist/index-B8Mazo6u.mjs.map +1 -1
  20. package/dist/index-BG6K_yAm.js.map +1 -1
  21. package/dist/index-BVmlsxuF.js.map +1 -1
  22. package/dist/index-BbtRr5Q6.js.map +1 -1
  23. package/dist/index-BtWPC8xc.js.map +1 -1
  24. package/dist/index-ByaXH_ih.mjs.map +1 -1
  25. package/dist/index-C1AXAWlO.mjs.map +1 -1
  26. package/dist/index-CCNZ9uWB.mjs.map +1 -1
  27. package/dist/index-CEQ35j8b.mjs.map +1 -1
  28. package/dist/index-CKCTy3ZL.mjs.map +1 -1
  29. package/dist/index-CLMd7NJE.mjs.map +1 -1
  30. package/dist/index-Cje7xxa1.js.map +1 -1
  31. package/dist/index-CleLBinl.js.map +1 -1
  32. package/dist/index-CoR7YA3H.js.map +1 -1
  33. package/dist/index-CxBG4Ssm.js.map +1 -1
  34. package/dist/index-DA01QPpC.js.map +1 -1
  35. package/dist/index-DCcK_d4W.mjs.map +1 -1
  36. package/dist/index-DDrLXRUs.mjs.map +1 -1
  37. package/dist/index-DLcqcWxM.mjs.map +1 -1
  38. package/dist/index-DOFLOnao.js.map +1 -1
  39. package/dist/index-DOfn3ixy.mjs.map +1 -1
  40. package/dist/index-DPxjTK4w.mjs.map +1 -1
  41. package/dist/index-DSf4qCR-.mjs.map +1 -1
  42. package/dist/index-DlMXYAr3.js.map +1 -1
  43. package/dist/index-HJvG7FXj.js.map +1 -1
  44. package/dist/index-Hk_HrrHM.js.map +1 -1
  45. package/dist/index-IpWiejWQ.mjs.map +1 -1
  46. package/dist/index-MiRhI3nq.mjs.map +1 -1
  47. package/dist/index-_XxjJPRD.js.map +1 -1
  48. package/dist/index-kcwFA4Dv.js.map +1 -1
  49. package/dist/index-tyLV0iiH.mjs.map +1 -1
  50. package/dist/label-7sJe5-pX.mjs.map +1 -1
  51. package/dist/label-yHK80hhV.js.map +1 -1
  52. package/dist/library.cjs.js +1 -1
  53. package/dist/library.es.js +5 -5
  54. package/dist/{popover-CYyCtoef.js → popover-B1BgSoQx.js} +2 -2
  55. package/dist/{popover-CYyCtoef.js.map → popover-B1BgSoQx.js.map} +1 -1
  56. package/dist/{popover-C6nZb3cQ.mjs → popover-DBMI9Jy1.mjs} +4 -4
  57. package/dist/{popover-C6nZb3cQ.mjs.map → popover-DBMI9Jy1.mjs.map} +1 -1
  58. package/dist/popover.cjs.js +1 -1
  59. package/dist/popover.es.js +1 -1
  60. package/dist/slider-CDOrFmK-.mjs.map +1 -1
  61. package/dist/slider-_R6JmPZl.js.map +1 -1
  62. package/dist/{stepper-DA0c9Utm.js → stepper-B248FwO-.js} +2 -2
  63. package/dist/{stepper-DA0c9Utm.js.map → stepper-B248FwO-.js.map} +1 -1
  64. package/dist/{stepper-D81jmbEf.mjs → stepper-BfIbJwZn.mjs} +2 -2
  65. package/dist/{stepper-D81jmbEf.mjs.map → stepper-BfIbJwZn.mjs.map} +1 -1
  66. package/dist/stepper.cjs.js +1 -1
  67. package/dist/stepper.es.js +1 -1
  68. package/dist/{table-Dd58bK_Q.js → table-BNeo_B1h.js} +2 -2
  69. package/dist/{table-Dd58bK_Q.js.map → table-BNeo_B1h.js.map} +1 -1
  70. package/dist/{table-CIrmGGb2.mjs → table-DvcpczWf.mjs} +2 -2
  71. package/dist/{table-CIrmGGb2.mjs.map → table-DvcpczWf.mjs.map} +1 -1
  72. package/dist/table.cjs.js +1 -1
  73. package/dist/table.es.js +1 -1
  74. package/dist/tabs-CfHd4UQ2.js.map +1 -1
  75. package/dist/tabs-CoXMAwMx.mjs.map +1 -1
  76. package/dist/toggle-C8IwTbX8.js.map +1 -1
  77. package/dist/toggle-Cezg5MUc.mjs.map +1 -1
  78. package/dist/{tooltip-870Nmk-v.js → tooltip-CLQLxoaf.js} +2 -2
  79. package/dist/{tooltip-870Nmk-v.js.map → tooltip-CLQLxoaf.js.map} +1 -1
  80. package/dist/{tooltip-Cqfj0lSz.mjs → tooltip-DXi7ikUT.mjs} +2 -2
  81. package/dist/{tooltip-Cqfj0lSz.mjs.map → tooltip-DXi7ikUT.mjs.map} +1 -1
  82. package/dist/tooltip.cjs.js +1 -1
  83. package/dist/tooltip.es.js +1 -1
  84. package/dist/visually-hidden-BYFkJEp1.mjs.map +1 -1
  85. package/dist/visually-hidden-C2CKovZx.js.map +1 -1
  86. package/package.json +68 -68
  87. package/dist/date-picker-BRkh2YEH.mjs.map +0 -1
  88. package/dist/date-picker-C2Wtf7XQ.js +0 -2
  89. package/dist/date-picker-C2Wtf7XQ.js.map +0 -1
  90. package/dist/floating-ui.react-dom-B_rB55Mr.mjs +0 -1340
  91. package/dist/floating-ui.react-dom-B_rB55Mr.mjs.map +0 -1
  92. package/dist/floating-ui.react-dom-z0lMBJ4R.js +0 -2
  93. package/dist/floating-ui.react-dom-z0lMBJ4R.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"slider-CDOrFmK-.mjs","sources":["../../../common/temp/node_modules/.pnpm/@radix-ui+react-slider@1.2.4_@types+react-dom@19.2.3_@types+react@19.2.10__@types+react_0022d7e088a5b0b380fe17f810234c79/node_modules/@radix-ui/react-slider/dist/index.mjs","../../../components/slider/src/slider.tsx"],"sourcesContent":["\"use client\";\n\n// packages/react/slider/src/slider.tsx\nimport * as React from \"react\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar PAGE_KEYS = [\"PageUp\", \"PageDown\"];\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar BACK_KEYS = {\n \"from-left\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowLeft\"],\n \"from-right\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowRight\"],\n \"from-bottom\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowLeft\"],\n \"from-top\": [\"Home\", \"PageDown\", \"ArrowUp\", \"ArrowLeft\"]\n};\nvar SLIDER_NAME = \"Slider\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SLIDER_NAME);\nvar [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope\n]);\nvar [SliderProvider, useSliderContext] = createSliderContext(SLIDER_NAME);\nvar Slider = React.forwardRef(\n (props, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = \"horizontal\",\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {\n },\n onValueCommit = () => {\n },\n inverted = false,\n form,\n ...sliderProps\n } = props;\n const thumbRefs = React.useRef(/* @__PURE__ */ new Set());\n const valueIndexToChangeRef = React.useRef(0);\n const isHorizontal = orientation === \"horizontal\";\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value2) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value2);\n }\n });\n const valuesBeforeSlideStartRef = React.useRef(values);\n function handleSlideStart(value2) {\n const closestIndex = getClosestValueIndex(values, value2);\n updateValues(value2, closestIndex);\n }\n function handleSlideMove(value2) {\n updateValues(value2, valueIndexToChangeRef.current);\n }\n function handleSlideEnd() {\n const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];\n const nextValue = values[valueIndexToChangeRef.current];\n const hasChanged = nextValue !== prevValue;\n if (hasChanged) onValueCommit(values);\n }\n function updateValues(value2, atIndex, { commit } = { commit: false }) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value2 - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n const hasChanged = String(nextValues) !== String(prevValues);\n if (hasChanged && commit) onValueCommit(nextValues);\n return hasChanged ? nextValues : prevValues;\n } else {\n return prevValues;\n }\n });\n }\n return /* @__PURE__ */ jsx(\n SliderProvider,\n {\n scope: props.__scopeSlider,\n name,\n disabled,\n min,\n max,\n valueIndexToChangeRef,\n thumbs: thumbRefs.current,\n values,\n orientation,\n form,\n children: /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(\n SliderOrientation,\n {\n \"aria-disabled\": disabled,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...sliderProps,\n ref: forwardedRef,\n onPointerDown: composeEventHandlers(sliderProps.onPointerDown, () => {\n if (!disabled) valuesBeforeSlideStartRef.current = values;\n }),\n min,\n max,\n inverted,\n onSlideStart: disabled ? void 0 : handleSlideStart,\n onSlideMove: disabled ? void 0 : handleSlideMove,\n onSlideEnd: disabled ? void 0 : handleSlideEnd,\n onHomeKeyDown: () => !disabled && updateValues(min, 0, { commit: true }),\n onEndKeyDown: () => !disabled && updateValues(max, values.length - 1, { commit: true }),\n onStepKeyDown: ({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || event.shiftKey && ARROW_KEYS.includes(event.key);\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value2 = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value2 + stepInDirection, atIndex, { commit: true });\n }\n }\n }\n ) }) })\n }\n );\n }\n);\nSlider.displayName = SLIDER_NAME;\nvar [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext(SLIDER_NAME, {\n startEdge: \"left\",\n endEdge: \"right\",\n size: \"width\",\n direction: 1\n});\nvar SliderHorizontal = React.forwardRef(\n (props, forwardedRef) => {\n const {\n min,\n max,\n dir,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef(void 0);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === \"ltr\";\n const isSlidingFromLeft = isDirectionLTR && !inverted || !isDirectionLTR && inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || slider.getBoundingClientRect();\n const input = [0, rect.width];\n const output = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromLeft ? \"left\" : \"right\",\n endEdge: isSlidingFromLeft ? \"right\" : \"left\",\n direction: isSlidingFromLeft ? 1 : -1,\n size: \"width\",\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n dir: direction,\n \"data-orientation\": \"horizontal\",\n ...sliderProps,\n ref: composedRefs,\n style: {\n ...sliderProps.style,\n [\"--radix-slider-thumb-transform\"]: \"translateX(-50%)\"\n },\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart?.(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove?.(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd?.();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromLeft ? \"from-left\" : \"from-right\";\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }\n }\n )\n }\n );\n }\n);\nvar SliderVertical = React.forwardRef(\n (props, forwardedRef) => {\n const {\n min,\n max,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const sliderRef = React.useRef(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef(void 0);\n const isSlidingFromBottom = !inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || sliderRef.current.getBoundingClientRect();\n const input = [0, rect.height];\n const output = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromBottom ? \"bottom\" : \"top\",\n endEdge: isSlidingFromBottom ? \"top\" : \"bottom\",\n size: \"height\",\n direction: isSlidingFromBottom ? 1 : -1,\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n \"data-orientation\": \"vertical\",\n ...sliderProps,\n ref,\n style: {\n ...sliderProps.style,\n [\"--radix-slider-thumb-transform\"]: \"translateY(50%)\"\n },\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart?.(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove?.(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd?.();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromBottom ? \"from-bottom\" : \"from-top\";\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }\n }\n )\n }\n );\n }\n);\nvar SliderImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const context = useSliderContext(SLIDER_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...sliderProps,\n ref: forwardedRef,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Home\") {\n onHomeKeyDown(event);\n event.preventDefault();\n } else if (event.key === \"End\") {\n onEndKeyDown(event);\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n event.preventDefault();\n }\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target;\n target.setPointerCapture(event.pointerId);\n event.preventDefault();\n if (context.thumbs.has(target)) {\n target.focus();\n } else {\n onSlideStart(event);\n }\n }),\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })\n }\n );\n }\n);\nvar TRACK_NAME = \"SliderTrack\";\nvar SliderTrack = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-disabled\": context.disabled ? \"\" : void 0,\n \"data-orientation\": context.orientation,\n ...trackProps,\n ref: forwardedRef\n }\n );\n }\n);\nSliderTrack.displayName = TRACK_NAME;\nvar RANGE_NAME = \"SliderRange\";\nvar SliderRange = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props;\n const context = useSliderContext(RANGE_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map(\n (value) => convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...rangeProps,\n ref: composedRefs,\n style: {\n ...props.style,\n [orientation.startEdge]: offsetStart + \"%\",\n [orientation.endEdge]: offsetEnd + \"%\"\n }\n }\n );\n }\n);\nSliderRange.displayName = RANGE_NAME;\nvar THUMB_NAME = \"SliderThumb\";\nvar SliderThumb = React.forwardRef(\n (props, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const index = React.useMemo(\n () => thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1,\n [getItems, thumb]\n );\n return /* @__PURE__ */ jsx(SliderThumbImpl, { ...props, ref: composedRefs, index });\n }\n);\nvar SliderThumbImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, index, name, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const isFormControl = thumb ? context.form || !!thumb.closest(\"form\") : true;\n const size = useSize(thumb);\n const value = context.values[index];\n const percent = value === void 0 ? 0 : convertValueToPercentage(value, context.min, context.max);\n const label = getLabel(index, context.values.length);\n const orientationSize = size?.[orientation.size];\n const thumbInBoundsOffset = orientationSize ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction) : 0;\n React.useEffect(() => {\n if (thumb) {\n context.thumbs.add(thumb);\n return () => {\n context.thumbs.delete(thumb);\n };\n }\n }, [thumb, context.thumbs]);\n return /* @__PURE__ */ jsxs(\n \"span\",\n {\n style: {\n transform: \"var(--radix-slider-thumb-transform)\",\n position: \"absolute\",\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`\n },\n children: [\n /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n role: \"slider\",\n \"aria-label\": props[\"aria-label\"] || label,\n \"aria-valuemin\": context.min,\n \"aria-valuenow\": value,\n \"aria-valuemax\": context.max,\n \"aria-orientation\": context.orientation,\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n tabIndex: context.disabled ? void 0 : 0,\n ...thumbProps,\n ref: composedRefs,\n style: value === void 0 ? { display: \"none\" } : props.style,\n onFocus: composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })\n }\n ) }),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n name: name ?? (context.name ? context.name + (context.values.length > 1 ? \"[]\" : \"\") : void 0),\n form: context.form,\n value\n },\n index\n )\n ]\n }\n );\n }\n);\nSliderThumb.displayName = THUMB_NAME;\nvar BubbleInput = (props) => {\n const { value, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"value\");\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"input\", { bubbles: true });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(\"input\", { style: { display: \"none\" }, ...inputProps, ref, defaultValue: value });\n};\nfunction getNextSortedValues(prevValues = [], nextValue, atIndex) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\nfunction convertValueToPercentage(value, min, max) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n const percentage = percentPerStep * (value - min);\n return clamp(percentage, [0, 100]);\n}\nfunction getLabel(index, totalValues) {\n if (totalValues > 2) {\n return `Value ${index + 1} of ${totalValues}`;\n } else if (totalValues === 2) {\n return [\"Minimum\", \"Maximum\"][index];\n } else {\n return void 0;\n }\n}\nfunction getClosestValueIndex(values, nextValue) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\nfunction getThumbInBoundsOffset(width, left, direction) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\nfunction getStepsBetweenValues(values) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\nfunction hasMinStepsBetweenValues(values, minStepsBetweenValues) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction getDecimalCount(value) {\n return (String(value).split(\".\")[1] || \"\").length;\n}\nfunction roundValue(value, decimalCount) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\nvar Root = Slider;\nvar Track = SliderTrack;\nvar Range = SliderRange;\nvar Thumb = SliderThumb;\nexport {\n Range,\n Root,\n Slider,\n SliderRange,\n SliderThumb,\n SliderTrack,\n Thumb,\n Track,\n createSliderScope\n};\n//# sourceMappingURL=index.mjs.map\n","import React, { type ForwardedRef, forwardRef, useId } from \"react\";\nimport { Range, Root, Thumb, Track } from \"@radix-ui/react-slider\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./slider.module.scss\";\nconst cx = c.bind(styles);\n\ntype SliderValue = [number] | [number, number];\ntype StylingProps = Pick<React.HTMLAttributes<HTMLElement>, \"className\" | \"style\">;\n\nexport const SLIDER_ORIENTATION = [\"horizontal\", \"vertical\"] as const;\n\nexport type SliderProps<T extends SliderValue> = StylingProps & {\n [\"data-testid\"]?: string;\n /* The aria-label is set to each thumb. */\n [\"aria-label\"]: string;\n /* Human-readable text alternative for aria-valuenow (aria-valuenow is set to `value` by radix under the hood). Use when the numeric value alone doesn't clearly represent the actual value. */\n [\"aria-valuetext\"]: string;\n /**\n * The value of the slider when initially rendered. Use when you do not need to control the state of the slider.\n `T = <T extends [number] | [number, number]>`\n */\n defaultValue?: T;\n /* The id of the slider. */\n id?: string;\n /* The maximum value for the range. */\n max?: number;\n /* The minimum value for the range. */\n min?: number;\n /* The minimum permitted steps between multiple thumbs. */\n minStepsBetweenThumbs?: number;\n /* The name of the slider. Submitted with its owning form as part of a name/value pair. */\n name?: string;\n /* The orientation of the slider. */\n orientation?: (typeof SLIDER_ORIENTATION)[number];\n /* The stepping interval. */\n step?: number;\n /* The controlled value of the slider. Must be used in conjunction with onValueChange. */\n value?: T;\n /* Event handler called when the value changes. */\n onValueChange?(value: T): void;\n};\n\nconst rootClassName = \"purpur-slider\";\n\nconst getKey = (index: number) => String(index);\n\nconst SliderComponent = <T extends SliderValue>(\n {\n \"aria-label\": ariaLabel,\n \"aria-valuetext\": ariaValueText,\n className,\n defaultValue,\n id,\n value,\n ...props\n }: SliderProps<T>,\n ref: ForwardedRef<HTMLButtonElement>\n) => {\n const internalId = useId();\n const internalValue = value || defaultValue;\n\n return (\n <Root\n {...props}\n id={id || internalId}\n ref={ref}\n className={cx(rootClassName, className)}\n value={value}\n defaultValue={defaultValue}\n >\n <Track className={cx(`${rootClassName}__track`)}>\n <Range className={cx(`${rootClassName}__range`)} />\n </Track>\n {internalValue?.map((_, index) => (\n <Thumb\n key={getKey(index)}\n className={cx(`${rootClassName}__thumb`)}\n aria-label={ariaLabel}\n aria-valuetext={ariaValueText}\n />\n ))}\n </Root>\n );\n};\n\nexport const Slider = forwardRef(SliderComponent);\n\nSlider.displayName = \"Slider\";\n"],"names":["PAGE_KEYS","ARROW_KEYS","BACK_KEYS","SLIDER_NAME","Collection","useCollection","createCollectionScope","createCollection","createSliderContext","createContextScope","SliderProvider","useSliderContext","Slider","React","props","forwardedRef","name","min","max","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value","onValueChange","onValueCommit","inverted","form","sliderProps","thumbRefs","valueIndexToChangeRef","SliderOrientation","SliderHorizontal","SliderVertical","values","setValues","useControllableState","value2","valuesBeforeSlideStartRef","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","handleSlideEnd","prevValue","atIndex","commit","decimalCount","getDecimalCount","snapToStep","roundValue","nextValue","clamp","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","hasChanged","jsx","composeEventHandlers","event","stepDirection","multiplier","stepInDirection","SliderOrientationProvider","useSliderOrientationContext","dir","onSlideStart","onSlideMove","onSlideEnd","onStepKeyDown","slider","setSlider","composedRefs","useComposedRefs","node","rectRef","direction","useDirection","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","rect","input","linearScale","SliderImpl","isBackKey","sliderRef","ref","isSlidingFromBottom","__scopeSlider","onHomeKeyDown","onEndKeyDown","context","Primitive","target","TRACK_NAME","SliderTrack","trackProps","RANGE_NAME","SliderRange","rangeProps","valuesCount","percentages","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","SliderThumb","getItems","thumb","setThumb","index","item","SliderThumbImpl","thumbProps","isFormControl","size","useSize","percent","label","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","jsxs","BubbleInput","inputProps","usePrevious","inputProto","setValue","a","b","percentage","totalValues","distances","closestDistance","width","left","halfWidth","offset","getStepsBetweenValues","minStepsBetweenValues","stepsBetweenValues","output","ratio","rounder","Root","Track","Range","Thumb","cx","c","styles","SLIDER_ORIENTATION","rootClassName","getKey","SliderComponent","ariaLabel","ariaValueText","className","id","internalId","useId","internalValue","_","forwardRef"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"slider-CDOrFmK-.mjs","sources":["../../../common/temp/node_modules/.pnpm/@radix-ui+react-slider@1.2.4_@types+react-dom@19.2.3_@types+react@19.2.14__@types+react_52438ffd0da56953b1f2fc3b1fbcf86a/node_modules/@radix-ui/react-slider/dist/index.mjs","../../../components/slider/src/slider.tsx"],"sourcesContent":["\"use client\";\n\n// packages/react/slider/src/slider.tsx\nimport * as React from \"react\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar PAGE_KEYS = [\"PageUp\", \"PageDown\"];\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar BACK_KEYS = {\n \"from-left\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowLeft\"],\n \"from-right\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowRight\"],\n \"from-bottom\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowLeft\"],\n \"from-top\": [\"Home\", \"PageDown\", \"ArrowUp\", \"ArrowLeft\"]\n};\nvar SLIDER_NAME = \"Slider\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SLIDER_NAME);\nvar [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope\n]);\nvar [SliderProvider, useSliderContext] = createSliderContext(SLIDER_NAME);\nvar Slider = React.forwardRef(\n (props, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = \"horizontal\",\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {\n },\n onValueCommit = () => {\n },\n inverted = false,\n form,\n ...sliderProps\n } = props;\n const thumbRefs = React.useRef(/* @__PURE__ */ new Set());\n const valueIndexToChangeRef = React.useRef(0);\n const isHorizontal = orientation === \"horizontal\";\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value2) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value2);\n }\n });\n const valuesBeforeSlideStartRef = React.useRef(values);\n function handleSlideStart(value2) {\n const closestIndex = getClosestValueIndex(values, value2);\n updateValues(value2, closestIndex);\n }\n function handleSlideMove(value2) {\n updateValues(value2, valueIndexToChangeRef.current);\n }\n function handleSlideEnd() {\n const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];\n const nextValue = values[valueIndexToChangeRef.current];\n const hasChanged = nextValue !== prevValue;\n if (hasChanged) onValueCommit(values);\n }\n function updateValues(value2, atIndex, { commit } = { commit: false }) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value2 - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n const hasChanged = String(nextValues) !== String(prevValues);\n if (hasChanged && commit) onValueCommit(nextValues);\n return hasChanged ? nextValues : prevValues;\n } else {\n return prevValues;\n }\n });\n }\n return /* @__PURE__ */ jsx(\n SliderProvider,\n {\n scope: props.__scopeSlider,\n name,\n disabled,\n min,\n max,\n valueIndexToChangeRef,\n thumbs: thumbRefs.current,\n values,\n orientation,\n form,\n children: /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(\n SliderOrientation,\n {\n \"aria-disabled\": disabled,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...sliderProps,\n ref: forwardedRef,\n onPointerDown: composeEventHandlers(sliderProps.onPointerDown, () => {\n if (!disabled) valuesBeforeSlideStartRef.current = values;\n }),\n min,\n max,\n inverted,\n onSlideStart: disabled ? void 0 : handleSlideStart,\n onSlideMove: disabled ? void 0 : handleSlideMove,\n onSlideEnd: disabled ? void 0 : handleSlideEnd,\n onHomeKeyDown: () => !disabled && updateValues(min, 0, { commit: true }),\n onEndKeyDown: () => !disabled && updateValues(max, values.length - 1, { commit: true }),\n onStepKeyDown: ({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || event.shiftKey && ARROW_KEYS.includes(event.key);\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value2 = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value2 + stepInDirection, atIndex, { commit: true });\n }\n }\n }\n ) }) })\n }\n );\n }\n);\nSlider.displayName = SLIDER_NAME;\nvar [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext(SLIDER_NAME, {\n startEdge: \"left\",\n endEdge: \"right\",\n size: \"width\",\n direction: 1\n});\nvar SliderHorizontal = React.forwardRef(\n (props, forwardedRef) => {\n const {\n min,\n max,\n dir,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef(void 0);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === \"ltr\";\n const isSlidingFromLeft = isDirectionLTR && !inverted || !isDirectionLTR && inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || slider.getBoundingClientRect();\n const input = [0, rect.width];\n const output = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromLeft ? \"left\" : \"right\",\n endEdge: isSlidingFromLeft ? \"right\" : \"left\",\n direction: isSlidingFromLeft ? 1 : -1,\n size: \"width\",\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n dir: direction,\n \"data-orientation\": \"horizontal\",\n ...sliderProps,\n ref: composedRefs,\n style: {\n ...sliderProps.style,\n [\"--radix-slider-thumb-transform\"]: \"translateX(-50%)\"\n },\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart?.(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove?.(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd?.();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromLeft ? \"from-left\" : \"from-right\";\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }\n }\n )\n }\n );\n }\n);\nvar SliderVertical = React.forwardRef(\n (props, forwardedRef) => {\n const {\n min,\n max,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const sliderRef = React.useRef(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef(void 0);\n const isSlidingFromBottom = !inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || sliderRef.current.getBoundingClientRect();\n const input = [0, rect.height];\n const output = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromBottom ? \"bottom\" : \"top\",\n endEdge: isSlidingFromBottom ? \"top\" : \"bottom\",\n size: \"height\",\n direction: isSlidingFromBottom ? 1 : -1,\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n \"data-orientation\": \"vertical\",\n ...sliderProps,\n ref,\n style: {\n ...sliderProps.style,\n [\"--radix-slider-thumb-transform\"]: \"translateY(50%)\"\n },\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart?.(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove?.(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd?.();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromBottom ? \"from-bottom\" : \"from-top\";\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }\n }\n )\n }\n );\n }\n);\nvar SliderImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const context = useSliderContext(SLIDER_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...sliderProps,\n ref: forwardedRef,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Home\") {\n onHomeKeyDown(event);\n event.preventDefault();\n } else if (event.key === \"End\") {\n onEndKeyDown(event);\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n event.preventDefault();\n }\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target;\n target.setPointerCapture(event.pointerId);\n event.preventDefault();\n if (context.thumbs.has(target)) {\n target.focus();\n } else {\n onSlideStart(event);\n }\n }),\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })\n }\n );\n }\n);\nvar TRACK_NAME = \"SliderTrack\";\nvar SliderTrack = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-disabled\": context.disabled ? \"\" : void 0,\n \"data-orientation\": context.orientation,\n ...trackProps,\n ref: forwardedRef\n }\n );\n }\n);\nSliderTrack.displayName = TRACK_NAME;\nvar RANGE_NAME = \"SliderRange\";\nvar SliderRange = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props;\n const context = useSliderContext(RANGE_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map(\n (value) => convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...rangeProps,\n ref: composedRefs,\n style: {\n ...props.style,\n [orientation.startEdge]: offsetStart + \"%\",\n [orientation.endEdge]: offsetEnd + \"%\"\n }\n }\n );\n }\n);\nSliderRange.displayName = RANGE_NAME;\nvar THUMB_NAME = \"SliderThumb\";\nvar SliderThumb = React.forwardRef(\n (props, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const index = React.useMemo(\n () => thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1,\n [getItems, thumb]\n );\n return /* @__PURE__ */ jsx(SliderThumbImpl, { ...props, ref: composedRefs, index });\n }\n);\nvar SliderThumbImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, index, name, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const isFormControl = thumb ? context.form || !!thumb.closest(\"form\") : true;\n const size = useSize(thumb);\n const value = context.values[index];\n const percent = value === void 0 ? 0 : convertValueToPercentage(value, context.min, context.max);\n const label = getLabel(index, context.values.length);\n const orientationSize = size?.[orientation.size];\n const thumbInBoundsOffset = orientationSize ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction) : 0;\n React.useEffect(() => {\n if (thumb) {\n context.thumbs.add(thumb);\n return () => {\n context.thumbs.delete(thumb);\n };\n }\n }, [thumb, context.thumbs]);\n return /* @__PURE__ */ jsxs(\n \"span\",\n {\n style: {\n transform: \"var(--radix-slider-thumb-transform)\",\n position: \"absolute\",\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`\n },\n children: [\n /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n role: \"slider\",\n \"aria-label\": props[\"aria-label\"] || label,\n \"aria-valuemin\": context.min,\n \"aria-valuenow\": value,\n \"aria-valuemax\": context.max,\n \"aria-orientation\": context.orientation,\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n tabIndex: context.disabled ? void 0 : 0,\n ...thumbProps,\n ref: composedRefs,\n style: value === void 0 ? { display: \"none\" } : props.style,\n onFocus: composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })\n }\n ) }),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n name: name ?? (context.name ? context.name + (context.values.length > 1 ? \"[]\" : \"\") : void 0),\n form: context.form,\n value\n },\n index\n )\n ]\n }\n );\n }\n);\nSliderThumb.displayName = THUMB_NAME;\nvar BubbleInput = (props) => {\n const { value, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"value\");\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"input\", { bubbles: true });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(\"input\", { style: { display: \"none\" }, ...inputProps, ref, defaultValue: value });\n};\nfunction getNextSortedValues(prevValues = [], nextValue, atIndex) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\nfunction convertValueToPercentage(value, min, max) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n const percentage = percentPerStep * (value - min);\n return clamp(percentage, [0, 100]);\n}\nfunction getLabel(index, totalValues) {\n if (totalValues > 2) {\n return `Value ${index + 1} of ${totalValues}`;\n } else if (totalValues === 2) {\n return [\"Minimum\", \"Maximum\"][index];\n } else {\n return void 0;\n }\n}\nfunction getClosestValueIndex(values, nextValue) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\nfunction getThumbInBoundsOffset(width, left, direction) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\nfunction getStepsBetweenValues(values) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\nfunction hasMinStepsBetweenValues(values, minStepsBetweenValues) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction getDecimalCount(value) {\n return (String(value).split(\".\")[1] || \"\").length;\n}\nfunction roundValue(value, decimalCount) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\nvar Root = Slider;\nvar Track = SliderTrack;\nvar Range = SliderRange;\nvar Thumb = SliderThumb;\nexport {\n Range,\n Root,\n Slider,\n SliderRange,\n SliderThumb,\n SliderTrack,\n Thumb,\n Track,\n createSliderScope\n};\n//# sourceMappingURL=index.mjs.map\n","import React, { type ForwardedRef, forwardRef, useId } from \"react\";\nimport { Range, Root, Thumb, Track } from \"@radix-ui/react-slider\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./slider.module.scss\";\nconst cx = c.bind(styles);\n\ntype SliderValue = [number] | [number, number];\ntype StylingProps = Pick<React.HTMLAttributes<HTMLElement>, \"className\" | \"style\">;\n\nexport const SLIDER_ORIENTATION = [\"horizontal\", \"vertical\"] as const;\n\nexport type SliderProps<T extends SliderValue> = StylingProps & {\n [\"data-testid\"]?: string;\n /* The aria-label is set to each thumb. */\n [\"aria-label\"]: string;\n /* Human-readable text alternative for aria-valuenow (aria-valuenow is set to `value` by radix under the hood). Use when the numeric value alone doesn't clearly represent the actual value. */\n [\"aria-valuetext\"]: string;\n /**\n * The value of the slider when initially rendered. Use when you do not need to control the state of the slider.\n `T = <T extends [number] | [number, number]>`\n */\n defaultValue?: T;\n /* The id of the slider. */\n id?: string;\n /* The maximum value for the range. */\n max?: number;\n /* The minimum value for the range. */\n min?: number;\n /* The minimum permitted steps between multiple thumbs. */\n minStepsBetweenThumbs?: number;\n /* The name of the slider. Submitted with its owning form as part of a name/value pair. */\n name?: string;\n /* The orientation of the slider. */\n orientation?: (typeof SLIDER_ORIENTATION)[number];\n /* The stepping interval. */\n step?: number;\n /* The controlled value of the slider. Must be used in conjunction with onValueChange. */\n value?: T;\n /* Event handler called when the value changes. */\n onValueChange?(value: T): void;\n};\n\nconst rootClassName = \"purpur-slider\";\n\nconst getKey = (index: number) => String(index);\n\nconst SliderComponent = <T extends SliderValue>(\n {\n \"aria-label\": ariaLabel,\n \"aria-valuetext\": ariaValueText,\n className,\n defaultValue,\n id,\n value,\n ...props\n }: SliderProps<T>,\n ref: ForwardedRef<HTMLButtonElement>\n) => {\n const internalId = useId();\n const internalValue = value || defaultValue;\n\n return (\n <Root\n {...props}\n id={id || internalId}\n ref={ref}\n className={cx(rootClassName, className)}\n value={value}\n defaultValue={defaultValue}\n >\n <Track className={cx(`${rootClassName}__track`)}>\n <Range className={cx(`${rootClassName}__range`)} />\n </Track>\n {internalValue?.map((_, index) => (\n <Thumb\n key={getKey(index)}\n className={cx(`${rootClassName}__thumb`)}\n aria-label={ariaLabel}\n aria-valuetext={ariaValueText}\n />\n ))}\n </Root>\n );\n};\n\nexport const Slider = forwardRef(SliderComponent);\n\nSlider.displayName = \"Slider\";\n"],"names":["PAGE_KEYS","ARROW_KEYS","BACK_KEYS","SLIDER_NAME","Collection","useCollection","createCollectionScope","createCollection","createSliderContext","createContextScope","SliderProvider","useSliderContext","Slider","React","props","forwardedRef","name","min","max","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value","onValueChange","onValueCommit","inverted","form","sliderProps","thumbRefs","valueIndexToChangeRef","SliderOrientation","SliderHorizontal","SliderVertical","values","setValues","useControllableState","value2","valuesBeforeSlideStartRef","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","handleSlideEnd","prevValue","atIndex","commit","decimalCount","getDecimalCount","snapToStep","roundValue","nextValue","clamp","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","hasChanged","jsx","composeEventHandlers","event","stepDirection","multiplier","stepInDirection","SliderOrientationProvider","useSliderOrientationContext","dir","onSlideStart","onSlideMove","onSlideEnd","onStepKeyDown","slider","setSlider","composedRefs","useComposedRefs","node","rectRef","direction","useDirection","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","rect","input","linearScale","SliderImpl","isBackKey","sliderRef","ref","isSlidingFromBottom","__scopeSlider","onHomeKeyDown","onEndKeyDown","context","Primitive","target","TRACK_NAME","SliderTrack","trackProps","RANGE_NAME","SliderRange","rangeProps","valuesCount","percentages","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","SliderThumb","getItems","thumb","setThumb","index","item","SliderThumbImpl","thumbProps","isFormControl","size","useSize","percent","label","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","jsxs","BubbleInput","inputProps","usePrevious","inputProto","setValue","a","b","percentage","totalValues","distances","closestDistance","width","left","halfWidth","offset","getStepsBetweenValues","minStepsBetweenValues","stepsBetweenValues","output","ratio","rounder","Root","Track","Range","Thumb","cx","c","styles","SLIDER_ORIENTATION","rootClassName","getKey","SliderComponent","ariaLabel","ariaValueText","className","id","internalId","useId","internalValue","_","forwardRef"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"slider-_R6JmPZl.js","sources":["../../../common/temp/node_modules/.pnpm/@radix-ui+react-slider@1.2.4_@types+react-dom@19.2.3_@types+react@19.2.10__@types+react_0022d7e088a5b0b380fe17f810234c79/node_modules/@radix-ui/react-slider/dist/index.mjs","../../../components/slider/src/slider.tsx"],"sourcesContent":["\"use client\";\n\n// packages/react/slider/src/slider.tsx\nimport * as React from \"react\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar PAGE_KEYS = [\"PageUp\", \"PageDown\"];\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar BACK_KEYS = {\n \"from-left\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowLeft\"],\n \"from-right\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowRight\"],\n \"from-bottom\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowLeft\"],\n \"from-top\": [\"Home\", \"PageDown\", \"ArrowUp\", \"ArrowLeft\"]\n};\nvar SLIDER_NAME = \"Slider\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SLIDER_NAME);\nvar [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope\n]);\nvar [SliderProvider, useSliderContext] = createSliderContext(SLIDER_NAME);\nvar Slider = React.forwardRef(\n (props, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = \"horizontal\",\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {\n },\n onValueCommit = () => {\n },\n inverted = false,\n form,\n ...sliderProps\n } = props;\n const thumbRefs = React.useRef(/* @__PURE__ */ new Set());\n const valueIndexToChangeRef = React.useRef(0);\n const isHorizontal = orientation === \"horizontal\";\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value2) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value2);\n }\n });\n const valuesBeforeSlideStartRef = React.useRef(values);\n function handleSlideStart(value2) {\n const closestIndex = getClosestValueIndex(values, value2);\n updateValues(value2, closestIndex);\n }\n function handleSlideMove(value2) {\n updateValues(value2, valueIndexToChangeRef.current);\n }\n function handleSlideEnd() {\n const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];\n const nextValue = values[valueIndexToChangeRef.current];\n const hasChanged = nextValue !== prevValue;\n if (hasChanged) onValueCommit(values);\n }\n function updateValues(value2, atIndex, { commit } = { commit: false }) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value2 - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n const hasChanged = String(nextValues) !== String(prevValues);\n if (hasChanged && commit) onValueCommit(nextValues);\n return hasChanged ? nextValues : prevValues;\n } else {\n return prevValues;\n }\n });\n }\n return /* @__PURE__ */ jsx(\n SliderProvider,\n {\n scope: props.__scopeSlider,\n name,\n disabled,\n min,\n max,\n valueIndexToChangeRef,\n thumbs: thumbRefs.current,\n values,\n orientation,\n form,\n children: /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(\n SliderOrientation,\n {\n \"aria-disabled\": disabled,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...sliderProps,\n ref: forwardedRef,\n onPointerDown: composeEventHandlers(sliderProps.onPointerDown, () => {\n if (!disabled) valuesBeforeSlideStartRef.current = values;\n }),\n min,\n max,\n inverted,\n onSlideStart: disabled ? void 0 : handleSlideStart,\n onSlideMove: disabled ? void 0 : handleSlideMove,\n onSlideEnd: disabled ? void 0 : handleSlideEnd,\n onHomeKeyDown: () => !disabled && updateValues(min, 0, { commit: true }),\n onEndKeyDown: () => !disabled && updateValues(max, values.length - 1, { commit: true }),\n onStepKeyDown: ({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || event.shiftKey && ARROW_KEYS.includes(event.key);\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value2 = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value2 + stepInDirection, atIndex, { commit: true });\n }\n }\n }\n ) }) })\n }\n );\n }\n);\nSlider.displayName = SLIDER_NAME;\nvar [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext(SLIDER_NAME, {\n startEdge: \"left\",\n endEdge: \"right\",\n size: \"width\",\n direction: 1\n});\nvar SliderHorizontal = React.forwardRef(\n (props, forwardedRef) => {\n const {\n min,\n max,\n dir,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef(void 0);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === \"ltr\";\n const isSlidingFromLeft = isDirectionLTR && !inverted || !isDirectionLTR && inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || slider.getBoundingClientRect();\n const input = [0, rect.width];\n const output = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromLeft ? \"left\" : \"right\",\n endEdge: isSlidingFromLeft ? \"right\" : \"left\",\n direction: isSlidingFromLeft ? 1 : -1,\n size: \"width\",\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n dir: direction,\n \"data-orientation\": \"horizontal\",\n ...sliderProps,\n ref: composedRefs,\n style: {\n ...sliderProps.style,\n [\"--radix-slider-thumb-transform\"]: \"translateX(-50%)\"\n },\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart?.(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove?.(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd?.();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromLeft ? \"from-left\" : \"from-right\";\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }\n }\n )\n }\n );\n }\n);\nvar SliderVertical = React.forwardRef(\n (props, forwardedRef) => {\n const {\n min,\n max,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const sliderRef = React.useRef(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef(void 0);\n const isSlidingFromBottom = !inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || sliderRef.current.getBoundingClientRect();\n const input = [0, rect.height];\n const output = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromBottom ? \"bottom\" : \"top\",\n endEdge: isSlidingFromBottom ? \"top\" : \"bottom\",\n size: \"height\",\n direction: isSlidingFromBottom ? 1 : -1,\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n \"data-orientation\": \"vertical\",\n ...sliderProps,\n ref,\n style: {\n ...sliderProps.style,\n [\"--radix-slider-thumb-transform\"]: \"translateY(50%)\"\n },\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart?.(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove?.(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd?.();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromBottom ? \"from-bottom\" : \"from-top\";\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }\n }\n )\n }\n );\n }\n);\nvar SliderImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const context = useSliderContext(SLIDER_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...sliderProps,\n ref: forwardedRef,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Home\") {\n onHomeKeyDown(event);\n event.preventDefault();\n } else if (event.key === \"End\") {\n onEndKeyDown(event);\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n event.preventDefault();\n }\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target;\n target.setPointerCapture(event.pointerId);\n event.preventDefault();\n if (context.thumbs.has(target)) {\n target.focus();\n } else {\n onSlideStart(event);\n }\n }),\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })\n }\n );\n }\n);\nvar TRACK_NAME = \"SliderTrack\";\nvar SliderTrack = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-disabled\": context.disabled ? \"\" : void 0,\n \"data-orientation\": context.orientation,\n ...trackProps,\n ref: forwardedRef\n }\n );\n }\n);\nSliderTrack.displayName = TRACK_NAME;\nvar RANGE_NAME = \"SliderRange\";\nvar SliderRange = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props;\n const context = useSliderContext(RANGE_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map(\n (value) => convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...rangeProps,\n ref: composedRefs,\n style: {\n ...props.style,\n [orientation.startEdge]: offsetStart + \"%\",\n [orientation.endEdge]: offsetEnd + \"%\"\n }\n }\n );\n }\n);\nSliderRange.displayName = RANGE_NAME;\nvar THUMB_NAME = \"SliderThumb\";\nvar SliderThumb = React.forwardRef(\n (props, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const index = React.useMemo(\n () => thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1,\n [getItems, thumb]\n );\n return /* @__PURE__ */ jsx(SliderThumbImpl, { ...props, ref: composedRefs, index });\n }\n);\nvar SliderThumbImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, index, name, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const isFormControl = thumb ? context.form || !!thumb.closest(\"form\") : true;\n const size = useSize(thumb);\n const value = context.values[index];\n const percent = value === void 0 ? 0 : convertValueToPercentage(value, context.min, context.max);\n const label = getLabel(index, context.values.length);\n const orientationSize = size?.[orientation.size];\n const thumbInBoundsOffset = orientationSize ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction) : 0;\n React.useEffect(() => {\n if (thumb) {\n context.thumbs.add(thumb);\n return () => {\n context.thumbs.delete(thumb);\n };\n }\n }, [thumb, context.thumbs]);\n return /* @__PURE__ */ jsxs(\n \"span\",\n {\n style: {\n transform: \"var(--radix-slider-thumb-transform)\",\n position: \"absolute\",\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`\n },\n children: [\n /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n role: \"slider\",\n \"aria-label\": props[\"aria-label\"] || label,\n \"aria-valuemin\": context.min,\n \"aria-valuenow\": value,\n \"aria-valuemax\": context.max,\n \"aria-orientation\": context.orientation,\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n tabIndex: context.disabled ? void 0 : 0,\n ...thumbProps,\n ref: composedRefs,\n style: value === void 0 ? { display: \"none\" } : props.style,\n onFocus: composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })\n }\n ) }),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n name: name ?? (context.name ? context.name + (context.values.length > 1 ? \"[]\" : \"\") : void 0),\n form: context.form,\n value\n },\n index\n )\n ]\n }\n );\n }\n);\nSliderThumb.displayName = THUMB_NAME;\nvar BubbleInput = (props) => {\n const { value, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"value\");\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"input\", { bubbles: true });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(\"input\", { style: { display: \"none\" }, ...inputProps, ref, defaultValue: value });\n};\nfunction getNextSortedValues(prevValues = [], nextValue, atIndex) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\nfunction convertValueToPercentage(value, min, max) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n const percentage = percentPerStep * (value - min);\n return clamp(percentage, [0, 100]);\n}\nfunction getLabel(index, totalValues) {\n if (totalValues > 2) {\n return `Value ${index + 1} of ${totalValues}`;\n } else if (totalValues === 2) {\n return [\"Minimum\", \"Maximum\"][index];\n } else {\n return void 0;\n }\n}\nfunction getClosestValueIndex(values, nextValue) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\nfunction getThumbInBoundsOffset(width, left, direction) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\nfunction getStepsBetweenValues(values) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\nfunction hasMinStepsBetweenValues(values, minStepsBetweenValues) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction getDecimalCount(value) {\n return (String(value).split(\".\")[1] || \"\").length;\n}\nfunction roundValue(value, decimalCount) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\nvar Root = Slider;\nvar Track = SliderTrack;\nvar Range = SliderRange;\nvar Thumb = SliderThumb;\nexport {\n Range,\n Root,\n Slider,\n SliderRange,\n SliderThumb,\n SliderTrack,\n Thumb,\n Track,\n createSliderScope\n};\n//# sourceMappingURL=index.mjs.map\n","import React, { type ForwardedRef, forwardRef, useId } from \"react\";\nimport { Range, Root, Thumb, Track } from \"@radix-ui/react-slider\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./slider.module.scss\";\nconst cx = c.bind(styles);\n\ntype SliderValue = [number] | [number, number];\ntype StylingProps = Pick<React.HTMLAttributes<HTMLElement>, \"className\" | \"style\">;\n\nexport const SLIDER_ORIENTATION = [\"horizontal\", \"vertical\"] as const;\n\nexport type SliderProps<T extends SliderValue> = StylingProps & {\n [\"data-testid\"]?: string;\n /* The aria-label is set to each thumb. */\n [\"aria-label\"]: string;\n /* Human-readable text alternative for aria-valuenow (aria-valuenow is set to `value` by radix under the hood). Use when the numeric value alone doesn't clearly represent the actual value. */\n [\"aria-valuetext\"]: string;\n /**\n * The value of the slider when initially rendered. Use when you do not need to control the state of the slider.\n `T = <T extends [number] | [number, number]>`\n */\n defaultValue?: T;\n /* The id of the slider. */\n id?: string;\n /* The maximum value for the range. */\n max?: number;\n /* The minimum value for the range. */\n min?: number;\n /* The minimum permitted steps between multiple thumbs. */\n minStepsBetweenThumbs?: number;\n /* The name of the slider. Submitted with its owning form as part of a name/value pair. */\n name?: string;\n /* The orientation of the slider. */\n orientation?: (typeof SLIDER_ORIENTATION)[number];\n /* The stepping interval. */\n step?: number;\n /* The controlled value of the slider. Must be used in conjunction with onValueChange. */\n value?: T;\n /* Event handler called when the value changes. */\n onValueChange?(value: T): void;\n};\n\nconst rootClassName = \"purpur-slider\";\n\nconst getKey = (index: number) => String(index);\n\nconst SliderComponent = <T extends SliderValue>(\n {\n \"aria-label\": ariaLabel,\n \"aria-valuetext\": ariaValueText,\n className,\n defaultValue,\n id,\n value,\n ...props\n }: SliderProps<T>,\n ref: ForwardedRef<HTMLButtonElement>\n) => {\n const internalId = useId();\n const internalValue = value || defaultValue;\n\n return (\n <Root\n {...props}\n id={id || internalId}\n ref={ref}\n className={cx(rootClassName, className)}\n value={value}\n defaultValue={defaultValue}\n >\n <Track className={cx(`${rootClassName}__track`)}>\n <Range className={cx(`${rootClassName}__range`)} />\n </Track>\n {internalValue?.map((_, index) => (\n <Thumb\n key={getKey(index)}\n className={cx(`${rootClassName}__thumb`)}\n aria-label={ariaLabel}\n aria-valuetext={ariaValueText}\n />\n ))}\n </Root>\n );\n};\n\nexport const Slider = forwardRef(SliderComponent);\n\nSlider.displayName = \"Slider\";\n"],"names":["PAGE_KEYS","ARROW_KEYS","BACK_KEYS","SLIDER_NAME","Collection","useCollection","createCollectionScope","createCollection","createSliderContext","createContextScope","SliderProvider","useSliderContext","Slider","React","props","forwardedRef","name","min","max","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value","onValueChange","onValueCommit","inverted","form","sliderProps","thumbRefs","valueIndexToChangeRef","SliderOrientation","SliderHorizontal","SliderVertical","values","setValues","useControllableState","value2","valuesBeforeSlideStartRef","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","handleSlideEnd","prevValue","atIndex","commit","decimalCount","getDecimalCount","snapToStep","roundValue","nextValue","clamp","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","hasChanged","jsx","composeEventHandlers","event","stepDirection","multiplier","stepInDirection","SliderOrientationProvider","useSliderOrientationContext","dir","onSlideStart","onSlideMove","onSlideEnd","onStepKeyDown","slider","setSlider","composedRefs","useComposedRefs","node","rectRef","direction","useDirection","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","rect","input","linearScale","SliderImpl","isBackKey","sliderRef","ref","isSlidingFromBottom","__scopeSlider","onHomeKeyDown","onEndKeyDown","context","Primitive","target","TRACK_NAME","SliderTrack","trackProps","RANGE_NAME","SliderRange","rangeProps","valuesCount","percentages","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","SliderThumb","getItems","thumb","setThumb","index","item","SliderThumbImpl","thumbProps","isFormControl","size","useSize","percent","label","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","jsxs","BubbleInput","inputProps","usePrevious","inputProto","setValue","a","b","percentage","totalValues","distances","closestDistance","width","left","halfWidth","offset","getStepsBetweenValues","minStepsBetweenValues","stepsBetweenValues","output","ratio","rounder","Root","Track","Range","Thumb","cx","c","styles","SLIDER_ORIENTATION","rootClassName","getKey","SliderComponent","ariaLabel","ariaValueText","className","id","internalId","useId","internalValue","_","forwardRef"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"slider-_R6JmPZl.js","sources":["../../../common/temp/node_modules/.pnpm/@radix-ui+react-slider@1.2.4_@types+react-dom@19.2.3_@types+react@19.2.14__@types+react_52438ffd0da56953b1f2fc3b1fbcf86a/node_modules/@radix-ui/react-slider/dist/index.mjs","../../../components/slider/src/slider.tsx"],"sourcesContent":["\"use client\";\n\n// packages/react/slider/src/slider.tsx\nimport * as React from \"react\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar PAGE_KEYS = [\"PageUp\", \"PageDown\"];\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar BACK_KEYS = {\n \"from-left\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowLeft\"],\n \"from-right\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowRight\"],\n \"from-bottom\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowLeft\"],\n \"from-top\": [\"Home\", \"PageDown\", \"ArrowUp\", \"ArrowLeft\"]\n};\nvar SLIDER_NAME = \"Slider\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SLIDER_NAME);\nvar [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope\n]);\nvar [SliderProvider, useSliderContext] = createSliderContext(SLIDER_NAME);\nvar Slider = React.forwardRef(\n (props, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = \"horizontal\",\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {\n },\n onValueCommit = () => {\n },\n inverted = false,\n form,\n ...sliderProps\n } = props;\n const thumbRefs = React.useRef(/* @__PURE__ */ new Set());\n const valueIndexToChangeRef = React.useRef(0);\n const isHorizontal = orientation === \"horizontal\";\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value2) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value2);\n }\n });\n const valuesBeforeSlideStartRef = React.useRef(values);\n function handleSlideStart(value2) {\n const closestIndex = getClosestValueIndex(values, value2);\n updateValues(value2, closestIndex);\n }\n function handleSlideMove(value2) {\n updateValues(value2, valueIndexToChangeRef.current);\n }\n function handleSlideEnd() {\n const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];\n const nextValue = values[valueIndexToChangeRef.current];\n const hasChanged = nextValue !== prevValue;\n if (hasChanged) onValueCommit(values);\n }\n function updateValues(value2, atIndex, { commit } = { commit: false }) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value2 - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n const hasChanged = String(nextValues) !== String(prevValues);\n if (hasChanged && commit) onValueCommit(nextValues);\n return hasChanged ? nextValues : prevValues;\n } else {\n return prevValues;\n }\n });\n }\n return /* @__PURE__ */ jsx(\n SliderProvider,\n {\n scope: props.__scopeSlider,\n name,\n disabled,\n min,\n max,\n valueIndexToChangeRef,\n thumbs: thumbRefs.current,\n values,\n orientation,\n form,\n children: /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(\n SliderOrientation,\n {\n \"aria-disabled\": disabled,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...sliderProps,\n ref: forwardedRef,\n onPointerDown: composeEventHandlers(sliderProps.onPointerDown, () => {\n if (!disabled) valuesBeforeSlideStartRef.current = values;\n }),\n min,\n max,\n inverted,\n onSlideStart: disabled ? void 0 : handleSlideStart,\n onSlideMove: disabled ? void 0 : handleSlideMove,\n onSlideEnd: disabled ? void 0 : handleSlideEnd,\n onHomeKeyDown: () => !disabled && updateValues(min, 0, { commit: true }),\n onEndKeyDown: () => !disabled && updateValues(max, values.length - 1, { commit: true }),\n onStepKeyDown: ({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || event.shiftKey && ARROW_KEYS.includes(event.key);\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value2 = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value2 + stepInDirection, atIndex, { commit: true });\n }\n }\n }\n ) }) })\n }\n );\n }\n);\nSlider.displayName = SLIDER_NAME;\nvar [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext(SLIDER_NAME, {\n startEdge: \"left\",\n endEdge: \"right\",\n size: \"width\",\n direction: 1\n});\nvar SliderHorizontal = React.forwardRef(\n (props, forwardedRef) => {\n const {\n min,\n max,\n dir,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef(void 0);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === \"ltr\";\n const isSlidingFromLeft = isDirectionLTR && !inverted || !isDirectionLTR && inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || slider.getBoundingClientRect();\n const input = [0, rect.width];\n const output = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromLeft ? \"left\" : \"right\",\n endEdge: isSlidingFromLeft ? \"right\" : \"left\",\n direction: isSlidingFromLeft ? 1 : -1,\n size: \"width\",\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n dir: direction,\n \"data-orientation\": \"horizontal\",\n ...sliderProps,\n ref: composedRefs,\n style: {\n ...sliderProps.style,\n [\"--radix-slider-thumb-transform\"]: \"translateX(-50%)\"\n },\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart?.(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove?.(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd?.();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromLeft ? \"from-left\" : \"from-right\";\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }\n }\n )\n }\n );\n }\n);\nvar SliderVertical = React.forwardRef(\n (props, forwardedRef) => {\n const {\n min,\n max,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const sliderRef = React.useRef(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef(void 0);\n const isSlidingFromBottom = !inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || sliderRef.current.getBoundingClientRect();\n const input = [0, rect.height];\n const output = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromBottom ? \"bottom\" : \"top\",\n endEdge: isSlidingFromBottom ? \"top\" : \"bottom\",\n size: \"height\",\n direction: isSlidingFromBottom ? 1 : -1,\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n \"data-orientation\": \"vertical\",\n ...sliderProps,\n ref,\n style: {\n ...sliderProps.style,\n [\"--radix-slider-thumb-transform\"]: \"translateY(50%)\"\n },\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart?.(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove?.(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd?.();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromBottom ? \"from-bottom\" : \"from-top\";\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }\n }\n )\n }\n );\n }\n);\nvar SliderImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const context = useSliderContext(SLIDER_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...sliderProps,\n ref: forwardedRef,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Home\") {\n onHomeKeyDown(event);\n event.preventDefault();\n } else if (event.key === \"End\") {\n onEndKeyDown(event);\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n event.preventDefault();\n }\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target;\n target.setPointerCapture(event.pointerId);\n event.preventDefault();\n if (context.thumbs.has(target)) {\n target.focus();\n } else {\n onSlideStart(event);\n }\n }),\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })\n }\n );\n }\n);\nvar TRACK_NAME = \"SliderTrack\";\nvar SliderTrack = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-disabled\": context.disabled ? \"\" : void 0,\n \"data-orientation\": context.orientation,\n ...trackProps,\n ref: forwardedRef\n }\n );\n }\n);\nSliderTrack.displayName = TRACK_NAME;\nvar RANGE_NAME = \"SliderRange\";\nvar SliderRange = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props;\n const context = useSliderContext(RANGE_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map(\n (value) => convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...rangeProps,\n ref: composedRefs,\n style: {\n ...props.style,\n [orientation.startEdge]: offsetStart + \"%\",\n [orientation.endEdge]: offsetEnd + \"%\"\n }\n }\n );\n }\n);\nSliderRange.displayName = RANGE_NAME;\nvar THUMB_NAME = \"SliderThumb\";\nvar SliderThumb = React.forwardRef(\n (props, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const index = React.useMemo(\n () => thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1,\n [getItems, thumb]\n );\n return /* @__PURE__ */ jsx(SliderThumbImpl, { ...props, ref: composedRefs, index });\n }\n);\nvar SliderThumbImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, index, name, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const isFormControl = thumb ? context.form || !!thumb.closest(\"form\") : true;\n const size = useSize(thumb);\n const value = context.values[index];\n const percent = value === void 0 ? 0 : convertValueToPercentage(value, context.min, context.max);\n const label = getLabel(index, context.values.length);\n const orientationSize = size?.[orientation.size];\n const thumbInBoundsOffset = orientationSize ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction) : 0;\n React.useEffect(() => {\n if (thumb) {\n context.thumbs.add(thumb);\n return () => {\n context.thumbs.delete(thumb);\n };\n }\n }, [thumb, context.thumbs]);\n return /* @__PURE__ */ jsxs(\n \"span\",\n {\n style: {\n transform: \"var(--radix-slider-thumb-transform)\",\n position: \"absolute\",\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`\n },\n children: [\n /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n role: \"slider\",\n \"aria-label\": props[\"aria-label\"] || label,\n \"aria-valuemin\": context.min,\n \"aria-valuenow\": value,\n \"aria-valuemax\": context.max,\n \"aria-orientation\": context.orientation,\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n tabIndex: context.disabled ? void 0 : 0,\n ...thumbProps,\n ref: composedRefs,\n style: value === void 0 ? { display: \"none\" } : props.style,\n onFocus: composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })\n }\n ) }),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n name: name ?? (context.name ? context.name + (context.values.length > 1 ? \"[]\" : \"\") : void 0),\n form: context.form,\n value\n },\n index\n )\n ]\n }\n );\n }\n);\nSliderThumb.displayName = THUMB_NAME;\nvar BubbleInput = (props) => {\n const { value, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"value\");\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"input\", { bubbles: true });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(\"input\", { style: { display: \"none\" }, ...inputProps, ref, defaultValue: value });\n};\nfunction getNextSortedValues(prevValues = [], nextValue, atIndex) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\nfunction convertValueToPercentage(value, min, max) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n const percentage = percentPerStep * (value - min);\n return clamp(percentage, [0, 100]);\n}\nfunction getLabel(index, totalValues) {\n if (totalValues > 2) {\n return `Value ${index + 1} of ${totalValues}`;\n } else if (totalValues === 2) {\n return [\"Minimum\", \"Maximum\"][index];\n } else {\n return void 0;\n }\n}\nfunction getClosestValueIndex(values, nextValue) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\nfunction getThumbInBoundsOffset(width, left, direction) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\nfunction getStepsBetweenValues(values) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\nfunction hasMinStepsBetweenValues(values, minStepsBetweenValues) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction getDecimalCount(value) {\n return (String(value).split(\".\")[1] || \"\").length;\n}\nfunction roundValue(value, decimalCount) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\nvar Root = Slider;\nvar Track = SliderTrack;\nvar Range = SliderRange;\nvar Thumb = SliderThumb;\nexport {\n Range,\n Root,\n Slider,\n SliderRange,\n SliderThumb,\n SliderTrack,\n Thumb,\n Track,\n createSliderScope\n};\n//# sourceMappingURL=index.mjs.map\n","import React, { type ForwardedRef, forwardRef, useId } from \"react\";\nimport { Range, Root, Thumb, Track } from \"@radix-ui/react-slider\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./slider.module.scss\";\nconst cx = c.bind(styles);\n\ntype SliderValue = [number] | [number, number];\ntype StylingProps = Pick<React.HTMLAttributes<HTMLElement>, \"className\" | \"style\">;\n\nexport const SLIDER_ORIENTATION = [\"horizontal\", \"vertical\"] as const;\n\nexport type SliderProps<T extends SliderValue> = StylingProps & {\n [\"data-testid\"]?: string;\n /* The aria-label is set to each thumb. */\n [\"aria-label\"]: string;\n /* Human-readable text alternative for aria-valuenow (aria-valuenow is set to `value` by radix under the hood). Use when the numeric value alone doesn't clearly represent the actual value. */\n [\"aria-valuetext\"]: string;\n /**\n * The value of the slider when initially rendered. Use when you do not need to control the state of the slider.\n `T = <T extends [number] | [number, number]>`\n */\n defaultValue?: T;\n /* The id of the slider. */\n id?: string;\n /* The maximum value for the range. */\n max?: number;\n /* The minimum value for the range. */\n min?: number;\n /* The minimum permitted steps between multiple thumbs. */\n minStepsBetweenThumbs?: number;\n /* The name of the slider. Submitted with its owning form as part of a name/value pair. */\n name?: string;\n /* The orientation of the slider. */\n orientation?: (typeof SLIDER_ORIENTATION)[number];\n /* The stepping interval. */\n step?: number;\n /* The controlled value of the slider. Must be used in conjunction with onValueChange. */\n value?: T;\n /* Event handler called when the value changes. */\n onValueChange?(value: T): void;\n};\n\nconst rootClassName = \"purpur-slider\";\n\nconst getKey = (index: number) => String(index);\n\nconst SliderComponent = <T extends SliderValue>(\n {\n \"aria-label\": ariaLabel,\n \"aria-valuetext\": ariaValueText,\n className,\n defaultValue,\n id,\n value,\n ...props\n }: SliderProps<T>,\n ref: ForwardedRef<HTMLButtonElement>\n) => {\n const internalId = useId();\n const internalValue = value || defaultValue;\n\n return (\n <Root\n {...props}\n id={id || internalId}\n ref={ref}\n className={cx(rootClassName, className)}\n value={value}\n defaultValue={defaultValue}\n >\n <Track className={cx(`${rootClassName}__track`)}>\n <Range className={cx(`${rootClassName}__range`)} />\n </Track>\n {internalValue?.map((_, index) => (\n <Thumb\n key={getKey(index)}\n className={cx(`${rootClassName}__thumb`)}\n aria-label={ariaLabel}\n aria-valuetext={ariaValueText}\n />\n ))}\n </Root>\n );\n};\n\nexport const Slider = forwardRef(SliderComponent);\n\nSlider.displayName = \"Slider\";\n"],"names":["PAGE_KEYS","ARROW_KEYS","BACK_KEYS","SLIDER_NAME","Collection","useCollection","createCollectionScope","createCollection","createSliderContext","createContextScope","SliderProvider","useSliderContext","Slider","React","props","forwardedRef","name","min","max","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value","onValueChange","onValueCommit","inverted","form","sliderProps","thumbRefs","valueIndexToChangeRef","SliderOrientation","SliderHorizontal","SliderVertical","values","setValues","useControllableState","value2","valuesBeforeSlideStartRef","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","handleSlideEnd","prevValue","atIndex","commit","decimalCount","getDecimalCount","snapToStep","roundValue","nextValue","clamp","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","hasChanged","jsx","composeEventHandlers","event","stepDirection","multiplier","stepInDirection","SliderOrientationProvider","useSliderOrientationContext","dir","onSlideStart","onSlideMove","onSlideEnd","onStepKeyDown","slider","setSlider","composedRefs","useComposedRefs","node","rectRef","direction","useDirection","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","rect","input","linearScale","SliderImpl","isBackKey","sliderRef","ref","isSlidingFromBottom","__scopeSlider","onHomeKeyDown","onEndKeyDown","context","Primitive","target","TRACK_NAME","SliderTrack","trackProps","RANGE_NAME","SliderRange","rangeProps","valuesCount","percentages","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","SliderThumb","getItems","thumb","setThumb","index","item","SliderThumbImpl","thumbProps","isFormControl","size","useSize","percent","label","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","jsxs","BubbleInput","inputProps","usePrevious","inputProto","setValue","a","b","percentage","totalValues","distances","closestDistance","width","left","halfWidth","offset","getStepsBetweenValues","minStepsBetweenValues","stepsBetweenValues","output","ratio","rounder","Root","Track","Range","Thumb","cx","c","styles","SLIDER_ORIENTATION","rootClassName","getKey","SliderComponent","ariaLabel","ariaValueText","className","id","internalId","useId","internalValue","_","forwardRef"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("react/jsx-runtime"),l=require("react"),$=require("./button-ChYUPi2k.js"),M=require("./chevron-left.es-B0vPg5XM.js"),W=require("./chevron-right.es-Bv376M3o.js"),I=require("./index-BVmlsxuF.js"),x=require("./index-CoR7YA3H.js"),T=require("./bind-DeUYJ6m9.js"),J=require("./tooltip-870Nmk-v.js"),K=require("./checkmark.es-lYntWFA3.js"),Q=require("./visually-hidden-C2CKovZx.js"),X={PRIMARY:"primary"},L={SMALL_SCREEN:"small-screen",LARGE_SCREEN:"large-screen",ALWAYS:"always"},Z={"purpur-stepper__nav-container":"_purpur-stepper__nav-container_1rouo_1","purpur-stepper__nav":"_purpur-stepper__nav_1rouo_1","purpur-stepper":"_purpur-stepper_1rouo_1","purpur-stepper__scroll-button":"_purpur-stepper__scroll-button_1rouo_7","purpur-stepper__scroll-button--left":"_purpur-stepper__scroll-button--left_1rouo_18","purpur-stepper__scroll-button--right":"_purpur-stepper__scroll-button--right_1rouo_21","purpur-stepper__scroll-button-icon":"_purpur-stepper__scroll-button-icon_1rouo_24","purpur-stepper__hidden":"_purpur-stepper__hidden_1rouo_27"},ee={"purpur-stepper-container":"_purpur-stepper-container_162zw_1","purpur-stepper-container__inner--align-with-grid":"_purpur-stepper-container__inner--align-with-grid_162zw_5","purpur-stepper-container--primary":"_purpur-stepper-container--primary_162zw_18","purpur-stepper-container--secondary":"_purpur-stepper-container--secondary_162zw_21"},q=T.c.bind(ee),v="purpur-stepper-container",te=({["data-testid"]:t="purpur-stepper-container",children:r,className:s,alignWithGrid:n,variant:o,...p})=>{const h=q(s,v,{[`${v}--${o}`]:o,[`${v}--align-with-grid`]:n});return e.jsx("div",{className:h,"data-testid":t,...p,children:e.jsx("div",{className:q(`${v}__inner`,{[`${v}__inner--align-with-grid`]:n}),children:r})})},re=l.forwardRef(({children:t,...r},s)=>{const{finished:n,...o}=r;return e.jsx("div",{...o,ref:s,children:t})}),se=t=>!!t&&l.isValidElement(t)&&!!t.props.label,ne={"purpur-stepper-button":"_purpur-stepper-button_wjiph_1","purpur-stepper-button__trigger-outline":"_purpur-stepper-button__trigger-outline_wjiph_21","purpur-stepper-button--first":"_purpur-stepper-button--first_wjiph_33","purpur-stepper-button--current":"_purpur-stepper-button--current_wjiph_33","purpur-stepper-button--middle":"_purpur-stepper-button--middle_wjiph_38","purpur-stepper-button--last":"_purpur-stepper-button--last_wjiph_48","purpur-stepper-button--visibility-small-screen":"_purpur-stepper-button--visibility-small-screen_wjiph_58","purpur-stepper-button--visibility-large-screen":"_purpur-stepper-button--visibility-large-screen_wjiph_66","purpur-stepper-button__icon":"_purpur-stepper-button__icon_wjiph_90","purpur-stepper-button__step-number":"_purpur-stepper-button__step-number_wjiph_97","purpur-stepper-button__step-number--current":"_purpur-stepper-button__step-number--current_wjiph_108","purpur-stepper-button__step-number--disabled":"_purpur-stepper-button__step-number--disabled_wjiph_112","purpur-stepper-button__step-label":"_purpur-stepper-button__step-label_wjiph_117","arrow-forward":"_arrow-forward_wjiph_121","purpur-stepper-button--primary":"_purpur-stepper-button--primary_wjiph_133","purpur-stepper-button--disabled":"_purpur-stepper-button--disabled_wjiph_136","purpur-stepper-button--secondary":"_purpur-stepper-button--secondary_wjiph_142","arrow-tail":"_arrow-tail_wjiph_152","sr-only--lg-down":"_sr-only--lg-down_wjiph_171"},y=T.c.bind(ne),d="purpur-stepper-button",pe=({["data-testid"]:t,current:r,disabled:s,stepNumber:n})=>e.jsx("div",{"data-testid":t,className:y([`${d}__step-number`,{[`${d}__step-number--current`]:r},{[`${d}__step-number--disabled`]:s}]),children:n}),A=l.forwardRef(({className:t,["data-testid"]:r,variant:s,step:n,indexOfLastItem:o,index:p,currentStepIndex:h,whenToBeVisible:m,handleStepChange:u,handleStepFocus:a,completedStepLabel:i,..._},b)=>{const j=p===0?"first":p===o?"last":"middle",R=p===h;return e.jsx(I.Item,{asChild:!0,children:e.jsx($.Button,{..._,ref:b,className:y(t,d,`${d}--${j}`,`${d}--${s}`,`${d}--visibility-${m}`,{[`${d}--current`]:R},{[`${d}--disabled`]:n.disabled},{"arrow-tail":j!=="first"},{"arrow-forward":j!=="last"}),id:`stepper-trigger-button-${p}`,variant:$.BUTTON_VARIANT.TERTIARY_PURPLE,"data-testid":`${r}-step-trigger-item-${p}`,disabled:n.disabled,"aria-current":R&&"step",onClick:E=>u(E,p),onFocus:a,children:e.jsxs("span",{className:y(`${d}__trigger-outline`),children:[n.finished&&!R?e.jsx(K.a,{className:y(`${d}__icon`),"data-testid":`${r}-step-finished-icon`,size:"sm"}):e.jsx(pe,{"data-testid":`${r}-step-number`,current:R,disabled:n.disabled,stepNumber:p+1}),e.jsxs("span",{className:y(`${d}__step-label`,{"sr-only--lg-down":!R}),children:[n.finished&&e.jsx(Q.VisuallyHidden,{children:`${p+1} ${i}`}),n.label]})]})})})}),ie={"purpur-stepper-nav-items__list":"_purpur-stepper-nav-items__list_lgkh0_1","purpur-stepper-nav-items__list-item":"_purpur-stepper-nav-items__list-item_lgkh0_7","purpur-stepper-nav-items__list-item--current":"_purpur-stepper-nav-items__list-item--current_lgkh0_25","purpur-stepper-nav-items__tooltip-content":"_purpur-stepper-nav-items__tooltip-content_lgkh0_31","purpur-stepper-nav-items__tooltip-trigger-item-container":"_purpur-stepper-nav-items__tooltip-trigger-item-container_lgkh0_34"},C=T.c.bind(ie),N="purpur-stepper-nav-items",oe=l.forwardRef(({["data-testid"]:t,variant:r,handleStepChange:s,handleStepFocus:n,steps:o,firstStepRef:p,lastStepRef:h,currentStepIndex:m,completedStepLabel:u},a)=>{const i=o.map((_,b)=>{const j=_.disabled?e.jsx("span",{className:C(`${N}__tooltip-trigger-item-container`),children:e.jsx(A,{"data-testid":`${t}-disabled-sm`,variant:r,step:_,indexOfLastItem:o.length-1,index:b,currentStepIndex:m,whenToBeVisible:L.SMALL_SCREEN,completedStepLabel:u,handleStepChange:s,handleStepFocus:n})}):null;return e.jsx("li",{className:C(`${N}__list-item`,{[`${N}__list-item--current`]:b===m}),ref:b===0?p:b===o.length-1?h:null,children:_.disabled?e.jsxs(e.Fragment,{children:[e.jsx(J.Tooltip,{contentClassName:C(`${N}__tooltip-content`),triggerElement:j,children:_.label}),e.jsx(A,{"data-testid":`${t}-disabled-lg`,variant:r,step:_,indexOfLastItem:o.length-1,index:b,currentStepIndex:m,whenToBeVisible:L.LARGE_SCREEN,completedStepLabel:u,handleStepChange:s,handleStepFocus:n})]}):e.jsx(A,{"data-testid":t,variant:r,step:_,indexOfLastItem:o.length-1,index:b,currentStepIndex:m,whenToBeVisible:L.ALWAYS,completedStepLabel:u,handleStepChange:s,handleStepFocus:n})},_.label)});return e.jsx(I.Root,{loop:!1,dir:"ltr",children:e.jsx("ol",{ref:a,className:C(`${N}__list`),children:i})})}),le=t=>{const r=l.useRef(!0),s=l.useRef(null);return l.useEffect(()=>{!r.current&&s.current!==null&&s.current.focus(),r.current=!1},[t]),{contentRef:s}},S={LEFT:"left",RIGHT:"right"},ue=()=>{const t=l.useRef(null),r=l.useRef(null),s=l.useRef(null),[n,o]=l.useState(!1),[p,h]=l.useState(!1),m=u=>{if(!t.current)return;const a=t.current,i=a.clientWidth,_=a.scrollLeft;u===S.LEFT&&a.scroll({behavior:"smooth",left:_-i/2}),u===S.RIGHT&&a.scroll({behavior:"smooth",left:_+i/2})};return l.useEffect(()=>{if(r.current&&s.current&&t.current){const u=new IntersectionObserver(a=>{for(const i of a){if(i.target===r.current){i.isIntersecting?o(!1):o(!0);continue}i.target===s.current&&(i.isIntersecting?h(!1):h(!0))}},{root:t.current,threshold:.95});return u.observe(r.current),u.observe(s.current),()=>u.disconnect()}},[r,s,t]),{scrollContainer:t,firstStepRef:r,lastStepRef:s,displayLeftScrollButton:n,displayRightScrollButton:p,handleHorizontalScroll:m}},g=T.c.bind(Z),c="purpur-stepper",B=({["aria-label"]:t,["data-testid"]:r,children:s,className:n,completedStepLabel:o,currentStepIndex:p=0,onStepChange:h,alignWithGrid:m=!1,leftScrollButtonAriaLabel:u,rightScrollButtonAriaLabel:a,variant:i=X.PRIMARY,..._})=>{const b=l.Children.toArray(s).filter(se),j=l.Children.map(b,f=>{const{disabled:w,finished:D,label:G}=f.props;return{disabled:w??!1,finished:D??!1,label:G}}),{contentRef:R}=le(p),{scrollContainer:E,firstStepRef:O,lastStepRef:z,displayLeftScrollButton:P,displayRightScrollButton:Y,handleHorizontalScroll:V}=ue(),H=g([n,c,{[`${c}--${i}`]:i}]),k=f=>{f.target.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})},U=(f,w)=>{f.preventDefault(),k(f),h(w)},F=f=>{k(f)};return e.jsxs("div",{className:H,..._,children:[e.jsx(te,{variant:i,alignWithGrid:m,children:e.jsxs("div",{className:g(`${c}__nav-container`),children:[e.jsxs(x.Root,{children:[e.jsx(x.Viewport,{ref:E,children:e.jsx("div",{"aria-label":t,"data-testid":r,className:g([`${c}__nav`,{[`${c}__nav--${i}`]:i}]),children:e.jsx(I.Root,{loop:!1,dir:"ltr",children:e.jsx(oe,{"data-testid":r,variant:i,firstStepRef:O,lastStepRef:z,steps:j,currentStepIndex:p,handleStepChange:U,handleStepFocus:F,completedStepLabel:o})})})}),e.jsx(x.Scrollbar,{orientation:"horizontal",children:e.jsx(x.Thumb,{})})]}),P&&e.jsx($.Button,{"aria-label":u,className:g([`${c}__scroll-button`,`${c}__scroll-button--left`]),variant:$.BUTTON_VARIANT.TERTIARY_PURPLE,tabIndex:-1,iconOnly:!0,onClick:()=>{V(S.LEFT)},children:e.jsx(M.l,{className:g(`${c}__scroll-button-icon`),size:"md"})}),Y&&e.jsx($.Button,{"aria-label":a,className:g([`${c}__scroll-button`,`${c}__scroll-button--right`]),variant:$.BUTTON_VARIANT.TERTIARY_PURPLE,tabIndex:-1,iconOnly:!0,onClick:()=>{V(S.RIGHT)},children:e.jsx(W.n,{className:g(`${c}__scroll-button-icon`),size:"md"})})]})}),e.jsx("div",{tabIndex:-1,"aria-labelledby":`stepper-trigger-button-${p}`,ref:R,style:{outline:"none"},children:e.jsx("div",{"aria-live":"polite",children:l.Children.map(b,(f,w)=>e.jsx("div",{className:g({[`${c}__hidden`]:w!==p}),hidden:w!==p,children:f}))})})]})};B.Content=re;B.displayName="Stepper";exports.Stepper=B;
2
- //# sourceMappingURL=stepper-DA0c9Utm.js.map
1
+ "use strict";const e=require("react/jsx-runtime"),l=require("react"),$=require("./button-ChYUPi2k.js"),M=require("./chevron-left.es-B0vPg5XM.js"),W=require("./chevron-right.es-Bv376M3o.js"),I=require("./index-BVmlsxuF.js"),x=require("./index-CoR7YA3H.js"),T=require("./bind-DeUYJ6m9.js"),J=require("./tooltip-CLQLxoaf.js"),K=require("./checkmark.es-lYntWFA3.js"),Q=require("./visually-hidden-C2CKovZx.js"),X={PRIMARY:"primary"},L={SMALL_SCREEN:"small-screen",LARGE_SCREEN:"large-screen",ALWAYS:"always"},Z={"purpur-stepper__nav-container":"_purpur-stepper__nav-container_1rouo_1","purpur-stepper__nav":"_purpur-stepper__nav_1rouo_1","purpur-stepper":"_purpur-stepper_1rouo_1","purpur-stepper__scroll-button":"_purpur-stepper__scroll-button_1rouo_7","purpur-stepper__scroll-button--left":"_purpur-stepper__scroll-button--left_1rouo_18","purpur-stepper__scroll-button--right":"_purpur-stepper__scroll-button--right_1rouo_21","purpur-stepper__scroll-button-icon":"_purpur-stepper__scroll-button-icon_1rouo_24","purpur-stepper__hidden":"_purpur-stepper__hidden_1rouo_27"},ee={"purpur-stepper-container":"_purpur-stepper-container_162zw_1","purpur-stepper-container__inner--align-with-grid":"_purpur-stepper-container__inner--align-with-grid_162zw_5","purpur-stepper-container--primary":"_purpur-stepper-container--primary_162zw_18","purpur-stepper-container--secondary":"_purpur-stepper-container--secondary_162zw_21"},q=T.c.bind(ee),v="purpur-stepper-container",te=({["data-testid"]:t="purpur-stepper-container",children:r,className:s,alignWithGrid:n,variant:o,...p})=>{const h=q(s,v,{[`${v}--${o}`]:o,[`${v}--align-with-grid`]:n});return e.jsx("div",{className:h,"data-testid":t,...p,children:e.jsx("div",{className:q(`${v}__inner`,{[`${v}__inner--align-with-grid`]:n}),children:r})})},re=l.forwardRef(({children:t,...r},s)=>{const{finished:n,...o}=r;return e.jsx("div",{...o,ref:s,children:t})}),se=t=>!!t&&l.isValidElement(t)&&!!t.props.label,ne={"purpur-stepper-button":"_purpur-stepper-button_wjiph_1","purpur-stepper-button__trigger-outline":"_purpur-stepper-button__trigger-outline_wjiph_21","purpur-stepper-button--first":"_purpur-stepper-button--first_wjiph_33","purpur-stepper-button--current":"_purpur-stepper-button--current_wjiph_33","purpur-stepper-button--middle":"_purpur-stepper-button--middle_wjiph_38","purpur-stepper-button--last":"_purpur-stepper-button--last_wjiph_48","purpur-stepper-button--visibility-small-screen":"_purpur-stepper-button--visibility-small-screen_wjiph_58","purpur-stepper-button--visibility-large-screen":"_purpur-stepper-button--visibility-large-screen_wjiph_66","purpur-stepper-button__icon":"_purpur-stepper-button__icon_wjiph_90","purpur-stepper-button__step-number":"_purpur-stepper-button__step-number_wjiph_97","purpur-stepper-button__step-number--current":"_purpur-stepper-button__step-number--current_wjiph_108","purpur-stepper-button__step-number--disabled":"_purpur-stepper-button__step-number--disabled_wjiph_112","purpur-stepper-button__step-label":"_purpur-stepper-button__step-label_wjiph_117","arrow-forward":"_arrow-forward_wjiph_121","purpur-stepper-button--primary":"_purpur-stepper-button--primary_wjiph_133","purpur-stepper-button--disabled":"_purpur-stepper-button--disabled_wjiph_136","purpur-stepper-button--secondary":"_purpur-stepper-button--secondary_wjiph_142","arrow-tail":"_arrow-tail_wjiph_152","sr-only--lg-down":"_sr-only--lg-down_wjiph_171"},y=T.c.bind(ne),d="purpur-stepper-button",pe=({["data-testid"]:t,current:r,disabled:s,stepNumber:n})=>e.jsx("div",{"data-testid":t,className:y([`${d}__step-number`,{[`${d}__step-number--current`]:r},{[`${d}__step-number--disabled`]:s}]),children:n}),A=l.forwardRef(({className:t,["data-testid"]:r,variant:s,step:n,indexOfLastItem:o,index:p,currentStepIndex:h,whenToBeVisible:m,handleStepChange:u,handleStepFocus:a,completedStepLabel:i,..._},b)=>{const j=p===0?"first":p===o?"last":"middle",R=p===h;return e.jsx(I.Item,{asChild:!0,children:e.jsx($.Button,{..._,ref:b,className:y(t,d,`${d}--${j}`,`${d}--${s}`,`${d}--visibility-${m}`,{[`${d}--current`]:R},{[`${d}--disabled`]:n.disabled},{"arrow-tail":j!=="first"},{"arrow-forward":j!=="last"}),id:`stepper-trigger-button-${p}`,variant:$.BUTTON_VARIANT.TERTIARY_PURPLE,"data-testid":`${r}-step-trigger-item-${p}`,disabled:n.disabled,"aria-current":R&&"step",onClick:E=>u(E,p),onFocus:a,children:e.jsxs("span",{className:y(`${d}__trigger-outline`),children:[n.finished&&!R?e.jsx(K.a,{className:y(`${d}__icon`),"data-testid":`${r}-step-finished-icon`,size:"sm"}):e.jsx(pe,{"data-testid":`${r}-step-number`,current:R,disabled:n.disabled,stepNumber:p+1}),e.jsxs("span",{className:y(`${d}__step-label`,{"sr-only--lg-down":!R}),children:[n.finished&&e.jsx(Q.VisuallyHidden,{children:`${p+1} ${i}`}),n.label]})]})})})}),ie={"purpur-stepper-nav-items__list":"_purpur-stepper-nav-items__list_lgkh0_1","purpur-stepper-nav-items__list-item":"_purpur-stepper-nav-items__list-item_lgkh0_7","purpur-stepper-nav-items__list-item--current":"_purpur-stepper-nav-items__list-item--current_lgkh0_25","purpur-stepper-nav-items__tooltip-content":"_purpur-stepper-nav-items__tooltip-content_lgkh0_31","purpur-stepper-nav-items__tooltip-trigger-item-container":"_purpur-stepper-nav-items__tooltip-trigger-item-container_lgkh0_34"},C=T.c.bind(ie),N="purpur-stepper-nav-items",oe=l.forwardRef(({["data-testid"]:t,variant:r,handleStepChange:s,handleStepFocus:n,steps:o,firstStepRef:p,lastStepRef:h,currentStepIndex:m,completedStepLabel:u},a)=>{const i=o.map((_,b)=>{const j=_.disabled?e.jsx("span",{className:C(`${N}__tooltip-trigger-item-container`),children:e.jsx(A,{"data-testid":`${t}-disabled-sm`,variant:r,step:_,indexOfLastItem:o.length-1,index:b,currentStepIndex:m,whenToBeVisible:L.SMALL_SCREEN,completedStepLabel:u,handleStepChange:s,handleStepFocus:n})}):null;return e.jsx("li",{className:C(`${N}__list-item`,{[`${N}__list-item--current`]:b===m}),ref:b===0?p:b===o.length-1?h:null,children:_.disabled?e.jsxs(e.Fragment,{children:[e.jsx(J.Tooltip,{contentClassName:C(`${N}__tooltip-content`),triggerElement:j,children:_.label}),e.jsx(A,{"data-testid":`${t}-disabled-lg`,variant:r,step:_,indexOfLastItem:o.length-1,index:b,currentStepIndex:m,whenToBeVisible:L.LARGE_SCREEN,completedStepLabel:u,handleStepChange:s,handleStepFocus:n})]}):e.jsx(A,{"data-testid":t,variant:r,step:_,indexOfLastItem:o.length-1,index:b,currentStepIndex:m,whenToBeVisible:L.ALWAYS,completedStepLabel:u,handleStepChange:s,handleStepFocus:n})},_.label)});return e.jsx(I.Root,{loop:!1,dir:"ltr",children:e.jsx("ol",{ref:a,className:C(`${N}__list`),children:i})})}),le=t=>{const r=l.useRef(!0),s=l.useRef(null);return l.useEffect(()=>{!r.current&&s.current!==null&&s.current.focus(),r.current=!1},[t]),{contentRef:s}},S={LEFT:"left",RIGHT:"right"},ue=()=>{const t=l.useRef(null),r=l.useRef(null),s=l.useRef(null),[n,o]=l.useState(!1),[p,h]=l.useState(!1),m=u=>{if(!t.current)return;const a=t.current,i=a.clientWidth,_=a.scrollLeft;u===S.LEFT&&a.scroll({behavior:"smooth",left:_-i/2}),u===S.RIGHT&&a.scroll({behavior:"smooth",left:_+i/2})};return l.useEffect(()=>{if(r.current&&s.current&&t.current){const u=new IntersectionObserver(a=>{for(const i of a){if(i.target===r.current){i.isIntersecting?o(!1):o(!0);continue}i.target===s.current&&(i.isIntersecting?h(!1):h(!0))}},{root:t.current,threshold:.95});return u.observe(r.current),u.observe(s.current),()=>u.disconnect()}},[r,s,t]),{scrollContainer:t,firstStepRef:r,lastStepRef:s,displayLeftScrollButton:n,displayRightScrollButton:p,handleHorizontalScroll:m}},g=T.c.bind(Z),c="purpur-stepper",B=({["aria-label"]:t,["data-testid"]:r,children:s,className:n,completedStepLabel:o,currentStepIndex:p=0,onStepChange:h,alignWithGrid:m=!1,leftScrollButtonAriaLabel:u,rightScrollButtonAriaLabel:a,variant:i=X.PRIMARY,..._})=>{const b=l.Children.toArray(s).filter(se),j=l.Children.map(b,f=>{const{disabled:w,finished:D,label:G}=f.props;return{disabled:w??!1,finished:D??!1,label:G}}),{contentRef:R}=le(p),{scrollContainer:E,firstStepRef:O,lastStepRef:z,displayLeftScrollButton:P,displayRightScrollButton:Y,handleHorizontalScroll:V}=ue(),H=g([n,c,{[`${c}--${i}`]:i}]),k=f=>{f.target.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})},U=(f,w)=>{f.preventDefault(),k(f),h(w)},F=f=>{k(f)};return e.jsxs("div",{className:H,..._,children:[e.jsx(te,{variant:i,alignWithGrid:m,children:e.jsxs("div",{className:g(`${c}__nav-container`),children:[e.jsxs(x.Root,{children:[e.jsx(x.Viewport,{ref:E,children:e.jsx("div",{"aria-label":t,"data-testid":r,className:g([`${c}__nav`,{[`${c}__nav--${i}`]:i}]),children:e.jsx(I.Root,{loop:!1,dir:"ltr",children:e.jsx(oe,{"data-testid":r,variant:i,firstStepRef:O,lastStepRef:z,steps:j,currentStepIndex:p,handleStepChange:U,handleStepFocus:F,completedStepLabel:o})})})}),e.jsx(x.Scrollbar,{orientation:"horizontal",children:e.jsx(x.Thumb,{})})]}),P&&e.jsx($.Button,{"aria-label":u,className:g([`${c}__scroll-button`,`${c}__scroll-button--left`]),variant:$.BUTTON_VARIANT.TERTIARY_PURPLE,tabIndex:-1,iconOnly:!0,onClick:()=>{V(S.LEFT)},children:e.jsx(M.l,{className:g(`${c}__scroll-button-icon`),size:"md"})}),Y&&e.jsx($.Button,{"aria-label":a,className:g([`${c}__scroll-button`,`${c}__scroll-button--right`]),variant:$.BUTTON_VARIANT.TERTIARY_PURPLE,tabIndex:-1,iconOnly:!0,onClick:()=>{V(S.RIGHT)},children:e.jsx(W.n,{className:g(`${c}__scroll-button-icon`),size:"md"})})]})}),e.jsx("div",{tabIndex:-1,"aria-labelledby":`stepper-trigger-button-${p}`,ref:R,style:{outline:"none"},children:e.jsx("div",{"aria-live":"polite",children:l.Children.map(b,(f,w)=>e.jsx("div",{className:g({[`${c}__hidden`]:w!==p}),hidden:w!==p,children:f}))})})]})};B.Content=re;B.displayName="Stepper";exports.Stepper=B;
2
+ //# sourceMappingURL=stepper-B248FwO-.js.map