{"version":3,"file":"CheckableAvatar.mjs","sources":["../../../../src/components/CheckableAvatar/CheckableAvatar.tsx"],"sourcesContent":["'use client'\n\nimport { forwardRef } from 'react'\n\nimport { CheckIcon } from '@channel.io/bezier-icons'\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox'\nimport classNames from 'classnames'\n\nimport useId from '~/src/hooks/useId'\n\nimport { Avatar } from '~/src/components/Avatar'\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { Icon } from '~/src/components/Icon'\nimport { VisuallyHidden } from '~/src/components/VisuallyHidden'\n\nimport type { CheckableAvatarProps } from './CheckableAvatar.types'\n\nimport styles from './CheckableAvatar.module.scss'\n\n/**\n * `CheckableAvatar` is a checkbox component that looks like `Avatar`.\n * @example\n *\n * ```tsx\n * const [checked, setChecked] = useState(false)\n * // Controlled\n * <CheckableAvatar\n *   name=\"John Doe\"\n *   avatarUrl=\"...\"\n *   checked={checked}\n *   onCheckedChange={setChecked}\n * />\n * // Uncontrolled\n * <CheckableAvatar\n *   name=\"John Doe\"\n *   avatarUrl=\"...\"\n *   defaultChecked\n * />\n * ```\n */\nexport const CheckableAvatar = forwardRef<\n  HTMLButtonElement,\n  CheckableAvatarProps\n>(function CheckableAvatar(\n  {\n    children,\n    className,\n    id: idProp,\n    name,\n    size = '24',\n    disabled,\n    avatarUrl,\n    fallbackUrl,\n    status,\n    showBorder,\n    ...props\n  },\n  forwardedRef\n) {\n  const id = useId(idProp, 'bezier-checkable-avatar')\n\n  return (\n    <CheckboxPrimitive.Root\n      asChild\n      className={classNames(styles.Checkbox, className)}\n      ref={forwardedRef}\n      id={id}\n      name={name}\n      disabled={disabled}\n      {...props}\n    >\n      <BaseButton>\n        <CheckboxPrimitive.Indicator\n          asChild\n          forceMount\n        >\n          <Icon\n            className={classNames(styles.CheckIcon, styles[`size-${size}`])}\n            source={CheckIcon}\n            color=\"text-absolute-white\"\n          />\n        </CheckboxPrimitive.Indicator>\n\n        <Avatar\n          className={styles.Avatar}\n          aria-hidden\n          size={size}\n          name={name}\n          disabled={disabled}\n          avatarUrl={avatarUrl}\n          fallbackUrl={fallbackUrl}\n          status={status}\n          showBorder={showBorder}\n        >\n          {children}\n        </Avatar>\n\n        <VisuallyHidden>\n          <label htmlFor={id}>{name}</label>\n        </VisuallyHidden>\n      </BaseButton>\n    </CheckboxPrimitive.Root>\n  )\n})\n"],"names":["CheckableAvatar","forwardRef","children","className","id","idProp","name","size","disabled","avatarUrl","fallbackUrl","status","showBorder","props","forwardedRef","useId","_jsx","CheckboxPrimitive","asChild","classNames","styles","Checkbox","ref","_jsxs","BaseButton","forceMount","Icon","CheckIcon","source","color","Avatar","VisuallyHidden","htmlFor"],"mappings":";;;;;;;;;;;;MAwCaA,eAAe,gBAAGC,UAAU,CAGvC,SAASD,eAAeA,CACxB;EACEE,QAAQ;EACRC,SAAS;AACTC,EAAAA,EAAE,EAAEC,MAAM;EACVC,IAAI;AACJC,EAAAA,IAAI,GAAG,IAAI;EACXC,QAAQ;EACRC,SAAS;EACTC,WAAW;EACXC,MAAM;EACNC,UAAU;EACV,GAAGC;AACL,CAAC,EACDC,YAAY,EACZ;AACA,EAAA,MAAMV,EAAE,GAAGW,KAAK,CAACV,MAAM,EAAE,yBAAyB,CAAC;AAEnD,EAAA,oBACEW,GAAA,CAACC,IAAsB,EAAA;IACrBC,OAAO,EAAA,IAAA;IACPf,SAAS,EAAEgB,UAAU,CAACC,MAAM,CAACC,QAAQ,EAAElB,SAAS,CAAE;AAClDmB,IAAAA,GAAG,EAAER,YAAa;AAClBV,IAAAA,EAAE,EAAEA,EAAG;AACPE,IAAAA,IAAI,EAAEA,IAAK;AACXE,IAAAA,QAAQ,EAAEA,QAAS;AAAA,IAAA,GACfK,KAAK;IAAAX,QAAA,eAETqB,IAAA,CAACC,UAAU,EAAA;AAAAtB,MAAAA,QAAA,EACTc,cAAAA,GAAA,CAACC,SAA2B,EAAA;QAC1BC,OAAO,EAAA,IAAA;QACPO,UAAU,EAAA,IAAA;QAAAvB,QAAA,eAEVc,GAAA,CAACU,IAAI,EAAA;AACHvB,UAAAA,SAAS,EAAEgB,UAAU,CAACC,MAAM,CAACO,SAAS,EAAEP,MAAM,CAAC,CAAA,KAAA,EAAQb,IAAI,CAAA,CAAE,CAAC,CAAE;AAChEqB,UAAAA,MAAM,EAAED,SAAU;AAClBE,UAAAA,KAAK,EAAC;SACP;AAAC,OACyB,CAAC,eAE9Bb,GAAA,CAACc,MAAM,EAAA;QACL3B,SAAS,EAAEiB,MAAM,CAACU,MAAO;QACzB,aAAW,EAAA,IAAA;AACXvB,QAAAA,IAAI,EAAEA,IAAK;AACXD,QAAAA,IAAI,EAAEA,IAAK;AACXE,QAAAA,QAAQ,EAAEA,QAAS;AACnBC,QAAAA,SAAS,EAAEA,SAAU;AACrBC,QAAAA,WAAW,EAAEA,WAAY;AACzBC,QAAAA,MAAM,EAAEA,MAAO;AACfC,QAAAA,UAAU,EAAEA,UAAW;AAAAV,QAAAA,QAAA,EAEtBA;AAAQ,OACH,CAAC,eAETc,GAAA,CAACe,cAAc,EAAA;AAAA7B,QAAAA,QAAA,eACbc,GAAA,CAAA,OAAA,EAAA;AAAOgB,UAAAA,OAAO,EAAE5B,EAAG;AAAAF,UAAAA,QAAA,EAAEI;SAAY;AAAC,OACpB,CAAC;KACP;AAAC,GACS,CAAC;AAE7B,CAAC;;;;"}