{"version":3,"file":"Checkbox.cjs","sources":["../../../../src/components/checkbox/Checkbox.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef } from \"react\";\nimport { useId } from \"../../hooks/useId/useId.js\";\nimport type { CheckboxProps } from \"./types.js\";\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n    (props, ref) => {\n        const {\n            id,\n            children,\n            invalid,\n            className,\n            inline = false,\n            \"data-testautoid\": testAutoId,\n            checked,\n            indeterminate,\n            ...rest\n        } = props;\n\n        const inputRef = useRef<HTMLInputElement>(null);\n        useImperativeHandle(\n            ref,\n            () => inputRef.current as HTMLInputElement,\n            [],\n        );\n\n        const inputId = useId(id || \"jkl-checkbox\", { generateSuffix: !id });\n\n        useEffect(() => {\n            if (\n                checked === true &&\n                indeterminate === true &&\n                process.env.NODE_ENV !== \"production\"\n            ) {\n                console.warn(\n                    \"A Checkbox can not be both checked and indeterminate, and will be treated as checked\",\n                );\n            }\n            if (inputRef.current) {\n                inputRef.current.indeterminate = !checked && !!indeterminate;\n            }\n        }, [checked, indeterminate]);\n\n        return (\n            <div\n                className={clsx(\"jkl-checkbox\", className, {\n                    \"jkl-checkbox--inline\": inline,\n                    \"jkl-checkbox--error\": invalid,\n                })}\n            >\n                <input\n                    id={inputId}\n                    ref={inputRef}\n                    className=\"jkl-checkbox__input\"\n                    data-testid=\"jkl-checkbox-input\"\n                    aria-invalid={invalid}\n                    type=\"checkbox\"\n                    data-testautoid={testAutoId}\n                    checked={checked}\n                    {...rest}\n                />\n                <label htmlFor={inputId} className=\"jkl-checkbox__label\">\n                    {children}\n                </label>\n            </div>\n        );\n    },\n);\n\nCheckbox.displayName = \"Checkbox\";\n"],"names":["Checkbox","forwardRef","props","ref","id","children","invalid","className","inline","testAutoId","checked","indeterminate","rest","inputRef","useRef","useImperativeHandle","current","inputId","useId","generateSuffix","useEffect","process","env","NODE_ENV","console","warn","jsxs","clsx","jsx","type","htmlFor","displayName"],"mappings":"yNAKaA,EAAWC,EAAAA,WACpB,CAACC,EAAOC,KACJ,MACIC,GAAAA,EACAC,SAAAA,EACAC,QAAAA,EACAC,UAAAA,EACAC,OAAAA,GAAS,EACT,kBAAmBC,EACnBC,QAAAA,EACAC,cAAAA,KACGC,GACHV,EAEEW,EAAWC,EAAAA,OAAyB,MAC1CC,EAAAA,oBACIZ,EACA,IAAMU,EAASG,QACf,IAGJ,MAAMC,EAAUC,EAAAA,MAAMd,GAAM,eAAgB,CAAEe,gBAAiBf,IAE/DgB,OAAAA,EAAAA,UAAU,MAEU,IAAZV,IACkB,IAAlBC,GACyB,eAAzBU,QAAQC,IAAIC,UAEZC,QAAQC,KACJ,wFAGJZ,EAASG,UACTH,EAASG,QAAQL,eAAiBD,KAAaC,IAEpD,CAACD,EAASC,IAGTe,EAAAA,KAAC,MAAA,CACGnB,UAAWoB,EAAAA,KAAK,eAAgBpB,EAAW,CACvC,uBAAwBC,EACxB,sBAAuBF,IAG3BD,SAAA,CAAAuB,EAAAA,IAAC,QAAA,CACGxB,GAAIa,EACJd,IAAKU,EACLN,UAAU,sBACV,cAAY,qBACZ,eAAcD,EACduB,KAAK,WACL,kBAAiBpB,EACjBC,QAAAA,KACIE,UAEP,QAAA,CAAMkB,QAASb,EAASV,UAAU,sBAC9BF,SAAAA,SAOrBL,EAAS+B,YAAc"}