{"version":3,"sources":["../src/range-slider.tsx"],"sourcesContent":["import type {\n  CSSUIObject,\n  CSSUIProps,\n  HTMLProps,\n  HTMLUIProps,\n  PropGetter,\n  RequiredPropGetter,\n  ThemeProps,\n} from \"@yamada-ui/core\"\nimport type { FormControlOptions } from \"@yamada-ui/form-control\"\nimport type { Merge } from \"@yamada-ui/utils\"\nimport type { CSSProperties, KeyboardEvent, KeyboardEventHandler } from \"react\"\nimport {\n  forwardRef,\n  mergeVars,\n  omitThemeProps,\n  ui,\n  useComponentMultiStyle,\n} from \"@yamada-ui/core\"\nimport {\n  formControlProperties,\n  useFormControlProps,\n} from \"@yamada-ui/form-control\"\nimport { useControllableState } from \"@yamada-ui/use-controllable-state\"\nimport { useLatestRef } from \"@yamada-ui/use-latest-ref\"\nimport { usePanEvent } from \"@yamada-ui/use-pan-event\"\nimport { useSizes } from \"@yamada-ui/use-size\"\nimport {\n  clampNumber,\n  createContext,\n  cx,\n  dataAttr,\n  findChild,\n  getValidChildren,\n  handlerAll,\n  includesChildren,\n  isArray,\n  isEmpty,\n  mergeRefs,\n  omitChildren,\n  percentToValue,\n  pickObject,\n  roundNumberToStep,\n  useCallbackRef,\n  useUpdateEffect,\n  valueToPercent,\n} from \"@yamada-ui/utils\"\nimport { useCallback, useId, useRef, useState } from \"react\"\nimport { getThumbSize } from \"./slider\"\n\nexport interface UseRangeSliderOptions {\n  /**\n   * The base `id` to use for the slider.\n   */\n  id?: string\n  /**\n   * The name attribute of the hidden `input` field.\n   * This is particularly useful in forms.\n   */\n  name?: [string, string] | string\n  /**\n   * The minimum distance between slider thumbs.\n   * Useful for preventing the thumbs from being too close together.\n   *\n   * @default 0\n   */\n  betweenThumbs?: number\n  /**\n   * The initial value of the slider.\n   */\n  defaultValue?: [number, number]\n  /**\n   * If `false`, the slider handle will not capture focus when value changes.\n   *\n   * @default true\n   */\n  focusThumbOnChange?: boolean\n  /**\n   * This is used to format the value so that screen readers\n   * can speak out a more human-friendly value.\n   *\n   * It is used to set the `aria-valuetext` property of the input.\n   */\n  getAriaValueText?: (value: number) => string | undefined\n  /**\n   * If `true`, the value will be incremented or decremented in reverse.\n   *\n   * @deprecated Use `reversed` instead.\n   */\n  isReversed?: boolean\n  /**\n   * The maximum allowed value of the slider. Cannot be less than min.\n   *\n   * @default 100\n   */\n  max?: number\n  /**\n   * The minimum allowed value of the slider. Cannot be greater than max.\n   *\n   * @default 0\n   */\n  min?: number\n  /**\n   * The orientation of the slider.\n   *\n   * @default 'horizontal'\n   */\n  orientation?: \"horizontal\" | \"vertical\"\n  /**\n   * If `true`, the value will be incremented or decremented in reverse.\n   */\n  reversed?: boolean\n  /**\n   * The step in which increments or decrements have to be made.\n   *\n   * @default 1\n   */\n  step?: number\n  /**\n   * The CSS `box-size` property.\n   * Used for calculating the width, height, and percentage of the container element.\n   */\n  thumbSize?: CSSUIProps[\"boxSize\"]\n  /**\n   * The value of the slider.\n   */\n  value?: [number, number]\n  /**\n   * Function called whenever the slider value changes.\n   */\n  onChange?: (value: [number, number]) => void\n  /**\n   * Function called when the user is done selecting a new value.\n   */\n  onChangeEnd?: (value: [number, number]) => void\n  /**\n   * Function called when the user starts selecting a new value.\n   */\n  onChangeStart?: (value: [number, number]) => void\n}\nexport interface UseRangeSliderProps\n  extends Merge<HTMLUIProps, FormControlOptions & UseRangeSliderOptions> {}\n\nexport const useRangeSlider = ({\n  focusThumbOnChange = true,\n  ...props\n}: UseRangeSliderProps) => {\n  if (!focusThumbOnChange) props.isReadOnly = true\n\n  const uuid = useId()\n  const {\n    id = uuid,\n    name = id,\n    \"aria-label\": ariaLabel,\n    \"aria-labelledby\": ariaLabelledBy,\n    \"aria-valuetext\": ariaValueText,\n    betweenThumbs = 0,\n    max = 100,\n    min = 0,\n    defaultValue = [min + (max - min) / 4, max - (max - min) / 4],\n    getAriaValueText: getAriaValueTextProp,\n    isReversed,\n    orientation = \"horizontal\",\n    reversed = isReversed,\n    step = 1,\n    thumbSize: thumbSizeProp,\n    value: valueProp,\n    onChange,\n    onChangeEnd: onChangeEndProp,\n    onChangeStart: onChangeStartProp,\n    ...rest\n  } = useFormControlProps(props)\n\n  if (max < min)\n    throw new Error(\"Do not assign a number less than 'min' to 'max'\")\n\n  const {\n    \"aria-readonly\": ariaReadonly,\n    disabled,\n    readOnly,\n    required,\n    onBlur,\n    onFocus,\n    ...formControlProps\n  } = pickObject(rest, formControlProperties)\n  const [computedValues, setValues] = useControllableState({\n    defaultValue,\n    value: valueProp,\n    onChange,\n  })\n  const [dragging, setDragging] = useState(false)\n  const [focused, setFocused] = useState(false)\n  const interactive = !(disabled || readOnly)\n  const tenStep = (max - min) / 10\n  const oneStep = step || (max - min) / 100\n  const spacing = betweenThumbs * step\n  const values = computedValues.map((value) =>\n    clampNumber(value, min, max),\n  ) as [number, number]\n  const [startValue, endValue] = values\n  const reversedValues = values.map((value) => max - value + min) as [\n    number,\n    number,\n  ]\n  const thumbValues = reversed ? reversedValues : values\n  const thumbPercents = thumbValues.map((value) =>\n    valueToPercent(value, min, max),\n  ) as [number, number]\n  const valueBounds = [\n    { max: endValue - spacing, min },\n    { max, min: startValue + spacing },\n  ]\n  const vertical = orientation === \"vertical\"\n  const latestRef = useLatestRef({\n    betweenThumbs,\n    disabled,\n    focusThumbOnChange,\n    interactive,\n    max,\n    min,\n    orientation,\n    reversed,\n    step,\n    valueBounds,\n    values,\n    vertical,\n  })\n  const activeIndexRef = useRef<number>(-1)\n  const eventSourceRef = useRef<\"keyboard\" | \"pointer\" | null>(null)\n  const containerRef = useRef<HTMLElement>(null)\n  const trackRef = useRef<HTMLElement>(null)\n  const thumbSizes = useSizes({\n    getNodes: () => {\n      const nodes =\n        containerRef.current?.querySelectorAll<HTMLElement>(\"[role=slider]\")\n\n      return nodes ? Array.from(nodes) : []\n    },\n  })\n  const onChangeStart = useCallbackRef(onChangeStartProp)\n  const onChangeEnd = useCallbackRef(onChangeEndProp)\n  const getAriaValueText = useCallbackRef(getAriaValueTextProp)\n  const getThumbId = useCallback((i: number) => `slider-thumb-${id}-${i}`, [id])\n  const getInputId = useCallback((i: number) => `slider-input-${id}-${i}`, [id])\n  const getMarkerId = useCallback(\n    (i: number) => `slider-marker-${id}-${i}`,\n    [id],\n  )\n\n  usePanEvent(containerRef, {\n    onMove: (ev) => {\n      const activeIndex = activeIndexRef.current\n      const { interactive } = latestRef.current\n\n      if (!interactive || activeIndex == -1) return\n\n      const pointValue = getValueFromPointer(ev) || 0\n\n      constrain(activeIndex, pointValue)\n\n      focusThumb(activeIndex)\n    },\n    onSessionEnd: () => {\n      const { interactive, values } = latestRef.current\n\n      if (!interactive) return\n\n      setDragging(false)\n      onChangeEnd(values)\n    },\n    onSessionStart: (ev) => {\n      const { interactive, values } = latestRef.current\n\n      if (!interactive) return\n\n      setDragging(true)\n\n      const pointValue = getValueFromPointer(ev) || 0\n      const distances = values.map((value) => Math.abs(value - pointValue)) as [\n        number,\n        number,\n      ]\n      const closest = Math.min(...distances)\n\n      let i = distances.indexOf(closest)\n\n      const thumbsPosition = distances.filter(\n        (distance) => distance === closest,\n      )\n      const isThumbStacked = thumbsPosition.length > 1\n\n      if (isThumbStacked && pointValue > values[i]!)\n        i = i + thumbsPosition.length - 1\n\n      activeIndexRef.current = i\n\n      constrain(i, pointValue)\n      focusThumb(i)\n\n      onChangeStart(values)\n    },\n  })\n\n  const getValueFromPointer = useCallback(\n    (ev: any) => {\n      if (!trackRef.current) return\n\n      const { max, min } = latestRef.current\n\n      eventSourceRef.current = \"pointer\"\n\n      const { bottom, height, left, width } =\n        trackRef.current.getBoundingClientRect()\n      const { clientX, clientY } = ev.touches?.[0] ?? ev\n\n      const diff = vertical ? bottom - clientY : clientX - left\n\n      const length = vertical ? height : width\n\n      let percent = diff / length\n\n      if (reversed) percent = 1 - percent\n\n      let nextValue = percentToValue(percent, min, max)\n\n      return nextValue\n    },\n    [latestRef, vertical, reversed],\n  )\n\n  const focusThumb = useCallback(\n    (i: number) => {\n      if (i === -1 || !focusThumbOnChange) return\n\n      const id = getThumbId(i)\n\n      const el = containerRef.current?.ownerDocument.getElementById(id)\n\n      if (el) setTimeout(() => el.focus())\n    },\n    [focusThumbOnChange, getThumbId],\n  )\n\n  const constrain = useCallback(\n    (i: number, value: number) => {\n      const { interactive, valueBounds, values } = latestRef.current\n\n      if (!interactive) return\n\n      const { max = 100, min = 0 } = valueBounds[i] ?? {}\n\n      value = parseFloat(roundNumberToStep(value, min, oneStep))\n      value = clampNumber(value, min, max)\n\n      const nextValues = [...values] as [number, number]\n\n      nextValues[i] = value\n\n      setValues(nextValues)\n    },\n    [latestRef, oneStep, setValues],\n  )\n\n  const stepUp = useCallback(\n    (i: number, step = oneStep) => {\n      const { values } = latestRef.current\n\n      const value = values[i]!\n\n      constrain(i, reversed ? value - step : value + step)\n    },\n    [constrain, reversed, latestRef, oneStep],\n  )\n\n  const stepDown = useCallback(\n    (i: number, step = oneStep) => {\n      const { values } = latestRef.current\n\n      const value = values[i]!\n\n      constrain(i, reversed ? value + step : value - step)\n    },\n    [constrain, reversed, latestRef, oneStep],\n  )\n\n  const reset = useCallback(\n    () => setValues(defaultValue as [number, number]),\n    [defaultValue, setValues],\n  )\n\n  const onKeyDown = useCallback(\n    (ev: KeyboardEvent<HTMLElement>) => {\n      const activeIndex = activeIndexRef.current\n      const { valueBounds } = latestRef.current\n      const { max = 100, min = 0 } = valueBounds[activeIndex] ?? {}\n\n      const actions: { [key: string]: KeyboardEventHandler } = {\n        ArrowDown: () => stepDown(activeIndex),\n        ArrowLeft: () => stepDown(activeIndex),\n        ArrowRight: () => stepUp(activeIndex),\n        ArrowUp: () => stepUp(activeIndex),\n        End: () => constrain(activeIndex, max),\n        Home: () => constrain(activeIndex, min),\n        PageDown: () => stepDown(activeIndex, tenStep),\n        PageUp: () => stepUp(activeIndex, tenStep),\n      }\n\n      const action = actions[ev.key]\n\n      if (!action) return\n\n      ev.preventDefault()\n      ev.stopPropagation()\n\n      action(ev)\n\n      eventSourceRef.current = \"keyboard\"\n    },\n    [constrain, latestRef, stepDown, stepUp, tenStep],\n  )\n\n  useUpdateEffect(() => {\n    const { values } = latestRef.current\n\n    if (eventSourceRef.current === \"keyboard\") onChangeEnd(values)\n  }, [startValue, endValue, onChangeEnd])\n\n  const getContainerProps: PropGetter = useCallback(\n    (props = {}, ref = null) => {\n      let w: number | string = \"var(--ui-thumb-size)\"\n      let h: number | string = \"var(--ui-thumb-size)\"\n\n      if (thumbSizes.length) {\n        const p = vertical ? \"height\" : \"width\"\n        const z = { height: 0, width: 0 }\n        const { height, width } =\n          thumbSizes.reduce((a = z, b = z) => (a[p] > b[p] ? a : b), z) ?? {}\n\n        if (width) w = `${width}px`\n        if (height) h = `${height}px`\n      }\n\n      const paddingStyle = vertical\n        ? { paddingLeft: `calc(${w} / 2)`, paddingRight: `calc(${w} / 2)` }\n        : { paddingBottom: `calc(${h} / 2)`, paddingTop: `calc(${h} / 2)` }\n\n      const style: CSSProperties = {\n        ...props.style,\n        outline: 0,\n        position: \"relative\",\n        touchAction: \"none\",\n        userSelect: \"none\",\n        WebkitTapHighlightColor: \"rgba(0, 0, 0, 0)\",\n        ...paddingStyle,\n      }\n\n      return {\n        ...rest,\n        ...props,\n        id: `slider-container-${id}`,\n        ref: mergeRefs(ref, containerRef),\n        style,\n        tabIndex: -1,\n        vars: mergeVars(rest.vars, [\n          {\n            name: \"thumb-size\",\n            token: \"sizes\",\n            value: thumbSizeProp,\n            __prefix: \"ui\",\n          },\n        ]),\n      }\n    },\n    [id, vertical, rest, thumbSizeProp, thumbSizes],\n  )\n\n  const getInputProps: RequiredPropGetter<\n    { index: number } & HTMLProps<\"input\">,\n    HTMLProps<\"input\">\n  > = useCallback(\n    ({ index: i, ...props }, ref = null) => ({\n      \"aria-readonly\": ariaReadonly,\n      ...formControlProps,\n      ...props,\n      id: getInputId(i),\n      ref,\n      type: \"hidden\",\n      name: isArray(name) ? name[i] : `${name}-${i}`,\n      disabled,\n      readOnly,\n      required,\n      value: values[i],\n    }),\n    [\n      ariaReadonly,\n      disabled,\n      getInputId,\n      name,\n      readOnly,\n      required,\n      formControlProps,\n      values,\n    ],\n  )\n\n  const getTrackProps: PropGetter = useCallback(\n    (props = {}, ref = null) => {\n      const style: CSSProperties = {\n        ...props.style,\n        position: \"absolute\",\n        ...(vertical\n          ? {\n              height: \"100%\",\n              left: \"50%\",\n              transform: \"translateX(-50%)\",\n            }\n          : {\n              top: \"50%\",\n              transform: \"translateY(-50%)\",\n              width: \"100%\",\n            }),\n      }\n\n      return {\n        ...formControlProps,\n        ...props,\n        id: `slider-track-${id}`,\n        ref: mergeRefs(ref, trackRef),\n        style,\n      }\n    },\n    [id, vertical, formControlProps],\n  )\n\n  const getFilledTrackProps: PropGetter = useCallback(\n    (props = {}, ref = null) => {\n      const n = Math.abs(thumbPercents[1] - thumbPercents[0])\n      const s = reversed ? 100 - thumbPercents[0] : thumbPercents[0]\n\n      const style: CSSProperties = {\n        ...props.style,\n        position: \"absolute\",\n        ...(vertical\n          ? {\n              height: `${n}%`,\n              left: \"50%\",\n              transform: \"translateX(-50%)\",\n              ...(reversed ? { top: `${s}%` } : { bottom: `${s}%` }),\n            }\n          : {\n              top: \"50%\",\n              transform: \"translateY(-50%)\",\n              width: `${n}%`,\n              ...(reversed ? { right: `${s}%` } : { left: `${s}%` }),\n            }),\n      }\n\n      return {\n        ...formControlProps,\n        ...props,\n        id: `slider-filled-track-${id}`,\n        ref,\n        style,\n      }\n    },\n    [id, reversed, vertical, formControlProps, thumbPercents],\n  )\n\n  const getMarkProps: RequiredPropGetter<\n    { value: number } & HTMLProps,\n    HTMLProps\n  > = useCallback(\n    (props, ref = null) => {\n      let n = valueToPercent(props.value, min, max)\n      n = reversed ? 100 - n : n\n\n      const style: CSSProperties = {\n        ...props.style,\n        pointerEvents: \"none\",\n        position: \"absolute\",\n        ...(vertical ? { bottom: `${n}%` } : { left: `${n}%` }),\n      }\n\n      return {\n        ...formControlProps,\n        ...props,\n        id: getMarkerId(props.value),\n        ref,\n        style,\n        \"aria-hidden\": true,\n        \"data-highlighted\": dataAttr(\n          values[0] <= props.value && props.value <= values[1],\n        ),\n        \"data-invalid\": dataAttr(props.value < min || max < props.value),\n      }\n    },\n    [getMarkerId, reversed, vertical, max, min, formControlProps, values],\n  )\n\n  const getThumbProps: RequiredPropGetter<\n    { index: number } & HTMLUIProps,\n    HTMLUIProps\n  > = useCallback(\n    ({ index: i, ...props }, ref = null) => {\n      const n = thumbPercents[i]\n      let w: number | string = \"var(--ui-thumb-size)\"\n      let h: number | string = \"var(--ui-thumb-size)\"\n\n      if (thumbSizes[i]) {\n        w = `${thumbSizes[i]?.width}px`\n        h = `${thumbSizes[i]?.height}px`\n      }\n\n      const bottom = `calc(${n}% - (${h} / 2))`\n      const left = `calc(${n}% - (${w} / 2))`\n\n      const style: CSSProperties = {\n        ...props.style,\n        position: \"absolute\",\n        touchAction: \"none\",\n        userSelect: \"none\",\n        ...(vertical ? { bottom } : { left }),\n      }\n\n      const value = values[i]\n\n      if (value == null)\n        throw new Error(\n          `Cannot find value at index '${i}'. The 'value' or 'defaultValue'`,\n        )\n\n      return {\n        \"aria-label\": ariaLabel ?? \"Slider thumb\",\n        \"aria-labelledby\": ariaLabelledBy,\n        \"aria-readonly\": ariaReadonly,\n        ...formControlProps,\n        ...props,\n        id: getThumbId(i),\n        ref,\n        style,\n        \"aria-orientation\": orientation,\n        \"aria-valuemax\": max,\n        \"aria-valuemin\": min,\n        \"aria-valuenow\": value,\n        \"aria-valuetext\":\n          ariaValueText ?? getAriaValueText(value) ?? value.toString(),\n        \"data-active\": dataAttr(\n          dragging && focusThumbOnChange && activeIndexRef.current === i,\n        ),\n        role: \"slider\",\n        tabIndex: interactive && focusThumbOnChange ? 0 : undefined,\n        onBlur: handlerAll(props.onBlur, onBlur, () => {\n          activeIndexRef.current = -1\n\n          setFocused(false)\n        }),\n        onFocus: handlerAll(props.onFocus, onFocus, () => {\n          activeIndexRef.current = i\n\n          setFocused(true)\n        }),\n        onKeyDown: handlerAll(props.onKeyDown, onKeyDown),\n      }\n    },\n    [\n      thumbPercents,\n      thumbSizes,\n      vertical,\n      values,\n      ariaLabel,\n      ariaLabelledBy,\n      ariaReadonly,\n      formControlProps,\n      getThumbId,\n      orientation,\n      max,\n      min,\n      ariaValueText,\n      getAriaValueText,\n      dragging,\n      focusThumbOnChange,\n      interactive,\n      onBlur,\n      onFocus,\n      onKeyDown,\n    ],\n  )\n\n  return {\n    dragging,\n    focused,\n    getInputId,\n    getMarkerId,\n    getThumbId,\n    reset,\n    stepDown,\n    stepUp,\n    values,\n    vertical,\n    getContainerProps,\n    getFilledTrackProps,\n    getInputProps,\n    getMarkProps,\n    getThumbProps,\n    getTrackProps,\n  }\n}\n\nexport type ReturnUseRangeSliderProps = ReturnType<typeof useRangeSlider>\n\ninterface RangeSliderContext\n  extends Pick<\n      ReturnUseRangeSliderProps,\n      | \"getFilledTrackProps\"\n      | \"getInputProps\"\n      | \"getMarkProps\"\n      | \"getThumbProps\"\n      | \"getTrackProps\"\n      | \"vertical\"\n    >,\n    RangeSliderOptions {\n  styles: { [key: string]: CSSUIObject | undefined }\n}\n\nconst [RangeSliderProvider, useRangeSliderContext] =\n  createContext<RangeSliderContext>({\n    name: \"RangeSliderContext\",\n    errorMessage: `useRangeSliderContext returned is 'undefined'. Seems you forgot to wrap the components in \"<RangeSlider />\" `,\n  })\n\ninterface RangeSliderOptions {\n  /**\n   * The CSS `color` property. Used in `color` of filled track element.\n   */\n  filledTrackColor?: CSSUIProps[\"color\"]\n  /**\n   * The CSS `background` property. Used in `background` of thumb element.\n   */\n  thumbColor?: CSSUIProps[\"bg\"]\n  /**\n   * The CSS `box-size` property. Used in `box-size` of thumb element.\n   */\n  thumbSize?: CSSUIProps[\"boxSize\"]\n  /**\n   * The CSS `color` property. Used in `color` of track element.\n   */\n  trackColor?: CSSUIProps[\"color\"]\n  /**\n   * The CSS `height` property. Used in `height` of track element.\n   */\n  trackSize?: CSSUIProps[\"h\"]\n  /**\n   * Props for range slider filled track element.\n   */\n  filledTrackProps?: RangeSliderFilledTrackProps\n  /**\n   * Props for range slider input element.\n   */\n  inputProps?: HTMLUIProps<\"input\">\n  /**\n   * Props for range slider thumb element.\n   */\n  thumbProps?: RangeSliderThumbProps\n  /**\n   * Props for range slider track element.\n   */\n  trackProps?: RangeSliderTrackProps\n}\n\nexport interface RangeSliderProps\n  extends ThemeProps<\"RangeSlider\">,\n    UseRangeSliderProps,\n    RangeSliderOptions {}\n\n/**\n * `RangeSlider` is a component used for users to select a range of related values.\n *\n * @see Docs https://yamada-ui.com/components/forms/range-slider\n */\nexport const RangeSlider = forwardRef<RangeSliderProps, \"div\">((props, ref) => {\n  const [styles, mergedProps] = useComponentMultiStyle(\"RangeSlider\", props)\n  const {\n    className,\n    children,\n    filledTrackColor,\n    thumbColor,\n    thumbSize,\n    trackColor,\n    trackSize,\n    filledTrackProps,\n    inputProps,\n    thumbProps,\n    trackProps,\n    ...rest\n  } = omitThemeProps(mergedProps)\n  const {\n    vertical,\n    getContainerProps,\n    getFilledTrackProps,\n    getInputProps,\n    getMarkProps,\n    getThumbProps,\n    getTrackProps,\n  } = useRangeSlider({ ...rest, thumbSize: getThumbSize(thumbSize, styles) })\n\n  const css: CSSUIObject = { ...styles.container }\n\n  const validChildren = getValidChildren(children)\n\n  const customRangeSliderTrack = findChild(validChildren, RangeSliderTrack)\n  const customRangeSliderStartThumb = findChild(\n    validChildren,\n    RangeSliderStartThumb,\n  )\n  const customRangeSliderEndThumb = findChild(\n    validChildren,\n    RangeSliderEndThumb,\n  )\n\n  const hasRangeSliderStartThumb = includesChildren(\n    validChildren,\n    RangeSliderStartThumb,\n  )\n  const hasRangeSliderEndThumb = includesChildren(\n    validChildren,\n    RangeSliderEndThumb,\n  )\n\n  const cloneChildren = !isEmpty(validChildren)\n    ? omitChildren(\n        validChildren,\n        RangeSliderTrack,\n        RangeSliderStartThumb,\n        RangeSliderEndThumb,\n      )\n    : children\n\n  return (\n    <RangeSliderProvider\n      value={{\n        filledTrackColor,\n        styles,\n        thumbColor,\n        thumbSize,\n        trackColor,\n        trackSize,\n        vertical,\n        filledTrackProps,\n        getFilledTrackProps,\n        getInputProps,\n        getMarkProps,\n        getThumbProps,\n        getTrackProps,\n        inputProps,\n        thumbProps,\n        trackProps,\n      }}\n    >\n      <ui.div\n        className={cx(\"ui-slider\", className)}\n        __css={css}\n        {...getContainerProps({}, ref)}\n      >\n        {customRangeSliderTrack ?? <RangeSliderTrack />}\n\n        {cloneChildren}\n\n        {customRangeSliderStartThumb ??\n          (!hasRangeSliderStartThumb ? <RangeSliderStartThumb /> : null)}\n        {customRangeSliderEndThumb ??\n          (!hasRangeSliderEndThumb ? <RangeSliderEndThumb /> : null)}\n      </ui.div>\n    </RangeSliderProvider>\n  )\n})\n\nRangeSlider.displayName = \"RangeSlider\"\nRangeSlider.__ui__ = \"RangeSlider\"\n\nexport interface RangeSliderTrackProps\n  extends HTMLUIProps,\n    Pick<RangeSliderOptions, \"filledTrackProps\"> {}\n\nexport const RangeSliderTrack = forwardRef<RangeSliderTrackProps, \"div\">(\n  ({ className, children, filledTrackProps, ...rest }, ref) => {\n    const {\n      styles,\n      trackColor,\n      trackSize,\n      vertical,\n      getTrackProps,\n      trackProps,\n    } = useRangeSliderContext()\n\n    const css: CSSUIObject = { ...styles.track }\n\n    return (\n      <ui.div\n        className={cx(\"ui-slider__track\", className)}\n        __css={css}\n        {...getTrackProps(\n          {\n            ...(trackColor ? { bg: trackColor } : {}),\n            ...(trackSize\n              ? vertical\n                ? { w: trackSize }\n                : { h: trackSize }\n              : {}),\n            ...trackProps,\n            ...rest,\n          },\n          ref,\n        )}\n      >\n        {children ?? <RangeSliderFilledTrack {...filledTrackProps} />}\n      </ui.div>\n    )\n  },\n)\n\nRangeSliderTrack.displayName = \"RangeSliderTrack\"\nRangeSliderTrack.__ui__ = \"RangeSliderTrack\"\n\nexport interface RangeSliderFilledTrackProps extends HTMLUIProps {}\n\nexport const RangeSliderFilledTrack = forwardRef<\n  RangeSliderFilledTrackProps,\n  \"div\"\n>(({ className, ...rest }, ref) => {\n  const { filledTrackColor, styles, filledTrackProps, getFilledTrackProps } =\n    useRangeSliderContext()\n\n  const css: CSSUIObject = { ...styles.filledTrack }\n\n  return (\n    <ui.div\n      className={cx(\"ui-slider__track-filled\", className)}\n      __css={css}\n      {...getFilledTrackProps(\n        {\n          ...(filledTrackColor ? { bg: filledTrackColor } : {}),\n          ...filledTrackProps,\n          ...rest,\n        },\n        ref,\n      )}\n    />\n  )\n})\n\nRangeSliderFilledTrack.displayName = \"RangeSliderFilledTrack\"\nRangeSliderFilledTrack.__ui__ = \"RangeSliderFilledTrack\"\n\nexport interface RangeSliderMarkProps extends HTMLUIProps {\n  value: number\n}\n\nexport const RangeSliderMark = forwardRef<RangeSliderMarkProps, \"div\">(\n  ({ className, ...rest }, ref) => {\n    const { styles, getMarkProps } = useRangeSliderContext()\n\n    const css: CSSUIObject = {\n      alignItems: \"center\",\n      display: \"inline-flex\",\n      justifyContent: \"center\",\n      ...styles.mark,\n    }\n\n    return (\n      <ui.div\n        className={cx(\"ui-slider__mark\", className)}\n        __css={css}\n        {...getMarkProps(rest, ref)}\n      />\n    )\n  },\n)\n\nRangeSliderMark.displayName = \"RangeSliderMark\"\nRangeSliderMark.__ui__ = \"RangeSliderMark\"\n\nexport interface RangeSliderThumbProps extends HTMLUIProps {}\n\nconst RangeSliderThumb = forwardRef<\n  { index: number } & RangeSliderThumbProps,\n  \"div\"\n>(({ className, children, index, ...rest }, ref) => {\n  const {\n    styles,\n    thumbColor,\n    thumbSize,\n    getInputProps,\n    getThumbProps,\n    inputProps,\n    thumbProps,\n  } = useRangeSliderContext()\n\n  const css: CSSUIObject = { ...styles.thumb }\n\n  const { children: propChildren } = thumbProps ?? {}\n\n  return (\n    <ui.div\n      className={cx(\"ui-slider__thumb\", className)}\n      __css={css}\n      {...getThumbProps(\n        {\n          index,\n          ...(thumbColor ? { bg: thumbColor } : {}),\n          ...(thumbSize ? { boxSize: thumbSize } : {}),\n          ...thumbProps,\n          ...rest,\n        },\n        ref,\n      )}\n    >\n      <ui.input {...getInputProps({ ...inputProps, index }, ref)} />\n      {children ?? propChildren}\n    </ui.div>\n  )\n})\n\nRangeSliderThumb.displayName = \"RangeSliderThumb\"\nRangeSliderThumb.__ui__ = \"RangeSliderThumb\"\n\nexport const RangeSliderStartThumb = forwardRef<RangeSliderThumbProps, \"div\">(\n  (rest, ref) => {\n    return <RangeSliderThumb ref={ref} index={0} {...rest} />\n  },\n)\n\nRangeSliderStartThumb.displayName = \"RangeSliderStartThumb\"\nRangeSliderStartThumb.__ui__ = \"RangeSliderStartThumb\"\n\nexport const RangeSliderEndThumb = forwardRef<RangeSliderThumbProps, \"div\">(\n  (rest, ref) => {\n    return <RangeSliderThumb ref={ref} index={1} {...rest} />\n  },\n)\n\nRangeSliderEndThumb.displayName = \"RangeSliderEndThumb\"\nRangeSliderEndThumb.__ui__ = \"RangeSliderEndThumb\"\n"],"mappings":"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","names":["interactive","values","max","min","id","valueBounds","step","props"]}