{"version":3,"file":"MenuCheckboxGroup.cjs","names":["useProps","MenuCheckboxGroupContext"],"sources":["../../../../src/components/Menu/MenuCheckboxGroup/MenuCheckboxGroup.tsx"],"sourcesContent":["import { useCallback } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { useProps } from '../../../core';\nimport { MenuCheckboxGroupContext } from './MenuCheckboxGroup.context';\n\nexport interface MenuCheckboxGroupProps {\n  /** Controlled selected values */\n  value?: string[];\n\n  /** Uncontrolled default selected values */\n  defaultValue?: string[];\n\n  /** Called with the new array of selected values when a `Menu.CheckboxItem` is toggled */\n  onChange?: (value: string[]) => void;\n\n  /** `Menu.CheckboxItem` components and other elements */\n  children?: React.ReactNode;\n}\n\nexport function MenuCheckboxGroup(_props: MenuCheckboxGroupProps) {\n  const props = useProps('MenuCheckboxGroup', null, _props);\n  const { value, defaultValue, onChange, children } = props;\n\n  const [_value, setValue] = useUncontrolled<string[]>({\n    value,\n    defaultValue,\n    finalValue: [],\n    onChange,\n  });\n\n  const toggle = useCallback(\n    (next: string) => {\n      setValue(_value.includes(next) ? _value.filter((item) => item !== next) : [..._value, next]);\n    },\n    [_value, setValue]\n  );\n\n  return (\n    <MenuCheckboxGroupContext value={{ values: _value, onChange: toggle }}>\n      {children}\n    </MenuCheckboxGroupContext>\n  );\n}\n\nMenuCheckboxGroup.displayName = '@mantine/core/MenuCheckboxGroup';\n"],"mappings":";;;;;;;AAmBA,SAAgB,kBAAkB,QAAgC;CAEhE,MAAM,EAAE,OAAO,cAAc,UAAU,aADzBA,kBAAAA,SAAS,qBAAqB,MAAM,MACM;CAExD,MAAM,CAAC,QAAQ,aAAA,GAAA,eAAA,gBAAA,CAAsC;EACnD;EACA;EACA,YAAY,CAAC;EACb;CACF,CAAC;CASD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,kCAAAA,0BAAD;EAA0B,OAAO;GAAE,QAAQ;GAAQ,WAAA,GAAA,MAAA,YAAA,EAPlD,SAAiB;IAChB,SAAS,OAAO,SAAS,IAAI,IAAI,OAAO,QAAQ,SAAS,SAAS,IAAI,IAAI,CAAC,GAAG,QAAQ,IAAI,CAAC;GAC7F,GACA,CAAC,QAAQ,QAAQ,CAIiD;EAAE;EACjE;CACuB,CAAA;AAE9B;AAEA,kBAAkB,cAAc"}