@radix-ui/react-slider 1.0.1-rc.9 → 1.1.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -15,6 +15,7 @@ export interface SliderProps extends Omit<SliderHorizontalProps | SliderVertical
15
15
  value?: number[];
16
16
  defaultValue?: number[];
17
17
  onValueChange?(value: number[]): void;
18
+ onValueCommit?(value: number[]): void;
18
19
  inverted?: boolean;
19
20
  }
20
21
  export const Slider: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<HTMLSpanElement>>;
@@ -24,6 +25,7 @@ type SliderOrientationPrivateProps = {
24
25
  inverted: boolean;
25
26
  onSlideStart?(value: number): void;
26
27
  onSlideMove?(value: number): void;
28
+ onSlideEnd?(): void;
27
29
  onHomeKeyDown(event: React.KeyboardEvent): void;
28
30
  onEndKeyDown(event: React.KeyboardEvent): void;
29
31
  onStepKeyDown(step: {
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react/slider/src/packages/react/slider/src/Slider.tsx","packages/react/slider/src/packages/react/slider/src/index.ts","packages/react/slider/src/index.ts"],"sourcesContent":[null,null,"export {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n} from './Slider';\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps } from './Slider';\n"],"names":[],"version":3,"file":"index.d.ts.map"}
1
+ {"mappings":"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","sources":["packages/react/slider/src/packages/react/slider/src/Slider.tsx","packages/react/slider/src/packages/react/slider/src/index.ts","packages/react/slider/src/index.ts"],"sourcesContent":[null,null,"export {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n} from './Slider';\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps } from './Slider';\n"],"names":[],"version":3,"file":"index.d.ts.map"}
package/dist/index.js CHANGED
@@ -86,7 +86,7 @@ const [$1791bb30e2e418d5$var$SliderProvider, $1791bb30e2e418d5$var$useSliderCont
86
86
  const $1791bb30e2e418d5$export$472062a354075cee = /*#__PURE__*/ $inrcs$react.forwardRef((props, forwardedRef)=>{
87
87
  const { name: name , min: min = 0 , max: max = 100 , step: step = 1 , orientation: orientation = 'horizontal' , disabled: disabled = false , minStepsBetweenThumbs: minStepsBetweenThumbs = 0 , defaultValue: defaultValue = [
88
88
  min
89
- ] , value: value1 , onValueChange: onValueChange = ()=>{} , inverted: inverted = false , ...sliderProps } = props;
89
+ ] , value: value1 , onValueChange: onValueChange = ()=>{} , onValueCommit: onValueCommit = ()=>{} , inverted: inverted = false , ...sliderProps } = props;
90
90
  const [slider, setSlider] = $inrcs$react.useState(null);
91
91
  const composedRefs = $inrcs$radixuireactcomposerefs.useComposedRefs(forwardedRef, (node)=>setSlider(node)
92
92
  );
@@ -107,6 +107,7 @@ const $1791bb30e2e418d5$export$472062a354075cee = /*#__PURE__*/ $inrcs$react.for
107
107
  onValueChange(value);
108
108
  }
109
109
  });
