@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 +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -12
- package/dist/index.js.map +1 -1
- package/dist/index.module.js +37 -12
- package/dist/index.module.js.map +1 -1
- package/package.json +3 -3
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: {
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;AAeA,iBAAiB,KAAK,GAAG,KAAK,CAAC;AAuB/B,OAAA,wFAEE,CAAC;AAeH,4BACE,SAAQ,IAAI,CACV,qBAAqB,GAAG,mBAAmB,EAC3C,MAAM,6BAA6B,GAAG,cAAc,CACrD;IACD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,cAAc,CAAC,kBAAkB,CAAC,CAAC;IACvD,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,OAAA,MAAM,
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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: ()=>
|
|
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: ()=>
|
|
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"}
|
package/dist/index.module.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
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: ()=>
|
|
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: ()=>
|
|
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);
|
package/dist/index.module.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.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
|
|
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.
|
|
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.
|
|
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",
|