{"version":3,"file":"Banner.mjs","sources":["../../../../src/components/Banner/Banner.tsx"],"sourcesContent":["'use client'\n\nimport { forwardRef } from 'react'\n\nimport { isBezierIcon } from '@channel.io/bezier-icons'\nimport classNames from 'classnames'\n\nimport { warn } from '~/src/utils/assert'\nimport { isNil } from '~/src/utils/type'\n\nimport { Button } from '~/src/components/Button'\nimport { Icon } from '~/src/components/Icon'\nimport { LegacyIcon, isIconName } from '~/src/components/LegacyIcon'\nimport { Text } from '~/src/components/Text'\n\nimport {\n  type BannerProps,\n  type BannerVariant,\n  type RenderLinkFunc,\n} from './Banner.types'\n\nimport styles from './Banner.module.scss'\n\nconst BANNER_TEST_ID = 'bezier-banner'\n\nfunction getActionButtonColorVariant(variant: BannerVariant) {\n  return (\n    {\n      default: 'monochrome-dark',\n      blue: 'blue',\n      cobalt: 'cobalt',\n      green: 'green',\n      orange: 'orange',\n      red: 'red',\n      alt: 'monochrome-dark',\n    } as const\n  )[variant]\n}\n\nconst externalLinkRenderer: RenderLinkFunc = ({ content, linkTo }) => (\n  <a\n    href={linkTo}\n    target=\"_blank\"\n    rel=\"noopener noreferrer\"\n  >\n    {content}\n  </a>\n)\n\n/**\n * `Banner` is a component you use when you want to communicate instructions, warnings, recommendations, and other information well.\n * @example\n * ```tsx\n * <Banner\n *   variant=\"blue\"\n *   icon={LightbulbIcon}\n *   content=\"Information here.\"\n * />\n * ```\n */\nexport const Banner = forwardRef<HTMLDivElement, BannerProps>(function Banner(\n  {\n    className,\n    variant = 'default',\n    icon,\n    iconColor,\n    content,\n    hasLink = false,\n    linkText,\n    linkTo,\n    renderLink = externalLinkRenderer,\n    actionIcon,\n    onClickAction,\n    ...rest\n  },\n  forwardedRef\n) {\n  if (isIconName(icon)) {\n    warn(\n      'Deprecation: IconName as a value for the icon property of Banner has been deprecated. Use the Icon of bezier-icons instead.',\n      'Banner.IconName'\n    )\n  }\n\n  return (\n    <div\n      ref={forwardedRef}\n      className={classNames(\n        styles.Banner,\n        styles[`variant-${variant}`],\n        className\n      )}\n      data-testid={BANNER_TEST_ID}\n      {...rest}\n    >\n      {!isNil(icon) && (\n        <div className={styles.Center}>\n          {isBezierIcon(icon) ? (\n            <Icon\n              className={classNames(!iconColor && styles.Icon)}\n              source={icon}\n              color={iconColor}\n              size=\"s\"\n            />\n          ) : (\n            <LegacyIcon\n              className={classNames(!iconColor && styles.Icon)}\n              name={icon}\n              color={iconColor}\n              size=\"s\"\n            />\n          )}\n        </div>\n      )}\n\n      <div className={styles.Content}>\n        <Text typo=\"14\">\n          {content}\n\n          {hasLink &&\n            renderLink({\n              content: (\n                <Text\n                  className={styles.Link}\n                  typo=\"14\"\n                  bold\n                >\n                  {linkText}\n                </Text>\n              ),\n              linkTo,\n            })}\n        </Text>\n      </div>\n\n      {!isNil(actionIcon) && (\n        <div className={styles.Center}>\n          <Button\n            size=\"xs\"\n            colorVariant={getActionButtonColorVariant(variant)}\n            styleVariant=\"tertiary\"\n            leftContent={actionIcon}\n            onClick={onClickAction}\n          />\n        </div>\n      )}\n    </div>\n  )\n})\n"],"names":["BANNER_TEST_ID","getActionButtonColorVariant","variant","default","blue","cobalt","green","orange","red","alt","externalLinkRenderer","content","linkTo","_jsx","href","target","rel","children","Banner","forwardRef","className","icon","iconColor","hasLink","linkText","renderLink","actionIcon","onClickAction","rest","forwardedRef","isIconName","warn","_jsxs","ref","classNames","styles","isNil","Center","isBezierIcon","Icon","source","color","size","LegacyIcon","name","Content","Text","typo","Link","bold","Button","colorVariant","styleVariant","leftContent","onClick"],"mappings":"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"}