{"version":3,"file":"ProgressSlider-BL91ycBQ.js","sources":["../../../app/javascript/components/progress/TrackProgress/TrackProgress.tsx","../../../node_modules/@radix-ui/react-slider/dist/index.mjs","../../../app/javascript/hardcover-ui/components/Slider.tsx","../../../app/javascript/components/progress/ProgressSlider/ProgressSlider.tsx"],"sourcesContent":["import Button from \"hardcover-ui/components/Button\";\n\nexport default function TrackProgress({\n trackRead,\n}: {\n trackRead: () => void;\n}) {\n return (\n
\n \n
\n );\n}\n","\"use client\";\n\n// packages/react/slider/src/Slider.tsx\nimport * 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\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar PAGE_KEYS = [\"PageUp\", \"PageDown\"];\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar BACK_KEYS = {\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};\nvar SLIDER_NAME = \"Slider\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SLIDER_NAME);\nvar [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope\n]);\nvar [SliderProvider, useSliderContext] = createSliderContext(SLIDER_NAME);\nvar Slider = React.forwardRef(\n (props, 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 },\n onValueCommit = () => {\n },\n inverted = false,\n ...sliderProps\n } = props;\n const thumbRefs = React.useRef(/* @__PURE__ */ new Set());\n const valueIndexToChangeRef = React.useRef(0);\n const isHorizontal = orientation === \"horizontal\";\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value2) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value2);\n }\n });\n const valuesBeforeSlideStartRef = React.useRef(values);\n function handleSlideStart(value2) {\n const closestIndex = getClosestValueIndex(values, value2);\n updateValues(value2, closestIndex);\n }\n function handleSlideMove(value2) {\n updateValues(value2, valueIndexToChangeRef.current);\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 function updateValues(value2, atIndex, { commit } = { commit: false }) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value2 - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\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 return /* @__PURE__ */ jsx(\n SliderProvider,\n {\n scope: props.__scopeSlider,\n name,\n disabled,\n min,\n max,\n valueIndexToChangeRef,\n thumbs: thumbRefs.current,\n values,\n orientation,\n children: /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(\n SliderOrientation,\n {\n \"aria-disabled\": disabled,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...sliderProps,\n ref: forwardedRef,\n onPointerDown: composeEventHandlers(sliderProps.onPointerDown, () => {\n if (!disabled) valuesBeforeSlideStartRef.current = values;\n }),\n min,\n max,\n inverted,\n onSlideStart: disabled ? void 0 : handleSlideStart,\n onSlideMove: disabled ? void 0 : handleSlideMove,\n onSlideEnd: disabled ? void 0 : handleSlideEnd,\n onHomeKeyDown: () => !disabled && updateValues(min, 0, { commit: true }),\n onEndKeyDown: () => !disabled && updateValues(max, values.length - 1, { commit: true }),\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 value2 = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value2 + stepInDirection, atIndex, { commit: true });\n }\n }\n }\n ) }) })\n }\n );\n }\n);\nSlider.displayName = SLIDER_NAME;\nvar [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext(SLIDER_NAME, {\n startEdge: \"left\",\n endEdge: \"right\",\n size: \"width\",\n direction: 1\n});\nvar SliderHorizontal = React.forwardRef(\n (props, 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(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef();\n const direction = useDirection(dir);\n const isDirectionLTR = direction === \"ltr\";\n const isSlidingFromLeft = isDirectionLTR && !inverted || !isDirectionLTR && inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || slider.getBoundingClientRect();\n const input = [0, rect.width];\n const output = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromLeft ? \"left\" : \"right\",\n endEdge: isSlidingFromLeft ? \"right\" : \"left\",\n direction: isSlidingFromLeft ? 1 : -1,\n size: \"width\",\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n dir: direction,\n \"data-orientation\": \"horizontal\",\n ...sliderProps,\n ref: composedRefs,\n style: {\n ...sliderProps.style,\n [\"--radix-slider-thumb-transform\"]: \"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 = void 0;\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 )\n }\n );\n }\n);\nvar SliderVertical = React.forwardRef(\n (props, 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(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef();\n const isSlidingFromBottom = !inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || sliderRef.current.getBoundingClientRect();\n const input = [0, rect.height];\n const output = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromBottom ? \"bottom\" : \"top\",\n endEdge: isSlidingFromBottom ? \"top\" : \"bottom\",\n size: \"height\",\n direction: isSlidingFromBottom ? 1 : -1,\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n \"data-orientation\": \"vertical\",\n ...sliderProps,\n ref,\n style: {\n ...sliderProps.style,\n [\"--radix-slider-thumb-transform\"]: \"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 = void 0;\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 )\n }\n );\n }\n);\nvar SliderImpl = React.forwardRef(\n (props, 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 return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...sliderProps,\n ref: forwardedRef,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Home\") {\n onHomeKeyDown(event);\n event.preventDefault();\n } else if (event.key === \"End\") {\n onEndKeyDown(event);\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n event.preventDefault();\n }\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target;\n target.setPointerCapture(event.pointerId);\n event.preventDefault();\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;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })\n }\n );\n }\n);\nvar TRACK_NAME = \"SliderTrack\";\nvar SliderTrack = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-disabled\": context.disabled ? \"\" : void 0,\n \"data-orientation\": context.orientation,\n ...trackProps,\n ref: forwardedRef\n }\n );\n }\n);\nSliderTrack.displayName = TRACK_NAME;\nvar RANGE_NAME = \"SliderRange\";\nvar SliderRange = React.forwardRef(\n (props, 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(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map(\n (value) => convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...rangeProps,\n ref: composedRefs,\n style: {\n ...props.style,\n [orientation.startEdge]: offsetStart + \"%\",\n [orientation.endEdge]: offsetEnd + \"%\"\n }\n }\n );\n }\n);\nSliderRange.displayName = RANGE_NAME;\nvar THUMB_NAME = \"SliderThumb\";\nvar SliderThumb = React.forwardRef(\n (props, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState(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 /* @__PURE__ */ jsx(SliderThumbImpl, { ...props, ref: composedRefs, index });\n }\n);\nvar SliderThumbImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, index, name, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const isFormControl = thumb ? Boolean(thumb.closest(\"form\")) : true;\n const size = useSize(thumb);\n const value = context.values[index];\n const percent = value === void 0 ? 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 ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction) : 0;\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 return /* @__PURE__ */ jsxs(\n \"span\",\n {\n style: {\n transform: \"var(--radix-slider-thumb-transform)\",\n position: \"absolute\",\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`\n },\n children: [\n /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\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 ? \"\" : void 0,\n tabIndex: context.disabled ? void 0 : 0,\n ...thumbProps,\n ref: composedRefs,\n style: value === void 0 ? { display: \"none\" } : props.style,\n onFocus: composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })\n }\n ) }),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n name: name ?? (context.name ? context.name + (context.values.length > 1 ? \"[]\" : \"\") : void 0),\n value\n },\n index\n )\n ]\n }\n );\n }\n);\nSliderThumb.displayName = THUMB_NAME;\nvar BubbleInput = (props) => {\n const { value, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"value\");\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 return /* @__PURE__ */ jsx(\"input\", { style: { display: \"none\" }, ...inputProps, ref, defaultValue: value });\n};\nfunction getNextSortedValues(prevValues = [], nextValue, atIndex) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\nfunction convertValueToPercentage(value, min, max) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n const percentage = percentPerStep * (value - min);\n return clamp(percentage, [0, 100]);\n}\nfunction getLabel(index, totalValues) {\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 void 0;\n }\n}\nfunction getClosestValueIndex(values, nextValue) {\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}\nfunction getThumbInBoundsOffset(width, left, direction) {\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}\nfunction getStepsBetweenValues(values) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\nfunction hasMinStepsBetweenValues(values, minStepsBetweenValues) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\nfunction linearScale(input, output) {\n return (value) => {\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}\nfunction getDecimalCount(value) {\n return (String(value).split(\".\")[1] || \"\").length;\n}\nfunction roundValue(value, decimalCount) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\nvar Root = Slider;\nvar Track = SliderTrack;\nvar Range = SliderRange;\nvar Thumb = SliderThumb;\nexport {\n Range,\n Root,\n Slider,\n SliderRange,\n SliderThumb,\n SliderTrack,\n Thumb,\n Track,\n createSliderScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\n\nimport classNames from \"lib/classNames\";\n\nconst Slider = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, onValueChange, ...props }, ref) => (\n {}}\n >\n \n \n \n {onValueChange ? (\n \n ) : (\n false\n )}\n \n));\nSlider.displayName = SliderPrimitive.Root.displayName;\n\nexport { Slider };\n","import { Slider } from \"hardcover-ui/components/Slider\";\nimport { secondsFormat } from \"lib/bookUtils\";\nimport { useEffect, useState } from \"react\";\n\nfunction writeProgressMessage(\n readingFormatId: number,\n progressNumber: number,\n progressMax: number\n) {\n const percentComplete = Math.round((progressNumber / progressMax) * 100);\n if (readingFormatId === 2) {\n return (\n secondsFormat(progressNumber) +\n \" of \" +\n secondsFormat(progressMax) +\n \" (\" +\n percentComplete +\n \"%)\"\n );\n }\n return `Page ${progressNumber.toLocaleString()} of ${progressMax.toLocaleString()} (${percentComplete}%)`;\n}\n\ninterface Props {\n progressNumber: number | null;\n progressMax: number | null;\n onChange: (progress: number) => void;\n readingFormatId: number;\n}\nexport default function ProgressSlider({\n progressNumber = 0,\n progressMax,\n onChange,\n readingFormatId,\n}: Props) {\n const [progress, setProgress] = useState(progressNumber || 0);\n\n useEffect(() => {\n setProgress(progressNumber || 0);\n }, [progressNumber]);\n\n const onProgressChange = (newProgress: number) => {\n setProgress(newProgress);\n onChange(newProgress);\n };\n\n if (!progressMax) {\n return false;\n }\n\n const message = writeProgressMessage(readingFormatId, progress, progressMax);\n\n return (\n
\n onProgressChange(newValues[0]) : null\n }\n max={progressMax}\n step={1}\n data-tooltip-id=\"tooltip\"\n data-tooltip-content={message}\n />\n {progressNumber !== progress ? (\n

