UNPKG

koval-ui

Version:

React components collection with minimalistic design. Supports theming, layout, and input validation.

1 lines 3.69 kB
{"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,EAAA,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,GAEPC,IACC,CACK,MAAAC,EAAKC,gBAAcN,CAAM,EAEzBO,EAAeC,EAAA,YAChBC,GAAyC,CACtChB,EAASgB,CAAK,CAClB,EACA,CAAChB,CAAQ,CACb,EACA,cACK,MAAI,CAAA,UAAWiB,EAAWC,EAAAA,QAAQ,QAASrB,CAAS,EACjD,SAAA,CAAAsB,EAAA,IAAC,QAAA,CACI,GAAGT,EACJ,UAAWQ,EAAQ,QAAA,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,CACJ,EACCD,GACGW,EAAA,IAAC,QAAA,CACG,UAAWF,EAAWC,EAAAA,QAAQ,MAAO,CAAC,CAACA,UAAQ,QAAQ,EAAGT,EAAS,EACnE,QAASG,EACR,SAAAJ,CAAA,CAAA,CACL,EAER,CAAA,CAGZ,EAEAb,EAAW,YAAc"}