{"version":3,"file":"InputRadio.cjs","sources":["../../../../src/lib/InputRadio/InputRadio.tsx"],"sourcesContent":["import type {ChangeEvent} from 'react';\nimport {forwardRef, useCallback} from 'react';\nimport classNames from 'classnames';\n\nimport type {\n    NativePropsInteractive,\n    CallbackPropsInteractive,\n    ValidationProps,\n} from '@/internal/inputs';\nimport type {DataAttributes, LibraryProps} from '@/internal/LibraryAPI';\nimport {useInternalId} from '@/internal/hooks/useInternalId.ts';\n\nimport classes from './InputRadio.module.css';\n\nexport type Props = DataAttributes &\n    LibraryProps &\n    NativePropsInteractive &\n    CallbackPropsInteractive &\n    Omit<ValidationProps, 'validatorFn'> & {\n        label?: string;\n    };\n\nexport const InputRadio = forwardRef<HTMLInputElement, Props>(\n    (\n        {\n            className,\n            disabled,\n            value,\n            onChange = () => {},\n            onFocus = () => {},\n            onBlur = () => {},\n            onKeyDown = () => {},\n            onKeyUp = () => {},\n            checked,\n            defaultChecked,\n            id: idProp,\n            label,\n            required,\n            ...nativeProps\n        },\n        ref\n    ) => {\n        const id = useInternalId(idProp);\n\n        const handleChange = useCallback(\n            (event: ChangeEvent<HTMLInputElement>) => {\n                onChange(event);\n            },\n            [onChange]\n        );\n        return (\n            <div className={classNames(classes.wrapper, className)}>\n                <input\n                    {...nativeProps}\n                    className={classes.input}\n                    ref={ref}\n                    disabled={disabled}\n                    type=\"radio\"\n                    id={id}\n                    value={value}\n                    checked={checked}\n                    defaultChecked={defaultChecked}\n                    onChange={handleChange}\n                    onBlur={onBlur}\n                    onFocus={onFocus}\n                    onKeyUp={onKeyUp}\n                    onKeyDown={onKeyDown}\n                    required={required}\n                />\n                {label && (\n                    <label\n                        className={classNames(classes.label, {[classes.required]: required})}\n                        htmlFor={id}>\n                        {label}\n                    </label>\n                )}\n            </div>\n        );\n    }\n);\n\nInputRadio.displayName = 'InputRadio';\n"],"names":["InputRadio","forwardRef","className","disabled","value","onChange","onFocus","onBlur","onKeyDown","onKeyUp","checked","defaultChecked","idProp","label","required","nativeProps","ref","id","useInternalId","handleChange","useCallback","event","classNames","classes","jsx"],"mappings":"0QAsBaA,EAAaC,EAAAA,WACtB,CACI,CACI,UAAAC,EACA,SAAAC,EACA,MAAAC,EACA,SAAAC,EAAW,IAAM,CAAC,EAClB,QAAAC,EAAU,IAAM,CAAC,EACjB,OAAAC,EAAS,IAAM,CAAC,EAChB,UAAAC,EAAY,IAAM,CAAC,EACnB,QAAAC,EAAU,IAAM,CAAC,EACjB,QAAAC,EACA,eAAAC,EACA,GAAIC,EACJ,MAAAC,EACA,SAAAC,EACA,GAAGC,CAAA,EAEPC,IACC,CACD,MAAMC,EAAKC,EAAAA,cAAcN,CAAM,EAEzBO,EAAeC,EAAAA,YAChBC,GAAyC,CACtChB,EAASgB,CAAK,CAClB,EACA,CAAChB,CAAQ,CAAA,EAEb,cACK,MAAA,CAAI,UAAWiB,EAAWC,EAAAA,QAAQ,QAASrB,CAAS,EACjD,SAAA,CAAAsB,EAAAA,IAAC,QAAA,CACI,GAAGT,EACJ,UAAWQ,EAAAA,QAAQ,MACnB,IAAAP,EACA,SAAAb,EACA,KAAK,QACL,GAAAc,EACA,MAAAb,EACA,QAAAM,EACA,eAAAC,EACA,SAAUQ,EACV,OAAAZ,EACA,QAAAD,EACA,QAAAG,EACA,UAAAD,EACA,SAAAM,CAAA,CAAA,EAEHD,GACGW,EAAAA,IAAC,QAAA,CACG,UAAWF,EAAWC,EAAAA,QAAQ,MAAO,CAAC,CAACA,UAAQ,QAAQ,EAAGT,EAAS,EACnE,QAASG,EACR,SAAAJ,CAAA,CAAA,CACL,EAER,CAER,CACJ,EAEAb,EAAW,YAAc"}