\n Changing to... {message}\n

\n ) : (\n false\n )}\n
\n );\n}\n"],"names":["TrackProgress","trackRead","jsx","Button","PAGE_KEYS","ARROW_KEYS","BACK_KEYS","SLIDER_NAME","Collection","useCollection","createCollectionScope","createCollection","createSliderContext","createSliderScope","createContextScope","SliderProvider","useSliderContext","Slider","React.forwardRef","props","forwardedRef","name","min","max","step","orientation","disabled","minStepsBetweenThumbs","defaultValue","value","onValueChange","onValueCommit","inverted","sliderProps","thumbRefs","React.useRef","valueIndexToChangeRef","SliderOrientation","SliderHorizontal","SliderVertical","values","setValues","useControllableState","value2","_a","valuesBeforeSlideStartRef","handleSlideStart","closestIndex","getClosestValueIndex","updateValues","handleSlideMove","handleSlideEnd","prevValue","atIndex","commit","decimalCount","getDecimalCount","snapToStep","roundValue","nextValue","clamp","prevValues","nextValues","getNextSortedValues","hasMinStepsBetweenValues","hasChanged","composeEventHandlers","event","stepDirection","multiplier","stepInDirection","SliderOrientationProvider","useSliderOrientationContext","dir","onSlideStart","onSlideMove","onSlideEnd","onStepKeyDown","slider","setSlider","React.useState","composedRefs","useComposedRefs","node","rectRef","direction","useDirection","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","rect","input","linearScale","SliderImpl","isBackKey","sliderRef","ref","isSlidingFromBottom","__scopeSlider","onHomeKeyDown","onEndKeyDown","context","Primitive","target","TRACK_NAME","SliderTrack","trackProps","RANGE_NAME","SliderRange","rangeProps","valuesCount","percentages","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","SliderThumb","getItems","thumb","setThumb","index","React.useMemo","item","SliderThumbImpl","thumbProps","isFormControl","size","useSize","percent","label","getLabel","orientationSize","thumbInBoundsOffset","getThumbInBoundsOffset","React.useEffect","jsxs","BubbleInput","inputProps","usePrevious","inputProto","setValue","a","b","percentage","totalValues","distances","closestDistance","width","left","halfWidth","offset","getStepsBetweenValues","minStepsBetweenValues","stepsBetweenValues","output","ratio","rounder","Root","Track","Range","Thumb","className","SliderPrimitive.Root","classNames","SliderPrimitive.Track","SliderPrimitive.Range","SliderPrimitive.Thumb","writeProgressMessage","readingFormatId","progressNumber","progressMax","percentComplete","secondsFormat","ProgressSlider","onChange","progress","setProgress","useState","useEffect","onProgressChange","newProgress","message","newValues"],"mappings":"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","x_google_ignoreList":[1]}