{"version":3,"file":"ToggleButton.mjs","sources":["../../../../src/components/AlphaToggleButton/ToggleButton.tsx"],"sourcesContent":["'use client'\n\nimport { forwardRef } from 'react'\n\nimport { isBezierIcon } from '@channel.io/bezier-icons'\nimport * as TogglePrimitive from '@radix-ui/react-toggle'\nimport classNames from 'classnames'\n\nimport { useToggleButtonContext } from '~/src/components/AlphaToggleButton/ToggleButtonContext'\nimport { BaseButton } from '~/src/components/BaseButton'\nimport { Icon, type IconSize } from '~/src/components/Icon'\nimport { Text } from '~/src/components/Text'\n\nimport { type ToggleButtonProps } from './ToggleButton.types'\n\nimport styles from './ToggleButton.module.scss'\n\nfunction SideContent({\n  size,\n  content,\n}: {\n  size: IconSize\n  content?: ToggleButtonProps['prefixContent']\n}) {\n  return isBezierIcon(content) ? (\n    <Icon\n      source={content}\n      size={size}\n      className={styles.ButtonIcon}\n    />\n  ) : (\n    content\n  )\n}\n\nexport const ToggleButton = forwardRef<HTMLButtonElement, ToggleButtonProps>(\n  function ToggleButton(\n    {\n      as = BaseButton,\n      text,\n      prefixContent,\n      suffixContent,\n      variant = 'primary',\n      shape: shapeProps,\n      size = 'm',\n      className,\n      onSelectedChange,\n      ...rest\n    },\n    forwardedRef\n  ) {\n    const { shape: shapeContext } = useToggleButtonContext()\n    const shape = shapeProps ?? shapeContext ?? 'capsule'\n    const Comp = as as typeof BaseButton\n    const ICON_SIZE = 's'\n\n    return (\n      <TogglePrimitive.Root\n        asChild\n        onPressedChange={onSelectedChange}\n        {...rest}\n      >\n        <Comp\n          ref={forwardedRef}\n          className={classNames(\n            styles.Button,\n            styles[`size-${size}`],\n            styles[`variant-${variant}`],\n            shape && styles[`shape-${shape}`],\n            className\n          )}\n        >\n          <div className={classNames(styles.ButtonContent)}>\n            <SideContent\n              size={ICON_SIZE}\n              content={prefixContent}\n            />\n\n            {/* TODO: use AlphaText later, add typo */}\n            <Text\n              className={styles.ButtonText}\n              typo=\"14\"\n              data-text={text}\n              truncated\n            >\n              {text}\n            </Text>\n\n            <SideContent\n              size={ICON_SIZE}\n              content={suffixContent}\n            />\n          </div>\n        </Comp>\n      </TogglePrimitive.Root>\n    )\n  }\n)\n"],"names":["SideContent","size","content","isBezierIcon","_jsx","Icon","source","className","styles","ButtonIcon","ToggleButton","forwardRef","as","BaseButton","text","prefixContent","suffixContent","variant","shape","shapeProps","onSelectedChange","rest","forwardedRef","_ref","shapeContext","useToggleButtonContext","Comp","ICON_SIZE","TogglePrimitive","asChild","onPressedChange","children","ref","classNames","Button","_jsxs","ButtonContent","Text","ButtonText","typo","truncated"],"mappings":";;;;;;;;;;;AAiBA,SAASA,WAAWA,CAAC;EACnBC,IAAI;AACJC,EAAAA;AAIF,CAAC,EAAE;AACD,EAAA,OAAOC,YAAY,CAACD,OAAO,CAAC,gBAC1BE,GAAA,CAACC,IAAI,EAAA;AACHC,IAAAA,MAAM,EAAEJ,OAAQ;AAChBD,IAAAA,IAAI,EAAEA,IAAK;IACXM,SAAS,EAAEC,MAAM,CAACC;GACnB,CAAC,GAEFP,OACD;AACH;MAEaQ,YAAY,gBAAGC,UAAU,CACpC,SAASD,YAAYA,CACnB;AACEE,EAAAA,EAAE,GAAGC,UAAU;EACfC,IAAI;EACJC,aAAa;EACbC,aAAa;AACbC,EAAAA,OAAO,GAAG,SAAS;AACnBC,EAAAA,KAAK,EAAEC,UAAU;AACjBlB,EAAAA,IAAI,GAAG,GAAG;EACVM,SAAS;EACTa,gBAAgB;EAChB,GAAGC;AACL,CAAC,EACDC,YAAY,EACZ;AAAA,EAAA,IAAAC,IAAA;EACA,MAAM;AAAEL,IAAAA,KAAK,EAAEM;GAAc,GAAGC,sBAAsB,EAAE;AACxD,EAAA,MAAMP,KAAK,GAAAK,CAAAA,IAAA,GAAGJ,UAAU,aAAVA,UAAU,KAAA,KAAA,CAAA,GAAVA,UAAU,GAAIK,YAAY,MAAAD,IAAAA,IAAAA,IAAA,KAAAA,KAAAA,CAAAA,GAAAA,IAAA,GAAI,SAAS;EACrD,MAAMG,IAAI,GAAGd,EAAuB;EACpC,MAAMe,SAAS,GAAG,GAAG;AAErB,EAAA,oBACEvB,GAAA,CAACwB,IAAoB,EAAA;IACnBC,OAAO,EAAA,IAAA;AACPC,IAAAA,eAAe,EAAEV,gBAAiB;AAAA,IAAA,GAC9BC,IAAI;IAAAU,QAAA,eAER3B,GAAA,CAACsB,IAAI,EAAA;AACHM,MAAAA,GAAG,EAAEV,YAAa;AAClBf,MAAAA,SAAS,EAAE0B,UAAU,CACnBzB,MAAM,CAAC0B,MAAM,EACb1B,MAAM,CAAC,CAAA,KAAA,EAAQP,IAAI,CAAA,CAAE,CAAC,EACtBO,MAAM,CAAC,CAAA,QAAA,EAAWS,OAAO,CAAA,CAAE,CAAC,EAC5BC,KAAK,IAAIV,MAAM,CAAC,CAAA,MAAA,EAASU,KAAK,CAAA,CAAE,CAAC,EACjCX,SACF,CAAE;AAAAwB,MAAAA,QAAA,eAEFI,IAAA,CAAA,KAAA,EAAA;AAAK5B,QAAAA,SAAS,EAAE0B,UAAU,CAACzB,MAAM,CAAC4B,aAAa,CAAE;QAAAL,QAAA,EAAA,cAC/C3B,GAAA,CAACJ,WAAW,EAAA;AACVC,UAAAA,IAAI,EAAE0B,SAAU;AAChBzB,UAAAA,OAAO,EAAEa;AAAc,SACxB,CAAC,eAGFX,GAAA,CAACiC,IAAI,EAAA;UACH9B,SAAS,EAAEC,MAAM,CAAC8B,UAAW;AAC7BC,UAAAA,IAAI,EAAC,IAAI;AACT,UAAA,WAAA,EAAWzB,IAAK;UAChB0B,SAAS,EAAA,IAAA;AAAAT,UAAAA,QAAA,EAERjB;AAAI,SACD,CAAC,eAEPV,GAAA,CAACJ,WAAW,EAAA;AACVC,UAAAA,IAAI,EAAE0B,SAAU;AAChBzB,UAAAA,OAAO,EAAEc;AAAc,SACxB,CAAC;OACC;KACD;AAAC,GACa,CAAC;AAE3B,CACF;;;;"}