"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/components/number-input.ts var number_input_exports = {}; __export(number_input_exports, { numberInputTheme: () => numberInputTheme }); module.exports = __toCommonJS(number_input_exports); var import_anatomy2 = require("@chakra-ui/anatomy"); var import_styled_system2 = require("@chakra-ui/styled-system"); var import_theme_tools2 = require("@chakra-ui/theme-tools"); // src/foundations/typography.ts var typography = { letterSpacings: { tighter: "-0.05em", tight: "-0.025em", normal: "0", wide: "0.025em", wider: "0.05em", widest: "0.1em" }, lineHeights: { normal: "normal", none: 1, shorter: 1.25, short: 1.375, base: 1.5, tall: 1.625, taller: "2", "3": ".75rem", "4": "1rem", "5": "1.25rem", "6": "1.5rem", "7": "1.75rem", "8": "2rem", "9": "2.25rem", "10": "2.5rem" }, fontWeights: { hairline: 100, thin: 200, light: 300, normal: 400, medium: 500, semibold: 600, bold: 700, extrabold: 800, black: 900 }, fonts: { heading: `-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"`, body: `-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"`, mono: `SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace` }, fontSizes: { "3xs": "0.45rem", "2xs": "0.625rem", xs: "0.75rem", sm: "0.875rem", md: "1rem", lg: "1.125rem", xl: "1.25rem", "2xl": "1.5rem", "3xl": "1.875rem", "4xl": "2.25rem", "5xl": "3rem", "6xl": "3.75rem", "7xl": "4.5rem", "8xl": "6rem", "9xl": "8rem" } }; var typography_default = typography; // src/components/input.ts var import_anatomy = require("@chakra-ui/anatomy"); var import_styled_system = require("@chakra-ui/styled-system"); var import_theme_tools = require("@chakra-ui/theme-tools"); var { definePartsStyle, defineMultiStyleConfig } = (0, import_styled_system.createMultiStyleConfigHelpers)(import_anatomy.inputAnatomy.keys); var $height = (0, import_styled_system.cssVar)("input-height"); var $fontSize = (0, import_styled_system.cssVar)("input-font-size"); var $padding = (0, import_styled_system.cssVar)("input-padding"); var $borderRadius = (0, import_styled_system.cssVar)("input-border-radius"); var baseStyle = definePartsStyle({ addon: { height: $height.reference, fontSize: $fontSize.reference, px: $padding.reference, borderRadius: $borderRadius.reference }, field: { width: "100%", height: $height.reference, fontSize: $fontSize.reference, px: $padding.reference, borderRadius: $borderRadius.reference, minWidth: 0, outline: 0, position: "relative", appearance: "none", transitionProperty: "common", transitionDuration: "normal", _disabled: { opacity: 0.4, cursor: "not-allowed" } } }); var size = { lg: (0, import_styled_system.defineStyle)({ [$fontSize.variable]: "fontSizes.lg", [$padding.variable]: "space.4", [$borderRadius.variable]: "radii.md", [$height.variable]: "sizes.12" }), md: (0, import_styled_system.defineStyle)({ [$fontSize.variable]: "fontSizes.md", [$padding.variable]: "space.4", [$borderRadius.variable]: "radii.md", [$height.variable]: "sizes.10" }), sm: (0, import_styled_system.defineStyle)({ [$fontSize.variable]: "fontSizes.sm", [$padding.variable]: "space.3", [$borderRadius.variable]: "radii.sm", [$height.variable]: "sizes.8" }), xs: (0, import_styled_system.defineStyle)({ [$fontSize.variable]: "fontSizes.xs", [$padding.variable]: "space.2", [$borderRadius.variable]: "radii.sm", [$height.variable]: "sizes.6" }) }; var sizes = { lg: definePartsStyle({ field: size.lg, group: size.lg }), md: definePartsStyle({ field: size.md, group: size.md }), sm: definePartsStyle({ field: size.sm, group: size.sm }), xs: definePartsStyle({ field: size.xs, group: size.xs }) }; function getDefaults(props) { const { focusBorderColor: fc, errorBorderColor: ec } = props; return { focusBorderColor: fc || (0, import_theme_tools.mode)("blue.500", "blue.300")(props), errorBorderColor: ec || (0, import_theme_tools.mode)("red.500", "red.300")(props) }; } var variantOutline = definePartsStyle((props) => { const { theme } = props; const { focusBorderColor: fc, errorBorderColor: ec } = getDefaults(props); return { field: { border: "1px solid", borderColor: "inherit", bg: "inherit", _hover: { borderColor: (0, import_theme_tools.mode)("gray.300", "whiteAlpha.400")(props) }, _readOnly: { boxShadow: "none !important", userSelect: "all" }, _invalid: { borderColor: (0, import_theme_tools.getColor)(theme, ec), boxShadow: `0 0 0 1px ${(0, import_theme_tools.getColor)(theme, ec)}` }, _focusVisible: { zIndex: 1, borderColor: (0, import_theme_tools.getColor)(theme, fc), boxShadow: `0 0 0 1px ${(0, import_theme_tools.getColor)(theme, fc)}` } }, addon: { border: "1px solid", borderColor: (0, import_theme_tools.mode)("inherit", "whiteAlpha.50")(props), bg: (0, import_theme_tools.mode)("gray.100", "whiteAlpha.300")(props) } }; }); var variantFilled = definePartsStyle((props) => { const { theme } = props; const { focusBorderColor: fc, errorBorderColor: ec } = getDefaults(props); return { field: { border: "2px solid", borderColor: "transparent", bg: (0, import_theme_tools.mode)("gray.100", "whiteAlpha.50")(props), _hover: { bg: (0, import_theme_tools.mode)("gray.200", "whiteAlpha.100")(props) }, _readOnly: { boxShadow: "none !important", userSelect: "all" }, _invalid: { borderColor: (0, import_theme_tools.getColor)(theme, ec) }, _focusVisible: { bg: "transparent", borderColor: (0, import_theme_tools.getColor)(theme, fc) } }, addon: { border: "2px solid", borderColor: "transparent", bg: (0, import_theme_tools.mode)("gray.100", "whiteAlpha.50")(props) } }; }); var variantFlushed = definePartsStyle((props) => { const { theme } = props; const { focusBorderColor: fc, errorBorderColor: ec } = getDefaults(props); return { field: { borderBottom: "1px solid", borderColor: "inherit", borderRadius: "0", px: "0", bg: "transparent", _readOnly: { boxShadow: "none !important", userSelect: "all" }, _invalid: { borderColor: (0, import_theme_tools.getColor)(theme, ec), boxShadow: `0px 1px 0px 0px ${(0, import_theme_tools.getColor)(theme, ec)}` }, _focusVisible: { borderColor: (0, import_theme_tools.getColor)(theme, fc), boxShadow: `0px 1px 0px 0px ${(0, import_theme_tools.getColor)(theme, fc)}` } }, addon: { borderBottom: "2px solid", borderColor: "inherit", borderRadius: "0", px: "0", bg: "transparent" } }; }); var variantUnstyled = definePartsStyle({ field: { bg: "transparent", px: "0", height: "auto" }, addon: { bg: "transparent", px: "0", height: "auto" } }); var variants = { outline: variantOutline, filled: variantFilled, flushed: variantFlushed, unstyled: variantUnstyled }; var inputTheme = defineMultiStyleConfig({ baseStyle, sizes, variants, defaultProps: { size: "md", variant: "outline" } }); // src/utils/run-if-fn.ts var isFunction = (value) => typeof value === "function"; function runIfFn(valueOrFn, ...args) { return isFunction(valueOrFn) ? valueOrFn(...args) : valueOrFn; } // src/components/number-input.ts var { defineMultiStyleConfig: defineMultiStyleConfig2, definePartsStyle: definePartsStyle2 } = (0, import_styled_system2.createMultiStyleConfigHelpers)(import_anatomy2.numberInputAnatomy.keys); var $stepperWidth = (0, import_theme_tools2.cssVar)("number-input-stepper-width"); var $inputPadding = (0, import_theme_tools2.cssVar)("number-input-input-padding"); var inputPaddingValue = (0, import_theme_tools2.calc)($stepperWidth).add("0.5rem").toString(); var $bg = (0, import_theme_tools2.cssVar)("number-input-bg"); var $fg = (0, import_theme_tools2.cssVar)("number-input-color"); var $border = (0, import_theme_tools2.cssVar)("number-input-border-color"); var baseStyleRoot = (0, import_styled_system2.defineStyle)({ [$stepperWidth.variable]: "sizes.6", [$inputPadding.variable]: inputPaddingValue }); var baseStyleField = (0, import_styled_system2.defineStyle)( (props) => { var _a, _b; return (_b = (_a = runIfFn(inputTheme.baseStyle, props)) == null ? void 0 : _a.field) != null ? _b : {}; } ); var baseStyleStepperGroup = (0, import_styled_system2.defineStyle)({ width: $stepperWidth.reference }); var baseStyleStepper = (0, import_styled_system2.defineStyle)({ borderStart: "1px solid", borderStartColor: $border.reference, color: $fg.reference, bg: $bg.reference, [$fg.variable]: "colors.chakra-body-text", [$border.variable]: "colors.chakra-border-color", _dark: { [$fg.variable]: "colors.whiteAlpha.800", [$border.variable]: "colors.whiteAlpha.300" }, _active: { [$bg.variable]: "colors.gray.200", _dark: { [$bg.variable]: "colors.whiteAlpha.300" } }, _disabled: { opacity: 0.4, cursor: "not-allowed" } }); var baseStyle2 = definePartsStyle2((props) => { var _a; return { root: baseStyleRoot, field: (_a = runIfFn(baseStyleField, props)) != null ? _a : {}, stepperGroup: baseStyleStepperGroup, stepper: baseStyleStepper }; }); function getSize(size2) { var _a, _b, _c; const sizeStyle = (_a = inputTheme.sizes) == null ? void 0 : _a[size2]; const radius = { lg: "md", md: "md", sm: "sm", xs: "sm" }; const _fontSize = (_c = (_b = sizeStyle.field) == null ? void 0 : _b.fontSize) != null ? _c : "md"; const fontSize = typography_default.fontSizes[_fontSize]; return definePartsStyle2({ field: { ...sizeStyle.field, paddingInlineEnd: $inputPadding.reference, verticalAlign: "top" }, stepper: { fontSize: (0, import_theme_tools2.calc)(fontSize).multiply(0.75).toString(), _first: { borderTopEndRadius: radius[size2] }, _last: { borderBottomEndRadius: radius[size2], mt: "-1px", borderTopWidth: 1 } } }); } var sizes2 = { xs: getSize("xs"), sm: getSize("sm"), md: getSize("md"), lg: getSize("lg") }; var numberInputTheme = defineMultiStyleConfig2({ baseStyle: baseStyle2, sizes: sizes2, variants: inputTheme.variants, defaultProps: inputTheme.defaultProps }); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { numberInputTheme }); //# sourceMappingURL=number-input.js.map