{"version":3,"file":"Tag.cjs","sourceRoot":"","sources":["../../../src/components/Tag/Tag.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yEAOwC;AACxC,+CAA0C;AAE1C,uDAA+C;AAC/C,0CAA6B;AAC7B,4CAA+B;AAC/B,4CAA+B;AAE/B,uDAIyB;AAGzB,MAAM,aAAa,GAAG,CAAC,OAAwB,EAA8B,EAAE,CAC7E,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC;AAEhD,QAAA,GAAG,GAAG,IAAA,kBAAU,EAC3B,CACE,EACE,QAAQ,EACR,QAAQ,GAAG,kCAAW,CAAC,OAAO,EAC9B,aAAa,EACb,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EACD,GAAG,EACH,EAAE;IACF,MAAM,eAAe,GAAG,2CAA2B,CAAC,QAAQ,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,2CAA2B,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,2CAA2B,CAAC,QAAQ,CAAC,CAAC;IAExD,MAAM,kBAAkB,GAAG,aAAa,IAAI,cAAc,EAAE,IAAI,CAAC;IACjE,MAAM,gBAAgB,GAAG,WAAW,IAAI,YAAY,EAAE,IAAI,CAAC;IAE3D,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAClD,8BAAC,WAAI,IACH,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,+BAAQ,CAAC,EAAE,EACjB,SAAS,EAAC,UAAU,KAChB,cAAc,GAClB,CACH,CAAC,CAAC,CAAC,CACF,CAAC,cAAc,IAAI,IAAI,CAAC,CACzB,CAAC;IAEF,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAC9C,8BAAC,WAAI,IACH,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,+BAAQ,CAAC,EAAE,EACjB,SAAS,EAAC,UAAU,KAChB,YAAY,GAChB,CACH,CAAC,CAAC,CAAC,CACF,CAAC,YAAY,IAAI,IAAI,CAAC,CACvB,CAAC;IAEF,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACxC,8BAAC,WAAI,IACH,OAAO,EAAE,kCAAW,CAAC,MAAM,EAC3B,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,iCAAU,CAAC,MAAM,IAE5B,QAAQ,CACJ,CACR,CAAC,CAAC,CAAC,CACF,QAAQ,CACT,CAAC;IAEF,MAAM,eAAe,GAAG,IAAA,kBAAO,EAC7B,2CAA2C,EAC3C,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EACtC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EACpC,SAAS,CACV,CAAC;IAEF,OAAO,CACL,8BAAC,SAAG,IACF,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,uCAAgB,CAAC,GAAG,EACnC,UAAU,EAAE,oCAAa,CAAC,MAAM,EAChC,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,KAAK,KACR,KAAK;QAER,sBAAsB;QACtB,OAAO;QACP,oBAAoB,CACjB,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,WAAG,CAAC,WAAW,GAAG,KAAK,CAAC","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"]}