@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
97 lines (90 loc) • 3.42 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var React = require('react');
var cx = require('clsx');
var Transition = require('../../Transition/Transition.js');
var Thumb_styles = require('./Thumb.styles.js');
var useMantineTheme = require('../../../theme/use-mantine-theme/use-mantine-theme.js');
var mergeStyles = require('../../../theme/utils/merge-styles/merge-styles.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
function Thumb({
max,
min,
value,
position,
label,
elementRef,
dragging,
onMouseDown,
color,
themeOverride,
classNames,
styles,
size,
labelTransition,
labelTransitionDuration,
labelTransitionTimingFunction,
labelAlwaysOn,
thumbLabel,
onFocus,
onBlur
}) {
const theme = useMantineTheme.useMantineTheme(themeOverride);
const classes = Thumb_styles['default']({ color, theme, size }, classNames, "slider");
const _styles = mergeStyles.mergeStyles(classes, styles);
const [focused, setFocused] = React.useState(false);
return /* @__PURE__ */ React__default.createElement("div", {
tabIndex: 0,
role: "slider",
"aria-label": thumbLabel,
"aria-valuemax": max,
"aria-valuemin": min,
"aria-valuenow": value,
ref: elementRef,
className: cx__default(classes.thumb, { [classes.dragging]: dragging }),
onFocus: () => {
setFocused(true);
typeof onFocus === "function" && onFocus();
},
onBlur: () => {
setFocused(false);
typeof onBlur === "function" && onBlur();
},
onTouchStart: onMouseDown,
onMouseDown,
onClick: (event) => event.stopPropagation(),
style: __spreadProps(__spreadValues(__spreadValues({}, _styles.thumb), dragging ? _styles.dragging : null), { left: `${position}%` })
}, /* @__PURE__ */ React__default.createElement(Transition.Transition, {
mounted: label != null && (labelAlwaysOn || dragging || focused),
duration: labelTransitionDuration,
transition: labelTransition,
timingFunction: labelTransitionTimingFunction || theme.transitionTimingFunction
}, (transitionStyles) => /* @__PURE__ */ React__default.createElement("div", {
style: __spreadValues(__spreadValues({}, _styles.label), transitionStyles),
className: classes.label
}, label)));
}
Thumb.displayName = "@mantine/core/SliderThumb";
exports.Thumb = Thumb;
//# sourceMappingURL=Thumb.js.map