{"version":3,"file":"CheckboxCard.cjs","names":["createVarsResolver","getRadius","factory","useProps","useStyles","CheckboxGroupContext","UnstyledButton","classes"],"sources":["../../../../src/components/Checkbox/CheckboxCard/CheckboxCard.tsx"],"sourcesContent":["import { createContext, use } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport {\n  BoxProps,\n  createVarsResolver,\n  ElementProps,\n  factory,\n  Factory,\n  getRadius,\n  MantineRadius,\n  StylesApiProps,\n  useProps,\n  useStyles,\n} from '../../../core';\nimport { UnstyledButton } from '../../UnstyledButton';\nimport { CheckboxGroupContext } from '../CheckboxGroup/CheckboxGroup';\nimport classes from './CheckboxCard.module.css';\n\nexport interface CheckboxCardContextValue {\n  checked: boolean;\n}\n\nexport const CheckboxCardContext = createContext<CheckboxCardContextValue | null>(null);\n\nexport type CheckboxCardStylesNames = 'card';\nexport type CheckboxCardCssVariables = {\n  card: '--card-radius';\n};\n\nexport interface CheckboxCardProps\n  extends BoxProps, StylesApiProps<CheckboxCardFactory>, ElementProps<'button', 'onChange'> {\n  /** Controlled component value */\n  checked?: boolean;\n\n  /** Uncontrolled component default value */\n  defaultChecked?: boolean;\n\n  /** Called when value changes */\n  onChange?: (checked: boolean) => void;\n\n  /** Adds border to the root element */\n  withBorder?: boolean;\n\n  /** Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem @default theme.defaultRadius */\n  radius?: MantineRadius;\n\n  /** Value of the checkbox, used with `Checkbox.Group` */\n  value?: string;\n}\n\nexport type CheckboxCardFactory = Factory<{\n  props: CheckboxCardProps;\n  ref: HTMLButtonElement;\n  stylesNames: CheckboxCardStylesNames;\n  vars: CheckboxCardCssVariables;\n}>;\n\nconst defaultProps = {\n  withBorder: true,\n} satisfies Partial<CheckboxCardProps>;\n\nconst varsResolver = createVarsResolver<CheckboxCardFactory>((_, { radius }) => ({\n  card: {\n    '--card-radius': getRadius(radius),\n  },\n}));\n\nexport const CheckboxCard = factory<CheckboxCardFactory>((_props) => {\n  const props = useProps('CheckboxCard', defaultProps, _props);\n  const {\n    classNames,\n    className,\n    style,\n    styles,\n    unstyled,\n    vars,\n    checked,\n    mod,\n    withBorder,\n    value,\n    onClick,\n    defaultChecked,\n    onChange,\n    attributes,\n    ...others\n  } = props;\n\n  const getStyles = useStyles<CheckboxCardFactory>({\n    name: 'CheckboxCard',\n    classes,\n    props,\n    className,\n    style,\n    classNames,\n    styles,\n    unstyled,\n    attributes,\n    vars,\n    varsResolver,\n    rootSelector: 'card',\n  });\n\n  const ctx = use(CheckboxGroupContext);\n  const _checked =\n    typeof checked === 'boolean' ? checked : ctx ? ctx.value.includes(value || '') : undefined;\n\n  const [_value, setValue] = useUncontrolled({\n    value: _checked,\n    defaultValue: defaultChecked,\n    finalValue: false,\n    onChange,\n  });\n\n  return (\n    <CheckboxCardContext value={{ checked: _value }}>\n      <UnstyledButton\n        mod={[{ 'with-border': withBorder, checked: _value }, mod]}\n        {...getStyles('card')}\n        {...others}\n        role=\"checkbox\"\n        aria-checked={_value}\n        onClick={(event) => {\n          onClick?.(event);\n          ctx?.onChange(value || '');\n          setValue(!_value);\n        }}\n      />\n    </CheckboxCardContext>\n  );\n});\n\nCheckboxCard.displayName = '@mantine/core/CheckboxCard';\nCheckboxCard.classes = classes;\nCheckboxCard.varsResolver = varsResolver;\n"],"mappings":";;;;;;;;;;;;;;AAsBA,MAAa,uBAAA,GAAA,MAAA,eAAqE,KAAK;AAmCvF,MAAM,eAAe,EACnB,YAAY,MACb;AAED,MAAM,eAAeA,6BAAAA,oBAAyC,GAAG,EAAE,cAAc,EAC/E,MAAM,EACJ,iBAAiBC,iBAAAA,UAAU,OAAO,EACnC,EACF,EAAE;AAEH,MAAa,eAAeC,gBAAAA,SAA8B,WAAW;CACnE,MAAM,QAAQC,kBAAAA,SAAS,gBAAgB,cAAc,OAAO;CAC5D,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,SACA,KACA,YACA,OACA,SACA,gBACA,UACA,YACA,GAAG,WACD;CAEJ,MAAM,YAAYC,mBAAAA,UAA+B;EAC/C,MAAM;EACN,SAAA,4BAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,cAAc;EACf,CAAC;CAEF,MAAM,OAAA,GAAA,MAAA,KAAUC,sBAAAA,qBAAqB;CAIrC,MAAM,CAAC,QAAQ,aAAA,GAAA,eAAA,iBAA4B;EACzC,OAHA,OAAO,YAAY,YAAY,UAAU,MAAM,IAAI,MAAM,SAAS,SAAS,GAAG,GAAG,KAAA;EAIjF,cAAc;EACd,YAAY;EACZ;EACD,CAAC;AAEF,QACE,iBAAA,GAAA,kBAAA,KAAC,qBAAD;EAAqB,OAAO,EAAE,SAAS,QAAQ;YAC7C,iBAAA,GAAA,kBAAA,KAACC,uBAAAA,gBAAD;GACE,KAAK,CAAC;IAAE,eAAe;IAAY,SAAS;IAAQ,EAAE,IAAI;GAC1D,GAAI,UAAU,OAAO;GACrB,GAAI;GACJ,MAAK;GACL,gBAAc;GACd,UAAU,UAAU;AAClB,cAAU,MAAM;AAChB,SAAK,SAAS,SAAS,GAAG;AAC1B,aAAS,CAAC,OAAO;;GAEnB,CAAA;EACkB,CAAA;EAExB;AAEF,aAAa,cAAc;AAC3B,aAAa,UAAUC,4BAAAA;AACvB,aAAa,eAAe"}