UNPKG

@lobehub/ui

Version:

Lobe UI is an open-source UI component library for building AIGC web apps

129 lines (127 loc) 6.17 kB
'use client'; var _excluded = ["as", "className", "children", "style", "type", "disabled", "strong", "italic", "underline", "delete", "fontSize", "mark", "code", "color", "weight", "ellipsis"]; function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } import { cva } from 'class-variance-authority'; import { memo, useMemo } from 'react'; import Tooltip from "../Tooltip"; import { useStyles } from "./styles"; import { jsx as _jsx } from "react/jsx-runtime"; var Text = /*#__PURE__*/memo(function (_ref) { var _ref$as = _ref.as, Container = _ref$as === void 0 ? 'div' : _ref$as, className = _ref.className, children = _ref.children, style = _ref.style, type = _ref.type, disabled = _ref.disabled, strong = _ref.strong, italic = _ref.italic, underline = _ref.underline, deleteStyle = _ref.delete, fontSize = _ref.fontSize, mark = _ref.mark, code = _ref.code, color = _ref.color, weight = _ref.weight, ellipsis = _ref.ellipsis, rest = _objectWithoutProperties(_ref, _excluded); var _useStyles = useStyles(), styles = _useStyles.styles, cx = _useStyles.cx; var variants = useMemo(function () { return cva(styles.text, { defaultVariants: {}, variants: { as: { h1: styles.h1, h2: styles.h2, h3: styles.h3, h4: styles.h4, h5: styles.h5, p: styles.p }, code: { true: styles.code }, delete: { true: styles.delete }, disabled: { true: styles.disabled }, ellipsis: { multi: styles.ellipsisMulti, true: styles.ellipsis }, italic: { true: styles.italic }, mark: { true: styles.mark }, strong: { true: styles.strong }, type: { danger: styles.danger, info: styles.info, secondary: styles.secondary, success: styles.success, warning: styles.warning }, underline: { true: styles.underline } } }); }, [styles]); var textStyle = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, color && { color: color }), weight && { fontWeight: weight }), _typeof(ellipsis) === 'object' && ellipsis.rows && { WebkitLineClamp: ellipsis.rows }), fontSize && { fontSize: fontSize }), style); var content = /*#__PURE__*/_jsx(Container, _objectSpread(_objectSpread({ className: cx(variants({ as: ['h1', 'h2', 'h3', 'h4', 'h5', 'p'].includes(Container) ? Container : undefined, code: code, delete: deleteStyle, disabled: disabled, ellipsis: ellipsis ? _typeof(ellipsis) === 'object' && ellipsis.rows ? 'multi' : true : undefined, italic: italic, mark: mark, strong: strong, type: type, underline: underline }), className), style: textStyle }, rest), {}, { children: children })); // 处理带有 tooltip 的省略 if (ellipsis && _typeof(ellipsis) === 'object' && ellipsis.tooltip) { var _ellipsis$tooltip; var title = typeof ellipsis.tooltip === 'string' ? ellipsis.tooltip : children; if (_typeof(ellipsis.tooltip) === 'object') return /*#__PURE__*/_jsx(Tooltip, _objectSpread(_objectSpread({}, ellipsis.tooltip), {}, { title: ((_ellipsis$tooltip = ellipsis.tooltip) === null || _ellipsis$tooltip === void 0 ? void 0 : _ellipsis$tooltip.title) || title, children: content })); return /*#__PURE__*/_jsx(Tooltip, { title: title, children: content }); } return content; }); Text.displayName = 'Text'; export default Text;