110
+ const valuesBeforeSlideStartRef = $inrcs$react.useRef(values);
110
111
  function handleSlideStart(value) {
111
112
  const closestIndex = $1791bb30e2e418d5$var$getClosestValueIndex(values, value);
112
113
  updateValues(value, closestIndex);
@@ -114,7 +115,15 @@ const $1791bb30e2e418d5$export$472062a354075cee = /*#__PURE__*/ $inrcs$react.for
114
115
  function handleSlideMove(value) {
115
116
  updateValues(value, valueIndexToChangeRef.current);
116
117
  }
117
- function updateValues(value, atIndex) {
118
+ function handleSlideEnd() {
119
+ const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];
120
+ const nextValue = values[valueIndexToChangeRef.current];
121
+ const hasChanged = nextValue !== prevValue;
122
+ if (hasChanged) onValueCommit(values);
123
+ }
124
+ function updateValues(value, atIndex, { commit: commit } = {
125
+ commit: false
126
+ }) {
118
127
  const decimalCount = $1791bb30e2e418d5$var$getDecimalCount(step);
119
128
  const snapToStep = $1791bb30e2e418d5$var$roundValue(Math.round((value - min) / step) * step + min, decimalCount);
120
129
  const nextValue = $inrcs$radixuinumber.clamp(snapToStep, [
@@ -125,7 +134,9 @@ const $1791bb30e2e418d5$export$472062a354075cee = /*#__PURE__*/ $inrcs$react.for
125
134
  const nextValues = $1791bb30e2e418d5$var$getNextSortedValues(prevValues, nextValue, atIndex);
126
135
  if ($1791bb30e2e418d5$var$hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {
127
136
  valueIndexToChangeRef.current = nextValues.indexOf(nextValue);
128
- return String(nextValues) === String(prevValues) ? prevValues : nextValues;
137
+ const hasChanged = String(nextValues) !== String(prevValues);
138
+ if (hasChanged && commit) onValueCommit(nextValues);
139
+ return hasChanged ? nextValues : prevValues;
129
140
  } else return prevValues;
130
141
  });
131
142
  }
@@ -147,14 +158,22 @@ const $1791bb30e2e418d5$export$472062a354075cee = /*#__PURE__*/ $inrcs$react.for
147
158
  "data-disabled": disabled ? '' : undefined
148
159
  }, sliderProps, {
149
160
  ref: composedRefs,
161
+ onPointerDown: $inrcs$radixuiprimitive.composeEventHandlers(sliderProps.onPointerDown, ()=>{
162
+ if (!disabled) valuesBeforeSlideStartRef.current = values;
163
+ }),
150
164
  min: min,
151
165
  max: max,
152
166
  inverted: inverted,
153
167
  onSlideStart: disabled ? undefined : handleSlideStart,
154
168
  onSlideMove: disabled ? undefined : handleSlideMove,
155
- onHomeKeyDown: ()=>!disabled && updateValues(min, 0)
169
+ onSlideEnd: disabled ? undefined : handleSlideEnd,
170
+ onHomeKeyDown: ()=>!disabled && updateValues(min, 0, {
171
+ commit: true
172
+ })
156
173
  ,
157
- onEndKeyDown: ()=>!disabled && updateValues(max, values.length - 1)
174
+ onEndKeyDown: ()=>!disabled && updateValues(max, values.length - 1, {
175
+ commit: true
176
+ })
158
177
  ,
159
178
  onStepKeyDown: ({ event: event , direction: stepDirection })=>{
160
179
  if (!disabled) {
@@ -164,7 +183,9 @@ const $1791bb30e2e418d5$export$472062a354075cee = /*#__PURE__*/ $inrcs$react.for
164
183
  const atIndex = valueIndexToChangeRef.current;
165
184
  const value = values[atIndex];
166
185
  const stepInDirection = step * multiplier * stepDirection;
167
- updateValues(value + stepInDirection, atIndex);
186
+ updateValues(value + stepInDirection, atIndex, {
187
+ commit: true
188
+ });
168
189
  }
169
190
  }
170
191
  })))), isFormControl && values.map((value, index)=>/*#__PURE__*/ $inrcs$react.createElement($1791bb30e2e418d5$var$BubbleInput, {
@@ -186,7 +207,7 @@ const $1791bb30e2e418d5$export$472062a354075cee = /*#__PURE__*/ $inrcs$react.for
186
207
  direction: 1
187
208
  });
188
209
  const $1791bb30e2e418d5$var$SliderHorizontal = /*#__PURE__*/ $inrcs$react.forwardRef((props, forwardedRef)=>{
189
- const { min: min , max: max , dir: dir , inverted: inverted , onSlideStart: onSlideStart , onSlideMove: onSlideMove , onStepKeyDown: onStepKeyDown , ...sliderProps } = props;
210
+ const { min: min , max: max , dir: dir , inverted: inverted , onSlideStart: onSlideStart , onSlideMove: onSlideMove , onSlideEnd: onSlideEnd , onStepKeyDown: onStepKeyDown , ...sliderProps } = props;
190
211
  const [slider, setSlider] = $inrcs$react.useState(null);
191
212
  const composedRefs = $inrcs$radixuireactcomposerefs.useComposedRefs(forwardedRef, (node)=>setSlider(node)
192
213
  );
@@ -234,8 +255,10 @@ const $1791bb30e2e418d5$var$SliderHorizontal = /*#__PURE__*/ $inrcs$react.forwar
234
255
  const value = getValueFromPointer(event.clientX);
235
256
  onSlideMove === null || onSlideMove === void 0 || onSlideMove(value);
236
257
  },
237
- onSlideEnd: ()=>rectRef.current = undefined
238
- ,
258
+ onSlideEnd: ()=>{
259
+ rectRef.current = undefined;
260
+ onSlideEnd === null || onSlideEnd === void 0 || onSlideEnd();
261
+ },
239
262
  onStepKeyDown: (event)=>{
240
263
  const slideDirection = isSlidingFromLeft ? 'from-left' : 'from-right';
241
264
  const isBackKey = $1791bb30e2e418d5$var$BACK_KEYS[slideDirection].includes(event.key);
@@ -249,7 +272,7 @@ const $1791bb30e2e418d5$var$SliderHorizontal = /*#__PURE__*/ $inrcs$react.forwar
249
272
  /* -------------------------------------------------------------------------------------------------
250
273
  * SliderVertical
251
274
  * -----------------------------------------------------------------------------------------------*/ const $1791bb30e2e418d5$var$SliderVertical = /*#__PURE__*/ $inrcs$react.forwardRef((props, forwardedRef)=>{
252
- const { min: min , max: max , inverted: inverted , onSlideStart: onSlideStart , onSlideMove: onSlideMove , onStepKeyDown: onStepKeyDown , ...sliderProps } = props;
275
+ const { min: min , max: max , inverted: inverted , onSlideStart: onSlideStart , onSlideMove: onSlideMove , onSlideEnd: onSlideEnd , onStepKeyDown: onStepKeyDown , ...sliderProps } = props;
253
276
  const sliderRef = $inrcs$react.useRef(null);
254
277
  const ref = $inrcs$radixuireactcomposerefs.useComposedRefs(forwardedRef, sliderRef);
255
278
  const rectRef = $inrcs$react.useRef();
@@ -293,8 +316,10 @@ const $1791bb30e2e418d5$var$SliderHorizontal = /*#__PURE__*/ $inrcs$react.forwar
293
316
  const value = getValueFromPointer(event.clientY);
294
317
  onSlideMove === null || onSlideMove === void 0 || onSlideMove(value);
295
318
  },
296
- onSlideEnd: ()=>rectRef.current = undefined
297
- ,
319
+ onSlideEnd: ()=>{
320
+ rectRef.current = undefined;
321
+ onSlideEnd === null || onSlideEnd === void 0 || onSlideEnd();
322
+ },
298
323
  onStepKeyDown: (event)=>{
299
324
  const slideDirection = isSlidingFromBottom ? 'from-bottom' : 'from-top';
300
325
  const isBackKey = $1791bb30e2e418d5$var$BACK_KEYS[slideDirection].includes(event.key);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react/slider/src/index.ts","packages/react/slider/src/Slider.tsx"],"sourcesContent":["export {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n} from './Slider';\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps } from './Slider';\n","import * 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';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\n\nconst PAGE_KEYS = ['PageUp', 'PageDown'];\nconst ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\ntype SlideDirection = 'from-left' | 'from-right' | 'from-bottom' | 'from-top';\nconst BACK_KEYS: Record<SlideDirection, string[]> = {\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};\n\n/* -------------------------------------------------------------------------------------------------\n * Slider\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLIDER_NAME = 'Slider';\n\nconst [Collection, useCollection, createCollectionScope] =\n createCollection<SliderThumbElement>(SLIDER_NAME);\n\ntype ScopedProps<P> = P & { __scopeSlider?: Scope };\nconst [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope,\n]);\n\ntype SliderContextValue = {\n disabled?: boolean;\n min: number;\n max: number;\n values: number[];\n valueIndexToChangeRef: React.MutableRefObject<number>;\n thumbs: Set<SliderThumbElement>;\n orientation: SliderProps['orientation'];\n};\n\nconst [SliderProvider, useSliderContext] = createSliderContext<SliderContextValue>(SLIDER_NAME);\n\ntype SliderElement = SliderHorizontalElement | SliderVerticalElement;\ninterface SliderProps\n extends Omit<\n SliderHorizontalProps | SliderVerticalProps,\n keyof SliderOrientationPrivateProps | 'defaultValue'\n > {\n name?: string;\n disabled?: boolean;\n orientation?: React.AriaAttributes['aria-orientation'];\n dir?: Direction;\n min?: number;\n max?: number;\n step?: number;\n minStepsBetweenThumbs?: number;\n value?: number[];\n defaultValue?: number[];\n onValueChange?(value: number[]): void;\n inverted?: boolean;\n}\n\nconst Slider = React.forwardRef<SliderElement, SliderProps>(\n (props: ScopedProps<SliderProps>, 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 inverted = false,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const thumbRefs = React.useRef<SliderContextValue['thumbs']>(new Set());\n const valueIndexToChangeRef = React.useRef<number>(0);\n const isHorizontal = orientation === 'horizontal';\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = slider ? Boolean(slider.closest('form')) : true;\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value);\n },\n });\n\n function handleSlideStart(value: number) {\n const closestIndex = getClosestValueIndex(values, value);\n updateValues(value, closestIndex);\n }\n\n function handleSlideMove(value: number) {\n updateValues(value, valueIndexToChangeRef.current);\n }\n\n function updateValues(value: number, atIndex: number) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n return String(nextValues) === String(prevValues) ? prevValues : nextValues;\n } else {\n return prevValues;\n }\n });\n }\n\n return (\n <SliderProvider\n scope={props.__scopeSlider}\n disabled={disabled}\n min={min}\n max={max}\n valueIndexToChangeRef={valueIndexToChangeRef}\n thumbs={thumbRefs.current}\n values={values}\n orientation={orientation}\n >\n <Collection.Provider scope={props.__scopeSlider}>\n <Collection.Slot scope={props.__scopeSlider}>\n <SliderOrientation\n aria-disabled={disabled}\n data-disabled={disabled ? '' : undefined}\n {...sliderProps}\n ref={composedRefs}\n min={min}\n max={max}\n inverted={inverted}\n onSlideStart={disabled ? undefined : handleSlideStart}\n onSlideMove={disabled ? undefined : handleSlideMove}\n onHomeKeyDown={() => !disabled && updateValues(min, 0)}\n onEndKeyDown={() => !disabled && updateValues(max, values.length - 1)}\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 value = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value + stepInDirection, atIndex);\n }\n }}\n />\n </Collection.Slot>\n </Collection.Provider>\n {isFormControl &&\n values.map((value, index) => (\n <BubbleInput\n key={index}\n name={name ? name + (values.length > 1 ? '[]' : '') : undefined}\n value={value}\n />\n ))}\n </SliderProvider>\n );\n }\n);\n\nSlider.displayName = SLIDER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderHorizontal\n * -----------------------------------------------------------------------------------------------*/\n\ntype Side = 'top' | 'right' | 'bottom' | 'left';\n\nconst [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext<{\n startEdge: Side;\n endEdge: Side;\n size: keyof NonNullable<ReturnType<typeof useSize>>;\n direction: number;\n}>(SLIDER_NAME, {\n startEdge: 'left',\n endEdge: 'right',\n size: 'width',\n direction: 1,\n});\n\ntype SliderOrientationPrivateProps = {\n min: number;\n max: number;\n inverted: boolean;\n onSlideStart?(value: number): void;\n onSlideMove?(value: number): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(step: { event: React.KeyboardEvent; direction: number }): void;\n};\ninterface SliderOrientationProps\n extends Omit<SliderImplProps, keyof SliderImplPrivateProps>,\n SliderOrientationPrivateProps {}\n\ntype SliderHorizontalElement = SliderImplElement;\ninterface SliderHorizontalProps extends SliderOrientationProps {\n dir?: Direction;\n}\n\nconst SliderHorizontal = React.forwardRef<SliderHorizontalElement, SliderHorizontalProps>(\n (props: ScopedProps<SliderHorizontalProps>, forwardedRef) => {\n const { min, max, dir, inverted, onSlideStart, onSlideMove, onStepKeyDown, ...sliderProps } =\n props;\n const [slider, setSlider] = React.useState<SliderImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef<ClientRect>();\n const direction = useDirection(dir);\n const isDirectionLTR = direction === 'ltr';\n const isSlidingFromLeft = (isDirectionLTR && !inverted) || (!isDirectionLTR && inverted);\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || slider!.getBoundingClientRect();\n const input: [number, number] = [0, rect.width];\n const output: [number, number] = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromLeft ? 'left' : 'right'}\n endEdge={isSlidingFromLeft ? 'right' : 'left'}\n direction={isSlidingFromLeft ? 1 : -1}\n size=\"width\"\n >\n <SliderImpl\n dir={direction}\n data-orientation=\"horizontal\"\n {...sliderProps}\n ref={composedRefs}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: '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={() => (rectRef.current = undefined)}\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 </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderVertical\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderVerticalElement = SliderImplElement;\ninterface SliderVerticalProps extends SliderOrientationProps {}\n\nconst SliderVertical = React.forwardRef<SliderVerticalElement, SliderVerticalProps>(\n (props: ScopedProps<SliderVerticalProps>, forwardedRef) => {\n const { min, max, inverted, onSlideStart, onSlideMove, onStepKeyDown, ...sliderProps } = props;\n const sliderRef = React.useRef<SliderImplElement>(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef<ClientRect>();\n const isSlidingFromBottom = !inverted;\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || sliderRef.current!.getBoundingClientRect();\n const input: [number, number] = [0, rect.height];\n const output: [number, number] = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromBottom ? 'bottom' : 'top'}\n endEdge={isSlidingFromBottom ? 'top' : 'bottom'}\n size=\"height\"\n direction={isSlidingFromBottom ? 1 : -1}\n >\n <SliderImpl\n data-orientation=\"vertical\"\n {...sliderProps}\n ref={ref}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: '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={() => (rectRef.current = undefined)}\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 </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderImpl\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderImplElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;\ntype SliderImplPrivateProps = {\n onSlideStart(event: React.PointerEvent): void;\n onSlideMove(event: React.PointerEvent): void;\n onSlideEnd(event: React.PointerEvent): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(event: React.KeyboardEvent): void;\n};\ninterface SliderImplProps extends PrimitiveDivProps, SliderImplPrivateProps {}\n\nconst SliderImpl = React.forwardRef<SliderImplElement, SliderImplProps>(\n (props: ScopedProps<SliderImplProps>, 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\n return (\n <Primitive.span\n {...sliderProps}\n ref={forwardedRef}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === 'Home') {\n onHomeKeyDown(event);\n // Prevent scrolling to page start\n event.preventDefault();\n } else if (event.key === 'End') {\n onEndKeyDown(event);\n // Prevent scrolling to page end\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n // Prevent scrolling for directional key presses\n event.preventDefault();\n }\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target as HTMLElement;\n target.setPointerCapture(event.pointerId);\n // Prevent browser focus behaviour because we focus a thumb manually when values change.\n event.preventDefault();\n // Touch devices have a delay before focusing so won't focus if touch immediately moves\n // away from target (sliding). We want thumb to focus regardless.\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 as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n })}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })}\n />\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderTrack\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRACK_NAME = 'SliderTrack';\n\ntype SliderTrackElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface SliderTrackProps extends PrimitiveSpanProps {}\n\nconst SliderTrack = React.forwardRef<SliderTrackElement, SliderTrackProps>(\n (props: ScopedProps<SliderTrackProps>, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return (\n <Primitive.span\n data-disabled={context.disabled ? '' : undefined}\n data-orientation={context.orientation}\n {...trackProps}\n ref={forwardedRef}\n />\n );\n }\n);\n\nSliderTrack.displayName = TRACK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderRange\n * -----------------------------------------------------------------------------------------------*/\n\nconst RANGE_NAME = 'SliderRange';\n\ntype SliderRangeElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderRangeProps extends PrimitiveSpanProps {}\n\nconst SliderRange = React.forwardRef<SliderRangeElement, SliderRangeProps>(\n (props: ScopedProps<SliderRangeProps>, 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<HTMLSpanElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map((value) =>\n convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n\n return (\n <Primitive.span\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n {...rangeProps}\n ref={composedRefs}\n style={{\n ...props.style,\n [orientation.startEdge]: offsetStart + '%',\n [orientation.endEdge]: offsetEnd + '%',\n }}\n />\n );\n }\n);\n\nSliderRange.displayName = RANGE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderThumb\n * -----------------------------------------------------------------------------------------------*/\n\nconst THUMB_NAME = 'SliderThumb';\n\ntype SliderThumbElement = SliderThumbImplElement;\ninterface SliderThumbProps extends Omit<SliderThumbImplProps, 'index'> {}\n\nconst SliderThumb = React.forwardRef<SliderThumbElement, SliderThumbProps>(\n (props: ScopedProps<SliderThumbProps>, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState<SliderThumbImplElement | null>(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 <SliderThumbImpl {...props} ref={composedRefs} index={index} />;\n }\n);\n\ntype SliderThumbImplElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderThumbImplProps extends PrimitiveSpanProps {\n index: number;\n}\n\nconst SliderThumbImpl = React.forwardRef<SliderThumbImplElement, SliderThumbImplProps>(\n (props: ScopedProps<SliderThumbImplProps>, forwardedRef) => {\n const { __scopeSlider, index, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const size = useSize(thumb);\n // We cast because index could be `-1` which would return undefined\n const value = context.values[index] as number | undefined;\n const percent =\n value === undefined ? 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\n ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction)\n : 0;\n\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\n return (\n <span\n style={{\n transform: 'var(--radix-slider-thumb-transform)',\n position: 'absolute',\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`,\n }}\n >\n <Collection.ItemSlot scope={props.__scopeSlider}>\n <Primitive.span\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 ? '' : undefined}\n tabIndex={context.disabled ? undefined : 0}\n {...thumbProps}\n ref={composedRefs}\n /**\n * There will be no value on initial render while we work out the index so we hide thumbs\n * without a value, otherwise SSR will render them in the wrong position before they\n * snap into the correct position during hydration which would be visually jarring for\n * slower connections.\n */\n style={value === undefined ? { display: 'none' } : props.style}\n onFocus={composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })}\n />\n </Collection.ItemSlot>\n </span>\n );\n }\n);\n\nSliderThumb.displayName = THUMB_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst BubbleInput = (props: Radix.ComponentPropsWithoutRef<'input'>) => {\n const { value, ...inputProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const prevValue = usePrevious(value);\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const input = ref.current!;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value') as PropertyDescriptor;\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\n /**\n * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n * wrap it will not be able to access its value via the FormData API.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n */\n return <input style={{ display: 'none' }} {...inputProps} ref={ref} defaultValue={value} />;\n};\n\nfunction getNextSortedValues(prevValues: number[] = [], nextValue: number, atIndex: number) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\n\nfunction convertValueToPercentage(value: number, min: number, max: number) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n return percentPerStep * (value - min);\n}\n\n/**\n * Returns a label for each thumb when there are two or more thumbs\n */\nfunction getLabel(index: number, totalValues: number) {\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 undefined;\n }\n}\n\n/**\n * Given a `values` array and a `nextValue`, determine which value in\n * the array is closest to `nextValue` and return its index.\n *\n * @example\n * // returns 1\n * getClosestValueIndex([10, 30], 25);\n */\nfunction getClosestValueIndex(values: number[], nextValue: number) {\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}\n\n/**\n * Offsets the thumb centre point while sliding to ensure it remains\n * within the bounds of the slider when reaching the edges\n */\nfunction getThumbInBoundsOffset(width: number, left: number, direction: number) {\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}\n\n/**\n * Gets an array of steps between each value.\n *\n * @example\n * // returns [1, 9]\n * getStepsBetweenValues([10, 11, 20]);\n */\nfunction getStepsBetweenValues(values: number[]) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\n\n/**\n * Verifies the minimum steps between all values is greater than or equal\n * to the expected minimum steps.\n *\n * @example\n * // returns false\n * hasMinStepsBetweenValues([1,2,3], 2);\n *\n * @example\n * // returns true\n * hasMinStepsBetweenValues([1,2,3], 1);\n */\nfunction hasMinStepsBetweenValues(values: number[], minStepsBetweenValues: number) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\n\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(input: readonly [number, number], output: readonly [number, number]) {\n return (value: number) => {\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}\n\nfunction getDecimalCount(value: number) {\n return (String(value).split('.')[1] || '').length;\n}\n\nfunction roundValue(value: number, decimalCount: number) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\n\nconst Root = Slider;\nconst Track = SliderTrack;\nconst Range = SliderRange;\nconst Thumb = SliderThumb;\n\nexport {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n};\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps };\n"],"names":["createSliderScope","Slider","SliderTrack","SliderRange","SliderThumb","Root","Track","Range","Thumb","React","clamp","composeEventHandlers","useComposedRefs","createContextScope","useControllableState","useDirection","usePrevious","useSize","Primitive","createCollection","PAGE_KEYS","ARROW_KEYS","BACK_KEYS","SLIDER_NAME","Collection","useCollection","createCollectionScope","createSliderContext","SliderProvider","useSliderContext","forwardRef","props","forwardedRef","name","min","max","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value","onValueChange","inverted","sliderProps","slider","setSlider","useState","composedRefs","node","thumbRefs","useRef","Set","valueIndexToChangeRef","isHorizontal","isFormControl","Boolean","closest","SliderOrientation","SliderHorizontal","SliderVertical","values","setValues","prop","defaultProp","onChange","thumbs","current","focus","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","atIndex","decimalCount","getDecimalCount","snapToStep","roundValue","Math","round","nextValue","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","indexOf","String","__scopeSlider","undefined","length","event","direction","stepDirection","isPageKey","includes","key","isSkipKey","shiftKey","multiplier","stepInDirection","map","index","SliderOrientationProvider","useSliderOrientationContext","startEdge","endEdge","size","dir","onSlideStart","onSlideMove","onStepKeyDown","rectRef","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","rect","getBoundingClientRect","input","width","output","linearScale","left","style","clientX","slideDirection","isBackKey","sliderRef","ref","isSlidingFromBottom","height","top","clientY","SliderImpl","onSlideEnd","onHomeKeyDown","onEndKeyDown","context","onKeyDown","preventDefault","concat","onPointerDown","target","setPointerCapture","pointerId","has","onPointerMove","hasPointerCapture","onPointerUp","releasePointerCapture","TRACK_NAME","trackProps","RANGE_NAME","rangeProps","valuesCount","percentages","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","getItems","thumb","setThumb","useMemo","findIndex","item","SliderThumbImpl","thumbProps","percent","label","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","useEffect","add","delete","transform","position","display","onFocus","BubbleInput","inputProps","prevValue","inputProto","window","HTMLInputElement","prototype","descriptor","Object","getOwnPropertyDescriptor","setValue","set","Event","bubbles","call","dispatchEvent","sort","a","b","maxSteps","percentPerStep","totalValues","distances","abs","closestDistance","halfWidth","halfPercent","offset","getStepsBetweenValues","slice","minStepsBetweenValues","stepsBetweenValues","actualMinStepsBetweenValues","ratio","split","rounder","pow"],"version":3,"file":"index.js.map"}
1
+ {"mappings":"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","sources":["packages/react/slider/src/index.ts","packages/react/slider/src/Slider.tsx"],"sourcesContent":["export {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n} from './Slider';\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps } from './Slider';\n","import * 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';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\n\nconst PAGE_KEYS = ['PageUp', 'PageDown'];\nconst ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\ntype SlideDirection = 'from-left' | 'from-right' | 'from-bottom' | 'from-top';\nconst BACK_KEYS: Record<SlideDirection, string[]> = {\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};\n\n/* -------------------------------------------------------------------------------------------------\n * Slider\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLIDER_NAME = 'Slider';\n\nconst [Collection, useCollection, createCollectionScope] =\n createCollection<SliderThumbElement>(SLIDER_NAME);\n\ntype ScopedProps<P> = P & { __scopeSlider?: Scope };\nconst [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope,\n]);\n\ntype SliderContextValue = {\n disabled?: boolean;\n min: number;\n max: number;\n values: number[];\n valueIndexToChangeRef: React.MutableRefObject<number>;\n thumbs: Set<SliderThumbElement>;\n orientation: SliderProps['orientation'];\n};\n\nconst [SliderProvider, useSliderContext] = createSliderContext<SliderContextValue>(SLIDER_NAME);\n\ntype SliderElement = SliderHorizontalElement | SliderVerticalElement;\ninterface SliderProps\n extends Omit<\n SliderHorizontalProps | SliderVerticalProps,\n keyof SliderOrientationPrivateProps | 'defaultValue'\n > {\n name?: string;\n disabled?: boolean;\n orientation?: React.AriaAttributes['aria-orientation'];\n dir?: Direction;\n min?: number;\n max?: number;\n step?: number;\n minStepsBetweenThumbs?: number;\n value?: number[];\n defaultValue?: number[];\n onValueChange?(value: number[]): void;\n onValueCommit?(value: number[]): void;\n inverted?: boolean;\n}\n\nconst Slider = React.forwardRef<SliderElement, SliderProps>(\n (props: ScopedProps<SliderProps>, 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 onValueCommit = () => {},\n inverted = false,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const thumbRefs = React.useRef<SliderContextValue['thumbs']>(new Set());\n const valueIndexToChangeRef = React.useRef<number>(0);\n const isHorizontal = orientation === 'horizontal';\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = slider ? Boolean(slider.closest('form')) : true;\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value);\n },\n });\n const valuesBeforeSlideStartRef = React.useRef(values);\n\n function handleSlideStart(value: number) {\n const closestIndex = getClosestValueIndex(values, value);\n updateValues(value, closestIndex);\n }\n\n function handleSlideMove(value: number) {\n updateValues(value, valueIndexToChangeRef.current);\n }\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\n function updateValues(value: number, atIndex: number, { commit } = { commit: false }) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n\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\n return (\n <SliderProvider\n scope={props.__scopeSlider}\n disabled={disabled}\n min={min}\n max={max}\n valueIndexToChangeRef={valueIndexToChangeRef}\n thumbs={thumbRefs.current}\n values={values}\n orientation={orientation}\n >\n <Collection.Provider scope={props.__scopeSlider}>\n <Collection.Slot scope={props.__scopeSlider}>\n <SliderOrientation\n aria-disabled={disabled}\n data-disabled={disabled ? '' : undefined}\n {...sliderProps}\n ref={composedRefs}\n onPointerDown={composeEventHandlers(sliderProps.onPointerDown, () => {\n if (!disabled) valuesBeforeSlideStartRef.current = values;\n })}\n min={min}\n max={max}\n inverted={inverted}\n onSlideStart={disabled ? undefined : handleSlideStart}\n onSlideMove={disabled ? undefined : handleSlideMove}\n onSlideEnd={disabled ? undefined : handleSlideEnd}\n onHomeKeyDown={() => !disabled && updateValues(min, 0, { commit: true })}\n onEndKeyDown={() =>\n !disabled && updateValues(max, values.length - 1, { commit: true })\n }\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 value = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value + stepInDirection, atIndex, { commit: true });\n }\n }}\n />\n </Collection.Slot>\n </Collection.Provider>\n {isFormControl &&\n values.map((value, index) => (\n <BubbleInput\n key={index}\n name={name ? name + (values.length > 1 ? '[]' : '') : undefined}\n value={value}\n />\n ))}\n </SliderProvider>\n );\n }\n);\n\nSlider.displayName = SLIDER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderHorizontal\n * -----------------------------------------------------------------------------------------------*/\n\ntype Side = 'top' | 'right' | 'bottom' | 'left';\n\nconst [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext<{\n startEdge: Side;\n endEdge: Side;\n size: keyof NonNullable<ReturnType<typeof useSize>>;\n direction: number;\n}>(SLIDER_NAME, {\n startEdge: 'left',\n endEdge: 'right',\n size: 'width',\n direction: 1,\n});\n\ntype SliderOrientationPrivateProps = {\n min: number;\n max: number;\n inverted: boolean;\n onSlideStart?(value: number): void;\n onSlideMove?(value: number): void;\n onSlideEnd?(): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(step: { event: React.KeyboardEvent; direction: number }): void;\n};\ninterface SliderOrientationProps\n extends Omit<SliderImplProps, keyof SliderImplPrivateProps>,\n SliderOrientationPrivateProps {}\n\ntype SliderHorizontalElement = SliderImplElement;\ninterface SliderHorizontalProps extends SliderOrientationProps {\n dir?: Direction;\n}\n\nconst SliderHorizontal = React.forwardRef<SliderHorizontalElement, SliderHorizontalProps>(\n (props: ScopedProps<SliderHorizontalProps>, 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<SliderImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef<ClientRect>();\n const direction = useDirection(dir);\n const isDirectionLTR = direction === 'ltr';\n const isSlidingFromLeft = (isDirectionLTR && !inverted) || (!isDirectionLTR && inverted);\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || slider!.getBoundingClientRect();\n const input: [number, number] = [0, rect.width];\n const output: [number, number] = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromLeft ? 'left' : 'right'}\n endEdge={isSlidingFromLeft ? 'right' : 'left'}\n direction={isSlidingFromLeft ? 1 : -1}\n size=\"width\"\n >\n <SliderImpl\n dir={direction}\n data-orientation=\"horizontal\"\n {...sliderProps}\n ref={composedRefs}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: '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 = undefined;\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 </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderVertical\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderVerticalElement = SliderImplElement;\ninterface SliderVerticalProps extends SliderOrientationProps {}\n\nconst SliderVertical = React.forwardRef<SliderVerticalElement, SliderVerticalProps>(\n (props: ScopedProps<SliderVerticalProps>, 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<SliderImplElement>(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef<ClientRect>();\n const isSlidingFromBottom = !inverted;\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || sliderRef.current!.getBoundingClientRect();\n const input: [number, number] = [0, rect.height];\n const output: [number, number] = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromBottom ? 'bottom' : 'top'}\n endEdge={isSlidingFromBottom ? 'top' : 'bottom'}\n size=\"height\"\n direction={isSlidingFromBottom ? 1 : -1}\n >\n <SliderImpl\n data-orientation=\"vertical\"\n {...sliderProps}\n ref={ref}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: '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 = undefined;\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 </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderImpl\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderImplElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;\ntype SliderImplPrivateProps = {\n onSlideStart(event: React.PointerEvent): void;\n onSlideMove(event: React.PointerEvent): void;\n onSlideEnd(event: React.PointerEvent): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(event: React.KeyboardEvent): void;\n};\ninterface SliderImplProps extends PrimitiveDivProps, SliderImplPrivateProps {}\n\nconst SliderImpl = React.forwardRef<SliderImplElement, SliderImplProps>(\n (props: ScopedProps<SliderImplProps>, 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\n return (\n <Primitive.span\n {...sliderProps}\n ref={forwardedRef}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === 'Home') {\n onHomeKeyDown(event);\n // Prevent scrolling to page start\n event.preventDefault();\n } else if (event.key === 'End') {\n onEndKeyDown(event);\n // Prevent scrolling to page end\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n // Prevent scrolling for directional key presses\n event.preventDefault();\n }\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target as HTMLElement;\n target.setPointerCapture(event.pointerId);\n // Prevent browser focus behaviour because we focus a thumb manually when values change.\n event.preventDefault();\n // Touch devices have a delay before focusing so won't focus if touch immediately moves\n // away from target (sliding). We want thumb to focus regardless.\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 as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n })}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })}\n />\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderTrack\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRACK_NAME = 'SliderTrack';\n\ntype SliderTrackElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface SliderTrackProps extends PrimitiveSpanProps {}\n\nconst SliderTrack = React.forwardRef<SliderTrackElement, SliderTrackProps>(\n (props: ScopedProps<SliderTrackProps>, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return (\n <Primitive.span\n data-disabled={context.disabled ? '' : undefined}\n data-orientation={context.orientation}\n {...trackProps}\n ref={forwardedRef}\n />\n );\n }\n);\n\nSliderTrack.displayName = TRACK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderRange\n * -----------------------------------------------------------------------------------------------*/\n\nconst RANGE_NAME = 'SliderRange';\n\ntype SliderRangeElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderRangeProps extends PrimitiveSpanProps {}\n\nconst SliderRange = React.forwardRef<SliderRangeElement, SliderRangeProps>(\n (props: ScopedProps<SliderRangeProps>, 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<HTMLSpanElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map((value) =>\n convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n\n return (\n <Primitive.span\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n {...rangeProps}\n ref={composedRefs}\n style={{\n ...props.style,\n [orientation.startEdge]: offsetStart + '%',\n [orientation.endEdge]: offsetEnd + '%',\n }}\n />\n );\n }\n);\n\nSliderRange.displayName = RANGE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderThumb\n * -----------------------------------------------------------------------------------------------*/\n\nconst THUMB_NAME = 'SliderThumb';\n\ntype SliderThumbElement = SliderThumbImplElement;\ninterface SliderThumbProps extends Omit<SliderThumbImplProps, 'index'> {}\n\nconst SliderThumb = React.forwardRef<SliderThumbElement, SliderThumbProps>(\n (props: ScopedProps<SliderThumbProps>, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState<SliderThumbImplElement | null>(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 <SliderThumbImpl {...props} ref={composedRefs} index={index} />;\n }\n);\n\ntype SliderThumbImplElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderThumbImplProps extends PrimitiveSpanProps {\n index: number;\n}\n\nconst SliderThumbImpl = React.forwardRef<SliderThumbImplElement, SliderThumbImplProps>(\n (props: ScopedProps<SliderThumbImplProps>, forwardedRef) => {\n const { __scopeSlider, index, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const size = useSize(thumb);\n // We cast because index could be `-1` which would return undefined\n const value = context.values[index] as number | undefined;\n const percent =\n value === undefined ? 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\n ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction)\n : 0;\n\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\n return (\n <span\n style={{\n transform: 'var(--radix-slider-thumb-transform)',\n position: 'absolute',\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`,\n }}\n >\n <Collection.ItemSlot scope={props.__scopeSlider}>\n <Primitive.span\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 ? '' : undefined}\n tabIndex={context.disabled ? undefined : 0}\n {...thumbProps}\n ref={composedRefs}\n /**\n * There will be no value on initial render while we work out the index so we hide thumbs\n * without a value, otherwise SSR will render them in the wrong position before they\n * snap into the correct position during hydration which would be visually jarring for\n * slower connections.\n */\n style={value === undefined ? { display: 'none' } : props.style}\n onFocus={composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })}\n />\n </Collection.ItemSlot>\n </span>\n );\n }\n);\n\nSliderThumb.displayName = THUMB_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst BubbleInput = (props: Radix.ComponentPropsWithoutRef<'input'>) => {\n const { value, ...inputProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const prevValue = usePrevious(value);\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const input = ref.current!;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value') as PropertyDescriptor;\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\n /**\n * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n * wrap it will not be able to access its value via the FormData API.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n */\n return <input style={{ display: 'none' }} {...inputProps} ref={ref} defaultValue={value} />;\n};\n\nfunction getNextSortedValues(prevValues: number[] = [], nextValue: number, atIndex: number) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\n\nfunction convertValueToPercentage(value: number, min: number, max: number) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n return percentPerStep * (value - min);\n}\n\n/**\n * Returns a label for each thumb when there are two or more thumbs\n */\nfunction getLabel(index: number, totalValues: number) {\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 undefined;\n }\n}\n\n/**\n * Given a `values` array and a `nextValue`, determine which value in\n * the array is closest to `nextValue` and return its index.\n *\n * @example\n * // returns 1\n * getClosestValueIndex([10, 30], 25);\n */\nfunction getClosestValueIndex(values: number[], nextValue: number) {\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}\n\n/**\n * Offsets the thumb centre point while sliding to ensure it remains\n * within the bounds of the slider when reaching the edges\n */\nfunction getThumbInBoundsOffset(width: number, left: number, direction: number) {\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}\n\n/**\n * Gets an array of steps between each value.\n *\n * @example\n * // returns [1, 9]\n * getStepsBetweenValues([10, 11, 20]);\n */\nfunction getStepsBetweenValues(values: number[]) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\n\n/**\n * Verifies the minimum steps between all values is greater than or equal\n * to the expected minimum steps.\n *\n * @example\n * // returns false\n * hasMinStepsBetweenValues([1,2,3], 2);\n *\n * @example\n * // returns true\n * hasMinStepsBetweenValues([1,2,3], 1);\n */\nfunction hasMinStepsBetweenValues(values: number[], minStepsBetweenValues: number) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\n\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(input: readonly [number, number], output: readonly [number, number]) {\n return (value: number) => {\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}\n\nfunction getDecimalCount(value: number) {\n return (String(value).split('.')[1] || '').length;\n}\n\nfunction roundValue(value: number, decimalCount: number) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\n\nconst Root = Slider;\nconst Track = SliderTrack;\nconst Range = SliderRange;\nconst Thumb = SliderThumb;\n\nexport {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n};\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps };\n"],"names":["createSliderScope","Slider","SliderTrack","SliderRange","SliderThumb","Root","Track","Range","Thumb","React","clamp","composeEventHandlers","useComposedRefs","createContextScope","useControllableState","useDirection","usePrevious","useSize","Primitive","createCollection","PAGE_KEYS","ARROW_KEYS","BACK_KEYS","SLIDER_NAME","Collection","useCollection","createCollectionScope","createSliderContext","SliderProvider","useSliderContext","forwardRef","props","forwardedRef","name","min","max","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value","onValueChange","onValueCommit","inverted","sliderProps","slider","setSlider","useState","composedRefs","node","thumbRefs","useRef","Set","valueIndexToChangeRef","isHorizontal","isFormControl","Boolean","closest","SliderOrientation","SliderHorizontal","SliderVertical","values","setValues","prop","defaultProp","onChange","thumbs","current","focus","valuesBeforeSlideStartRef","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","handleSlideEnd","prevValue","nextValue","hasChanged","atIndex","commit","decimalCount","getDecimalCount","snapToStep","roundValue","Math","round","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","indexOf","String","__scopeSlider","undefined","onPointerDown","length","event","direction","stepDirection","isPageKey","includes","key","isSkipKey","shiftKey","multiplier","stepInDirection","map","index","SliderOrientationProvider","useSliderOrientationContext","startEdge","endEdge","size","dir","onSlideStart","onSlideMove","onSlideEnd","onStepKeyDown","rectRef","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","rect","getBoundingClientRect","input","width","output","linearScale","left","style","clientX","slideDirection","isBackKey","sliderRef","ref","isSlidingFromBottom","height","top","clientY","SliderImpl","onHomeKeyDown","onEndKeyDown","context","onKeyDown","preventDefault","concat","target","setPointerCapture","pointerId","has","onPointerMove","hasPointerCapture","onPointerUp","releasePointerCapture","TRACK_NAME","trackProps","RANGE_NAME","rangeProps","valuesCount","percentages","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","getItems","thumb","setThumb","useMemo","findIndex","item","SliderThumbImpl","thumbProps","percent","label","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","useEffect","add","delete","transform","position","display","onFocus","BubbleInput","inputProps","inputProto","window","HTMLInputElement","prototype","descriptor","Object","getOwnPropertyDescriptor","setValue","set","Event","bubbles","call","dispatchEvent","sort","a","b","maxSteps","percentPerStep","totalValues","distances","abs","closestDistance","halfWidth","halfPercent","offset","getStepsBetweenValues","slice","minStepsBetweenValues","stepsBetweenValues","actualMinStepsBetweenValues","ratio","split","rounder","pow"],"version":3,"file":"index.js.map"}
@@ -70,7 +70,7 @@ const [$faa2e61a3361514f$var$SliderProvider, $faa2e61a3361514f$var$useSliderCont
70
70
  const $faa2e61a3361514f$export$472062a354075cee = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{
71
71
  const { name: name , min: min = 0 , max: max = 100 , step: step = 1 , orientation: orientation = 'horizontal' , disabled: disabled = false , minStepsBetweenThumbs: minStepsBetweenThumbs = 0 , defaultValue: defaultValue = [
72
72
  min
73
- ] , value: value1 , onValueChange: onValueChange = ()=>{} , inverted: inverted = false , ...sliderProps } = props;
73
+ ] , value: value1 , onValueChange: onValueChange = ()=>{} , onValueCommit: onValueCommit = ()=>{} , inverted: inverted = false , ...sliderProps } = props;
74
74
  const [slider, setSlider] = $g1Vy2$useState(null);
75
75
  const composedRefs = $g1Vy2$useComposedRefs(forwardedRef, (node)=>setSlider(node)
76
76
  );
@@ -91,6 +91,7 @@ const $faa2e61a3361514f$export$472062a354075cee = /*#__PURE__*/ $g1Vy2$forwardRe
91
91
  onValueChange(value);
92
92
  }
93
93
  });
94
+ const valuesBeforeSlideStartRef = $g1Vy2$useRef(values);
94
95
  function handleSlideStart(value) {
95
96
  const closestIndex = $faa2e61a3361514f$var$getClosestValueIndex(values, value);
96
97
  updateValues(value, closestIndex);
@@ -98,7 +99,15 @@ const $faa2e61a3361514f$export$472062a354075cee = /*#__PURE__*/ $g1Vy2$forwardRe
98
99
  function handleSlideMove(value) {
99
100
  updateValues(value, valueIndexToChangeRef.current);
100
101
  }
101
- function updateValues(value, atIndex) {
102
+ function handleSlideEnd() {
103
+ const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];
104
+ const nextValue = values[valueIndexToChangeRef.current];
105
+ const hasChanged = nextValue !== prevValue;
106
+ if (hasChanged) onValueCommit(values);
107
+ }
108
+ function updateValues(value, atIndex, { commit: commit } = {
109
+ commit: false
110
+ }) {
102
111
  const decimalCount = $faa2e61a3361514f$var$getDecimalCount(step);
103
112
  const snapToStep = $faa2e61a3361514f$var$roundValue(Math.round((value - min) / step) * step + min, decimalCount);
104
113
  const nextValue = $g1Vy2$clamp(snapToStep, [
@@ -109,7 +118,9 @@ const $faa2e61a3361514f$export$472062a354075cee = /*#__PURE__*/ $g1Vy2$forwardRe
109
118
  const nextValues = $faa2e61a3361514f$var$getNextSortedValues(prevValues, nextValue, atIndex);
110
119
  if ($faa2e61a3361514f$var$hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {
111
120
  valueIndexToChangeRef.current = nextValues.indexOf(nextValue);
112
- return String(nextValues) === String(prevValues) ? prevValues : nextValues;
121
+ const hasChanged = String(nextValues) !== String(prevValues);
122
+ if (hasChanged && commit) onValueCommit(nextValues);
123
+ return hasChanged ? nextValues : prevValues;
113
124
  } else return prevValues;
114
125
  });
115
126
  }
@@ -131,14 +142,22 @@ const $faa2e61a3361514f$export$472062a354075cee = /*#__PURE__*/ $g1Vy2$forwardRe
131
142
  "data-disabled": disabled ? '' : undefined
132
143
  }, sliderProps, {
133
144
  ref: composedRefs,
145
+ onPointerDown: $g1Vy2$composeEventHandlers(sliderProps.onPointerDown, ()=>{
146
+ if (!disabled) valuesBeforeSlideStartRef.current = values;
147
+ }),
134
148
  min: min,
135
149
  max: max,
136
150
  inverted: inverted,
137
151
  onSlideStart: disabled ? undefined : handleSlideStart,
138
152
  onSlideMove: disabled ? undefined : handleSlideMove,
139
- onHomeKeyDown: ()=>!disabled && updateValues(min, 0)
153
+ onSlideEnd: disabled ? undefined : handleSlideEnd,
154
+ onHomeKeyDown: ()=>!disabled && updateValues(min, 0, {
155
+ commit: true
156
+ })
140
157
  ,
141
- onEndKeyDown: ()=>!disabled && updateValues(max, values.length - 1)
158
+ onEndKeyDown: ()=>!disabled && updateValues(max, values.length - 1, {
159
+ commit: true
160
+ })
142
161
  ,
143
162
  onStepKeyDown: ({ event: event , direction: stepDirection })=>{
144
163
  if (!disabled) {
@@ -148,7 +167,9 @@ const $faa2e61a3361514f$export$472062a354075cee = /*#__PURE__*/ $g1Vy2$forwardRe
148
167
  const atIndex = valueIndexToChangeRef.current;
149
168
  const value = values[atIndex];
150
169
  const stepInDirection = step * multiplier * stepDirection;
151
- updateValues(value + stepInDirection, atIndex);
170
+ updateValues(value + stepInDirection, atIndex, {
171
+ commit: true
172
+ });
152
173
  }
153
174
  }
154
175
  })))), isFormControl && values.map((value, index)=>/*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$BubbleInput, {
@@ -170,7 +191,7 @@ const $faa2e61a3361514f$export$472062a354075cee = /*#__PURE__*/ $g1Vy2$forwardRe
170
191
  direction: 1
171
192
  });
