{"version":3,"file":"Tag.mjs","sourceRoot":"","sources":["../../../src/components/Tag/Tag.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n  BoxAlignItems,\n  BoxFlexDirection,\n  FontWeight,\n  IconSize,\n  TagSeverity,\n  TextVariant,\n} from '@metamask/design-system-shared';\nimport React, { forwardRef } from 'react';\n\nimport { twMerge } from '../../utils/tw-merge';\nimport { Box } from '../Box';\nimport { Icon } from '../Icon';\nimport { Text } from '../Text';\n\nimport {\n  MAP_TAG_SEVERITY_BACKGROUND,\n  MAP_TAG_SEVERITY_ICON_COLOR,\n  MAP_TAG_SEVERITY_TEXT_COLOR,\n} from './Tag.constants';\nimport type { TagProps } from './Tag.types';\n\nconst isTextContent = (content: React.ReactNode): content is string | number =>\n  typeof content === 'string' || typeof content === 'number';\n\nexport const Tag = forwardRef<HTMLDivElement, TagProps>(\n  (\n    {\n      children,\n      severity = TagSeverity.Neutral,\n      startIconName,\n      startIconProps,\n      startAccessory,\n      endIconName,\n      endIconProps,\n      endAccessory,\n      className,\n      style,\n      ...props\n    },\n    ref,\n  ) => {\n    const backgroundColor = MAP_TAG_SEVERITY_BACKGROUND[severity];\n    const textColor = MAP_TAG_SEVERITY_TEXT_COLOR[severity];\n    const iconColor = MAP_TAG_SEVERITY_ICON_COLOR[severity];\n\n    const finalStartIconName = startIconName ?? startIconProps?.name;\n    const finalEndIconName = endIconName ?? endIconProps?.name;\n\n    const resolvedStartAccessory = finalStartIconName ? (\n      <Icon\n        name={finalStartIconName}\n        color={iconColor}\n        size={IconSize.Xs}\n        className=\"shrink-0\"\n        {...startIconProps}\n      />\n    ) : (\n      (startAccessory ?? null)\n    );\n\n    const resolvedEndAccessory = finalEndIconName ? (\n      <Icon\n        name={finalEndIconName}\n        color={iconColor}\n        size={IconSize.Xs}\n        className=\"shrink-0\"\n        {...endIconProps}\n      />\n    ) : (\n      (endAccessory ?? null)\n    );\n\n    const content = isTextContent(children) ? (\n      <Text\n        variant={TextVariant.BodyXs}\n        color={textColor}\n        fontWeight={FontWeight.Medium}\n      >\n        {children}\n      </Text>\n    ) : (\n      children\n    );\n\n    const mergedClassName = twMerge(\n      'inline-flex gap-0.5 self-start rounded-md',\n      finalStartIconName ? 'pl-1' : 'pl-1.5',\n      finalEndIconName ? 'pr-1' : 'pr-1.5',\n      className,\n    );\n\n    return (\n      <Box\n        ref={ref}\n        flexDirection={BoxFlexDirection.Row}\n        alignItems={BoxAlignItems.Center}\n        backgroundColor={backgroundColor}\n        className={mergedClassName}\n        style={style}\n        {...props}\n      >\n        {resolvedStartAccessory}\n        {content}\n        {resolvedEndAccessory}\n      </Box>\n    );\n  },\n);\n\nTag.displayName = 'Tag';\n"]}