UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

86 lines (85 loc) 3.13 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_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_Curve = require("./Curve/Curve.cjs"); const require_get_curves = require("./get-curves/get-curves.cjs"); const require_RingProgress_module = require("./RingProgress.module.cjs"); let react = require("react"); let react_jsx_runtime = require("react/jsx-runtime"); //#region packages/@mantine/core/src/components/RingProgress/RingProgress.tsx function getClampedThickness(thickness, size) { return Math.min(thickness || 12, (size || 120) / 4); } const defaultProps = { size: 120, thickness: 12, startAngle: 270 }; const varsResolver = require_create_vars_resolver.createVarsResolver((_, { size, thickness, transitionDuration, startAngle }) => ({ root: { "--rp-size": require_rem.rem(size), "--rp-label-offset": require_rem.rem(thickness * 2), "--rp-transition-duration": transitionDuration ? `${transitionDuration}ms` : void 0 }, svg: { "--rp-start-angle": `${startAngle}deg` } })); const RingProgress = require_factory.factory((_props) => { const props = require_use_props.useProps("RingProgress", defaultProps, _props); const { classNames, className, style, styles, unstyled, vars, label, sections, size, thickness, roundCaps, rootColor, transitionDuration, sectionGap, startAngle, attributes, ...others } = props; const getStyles = require_use_styles.useStyles({ name: "RingProgress", classes: require_RingProgress_module.default, props, className, style, classNames, styles, unstyled, attributes, vars, varsResolver }); const clampedThickness = getClampedThickness(thickness, size); const curves = require_get_curves.getCurves({ size, thickness: clampedThickness, sections, renderRoundedLineCaps: roundCaps, rootColor, sectionGap }).map(({ data, sum, root, lineRoundCaps, offset }, index) => /* @__PURE__ */ (0, react.createElement)(require_Curve.Curve, { ...data, key: index, size, thickness: clampedThickness, sum, offset, color: data?.color, root, lineRoundCaps, getStyles })); return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Box.Box, { ...getStyles("root"), size, ...others, children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", { ...getStyles("svg"), children: curves }), label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { ...getStyles("label"), children: label })] }); }); RingProgress.classes = require_RingProgress_module.default; RingProgress.varsResolver = varsResolver; RingProgress.displayName = "@mantine/core/RingProgress"; //#endregion exports.RingProgress = RingProgress; //# sourceMappingURL=RingProgress.cjs.map