import ut from "./index-objectWithoutPropertiesLoose.js";
import o from "./index-extends.js";
import * as we from "react";
import e from "./index-_virtual16.js";
import { clsx as J } from "./index-clsx.js";
import { c as T } from "./index-colorManipulator2.js";
import { useRtl as ct } from "./index-RtlProvider.js";
import { useSlider as dt, valueToPercent as $e } from "./index-useSlider.js";
import Re from "./index-slotShouldForwardProp.js";
import mt from "./index-shouldSpreadAdditionalProps.js";
import bt from "./index-SliderValueLabel.js";
import b, { getSliderUtilityClass as ft } from "./index-sliderClasses.js";
import { jsxs as Oe, jsx as S } from "react/jsx-runtime";
import { useDefaultProps as vt } from "./index-DefaultPropsProvider.js";
import y from "./index-useSlotProps.js";
import K from "./index-isHostComponent.js";
import h from "./index-capitalize.js";
import yt from "./index-composeClasses.js";
import x from "./index-styled.js";
import Ce from "./index-chainPropTypes.js";
const ht = ["aria-label", "aria-valuetext", "aria-labelledby", "component", "components", "componentsProps", "color", "classes", "className", "disableSwap", "disabled", "getAriaLabel", "getAriaValueText", "marks", "max", "min", "name", "onChange", "onChangeCommitted", "orientation", "shiftStep", "size", "step", "scale", "slotProps", "slots", "tabIndex", "track", "value", "valueLabelDisplay", "valueLabelFormat"];
function ze(t) {
  return t;
}
const gt = x("span", {
  name: "MuiSlider",
  slot: "Root",
  overridesResolver: (t, r) => {
    const {
      ownerState: a
    } = t;
    return [r.root, r[`color${h(a.color)}`], a.size !== "medium" && r[`size${h(a.size)}`], a.marked && r.marked, a.orientation === "vertical" && r.vertical, a.track === "inverted" && r.trackInverted, a.track === !1 && r.trackFalse];
  }
})(({
  theme: t
}) => {
  var r;
  return {
    borderRadius: 12,
    boxSizing: "content-box",
    display: "inline-block",
    position: "relative",
    cursor: "pointer",
    touchAction: "none",
    WebkitTapHighlightColor: "transparent",
    "@media print": {
      colorAdjust: "exact"
    },
    [`&.${b.disabled}`]: {
      pointerEvents: "none",
      cursor: "default",
      color: (t.vars || t).palette.grey[400]
    },
    [`&.${b.dragging}`]: {
      [`& .${b.thumb}, & .${b.track}`]: {
        transition: "none"
      }
    },
    variants: [...Object.keys(((r = t.vars) != null ? r : t).palette).filter((a) => {
      var p;
      return ((p = t.vars) != null ? p : t).palette[a].main;
    }).map((a) => ({
      props: {
        color: a
      },
      style: {
        color: (t.vars || t).palette[a].main
      }
    })), {
      props: {
        orientation: "horizontal"
      },
      style: {
        height: 4,
        width: "100%",
        padding: "13px 0",
        // The primary input mechanism of the device includes a pointing device of limited accuracy.
        "@media (pointer: coarse)": {
          // Reach 42px touch target, about ~8mm on screen.
          padding: "20px 0"
        }
      }
    }, {
      props: {
        orientation: "horizontal",
        size: "small"
      },
      style: {
        height: 2
      }
    }, {
      props: {
        orientation: "horizontal",
        marked: !0
      },
      style: {
        marginBottom: 20
      }
    }, {
      props: {
        orientation: "vertical"
      },
      style: {
        height: "100%",
        width: 4,
        padding: "0 13px",
        // The primary input mechanism of the device includes a pointing device of limited accuracy.
        "@media (pointer: coarse)": {
          // Reach 42px touch target, about ~8mm on screen.
          padding: "0 20px"
        }
      }
    }, {
      props: {
        orientation: "vertical",
        size: "small"
      },
      style: {
        width: 2
      }
    }, {
      props: {
        orientation: "vertical",
        marked: !0
      },
      style: {
        marginRight: 44
      }
    }]
  };
}), kt = x("span", {
  name: "MuiSlider",
  slot: "Rail",
  overridesResolver: (t, r) => r.rail
})({
  display: "block",
  position: "absolute",
  borderRadius: "inherit",
  backgroundColor: "currentColor",
  opacity: 0.38,
  variants: [{
    props: {
      orientation: "horizontal"
    },
    style: {
      width: "100%",
      height: "inherit",
      top: "50%",
      transform: "translateY(-50%)"
    }
  }, {
    props: {
      orientation: "vertical"
    },
    style: {
      height: "100%",
      width: "inherit",
      left: "50%",
      transform: "translateX(-50%)"
    }
  }, {
    props: {
      track: "inverted"
    },
    style: {
      opacity: 1
    }
  }]
}), St = x("span", {
  name: "MuiSlider",
  slot: "Track",
  overridesResolver: (t, r) => r.track
})(({
  theme: t
}) => {
  var r;
  return {
    display: "block",
    position: "absolute",
    borderRadius: "inherit",
    border: "1px solid currentColor",
    backgroundColor: "currentColor",
    transition: t.transitions.create(["left", "width", "bottom", "height"], {
      duration: t.transitions.duration.shortest
    }),
    variants: [{
      props: {
        size: "small"
      },
      style: {
        border: "none"
      }
    }, {
      props: {
        orientation: "horizontal"
      },
      style: {
        height: "inherit",
        top: "50%",
        transform: "translateY(-50%)"
      }
    }, {
      props: {
        orientation: "vertical"
      },
      style: {
        width: "inherit",
        left: "50%",
        transform: "translateX(-50%)"
      }
    }, {
      props: {
        track: !1
      },
      style: {
        display: "none"
      }
    }, ...Object.keys(((r = t.vars) != null ? r : t).palette).filter((a) => {
      var p;
      return ((p = t.vars) != null ? p : t).palette[a].main;
    }).map((a) => ({
      props: {
        color: a,
        track: "inverted"
      },
      style: o({}, t.vars ? {
        backgroundColor: t.vars.palette.Slider[`${a}Track`],
        borderColor: t.vars.palette.Slider[`${a}Track`]
      } : o({
        backgroundColor: T.lighten(t.palette[a].main, 0.62),
        borderColor: T.lighten(t.palette[a].main, 0.62)
      }, t.applyStyles("dark", {
        backgroundColor: T.darken(t.palette[a].main, 0.5)
      }), t.applyStyles("dark", {
        borderColor: T.darken(t.palette[a].main, 0.5)
      })))
    }))]
  };
}), xt = x("span", {
  name: "MuiSlider",
  slot: "Thumb",
  overridesResolver: (t, r) => {
    const {
      ownerState: a
    } = t;
    return [r.thumb, r[`thumbColor${h(a.color)}`], a.size !== "medium" && r[`thumbSize${h(a.size)}`]];
  }
})(({
  theme: t
}) => {
  var r;
  return {
    position: "absolute",
    width: 20,
    height: 20,
    boxSizing: "border-box",
    borderRadius: "50%",
    outline: 0,
    backgroundColor: "currentColor",
    display: "flex",
    alignItems: "center",
    justifyContent: "center",
    transition: t.transitions.create(["box-shadow", "left", "bottom"], {
      duration: t.transitions.duration.shortest
    }),
    "&::before": {
      position: "absolute",
      content: '""',
      borderRadius: "inherit",
      width: "100%",
      height: "100%",
      boxShadow: (t.vars || t).shadows[2]
    },
    "&::after": {
      position: "absolute",
      content: '""',
      borderRadius: "50%",
      // 42px is the hit target
      width: 42,
      height: 42,
      top: "50%",
      left: "50%",
      transform: "translate(-50%, -50%)"
    },
    [`&.${b.disabled}`]: {
      "&:hover": {
        boxShadow: "none"
      }
    },
    variants: [{
      props: {
        size: "small"
      },
      style: {
        width: 12,
        height: 12,
        "&::before": {
          boxShadow: "none"
        }
      }
    }, {
      props: {
        orientation: "horizontal"
      },
      style: {
        top: "50%",
        transform: "translate(-50%, -50%)"
      }
    }, {
      props: {
        orientation: "vertical"
      },
      style: {
        left: "50%",
        transform: "translate(-50%, 50%)"
      }
    }, ...Object.keys(((r = t.vars) != null ? r : t).palette).filter((a) => {
      var p;
      return ((p = t.vars) != null ? p : t).palette[a].main;
    }).map((a) => ({
      props: {
        color: a
      },
      style: {
        [`&:hover, &.${b.focusVisible}`]: o({}, t.vars ? {
          boxShadow: `0px 0px 0px 8px rgba(${t.vars.palette[a].mainChannel} / 0.16)`
        } : {
          boxShadow: `0px 0px 0px 8px ${T.alpha(t.palette[a].main, 0.16)}`
        }, {
          "@media (hover: none)": {
            boxShadow: "none"
          }
        }),
        [`&.${b.active}`]: o({}, t.vars ? {
          boxShadow: `0px 0px 0px 14px rgba(${t.vars.palette[a].mainChannel} / 0.16)`
        } : {
          boxShadow: `0px 0px 0px 14px ${T.alpha(t.palette[a].main, 0.16)}`
        })
      }
    }))]
  };
}), Tt = x(bt, {
  name: "MuiSlider",
  slot: "ValueLabel",
  overridesResolver: (t, r) => r.valueLabel
})(({
  theme: t
}) => o({
  zIndex: 1,
  whiteSpace: "nowrap"
}, t.typography.body2, {
  fontWeight: 500,
  transition: t.transitions.create(["transform"], {
    duration: t.transitions.duration.shortest
  }),
  position: "absolute",
  backgroundColor: (t.vars || t).palette.grey[600],
  borderRadius: 2,
  color: (t.vars || t).palette.common.white,
  display: "flex",
  alignItems: "center",
  justifyContent: "center",
  padding: "0.25rem 0.75rem",
  variants: [{
    props: {
      orientation: "horizontal"
    },
    style: {
      transform: "translateY(-100%) scale(0)",
      top: "-10px",
      transformOrigin: "bottom center",
      "&::before": {
        position: "absolute",
        content: '""',
        width: 8,
        height: 8,
        transform: "translate(-50%, 50%) rotate(45deg)",
        backgroundColor: "inherit",
        bottom: 0,
        left: "50%"
      },
      [`&.${b.valueLabelOpen}`]: {
        transform: "translateY(-100%) scale(1)"
      }
    }
  }, {
    props: {
      orientation: "vertical"
    },
    style: {
      transform: "translateY(-50%) scale(0)",
      right: "30px",
      top: "50%",
      transformOrigin: "right center",
      "&::before": {
        position: "absolute",
        content: '""',
        width: 8,
        height: 8,
        transform: "translate(-50%, -50%) rotate(45deg)",
        backgroundColor: "inherit",
        right: -8,
        top: "50%"
      },
      [`&.${b.valueLabelOpen}`]: {
        transform: "translateY(-50%) scale(1)"
      }
    }
  }, {
    props: {
      size: "small"
    },
    style: {
      fontSize: t.typography.pxToRem(12),
      padding: "0.25rem 0.5rem"
    }
  }, {
    props: {
      orientation: "vertical",
      size: "small"
    },
    style: {
      right: "20px"
    }
  }]
})), Lt = x("span", {
  name: "MuiSlider",
  slot: "Mark",
  shouldForwardProp: (t) => Re(t) && t !== "markActive",
  overridesResolver: (t, r) => {
    const {
      markActive: a
    } = t;
    return [r.mark, a && r.markActive];
  }
})(({
  theme: t
}) => ({
  position: "absolute",
  width: 2,
  height: 2,
  borderRadius: 1,
  backgroundColor: "currentColor",
  variants: [{
    props: {
      orientation: "horizontal"
    },
    style: {
      top: "50%",
      transform: "translate(-1px, -50%)"
    }
  }, {
    props: {
      orientation: "vertical"
    },
    style: {
      left: "50%",
      transform: "translate(-50%, 1px)"
    }
  }, {
    props: {
      markActive: !0
    },
    style: {
      backgroundColor: (t.vars || t).palette.background.paper,
      opacity: 0.8
    }
  }]
})), Pt = x("span", {
  name: "MuiSlider",
  slot: "MarkLabel",
  shouldForwardProp: (t) => Re(t) && t !== "markLabelActive",
  overridesResolver: (t, r) => r.markLabel
})(({
  theme: t
}) => o({}, t.typography.body2, {
  color: (t.vars || t).palette.text.secondary,
  position: "absolute",
  whiteSpace: "nowrap",
  variants: [{
    props: {
      orientation: "horizontal"
    },
    style: {
      top: 30,
      transform: "translateX(-50%)",
      "@media (pointer: coarse)": {
        top: 40
      }
    }
  }, {
    props: {
      orientation: "vertical"
    },
    style: {
      left: 36,
      transform: "translateY(50%)",
      "@media (pointer: coarse)": {
        left: 44
      }
    }
  }, {
    props: {
      markLabelActive: !0
    },
    style: {
      color: (t.vars || t).palette.text.primary
    }
  }]
})), wt = (t) => {
  const {
    disabled: r,
    dragging: a,
    marked: p,
    orientation: w,
    track: L,
    classes: $,
    color: g,
    size: k
  } = t, O = {
    root: ["root", r && "disabled", a && "dragging", p && "marked", w === "vertical" && "vertical", L === "inverted" && "trackInverted", L === !1 && "trackFalse", g && `color${h(g)}`, k && `size${h(k)}`],
    rail: ["rail"],
    track: ["track"],
    mark: ["mark"],
    markActive: ["markActive"],
    markLabel: ["markLabel"],
    markLabelActive: ["markLabelActive"],
    valueLabel: ["valueLabel"],
    thumb: ["thumb", r && "disabled", k && `thumbSize${h(k)}`, g && `thumbColor${h(g)}`],
    active: ["active"],
    disabled: ["disabled"],
    focusVisible: ["focusVisible"]
  };
  return yt(O, ft, $);
}, $t = ({
  children: t
}) => t, Ot = /* @__PURE__ */ we.forwardRef(function(r, a) {
  var p, w, L, $, g, k, O, Q, Z, ee, te, ae, re, oe, le, ne, se, ie, pe, ue, ce, de, me, be;
  const V = vt({
    props: r,
    name: "MuiSlider"
  }), _e = ct(), {
    "aria-label": Ae,
    "aria-valuetext": je,
    "aria-labelledby": Me,
    // eslint-disable-next-line react/prop-types
    component: Ne = "span",
    components: f = {},
    componentsProps: v = {},
    color: Ve = "primary",
    classes: Ie,
    className: Fe,
    disableSwap: Ye = !1,
    disabled: fe = !1,
    getAriaLabel: ve,
    getAriaValueText: ye,
    marks: De = !1,
    max: C = 100,
    min: z = 0,
    orientation: Ee = "horizontal",
    shiftStep: Ue = 10,
    size: He = "medium",
    step: We = 1,
    scale: R = ze,
    slotProps: s,
    slots: i,
    track: _ = "normal",
    valueLabelDisplay: A = "off",
    valueLabelFormat: P = ze
  } = V, Xe = ut(V, ht), u = o({}, V, {
    isRtl: _e,
    max: C,
    min: z,
    classes: Ie,
    disabled: fe,
    disableSwap: Ye,
    orientation: Ee,
    marks: De,
    color: Ve,
    size: He,
    step: We,
    shiftStep: Ue,
    scale: R,
    track: _,
    valueLabelDisplay: A,
    valueLabelFormat: P
  }), {
    axisProps: j,
    getRootProps: qe,
    getHiddenInputProps: Be,
    getThumbProps: Ge,
    open: Je,
    active: he,
    axis: M,
    focusedThumbIndex: ge,
    range: ke,
    dragging: Ke,
    marks: I,
    values: d,
    trackOffset: Qe,
    trackLeap: Ze,
    getThumbStyle: et
  } = dt(o({}, u, {
    rootRef: a
  }));
  u.marked = I.length > 0 && I.some((l) => l.label), u.dragging = Ke, u.focusedThumbIndex = ge;
  const c = wt(u), F = (p = (w = i == null ? void 0 : i.root) != null ? w : f.Root) != null ? p : gt, Se = (L = ($ = i == null ? void 0 : i.rail) != null ? $ : f.Rail) != null ? L : kt, xe = (g = (k = i == null ? void 0 : i.track) != null ? k : f.Track) != null ? g : St, Te = (O = (Q = i == null ? void 0 : i.thumb) != null ? Q : f.Thumb) != null ? O : xt, Le = (Z = (ee = i == null ? void 0 : i.valueLabel) != null ? ee : f.ValueLabel) != null ? Z : Tt, Y = (te = (ae = i == null ? void 0 : i.mark) != null ? ae : f.Mark) != null ? te : Lt, D = (re = (oe = i == null ? void 0 : i.markLabel) != null ? oe : f.MarkLabel) != null ? re : Pt, Pe = (le = (ne = i == null ? void 0 : i.input) != null ? ne : f.Input) != null ? le : "input", E = (se = s == null ? void 0 : s.root) != null ? se : v.root, tt = (ie = s == null ? void 0 : s.rail) != null ? ie : v.rail, U = (pe = s == null ? void 0 : s.track) != null ? pe : v.track, H = (ue = s == null ? void 0 : s.thumb) != null ? ue : v.thumb, W = (ce = s == null ? void 0 : s.valueLabel) != null ? ce : v.valueLabel, at = (de = s == null ? void 0 : s.mark) != null ? de : v.mark, rt = (me = s == null ? void 0 : s.markLabel) != null ? me : v.markLabel, ot = (be = s == null ? void 0 : s.input) != null ? be : v.input, lt = y({
    elementType: F,
    getSlotProps: qe,
    externalSlotProps: E,
    externalForwardedProps: Xe,
    additionalProps: o({}, mt(F) && {
      as: Ne
    }),
    ownerState: o({}, u, E == null ? void 0 : E.ownerState),
    className: [c.root, Fe]
  }), nt = y({
    elementType: Se,
    externalSlotProps: tt,
    ownerState: u,
    className: c.rail
  }), st = y({
    elementType: xe,
    externalSlotProps: U,
    additionalProps: {
      style: o({}, j[M].offset(Qe), j[M].leap(Ze))
    },
    ownerState: o({}, u, U == null ? void 0 : U.ownerState),
    className: c.track
  }), X = y({
    elementType: Te,
    getSlotProps: Ge,
    externalSlotProps: H,
    ownerState: o({}, u, H == null ? void 0 : H.ownerState),
    className: c.thumb
  }), it = y({
    elementType: Le,
    externalSlotProps: W,
    ownerState: o({}, u, W == null ? void 0 : W.ownerState),
    className: c.valueLabel
  }), q = y({
    elementType: Y,
    externalSlotProps: at,
    ownerState: u,
    className: c.mark
  }), B = y({
    elementType: D,
    externalSlotProps: rt,
    ownerState: u,
    className: c.markLabel
  }), pt = y({
    elementType: Pe,
    getSlotProps: Be,
    externalSlotProps: ot,
    ownerState: u
  });
  return /* @__PURE__ */ Oe(F, o({}, lt, {
    children: [/* @__PURE__ */ S(Se, o({}, nt)), /* @__PURE__ */ S(xe, o({}, st)), I.filter((l) => l.value >= z && l.value <= C).map((l, n) => {
      const G = $e(l.value, z, C), N = j[M].offset(G);
      let m;
      return _ === !1 ? m = d.indexOf(l.value) !== -1 : m = _ === "normal" && (ke ? l.value >= d[0] && l.value <= d[d.length - 1] : l.value <= d[0]) || _ === "inverted" && (ke ? l.value <= d[0] || l.value >= d[d.length - 1] : l.value >= d[0]), /* @__PURE__ */ Oe(we.Fragment, {
        children: [/* @__PURE__ */ S(Y, o({
          "data-index": n
        }, q, !K(Y) && {
          markActive: m
        }, {
          style: o({}, N, q.style),
          className: J(q.className, m && c.markActive)
        })), l.label != null ? /* @__PURE__ */ S(D, o({
          "aria-hidden": !0,
          "data-index": n
        }, B, !K(D) && {
          markLabelActive: m
        }, {
          style: o({}, N, B.style),
          className: J(c.markLabel, B.className, m && c.markLabelActive),
          children: l.label
        })) : null]
      }, n);
    }), d.map((l, n) => {
      const G = $e(l, z, C), N = j[M].offset(G), m = A === "off" ? $t : Le;
      return (
        /* TODO v6: Change component structure. It will help in avoiding the complicated React.cloneElement API added in SliderValueLabel component. Should be: Thumb -> Input, ValueLabel. Follow Joy UI's Slider structure. */
        /* @__PURE__ */ S(m, o({}, !K(m) && {
          valueLabelFormat: P,
          valueLabelDisplay: A,
          value: typeof P == "function" ? P(R(l), n) : P,
          index: n,
          open: Je === n || he === n || A === "on",
          disabled: fe
        }, it, {
          children: /* @__PURE__ */ S(Te, o({
            "data-index": n
          }, X, {
            className: J(c.thumb, X.className, he === n && c.active, ge === n && c.focusVisible),
            style: o({}, N, et(n), X.style),
            children: /* @__PURE__ */ S(Pe, o({
              "data-index": n,
              "aria-label": ve ? ve(n) : Ae,
              "aria-valuenow": R(l),
              "aria-labelledby": Me,
              "aria-valuetext": ye ? ye(R(l), n) : je,
              value: d[n]
            }, pt))
          }))
        }), n)
      );
    })]
  }));
});
process.env.NODE_ENV !== "production" && (Ot.propTypes = {
  // ┌────────────────────────────── Warning ──────────────────────────────┐
  // │ These PropTypes are generated from the TypeScript type definitions. │
  // │    To update them, edit the d.ts file and run `pnpm proptypes`.     │
  // └─────────────────────────────────────────────────────────────────────┘
  /**
   * The label of the slider.
   */
  "aria-label": Ce(e.string, (t) => Array.isArray(t.value || t.defaultValue) && t["aria-label"] != null ? new Error("MUI: You need to use the `getAriaLabel` prop instead of `aria-label` when using a range slider.") : null),
  /**
   * The id of the element containing a label for the slider.
   */
  "aria-labelledby": e.string,
  /**
   * A string value that provides a user-friendly name for the current value of the slider.
   */
  "aria-valuetext": Ce(e.string, (t) => Array.isArray(t.value || t.defaultValue) && t["aria-valuetext"] != null ? new Error("MUI: You need to use the `getAriaValueText` prop instead of `aria-valuetext` when using a range slider.") : null),
  /**
   * @ignore
   */
  children: e.node,
  /**
   * Override or extend the styles applied to the component.
   */
  classes: e.object,
  /**
   * @ignore
   */
  className: e.string,
  /**
   * The color of the component.
   * It supports both default and custom theme colors, which can be added as shown in the
   * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
   * @default 'primary'
   */
  color: e.oneOfType([e.oneOf(["primary", "secondary", "error", "info", "success", "warning"]), e.string]),
  /**
   * The components used for each slot inside.
   *
   * @deprecated use the `slots` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
   *
   * @default {}
   */
  components: e.shape({
    Input: e.elementType,
    Mark: e.elementType,
    MarkLabel: e.elementType,
    Rail: e.elementType,
    Root: e.elementType,
    Thumb: e.elementType,
    Track: e.elementType,
    ValueLabel: e.elementType
  }),
  /**
   * The extra props for the slot components.
   * You can override the existing props or add new ones.
   *
   * @deprecated use the `slotProps` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
   *
   * @default {}
   */
  componentsProps: e.shape({
    input: e.oneOfType([e.func, e.object]),
    mark: e.oneOfType([e.func, e.object]),
    markLabel: e.oneOfType([e.func, e.object]),
    rail: e.oneOfType([e.func, e.object]),
    root: e.oneOfType([e.func, e.object]),
    thumb: e.oneOfType([e.func, e.object]),
    track: e.oneOfType([e.func, e.object]),
    valueLabel: e.oneOfType([e.func, e.shape({
      children: e.element,
      className: e.string,
      open: e.bool,
      style: e.object,
      value: e.number,
      valueLabelDisplay: e.oneOf(["auto", "off", "on"])
    })])
  }),
  /**
   * The default value. Use when the component is not controlled.
   */
  defaultValue: e.oneOfType([e.arrayOf(e.number), e.number]),
  /**
   * If `true`, the component is disabled.
   * @default false
   */
  disabled: e.bool,
  /**
   * If `true`, the active thumb doesn't swap when moving pointer over a thumb while dragging another thumb.
   * @default false
   */
  disableSwap: e.bool,
  /**
   * Accepts a function which returns a string value that provides a user-friendly name for the thumb labels of the slider.
   * This is important for screen reader users.
   * @param {number} index The thumb label's index to format.
   * @returns {string}
   */
  getAriaLabel: e.func,
  /**
   * Accepts a function which returns a string value that provides a user-friendly name for the current value of the slider.
   * This is important for screen reader users.
   * @param {number} value The thumb label's value to format.
   * @param {number} index The thumb label's index to format.
   * @returns {string}
   */
  getAriaValueText: e.func,
  /**
   * Marks indicate predetermined values to which the user can move the slider.
   * If `true` the marks are spaced according the value of the `step` prop.
   * If an array, it should contain objects with `value` and an optional `label` keys.
   * @default false
   */
  marks: e.oneOfType([e.arrayOf(e.shape({
    label: e.node,
    value: e.number.isRequired
  })), e.bool]),
  /**
   * The maximum allowed value of the slider.
   * Should not be equal to min.
   * @default 100
   */
  max: e.number,
  /**
   * The minimum allowed value of the slider.
   * Should not be equal to max.
   * @default 0
   */
  min: e.number,
  /**
   * Name attribute of the hidden `input` element.
   */
  name: e.string,
  /**
   * Callback function that is fired when the slider's value changed.
   *
   * @param {Event} event The event source of the callback.
   * You can pull out the new value by accessing `event.target.value` (any).
   * **Warning**: This is a generic event not a change event.
   * @param {number | number[]} value The new value.
   * @param {number} activeThumb Index of the currently moved thumb.
   */
  onChange: e.func,
  /**
   * Callback function that is fired when the `mouseup` is triggered.
   *
   * @param {React.SyntheticEvent | Event} event The event source of the callback. **Warning**: This is a generic event not a change event.
   * @param {number | number[]} value The new value.
   */
  onChangeCommitted: e.func,
  /**
   * The component orientation.
   * @default 'horizontal'
   */
  orientation: e.oneOf(["horizontal", "vertical"]),
  /**
   * A transformation function, to change the scale of the slider.
   * @param {any} x
   * @returns {any}
   * @default function Identity(x) {
   *   return x;
   * }
   */
  scale: e.func,
  /**
   * The granularity with which the slider can step through values when using Page Up/Page Down or Shift + Arrow Up/Arrow Down.
   * @default 10
   */
  shiftStep: e.number,
  /**
   * The size of the slider.
   * @default 'medium'
   */
  size: e.oneOfType([e.oneOf(["small", "medium"]), e.string]),
  /**
   * The props used for each slot inside the Slider.
   * @default {}
   */
  slotProps: e.shape({
    input: e.oneOfType([e.func, e.object]),
    mark: e.oneOfType([e.func, e.object]),
    markLabel: e.oneOfType([e.func, e.object]),
    rail: e.oneOfType([e.func, e.object]),
    root: e.oneOfType([e.func, e.object]),
    thumb: e.oneOfType([e.func, e.object]),
    track: e.oneOfType([e.func, e.object]),
    valueLabel: e.oneOfType([e.func, e.shape({
      children: e.element,
      className: e.string,
      open: e.bool,
      style: e.object,
      value: e.number,
      valueLabelDisplay: e.oneOf(["auto", "off", "on"])
    })])
  }),
  /**
   * The components used for each slot inside the Slider.
   * Either a string to use a HTML element or a component.
   * @default {}
   */
  slots: e.shape({
    input: e.elementType,
    mark: e.elementType,
    markLabel: e.elementType,
    rail: e.elementType,
    root: e.elementType,
    thumb: e.elementType,
    track: e.elementType,
    valueLabel: e.elementType
  }),
  /**
   * The granularity with which the slider can step through values. (A "discrete" slider.)
   * The `min` prop serves as the origin for the valid values.
   * We recommend (max - min) to be evenly divisible by the step.
   *
   * When step is `null`, the thumb can only be slid onto marks provided with the `marks` prop.
   * @default 1
   */
  step: e.number,
  /**
   * The system prop that allows defining system overrides as well as additional CSS styles.
   */
  sx: e.oneOfType([e.arrayOf(e.oneOfType([e.func, e.object, e.bool])), e.func, e.object]),
  /**
   * Tab index attribute of the hidden `input` element.
   */
  tabIndex: e.number,
  /**
   * The track presentation:
   *
   * - `normal` the track will render a bar representing the slider value.
   * - `inverted` the track will render a bar representing the remaining slider value.
   * - `false` the track will render without a bar.
   * @default 'normal'
   */
  track: e.oneOf(["inverted", "normal", !1]),
  /**
   * The value of the slider.
   * For ranged sliders, provide an array with two values.
   */
  value: e.oneOfType([e.arrayOf(e.number), e.number]),
  /**
   * Controls when the value label is displayed:
   *
   * - `auto` the value label will display when the thumb is hovered or focused.
   * - `on` will display persistently.
   * - `off` will never display.
   * @default 'off'
   */
  valueLabelDisplay: e.oneOf(["auto", "off", "on"]),
  /**
   * The format function the value label's value.
   *
   * When a function is provided, it should have the following signature:
   *
   * - {number} value The value label's value to format
   * - {number} index The value label's index to format
   * @param {any} x
   * @returns {any}
   * @default function Identity(x) {
   *   return x;
   * }
   */
  valueLabelFormat: e.oneOfType([e.func, e.string])
});
export {
  Lt as SliderMark,
  Pt as SliderMarkLabel,
  kt as SliderRail,
  gt as SliderRoot,
  xt as SliderThumb,
  St as SliderTrack,
  Tt as SliderValueLabel,
  Ot as default
};
