{"version":3,"file":"Text.mjs","sourceRoot":"","sources":["../../../src/components/Text/Text.tsx"],"names":[],"mappings":";;;;;;AAAA,OAAO,EACL,UAAU,EACV,SAAS,EACT,WAAW,EACZ,uCAAuC;AACxC,OAAO,EAAE,IAAI,EAAE,6BAA6B;AAC5C,OAAO,MAAK,cAAc;;AAE1B,OAAO,EAAE,OAAO,EAAE,iCAA6B;AAE/C,OAAO,EACL,iCAAiC,EACjC,kCAAkC,EAClC,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACrB,6BAAyB;AAG1B,MAAM,CAAC,MAAM,IAAI,GAAwB,CAAC,EACxC,OAAO,GAAG,WAAW,CAAC,MAAM,EAC5B,QAAQ,EACR,SAAS,EACT,UAAU,EACV,UAAU,GAAG,UAAU,CAAC,OAAO,EAC/B,SAAS,EACT,aAAa,EACb,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,KAAK,GAAG,SAAS,CAAC,WAAW,EAC7B,KAAK,EACL,GAAG,KAAK,EACT,EAAE,EAAE;IACH,gFAAgF;IAChF,sFAAsF;IACtF,MAAM,SAAS,GAAsB,OAAO;QAC1C,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAElC,MAAM,eAAe,GAAG,GAAG,OAAO,CAChC,KAAK,EACL,iCAAiC,CAAC,OAAO,CAAC,EAC1C,UAAU;QACR,CAAC,CAAC,0BAA0B,CAAC,UAAU,CAAC;QACxC,CAAC,CAAC,kCAAkC,CAAC,OAAO,CAAC,EAC/C,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAC5D,0BAA0B,CAAC,UAAU,CAAC,EACtC,aAAa,EACb,SAAS,EACT,YAAY,EACZ,QAAQ,IAAI,UAAU,EACtB,SAAS,CACV,EAAE,CAAC;IAEJ,OAAO,CACL,oBAAC,SAAS,IAAC,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,KAAM,KAAK,IAC3D,QAAQ,CACC,CACb,CAAC;AACJ,CAAC,CAAC","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"]}