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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -15,11 +15,13 @@ export interface SliderProps extends Omit<SliderHorizontalProps | SliderVertical
15
15
  value?: number[];
16
16
  defaultValue?: number[];
17
17
  onValueChange?(value: number[]): void;
18
+ inverted?: boolean;
18
19
  }
19
20
  export const Slider: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<HTMLSpanElement>>;
20
21
  type SliderOrientationPrivateProps = {
21
22
  min: number;
22
23
  max: number;
24
+ inverted: boolean;
23
25
  onSlideStart?(value: number): void;
24
26
  onSlideMove?(value: number): void;
25
27
  onHomeKeyDown(event: React.KeyboardEvent): void;
@@ -1 +1 @@
1
- {"mappings":";;;AAeA,iBAAiB,KAAK,GAAG,KAAK,CAAC;AAoB/B,OAAA,wFAEE,CAAC;AAeH,4BACE,SAAQ,IAAI,CACV,qBAAqB,GAAG,mBAAmB,EAC3C,MAAM,6BAA6B,GAAG,cAAc,CACrD;IACD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,cAAc,CAAC,kBAAkB,CAAC,CAAC;IACvD,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACvC;AAED,OAAA,MAAM,2FA4GL,CAAC;AAoBF,qCAAqC;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,WAAW,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,aAAa,CAAC,KAAK,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC;IAChD,YAAY,CAAC,KAAK,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC;IAC/C,aAAa,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,aAAa,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC9E,CAAC;AACF,gCACE,SAAQ,IAAI,CAAC,eAAe,EAAE,MAAM,sBAAsB,CAAC,EACzD,6BAA6B;CAAG;AAGpC,+BAAgC,SAAQ,sBAAsB;IAC5D,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB;AA8DD,6BAA8B,SAAQ,sBAAsB;CAAG;AA2D/D,yBAAyB,MAAM,wBAAwB,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC;AAC9E,8BAA8B;IAC5B,YAAY,CAAC,KAAK,EAAE,MAAM,YAAY,GAAG,IAAI,CAAC;IAC9C,WAAW,CAAC,KAAK,EAAE,MAAM,YAAY,GAAG,IAAI,CAAC;IAC7C,UAAU,CAAC,KAAK,EAAE,MAAM,YAAY,GAAG,IAAI,CAAC;IAC5C,aAAa,CAAC,KAAK,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC;IAChD,YAAY,CAAC,KAAK,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC;IAC/C,aAAa,CAAC,KAAK,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC;CACjD,CAAC;AACF,yBAA0B,SAAQ,iBAAiB,EAAE,sBAAsB;CAAG;AAuE9E,0BAA0B,MAAM,wBAAwB,CAAC,OAAO,UAAU,IAAI,CAAC,CAAC;AAChF,iCAA2B,SAAQ,kBAAkB;CAAG;AAExD,OAAA,MAAM,qGAaL,CAAC;AAWF,iCAA2B,SAAQ,kBAAkB;CAAG;AAExD,OAAA,MAAM,qGA4BL,CAAC;AAWF,iCAA2B,SAAQ,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC;CAAG;AAEzE,OAAA,MAAM,qGAWL,CAAC;AAGF,8BAA+B,SAAQ,kBAAkB;IACvD,KAAK,EAAE,MAAM,CAAC;CACf;AA0MD,OAAA,MAAM,yFAAa,CAAC;AACpB,OAAA,MAAM,+FAAmB,CAAC;AAC1B,OAAA,MAAM,+FAAmB,CAAC;AAC1B,OAAA,MAAM,+FAAmB,CAAC","sources":["packages/react/slider/src/packages/react/slider/src/Slider.tsx","packages/react/slider/src/packages/react/slider/src/index.ts","packages/react/slider/src/index.ts"],"sourcesContent":[null,null,"export {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n} from './Slider';\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps } from './Slider';\n"],"names":[],"version":3,"file":"index.d.ts.map"}
1
+ {"mappings":"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","sources":["packages/react/slider/src/packages/react/slider/src/Slider.tsx","packages/react/slider/src/packages/react/slider/src/index.ts","packages/react/slider/src/index.ts"],"sourcesContent":[null,null,"export {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n} from './Slider';\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps } from './Slider';\n"],"names":[],"version":3,"file":"index.d.ts.map"}
package/dist/index.js CHANGED
@@ -50,17 +50,29 @@ const $1791bb30e2e418d5$var$ARROW_KEYS = [
50
50
  'ArrowRight'
51
51
  ];
52
52
  const $1791bb30e2e418d5$var$BACK_KEYS = {
53
- ltr: [
53
+ 'from-left': [
54
+ 'Home',
55
+ 'PageDown',
54
56
  'ArrowDown',
57
+ 'ArrowLeft'
58
+ ],
59
+ 'from-right': [
55
60
  'Home',
56
- 'ArrowLeft',
57
- 'PageDown'
61
+ 'PageDown',
62
+ 'ArrowDown',
63
+ 'ArrowRight'
58
64
  ],
59
- rtl: [
65
+ 'from-bottom': [
66
+ 'Home',
67
+ 'PageDown',
60
68
  'ArrowDown',
69
+ 'ArrowLeft'
70
+ ],
71
+ 'from-top': [
61
72
  'Home',
62
- 'ArrowRight',
63
- 'PageDown'
73
+ 'PageDown',
74
+ 'ArrowUp',
75
+ 'ArrowLeft'
64
76
  ]
65
77
  };
66
78
  /* -------------------------------------------------------------------------------------------------
@@ -74,7 +86,7 @@ const [$1791bb30e2e418d5$var$SliderProvider, $1791bb30e2e418d5$var$useSliderCont
74
86
  const $1791bb30e2e418d5$export$472062a354075cee = /*#__PURE__*/ $inrcs$react.forwardRef((props, forwardedRef)=>{
75
87
  const { name: name , min: min = 0 , max: max = 100 , step: step = 1 , orientation: orientation = 'horizontal' , disabled: disabled = false , minStepsBetweenThumbs: minStepsBetweenThumbs = 0 , defaultValue: defaultValue = [
76
88
  min
77
- ] , value: value1 , onValueChange: onValueChange = ()=>{} , ...sliderProps } = props;
89
+ ] , value: value1 , onValueChange: onValueChange = ()=>{} , inverted: inverted = false , ...sliderProps } = props;
78
90
  const [slider, setSlider] = $inrcs$react.useState(null);
79
91
  const composedRefs = $inrcs$radixuireactcomposerefs.useComposedRefs(forwardedRef, (node)=>setSlider(node)
80
92
  );
@@ -137,6 +149,7 @@ const $1791bb30e2e418d5$export$472062a354075cee = /*#__PURE__*/ $inrcs$react.for
137
149
  ref: composedRefs,
138
150
  min: min,
139
151
  max: max,
152
+ inverted: inverted,
140
153
  onSlideStart: disabled ? undefined : handleSlideStart,
141
154
  onSlideMove: disabled ? undefined : handleSlideMove,
142
155
  onHomeKeyDown: ()=>!disabled && updateValues(min, 0)
@@ -173,20 +186,21 @@ const $1791bb30e2e418d5$export$472062a354075cee = /*#__PURE__*/ $inrcs$react.for
173
186
  direction: 1
174
187
  });
175
188
  const $1791bb30e2e418d5$var$SliderHorizontal = /*#__PURE__*/ $inrcs$react.forwardRef((props, forwardedRef)=>{
176
- const { min: min , max: max , dir: dir , onSlideStart: onSlideStart , onSlideMove: onSlideMove , onStepKeyDown: onStepKeyDown , ...sliderProps } = props;
189
+ const { min: min , max: max , dir: dir , inverted: inverted , onSlideStart: onSlideStart , onSlideMove: onSlideMove , onStepKeyDown: onStepKeyDown , ...sliderProps } = props;
177
190
  const [slider, setSlider] = $inrcs$react.useState(null);
178
191
  const composedRefs = $inrcs$radixuireactcomposerefs.useComposedRefs(forwardedRef, (node)=>setSlider(node)
179
192
  );
180
193
  const rectRef = $inrcs$react.useRef();
181
194
  const direction = $inrcs$radixuireactdirection.useDirection(dir);
182
195
  const isDirectionLTR = direction === 'ltr';
196
+ const isSlidingFromLeft = isDirectionLTR && !inverted || !isDirectionLTR && inverted;
183
197
  function getValueFromPointer(pointerPosition) {
184
198
  const rect = rectRef.current || slider.getBoundingClientRect();
185
199
  const input = [
186
200
  0,
187
201
  rect.width
188
202
  ];
189
- const output = isDirectionLTR ? [
203
+ const output = isSlidingFromLeft ? [
190
204
  min,
191
205
  max
192
206
  ] : [
@@ -199,9 +213,9 @@ const $1791bb30e2e418d5$var$SliderHorizontal = /*#__PURE__*/ $inrcs$react.forwar
199
213
  }
200
214
  return /*#__PURE__*/ $inrcs$react.createElement($1791bb30e2e418d5$var$SliderOrientationProvider, {
201
215
  scope: props.__scopeSlider,
202
- startEdge: isDirectionLTR ? 'left' : 'right',
203
- endEdge: isDirectionLTR ? 'right' : 'left',
204
- direction: isDirectionLTR ? 1 : -1,
216
+ startEdge: isSlidingFromLeft ? 'left' : 'right',
217
+ endEdge: isSlidingFromLeft ? 'right' : 'left',
218
+ direction: isSlidingFromLeft ? 1 : -1,
205
219
  size: "width"
206
220
  }, /*#__PURE__*/ $inrcs$react.createElement($1791bb30e2e418d5$var$SliderImpl, ($parcel$interopDefault($inrcs$babelruntimehelpersextends))({
207
221
  dir: direction,
@@ -223,7 +237,8 @@ const $1791bb30e2e418d5$var$SliderHorizontal = /*#__PURE__*/ $inrcs$react.forwar
223
237
  onSlideEnd: ()=>rectRef.current = undefined
224
238
  ,
225
239
  onStepKeyDown: (event)=>{
226
- const isBackKey = $1791bb30e2e418d5$var$BACK_KEYS[direction].includes(event.key);
240
+ const slideDirection = isSlidingFromLeft ? 'from-left' : 'from-right';
241
+ const isBackKey = $1791bb30e2e418d5$var$BACK_KEYS[slideDirection].includes(event.key);
227
242
  onStepKeyDown === null || onStepKeyDown === void 0 || onStepKeyDown({
228
243
  event: event,
229
244
  direction: isBackKey ? -1 : 1
@@ -234,19 +249,23 @@ const $1791bb30e2e418d5$var$SliderHorizontal = /*#__PURE__*/ $inrcs$react.forwar
234
249
  /* -------------------------------------------------------------------------------------------------
235
250
  * SliderVertical
236
251
  * -----------------------------------------------------------------------------------------------*/ const $1791bb30e2e418d5$var$SliderVertical = /*#__PURE__*/ $inrcs$react.forwardRef((props, forwardedRef)=>{
237
- const { min: min , max: max , onSlideStart: onSlideStart , onSlideMove: onSlideMove , onStepKeyDown: onStepKeyDown , ...sliderProps } = props;
252
+ const { min: min , max: max , inverted: inverted , onSlideStart: onSlideStart , onSlideMove: onSlideMove , onStepKeyDown: onStepKeyDown , ...sliderProps } = props;
238
253
  const sliderRef = $inrcs$react.useRef(null);
239
254
  const ref = $inrcs$radixuireactcomposerefs.useComposedRefs(forwardedRef, sliderRef);
240
255
  const rectRef = $inrcs$react.useRef();
256
+ const isSlidingFromBottom = !inverted;
241
257
  function getValueFromPointer(pointerPosition) {
242
258
  const rect = rectRef.current || sliderRef.current.getBoundingClientRect();
243
259
  const input = [
244
260
  0,
245
261
  rect.height
246
262
  ];
247
- const output = [
263
+ const output = isSlidingFromBottom ? [
248
264
  max,
249
265
  min
266
+ ] : [
267
+ min,
268
+ max
250
269
  ];
251
270
  const value = $1791bb30e2e418d5$var$linearScale(input, output);
252
271
  rectRef.current = rect;
@@ -254,10 +273,10 @@ const $1791bb30e2e418d5$var$SliderHorizontal = /*#__PURE__*/ $inrcs$react.forwar
254
273
  }
255
274
  return /*#__PURE__*/ $inrcs$react.createElement($1791bb30e2e418d5$var$SliderOrientationProvider, {
256
275
  scope: props.__scopeSlider,
257
- startEdge: "bottom",
258
- endEdge: "top",
276
+ startEdge: isSlidingFromBottom ? 'bottom' : 'top',
277
+ endEdge: isSlidingFromBottom ? 'top' : 'bottom',
259
278
  size: "height",
260
- direction: 1
279
+ direction: isSlidingFromBottom ? 1 : -1
261
280
  }, /*#__PURE__*/ $inrcs$react.createElement($1791bb30e2e418d5$var$SliderImpl, ($parcel$interopDefault($inrcs$babelruntimehelpersextends))({
262
281
  "data-orientation": "vertical"
263
282
  }, sliderProps, {
@@ -277,7 +296,8 @@ const $1791bb30e2e418d5$var$SliderHorizontal = /*#__PURE__*/ $inrcs$react.forwar
277
296
  onSlideEnd: ()=>rectRef.current = undefined
278
297
  ,
279
298
  onStepKeyDown: (event)=>{
280
- const isBackKey = $1791bb30e2e418d5$var$BACK_KEYS.ltr.includes(event.key);
299
+ const slideDirection = isSlidingFromBottom ? 'from-bottom' : 'from-top';
300
+ const isBackKey = $1791bb30e2e418d5$var$BACK_KEYS[slideDirection].includes(event.key);
281
301
  onStepKeyDown === null || onStepKeyDown === void 0 || onStepKeyDown({
282
302
  event: event,
283
303
  direction: isBackKey ? -1 : 1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react/slider/src/index.ts","packages/react/slider/src/Slider.tsx"],"sourcesContent":["export {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n} from './Slider';\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps } from './Slider';\n","import * as React from 'react';\nimport { clamp } from '@radix-ui/number';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { createCollection } from '@radix-ui/react-collection';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\n\nconst PAGE_KEYS = ['PageUp', 'PageDown'];\nconst ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\nconst BACK_KEYS: Record<Direction, string[]> = {\n ltr: ['ArrowDown', 'Home', 'ArrowLeft', 'PageDown'],\n rtl: ['ArrowDown', 'Home', 'ArrowRight', 'PageDown'],\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Slider\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLIDER_NAME = 'Slider';\n\nconst [Collection, useCollection, createCollectionScope] =\n createCollection<SliderThumbElement>(SLIDER_NAME);\n\ntype ScopedProps<P> = P & { __scopeSlider?: Scope };\nconst [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope,\n]);\n\ntype SliderContextValue = {\n disabled?: boolean;\n min: number;\n max: number;\n values: number[];\n valueIndexToChangeRef: React.MutableRefObject<number>;\n thumbs: Set<SliderThumbElement>;\n orientation: SliderProps['orientation'];\n};\n\nconst [SliderProvider, useSliderContext] = createSliderContext<SliderContextValue>(SLIDER_NAME);\n\ntype SliderElement = SliderHorizontalElement | SliderVerticalElement;\ninterface SliderProps\n extends Omit<\n SliderHorizontalProps | SliderVerticalProps,\n keyof SliderOrientationPrivateProps | 'defaultValue'\n > {\n name?: string;\n disabled?: boolean;\n orientation?: React.AriaAttributes['aria-orientation'];\n dir?: Direction;\n min?: number;\n max?: number;\n step?: number;\n minStepsBetweenThumbs?: number;\n value?: number[];\n defaultValue?: number[];\n onValueChange?(value: number[]): void;\n}\n\nconst Slider = React.forwardRef<SliderElement, SliderProps>(\n (props: ScopedProps<SliderProps>, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = 'horizontal',\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {},\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const thumbRefs = React.useRef<SliderContextValue['thumbs']>(new Set());\n const valueIndexToChangeRef = React.useRef<number>(0);\n const isHorizontal = orientation === 'horizontal';\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = slider ? Boolean(slider.closest('form')) : true;\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value);\n },\n });\n\n function handleSlideStart(value: number) {\n const closestIndex = getClosestValueIndex(values, value);\n updateValues(value, closestIndex);\n }\n\n function handleSlideMove(value: number) {\n updateValues(value, valueIndexToChangeRef.current);\n }\n\n function updateValues(value: number, atIndex: number) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n return String(nextValues) === String(prevValues) ? prevValues : nextValues;\n } else {\n return prevValues;\n }\n });\n }\n\n return (\n <SliderProvider\n scope={props.__scopeSlider}\n disabled={disabled}\n min={min}\n max={max}\n valueIndexToChangeRef={valueIndexToChangeRef}\n thumbs={thumbRefs.current}\n values={values}\n orientation={orientation}\n >\n <Collection.Provider scope={props.__scopeSlider}>\n <Collection.Slot scope={props.__scopeSlider}>\n <SliderOrientation\n aria-disabled={disabled}\n data-disabled={disabled ? '' : undefined}\n {...sliderProps}\n ref={composedRefs}\n min={min}\n max={max}\n onSlideStart={disabled ? undefined : handleSlideStart}\n onSlideMove={disabled ? undefined : handleSlideMove}\n onHomeKeyDown={() => !disabled && updateValues(min, 0)}\n onEndKeyDown={() => !disabled && updateValues(max, values.length - 1)}\n onStepKeyDown={({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || (event.shiftKey && ARROW_KEYS.includes(event.key));\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value + stepInDirection, atIndex);\n }\n }}\n />\n </Collection.Slot>\n </Collection.Provider>\n {isFormControl &&\n values.map((value, index) => (\n <BubbleInput\n key={index}\n name={name ? name + (values.length > 1 ? '[]' : '') : undefined}\n value={value}\n />\n ))}\n </SliderProvider>\n );\n }\n);\n\nSlider.displayName = SLIDER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderHorizontal\n * -----------------------------------------------------------------------------------------------*/\n\nconst [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext<{\n startEdge: 'bottom' | 'left' | 'right';\n endEdge: 'top' | 'right' | 'left';\n size: keyof NonNullable<ReturnType<typeof useSize>>;\n direction: number;\n}>(SLIDER_NAME, {\n startEdge: 'left',\n endEdge: 'right',\n size: 'width',\n direction: 1,\n});\n\ntype SliderOrientationPrivateProps = {\n min: number;\n max: number;\n onSlideStart?(value: number): void;\n onSlideMove?(value: number): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(step: { event: React.KeyboardEvent; direction: number }): void;\n};\ninterface SliderOrientationProps\n extends Omit<SliderImplProps, keyof SliderImplPrivateProps>,\n SliderOrientationPrivateProps {}\n\ntype SliderHorizontalElement = SliderImplElement;\ninterface SliderHorizontalProps extends SliderOrientationProps {\n dir?: Direction;\n}\n\nconst SliderHorizontal = React.forwardRef<SliderHorizontalElement, SliderHorizontalProps>(\n (props: ScopedProps<SliderHorizontalProps>, forwardedRef) => {\n const { min, max, dir, onSlideStart, onSlideMove, onStepKeyDown, ...sliderProps } = props;\n const [slider, setSlider] = React.useState<SliderImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef<ClientRect>();\n const direction = useDirection(dir);\n const isDirectionLTR = direction === 'ltr';\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || slider!.getBoundingClientRect();\n const input: [number, number] = [0, rect.width];\n const output: [number, number] = isDirectionLTR ? [min, max] : [max, min];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isDirectionLTR ? 'left' : 'right'}\n endEdge={isDirectionLTR ? 'right' : 'left'}\n direction={isDirectionLTR ? 1 : -1}\n size=\"width\"\n >\n <SliderImpl\n dir={direction}\n data-orientation=\"horizontal\"\n {...sliderProps}\n ref={composedRefs}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: 'translateX(-50%)',\n }}\n onSlideStart={(event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart?.(value);\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove?.(value);\n }}\n onSlideEnd={() => (rectRef.current = undefined)}\n onStepKeyDown={(event) => {\n const isBackKey = BACK_KEYS[direction].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }}\n />\n </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderVertical\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderVerticalElement = SliderImplElement;\ninterface SliderVerticalProps extends SliderOrientationProps {}\n\nconst SliderVertical = React.forwardRef<SliderVerticalElement, SliderVerticalProps>(\n (props: ScopedProps<SliderVerticalProps>, forwardedRef) => {\n const { min, max, onSlideStart, onSlideMove, onStepKeyDown, ...sliderProps } = props;\n const sliderRef = React.useRef<SliderImplElement>(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef<ClientRect>();\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || sliderRef.current!.getBoundingClientRect();\n const input: [number, number] = [0, rect.height];\n const output: [number, number] = [max, min];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge=\"bottom\"\n endEdge=\"top\"\n size=\"height\"\n direction={1}\n >\n <SliderImpl\n data-orientation=\"vertical\"\n {...sliderProps}\n ref={ref}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: 'translateY(50%)',\n }}\n onSlideStart={(event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart?.(value);\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove?.(value);\n }}\n onSlideEnd={() => (rectRef.current = undefined)}\n onStepKeyDown={(event) => {\n const isBackKey = BACK_KEYS.ltr.includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }}\n />\n </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderImpl\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderImplElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;\ntype SliderImplPrivateProps = {\n onSlideStart(event: React.PointerEvent): void;\n onSlideMove(event: React.PointerEvent): void;\n onSlideEnd(event: React.PointerEvent): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(event: React.KeyboardEvent): void;\n};\ninterface SliderImplProps extends PrimitiveDivProps, SliderImplPrivateProps {}\n\nconst SliderImpl = React.forwardRef<SliderImplElement, SliderImplProps>(\n (props: ScopedProps<SliderImplProps>, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const context = useSliderContext(SLIDER_NAME, __scopeSlider);\n\n return (\n <Primitive.span\n {...sliderProps}\n ref={forwardedRef}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === 'Home') {\n onHomeKeyDown(event);\n // Prevent scrolling to page start\n event.preventDefault();\n } else if (event.key === 'End') {\n onEndKeyDown(event);\n // Prevent scrolling to page end\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n // Prevent scrolling for directional key presses\n event.preventDefault();\n }\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target as HTMLElement;\n target.setPointerCapture(event.pointerId);\n // Prevent browser focus behaviour because we focus a thumb manually when values change.\n event.preventDefault();\n // Touch devices have a delay before focusing so won't focus if touch immediately moves\n // away from target (sliding). We want thumb to focus regardless.\n if (context.thumbs.has(target)) {\n target.focus();\n } else {\n onSlideStart(event);\n }\n })}\n onPointerMove={composeEventHandlers(props.onPointerMove, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n })}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })}\n />\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderTrack\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRACK_NAME = 'SliderTrack';\n\ntype SliderTrackElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface SliderTrackProps extends PrimitiveSpanProps {}\n\nconst SliderTrack = React.forwardRef<SliderTrackElement, SliderTrackProps>(\n (props: ScopedProps<SliderTrackProps>, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return (\n <Primitive.span\n data-disabled={context.disabled ? '' : undefined}\n data-orientation={context.orientation}\n {...trackProps}\n ref={forwardedRef}\n />\n );\n }\n);\n\nSliderTrack.displayName = TRACK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderRange\n * -----------------------------------------------------------------------------------------------*/\n\nconst RANGE_NAME = 'SliderRange';\n\ntype SliderRangeElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderRangeProps extends PrimitiveSpanProps {}\n\nconst SliderRange = React.forwardRef<SliderRangeElement, SliderRangeProps>(\n (props: ScopedProps<SliderRangeProps>, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props;\n const context = useSliderContext(RANGE_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);\n const ref = React.useRef<HTMLSpanElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map((value) =>\n convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n\n return (\n <Primitive.span\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n {...rangeProps}\n ref={composedRefs}\n style={{\n ...props.style,\n [orientation.startEdge]: offsetStart + '%',\n [orientation.endEdge]: offsetEnd + '%',\n }}\n />\n );\n }\n);\n\nSliderRange.displayName = RANGE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderThumb\n * -----------------------------------------------------------------------------------------------*/\n\nconst THUMB_NAME = 'SliderThumb';\n\ntype SliderThumbElement = SliderThumbImplElement;\ninterface SliderThumbProps extends Omit<SliderThumbImplProps, 'index'> {}\n\nconst SliderThumb = React.forwardRef<SliderThumbElement, SliderThumbProps>(\n (props: ScopedProps<SliderThumbProps>, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState<SliderThumbImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const index = React.useMemo(\n () => (thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1),\n [getItems, thumb]\n );\n return <SliderThumbImpl {...props} ref={composedRefs} index={index} />;\n }\n);\n\ntype SliderThumbImplElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderThumbImplProps extends PrimitiveSpanProps {\n index: number;\n}\n\nconst SliderThumbImpl = React.forwardRef<SliderThumbImplElement, SliderThumbImplProps>(\n (props: ScopedProps<SliderThumbImplProps>, forwardedRef) => {\n const { __scopeSlider, index, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const size = useSize(thumb);\n // We cast because index could be `-1` which would return undefined\n const value = context.values[index] as number | undefined;\n const percent =\n value === undefined ? 0 : convertValueToPercentage(value, context.min, context.max);\n const label = getLabel(index, context.values.length);\n const orientationSize = size?.[orientation.size];\n const thumbInBoundsOffset = orientationSize\n ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction)\n : 0;\n\n React.useEffect(() => {\n if (thumb) {\n context.thumbs.add(thumb);\n return () => {\n context.thumbs.delete(thumb);\n };\n }\n }, [thumb, context.thumbs]);\n\n return (\n <span\n style={{\n transform: 'var(--radix-slider-thumb-transform)',\n position: 'absolute',\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`,\n }}\n >\n <Collection.ItemSlot scope={props.__scopeSlider}>\n <Primitive.span\n role=\"slider\"\n aria-label={props['aria-label'] || label}\n aria-valuemin={context.min}\n aria-valuenow={value}\n aria-valuemax={context.max}\n aria-orientation={context.orientation}\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n tabIndex={context.disabled ? undefined : 0}\n {...thumbProps}\n ref={composedRefs}\n /**\n * There will be no value on initial render while we work out the index so we hide thumbs\n * without a value, otherwise SSR will render them in the wrong position before they\n * snap into the correct position during hydration which would be visually jarring for\n * slower connections.\n */\n style={value === undefined ? { display: 'none' } : props.style}\n onFocus={composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })}\n />\n </Collection.ItemSlot>\n </span>\n );\n }\n);\n\nSliderThumb.displayName = THUMB_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst BubbleInput = (props: Radix.ComponentPropsWithoutRef<'input'>) => {\n const { value, ...inputProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const prevValue = usePrevious(value);\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const input = ref.current!;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value') as PropertyDescriptor;\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event('input', { bubbles: true });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [prevValue, value]);\n\n /**\n * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n * wrap it will not be able to access its value via the FormData API.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n */\n return <input style={{ display: 'none' }} {...inputProps} ref={ref} defaultValue={value} />;\n};\n\nfunction getNextSortedValues(prevValues: number[] = [], nextValue: number, atIndex: number) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\n\nfunction convertValueToPercentage(value: number, min: number, max: number) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n return percentPerStep * (value - min);\n}\n\n/**\n * Returns a label for each thumb when there are two or more thumbs\n */\nfunction getLabel(index: number, totalValues: number) {\n if (totalValues > 2) {\n return `Value ${index + 1} of ${totalValues}`;\n } else if (totalValues === 2) {\n return ['Minimum', 'Maximum'][index];\n } else {\n return undefined;\n }\n}\n\n/**\n * Given a `values` array and a `nextValue`, determine which value in\n * the array is closest to `nextValue` and return its index.\n *\n * @example\n * // returns 1\n * getClosestValueIndex([10, 30], 25);\n */\nfunction getClosestValueIndex(values: number[], nextValue: number) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\n\n/**\n * Offsets the thumb centre point while sliding to ensure it remains\n * within the bounds of the slider when reaching the edges\n */\nfunction getThumbInBoundsOffset(width: number, left: number, direction: number) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\n\n/**\n * Gets an array of steps between each value.\n *\n * @example\n * // returns [1, 9]\n * getStepsBetweenValues([10, 11, 20]);\n */\nfunction getStepsBetweenValues(values: number[]) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\n\n/**\n * Verifies the minimum steps between all values is greater than or equal\n * to the expected minimum steps.\n *\n * @example\n * // returns false\n * hasMinStepsBetweenValues([1,2,3], 2);\n *\n * @example\n * // returns true\n * hasMinStepsBetweenValues([1,2,3], 1);\n */\nfunction hasMinStepsBetweenValues(values: number[], minStepsBetweenValues: number) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\n\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(input: readonly [number, number], output: readonly [number, number]) {\n return (value: number) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\n\nfunction getDecimalCount(value: number) {\n return (String(value).split('.')[1] || '').length;\n}\n\nfunction roundValue(value: number, decimalCount: number) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\n\nconst Root = Slider;\nconst Track = SliderTrack;\nconst Range = SliderRange;\nconst Thumb = SliderThumb;\n\nexport {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n};\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps };\n"],"names":["createSliderScope","Slider","SliderTrack","SliderRange","SliderThumb","Root","Track","Range","Thumb","React","clamp","composeEventHandlers","useComposedRefs","createContextScope","useControllableState","useDirection","usePrevious","useSize","Primitive","createCollection","PAGE_KEYS","ARROW_KEYS","BACK_KEYS","ltr","rtl","SLIDER_NAME","Collection","useCollection","createCollectionScope","createSliderContext","SliderProvider","useSliderContext","forwardRef","props","forwardedRef","name","min","max","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value","onValueChange","sliderProps","slider","setSlider","useState","composedRefs","node","thumbRefs","useRef","Set","valueIndexToChangeRef","isHorizontal","isFormControl","Boolean","closest","SliderOrientation","SliderHorizontal","SliderVertical","values","setValues","prop","defaultProp","onChange","thumbs","current","focus","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","atIndex","decimalCount","getDecimalCount","snapToStep","roundValue","Math","round","nextValue","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","indexOf","String","__scopeSlider","undefined","length","event","direction","stepDirection","isPageKey","includes","key","isSkipKey","shiftKey","multiplier","stepInDirection","map","index","SliderOrientationProvider","useSliderOrientationContext","startEdge","endEdge","size","dir","onSlideStart","onSlideMove","onStepKeyDown","rectRef","isDirectionLTR","getValueFromPointer","pointerPosition","rect","getBoundingClientRect","input","width","output","linearScale","left","style","clientX","isBackKey","sliderRef","ref","height","top","clientY","SliderImpl","onSlideEnd","onHomeKeyDown","onEndKeyDown","context","onKeyDown","preventDefault","concat","onPointerDown","target","setPointerCapture","pointerId","has","onPointerMove","hasPointerCapture","onPointerUp","releasePointerCapture","TRACK_NAME","trackProps","RANGE_NAME","rangeProps","valuesCount","percentages","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","getItems","thumb","setThumb","useMemo","findIndex","item","SliderThumbImpl","thumbProps","percent","label","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","useEffect","add","delete","transform","position","display","onFocus","BubbleInput","inputProps","prevValue","inputProto","window","HTMLInputElement","prototype","descriptor","Object","getOwnPropertyDescriptor","setValue","set","Event","bubbles","call","dispatchEvent","sort","a","b","maxSteps","percentPerStep","totalValues","distances","abs","closestDistance","halfWidth","halfPercent","offset","getStepsBetweenValues","slice","minStepsBetweenValues","stepsBetweenValues","actualMinStepsBetweenValues","ratio","split","rounder","pow"],"version":3,"file":"index.js.map"}
1
+ {"mappings":"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","sources":["packages/react/slider/src/index.ts","packages/react/slider/src/Slider.tsx"],"sourcesContent":["export {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n} from './Slider';\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps } from './Slider';\n","import * as React from 'react';\nimport { clamp } from '@radix-ui/number';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { createCollection } from '@radix-ui/react-collection';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\n\nconst PAGE_KEYS = ['PageUp', 'PageDown'];\nconst ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\ntype SlideDirection = 'from-left' | 'from-right' | 'from-bottom' | 'from-top';\nconst BACK_KEYS: Record<SlideDirection, string[]> = {\n 'from-left': ['Home', 'PageDown', 'ArrowDown', 'ArrowLeft'],\n 'from-right': ['Home', 'PageDown', 'ArrowDown', 'ArrowRight'],\n 'from-bottom': ['Home', 'PageDown', 'ArrowDown', 'ArrowLeft'],\n 'from-top': ['Home', 'PageDown', 'ArrowUp', 'ArrowLeft'],\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Slider\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLIDER_NAME = 'Slider';\n\nconst [Collection, useCollection, createCollectionScope] =\n createCollection<SliderThumbElement>(SLIDER_NAME);\n\ntype ScopedProps<P> = P & { __scopeSlider?: Scope };\nconst [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope,\n]);\n\ntype SliderContextValue = {\n disabled?: boolean;\n min: number;\n max: number;\n values: number[];\n valueIndexToChangeRef: React.MutableRefObject<number>;\n thumbs: Set<SliderThumbElement>;\n orientation: SliderProps['orientation'];\n};\n\nconst [SliderProvider, useSliderContext] = createSliderContext<SliderContextValue>(SLIDER_NAME);\n\ntype SliderElement = SliderHorizontalElement | SliderVerticalElement;\ninterface SliderProps\n extends Omit<\n SliderHorizontalProps | SliderVerticalProps,\n keyof SliderOrientationPrivateProps | 'defaultValue'\n > {\n name?: string;\n disabled?: boolean;\n orientation?: React.AriaAttributes['aria-orientation'];\n dir?: Direction;\n min?: number;\n max?: number;\n step?: number;\n minStepsBetweenThumbs?: number;\n value?: number[];\n defaultValue?: number[];\n onValueChange?(value: number[]): void;\n inverted?: boolean;\n}\n\nconst Slider = React.forwardRef<SliderElement, SliderProps>(\n (props: ScopedProps<SliderProps>, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = 'horizontal',\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {},\n inverted = false,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const thumbRefs = React.useRef<SliderContextValue['thumbs']>(new Set());\n const valueIndexToChangeRef = React.useRef<number>(0);\n const isHorizontal = orientation === 'horizontal';\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = slider ? Boolean(slider.closest('form')) : true;\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value);\n },\n });\n\n function handleSlideStart(value: number) {\n const closestIndex = getClosestValueIndex(values, value);\n updateValues(value, closestIndex);\n }\n\n function handleSlideMove(value: number) {\n updateValues(value, valueIndexToChangeRef.current);\n }\n\n function updateValues(value: number, atIndex: number) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n return String(nextValues) === String(prevValues) ? prevValues : nextValues;\n } else {\n return prevValues;\n }\n });\n }\n\n return (\n <SliderProvider\n scope={props.__scopeSlider}\n disabled={disabled}\n min={min}\n max={max}\n valueIndexToChangeRef={valueIndexToChangeRef}\n thumbs={thumbRefs.current}\n values={values}\n orientation={orientation}\n >\n <Collection.Provider scope={props.__scopeSlider}>\n <Collection.Slot scope={props.__scopeSlider}>\n <SliderOrientation\n aria-disabled={disabled}\n data-disabled={disabled ? '' : undefined}\n {...sliderProps}\n ref={composedRefs}\n min={min}\n max={max}\n inverted={inverted}\n onSlideStart={disabled ? undefined : handleSlideStart}\n onSlideMove={disabled ? undefined : handleSlideMove}\n onHomeKeyDown={() => !disabled && updateValues(min, 0)}\n onEndKeyDown={() => !disabled && updateValues(max, values.length - 1)}\n onStepKeyDown={({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || (event.shiftKey && ARROW_KEYS.includes(event.key));\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value + stepInDirection, atIndex);\n }\n }}\n />\n </Collection.Slot>\n </Collection.Provider>\n {isFormControl &&\n values.map((value, index) => (\n <BubbleInput\n key={index}\n name={name ? name + (values.length > 1 ? '[]' : '') : undefined}\n value={value}\n />\n ))}\n </SliderProvider>\n );\n }\n);\n\nSlider.displayName = SLIDER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderHorizontal\n * -----------------------------------------------------------------------------------------------*/\n\ntype Side = 'top' | 'right' | 'bottom' | 'left';\n\nconst [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext<{\n startEdge: Side;\n endEdge: Side;\n size: keyof NonNullable<ReturnType<typeof useSize>>;\n direction: number;\n}>(SLIDER_NAME, {\n startEdge: 'left',\n endEdge: 'right',\n size: 'width',\n direction: 1,\n});\n\ntype SliderOrientationPrivateProps = {\n min: number;\n max: number;\n inverted: boolean;\n onSlideStart?(value: number): void;\n onSlideMove?(value: number): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(step: { event: React.KeyboardEvent; direction: number }): void;\n};\ninterface SliderOrientationProps\n extends Omit<SliderImplProps, keyof SliderImplPrivateProps>,\n SliderOrientationPrivateProps {}\n\ntype SliderHorizontalElement = SliderImplElement;\ninterface SliderHorizontalProps extends SliderOrientationProps {\n dir?: Direction;\n}\n\nconst SliderHorizontal = React.forwardRef<SliderHorizontalElement, SliderHorizontalProps>(\n (props: ScopedProps<SliderHorizontalProps>, forwardedRef) => {\n const { min, max, dir, inverted, onSlideStart, onSlideMove, onStepKeyDown, ...sliderProps } =\n props;\n const [slider, setSlider] = React.useState<SliderImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef<ClientRect>();\n const direction = useDirection(dir);\n const isDirectionLTR = direction === 'ltr';\n const isSlidingFromLeft = (isDirectionLTR && !inverted) || (!isDirectionLTR && inverted);\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || slider!.getBoundingClientRect();\n const input: [number, number] = [0, rect.width];\n const output: [number, number] = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromLeft ? 'left' : 'right'}\n endEdge={isSlidingFromLeft ? 'right' : 'left'}\n direction={isSlidingFromLeft ? 1 : -1}\n size=\"width\"\n >\n <SliderImpl\n dir={direction}\n data-orientation=\"horizontal\"\n {...sliderProps}\n ref={composedRefs}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: 'translateX(-50%)',\n }}\n onSlideStart={(event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart?.(value);\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove?.(value);\n }}\n onSlideEnd={() => (rectRef.current = undefined)}\n onStepKeyDown={(event) => {\n const slideDirection = isSlidingFromLeft ? 'from-left' : 'from-right';\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }}\n />\n </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderVertical\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderVerticalElement = SliderImplElement;\ninterface SliderVerticalProps extends SliderOrientationProps {}\n\nconst SliderVertical = React.forwardRef<SliderVerticalElement, SliderVerticalProps>(\n (props: ScopedProps<SliderVerticalProps>, forwardedRef) => {\n const { min, max, inverted, onSlideStart, onSlideMove, onStepKeyDown, ...sliderProps } = props;\n const sliderRef = React.useRef<SliderImplElement>(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef<ClientRect>();\n const isSlidingFromBottom = !inverted;\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || sliderRef.current!.getBoundingClientRect();\n const input: [number, number] = [0, rect.height];\n const output: [number, number] = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromBottom ? 'bottom' : 'top'}\n endEdge={isSlidingFromBottom ? 'top' : 'bottom'}\n size=\"height\"\n direction={isSlidingFromBottom ? 1 : -1}\n >\n <SliderImpl\n data-orientation=\"vertical\"\n {...sliderProps}\n ref={ref}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: 'translateY(50%)',\n }}\n onSlideStart={(event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart?.(value);\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove?.(value);\n }}\n onSlideEnd={() => (rectRef.current = undefined)}\n onStepKeyDown={(event) => {\n const slideDirection = isSlidingFromBottom ? 'from-bottom' : 'from-top';\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }}\n />\n </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderImpl\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderImplElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;\ntype SliderImplPrivateProps = {\n onSlideStart(event: React.PointerEvent): void;\n onSlideMove(event: React.PointerEvent): void;\n onSlideEnd(event: React.PointerEvent): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(event: React.KeyboardEvent): void;\n};\ninterface SliderImplProps extends PrimitiveDivProps, SliderImplPrivateProps {}\n\nconst SliderImpl = React.forwardRef<SliderImplElement, SliderImplProps>(\n (props: ScopedProps<SliderImplProps>, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const context = useSliderContext(SLIDER_NAME, __scopeSlider);\n\n return (\n <Primitive.span\n {...sliderProps}\n ref={forwardedRef}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === 'Home') {\n onHomeKeyDown(event);\n // Prevent scrolling to page start\n event.preventDefault();\n } else if (event.key === 'End') {\n onEndKeyDown(event);\n // Prevent scrolling to page end\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n // Prevent scrolling for directional key presses\n event.preventDefault();\n }\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target as HTMLElement;\n target.setPointerCapture(event.pointerId);\n // Prevent browser focus behaviour because we focus a thumb manually when values change.\n event.preventDefault();\n // Touch devices have a delay before focusing so won't focus if touch immediately moves\n // away from target (sliding). We want thumb to focus regardless.\n if (context.thumbs.has(target)) {\n target.focus();\n } else {\n onSlideStart(event);\n }\n })}\n onPointerMove={composeEventHandlers(props.onPointerMove, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n })}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })}\n />\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderTrack\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRACK_NAME = 'SliderTrack';\n\ntype SliderTrackElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface SliderTrackProps extends PrimitiveSpanProps {}\n\nconst SliderTrack = React.forwardRef<SliderTrackElement, SliderTrackProps>(\n (props: ScopedProps<SliderTrackProps>, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return (\n <Primitive.span\n data-disabled={context.disabled ? '' : undefined}\n data-orientation={context.orientation}\n {...trackProps}\n ref={forwardedRef}\n />\n );\n }\n);\n\nSliderTrack.displayName = TRACK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderRange\n * -----------------------------------------------------------------------------------------------*/\n\nconst RANGE_NAME = 'SliderRange';\n\ntype SliderRangeElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderRangeProps extends PrimitiveSpanProps {}\n\nconst SliderRange = React.forwardRef<SliderRangeElement, SliderRangeProps>(\n (props: ScopedProps<SliderRangeProps>, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props;\n const context = useSliderContext(RANGE_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);\n const ref = React.useRef<HTMLSpanElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map((value) =>\n convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n\n return (\n <Primitive.span\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n {...rangeProps}\n ref={composedRefs}\n style={{\n ...props.style,\n [orientation.startEdge]: offsetStart + '%',\n [orientation.endEdge]: offsetEnd + '%',\n }}\n />\n );\n }\n);\n\nSliderRange.displayName = RANGE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderThumb\n * -----------------------------------------------------------------------------------------------*/\n\nconst THUMB_NAME = 'SliderThumb';\n\ntype SliderThumbElement = SliderThumbImplElement;\ninterface SliderThumbProps extends Omit<SliderThumbImplProps, 'index'> {}\n\nconst SliderThumb = React.forwardRef<SliderThumbElement, SliderThumbProps>(\n (props: ScopedProps<SliderThumbProps>, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState<SliderThumbImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const index = React.useMemo(\n () => (thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1),\n [getItems, thumb]\n );\n return <SliderThumbImpl {...props} ref={composedRefs} index={index} />;\n }\n);\n\ntype SliderThumbImplElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderThumbImplProps extends PrimitiveSpanProps {\n index: number;\n}\n\nconst SliderThumbImpl = React.forwardRef<SliderThumbImplElement, SliderThumbImplProps>(\n (props: ScopedProps<SliderThumbImplProps>, forwardedRef) => {\n const { __scopeSlider, index, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const size = useSize(thumb);\n // We cast because index could be `-1` which would return undefined\n const value = context.values[index] as number | undefined;\n const percent =\n value === undefined ? 0 : convertValueToPercentage(value, context.min, context.max);\n const label = getLabel(index, context.values.length);\n const orientationSize = size?.[orientation.size];\n const thumbInBoundsOffset = orientationSize\n ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction)\n : 0;\n\n React.useEffect(() => {\n if (thumb) {\n context.thumbs.add(thumb);\n return () => {\n context.thumbs.delete(thumb);\n };\n }\n }, [thumb, context.thumbs]);\n\n return (\n <span\n style={{\n transform: 'var(--radix-slider-thumb-transform)',\n position: 'absolute',\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`,\n }}\n >\n <Collection.ItemSlot scope={props.__scopeSlider}>\n <Primitive.span\n role=\"slider\"\n aria-label={props['aria-label'] || label}\n aria-valuemin={context.min}\n aria-valuenow={value}\n aria-valuemax={context.max}\n aria-orientation={context.orientation}\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n tabIndex={context.disabled ? undefined : 0}\n {...thumbProps}\n ref={composedRefs}\n /**\n * There will be no value on initial render while we work out the index so we hide thumbs\n * without a value, otherwise SSR will render them in the wrong position before they\n * snap into the correct position during hydration which would be visually jarring for\n * slower connections.\n */\n style={value === undefined ? { display: 'none' } : props.style}\n onFocus={composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })}\n />\n </Collection.ItemSlot>\n </span>\n );\n }\n);\n\nSliderThumb.displayName = THUMB_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst BubbleInput = (props: Radix.ComponentPropsWithoutRef<'input'>) => {\n const { value, ...inputProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const prevValue = usePrevious(value);\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const input = ref.current!;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value') as PropertyDescriptor;\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event('input', { bubbles: true });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [prevValue, value]);\n\n /**\n * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n * wrap it will not be able to access its value via the FormData API.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n */\n return <input style={{ display: 'none' }} {...inputProps} ref={ref} defaultValue={value} />;\n};\n\nfunction getNextSortedValues(prevValues: number[] = [], nextValue: number, atIndex: number) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\n\nfunction convertValueToPercentage(value: number, min: number, max: number) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n return percentPerStep * (value - min);\n}\n\n/**\n * Returns a label for each thumb when there are two or more thumbs\n */\nfunction getLabel(index: number, totalValues: number) {\n if (totalValues > 2) {\n return `Value ${index + 1} of ${totalValues}`;\n } else if (totalValues === 2) {\n return ['Minimum', 'Maximum'][index];\n } else {\n return undefined;\n }\n}\n\n/**\n * Given a `values` array and a `nextValue`, determine which value in\n * the array is closest to `nextValue` and return its index.\n *\n * @example\n * // returns 1\n * getClosestValueIndex([10, 30], 25);\n */\nfunction getClosestValueIndex(values: number[], nextValue: number) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\n\n/**\n * Offsets the thumb centre point while sliding to ensure it remains\n * within the bounds of the slider when reaching the edges\n */\nfunction getThumbInBoundsOffset(width: number, left: number, direction: number) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\n\n/**\n * Gets an array of steps between each value.\n *\n * @example\n * // returns [1, 9]\n * getStepsBetweenValues([10, 11, 20]);\n */\nfunction getStepsBetweenValues(values: number[]) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\n\n/**\n * Verifies the minimum steps between all values is greater than or equal\n * to the expected minimum steps.\n *\n * @example\n * // returns false\n * hasMinStepsBetweenValues([1,2,3], 2);\n *\n * @example\n * // returns true\n * hasMinStepsBetweenValues([1,2,3], 1);\n */\nfunction hasMinStepsBetweenValues(values: number[], minStepsBetweenValues: number) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\n\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(input: readonly [number, number], output: readonly [number, number]) {\n return (value: number) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\n\nfunction getDecimalCount(value: number) {\n return (String(value).split('.')[1] || '').length;\n}\n\nfunction roundValue(value: number, decimalCount: number) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\n\nconst Root = Slider;\nconst Track = SliderTrack;\nconst Range = SliderRange;\nconst Thumb = SliderThumb;\n\nexport {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n};\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps };\n"],"names":["createSliderScope","Slider","SliderTrack","SliderRange","SliderThumb","Root","Track","Range","Thumb","React","clamp","composeEventHandlers","useComposedRefs","createContextScope","useControllableState","useDirection","usePrevious","useSize","Primitive","createCollection","PAGE_KEYS","ARROW_KEYS","BACK_KEYS","SLIDER_NAME","Collection","useCollection","createCollectionScope","createSliderContext","SliderProvider","useSliderContext","forwardRef","props","forwardedRef","name","min","max","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value","onValueChange","inverted","sliderProps","slider","setSlider","useState","composedRefs","node","thumbRefs","useRef","Set","valueIndexToChangeRef","isHorizontal","isFormControl","Boolean","closest","SliderOrientation","SliderHorizontal","SliderVertical","values","setValues","prop","defaultProp","onChange","thumbs","current","focus","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","atIndex","decimalCount","getDecimalCount","snapToStep","roundValue","Math","round","nextValue","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","indexOf","String","__scopeSlider","undefined","length","event","direction","stepDirection","isPageKey","includes","key","isSkipKey","shiftKey","multiplier","stepInDirection","map","index","SliderOrientationProvider","useSliderOrientationContext","startEdge","endEdge","size","dir","onSlideStart","onSlideMove","onStepKeyDown","rectRef","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","rect","getBoundingClientRect","input","width","output","linearScale","left","style","clientX","slideDirection","isBackKey","sliderRef","ref","isSlidingFromBottom","height","top","clientY","SliderImpl","onSlideEnd","onHomeKeyDown","onEndKeyDown","context","onKeyDown","preventDefault","concat","onPointerDown","target","setPointerCapture","pointerId","has","onPointerMove","hasPointerCapture","onPointerUp","releasePointerCapture","TRACK_NAME","trackProps","RANGE_NAME","rangeProps","valuesCount","percentages","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","getItems","thumb","setThumb","useMemo","findIndex","item","SliderThumbImpl","thumbProps","percent","label","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","useEffect","add","delete","transform","position","display","onFocus","BubbleInput","inputProps","prevValue","inputProto","window","HTMLInputElement","prototype","descriptor","Object","getOwnPropertyDescriptor","setValue","set","Event","bubbles","call","dispatchEvent","sort","a","b","maxSteps","percentPerStep","totalValues","distances","abs","closestDistance","halfWidth","halfPercent","offset","getStepsBetweenValues","slice","minStepsBetweenValues","stepsBetweenValues","actualMinStepsBetweenValues","ratio","split","rounder","pow"],"version":3,"file":"index.js.map"}
@@ -34,17 +34,29 @@ const $faa2e61a3361514f$var$ARROW_KEYS = [
34
34
  'ArrowRight'
35
35
  ];
36
36
  const $faa2e61a3361514f$var$BACK_KEYS = {
37
- ltr: [
37
+ 'from-left': [
38
+ 'Home',
39
+ 'PageDown',
38
40
  'ArrowDown',
41
+ 'ArrowLeft'
42
+ ],
43
+ 'from-right': [
39
44
  'Home',
40
- 'ArrowLeft',
41
- 'PageDown'
45
+ 'PageDown',
46
+ 'ArrowDown',
47
+ 'ArrowRight'
42
48
  ],
43
- rtl: [
49
+ 'from-bottom': [
50
+ 'Home',
51
+ 'PageDown',
44
52
  'ArrowDown',
53
+ 'ArrowLeft'
54
+ ],
55
+ 'from-top': [
45
56
  'Home',
46
- 'ArrowRight',
47
- 'PageDown'
57
+ 'PageDown',
58
+ 'ArrowUp',
59
+ 'ArrowLeft'
48
60
  ]
49
61
  };
50
62
  /* -------------------------------------------------------------------------------------------------
@@ -58,7 +70,7 @@ const [$faa2e61a3361514f$var$SliderProvider, $faa2e61a3361514f$var$useSliderCont
58
70
  const $faa2e61a3361514f$export$472062a354075cee = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{
59
71
  const { name: name , min: min = 0 , max: max = 100 , step: step = 1 , orientation: orientation = 'horizontal' , disabled: disabled = false , minStepsBetweenThumbs: minStepsBetweenThumbs = 0 , defaultValue: defaultValue = [
60
72
  min
61
- ] , value: value1 , onValueChange: onValueChange = ()=>{} , ...sliderProps } = props;
73
+ ] , value: value1 , onValueChange: onValueChange = ()=>{} , inverted: inverted = false , ...sliderProps } = props;
62
74
  const [slider, setSlider] = $g1Vy2$useState(null);
63
75
  const composedRefs = $g1Vy2$useComposedRefs(forwardedRef, (node)=>setSlider(node)
64
76
  );
@@ -121,6 +133,7 @@ const $faa2e61a3361514f$export$472062a354075cee = /*#__PURE__*/ $g1Vy2$forwardRe
121
133
  ref: composedRefs,
122
134
  min: min,
123
135
  max: max,
136
+ inverted: inverted,
124
137
  onSlideStart: disabled ? undefined : handleSlideStart,
125
138
  onSlideMove: disabled ? undefined : handleSlideMove,
126
139
  onHomeKeyDown: ()=>!disabled && updateValues(min, 0)
@@ -157,20 +170,21 @@ const $faa2e61a3361514f$export$472062a354075cee = /*#__PURE__*/ $g1Vy2$forwardRe
157
170
  direction: 1
158
171
  });
159
172
  const $faa2e61a3361514f$var$SliderHorizontal = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{
160
- const { min: min , max: max , dir: dir , onSlideStart: onSlideStart , onSlideMove: onSlideMove , onStepKeyDown: onStepKeyDown , ...sliderProps } = props;
173
+ const { min: min , max: max , dir: dir , inverted: inverted , onSlideStart: onSlideStart , onSlideMove: onSlideMove , onStepKeyDown: onStepKeyDown , ...sliderProps } = props;
161
174
  const [slider, setSlider] = $g1Vy2$useState(null);
162
175
  const composedRefs = $g1Vy2$useComposedRefs(forwardedRef, (node)=>setSlider(node)
163
176
  );
164
177
  const rectRef = $g1Vy2$useRef();
165
178
  const direction = $g1Vy2$useDirection(dir);
166
179
  const isDirectionLTR = direction === 'ltr';
180
+ const isSlidingFromLeft = isDirectionLTR && !inverted || !isDirectionLTR && inverted;
167
181
  function getValueFromPointer(pointerPosition) {
168
182
  const rect = rectRef.current || slider.getBoundingClientRect();
169
183
  const input = [
170
184
  0,
171
185
  rect.width
172
186
  ];
173
- const output = isDirectionLTR ? [
187
+ const output = isSlidingFromLeft ? [
174
188
  min,
175
189
  max
176
190
  ] : [
@@ -183,9 +197,9 @@ const $faa2e61a3361514f$var$SliderHorizontal = /*#__PURE__*/ $g1Vy2$forwardRef((
183
197
  }
184
198
  return /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$SliderOrientationProvider, {
185
199
  scope: props.__scopeSlider,
186
- startEdge: isDirectionLTR ? 'left' : 'right',
187
- endEdge: isDirectionLTR ? 'right' : 'left',
188
- direction: isDirectionLTR ? 1 : -1,
200
+ startEdge: isSlidingFromLeft ? 'left' : 'right',
201
+ endEdge: isSlidingFromLeft ? 'right' : 'left',
202
+ direction: isSlidingFromLeft ? 1 : -1,
189
203
  size: "width"
190
204
  }, /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$SliderImpl, $g1Vy2$babelruntimehelpersesmextends({
191
205
  dir: direction,
@@ -207,7 +221,8 @@ const $faa2e61a3361514f$var$SliderHorizontal = /*#__PURE__*/ $g1Vy2$forwardRef((
207
221
  onSlideEnd: ()=>rectRef.current = undefined
208
222
  ,
209
223
  onStepKeyDown: (event)=>{
210
- const isBackKey = $faa2e61a3361514f$var$BACK_KEYS[direction].includes(event.key);
224
+ const slideDirection = isSlidingFromLeft ? 'from-left' : 'from-right';
225
+ const isBackKey = $faa2e61a3361514f$var$BACK_KEYS[slideDirection].includes(event.key);
211
226
  onStepKeyDown === null || onStepKeyDown === void 0 || onStepKeyDown({
212
227
  event: event,
213
228
  direction: isBackKey ? -1 : 1
@@ -218,19 +233,23 @@ const $faa2e61a3361514f$var$SliderHorizontal = /*#__PURE__*/ $g1Vy2$forwardRef((
218
233
  /* -------------------------------------------------------------------------------------------------
219
234
  * SliderVertical
220
235
  * -----------------------------------------------------------------------------------------------*/ const $faa2e61a3361514f$var$SliderVertical = /*#__PURE__*/ $g1Vy2$forwardRef((props, forwardedRef)=>{
221
- const { min: min , max: max , onSlideStart: onSlideStart , onSlideMove: onSlideMove , onStepKeyDown: onStepKeyDown , ...sliderProps } = props;
236
+ const { min: min , max: max , inverted: inverted , onSlideStart: onSlideStart , onSlideMove: onSlideMove , onStepKeyDown: onStepKeyDown , ...sliderProps } = props;
222
237
  const sliderRef = $g1Vy2$useRef(null);
223
238
  const ref = $g1Vy2$useComposedRefs(forwardedRef, sliderRef);
224
239
  const rectRef = $g1Vy2$useRef();
240
+ const isSlidingFromBottom = !inverted;
225
241
  function getValueFromPointer(pointerPosition) {
226
242
  const rect = rectRef.current || sliderRef.current.getBoundingClientRect();
227
243
  const input = [
228
244
  0,
229
245
  rect.height
230
246
  ];
231
- const output = [
247
+ const output = isSlidingFromBottom ? [
232
248
  max,
233
249
  min
250
+ ] : [
251
+ min,
252
+ max
234
253
  ];
235
254
  const value = $faa2e61a3361514f$var$linearScale(input, output);
236
255
  rectRef.current = rect;
@@ -238,10 +257,10 @@ const $faa2e61a3361514f$var$SliderHorizontal = /*#__PURE__*/ $g1Vy2$forwardRef((
238
257
  }
239
258
  return /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$SliderOrientationProvider, {
240
259
  scope: props.__scopeSlider,
241
- startEdge: "bottom",
242
- endEdge: "top",
260
+ startEdge: isSlidingFromBottom ? 'bottom' : 'top',
261
+ endEdge: isSlidingFromBottom ? 'top' : 'bottom',
243
262
  size: "height",
244
- direction: 1
263
+ direction: isSlidingFromBottom ? 1 : -1
245
264
  }, /*#__PURE__*/ $g1Vy2$createElement($faa2e61a3361514f$var$SliderImpl, $g1Vy2$babelruntimehelpersesmextends({
246
265
  "data-orientation": "vertical"
247
266
  }, sliderProps, {
@@ -261,7 +280,8 @@ const $faa2e61a3361514f$var$SliderHorizontal = /*#__PURE__*/ $g1Vy2$forwardRef((
261
280
  onSlideEnd: ()=>rectRef.current = undefined
262
281
  ,
263
282
  onStepKeyDown: (event)=>{
264
- const isBackKey = $faa2e61a3361514f$var$BACK_KEYS.ltr.includes(event.key);
283
+ const slideDirection = isSlidingFromBottom ? 'from-bottom' : 'from-top';
284
+ const isBackKey = $faa2e61a3361514f$var$BACK_KEYS[slideDirection].includes(event.key);
265
285
  onStepKeyDown === null || onStepKeyDown === void 0 || onStepKeyDown({
266
286
  event: event,
267
287
  direction: isBackKey ? -1 : 1
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react/slider/src/index.ts","packages/react/slider/src/Slider.tsx"],"sourcesContent":["export {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n} from './Slider';\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps } from './Slider';\n","import * as React from 'react';\nimport { clamp } from '@radix-ui/number';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { createCollection } from '@radix-ui/react-collection';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\n\nconst PAGE_KEYS = ['PageUp', 'PageDown'];\nconst ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\nconst BACK_KEYS: Record<Direction, string[]> = {\n ltr: ['ArrowDown', 'Home', 'ArrowLeft', 'PageDown'],\n rtl: ['ArrowDown', 'Home', 'ArrowRight', 'PageDown'],\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Slider\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLIDER_NAME = 'Slider';\n\nconst [Collection, useCollection, createCollectionScope] =\n createCollection<SliderThumbElement>(SLIDER_NAME);\n\ntype ScopedProps<P> = P & { __scopeSlider?: Scope };\nconst [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope,\n]);\n\ntype SliderContextValue = {\n disabled?: boolean;\n min: number;\n max: number;\n values: number[];\n valueIndexToChangeRef: React.MutableRefObject<number>;\n thumbs: Set<SliderThumbElement>;\n orientation: SliderProps['orientation'];\n};\n\nconst [SliderProvider, useSliderContext] = createSliderContext<SliderContextValue>(SLIDER_NAME);\n\ntype SliderElement = SliderHorizontalElement | SliderVerticalElement;\ninterface SliderProps\n extends Omit<\n SliderHorizontalProps | SliderVerticalProps,\n keyof SliderOrientationPrivateProps | 'defaultValue'\n > {\n name?: string;\n disabled?: boolean;\n orientation?: React.AriaAttributes['aria-orientation'];\n dir?: Direction;\n min?: number;\n max?: number;\n step?: number;\n minStepsBetweenThumbs?: number;\n value?: number[];\n defaultValue?: number[];\n onValueChange?(value: number[]): void;\n}\n\nconst Slider = React.forwardRef<SliderElement, SliderProps>(\n (props: ScopedProps<SliderProps>, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = 'horizontal',\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {},\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const thumbRefs = React.useRef<SliderContextValue['thumbs']>(new Set());\n const valueIndexToChangeRef = React.useRef<number>(0);\n const isHorizontal = orientation === 'horizontal';\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = slider ? Boolean(slider.closest('form')) : true;\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value);\n },\n });\n\n function handleSlideStart(value: number) {\n const closestIndex = getClosestValueIndex(values, value);\n updateValues(value, closestIndex);\n }\n\n function handleSlideMove(value: number) {\n updateValues(value, valueIndexToChangeRef.current);\n }\n\n function updateValues(value: number, atIndex: number) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n return String(nextValues) === String(prevValues) ? prevValues : nextValues;\n } else {\n return prevValues;\n }\n });\n }\n\n return (\n <SliderProvider\n scope={props.__scopeSlider}\n disabled={disabled}\n min={min}\n max={max}\n valueIndexToChangeRef={valueIndexToChangeRef}\n thumbs={thumbRefs.current}\n values={values}\n orientation={orientation}\n >\n <Collection.Provider scope={props.__scopeSlider}>\n <Collection.Slot scope={props.__scopeSlider}>\n <SliderOrientation\n aria-disabled={disabled}\n data-disabled={disabled ? '' : undefined}\n {...sliderProps}\n ref={composedRefs}\n min={min}\n max={max}\n onSlideStart={disabled ? undefined : handleSlideStart}\n onSlideMove={disabled ? undefined : handleSlideMove}\n onHomeKeyDown={() => !disabled && updateValues(min, 0)}\n onEndKeyDown={() => !disabled && updateValues(max, values.length - 1)}\n onStepKeyDown={({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || (event.shiftKey && ARROW_KEYS.includes(event.key));\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value + stepInDirection, atIndex);\n }\n }}\n />\n </Collection.Slot>\n </Collection.Provider>\n {isFormControl &&\n values.map((value, index) => (\n <BubbleInput\n key={index}\n name={name ? name + (values.length > 1 ? '[]' : '') : undefined}\n value={value}\n />\n ))}\n </SliderProvider>\n );\n }\n);\n\nSlider.displayName = SLIDER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderHorizontal\n * -----------------------------------------------------------------------------------------------*/\n\nconst [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext<{\n startEdge: 'bottom' | 'left' | 'right';\n endEdge: 'top' | 'right' | 'left';\n size: keyof NonNullable<ReturnType<typeof useSize>>;\n direction: number;\n}>(SLIDER_NAME, {\n startEdge: 'left',\n endEdge: 'right',\n size: 'width',\n direction: 1,\n});\n\ntype SliderOrientationPrivateProps = {\n min: number;\n max: number;\n onSlideStart?(value: number): void;\n onSlideMove?(value: number): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(step: { event: React.KeyboardEvent; direction: number }): void;\n};\ninterface SliderOrientationProps\n extends Omit<SliderImplProps, keyof SliderImplPrivateProps>,\n SliderOrientationPrivateProps {}\n\ntype SliderHorizontalElement = SliderImplElement;\ninterface SliderHorizontalProps extends SliderOrientationProps {\n dir?: Direction;\n}\n\nconst SliderHorizontal = React.forwardRef<SliderHorizontalElement, SliderHorizontalProps>(\n (props: ScopedProps<SliderHorizontalProps>, forwardedRef) => {\n const { min, max, dir, onSlideStart, onSlideMove, onStepKeyDown, ...sliderProps } = props;\n const [slider, setSlider] = React.useState<SliderImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef<ClientRect>();\n const direction = useDirection(dir);\n const isDirectionLTR = direction === 'ltr';\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || slider!.getBoundingClientRect();\n const input: [number, number] = [0, rect.width];\n const output: [number, number] = isDirectionLTR ? [min, max] : [max, min];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isDirectionLTR ? 'left' : 'right'}\n endEdge={isDirectionLTR ? 'right' : 'left'}\n direction={isDirectionLTR ? 1 : -1}\n size=\"width\"\n >\n <SliderImpl\n dir={direction}\n data-orientation=\"horizontal\"\n {...sliderProps}\n ref={composedRefs}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: 'translateX(-50%)',\n }}\n onSlideStart={(event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart?.(value);\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove?.(value);\n }}\n onSlideEnd={() => (rectRef.current = undefined)}\n onStepKeyDown={(event) => {\n const isBackKey = BACK_KEYS[direction].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }}\n />\n </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderVertical\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderVerticalElement = SliderImplElement;\ninterface SliderVerticalProps extends SliderOrientationProps {}\n\nconst SliderVertical = React.forwardRef<SliderVerticalElement, SliderVerticalProps>(\n (props: ScopedProps<SliderVerticalProps>, forwardedRef) => {\n const { min, max, onSlideStart, onSlideMove, onStepKeyDown, ...sliderProps } = props;\n const sliderRef = React.useRef<SliderImplElement>(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef<ClientRect>();\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || sliderRef.current!.getBoundingClientRect();\n const input: [number, number] = [0, rect.height];\n const output: [number, number] = [max, min];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge=\"bottom\"\n endEdge=\"top\"\n size=\"height\"\n direction={1}\n >\n <SliderImpl\n data-orientation=\"vertical\"\n {...sliderProps}\n ref={ref}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: 'translateY(50%)',\n }}\n onSlideStart={(event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart?.(value);\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove?.(value);\n }}\n onSlideEnd={() => (rectRef.current = undefined)}\n onStepKeyDown={(event) => {\n const isBackKey = BACK_KEYS.ltr.includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }}\n />\n </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderImpl\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderImplElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;\ntype SliderImplPrivateProps = {\n onSlideStart(event: React.PointerEvent): void;\n onSlideMove(event: React.PointerEvent): void;\n onSlideEnd(event: React.PointerEvent): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(event: React.KeyboardEvent): void;\n};\ninterface SliderImplProps extends PrimitiveDivProps, SliderImplPrivateProps {}\n\nconst SliderImpl = React.forwardRef<SliderImplElement, SliderImplProps>(\n (props: ScopedProps<SliderImplProps>, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const context = useSliderContext(SLIDER_NAME, __scopeSlider);\n\n return (\n <Primitive.span\n {...sliderProps}\n ref={forwardedRef}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === 'Home') {\n onHomeKeyDown(event);\n // Prevent scrolling to page start\n event.preventDefault();\n } else if (event.key === 'End') {\n onEndKeyDown(event);\n // Prevent scrolling to page end\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n // Prevent scrolling for directional key presses\n event.preventDefault();\n }\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target as HTMLElement;\n target.setPointerCapture(event.pointerId);\n // Prevent browser focus behaviour because we focus a thumb manually when values change.\n event.preventDefault();\n // Touch devices have a delay before focusing so won't focus if touch immediately moves\n // away from target (sliding). We want thumb to focus regardless.\n if (context.thumbs.has(target)) {\n target.focus();\n } else {\n onSlideStart(event);\n }\n })}\n onPointerMove={composeEventHandlers(props.onPointerMove, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n })}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })}\n />\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderTrack\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRACK_NAME = 'SliderTrack';\n\ntype SliderTrackElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface SliderTrackProps extends PrimitiveSpanProps {}\n\nconst SliderTrack = React.forwardRef<SliderTrackElement, SliderTrackProps>(\n (props: ScopedProps<SliderTrackProps>, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return (\n <Primitive.span\n data-disabled={context.disabled ? '' : undefined}\n data-orientation={context.orientation}\n {...trackProps}\n ref={forwardedRef}\n />\n );\n }\n);\n\nSliderTrack.displayName = TRACK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderRange\n * -----------------------------------------------------------------------------------------------*/\n\nconst RANGE_NAME = 'SliderRange';\n\ntype SliderRangeElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderRangeProps extends PrimitiveSpanProps {}\n\nconst SliderRange = React.forwardRef<SliderRangeElement, SliderRangeProps>(\n (props: ScopedProps<SliderRangeProps>, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props;\n const context = useSliderContext(RANGE_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);\n const ref = React.useRef<HTMLSpanElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map((value) =>\n convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n\n return (\n <Primitive.span\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n {...rangeProps}\n ref={composedRefs}\n style={{\n ...props.style,\n [orientation.startEdge]: offsetStart + '%',\n [orientation.endEdge]: offsetEnd + '%',\n }}\n />\n );\n }\n);\n\nSliderRange.displayName = RANGE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderThumb\n * -----------------------------------------------------------------------------------------------*/\n\nconst THUMB_NAME = 'SliderThumb';\n\ntype SliderThumbElement = SliderThumbImplElement;\ninterface SliderThumbProps extends Omit<SliderThumbImplProps, 'index'> {}\n\nconst SliderThumb = React.forwardRef<SliderThumbElement, SliderThumbProps>(\n (props: ScopedProps<SliderThumbProps>, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState<SliderThumbImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const index = React.useMemo(\n () => (thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1),\n [getItems, thumb]\n );\n return <SliderThumbImpl {...props} ref={composedRefs} index={index} />;\n }\n);\n\ntype SliderThumbImplElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderThumbImplProps extends PrimitiveSpanProps {\n index: number;\n}\n\nconst SliderThumbImpl = React.forwardRef<SliderThumbImplElement, SliderThumbImplProps>(\n (props: ScopedProps<SliderThumbImplProps>, forwardedRef) => {\n const { __scopeSlider, index, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const size = useSize(thumb);\n // We cast because index could be `-1` which would return undefined\n const value = context.values[index] as number | undefined;\n const percent =\n value === undefined ? 0 : convertValueToPercentage(value, context.min, context.max);\n const label = getLabel(index, context.values.length);\n const orientationSize = size?.[orientation.size];\n const thumbInBoundsOffset = orientationSize\n ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction)\n : 0;\n\n React.useEffect(() => {\n if (thumb) {\n context.thumbs.add(thumb);\n return () => {\n context.thumbs.delete(thumb);\n };\n }\n }, [thumb, context.thumbs]);\n\n return (\n <span\n style={{\n transform: 'var(--radix-slider-thumb-transform)',\n position: 'absolute',\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`,\n }}\n >\n <Collection.ItemSlot scope={props.__scopeSlider}>\n <Primitive.span\n role=\"slider\"\n aria-label={props['aria-label'] || label}\n aria-valuemin={context.min}\n aria-valuenow={value}\n aria-valuemax={context.max}\n aria-orientation={context.orientation}\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n tabIndex={context.disabled ? undefined : 0}\n {...thumbProps}\n ref={composedRefs}\n /**\n * There will be no value on initial render while we work out the index so we hide thumbs\n * without a value, otherwise SSR will render them in the wrong position before they\n * snap into the correct position during hydration which would be visually jarring for\n * slower connections.\n */\n style={value === undefined ? { display: 'none' } : props.style}\n onFocus={composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })}\n />\n </Collection.ItemSlot>\n </span>\n );\n }\n);\n\nSliderThumb.displayName = THUMB_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst BubbleInput = (props: Radix.ComponentPropsWithoutRef<'input'>) => {\n const { value, ...inputProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const prevValue = usePrevious(value);\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const input = ref.current!;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value') as PropertyDescriptor;\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event('input', { bubbles: true });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [prevValue, value]);\n\n /**\n * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n * wrap it will not be able to access its value via the FormData API.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n */\n return <input style={{ display: 'none' }} {...inputProps} ref={ref} defaultValue={value} />;\n};\n\nfunction getNextSortedValues(prevValues: number[] = [], nextValue: number, atIndex: number) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\n\nfunction convertValueToPercentage(value: number, min: number, max: number) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n return percentPerStep * (value - min);\n}\n\n/**\n * Returns a label for each thumb when there are two or more thumbs\n */\nfunction getLabel(index: number, totalValues: number) {\n if (totalValues > 2) {\n return `Value ${index + 1} of ${totalValues}`;\n } else if (totalValues === 2) {\n return ['Minimum', 'Maximum'][index];\n } else {\n return undefined;\n }\n}\n\n/**\n * Given a `values` array and a `nextValue`, determine which value in\n * the array is closest to `nextValue` and return its index.\n *\n * @example\n * // returns 1\n * getClosestValueIndex([10, 30], 25);\n */\nfunction getClosestValueIndex(values: number[], nextValue: number) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\n\n/**\n * Offsets the thumb centre point while sliding to ensure it remains\n * within the bounds of the slider when reaching the edges\n */\nfunction getThumbInBoundsOffset(width: number, left: number, direction: number) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\n\n/**\n * Gets an array of steps between each value.\n *\n * @example\n * // returns [1, 9]\n * getStepsBetweenValues([10, 11, 20]);\n */\nfunction getStepsBetweenValues(values: number[]) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\n\n/**\n * Verifies the minimum steps between all values is greater than or equal\n * to the expected minimum steps.\n *\n * @example\n * // returns false\n * hasMinStepsBetweenValues([1,2,3], 2);\n *\n * @example\n * // returns true\n * hasMinStepsBetweenValues([1,2,3], 1);\n */\nfunction hasMinStepsBetweenValues(values: number[], minStepsBetweenValues: number) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\n\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(input: readonly [number, number], output: readonly [number, number]) {\n return (value: number) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\n\nfunction getDecimalCount(value: number) {\n return (String(value).split('.')[1] || '').length;\n}\n\nfunction roundValue(value: number, decimalCount: number) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\n\nconst Root = Slider;\nconst Track = SliderTrack;\nconst Range = SliderRange;\nconst Thumb = SliderThumb;\n\nexport {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n};\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps };\n"],"names":["createSliderScope","Slider","SliderTrack","SliderRange","SliderThumb","Root","Track","Range","Thumb","React","clamp","composeEventHandlers","useComposedRefs","createContextScope","useControllableState","useDirection","usePrevious","useSize","Primitive","createCollection","PAGE_KEYS","ARROW_KEYS","BACK_KEYS","ltr","rtl","SLIDER_NAME","Collection","useCollection","createCollectionScope","createSliderContext","SliderProvider","useSliderContext","forwardRef","props","forwardedRef","name","min","max","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value","onValueChange","sliderProps","slider","setSlider","useState","composedRefs","node","thumbRefs","useRef","Set","valueIndexToChangeRef","isHorizontal","isFormControl","Boolean","closest","SliderOrientation","SliderHorizontal","SliderVertical","values","setValues","prop","defaultProp","onChange","thumbs","current","focus","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","atIndex","decimalCount","getDecimalCount","snapToStep","roundValue","Math","round","nextValue","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","indexOf","String","__scopeSlider","undefined","length","event","direction","stepDirection","isPageKey","includes","key","isSkipKey","shiftKey","multiplier","stepInDirection","map","index","SliderOrientationProvider","useSliderOrientationContext","startEdge","endEdge","size","dir","onSlideStart","onSlideMove","onStepKeyDown","rectRef","isDirectionLTR","getValueFromPointer","pointerPosition","rect","getBoundingClientRect","input","width","output","linearScale","left","style","clientX","isBackKey","sliderRef","ref","height","top","clientY","SliderImpl","onSlideEnd","onHomeKeyDown","onEndKeyDown","context","onKeyDown","preventDefault","concat","onPointerDown","target","setPointerCapture","pointerId","has","onPointerMove","hasPointerCapture","onPointerUp","releasePointerCapture","TRACK_NAME","trackProps","RANGE_NAME","rangeProps","valuesCount","percentages","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","getItems","thumb","setThumb","useMemo","findIndex","item","SliderThumbImpl","thumbProps","percent","label","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","useEffect","add","delete","transform","position","display","onFocus","BubbleInput","inputProps","prevValue","inputProto","window","HTMLInputElement","prototype","descriptor","Object","getOwnPropertyDescriptor","setValue","set","Event","bubbles","call","dispatchEvent","sort","a","b","maxSteps","percentPerStep","totalValues","distances","abs","closestDistance","halfWidth","halfPercent","offset","getStepsBetweenValues","slice","minStepsBetweenValues","stepsBetweenValues","actualMinStepsBetweenValues","ratio","split","rounder","pow"],"version":3,"file":"index.module.js.map"}
1
+ {"mappings":"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","sources":["packages/react/slider/src/index.ts","packages/react/slider/src/Slider.tsx"],"sourcesContent":["export {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n} from './Slider';\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps } from './Slider';\n","import * as React from 'react';\nimport { clamp } from '@radix-ui/number';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { createCollection } from '@radix-ui/react-collection';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\n\nconst PAGE_KEYS = ['PageUp', 'PageDown'];\nconst ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\ntype SlideDirection = 'from-left' | 'from-right' | 'from-bottom' | 'from-top';\nconst BACK_KEYS: Record<SlideDirection, string[]> = {\n 'from-left': ['Home', 'PageDown', 'ArrowDown', 'ArrowLeft'],\n 'from-right': ['Home', 'PageDown', 'ArrowDown', 'ArrowRight'],\n 'from-bottom': ['Home', 'PageDown', 'ArrowDown', 'ArrowLeft'],\n 'from-top': ['Home', 'PageDown', 'ArrowUp', 'ArrowLeft'],\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Slider\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLIDER_NAME = 'Slider';\n\nconst [Collection, useCollection, createCollectionScope] =\n createCollection<SliderThumbElement>(SLIDER_NAME);\n\ntype ScopedProps<P> = P & { __scopeSlider?: Scope };\nconst [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope,\n]);\n\ntype SliderContextValue = {\n disabled?: boolean;\n min: number;\n max: number;\n values: number[];\n valueIndexToChangeRef: React.MutableRefObject<number>;\n thumbs: Set<SliderThumbElement>;\n orientation: SliderProps['orientation'];\n};\n\nconst [SliderProvider, useSliderContext] = createSliderContext<SliderContextValue>(SLIDER_NAME);\n\ntype SliderElement = SliderHorizontalElement | SliderVerticalElement;\ninterface SliderProps\n extends Omit<\n SliderHorizontalProps | SliderVerticalProps,\n keyof SliderOrientationPrivateProps | 'defaultValue'\n > {\n name?: string;\n disabled?: boolean;\n orientation?: React.AriaAttributes['aria-orientation'];\n dir?: Direction;\n min?: number;\n max?: number;\n step?: number;\n minStepsBetweenThumbs?: number;\n value?: number[];\n defaultValue?: number[];\n onValueChange?(value: number[]): void;\n inverted?: boolean;\n}\n\nconst Slider = React.forwardRef<SliderElement, SliderProps>(\n (props: ScopedProps<SliderProps>, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = 'horizontal',\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {},\n inverted = false,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const thumbRefs = React.useRef<SliderContextValue['thumbs']>(new Set());\n const valueIndexToChangeRef = React.useRef<number>(0);\n const isHorizontal = orientation === 'horizontal';\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = slider ? Boolean(slider.closest('form')) : true;\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value);\n },\n });\n\n function handleSlideStart(value: number) {\n const closestIndex = getClosestValueIndex(values, value);\n updateValues(value, closestIndex);\n }\n\n function handleSlideMove(value: number) {\n updateValues(value, valueIndexToChangeRef.current);\n }\n\n function updateValues(value: number, atIndex: number) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n return String(nextValues) === String(prevValues) ? prevValues : nextValues;\n } else {\n return prevValues;\n }\n });\n }\n\n return (\n <SliderProvider\n scope={props.__scopeSlider}\n disabled={disabled}\n min={min}\n max={max}\n valueIndexToChangeRef={valueIndexToChangeRef}\n thumbs={thumbRefs.current}\n values={values}\n orientation={orientation}\n >\n <Collection.Provider scope={props.__scopeSlider}>\n <Collection.Slot scope={props.__scopeSlider}>\n <SliderOrientation\n aria-disabled={disabled}\n data-disabled={disabled ? '' : undefined}\n {...sliderProps}\n ref={composedRefs}\n min={min}\n max={max}\n inverted={inverted}\n onSlideStart={disabled ? undefined : handleSlideStart}\n onSlideMove={disabled ? undefined : handleSlideMove}\n onHomeKeyDown={() => !disabled && updateValues(min, 0)}\n onEndKeyDown={() => !disabled && updateValues(max, values.length - 1)}\n onStepKeyDown={({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || (event.shiftKey && ARROW_KEYS.includes(event.key));\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value + stepInDirection, atIndex);\n }\n }}\n />\n </Collection.Slot>\n </Collection.Provider>\n {isFormControl &&\n values.map((value, index) => (\n <BubbleInput\n key={index}\n name={name ? name + (values.length > 1 ? '[]' : '') : undefined}\n value={value}\n />\n ))}\n </SliderProvider>\n );\n }\n);\n\nSlider.displayName = SLIDER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderHorizontal\n * -----------------------------------------------------------------------------------------------*/\n\ntype Side = 'top' | 'right' | 'bottom' | 'left';\n\nconst [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext<{\n startEdge: Side;\n endEdge: Side;\n size: keyof NonNullable<ReturnType<typeof useSize>>;\n direction: number;\n}>(SLIDER_NAME, {\n startEdge: 'left',\n endEdge: 'right',\n size: 'width',\n direction: 1,\n});\n\ntype SliderOrientationPrivateProps = {\n min: number;\n max: number;\n inverted: boolean;\n onSlideStart?(value: number): void;\n onSlideMove?(value: number): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(step: { event: React.KeyboardEvent; direction: number }): void;\n};\ninterface SliderOrientationProps\n extends Omit<SliderImplProps, keyof SliderImplPrivateProps>,\n SliderOrientationPrivateProps {}\n\ntype SliderHorizontalElement = SliderImplElement;\ninterface SliderHorizontalProps extends SliderOrientationProps {\n dir?: Direction;\n}\n\nconst SliderHorizontal = React.forwardRef<SliderHorizontalElement, SliderHorizontalProps>(\n (props: ScopedProps<SliderHorizontalProps>, forwardedRef) => {\n const { min, max, dir, inverted, onSlideStart, onSlideMove, onStepKeyDown, ...sliderProps } =\n props;\n const [slider, setSlider] = React.useState<SliderImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef<ClientRect>();\n const direction = useDirection(dir);\n const isDirectionLTR = direction === 'ltr';\n const isSlidingFromLeft = (isDirectionLTR && !inverted) || (!isDirectionLTR && inverted);\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || slider!.getBoundingClientRect();\n const input: [number, number] = [0, rect.width];\n const output: [number, number] = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromLeft ? 'left' : 'right'}\n endEdge={isSlidingFromLeft ? 'right' : 'left'}\n direction={isSlidingFromLeft ? 1 : -1}\n size=\"width\"\n >\n <SliderImpl\n dir={direction}\n data-orientation=\"horizontal\"\n {...sliderProps}\n ref={composedRefs}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: 'translateX(-50%)',\n }}\n onSlideStart={(event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart?.(value);\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove?.(value);\n }}\n onSlideEnd={() => (rectRef.current = undefined)}\n onStepKeyDown={(event) => {\n const slideDirection = isSlidingFromLeft ? 'from-left' : 'from-right';\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }}\n />\n </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderVertical\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderVerticalElement = SliderImplElement;\ninterface SliderVerticalProps extends SliderOrientationProps {}\n\nconst SliderVertical = React.forwardRef<SliderVerticalElement, SliderVerticalProps>(\n (props: ScopedProps<SliderVerticalProps>, forwardedRef) => {\n const { min, max, inverted, onSlideStart, onSlideMove, onStepKeyDown, ...sliderProps } = props;\n const sliderRef = React.useRef<SliderImplElement>(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef<ClientRect>();\n const isSlidingFromBottom = !inverted;\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || sliderRef.current!.getBoundingClientRect();\n const input: [number, number] = [0, rect.height];\n const output: [number, number] = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromBottom ? 'bottom' : 'top'}\n endEdge={isSlidingFromBottom ? 'top' : 'bottom'}\n size=\"height\"\n direction={isSlidingFromBottom ? 1 : -1}\n >\n <SliderImpl\n data-orientation=\"vertical\"\n {...sliderProps}\n ref={ref}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: 'translateY(50%)',\n }}\n onSlideStart={(event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart?.(value);\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove?.(value);\n }}\n onSlideEnd={() => (rectRef.current = undefined)}\n onStepKeyDown={(event) => {\n const slideDirection = isSlidingFromBottom ? 'from-bottom' : 'from-top';\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }}\n />\n </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderImpl\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderImplElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;\ntype SliderImplPrivateProps = {\n onSlideStart(event: React.PointerEvent): void;\n onSlideMove(event: React.PointerEvent): void;\n onSlideEnd(event: React.PointerEvent): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(event: React.KeyboardEvent): void;\n};\ninterface SliderImplProps extends PrimitiveDivProps, SliderImplPrivateProps {}\n\nconst SliderImpl = React.forwardRef<SliderImplElement, SliderImplProps>(\n (props: ScopedProps<SliderImplProps>, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const context = useSliderContext(SLIDER_NAME, __scopeSlider);\n\n return (\n <Primitive.span\n {...sliderProps}\n ref={forwardedRef}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === 'Home') {\n onHomeKeyDown(event);\n // Prevent scrolling to page start\n event.preventDefault();\n } else if (event.key === 'End') {\n onEndKeyDown(event);\n // Prevent scrolling to page end\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n // Prevent scrolling for directional key presses\n event.preventDefault();\n }\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target as HTMLElement;\n target.setPointerCapture(event.pointerId);\n // Prevent browser focus behaviour because we focus a thumb manually when values change.\n event.preventDefault();\n // Touch devices have a delay before focusing so won't focus if touch immediately moves\n // away from target (sliding). We want thumb to focus regardless.\n if (context.thumbs.has(target)) {\n target.focus();\n } else {\n onSlideStart(event);\n }\n })}\n onPointerMove={composeEventHandlers(props.onPointerMove, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n })}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })}\n />\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderTrack\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRACK_NAME = 'SliderTrack';\n\ntype SliderTrackElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface SliderTrackProps extends PrimitiveSpanProps {}\n\nconst SliderTrack = React.forwardRef<SliderTrackElement, SliderTrackProps>(\n (props: ScopedProps<SliderTrackProps>, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return (\n <Primitive.span\n data-disabled={context.disabled ? '' : undefined}\n data-orientation={context.orientation}\n {...trackProps}\n ref={forwardedRef}\n />\n );\n }\n);\n\nSliderTrack.displayName = TRACK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderRange\n * -----------------------------------------------------------------------------------------------*/\n\nconst RANGE_NAME = 'SliderRange';\n\ntype SliderRangeElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderRangeProps extends PrimitiveSpanProps {}\n\nconst SliderRange = React.forwardRef<SliderRangeElement, SliderRangeProps>(\n (props: ScopedProps<SliderRangeProps>, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props;\n const context = useSliderContext(RANGE_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);\n const ref = React.useRef<HTMLSpanElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map((value) =>\n convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n\n return (\n <Primitive.span\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n {...rangeProps}\n ref={composedRefs}\n style={{\n ...props.style,\n [orientation.startEdge]: offsetStart + '%',\n [orientation.endEdge]: offsetEnd + '%',\n }}\n />\n );\n }\n);\n\nSliderRange.displayName = RANGE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderThumb\n * -----------------------------------------------------------------------------------------------*/\n\nconst THUMB_NAME = 'SliderThumb';\n\ntype SliderThumbElement = SliderThumbImplElement;\ninterface SliderThumbProps extends Omit<SliderThumbImplProps, 'index'> {}\n\nconst SliderThumb = React.forwardRef<SliderThumbElement, SliderThumbProps>(\n (props: ScopedProps<SliderThumbProps>, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState<SliderThumbImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const index = React.useMemo(\n () => (thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1),\n [getItems, thumb]\n );\n return <SliderThumbImpl {...props} ref={composedRefs} index={index} />;\n }\n);\n\ntype SliderThumbImplElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderThumbImplProps extends PrimitiveSpanProps {\n index: number;\n}\n\nconst SliderThumbImpl = React.forwardRef<SliderThumbImplElement, SliderThumbImplProps>(\n (props: ScopedProps<SliderThumbImplProps>, forwardedRef) => {\n const { __scopeSlider, index, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const size = useSize(thumb);\n // We cast because index could be `-1` which would return undefined\n const value = context.values[index] as number | undefined;\n const percent =\n value === undefined ? 0 : convertValueToPercentage(value, context.min, context.max);\n const label = getLabel(index, context.values.length);\n const orientationSize = size?.[orientation.size];\n const thumbInBoundsOffset = orientationSize\n ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction)\n : 0;\n\n React.useEffect(() => {\n if (thumb) {\n context.thumbs.add(thumb);\n return () => {\n context.thumbs.delete(thumb);\n };\n }\n }, [thumb, context.thumbs]);\n\n return (\n <span\n style={{\n transform: 'var(--radix-slider-thumb-transform)',\n position: 'absolute',\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`,\n }}\n >\n <Collection.ItemSlot scope={props.__scopeSlider}>\n <Primitive.span\n role=\"slider\"\n aria-label={props['aria-label'] || label}\n aria-valuemin={context.min}\n aria-valuenow={value}\n aria-valuemax={context.max}\n aria-orientation={context.orientation}\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n tabIndex={context.disabled ? undefined : 0}\n {...thumbProps}\n ref={composedRefs}\n /**\n * There will be no value on initial render while we work out the index so we hide thumbs\n * without a value, otherwise SSR will render them in the wrong position before they\n * snap into the correct position during hydration which would be visually jarring for\n * slower connections.\n */\n style={value === undefined ? { display: 'none' } : props.style}\n onFocus={composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })}\n />\n </Collection.ItemSlot>\n </span>\n );\n }\n);\n\nSliderThumb.displayName = THUMB_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst BubbleInput = (props: Radix.ComponentPropsWithoutRef<'input'>) => {\n const { value, ...inputProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const prevValue = usePrevious(value);\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const input = ref.current!;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value') as PropertyDescriptor;\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event('input', { bubbles: true });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [prevValue, value]);\n\n /**\n * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n * wrap it will not be able to access its value via the FormData API.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n */\n return <input style={{ display: 'none' }} {...inputProps} ref={ref} defaultValue={value} />;\n};\n\nfunction getNextSortedValues(prevValues: number[] = [], nextValue: number, atIndex: number) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\n\nfunction convertValueToPercentage(value: number, min: number, max: number) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n return percentPerStep * (value - min);\n}\n\n/**\n * Returns a label for each thumb when there are two or more thumbs\n */\nfunction getLabel(index: number, totalValues: number) {\n if (totalValues > 2) {\n return `Value ${index + 1} of ${totalValues}`;\n } else if (totalValues === 2) {\n return ['Minimum', 'Maximum'][index];\n } else {\n return undefined;\n }\n}\n\n/**\n * Given a `values` array and a `nextValue`, determine which value in\n * the array is closest to `nextValue` and return its index.\n *\n * @example\n * // returns 1\n * getClosestValueIndex([10, 30], 25);\n */\nfunction getClosestValueIndex(values: number[], nextValue: number) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\n\n/**\n * Offsets the thumb centre point while sliding to ensure it remains\n * within the bounds of the slider when reaching the edges\n */\nfunction getThumbInBoundsOffset(width: number, left: number, direction: number) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\n\n/**\n * Gets an array of steps between each value.\n *\n * @example\n * // returns [1, 9]\n * getStepsBetweenValues([10, 11, 20]);\n */\nfunction getStepsBetweenValues(values: number[]) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\n\n/**\n * Verifies the minimum steps between all values is greater than or equal\n * to the expected minimum steps.\n *\n * @example\n * // returns false\n * hasMinStepsBetweenValues([1,2,3], 2);\n *\n * @example\n * // returns true\n * hasMinStepsBetweenValues([1,2,3], 1);\n */\nfunction hasMinStepsBetweenValues(values: number[], minStepsBetweenValues: number) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\n\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(input: readonly [number, number], output: readonly [number, number]) {\n return (value: number) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\n\nfunction getDecimalCount(value: number) {\n return (String(value).split('.')[1] || '').length;\n}\n\nfunction roundValue(value: number, decimalCount: number) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\n\nconst Root = Slider;\nconst Track = SliderTrack;\nconst Range = SliderRange;\nconst Thumb = SliderThumb;\n\nexport {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n};\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps };\n"],"names":["createSliderScope","Slider","SliderTrack","SliderRange","SliderThumb","Root","Track","Range","Thumb","React","clamp","composeEventHandlers","useComposedRefs","createContextScope","useControllableState","useDirection","usePrevious","useSize","Primitive","createCollection","PAGE_KEYS","ARROW_KEYS","BACK_KEYS","SLIDER_NAME","Collection","useCollection","createCollectionScope","createSliderContext","SliderProvider","useSliderContext","forwardRef","props","forwardedRef","name","min","max","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value","onValueChange","inverted","sliderProps","slider","setSlider","useState","composedRefs","node","thumbRefs","useRef","Set","valueIndexToChangeRef","isHorizontal","isFormControl","Boolean","closest","SliderOrientation","SliderHorizontal","SliderVertical","values","setValues","prop","defaultProp","onChange","thumbs","current","focus","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","atIndex","decimalCount","getDecimalCount","snapToStep","roundValue","Math","round","nextValue","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","indexOf","String","__scopeSlider","undefined","length","event","direction","stepDirection","isPageKey","includes","key","isSkipKey","shiftKey","multiplier","stepInDirection","map","index","SliderOrientationProvider","useSliderOrientationContext","startEdge","endEdge","size","dir","onSlideStart","onSlideMove","onStepKeyDown","rectRef","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","rect","getBoundingClientRect","input","width","output","linearScale","left","style","clientX","slideDirection","isBackKey","sliderRef","ref","isSlidingFromBottom","height","top","clientY","SliderImpl","onSlideEnd","onHomeKeyDown","onEndKeyDown","context","onKeyDown","preventDefault","concat","onPointerDown","target","setPointerCapture","pointerId","has","onPointerMove","hasPointerCapture","onPointerUp","releasePointerCapture","TRACK_NAME","trackProps","RANGE_NAME","rangeProps","valuesCount","percentages","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","getItems","thumb","setThumb","useMemo","findIndex","item","SliderThumbImpl","thumbProps","percent","label","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","useEffect","add","delete","transform","position","display","onFocus","BubbleInput","inputProps","prevValue","inputProto","window","HTMLInputElement","prototype","descriptor","Object","getOwnPropertyDescriptor","setValue","set","Event","bubbles","call","dispatchEvent","sort","a","b","maxSteps","percentPerStep","totalValues","distances","abs","closestDistance","halfWidth","halfPercent","offset","getStepsBetweenValues","slice","minStepsBetweenValues","stepsBetweenValues","actualMinStepsBetweenValues","ratio","split","rounder","pow"],"version":3,"file":"index.module.js.map"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@radix-ui/react-slider",
3
- "version": "1.0.1-rc.2",
3
+ "version": "1.0.1-rc.3",
4
4
  "license": "MIT",
5
5
  "source": "src/index.ts",
6
6
  "main": "dist/index.js",
@@ -19,11 +19,11 @@
19
19
  "@babel/runtime": "^7.13.10",
20
20
  "@radix-ui/number": "1.0.0",
21
21
  "@radix-ui/primitive": "1.0.0",
22
- "@radix-ui/react-collection": "1.0.1-rc.2",
22
+ "@radix-ui/react-collection": "1.0.1-rc.3",
23
23
  "@radix-ui/react-compose-refs": "1.0.0",
24
24
  "@radix-ui/react-context": "1.0.0",
25
25
  "@radix-ui/react-direction": "1.0.0",
26
- "@radix-ui/react-primitive": "1.0.1-rc.2",
26
+ "@radix-ui/react-primitive": "1.0.1-rc.3",
27
27
  "@radix-ui/react-use-controllable-state": "1.0.0",
28
28
  "@radix-ui/react-use-layout-effect": "1.0.0",
29
29
  "@radix-ui/react-use-previous": "1.0.0",