{"version":3,"file":"Checkbox.mjs","names":["Flexbox"],"sources":["../../src/Checkbox/Checkbox.tsx"],"sourcesContent":["import { cx } from 'antd-style';\nimport { CheckIcon, Minus } from 'lucide-react';\nimport type { CSSProperties, FC, MouseEvent } from 'react';\nimport useMergeState from 'use-merge-value';\n\nimport Block from '@/Block';\nimport { Flexbox } from '@/Flex';\nimport Text from '@/Text';\n\nimport { styles } from './style';\nimport type { CheckboxProps } from './type';\n\nconst Checkbox: FC<CheckboxProps> = ({\n  checked,\n  defaultChecked,\n  onChange,\n  size = 16,\n  className,\n  style,\n  children,\n  textProps,\n  backgroundColor,\n  classNames,\n  styles: customStyles,\n  shape = 'square',\n  disabled,\n  indeterminate,\n  ...rest\n}) => {\n  const [value, setValue] = useMergeState(defaultChecked || false, {\n    defaultValue: defaultChecked,\n    onChange,\n    value: checked,\n  });\n\n  const checkboxStyles: CSSProperties = {\n    borderRadius: shape === 'square' ? `max(4px, ${Math.round(size / 4)}px)` : '50%',\n    ...style,\n    ...customStyles?.checkbox,\n  };\n\n  const handleClick = (e?: MouseEvent) => {\n    if (!disabled) {\n      e?.preventDefault();\n      setValue(!value);\n    }\n  };\n\n  const isIndeterminate = indeterminate;\n  const isChecked = !isIndeterminate && value;\n\n  const checkIcon = (\n    <Block\n      align={'center'}\n      flex={'none'}\n      height={size}\n      justify={'center'}\n      variant={'outlined'}\n      width={size}\n      className={cx(\n        styles.root,\n        isChecked && styles.checked,\n        isIndeterminate && styles.indeterminate,\n        disabled && styles.disabled,\n        className,\n        classNames?.checkbox,\n      )}\n      style={\n        backgroundColor && (isChecked || isIndeterminate)\n          ? { backgroundColor, borderColor: backgroundColor, ...checkboxStyles }\n          : { ...checkboxStyles }\n      }\n      onClick={handleClick}\n      {...rest}\n    >\n      {isIndeterminate ? (\n        <Minus\n          size={size}\n          strokeWidth={3}\n          style={{\n            transform: `scale(${shape === 'square' ? 0.75 : 0.66})`,\n          }}\n        />\n      ) : isChecked ? (\n        <CheckIcon\n          size={size}\n          strokeWidth={3}\n          style={{\n            transform: `scale(${shape === 'square' ? 0.75 : 0.66})`,\n          }}\n        />\n      ) : null}\n    </Block>\n  );\n\n  if (!children) return checkIcon;\n\n  return (\n    <Flexbox\n      horizontal\n      align={'center'}\n      className={classNames?.wrapper}\n      gap={Math.floor(size / 2)}\n      style={{\n        cursor: disabled ? 'not-allowed' : 'pointer',\n        userSelect: 'none',\n        ...customStyles?.wrapper,\n      }}\n      onClick={handleClick}\n    >\n      {checkIcon}\n      <Text\n        as={'span'}\n        className={cx(classNames?.text)}\n        style={customStyles?.text}\n        {...textProps}\n        type={disabled ? 'secondary' : textProps?.type}\n      >\n        {children}\n      </Text>\n    </Flexbox>\n  );\n};\n\nCheckbox.displayName = 'Checkbox';\n\nexport default Checkbox;\n"],"mappings":";;;;;;;;;AAYA,MAAM,YAA+B,EACnC,SACA,gBACA,UACA,OAAO,IACP,WACA,OACA,UACA,WACA,iBACA,YACA,QAAQ,cACR,QAAQ,UACR,UACA,eACA,GAAG,WACC;CACJ,MAAM,CAAC,OAAO,YAAY,cAAc,kBAAkB,OAAO;EAC/D,cAAc;EACd;EACA,OAAO;EACR,CAAC;CAEF,MAAM,iBAAgC;EACpC,cAAc,UAAU,WAAW,YAAY,KAAK,MAAM,OAAO,EAAE,CAAC,OAAO;EAC3E,GAAG;EACH,GAAG,cAAc;EAClB;CAED,MAAM,eAAe,MAAmB;AACtC,MAAI,CAAC,UAAU;AACb,MAAG,gBAAgB;AACnB,YAAS,CAAC,MAAM;;;CAIpB,MAAM,kBAAkB;CACxB,MAAM,YAAY,CAAC,mBAAmB;CAEtC,MAAM,YACJ,oBAAC,OAAD;EACE,OAAO;EACP,MAAM;EACN,QAAQ;EACR,SAAS;EACT,SAAS;EACT,OAAO;EACP,WAAW,GACT,OAAO,MACP,aAAa,OAAO,SACpB,mBAAmB,OAAO,eAC1B,YAAY,OAAO,UACnB,WACA,YAAY,SACb;EACD,OACE,oBAAoB,aAAa,mBAC7B;GAAE;GAAiB,aAAa;GAAiB,GAAG;GAAgB,GACpE,EAAE,GAAG,gBAAgB;EAE3B,SAAS;EACT,GAAI;YAEH,kBACC,oBAAC,OAAD;GACQ;GACN,aAAa;GACb,OAAO,EACL,WAAW,SAAS,UAAU,WAAW,MAAO,IAAK,IACtD;GACD,CAAA,GACA,YACF,oBAAC,WAAD;GACQ;GACN,aAAa;GACb,OAAO,EACL,WAAW,SAAS,UAAU,WAAW,MAAO,IAAK,IACtD;GACD,CAAA,GACA;EACE,CAAA;AAGV,KAAI,CAAC,SAAU,QAAO;AAEtB,QACE,qBAACA,mBAAD;EACE,YAAA;EACA,OAAO;EACP,WAAW,YAAY;EACvB,KAAK,KAAK,MAAM,OAAO,EAAE;EACzB,OAAO;GACL,QAAQ,WAAW,gBAAgB;GACnC,YAAY;GACZ,GAAG,cAAc;GAClB;EACD,SAAS;YAVX,CAYG,WACD,oBAAC,MAAD;GACE,IAAI;GACJ,WAAW,GAAG,YAAY,KAAK;GAC/B,OAAO,cAAc;GACrB,GAAI;GACJ,MAAM,WAAW,cAAc,WAAW;GAEzC;GACI,CAAA,CACC;;;AAId,SAAS,cAAc"}