{"version":3,"file":"NumberField.cjs","sources":["../../../../src/components/forms/number-field/NumberField.tsx"],"sourcesContent":["import { NumberField as BaseNumberField } from '@base-ui/react/number-field'\r\nimport { memo, useId } from 'react'\r\n\r\nimport FormLabel from '@components/forms/_shared/components/form-label/FormLabel.tsx'\r\nimport HelperText from '@components/forms/_shared/components/helper-text/HelperText.tsx'\r\nimport NumberFieldInput from '@components/forms/number-field/components/number-field-input/NumberFieldInput.tsx'\r\nimport { NUMBER_FIELD_STYLES } from '@components/forms/number-field/styles/NumberField.css.ts'\r\nimport type { NumberFieldProps } from '@components/forms/number-field/types'\r\nimport { Flex } from '@components/layout/flex'\r\n\r\n/**\r\n * A numeric field with keyboard and button increments, min/max constraints and\r\n * the same label, helper and error API as TextField.\r\n */\r\nconst NumberField = memo<NumberFieldProps>((props) => {\r\n    const {\r\n        id,\r\n        label,\r\n        helperText,\r\n        error,\r\n        width,\r\n        size: sizeProp = 'md',\r\n        fontSize = 'md',\r\n        className,\r\n        disabled,\r\n        required,\r\n        readOnly,\r\n        name,\r\n        form,\r\n        min,\r\n        max,\r\n        step,\r\n        smallStep,\r\n        largeStep,\r\n        allowOutOfRange,\r\n        allowWheelScrub,\r\n        snapOnStep,\r\n        format,\r\n        locale,\r\n        value,\r\n        defaultValue,\r\n        onValueChange,\r\n        onValueCommitted,\r\n        ref,\r\n        'aria-describedby': ariaDescribedBy,\r\n        'aria-labelledby': ariaLabelledBy,\r\n        ...inputProps\r\n    } = props\r\n    const generatedId = useId()\r\n    const inputId = id ?? generatedId\r\n    const labelId = label ? `${inputId}-label` : undefined\r\n    const helperId = `${generatedId}-helper`\r\n    const hasError = Boolean(error)\r\n    const describedBy =\r\n    [ariaDescribedBy, error || helperText ? helperId : undefined]\r\n        .filter(Boolean)\r\n        .join(' ') || undefined\r\n\r\n    return (\r\n        <Flex\r\n            flexDirection={'column'}\r\n            gap={'xs'}\r\n            width={'100%'}\r\n            alignItems={'start'}\r\n            style={width !== undefined ? { width } : undefined}\r\n        >\r\n            {label && (\r\n                <FormLabel\r\n                    id={labelId}\r\n                    disabled={disabled}\r\n                    fontSize={fontSize}\r\n                >\r\n                    {label}\r\n                </FormLabel>\r\n            )}\r\n\r\n            <BaseNumberField.Root\r\n                id={inputId}\r\n                min={min}\r\n                max={max}\r\n                step={step}\r\n                smallStep={smallStep}\r\n                largeStep={largeStep}\r\n                allowOutOfRange={allowOutOfRange}\r\n                allowWheelScrub={allowWheelScrub}\r\n                snapOnStep={snapOnStep}\r\n                format={format}\r\n                locale={locale}\r\n                value={value}\r\n                defaultValue={defaultValue}\r\n                onValueChange={onValueChange}\r\n                onValueCommitted={onValueCommitted}\r\n                disabled={disabled}\r\n                readOnly={readOnly}\r\n                required={required}\r\n                name={name}\r\n                form={form}\r\n                className={NUMBER_FIELD_STYLES.root}\r\n            >\r\n                <NumberFieldInput\r\n                    inputProps={{\r\n                        ...inputProps,\r\n                        'aria-labelledby': ariaLabelledBy ?? labelId,\r\n                    }}\r\n                    inputRef={ref}\r\n                    className={className}\r\n                    describedBy={describedBy}\r\n                    hasError={hasError}\r\n                    size={sizeProp}\r\n                    fontSize={fontSize}\r\n                />\r\n            </BaseNumberField.Root>\r\n\r\n            {(error || helperText) && (\r\n                <HelperText\r\n                    id={helperId}\r\n                    hasError={hasError}\r\n                >\r\n                    {error ?? helperText}\r\n                </HelperText>\r\n            )}\r\n        </Flex>\r\n    )\r\n})\r\n\r\nNumberField.displayName = 'NumberField'\r\n\r\nexport default NumberField\r\n"],"names":["NumberField","memo","props","id","label","helperText","error","width","sizeProp","fontSize","className","disabled","required","readOnly","name","form","min","max","step","smallStep","largeStep","allowOutOfRange","allowWheelScrub","snapOnStep","format","locale","value","defaultValue","onValueChange","onValueCommitted","ref","ariaDescribedBy","ariaLabelledBy","inputProps","generatedId","useId","inputId","labelId","helperId","hasError","describedBy","jsxs","Flex","jsx","FormLabel","BaseNumberField","NUMBER_FIELD_STYLES","NumberFieldInput","HelperText"],"mappings":"6aAcA,MAAMA,EAAcC,EAAAA,KAAwBC,GAAU,CAClD,KAAM,CACF,GAAAC,EACA,MAAAC,EACA,WAAAC,EACA,MAAAC,EACA,MAAAC,EACA,KAAMC,EAAW,KACjB,SAAAC,EAAW,KACX,UAAAC,EACA,SAAAC,EACA,SAAAC,EACA,SAAAC,EACA,KAAAC,EACA,KAAAC,EACA,IAAAC,EACA,IAAAC,EACA,KAAAC,EACA,UAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,WAAAC,EACA,OAAAC,EACA,OAAAC,EACA,MAAAC,EACA,aAAAC,EACA,cAAAC,EACA,iBAAAC,EACA,IAAAC,EACA,mBAAoBC,EACpB,kBAAmBC,EACnB,GAAGC,CAAA,EACH/B,EACEgC,EAAcC,EAAAA,MAAA,EACdC,EAAUjC,GAAM+B,EAChBG,EAAUjC,EAAQ,GAAGgC,CAAO,SAAW,OACvCE,EAAW,GAAGJ,CAAW,UACzBK,EAAW,EAAQjC,EACnBkC,EACN,CAACT,EAAiBzB,GAASD,EAAaiC,EAAW,MAAS,EACvD,OAAO,OAAO,EACd,KAAK,GAAG,GAAK,OAElB,OACIG,EAAAA,KAACC,EAAA,CACG,cAAe,SACf,IAAK,KACL,MAAO,OACP,WAAY,QACZ,MAAOnC,IAAU,OAAY,CAAE,MAAAA,GAAU,OAExC,SAAA,CAAAH,GACGuC,EAAAA,IAACC,EAAA,CACG,GAAIP,EACJ,SAAA1B,EACA,SAAAF,EAEC,SAAAL,CAAA,CAAA,EAITuC,EAAAA,IAACE,EAAAA,YAAgB,KAAhB,CACG,GAAIT,EACJ,IAAApB,EACA,IAAAC,EACA,KAAAC,EACA,UAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,WAAAC,EACA,OAAAC,EACA,OAAAC,EACA,MAAAC,EACA,aAAAC,EACA,cAAAC,EACA,iBAAAC,EACA,SAAAlB,EACA,SAAAE,EACA,SAAAD,EACA,KAAAE,EACA,KAAAC,EACA,UAAW+B,EAAAA,oBAAoB,KAE/B,SAAAH,EAAAA,IAACI,EAAA,CACG,WAAY,CACR,GAAGd,EACH,kBAAmBD,GAAkBK,CAAA,EAEzC,SAAUP,EACV,UAAApB,EACA,YAAA8B,EACA,SAAAD,EACA,KAAM/B,EACN,SAAAC,CAAA,CAAA,CACJ,CAAA,GAGFH,GAASD,IACPsC,EAAAA,IAACK,EAAA,CACG,GAAIV,EACJ,SAAAC,EAEC,SAAAjC,GAASD,CAAA,CAAA,CACd,CAAA,CAAA,CAIhB,CAAC,EAEDL,EAAY,YAAc"}