172
193
  const $faa2e61a3361514f$var$SliderHorizontal = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{
173
- const { min: min , max: max , dir: dir , inverted: inverted , onSlideStart: onSlideStart , onSlideMove: onSlideMove , onStepKeyDown: onStepKeyDown , ...sliderProps } = props;
194
+ const { min: min , max: max , dir: dir , inverted: inverted , onSlideStart: onSlideStart , onSlideMove: onSlideMove , onSlideEnd: onSlideEnd , onStepKeyDown: onStepKeyDown , ...sliderProps } = props;
174
195
  const [slider, setSlider] = $g1Vy2$useState(null);
175
196
  const composedRefs = $g1Vy2$useComposedRefs(forwardedRef, (node)=>setSlider(node)
176
197
  );
@@ -218,8 +239,10 @@ const $faa2e61a3361514f$var$SliderHorizontal = /*#__PURE__*/ $g1Vy2$forwardRef((
218
239
  const value = getValueFromPointer(event.clientX);
219
240
  onSlideMove === null || onSlideMove === void 0 || onSlideMove(value);
220
241
  },
221
- onSlideEnd: ()=>rectRef.current = undefined
222
- ,
242
+ onSlideEnd: ()=>{
243
+ rectRef.current = undefined;
244
+ onSlideEnd === null || onSlideEnd === void 0 || onSlideEnd();
245
+ },
223
246
  onStepKeyDown: (event)=>{
224
247
  const slideDirection = isSlidingFromLeft ? 'from-left' : 'from-right';
225
248
  const isBackKey = $faa2e61a3361514f$var$BACK_KEYS[slideDirection].includes(event.key);
@@ -233,7 +256,7 @@ const $faa2e61a3361514f$var$SliderHorizontal = /*#__PURE__*/ $g1Vy2$forwardRef((
233
256
  /* -------------------------------------------------------------------------------------------------
234
257
  * SliderVertical
235
258
  * -----------------------------------------------------------------------------------------------*/ const $faa2e61a3361514f$var$SliderVertical = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{
236
- const { min: min , max: max , inverted: inverted , onSlideStart: onSlideStart , onSlideMove: onSlideMove , onStepKeyDown: onStepKeyDown , ...sliderProps } = props;
259
+ const { min: min , max: max , inverted: inverted , onSlideStart: onSlideStart , onSlideMove: onSlideMove , onSlideEnd: onSlideEnd , onStepKeyDown: onStepKeyDown , ...sliderProps } = props;
237
260
  const sliderRef = $g1Vy2$useRef(null);
238
261
  const ref = $g1Vy2$useComposedRefs(forwardedRef, sliderRef);
239
262
  const rectRef = $g1Vy2$useRef();
@@ -277,8 +300,10 @@ const $faa2e61a3361514f$var$SliderHorizontal = /*#__PURE__*/ $g1Vy2$forwardRef((
277
300
  const value = getValueFromPointer(event.clientY);
278
301
  onSlideMove === null || onSlideMove === void 0 || onSlideMove(value);
279
302
  },
280
- onSlideEnd: ()=>rectRef.current = undefined
281
- ,
303
+ onSlideEnd: ()=>{
304
+ rectRef.current = undefined;
305
+ onSlideEnd === null || onSlideEnd === void 0 || onSlideEnd();
306
+ },
282
307
  onStepKeyDown: (event)=>{
283
308
  const slideDirection = isSlidingFromBottom ? 'from-bottom' : 'from-top';
284
309
  const isBackKey = $faa2e61a3361514f$var$BACK_KEYS[slideDirection].includes(event.key);
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;;;A;;;;;;;;;;;;ACiBA,MAAMoB,+BAAS,GAAG;IAAC,QAAD;IAAW,UAAX;CAAlB,AAAA;AACA,MAAMC,gCAAU,GAAG;IAAC,SAAD;IAAY,WAAZ;IAAyB,WAAzB;IAAsC,YAAtC;CAAnB,AAAA;AAGA,MAAMC,+BAA2C,GAAG;IAClD,WAAA,EAAa;QAAC,MAAD;QAAS,UAAT;QAAqB,WAArB;QAAkC,WAAlC;KADqC;IAElD,YAAA,EAAc;QAAC,MAAD;QAAS,UAAT;QAAqB,WAArB;QAAkC,YAAlC;KAFoC;IAGlD,aAAA,EAAe;QAAC,MAAD;QAAS,UAAT;QAAqB,WAArB;QAAkC,WAAlC;KAHmC;IAIlD,UAAA,EAAY;QAAC,MAAD;QAAS,UAAT;QAAqB,SAArB;QAAgC,WAAhC;KAAZ;CAJF,AAAoD;AAOpD;;oGAEA,CAEA,MAAMC,iCAAW,GAAG,QAApB,AAAA;AAEA,MAAM,CAACC,gCAAD,EAAaC,mCAAb,EAA4BC,2CAA5B,CAAA,GACJP,uBAAgB,CAAqBI,iCAArB,CADlB,AAAA;AAIA,MAAM,CAACI,yCAAD,EAAsB3B,yCAAtB,CAAA,GAA2Ca,yBAAkB,CAACU,iCAAD,EAAc;IAC/EG,2CAD+E;CAAd,CAAnE,AAAA;AAcA,MAAM,CAACE,oCAAD,EAAiBC,sCAAjB,CAAA,GAAqCF,yCAAmB,CAAqBJ,iCAArB,CAA9D,AAAA;AAsBA,MAAMtB,yCAAM,GAAA,aAAGQ,CAAAA,iBAAA,CACb,CAACsB,KAAD,EAAkCC,YAAlC,GAAmD;IACjD,MAAM,E,MACJC,IADI,CAAA,OAEJC,GAAG,GAAG,CAFF,QAGJC,GAAG,GAAG,GAHF,SAIJC,IAAI,GAAG,CAJH,gBAKJC,WAAW,GAAG,YALV,aAMJC,QAAQ,GAAG,KANP,0BAOJC,qBAAqB,GAAG,CAPpB,iBAQJC,YAAY,GAAG;QAACN,GAAD;KARX,G,OASJO,MATI,CAAA,iBAUJC,aAAa,GAAG,IAAM,EAVlB,aAWJC,QAAQ,GAAG,KAXP,GAYJ,GAAGC,WAAH,EAZI,GAaFb,KAbJ,AAAM;IAcN,MAAM,CAACc,MAAD,EAASC,SAAT,CAAA,GAAsBrC,eAAA,CAAuC,IAAvC,CAA5B,AAAA;IACA,MAAMuC,YAAY,GAAGpC,sBAAe,CAACoB,YAAD,EAAgBiB,CAAAA,IAAD,GAAUH,SAAS,CAACG,IAAD,CAAlC;IAAA,CAApC,AAAA;IACA,MAAMC,SAAS,GAAGzC,aAAA,CAA2C,IAAI2C,GAAJ,EAA3C,CAAlB,AAAA;IACA,MAAMC,qBAAqB,GAAG5C,aAAA,CAAqB,CAArB,CAA9B,AAAA;IACA,MAAM6C,YAAY,GAAGjB,WAAW,KAAK,YAArC,AAnBiD,EAoBjD,iFADA;IAEA,MAAMkB,aAAa,GAAGV,MAAM,GAAGW,OAAO,CAACX,MAAM,CAACY,OAAP,CAAe,MAAf,CAAD,CAAV,GAAqC,IAAjE,AAAA;IACA,MAAMC,iBAAiB,GAAGJ,YAAY,GAAGK,sCAAH,GAAsBC,oCAA5D,AAAA;IAEA,MAAM,CAACC,MAAM,GAAG,EAAV,EAAcC,SAAd,CAAA,GAA2BhD,2BAAoB,CAAC;QACpDiD,IAAI,EAAEtB,MAD8C;QAEpDuB,WAAW,EAAExB,YAFuC;QAGpDyB,QAAQ,EAAGxB,CAAAA,KAAD,GAAW;YAAA,IAAA,qBAAA,AAAA;YACnB,MAAMyB,MAAM,GAAG;mBAAIhB,SAAS,CAACiB,OAAd;aAAf,AAAA;YACA,CAAA,qBAAA,GAAAD,MAAM,CAACb,qBAAqB,CAACc,OAAvB,CAAN,CAAA,KAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,IAAA,qBAAA,CAAuCC,KAAvC,EAAA,CAAA;YACA1B,aAAa,CAACD,KAAD,CAAb,CAAAC;SACD;KAPkD,CAArD,AAAsD;IAUtD,SAAS2B,gBAAT,CAA0B5B,KAA1B,EAAyC;QACvC,MAAM6B,YAAY,GAAGC,0CAAoB,CAACV,MAAD,EAASpB,KAAT,CAAzC,AAAA;QACA+B,YAAY,CAAC/B,KAAD,EAAQ6B,YAAR,CAAZ,CAAAE;KACD;IAED,SAASC,eAAT,CAAyBhC,KAAzB,EAAwC;QACtC+B,YAAY,CAAC/B,KAAD,EAAQY,qBAAqB,CAACc,OAA9B,CAAZ,CAAAK;KACD;IAED,SAASA,YAAT,CAAsB/B,KAAtB,EAAqCiC,OAArC,EAAsD;QACpD,MAAMC,YAAY,GAAGC,qCAAe,CAACxC,IAAD,CAApC,AAAA;QACA,MAAMyC,UAAU,GAAGC,gCAAU,CAACC,IAAI,CAACC,KAAL,CAAW,AAACvC,CAAAA,KAAK,GAAGP,GAAT,CAAA,GAAgBE,IAA3B,CAAA,GAAmCA,IAAnC,GAA0CF,GAA3C,EAAgDyC,YAAhD,CAA7B,AAAA;QACA,MAAMM,SAAS,GAAGvE,YAAK,CAACmE,UAAD,EAAa;YAAC3C,GAAD;YAAMC,GAAN;SAAb,CAAvB,AAAA;QAEA2B,SAAS,CAAC,CAACoB,UAAU,GAAG,EAAd,GAAqB;YAC7B,MAAMC,UAAU,GAAGC,yCAAmB,CAACF,UAAD,EAAaD,SAAb,EAAwBP,OAAxB,CAAtC,AAAA;YACA,IAAIW,8CAAwB,CAACF,UAAD,EAAa5C,qBAAqB,GAAGH,IAArC,CAA5B,EAAwE;gBACtEiB,qBAAqB,CAACc,OAAtB,GAAgCgB,UAAU,CAACG,OAAX,CAAmBL,SAAnB,CAAhC,CAAA5B;gBACA,OAAOkC,MAAM,CAACJ,UAAD,CAAN,KAAuBI,MAAM,CAACL,UAAD,CAA7B,GAA4CA,UAA5C,GAAyDC,UAAhE,CAAA;aAFF,MAIE,OAAOD,UAAP,CAAA;SANK,CAAT,CAQC;KACF;IAED,OAAA,aACE,CAAA,oBAAA,CAAC,oCAAD,EADF;QAEI,KAAK,EAAEnD,KAAK,CAACyD,aADf;QAEE,QAAQ,EAAElD,QAFZ;QAGE,GAAG,EAAEJ,GAHP;QAIE,GAAG,EAAEC,GAJP;QAKE,qBAAqB,EAAEkB,qBALzB;QAME,MAAM,EAAEH,SAAS,CAACiB,OANpB;QAOE,MAAM,EAAEN,MAPV;QAQE,WAAW,EAAExB,WAAb;KARF,EAAA,aAUE,CAAA,oBAAA,CAAC,gCAAD,CAAY,QAAZ,EAVF;QAUuB,KAAK,EAAEN,KAAK,CAACyD,aAAb;KAArB,EAAA,aACE,CAAA,oBAAA,CAAC,gCAAD,CAAY,IAAZ,EADF;QACmB,KAAK,EAAEzD,KAAK,CAACyD,aAAb;KAAjB,EAAA,aACE,CAAA,oBAAA,CAAC,iBAAD,EADF,oCAAA,CAAA;QAEI,eAAA,EAAelD,QADjB;QAEE,eAAA,EAAeA,QAAQ,GAAG,EAAH,GAAQmD,SAA/B;KAFF,EAGM7C,WAHN,EAAA;QAIE,GAAG,EAAEI,YAJP;QAKE,GAAG,EAAEd,GALP;QAME,GAAG,EAAEC,GANP;QAOE,QAAQ,EAAEQ,QAPZ;QAQE,YAAY,EAAEL,QAAQ,GAAGmD,SAAH,GAAepB,gBARvC;QASE,WAAW,EAAE/B,QAAQ,GAAGmD,SAAH,GAAehB,eATtC;QAUE,aAAa,EAAE,IAAM,CAACnC,QAAD,IAAakC,YAAY,CAACtC,GAAD,EAAM,CAAN,CAVhD;QAAA;QAWE,YAAY,EAAE,IAAM,CAACI,QAAD,IAAakC,YAAY,CAACrC,GAAD,EAAM0B,MAAM,CAAC6B,MAAP,GAAgB,CAAtB,CAX/C;QAAA;QAYE,aAAa,EAAE,CAAC,E,OAAEC,KAAF,CAAA,EAASC,SAAS,EAAEC,aAAXD,CAAAA,EAAV,GAAyC;YACtD,IAAI,CAACtD,QAAL,EAAe;gBACb,MAAMwD,SAAS,GAAG1E,+BAAS,CAAC2E,QAAV,CAAmBJ,KAAK,CAACK,GAAzB,CAAlB,AAAA;gBACA,MAAMC,SAAS,GAAGH,SAAS,IAAKH,KAAK,CAACO,QAAN,IAAkB7E,gCAAU,CAAC0E,QAAX,CAAoBJ,KAAK,CAACK,GAA1B,CAAlD,AAAA;gBACA,MAAMG,UAAU,GAAGF,SAAS,GAAG,EAAH,GAAQ,CAApC,AAAA;gBACA,MAAMvB,OAAO,GAAGrB,qBAAqB,CAACc,OAAtC,AAAA;gBACA,MAAM1B,KAAK,GAAGoB,MAAM,CAACa,OAAD,CAApB,AAAA;gBACA,MAAM0B,eAAe,GAAGhE,IAAI,GAAG+D,UAAP,GAAoBN,aAA5C,AAAA;gBACArB,YAAY,CAAC/B,KAAK,GAAG2D,eAAT,EAA0B1B,OAA1B,CAAZ,CAAAF;aACD;SACF;KAtBH,CAAA,CADF,CADF,CAVF,EAsCGjB,aAAa,IACZM,MAAM,CAACwC,GAAP,CAAW,CAAC5D,KAAD,EAAQ6D,KAAR,GAAA,aACT,CAAA,oBAAA,CAAC,iCAAD,EA5BA;YA6BE,GAAG,EAAEA,KADP;YAEE,IAAI,EAAErE,IAAI,GAAGA,IAAI,GAAI4B,CAAAA,MAAM,CAAC6B,MAAP,GAAgB,CAAhB,GAAoB,IAApB,GAA2B,EAA/B,CAAA,AAAP,GAA4CD,SAFxD;YAGE,KAAK,EAAEhD,KAAP;SAHF,CADF;IAAA,CAvCJ,CADF,CAyCQ;CArGG,CAAf,AA6GG;AAGH,aAAA,CAAA,MAAA,CAAA,MAAA,CAAA,yCAAA,EAAA;IAAA,WAAA,EAAA,iCAAA;CAAA,CAAA,CAAA;AAEA;;oGAEA,CAIA,MAAM,CAAC8D,+CAAD,EAA4BC,iDAA5B,CAAA,GAA2D7E,yCAAmB,CAKjFJ,iCALiF,EAKpE;IACdkF,SAAS,EAAE,MADG;IAEdC,OAAO,EAAE,OAFK;IAGdC,IAAI,EAAE,OAHQ;IAIdf,SAAS,EAAE,CAAXA;CATkF,CAApF,AAKgB;AA0BhB,MAAMjC,sCAAgB,GAAA,aAAGlD,CAAAA,iBAAA,CACvB,CAACsB,KAAD,EAA4CC,YAA5C,GAA6D;IAC3D,MAAM,E,KAAEE,GAAF,CAAA,E,KAAOC,GAAP,CAAA,E,KAAYyE,GAAZ,CAAA,E,UAAiBjE,QAAjB,CAAA,E,cAA2BkE,YAA3B,CAAA,E,aAAyCC,WAAzC,CAAA,E,eAAsDC,aAAtD,CAAA,EAAqE,GAAGnE,WAAH,EAArE,GACJb,KADF,AAAM;IAEN,MAAM,CAACc,MAAD,EAASC,SAAT,CAAA,GAAsBrC,eAAA,CAAyC,IAAzC,CAA5B,AAAA;IACA,MAAMuC,YAAY,GAAGpC,sBAAe,CAACoB,YAAD,EAAgBiB,CAAAA,IAAD,GAAUH,SAAS,CAACG,IAAD,CAAlC;IAAA,CAApC,AAAA;IACA,MAAM+D,OAAO,GAAGvG,aAAA,EAAhB,AAAA;IACA,MAAMmF,SAAS,GAAG7E,mBAAY,CAAC6F,GAAD,CAA9B,AAAA;IACA,MAAMK,cAAc,GAAGrB,SAAS,KAAK,KAArC,AAAA;IACA,MAAMsB,iBAAiB,GAAID,cAAc,IAAI,CAACtE,QAApB,IAAkC,CAACsE,cAAD,IAAmBtE,QAA/E,AAAA;IAEA,SAASwE,mBAAT,CAA6BC,eAA7B,EAAsD;QACpD,MAAMC,IAAI,GAAGL,OAAO,CAAC7C,OAAR,IAAmBtB,MAAM,CAAEyE,qBAAR,EAAhC,AAAA;QACA,MAAMC,KAAuB,GAAG;AAAC,aAAD;YAAIF,IAAI,CAACG,KAAT;SAAhC,AAAA;QACA,MAAMC,MAAwB,GAAGP,iBAAiB,GAAG;YAAChF,GAAD;YAAMC,GAAN;SAAH,GAAgB;YAACA,GAAD;YAAMD,GAAN;SAAlE,AAAA;QACA,MAAMO,KAAK,GAAGiF,iCAAW,CAACH,KAAD,EAAQE,MAAR,CAAzB,AAAA;QAEAT,OAAO,CAAC7C,OAAR,GAAkBkD,IAAlB,CAAAL;QACA,OAAOvE,KAAK,CAAC2E,eAAe,GAAGC,IAAI,CAACM,IAAxB,CAAZ,CAAA;KACD;IAED,OAAA,aACE,CAAA,oBAAA,CAAC,+CAAD,EADF;QAEI,KAAK,EAAE5F,KAAK,CAACyD,aADf;QAEE,SAAS,EAAE0B,iBAAiB,GAAG,MAAH,GAAY,OAF1C;QAGE,OAAO,EAAEA,iBAAiB,GAAG,OAAH,GAAa,MAHzC;QAIE,SAAS,EAAEA,iBAAiB,GAAG,CAAH,GAAO,EAJrC;QAKE,IAAI,EAAC,OAAL;KALF,EAAA,aAOE,CAAA,oBAAA,CAAC,gCAAD,EAPF,oCAAA,CAAA;QAQI,GAAG,EAAEtB,SADP;QAEE,kBAAA,EAAiB,YAAjB;KAFF,EAGMhD,WAHN,EAAA;QAIE,GAAG,EAAEI,YAJP;QAKE,KAAK,EAAE;YACL,GAAGJ,WAAW,CAACgF,KADV;YAEL,CAAC,gCAAD,CAAA,EAA2C,kBAA3C;SAPJ;QASE,YAAY,EAAGjC,CAAAA,KAAD,GAAW;YACvB,MAAMlD,KAAK,GAAG0E,mBAAmB,CAACxB,KAAK,CAACkC,OAAP,CAAjC,AAAA;YACAhB,YAAY,KAAA,IAAZ,IAAAA,YAAY,KAAA,KAAA,CAAZ,IAAAA,YAAY,CAAGpE,KAAH,CAAZ,CAAAoE;SAXJ;QAaE,WAAW,EAAGlB,CAAAA,KAAD,GAAW;YACtB,MAAMlD,KAAK,GAAG0E,mBAAmB,CAACxB,KAAK,CAACkC,OAAP,CAAjC,AAAA;YACAf,WAAW,KAAA,IAAX,IAAAA,WAAW,KAAA,KAAA,CAAX,IAAAA,WAAW,CAAGrE,KAAH,CAAX,CAAAqE;SAfJ;QAiBE,UAAU,EAAE,IAAOE,OAAO,CAAC7C,OAAR,GAAkBsB,SAjBvC;QAAA;QAkBE,aAAa,EAAGE,CAAAA,KAAD,GAAW;YACxB,MAAMmC,cAAc,GAAGZ,iBAAiB,GAAG,WAAH,GAAiB,YAAzD,AAAA;YACA,MAAMa,SAAS,GAAGzG,+BAAS,CAACwG,cAAD,CAAT,CAA0B/B,QAA1B,CAAmCJ,KAAK,CAACK,GAAzC,CAAlB,AAAA;YACAe,aAAa,KAAA,IAAb,IAAAA,aAAa,KAAA,KAAA,CAAb,IAAAA,aAAa,CAAG;gB,OAAEpB,KAAF;gBAASC,SAAS,EAAEmC,SAAS,GAAG,EAAH,GAAQ,CAA5BnC;aAAZ,CAAb,CAAgB;SACjB;KAtBH,CAAA,CAPF,CADF,CAQI;CA7BiB,CAAzB,AAuDG;AAGH;;oGAEA,CAKA,MAAMhC,oCAAc,GAAA,aAAGnD,CAAAA,iBAAA,CACrB,CAACsB,KAAD,EAA0CC,YAA1C,GAA2D;IACzD,MAAM,E,KAAEE,GAAF,CAAA,E,KAAOC,GAAP,CAAA,E,UAAYQ,QAAZ,CAAA,E,cAAsBkE,YAAtB,CAAA,E,aAAoCC,WAApC,CAAA,E,eAAiDC,aAAjD,CAAA,EAAgE,GAAGnE,WAAH,EAAhE,GAAmFb,KAAzF,AAAM;IACN,MAAMiG,SAAS,GAAGvH,aAAA,CAAgC,IAAhC,CAAlB,AAAA;IACA,MAAMwH,GAAG,GAAGrH,sBAAe,CAACoB,YAAD,EAAegG,SAAf,CAA3B,AAAA;IACA,MAAMhB,OAAO,GAAGvG,aAAA,EAAhB,AAAA;IACA,MAAMyH,mBAAmB,GAAG,CAACvF,QAA7B,AAAA;IAEA,SAASwE,mBAAT,CAA6BC,eAA7B,EAAsD;QACpD,MAAMC,IAAI,GAAGL,OAAO,CAAC7C,OAAR,IAAmB6D,SAAS,CAAC7D,OAAV,CAAmBmD,qBAAnB,EAAhC,AAAA;QACA,MAAMC,KAAuB,GAAG;AAAC,aAAD;YAAIF,IAAI,CAACc,MAAT;SAAhC,AAAA;QACA,MAAMV,MAAwB,GAAGS,mBAAmB,GAAG;YAAC/F,GAAD;YAAMD,GAAN;SAAH,GAAgB;YAACA,GAAD;YAAMC,GAAN;SAApE,AAAA;QACA,MAAMM,KAAK,GAAGiF,iCAAW,CAACH,KAAD,EAAQE,MAAR,CAAzB,AAAA;QAEAT,OAAO,CAAC7C,OAAR,GAAkBkD,IAAlB,CAAAL;QACA,OAAOvE,KAAK,CAAC2E,eAAe,GAAGC,IAAI,CAACe,GAAxB,CAAZ,CAAA;KACD;IAED,OAAA,aACE,CAAA,oBAAA,CAAC,+CAAD,EADF;QAEI,KAAK,EAAErG,KAAK,CAACyD,aADf;QAEE,SAAS,EAAE0C,mBAAmB,GAAG,QAAH,GAAc,KAF9C;QAGE,OAAO,EAAEA,mBAAmB,GAAG,KAAH,GAAW,QAHzC;QAIE,IAAI,EAAC,QAJP;QAKE,SAAS,EAAEA,mBAAmB,GAAG,CAAH,GAAO,EAArC;KALF,EAAA,aAOE,CAAA,oBAAA,CAAC,gCAAD,EAPF,oCAAA,CAAA;QAQI,kBAAA,EAAiB,UAAjB;KADF,EAEMtF,WAFN,EAAA;QAGE,GAAG,EAAEqF,GAHP;QAIE,KAAK,EAAE;YACL,GAAGrF,WAAW,CAACgF,KADV;YAEL,CAAC,gCAAD,CAAA,EAA2C,iBAA3C;SANJ;QAQE,YAAY,EAAGjC,CAAAA,KAAD,GAAW;YACvB,MAAMlD,KAAK,GAAG0E,mBAAmB,CAACxB,KAAK,CAAC0C,OAAP,CAAjC,AAAA;YACAxB,YAAY,KAAA,IAAZ,IAAAA,YAAY,KAAA,KAAA,CAAZ,IAAAA,YAAY,CAAGpE,KAAH,CAAZ,CAAAoE;SAVJ;QAYE,WAAW,EAAGlB,CAAAA,KAAD,GAAW;YACtB,MAAMlD,KAAK,GAAG0E,mBAAmB,CAACxB,KAAK,CAAC0C,OAAP,CAAjC,AAAA;YACAvB,WAAW,KAAA,IAAX,IAAAA,WAAW,KAAA,KAAA,CAAX,IAAAA,WAAW,CAAGrE,KAAH,CAAX,CAAAqE;SAdJ;QAgBE,UAAU,EAAE,IAAOE,OAAO,CAAC7C,OAAR,GAAkBsB,SAhBvC;QAAA;QAiBE,aAAa,EAAGE,CAAAA,KAAD,GAAW;YACxB,MAAMmC,cAAc,GAAGI,mBAAmB,GAAG,aAAH,GAAmB,UAA7D,AAAA;YACA,MAAMH,SAAS,GAAGzG,+BAAS,CAACwG,cAAD,CAAT,CAA0B/B,QAA1B,CAAmCJ,KAAK,CAACK,GAAzC,CAAlB,AAAA;YACAe,aAAa,KAAA,IAAb,IAAAA,aAAa,KAAA,KAAA,CAAb,IAAAA,aAAa,CAAG;gB,OAAEpB,KAAF;gBAASC,SAAS,EAAEmC,SAAS,GAAG,EAAH,GAAQ,CAA5BnC;aAAZ,CAAb,CAAgB;SACjB;KArBH,CAAA,CAPF,CADF,CAQI;CA1Be,CAAvB,AAmDG;AAGH;;oGAEA,CAcA,MAAM0C,gCAAU,GAAA,aAAG7H,CAAAA,iBAAA,CACjB,CAACsB,KAAD,EAAsCC,YAAtC,GAAuD;IACrD,MAAM,E,eACJwD,aADI,CAAA,E,cAEJqB,YAFI,CAAA,E,aAGJC,WAHI,CAAA,E,YAIJyB,UAJI,CAAA,E,eAKJC,aALI,CAAA,E,cAMJC,YANI,CAAA,E,eAOJ1B,aAPI,CAAA,EAQJ,GAAGnE,WAAH,EARI,GASFb,KATJ,AAAM;IAUN,MAAM2G,OAAO,GAAG7G,sCAAgB,CAACN,iCAAD,EAAciE,aAAd,CAAhC,AAAA;IAEA,OAAA,aACE,CAAA,oBAAA,CAAC,gBAAD,CAAW,IAAX,EAAA,oCAAA,CAAA,EAAA,EACM5C,WADN,EADF;QAGI,GAAG,EAAEZ,YAFP;QAGE,SAAS,EAAErB,2BAAoB,CAACoB,KAAK,CAAC4G,SAAP,EAAmBhD,CAAAA,KAAD,GAAW;YAC1D,IAAIA,KAAK,CAACK,GAAN,KAAc,MAAlB,EAA0B;gBACxBwC,aAAa,CAAC7C,KAAD,CAAb,CADwB,CAExB,kCADA6C;gBAEA7C,KAAK,CAACiD,cAAN,EAAAjD,CAAAA;aAHF,MAIO,IAAIA,KAAK,CAACK,GAAN,KAAc,KAAlB,EAAyB;gBAC9ByC,YAAY,CAAC9C,KAAD,CAAZ,CAD8B,CAE9B,gCADA8C;gBAEA9C,KAAK,CAACiD,cAAN,EAAAjD,CAAAA;aAHK,MAIA,IAAIvE,+BAAS,CAACyH,MAAV,CAAiBxH,gCAAjB,CAAA,CAA6B0E,QAA7B,CAAsCJ,KAAK,CAACK,GAA5C,CAAJ,EAAsD;gBAC3De,aAAa,CAACpB,KAAD,CAAb,CAD2D,CAE3D,gDADAoB;gBAEApB,KAAK,CAACiD,cAAN,EAAAjD,CAAAA;aACD;SAb4B,CAHjC;QAkBE,aAAa,EAAEhF,2BAAoB,CAACoB,KAAK,CAAC+G,aAAP,EAAuBnD,CAAAA,KAAD,GAAW;YAClE,MAAMoD,MAAM,GAAGpD,KAAK,CAACoD,MAArB,AAAA;YACAA,MAAM,CAACC,iBAAP,CAAyBrD,KAAK,CAACsD,SAA/B,CAAA,CAFkE,CAGlE,wFADAF;YAEApD,KAAK,CAACiD,cAAN,EAAA,CAJkE,CAKlE,uFADAjD;YAEA,iEAAA;YACA,IAAI+C,OAAO,CAACxE,MAAR,CAAegF,GAAf,CAAmBH,MAAnB,CAAJ,EACEA,MAAM,CAAC3E,KAAP,EAAA2E,CAAAA;iBAEAlC,YAAY,CAAClB,KAAD,CAAZ,CAAAkB;SAV+B,CAlBrC;QA+BE,aAAa,EAAElG,2BAAoB,CAACoB,KAAK,CAACoH,aAAP,EAAuBxD,CAAAA,KAAD,GAAW;YAClE,MAAMoD,MAAM,GAAGpD,KAAK,CAACoD,MAArB,AAAA;YACA,IAAIA,MAAM,CAACK,iBAAP,CAAyBzD,KAAK,CAACsD,SAA/B,CAAJ,EAA+CnC,WAAW,CAACnB,KAAD,CAAX,CAA/C;SAFiC,CA/BrC;QAmCE,WAAW,EAAEhF,2BAAoB,CAACoB,KAAK,CAACsH,WAAP,EAAqB1D,CAAAA,KAAD,GAAW;YAC9D,MAAMoD,MAAM,GAAGpD,KAAK,CAACoD,MAArB,AAAA;YACA,IAAIA,MAAM,CAACK,iBAAP,CAAyBzD,KAAK,CAACsD,SAA/B,CAAJ,EAA+C;gBAC7CF,MAAM,CAACO,qBAAP,CAA6B3D,KAAK,CAACsD,SAAnC,CAAAF,CAAAA;gBACAR,UAAU,CAAC5C,KAAD,CAAV,CAAA4C;aACD;SAL8B,CAMhC;KAzCH,CAAA,CADF,CACE;CAfa,CAAnB,AA2DG;AAGH;;oGAEA,CAEA,MAAMgB,gCAAU,GAAG,aAAnB,AAAA;AAMA,MAAMrJ,yCAAW,GAAA,aAAGO,CAAAA,iBAAA,CAClB,CAACsB,KAAD,EAAuCC,YAAvC,GAAwD;IACtD,MAAM,E,eAAEwD,aAAF,CAAA,EAAiB,GAAGgE,UAAH,EAAjB,GAAmCzH,KAAzC,AAAM;IACN,MAAM2G,OAAO,GAAG7G,sCAAgB,CAAC0H,gCAAD,EAAa/D,aAAb,CAAhC,AAAA;IACA,OAAA,aACE,CAAA,oBAAA,CAAC,gBAAD,CAAW,IAAX,EADF,oCAAA,CAAA;QAEI,eAAA,EAAekD,OAAO,CAACpG,QAAR,GAAmB,EAAnB,GAAwBmD,SADzC;QAEE,kBAAA,EAAkBiD,OAAO,CAACrG,WAA1B;KAFF,EAGMmH,UAHN,EAAA;QAIE,GAAG,EAAExH,YAAL;KAJF,CAAA,CADF,CACE;CALc,CAApB,AAYG;AAGH,aAAA,CAAA,MAAA,CAAA,MAAA,CAAA,yCAAA,EAAA;IAAA,WAAA,EAAA,gCAAA;CAAA,CAAA,CAAA;AAEA;;oGAEA,CAEA,MAAMyH,gCAAU,GAAG,aAAnB,AAAA;AAKA,MAAMtJ,yCAAW,GAAA,aAAGM,CAAAA,iBAAA,CAClB,CAACsB,KAAD,EAAuCC,YAAvC,GAAwD;IACtD,MAAM,E,eAAEwD,aAAF,CAAA,EAAiB,GAAGkE,UAAH,EAAjB,GAAmC3H,KAAzC,AAAM;IACN,MAAM2G,OAAO,GAAG7G,sCAAgB,CAAC4H,gCAAD,EAAajE,aAAb,CAAhC,AAAA;IACA,MAAMnD,WAAW,GAAGmE,iDAA2B,CAACiD,gCAAD,EAAajE,aAAb,CAA/C,AAAA;IACA,MAAMyC,GAAG,GAAGxH,aAAA,CAA8B,IAA9B,CAAZ,AAAA;IACA,MAAMuC,YAAY,GAAGpC,sBAAe,CAACoB,YAAD,EAAeiG,GAAf,CAApC,AAAA;IACA,MAAM0B,WAAW,GAAGjB,OAAO,CAAC7E,MAAR,CAAe6B,MAAnC,AAAA;IACA,MAAMkE,WAAW,GAAGlB,OAAO,CAAC7E,MAAR,CAAewC,GAAf,CAAoB5D,CAAAA,KAAD,GACrCoH,8CAAwB,CAACpH,KAAD,EAAQiG,OAAO,CAACxG,GAAhB,EAAqBwG,OAAO,CAACvG,GAA7B,CADN;IAAA,CAApB,AAAA;IAGA,MAAM2H,WAAW,GAAGH,WAAW,GAAG,CAAd,GAAkB5E,IAAI,CAAC7C,GAAL,IAAY0H,WAAZ,CAAlB,GAA6C,CAAjE,AAAA;IACA,MAAMG,SAAS,GAAG,GAAA,GAAMhF,IAAI,CAAC5C,GAAL,IAAYyH,WAAZ,CAAxB,AAAA;IAEA,OAAA,aACE,CAAA,oBAAA,CAAC,gBAAD,CAAW,IAAX,EADF,oCAAA,CAAA;QAEI,kBAAA,EAAkBlB,OAAO,CAACrG,WAD5B;QAEE,eAAA,EAAeqG,OAAO,CAACpG,QAAR,GAAmB,EAAnB,GAAwBmD,SAAvC;KAFF,EAGMiE,UAHN,EAAA;QAIE,GAAG,EAAE1G,YAJP;QAKE,KAAK,EAAE;YACL,GAAGjB,KAAK,CAAC6F,KADJ;YAEL,CAACvF,WAAW,CAACoE,SAAb,CAAA,EAAyBqD,WAAW,GAAG,GAFlC;YAGL,CAACzH,WAAW,CAACqE,OAAb,CAAA,EAAuBqD,SAAS,GAAG,GAAnC;SAHK;KALT,CAAA,CADF,CACE;CAfc,CAApB,AA2BG;AAGH,aAAA,CAAA,MAAA,CAAA,MAAA,CAAA,yCAAA,EAAA;IAAA,WAAA,EAAA,gCAAA;CAAA,CAAA,CAAA;AAEA;;oGAEA,CAEA,MAAMC,gCAAU,GAAG,aAAnB,AAAA;AAKA,MAAM5J,yCAAW,GAAA,aAAGK,CAAAA,iBAAA,CAClB,CAACsB,KAAD,EAAuCC,YAAvC,GAAwD;IACtD,MAAMiI,QAAQ,GAAGxI,mCAAa,CAACM,KAAK,CAACyD,aAAP,CAA9B,AAAA;IACA,MAAM,CAAC0E,KAAD,EAAQC,QAAR,CAAA,GAAoB1J,eAAA,CAA8C,IAA9C,CAA1B,AAAA;IACA,MAAMuC,YAAY,GAAGpC,sBAAe,CAACoB,YAAD,EAAgBiB,CAAAA,IAAD,GAAUkH,QAAQ,CAAClH,IAAD,CAAjC;IAAA,CAApC,AAAA;IACA,MAAMqD,KAAK,GAAG7F,cAAA,CACZ,IAAOyJ,KAAK,GAAGD,QAAQ,EAAA,CAAGI,SAAX,CAAsBC,CAAAA,IAAD,GAAUA,IAAI,CAACrC,GAAL,CAAS9D,OAAT,KAAqB+F,KAApD;QAAA,CAAH,GAAgE,EADhE;IAAA,EAEZ;QAACD,QAAD;QAAWC,KAAX;KAFY,CAAd,AAAA;IAIA,OAAA,aAAO,CAAA,oBAAA,CAAC,qCAAD,EAAA,oCAAA,CAAA,EAAA,EAAqBnI,KAArB,EAAP;QAAmC,GAAG,EAAEiB,YAAjC;QAA+C,KAAK,EAAEsD,KAAP;KAA/C,CAAA,CAAP,CAAO;CATS,CAApB,AAUG;AAQH,MAAMiE,qCAAe,GAAA,aAAG9J,CAAAA,iBAAA,CACtB,CAACsB,KAAD,EAA2CC,YAA3C,GAA4D;IAC1D,MAAM,E,eAAEwD,aAAF,CAAA,E,OAAiBc,KAAjB,CAAA,EAAwB,GAAGkE,UAAH,EAAxB,GAA0CzI,KAAhD,AAAM;IACN,MAAM2G,OAAO,GAAG7G,sCAAgB,CAACmI,gCAAD,EAAaxE,aAAb,CAAhC,AAAA;IACA,MAAMnD,WAAW,GAAGmE,iDAA2B,CAACwD,gCAAD,EAAaxE,aAAb,CAA/C,AAAA;IACA,MAAM,CAAC0E,KAAD,EAAQC,QAAR,CAAA,GAAoB1J,eAAA,CAAuC,IAAvC,CAA1B,AAAA;IACA,MAAMuC,YAAY,GAAGpC,sBAAe,CAACoB,YAAD,EAAgBiB,CAAAA,IAAD,GAAUkH,QAAQ,CAAClH,IAAD,CAAjC;IAAA,CAApC,AAAA;IACA,MAAM0D,IAAI,GAAG1F,cAAO,CAACiJ,KAAD,CAApB,AAN0D,EAO1D,mEADA;IAEA,MAAMzH,KAAK,GAAGiG,OAAO,CAAC7E,MAAR,CAAeyC,KAAf,CAAd,AAAA;IACA,MAAMmE,OAAO,GACXhI,KAAK,KAAKgD,SAAV,GAAsB,CAAtB,GAA0BoE,8CAAwB,CAACpH,KAAD,EAAQiG,OAAO,CAACxG,GAAhB,EAAqBwG,OAAO,CAACvG,GAA7B,CADpD,AAAA;IAEA,MAAMuI,KAAK,GAAGC,8BAAQ,CAACrE,KAAD,EAAQoC,OAAO,CAAC7E,MAAR,CAAe6B,MAAvB,CAAtB,AAAA;IACA,MAAMkF,eAAe,GAAGjE,IAAH,KAAA,IAAA,IAAGA,IAAH,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAGA,IAAI,CAAGtE,WAAW,CAACsE,IAAf,CAA5B,AAAA;IACA,MAAMkE,mBAAmB,GAAGD,eAAe,GACvCE,4CAAsB,CAACF,eAAD,EAAkBH,OAAlB,EAA2BpI,WAAW,CAACuD,SAAvC,CADiB,GAEvC,CAFJ,AAAA;IAIAnF,gBAAA,CAAgB,IAAM;QACpB,IAAIyJ,KAAJ,EAAW;YACTxB,OAAO,CAACxE,MAAR,CAAe8G,GAAf,CAAmBd,KAAnB,CAAAxB,CAAAA;YACA,OAAO,IAAM;gBACXA,OAAO,CAACxE,MAAR,CAAe+G,MAAf,CAAsBf,KAAtB,CAAAxB,CAAAA;aADF,CAEC;SACF;KANH,EAOG;QAACwB,KAAD;QAAQxB,OAAO,CAACxE,MAAhB;KAPH,CAOC,CAAA;IAED,OAAA,aACE,CAAA,oBADF,CAAA,MAAA,EAAA;QAEI,KAAK,EAAE;YACLgH,SAAS,EAAE,qCADN;YAELC,QAAQ,EAAE,UAFL;YAGL,CAAC9I,WAAW,CAACoE,SAAb,CAAA,EAA0B,CAAA,KAAA,EAAOgE,OAAQ,CAAA,IAAA,EAAMI,mBAAoB,CAAnE,GAAA,CAAA;SAHK;KADT,EAAA,aAOE,CAAA,oBAAA,CAAC,gCAAD,CAAY,QAAZ,EAPF;QAOuB,KAAK,EAAE9I,KAAK,CAACyD,aAAb;KAArB,EAAA,aACE,CAAA,oBAAA,CAAC,gBAAD,CAAW,IAAX,EADF,oCAAA,CAAA;QAEI,IAAI,EAAC,QADP;QAEE,YAAA,EAAYzD,KAAK,CAAC,YAAD,CAAL,IAAuB2I,KAFrC;QAGE,eAAA,EAAehC,OAAO,CAACxG,GAHzB;QAIE,eAAA,EAAeO,KAJjB;QAKE,eAAA,EAAeiG,OAAO,CAACvG,GALzB;QAME,kBAAA,EAAkBuG,OAAO,CAACrG,WAN5B;QAOE,kBAAA,EAAkBqG,OAAO,CAACrG,WAP5B;QAQE,eAAA,EAAeqG,OAAO,CAACpG,QAAR,GAAmB,EAAnB,GAAwBmD,SARzC;QASE,QAAQ,EAAEiD,OAAO,CAACpG,QAAR,GAAmBmD,SAAnB,GAA+B,CAAzC;KATF,EAUM+E,UAVN,EAAA;QAWE,GAAG,EAAExH,YAAL;QAOA,KAAK,EAAEP,KAAK,KAAKgD,SAAV,GAAsB;YAAE2F,OAAO,EAAE,MAATA;SAAxB,GAA4CrJ,KAAK,CAAC6F,KAlB3D;QAmBE,OAAO,EAAEjH,2BAAoB,CAACoB,KAAK,CAACsJ,OAAP,EAAgB,IAAM;YACjD3C,OAAO,CAACrF,qBAAR,CAA8Bc,OAA9B,GAAwCmC,KAAxC,CAAAoC;SAD2B,CAE5B;KArBH,CAAA,CADF,CAPF,CADF,CASM;CApCc,CAAxB,AA8DG;AAGH,aAAA,CAAA,MAAA,CAAA,MAAA,CAAA,yCAAA,EAAA;IAAA,WAAA,EAAA,gCAAA;CAAA,CAAA,CAAA;AAEA,oGAAA,CAEA,MAAM4C,iCAAW,GAAIvJ,CAAAA,KAAD,GAAoD;IACtE,MAAM,E,OAAEU,KAAF,CAAA,EAAS,GAAG8I,UAAH,EAAT,GAA2BxJ,KAAjC,AAAM;IACN,MAAMkG,GAAG,GAAGxH,aAAA,CAA+B,IAA/B,CAAZ,AAAA;IACA,MAAM+K,SAAS,GAAGxK,kBAAW,CAACyB,KAAD,CAA7B,AAHsE,EAKtE,yDAFA;IAGAhC,gBAAA,CAAgB,IAAM;QACpB,MAAM8G,KAAK,GAAGU,GAAG,CAAC9D,OAAlB,AAAA;QACA,MAAMsH,UAAU,GAAGC,MAAM,CAACC,gBAAP,CAAwBC,SAA3C,AAAA;QACA,MAAMC,UAAU,GAAGC,MAAM,CAACC,wBAAP,CAAgCN,UAAhC,EAA4C,OAA5C,CAAnB,AAAA;QACA,MAAMO,QAAQ,GAAGH,UAAU,CAACI,GAA5B,AAAA;QACA,IAAIT,SAAS,KAAK/I,KAAd,IAAuBuJ,QAA3B,EAAqC;YACnC,MAAMrG,KAAK,GAAG,IAAIuG,KAAJ,CAAU,OAAV,EAAmB;gBAAEC,OAAO,EAAE,IAATA;aAArB,CAAd,AAAiC;YACjCH,QAAQ,CAACI,IAAT,CAAc7E,KAAd,EAAqB9E,KAArB,CAAAuJ,CAAAA;YACAzE,KAAK,CAAC8E,aAAN,CAAoB1G,KAApB,CAAA4B,CAAAA;SACD;KATH,EAUG;QAACiE,SAAD;QAAY/I,KAAZ;KAVH,CAUC,CAAA;IAED;;;;;;;;KAQF,CACE,OAAA,aAAO,CAAA,oBAAP,CAAA,OAAA,EAAA,oCAAA,CAAA;QAAc,KAAK,EAAE;YAAE2I,OAAO,EAAE,MAATA;SAAF;KAAd,EAAuCG,UAAvC,EAAA;QAAmD,GAAG,EAAEtD,GAAxD;QAA6D,YAAY,EAAExF,KAAd;KAA7D,CAAA,CAAP,CAAO;CA3BT,AA4BC;AAED,SAAS2C,yCAAT,CAA6BF,UAAoB,GAAG,EAApD,EAAwDD,SAAxD,EAA2EP,OAA3E,EAA4F;IAC1F,MAAMS,UAAU,GAAG;WAAID,UAAJ;KAAnB,AAAA;IACAC,UAAU,CAACT,OAAD,CAAV,GAAsBO,SAAtB,CAAAE;IACA,OAAOA,UAAU,CAACmH,IAAX,CAAgB,CAACC,CAAD,EAAIC,CAAJ,GAAUD,CAAC,GAAGC,CAA9B;IAAA,CAAP,CAAA;CACD;AAED,SAAS3C,8CAAT,CAAkCpH,KAAlC,EAAiDP,GAAjD,EAA8DC,GAA9D,EAA2E;IACzE,MAAMsK,QAAQ,GAAGtK,GAAG,GAAGD,GAAvB,AAAA;IACA,MAAMwK,cAAc,GAAG,GAAA,GAAMD,QAA7B,AAAA;IACA,OAAOC,cAAc,GAAIjK,CAAAA,KAAK,GAAGP,GAAZ,CAAA,AAArB,CAAA;CACD;AAED;;GAEA,CACA,SAASyI,8BAAT,CAAkBrE,KAAlB,EAAiCqG,WAAjC,EAAsD;IACpD,IAAIA,WAAW,GAAG,CAAlB,EACE,OAAQ,CAAA,MAAA,EAAQrG,KAAK,GAAG,CAAE,CAAA,IAAA,EAAMqG,WAAY,CAAA,CAA5C,CAAA;SACK,IAAIA,WAAW,KAAK,CAApB,EACL,OAAO;QAAC,SAAD;QAAY,SAAZ;KAAA,CAAuBrG,KAAvB,CAAP,CAAA;SAEA,OAAOb,SAAP,CAAA;CAEH;AAED;;;;;;;GAOA,CACA,SAASlB,0CAAT,CAA8BV,MAA9B,EAAgDoB,SAAhD,EAAmE;IACjE,IAAIpB,MAAM,CAAC6B,MAAP,KAAkB,CAAtB,EAAyB,OAAO,CAAP,CAAzB;IACA,MAAMkH,SAAS,GAAG/I,MAAM,CAACwC,GAAP,CAAY5D,CAAAA,KAAD,GAAWsC,IAAI,CAAC8H,GAAL,CAASpK,KAAK,GAAGwC,SAAjB,CAAtB;IAAA,CAAlB,AAAA;IACA,MAAM6H,eAAe,GAAG/H,IAAI,CAAC7C,GAAL,IAAY0K,SAAZ,CAAxB,AAAA;IACA,OAAOA,SAAS,CAACtH,OAAV,CAAkBwH,eAAlB,CAAP,CAAA;CACD;AAED;;;GAGA,CACA,SAAShC,4CAAT,CAAgCtD,KAAhC,EAA+CG,IAA/C,EAA6D/B,SAA7D,EAAgF;IAC9E,MAAMmH,SAAS,GAAGvF,KAAK,GAAG,CAA1B,AAAA;IACA,MAAMwF,WAAW,GAAG,EAApB,AAAA;IACA,MAAMC,MAAM,GAAGvF,iCAAW,CAAC;AAAC,SAAD;QAAIsF,WAAJ;KAAD,EAAmB;AAAC,SAAD;QAAID,SAAJ;KAAnB,CAA1B,AAAA;IACA,OAAO,AAACA,CAAAA,SAAS,GAAGE,MAAM,CAACtF,IAAD,CAAN,GAAe/B,SAA5B,CAAA,GAAyCA,SAAhD,CAAA;CACD;AAED;;;;;;GAMA,CACA,SAASsH,2CAAT,CAA+BrJ,MAA/B,EAAiD;IAC/C,OAAOA,MAAM,CAACsJ,KAAP,CAAa,CAAb,EAAgB,EAAhB,CAAA,CAAoB9G,GAApB,CAAwB,CAAC5D,KAAD,EAAQ6D,KAAR,GAAkBzC,MAAM,CAACyC,KAAK,GAAG,CAAT,CAAN,GAAoB7D,KAA9D;IAAA,CAAP,CAAA;CACD;AAED;;;;;;;;;;;GAWA,CACA,SAAS4C,8CAAT,CAAkCxB,MAAlC,EAAoDuJ,qBAApD,EAAmF;IACjF,IAAIA,qBAAqB,GAAG,CAA5B,EAA+B;QAC7B,MAAMC,kBAAkB,GAAGH,2CAAqB,CAACrJ,MAAD,CAAhD,AAAA;QACA,MAAMyJ,2BAA2B,GAAGvI,IAAI,CAAC7C,GAAL,IAAYmL,kBAAZ,CAApC,AAAA;QACA,OAAOC,2BAA2B,IAAIF,qBAAtC,CAAA;KACD;IACD,OAAO,IAAP,CAAA;C,CAGF,mFAFC;AAGD,SAAS1F,iCAAT,CAAqBH,KAArB,EAAuDE,MAAvD,EAA0F;IACxF,OAAQhF,CAAAA,KAAD,GAAmB;QACxB,IAAI8E,KAAK,CAAC,CAAD,CAAL,KAAaA,KAAK,CAAC,CAAD,CAAlB,IAAyBE,MAAM,CAAC,CAAD,CAAN,KAAcA,MAAM,CAAC,CAAD,CAAjD,EAAsD,OAAOA,MAAM,CAAC,CAAD,CAAb,CAAtD;QACA,MAAM8F,KAAK,GAAG,AAAC9F,CAAAA,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAAnB,CAAA,GAA2BF,CAAAA,KAAK,CAAC,CAAD,CAAL,GAAWA,KAAK,CAAC,CAAD,CAA3C,CAAA,AAAd,AAAA;QACA,OAAOE,MAAM,CAAC,CAAD,CAAN,GAAY8F,KAAK,GAAI9K,CAAAA,KAAK,GAAG8E,KAAK,CAAC,CAAD,CAAjB,CAAA,AAAxB,CAAA;KAHF,CAIC;CACF;AAED,SAAS3C,qCAAT,CAAyBnC,KAAzB,EAAwC;IACtC,OAAO,AAAC8C,CAAAA,MAAM,CAAC9C,KAAD,CAAN,CAAc+K,KAAd,CAAoB,GAApB,CAAA,CAAyB,CAAzB,CAAA,IAA+B,EAAhC,CAAA,CAAoC9H,MAA3C,CAAA;CACD;AAED,SAASZ,gCAAT,CAAoBrC,KAApB,EAAmCkC,YAAnC,EAAyD;IACvD,MAAM8I,OAAO,GAAG1I,IAAI,CAAC2I,GAAL,CAAS,EAAT,EAAa/I,YAAb,CAAhB,AAAA;IACA,OAAOI,IAAI,CAACC,KAAL,CAAWvC,KAAK,GAAGgL,OAAnB,CAAA,GAA8BA,OAArC,CAAA;CACD;AAED,MAAMpN,yCAAI,GAAGJ,yCAAb,AAAA;AACA,MAAMK,yCAAK,GAAGJ,yCAAd,AAAA;AACA,MAAMK,yCAAK,GAAGJ,yCAAd,AAAA;AACA,MAAMK,yCAAK,GAAGJ,yCAAd,AAAA;;ADhtBA","sources":["packages/react/slider/src/index.ts","packages/react/slider/src/Slider.tsx"],"sourcesContent":["export {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n} from './Slider';\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps } from './Slider';\n","import * 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';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\n\nconst PAGE_KEYS = ['PageUp', 'PageDown'];\nconst ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\ntype SlideDirection = 'from-left' | 'from-right' | 'from-bottom' | 'from-top';\nconst BACK_KEYS: Record<SlideDirection, string[]> = {\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};\n\n/* -------------------------------------------------------------------------------------------------\n * Slider\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLIDER_NAME = 'Slider';\n\nconst [Collection, useCollection, createCollectionScope] =\n createCollection<SliderThumbElement>(SLIDER_NAME);\n\ntype ScopedProps<P> = P & { __scopeSlider?: Scope };\nconst [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope,\n]);\n\ntype SliderContextValue = {\n disabled?: boolean;\n min: number;\n max: number;\n values: number[];\n valueIndexToChangeRef: React.MutableRefObject<number>;\n thumbs: Set<SliderThumbElement>;\n orientation: SliderProps['orientation'];\n};\n\nconst [SliderProvider, useSliderContext] = createSliderContext<SliderContextValue>(SLIDER_NAME);\n\ntype SliderElement = SliderHorizontalElement | SliderVerticalElement;\ninterface SliderProps\n extends Omit<\n SliderHorizontalProps | SliderVerticalProps,\n keyof SliderOrientationPrivateProps | 'defaultValue'\n > {\n name?: string;\n disabled?: boolean;\n orientation?: React.AriaAttributes['aria-orientation'];\n dir?: Direction;\n min?: number;\n max?: number;\n step?: number;\n minStepsBetweenThumbs?: number;\n value?: number[];\n defaultValue?: number[];\n onValueChange?(value: number[]): void;\n inverted?: boolean;\n}\n\nconst Slider = React.forwardRef<SliderElement, SliderProps>(\n (props: ScopedProps<SliderProps>, 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 inverted = false,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const thumbRefs = React.useRef<SliderContextValue['thumbs']>(new Set());\n const valueIndexToChangeRef = React.useRef<number>(0);\n const isHorizontal = orientation === 'horizontal';\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = slider ? Boolean(slider.closest('form')) : true;\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value);\n },\n });\n\n function handleSlideStart(value: number) {\n const closestIndex = getClosestValueIndex(values, value);\n updateValues(value, closestIndex);\n }\n\n function handleSlideMove(value: number) {\n updateValues(value, valueIndexToChangeRef.current);\n }\n\n function updateValues(value: number, atIndex: number) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n return String(nextValues) === String(prevValues) ? prevValues : nextValues;\n } else {\n return prevValues;\n }\n });\n }\n\n return (\n <SliderProvider\n scope={props.__scopeSlider}\n disabled={disabled}\n min={min}\n max={max}\n valueIndexToChangeRef={valueIndexToChangeRef}\n thumbs={thumbRefs.current}\n values={values}\n orientation={orientation}\n >\n <Collection.Provider scope={props.__scopeSlider}>\n <Collection.Slot scope={props.__scopeSlider}>\n <SliderOrientation\n aria-disabled={disabled}\n data-disabled={disabled ? '' : undefined}\n {...sliderProps}\n ref={composedRefs}\n min={min}\n max={max}\n inverted={inverted}\n onSlideStart={disabled ? undefined : handleSlideStart}\n onSlideMove={disabled ? undefined : handleSlideMove}\n onHomeKeyDown={() => !disabled && updateValues(min, 0)}\n onEndKeyDown={() => !disabled && updateValues(max, values.length - 1)}\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 value = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value + stepInDirection, atIndex);\n }\n }}\n />\n </Collection.Slot>\n </Collection.Provider>\n {isFormControl &&\n values.map((value, index) => (\n <BubbleInput\n key={index}\n name={name ? name + (values.length > 1 ? '[]' : '') : undefined}\n value={value}\n />\n ))}\n </SliderProvider>\n );\n }\n);\n\nSlider.displayName = SLIDER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderHorizontal\n * -----------------------------------------------------------------------------------------------*/\n\ntype Side = 'top' | 'right' | 'bottom' | 'left';\n\nconst [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext<{\n startEdge: Side;\n endEdge: Side;\n size: keyof NonNullable<ReturnType<typeof useSize>>;\n direction: number;\n}>(SLIDER_NAME, {\n startEdge: 'left',\n endEdge: 'right',\n size: 'width',\n direction: 1,\n});\n\ntype SliderOrientationPrivateProps = {\n min: number;\n max: number;\n inverted: boolean;\n onSlideStart?(value: number): void;\n onSlideMove?(value: number): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(step: { event: React.KeyboardEvent; direction: number }): void;\n};\ninterface SliderOrientationProps\n extends Omit<SliderImplProps, keyof SliderImplPrivateProps>,\n SliderOrientationPrivateProps {}\n\ntype SliderHorizontalElement = SliderImplElement;\ninterface SliderHorizontalProps extends SliderOrientationProps {\n dir?: Direction;\n}\n\nconst SliderHorizontal = React.forwardRef<SliderHorizontalElement, SliderHorizontalProps>(\n (props: ScopedProps<SliderHorizontalProps>, forwardedRef) => {\n const { min, max, dir, inverted, onSlideStart, onSlideMove, onStepKeyDown, ...sliderProps } =\n props;\n const [slider, setSlider] = React.useState<SliderImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef<ClientRect>();\n const direction = useDirection(dir);\n const isDirectionLTR = direction === 'ltr';\n const isSlidingFromLeft = (isDirectionLTR && !inverted) || (!isDirectionLTR && inverted);\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || slider!.getBoundingClientRect();\n const input: [number, number] = [0, rect.width];\n const output: [number, number] = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromLeft ? 'left' : 'right'}\n endEdge={isSlidingFromLeft ? 'right' : 'left'}\n direction={isSlidingFromLeft ? 1 : -1}\n size=\"width\"\n >\n <SliderImpl\n dir={direction}\n data-orientation=\"horizontal\"\n {...sliderProps}\n ref={composedRefs}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: '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={() => (rectRef.current = undefined)}\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 </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderVertical\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderVerticalElement = SliderImplElement;\ninterface SliderVerticalProps extends SliderOrientationProps {}\n\nconst SliderVertical = React.forwardRef<SliderVerticalElement, SliderVerticalProps>(\n (props: ScopedProps<SliderVerticalProps>, forwardedRef) => {\n const { min, max, inverted, onSlideStart, onSlideMove, onStepKeyDown, ...sliderProps } = props;\n const sliderRef = React.useRef<SliderImplElement>(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef<ClientRect>();\n const isSlidingFromBottom = !inverted;\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || sliderRef.current!.getBoundingClientRect();\n const input: [number, number] = [0, rect.height];\n const output: [number, number] = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromBottom ? 'bottom' : 'top'}\n endEdge={isSlidingFromBottom ? 'top' : 'bottom'}\n size=\"height\"\n direction={isSlidingFromBottom ? 1 : -1}\n >\n <SliderImpl\n data-orientation=\"vertical\"\n {...sliderProps}\n ref={ref}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: '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={() => (rectRef.current = undefined)}\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 </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderImpl\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderImplElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;\ntype SliderImplPrivateProps = {\n onSlideStart(event: React.PointerEvent): void;\n onSlideMove(event: React.PointerEvent): void;\n onSlideEnd(event: React.PointerEvent): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(event: React.KeyboardEvent): void;\n};\ninterface SliderImplProps extends PrimitiveDivProps, SliderImplPrivateProps {}\n\nconst SliderImpl = React.forwardRef<SliderImplElement, SliderImplProps>(\n (props: ScopedProps<SliderImplProps>, 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\n return (\n <Primitive.span\n {...sliderProps}\n ref={forwardedRef}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === 'Home') {\n onHomeKeyDown(event);\n // Prevent scrolling to page start\n event.preventDefault();\n } else if (event.key === 'End') {\n onEndKeyDown(event);\n // Prevent scrolling to page end\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n // Prevent scrolling for directional key presses\n event.preventDefault();\n }\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target as HTMLElement;\n target.setPointerCapture(event.pointerId);\n // Prevent browser focus behaviour because we focus a thumb manually when values change.\n event.preventDefault();\n // Touch devices have a delay before focusing so won't focus if touch immediately moves\n // away from target (sliding). We want thumb to focus regardless.\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 as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n })}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })}\n />\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderTrack\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRACK_NAME = 'SliderTrack';\n\ntype SliderTrackElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface SliderTrackProps extends PrimitiveSpanProps {}\n\nconst SliderTrack = React.forwardRef<SliderTrackElement, SliderTrackProps>(\n (props: ScopedProps<SliderTrackProps>, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return (\n <Primitive.span\n data-disabled={context.disabled ? '' : undefined}\n data-orientation={context.orientation}\n {...trackProps}\n ref={forwardedRef}\n />\n );\n }\n);\n\nSliderTrack.displayName = TRACK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderRange\n * -----------------------------------------------------------------------------------------------*/\n\nconst RANGE_NAME = 'SliderRange';\n\ntype SliderRangeElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderRangeProps extends PrimitiveSpanProps {}\n\nconst SliderRange = React.forwardRef<SliderRangeElement, SliderRangeProps>(\n (props: ScopedProps<SliderRangeProps>, 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<HTMLSpanElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map((value) =>\n convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n\n return (\n <Primitive.span\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n {...rangeProps}\n ref={composedRefs}\n style={{\n ...props.style,\n [orientation.startEdge]: offsetStart + '%',\n [orientation.endEdge]: offsetEnd + '%',\n }}\n />\n );\n }\n);\n\nSliderRange.displayName = RANGE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderThumb\n * -----------------------------------------------------------------------------------------------*/\n\nconst THUMB_NAME = 'SliderThumb';\n\ntype SliderThumbElement = SliderThumbImplElement;\ninterface SliderThumbProps extends Omit<SliderThumbImplProps, 'index'> {}\n\nconst SliderThumb = React.forwardRef<SliderThumbElement, SliderThumbProps>(\n (props: ScopedProps<SliderThumbProps>, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState<SliderThumbImplElement | null>(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 <SliderThumbImpl {...props} ref={composedRefs} index={index} />;\n }\n);\n\ntype SliderThumbImplElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderThumbImplProps extends PrimitiveSpanProps {\n index: number;\n}\n\nconst SliderThumbImpl = React.forwardRef<SliderThumbImplElement, SliderThumbImplProps>(\n (props: ScopedProps<SliderThumbImplProps>, forwardedRef) => {\n const { __scopeSlider, index, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const size = useSize(thumb);\n // We cast because index could be `-1` which would return undefined\n const value = context.values[index] as number | undefined;\n const percent =\n value === undefined ? 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\n ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction)\n : 0;\n\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\n return (\n <span\n style={{\n transform: 'var(--radix-slider-thumb-transform)',\n position: 'absolute',\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`,\n }}\n >\n <Collection.ItemSlot scope={props.__scopeSlider}>\n <Primitive.span\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 ? '' : undefined}\n tabIndex={context.disabled ? undefined : 0}\n {...thumbProps}\n ref={composedRefs}\n /**\n * There will be no value on initial render while we work out the index so we hide thumbs\n * without a value, otherwise SSR will render them in the wrong position before they\n * snap into the correct position during hydration which would be visually jarring for\n * slower connections.\n */\n style={value === undefined ? { display: 'none' } : props.style}\n onFocus={composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })}\n />\n </Collection.ItemSlot>\n </span>\n );\n }\n);\n\nSliderThumb.displayName = THUMB_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst BubbleInput = (props: Radix.ComponentPropsWithoutRef<'input'>) => {\n const { value, ...inputProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const prevValue = usePrevious(value);\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const input = ref.current!;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value') as PropertyDescriptor;\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\n /**\n * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n * wrap it will not be able to access its value via the FormData API.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n */\n return <input style={{ display: 'none' }} {...inputProps} ref={ref} defaultValue={value} />;\n};\n\nfunction getNextSortedValues(prevValues: number[] = [], nextValue: number, atIndex: number) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\n\nfunction convertValueToPercentage(value: number, min: number, max: number) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n return percentPerStep * (value - min);\n}\n\n/**\n * Returns a label for each thumb when there are two or more thumbs\n */\nfunction getLabel(index: number, totalValues: number) {\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 undefined;\n }\n}\n\n/**\n * Given a `values` array and a `nextValue`, determine which value in\n * the array is closest to `nextValue` and return its index.\n *\n * @example\n * // returns 1\n * getClosestValueIndex([10, 30], 25);\n */\nfunction getClosestValueIndex(values: number[], nextValue: number) {\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}\n\n/**\n * Offsets the thumb centre point while sliding to ensure it remains\n * within the bounds of the slider when reaching the edges\n */\nfunction getThumbInBoundsOffset(width: number, left: number, direction: number) {\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}\n\n/**\n * Gets an array of steps between each value.\n *\n * @example\n * // returns [1, 9]\n * getStepsBetweenValues([10, 11, 20]);\n */\nfunction getStepsBetweenValues(values: number[]) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\n\n/**\n * Verifies the minimum steps between all values is greater than or equal\n * to the expected minimum steps.\n *\n * @example\n * // returns false\n * hasMinStepsBetweenValues([1,2,3], 2);\n *\n * @example\n * // returns true\n * hasMinStepsBetweenValues([1,2,3], 1);\n */\nfunction hasMinStepsBetweenValues(values: number[], minStepsBetweenValues: number) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\n\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(input: readonly [number, number], output: readonly [number, number]) {\n return (value: number) => {\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}\n\nfunction getDecimalCount(value: number) {\n return (String(value).split('.')[1] || '').length;\n}\n\nfunction roundValue(value: number, decimalCount: number) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\n\nconst Root = Slider;\nconst Track = SliderTrack;\nconst Range = SliderRange;\nconst Thumb = SliderThumb;\n\nexport {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n};\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps };\n"],"names":["createSliderScope","Slider","SliderTrack","SliderRange","SliderThumb","Root","Track","Range","Thumb","React","clamp","composeEventHandlers","useComposedRefs","createContextScope","useControllableState","useDirection","usePrevious","useSize","Primitive","createCollection","PAGE_KEYS","ARROW_KEYS","BACK_KEYS","SLIDER_NAME","Collection","useCollection","createCollectionScope","createSliderContext","SliderProvider","useSliderContext","forwardRef","props","forwardedRef","name","min","max","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value","onValueChange","inverted","sliderProps","slider","setSlider","useState","composedRefs","node","thumbRefs","useRef","Set","valueIndexToChangeRef","isHorizontal","isFormControl","Boolean","closest","SliderOrientation","SliderHorizontal","SliderVertical","values","setValues","prop","defaultProp","onChange","thumbs","current","focus","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","atIndex","decimalCount","getDecimalCount","snapToStep","roundValue","Math","round","nextValue","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","indexOf","String","__scopeSlider","undefined","length","event","direction","stepDirection","isPageKey","includes","key","isSkipKey","shiftKey","multiplier","stepInDirection","map","index","SliderOrientationProvider","useSliderOrientationContext","startEdge","endEdge","size","dir","onSlideStart","onSlideMove","onStepKeyDown","rectRef","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","rect","getBoundingClientRect","input","width","output","linearScale","left","style","clientX","slideDirection","isBackKey","sliderRef","ref","isSlidingFromBottom","height","top","clientY","SliderImpl","onSlideEnd","onHomeKeyDown","onEndKeyDown","context","onKeyDown","preventDefault","concat","onPointerDown","target","setPointerCapture","pointerId","has","onPointerMove","hasPointerCapture","onPointerUp","releasePointerCapture","TRACK_NAME","trackProps","RANGE_NAME","rangeProps","valuesCount","percentages","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","getItems","thumb","setThumb","useMemo","findIndex","item","SliderThumbImpl","thumbProps","percent","label","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","useEffect","add","delete","transform","position","display","onFocus","BubbleInput","inputProps","prevValue","inputProto","window","HTMLInputElement","prototype","descriptor","Object","getOwnPropertyDescriptor","setValue","set","Event","bubbles","call","dispatchEvent","sort","a","b","maxSteps","percentPerStep","totalValues","distances","abs","closestDistance","halfWidth","halfPercent","offset","getStepsBetweenValues","slice","minStepsBetweenValues","stepsBetweenValues","actualMinStepsBetweenValues","ratio","split","rounder","pow"],"version":3,"file":"index.module.js.map"}
1
+ {"mappings":"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","sources":["packages/react/slider/src/index.ts","packages/react/slider/src/Slider.tsx"],"sourcesContent":["export {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n} from './Slider';\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps } from './Slider';\n","import * 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';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\n\nconst PAGE_KEYS = ['PageUp', 'PageDown'];\nconst ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\ntype SlideDirection = 'from-left' | 'from-right' | 'from-bottom' | 'from-top';\nconst BACK_KEYS: Record<SlideDirection, string[]> = {\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};\n\n/* -------------------------------------------------------------------------------------------------\n * Slider\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLIDER_NAME = 'Slider';\n\nconst [Collection, useCollection, createCollectionScope] =\n createCollection<SliderThumbElement>(SLIDER_NAME);\n\ntype ScopedProps<P> = P & { __scopeSlider?: Scope };\nconst [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope,\n]);\n\ntype SliderContextValue = {\n disabled?: boolean;\n min: number;\n max: number;\n values: number[];\n valueIndexToChangeRef: React.MutableRefObject<number>;\n thumbs: Set<SliderThumbElement>;\n orientation: SliderProps['orientation'];\n};\n\nconst [SliderProvider, useSliderContext] = createSliderContext<SliderContextValue>(SLIDER_NAME);\n\ntype SliderElement = SliderHorizontalElement | SliderVerticalElement;\ninterface SliderProps\n extends Omit<\n SliderHorizontalProps | SliderVerticalProps,\n keyof SliderOrientationPrivateProps | 'defaultValue'\n > {\n name?: string;\n disabled?: boolean;\n orientation?: React.AriaAttributes['aria-orientation'];\n dir?: Direction;\n min?: number;\n max?: number;\n step?: number;\n minStepsBetweenThumbs?: number;\n value?: number[];\n defaultValue?: number[];\n onValueChange?(value: number[]): void;\n onValueCommit?(value: number[]): void;\n inverted?: boolean;\n}\n\nconst Slider = React.forwardRef<SliderElement, SliderProps>(\n (props: ScopedProps<SliderProps>, 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 onValueCommit = () => {},\n inverted = false,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const thumbRefs = React.useRef<SliderContextValue['thumbs']>(new Set());\n const valueIndexToChangeRef = React.useRef<number>(0);\n const isHorizontal = orientation === 'horizontal';\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = slider ? Boolean(slider.closest('form')) : true;\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value);\n },\n });\n const valuesBeforeSlideStartRef = React.useRef(values);\n\n function handleSlideStart(value: number) {\n const closestIndex = getClosestValueIndex(values, value);\n updateValues(value, closestIndex);\n }\n\n function handleSlideMove(value: number) {\n updateValues(value, valueIndexToChangeRef.current);\n }\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\n function updateValues(value: number, atIndex: number, { commit } = { commit: false }) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n\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\n return (\n <SliderProvider\n scope={props.__scopeSlider}\n disabled={disabled}\n min={min}\n max={max}\n valueIndexToChangeRef={valueIndexToChangeRef}\n thumbs={thumbRefs.current}\n values={values}\n orientation={orientation}\n >\n <Collection.Provider scope={props.__scopeSlider}>\n <Collection.Slot scope={props.__scopeSlider}>\n <SliderOrientation\n aria-disabled={disabled}\n data-disabled={disabled ? '' : undefined}\n {...sliderProps}\n ref={composedRefs}\n onPointerDown={composeEventHandlers(sliderProps.onPointerDown, () => {\n if (!disabled) valuesBeforeSlideStartRef.current = values;\n })}\n min={min}\n max={max}\n inverted={inverted}\n onSlideStart={disabled ? undefined : handleSlideStart}\n onSlideMove={disabled ? undefined : handleSlideMove}\n onSlideEnd={disabled ? undefined : handleSlideEnd}\n onHomeKeyDown={() => !disabled && updateValues(min, 0, { commit: true })}\n onEndKeyDown={() =>\n !disabled && updateValues(max, values.length - 1, { commit: true })\n }\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 value = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value + stepInDirection, atIndex, { commit: true });\n }\n }}\n />\n </Collection.Slot>\n </Collection.Provider>\n {isFormControl &&\n values.map((value, index) => (\n <BubbleInput\n key={index}\n name={name ? name + (values.length > 1 ? '[]' : '') : undefined}\n value={value}\n />\n ))}\n </SliderProvider>\n );\n }\n);\n\nSlider.displayName = SLIDER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderHorizontal\n * -----------------------------------------------------------------------------------------------*/\n\ntype Side = 'top' | 'right' | 'bottom' | 'left';\n\nconst [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext<{\n startEdge: Side;\n endEdge: Side;\n size: keyof NonNullable<ReturnType<typeof useSize>>;\n direction: number;\n}>(SLIDER_NAME, {\n startEdge: 'left',\n endEdge: 'right',\n size: 'width',\n direction: 1,\n});\n\ntype SliderOrientationPrivateProps = {\n min: number;\n max: number;\n inverted: boolean;\n onSlideStart?(value: number): void;\n onSlideMove?(value: number): void;\n onSlideEnd?(): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(step: { event: React.KeyboardEvent; direction: number }): void;\n};\ninterface SliderOrientationProps\n extends Omit<SliderImplProps, keyof SliderImplPrivateProps>,\n SliderOrientationPrivateProps {}\n\ntype SliderHorizontalElement = SliderImplElement;\ninterface SliderHorizontalProps extends SliderOrientationProps {\n dir?: Direction;\n}\n\nconst SliderHorizontal = React.forwardRef<SliderHorizontalElement, SliderHorizontalProps>(\n (props: ScopedProps<SliderHorizontalProps>, 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<SliderImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef<ClientRect>();\n const direction = useDirection(dir);\n const isDirectionLTR = direction === 'ltr';\n const isSlidingFromLeft = (isDirectionLTR && !inverted) || (!isDirectionLTR && inverted);\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || slider!.getBoundingClientRect();\n const input: [number, number] = [0, rect.width];\n const output: [number, number] = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromLeft ? 'left' : 'right'}\n endEdge={isSlidingFromLeft ? 'right' : 'left'}\n direction={isSlidingFromLeft ? 1 : -1}\n size=\"width\"\n >\n <SliderImpl\n dir={direction}\n data-orientation=\"horizontal\"\n {...sliderProps}\n ref={composedRefs}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: '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 = undefined;\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 </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderVertical\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderVerticalElement = SliderImplElement;\ninterface SliderVerticalProps extends SliderOrientationProps {}\n\nconst SliderVertical = React.forwardRef<SliderVerticalElement, SliderVerticalProps>(\n (props: ScopedProps<SliderVerticalProps>, 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<SliderImplElement>(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef<ClientRect>();\n const isSlidingFromBottom = !inverted;\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || sliderRef.current!.getBoundingClientRect();\n const input: [number, number] = [0, rect.height];\n const output: [number, number] = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromBottom ? 'bottom' : 'top'}\n endEdge={isSlidingFromBottom ? 'top' : 'bottom'}\n size=\"height\"\n direction={isSlidingFromBottom ? 1 : -1}\n >\n <SliderImpl\n data-orientation=\"vertical\"\n {...sliderProps}\n ref={ref}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: '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 = undefined;\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 </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderImpl\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderImplElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;\ntype SliderImplPrivateProps = {\n onSlideStart(event: React.PointerEvent): void;\n onSlideMove(event: React.PointerEvent): void;\n onSlideEnd(event: React.PointerEvent): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(event: React.KeyboardEvent): void;\n};\ninterface SliderImplProps extends PrimitiveDivProps, SliderImplPrivateProps {}\n\nconst SliderImpl = React.forwardRef<SliderImplElement, SliderImplProps>(\n (props: ScopedProps<SliderImplProps>, 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\n return (\n <Primitive.span\n {...sliderProps}\n ref={forwardedRef}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === 'Home') {\n onHomeKeyDown(event);\n // Prevent scrolling to page start\n event.preventDefault();\n } else if (event.key === 'End') {\n onEndKeyDown(event);\n // Prevent scrolling to page end\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n // Prevent scrolling for directional key presses\n event.preventDefault();\n }\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target as HTMLElement;\n target.setPointerCapture(event.pointerId);\n // Prevent browser focus behaviour because we focus a thumb manually when values change.\n event.preventDefault();\n // Touch devices have a delay before focusing so won't focus if touch immediately moves\n // away from target (sliding). We want thumb to focus regardless.\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 as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n })}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })}\n />\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderTrack\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRACK_NAME = 'SliderTrack';\n\ntype SliderTrackElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface SliderTrackProps extends PrimitiveSpanProps {}\n\nconst SliderTrack = React.forwardRef<SliderTrackElement, SliderTrackProps>(\n (props: ScopedProps<SliderTrackProps>, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return (\n <Primitive.span\n data-disabled={context.disabled ? '' : undefined}\n data-orientation={context.orientation}\n {...trackProps}\n ref={forwardedRef}\n />\n );\n }\n);\n\nSliderTrack.displayName = TRACK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderRange\n * -----------------------------------------------------------------------------------------------*/\n\nconst RANGE_NAME = 'SliderRange';\n\ntype SliderRangeElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderRangeProps extends PrimitiveSpanProps {}\n\nconst SliderRange = React.forwardRef<SliderRangeElement, SliderRangeProps>(\n (props: ScopedProps<SliderRangeProps>, 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<HTMLSpanElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map((value) =>\n convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n\n return (\n <Primitive.span\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n {...rangeProps}\n ref={composedRefs}\n style={{\n ...props.style,\n [orientation.startEdge]: offsetStart + '%',\n [orientation.endEdge]: offsetEnd + '%',\n }}\n />\n );\n }\n);\n\nSliderRange.displayName = RANGE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderThumb\n * -----------------------------------------------------------------------------------------------*/\n\nconst THUMB_NAME = 'SliderThumb';\n\ntype SliderThumbElement = SliderThumbImplElement;\ninterface SliderThumbProps extends Omit<SliderThumbImplProps, 'index'> {}\n\nconst SliderThumb = React.forwardRef<SliderThumbElement, SliderThumbProps>(\n (props: ScopedProps<SliderThumbProps>, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState<SliderThumbImplElement | null>(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 <SliderThumbImpl {...props} ref={composedRefs} index={index} />;\n }\n);\n\ntype SliderThumbImplElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderThumbImplProps extends PrimitiveSpanProps {\n index: number;\n}\n\nconst SliderThumbImpl = React.forwardRef<SliderThumbImplElement, SliderThumbImplProps>(\n (props: ScopedProps<SliderThumbImplProps>, forwardedRef) => {\n const { __scopeSlider, index, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const size = useSize(thumb);\n // We cast because index could be `-1` which would return undefined\n const value = context.values[index] as number | undefined;\n const percent =\n value === undefined ? 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\n ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction)\n : 0;\n\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\n return (\n <span\n style={{\n transform: 'var(--radix-slider-thumb-transform)',\n position: 'absolute',\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`,\n }}\n >\n <Collection.ItemSlot scope={props.__scopeSlider}>\n <Primitive.span\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 ? '' : undefined}\n tabIndex={context.disabled ? undefined : 0}\n {...thumbProps}\n ref={composedRefs}\n /**\n * There will be no value on initial render while we work out the index so we hide thumbs\n * without a value, otherwise SSR will render them in the wrong position before they\n * snap into the correct position during hydration which would be visually jarring for\n * slower connections.\n */\n style={value === undefined ? { display: 'none' } : props.style}\n onFocus={composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })}\n />\n </Collection.ItemSlot>\n </span>\n );\n }\n);\n\nSliderThumb.displayName = THUMB_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst BubbleInput = (props: Radix.ComponentPropsWithoutRef<'input'>) => {\n const { value, ...inputProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const prevValue = usePrevious(value);\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const input = ref.current!;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value') as PropertyDescriptor;\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\n /**\n * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n * wrap it will not be able to access its value via the FormData API.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n */\n return <input style={{ display: 'none' }} {...inputProps} ref={ref} defaultValue={value} />;\n};\n\nfunction getNextSortedValues(prevValues: number[] = [], nextValue: number, atIndex: number) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\n\nfunction convertValueToPercentage(value: number, min: number, max: number) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n return percentPerStep * (value - min);\n}\n\n/**\n * Returns a label for each thumb when there are two or more thumbs\n */\nfunction getLabel(index: number, totalValues: number) {\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 undefined;\n }\n}\n\n/**\n * Given a `values` array and a `nextValue`, determine which value in\n * the array is closest to `nextValue` and return its index.\n *\n * @example\n * // returns 1\n * getClosestValueIndex([10, 30], 25);\n */\nfunction getClosestValueIndex(values: number[], nextValue: number) {\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}\n\n/**\n * Offsets the thumb centre point while sliding to ensure it remains\n * within the bounds of the slider when reaching the edges\n */\nfunction getThumbInBoundsOffset(width: number, left: number, direction: number) {\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}\n\n/**\n * Gets an array of steps between each value.\n *\n * @example\n * // returns [1, 9]\n * getStepsBetweenValues([10, 11, 20]);\n */\nfunction getStepsBetweenValues(values: number[]) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\n\n/**\n * Verifies the minimum steps between all values is greater than or equal\n * to the expected minimum steps.\n *\n * @example\n * // returns false\n * hasMinStepsBetweenValues([1,2,3], 2);\n *\n * @example\n * // returns true\n * hasMinStepsBetweenValues([1,2,3], 1);\n */\nfunction hasMinStepsBetweenValues(values: number[], minStepsBetweenValues: number) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\n\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(input: readonly [number, number], output: readonly [number, number]) {\n return (value: number) => {\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}\n\nfunction getDecimalCount(value: number) {\n return (String(value).split('.')[1] || '').length;\n}\n\nfunction roundValue(value: number, decimalCount: number) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\n\nconst Root = Slider;\nconst Track = SliderTrack;\nconst Range = SliderRange;\nconst Thumb = SliderThumb;\n\nexport {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n};\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps };\n"],"names":["createSliderScope","Slider","SliderTrack","SliderRange","SliderThumb","Root","Track","Range","Thumb","React","clamp","composeEventHandlers","useComposedRefs","createContextScope","useControllableState","useDirection","usePrevious","useSize","Primitive","createCollection","PAGE_KEYS","ARROW_KEYS","BACK_KEYS","SLIDER_NAME","Collection","useCollection","createCollectionScope","createSliderContext","SliderProvider","useSliderContext","forwardRef","props","forwardedRef","name","min","max","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value","onValueChange","onValueCommit","inverted","sliderProps","slider","setSlider","useState","composedRefs","node","thumbRefs","useRef","Set","valueIndexToChangeRef","isHorizontal","isFormControl","Boolean","closest","SliderOrientation","SliderHorizontal","SliderVertical","values","setValues","prop","defaultProp","onChange","thumbs","current","focus","valuesBeforeSlideStartRef","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","handleSlideEnd","prevValue","nextValue","hasChanged","atIndex","commit","decimalCount","getDecimalCount","snapToStep","roundValue","Math","round","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","indexOf","String","__scopeSlider","undefined","onPointerDown","length","event","direction","stepDirection","isPageKey","includes","key","isSkipKey","shiftKey","multiplier","stepInDirection","map","index","SliderOrientationProvider","useSliderOrientationContext","startEdge","endEdge","size","dir","onSlideStart","onSlideMove","onSlideEnd","onStepKeyDown","rectRef","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","rect","getBoundingClientRect","input","width","output","linearScale","left","style","clientX","slideDirection","isBackKey","sliderRef","ref","isSlidingFromBottom","height","top","clientY","SliderImpl","onHomeKeyDown","onEndKeyDown","context","onKeyDown","preventDefault","concat","target","setPointerCapture","pointerId","has","onPointerMove","hasPointerCapture","onPointerUp","releasePointerCapture","TRACK_NAME","trackProps","RANGE_NAME","rangeProps","valuesCount","percentages","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","getItems","thumb","setThumb","useMemo","findIndex","item","SliderThumbImpl","thumbProps","percent","label","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","useEffect","add","delete","transform","position","display","onFocus","BubbleInput","inputProps","inputProto","window","HTMLInputElement","prototype","descriptor","Object","getOwnPropertyDescriptor","setValue","set","Event","bubbles","call","dispatchEvent","sort","a","b","maxSteps","percentPerStep","totalValues","distances","abs","closestDistance","halfWidth","halfPercent","offset","getStepsBetweenValues","slice","minStepsBetweenValues","stepsBetweenValues","actualMinStepsBetweenValues","ratio","split","rounder","pow"],"version":3,"file":"index.module.js.map"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@radix-ui/react-slider",
3
- "version": "1.0.1-rc.9",
3
+ "version": "1.1.0-rc.2",
4
4
  "license": "MIT",
5
5
  "source": "src/index.ts",
6
6
  "main": "dist/index.js",
@@ -19,11 +19,11 @@
19
19
  "@babel/runtime": "^7.13.10",
20
20
  "@radix-ui/number": "1.0.0",
21
21
  "@radix-ui/primitive": "1.0.0",
22
- "@radix-ui/react-collection": "1.0.1-rc.9",
22
+ "@radix-ui/react-collection": "1.0.1-rc.11",
23
23
  "@radix-ui/react-compose-refs": "1.0.0",
24
24
  "@radix-ui/react-context": "1.0.0",
25
25
  "@radix-ui/react-direction": "1.0.0",
26
- "@radix-ui/react-primitive": "1.0.1-rc.9",
26
+ "@radix-ui/react-primitive": "1.0.1-rc.11",
27
27
  "@radix-ui/react-use-controllable-state": "1.0.0",
28
28
  "@radix-ui/react-use-layout-effect": "1.0.0",
29
29
  "@radix-ui/react-use-previous": "1.0.0",