UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

92 lines (91 loc) 3.92 kB
"use client"; require("../../_virtual/_rolldown/runtime.cjs"); const require_rem = require("../../core/utils/units-converters/rem.cjs"); const require_create_vars_resolver = require("../../core/styles-api/create-vars-resolver/create-vars-resolver.cjs"); const require_get_theme_color = require("../../core/MantineProvider/color-functions/get-theme-color/get-theme-color.cjs"); const require_use_props = require("../../core/MantineProvider/use-props/use-props.cjs"); const require_use_styles = require("../../core/styles-api/use-styles/use-styles.cjs"); const require_factory = require("../../core/factory/factory.cjs"); const require_Box = require("../../core/Box/Box.cjs"); const require_UnstyledButton = require("../UnstyledButton/UnstyledButton.cjs"); const require_AccordionChevron = require("../Accordion/AccordionChevron.cjs"); const require_Scroller_module = require("./Scroller.module.cjs"); let _mantine_hooks = require("@mantine/hooks"); let react_jsx_runtime = require("react/jsx-runtime"); //#region packages/@mantine/core/src/components/Scroller/Scroller.tsx const defaultProps = { scrollAmount: 200, draggable: true }; const varsResolver = require_create_vars_resolver.createVarsResolver((theme, { controlSize, edgeGradientColor }) => ({ root: { "--scroller-control-size": require_rem.rem(controlSize), "--scroller-background-color": edgeGradientColor ? require_get_theme_color.getThemeColor(edgeGradientColor, theme) : void 0 } })); const Scroller = require_factory.factory((_props) => { const props = require_use_props.useProps("Scroller", defaultProps, _props); const { classNames, className, style, styles, unstyled, vars, children, scrollAmount, controlSize, edgeGradientColor, startControlProps, endControlProps, startControlIcon, endControlIcon, showStartControl, showEndControl, draggable, mod, ref, attributes, ...others } = props; const getStyles = require_use_styles.useStyles({ name: "Scroller", classes: require_Scroller_module.default, props, className, style, classNames, styles, unstyled, vars, varsResolver, attributes }); const scroller = (0, _mantine_hooks.useScroller)({ scrollAmount, draggable }); const showStart = showStartControl || scroller.canScrollStart; const showEnd = showEndControl || scroller.canScrollEnd; return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Box.Box, { ...getStyles("root"), ref, mod, ...others, children: [ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_UnstyledButton.UnstyledButton, { ...getStyles("control"), onClick: scroller.scrollStart, "data-position": "start", "data-hidden": !showStart || void 0, "aria-label": "Scroll left", tabIndex: showStart ? 0 : -1, ...startControlProps, children: startControlIcon || /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_AccordionChevron.AccordionChevron, { ...getStyles("chevron") }) }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { ...getStyles("container"), ref: scroller.ref, role: "presentation", "data-draggable": draggable || void 0, ...scroller.dragHandlers, children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { ...getStyles("content"), children }) }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_UnstyledButton.UnstyledButton, { ...getStyles("control"), onClick: scroller.scrollEnd, "data-position": "end", "data-hidden": !showEnd || void 0, "aria-label": "Scroll right", tabIndex: showEnd ? 0 : -1, ...endControlProps, children: endControlIcon || /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_AccordionChevron.AccordionChevron, { ...getStyles("chevron") }) }) ] }); }); Scroller.classes = require_Scroller_module.default; Scroller.varsResolver = varsResolver; Scroller.displayName = "@mantine/core/Scroller"; //#endregion exports.Scroller = Scroller; //# sourceMappingURL=Scroller.cjs.map