@ant-design/agentic-ui 2.29.7 → 2.29.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/ChatLayout/components/FooterBackgroundLottie/index.js +1 -1
  2. package/dist/MarkdownEditor/BaseMarkdownEditor.js +1 -1
  3. package/dist/MarkdownEditor/editor/elements/Blockquote/ReadonlyBlockquote.d.ts +33 -0
  4. package/dist/MarkdownEditor/editor/elements/Blockquote/ReadonlyBlockquote.js +69 -0
  5. package/dist/MarkdownEditor/editor/elements/Break/ReadonlyBreak.d.ts +30 -0
  6. package/dist/MarkdownEditor/editor/elements/Break/ReadonlyBreak.js +88 -0
  7. package/dist/MarkdownEditor/editor/elements/Card/ReadonlyCard.d.ts +34 -0
  8. package/dist/MarkdownEditor/editor/elements/Card/ReadonlyCard.js +96 -0
  9. package/dist/MarkdownEditor/editor/elements/Code/ReadonlyCode.d.ts +33 -0
  10. package/dist/MarkdownEditor/editor/elements/Code/ReadonlyCode.js +145 -0
  11. package/dist/MarkdownEditor/editor/elements/FootnoteDefinition/ReadonlyFootnoteDefinition.d.ts +34 -0
  12. package/dist/MarkdownEditor/editor/elements/FootnoteDefinition/ReadonlyFootnoteDefinition.js +125 -0
  13. package/dist/MarkdownEditor/editor/elements/FootnoteReference/ReadonlyFootnoteReference.d.ts +34 -0
  14. package/dist/MarkdownEditor/editor/elements/FootnoteReference/ReadonlyFootnoteReference.js +101 -0
  15. package/dist/MarkdownEditor/editor/elements/Head/ReadonlyHead.d.ts +35 -0
  16. package/dist/MarkdownEditor/editor/elements/Head/ReadonlyHead.js +111 -0
  17. package/dist/MarkdownEditor/editor/elements/Head/index.d.ts +3 -0
  18. package/dist/MarkdownEditor/editor/elements/Head/index.js +3 -1
  19. package/dist/MarkdownEditor/editor/elements/Hr/ReadonlyHr.d.ts +30 -0
  20. package/dist/MarkdownEditor/editor/elements/Hr/ReadonlyHr.js +95 -0
  21. package/dist/MarkdownEditor/editor/elements/Image/ReadonlyEditorImage.d.ts +35 -0
  22. package/dist/MarkdownEditor/editor/elements/Image/ReadonlyEditorImage.js +426 -0
  23. package/dist/MarkdownEditor/editor/elements/Image/index.js +38 -50
  24. package/dist/MarkdownEditor/editor/elements/InlineKatex/ReadonlyInlineKatex.d.ts +32 -0
  25. package/dist/MarkdownEditor/editor/elements/InlineKatex/ReadonlyInlineKatex.js +100 -0
  26. package/dist/MarkdownEditor/editor/elements/Katex/ReadonlyKatex.d.ts +32 -0
  27. package/dist/MarkdownEditor/editor/elements/Katex/ReadonlyKatex.js +110 -0
  28. package/dist/MarkdownEditor/editor/elements/LinkCard/ReadonlyLinkCard.d.ts +40 -0
  29. package/dist/MarkdownEditor/editor/elements/LinkCard/ReadonlyLinkCard.js +215 -0
  30. package/dist/MarkdownEditor/editor/elements/List/List.js +27 -12
  31. package/dist/MarkdownEditor/editor/elements/List/ReadonlyList.d.ts +33 -0
  32. package/dist/MarkdownEditor/editor/elements/List/ReadonlyList.js +93 -0
  33. package/dist/MarkdownEditor/editor/elements/List/ReadonlyListItem.d.ts +35 -0
  34. package/dist/MarkdownEditor/editor/elements/List/ReadonlyListItem.js +138 -0
  35. package/dist/MarkdownEditor/editor/elements/Media/ReadonlyMedia.d.ts +36 -0
  36. package/dist/MarkdownEditor/editor/elements/Media/ReadonlyMedia.js +600 -0
  37. package/dist/MarkdownEditor/editor/elements/Mermaid/ReadonlyMermaid.d.ts +32 -0
  38. package/dist/MarkdownEditor/editor/elements/Mermaid/ReadonlyMermaid.js +101 -0
  39. package/dist/MarkdownEditor/editor/elements/Paragraph/ReadonlyParagraph.d.ts +35 -0
  40. package/dist/MarkdownEditor/editor/elements/Paragraph/ReadonlyParagraph.js +109 -0
  41. package/dist/MarkdownEditor/editor/elements/Paragraph/index.js +2 -1
  42. package/dist/MarkdownEditor/editor/elements/Schema/ReadonlySchema.d.ts +33 -0
  43. package/dist/MarkdownEditor/editor/elements/Schema/ReadonlySchema.js +163 -0
  44. package/dist/MarkdownEditor/editor/elements/index.d.ts +20 -1
  45. package/dist/MarkdownEditor/editor/elements/index.js +65 -29
  46. package/dist/MarkdownEditor/editor/parser/parse/parseBlockElements.js +18 -10
  47. package/dist/MarkdownEditor/editor/parser/parserSlateNodeToMarkdown.js +64 -21
  48. package/dist/MarkdownEditor/editor/plugins/elements.js +60 -6
  49. package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/backspace.js +97 -39
  50. package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/tab.d.ts +14 -0
  51. package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/tab.js +117 -90
  52. package/dist/MarkdownEditor/editor/plugins/index.d.ts +8 -0
  53. package/dist/MarkdownEditor/editor/plugins/index.js +8 -0
  54. package/dist/MarkdownEditor/editor/plugins/insertParsedHtmlNodes.d.ts +12 -6
  55. package/dist/MarkdownEditor/editor/plugins/insertParsedHtmlNodes.js +67 -42
  56. package/dist/MarkdownEditor/editor/plugins/utils.d.ts +31 -0
  57. package/dist/MarkdownEditor/editor/plugins/utils.js +75 -0
  58. package/dist/MarkdownEditor/editor/plugins/withCardPlugin.d.ts +15 -0
  59. package/dist/MarkdownEditor/editor/plugins/withCardPlugin.js +329 -0
  60. package/dist/MarkdownEditor/editor/plugins/withCodeTagPlugin.d.ts +11 -0
  61. package/dist/MarkdownEditor/editor/plugins/withCodeTagPlugin.js +299 -0
  62. package/dist/MarkdownEditor/editor/plugins/withInlineNodes.d.ts +12 -0
  63. package/dist/MarkdownEditor/editor/plugins/withInlineNodes.js +17 -0
  64. package/dist/MarkdownEditor/editor/plugins/withLinkAndMediaPlugin.d.ts +11 -0
  65. package/dist/MarkdownEditor/editor/plugins/withLinkAndMediaPlugin.js +70 -0
  66. package/dist/MarkdownEditor/editor/plugins/withListsPlugin.d.ts +23 -0
  67. package/dist/MarkdownEditor/editor/plugins/withListsPlugin.js +204 -0
  68. package/dist/MarkdownEditor/editor/plugins/withMarkdown.d.ts +9 -12
  69. package/dist/MarkdownEditor/editor/plugins/withMarkdown.js +17 -764
  70. package/dist/MarkdownEditor/editor/plugins/withSchemaPlugin.d.ts +11 -0
  71. package/dist/MarkdownEditor/editor/plugins/withSchemaPlugin.js +55 -0
  72. package/dist/MarkdownEditor/editor/plugins/withVoidNodes.d.ts +12 -0
  73. package/dist/MarkdownEditor/editor/plugins/withVoidNodes.js +17 -0
  74. package/dist/MarkdownEditor/editor/store.js +1 -1
  75. package/dist/MarkdownEditor/editor/utils/docx/module.js +41 -8
  76. package/dist/MarkdownEditor/editor/utils/editorCommands.d.ts +97 -0
  77. package/dist/MarkdownEditor/editor/utils/editorCommands.js +966 -0
  78. package/dist/MarkdownEditor/editor/utils/editorUtils.js +2 -2
  79. package/dist/MarkdownEditor/editor/utils/keyboard.js +15 -391
  80. package/dist/MarkdownEditor/el.d.ts +12 -5
  81. package/dist/MarkdownInputField/MarkdownInputField.js +10 -23
  82. package/dist/MarkdownInputField/style.js +9 -4
  83. package/package.json +8 -8
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+ import { RenderElementProps } from 'slate-react';
3
+ /**
4
+ * ReadonlyKatex 组件 - 只读数学公式块预览组件
5
+ *
6
+ * 专门针对 readonly 模式优化的数学公式块组件。
7
+ * 简化渲染逻辑,提升预览模式性能。
8
+ *
9
+ * @component
10
+ * @description 只读数学公式块预览组件,用于预览模式下的数学公式块渲染
11
+ * @param {RenderElementProps} props - 组件属性
12
+ * @param {any} props.element - 数学公式块节点元素
13
+ * @param {React.ReactNode} props.children - 子组件内容
14
+ * @param {Object} props.attributes - 元素属性
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * <ReadonlyKatex
19
+ * element={katexNode}
20
+ * attributes={attributes}
21
+ * >
22
+ * 公式内容
23
+ * </ReadonlyKatex>
24
+ * ```
25
+ *
26
+ * @returns {React.ReactElement} 渲染的只读数学公式块组件
27
+ *
28
+ * @remarks
29
+ * - 使用 React.memo 优化性能
30
+ * - 保持预览模式的视觉效果
31
+ */
32
+ export declare const ReadonlyKatex: React.FC<RenderElementProps>;
@@ -0,0 +1,110 @@
1
+ function _define_property(obj, key, value) {
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value: value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
13
+ }
14
+ function _object_spread(target) {
15
+ for(var i = 1; i < arguments.length; i++){
16
+ var source = arguments[i] != null ? arguments[i] : {};
17
+ var ownKeys = Object.keys(source);
18
+ if (typeof Object.getOwnPropertySymbols === "function") {
19
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
20
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
21
+ }));
22
+ }
23
+ ownKeys.forEach(function(key) {
24
+ _define_property(target, key, source[key]);
25
+ });
26
+ }
27
+ return target;
28
+ }
29
+ function ownKeys(object, enumerableOnly) {
30
+ var keys = Object.keys(object);
31
+ if (Object.getOwnPropertySymbols) {
32
+ var symbols = Object.getOwnPropertySymbols(object);
33
+ if (enumerableOnly) {
34
+ symbols = symbols.filter(function(sym) {
35
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
36
+ });
37
+ }
38
+ keys.push.apply(keys, symbols);
39
+ }
40
+ return keys;
41
+ }
42
+ function _object_spread_props(target, source) {
43
+ source = source != null ? source : {};
44
+ if (Object.getOwnPropertyDescriptors) {
45
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
46
+ } else {
47
+ ownKeys(Object(source)).forEach(function(key) {
48
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
49
+ });
50
+ }
51
+ return target;
52
+ }
53
+ import React from "react";
54
+ import { debugInfo } from "../../../../Utils/debugUtils";
55
+ /**
56
+ * ReadonlyKatex 组件 - 只读数学公式块预览组件
57
+ *
58
+ * 专门针对 readonly 模式优化的数学公式块组件。
59
+ * 简化渲染逻辑,提升预览模式性能。
60
+ *
61
+ * @component
62
+ * @description 只读数学公式块预览组件,用于预览模式下的数学公式块渲染
63
+ * @param {RenderElementProps} props - 组件属性
64
+ * @param {any} props.element - 数学公式块节点元素
65
+ * @param {React.ReactNode} props.children - 子组件内容
66
+ * @param {Object} props.attributes - 元素属性
67
+ *
68
+ * @example
69
+ * ```tsx
70
+ * <ReadonlyKatex
71
+ * element={katexNode}
72
+ * attributes={attributes}
73
+ * >
74
+ * 公式内容
75
+ * </ReadonlyKatex>
76
+ * ```
77
+ *
78
+ * @returns {React.ReactElement} 渲染的只读数学公式块组件
79
+ *
80
+ * @remarks
81
+ * - 使用 React.memo 优化性能
82
+ * - 保持预览模式的视觉效果
83
+ */ export var ReadonlyKatex = /*#__PURE__*/ React.memo(function(param) {
84
+ var attributes = param.attributes, children = param.children, element = param.element;
85
+ var _element_value;
86
+ debugInfo('ReadonlyKatex - 渲染只读数学公式块', {
87
+ valueLength: element === null || element === void 0 ? void 0 : (_element_value = element.value) === null || _element_value === void 0 ? void 0 : _element_value.length
88
+ });
89
+ return /*#__PURE__*/ React.createElement("pre", _object_spread_props(_object_spread({}, attributes), {
90
+ style: {
91
+ background: 'rgb(242, 241, 241)',
92
+ color: 'rgb(27, 27, 27)',
93
+ padding: '1em',
94
+ borderRadius: '0.5em',
95
+ margin: '1em 0',
96
+ fontSize: '0.8em',
97
+ fontFamily: 'monospace',
98
+ lineHeight: '1.5',
99
+ overflowX: 'auto',
100
+ whiteSpace: 'pre-wrap',
101
+ wordBreak: 'break-all',
102
+ wordWrap: 'break-word'
103
+ }
104
+ }), /*#__PURE__*/ React.createElement("code", null, element.value), /*#__PURE__*/ React.createElement("div", {
105
+ style: {
106
+ display: 'none'
107
+ }
108
+ }, children));
109
+ });
110
+ ReadonlyKatex.displayName = 'ReadonlyKatex';
@@ -0,0 +1,40 @@
1
+ import React from 'react';
2
+ import { ElementProps, LinkCardNode } from '../../../el';
3
+ /**
4
+ * ReadonlyLinkCard 组件 - 只读链接卡片预览组件
5
+ *
6
+ * 专门针对 readonly 模式优化的链接卡片组件,移除了拖拽功能。
7
+ * 简化渲染逻辑,提升预览模式性能。
8
+ *
9
+ * @component
10
+ * @description 只读链接卡片预览组件,用于预览模式下的链接卡片渲染
11
+ * @param {ElementProps<LinkCardNode>} props - 组件属性
12
+ * @param {LinkCardNode} props.element - 链接卡片节点元素
13
+ * @param {React.ReactNode} props.children - 子组件内容
14
+ * @param {Object} props.attributes - 元素属性
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * <ReadonlyLinkCard
19
+ * element={linkCardNode}
20
+ * attributes={attributes}
21
+ * >
22
+ * 内容
23
+ * </ReadonlyLinkCard>
24
+ * ```
25
+ *
26
+ * @returns {React.ReactElement} 渲染的只读链接卡片组件
27
+ *
28
+ * @remarks
29
+ * - 移除拖拽手柄(DragHandle)
30
+ * - 移除拖拽相关事件处理
31
+ * - 使用 React.memo 优化性能
32
+ * - 保持预览模式的视觉效果
33
+ */
34
+ export declare const ReadonlyLinkCard: React.FC<ElementProps<LinkCardNode<{
35
+ url: string;
36
+ collaborators: {
37
+ [key: string]: number;
38
+ }[];
39
+ updateTime: string;
40
+ }>>>;
@@ -0,0 +1,215 @@
1
+ function _array_like_to_array(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _array_with_holes(arr) {
7
+ if (Array.isArray(arr)) return arr;
8
+ }
9
+ function _iterable_to_array_limit(arr, i) {
10
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
11
+ if (_i == null) return;
12
+ var _arr = [];
13
+ var _n = true;
14
+ var _d = false;
15
+ var _s, _e;
16
+ try {
17
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
18
+ _arr.push(_s.value);
19
+ if (i && _arr.length === i) break;
20
+ }
21
+ } catch (err) {
22
+ _d = true;
23
+ _e = err;
24
+ } finally{
25
+ try {
26
+ if (!_n && _i["return"] != null) _i["return"]();
27
+ } finally{
28
+ if (_d) throw _e;
29
+ }
30
+ }
31
+ return _arr;
32
+ }
33
+ function _non_iterable_rest() {
34
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
35
+ }
36
+ function _sliced_to_array(arr, i) {
37
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
38
+ }
39
+ function _unsupported_iterable_to_array(o, minLen) {
40
+ if (!o) return;
41
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
42
+ var n = Object.prototype.toString.call(o).slice(8, -1);
43
+ if (n === "Object" && o.constructor) n = o.constructor.name;
44
+ if (n === "Map" || n === "Set") return Array.from(n);
45
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
46
+ }
47
+ import { ConfigProvider, Skeleton } from "antd";
48
+ import classNames from "classnames";
49
+ import React, { useContext, useEffect, useState } from "react";
50
+ import { debugInfo } from "../../../../Utils/debugUtils";
51
+ import { AvatarList } from "../../components/ContributorAvatar";
52
+ import { useStyle } from "./style";
53
+ /**
54
+ * ReadonlyLinkCard 组件 - 只读链接卡片预览组件
55
+ *
56
+ * 专门针对 readonly 模式优化的链接卡片组件,移除了拖拽功能。
57
+ * 简化渲染逻辑,提升预览模式性能。
58
+ *
59
+ * @component
60
+ * @description 只读链接卡片预览组件,用于预览模式下的链接卡片渲染
61
+ * @param {ElementProps<LinkCardNode>} props - 组件属性
62
+ * @param {LinkCardNode} props.element - 链接卡片节点元素
63
+ * @param {React.ReactNode} props.children - 子组件内容
64
+ * @param {Object} props.attributes - 元素属性
65
+ *
66
+ * @example
67
+ * ```tsx
68
+ * <ReadonlyLinkCard
69
+ * element={linkCardNode}
70
+ * attributes={attributes}
71
+ * >
72
+ * 内容
73
+ * </ReadonlyLinkCard>
74
+ * ```
75
+ *
76
+ * @returns {React.ReactElement} 渲染的只读链接卡片组件
77
+ *
78
+ * @remarks
79
+ * - 移除拖拽手柄(DragHandle)
80
+ * - 移除拖拽相关事件处理
81
+ * - 使用 React.memo 优化性能
82
+ * - 保持预览模式的视觉效果
83
+ */ export var ReadonlyLinkCard = /*#__PURE__*/ React.memo(function(param) {
84
+ var element = param.element, attributes = param.attributes, children = param.children;
85
+ var _element_url, _element_otherProps, _element_otherProps_collaborators, _element_otherProps1, _element_otherProps2;
86
+ debugInfo('ReadonlyLinkCard - 渲染只读链接卡片', {
87
+ url: element === null || element === void 0 ? void 0 : (_element_url = element.url) === null || _element_url === void 0 ? void 0 : _element_url.substring(0, 100),
88
+ title: element === null || element === void 0 ? void 0 : element.title,
89
+ name: element === null || element === void 0 ? void 0 : element.name,
90
+ finished: element === null || element === void 0 ? void 0 : element.finished
91
+ });
92
+ var context = useContext(ConfigProvider.ConfigContext);
93
+ var baseCls = context === null || context === void 0 ? void 0 : context.getPrefixCls('agentic-md-editor-link-card');
94
+ var _useStyle = useStyle(baseCls), wrapSSR = _useStyle.wrapSSR, hashId = _useStyle.hashId;
95
+ var _useState = _sliced_to_array(useState(false), 2), showAsText = _useState[0], setShowAsText = _useState[1];
96
+ // 如果 finished 为 false,设置 5 秒超时,超时后显示为文本
97
+ useEffect(function() {
98
+ if (element.finished === false) {
99
+ debugInfo('ReadonlyLinkCard - 设置超时显示文本');
100
+ setShowAsText(false);
101
+ var timer = setTimeout(function() {
102
+ debugInfo('ReadonlyLinkCard - 超时,显示为文本');
103
+ setShowAsText(true);
104
+ }, 5000);
105
+ return function() {
106
+ clearTimeout(timer);
107
+ };
108
+ } else {
109
+ setShowAsText(false);
110
+ }
111
+ }, [
112
+ element.finished
113
+ ]);
114
+ // 如果是不完整状态
115
+ if (element.finished === false) {
116
+ // 如果 5 秒后仍未完成,显示为文本
117
+ if (showAsText) {
118
+ debugInfo('ReadonlyLinkCard - 显示为文本');
119
+ return /*#__PURE__*/ React.createElement("div", attributes, /*#__PURE__*/ React.createElement("div", {
120
+ style: {
121
+ padding: '8px 12px',
122
+ border: '1px solid #d9d9d9',
123
+ borderRadius: '4px',
124
+ color: 'rgba(0, 0, 0, 0.65)',
125
+ wordBreak: 'break-all'
126
+ }
127
+ }, element.url || element.title || element.name || '链接卡片'), children);
128
+ }
129
+ // 5 秒内显示加载骨架屏
130
+ debugInfo('ReadonlyLinkCard - 显示加载骨架屏');
131
+ return /*#__PURE__*/ React.createElement("div", attributes, /*#__PURE__*/ React.createElement(Skeleton, {
132
+ active: true,
133
+ paragraph: {
134
+ rows: 2
135
+ }
136
+ }), children);
137
+ }
138
+ debugInfo('ReadonlyLinkCard - 渲染完整链接卡片');
139
+ return wrapSSR(/*#__PURE__*/ React.createElement("div", attributes, /*#__PURE__*/ React.createElement("div", {
140
+ className: classNames(baseCls, hashId),
141
+ "data-be": "link-card",
142
+ draggable: false,
143
+ style: {
144
+ display: 'flex'
145
+ }
146
+ }, /*#__PURE__*/ React.createElement("div", {
147
+ style: {
148
+ display: 'flex',
149
+ height: '100%',
150
+ minWidth: '0',
151
+ fontSize: 60,
152
+ minHeight: '100px',
153
+ lineHeight: '100px'
154
+ }
155
+ }, children.at(0)), /*#__PURE__*/ React.createElement("div", {
156
+ style: {
157
+ flex: 1
158
+ },
159
+ onClick: function() {
160
+ if (typeof window === 'undefined') return;
161
+ window.open(element === null || element === void 0 ? void 0 : element.url);
162
+ },
163
+ className: classNames("".concat(baseCls, "-container"), hashId)
164
+ }, /*#__PURE__*/ React.createElement("div", {
165
+ className: classNames("".concat(baseCls, "-container-content"), hashId),
166
+ contentEditable: false
167
+ }, element.icon ? /*#__PURE__*/ React.createElement("img", {
168
+ className: classNames("".concat(baseCls, "-container-content-icon"), hashId),
169
+ src: element.icon,
170
+ width: 56
171
+ }) : null, /*#__PURE__*/ React.createElement("div", {
172
+ style: {
173
+ flex: 1,
174
+ minWidth: 0
175
+ }
176
+ }, /*#__PURE__*/ React.createElement("a", {
177
+ href: element === null || element === void 0 ? void 0 : element.url,
178
+ className: classNames("".concat(baseCls, "-container-content-title"), hashId),
179
+ onClick: function(e) {
180
+ e.stopPropagation();
181
+ e.preventDefault();
182
+ if (typeof window === 'undefined') return;
183
+ window.open(element === null || element === void 0 ? void 0 : element.url);
184
+ },
185
+ download: element.title || element.name || 'no title'
186
+ }, element.title || element.name || 'no title'), /*#__PURE__*/ React.createElement("div", {
187
+ className: classNames("".concat(baseCls, "-container-content-description"), hashId)
188
+ }, element.description ? element.description : element === null || element === void 0 ? void 0 : element.url), /*#__PURE__*/ React.createElement("div", {
189
+ className: classNames("".concat(baseCls, "-container-content-collaborators"), hashId)
190
+ }, ((_element_otherProps = element.otherProps) === null || _element_otherProps === void 0 ? void 0 : _element_otherProps.collaborators) ? /*#__PURE__*/ React.createElement("div", null, /*#__PURE__*/ React.createElement(AvatarList, {
191
+ displayList: ((_element_otherProps1 = element.otherProps) === null || _element_otherProps1 === void 0 ? void 0 : (_element_otherProps_collaborators = _element_otherProps1.collaborators) === null || _element_otherProps_collaborators === void 0 ? void 0 : _element_otherProps_collaborators.map(function(item) {
192
+ var _Object_keys, _Object_values;
193
+ return {
194
+ name: (_Object_keys = Object.keys(item)) === null || _Object_keys === void 0 ? void 0 : _Object_keys.at(0),
195
+ collaboratorNumber: ((_Object_values = Object.values(item)) === null || _Object_values === void 0 ? void 0 : _Object_values.at(0)) || 0
196
+ };
197
+ }).slice(0, 5)) || []
198
+ })) : /*#__PURE__*/ React.createElement("div", null), ((_element_otherProps2 = element.otherProps) === null || _element_otherProps2 === void 0 ? void 0 : _element_otherProps2.updateTime) ? /*#__PURE__*/ React.createElement("div", {
199
+ className: classNames("".concat(baseCls, "-container-content-updateTime"), hashId),
200
+ style: {
201
+ color: 'rgba(0,0,0,0.45)',
202
+ fontSize: 12
203
+ }
204
+ }, element.otherProps.updateTime) : null)))), /*#__PURE__*/ React.createElement("div", {
205
+ style: {
206
+ display: 'flex',
207
+ height: '100%',
208
+ minWidth: '4px',
209
+ minHeight: '100px',
210
+ fontSize: 60,
211
+ lineHeight: '100px'
212
+ }
213
+ }, children.at(-1)))));
214
+ });
215
+ ReadonlyLinkCard.displayName = 'ReadonlyLinkCard';
@@ -75,10 +75,17 @@ export var ListContext = /*#__PURE__*/ React.createContext(null);
75
75
  */ export var List = function(param) {
76
76
  var element = param.element, attributes = param.attributes, children = param.children;
77
77
  var _element_children;
78
+ // 支持新的列表类型和向后兼容
79
+ // 新格式:numbered-list 或 bulleted-list
80
+ // 旧格式:list 类型,通过 order 属性判断
81
+ var isOrdered = element.type === 'numbered-list' || element.type === 'list' && element.order === true;
82
+ // 获取 task 属性(支持旧格式和新格式)
83
+ var task = element.task;
78
84
  debugInfo('List - 渲染列表', {
79
- order: element.order,
80
- task: element.task,
81
- start: element.start,
85
+ type: element.type,
86
+ isOrdered: isOrdered,
87
+ task: task,
88
+ start: isOrdered ? element.start : undefined,
82
89
  childrenCount: (_element_children = element.children) === null || _element_children === void 0 ? void 0 : _element_children.length
83
90
  });
84
91
  var _useEditorStore = useEditorStore(), store = _useEditorStore.store, markdownContainerRef = _useEditorStore.markdownContainerRef;
@@ -86,12 +93,16 @@ export var ListContext = /*#__PURE__*/ React.createContext(null);
86
93
  var baseCls = context.getPrefixCls('agentic-md-editor-list');
87
94
  var _useStyle = useStyle(baseCls), wrapSSR = _useStyle.wrapSSR, hashId = _useStyle.hashId;
88
95
  var listContent = React.useMemo(function() {
89
- var tag = element.order ? 'ol' : 'ul';
96
+ // 支持新的列表类型和向后兼容
97
+ var isOrdered = element.type === 'numbered-list' || element.type === 'list' && element.order === true;
98
+ var task = element.task;
99
+ var start = isOrdered ? element.start : undefined;
100
+ var tag = isOrdered ? 'ol' : 'ul';
90
101
  debugInfo('List - useMemo 渲染', {
91
102
  tag: tag,
92
- order: element.order,
93
- start: element.start,
94
- task: element.task
103
+ type: element.type,
104
+ start: start,
105
+ task: task
95
106
  });
96
107
  return wrapSSR(/*#__PURE__*/ React.createElement(ListContext.Provider, {
97
108
  value: {
@@ -105,13 +116,17 @@ export var ListContext = /*#__PURE__*/ React.createContext(null);
105
116
  debugInfo('List - 拖拽开始');
106
117
  store.dragStart(e, markdownContainerRef.current);
107
118
  }
108
- }), /*#__PURE__*/ createElement(tag, _define_property({
109
- className: classNames(baseCls, hashId, element.order ? 'ol' : 'ul'),
110
- start: element.start
111
- }, 'data-task', element.task ? 'true' : undefined), children))));
119
+ }), /*#__PURE__*/ createElement(tag, _object_spread({
120
+ className: classNames(baseCls, hashId, isOrdered ? 'ol' : 'ul')
121
+ }, start !== undefined && {
122
+ start: start
123
+ }, task && {
124
+ 'data-task': 'true'
125
+ }), children))));
112
126
  }, [
113
- element.task,
127
+ element.type,
114
128
  element.order,
129
+ element.task,
115
130
  element.start,
116
131
  element.children,
117
132
  baseCls,
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import { ElementProps, ListNode } from '../../../el';
3
+ /**
4
+ * ReadonlyList 组件 - 只读列表预览组件
5
+ *
6
+ * 专门针对 readonly 模式优化的列表组件,移除了拖拽功能等编辑相关功能。
7
+ * 简化渲染逻辑,提升预览模式性能。
8
+ *
9
+ * @component
10
+ * @description 只读列表预览组件,用于预览模式下的列表渲染
11
+ * @param {ElementProps<ListNode>} props - 组件属性
12
+ * @param {ListNode} props.element - 列表节点元素
13
+ * @param {React.ReactNode} props.children - 子组件内容
14
+ * @param {Object} props.attributes - 元素属性
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * <ReadonlyList
19
+ * element={listNode}
20
+ * attributes={attributes}
21
+ * >
22
+ * 列表项内容
23
+ * </ReadonlyList>
24
+ * ```
25
+ *
26
+ * @returns {React.ReactElement} 渲染的只读列表组件
27
+ *
28
+ * @remarks
29
+ * - 移除拖拽相关事件处理
30
+ * - 使用 React.memo 优化性能
31
+ * - 保持预览模式的视觉效果
32
+ */
33
+ export declare const ReadonlyList: React.FC<ElementProps<ListNode>>;
@@ -0,0 +1,93 @@
1
+ function _define_property(obj, key, value) {
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value: value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
13
+ }
14
+ function _object_spread(target) {
15
+ for(var i = 1; i < arguments.length; i++){
16
+ var source = arguments[i] != null ? arguments[i] : {};
17
+ var ownKeys = Object.keys(source);
18
+ if (typeof Object.getOwnPropertySymbols === "function") {
19
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
20
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
21
+ }));
22
+ }
23
+ ownKeys.forEach(function(key) {
24
+ _define_property(target, key, source[key]);
25
+ });
26
+ }
27
+ return target;
28
+ }
29
+ import { ConfigProvider } from "antd";
30
+ import classNames from "classnames";
31
+ import React, { createElement, useContext } from "react";
32
+ import { debugInfo } from "../../../../Utils/debugUtils";
33
+ import { useStyle } from "./style";
34
+ /**
35
+ * ReadonlyList 组件 - 只读列表预览组件
36
+ *
37
+ * 专门针对 readonly 模式优化的列表组件,移除了拖拽功能等编辑相关功能。
38
+ * 简化渲染逻辑,提升预览模式性能。
39
+ *
40
+ * @component
41
+ * @description 只读列表预览组件,用于预览模式下的列表渲染
42
+ * @param {ElementProps<ListNode>} props - 组件属性
43
+ * @param {ListNode} props.element - 列表节点元素
44
+ * @param {React.ReactNode} props.children - 子组件内容
45
+ * @param {Object} props.attributes - 元素属性
46
+ *
47
+ * @example
48
+ * ```tsx
49
+ * <ReadonlyList
50
+ * element={listNode}
51
+ * attributes={attributes}
52
+ * >
53
+ * 列表项内容
54
+ * </ReadonlyList>
55
+ * ```
56
+ *
57
+ * @returns {React.ReactElement} 渲染的只读列表组件
58
+ *
59
+ * @remarks
60
+ * - 移除拖拽相关事件处理
61
+ * - 使用 React.memo 优化性能
62
+ * - 保持预览模式的视觉效果
63
+ */ export var ReadonlyList = /*#__PURE__*/ React.memo(function(param) {
64
+ var element = param.element, attributes = param.attributes, children = param.children;
65
+ var _element_children;
66
+ var isOrdered = element.type === 'numbered-list';
67
+ var isBulleted = element.type === 'bulleted-list';
68
+ debugInfo('ReadonlyList - 渲染只读列表', {
69
+ type: element.type,
70
+ isOrdered: isOrdered,
71
+ task: isBulleted ? element.task : undefined,
72
+ start: isOrdered ? element.start : undefined,
73
+ childrenCount: (_element_children = element.children) === null || _element_children === void 0 ? void 0 : _element_children.length
74
+ });
75
+ var context = useContext(ConfigProvider.ConfigContext);
76
+ var baseCls = context.getPrefixCls('agentic-md-editor-list');
77
+ var _useStyle = useStyle(baseCls), wrapSSR = _useStyle.wrapSSR, hashId = _useStyle.hashId;
78
+ var tag = isOrdered ? 'ol' : 'ul';
79
+ debugInfo('ReadonlyList - 渲染', {
80
+ tag: tag,
81
+ type: element.type,
82
+ start: isOrdered ? element.start : undefined,
83
+ task: isBulleted ? element.task : undefined
84
+ });
85
+ return wrapSSR(/*#__PURE__*/ React.createElement("div", _object_spread({
86
+ className: classNames("".concat(baseCls, "-container"), hashId, 'relative'),
87
+ "data-be": 'list'
88
+ }, attributes), /*#__PURE__*/ createElement(tag, _define_property({
89
+ className: classNames(baseCls, hashId, isOrdered ? 'ol' : 'ul'),
90
+ start: isOrdered ? element.start : undefined
91
+ }, 'data-task', isBulleted && element.task ? 'true' : undefined), children)));
92
+ });
93
+ ReadonlyList.displayName = 'ReadonlyList';
@@ -0,0 +1,35 @@
1
+ import React from 'react';
2
+ import { ElementProps, ListItemNode } from '../../../el';
3
+ /**
4
+ * ReadonlyListItem 组件 - 只读列表项预览组件
5
+ *
6
+ * 专门针对 readonly 模式优化的列表项组件,移除了编辑相关功能。
7
+ * 简化渲染逻辑,提升预览模式性能。
8
+ *
9
+ * @component
10
+ * @description 只读列表项预览组件,用于预览模式下的列表项渲染
11
+ * @param {ElementProps<ListItemNode>} props - 组件属性
12
+ * @param {ListItemNode} props.element - 列表项节点元素
13
+ * @param {React.ReactNode} props.children - 子组件内容
14
+ * @param {Object} props.attributes - 元素属性
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * <ReadonlyListItem
19
+ * element={listItemNode}
20
+ * attributes={attributes}
21
+ * >
22
+ * 列表项内容
23
+ * </ReadonlyListItem>
24
+ * ```
25
+ *
26
+ * @returns {React.ReactElement} 渲染的只读列表项组件
27
+ *
28
+ * @remarks
29
+ * - 移除拖拽相关事件处理
30
+ * - 任务列表的复选框在预览模式下只读
31
+ * - 移除提及用户编辑功能
32
+ * - 使用 React.memo 优化性能
33
+ * - 保持预览模式的视觉效果
34
+ */
35
+ export declare const ReadonlyListItem: React.FC<ElementProps<ListItemNode>>;