{"version":3,"file":"InputNumber.mjs","names":[],"sources":["../../../src/base-ui/Input/InputNumber.tsx"],"sourcesContent":["'use client';\n\nimport { NumberField } from '@base-ui/react/number-field';\nimport { cx, useThemeMode } from 'antd-style';\nimport { ChevronDown, ChevronUp } from 'lucide-react';\nimport { memo } from 'react';\n\nimport Icon from '@/Icon';\n\nimport { isPressEnter } from './pressEnter';\nimport { rootVariants, styles } from './style';\nimport type { InputNumberProps } from './type';\n\nconst controlIconSize = { large: 13, middle: 12, small: 10 } as const;\n\nconst InputNumber = memo<InputNumberProps>(\n  ({\n    ref,\n    className,\n    classNames,\n    styles: customStyles,\n    style,\n    variant,\n    shadow,\n    size = 'middle',\n    controls = true,\n    changeOnWheel,\n    onChange,\n    placeholder,\n    format,\n    precision,\n    prefix,\n    suffix,\n    onPressEnter,\n    ...rest\n  }) => {\n    const { isDarkMode } = useThemeMode();\n    const mergedVariant = variant || (isDarkMode ? 'filled' : 'outlined');\n    const controlClassName = cx(\n      styles.numberControl,\n      size === 'small' && styles.numberControlSmall,\n      size === 'large' && styles.numberControlLarge,\n    );\n    const mergedFormat =\n      precision === undefined\n        ? format\n        : { ...format, maximumFractionDigits: precision, minimumFractionDigits: precision };\n\n    return (\n      <NumberField.Root\n        allowWheelScrub={changeOnWheel}\n        className={cx(rootVariants({ shadow, size, variant: mergedVariant }), className)}\n        format={mergedFormat}\n        style={style}\n        onValueChange={onChange}\n        {...rest}\n      >\n        {prefix && <span className={styles.slot}>{prefix}</span>}\n        <NumberField.Input\n          className={cx(styles.input, styles.numberInput, classNames?.input)}\n          placeholder={placeholder}\n          ref={ref}\n          style={customStyles?.input}\n          onKeyDown={(event) => {\n            if (isPressEnter(event)) onPressEnter?.(event);\n          }}\n        />\n        {suffix && <span className={styles.slot}>{suffix}</span>}\n        {controls && (\n          <div\n            className={cx(styles.numberControls, size === 'small' && styles.numberControlsSmall)}\n          >\n            <NumberField.Increment className={controlClassName}>\n              <Icon icon={ChevronUp} size={controlIconSize[size]} />\n            </NumberField.Increment>\n            <NumberField.Decrement className={controlClassName}>\n              <Icon icon={ChevronDown} size={controlIconSize[size]} />\n            </NumberField.Decrement>\n          </div>\n        )}\n      </NumberField.Root>\n    );\n  },\n);\n\nInputNumber.displayName = 'InputNumber';\n\nexport default Object.assign(InputNumber, { formBinding: { emptyValue: null } as const });\n"],"mappings":";;;;;;;;;;AAaA,MAAM,kBAAkB;CAAE,OAAO;CAAI,QAAQ;CAAI,OAAO;AAAG;AAE3D,MAAM,cAAc,MACjB,EACC,KACA,WACA,YACA,QAAQ,cACR,OACA,SACA,QACA,OAAO,UACP,WAAW,MACX,eACA,UACA,aACA,QACA,WACA,QACA,QACA,cACA,GAAG,WACC;CACJ,MAAM,EAAE,eAAe,aAAa;CACpC,MAAM,gBAAgB,YAAY,aAAa,WAAW;CAC1D,MAAM,mBAAmB,GACvB,OAAO,eACP,SAAS,WAAW,OAAO,oBAC3B,SAAS,WAAW,OAAO,kBAC7B;CACA,MAAM,eACJ,cAAc,KAAA,IACV,SACA;EAAE,GAAG;EAAQ,uBAAuB;EAAW,uBAAuB;CAAU;CAEtF,OACE,qBAAC,YAAY,MAAb;EACE,iBAAiB;EACjB,WAAW,GAAG,aAAa;GAAE;GAAQ;GAAM,SAAS;EAAc,CAAC,GAAG,SAAS;EAC/E,QAAQ;EACD;EACP,eAAe;EACf,GAAI;EANN,UAAA;GAQG,UAAU,oBAAC,QAAD;IAAM,WAAW,OAAO;IAAO,UAAA;GAAa,CAAA;GACvD,oBAAC,YAAY,OAAb;IACE,WAAW,GAAG,OAAO,OAAO,OAAO,aAAa,YAAY,KAAK;IACpD;IACR;IACL,OAAO,cAAc;IACrB,YAAY,UAAU;KACpB,IAAI,aAAa,KAAK,GAAG,eAAe,KAAK;IAC/C;GACD,CAAA;GACA,UAAU,oBAAC,QAAD;IAAM,WAAW,OAAO;IAAO,UAAA;GAAa,CAAA;GACtD,YACC,qBAAC,OAAD;IACE,WAAW,GAAG,OAAO,gBAAgB,SAAS,WAAW,OAAO,mBAAmB;IADrF,UAAA,CAGE,oBAAC,YAAY,WAAb;KAAuB,WAAW;KAChC,UAAA,oBAAC,MAAD;MAAM,MAAM;MAAW,MAAM,gBAAgB;KAAQ,CAAA;IAChC,CAAA,GACvB,oBAAC,YAAY,WAAb;KAAuB,WAAW;KAChC,UAAA,oBAAC,MAAD;MAAM,MAAM;MAAa,MAAM,gBAAgB;KAAQ,CAAA;IAClC,CAAA,CACpB;;EAES;;AAEtB,CACF;AAEA,YAAY,cAAc;AAE1B,IAAA,sBAAe,OAAO,OAAO,aAAa,EAAE,aAAa,EAAE,YAAY,KAAK,EAAW,CAAC"}