{"version":3,"names":["dynamic","isServer","omit","onCleanup","untrack","useDirection","createChangeEventDetails","createGenericEventDetails","REASONS","composeRefs","userRef","activeElement","contains","getTarget","ownerDocument","ownerWindow","mergeRootProps","resolveClassStyle","clamp","getMidpoint","resolveThumbCollision","roundValueToStep","validateMinimumDistance","useAnimationFrame","useSliderRootContext","sliderDataAttrs","INTENTIONAL_DRAG_COUNT_THRESHOLD","getControlOffset","styles","vertical","start","end","parseSize","value","parsed","Number","parseFloat","isNaN","getFingerCoords","event","touchIdRef","current","changedTouches","touchEvent","i","length","touch","identifier","x","clientX","y","clientY","pointer","SliderControl","props","context","direction","focusFrame","controlRef","moveCountRef","latestValuesRef","values","stylesRef","insetThumbOffsetRef","updatePressedThumb","nextIndex","pressedThumbIndexRef","thumbElement","thumbRefs","pressedThumbCenterOffsetRef","pressedInputRef","querySelector","getFingerState","fingerCoords","control","orientation","rect","getBoundingClientRect","width","height","bottom","left","right","controlOffset","insetThumbOffset","controlSize","thumbCenterOffset","fingerX","fingerY","rtl","valueSize","valueRescaled","min","max","step","newValue","range","thumbIndex","didSwap","collisionResult","behavior","thumbCollisionBehavior","currentValues","initialValues","pressedValuesRef","pressedIndex","nextValue","minStepsBetweenValues","startPressing","slice","pressedThumbIndex","closestThumbIndex","axis","minDistance","thumbEl","Element","midpoint","distance","Math","abs","undefined","inset","thumbRect","focusThumb","thumb","input","focus","preventScroll","handleTouchMove","nativeEvent","type","buttons","handleTouchEnd","finger","dragging","setDragging","details","drag","activeThumbIndex","setValue","Array","isArray","setActive","commitReason","lastChangeReasonRef","onValueCommitted","lastChangedValueRef","pointerId","hasPointerCapture","releasePointerCapture","stopListening","doc","removeEventListener","handleTouchStart","disabled","trackPress","addEventListener","passive","bindTouchStart","el","cancel","unbindTouch","localRef","registerFieldControlRef","getComputedStyle","userClassStyle","state","userProps","internalSlot","data-quoin-slider-control","renderBeforeHydration","onPointerDown","target","defaultPrevented","button","pressedOnFocusedThumb","preventDefault","request","pressedOnAnyThumb","setPointerCapture","once","merged","Tag","as"],"sources":["slider-control.tsx"],"sourcesContent":["import type { JSX, ValidComponent } from \"@solidjs/web\";\nimport { dynamic, isServer } from \"@solidjs/web\";\nimport { omit, onCleanup, untrack } from \"solid-js\";\nimport { useDirection } from \"../../direction-provider/direction-provider-context.ts\";\nimport {\n\tcreateChangeEventDetails,\n\tcreateGenericEventDetails,\n\tREASONS,\n} from \"../../internals/change-event-details\";\nimport { composeRefs, userRef } from \"../../internals/compose-refs\";\nimport { activeElement } from \"../../internals/dom/active-element.ts\";\nimport { contains } from \"../../internals/dom/contains.ts\";\nimport { getTarget } from \"../../internals/dom/get-target.ts\";\nimport { ownerDocument } from \"../../internals/dom/owner-document.ts\";\nimport { ownerWindow } from \"../../internals/dom/owner-window.ts\";\nimport { mergeRootProps } from \"../../internals/merge-root-props\";\nimport { resolveClassStyle } from \"../../internals/resolve-class-style\";\nimport { clamp } from \"../../internals/slider-utils/clamp.ts\";\nimport { getMidpoint } from \"../../internals/slider-utils/get-midpoint.ts\";\nimport { resolveThumbCollision } from \"../../internals/slider-utils/resolve-thumb-collision.ts\";\nimport { roundValueToStep } from \"../../internals/slider-utils/round-value-to-step.ts\";\nimport { validateMinimumDistance } from \"../../internals/slider-utils/validate-minimum-distance.ts\";\nimport type { BaseUIComponentProps } from \"../../internals/types\";\nimport { useAnimationFrame } from \"../../internals/use-animation-frame.ts\";\nimport {\n\ttype SliderRootState,\n\tuseSliderRootContext,\n} from \"../slider-root-context.ts\";\nimport { sliderDataAttrs } from \"../utils/state-attrs.ts\";\n\nconst INTENTIONAL_DRAG_COUNT_THRESHOLD = 2;\n\ninterface Coords {\n\tx: number;\n\ty: number;\n}\n\ninterface FingerState {\n\tvalue: number | number[];\n\tthumbIndex: number;\n\tdidSwap: boolean;\n}\n\nfunction getControlOffset(\n\tstyles: CSSStyleDeclaration | null,\n\tvertical: boolean,\n): { start: number; end: number } {\n\tif (!styles) return { start: 0, end: 0 };\n\tfunction parseSize(value: string | null | undefined): number {\n\t\tconst parsed = value != null ? Number.parseFloat(value) : 0;\n\t\treturn Number.isNaN(parsed) ? 0 : parsed;\n\t}\n\tconst start = vertical ? \"Top\" : \"InlineStart\";\n\tconst end = vertical ? \"Bottom\" : \"InlineEnd\";\n\t// Indexing via bracket notation because React's port reads the same\n\t// camelCase border/padding keys off CSSStyleDeclaration.\n\treturn {\n\t\tstart:\n\t\t\tparseSize(\n\t\t\t\tstyles[`border${start}Width` as keyof CSSStyleDeclaration] as string,\n\t\t\t) +\n\t\t\tparseSize(\n\t\t\t\tstyles[`padding${start}` as keyof CSSStyleDeclaration] as string,\n\t\t\t),\n\t\tend:\n\t\t\tparseSize(\n\t\t\t\tstyles[`border${end}Width` as keyof CSSStyleDeclaration] as string,\n\t\t\t) +\n\t\t\tparseSize(styles[`padding${end}` as keyof CSSStyleDeclaration] as string),\n\t};\n}\n\nfunction getFingerCoords(\n\tevent: TouchEvent | PointerEvent,\n\ttouchIdRef: { current: number | null },\n): Coords | null {\n\tif (\n\t\ttouchIdRef.current != null &&\n\t\t(event as TouchEvent).changedTouches != null\n\t) {\n\t\tconst touchEvent = event as TouchEvent;\n\t\tfor (let i = 0; i < touchEvent.changedTouches.length; i += 1) {\n\t\t\tconst touch = touchEvent.changedTouches[i];\n\t\t\tif (touch && touch.identifier === touchIdRef.current) {\n\t\t\t\treturn { x: touch.clientX, y: touch.clientY };\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tconst pointer = event as PointerEvent;\n\treturn { x: pointer.clientX, y: pointer.clientY };\n}\n\nexport interface SliderControlState extends SliderRootState {}\n\nexport interface SliderControlProps\n\textends BaseUIComponentProps<\"div\", SliderControlState> {\n\t/** Tag/component to render. Defaults to `\"div\"`. */\n\tas?: ValidComponent;\n}\n\n/**\n * The clickable, interactive part of the slider. Renders a `<div>`.\n *\n * Owns the pointer/touch-drag state machine:\n *\n *  - `pointerdown` on the track picks the closest thumb, computes the finger\n *    position in value space, and begins listening for `pointermove` and\n *    `pointerup` on the ambient document.\n *  - `pointermove` applies collision resolution (push / swap / none) and\n *    commits a `drag` change.\n *  - `pointerup` commits the final value and releases listeners.\n *  - Touch events follow the same pipeline via `touchstart` / `touchmove` /\n *    `touchend`, keyed by the active touch identifier.\n *\n * Pointer-drag integration behavior is limited in happy-dom; covered in unit\n * tests where possible and scheduled for browser-level coverage later.\n */\nexport function SliderControl(props: SliderControlProps): JSX.Element {\n\tconst context = useSliderRootContext();\n\tconst direction = useDirection();\n\tconst focusFrame = useAnimationFrame();\n\n\tconst controlRef: { current: HTMLElement | null } = { current: null };\n\tconst touchIdRef: { current: number | null } = { current: null };\n\tconst moveCountRef = { current: 0 };\n\t// Seed the latest-values cache with a one-shot snapshot — the\n\t// pointer-handler effects below subscribe to subsequent `context.values()`\n\t// changes and refresh this ref. `untrack` keeps the snapshot read out of\n\t// the component-body strict-read shell.\n\tconst latestValuesRef: { current: readonly number[] } = {\n\t\tcurrent: untrack(() => context.values()),\n\t};\n\t// Computed style of the control, captured once on mount. Used by\n\t// `getControlOffset` to subtract border + padding from the usable drag\n\t// width. Grabbed via `ownerWindow` for shadow-DOM / iframe safety.\n\tconst stylesRef: { current: CSSStyleDeclaration | null } = { current: null };\n\t// Half the thumb's main-axis size, maintained by `<Slider.Thumb>`'s\n\t// ResizeObserver when `thumbAlignment !== 'center'`. In edge mode the\n\t// usable drag region shrinks by `2 * insetThumbOffset` so the thumb's\n\t// edge (not its center) aligns with the control endpoints.\n\tconst insetThumbOffsetRef = { current: 0 };\n\n\tfunction updatePressedThumb(nextIndex: number): void {\n\t\tif (context.pressedThumbIndexRef.current !== nextIndex) {\n\t\t\tcontext.pressedThumbIndexRef.current = nextIndex;\n\t\t}\n\t\tconst thumbElement = context.thumbRefs.current[nextIndex];\n\t\tif (!thumbElement) {\n\t\t\tcontext.pressedThumbCenterOffsetRef.current = null;\n\t\t\tcontext.pressedInputRef.current = null;\n\t\t\treturn;\n\t\t}\n\t\tcontext.pressedInputRef.current =\n\t\t\tthumbElement.querySelector<HTMLInputElement>('input[type=\"range\"]');\n\t}\n\n\tfunction getFingerState(fingerCoords: Coords): FingerState | null {\n\t\tconst control = controlRef.current;\n\t\tif (!control) return null;\n\n\t\tconst vertical = context.orientation() === \"vertical\";\n\t\tconst rect = control.getBoundingClientRect();\n\t\tconst { width, height, bottom, left, right } = rect;\n\t\tconst controlOffset = getControlOffset(stylesRef.current, vertical);\n\t\tconst insetThumbOffset = insetThumbOffsetRef.current;\n\t\tconst controlSize =\n\t\t\t(vertical ? height : width) -\n\t\t\tcontrolOffset.start -\n\t\t\tcontrolOffset.end -\n\t\t\tinsetThumbOffset * 2;\n\t\tconst thumbCenterOffset = context.pressedThumbCenterOffsetRef.current ?? 0;\n\t\tconst fingerX = fingerCoords.x - thumbCenterOffset;\n\t\tconst fingerY = fingerCoords.y - thumbCenterOffset;\n\n\t\tconst rtl = direction() === \"rtl\";\n\t\tconst valueSize = vertical\n\t\t\t? bottom - fingerY - controlOffset.end\n\t\t\t: (rtl ? right - fingerX : fingerX - left) - controlOffset.start;\n\t\tconst valueRescaled = clamp(\n\t\t\t(valueSize - insetThumbOffset) / (controlSize || 1),\n\t\t\t0,\n\t\t\t1,\n\t\t);\n\n\t\tconst min = context.min();\n\t\tconst max = context.max();\n\t\tconst step = context.step();\n\t\tlet newValue = (max - min) * valueRescaled + min;\n\t\tnewValue = roundValueToStep(newValue, step, min);\n\t\tnewValue = clamp(newValue, min, max);\n\n\t\tconst values = context.values();\n\t\tconst range = values.length > 1;\n\n\t\tif (!range) {\n\t\t\treturn { value: newValue, thumbIndex: 0, didSwap: false };\n\t\t}\n\n\t\tconst thumbIndex = context.pressedThumbIndexRef.current;\n\t\tif (thumbIndex < 0) return null;\n\n\t\tconst collisionResult = resolveThumbCollision({\n\t\t\tbehavior: context.thumbCollisionBehavior(),\n\t\t\tvalues,\n\t\t\tcurrentValues: latestValuesRef.current,\n\t\t\tinitialValues: context.pressedValuesRef.current,\n\t\t\tpressedIndex: thumbIndex,\n\t\t\tnextValue: newValue,\n\t\t\tmin,\n\t\t\tmax,\n\t\t\tstep,\n\t\t\tminStepsBetweenValues: context.minStepsBetweenValues(),\n\t\t});\n\n\t\tif (\n\t\t\tcontext.thumbCollisionBehavior() === \"swap\" &&\n\t\t\tcollisionResult.didSwap\n\t\t) {\n\t\t\tupdatePressedThumb(collisionResult.thumbIndex);\n\t\t} else {\n\t\t\tcontext.pressedThumbIndexRef.current = collisionResult.thumbIndex;\n\t\t}\n\n\t\treturn collisionResult;\n\t}\n\n\tfunction startPressing(fingerCoords: Coords): void {\n\t\tconst values = context.values();\n\t\tcontext.pressedValuesRef.current =\n\t\t\tvalues.length > 1 ? values.slice() : null;\n\t\tlatestValuesRef.current = values;\n\n\t\tconst pressedThumbIndex = context.pressedThumbIndexRef.current;\n\t\tlet closestThumbIndex = pressedThumbIndex;\n\n\t\tif (!(pressedThumbIndex > -1 && pressedThumbIndex < values.length)) {\n\t\t\tconst vertical = context.orientation() === \"vertical\";\n\t\t\tconst axis: \"x\" | \"y\" = vertical ? \"y\" : \"x\";\n\t\t\tlet minDistance: number | undefined;\n\t\t\tclosestThumbIndex = -1;\n\n\t\t\tfor (let i = 0; i < context.thumbRefs.current.length; i += 1) {\n\t\t\t\tconst thumbEl = context.thumbRefs.current[i];\n\t\t\t\tif (thumbEl instanceof Element) {\n\t\t\t\t\tconst midpoint = getMidpoint(thumbEl as HTMLElement);\n\t\t\t\t\tconst distance = Math.abs(fingerCoords[axis] - midpoint[axis]);\n\t\t\t\t\tif (minDistance === undefined || distance <= minDistance) {\n\t\t\t\t\t\tclosestThumbIndex = i;\n\t\t\t\t\t\tminDistance = distance;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (closestThumbIndex > -1 && closestThumbIndex !== pressedThumbIndex) {\n\t\t\tupdatePressedThumb(closestThumbIndex);\n\t\t}\n\n\t\tif (context.inset()) {\n\t\t\tconst thumbEl = context.thumbRefs.current[closestThumbIndex];\n\t\t\tif (thumbEl instanceof Element) {\n\t\t\t\tconst vertical = context.orientation() === \"vertical\";\n\t\t\t\tconst thumbRect = thumbEl.getBoundingClientRect();\n\t\t\t\tinsetThumbOffsetRef.current =\n\t\t\t\t\t(vertical ? thumbRect.height : thumbRect.width) / 2;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction focusThumb(thumbIndex: number): void {\n\t\tconst thumb = context.thumbRefs.current[thumbIndex];\n\t\tconst input = thumb?.querySelector<HTMLInputElement>('input[type=\"range\"]');\n\t\tinput?.focus({ preventScroll: true });\n\t}\n\n\tfunction handleTouchMove(nativeEvent: TouchEvent | PointerEvent): void {\n\t\tconst fingerCoords = getFingerCoords(nativeEvent, touchIdRef);\n\t\tif (fingerCoords == null) return;\n\n\t\tmoveCountRef.current += 1;\n\n\t\tif (\n\t\t\tnativeEvent.type === \"pointermove\" &&\n\t\t\t(nativeEvent as PointerEvent).buttons === 0\n\t\t) {\n\t\t\thandleTouchEnd(nativeEvent);\n\t\t\treturn;\n\t\t}\n\n\t\tconst finger = getFingerState(fingerCoords);\n\t\tif (finger == null) return;\n\n\t\tif (\n\t\t\tvalidateMinimumDistance(\n\t\t\t\tfinger.value,\n\t\t\t\tcontext.step(),\n\t\t\t\tcontext.minStepsBetweenValues(),\n\t\t\t)\n\t\t) {\n\t\t\tif (\n\t\t\t\t!context.dragging() &&\n\t\t\t\tmoveCountRef.current > INTENTIONAL_DRAG_COUNT_THRESHOLD\n\t\t\t) {\n\t\t\t\tcontext.setDragging(true);\n\t\t\t}\n\n\t\t\tconst details = createChangeEventDetails(\n\t\t\t\tREASONS.drag,\n\t\t\t\tnativeEvent,\n\t\t\t\tundefined,\n\t\t\t\t{ activeThumbIndex: finger.thumbIndex },\n\t\t\t);\n\t\t\tcontext.setValue(finger.value, details);\n\t\t\tlatestValuesRef.current = Array.isArray(finger.value)\n\t\t\t\t? (finger.value as number[])\n\t\t\t\t: [finger.value];\n\n\t\t\tif (finger.didSwap) focusThumb(finger.thumbIndex);\n\t\t}\n\t}\n\n\tfunction handleTouchEnd(nativeEvent: TouchEvent | PointerEvent): void {\n\t\tcontext.setActive(-1);\n\t\tcontext.setDragging(false);\n\t\tcontext.pressedInputRef.current = null;\n\t\tcontext.pressedThumbCenterOffsetRef.current = null;\n\n\t\tconst fingerCoords = getFingerCoords(nativeEvent, touchIdRef);\n\t\tconst finger = fingerCoords != null ? getFingerState(fingerCoords) : null;\n\n\t\tif (finger != null) {\n\t\t\tconst commitReason = context.lastChangeReasonRef.current;\n\t\t\tcontext.onValueCommitted(\n\t\t\t\tcontext.lastChangedValueRef.current ?? finger.value,\n\t\t\t\tcreateGenericEventDetails(commitReason, nativeEvent),\n\t\t\t);\n\t\t}\n\n\t\tif (\"pointerType\" in nativeEvent) {\n\t\t\tconst pointerId = (nativeEvent as PointerEvent).pointerId;\n\t\t\tif (controlRef.current?.hasPointerCapture?.(pointerId)) {\n\t\t\t\tcontrolRef.current.releasePointerCapture(pointerId);\n\t\t\t}\n\t\t}\n\n\t\tcontext.pressedThumbIndexRef.current = -1;\n\t\ttouchIdRef.current = null;\n\t\tcontext.pressedValuesRef.current = null;\n\t\tstopListening();\n\t}\n\n\tfunction stopListening(): void {\n\t\t// Reached on the server via the setup `onCleanup` when a render scope is\n\t\t// disposed (e.g. during `renderToString`). No listeners were ever\n\t\t// bound server-side, and `ownerDocument(null)` would fall through to the\n\t\t// absent `document` global — so there is nothing to detach.\n\t\tif (isServer) return;\n\t\tconst doc = ownerDocument(controlRef.current);\n\t\tdoc.removeEventListener(\"pointermove\", handleTouchMove);\n\t\tdoc.removeEventListener(\"pointerup\", handleTouchEnd);\n\t\tdoc.removeEventListener(\"touchmove\", handleTouchMove);\n\t\tdoc.removeEventListener(\"touchend\", handleTouchEnd);\n\t\tcontext.pressedValuesRef.current = null;\n\t}\n\n\tfunction handleTouchStart(nativeEvent: TouchEvent): void {\n\t\tif (context.disabled()) return;\n\n\t\tconst touch = nativeEvent.changedTouches[0];\n\t\tif (touch != null) touchIdRef.current = touch.identifier;\n\n\t\tconst fingerCoords = getFingerCoords(nativeEvent, touchIdRef);\n\t\tif (fingerCoords != null) {\n\t\t\tstartPressing(fingerCoords);\n\t\t\tconst finger = getFingerState(fingerCoords);\n\t\t\tif (finger == null) return;\n\n\t\t\tfocusThumb(finger.thumbIndex);\n\t\t\tconst details = createChangeEventDetails(\n\t\t\t\tREASONS.trackPress,\n\t\t\t\tnativeEvent,\n\t\t\t\tundefined,\n\t\t\t\t{ activeThumbIndex: finger.thumbIndex },\n\t\t\t);\n\t\t\tcontext.setValue(finger.value, details);\n\t\t\tlatestValuesRef.current = Array.isArray(finger.value)\n\t\t\t\t? (finger.value as number[])\n\t\t\t\t: [finger.value];\n\t\t\tif (finger.didSwap) focusThumb(finger.thumbIndex);\n\t\t}\n\n\t\tmoveCountRef.current = 0;\n\t\tconst doc = ownerDocument(controlRef.current);\n\t\tdoc.addEventListener(\"touchmove\", handleTouchMove, { passive: true });\n\t\tdoc.addEventListener(\"touchend\", handleTouchEnd, { passive: true });\n\t}\n\n\tfunction bindTouchStart(el: HTMLElement): () => void {\n\t\tel.addEventListener(\"touchstart\", handleTouchStart, { passive: true });\n\t\treturn () => {\n\t\t\tel.removeEventListener(\"touchstart\", handleTouchStart);\n\t\t};\n\t}\n\n\tonCleanup(() => {\n\t\tstopListening();\n\t\tfocusFrame.cancel();\n\t});\n\n\tlet unbindTouch: (() => void) | null = null;\n\n\tconst localRef = (el: HTMLElement | null): void => {\n\t\tif (unbindTouch) {\n\t\t\tunbindTouch();\n\t\t\tunbindTouch = null;\n\t\t}\n\t\tcontrolRef.current = el;\n\t\tcontext.registerFieldControlRef(el);\n\t\tif (el) {\n\t\t\t// React captures `getComputedStyle` once on mount (the live\n\t\t\t// CSSStyleDeclaration re-reads on every property access). We mirror\n\t\t\t// that here — `ownerWindow` keeps realm checks correct for iframe /\n\t\t\t// shadow DOM hosts.\n\t\t\tif (stylesRef.current == null) {\n\t\t\t\tstylesRef.current = ownerWindow(el).getComputedStyle(el);\n\t\t\t}\n\t\t\tunbindTouch = bindTouchStart(el);\n\t\t}\n\t};\n\n\t// Resolve `class`/`style` here so function values (stateful styling) are\n\t// invoked with the slider state — otherwise a `class={(state) => …}` is\n\t// spread to the DOM raw and never applied (no class attribute at all),\n\t// collapsing the control's layout.\n\tconst userClassStyle = resolveClassStyle(props, () => context.state());\n\tconst userProps = omit(props, \"as\", \"class\", \"style\", \"attrs\");\n\n\tconst internalSlot = {\n\t\t// SSR hook for the deferred prehydration script. React emits\n\t\t// this data attr only when `renderBeforeHydration` is true so\n\t\t// the script can `querySelectorAll` matching controls. We seed\n\t\t// `\"\"` so Solid 2's DOM spread keeps the key in `ownKeys` even\n\t\t// when the flag is off (see\n\t\t// `test/internals/merge-props-undefined-attr.test.tsx`).\n\t\tget \"data-quoin-slider-control\"() {\n\t\t\treturn context.renderBeforeHydration() ? \"\" : \"\";\n\t\t},\n\t\tonPointerDown(event: PointerEvent) {\n\t\t\tconst control = controlRef.current;\n\t\t\tconst target = getTarget(event);\n\t\t\tif (\n\t\t\t\t!control ||\n\t\t\t\tcontext.disabled() ||\n\t\t\t\tevent.defaultPrevented ||\n\t\t\t\t!(target instanceof Element) ||\n\t\t\t\tevent.button !== 0\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst fingerCoords = getFingerCoords(event, touchIdRef);\n\t\t\tif (fingerCoords != null) {\n\t\t\t\tstartPressing(fingerCoords);\n\t\t\t\tconst finger = getFingerState(fingerCoords);\n\t\t\t\tif (finger == null) return;\n\n\t\t\t\tconst pressedOnFocusedThumb = contains(\n\t\t\t\t\tcontext.thumbRefs.current[finger.thumbIndex],\n\t\t\t\t\tactiveElement(ownerDocument(control)),\n\t\t\t\t);\n\n\t\t\t\tif (pressedOnFocusedThumb) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t} else {\n\t\t\t\t\tfocusFrame.request(() => {\n\t\t\t\t\t\tfocusThumb(finger.thumbIndex);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tcontext.setDragging(true);\n\n\t\t\t\tconst pressedOnAnyThumb =\n\t\t\t\t\tcontext.pressedThumbCenterOffsetRef.current != null;\n\t\t\t\tif (!pressedOnAnyThumb) {\n\t\t\t\t\tconst details = createChangeEventDetails(\n\t\t\t\t\t\tREASONS.trackPress,\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t{ activeThumbIndex: finger.thumbIndex },\n\t\t\t\t\t);\n\t\t\t\t\tcontext.setValue(finger.value, details);\n\t\t\t\t\tlatestValuesRef.current = Array.isArray(finger.value)\n\t\t\t\t\t\t? (finger.value as number[])\n\t\t\t\t\t\t: [finger.value];\n\t\t\t\t\tif (finger.didSwap) focusThumb(finger.thumbIndex);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (event.pointerId) {\n\t\t\t\tcontrol.setPointerCapture(event.pointerId);\n\t\t\t}\n\n\t\t\tmoveCountRef.current = 0;\n\t\t\tconst doc = ownerDocument(controlRef.current);\n\t\t\tdoc.addEventListener(\"pointermove\", handleTouchMove, {\n\t\t\t\tpassive: true,\n\t\t\t});\n\t\t\tdoc.addEventListener(\"pointerup\", handleTouchEnd, { once: true });\n\t\t},\n\t};\n\n\tlet merged: Record<string, unknown> = mergeRootProps(\n\t\tinternalSlot,\n\t\tsliderDataAttrs(context.state),\n\t);\n\tmerged = mergeRootProps(merged, userClassStyle);\n\tmerged = mergeRootProps(merged, userProps);\n\n\tconst Tag = dynamic(() => props.as ?? \"div\");\n\treturn <Tag {...merged} ref={composeRefs(localRef, userRef(props))} />;\n}\n\nexport namespace SliderControl {\n\texport type State = SliderControlState;\n\texport type Props = SliderControlProps;\n}\n"],"mappings":"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","ignoreList":[]}