1 |
- {"mappings":"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","sources":["packages/react/slider/src/index.ts","packages/react/slider/src/Slider.tsx"],"sourcesContent":["export {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n} from './Slider';\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps } from './Slider';\n","import * as React from 'react';\nimport { clamp } from '@radix-ui/number';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { createCollection } from '@radix-ui/react-collection';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\n\nconst PAGE_KEYS = ['PageUp', 'PageDown'];\nconst ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\ntype SlideDirection = 'from-left' | 'from-right' | 'from-bottom' | 'from-top';\nconst BACK_KEYS: Record<SlideDirection, string[]> = {\n 'from-left': ['Home', 'PageDown', 'ArrowDown', 'ArrowLeft'],\n 'from-right': ['Home', 'PageDown', 'ArrowDown', 'ArrowRight'],\n 'from-bottom': ['Home', 'PageDown', 'ArrowDown', 'ArrowLeft'],\n 'from-top': ['Home', 'PageDown', 'ArrowUp', 'ArrowLeft'],\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Slider\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLIDER_NAME = 'Slider';\n\nconst [Collection, useCollection, createCollectionScope] =\n createCollection<SliderThumbElement>(SLIDER_NAME);\n\ntype ScopedProps<P> = P & { __scopeSlider?: Scope };\nconst [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope,\n]);\n\ntype SliderContextValue = {\n disabled?: boolean;\n min: number;\n max: number;\n values: number[];\n valueIndexToChangeRef: React.MutableRefObject<number>;\n thumbs: Set<SliderThumbElement>;\n orientation: SliderProps['orientation'];\n};\n\nconst [SliderProvider, useSliderContext] = createSliderContext<SliderContextValue>(SLIDER_NAME);\n\ntype SliderElement = SliderHorizontalElement | SliderVerticalElement;\ninterface SliderProps\n extends Omit<\n SliderHorizontalProps | SliderVerticalProps,\n keyof SliderOrientationPrivateProps | 'defaultValue'\n > {\n name?: string;\n disabled?: boolean;\n orientation?: React.AriaAttributes['aria-orientation'];\n dir?: Direction;\n min?: number;\n max?: number;\n step?: number;\n minStepsBetweenThumbs?: number;\n value?: number[];\n defaultValue?: number[];\n onValueChange?(value: number[]): void;\n onValueCommit?(value: number[]): void;\n inverted?: boolean;\n}\n\nconst Slider = React.forwardRef<SliderElement, SliderProps>(\n (props: ScopedProps<SliderProps>, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = 'horizontal',\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {},\n onValueCommit = () => {},\n inverted = false,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const thumbRefs = React.useRef<SliderContextValue['thumbs']>(new Set());\n const valueIndexToChangeRef = React.useRef<number>(0);\n const isHorizontal = orientation === 'horizontal';\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = slider ? Boolean(slider.closest('form')) : true;\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value);\n },\n });\n const valuesBeforeSlideStartRef = React.useRef(values);\n\n function handleSlideStart(value: number) {\n const closestIndex = getClosestValueIndex(values, value);\n updateValues(value, closestIndex);\n }\n\n function handleSlideMove(value: number) {\n updateValues(value, valueIndexToChangeRef.current);\n }\n\n function handleSlideEnd() {\n const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];\n const nextValue = values[valueIndexToChangeRef.current];\n const hasChanged = nextValue !== prevValue;\n if (hasChanged) onValueCommit(values);\n }\n\n function updateValues(value: number, atIndex: number, { commit } = { commit: false }) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n const hasChanged = String(nextValues) !== String(prevValues);\n if (hasChanged && commit) onValueCommit(nextValues);\n return hasChanged ? nextValues : prevValues;\n } else {\n return prevValues;\n }\n });\n }\n\n return (\n <SliderProvider\n scope={props.__scopeSlider}\n disabled={disabled}\n min={min}\n max={max}\n valueIndexToChangeRef={valueIndexToChangeRef}\n thumbs={thumbRefs.current}\n values={values}\n orientation={orientation}\n >\n <Collection.Provider scope={props.__scopeSlider}>\n <Collection.Slot scope={props.__scopeSlider}>\n <SliderOrientation\n aria-disabled={disabled}\n data-disabled={disabled ? '' : undefined}\n {...sliderProps}\n ref={composedRefs}\n onPointerDown={composeEventHandlers(sliderProps.onPointerDown, () => {\n if (!disabled) valuesBeforeSlideStartRef.current = values;\n })}\n min={min}\n max={max}\n inverted={inverted}\n onSlideStart={disabled ? undefined : handleSlideStart}\n onSlideMove={disabled ? undefined : handleSlideMove}\n onSlideEnd={disabled ? undefined : handleSlideEnd}\n onHomeKeyDown={() => !disabled && updateValues(min, 0, { commit: true })}\n onEndKeyDown={() =>\n !disabled && updateValues(max, values.length - 1, { commit: true })\n }\n onStepKeyDown={({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || (event.shiftKey && ARROW_KEYS.includes(event.key));\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value + stepInDirection, atIndex, { commit: true });\n }\n }}\n />\n </Collection.Slot>\n </Collection.Provider>\n {isFormControl &&\n values.map((value, index) => (\n <BubbleInput\n key={index}\n name={name ? name + (values.length > 1 ? '[]' : '') : undefined}\n value={value}\n />\n ))}\n </SliderProvider>\n );\n }\n);\n\nSlider.displayName = SLIDER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderHorizontal\n * -----------------------------------------------------------------------------------------------*/\n\ntype Side = 'top' | 'right' | 'bottom' | 'left';\n\nconst [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext<{\n startEdge: Side;\n endEdge: Side;\n size: keyof NonNullable<ReturnType<typeof useSize>>;\n direction: number;\n}>(SLIDER_NAME, {\n startEdge: 'left',\n endEdge: 'right',\n size: 'width',\n direction: 1,\n});\n\ntype SliderOrientationPrivateProps = {\n min: number;\n max: number;\n inverted: boolean;\n onSlideStart?(value: number): void;\n onSlideMove?(value: number): void;\n onSlideEnd?(): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(step: { event: React.KeyboardEvent; direction: number }): void;\n};\ninterface SliderOrientationProps\n extends Omit<SliderImplProps, keyof SliderImplPrivateProps>,\n SliderOrientationPrivateProps {}\n\ntype SliderHorizontalElement = SliderImplElement;\ninterface SliderHorizontalProps extends SliderOrientationProps {\n dir?: Direction;\n}\n\nconst SliderHorizontal = React.forwardRef<SliderHorizontalElement, SliderHorizontalProps>(\n (props: ScopedProps<SliderHorizontalProps>, forwardedRef) => {\n const {\n min,\n max,\n dir,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState<SliderImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef<ClientRect>();\n const direction = useDirection(dir);\n const isDirectionLTR = direction === 'ltr';\n const isSlidingFromLeft = (isDirectionLTR && !inverted) || (!isDirectionLTR && inverted);\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || slider!.getBoundingClientRect();\n const input: [number, number] = [0, rect.width];\n const output: [number, number] = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromLeft ? 'left' : 'right'}\n endEdge={isSlidingFromLeft ? 'right' : 'left'}\n direction={isSlidingFromLeft ? 1 : -1}\n size=\"width\"\n >\n <SliderImpl\n dir={direction}\n data-orientation=\"horizontal\"\n {...sliderProps}\n ref={composedRefs}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: 'translateX(-50%)',\n }}\n onSlideStart={(event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart?.(value);\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove?.(value);\n }}\n onSlideEnd={() => {\n rectRef.current = undefined;\n onSlideEnd?.();\n }}\n onStepKeyDown={(event) => {\n const slideDirection = isSlidingFromLeft ? 'from-left' : 'from-right';\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }}\n />\n </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderVertical\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderVerticalElement = SliderImplElement;\ninterface SliderVerticalProps extends SliderOrientationProps {}\n\nconst SliderVertical = React.forwardRef<SliderVerticalElement, SliderVerticalProps>(\n (props: ScopedProps<SliderVerticalProps>, forwardedRef) => {\n const {\n min,\n max,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const sliderRef = React.useRef<SliderImplElement>(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef<ClientRect>();\n const isSlidingFromBottom = !inverted;\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || sliderRef.current!.getBoundingClientRect();\n const input: [number, number] = [0, rect.height];\n const output: [number, number] = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromBottom ? 'bottom' : 'top'}\n endEdge={isSlidingFromBottom ? 'top' : 'bottom'}\n size=\"height\"\n direction={isSlidingFromBottom ? 1 : -1}\n >\n <SliderImpl\n data-orientation=\"vertical\"\n {...sliderProps}\n ref={ref}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: 'translateY(50%)',\n }}\n onSlideStart={(event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart?.(value);\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove?.(value);\n }}\n onSlideEnd={() => {\n rectRef.current = undefined;\n onSlideEnd?.();\n }}\n onStepKeyDown={(event) => {\n const slideDirection = isSlidingFromBottom ? 'from-bottom' : 'from-top';\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }}\n />\n </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderImpl\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderImplElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveDivProps = Radix.ComponentPropsWithoutRef<typeof Primitive.div>;\ntype SliderImplPrivateProps = {\n onSlideStart(event: React.PointerEvent): void;\n onSlideMove(event: React.PointerEvent): void;\n onSlideEnd(event: React.PointerEvent): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(event: React.KeyboardEvent): void;\n};\ninterface SliderImplProps extends PrimitiveDivProps, SliderImplPrivateProps {}\n\nconst SliderImpl = React.forwardRef<SliderImplElement, SliderImplProps>(\n (props: ScopedProps<SliderImplProps>, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const context = useSliderContext(SLIDER_NAME, __scopeSlider);\n\n return (\n <Primitive.span\n {...sliderProps}\n ref={forwardedRef}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === 'Home') {\n onHomeKeyDown(event);\n // Prevent scrolling to page start\n event.preventDefault();\n } else if (event.key === 'End') {\n onEndKeyDown(event);\n // Prevent scrolling to page end\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n // Prevent scrolling for directional key presses\n event.preventDefault();\n }\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target as HTMLElement;\n target.setPointerCapture(event.pointerId);\n // Prevent browser focus behaviour because we focus a thumb manually when values change.\n event.preventDefault();\n // Touch devices have a delay before focusing so won't focus if touch immediately moves\n // away from target (sliding). We want thumb to focus regardless.\n if (context.thumbs.has(target)) {\n target.focus();\n } else {\n onSlideStart(event);\n }\n })}\n onPointerMove={composeEventHandlers(props.onPointerMove, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n })}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })}\n />\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderTrack\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRACK_NAME = 'SliderTrack';\n\ntype SliderTrackElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = Radix.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface SliderTrackProps extends PrimitiveSpanProps {}\n\nconst SliderTrack = React.forwardRef<SliderTrackElement, SliderTrackProps>(\n (props: ScopedProps<SliderTrackProps>, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return (\n <Primitive.span\n data-disabled={context.disabled ? '' : undefined}\n data-orientation={context.orientation}\n {...trackProps}\n ref={forwardedRef}\n />\n );\n }\n);\n\nSliderTrack.displayName = TRACK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderRange\n * -----------------------------------------------------------------------------------------------*/\n\nconst RANGE_NAME = 'SliderRange';\n\ntype SliderRangeElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderRangeProps extends PrimitiveSpanProps {}\n\nconst SliderRange = React.forwardRef<SliderRangeElement, SliderRangeProps>(\n (props: ScopedProps<SliderRangeProps>, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props;\n const context = useSliderContext(RANGE_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);\n const ref = React.useRef<HTMLSpanElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map((value) =>\n convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n\n return (\n <Primitive.span\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n {...rangeProps}\n ref={composedRefs}\n style={{\n ...props.style,\n [orientation.startEdge]: offsetStart + '%',\n [orientation.endEdge]: offsetEnd + '%',\n }}\n />\n );\n }\n);\n\nSliderRange.displayName = RANGE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderThumb\n * -----------------------------------------------------------------------------------------------*/\n\nconst THUMB_NAME = 'SliderThumb';\n\ntype SliderThumbElement = SliderThumbImplElement;\ninterface SliderThumbProps extends Omit<SliderThumbImplProps, 'index'> {}\n\nconst SliderThumb = React.forwardRef<SliderThumbElement, SliderThumbProps>(\n (props: ScopedProps<SliderThumbProps>, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState<SliderThumbImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const index = React.useMemo(\n () => (thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1),\n [getItems, thumb]\n );\n return <SliderThumbImpl {...props} ref={composedRefs} index={index} />;\n }\n);\n\ntype SliderThumbImplElement = React.ElementRef<typeof Primitive.span>;\ninterface SliderThumbImplProps extends PrimitiveSpanProps {\n index: number;\n}\n\nconst SliderThumbImpl = React.forwardRef<SliderThumbImplElement, SliderThumbImplProps>(\n (props: ScopedProps<SliderThumbImplProps>, forwardedRef) => {\n const { __scopeSlider, index, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const size = useSize(thumb);\n // We cast because index could be `-1` which would return undefined\n const value = context.values[index] as number | undefined;\n const percent =\n value === undefined ? 0 : convertValueToPercentage(value, context.min, context.max);\n const label = getLabel(index, context.values.length);\n const orientationSize = size?.[orientation.size];\n const thumbInBoundsOffset = orientationSize\n ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction)\n : 0;\n\n React.useEffect(() => {\n if (thumb) {\n context.thumbs.add(thumb);\n return () => {\n context.thumbs.delete(thumb);\n };\n }\n }, [thumb, context.thumbs]);\n\n return (\n <span\n style={{\n transform: 'var(--radix-slider-thumb-transform)',\n position: 'absolute',\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`,\n }}\n >\n <Collection.ItemSlot scope={props.__scopeSlider}>\n <Primitive.span\n role=\"slider\"\n aria-label={props['aria-label'] || label}\n aria-valuemin={context.min}\n aria-valuenow={value}\n aria-valuemax={context.max}\n aria-orientation={context.orientation}\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n tabIndex={context.disabled ? undefined : 0}\n {...thumbProps}\n ref={composedRefs}\n /**\n * There will be no value on initial render while we work out the index so we hide thumbs\n * without a value, otherwise SSR will render them in the wrong position before they\n * snap into the correct position during hydration which would be visually jarring for\n * slower connections.\n */\n style={value === undefined ? { display: 'none' } : props.style}\n onFocus={composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })}\n />\n </Collection.ItemSlot>\n </span>\n );\n }\n);\n\nSliderThumb.displayName = THUMB_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst BubbleInput = (props: Radix.ComponentPropsWithoutRef<'input'>) => {\n const { value, ...inputProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const prevValue = usePrevious(value);\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const input = ref.current!;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value') as PropertyDescriptor;\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event('input', { bubbles: true });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [prevValue, value]);\n\n /**\n * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n * wrap it will not be able to access its value via the FormData API.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n */\n return <input style={{ display: 'none' }} {...inputProps} ref={ref} defaultValue={value} />;\n};\n\nfunction getNextSortedValues(prevValues: number[] = [], nextValue: number, atIndex: number) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\n\nfunction convertValueToPercentage(value: number, min: number, max: number) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n const percentage = percentPerStep * (value - min);\n return clamp(percentage, [0, 100]);\n}\n\n/**\n * Returns a label for each thumb when there are two or more thumbs\n */\nfunction getLabel(index: number, totalValues: number) {\n if (totalValues > 2) {\n return `Value ${index + 1} of ${totalValues}`;\n } else if (totalValues === 2) {\n return ['Minimum', 'Maximum'][index];\n } else {\n return undefined;\n }\n}\n\n/**\n * Given a `values` array and a `nextValue`, determine which value in\n * the array is closest to `nextValue` and return its index.\n *\n * @example\n * // returns 1\n * getClosestValueIndex([10, 30], 25);\n */\nfunction getClosestValueIndex(values: number[], nextValue: number) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\n\n/**\n * Offsets the thumb centre point while sliding to ensure it remains\n * within the bounds of the slider when reaching the edges\n */\nfunction getThumbInBoundsOffset(width: number, left: number, direction: number) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\n\n/**\n * Gets an array of steps between each value.\n *\n * @example\n * // returns [1, 9]\n * getStepsBetweenValues([10, 11, 20]);\n */\nfunction getStepsBetweenValues(values: number[]) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\n\n/**\n * Verifies the minimum steps between all values is greater than or equal\n * to the expected minimum steps.\n *\n * @example\n * // returns false\n * hasMinStepsBetweenValues([1,2,3], 2);\n *\n * @example\n * // returns true\n * hasMinStepsBetweenValues([1,2,3], 1);\n */\nfunction hasMinStepsBetweenValues(values: number[], minStepsBetweenValues: number) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\n\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(input: readonly [number, number], output: readonly [number, number]) {\n return (value: number) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\n\nfunction getDecimalCount(value: number) {\n return (String(value).split('.')[1] || '').length;\n}\n\nfunction roundValue(value: number, decimalCount: number) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\n\nconst Root = Slider;\nconst Track = SliderTrack;\nconst Range = SliderRange;\nconst Thumb = SliderThumb;\n\nexport {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n};\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps };\n"],"names":["createSliderScope","Slider","SliderTrack","SliderRange","SliderThumb","Root","Track","Range","Thumb","React","clamp","composeEventHandlers","useComposedRefs","createContextScope","useControllableState","useDirection","usePrevious","useSize","Primitive","createCollection","PAGE_KEYS","ARROW_KEYS","BACK_KEYS","SLIDER_NAME","Collection","useCollection","createCollectionScope","createSliderContext","SliderProvider","useSliderContext","forwardRef","props","forwardedRef","name","min","max","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value","onValueChange","onValueCommit","inverted","sliderProps","slider","setSlider","useState","composedRefs","node","thumbRefs","useRef","Set","valueIndexToChangeRef","isHorizontal","isFormControl","Boolean","closest","SliderOrientation","SliderHorizontal","SliderVertical","values","setValues","prop","defaultProp","onChange","thumbs","current","focus","valuesBeforeSlideStartRef","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","handleSlideEnd","prevValue","nextValue","hasChanged","atIndex","commit","decimalCount","getDecimalCount","snapToStep","roundValue","Math","round","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","indexOf","String","__scopeSlider","undefined","onPointerDown","length","event","direction","stepDirection","isPageKey","includes","key","isSkipKey","shiftKey","multiplier","stepInDirection","map","index","SliderOrientationProvider","useSliderOrientationContext","startEdge","endEdge","size","dir","onSlideStart","onSlideMove","onSlideEnd","onStepKeyDown","rectRef","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","rect","getBoundingClientRect","input","width","output","linearScale","left","style","clientX","slideDirection","isBackKey","sliderRef","ref","isSlidingFromBottom","height","top","clientY","SliderImpl","onHomeKeyDown","onEndKeyDown","context","onKeyDown","preventDefault","concat","target","setPointerCapture","pointerId","has","onPointerMove","hasPointerCapture","onPointerUp","releasePointerCapture","TRACK_NAME","trackProps","RANGE_NAME","rangeProps","valuesCount","percentages","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","getItems","thumb","setThumb","useMemo","findIndex","item","SliderThumbImpl","thumbProps","percent","label","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","useEffect","add","delete","transform","position","display","onFocus","BubbleInput","inputProps","inputProto","window","HTMLInputElement","prototype","descriptor","Object","getOwnPropertyDescriptor","setValue","set","Event","bubbles","call","dispatchEvent","sort","a","b","maxSteps","percentPerStep","percentage","totalValues","distances","abs","closestDistance","halfWidth","halfPercent","offset","getStepsBetweenValues","slice","minStepsBetweenValues","stepsBetweenValues","actualMinStepsBetweenValues","ratio","split","rounder","pow"],"version":3,"file":"index.js.map"}
|