{"version":3,"file":"utils.mjs","names":[],"sources":["../../src/Avatar/utils.ts"],"sourcesContent":["import { isValidElement, type ReactNode } from 'react';\n\n/**\n * 判断 avatar 是否是默认的 Ant Design Avatar 类型\n * (URL 路径或 React 元素)\n */\nexport const isDefaultAntAvatar = (avatar: ReactNode): boolean => {\n  if (!avatar) return false;\n\n  const isStringAvatar = typeof avatar === 'string';\n  const isUrlOrDataUri =\n    isStringAvatar && ['/', 'http', 'data:'].some((prefix) => avatar.startsWith(prefix));\n\n  return Boolean(isUrlOrDataUri || isValidElement(avatar));\n};\n\n/**\n * 判断是否有有效的背景色\n */\nexport const hasValidBackground = (background?: string | null): boolean => {\n  return Boolean(\n    background &&\n    background !== 'transparent' &&\n    background !== 'rgba(0,0,0,0)' &&\n    background !== null,\n  );\n};\n\n/**\n * 获取用于可读性计算的实际颜色值\n * 如果是 CSS 变量，返回 fallback 值\n */\nexport const getActualColorForReadable = (\n  background: string | undefined,\n  fallbackColor: string,\n): string => {\n  const bgColor = background || fallbackColor;\n\n  // 如果背景是 CSS 变量，使用 fallback 颜色\n  if (typeof bgColor === 'string' && bgColor.startsWith('var(')) {\n    return fallbackColor;\n  }\n\n  return bgColor;\n};\n\n/**\n * 格式化头像文本（转大写并可选切片）\n */\nexport const formatAvatarText = (text: string | undefined, sliceText: boolean): string => {\n  if (!text) return '';\n\n  const upperText = text.toUpperCase();\n  return sliceText ? upperText.slice(0, 2) : upperText;\n};\n\n/**\n * 计算 emoji 大小\n */\nexport const calculateEmojiSize = (\n  size: number,\n  hasBackground: boolean,\n  emojiScaleWithBackground: boolean,\n): number => {\n  if (emojiScaleWithBackground) {\n    return hasBackground ? size * 0.85 : size;\n  }\n  return size * 0.85;\n};\n"],"mappings":";;;;;;AAMA,MAAa,sBAAsB,WAA+B;CAChE,IAAI,CAAC,QAAQ,OAAO;CAGpB,MAAM,iBADiB,OAAO,WAAW,YAErB;EAAC;EAAK;EAAQ;CAAO,CAAC,CAAC,MAAM,WAAW,OAAO,WAAW,MAAM,CAAC;CAErF,OAAO,QAAQ,kBAAkB,eAAe,MAAM,CAAC;AACzD;;;;AAKA,MAAa,sBAAsB,eAAwC;CACzE,OAAO,QACL,cACA,eAAe,iBACf,eAAe,mBACf,eAAe,IACjB;AACF;;;;;AAMA,MAAa,6BACX,YACA,kBACW;CACX,MAAM,UAAU,cAAc;CAG9B,IAAI,OAAO,YAAY,YAAY,QAAQ,WAAW,MAAM,GAC1D,OAAO;CAGT,OAAO;AACT;;;;AAKA,MAAa,oBAAoB,MAA0B,cAA+B;CACxF,IAAI,CAAC,MAAM,OAAO;CAElB,MAAM,YAAY,KAAK,YAAY;CACnC,OAAO,YAAY,UAAU,MAAM,GAAG,CAAC,IAAI;AAC7C;;;;AAKA,MAAa,sBACX,MACA,eACA,6BACW;CACX,IAAI,0BACF,OAAO,gBAAgB,OAAO,MAAO;CAEvC,OAAO,OAAO;AAChB"}