@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
57 lines (56 loc) • 2.14 kB
JavaScript
"use client";
require("../../../_virtual/_rolldown/runtime.cjs");
const require_Box = require("../../../core/Box/Box.cjs");
const require_Transition = require("../../Transition/Transition.cjs");
const require_Slider_context = require("../Slider.context.cjs");
let react = require("react");
let react_jsx_runtime = require("react/jsx-runtime");
//#region packages/@mantine/core/src/components/Slider/Thumb/Thumb.tsx
function Thumb({ max, min, value, position, label, dragging, onMouseDown, onKeyDownCapture, labelTransitionProps, labelAlwaysOn, thumbLabel, onFocus, onBlur, showLabelOnHover, isHovered, children = null, disabled, orientation = "horizontal", ref }) {
const { getStyles } = require_Slider_context.useSliderContext();
const [focused, setFocused] = (0, react.useState)(false);
const isVisible = labelAlwaysOn || dragging || focused || showLabelOnHover && isHovered;
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Box.Box, {
tabIndex: disabled ? -1 : 0,
role: "slider",
"aria-label": thumbLabel,
"aria-valuemax": max,
"aria-valuemin": min,
"aria-valuenow": value,
"aria-disabled": disabled,
"aria-orientation": orientation,
ref,
__vars: { "--slider-thumb-offset": `${position}%` },
...getStyles("thumb", { focusable: true }),
mod: {
dragging,
disabled
},
onFocus: (event) => {
setFocused(true);
typeof onFocus === "function" && onFocus(event);
},
onBlur: (event) => {
setFocused(false);
typeof onBlur === "function" && onBlur(event);
},
onTouchStart: onMouseDown,
onMouseDown,
onKeyDownCapture,
onClick: (event) => event.stopPropagation(),
children: [children, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Transition.Transition, {
mounted: label != null && !!isVisible,
transition: "fade",
duration: 0,
...labelTransitionProps,
children: (transitionStyles) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
...getStyles("label", { style: transitionStyles }),
children: label
})
})]
});
}
Thumb.displayName = "@mantine/core/SliderThumb";
//#endregion
exports.Thumb = Thumb;
//# sourceMappingURL=Thumb.cjs.map