{"version":3,"file":"Slider.cjs","sources":["../../node_modules/@mui/utils/esm/clamp/clamp.js","../../node_modules/@mui/base/Slider/sliderClasses.js","../../node_modules/@mui/base/useSlider/useSlider.js","../../node_modules/@mui/base/Slider/Slider.js","../src/Slider/Slider.tsx"],"sourcesContent":["function clamp(val, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {\n  return Math.max(min, Math.min(val, max));\n}\nexport default clamp;","import { generateUtilityClasses } from '../generateUtilityClasses';\nimport { generateUtilityClass } from '../generateUtilityClass';\nconst COMPONENT_NAME = 'Slider';\nexport function getSliderUtilityClass(slot) {\n  return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const sliderClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'active', 'focusVisible', 'disabled', 'dragging', 'marked', 'vertical', 'trackInverted', 'trackFalse', 'rail', 'track', 'mark', 'markActive', 'markLabel', 'markLabelActive', 'thumb']);","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_ownerDocument as ownerDocument, unstable_useControlled as useControlled, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useEventCallback as useEventCallback, unstable_useForkRef as useForkRef, unstable_useIsFocusVisible as useIsFocusVisible, visuallyHidden, clamp } from '@mui/utils';\nimport { areArraysEqual, extractEventHandlers } from '../utils';\nconst INTENTIONAL_DRAG_COUNT_THRESHOLD = 2;\nfunction asc(a, b) {\n  return a - b;\n}\nfunction findClosest(values, currentValue) {\n  var _values$reduce;\n  const {\n    index: closestIndex\n  } = (_values$reduce = values.reduce((acc, value, index) => {\n    const distance = Math.abs(currentValue - value);\n    if (acc === null || distance < acc.distance || distance === acc.distance) {\n      return {\n        distance,\n        index\n      };\n    }\n    return acc;\n  }, null)) != null ? _values$reduce : {};\n  return closestIndex;\n}\nfunction trackFinger(event, touchId) {\n  // The event is TouchEvent\n  if (touchId.current !== undefined && event.changedTouches) {\n    const touchEvent = event;\n    for (let i = 0; i < touchEvent.changedTouches.length; i += 1) {\n      const touch = touchEvent.changedTouches[i];\n      if (touch.identifier === touchId.current) {\n        return {\n          x: touch.clientX,\n          y: touch.clientY\n        };\n      }\n    }\n    return false;\n  }\n\n  // The event is MouseEvent\n  return {\n    x: event.clientX,\n    y: event.clientY\n  };\n}\nexport function valueToPercent(value, min, max) {\n  return (value - min) * 100 / (max - min);\n}\nfunction percentToValue(percent, min, max) {\n  return (max - min) * percent + min;\n}\nfunction getDecimalPrecision(num) {\n  // This handles the case when num is very small (0.00000001), js will turn this into 1e-8.\n  // When num is bigger than 1 or less than -1 it won't get converted to this notation so it's fine.\n  if (Math.abs(num) < 1) {\n    const parts = num.toExponential().split('e-');\n    const matissaDecimalPart = parts[0].split('.')[1];\n    return (matissaDecimalPart ? matissaDecimalPart.length : 0) + parseInt(parts[1], 10);\n  }\n  const decimalPart = num.toString().split('.')[1];\n  return decimalPart ? decimalPart.length : 0;\n}\nfunction roundValueToStep(value, step, min) {\n  const nearest = Math.round((value - min) / step) * step + min;\n  return Number(nearest.toFixed(getDecimalPrecision(step)));\n}\nfunction setValueIndex({\n  values,\n  newValue,\n  index\n}) {\n  const output = values.slice();\n  output[index] = newValue;\n  return output.sort(asc);\n}\nfunction focusThumb({\n  sliderRef,\n  activeIndex,\n  setActive\n}) {\n  var _sliderRef$current, _doc$activeElement;\n  const doc = ownerDocument(sliderRef.current);\n  if (!((_sliderRef$current = sliderRef.current) != null && _sliderRef$current.contains(doc.activeElement)) || Number(doc == null || (_doc$activeElement = doc.activeElement) == null ? void 0 : _doc$activeElement.getAttribute('data-index')) !== activeIndex) {\n    var _sliderRef$current2;\n    (_sliderRef$current2 = sliderRef.current) == null || _sliderRef$current2.querySelector(`[type=\"range\"][data-index=\"${activeIndex}\"]`).focus();\n  }\n  if (setActive) {\n    setActive(activeIndex);\n  }\n}\nfunction areValuesEqual(newValue, oldValue) {\n  if (typeof newValue === 'number' && typeof oldValue === 'number') {\n    return newValue === oldValue;\n  }\n  if (typeof newValue === 'object' && typeof oldValue === 'object') {\n    return areArraysEqual(newValue, oldValue);\n  }\n  return false;\n}\nconst axisProps = {\n  horizontal: {\n    offset: percent => ({\n      left: `${percent}%`\n    }),\n    leap: percent => ({\n      width: `${percent}%`\n    })\n  },\n  'horizontal-reverse': {\n    offset: percent => ({\n      right: `${percent}%`\n    }),\n    leap: percent => ({\n      width: `${percent}%`\n    })\n  },\n  vertical: {\n    offset: percent => ({\n      bottom: `${percent}%`\n    }),\n    leap: percent => ({\n      height: `${percent}%`\n    })\n  }\n};\nexport const Identity = x => x;\n\n// TODO: remove support for Safari < 13.\n// https://caniuse.com/#search=touch-action\n//\n// Safari, on iOS, supports touch action since v13.\n// Over 80% of the iOS phones are compatible\n// in August 2020.\n// Utilizing the CSS.supports method to check if touch-action is supported.\n// Since CSS.supports is supported on all but Edge@12 and IE and touch-action\n// is supported on both Edge@12 and IE if CSS.supports is not available that means that\n// touch-action will be supported\nlet cachedSupportsTouchActionNone;\nfunction doesSupportTouchActionNone() {\n  if (cachedSupportsTouchActionNone === undefined) {\n    if (typeof CSS !== 'undefined' && typeof CSS.supports === 'function') {\n      cachedSupportsTouchActionNone = CSS.supports('touch-action', 'none');\n    } else {\n      cachedSupportsTouchActionNone = true;\n    }\n  }\n  return cachedSupportsTouchActionNone;\n}\n/**\n *\n * Demos:\n *\n * - [Slider](https://mui.com/base-ui/react-slider/#hook)\n *\n * API:\n *\n * - [useSlider API](https://mui.com/base-ui/react-slider/hooks-api/#use-slider)\n */\nexport function useSlider(parameters) {\n  const {\n    'aria-labelledby': ariaLabelledby,\n    defaultValue,\n    disabled = false,\n    disableSwap = false,\n    isRtl = false,\n    marks: marksProp = false,\n    max = 100,\n    min = 0,\n    name,\n    onChange,\n    onChangeCommitted,\n    orientation = 'horizontal',\n    rootRef: ref,\n    scale = Identity,\n    step = 1,\n    tabIndex,\n    value: valueProp\n  } = parameters;\n  const touchId = React.useRef();\n  // We can't use the :active browser pseudo-classes.\n  // - The active state isn't triggered when clicking on the rail.\n  // - The active state isn't transferred when inversing a range slider.\n  const [active, setActive] = React.useState(-1);\n  const [open, setOpen] = React.useState(-1);\n  const [dragging, setDragging] = React.useState(false);\n  const moveCount = React.useRef(0);\n  const [valueDerived, setValueState] = useControlled({\n    controlled: valueProp,\n    default: defaultValue != null ? defaultValue : min,\n    name: 'Slider'\n  });\n  const handleChange = onChange && ((event, value, thumbIndex) => {\n    // Redefine target to allow name and value to be read.\n    // This allows seamless integration with the most popular form libraries.\n    // https://github.com/mui/material-ui/issues/13485#issuecomment-676048492\n    // Clone the event to not override `target` of the original event.\n    const nativeEvent = event.nativeEvent || event;\n    // @ts-ignore The nativeEvent is function, not object\n    const clonedEvent = new nativeEvent.constructor(nativeEvent.type, nativeEvent);\n    Object.defineProperty(clonedEvent, 'target', {\n      writable: true,\n      value: {\n        value,\n        name\n      }\n    });\n    onChange(clonedEvent, value, thumbIndex);\n  });\n  const range = Array.isArray(valueDerived);\n  let values = range ? valueDerived.slice().sort(asc) : [valueDerived];\n  values = values.map(value => value == null ? min : clamp(value, min, max));\n  const marks = marksProp === true && step !== null ? [...Array(Math.floor((max - min) / step) + 1)].map((_, index) => ({\n    value: min + step * index\n  })) : marksProp || [];\n  const marksValues = marks.map(mark => mark.value);\n  const {\n    isFocusVisibleRef,\n    onBlur: handleBlurVisible,\n    onFocus: handleFocusVisible,\n    ref: focusVisibleRef\n  } = useIsFocusVisible();\n  const [focusedThumbIndex, setFocusedThumbIndex] = React.useState(-1);\n  const sliderRef = React.useRef();\n  const handleFocusRef = useForkRef(focusVisibleRef, sliderRef);\n  const handleRef = useForkRef(ref, handleFocusRef);\n  const createHandleHiddenInputFocus = otherHandlers => event => {\n    var _otherHandlers$onFocu;\n    const index = Number(event.currentTarget.getAttribute('data-index'));\n    handleFocusVisible(event);\n    if (isFocusVisibleRef.current === true) {\n      setFocusedThumbIndex(index);\n    }\n    setOpen(index);\n    otherHandlers == null || (_otherHandlers$onFocu = otherHandlers.onFocus) == null || _otherHandlers$onFocu.call(otherHandlers, event);\n  };\n  const createHandleHiddenInputBlur = otherHandlers => event => {\n    var _otherHandlers$onBlur;\n    handleBlurVisible(event);\n    if (isFocusVisibleRef.current === false) {\n      setFocusedThumbIndex(-1);\n    }\n    setOpen(-1);\n    otherHandlers == null || (_otherHandlers$onBlur = otherHandlers.onBlur) == null || _otherHandlers$onBlur.call(otherHandlers, event);\n  };\n  useEnhancedEffect(() => {\n    if (disabled && sliderRef.current.contains(document.activeElement)) {\n      var _document$activeEleme;\n      // This is necessary because Firefox and Safari will keep focus\n      // on a disabled element:\n      // https://codesandbox.io/p/sandbox/mui-pr-22247-forked-h151h?file=/src/App.js\n      // @ts-ignore\n      (_document$activeEleme = document.activeElement) == null || _document$activeEleme.blur();\n    }\n  }, [disabled]);\n  if (disabled && active !== -1) {\n    setActive(-1);\n  }\n  if (disabled && focusedThumbIndex !== -1) {\n    setFocusedThumbIndex(-1);\n  }\n  const createHandleHiddenInputChange = otherHandlers => event => {\n    var _otherHandlers$onChan;\n    (_otherHandlers$onChan = otherHandlers.onChange) == null || _otherHandlers$onChan.call(otherHandlers, event);\n    const index = Number(event.currentTarget.getAttribute('data-index'));\n    const value = values[index];\n    const marksIndex = marksValues.indexOf(value);\n\n    // @ts-ignore\n    let newValue = event.target.valueAsNumber;\n    if (marks && step == null) {\n      const maxMarksValue = marksValues[marksValues.length - 1];\n      if (newValue > maxMarksValue) {\n        newValue = maxMarksValue;\n      } else if (newValue < marksValues[0]) {\n        newValue = marksValues[0];\n      } else {\n        newValue = newValue < value ? marksValues[marksIndex - 1] : marksValues[marksIndex + 1];\n      }\n    }\n    newValue = clamp(newValue, min, max);\n    if (range) {\n      // Bound the new value to the thumb's neighbours.\n      if (disableSwap) {\n        newValue = clamp(newValue, values[index - 1] || -Infinity, values[index + 1] || Infinity);\n      }\n      const previousValue = newValue;\n      newValue = setValueIndex({\n        values,\n        newValue,\n        index\n      });\n      let activeIndex = index;\n\n      // Potentially swap the index if needed.\n      if (!disableSwap) {\n        activeIndex = newValue.indexOf(previousValue);\n      }\n      focusThumb({\n        sliderRef,\n        activeIndex\n      });\n    }\n    setValueState(newValue);\n    setFocusedThumbIndex(index);\n    if (handleChange && !areValuesEqual(newValue, valueDerived)) {\n      handleChange(event, newValue, index);\n    }\n    if (onChangeCommitted) {\n      onChangeCommitted(event, newValue);\n    }\n  };\n  const previousIndex = React.useRef();\n  let axis = orientation;\n  if (isRtl && orientation === 'horizontal') {\n    axis += '-reverse';\n  }\n  const getFingerNewValue = ({\n    finger,\n    move = false\n  }) => {\n    const {\n      current: slider\n    } = sliderRef;\n    const {\n      width,\n      height,\n      bottom,\n      left\n    } = slider.getBoundingClientRect();\n    let percent;\n    if (axis.indexOf('vertical') === 0) {\n      percent = (bottom - finger.y) / height;\n    } else {\n      percent = (finger.x - left) / width;\n    }\n    if (axis.indexOf('-reverse') !== -1) {\n      percent = 1 - percent;\n    }\n    let newValue;\n    newValue = percentToValue(percent, min, max);\n    if (step) {\n      newValue = roundValueToStep(newValue, step, min);\n    } else {\n      const closestIndex = findClosest(marksValues, newValue);\n      newValue = marksValues[closestIndex];\n    }\n    newValue = clamp(newValue, min, max);\n    let activeIndex = 0;\n    if (range) {\n      if (!move) {\n        activeIndex = findClosest(values, newValue);\n      } else {\n        activeIndex = previousIndex.current;\n      }\n\n      // Bound the new value to the thumb's neighbours.\n      if (disableSwap) {\n        newValue = clamp(newValue, values[activeIndex - 1] || -Infinity, values[activeIndex + 1] || Infinity);\n      }\n      const previousValue = newValue;\n      newValue = setValueIndex({\n        values,\n        newValue,\n        index: activeIndex\n      });\n\n      // Potentially swap the index if needed.\n      if (!(disableSwap && move)) {\n        activeIndex = newValue.indexOf(previousValue);\n        previousIndex.current = activeIndex;\n      }\n    }\n    return {\n      newValue,\n      activeIndex\n    };\n  };\n  const handleTouchMove = useEventCallback(nativeEvent => {\n    const finger = trackFinger(nativeEvent, touchId);\n    if (!finger) {\n      return;\n    }\n    moveCount.current += 1;\n\n    // Cancel move in case some other element consumed a mouseup event and it was not fired.\n    // @ts-ignore buttons doesn't not exists on touch event\n    if (nativeEvent.type === 'mousemove' && nativeEvent.buttons === 0) {\n      // eslint-disable-next-line @typescript-eslint/no-use-before-define\n      handleTouchEnd(nativeEvent);\n      return;\n    }\n    const {\n      newValue,\n      activeIndex\n    } = getFingerNewValue({\n      finger,\n      move: true\n    });\n    focusThumb({\n      sliderRef,\n      activeIndex,\n      setActive\n    });\n    setValueState(newValue);\n    if (!dragging && moveCount.current > INTENTIONAL_DRAG_COUNT_THRESHOLD) {\n      setDragging(true);\n    }\n    if (handleChange && !areValuesEqual(newValue, valueDerived)) {\n      handleChange(nativeEvent, newValue, activeIndex);\n    }\n  });\n  const handleTouchEnd = useEventCallback(nativeEvent => {\n    const finger = trackFinger(nativeEvent, touchId);\n    setDragging(false);\n    if (!finger) {\n      return;\n    }\n    const {\n      newValue\n    } = getFingerNewValue({\n      finger,\n      move: true\n    });\n    setActive(-1);\n    if (nativeEvent.type === 'touchend') {\n      setOpen(-1);\n    }\n    if (onChangeCommitted) {\n      onChangeCommitted(nativeEvent, newValue);\n    }\n    touchId.current = undefined;\n\n    // eslint-disable-next-line @typescript-eslint/no-use-before-define\n    stopListening();\n  });\n  const handleTouchStart = useEventCallback(nativeEvent => {\n    if (disabled) {\n      return;\n    }\n    // If touch-action: none; is not supported we need to prevent the scroll manually.\n    if (!doesSupportTouchActionNone()) {\n      nativeEvent.preventDefault();\n    }\n    const touch = nativeEvent.changedTouches[0];\n    if (touch != null) {\n      // A number that uniquely identifies the current finger in the touch session.\n      touchId.current = touch.identifier;\n    }\n    const finger = trackFinger(nativeEvent, touchId);\n    if (finger !== false) {\n      const {\n        newValue,\n        activeIndex\n      } = getFingerNewValue({\n        finger\n      });\n      focusThumb({\n        sliderRef,\n        activeIndex,\n        setActive\n      });\n      setValueState(newValue);\n      if (handleChange && !areValuesEqual(newValue, valueDerived)) {\n        handleChange(nativeEvent, newValue, activeIndex);\n      }\n    }\n    moveCount.current = 0;\n    const doc = ownerDocument(sliderRef.current);\n    doc.addEventListener('touchmove', handleTouchMove, {\n      passive: true\n    });\n    doc.addEventListener('touchend', handleTouchEnd, {\n      passive: true\n    });\n  });\n  const stopListening = React.useCallback(() => {\n    const doc = ownerDocument(sliderRef.current);\n    doc.removeEventListener('mousemove', handleTouchMove);\n    doc.removeEventListener('mouseup', handleTouchEnd);\n    doc.removeEventListener('touchmove', handleTouchMove);\n    doc.removeEventListener('touchend', handleTouchEnd);\n  }, [handleTouchEnd, handleTouchMove]);\n  React.useEffect(() => {\n    const {\n      current: slider\n    } = sliderRef;\n    slider.addEventListener('touchstart', handleTouchStart, {\n      passive: doesSupportTouchActionNone()\n    });\n    return () => {\n      slider.removeEventListener('touchstart', handleTouchStart);\n      stopListening();\n    };\n  }, [stopListening, handleTouchStart]);\n  React.useEffect(() => {\n    if (disabled) {\n      stopListening();\n    }\n  }, [disabled, stopListening]);\n  const createHandleMouseDown = otherHandlers => event => {\n    var _otherHandlers$onMous;\n    (_otherHandlers$onMous = otherHandlers.onMouseDown) == null || _otherHandlers$onMous.call(otherHandlers, event);\n    if (disabled) {\n      return;\n    }\n    if (event.defaultPrevented) {\n      return;\n    }\n\n    // Only handle left clicks\n    if (event.button !== 0) {\n      return;\n    }\n\n    // Avoid text selection\n    event.preventDefault();\n    const finger = trackFinger(event, touchId);\n    if (finger !== false) {\n      const {\n        newValue,\n        activeIndex\n      } = getFingerNewValue({\n        finger\n      });\n      focusThumb({\n        sliderRef,\n        activeIndex,\n        setActive\n      });\n      setValueState(newValue);\n      if (handleChange && !areValuesEqual(newValue, valueDerived)) {\n        handleChange(event, newValue, activeIndex);\n      }\n    }\n    moveCount.current = 0;\n    const doc = ownerDocument(sliderRef.current);\n    doc.addEventListener('mousemove', handleTouchMove, {\n      passive: true\n    });\n    doc.addEventListener('mouseup', handleTouchEnd);\n  };\n  const trackOffset = valueToPercent(range ? values[0] : min, min, max);\n  const trackLeap = valueToPercent(values[values.length - 1], min, max) - trackOffset;\n  const getRootProps = (externalProps = {}) => {\n    const externalHandlers = extractEventHandlers(externalProps);\n    const ownEventHandlers = {\n      onMouseDown: createHandleMouseDown(externalHandlers || {})\n    };\n    const mergedEventHandlers = _extends({}, externalHandlers, ownEventHandlers);\n    return _extends({}, externalProps, {\n      ref: handleRef\n    }, mergedEventHandlers);\n  };\n  const createHandleMouseOver = otherHandlers => event => {\n    var _otherHandlers$onMous2;\n    (_otherHandlers$onMous2 = otherHandlers.onMouseOver) == null || _otherHandlers$onMous2.call(otherHandlers, event);\n    const index = Number(event.currentTarget.getAttribute('data-index'));\n    setOpen(index);\n  };\n  const createHandleMouseLeave = otherHandlers => event => {\n    var _otherHandlers$onMous3;\n    (_otherHandlers$onMous3 = otherHandlers.onMouseLeave) == null || _otherHandlers$onMous3.call(otherHandlers, event);\n    setOpen(-1);\n  };\n  const getThumbProps = (externalProps = {}) => {\n    const externalHandlers = extractEventHandlers(externalProps);\n    const ownEventHandlers = {\n      onMouseOver: createHandleMouseOver(externalHandlers || {}),\n      onMouseLeave: createHandleMouseLeave(externalHandlers || {})\n    };\n    return _extends({}, externalProps, externalHandlers, ownEventHandlers);\n  };\n  const getThumbStyle = index => {\n    return {\n      // So the non active thumb doesn't show its label on hover.\n      pointerEvents: active !== -1 && active !== index ? 'none' : undefined\n    };\n  };\n  const getHiddenInputProps = (externalProps = {}) => {\n    var _parameters$step;\n    const externalHandlers = extractEventHandlers(externalProps);\n    const ownEventHandlers = {\n      onChange: createHandleHiddenInputChange(externalHandlers || {}),\n      onFocus: createHandleHiddenInputFocus(externalHandlers || {}),\n      onBlur: createHandleHiddenInputBlur(externalHandlers || {})\n    };\n    const mergedEventHandlers = _extends({}, externalHandlers, ownEventHandlers);\n    return _extends({\n      tabIndex,\n      'aria-labelledby': ariaLabelledby,\n      'aria-orientation': orientation,\n      'aria-valuemax': scale(max),\n      'aria-valuemin': scale(min),\n      name,\n      type: 'range',\n      min: parameters.min,\n      max: parameters.max,\n      step: parameters.step === null && parameters.marks ? 'any' : (_parameters$step = parameters.step) != null ? _parameters$step : undefined,\n      disabled\n    }, externalProps, mergedEventHandlers, {\n      style: _extends({}, visuallyHidden, {\n        direction: isRtl ? 'rtl' : 'ltr',\n        // So that VoiceOver's focus indicator matches the thumb's dimensions\n        width: '100%',\n        height: '100%'\n      })\n    });\n  };\n  return {\n    active,\n    axis: axis,\n    axisProps,\n    dragging,\n    focusedThumbIndex,\n    getHiddenInputProps,\n    getRootProps,\n    getThumbProps,\n    marks: marks,\n    open,\n    range,\n    rootRef: handleRef,\n    trackLeap,\n    trackOffset,\n    values,\n    getThumbStyle\n  };\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"aria-label\", \"aria-valuetext\", \"aria-labelledby\", \"className\", \"disableSwap\", \"disabled\", \"getAriaLabel\", \"getAriaValueText\", \"marks\", \"max\", \"min\", \"name\", \"onChange\", \"onChangeCommitted\", \"orientation\", \"scale\", \"step\", \"tabIndex\", \"track\", \"value\", \"valueLabelFormat\", \"isRtl\", \"defaultValue\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@mui/utils';\nimport { isHostComponent } from '../utils/isHostComponent';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { getSliderUtilityClass } from './sliderClasses';\nimport { useSlider, valueToPercent } from '../useSlider';\nimport { useSlotProps } from '../utils/useSlotProps';\nimport { resolveComponentProps } from '../utils/resolveComponentProps';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\n\n// @ts-ignore\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction Identity(x) {\n  return x;\n}\nconst useUtilityClasses = ownerState => {\n  const {\n    disabled,\n    dragging,\n    marked,\n    orientation,\n    track\n  } = ownerState;\n  const slots = {\n    root: ['root', disabled && 'disabled', dragging && 'dragging', marked && 'marked', orientation === 'vertical' && 'vertical', track === 'inverted' && 'trackInverted', track === false && 'trackFalse'],\n    rail: ['rail'],\n    track: ['track'],\n    mark: ['mark'],\n    markActive: ['markActive'],\n    markLabel: ['markLabel'],\n    markLabelActive: ['markLabelActive'],\n    valueLabel: ['valueLabel'],\n    thumb: ['thumb', disabled && 'disabled'],\n    active: ['active'],\n    disabled: ['disabled'],\n    focusVisible: ['focusVisible']\n  };\n  return composeClasses(slots, useClassNamesOverride(getSliderUtilityClass));\n};\n\n/**\n *\n * Demos:\n *\n * - [Slider](https://mui.com/base-ui/react-slider/)\n *\n * API:\n *\n * - [Slider API](https://mui.com/base-ui/react-slider/components-api/#slider)\n */\nconst Slider = /*#__PURE__*/React.forwardRef(function Slider(props, forwardedRef) {\n  var _slots$root, _slots$rail, _slots$track, _slots$thumb, _slots$mark, _slots$markLabel;\n  const {\n      'aria-label': ariaLabel,\n      'aria-valuetext': ariaValuetext,\n      'aria-labelledby': ariaLabelledby,\n      className,\n      disableSwap = false,\n      disabled = false,\n      getAriaLabel,\n      getAriaValueText,\n      marks: marksProp = false,\n      max = 100,\n      min = 0,\n      orientation = 'horizontal',\n      scale = Identity,\n      step = 1,\n      track = 'normal',\n      valueLabelFormat = Identity,\n      isRtl = false,\n      defaultValue,\n      slotProps = {},\n      slots = {}\n    } = props,\n    other = _objectWithoutPropertiesLoose(props, _excluded);\n\n  // all props with defaults\n  // consider extracting to hook an reusing the lint rule for the variants\n  const partialOwnerState = _extends({}, props, {\n    marks: marksProp,\n    disabled,\n    disableSwap,\n    isRtl,\n    defaultValue,\n    max,\n    min,\n    orientation,\n    scale,\n    step,\n    track,\n    valueLabelFormat\n  });\n  const {\n    axisProps,\n    getRootProps,\n    getHiddenInputProps,\n    getThumbProps,\n    active,\n    axis,\n    range,\n    focusedThumbIndex,\n    dragging,\n    marks,\n    values,\n    trackOffset,\n    trackLeap,\n    getThumbStyle\n  } = useSlider(_extends({}, partialOwnerState, {\n    rootRef: forwardedRef\n  }));\n  const ownerState = _extends({}, partialOwnerState, {\n    marked: marks.length > 0 && marks.some(mark => mark.label),\n    dragging,\n    focusedThumbIndex,\n    activeThumbIndex: active\n  });\n  const classes = useUtilityClasses(ownerState);\n  const Root = (_slots$root = slots.root) != null ? _slots$root : 'span';\n  const rootProps = useSlotProps({\n    elementType: Root,\n    getSlotProps: getRootProps,\n    externalSlotProps: slotProps.root,\n    externalForwardedProps: other,\n    ownerState,\n    className: [classes.root, className]\n  });\n  const Rail = (_slots$rail = slots.rail) != null ? _slots$rail : 'span';\n  const railProps = useSlotProps({\n    elementType: Rail,\n    externalSlotProps: slotProps.rail,\n    ownerState,\n    className: classes.rail\n  });\n  const Track = (_slots$track = slots.track) != null ? _slots$track : 'span';\n  const trackProps = useSlotProps({\n    elementType: Track,\n    externalSlotProps: slotProps.track,\n    additionalProps: {\n      style: _extends({}, axisProps[axis].offset(trackOffset), axisProps[axis].leap(trackLeap))\n    },\n    ownerState,\n    className: classes.track\n  });\n  const Thumb = (_slots$thumb = slots.thumb) != null ? _slots$thumb : 'span';\n  const thumbProps = useSlotProps({\n    elementType: Thumb,\n    getSlotProps: getThumbProps,\n    externalSlotProps: slotProps.thumb,\n    ownerState,\n    skipResolvingSlotProps: true\n  });\n  const ValueLabel = slots.valueLabel;\n  const valueLabelProps = useSlotProps({\n    elementType: ValueLabel,\n    externalSlotProps: slotProps.valueLabel,\n    ownerState\n  });\n  const Mark = (_slots$mark = slots.mark) != null ? _slots$mark : 'span';\n  const markProps = useSlotProps({\n    elementType: Mark,\n    externalSlotProps: slotProps.mark,\n    ownerState,\n    className: classes.mark\n  });\n  const MarkLabel = (_slots$markLabel = slots.markLabel) != null ? _slots$markLabel : 'span';\n  const markLabelProps = useSlotProps({\n    elementType: MarkLabel,\n    externalSlotProps: slotProps.markLabel,\n    ownerState\n  });\n  const Input = slots.input || 'input';\n  const inputProps = useSlotProps({\n    elementType: Input,\n    getSlotProps: getHiddenInputProps,\n    externalSlotProps: slotProps.input,\n    ownerState\n  });\n  return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {\n    children: [/*#__PURE__*/_jsx(Rail, _extends({}, railProps)), /*#__PURE__*/_jsx(Track, _extends({}, trackProps)), marks.filter(mark => mark.value >= min && mark.value <= max).map((mark, index) => {\n      const percent = valueToPercent(mark.value, min, max);\n      const style = axisProps[axis].offset(percent);\n      let markActive;\n      if (track === false) {\n        markActive = values.indexOf(mark.value) !== -1;\n      } else {\n        markActive = track === 'normal' && (range ? mark.value >= values[0] && mark.value <= values[values.length - 1] : mark.value <= values[0]) || track === 'inverted' && (range ? mark.value <= values[0] || mark.value >= values[values.length - 1] : mark.value >= values[0]);\n      }\n      return /*#__PURE__*/_jsxs(React.Fragment, {\n        children: [/*#__PURE__*/_jsx(Mark, _extends({\n          \"data-index\": index\n        }, markProps, !isHostComponent(Mark) && {\n          markActive\n        }, {\n          style: _extends({}, style, markProps.style),\n          className: clsx(markProps.className, markActive && classes.markActive)\n        })), mark.label != null ? /*#__PURE__*/_jsx(MarkLabel, _extends({\n          \"aria-hidden\": true,\n          \"data-index\": index\n        }, markLabelProps, !isHostComponent(MarkLabel) && {\n          markLabelActive: markActive\n        }, {\n          style: _extends({}, style, markLabelProps.style),\n          className: clsx(classes.markLabel, markLabelProps.className, markActive && classes.markLabelActive),\n          children: mark.label\n        })) : null]\n      }, index);\n    }), values.map((value, index) => {\n      const percent = valueToPercent(value, min, max);\n      const style = axisProps[axis].offset(percent);\n      const resolvedSlotProps = resolveComponentProps(slotProps.thumb, ownerState, {\n        index,\n        focused: focusedThumbIndex === index,\n        active: active === index\n      });\n      return /*#__PURE__*/_jsxs(Thumb, _extends({\n        \"data-index\": index\n      }, thumbProps, resolvedSlotProps, {\n        className: clsx(classes.thumb, thumbProps.className, resolvedSlotProps == null ? void 0 : resolvedSlotProps.className, active === index && classes.active, focusedThumbIndex === index && classes.focusVisible),\n        style: _extends({}, style, getThumbStyle(index), thumbProps.style, resolvedSlotProps == null ? void 0 : resolvedSlotProps.style),\n        children: [/*#__PURE__*/_jsx(Input, _extends({\n          \"data-index\": index,\n          \"aria-label\": getAriaLabel ? getAriaLabel(index) : ariaLabel,\n          \"aria-valuenow\": scale(value),\n          \"aria-labelledby\": ariaLabelledby,\n          \"aria-valuetext\": getAriaValueText ? getAriaValueText(scale(value), index) : ariaValuetext,\n          value: values[index]\n        }, inputProps)), ValueLabel ? /*#__PURE__*/_jsx(ValueLabel, _extends({}, !isHostComponent(ValueLabel) && {\n          valueLabelFormat,\n          index,\n          disabled\n        }, valueLabelProps, {\n          children: typeof valueLabelFormat === 'function' ? valueLabelFormat(scale(value), index) : valueLabelFormat\n        })) : null]\n      }), index);\n    })]\n  }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Slider.propTypes /* remove-proptypes */ = {\n  // ┌────────────────────────────── Warning ──────────────────────────────┐\n  // │ These PropTypes are generated from the TypeScript type definitions. │\n  // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n  // └─────────────────────────────────────────────────────────────────────┘\n  /**\n   * The label of the slider.\n   */\n  'aria-label': chainPropTypes(PropTypes.string, props => {\n    const range = Array.isArray(props.value || props.defaultValue);\n    if (range && props['aria-label'] != null) {\n      return new Error('MUI: You need to use the `getAriaLabel` prop instead of `aria-label` when using a range slider.');\n    }\n    return null;\n  }),\n  /**\n   * The id of the element containing a label for the slider.\n   */\n  'aria-labelledby': PropTypes.string,\n  /**\n   * A string value that provides a user-friendly name for the current value of the slider.\n   */\n  'aria-valuetext': chainPropTypes(PropTypes.string, props => {\n    const range = Array.isArray(props.value || props.defaultValue);\n    if (range && props['aria-valuetext'] != null) {\n      return new Error('MUI: You need to use the `getAriaValueText` prop instead of `aria-valuetext` when using a range slider.');\n    }\n    return null;\n  }),\n  /**\n   * The default value. Use when the component is not controlled.\n   */\n  defaultValue: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number]),\n  /**\n   * If `true`, the component is disabled.\n   * @default false\n   */\n  disabled: PropTypes.bool,\n  /**\n   * If `true`, the active thumb doesn't swap when moving pointer over a thumb while dragging another thumb.\n   * @default false\n   */\n  disableSwap: PropTypes.bool,\n  /**\n   * Accepts a function which returns a string value that provides a user-friendly name for the thumb labels of the slider.\n   * This is important for screen reader users.\n   * @param {number} index The thumb label's index to format.\n   * @returns {string}\n   */\n  getAriaLabel: PropTypes.func,\n  /**\n   * Accepts a function which returns a string value that provides a user-friendly name for the current value of the slider.\n   * This is important for screen reader users.\n   * @param {number} value The thumb label's value to format.\n   * @param {number} index The thumb label's index to format.\n   * @returns {string}\n   */\n  getAriaValueText: PropTypes.func,\n  /**\n   * If `true` the Slider will be rendered right-to-left (with the lowest value on the right-hand side).\n   * @default false\n   */\n  isRtl: PropTypes.bool,\n  /**\n   * Marks indicate predetermined values to which the user can move the slider.\n   * If `true` the marks are spaced according the value of the `step` prop.\n   * If an array, it should contain objects with `value` and an optional `label` keys.\n   * @default false\n   */\n  marks: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.shape({\n    label: PropTypes.node,\n    value: PropTypes.number.isRequired\n  })), PropTypes.bool]),\n  /**\n   * The maximum allowed value of the slider.\n   * Should not be equal to min.\n   * @default 100\n   */\n  max: PropTypes.number,\n  /**\n   * The minimum allowed value of the slider.\n   * Should not be equal to max.\n   * @default 0\n   */\n  min: PropTypes.number,\n  /**\n   * Name attribute of the hidden `input` element.\n   */\n  name: PropTypes.string,\n  /**\n   * Callback function that is fired when the slider's value changed.\n   *\n   * @param {Event} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value` (any).\n   * **Warning**: This is a generic event not a change event.\n   * @param {number | number[]} value The new value.\n   * @param {number} activeThumb Index of the currently moved thumb.\n   */\n  onChange: PropTypes.func,\n  /**\n   * Callback function that is fired when the `mouseup` is triggered.\n   *\n   * @param {React.SyntheticEvent | Event} event The event source of the callback. **Warning**: This is a generic event not a change event.\n   * @param {number | number[]} value The new value.\n   */\n  onChangeCommitted: PropTypes.func,\n  /**\n   * The component orientation.\n   * @default 'horizontal'\n   */\n  orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n  /**\n   * A transformation function, to change the scale of the slider.\n   * @param {any} x\n   * @returns {any}\n   * @default function Identity(x) {\n   *   return x;\n   * }\n   */\n  scale: PropTypes.func,\n  /**\n   * The props used for each slot inside the Slider.\n   * @default {}\n   */\n  slotProps: PropTypes.shape({\n    input: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n    mark: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n    markLabel: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n    rail: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n    root: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n    thumb: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n    track: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n    valueLabel: PropTypes.oneOfType([PropTypes.any, PropTypes.func])\n  }),\n  /**\n   * The components used for each slot inside the Slider.\n   * Either a string to use a HTML element or a component.\n   * @default {}\n   */\n  slots: PropTypes.shape({\n    input: PropTypes.elementType,\n    mark: PropTypes.elementType,\n    markLabel: PropTypes.elementType,\n    rail: PropTypes.elementType,\n    root: PropTypes.elementType,\n    thumb: PropTypes.elementType,\n    track: PropTypes.elementType,\n    valueLabel: PropTypes.elementType\n  }),\n  /**\n   * The granularity with which the slider can step through values. (A \"discrete\" slider.)\n   * The `min` prop serves as the origin for the valid values.\n   * We recommend (max - min) to be evenly divisible by the step.\n   *\n   * When step is `null`, the thumb can only be slid onto marks provided with the `marks` prop.\n   * @default 1\n   */\n  step: PropTypes.number,\n  /**\n   * Tab index attribute of the hidden `input` element.\n   */\n  tabIndex: PropTypes.number,\n  /**\n   * The track presentation:\n   *\n   * - `normal` the track will render a bar representing the slider value.\n   * - `inverted` the track will render a bar representing the remaining slider value.\n   * - `false` the track will render without a bar.\n   * @default 'normal'\n   */\n  track: PropTypes.oneOf(['inverted', 'normal', false]),\n  /**\n   * The value of the slider.\n   * For ranged sliders, provide an array with two values.\n   */\n  value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number]),\n  /**\n   * The format function the value label's value.\n   *\n   * When a function is provided, it should have the following signature:\n   *\n   * - {number} value The value label's value to format\n   * - {number} index The value label's index to format\n   * @param {any} x\n   * @returns {any}\n   * @default function Identity(x) {\n   *   return x;\n   * }\n   */\n  valueLabelFormat: PropTypes.oneOfType([PropTypes.func, PropTypes.string])\n} : void 0;\nexport { Slider };","import {\n  Slider as MuiSlider,\n  type SliderOwnerState,\n  type SliderOwnProps,\n} from '@mui/base/Slider';\nimport clsx from 'clsx';\nimport { assocPath, identity, pipe } from 'ramda';\nimport React, { type ComponentPropsWithRef, forwardRef } from 'react';\n\nimport type {\n  ComponentProps,\n  SlotComponentPropsWithoutOverride,\n} from '../components.ts';\nimport { useFieldContext } from '../Form/useFieldContext.ts';\nimport { assocDefaultStyle } from '../utils/assign-default-style.ts';\nimport { mergeRootSlotPropsToComponentProps } from '../utils/merge-root-slot-props-to-component-prop.ts';\n\ninterface SlotProps {\n  input?: SlotComponentPropsWithoutOverride<'input', SliderOwnerState>;\n  mark?: SlotComponentPropsWithoutOverride<'span', SliderOwnerState>;\n  markLabel?: SlotComponentPropsWithoutOverride<'span', SliderOwnerState>;\n  rail?: SlotComponentPropsWithoutOverride<'span', SliderOwnerState>;\n  root?: SlotComponentPropsWithoutOverride<'span', SliderOwnerState>;\n  thumb?: SlotComponentPropsWithoutOverride<'span', SliderOwnerState>;\n  track?: SlotComponentPropsWithoutOverride<'span', SliderOwnerState>;\n  valueLabel?: SlotComponentPropsWithoutOverride<\n    React.ElementType,\n    SliderOwnerState\n  >;\n}\n\nexport type SliderProps = ComponentProps<SlotProps, SliderOwnProps>;\n\nconst SliderInput = forwardRef<\n  HTMLInputElement,\n  ComponentPropsWithRef<'input'> & {\n    ownerState: ComponentPropsWithRef<'input'>;\n  }\n>(function SliderInput(props, ref) {\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  const { ownerState, value: _, ...inputProps } = props;\n  return (\n    <input\n      {...inputProps}\n      ref={ref}\n      value={ownerState?.value === 0 ? undefined : ownerState?.value}\n    />\n  );\n});\n\nexport const Slider = forwardRef<HTMLInputElement, SliderProps>(function Slider(\n  { disableDefaultClasses, slotProps: givenSlotProps, ...rest },\n  ref,\n) {\n  const { formControlContext, id, name } = useFieldContext({\n    // @ts-expect-error TODO: fix this\n    onChange: rest.onChange,\n    value: rest.value,\n  });\n\n  const slotProps = pipe(\n    id ? assocPath(['input', 'id'], id) : identity,\n    ref ? assocPath(['input', 'ref'], ref) : identity,\n    formControlContext?.required\n      ? assocPath(['input', 'required'], true)\n      : identity,\n  )(\n    disableDefaultClasses\n      ? givenSlotProps\n      : assocDefaultStyle<SlotProps>({\n          slotWithDefaultClasses: {\n            rail: clsx(\n              'tw-block tw-h-1 tw-w-full tw-rounded-sm tw-bg-secondary hover:tw-bg-secondary-user-action',\n            ),\n            root: clsx(\n              'tw-relative tw-flex tw-h-full tw-w-full tw-cursor-pointer tw-items-center',\n            ),\n            thumb: clsx(\n              'tw-absolute tw--ml-1.5 tw--mt-[0.15rem] tw-h-2 tw-w-2 tw-rounded-[50%] tw-border-2 tw-border-primary tw-bg-primary hover:tw-border-primary-user-action hover:tw-bg-primary-user-action',\n            ),\n            track: clsx(\n              'tw-absolute tw-block tw-h-1 tw-w-full tw-rounded-sm tw-bg-secondary hover:tw-bg-secondary-user-action',\n            ),\n          },\n        })(givenSlotProps),\n  ) as SlotProps;\n\n  const rootProps = mergeRootSlotPropsToComponentProps()(slotProps, rest);\n  const sliderValue = Number(formControlContext?.value);\n\n  return (\n    <MuiSlider\n      onBlur={formControlContext?.onBlur}\n      onChange={e => {\n        formControlContext?.onChange?.(\n          e as unknown as React.ChangeEvent<HTMLInputElement>,\n        );\n      }}\n      slotProps={slotProps}\n      slots={{\n        input: SliderInput,\n      }}\n      value={sliderValue}\n      {...rootProps}\n      name={name || rootProps.name}\n    />\n  );\n});\n"],"names":["clamp","val","min","max","COMPONENT_NAME","getSliderUtilityClass","slot","generateUtilityClass","generateUtilityClasses","INTENTIONAL_DRAG_COUNT_THRESHOLD","asc","a","b","findClosest","values","currentValue","_values$reduce","closestIndex","acc","value","index","distance","trackFinger","event","touchId","touchEvent","i","touch","valueToPercent","percentToValue","percent","getDecimalPrecision","num","parts","matissaDecimalPart","decimalPart","roundValueToStep","step","nearest","setValueIndex","newValue","output","focusThumb","sliderRef","activeIndex","setActive","_sliderRef$current","_doc$activeElement","doc","ownerDocument","_sliderRef$current2","areValuesEqual","oldValue","areArraysEqual","axisProps","Identity","x","cachedSupportsTouchActionNone","doesSupportTouchActionNone","useSlider","parameters","ariaLabelledby","defaultValue","disabled","disableSwap","isRtl","marksProp","name","onChange","onChangeCommitted","orientation","ref","scale","tabIndex","valueProp","React","active","open","setOpen","dragging","setDragging","moveCount","valueDerived","setValueState","useControlled","handleChange","thumbIndex","nativeEvent","clonedEvent","range","marks","_","marksValues","mark","isFocusVisibleRef","handleBlurVisible","handleFocusVisible","focusVisibleRef","useIsFocusVisible","focusedThumbIndex","setFocusedThumbIndex","handleFocusRef","useForkRef","handleRef","createHandleHiddenInputFocus","otherHandlers","_otherHandlers$onFocu","createHandleHiddenInputBlur","_otherHandlers$onBlur","useEnhancedEffect","_document$activeEleme","createHandleHiddenInputChange","_otherHandlers$onChan","marksIndex","maxMarksValue","previousValue","previousIndex","axis","getFingerNewValue","finger","move","slider","width","height","bottom","left","handleTouchMove","useEventCallback","handleTouchEnd","stopListening","handleTouchStart","createHandleMouseDown","_otherHandlers$onMous","trackOffset","trackLeap","getRootProps","externalProps","externalHandlers","extractEventHandlers","ownEventHandlers","mergedEventHandlers","_extends","createHandleMouseOver","_otherHandlers$onMous2","createHandleMouseLeave","_otherHandlers$onMous3","_parameters$step","visuallyHidden","_excluded","useUtilityClasses","ownerState","marked","track","slots","composeClasses","useClassNamesOverride","Slider","props","forwardedRef","_slots$root","_slots$rail","_slots$track","_slots$thumb","_slots$mark","_slots$markLabel","ariaLabel","ariaValuetext","className","getAriaLabel","getAriaValueText","valueLabelFormat","slotProps","other","_objectWithoutPropertiesLoose","partialOwnerState","getHiddenInputProps","getThumbProps","getThumbStyle","classes","Root","rootProps","useSlotProps","Rail","railProps","Track","trackProps","Thumb","thumbProps","ValueLabel","valueLabelProps","Mark","markProps","MarkLabel","markLabelProps","Input","inputProps","_jsxs","_jsx","style","markActive","isHostComponent","clsx","resolvedSlotProps","resolveComponentProps","chainPropTypes","PropTypes","SliderInput","forwardRef","jsx","disableDefaultClasses","givenSlotProps","rest","formControlContext","id","useFieldContext","pipe","assocPath","identity","assocDefaultStyle","mergeRootSlotPropsToComponentProps","sliderValue","MuiSlider","e","_a"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}