{"version":3,"file":"AvatarBase.cjs","sourceRoot":"","sources":["../../../src/components/AvatarBase/AvatarBase.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yEAGwC;AACxC,qDAA4C;AAC5C,+CAA0C;AAE1C,uDAA+C;AAC/C,4CAAmE;AAEnE,qEAKgC;AAGnB,QAAA,UAAU,GAAG,IAAA,kBAAU,EAClC,CACE,EACE,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,IAAI,GAAG,qCAAc,CAAC,EAAE,EACxB,KAAK,GAAG,sCAAe,CAAC,MAAM,EAC9B,OAAO,EACP,KAAK,EACL,SAAS,GAAG,KAAK,EACjB,GAAG,KAAK,EACT,EACD,GAAG,EACH,EAAE;IACF,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAEzC,MAAM,eAAe,GAAG,IAAA,kBAAO;IAC7B,cAAc;IACd,iFAAiF,EACjF,KAAK,KAAK,sCAAe,CAAC,MAAM;QAC9B,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,sEAA+C,CAAC,IAAI,CAAC;IACzD,OAAO;IACP,SAAS;QACP,CAAC,CAAC,qEAA8C,CAAC,IAAI,CAAC;QACtD,CAAC,CAAC,2DAAoC,CAAC,IAAI,CAAC;IAC9C,SAAS;IACT,SAAS,IAAI,wDAAiC,CAAC,IAAI,CAAC;IACpD,iBAAiB;IACjB,SAAS,CACV,CAAC;IAEF,OAAO,CACL,8BAAC,SAAS,IAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,KAAM,KAAK,IACrE,YAAY,CAAC,CAAC,CAAC,CACd,8BAAC,WAAI,IACH,OAAO,EAAE,kBAAW,CAAC,MAAM,EAC3B,UAAU,EAAE,iBAAU,CAAC,MAAM,EAC7B,KAAK,EAAE,gBAAS,CAAC,SAAS,EAC1B,OAAO,QACP,SAAS,EAAC,WAAW,KACjB,iBAAiB;QAGrB,4CAAO,YAAY,CAAQ,CACtB,CACR,CAAC,CAAC,CAAC,CACF,QAAQ,CACT,CACS,CACb,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,kBAAU,CAAC,WAAW,GAAG,YAAY,CAAC","sourcesContent":["import {\n  AvatarBaseSize,\n  AvatarBaseShape,\n} from '@metamask/design-system-shared';\nimport { Slot } from '@radix-ui/react-slot';\nimport React, { forwardRef } from 'react';\n\nimport { twMerge } from '../../utils/tw-merge';\nimport { Text, FontWeight, TextVariant, TextColor } from '../Text';\n\nimport {\n  TWCLASSMAP_AVATARBASE_SIZE_DIMENSION,\n  TWCLASSMAP_AVATARBASE_HASBORDER_SIZE_DIMENSION,\n  TWCLASSMAP_AVATARBASE_SIZE_BORDERRADIUSS_SQUARE,\n  TWCLASSMAP_AVATARBASE_SIZE_BORDER,\n} from './AvatarBase.constants';\nimport type { AvatarBaseProps } from './AvatarBase.types';\n\nexport const AvatarBase = forwardRef<HTMLDivElement, AvatarBaseProps>(\n  (\n    {\n      children,\n      fallbackText,\n      fallbackTextProps,\n      className,\n      size = AvatarBaseSize.Md,\n      shape = AvatarBaseShape.Circle,\n      asChild,\n      style,\n      hasBorder = false,\n      ...props\n    },\n    ref,\n  ) => {\n    const Component = asChild ? Slot : 'div';\n\n    const mergedClassName = twMerge(\n      // Base styles\n      'inline-flex shrink-0 items-center justify-center overflow-hidden bg-alternative',\n      shape === AvatarBaseShape.Circle\n        ? 'rounded-full'\n        : TWCLASSMAP_AVATARBASE_SIZE_BORDERRADIUSS_SQUARE[size],\n      // Size\n      hasBorder\n        ? TWCLASSMAP_AVATARBASE_HASBORDER_SIZE_DIMENSION[size]\n        : TWCLASSMAP_AVATARBASE_SIZE_DIMENSION[size],\n      // Border\n      hasBorder && TWCLASSMAP_AVATARBASE_SIZE_BORDER[size],\n      // Custom classes\n      className,\n    );\n\n    return (\n      <Component ref={ref} className={mergedClassName} style={style} {...props}>\n        {fallbackText ? (\n          <Text\n            variant={TextVariant.BodySm}\n            fontWeight={FontWeight.Medium}\n            color={TextColor.TextMuted}\n            asChild\n            className=\"uppercase\"\n            {...fallbackTextProps}\n          >\n            {/* asChild prop renders Text component as a span, it does not create an additional element */}\n            <span>{fallbackText}</span>\n          </Text>\n        ) : (\n          children\n        )}\n      </Component>\n    );\n  },\n);\n\nAvatarBase.displayName = 'AvatarBase';\n"]}