{"version":3,"file":"Text.mjs","names":[],"sources":["../../src/Text/Text.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'antd-style';\nimport { type FC, useRef } from 'react';\n\nimport { useTextOverflow } from '@/hooks/useTextOverflow';\nimport Tooltip from '@/Tooltip';\n\nimport { variants } from './styles';\nimport { type TextProps } from './type';\n\nconst Text: FC<TextProps> = ({\n  as: Container = 'div',\n  align,\n  className,\n  children,\n  style,\n  type,\n  disabled,\n  strong,\n  italic,\n  underline,\n  delete: deleteStyle,\n  fontSize,\n  lineClamp,\n  lineHeight,\n  mark,\n  code,\n  color,\n  weight,\n  ellipsis,\n  noWrap,\n  textDecoration,\n  textTransform,\n  whiteSpace,\n  wordBreak,\n  ...rest\n}) => {\n  const textRef = useRef<HTMLElement>(null);\n  const isOverflow = useTextOverflow(textRef, ellipsis, children);\n\n  const isMultiEllipsis = typeof ellipsis === 'object' && !!ellipsis.rows && ellipsis.rows > 1;\n  const tooltipWhenOverflow = typeof ellipsis === 'object' && ellipsis.tooltipWhenOverflow;\n\n  const textStyle = {\n    ...(color && { color }),\n    ...(weight && { fontWeight: weight }),\n    ...(lineHeight && { lineHeight }),\n    ...(textTransform && { textTransform }),\n    ...(textDecoration && { textDecoration }),\n    ...(wordBreak && { wordBreak }),\n    ...(typeof ellipsis === 'object' &&\n      ellipsis.rows && {\n        WebkitLineClamp: ellipsis.rows,\n      }),\n    ...(!ellipsis &&\n      !!lineClamp && {\n        WebkitBoxOrient: 'vertical',\n        WebkitLineClamp: lineClamp,\n        display: '-webkit-box',\n        overflow: 'hidden',\n        textOverflow: 'ellipsis',\n      }),\n    ...(fontSize && { fontSize }),\n    ...(align && { textAlign: align }),\n    ...(!isMultiEllipsis && noWrap && { whiteSpace: 'nowrap' as const }),\n    ...(whiteSpace && { whiteSpace }),\n    ...style,\n  };\n\n  const content = (\n    <Container\n      ref={textRef}\n      style={textStyle}\n      className={cx(\n        variants({\n          as: ['h1', 'h2', 'h3', 'h4', 'h5', 'p'].includes(Container as string)\n            ? (Container as any)\n            : undefined,\n          code,\n          delete: deleteStyle,\n          disabled,\n          ellipsis: ellipsis\n            ? typeof ellipsis === 'object' && ellipsis.rows\n              ? 'multi'\n              : true\n            : undefined,\n          italic,\n          mark,\n          strong,\n          type,\n          underline,\n        }),\n        className,\n      )}\n      {...rest}\n    >\n      {children}\n    </Container>\n  );\n\n  // 处理带有 tooltip 的省略\n  if (\n    ellipsis &&\n    typeof ellipsis === 'object' &&\n    (ellipsis.tooltip || ellipsis.tooltipWhenOverflow)\n  ) {\n    // 如果设置了 tooltipWhenOverflow，只在溢出时显示 tooltip\n    if (tooltipWhenOverflow && !isOverflow) {\n      return content;\n    }\n\n    const title = typeof ellipsis.tooltip === 'string' ? ellipsis.tooltip : children;\n    if (ellipsis.tooltip && typeof ellipsis.tooltip === 'object')\n      return (\n        <Tooltip {...ellipsis.tooltip} title={ellipsis.tooltip?.title || title}>\n          {content}\n        </Tooltip>\n      );\n    return <Tooltip title={title}>{content}</Tooltip>;\n  }\n\n  return content;\n};\n\nText.displayName = 'Text';\n\nexport default Text;\n"],"mappings":";;;;;;;;AAWA,MAAM,QAAuB,EAC3B,IAAI,YAAY,OAChB,OACA,WACA,UACA,OACA,MACA,UACA,QACA,QACA,WACA,QAAQ,aACR,UACA,WACA,YACA,MACA,MACA,OACA,QACA,UACA,QACA,gBACA,eACA,YACA,WACA,GAAG,WACC;CACJ,MAAM,UAAU,OAAoB,KAAK;CACzC,MAAM,aAAa,gBAAgB,SAAS,UAAU,SAAS;CAE/D,MAAM,kBAAkB,OAAO,aAAa,YAAY,CAAC,CAAC,SAAS,QAAQ,SAAS,OAAO;CAC3F,MAAM,sBAAsB,OAAO,aAAa,YAAY,SAAS;CA4BrE,MAAM,UACJ,oBAAC,WAAD;EACE,KAAK;EACL,OA7Bc;GAChB,GAAI,SAAS,EAAE,OAAO;GACtB,GAAI,UAAU,EAAE,YAAY,QAAQ;GACpC,GAAI,cAAc,EAAE,YAAY;GAChC,GAAI,iBAAiB,EAAE,eAAe;GACtC,GAAI,kBAAkB,EAAE,gBAAgB;GACxC,GAAI,aAAa,EAAE,WAAW;GAC9B,GAAI,OAAO,aAAa,YACtB,SAAS,QAAQ,EACf,iBAAiB,SAAS,MAC3B;GACH,GAAI,CAAC,YACH,CAAC,CAAC,aAAa;IACb,iBAAiB;IACjB,iBAAiB;IACjB,SAAS;IACT,UAAU;IACV,cAAc;IACf;GACH,GAAI,YAAY,EAAE,UAAU;GAC5B,GAAI,SAAS,EAAE,WAAW,OAAO;GACjC,GAAI,CAAC,mBAAmB,UAAU,EAAE,YAAY,UAAmB;GACnE,GAAI,cAAc,EAAE,YAAY;GAChC,GAAG;GACJ;EAMG,WAAW,GACT,SAAS;GACP,IAAI;IAAC;IAAM;IAAM;IAAM;IAAM;IAAM;IAAI,CAAC,SAAS,UAAoB,GAChE,YACD,KAAA;GACJ;GACA,QAAQ;GACR;GACA,UAAU,WACN,OAAO,aAAa,YAAY,SAAS,OACvC,UACA,OACF,KAAA;GACJ;GACA;GACA;GACA;GACA;GACD,CAAC,EACF,UACD;EACD,GAAI;EAEH;EACS,CAAA;AAId,KACE,YACA,OAAO,aAAa,aACnB,SAAS,WAAW,SAAS,sBAC9B;AAEA,MAAI,uBAAuB,CAAC,WAC1B,QAAO;EAGT,MAAM,QAAQ,OAAO,SAAS,YAAY,WAAW,SAAS,UAAU;AACxE,MAAI,SAAS,WAAW,OAAO,SAAS,YAAY,SAClD,QACE,oBAAC,SAAD;GAAS,GAAI,SAAS;GAAS,OAAO,SAAS,SAAS,SAAS;aAC9D;GACO,CAAA;AAEd,SAAO,oBAAC,SAAD;GAAgB;aAAQ;GAAkB,CAAA;;AAGnD,QAAO;;AAGT,KAAK,cAAc"}