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