@radix-ui/react-slider 1.1.2-rc.9 → 1.2.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +73 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -15
- package/dist/index.js.map +1 -1
- package/dist/{index.module.js → index.mjs} +14 -17
- package/dist/index.mjs.map +1 -0
- package/package.json +39 -17
- package/dist/index.module.js.map +0 -1
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as Radix from "@radix-ui/react-primitive";
|
|
3
|
+
import { Primitive } from "@radix-ui/react-primitive";
|
|
4
|
+
type Direction = 'ltr' | 'rtl';
|
|
5
|
+
export const createSliderScope: import("@radix-ui/react-context").CreateScope;
|
|
6
|
+
export interface SliderProps extends Omit<SliderHorizontalProps | SliderVerticalProps, keyof SliderOrientationPrivateProps | 'defaultValue'> {
|
|
7
|
+
name?: string;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
orientation?: React.AriaAttributes['aria-orientation'];
|
|
10
|
+
dir?: Direction;
|
|
11
|
+
min?: number;
|
|
12
|
+
max?: number;
|
|
13
|
+
step?: number;
|
|
14
|
+
minStepsBetweenThumbs?: number;
|
|
15
|
+
value?: number[];
|
|
16
|
+
defaultValue?: number[];
|
|
17
|
+
onValueChange?(value: number[]): void;
|
|
18
|
+
onValueCommit?(value: number[]): void;
|
|
19
|
+
inverted?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export const Slider: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<HTMLSpanElement>>;
|
|
22
|
+
type SliderOrientationPrivateProps = {
|
|
23
|
+
min: number;
|
|
24
|
+
max: number;
|
|
25
|
+
inverted: boolean;
|
|
26
|
+
onSlideStart?(value: number): void;
|
|
27
|
+
onSlideMove?(value: number): void;
|
|
28
|
+
onSlideEnd?(): void;
|
|
29
|
+
onHomeKeyDown(event: React.KeyboardEvent): void;
|
|
30
|
+
onEndKeyDown(event: React.KeyboardEvent): void;
|
|
31
|
+
onStepKeyDown(step: {
|
|
32
|
+
event: React.KeyboardEvent;
|
|
33
|
+
direction: number;
|
|
34
|
+
}): void;
|
|
35
|
+
};
|
|
36
|
+
interface SliderOrientationProps extends Omit<SliderImplProps, keyof SliderImplPrivateProps>, SliderOrientationPrivateProps {
|
|
37
|
+
}
|
|
38
|
+
interface SliderHorizontalProps extends SliderOrientationProps {
|
|
39
|
+
dir?: Direction;
|
|
40
|
+
}
|
|
41
|
+
interface SliderVerticalProps extends SliderOrientationProps {
|
|
42
|
+
}
|
|
43
|
+
type PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;
|
|
44
|
+
type SliderImplPrivateProps = {
|
|
45
|
+
onSlideStart(event: React.PointerEvent): void;
|
|
46
|
+
onSlideMove(event: React.PointerEvent): void;
|
|
47
|
+
onSlideEnd(event: React.PointerEvent): void;
|
|
48
|
+
onHomeKeyDown(event: React.KeyboardEvent): void;
|
|
49
|
+
onEndKeyDown(event: React.KeyboardEvent): void;
|
|
50
|
+
onStepKeyDown(event: React.KeyboardEvent): void;
|
|
51
|
+
};
|
|
52
|
+
interface SliderImplProps extends PrimitiveDivProps, SliderImplPrivateProps {
|
|
53
|
+
}
|
|
54
|
+
type PrimitiveSpanProps = Radix.ComponentPropsWithoutRef<typeof Primitive.span>;
|
|
55
|
+
export interface SliderTrackProps extends PrimitiveSpanProps {
|
|
56
|
+
}
|
|
57
|
+
export const SliderTrack: React.ForwardRefExoticComponent<SliderTrackProps & React.RefAttributes<HTMLSpanElement>>;
|
|
58
|
+
export interface SliderRangeProps extends PrimitiveSpanProps {
|
|
59
|
+
}
|
|
60
|
+
export const SliderRange: React.ForwardRefExoticComponent<SliderRangeProps & React.RefAttributes<HTMLSpanElement>>;
|
|
61
|
+
export interface SliderThumbProps extends Omit<SliderThumbImplProps, 'index'> {
|
|
62
|
+
}
|
|
63
|
+
export const SliderThumb: React.ForwardRefExoticComponent<SliderThumbProps & React.RefAttributes<HTMLSpanElement>>;
|
|
64
|
+
interface SliderThumbImplProps extends PrimitiveSpanProps {
|
|
65
|
+
index: number;
|
|
66
|
+
name?: string;
|
|
67
|
+
}
|
|
68
|
+
export const Root: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<HTMLSpanElement>>;
|
|
69
|
+
export const Track: React.ForwardRefExoticComponent<SliderTrackProps & React.RefAttributes<HTMLSpanElement>>;
|
|
70
|
+
export const Range: React.ForwardRefExoticComponent<SliderRangeProps & React.RefAttributes<HTMLSpanElement>>;
|
|
71
|
+
export const Thumb: React.ForwardRefExoticComponent<SliderThumbProps & React.RefAttributes<HTMLSpanElement>>;
|
|
72
|
+
|
|
73
|
+
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts
CHANGED
|
@@ -63,6 +63,7 @@ export interface SliderThumbProps extends Omit<SliderThumbImplProps, 'index'> {
|
|
|
63
63
|
export const SliderThumb: React.ForwardRefExoticComponent<SliderThumbProps & React.RefAttributes<HTMLSpanElement>>;
|
|
64
64
|
interface SliderThumbImplProps extends PrimitiveSpanProps {
|
|
65
65
|
index: number;
|
|
66
|
+
name?: string;
|
|
66
67
|
}
|
|
67
68
|
export const Root: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<HTMLSpanElement>>;
|
|
68
69
|
export const Track: React.ForwardRefExoticComponent<SliderTrackProps & React.RefAttributes<HTMLSpanElement>>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;AAeA,iBAAiB,KAAK,GAAG,KAAK,CAAC;AAuB/B,OAAA,wFAEE,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
|
@@ -87,13 +87,9 @@ const $1791bb30e2e418d5$export$472062a354075cee = /*#__PURE__*/ $inrcs$react.for
|
|
|
87
87
|
const { name: name , min: min = 0 , max: max = 100 , step: step = 1 , orientation: orientation = 'horizontal' , disabled: disabled = false , minStepsBetweenThumbs: minStepsBetweenThumbs = 0 , defaultValue: defaultValue = [
|
|
88
88
|
min
|
|
89
89
|
] , value: value1 , onValueChange: onValueChange = ()=>{} , onValueCommit: onValueCommit = ()=>{} , inverted: inverted = false , ...sliderProps } = props;
|
|
90
|
-
const [slider, setSlider] = $inrcs$react.useState(null);
|
|
91
|
-
const composedRefs = $inrcs$radixuireactcomposerefs.useComposedRefs(forwardedRef, (node)=>setSlider(node)
|
|
92
|
-
);
|
|
93
90
|
const thumbRefs = $inrcs$react.useRef(new Set());
|
|
94
91
|
const valueIndexToChangeRef = $inrcs$react.useRef(0);
|
|
95
|
-
const isHorizontal = orientation === 'horizontal';
|
|
96
|
-
const isFormControl = slider ? Boolean(slider.closest('form')) : true;
|
|
92
|
+
const isHorizontal = orientation === 'horizontal';
|
|
97
93
|
const SliderOrientation = isHorizontal ? $1791bb30e2e418d5$var$SliderHorizontal : $1791bb30e2e418d5$var$SliderVertical;
|
|
98
94
|
const [values = [], setValues] = $inrcs$radixuireactusecontrollablestate.useControllableState({
|
|
99
95
|
prop: value1,
|
|
@@ -142,6 +138,7 @@ const $1791bb30e2e418d5$export$472062a354075cee = /*#__PURE__*/ $inrcs$react.for
|
|
|
142
138
|
}
|
|
143
139
|
return /*#__PURE__*/ $inrcs$react.createElement($1791bb30e2e418d5$var$SliderProvider, {
|
|
144
140
|
scope: props.__scopeSlider,
|
|
141
|
+
name: name,
|
|
145
142
|
disabled: disabled,
|
|
146
143
|
min: min,
|
|
147
144
|
max: max,
|
|
@@ -157,7 +154,7 @@ const $1791bb30e2e418d5$export$472062a354075cee = /*#__PURE__*/ $inrcs$react.for
|
|
|
157
154
|
"aria-disabled": disabled,
|
|
158
155
|
"data-disabled": disabled ? '' : undefined
|
|
159
156
|
}, sliderProps, {
|
|
160
|
-
ref:
|
|
157
|
+
ref: forwardedRef,
|
|
161
158
|
onPointerDown: $inrcs$radixuiprimitive.composeEventHandlers(sliderProps.onPointerDown, ()=>{
|
|
162
159
|
if (!disabled) valuesBeforeSlideStartRef.current = values;
|
|
163
160
|
}),
|
|
@@ -188,12 +185,7 @@ const $1791bb30e2e418d5$export$472062a354075cee = /*#__PURE__*/ $inrcs$react.for
|
|
|
188
185
|
});
|
|
189
186
|
}
|
|
190
187
|
}
|
|
191
|
-
}))))
|
|
192
|
-
key: index,
|
|
193
|
-
name: name ? name + (values.length > 1 ? '[]' : '') : undefined,
|
|
194
|
-
value: value
|
|
195
|
-
})
|
|
196
|
-
));
|
|
188
|
+
})))));
|
|
197
189
|
});
|
|
198
190
|
/*#__PURE__*/ Object.assign($1791bb30e2e418d5$export$472062a354075cee, {
|
|
199
191
|
displayName: $1791bb30e2e418d5$var$SLIDER_NAME
|
|
@@ -435,12 +427,13 @@ const $1791bb30e2e418d5$export$2c1b491743890dec = /*#__PURE__*/ $inrcs$react.for
|
|
|
435
427
|
}));
|
|
436
428
|
});
|
|
437
429
|
const $1791bb30e2e418d5$var$SliderThumbImpl = /*#__PURE__*/ $inrcs$react.forwardRef((props, forwardedRef)=>{
|
|
438
|
-
const { __scopeSlider: __scopeSlider , index: index , ...thumbProps } = props;
|
|
430
|
+
const { __scopeSlider: __scopeSlider , index: index , name: name , ...thumbProps } = props;
|
|
439
431
|
const context = $1791bb30e2e418d5$var$useSliderContext($1791bb30e2e418d5$var$THUMB_NAME, __scopeSlider);
|
|
440
432
|
const orientation = $1791bb30e2e418d5$var$useSliderOrientationContext($1791bb30e2e418d5$var$THUMB_NAME, __scopeSlider);
|
|
441
433
|
const [thumb, setThumb] = $inrcs$react.useState(null);
|
|
442
434
|
const composedRefs = $inrcs$radixuireactcomposerefs.useComposedRefs(forwardedRef, (node)=>setThumb(node)
|
|
443
|
-
);
|
|
435
|
+
); // We set this to true by default so that events bubble to forms without JS (SSR)
|
|
436
|
+
const isFormControl = thumb ? Boolean(thumb.closest('form')) : true;
|
|
444
437
|
const size = $inrcs$radixuireactusesize.useSize(thumb); // We cast because index could be `-1` which would return undefined
|
|
445
438
|
const value = context.values[index];
|
|
446
439
|
const percent = value === undefined ? 0 : $1791bb30e2e418d5$var$convertValueToPercentage(value, context.min, context.max);
|
|
@@ -484,7 +477,11 @@ const $1791bb30e2e418d5$var$SliderThumbImpl = /*#__PURE__*/ $inrcs$react.forward
|
|
|
484
477
|
onFocus: $inrcs$radixuiprimitive.composeEventHandlers(props.onFocus, ()=>{
|
|
485
478
|
context.valueIndexToChangeRef.current = index;
|
|
486
479
|
})
|
|
487
|
-
})))
|
|
480
|
+
}))), isFormControl && /*#__PURE__*/ $inrcs$react.createElement($1791bb30e2e418d5$var$BubbleInput, {
|
|
481
|
+
key: index,
|
|
482
|
+
name: name !== null && name !== void 0 ? name : context.name ? context.name + (context.values.length > 1 ? '[]' : '') : undefined,
|
|
483
|
+
value: value
|
|
484
|
+
}));
|
|
488
485
|
});
|
|
489
486
|
/*#__PURE__*/ Object.assign($1791bb30e2e418d5$export$2c1b491743890dec, {
|
|
490
487
|
displayName: $1791bb30e2e418d5$var$THUMB_NAME
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/react/slider/src/index.ts","packages/react/slider/src/Slider.tsx"],"sourcesContent":["export {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n} from './Slider';\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps } from './Slider';\n","import * as React from 'react';\nimport { clamp } from '@radix-ui/number';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { createCollection } from '@radix-ui/react-collection';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\n\nconst PAGE_KEYS = ['PageUp', 'PageDown'];\nconst ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\ntype SlideDirection = 'from-left' | 'from-right' | 'from-bottom' | 'from-top';\nconst BACK_KEYS: Record<SlideDirection, string[]> = {\n 'from-left': ['Home', 'PageDown', 'ArrowDown', 'ArrowLeft'],\n 'from-right': ['Home', 'PageDown', 'ArrowDown', 'ArrowRight'],\n 'from-bottom': ['Home', 'PageDown', 'ArrowDown', 'ArrowLeft'],\n 'from-top': ['Home', 'PageDown', 'ArrowUp', 'ArrowLeft'],\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Slider\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLIDER_NAME = 'Slider';\n\nconst [Collection, useCollection, createCollectionScope] =\n createCollection<SliderThumbElement>(SLIDER_NAME);\n\ntype ScopedProps<P> = P & { __scopeSlider?: Scope };\nconst [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope,\n]);\n\ntype SliderContextValue = {\n disabled?: boolean;\n min: number;\n max: number;\n values: number[];\n valueIndexToChangeRef: React.MutableRefObject<number>;\n thumbs: Set<SliderThumbElement>;\n orientation: SliderProps['orientation'];\n};\n\nconst [SliderProvider, useSliderContext] = createSliderContext<SliderContextValue>(SLIDER_NAME);\n\ntype SliderElement = SliderHorizontalElement | SliderVerticalElement;\ninterface SliderProps\n extends Omit<\n SliderHorizontalProps | SliderVerticalProps,\n keyof SliderOrientationPrivateProps | 'defaultValue'\n > {\n name?: string;\n disabled?: boolean;\n orientation?: React.AriaAttributes['aria-orientation'];\n dir?: Direction;\n min?: number;\n max?: number;\n step?: number;\n minStepsBetweenThumbs?: number;\n value?: number[];\n defaultValue?: number[];\n onValueChange?(value: number[]): void;\n onValueCommit?(value: number[]): void;\n inverted?: boolean;\n}\n\nconst Slider = React.forwardRef<SliderElement, SliderProps>(\n (props: ScopedProps<SliderProps>, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = 'horizontal',\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {},\n onValueCommit = () => {},\n inverted = false,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const thumbRefs = React.useRef<SliderContextValue['thumbs']>(new Set());\n const valueIndexToChangeRef = React.useRef<number>(0);\n const isHorizontal = orientation === 'horizontal';\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = slider ? Boolean(slider.closest('form')) : true;\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value);\n },\n });\n const valuesBeforeSlideStartRef = React.useRef(values);\n\n function handleSlideStart(value: number) {\n const closestIndex = getClosestValueIndex(values, value);\n updateValues(value, closestIndex);\n }\n\n function handleSlideMove(value: number) {\n updateValues(value, valueIndexToChangeRef.current);\n }\n\n function handleSlideEnd() {\n const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];\n const nextValue = values[valueIndexToChangeRef.current];\n const hasChanged = nextValue !== prevValue;\n if (hasChanged) onValueCommit(values);\n }\n\n function updateValues(value: number, atIndex: number, { commit } = { commit: false }) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n const hasChanged = String(nextValues) !== String(prevValues);\n if (hasChanged && commit) onValueCommit(nextValues);\n return hasChanged ? nextValues : prevValues;\n } else {\n return prevValues;\n }\n });\n }\n\n return (\n <SliderProvider\n scope={props.__scopeSlider}\n disabled={disabled}\n min={min}\n max={max}\n valueIndexToChangeRef={valueIndexToChangeRef}\n thumbs={thumbRefs.current}\n values={values}\n orientation={orientation}\n >\n <Collection.Provider scope={props.__scopeSlider}>\n <Collection.Slot scope={props.__scopeSlider}>\n <SliderOrientation\n aria-disabled={disabled}\n data-disabled={disabled ? '' : undefined}\n {...sliderProps}\n ref={composedRefs}\n onPointerDown={composeEventHandlers(sliderProps.onPointerDown, () => {\n if (!disabled) valuesBeforeSlideStartRef.current = values;\n })}\n min={min}\n max={max}\n inverted={inverted}\n onSlideStart={disabled ? undefined : handleSlideStart}\n onSlideMove={disabled ? undefined : handleSlideMove}\n onSlideEnd={disabled ? undefined : handleSlideEnd}\n onHomeKeyDown={() => !disabled && updateValues(min, 0, { commit: true })}\n onEndKeyDown={() =>\n !disabled && updateValues(max, values.length - 1, { commit: true })\n }\n onStepKeyDown={({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || (event.shiftKey && ARROW_KEYS.includes(event.key));\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value + stepInDirection, atIndex, { commit: true });\n }\n }}\n />\n </Collection.Slot>\n </Collection.Provider>\n {isFormControl &&\n values.map((value, index) => (\n <BubbleInput\n key={index}\n name={name ? name + (values.length > 1 ? '[]' : '') : undefined}\n value={value}\n />\n ))}\n </SliderProvider>\n );\n }\n);\n\nSlider.displayName = SLIDER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderHorizontal\n * -----------------------------------------------------------------------------------------------*/\n\ntype Side = 'top' | 'right' | 'bottom' | 'left';\n\nconst [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext<{\n startEdge: Side;\n endEdge: Side;\n size: keyof NonNullable<ReturnType<typeof useSize>>;\n direction: number;\n}>(SLIDER_NAME, {\n startEdge: 'left',\n endEdge: 'right',\n size: 'width',\n direction: 1,\n});\n\ntype SliderOrientationPrivateProps = {\n min: number;\n max: number;\n inverted: boolean;\n onSlideStart?(value: number): void;\n onSlideMove?(value: number): void;\n onSlideEnd?(): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(step: { event: React.KeyboardEvent; direction: number }): void;\n};\ninterface SliderOrientationProps\n extends Omit<SliderImplProps, keyof SliderImplPrivateProps>,\n SliderOrientationPrivateProps {}\n\ntype SliderHorizontalElement = SliderImplElement;\ninterface SliderHorizontalProps extends SliderOrientationProps {\n dir?: Direction;\n}\n\nconst SliderHorizontal = React.forwardRef<SliderHorizontalElement, SliderHorizontalProps>(\n (props: ScopedProps<SliderHorizontalProps>, forwardedRef) => {\n const {\n min,\n max,\n dir,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState<SliderImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef<ClientRect>();\n const direction = useDirection(dir);\n const isDirectionLTR = direction === 'ltr';\n const isSlidingFromLeft = (isDirectionLTR && !inverted) || (!isDirectionLTR && inverted);\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || slider!.getBoundingClientRect();\n const input: [number, number] = [0, rect.width];\n const output: [number, number] = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromLeft ? 'left' : 'right'}\n endEdge={isSlidingFromLeft ? 'right' : 'left'}\n direction={isSlidingFromLeft ? 1 : -1}\n size=\"width\"\n >\n <SliderImpl\n dir={direction}\n data-orientation=\"horizontal\"\n {...sliderProps}\n ref={composedRefs}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: 'translateX(-50%)',\n }}\n onSlideStart={(event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart?.(value);\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove?.(value);\n }}\n onSlideEnd={() => {\n rectRef.current = undefined;\n onSlideEnd?.();\n }}\n onStepKeyDown={(event) => {\n const slideDirection = isSlidingFromLeft ? 'from-left' : 'from-right';\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }}\n />\n </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderVertical\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderVerticalElement = SliderImplElement;\ninterface SliderVerticalProps extends SliderOrientationProps {}\n\nconst SliderVertical = React.forwardRef<SliderVerticalElement, SliderVerticalProps>(\n (props: ScopedProps<SliderVerticalProps>, forwardedRef) => {\n const {\n min,\n max,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const sliderRef = React.useRef<SliderImplElement>(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef<ClientRect>();\n const isSlidingFromBottom = !inverted;\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || sliderRef.current!.getBoundingClientRect();\n const input: [number, number] = [0, rect.height];\n const output: [number, number] = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromBottom ? 'bottom' : 'top'}\n endEdge={isSlidingFromBottom ? 'top' : 'bottom'}\n size=\"height\"\n direction={isSlidingFromBottom ? 1 : -1}\n >\n <SliderImpl\n data-orientation=\"vertical\"\n {...sliderProps}\n ref={ref}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: 'translateY(50%)',\n }}\n onSlideStart={(event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart?.(value);\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove?.(value);\n }}\n onSlideEnd={() => {\n rectRef.current = undefined;\n onSlideEnd?.();\n }}\n onStepKeyDown={(event) => {\n const slideDirection = isSlidingFromBottom ? 'from-bottom' : 'from-top';\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }}\n />\n </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderImpl\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderImplElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;\ntype SliderImplPrivateProps = {\n onSlideStart(event: React.PointerEvent): void;\n onSlideMove(event: React.PointerEvent): void;\n onSlideEnd(event: React.PointerEvent): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(event: React.KeyboardEvent): void;\n};\ninterface SliderImplProps extends PrimitiveDivProps, SliderImplPrivateProps {}\n\nconst SliderImpl = React.forwardRef<SliderImplElement, SliderImplProps>(\n (props: ScopedProps<SliderImplProps>, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const context = useSliderContext(SLIDER_NAME, __scopeSlider);\n\n return (\n <Primitive.span\n {...sliderProps}\n ref={forwardedRef}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === 'Home') {\n onHomeKeyDown(event);\n // Prevent scrolling to page start\n event.preventDefault();\n } else if (event.key === 'End') {\n onEndKeyDown(event);\n // Prevent scrolling to page end\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n // Prevent scrolling for directional key presses\n event.preventDefault();\n }\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target as HTMLElement;\n target.setPointerCapture(event.pointerId);\n // Prevent browser focus behaviour because we focus a thumb manually when values change.\n event.preventDefault();\n // Touch devices have a delay before focusing so won't focus if touch immediately moves\n // away from target (sliding). We want thumb to focus regardless.\n if (context.thumbs.has(target)) {\n target.focus();\n } else {\n onSlideStart(event);\n }\n })}\n onPointerMove={composeEventHandlers(props.onPointerMove, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n })}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })}\n />\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderTrack\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRACK_NAME = 'SliderTrack';\n\ntype SliderTrackElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface SliderTrackProps extends PrimitiveSpanProps {}\n\nconst SliderTrack = React.forwardRef<SliderTrackElement, SliderTrackProps>(\n (props: ScopedProps<SliderTrackProps>, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return (\n <Primitive.span\n data-disabled={context.disabled ? '' : undefined}\n data-orientation={context.orientation}\n {...trackProps}\n ref={forwardedRef}\n />\n );\n }\n);\n\nSliderTrack.displayName = TRACK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderRange\n * -----------------------------------------------------------------------------------------------*/\n\nconst RANGE_NAME = 'SliderRange';\n\ntype SliderRangeElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderRangeProps extends PrimitiveSpanProps {}\n\nconst SliderRange = React.forwardRef<SliderRangeElement, SliderRangeProps>(\n (props: ScopedProps<SliderRangeProps>, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props;\n const context = useSliderContext(RANGE_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);\n const ref = React.useRef<HTMLSpanElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map((value) =>\n convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n\n return (\n <Primitive.span\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n {...rangeProps}\n ref={composedRefs}\n style={{\n ...props.style,\n [orientation.startEdge]: offsetStart + '%',\n [orientation.endEdge]: offsetEnd + '%',\n }}\n />\n );\n }\n);\n\nSliderRange.displayName = RANGE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderThumb\n * -----------------------------------------------------------------------------------------------*/\n\nconst THUMB_NAME = 'SliderThumb';\n\ntype SliderThumbElement = SliderThumbImplElement;\ninterface SliderThumbProps extends Omit<SliderThumbImplProps, 'index'> {}\n\nconst SliderThumb = React.forwardRef<SliderThumbElement, SliderThumbProps>(\n (props: ScopedProps<SliderThumbProps>, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState<SliderThumbImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const index = React.useMemo(\n () => (thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1),\n [getItems, thumb]\n );\n return <SliderThumbImpl {...props} ref={composedRefs} index={index} />;\n }\n);\n\ntype SliderThumbImplElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderThumbImplProps extends PrimitiveSpanProps {\n index: number;\n}\n\nconst SliderThumbImpl = React.forwardRef<SliderThumbImplElement, SliderThumbImplProps>(\n (props: ScopedProps<SliderThumbImplProps>, forwardedRef) => {\n const { __scopeSlider, index, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const size = useSize(thumb);\n // We cast because index could be `-1` which would return undefined\n const value = context.values[index] as number | undefined;\n const percent =\n value === undefined ? 0 : convertValueToPercentage(value, context.min, context.max);\n const label = getLabel(index, context.values.length);\n const orientationSize = size?.[orientation.size];\n const thumbInBoundsOffset = orientationSize\n ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction)\n : 0;\n\n React.useEffect(() => {\n if (thumb) {\n context.thumbs.add(thumb);\n return () => {\n context.thumbs.delete(thumb);\n };\n }\n }, [thumb, context.thumbs]);\n\n return (\n <span\n style={{\n transform: 'var(--radix-slider-thumb-transform)',\n position: 'absolute',\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`,\n }}\n >\n <Collection.ItemSlot scope={props.__scopeSlider}>\n <Primitive.span\n role=\"slider\"\n aria-label={props['aria-label'] || label}\n aria-valuemin={context.min}\n aria-valuenow={value}\n aria-valuemax={context.max}\n aria-orientation={context.orientation}\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n tabIndex={context.disabled ? undefined : 0}\n {...thumbProps}\n ref={composedRefs}\n /**\n * There will be no value on initial render while we work out the index so we hide thumbs\n * without a value, otherwise SSR will render them in the wrong position before they\n * snap into the correct position during hydration which would be visually jarring for\n * slower connections.\n */\n style={value === undefined ? { display: 'none' } : props.style}\n onFocus={composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })}\n />\n </Collection.ItemSlot>\n </span>\n );\n }\n);\n\nSliderThumb.displayName = THUMB_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst BubbleInput = (props: Radix.ComponentPropsWithoutRef<'input'>) => {\n const { value, ...inputProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const prevValue = usePrevious(value);\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const input = ref.current!;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value') as PropertyDescriptor;\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event('input', { bubbles: true });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [prevValue, value]);\n\n /**\n * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n * wrap it will not be able to access its value via the FormData API.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n */\n return <input style={{ display: 'none' }} {...inputProps} ref={ref} defaultValue={value} />;\n};\n\nfunction getNextSortedValues(prevValues: number[] = [], nextValue: number, atIndex: number) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\n\nfunction convertValueToPercentage(value: number, min: number, max: number) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n const percentage = percentPerStep * (value - min);\n return clamp(percentage, [0, 100]);\n}\n\n/**\n * Returns a label for each thumb when there are two or more thumbs\n */\nfunction getLabel(index: number, totalValues: number) {\n if (totalValues > 2) {\n return `Value ${index + 1} of ${totalValues}`;\n } else if (totalValues === 2) {\n return ['Minimum', 'Maximum'][index];\n } else {\n return undefined;\n }\n}\n\n/**\n * Given a `values` array and a `nextValue`, determine which value in\n * the array is closest to `nextValue` and return its index.\n *\n * @example\n * // returns 1\n * getClosestValueIndex([10, 30], 25);\n */\nfunction getClosestValueIndex(values: number[], nextValue: number) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\n\n/**\n * Offsets the thumb centre point while sliding to ensure it remains\n * within the bounds of the slider when reaching the edges\n */\nfunction getThumbInBoundsOffset(width: number, left: number, direction: number) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\n\n/**\n * Gets an array of steps between each value.\n *\n * @example\n * // returns [1, 9]\n * getStepsBetweenValues([10, 11, 20]);\n */\nfunction getStepsBetweenValues(values: number[]) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\n\n/**\n * Verifies the minimum steps between all values is greater than or equal\n * to the expected minimum steps.\n *\n * @example\n * // returns false\n * hasMinStepsBetweenValues([1,2,3], 2);\n *\n * @example\n * // returns true\n * hasMinStepsBetweenValues([1,2,3], 1);\n */\nfunction hasMinStepsBetweenValues(values: number[], minStepsBetweenValues: number) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\n\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(input: readonly [number, number], output: readonly [number, number]) {\n return (value: number) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\n\nfunction getDecimalCount(value: number) {\n return (String(value).split('.')[1] || '').length;\n}\n\nfunction roundValue(value: number, decimalCount: number) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\n\nconst Root = Slider;\nconst Track = SliderTrack;\nconst Range = SliderRange;\nconst Thumb = SliderThumb;\n\nexport {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n};\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps };\n"],"names":["createSliderScope","Slider","SliderTrack","SliderRange","SliderThumb","Root","Track","Range","Thumb","React","clamp","composeEventHandlers","useComposedRefs","createContextScope","useControllableState","useDirection","usePrevious","useSize","Primitive","createCollection","PAGE_KEYS","ARROW_KEYS","BACK_KEYS","SLIDER_NAME","Collection","useCollection","createCollectionScope","createSliderContext","SliderProvider","useSliderContext","forwardRef","props","forwardedRef","name","min","max","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value","onValueChange","onValueCommit","inverted","sliderProps","slider","setSlider","useState","composedRefs","node","thumbRefs","useRef","Set","valueIndexToChangeRef","isHorizontal","isFormControl","Boolean","closest","SliderOrientation","SliderHorizontal","SliderVertical","values","setValues","prop","defaultProp","onChange","thumbs","current","focus","valuesBeforeSlideStartRef","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","handleSlideEnd","prevValue","nextValue","hasChanged","atIndex","commit","decimalCount","getDecimalCount","snapToStep","roundValue","Math","round","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","indexOf","String","__scopeSlider","undefined","onPointerDown","length","event","direction","stepDirection","isPageKey","includes","key","isSkipKey","shiftKey","multiplier","stepInDirection","map","index","SliderOrientationProvider","useSliderOrientationContext","startEdge","endEdge","size","dir","onSlideStart","onSlideMove","onSlideEnd","onStepKeyDown","rectRef","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","rect","getBoundingClientRect","input","width","output","linearScale","left","style","clientX","slideDirection","isBackKey","sliderRef","ref","isSlidingFromBottom","height","top","clientY","SliderImpl","onHomeKeyDown","onEndKeyDown","context","onKeyDown","preventDefault","concat","target","setPointerCapture","pointerId","has","onPointerMove","hasPointerCapture","onPointerUp","releasePointerCapture","TRACK_NAME","trackProps","RANGE_NAME","rangeProps","valuesCount","percentages","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","getItems","thumb","setThumb","useMemo","findIndex","item","SliderThumbImpl","thumbProps","percent","label","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","useEffect","add","delete","transform","position","display","onFocus","BubbleInput","inputProps","inputProto","window","HTMLInputElement","prototype","descriptor","Object","getOwnPropertyDescriptor","setValue","set","Event","bubbles","call","dispatchEvent","sort","a","b","maxSteps","percentPerStep","percentage","totalValues","distances","abs","closestDistance","halfWidth","halfPercent","offset","getStepsBetweenValues","slice","minStepsBetweenValues","stepsBetweenValues","actualMinStepsBetweenValues","ratio","split","rounder","pow"],"version":3,"file":"index.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["packages/react/slider/src/index.ts","packages/react/slider/src/Slider.tsx"],"sourcesContent":["export {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n} from './Slider';\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps } from './Slider';\n","import * as React from 'react';\nimport { clamp } from '@radix-ui/number';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { createCollection } from '@radix-ui/react-collection';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\n\nconst PAGE_KEYS = ['PageUp', 'PageDown'];\nconst ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\ntype SlideDirection = 'from-left' | 'from-right' | 'from-bottom' | 'from-top';\nconst BACK_KEYS: Record<SlideDirection, string[]> = {\n 'from-left': ['Home', 'PageDown', 'ArrowDown', 'ArrowLeft'],\n 'from-right': ['Home', 'PageDown', 'ArrowDown', 'ArrowRight'],\n 'from-bottom': ['Home', 'PageDown', 'ArrowDown', 'ArrowLeft'],\n 'from-top': ['Home', 'PageDown', 'ArrowUp', 'ArrowLeft'],\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Slider\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLIDER_NAME = 'Slider';\n\nconst [Collection, useCollection, createCollectionScope] =\n createCollection<SliderThumbElement>(SLIDER_NAME);\n\ntype ScopedProps<P> = P & { __scopeSlider?: Scope };\nconst [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope,\n]);\n\ntype SliderContextValue = {\n name?: string;\n disabled?: boolean;\n min: number;\n max: number;\n values: number[];\n valueIndexToChangeRef: React.MutableRefObject<number>;\n thumbs: Set<SliderThumbElement>;\n orientation: SliderProps['orientation'];\n};\n\nconst [SliderProvider, useSliderContext] = createSliderContext<SliderContextValue>(SLIDER_NAME);\n\ntype SliderElement = SliderHorizontalElement | SliderVerticalElement;\ninterface SliderProps\n extends Omit<\n SliderHorizontalProps | SliderVerticalProps,\n keyof SliderOrientationPrivateProps | 'defaultValue'\n > {\n name?: string;\n disabled?: boolean;\n orientation?: React.AriaAttributes['aria-orientation'];\n dir?: Direction;\n min?: number;\n max?: number;\n step?: number;\n minStepsBetweenThumbs?: number;\n value?: number[];\n defaultValue?: number[];\n onValueChange?(value: number[]): void;\n onValueCommit?(value: number[]): void;\n inverted?: boolean;\n}\n\nconst Slider = React.forwardRef<SliderElement, SliderProps>(\n (props: ScopedProps<SliderProps>, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = 'horizontal',\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {},\n onValueCommit = () => {},\n inverted = false,\n ...sliderProps\n } = props;\n const thumbRefs = React.useRef<SliderContextValue['thumbs']>(new Set());\n const valueIndexToChangeRef = React.useRef<number>(0);\n const isHorizontal = orientation === 'horizontal';\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value);\n },\n });\n const valuesBeforeSlideStartRef = React.useRef(values);\n\n function handleSlideStart(value: number) {\n const closestIndex = getClosestValueIndex(values, value);\n updateValues(value, closestIndex);\n }\n\n function handleSlideMove(value: number) {\n updateValues(value, valueIndexToChangeRef.current);\n }\n\n function handleSlideEnd() {\n const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];\n const nextValue = values[valueIndexToChangeRef.current];\n const hasChanged = nextValue !== prevValue;\n if (hasChanged) onValueCommit(values);\n }\n\n function updateValues(value: number, atIndex: number, { commit } = { commit: false }) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n const hasChanged = String(nextValues) !== String(prevValues);\n if (hasChanged && commit) onValueCommit(nextValues);\n return hasChanged ? nextValues : prevValues;\n } else {\n return prevValues;\n }\n });\n }\n\n return (\n <SliderProvider\n scope={props.__scopeSlider}\n name={name}\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={forwardedRef}\n onPointerDown={composeEventHandlers(sliderProps.onPointerDown, () => {\n if (!disabled) valuesBeforeSlideStartRef.current = values;\n })}\n min={min}\n max={max}\n inverted={inverted}\n onSlideStart={disabled ? undefined : handleSlideStart}\n onSlideMove={disabled ? undefined : handleSlideMove}\n onSlideEnd={disabled ? undefined : handleSlideEnd}\n onHomeKeyDown={() => !disabled && updateValues(min, 0, { commit: true })}\n onEndKeyDown={() =>\n !disabled && updateValues(max, values.length - 1, { commit: true })\n }\n onStepKeyDown={({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || (event.shiftKey && ARROW_KEYS.includes(event.key));\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value + stepInDirection, atIndex, { commit: true });\n }\n }}\n />\n </Collection.Slot>\n </Collection.Provider>\n </SliderProvider>\n );\n }\n);\n\nSlider.displayName = SLIDER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderHorizontal\n * -----------------------------------------------------------------------------------------------*/\n\ntype Side = 'top' | 'right' | 'bottom' | 'left';\n\nconst [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext<{\n startEdge: Side;\n endEdge: Side;\n size: keyof NonNullable<ReturnType<typeof useSize>>;\n direction: number;\n}>(SLIDER_NAME, {\n startEdge: 'left',\n endEdge: 'right',\n size: 'width',\n direction: 1,\n});\n\ntype SliderOrientationPrivateProps = {\n min: number;\n max: number;\n inverted: boolean;\n onSlideStart?(value: number): void;\n onSlideMove?(value: number): void;\n onSlideEnd?(): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(step: { event: React.KeyboardEvent; direction: number }): void;\n};\ninterface SliderOrientationProps\n extends Omit<SliderImplProps, keyof SliderImplPrivateProps>,\n SliderOrientationPrivateProps {}\n\ntype SliderHorizontalElement = SliderImplElement;\ninterface SliderHorizontalProps extends SliderOrientationProps {\n dir?: Direction;\n}\n\nconst SliderHorizontal = React.forwardRef<SliderHorizontalElement, SliderHorizontalProps>(\n (props: ScopedProps<SliderHorizontalProps>, forwardedRef) => {\n const {\n min,\n max,\n dir,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState<SliderImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef<ClientRect>();\n const direction = useDirection(dir);\n const isDirectionLTR = direction === 'ltr';\n const isSlidingFromLeft = (isDirectionLTR && !inverted) || (!isDirectionLTR && inverted);\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || slider!.getBoundingClientRect();\n const input: [number, number] = [0, rect.width];\n const output: [number, number] = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromLeft ? 'left' : 'right'}\n endEdge={isSlidingFromLeft ? 'right' : 'left'}\n direction={isSlidingFromLeft ? 1 : -1}\n size=\"width\"\n >\n <SliderImpl\n dir={direction}\n data-orientation=\"horizontal\"\n {...sliderProps}\n ref={composedRefs}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: 'translateX(-50%)',\n }}\n onSlideStart={(event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart?.(value);\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove?.(value);\n }}\n onSlideEnd={() => {\n rectRef.current = undefined;\n onSlideEnd?.();\n }}\n onStepKeyDown={(event) => {\n const slideDirection = isSlidingFromLeft ? 'from-left' : 'from-right';\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }}\n />\n </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderVertical\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderVerticalElement = SliderImplElement;\ninterface SliderVerticalProps extends SliderOrientationProps {}\n\nconst SliderVertical = React.forwardRef<SliderVerticalElement, SliderVerticalProps>(\n (props: ScopedProps<SliderVerticalProps>, forwardedRef) => {\n const {\n min,\n max,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const sliderRef = React.useRef<SliderImplElement>(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef<ClientRect>();\n const isSlidingFromBottom = !inverted;\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || sliderRef.current!.getBoundingClientRect();\n const input: [number, number] = [0, rect.height];\n const output: [number, number] = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromBottom ? 'bottom' : 'top'}\n endEdge={isSlidingFromBottom ? 'top' : 'bottom'}\n size=\"height\"\n direction={isSlidingFromBottom ? 1 : -1}\n >\n <SliderImpl\n data-orientation=\"vertical\"\n {...sliderProps}\n ref={ref}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: 'translateY(50%)',\n }}\n onSlideStart={(event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart?.(value);\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove?.(value);\n }}\n onSlideEnd={() => {\n rectRef.current = undefined;\n onSlideEnd?.();\n }}\n onStepKeyDown={(event) => {\n const slideDirection = isSlidingFromBottom ? 'from-bottom' : 'from-top';\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }}\n />\n </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderImpl\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderImplElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;\ntype SliderImplPrivateProps = {\n onSlideStart(event: React.PointerEvent): void;\n onSlideMove(event: React.PointerEvent): void;\n onSlideEnd(event: React.PointerEvent): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(event: React.KeyboardEvent): void;\n};\ninterface SliderImplProps extends PrimitiveDivProps, SliderImplPrivateProps {}\n\nconst SliderImpl = React.forwardRef<SliderImplElement, SliderImplProps>(\n (props: ScopedProps<SliderImplProps>, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const context = useSliderContext(SLIDER_NAME, __scopeSlider);\n\n return (\n <Primitive.span\n {...sliderProps}\n ref={forwardedRef}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === 'Home') {\n onHomeKeyDown(event);\n // Prevent scrolling to page start\n event.preventDefault();\n } else if (event.key === 'End') {\n onEndKeyDown(event);\n // Prevent scrolling to page end\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n // Prevent scrolling for directional key presses\n event.preventDefault();\n }\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target as HTMLElement;\n target.setPointerCapture(event.pointerId);\n // Prevent browser focus behaviour because we focus a thumb manually when values change.\n event.preventDefault();\n // Touch devices have a delay before focusing so won't focus if touch immediately moves\n // away from target (sliding). We want thumb to focus regardless.\n if (context.thumbs.has(target)) {\n target.focus();\n } else {\n onSlideStart(event);\n }\n })}\n onPointerMove={composeEventHandlers(props.onPointerMove, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n })}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })}\n />\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderTrack\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRACK_NAME = 'SliderTrack';\n\ntype SliderTrackElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface SliderTrackProps extends PrimitiveSpanProps {}\n\nconst SliderTrack = React.forwardRef<SliderTrackElement, SliderTrackProps>(\n (props: ScopedProps<SliderTrackProps>, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return (\n <Primitive.span\n data-disabled={context.disabled ? '' : undefined}\n data-orientation={context.orientation}\n {...trackProps}\n ref={forwardedRef}\n />\n );\n }\n);\n\nSliderTrack.displayName = TRACK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderRange\n * -----------------------------------------------------------------------------------------------*/\n\nconst RANGE_NAME = 'SliderRange';\n\ntype SliderRangeElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderRangeProps extends PrimitiveSpanProps {}\n\nconst SliderRange = React.forwardRef<SliderRangeElement, SliderRangeProps>(\n (props: ScopedProps<SliderRangeProps>, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props;\n const context = useSliderContext(RANGE_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);\n const ref = React.useRef<HTMLSpanElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map((value) =>\n convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n\n return (\n <Primitive.span\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n {...rangeProps}\n ref={composedRefs}\n style={{\n ...props.style,\n [orientation.startEdge]: offsetStart + '%',\n [orientation.endEdge]: offsetEnd + '%',\n }}\n />\n );\n }\n);\n\nSliderRange.displayName = RANGE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderThumb\n * -----------------------------------------------------------------------------------------------*/\n\nconst THUMB_NAME = 'SliderThumb';\n\ntype SliderThumbElement = SliderThumbImplElement;\ninterface SliderThumbProps extends Omit<SliderThumbImplProps, 'index'> {}\n\nconst SliderThumb = React.forwardRef<SliderThumbElement, SliderThumbProps>(\n (props: ScopedProps<SliderThumbProps>, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState<SliderThumbImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const index = React.useMemo(\n () => (thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1),\n [getItems, thumb]\n );\n return <SliderThumbImpl {...props} ref={composedRefs} index={index} />;\n }\n);\n\ntype SliderThumbImplElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderThumbImplProps extends PrimitiveSpanProps {\n index: number;\n name?: string;\n}\n\nconst SliderThumbImpl = React.forwardRef<SliderThumbImplElement, SliderThumbImplProps>(\n (props: ScopedProps<SliderThumbImplProps>, forwardedRef) => {\n const { __scopeSlider, index, name, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = thumb ? Boolean(thumb.closest('form')) : true;\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\n {isFormControl && (\n <BubbleInput\n key={index}\n name={\n name ??\n (context.name ? context.name + (context.values.length > 1 ? '[]' : '') : undefined)\n }\n value={value}\n />\n )}\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 const percentage = percentPerStep * (value - min);\n return clamp(percentage, [0, 100]);\n}\n\n/**\n * Returns a label for each thumb when there are two or more thumbs\n */\nfunction getLabel(index: number, totalValues: number) {\n if (totalValues > 2) {\n return `Value ${index + 1} of ${totalValues}`;\n } else if (totalValues === 2) {\n return ['Minimum', 'Maximum'][index];\n } else {\n return undefined;\n }\n}\n\n/**\n * Given a `values` array and a `nextValue`, determine which value in\n * the array is closest to `nextValue` and return its index.\n *\n * @example\n * // returns 1\n * getClosestValueIndex([10, 30], 25);\n */\nfunction getClosestValueIndex(values: number[], nextValue: number) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\n\n/**\n * Offsets the thumb centre point while sliding to ensure it remains\n * within the bounds of the slider when reaching the edges\n */\nfunction getThumbInBoundsOffset(width: number, left: number, direction: number) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\n\n/**\n * Gets an array of steps between each value.\n *\n * @example\n * // returns [1, 9]\n * getStepsBetweenValues([10, 11, 20]);\n */\nfunction getStepsBetweenValues(values: number[]) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\n\n/**\n * Verifies the minimum steps between all values is greater than or equal\n * to the expected minimum steps.\n *\n * @example\n * // returns false\n * hasMinStepsBetweenValues([1,2,3], 2);\n *\n * @example\n * // returns true\n * hasMinStepsBetweenValues([1,2,3], 1);\n */\nfunction hasMinStepsBetweenValues(values: number[], minStepsBetweenValues: number) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\n\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(input: readonly [number, number], output: readonly [number, number]) {\n return (value: number) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\n\nfunction getDecimalCount(value: number) {\n return (String(value).split('.')[1] || '').length;\n}\n\nfunction roundValue(value: number, decimalCount: number) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\n\nconst Root = Slider;\nconst Track = SliderTrack;\nconst Range = SliderRange;\nconst Thumb = SliderThumb;\n\nexport {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n};\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps };\n"],"names":["createSliderScope","Slider","SliderTrack","SliderRange","SliderThumb","Root","Track","Range","Thumb","React","clamp","composeEventHandlers","useComposedRefs","createContextScope","useControllableState","useDirection","usePrevious","useSize","Primitive","createCollection","PAGE_KEYS","ARROW_KEYS","BACK_KEYS","SLIDER_NAME","Collection","useCollection","createCollectionScope","createSliderContext","SliderProvider","useSliderContext","forwardRef","props","forwardedRef","name","min","max","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value","onValueChange","onValueCommit","inverted","sliderProps","thumbRefs","useRef","Set","valueIndexToChangeRef","isHorizontal","SliderOrientation","SliderHorizontal","SliderVertical","values","setValues","prop","defaultProp","onChange","thumbs","current","focus","valuesBeforeSlideStartRef","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","handleSlideEnd","prevValue","nextValue","hasChanged","atIndex","commit","decimalCount","getDecimalCount","snapToStep","roundValue","Math","round","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","indexOf","String","__scopeSlider","undefined","onPointerDown","length","event","direction","stepDirection","isPageKey","includes","key","isSkipKey","shiftKey","multiplier","stepInDirection","SliderOrientationProvider","useSliderOrientationContext","startEdge","endEdge","size","dir","onSlideStart","onSlideMove","onSlideEnd","onStepKeyDown","slider","setSlider","useState","composedRefs","node","rectRef","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","rect","getBoundingClientRect","input","width","output","linearScale","left","style","clientX","slideDirection","isBackKey","sliderRef","ref","isSlidingFromBottom","height","top","clientY","SliderImpl","onHomeKeyDown","onEndKeyDown","context","onKeyDown","preventDefault","concat","target","setPointerCapture","pointerId","has","onPointerMove","hasPointerCapture","onPointerUp","releasePointerCapture","TRACK_NAME","trackProps","RANGE_NAME","rangeProps","valuesCount","percentages","map","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","getItems","thumb","setThumb","index","useMemo","findIndex","item","SliderThumbImpl","thumbProps","isFormControl","Boolean","closest","percent","label","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","useEffect","add","delete","transform","position","display","onFocus","BubbleInput","inputProps","inputProto","window","HTMLInputElement","prototype","descriptor","Object","getOwnPropertyDescriptor","setValue","set","Event","bubbles","call","dispatchEvent","sort","a","b","maxSteps","percentPerStep","percentage","totalValues","distances","abs","closestDistance","halfWidth","halfPercent","offset","getStepsBetweenValues","slice","minStepsBetweenValues","stepsBetweenValues","actualMinStepsBetweenValues","ratio","split","rounder","pow"],"version":3,"file":"index.js.map"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import $g1Vy2$babelruntimehelpersesmextends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import {forwardRef as $g1Vy2$forwardRef,
|
|
2
|
+
import {forwardRef as $g1Vy2$forwardRef, useRef as $g1Vy2$useRef, createElement as $g1Vy2$createElement, useState as $g1Vy2$useState, useMemo as $g1Vy2$useMemo, useEffect as $g1Vy2$useEffect} from "react";
|
|
3
3
|
import {clamp as $g1Vy2$clamp} from "@radix-ui/number";
|
|
4
4
|
import {composeEventHandlers as $g1Vy2$composeEventHandlers} from "@radix-ui/primitive";
|
|
5
5
|
import {useComposedRefs as $g1Vy2$useComposedRefs} from "@radix-ui/react-compose-refs";
|
|
@@ -71,13 +71,9 @@ const $faa2e61a3361514f$export$472062a354075cee = /*#__PURE__*/ $g1Vy2$forwardRe
|
|
|
71
71
|
const { name: name , min: min = 0 , max: max = 100 , step: step = 1 , orientation: orientation = 'horizontal' , disabled: disabled = false , minStepsBetweenThumbs: minStepsBetweenThumbs = 0 , defaultValue: defaultValue = [
|
|
72
72
|
min
|
|
73
73
|
] , value: value1 , onValueChange: onValueChange = ()=>{} , onValueCommit: onValueCommit = ()=>{} , inverted: inverted = false , ...sliderProps } = props;
|
|
74
|
-
const [slider, setSlider] = $g1Vy2$useState(null);
|
|
75
|
-
const composedRefs = $g1Vy2$useComposedRefs(forwardedRef, (node)=>setSlider(node)
|
|
76
|
-
);
|
|
77
74
|
const thumbRefs = $g1Vy2$useRef(new Set());
|
|
78
75
|
const valueIndexToChangeRef = $g1Vy2$useRef(0);
|
|
79
|
-
const isHorizontal = orientation === 'horizontal';
|
|
80
|
-
const isFormControl = slider ? Boolean(slider.closest('form')) : true;
|
|
76
|
+
const isHorizontal = orientation === 'horizontal';
|
|
81
77
|
const SliderOrientation = isHorizontal ? $faa2e61a3361514f$var$SliderHorizontal : $faa2e61a3361514f$var$SliderVertical;
|
|
82
78
|
const [values = [], setValues] = $g1Vy2$useControllableState({
|
|
83
79
|
prop: value1,
|
|
@@ -126,6 +122,7 @@ const $faa2e61a3361514f$export$472062a354075cee = /*#__PURE__*/ $g1Vy2$forwardRe
|
|
|
126
122
|
}
|
|
127
123
|
return /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$SliderProvider, {
|
|
128
124
|
scope: props.__scopeSlider,
|
|
125
|
+
name: name,
|
|
129
126
|
disabled: disabled,
|
|
130
127
|
min: min,
|
|
131
128
|
max: max,
|
|
@@ -141,7 +138,7 @@ const $faa2e61a3361514f$export$472062a354075cee = /*#__PURE__*/ $g1Vy2$forwardRe
|
|
|
141
138
|
"aria-disabled": disabled,
|
|
142
139
|
"data-disabled": disabled ? '' : undefined
|
|
143
140
|
}, sliderProps, {
|
|
144
|
-
ref:
|
|
141
|
+
ref: forwardedRef,
|
|
145
142
|
onPointerDown: $g1Vy2$composeEventHandlers(sliderProps.onPointerDown, ()=>{
|
|
146
143
|
if (!disabled) valuesBeforeSlideStartRef.current = values;
|
|
147
144
|
}),
|
|
@@ -172,12 +169,7 @@ const $faa2e61a3361514f$export$472062a354075cee = /*#__PURE__*/ $g1Vy2$forwardRe
|
|
|
172
169
|
});
|
|
173
170
|
}
|
|
174
171
|
}
|
|
175
|
-
}))))
|
|
176
|
-
key: index,
|
|
177
|
-
name: name ? name + (values.length > 1 ? '[]' : '') : undefined,
|
|
178
|
-
value: value
|
|
179
|
-
})
|
|
180
|
-
));
|
|
172
|
+
})))));
|
|
181
173
|
});
|
|
182
174
|
/*#__PURE__*/ Object.assign($faa2e61a3361514f$export$472062a354075cee, {
|
|
183
175
|
displayName: $faa2e61a3361514f$var$SLIDER_NAME
|
|
@@ -419,12 +411,13 @@ const $faa2e61a3361514f$export$2c1b491743890dec = /*#__PURE__*/ $g1Vy2$forwardRe
|
|
|
419
411
|
}));
|
|
420
412
|
});
|
|
421
413
|
const $faa2e61a3361514f$var$SliderThumbImpl = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{
|
|
422
|
-
const { __scopeSlider: __scopeSlider , index: index , ...thumbProps } = props;
|
|
414
|
+
const { __scopeSlider: __scopeSlider , index: index , name: name , ...thumbProps } = props;
|
|
423
415
|
const context = $faa2e61a3361514f$var$useSliderContext($faa2e61a3361514f$var$THUMB_NAME, __scopeSlider);
|
|
424
416
|
const orientation = $faa2e61a3361514f$var$useSliderOrientationContext($faa2e61a3361514f$var$THUMB_NAME, __scopeSlider);
|
|
425
417
|
const [thumb, setThumb] = $g1Vy2$useState(null);
|
|
426
418
|
const composedRefs = $g1Vy2$useComposedRefs(forwardedRef, (node)=>setThumb(node)
|
|
427
|
-
);
|
|
419
|
+
); // We set this to true by default so that events bubble to forms without JS (SSR)
|
|
420
|
+
const isFormControl = thumb ? Boolean(thumb.closest('form')) : true;
|
|
428
421
|
const size = $g1Vy2$useSize(thumb); // We cast because index could be `-1` which would return undefined
|
|
429
422
|
const value = context.values[index];
|
|
430
423
|
const percent = value === undefined ? 0 : $faa2e61a3361514f$var$convertValueToPercentage(value, context.min, context.max);
|
|
@@ -468,7 +461,11 @@ const $faa2e61a3361514f$var$SliderThumbImpl = /*#__PURE__*/ $g1Vy2$forwardRef((p
|
|
|
468
461
|
onFocus: $g1Vy2$composeEventHandlers(props.onFocus, ()=>{
|
|
469
462
|
context.valueIndexToChangeRef.current = index;
|
|
470
463
|
})
|
|
471
|
-
})))
|
|
464
|
+
}))), isFormControl && /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$BubbleInput, {
|
|
465
|
+
key: index,
|
|
466
|
+
name: name !== null && name !== void 0 ? name : context.name ? context.name + (context.values.length > 1 ? '[]' : '') : undefined,
|
|
467
|
+
value: value
|
|
468
|
+
}));
|
|
472
469
|
});
|
|
473
470
|
/*#__PURE__*/ Object.assign($faa2e61a3361514f$export$2c1b491743890dec, {
|
|
474
471
|
displayName: $faa2e61a3361514f$var$THUMB_NAME
|
|
@@ -618,4 +615,4 @@ const $faa2e61a3361514f$export$6521433ed15a34db = $faa2e61a3361514f$export$2c1b4
|
|
|
618
615
|
|
|
619
616
|
|
|
620
617
|
export {$faa2e61a3361514f$export$ef72632d7b901f97 as createSliderScope, $faa2e61a3361514f$export$472062a354075cee as Slider, $faa2e61a3361514f$export$105594979f116971 as SliderTrack, $faa2e61a3361514f$export$a5cf38a7a000fe77 as SliderRange, $faa2e61a3361514f$export$2c1b491743890dec as SliderThumb, $faa2e61a3361514f$export$be92b6f5f03c0fe9 as Root, $faa2e61a3361514f$export$13921ac0cc260818 as Track, $faa2e61a3361514f$export$9a58ef0d7ad3278c as Range, $faa2e61a3361514f$export$6521433ed15a34db as Thumb};
|
|
621
|
-
//# sourceMappingURL=index.
|
|
618
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":";;;;;;;;;;;;;A;;;;;;;;;;;;ACiBA,MAAMoB,+BAAS,GAAG;IAAC,QAAD;IAAW,UAAX;CAAlB,AAAA;AACA,MAAMC,gCAAU,GAAG;IAAC,SAAD;IAAY,WAAZ;IAAyB,WAAzB;IAAsC,YAAtC;CAAnB,AAAA;AAGA,MAAMC,+BAA2C,GAAG;IAClD,WAAA,EAAa;QAAC,MAAD;QAAS,UAAT;QAAqB,WAArB;QAAkC,WAAlC;KADqC;IAElD,YAAA,EAAc;QAAC,MAAD;QAAS,UAAT;QAAqB,WAArB;QAAkC,YAAlC;KAFoC;IAGlD,aAAA,EAAe;QAAC,MAAD;QAAS,UAAT;QAAqB,WAArB;QAAkC,WAAlC;KAHmC;IAIlD,UAAA,EAAY;QAAC,MAAD;QAAS,UAAT;QAAqB,SAArB;QAAgC,WAAhC;KAAZ;CAJF,AAAoD;AAOpD;;oGAEA,CAEA,MAAMC,iCAAW,GAAG,QAApB,AAAA;AAEA,MAAM,CAACC,gCAAD,EAAaC,mCAAb,EAA4BC,2CAA5B,CAAA,GACJP,uBAAgB,CAAqBI,iCAArB,CADlB,AAAA;AAIA,MAAM,CAACI,yCAAD,EAAsB3B,yCAAtB,CAAA,GAA2Ca,yBAAkB,CAACU,iCAAD,EAAc;IAC/EG,2CAD+E;CAAd,CAAnE,AAAA;AAeA,MAAM,CAACE,oCAAD,EAAiBC,sCAAjB,CAAA,GAAqCF,yCAAmB,CAAqBJ,iCAArB,CAA9D,AAAA;AAuBA,MAAMtB,yCAAM,GAAA,aAAGQ,CAAAA,iBAAA,CACb,CAACsB,KAAD,EAAkCC,YAAlC,GAAmD;IACjD,MAAM,E,MACJC,IADI,CAAA,OAEJC,GAAG,GAAG,CAFF,QAGJC,GAAG,GAAG,GAHF,SAIJC,IAAI,GAAG,CAJH,gBAKJC,WAAW,GAAG,YALV,aAMJC,QAAQ,GAAG,KANP,0BAOJC,qBAAqB,GAAG,CAPpB,iBAQJC,YAAY,GAAG;QAACN,GAAD;KARX,G,OASJO,MATI,CAAA,iBAUJC,aAAa,GAAG,IAAM,EAVlB,kBAWJC,aAAa,GAAG,IAAM,EAXlB,aAYJC,QAAQ,GAAG,KAZP,GAaJ,GAAGC,WAAH,EAbI,GAcFd,KAdJ,AAAM;IAeN,MAAMe,SAAS,GAAGrC,aAAA,CAA2C,IAAIuC,GAAJ,EAA3C,CAAlB,AAAA;IACA,MAAMC,qBAAqB,GAAGxC,aAAA,CAAqB,CAArB,CAA9B,AAAA;IACA,MAAMyC,YAAY,GAAGb,WAAW,KAAK,YAArC,AAAA;IACA,MAAMc,iBAAiB,GAAGD,YAAY,GAAGE,sCAAH,GAAsBC,oCAA5D,AAAA;IAEA,MAAM,CAACC,MAAM,GAAG,EAAV,EAAcC,SAAd,CAAA,GAA2BzC,2BAAoB,CAAC;QACpD0C,IAAI,EAAEf,MAD8C;QAEpDgB,WAAW,EAAEjB,YAFuC;QAGpDkB,QAAQ,EAAGjB,CAAAA,KAAD,GAAW;YAAA,IAAA,qBAAA,AAAA;YACnB,MAAMkB,MAAM,GAAG;mBAAIb,SAAS,CAACc,OAAd;aAAf,AAAA;YACA,CAAA,qBAAA,GAAAD,MAAM,CAACV,qBAAqB,CAACW,OAAvB,CAAN,CAAA,KAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,IAAA,qBAAA,CAAuCC,KAAvC,EAAA,CAAA;YACAnB,aAAa,CAACD,KAAD,CAAb,CAAAC;SACD;KAPkD,CAArD,AAAsD;IAStD,MAAMoB,yBAAyB,GAAGrD,aAAA,CAAa6C,MAAb,CAAlC,AAAA;IAEA,SAASS,gBAAT,CAA0BtB,KAA1B,EAAyC;QACvC,MAAMuB,YAAY,GAAGC,0CAAoB,CAACX,MAAD,EAASb,KAAT,CAAzC,AAAA;QACAyB,YAAY,CAACzB,KAAD,EAAQuB,YAAR,CAAZ,CAAAE;KACD;IAED,SAASC,eAAT,CAAyB1B,KAAzB,EAAwC;QACtCyB,YAAY,CAACzB,KAAD,EAAQQ,qBAAqB,CAACW,OAA9B,CAAZ,CAAAM;KACD;IAED,SAASE,cAAT,GAA0B;QACxB,MAAMC,SAAS,GAAGP,yBAAyB,CAACF,OAA1B,CAAkCX,qBAAqB,CAACW,OAAxD,CAAlB,AAAA;QACA,MAAMU,SAAS,GAAGhB,MAAM,CAACL,qBAAqB,CAACW,OAAvB,CAAxB,AAAA;QACA,MAAMW,UAAU,GAAGD,SAAS,KAAKD,SAAjC,AAAA;QACA,IAAIE,UAAJ,EAAgB5B,aAAa,CAACW,MAAD,CAAb,CAAhB;KACD;IAED,SAASY,YAAT,CAAsBzB,KAAtB,EAAqC+B,OAArC,EAAsD,E,QAAEC,MAAAA,CAAAA,EAAF,GAAa;QAAEA,MAAM,EAAE,KAARA;KAArE,EAAsF;QACpF,MAAMC,YAAY,GAAGC,qCAAe,CAACvC,IAAD,CAApC,AAAA;QACA,MAAMwC,UAAU,GAAGC,gCAAU,CAACC,IAAI,CAACC,KAAL,CAAW,AAACtC,CAAAA,KAAK,GAAGP,GAAT,CAAA,GAAgBE,IAA3B,CAAA,GAAmCA,IAAnC,GAA0CF,GAA3C,EAAgDwC,YAAhD,CAA7B,AAAA;QACA,MAAMJ,SAAS,GAAG5D,YAAK,CAACkE,UAAD,EAAa;YAAC1C,GAAD;YAAMC,GAAN;SAAb,CAAvB,AAAA;QAEAoB,SAAS,CAAC,CAACyB,UAAU,GAAG,EAAd,GAAqB;YAC7B,MAAMC,UAAU,GAAGC,yCAAmB,CAACF,UAAD,EAAaV,SAAb,EAAwBE,OAAxB,CAAtC,AAAA;YACA,IAAIW,8CAAwB,CAACF,UAAD,EAAa1C,qBAAqB,GAAGH,IAArC,CAA5B,EAAwE;gBACtEa,qBAAqB,CAACW,OAAtB,GAAgCqB,UAAU,CAACG,OAAX,CAAmBd,SAAnB,CAAhC,CAAArB;gBACA,MAAMsB,UAAU,GAAGc,MAAM,CAACJ,UAAD,CAAN,KAAuBI,MAAM,CAACL,UAAD,CAAhD,AAAA;gBACA,IAAIT,UAAU,IAAIE,MAAlB,EAA0B9B,aAAa,CAACsC,UAAD,CAAb,CAA1B;gBACA,OAAOV,UAAU,GAAGU,UAAH,GAAgBD,UAAjC,CAAA;aAJF,MAME,OAAOA,UAAP,CAAA;SARK,CAAT,CAUC;KACF;IAED,OAAA,aACE,CAAA,oBAAA,CAAC,oCAAD,EADF;QAEI,KAAK,EAAEjD,KAAK,CAACuD,aADf;QAEE,IAAI,EAAErD,IAFR;QAGE,QAAQ,EAAEK,QAHZ;QAIE,GAAG,EAAEJ,GAJP;QAKE,GAAG,EAAEC,GALP;QAME,qBAAqB,EAAEc,qBANzB;QAOE,MAAM,EAAEH,SAAS,CAACc,OAPpB;QAQE,MAAM,EAAEN,MARV;QASE,WAAW,EAAEjB,WAAb;KATF,EAAA,aAWE,CAAA,oBAAA,CAAC,gCAAD,CAAY,QAAZ,EAXF;QAWuB,KAAK,EAAEN,KAAK,CAACuD,aAAb;KAArB,EAAA,aACE,CAAA,oBAAA,CAAC,gCAAD,CAAY,IAAZ,EADF;QACmB,KAAK,EAAEvD,KAAK,CAACuD,aAAb;KAAjB,EAAA,aACE,CAAA,oBAAA,CAAC,iBAAD,EADF,oCAAA,CAAA;QAEI,eAAA,EAAehD,QADjB;QAEE,eAAA,EAAeA,QAAQ,GAAG,EAAH,GAAQiD,SAA/B;KAFF,EAGM1C,WAHN,EAAA;QAIE,GAAG,EAAEb,YAJP;QAKE,aAAa,EAAErB,2BAAoB,CAACkC,WAAW,CAAC2C,aAAb,EAA4B,IAAM;YACnE,IAAI,CAAClD,QAAL,EAAewB,yBAAyB,CAACF,OAA1B,GAAoCN,MAApC,CAAf;SADiC,CALrC;QAQE,GAAG,EAAEpB,GARP;QASE,GAAG,EAAEC,GATP;QAUE,QAAQ,EAAES,QAVZ;QAWE,YAAY,EAAEN,QAAQ,GAAGiD,SAAH,GAAexB,gBAXvC;QAYE,WAAW,EAAEzB,QAAQ,GAAGiD,SAAH,GAAepB,eAZtC;QAaE,UAAU,EAAE7B,QAAQ,GAAGiD,SAAH,GAAenB,cAbrC;QAcE,aAAa,EAAE,IAAM,CAAC9B,QAAD,IAAa4B,YAAY,CAAChC,GAAD,EAAM,CAAN,EAAS;gBAAEuC,MAAM,EAAE,IAARA;aAAX,CAdhD;QAAA;QAeE,YAAY,EAAE,IACZ,CAACnC,QAAD,IAAa4B,YAAY,CAAC/B,GAAD,EAAMmB,MAAM,CAACmC,MAAP,GAAgB,CAAtB,EAAyB;gBAAEhB,MAAM,EAAE,IAARA;aAA3B,CAhB7B;QAAA;QAkBE,aAAa,EAAE,CAAC,E,OAAEiB,KAAF,CAAA,EAASC,SAAS,EAAEC,aAAXD,CAAAA,EAAV,GAAyC;YACtD,IAAI,CAACrD,QAAL,EAAe;gBACb,MAAMuD,SAAS,GAAGzE,+BAAS,CAAC0E,QAAV,CAAmBJ,KAAK,CAACK,GAAzB,CAAlB,AAAA;gBACA,MAAMC,SAAS,GAAGH,SAAS,IAAKH,KAAK,CAACO,QAAN,IAAkB5E,gCAAU,CAACyE,QAAX,CAAoBJ,KAAK,CAACK,GAA1B,CAAlD,AAAA;gBACA,MAAMG,UAAU,GAAGF,SAAS,GAAG,EAAH,GAAQ,CAApC,AAAA;gBACA,MAAMxB,OAAO,GAAGvB,qBAAqB,CAACW,OAAtC,AAAA;gBACA,MAAMnB,KAAK,GAAGa,MAAM,CAACkB,OAAD,CAApB,AAAA;gBACA,MAAM2B,eAAe,GAAG/D,IAAI,GAAG8D,UAAP,GAAoBN,aAA5C,AAAA;gBACA1B,YAAY,CAACzB,KAAK,GAAG0D,eAAT,EAA0B3B,OAA1B,EAAmC;oBAAEC,MAAM,EAAE,IAARA;iBAArC,CAAZ,CAA+C;aAChD;SACF;KA5BH,CAAA,CADF,CADF,CAXF,CADF,CAcQ;CAjFG,CAAf,AAmHG;AAGH,aAAA,CAAA,MAAA,CAAA,MAAA,CAAA,yCAAA,EAAA;IAAA,WAAA,EAAA,iCAAA;CAAA,CAAA,CAAA;AAEA;;oGAEA,CAIA,MAAM,CAAC2B,+CAAD,EAA4BC,iDAA5B,CAAA,GAA2D1E,yCAAmB,CAKjFJ,iCALiF,EAKpE;IACd+E,SAAS,EAAE,MADG;IAEdC,OAAO,EAAE,OAFK;IAGdC,IAAI,EAAE,OAHQ;IAIdb,SAAS,EAAE,CAAXA;CATkF,CAApF,AAKgB;AA2BhB,MAAMvC,sCAAgB,GAAA,aAAG3C,CAAAA,iBAAA,CACvB,CAACsB,KAAD,EAA4CC,YAA5C,GAA6D;IAC3D,MAAM,E,KACJE,GADI,CAAA,E,KAEJC,GAFI,CAAA,E,KAGJsE,GAHI,CAAA,E,UAIJ7D,QAJI,CAAA,E,cAKJ8D,YALI,CAAA,E,aAMJC,WANI,CAAA,E,YAOJC,UAPI,CAAA,E,eAQJC,aARI,CAAA,EASJ,GAAGhE,WAAH,EATI,GAUFd,KAVJ,AAAM;IAWN,MAAM,CAAC+E,MAAD,EAASC,SAAT,CAAA,GAAsBtG,eAAA,CAAyC,IAAzC,CAA5B,AAAA;IACA,MAAMwG,YAAY,GAAGrG,sBAAe,CAACoB,YAAD,EAAgBkF,CAAAA,IAAD,GAAUH,SAAS,CAACG,IAAD,CAAlC;IAAA,CAApC,AAAA;IACA,MAAMC,OAAO,GAAG1G,aAAA,EAAhB,AAAA;IACA,MAAMkF,SAAS,GAAG5E,mBAAY,CAAC0F,GAAD,CAA9B,AAAA;IACA,MAAMW,cAAc,GAAGzB,SAAS,KAAK,KAArC,AAAA;IACA,MAAM0B,iBAAiB,GAAID,cAAc,IAAI,CAACxE,QAApB,IAAkC,CAACwE,cAAD,IAAmBxE,QAA/E,AAAA;IAEA,SAAS0E,mBAAT,CAA6BC,eAA7B,EAAsD;QACpD,MAAMC,IAAI,GAAGL,OAAO,CAACvD,OAAR,IAAmBkD,MAAM,CAAEW,qBAAR,EAAhC,AAAA;QACA,MAAMC,KAAuB,GAAG;AAAC,aAAD;YAAIF,IAAI,CAACG,KAAT;SAAhC,AAAA;QACA,MAAMC,MAAwB,GAAGP,iBAAiB,GAAG;YAACnF,GAAD;YAAMC,GAAN;SAAH,GAAgB;YAACA,GAAD;YAAMD,GAAN;SAAlE,AAAA;QACA,MAAMO,KAAK,GAAGoF,iCAAW,CAACH,KAAD,EAAQE,MAAR,CAAzB,AAAA;QAEAT,OAAO,CAACvD,OAAR,GAAkB4D,IAAlB,CAAAL;QACA,OAAO1E,KAAK,CAAC8E,eAAe,GAAGC,IAAI,CAACM,IAAxB,CAAZ,CAAA;KACD;IAED,OAAA,aACE,CAAA,oBAAA,CAAC,+CAAD,EADF;QAEI,KAAK,EAAE/F,KAAK,CAACuD,aADf;QAEE,SAAS,EAAE+B,iBAAiB,GAAG,MAAH,GAAY,OAF1C;QAGE,OAAO,EAAEA,iBAAiB,GAAG,OAAH,GAAa,MAHzC;QAIE,SAAS,EAAEA,iBAAiB,GAAG,CAAH,GAAO,EAJrC;QAKE,IAAI,EAAC,OAAL;KALF,EAAA,aAOE,CAAA,oBAAA,CAAC,gCAAD,EAPF,oCAAA,CAAA;QAQI,GAAG,EAAE1B,SADP;QAEE,kBAAA,EAAiB,YAAjB;KAFF,EAGM9C,WAHN,EAAA;QAIE,GAAG,EAAEoE,YAJP;QAKE,KAAK,EAAE;YACL,GAAGpE,WAAW,CAACkF,KADV;YAEL,CAAC,gCAAD,CAAA,EAA2C,kBAA3C;SAPJ;QASE,YAAY,EAAGrC,CAAAA,KAAD,GAAW;YACvB,MAAMjD,KAAK,GAAG6E,mBAAmB,CAAC5B,KAAK,CAACsC,OAAP,CAAjC,AAAA;YACAtB,YAAY,KAAA,IAAZ,IAAAA,YAAY,KAAA,KAAA,CAAZ,IAAAA,YAAY,CAAGjE,KAAH,CAAZ,CAAAiE;SAXJ;QAaE,WAAW,EAAGhB,CAAAA,KAAD,GAAW;YACtB,MAAMjD,KAAK,GAAG6E,mBAAmB,CAAC5B,KAAK,CAACsC,OAAP,CAAjC,AAAA;YACArB,WAAW,KAAA,IAAX,IAAAA,WAAW,KAAA,KAAA,CAAX,IAAAA,WAAW,CAAGlE,KAAH,CAAX,CAAAkE;SAfJ;QAiBE,UAAU,EAAE,IAAM;YAChBQ,OAAO,CAACvD,OAAR,GAAkB2B,SAAlB,CAAA4B;YACAP,UAAU,KAAA,IAAV,IAAAA,UAAU,KAAA,KAAA,CAAV,IAAAA,UAAU,EAAVA,CAAAA;SAnBJ;QAqBE,aAAa,EAAGlB,CAAAA,KAAD,GAAW;YACxB,MAAMuC,cAAc,GAAGZ,iBAAiB,GAAG,WAAH,GAAiB,YAAzD,AAAA;YACA,MAAMa,SAAS,GAAG5G,+BAAS,CAAC2G,cAAD,CAAT,CAA0BnC,QAA1B,CAAmCJ,KAAK,CAACK,GAAzC,CAAlB,AAAA;YACAc,aAAa,KAAA,IAAb,IAAAA,aAAa,KAAA,KAAA,CAAb,IAAAA,aAAa,CAAG;gB,OAAEnB,KAAF;gBAASC,SAAS,EAAEuC,SAAS,GAAG,EAAH,GAAQ,CAA5BvC;aAAZ,CAAb,CAAgB;SACjB;KAzBH,CAAA,CAPF,CADF,CAQI;CAtCiB,CAAzB,AAmEG;AAGH;;oGAEA,CAKA,MAAMtC,oCAAc,GAAA,aAAG5C,CAAAA,iBAAA,CACrB,CAACsB,KAAD,EAA0CC,YAA1C,GAA2D;IACzD,MAAM,E,KACJE,GADI,CAAA,E,KAEJC,GAFI,CAAA,E,UAGJS,QAHI,CAAA,E,cAIJ8D,YAJI,CAAA,E,aAKJC,WALI,CAAA,E,YAMJC,UANI,CAAA,E,eAOJC,aAPI,CAAA,EAQJ,GAAGhE,WAAH,EARI,GASFd,KATJ,AAAM;IAUN,MAAMoG,SAAS,GAAG1H,aAAA,CAAgC,IAAhC,CAAlB,AAAA;IACA,MAAM2H,GAAG,GAAGxH,sBAAe,CAACoB,YAAD,EAAemG,SAAf,CAA3B,AAAA;IACA,MAAMhB,OAAO,GAAG1G,aAAA,EAAhB,AAAA;IACA,MAAM4H,mBAAmB,GAAG,CAACzF,QAA7B,AAAA;IAEA,SAAS0E,mBAAT,CAA6BC,eAA7B,EAAsD;QACpD,MAAMC,IAAI,GAAGL,OAAO,CAACvD,OAAR,IAAmBuE,SAAS,CAACvE,OAAV,CAAmB6D,qBAAnB,EAAhC,AAAA;QACA,MAAMC,KAAuB,GAAG;AAAC,aAAD;YAAIF,IAAI,CAACc,MAAT;SAAhC,AAAA;QACA,MAAMV,MAAwB,GAAGS,mBAAmB,GAAG;YAAClG,GAAD;YAAMD,GAAN;SAAH,GAAgB;YAACA,GAAD;YAAMC,GAAN;SAApE,AAAA;QACA,MAAMM,KAAK,GAAGoF,iCAAW,CAACH,KAAD,EAAQE,MAAR,CAAzB,AAAA;QAEAT,OAAO,CAACvD,OAAR,GAAkB4D,IAAlB,CAAAL;QACA,OAAO1E,KAAK,CAAC8E,eAAe,GAAGC,IAAI,CAACe,GAAxB,CAAZ,CAAA;KACD;IAED,OAAA,aACE,CAAA,oBAAA,CAAC,+CAAD,EADF;QAEI,KAAK,EAAExG,KAAK,CAACuD,aADf;QAEE,SAAS,EAAE+C,mBAAmB,GAAG,QAAH,GAAc,KAF9C;QAGE,OAAO,EAAEA,mBAAmB,GAAG,KAAH,GAAW,QAHzC;QAIE,IAAI,EAAC,QAJP;QAKE,SAAS,EAAEA,mBAAmB,GAAG,CAAH,GAAO,EAArC;KALF,EAAA,aAOE,CAAA,oBAAA,CAAC,gCAAD,EAPF,oCAAA,CAAA;QAQI,kBAAA,EAAiB,UAAjB;KADF,EAEMxF,WAFN,EAAA;QAGE,GAAG,EAAEuF,GAHP;QAIE,KAAK,EAAE;YACL,GAAGvF,WAAW,CAACkF,KADV;YAEL,CAAC,gCAAD,CAAA,EAA2C,iBAA3C;SANJ;QAQE,YAAY,EAAGrC,CAAAA,KAAD,GAAW;YACvB,MAAMjD,KAAK,GAAG6E,mBAAmB,CAAC5B,KAAK,CAAC8C,OAAP,CAAjC,AAAA;YACA9B,YAAY,KAAA,IAAZ,IAAAA,YAAY,KAAA,KAAA,CAAZ,IAAAA,YAAY,CAAGjE,KAAH,CAAZ,CAAAiE;SAVJ;QAYE,WAAW,EAAGhB,CAAAA,KAAD,GAAW;YACtB,MAAMjD,KAAK,GAAG6E,mBAAmB,CAAC5B,KAAK,CAAC8C,OAAP,CAAjC,AAAA;YACA7B,WAAW,KAAA,IAAX,IAAAA,WAAW,KAAA,KAAA,CAAX,IAAAA,WAAW,CAAGlE,KAAH,CAAX,CAAAkE;SAdJ;QAgBE,UAAU,EAAE,IAAM;YAChBQ,OAAO,CAACvD,OAAR,GAAkB2B,SAAlB,CAAA4B;YACAP,UAAU,KAAA,IAAV,IAAAA,UAAU,KAAA,KAAA,CAAV,IAAAA,UAAU,EAAVA,CAAAA;SAlBJ;QAoBE,aAAa,EAAGlB,CAAAA,KAAD,GAAW;YACxB,MAAMuC,cAAc,GAAGI,mBAAmB,GAAG,aAAH,GAAmB,UAA7D,AAAA;YACA,MAAMH,SAAS,GAAG5G,+BAAS,CAAC2G,cAAD,CAAT,CAA0BnC,QAA1B,CAAmCJ,KAAK,CAACK,GAAzC,CAAlB,AAAA;YACAc,aAAa,KAAA,IAAb,IAAAA,aAAa,KAAA,KAAA,CAAb,IAAAA,aAAa,CAAG;gB,OAAEnB,KAAF;gBAASC,SAAS,EAAEuC,SAAS,GAAG,EAAH,GAAQ,CAA5BvC;aAAZ,CAAb,CAAgB;SACjB;KAxBH,CAAA,CAPF,CADF,CAQI;CAnCe,CAAvB,AA+DG;AAGH;;oGAEA,CAcA,MAAM8C,gCAAU,GAAA,aAAGhI,CAAAA,iBAAA,CACjB,CAACsB,KAAD,EAAsCC,YAAtC,GAAuD;IACrD,MAAM,E,eACJsD,aADI,CAAA,E,cAEJoB,YAFI,CAAA,E,aAGJC,WAHI,CAAA,E,YAIJC,UAJI,CAAA,E,eAKJ8B,aALI,CAAA,E,cAMJC,YANI,CAAA,E,eAOJ9B,aAPI,CAAA,EAQJ,GAAGhE,WAAH,EARI,GASFd,KATJ,AAAM;IAUN,MAAM6G,OAAO,GAAG/G,sCAAgB,CAACN,iCAAD,EAAc+D,aAAd,CAAhC,AAAA;IAEA,OAAA,aACE,CAAA,oBAAA,CAAC,gBAAD,CAAW,IAAX,EAAA,oCAAA,CAAA,EAAA,EACMzC,WADN,EADF;QAGI,GAAG,EAAEb,YAFP;QAGE,SAAS,EAAErB,2BAAoB,CAACoB,KAAK,CAAC8G,SAAP,EAAmBnD,CAAAA,KAAD,GAAW;YAC1D,IAAIA,KAAK,CAACK,GAAN,KAAc,MAAlB,EAA0B;gBACxB2C,aAAa,CAAChD,KAAD,CAAb,CADwB,CAExB,kCADAgD;gBAEAhD,KAAK,CAACoD,cAAN,EAAApD,CAAAA;aAHF,MAIO,IAAIA,KAAK,CAACK,GAAN,KAAc,KAAlB,EAAyB;gBAC9B4C,YAAY,CAACjD,KAAD,CAAZ,CAD8B,CAE9B,gCADAiD;gBAEAjD,KAAK,CAACoD,cAAN,EAAApD,CAAAA;aAHK,MAIA,IAAItE,+BAAS,CAAC2H,MAAV,CAAiB1H,gCAAjB,CAAA,CAA6ByE,QAA7B,CAAsCJ,KAAK,CAACK,GAA5C,CAAJ,EAAsD;gBAC3Dc,aAAa,CAACnB,KAAD,CAAb,CAD2D,CAE3D,gDADAmB;gBAEAnB,KAAK,CAACoD,cAAN,EAAApD,CAAAA;aACD;SAb4B,CAHjC;QAkBE,aAAa,EAAE/E,2BAAoB,CAACoB,KAAK,CAACyD,aAAP,EAAuBE,CAAAA,KAAD,GAAW;YAClE,MAAMsD,MAAM,GAAGtD,KAAK,CAACsD,MAArB,AAAA;YACAA,MAAM,CAACC,iBAAP,CAAyBvD,KAAK,CAACwD,SAA/B,CAAA,CAFkE,CAGlE,wFADAF;YAEAtD,KAAK,CAACoD,cAAN,EAAA,CAJkE,CAKlE,uFADApD;YAEA,iEAAA;YACA,IAAIkD,OAAO,CAACjF,MAAR,CAAewF,GAAf,CAAmBH,MAAnB,CAAJ,EACEA,MAAM,CAACnF,KAAP,EAAAmF,CAAAA;iBAEAtC,YAAY,CAAChB,KAAD,CAAZ,CAAAgB;SAV+B,CAlBrC;QA+BE,aAAa,EAAE/F,2BAAoB,CAACoB,KAAK,CAACqH,aAAP,EAAuB1D,CAAAA,KAAD,GAAW;YAClE,MAAMsD,MAAM,GAAGtD,KAAK,CAACsD,MAArB,AAAA;YACA,IAAIA,MAAM,CAACK,iBAAP,CAAyB3D,KAAK,CAACwD,SAA/B,CAAJ,EAA+CvC,WAAW,CAACjB,KAAD,CAAX,CAA/C;SAFiC,CA/BrC;QAmCE,WAAW,EAAE/E,2BAAoB,CAACoB,KAAK,CAACuH,WAAP,EAAqB5D,CAAAA,KAAD,GAAW;YAC9D,MAAMsD,MAAM,GAAGtD,KAAK,CAACsD,MAArB,AAAA;YACA,IAAIA,MAAM,CAACK,iBAAP,CAAyB3D,KAAK,CAACwD,SAA/B,CAAJ,EAA+C;gBAC7CF,MAAM,CAACO,qBAAP,CAA6B7D,KAAK,CAACwD,SAAnC,CAAAF,CAAAA;gBACApC,UAAU,CAAClB,KAAD,CAAV,CAAAkB;aACD;SAL8B,CAMhC;KAzCH,CAAA,CADF,CACE;CAfa,CAAnB,AA2DG;AAGH;;oGAEA,CAEA,MAAM4C,gCAAU,GAAG,aAAnB,AAAA;AAMA,MAAMtJ,yCAAW,GAAA,aAAGO,CAAAA,iBAAA,CAClB,CAACsB,KAAD,EAAuCC,YAAvC,GAAwD;IACtD,MAAM,E,eAAEsD,aAAF,CAAA,EAAiB,GAAGmE,UAAH,EAAjB,GAAmC1H,KAAzC,AAAM;IACN,MAAM6G,OAAO,GAAG/G,sCAAgB,CAAC2H,gCAAD,EAAalE,aAAb,CAAhC,AAAA;IACA,OAAA,aACE,CAAA,oBAAA,CAAC,gBAAD,CAAW,IAAX,EADF,oCAAA,CAAA;QAEI,eAAA,EAAesD,OAAO,CAACtG,QAAR,GAAmB,EAAnB,GAAwBiD,SADzC;QAEE,kBAAA,EAAkBqD,OAAO,CAACvG,WAA1B;KAFF,EAGMoH,UAHN,EAAA;QAIE,GAAG,EAAEzH,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,MAAM0H,gCAAU,GAAG,aAAnB,AAAA;AAKA,MAAMvJ,yCAAW,GAAA,aAAGM,CAAAA,iBAAA,CAClB,CAACsB,KAAD,EAAuCC,YAAvC,GAAwD;IACtD,MAAM,E,eAAEsD,aAAF,CAAA,EAAiB,GAAGqE,UAAH,EAAjB,GAAmC5H,KAAzC,AAAM;IACN,MAAM6G,OAAO,GAAG/G,sCAAgB,CAAC6H,gCAAD,EAAapE,aAAb,CAAhC,AAAA;IACA,MAAMjD,WAAW,GAAGgE,iDAA2B,CAACqD,gCAAD,EAAapE,aAAb,CAA/C,AAAA;IACA,MAAM8C,GAAG,GAAG3H,aAAA,CAA8B,IAA9B,CAAZ,AAAA;IACA,MAAMwG,YAAY,GAAGrG,sBAAe,CAACoB,YAAD,EAAeoG,GAAf,CAApC,AAAA;IACA,MAAMwB,WAAW,GAAGhB,OAAO,CAACtF,MAAR,CAAemC,MAAnC,AAAA;IACA,MAAMoE,WAAW,GAAGjB,OAAO,CAACtF,MAAR,CAAewG,GAAf,CAAoBrH,CAAAA,KAAD,GACrCsH,8CAAwB,CAACtH,KAAD,EAAQmG,OAAO,CAAC1G,GAAhB,EAAqB0G,OAAO,CAACzG,GAA7B,CADN;IAAA,CAApB,AAAA;IAGA,MAAM6H,WAAW,GAAGJ,WAAW,GAAG,CAAd,GAAkB9E,IAAI,CAAC5C,GAAL,IAAY2H,WAAZ,CAAlB,GAA6C,CAAjE,AAAA;IACA,MAAMI,SAAS,GAAG,GAAA,GAAMnF,IAAI,CAAC3C,GAAL,IAAY0H,WAAZ,CAAxB,AAAA;IAEA,OAAA,aACE,CAAA,oBAAA,CAAC,gBAAD,CAAW,IAAX,EADF,oCAAA,CAAA;QAEI,kBAAA,EAAkBjB,OAAO,CAACvG,WAD5B;QAEE,eAAA,EAAeuG,OAAO,CAACtG,QAAR,GAAmB,EAAnB,GAAwBiD,SAAvC;KAFF,EAGMoE,UAHN,EAAA;QAIE,GAAG,EAAE1C,YAJP;QAKE,KAAK,EAAE;YACL,GAAGlF,KAAK,CAACgG,KADJ;YAEL,CAAC1F,WAAW,CAACiE,SAAb,CAAA,EAAyB0D,WAAW,GAAG,GAFlC;YAGL,CAAC3H,WAAW,CAACkE,OAAb,CAAA,EAAuB0D,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,MAAM9J,yCAAW,GAAA,aAAGK,CAAAA,iBAAA,CAClB,CAACsB,KAAD,EAAuCC,YAAvC,GAAwD;IACtD,MAAMmI,QAAQ,GAAG1I,mCAAa,CAACM,KAAK,CAACuD,aAAP,CAA9B,AAAA;IACA,MAAM,CAAC8E,KAAD,EAAQC,QAAR,CAAA,GAAoB5J,eAAA,CAA8C,IAA9C,CAA1B,AAAA;IACA,MAAMwG,YAAY,GAAGrG,sBAAe,CAACoB,YAAD,EAAgBkF,CAAAA,IAAD,GAAUmD,QAAQ,CAACnD,IAAD,CAAjC;IAAA,CAApC,AAAA;IACA,MAAMoD,KAAK,GAAG7J,cAAA,CACZ,IAAO2J,KAAK,GAAGD,QAAQ,EAAA,CAAGK,SAAX,CAAsBC,CAAAA,IAAD,GAAUA,IAAI,CAACrC,GAAL,CAASxE,OAAT,KAAqBwG,KAApD;QAAA,CAAH,GAAgE,EADhE;IAAA,EAEZ;QAACD,QAAD;QAAWC,KAAX;KAFY,CAAd,AAAA;IAIA,OAAA,aAAO,CAAA,oBAAA,CAAC,qCAAD,EAAA,oCAAA,CAAA,EAAA,EAAqBrI,KAArB,EAAP;QAAmC,GAAG,EAAEkF,YAAjC;QAA+C,KAAK,EAAEqD,KAAP;KAA/C,CAAA,CAAP,CAAO;CATS,CAApB,AAUG;AASH,MAAMI,qCAAe,GAAA,aAAGjK,CAAAA,iBAAA,CACtB,CAACsB,KAAD,EAA2CC,YAA3C,GAA4D;IAC1D,MAAM,E,eAAEsD,aAAF,CAAA,E,OAAiBgF,KAAjB,CAAA,E,MAAwBrI,IAAxB,CAAA,EAA8B,GAAG0I,UAAH,EAA9B,GAAgD5I,KAAtD,AAAM;IACN,MAAM6G,OAAO,GAAG/G,sCAAgB,CAACqI,gCAAD,EAAa5E,aAAb,CAAhC,AAAA;IACA,MAAMjD,WAAW,GAAGgE,iDAA2B,CAAC6D,gCAAD,EAAa5E,aAAb,CAA/C,AAAA;IACA,MAAM,CAAC8E,KAAD,EAAQC,QAAR,CAAA,GAAoB5J,eAAA,CAAuC,IAAvC,CAA1B,AAAA;IACA,MAAMwG,YAAY,GAAGrG,sBAAe,CAACoB,YAAD,EAAgBkF,CAAAA,IAAD,GAAUmD,QAAQ,CAACnD,IAAD,CAAjC;IAAA,CAApC,AAL0D,EAM1D,iFADA;IAEA,MAAM0D,aAAa,GAAGR,KAAK,GAAGS,OAAO,CAACT,KAAK,CAACU,OAAN,CAAc,MAAd,CAAD,CAAV,GAAoC,IAA/D,AAAA;IACA,MAAMtE,IAAI,GAAGvF,cAAO,CAACmJ,KAAD,CAApB,AAR0D,EAS1D,mEADA;IAEA,MAAM3H,KAAK,GAAGmG,OAAO,CAACtF,MAAR,CAAegH,KAAf,CAAd,AAAA;IACA,MAAMS,OAAO,GACXtI,KAAK,KAAK8C,SAAV,GAAsB,CAAtB,GAA0BwE,8CAAwB,CAACtH,KAAD,EAAQmG,OAAO,CAAC1G,GAAhB,EAAqB0G,OAAO,CAACzG,GAA7B,CADpD,AAAA;IAEA,MAAM6I,KAAK,GAAGC,8BAAQ,CAACX,KAAD,EAAQ1B,OAAO,CAACtF,MAAR,CAAemC,MAAvB,CAAtB,AAAA;IACA,MAAMyF,eAAe,GAAG1E,IAAH,KAAA,IAAA,IAAGA,IAAH,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAGA,IAAI,CAAGnE,WAAW,CAACmE,IAAf,CAA5B,AAAA;IACA,MAAM2E,mBAAmB,GAAGD,eAAe,GACvCE,4CAAsB,CAACF,eAAD,EAAkBH,OAAlB,EAA2B1I,WAAW,CAACsD,SAAvC,CADiB,GAEvC,CAFJ,AAAA;IAIAlF,gBAAA,CAAgB,IAAM;QACpB,IAAI2J,KAAJ,EAAW;YACTxB,OAAO,CAACjF,MAAR,CAAe2H,GAAf,CAAmBlB,KAAnB,CAAAxB,CAAAA;YACA,OAAO,IAAM;gBACXA,OAAO,CAACjF,MAAR,CAAe4H,MAAf,CAAsBnB,KAAtB,CAAAxB,CAAAA;aADF,CAEC;SACF;KANH,EAOG;QAACwB,KAAD;QAAQxB,OAAO,CAACjF,MAAhB;KAPH,CAOC,CAAA;IAED,OAAA,aACE,CAAA,oBADF,CAAA,MAAA,EAAA;QAEI,KAAK,EAAE;YACL6H,SAAS,EAAE,qCADN;YAELC,QAAQ,EAAE,UAFL;YAGL,CAACpJ,WAAW,CAACiE,SAAb,CAAA,EAA0B,CAAA,KAAA,EAAOyE,OAAQ,CAAA,IAAA,EAAMI,mBAAoB,CAAnE,GAAA,CAAA;SAHK;KADT,EAAA,aAOE,CAAA,oBAAA,CAAC,gCAAD,CAAY,QAAZ,EAPF;QAOuB,KAAK,EAAEpJ,KAAK,CAACuD,aAAb;KAArB,EAAA,aACE,CAAA,oBAAA,CAAC,gBAAD,CAAW,IAAX,EADF,oCAAA,CAAA;QAEI,IAAI,EAAC,QADP;QAEE,YAAA,EAAYvD,KAAK,CAAC,YAAD,CAAL,IAAuBiJ,KAFrC;QAGE,eAAA,EAAepC,OAAO,CAAC1G,GAHzB;QAIE,eAAA,EAAeO,KAJjB;QAKE,eAAA,EAAemG,OAAO,CAACzG,GALzB;QAME,kBAAA,EAAkByG,OAAO,CAACvG,WAN5B;QAOE,kBAAA,EAAkBuG,OAAO,CAACvG,WAP5B;QAQE,eAAA,EAAeuG,OAAO,CAACtG,QAAR,GAAmB,EAAnB,GAAwBiD,SARzC;QASE,QAAQ,EAAEqD,OAAO,CAACtG,QAAR,GAAmBiD,SAAnB,GAA+B,CAAzC;KATF,EAUMoF,UAVN,EAAA;QAWE,GAAG,EAAE1D,YAAL;QAOA,KAAK,EAAExE,KAAK,KAAK8C,SAAV,GAAsB;YAAEmG,OAAO,EAAE,MAATA;SAAxB,GAA4C3J,KAAK,CAACgG,KAlB3D;QAmBE,OAAO,EAAEpH,2BAAoB,CAACoB,KAAK,CAAC4J,OAAP,EAAgB,IAAM;YACjD/C,OAAO,CAAC3F,qBAAR,CAA8BW,OAA9B,GAAwC0G,KAAxC,CAAA1B;SAD2B,CAE5B;KArBH,CAAA,CADF,CAPF,EAiCGgC,aAAa,IAAA,aACZ,CAAA,oBAAA,CAAC,iCAAD,EA1BA;QA2BE,GAAG,EAAEN,KADP;QAEE,IAAI,EACFrI,IADE,KAAA,IAAA,IACFA,IADE,KAAA,KAAA,CAAA,GACFA,IADE,GAED2G,OAAO,CAAC3G,IAAR,GAAe2G,OAAO,CAAC3G,IAAR,GAAgB2G,CAAAA,OAAO,CAACtF,MAAR,CAAemC,MAAf,GAAwB,CAAxB,GAA4B,IAA5B,GAAmC,EAAnD,CAAA,AAAf,GAAwEF,SAJ7E;QAME,KAAK,EAAE9C,KAAP;KANF,CAlCJ,CADF,CAmCM;CAhEc,CAAxB,AA2EG;AAGH,aAAA,CAAA,MAAA,CAAA,MAAA,CAAA,yCAAA,EAAA;IAAA,WAAA,EAAA,gCAAA;CAAA,CAAA,CAAA;AAEA,oGAAA,CAEA,MAAMmJ,iCAAW,GAAI7J,CAAAA,KAAD,GAAoD;IACtE,MAAM,E,OAAEU,KAAF,CAAA,EAAS,GAAGoJ,UAAH,EAAT,GAA2B9J,KAAjC,AAAM;IACN,MAAMqG,GAAG,GAAG3H,aAAA,CAA+B,IAA/B,CAAZ,AAAA;IACA,MAAM4D,SAAS,GAAGrD,kBAAW,CAACyB,KAAD,CAA7B,AAHsE,EAKtE,yDAFA;IAGAhC,gBAAA,CAAgB,IAAM;QACpB,MAAMiH,KAAK,GAAGU,GAAG,CAACxE,OAAlB,AAAA;QACA,MAAMkI,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,IAAIjI,SAAS,KAAK5B,KAAd,IAAuB4J,QAA3B,EAAqC;YACnC,MAAM3G,KAAK,GAAG,IAAI6G,KAAJ,CAAU,OAAV,EAAmB;gBAAEC,OAAO,EAAE,IAATA;aAArB,CAAd,AAAiC;YACjCH,QAAQ,CAACI,IAAT,CAAc/E,KAAd,EAAqBjF,KAArB,CAAA4J,CAAAA;YACA3E,KAAK,CAACgF,aAAN,CAAoBhH,KAApB,CAAAgC,CAAAA;SACD;KATH,EAUG;QAACrD,SAAD;QAAY5B,KAAZ;KAVH,CAUC,CAAA;IAED;;;;;;;;KAQF,CACE,OAAA,aAAO,CAAA,oBAAP,CAAA,OAAA,EAAA,oCAAA,CAAA;QAAc,KAAK,EAAE;YAAEiJ,OAAO,EAAE,MAATA;SAAF;KAAd,EAAuCG,UAAvC,EAAA;QAAmD,GAAG,EAAEzD,GAAxD;QAA6D,YAAY,EAAE3F,KAAd;KAA7D,CAAA,CAAP,CAAO;CA3BT,AA4BC;AAED,SAASyC,yCAAT,CAA6BF,UAAoB,GAAG,EAApD,EAAwDV,SAAxD,EAA2EE,OAA3E,EAA4F;IAC1F,MAAMS,UAAU,GAAG;WAAID,UAAJ;KAAnB,AAAA;IACAC,UAAU,CAACT,OAAD,CAAV,GAAsBF,SAAtB,CAAAW;IACA,OAAOA,UAAU,CAAC0H,IAAX,CAAgB,CAACC,CAAD,EAAIC,CAAJ,GAAUD,CAAC,GAAGC,CAA9B;IAAA,CAAP,CAAA;CACD;AAED,SAAS9C,8CAAT,CAAkCtH,KAAlC,EAAiDP,GAAjD,EAA8DC,GAA9D,EAA2E;IACzE,MAAM2K,QAAQ,GAAG3K,GAAG,GAAGD,GAAvB,AAAA;IACA,MAAM6K,cAAc,GAAG,GAAA,GAAMD,QAA7B,AAAA;IACA,MAAME,UAAU,GAAGD,cAAc,GAAItK,CAAAA,KAAK,GAAGP,GAAZ,CAAA,AAAjC,AAAA;IACA,OAAOxB,YAAK,CAACsM,UAAD,EAAa;AAAC,SAAD;AAAI,WAAJ;KAAb,CAAZ,CAAA;CACD;AAED;;GAEA,CACA,SAAS/B,8BAAT,CAAkBX,KAAlB,EAAiC2C,WAAjC,EAAsD;IACpD,IAAIA,WAAW,GAAG,CAAlB,EACE,OAAQ,CAAA,MAAA,EAAQ3C,KAAK,GAAG,CAAE,CAAA,IAAA,EAAM2C,WAAY,CAAA,CAA5C,CAAA;SACK,IAAIA,WAAW,KAAK,CAApB,EACL,OAAO;QAAC,SAAD;QAAY,SAAZ;KAAA,CAAuB3C,KAAvB,CAAP,CAAA;SAEA,OAAO/E,SAAP,CAAA;CAEH;AAED;;;;;;;GAOA,CACA,SAAStB,0CAAT,CAA8BX,MAA9B,EAAgDgB,SAAhD,EAAmE;IACjE,IAAIhB,MAAM,CAACmC,MAAP,KAAkB,CAAtB,EAAyB,OAAO,CAAP,CAAzB;IACA,MAAMyH,SAAS,GAAG5J,MAAM,CAACwG,GAAP,CAAYrH,CAAAA,KAAD,GAAWqC,IAAI,CAACqI,GAAL,CAAS1K,KAAK,GAAG6B,SAAjB,CAAtB;IAAA,CAAlB,AAAA;IACA,MAAM8I,eAAe,GAAGtI,IAAI,CAAC5C,GAAL,IAAYgL,SAAZ,CAAxB,AAAA;IACA,OAAOA,SAAS,CAAC9H,OAAV,CAAkBgI,eAAlB,CAAP,CAAA;CACD;AAED;;;GAGA,CACA,SAAShC,4CAAT,CAAgCzD,KAAhC,EAA+CG,IAA/C,EAA6DnC,SAA7D,EAAgF;IAC9E,MAAM0H,SAAS,GAAG1F,KAAK,GAAG,CAA1B,AAAA;IACA,MAAM2F,WAAW,GAAG,EAApB,AAAA;IACA,MAAMC,MAAM,GAAG1F,iCAAW,CAAC;AAAC,SAAD;QAAIyF,WAAJ;KAAD,EAAmB;AAAC,SAAD;QAAID,SAAJ;KAAnB,CAA1B,AAAA;IACA,OAAO,AAACA,CAAAA,SAAS,GAAGE,MAAM,CAACzF,IAAD,CAAN,GAAenC,SAA5B,CAAA,GAAyCA,SAAhD,CAAA;CACD;AAED;;;;;;GAMA,CACA,SAAS6H,2CAAT,CAA+BlK,MAA/B,EAAiD;IAC/C,OAAOA,MAAM,CAACmK,KAAP,CAAa,CAAb,EAAgB,EAAhB,CAAA,CAAoB3D,GAApB,CAAwB,CAACrH,KAAD,EAAQ6H,KAAR,GAAkBhH,MAAM,CAACgH,KAAK,GAAG,CAAT,CAAN,GAAoB7H,KAA9D;IAAA,CAAP,CAAA;CACD;AAED;;;;;;;;;;;GAWA,CACA,SAAS0C,8CAAT,CAAkC7B,MAAlC,EAAoDoK,qBAApD,EAAmF;IACjF,IAAIA,qBAAqB,GAAG,CAA5B,EAA+B;QAC7B,MAAMC,kBAAkB,GAAGH,2CAAqB,CAAClK,MAAD,CAAhD,AAAA;QACA,MAAMsK,2BAA2B,GAAG9I,IAAI,CAAC5C,GAAL,IAAYyL,kBAAZ,CAApC,AAAA;QACA,OAAOC,2BAA2B,IAAIF,qBAAtC,CAAA;KACD;IACD,OAAO,IAAP,CAAA;C,CAGF,mFAFC;AAGD,SAAS7F,iCAAT,CAAqBH,KAArB,EAAuDE,MAAvD,EAA0F;IACxF,OAAQnF,CAAAA,KAAD,GAAmB;QACxB,IAAIiF,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,MAAMiG,KAAK,GAAG,AAACjG,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,GAAYiG,KAAK,GAAIpL,CAAAA,KAAK,GAAGiF,KAAK,CAAC,CAAD,CAAjB,CAAA,AAAxB,CAAA;KAHF,CAIC;CACF;AAED,SAAS/C,qCAAT,CAAyBlC,KAAzB,EAAwC;IACtC,OAAO,AAAC4C,CAAAA,MAAM,CAAC5C,KAAD,CAAN,CAAcqL,KAAd,CAAoB,GAApB,CAAA,CAAyB,CAAzB,CAAA,IAA+B,EAAhC,CAAA,CAAoCrI,MAA3C,CAAA;CACD;AAED,SAASZ,gCAAT,CAAoBpC,KAApB,EAAmCiC,YAAnC,EAAyD;IACvD,MAAMqJ,OAAO,GAAGjJ,IAAI,CAACkJ,GAAL,CAAS,EAAT,EAAatJ,YAAb,CAAhB,AAAA;IACA,OAAOI,IAAI,CAACC,KAAL,CAAWtC,KAAK,GAAGsL,OAAnB,CAAA,GAA8BA,OAArC,CAAA;CACD;AAED,MAAM1N,yCAAI,GAAGJ,yCAAb,AAAA;AACA,MAAMK,yCAAK,GAAGJ,yCAAd,AAAA;AACA,MAAMK,yCAAK,GAAGJ,yCAAd,AAAA;AACA,MAAMK,yCAAK,GAAGJ,yCAAd,AAAA;;ADhwBA","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 name?: string;\n disabled?: boolean;\n min: number;\n max: number;\n values: number[];\n valueIndexToChangeRef: React.MutableRefObject<number>;\n thumbs: Set<SliderThumbElement>;\n orientation: SliderProps['orientation'];\n};\n\nconst [SliderProvider, useSliderContext] = createSliderContext<SliderContextValue>(SLIDER_NAME);\n\ntype SliderElement = SliderHorizontalElement | SliderVerticalElement;\ninterface SliderProps\n extends Omit<\n SliderHorizontalProps | SliderVerticalProps,\n keyof SliderOrientationPrivateProps | 'defaultValue'\n > {\n name?: string;\n disabled?: boolean;\n orientation?: React.AriaAttributes['aria-orientation'];\n dir?: Direction;\n min?: number;\n max?: number;\n step?: number;\n minStepsBetweenThumbs?: number;\n value?: number[];\n defaultValue?: number[];\n onValueChange?(value: number[]): void;\n onValueCommit?(value: number[]): void;\n inverted?: boolean;\n}\n\nconst Slider = React.forwardRef<SliderElement, SliderProps>(\n (props: ScopedProps<SliderProps>, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = 'horizontal',\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {},\n onValueCommit = () => {},\n inverted = false,\n ...sliderProps\n } = props;\n const thumbRefs = React.useRef<SliderContextValue['thumbs']>(new Set());\n const valueIndexToChangeRef = React.useRef<number>(0);\n const isHorizontal = orientation === 'horizontal';\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value);\n },\n });\n const valuesBeforeSlideStartRef = React.useRef(values);\n\n function handleSlideStart(value: number) {\n const closestIndex = getClosestValueIndex(values, value);\n updateValues(value, closestIndex);\n }\n\n function handleSlideMove(value: number) {\n updateValues(value, valueIndexToChangeRef.current);\n }\n\n function handleSlideEnd() {\n const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];\n const nextValue = values[valueIndexToChangeRef.current];\n const hasChanged = nextValue !== prevValue;\n if (hasChanged) onValueCommit(values);\n }\n\n function updateValues(value: number, atIndex: number, { commit } = { commit: false }) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n const hasChanged = String(nextValues) !== String(prevValues);\n if (hasChanged && commit) onValueCommit(nextValues);\n return hasChanged ? nextValues : prevValues;\n } else {\n return prevValues;\n }\n });\n }\n\n return (\n <SliderProvider\n scope={props.__scopeSlider}\n name={name}\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={forwardedRef}\n onPointerDown={composeEventHandlers(sliderProps.onPointerDown, () => {\n if (!disabled) valuesBeforeSlideStartRef.current = values;\n })}\n min={min}\n max={max}\n inverted={inverted}\n onSlideStart={disabled ? undefined : handleSlideStart}\n onSlideMove={disabled ? undefined : handleSlideMove}\n onSlideEnd={disabled ? undefined : handleSlideEnd}\n onHomeKeyDown={() => !disabled && updateValues(min, 0, { commit: true })}\n onEndKeyDown={() =>\n !disabled && updateValues(max, values.length - 1, { commit: true })\n }\n onStepKeyDown={({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || (event.shiftKey && ARROW_KEYS.includes(event.key));\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value + stepInDirection, atIndex, { commit: true });\n }\n }}\n />\n </Collection.Slot>\n </Collection.Provider>\n </SliderProvider>\n );\n }\n);\n\nSlider.displayName = SLIDER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderHorizontal\n * -----------------------------------------------------------------------------------------------*/\n\ntype Side = 'top' | 'right' | 'bottom' | 'left';\n\nconst [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext<{\n startEdge: Side;\n endEdge: Side;\n size: keyof NonNullable<ReturnType<typeof useSize>>;\n direction: number;\n}>(SLIDER_NAME, {\n startEdge: 'left',\n endEdge: 'right',\n size: 'width',\n direction: 1,\n});\n\ntype SliderOrientationPrivateProps = {\n min: number;\n max: number;\n inverted: boolean;\n onSlideStart?(value: number): void;\n onSlideMove?(value: number): void;\n onSlideEnd?(): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(step: { event: React.KeyboardEvent; direction: number }): void;\n};\ninterface SliderOrientationProps\n extends Omit<SliderImplProps, keyof SliderImplPrivateProps>,\n SliderOrientationPrivateProps {}\n\ntype SliderHorizontalElement = SliderImplElement;\ninterface SliderHorizontalProps extends SliderOrientationProps {\n dir?: Direction;\n}\n\nconst SliderHorizontal = React.forwardRef<SliderHorizontalElement, SliderHorizontalProps>(\n (props: ScopedProps<SliderHorizontalProps>, forwardedRef) => {\n const {\n min,\n max,\n dir,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState<SliderImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef<ClientRect>();\n const direction = useDirection(dir);\n const isDirectionLTR = direction === 'ltr';\n const isSlidingFromLeft = (isDirectionLTR && !inverted) || (!isDirectionLTR && inverted);\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || slider!.getBoundingClientRect();\n const input: [number, number] = [0, rect.width];\n const output: [number, number] = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromLeft ? 'left' : 'right'}\n endEdge={isSlidingFromLeft ? 'right' : 'left'}\n direction={isSlidingFromLeft ? 1 : -1}\n size=\"width\"\n >\n <SliderImpl\n dir={direction}\n data-orientation=\"horizontal\"\n {...sliderProps}\n ref={composedRefs}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: 'translateX(-50%)',\n }}\n onSlideStart={(event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart?.(value);\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove?.(value);\n }}\n onSlideEnd={() => {\n rectRef.current = undefined;\n onSlideEnd?.();\n }}\n onStepKeyDown={(event) => {\n const slideDirection = isSlidingFromLeft ? 'from-left' : 'from-right';\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }}\n />\n </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderVertical\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderVerticalElement = SliderImplElement;\ninterface SliderVerticalProps extends SliderOrientationProps {}\n\nconst SliderVertical = React.forwardRef<SliderVerticalElement, SliderVerticalProps>(\n (props: ScopedProps<SliderVerticalProps>, forwardedRef) => {\n const {\n min,\n max,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const sliderRef = React.useRef<SliderImplElement>(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef<ClientRect>();\n const isSlidingFromBottom = !inverted;\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || sliderRef.current!.getBoundingClientRect();\n const input: [number, number] = [0, rect.height];\n const output: [number, number] = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromBottom ? 'bottom' : 'top'}\n endEdge={isSlidingFromBottom ? 'top' : 'bottom'}\n size=\"height\"\n direction={isSlidingFromBottom ? 1 : -1}\n >\n <SliderImpl\n data-orientation=\"vertical\"\n {...sliderProps}\n ref={ref}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: 'translateY(50%)',\n }}\n onSlideStart={(event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart?.(value);\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove?.(value);\n }}\n onSlideEnd={() => {\n rectRef.current = undefined;\n onSlideEnd?.();\n }}\n onStepKeyDown={(event) => {\n const slideDirection = isSlidingFromBottom ? 'from-bottom' : 'from-top';\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }}\n />\n </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderImpl\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderImplElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;\ntype SliderImplPrivateProps = {\n onSlideStart(event: React.PointerEvent): void;\n onSlideMove(event: React.PointerEvent): void;\n onSlideEnd(event: React.PointerEvent): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(event: React.KeyboardEvent): void;\n};\ninterface SliderImplProps extends PrimitiveDivProps, SliderImplPrivateProps {}\n\nconst SliderImpl = React.forwardRef<SliderImplElement, SliderImplProps>(\n (props: ScopedProps<SliderImplProps>, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const context = useSliderContext(SLIDER_NAME, __scopeSlider);\n\n return (\n <Primitive.span\n {...sliderProps}\n ref={forwardedRef}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === 'Home') {\n onHomeKeyDown(event);\n // Prevent scrolling to page start\n event.preventDefault();\n } else if (event.key === 'End') {\n onEndKeyDown(event);\n // Prevent scrolling to page end\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n // Prevent scrolling for directional key presses\n event.preventDefault();\n }\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target as HTMLElement;\n target.setPointerCapture(event.pointerId);\n // Prevent browser focus behaviour because we focus a thumb manually when values change.\n event.preventDefault();\n // Touch devices have a delay before focusing so won't focus if touch immediately moves\n // away from target (sliding). We want thumb to focus regardless.\n if (context.thumbs.has(target)) {\n target.focus();\n } else {\n onSlideStart(event);\n }\n })}\n onPointerMove={composeEventHandlers(props.onPointerMove, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n })}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })}\n />\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderTrack\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRACK_NAME = 'SliderTrack';\n\ntype SliderTrackElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface SliderTrackProps extends PrimitiveSpanProps {}\n\nconst SliderTrack = React.forwardRef<SliderTrackElement, SliderTrackProps>(\n (props: ScopedProps<SliderTrackProps>, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return (\n <Primitive.span\n data-disabled={context.disabled ? '' : undefined}\n data-orientation={context.orientation}\n {...trackProps}\n ref={forwardedRef}\n />\n );\n }\n);\n\nSliderTrack.displayName = TRACK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderRange\n * -----------------------------------------------------------------------------------------------*/\n\nconst RANGE_NAME = 'SliderRange';\n\ntype SliderRangeElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderRangeProps extends PrimitiveSpanProps {}\n\nconst SliderRange = React.forwardRef<SliderRangeElement, SliderRangeProps>(\n (props: ScopedProps<SliderRangeProps>, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props;\n const context = useSliderContext(RANGE_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);\n const ref = React.useRef<HTMLSpanElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map((value) =>\n convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n\n return (\n <Primitive.span\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n {...rangeProps}\n ref={composedRefs}\n style={{\n ...props.style,\n [orientation.startEdge]: offsetStart + '%',\n [orientation.endEdge]: offsetEnd + '%',\n }}\n />\n );\n }\n);\n\nSliderRange.displayName = RANGE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderThumb\n * -----------------------------------------------------------------------------------------------*/\n\nconst THUMB_NAME = 'SliderThumb';\n\ntype SliderThumbElement = SliderThumbImplElement;\ninterface SliderThumbProps extends Omit<SliderThumbImplProps, 'index'> {}\n\nconst SliderThumb = React.forwardRef<SliderThumbElement, SliderThumbProps>(\n (props: ScopedProps<SliderThumbProps>, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState<SliderThumbImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const index = React.useMemo(\n () => (thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1),\n [getItems, thumb]\n );\n return <SliderThumbImpl {...props} ref={composedRefs} index={index} />;\n }\n);\n\ntype SliderThumbImplElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderThumbImplProps extends PrimitiveSpanProps {\n index: number;\n name?: string;\n}\n\nconst SliderThumbImpl = React.forwardRef<SliderThumbImplElement, SliderThumbImplProps>(\n (props: ScopedProps<SliderThumbImplProps>, forwardedRef) => {\n const { __scopeSlider, index, name, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = thumb ? Boolean(thumb.closest('form')) : true;\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\n {isFormControl && (\n <BubbleInput\n key={index}\n name={\n name ??\n (context.name ? context.name + (context.values.length > 1 ? '[]' : '') : undefined)\n }\n value={value}\n />\n )}\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 const percentage = percentPerStep * (value - min);\n return clamp(percentage, [0, 100]);\n}\n\n/**\n * Returns a label for each thumb when there are two or more thumbs\n */\nfunction getLabel(index: number, totalValues: number) {\n if (totalValues > 2) {\n return `Value ${index + 1} of ${totalValues}`;\n } else if (totalValues === 2) {\n return ['Minimum', 'Maximum'][index];\n } else {\n return undefined;\n }\n}\n\n/**\n * Given a `values` array and a `nextValue`, determine which value in\n * the array is closest to `nextValue` and return its index.\n *\n * @example\n * // returns 1\n * getClosestValueIndex([10, 30], 25);\n */\nfunction getClosestValueIndex(values: number[], nextValue: number) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\n\n/**\n * Offsets the thumb centre point while sliding to ensure it remains\n * within the bounds of the slider when reaching the edges\n */\nfunction getThumbInBoundsOffset(width: number, left: number, direction: number) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\n\n/**\n * Gets an array of steps between each value.\n *\n * @example\n * // returns [1, 9]\n * getStepsBetweenValues([10, 11, 20]);\n */\nfunction getStepsBetweenValues(values: number[]) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\n\n/**\n * Verifies the minimum steps between all values is greater than or equal\n * to the expected minimum steps.\n *\n * @example\n * // returns false\n * hasMinStepsBetweenValues([1,2,3], 2);\n *\n * @example\n * // returns true\n * hasMinStepsBetweenValues([1,2,3], 1);\n */\nfunction hasMinStepsBetweenValues(values: number[], minStepsBetweenValues: number) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\n\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(input: readonly [number, number], output: readonly [number, number]) {\n return (value: number) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\n\nfunction getDecimalCount(value: number) {\n return (String(value).split('.')[1] || '').length;\n}\n\nfunction roundValue(value: number, decimalCount: number) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\n\nconst Root = Slider;\nconst Track = SliderTrack;\nconst Range = SliderRange;\nconst Thumb = SliderThumb;\n\nexport {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n};\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps };\n"],"names":["createSliderScope","Slider","SliderTrack","SliderRange","SliderThumb","Root","Track","Range","Thumb","React","clamp","composeEventHandlers","useComposedRefs","createContextScope","useControllableState","useDirection","usePrevious","useSize","Primitive","createCollection","PAGE_KEYS","ARROW_KEYS","BACK_KEYS","SLIDER_NAME","Collection","useCollection","createCollectionScope","createSliderContext","SliderProvider","useSliderContext","forwardRef","props","forwardedRef","name","min","max","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value","onValueChange","onValueCommit","inverted","sliderProps","thumbRefs","useRef","Set","valueIndexToChangeRef","isHorizontal","SliderOrientation","SliderHorizontal","SliderVertical","values","setValues","prop","defaultProp","onChange","thumbs","current","focus","valuesBeforeSlideStartRef","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","handleSlideEnd","prevValue","nextValue","hasChanged","atIndex","commit","decimalCount","getDecimalCount","snapToStep","roundValue","Math","round","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","indexOf","String","__scopeSlider","undefined","onPointerDown","length","event","direction","stepDirection","isPageKey","includes","key","isSkipKey","shiftKey","multiplier","stepInDirection","SliderOrientationProvider","useSliderOrientationContext","startEdge","endEdge","size","dir","onSlideStart","onSlideMove","onSlideEnd","onStepKeyDown","slider","setSlider","useState","composedRefs","node","rectRef","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","rect","getBoundingClientRect","input","width","output","linearScale","left","style","clientX","slideDirection","isBackKey","sliderRef","ref","isSlidingFromBottom","height","top","clientY","SliderImpl","onHomeKeyDown","onEndKeyDown","context","onKeyDown","preventDefault","concat","target","setPointerCapture","pointerId","has","onPointerMove","hasPointerCapture","onPointerUp","releasePointerCapture","TRACK_NAME","trackProps","RANGE_NAME","rangeProps","valuesCount","percentages","map","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","getItems","thumb","setThumb","index","useMemo","findIndex","item","SliderThumbImpl","thumbProps","isFormControl","Boolean","closest","percent","label","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","useEffect","add","delete","transform","position","display","onFocus","BubbleInput","inputProps","inputProto","window","HTMLInputElement","prototype","descriptor","Object","getOwnPropertyDescriptor","setValue","set","Event","bubbles","call","dispatchEvent","sort","a","b","maxSteps","percentPerStep","percentage","totalValues","distances","abs","closestDistance","halfWidth","halfPercent","offset","getStepsBetweenValues","slice","minStepsBetweenValues","stepsBetweenValues","actualMinStepsBetweenValues","ratio","split","rounder","pow"],"version":3,"file":"index.mjs.map"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@radix-ui/react-slider",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0-rc.1",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
"exports": {
|
|
6
|
+
".": {
|
|
7
|
+
"import": {
|
|
8
|
+
"types": "./dist/index.d.mts",
|
|
9
|
+
"default": "./dist/index.mjs"
|
|
10
|
+
},
|
|
11
|
+
"require": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"default": "./dist/index.js"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"source": "./src/index.ts",
|
|
18
|
+
"main": "./dist/index.js",
|
|
19
|
+
"module": "./dist/index.mjs",
|
|
20
|
+
"types": "./dist/index.d.ts",
|
|
9
21
|
"files": [
|
|
10
22
|
"dist",
|
|
11
23
|
"README.md"
|
|
@@ -17,26 +29,36 @@
|
|
|
17
29
|
},
|
|
18
30
|
"dependencies": {
|
|
19
31
|
"@babel/runtime": "^7.13.10",
|
|
20
|
-
"@radix-ui/number": "1.0.
|
|
21
|
-
"@radix-ui/primitive": "1.0.
|
|
22
|
-
"@radix-ui/react-collection": "1.0.3
|
|
23
|
-
"@radix-ui/react-compose-refs": "1.0.
|
|
24
|
-
"@radix-ui/react-context": "1.0.
|
|
25
|
-
"@radix-ui/react-direction": "1.0.
|
|
26
|
-
"@radix-ui/react-primitive": "1.0.3
|
|
27
|
-
"@radix-ui/react-use-controllable-state": "1.0.
|
|
28
|
-
"@radix-ui/react-use-layout-effect": "1.0.
|
|
29
|
-
"@radix-ui/react-use-previous": "1.0.
|
|
30
|
-
"@radix-ui/react-use-size": "1.0.
|
|
32
|
+
"@radix-ui/number": "1.0.1",
|
|
33
|
+
"@radix-ui/primitive": "1.0.1",
|
|
34
|
+
"@radix-ui/react-collection": "1.0.3",
|
|
35
|
+
"@radix-ui/react-compose-refs": "1.0.1",
|
|
36
|
+
"@radix-ui/react-context": "1.0.1",
|
|
37
|
+
"@radix-ui/react-direction": "1.0.1",
|
|
38
|
+
"@radix-ui/react-primitive": "1.0.3",
|
|
39
|
+
"@radix-ui/react-use-controllable-state": "1.0.1",
|
|
40
|
+
"@radix-ui/react-use-layout-effect": "1.0.1",
|
|
41
|
+
"@radix-ui/react-use-previous": "1.0.1",
|
|
42
|
+
"@radix-ui/react-use-size": "1.0.1"
|
|
31
43
|
},
|
|
32
44
|
"devDependencies": {
|
|
33
45
|
"@types/form-serialize": "^0",
|
|
34
46
|
"form-serialize": "^0.7.2"
|
|
35
47
|
},
|
|
36
48
|
"peerDependencies": {
|
|
49
|
+
"@types/react": "*",
|
|
50
|
+
"@types/react-dom": "*",
|
|
37
51
|
"react": "^16.8 || ^17.0 || ^18.0",
|
|
38
52
|
"react-dom": "^16.8 || ^17.0 || ^18.0"
|
|
39
53
|
},
|
|
54
|
+
"peerDependenciesMeta": {
|
|
55
|
+
"@types/react": {
|
|
56
|
+
"optional": true
|
|
57
|
+
},
|
|
58
|
+
"@types/react-dom": {
|
|
59
|
+
"optional": true
|
|
60
|
+
}
|
|
61
|
+
},
|
|
40
62
|
"homepage": "https://radix-ui.com/primitives",
|
|
41
63
|
"repository": {
|
|
42
64
|
"type": "git",
|
|
@@ -45,5 +67,5 @@
|
|
|
45
67
|
"bugs": {
|
|
46
68
|
"url": "https://github.com/radix-ui/primitives/issues"
|
|
47
69
|
},
|
|
48
|
-
"stableVersion": "1.1.
|
|
70
|
+
"stableVersion": "1.1.2"
|
|
49
71
|
}
|
package/dist/index.module.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"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","sources":["packages/react/slider/src/index.ts","packages/react/slider/src/Slider.tsx"],"sourcesContent":["export {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n} from './Slider';\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps } from './Slider';\n","import * as React from 'react';\nimport { clamp } from '@radix-ui/number';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { createCollection } from '@radix-ui/react-collection';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\n\nconst PAGE_KEYS = ['PageUp', 'PageDown'];\nconst ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\ntype SlideDirection = 'from-left' | 'from-right' | 'from-bottom' | 'from-top';\nconst BACK_KEYS: Record<SlideDirection, string[]> = {\n 'from-left': ['Home', 'PageDown', 'ArrowDown', 'ArrowLeft'],\n 'from-right': ['Home', 'PageDown', 'ArrowDown', 'ArrowRight'],\n 'from-bottom': ['Home', 'PageDown', 'ArrowDown', 'ArrowLeft'],\n 'from-top': ['Home', 'PageDown', 'ArrowUp', 'ArrowLeft'],\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Slider\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLIDER_NAME = 'Slider';\n\nconst [Collection, useCollection, createCollectionScope] =\n createCollection<SliderThumbElement>(SLIDER_NAME);\n\ntype ScopedProps<P> = P & { __scopeSlider?: Scope };\nconst [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope,\n]);\n\ntype SliderContextValue = {\n disabled?: boolean;\n min: number;\n max: number;\n values: number[];\n valueIndexToChangeRef: React.MutableRefObject<number>;\n thumbs: Set<SliderThumbElement>;\n orientation: SliderProps['orientation'];\n};\n\nconst [SliderProvider, useSliderContext] = createSliderContext<SliderContextValue>(SLIDER_NAME);\n\ntype SliderElement = SliderHorizontalElement | SliderVerticalElement;\ninterface SliderProps\n extends Omit<\n SliderHorizontalProps | SliderVerticalProps,\n keyof SliderOrientationPrivateProps | 'defaultValue'\n > {\n name?: string;\n disabled?: boolean;\n orientation?: React.AriaAttributes['aria-orientation'];\n dir?: Direction;\n min?: number;\n max?: number;\n step?: number;\n minStepsBetweenThumbs?: number;\n value?: number[];\n defaultValue?: number[];\n onValueChange?(value: number[]): void;\n onValueCommit?(value: number[]): void;\n inverted?: boolean;\n}\n\nconst Slider = React.forwardRef<SliderElement, SliderProps>(\n (props: ScopedProps<SliderProps>, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = 'horizontal',\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {},\n onValueCommit = () => {},\n inverted = false,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const thumbRefs = React.useRef<SliderContextValue['thumbs']>(new Set());\n const valueIndexToChangeRef = React.useRef<number>(0);\n const isHorizontal = orientation === 'horizontal';\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = slider ? Boolean(slider.closest('form')) : true;\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value);\n },\n });\n const valuesBeforeSlideStartRef = React.useRef(values);\n\n function handleSlideStart(value: number) {\n const closestIndex = getClosestValueIndex(values, value);\n updateValues(value, closestIndex);\n }\n\n function handleSlideMove(value: number) {\n updateValues(value, valueIndexToChangeRef.current);\n }\n\n function handleSlideEnd() {\n const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];\n const nextValue = values[valueIndexToChangeRef.current];\n const hasChanged = nextValue !== prevValue;\n if (hasChanged) onValueCommit(values);\n }\n\n function updateValues(value: number, atIndex: number, { commit } = { commit: false }) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n const hasChanged = String(nextValues) !== String(prevValues);\n if (hasChanged && commit) onValueCommit(nextValues);\n return hasChanged ? nextValues : prevValues;\n } else {\n return prevValues;\n }\n });\n }\n\n return (\n <SliderProvider\n scope={props.__scopeSlider}\n disabled={disabled}\n min={min}\n max={max}\n valueIndexToChangeRef={valueIndexToChangeRef}\n thumbs={thumbRefs.current}\n values={values}\n orientation={orientation}\n >\n <Collection.Provider scope={props.__scopeSlider}>\n <Collection.Slot scope={props.__scopeSlider}>\n <SliderOrientation\n aria-disabled={disabled}\n data-disabled={disabled ? '' : undefined}\n {...sliderProps}\n ref={composedRefs}\n onPointerDown={composeEventHandlers(sliderProps.onPointerDown, () => {\n if (!disabled) valuesBeforeSlideStartRef.current = values;\n })}\n min={min}\n max={max}\n inverted={inverted}\n onSlideStart={disabled ? undefined : handleSlideStart}\n onSlideMove={disabled ? undefined : handleSlideMove}\n onSlideEnd={disabled ? undefined : handleSlideEnd}\n onHomeKeyDown={() => !disabled && updateValues(min, 0, { commit: true })}\n onEndKeyDown={() =>\n !disabled && updateValues(max, values.length - 1, { commit: true })\n }\n onStepKeyDown={({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || (event.shiftKey && ARROW_KEYS.includes(event.key));\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value + stepInDirection, atIndex, { commit: true });\n }\n }}\n />\n </Collection.Slot>\n </Collection.Provider>\n {isFormControl &&\n values.map((value, index) => (\n <BubbleInput\n key={index}\n name={name ? name + (values.length > 1 ? '[]' : '') : undefined}\n value={value}\n />\n ))}\n </SliderProvider>\n );\n }\n);\n\nSlider.displayName = SLIDER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderHorizontal\n * -----------------------------------------------------------------------------------------------*/\n\ntype Side = 'top' | 'right' | 'bottom' | 'left';\n\nconst [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext<{\n startEdge: Side;\n endEdge: Side;\n size: keyof NonNullable<ReturnType<typeof useSize>>;\n direction: number;\n}>(SLIDER_NAME, {\n startEdge: 'left',\n endEdge: 'right',\n size: 'width',\n direction: 1,\n});\n\ntype SliderOrientationPrivateProps = {\n min: number;\n max: number;\n inverted: boolean;\n onSlideStart?(value: number): void;\n onSlideMove?(value: number): void;\n onSlideEnd?(): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(step: { event: React.KeyboardEvent; direction: number }): void;\n};\ninterface SliderOrientationProps\n extends Omit<SliderImplProps, keyof SliderImplPrivateProps>,\n SliderOrientationPrivateProps {}\n\ntype SliderHorizontalElement = SliderImplElement;\ninterface SliderHorizontalProps extends SliderOrientationProps {\n dir?: Direction;\n}\n\nconst SliderHorizontal = React.forwardRef<SliderHorizontalElement, SliderHorizontalProps>(\n (props: ScopedProps<SliderHorizontalProps>, forwardedRef) => {\n const {\n min,\n max,\n dir,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState<SliderImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef<ClientRect>();\n const direction = useDirection(dir);\n const isDirectionLTR = direction === 'ltr';\n const isSlidingFromLeft = (isDirectionLTR && !inverted) || (!isDirectionLTR && inverted);\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || slider!.getBoundingClientRect();\n const input: [number, number] = [0, rect.width];\n const output: [number, number] = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromLeft ? 'left' : 'right'}\n endEdge={isSlidingFromLeft ? 'right' : 'left'}\n direction={isSlidingFromLeft ? 1 : -1}\n size=\"width\"\n >\n <SliderImpl\n dir={direction}\n data-orientation=\"horizontal\"\n {...sliderProps}\n ref={composedRefs}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: 'translateX(-50%)',\n }}\n onSlideStart={(event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart?.(value);\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove?.(value);\n }}\n onSlideEnd={() => {\n rectRef.current = undefined;\n onSlideEnd?.();\n }}\n onStepKeyDown={(event) => {\n const slideDirection = isSlidingFromLeft ? 'from-left' : 'from-right';\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }}\n />\n </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderVertical\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderVerticalElement = SliderImplElement;\ninterface SliderVerticalProps extends SliderOrientationProps {}\n\nconst SliderVertical = React.forwardRef<SliderVerticalElement, SliderVerticalProps>(\n (props: ScopedProps<SliderVerticalProps>, forwardedRef) => {\n const {\n min,\n max,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const sliderRef = React.useRef<SliderImplElement>(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef<ClientRect>();\n const isSlidingFromBottom = !inverted;\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || sliderRef.current!.getBoundingClientRect();\n const input: [number, number] = [0, rect.height];\n const output: [number, number] = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromBottom ? 'bottom' : 'top'}\n endEdge={isSlidingFromBottom ? 'top' : 'bottom'}\n size=\"height\"\n direction={isSlidingFromBottom ? 1 : -1}\n >\n <SliderImpl\n data-orientation=\"vertical\"\n {...sliderProps}\n ref={ref}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: 'translateY(50%)',\n }}\n onSlideStart={(event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart?.(value);\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove?.(value);\n }}\n onSlideEnd={() => {\n rectRef.current = undefined;\n onSlideEnd?.();\n }}\n onStepKeyDown={(event) => {\n const slideDirection = isSlidingFromBottom ? 'from-bottom' : 'from-top';\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }}\n />\n </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderImpl\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderImplElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;\ntype SliderImplPrivateProps = {\n onSlideStart(event: React.PointerEvent): void;\n onSlideMove(event: React.PointerEvent): void;\n onSlideEnd(event: React.PointerEvent): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(event: React.KeyboardEvent): void;\n};\ninterface SliderImplProps extends PrimitiveDivProps, SliderImplPrivateProps {}\n\nconst SliderImpl = React.forwardRef<SliderImplElement, SliderImplProps>(\n (props: ScopedProps<SliderImplProps>, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const context = useSliderContext(SLIDER_NAME, __scopeSlider);\n\n return (\n <Primitive.span\n {...sliderProps}\n ref={forwardedRef}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === 'Home') {\n onHomeKeyDown(event);\n // Prevent scrolling to page start\n event.preventDefault();\n } else if (event.key === 'End') {\n onEndKeyDown(event);\n // Prevent scrolling to page end\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n // Prevent scrolling for directional key presses\n event.preventDefault();\n }\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target as HTMLElement;\n target.setPointerCapture(event.pointerId);\n // Prevent browser focus behaviour because we focus a thumb manually when values change.\n event.preventDefault();\n // Touch devices have a delay before focusing so won't focus if touch immediately moves\n // away from target (sliding). We want thumb to focus regardless.\n if (context.thumbs.has(target)) {\n target.focus();\n } else {\n onSlideStart(event);\n }\n })}\n onPointerMove={composeEventHandlers(props.onPointerMove, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n })}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })}\n />\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderTrack\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRACK_NAME = 'SliderTrack';\n\ntype SliderTrackElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface SliderTrackProps extends PrimitiveSpanProps {}\n\nconst SliderTrack = React.forwardRef<SliderTrackElement, SliderTrackProps>(\n (props: ScopedProps<SliderTrackProps>, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return (\n <Primitive.span\n data-disabled={context.disabled ? '' : undefined}\n data-orientation={context.orientation}\n {...trackProps}\n ref={forwardedRef}\n />\n );\n }\n);\n\nSliderTrack.displayName = TRACK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderRange\n * -----------------------------------------------------------------------------------------------*/\n\nconst RANGE_NAME = 'SliderRange';\n\ntype SliderRangeElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderRangeProps extends PrimitiveSpanProps {}\n\nconst SliderRange = React.forwardRef<SliderRangeElement, SliderRangeProps>(\n (props: ScopedProps<SliderRangeProps>, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props;\n const context = useSliderContext(RANGE_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);\n const ref = React.useRef<HTMLSpanElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map((value) =>\n convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n\n return (\n <Primitive.span\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n {...rangeProps}\n ref={composedRefs}\n style={{\n ...props.style,\n [orientation.startEdge]: offsetStart + '%',\n [orientation.endEdge]: offsetEnd + '%',\n }}\n />\n );\n }\n);\n\nSliderRange.displayName = RANGE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderThumb\n * -----------------------------------------------------------------------------------------------*/\n\nconst THUMB_NAME = 'SliderThumb';\n\ntype SliderThumbElement = SliderThumbImplElement;\ninterface SliderThumbProps extends Omit<SliderThumbImplProps, 'index'> {}\n\nconst SliderThumb = React.forwardRef<SliderThumbElement, SliderThumbProps>(\n (props: ScopedProps<SliderThumbProps>, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState<SliderThumbImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const index = React.useMemo(\n () => (thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1),\n [getItems, thumb]\n );\n return <SliderThumbImpl {...props} ref={composedRefs} index={index} />;\n }\n);\n\ntype SliderThumbImplElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderThumbImplProps extends PrimitiveSpanProps {\n index: number;\n}\n\nconst SliderThumbImpl = React.forwardRef<SliderThumbImplElement, SliderThumbImplProps>(\n (props: ScopedProps<SliderThumbImplProps>, forwardedRef) => {\n const { __scopeSlider, index, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const size = useSize(thumb);\n // We cast because index could be `-1` which would return undefined\n const value = context.values[index] as number | undefined;\n const percent =\n value === undefined ? 0 : convertValueToPercentage(value, context.min, context.max);\n const label = getLabel(index, context.values.length);\n const orientationSize = size?.[orientation.size];\n const thumbInBoundsOffset = orientationSize\n ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction)\n : 0;\n\n React.useEffect(() => {\n if (thumb) {\n context.thumbs.add(thumb);\n return () => {\n context.thumbs.delete(thumb);\n };\n }\n }, [thumb, context.thumbs]);\n\n return (\n <span\n style={{\n transform: 'var(--radix-slider-thumb-transform)',\n position: 'absolute',\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`,\n }}\n >\n <Collection.ItemSlot scope={props.__scopeSlider}>\n <Primitive.span\n role=\"slider\"\n aria-label={props['aria-label'] || label}\n aria-valuemin={context.min}\n aria-valuenow={value}\n aria-valuemax={context.max}\n aria-orientation={context.orientation}\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n tabIndex={context.disabled ? undefined : 0}\n {...thumbProps}\n ref={composedRefs}\n /**\n * There will be no value on initial render while we work out the index so we hide thumbs\n * without a value, otherwise SSR will render them in the wrong position before they\n * snap into the correct position during hydration which would be visually jarring for\n * slower connections.\n */\n style={value === undefined ? { display: 'none' } : props.style}\n onFocus={composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })}\n />\n </Collection.ItemSlot>\n </span>\n );\n }\n);\n\nSliderThumb.displayName = THUMB_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst BubbleInput = (props: Radix.ComponentPropsWithoutRef<'input'>) => {\n const { value, ...inputProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const prevValue = usePrevious(value);\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const input = ref.current!;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value') as PropertyDescriptor;\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event('input', { bubbles: true });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [prevValue, value]);\n\n /**\n * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n * wrap it will not be able to access its value via the FormData API.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n */\n return <input style={{ display: 'none' }} {...inputProps} ref={ref} defaultValue={value} />;\n};\n\nfunction getNextSortedValues(prevValues: number[] = [], nextValue: number, atIndex: number) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\n\nfunction convertValueToPercentage(value: number, min: number, max: number) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n const percentage = percentPerStep * (value - min);\n return clamp(percentage, [0, 100]);\n}\n\n/**\n * Returns a label for each thumb when there are two or more thumbs\n */\nfunction getLabel(index: number, totalValues: number) {\n if (totalValues > 2) {\n return `Value ${index + 1} of ${totalValues}`;\n } else if (totalValues === 2) {\n return ['Minimum', 'Maximum'][index];\n } else {\n return undefined;\n }\n}\n\n/**\n * Given a `values` array and a `nextValue`, determine which value in\n * the array is closest to `nextValue` and return its index.\n *\n * @example\n * // returns 1\n * getClosestValueIndex([10, 30], 25);\n */\nfunction getClosestValueIndex(values: number[], nextValue: number) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\n\n/**\n * Offsets the thumb centre point while sliding to ensure it remains\n * within the bounds of the slider when reaching the edges\n */\nfunction getThumbInBoundsOffset(width: number, left: number, direction: number) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\n\n/**\n * Gets an array of steps between each value.\n *\n * @example\n * // returns [1, 9]\n * getStepsBetweenValues([10, 11, 20]);\n */\nfunction getStepsBetweenValues(values: number[]) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\n\n/**\n * Verifies the minimum steps between all values is greater than or equal\n * to the expected minimum steps.\n *\n * @example\n * // returns false\n * hasMinStepsBetweenValues([1,2,3], 2);\n *\n * @example\n * // returns true\n * hasMinStepsBetweenValues([1,2,3], 1);\n */\nfunction hasMinStepsBetweenValues(values: number[], minStepsBetweenValues: number) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\n\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(input: readonly [number, number], output: readonly [number, number]) {\n return (value: number) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\n\nfunction getDecimalCount(value: number) {\n return (String(value).split('.')[1] || '').length;\n}\n\nfunction roundValue(value: number, decimalCount: number) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\n\nconst Root = Slider;\nconst Track = SliderTrack;\nconst Range = SliderRange;\nconst Thumb = SliderThumb;\n\nexport {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n};\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps };\n"],"names":["createSliderScope","Slider","SliderTrack","SliderRange","SliderThumb","Root","Track","Range","Thumb","React","clamp","composeEventHandlers","useComposedRefs","createContextScope","useControllableState","useDirection","usePrevious","useSize","Primitive","createCollection","PAGE_KEYS","ARROW_KEYS","BACK_KEYS","SLIDER_NAME","Collection","useCollection","createCollectionScope","createSliderContext","SliderProvider","useSliderContext","forwardRef","props","forwardedRef","name","min","max","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value","onValueChange","onValueCommit","inverted","sliderProps","slider","setSlider","useState","composedRefs","node","thumbRefs","useRef","Set","valueIndexToChangeRef","isHorizontal","isFormControl","Boolean","closest","SliderOrientation","SliderHorizontal","SliderVertical","values","setValues","prop","defaultProp","onChange","thumbs","current","focus","valuesBeforeSlideStartRef","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","handleSlideEnd","prevValue","nextValue","hasChanged","atIndex","commit","decimalCount","getDecimalCount","snapToStep","roundValue","Math","round","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","indexOf","String","__scopeSlider","undefined","onPointerDown","length","event","direction","stepDirection","isPageKey","includes","key","isSkipKey","shiftKey","multiplier","stepInDirection","map","index","SliderOrientationProvider","useSliderOrientationContext","startEdge","endEdge","size","dir","onSlideStart","onSlideMove","onSlideEnd","onStepKeyDown","rectRef","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","rect","getBoundingClientRect","input","width","output","linearScale","left","style","clientX","slideDirection","isBackKey","sliderRef","ref","isSlidingFromBottom","height","top","clientY","SliderImpl","onHomeKeyDown","onEndKeyDown","context","onKeyDown","preventDefault","concat","target","setPointerCapture","pointerId","has","onPointerMove","hasPointerCapture","onPointerUp","releasePointerCapture","TRACK_NAME","trackProps","RANGE_NAME","rangeProps","valuesCount","percentages","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","getItems","thumb","setThumb","useMemo","findIndex","item","SliderThumbImpl","thumbProps","percent","label","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","useEffect","add","delete","transform","position","display","onFocus","BubbleInput","inputProps","inputProto","window","HTMLInputElement","prototype","descriptor","Object","getOwnPropertyDescriptor","setValue","set","Event","bubbles","call","dispatchEvent","sort","a","b","maxSteps","percentPerStep","percentage","totalValues","distances","abs","closestDistance","halfWidth","halfPercent","offset","getStepsBetweenValues","slice","minStepsBetweenValues","stepsBetweenValues","actualMinStepsBetweenValues","ratio","split","rounder","pow"],"version":3,"file":"index.module.js.map"}
|