{"version":3,"file":"Text.cjs","sourceRoot":"","sources":["../../../src/components/Text/Text.tsx"],"names":[],"mappings":";;;;;;AAAA,yEAIwC;AACxC,qDAA4C;AAC5C,kDAA0B;AAE1B,uDAA+C;AAE/C,yDAO0B;AAGnB,MAAM,IAAI,GAAwB,CAAC,EACxC,OAAO,GAAG,kCAAW,CAAC,MAAM,EAC5B,QAAQ,EACR,SAAS,EACT,UAAU,EACV,UAAU,GAAG,iCAAU,CAAC,OAAO,EAC/B,SAAS,EACT,aAAa,EACb,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,KAAK,GAAG,gCAAS,CAAC,WAAW,EAC7B,KAAK,EACL,GAAG,KAAK,EACT,EAAE,EAAE;IACH,gFAAgF;IAChF,sFAAsF;IACtF,MAAM,SAAS,GAAsB,OAAO;QAC1C,CAAC,CAAC,iBAAI;QACN,CAAC,CAAC,qCAAoB,CAAC,OAAO,CAAC,CAAC;IAElC,MAAM,eAAe,GAAG,GAAG,IAAA,kBAAO,EAChC,KAAK,EACL,kDAAiC,CAAC,OAAO,CAAC,EAC1C,UAAU;QACR,CAAC,CAAC,2CAA0B,CAAC,UAAU,CAAC;QACxC,CAAC,CAAC,mDAAkC,CAAC,OAAO,CAAC,EAC/C,SAAS,CAAC,CAAC,CAAC,0CAAyB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAC5D,2CAA0B,CAAC,UAAU,CAAC,EACtC,aAAa,EACb,SAAS,EACT,YAAY,EACZ,QAAQ,IAAI,UAAU,EACtB,SAAS,CACV,EAAE,CAAC;IAEJ,OAAO,CACL,8BAAC,SAAS,IAAC,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,KAAM,KAAK,IAC3D,QAAQ,CACC,CACb,CAAC;AACJ,CAAC,CAAC;AA1CW,QAAA,IAAI,QA0Cf","sourcesContent":["import {\n  FontFamily,\n  TextColor,\n  TextVariant,\n} from '@metamask/design-system-shared';\nimport { Slot } from '@radix-ui/react-slot';\nimport React from 'react';\n\nimport { twMerge } from '../../utils/tw-merge';\n\nimport {\n  TWCLASSMAP_TEXT_VARIANT_FONTSTYLE,\n  TWCLASSMAP_TEXT_VARIANT_FONTWEIGHT,\n  TWCLASSMAP_TEXT_FONTFAMILY,\n  TWCLASSMAP_TEXT_FONTSTYLE,\n  TWCLASSMAP_TEXT_FONTWEIGHT,\n  MAP_TEXT_VARIANT_TAG,\n} from './Text.constants';\nimport type { TextProps } from './Text.types';\n\nexport const Text: React.FC<TextProps> = ({\n  variant = TextVariant.BodyMd,\n  children,\n  className,\n  fontWeight,\n  fontFamily = FontFamily.Default,\n  fontStyle,\n  textTransform,\n  textAlign,\n  overflowWrap,\n  ellipsis,\n  asChild,\n  color = TextColor.TextDefault,\n  style,\n  ...props\n}) => {\n  // When asChild is true, use Radix Slot to merge props onto the child component.\n  // Otherwise, render the semantic HTML element mapped to this variant (e.g. h1-h4, p).\n  const Component: React.ElementType = asChild\n    ? Slot\n    : MAP_TEXT_VARIANT_TAG[variant];\n\n  const mergedClassName = `${twMerge(\n    color,\n    TWCLASSMAP_TEXT_VARIANT_FONTSTYLE[variant],\n    fontWeight\n      ? TWCLASSMAP_TEXT_FONTWEIGHT[fontWeight]\n      : TWCLASSMAP_TEXT_VARIANT_FONTWEIGHT[variant],\n    fontStyle ? TWCLASSMAP_TEXT_FONTSTYLE[fontStyle] : undefined,\n    TWCLASSMAP_TEXT_FONTFAMILY[fontFamily],\n    textTransform,\n    textAlign,\n    overflowWrap,\n    ellipsis && 'truncate',\n    className,\n  )}`;\n\n  return (\n    <Component className={mergedClassName} style={style} {...props}>\n      {children}\n    </Component>\n  );\n};\n"]}