{"version":3,"file":"CheckboxGroup.cjs","sources":["../../../../src/components/forms/checkbox-group/CheckboxGroup.tsx"],"sourcesContent":["import { CheckboxGroup as BaseCheckboxGroup } from '@base-ui/react/checkbox-group'\r\nimport { memo, useCallback, useState } from 'react'\r\n\r\nimport Checkbox from '@components/forms/checkbox/Checkbox.tsx'\r\nimport CheckboxGroupHeader from '@components/forms/checkbox-group/components/header/CheckboxGroupHeader.tsx'\r\nimport { CheckboxGroupProvider } from '@components/forms/checkbox-group/context/CheckboxGroup.context.ts'\r\nimport type { CheckboxGroupCompound } from '@components/forms/checkbox-group/types/CheckboxGroupCompound.ts'\r\nimport type { CheckboxGroupProps } from '@components/forms/checkbox-group/types/CheckboxGroup.props.ts'\r\nimport { getCheckboxGroupValues } from '@components/forms/checkbox-group/utils/getCheckboxGroupValues.utils.ts'\r\nimport { Flex } from '@components/layout/flex'\r\nimport { cn } from '@utils/cn.ts'\r\n\r\n/**\r\n * The root container for a group of `CheckboxGroup.Item` components.\r\n * Manages the selection state for multiple checkboxes.\r\n *\r\n * @example\r\n * ```tsx\r\n * <CheckboxGroup value={values} onValueChange={setValues}>\r\n *   <CheckboxGroup.Item value=\"email\" label=\"Email\" />\r\n *   <CheckboxGroup.Item value=\"sms\" label=\"SMS\" />\r\n * </CheckboxGroup>\r\n *\r\n * `allValues` is inferred from direct `CheckboxGroup.Item` children. Provide it\r\n * explicitly only when the values are rendered indirectly or need an override.\r\n * ```\r\n */\r\nconst CheckboxGroup = memo<CheckboxGroupProps>(({\r\n    className,\r\n    children,\r\n    value,\r\n    defaultValue,\r\n    allValues,\r\n    onValueChange,\r\n    ...props\r\n}) => {\r\n    const resolvedAllValues = allValues ?? getCheckboxGroupValues(children)\r\n    const [internalValue, setInternalValue] = useState(defaultValue ?? [])\r\n    const currentValue = value ?? internalValue\r\n    const handleValueChange = useCallback(\r\n        (...args: Parameters<NonNullable<CheckboxGroupProps['onValueChange']>>) => {\r\n            if (value === undefined) {\r\n                setInternalValue(args[0])\r\n            }\r\n            onValueChange?.(...args)\r\n        },\r\n        [onValueChange, value],\r\n    )\r\n\r\n    return (\r\n        <BaseCheckboxGroup\r\n            className={cn(className)}\r\n            onValueChange={handleValueChange}\r\n            value={currentValue}\r\n            allValues={resolvedAllValues}\r\n            {...props}\r\n        >\r\n            <CheckboxGroupProvider value={{ value: currentValue, allValues: resolvedAllValues, onValueChange: handleValueChange }}>\r\n                <Flex\r\n                    flexDirection={'column'}\r\n                    gap={'sm'}\r\n                    alignItems={'start'}\r\n                >\r\n                    {children}\r\n                </Flex>\r\n            </CheckboxGroupProvider>\r\n        </BaseCheckboxGroup>\r\n    )\r\n}) as unknown as CheckboxGroupCompound\r\n\r\nCheckboxGroup.displayName = 'CheckboxGroup'\r\nCheckboxGroup.Item = Checkbox\r\nCheckboxGroup.Header = CheckboxGroupHeader\r\n\r\nexport default CheckboxGroup\r\n"],"names":["CheckboxGroup","memo","className","children","value","defaultValue","allValues","onValueChange","props","resolvedAllValues","getCheckboxGroupValues","internalValue","setInternalValue","useState","currentValue","handleValueChange","useCallback","args","jsx","BaseCheckboxGroup","cn","CheckboxGroupProvider","Flex","Checkbox","CheckboxGroupHeader"],"mappings":"wbA2BMA,EAAgBC,EAAAA,KAAyB,CAAC,CAC5C,UAAAC,EACA,SAAAC,EACA,MAAAC,EACA,aAAAC,EACA,UAAAC,EACA,cAAAC,EACA,GAAGC,CACP,IAAM,CACF,MAAMC,EAAoBH,GAAaI,EAAAA,uBAAuBP,CAAQ,EAChE,CAACQ,EAAeC,CAAgB,EAAIC,EAAAA,SAASR,GAAgB,CAAA,CAAE,EAC/DS,EAAeV,GAASO,EACxBI,EAAoBC,EAAAA,YACtB,IAAIC,IAAuE,CACnEb,IAAU,QACVQ,EAAiBK,EAAK,CAAC,CAAC,EAE5BV,IAAgB,GAAGU,CAAI,CAC3B,EACA,CAACV,EAAeH,CAAK,CAAA,EAGzB,OACIc,EAAAA,IAACC,EAAAA,cAAA,CACG,UAAWC,EAAAA,GAAGlB,CAAS,EACvB,cAAea,EACf,MAAOD,EACP,UAAWL,EACV,GAAGD,EAEJ,SAAAU,EAAAA,IAACG,EAAAA,sBAAA,CAAsB,MAAO,CAAE,MAAOP,EAAc,UAAWL,EAAmB,cAAeM,CAAA,EAC9F,SAAAG,EAAAA,IAACI,EAAA,CACG,cAAe,SACf,IAAK,KACL,WAAY,QAEX,SAAAnB,CAAA,CAAA,CACL,CACJ,CAAA,CAAA,CAGZ,CAAC,EAEDH,EAAc,YAAc,gBAC5BA,EAAc,KAAOuB,EACrBvB,EAAc,OAASwB"}