@ant-design/agentic-ui 2.27.6 → 2.27.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 (68) hide show
  1. package/dist/Bubble/Bubble.js +7 -1
  2. package/dist/Components/effects/EffectPlayer.js +4 -5
  3. package/dist/History/components/HistoryItem.js +13 -30
  4. package/dist/History/components/LoadMoreComponent.js +3 -5
  5. package/dist/History/components/NewChatComponent.js +6 -10
  6. package/dist/History/menu.js +6 -12
  7. package/dist/MarkdownEditor/editor/Editor.js +5 -11
  8. package/dist/MarkdownEditor/editor/components/MediaErrorLink.d.ts +16 -0
  9. package/dist/MarkdownEditor/editor/components/MediaErrorLink.js +90 -0
  10. package/dist/MarkdownEditor/editor/elements/{Blockquote.d.ts → Blockquote/index.d.ts} +1 -1
  11. package/dist/MarkdownEditor/editor/elements/{Blockquote.js → Blockquote/index.js} +1 -1
  12. package/dist/MarkdownEditor/editor/elements/{FootnoteDefinition.d.ts → FootnoteDefinition/index.d.ts} +1 -1
  13. package/dist/MarkdownEditor/editor/elements/{FootnoteDefinition.js → FootnoteDefinition/index.js} +2 -2
  14. package/dist/MarkdownEditor/editor/elements/{FootnoteReference.d.ts → FootnoteReference/index.d.ts} +1 -1
  15. package/dist/MarkdownEditor/editor/elements/{FootnoteReference.js → FootnoteReference/index.js} +3 -3
  16. package/dist/MarkdownEditor/editor/elements/{Head.d.ts → Head/index.d.ts} +1 -1
  17. package/dist/MarkdownEditor/editor/elements/{Head.js → Head/index.js} +4 -4
  18. package/dist/MarkdownEditor/editor/elements/Image/index.d.ts +11 -10
  19. package/dist/MarkdownEditor/editor/elements/Image/index.js +55 -148
  20. package/dist/MarkdownEditor/editor/elements/{Media.d.ts → Media/index.d.ts} +1 -1
  21. package/dist/MarkdownEditor/editor/elements/{Media.js → Media/index.js} +36 -107
  22. package/dist/MarkdownEditor/editor/elements/Mermaid/index.d.ts +3 -0
  23. package/dist/MarkdownEditor/editor/elements/{Mermaid.js → Mermaid/index.js} +13 -28
  24. package/dist/MarkdownEditor/editor/elements/Mermaid/style.d.ts +10 -0
  25. package/dist/MarkdownEditor/editor/elements/Mermaid/style.js +144 -0
  26. package/dist/MarkdownEditor/editor/elements/{Paragraph.d.ts → Paragraph/index.d.ts} +1 -1
  27. package/dist/MarkdownEditor/editor/elements/{Paragraph.js → Paragraph/index.js} +4 -4
  28. package/dist/MarkdownEditor/editor/elements/{Schema.js → Schema/index.js} +3 -3
  29. package/dist/MarkdownInputField/AttachmentButton/AttachmentButtonPopover.js +8 -13
  30. package/dist/MarkdownInputField/MarkdownInputField.js +4 -7
  31. package/dist/Plugins/code/components/AceEditor.js +5 -14
  32. package/dist/Plugins/mermaid/Mermaid.d.ts +0 -7
  33. package/dist/Plugins/mermaid/Mermaid.js +4 -501
  34. package/dist/Plugins/mermaid/MermaidFallback.d.ts +5 -0
  35. package/dist/Plugins/mermaid/MermaidFallback.js +21 -0
  36. package/dist/Plugins/mermaid/MermaidRendererImpl.d.ts +9 -0
  37. package/dist/Plugins/mermaid/MermaidRendererImpl.js +39 -0
  38. package/dist/Plugins/mermaid/style.d.ts +10 -0
  39. package/dist/Plugins/mermaid/style.js +219 -0
  40. package/dist/Plugins/mermaid/types.d.ts +1 -0
  41. package/dist/Plugins/mermaid/types.js +1 -0
  42. package/dist/Plugins/mermaid/useMermaidRender.d.ts +8 -0
  43. package/dist/Plugins/mermaid/useMermaidRender.js +303 -0
  44. package/dist/Plugins/mermaid/utils.d.ts +14 -0
  45. package/dist/Plugins/mermaid/utils.js +223 -0
  46. package/dist/TaskList/index.js +4 -8
  47. package/dist/ToolUseBar/BarItem/Content.js +5 -6
  48. package/dist/ToolUseBar/BarItem/index.js +6 -14
  49. package/dist/ToolUseBar/index.js +6 -13
  50. package/dist/ToolUseBarThink/index.js +6 -11
  51. package/dist/Utils/debugUtils.d.ts +9 -0
  52. package/dist/Utils/debugUtils.js +42 -0
  53. package/dist/index.d.ts +1 -0
  54. package/package.json +1 -1
  55. package/dist/MarkdownEditor/editor/elements/Mermaid.d.ts +0 -3
  56. /package/dist/MarkdownEditor/editor/elements/{Break.d.ts → Break/index.d.ts} +0 -0
  57. /package/dist/MarkdownEditor/editor/elements/{Break.js → Break/index.js} +0 -0
  58. /package/dist/MarkdownEditor/editor/elements/{Code.d.ts → Code/index.d.ts} +0 -0
  59. /package/dist/MarkdownEditor/editor/elements/{Code.js → Code/index.js} +0 -0
  60. /package/dist/MarkdownEditor/editor/elements/{ErrorBoundary.d.ts → ErrorBoundary/index.d.ts} +0 -0
  61. /package/dist/MarkdownEditor/editor/elements/{ErrorBoundary.js → ErrorBoundary/index.js} +0 -0
  62. /package/dist/MarkdownEditor/editor/elements/{Hr.d.ts → Hr/index.d.ts} +0 -0
  63. /package/dist/MarkdownEditor/editor/elements/{Hr.js → Hr/index.js} +0 -0
  64. /package/dist/MarkdownEditor/editor/elements/{InlineKatex.d.ts → InlineKatex/index.d.ts} +0 -0
  65. /package/dist/MarkdownEditor/editor/elements/{InlineKatex.js → InlineKatex/index.js} +0 -0
  66. /package/dist/MarkdownEditor/editor/elements/{Katex.d.ts → Katex/index.d.ts} +0 -0
  67. /package/dist/MarkdownEditor/editor/elements/{Katex.js → Katex/index.js} +0 -0
  68. /package/dist/MarkdownEditor/editor/elements/{Schema.d.ts → Schema/index.d.ts} +0 -0
@@ -52,6 +52,7 @@ function _object_spread_props(target, source) {
52
52
  }
53
53
  import { memo } from "react";
54
54
  import React from "react";
55
+ import { debugInfo } from "../Utils/debugUtils";
55
56
  import { AIBubble } from "./AIBubble";
56
57
  import { useSchemaEditorBridge } from "./schema-editor";
57
58
  import { UserBubble } from "./UserBubble";
@@ -104,11 +105,12 @@ import { UserBubble } from "./UserBubble";
104
105
  */ export var Bubble = /*#__PURE__*/ memo(function(props) {
105
106
  var originData = props.originData;
106
107
  /** 判断是否有可编辑的字符串内容 */ var hasEditableContent = !!(originData === null || originData === void 0 ? void 0 : originData.originContent) || typeof (originData === null || originData === void 0 ? void 0 : originData.content) === 'string';
107
- /** 获取初始内容:优先 originContent,回退到字符串 content */ var initialContent = hasEditableContent ? (originData === null || originData === void 0 ? void 0 : originData.content) || (originData === null || originData === void 0 ? void 0 : originData.originContent) : '';
108
+ /** 获取初始内容:优先 originContent,回退到字符串 content */ var initialContent = hasEditableContent ? originData === null || originData === void 0 ? void 0 : originData.content : '';
108
109
  /**
109
110
  * Schema Editor Bridge Hook
110
111
  * @description 开发环境自动启用,生产环境返回原始内容
111
112
  */ var content = useSchemaEditorBridge(props.id, initialContent).content;
113
+ debugInfo('useSchemaEditorBridge', content);
112
114
  /** 根据角色自动选择组件 */ var isUserMessage = props.placement === undefined ? (originData === null || originData === void 0 ? void 0 : originData.role) === 'user' : props.placement === 'right';
113
115
  /** 构建传递给子组件的 props */ var bubbleProps = _object_spread_props(_object_spread({}, props), {
114
116
  placement: props.placement || (isUserMessage ? 'right' : 'left'),
@@ -116,6 +118,10 @@ import { UserBubble } from "./UserBubble";
116
118
  content: content
117
119
  }) : undefined
118
120
  });
121
+ debugInfo('bubbleProps', {
122
+ isUserMessage: isUserMessage,
123
+ bubbleProps: bubbleProps
124
+ });
119
125
  // 根据角色分发到对应的子组件
120
126
  if (isUserMessage) {
121
127
  return /*#__PURE__*/ React.createElement(UserBubble, _object_spread_props(_object_spread({}, bubbleProps), {
@@ -124,8 +124,9 @@ function _unsupported_iterable_to_array(o, minLen) {
124
124
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
125
125
  }
126
126
  import { Player } from "@galacean/effects";
127
- import React, { useCallback, useEffect, useLayoutEffect, useRef, useState } from "react";
127
+ import React, { useEffect, useLayoutEffect, useRef, useState } from "react";
128
128
  import { useLatest } from "react-use";
129
+ import { useRefFunction } from "../../Hooks/useRefFunction";
129
130
  function EffectPlayer(_param) {
130
131
  var sceneUrl = _param.sceneUrl, downgradeImage = _param.downgradeImage, _param_autoplay = _param.autoplay, autoplay = _param_autoplay === void 0 ? true : _param_autoplay, _param_size = _param.// TODO: 添加禁止循环播放功能
131
132
  // loop = true,
@@ -149,11 +150,9 @@ function EffectPlayer(_param) {
149
150
  // ==================== Downgrade Image ====================
150
151
  var downgradeImageRef = useLatest(downgradeImage);
151
152
  var _useState = _sliced_to_array(useState(), 2), fallbackImage = _useState[0], setFallbackImage = _useState[1];
152
- var onError = useCallback(function() {
153
+ var onError = useRefFunction(function() {
153
154
  setFallbackImage(downgradeImageRef.current);
154
- }, [
155
- downgradeImageRef
156
- ]);
155
+ });
157
156
  // ==================== Create Player ====================
158
157
  useLayoutEffect(function() {
159
158
  // create player
@@ -199,6 +199,7 @@ function _ts_generator(thisArg, body) {
199
199
  import { CloseCircleFill, FileCheckFill, WarningFill } from "@sofa-design/icons";
200
200
  import { Checkbox, ConfigProvider, Divider, Tooltip } from "antd";
201
201
  import React, { useContext } from "react";
202
+ import { useRefFunction } from "../../Hooks/useRefFunction";
202
203
  import { I18nContext } from "../../I18n";
203
204
  import { useStyle } from "../style";
204
205
  import { TaskStatusData } from "../types/HistoryData";
@@ -310,27 +311,21 @@ var getMaskStyle = function(isOverflow) {
310
311
  selectedIds,
311
312
  item.sessionId
312
313
  ]);
313
- var handleClick = React.useCallback(function(e) {
314
+ var handleClick = useRefFunction(function(e) {
314
315
  e.stopPropagation();
315
316
  e.preventDefault();
316
317
  onClick(item.sessionId, item);
317
- }, [
318
- onClick,
319
- item
320
- ]);
318
+ });
321
319
  /**
322
320
  * 处理复选框状态变化事件
323
321
  * @param e - 复选框变化事件对象
324
- */ var handleCheckboxChange = React.useCallback(function(e) {
322
+ */ var handleCheckboxChange = useRefFunction(function(e) {
325
323
  e.stopPropagation();
326
324
  onSelectionChange(item.sessionId, e.target.checked);
327
- }, [
328
- onSelectionChange,
329
- item.sessionId
330
- ]);
325
+ });
331
326
  /**
332
327
  * 处理删除历史记录项事件
333
- */ var handleDelete = React.useCallback(/*#__PURE__*/ _async_to_generator(function() {
328
+ */ var handleDelete = useRefFunction(/*#__PURE__*/ _async_to_generator(function() {
334
329
  return _ts_generator(this, function(_state) {
335
330
  switch(_state.label){
336
331
  case 0:
@@ -351,10 +346,7 @@ var getMaskStyle = function(isOverflow) {
351
346
  ];
352
347
  }
353
348
  });
354
- }), [
355
- onDeleteItem,
356
- item.sessionId
357
- ]);
349
+ }));
358
350
  /**
359
351
  * 渲染单行模式的历史记录项
360
352
  * @returns 历史记录项组件
@@ -496,27 +488,21 @@ HistoryItemSingle.displayName = 'HistoryItemSingle';
496
488
  /**
497
489
  * 处理点击事件
498
490
  * @param e - 鼠标点击事件对象
499
- */ var handleClick = React.useCallback(function(e) {
491
+ */ var handleClick = useRefFunction(function(e) {
500
492
  e.stopPropagation();
501
493
  e.preventDefault();
502
494
  onClick(item.sessionId, item);
503
- }, [
504
- onClick,
505
- item
506
- ]);
495
+ });
507
496
  /**
508
497
  * 处理复选框状态变化事件
509
498
  * @param e - 复选框变化事件对象
510
- */ var handleCheckboxChange = React.useCallback(function(e) {
499
+ */ var handleCheckboxChange = useRefFunction(function(e) {
511
500
  e.stopPropagation();
512
501
  onSelectionChange(item.sessionId, e.target.checked);
513
- }, [
514
- onSelectionChange,
515
- item.sessionId
516
- ]);
502
+ });
517
503
  /**
518
504
  * 处理删除事件
519
- */ var handleDelete = React.useCallback(/*#__PURE__*/ _async_to_generator(function() {
505
+ */ var handleDelete = useRefFunction(/*#__PURE__*/ _async_to_generator(function() {
520
506
  return _ts_generator(this, function(_state) {
521
507
  switch(_state.label){
522
508
  case 0:
@@ -537,10 +523,7 @@ HistoryItemSingle.displayName = 'HistoryItemSingle';
537
523
  ];
538
524
  }
539
525
  });
540
- }), [
541
- onDeleteItem,
542
- item.sessionId
543
- ]);
526
+ }));
544
527
  /**
545
528
  * 渲染多行模式的历史记录项
546
529
  * @returns 历史记录项组件
@@ -197,7 +197,7 @@ function _ts_generator(thisArg, body) {
197
197
  }
198
198
  }
199
199
  import { EllipsisOutlined, LoadingOutlined } from "@ant-design/icons";
200
- import React, { useCallback, useContext, useState } from "react";
200
+ import React, { useContext, useState } from "react";
201
201
  import { useRefFunction } from "../../Hooks/useRefFunction";
202
202
  import { I18nContext } from "../../I18n";
203
203
  /**
@@ -298,14 +298,12 @@ export var HistoryLoadMore = function(param) {
298
298
  }
299
299
  });
300
300
  }));
301
- var handleKeyDown = useCallback(function(event) {
301
+ var handleKeyDown = useRefFunction(function(event) {
302
302
  if (event.key === 'Enter' || event.key === ' ') {
303
303
  event.preventDefault();
304
304
  onClickFn();
305
305
  }
306
- }, [
307
- onClickFn
308
- ]);
306
+ });
309
307
  return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement("div", {
310
308
  className: "".concat(className),
311
309
  tabIndex: 0,
@@ -170,7 +170,8 @@ function _ts_generator(thisArg, body) {
170
170
  }
171
171
  import { AiAgentManagement } from "@sofa-design/icons";
172
172
  import { ConfigProvider } from "antd";
173
- import React, { useCallback, useContext, useState } from "react";
173
+ import React, { useContext, useState } from "react";
174
+ import { useRefFunction } from "../../Hooks/useRefFunction";
174
175
  import { I18nContext } from "../../I18n";
175
176
  import { useNewChatStyle } from "./NewChatComponent.style";
176
177
  /**
@@ -208,7 +209,7 @@ import { useNewChatStyle } from "./NewChatComponent.style";
208
209
  var _useNewChatStyle = useNewChatStyle(menuPrefixCls), wrapSSR = _useNewChatStyle.wrapSSR, hashId = _useNewChatStyle.hashId;
209
210
  var locale = useContext(I18nContext).locale;
210
211
  var _useState = _sliced_to_array(useState(false), 2), loading = _useState[0], setLoading = _useState[1];
211
- var handleClick = useCallback(/*#__PURE__*/ _async_to_generator(function() {
212
+ var handleClick = useRefFunction(/*#__PURE__*/ _async_to_generator(function() {
212
213
  return _ts_generator(this, function(_state) {
213
214
  switch(_state.label){
214
215
  case 0:
@@ -245,18 +246,13 @@ import { useNewChatStyle } from "./NewChatComponent.style";
245
246
  ];
246
247
  }
247
248
  });
248
- }), [
249
- loading,
250
- onNewChat
251
- ]);
252
- var handleKeyDown = useCallback(function(event) {
249
+ }));
250
+ var handleKeyDown = useRefFunction(function(event) {
253
251
  if (event.key === 'Enter' || event.key === ' ') {
254
252
  event.preventDefault();
255
253
  handleClick();
256
254
  }
257
- }, [
258
- handleClick
259
- ]);
255
+ });
260
256
  return wrapSSR(/*#__PURE__*/ React.createElement("div", {
261
257
  role: "button",
262
258
  tabIndex: 0,
@@ -55,24 +55,20 @@ function _object_without_properties_loose(source, excluded) {
55
55
  }
56
56
  import { ConfigProvider, Spin } from "antd";
57
57
  import classNames from "classnames";
58
- import React, { useCallback, useContext } from "react";
58
+ import React, { useContext } from "react";
59
+ import { useRefFunction } from "../Hooks/useRefFunction";
59
60
  import { useStyle } from "./style";
60
61
  // 菜单项组件
61
62
  var MenuItem = function(param) {
62
63
  var item = param.item, isSelected = param.isSelected, _param_inlineIndent = param.inlineIndent, inlineIndent = _param_inlineIndent === void 0 ? 0 : _param_inlineIndent, onSelect = param.onSelect, _param_level = param.level, level = _param_level === void 0 ? 0 : _param_level, prefixCls = param.prefixCls, hashId = param.hashId, currentSelectedKey = param.currentSelectedKey, customClassNames = param.classNames;
63
64
  var baseClass = "".concat(prefixCls, "-item");
64
- var handleClick = useCallback(function() {
65
+ var handleClick = useRefFunction(function() {
65
66
  if (!item.disabled) {
66
67
  var _item_onClick;
67
68
  onSelect(item.key);
68
69
  (_item_onClick = item.onClick) === null || _item_onClick === void 0 ? void 0 : _item_onClick.call(item);
69
70
  }
70
- }, [
71
- item.disabled,
72
- item.key,
73
- item.onClick,
74
- onSelect
75
- ]);
71
+ });
76
72
  // 如果是分组且有子项,并且嵌套层级小于2
77
73
  if (item.type === 'group' && item.children && level < 2) {
78
74
  return /*#__PURE__*/ React.createElement("div", {
@@ -134,13 +130,11 @@ var MenuItem = function(param) {
134
130
  var currentSelectedKey = selectedKeys && selectedKeys[0];
135
131
  // 直接使用传入的 items,支持最多双层嵌套
136
132
  var dataSource = items || [];
137
- var handleSelect = useCallback(function(key) {
133
+ var handleSelect = useRefFunction(function(key) {
138
134
  onSelect === null || onSelect === void 0 ? void 0 : onSelect({
139
135
  key: key
140
136
  });
141
- }, [
142
- onSelect
143
- ]);
137
+ });
144
138
  // 直接传递用户自定义的 classNames
145
139
  return wrapSSR(/*#__PURE__*/ React.createElement("div", _object_spread({
146
140
  className: classNames(prefixCls, hashId, className),
@@ -234,7 +234,7 @@ function _ts_generator(thisArg, body) {
234
234
  }
235
235
  import { useDebounceFn } from "@ant-design/pro-components";
236
236
  import classNames from "classnames";
237
- import React, { useCallback, useContext, useEffect, useMemo, useRef } from "react";
237
+ import React, { useContext, useEffect, useMemo, useRef } from "react";
238
238
  import { ErrorBoundary } from "react-error-boundary";
239
239
  import { Editor, Node, Range, Transforms } from "slate";
240
240
  import { Editable, ReactEditor, Slate } from "slate-react";
@@ -327,7 +327,7 @@ var defaultAllowedTypes = [
327
327
  // 用于标记是否已在当前渲染周期重置过索引
328
328
  var hasResetIndexRef = useRef(false);
329
329
  // 计算懒加载元素总数的函数
330
- var countLazyElements = useCallback(function(nodes) {
330
+ var countLazyElements = useRefFunction(function(nodes) {
331
331
  var count = 0;
332
332
  var traverse = function(nodeList) {
333
333
  nodeList.forEach(function(node) {
@@ -343,7 +343,7 @@ var defaultAllowedTypes = [
343
343
  };
344
344
  traverse(nodes);
345
345
  return count;
346
- }, []);
346
+ });
347
347
  var changedMark = useRef(false);
348
348
  var value = useRef([
349
349
  EditorUtils.p
@@ -969,7 +969,7 @@ var defaultAllowedTypes = [
969
969
  }
970
970
  }
971
971
  };
972
- var elementRenderElement = useCallback(function(eleProps) {
972
+ var elementRenderElement = useRefFunction(function(eleProps) {
973
973
  var _props_lazy;
974
974
  // 在每个渲染周期的第一次调用时重置索引
975
975
  if (!hasResetIndexRef.current) {
@@ -1045,13 +1045,7 @@ var defaultAllowedTypes = [
1045
1045
  }, renderedDom);
1046
1046
  }
1047
1047
  return renderedDom;
1048
- }, [
1049
- props.eleItemRender,
1050
- props.lazy,
1051
- plugins,
1052
- readonly,
1053
- countLazyElements
1054
- ]);
1048
+ });
1055
1049
  var renderMarkdownLeaf = useRefFunction(function(leafComponentProps) {
1056
1050
  var defaultDom = /*#__PURE__*/ React.createElement(MLeaf, _object_spread_props(_object_spread({}, leafComponentProps), {
1057
1051
  fncProps: props.fncProps,
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ /**
3
+ * 媒体加载失败时的错误链接组件属性
4
+ */
5
+ interface MediaErrorLinkProps {
6
+ /** 链接地址 */
7
+ url: string | undefined;
8
+ /** 备用链接地址 */
9
+ fallbackUrl?: string | undefined;
10
+ /** 显示文本 */
11
+ displayText: string;
12
+ /** 可选的样式覆盖 */
13
+ style?: React.CSSProperties;
14
+ }
15
+ export declare const MediaErrorLink: React.MemoExoticComponent<({ url, fallbackUrl, displayText, style, }: MediaErrorLinkProps) => React.JSX.Element>;
16
+ export {};
@@ -0,0 +1,90 @@
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 { ExclamationCircleOutlined } from "@ant-design/icons";
30
+ import { SquareArrowUpRight } from "@sofa-design/icons";
31
+ import React from "react";
32
+ import { useEditorStore } from "../store";
33
+ /**
34
+ * 媒体加载失败时的错误链接组件
35
+ *
36
+ * 当图片、视频或音频加载失败时,显示一个可点击的链接
37
+ * 支持自定义链接点击行为和打开方式
38
+ *
39
+ * @param props - 组件属性
40
+ * @returns 错误链接元素
41
+ *
42
+ * @example
43
+ * ```tsx
44
+ * <MediaErrorLink
45
+ * url="https://example.com/image.jpg"
46
+ * displayText="图片链接"
47
+ * />
48
+ * ```
49
+ */ var MediaErrorLinkComponent = function(param) {
50
+ var url = param.url, fallbackUrl = param.fallbackUrl, displayText = param.displayText, style = param.style;
51
+ var editorProps = useEditorStore().editorProps;
52
+ var handleClick = function(e) {
53
+ var _editorProps_linkConfig, _editorProps_linkConfig1;
54
+ var finalUrl = url || fallbackUrl;
55
+ if (!finalUrl) return;
56
+ e.stopPropagation();
57
+ e.preventDefault();
58
+ if ((_editorProps_linkConfig = editorProps.linkConfig) === null || _editorProps_linkConfig === void 0 ? void 0 : _editorProps_linkConfig.onClick) {
59
+ if (editorProps.linkConfig.onClick(finalUrl) === false) {
60
+ return;
61
+ }
62
+ }
63
+ if ((editorProps === null || editorProps === void 0 ? void 0 : (_editorProps_linkConfig1 = editorProps.linkConfig) === null || _editorProps_linkConfig1 === void 0 ? void 0 : _editorProps_linkConfig1.openInNewTab) !== false) {
64
+ window.open(finalUrl, '_blank');
65
+ } else {
66
+ window.open(finalUrl, '_self');
67
+ }
68
+ };
69
+ return /*#__PURE__*/ React.createElement("span", {
70
+ onClick: handleClick,
71
+ style: _object_spread({
72
+ color: '#1890ff',
73
+ textDecoration: 'underline',
74
+ wordBreak: 'break-all',
75
+ display: 'inline-flex',
76
+ alignItems: 'center',
77
+ gap: '8px',
78
+ maxWidth: '100%',
79
+ padding: '8px 12px',
80
+ border: '1px dashed #d9d9d9',
81
+ borderRadius: '6px',
82
+ backgroundColor: '#fafafa'
83
+ }, style)
84
+ }, /*#__PURE__*/ React.createElement(ExclamationCircleOutlined, {
85
+ style: {
86
+ color: '#faad14'
87
+ }
88
+ }), displayText, /*#__PURE__*/ React.createElement(SquareArrowUpRight, null));
89
+ };
90
+ export var MediaErrorLink = /*#__PURE__*/ React.memo(MediaErrorLinkComponent);
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { BlockQuoteNode, ElementProps } from '../../el';
2
+ import { BlockQuoteNode, ElementProps } from '../../../el';
3
3
  /**
4
4
  * Blockquote 组件 - 引用块组件
5
5
  *
@@ -51,7 +51,7 @@ function _object_spread_props(target, source) {
51
51
  return target;
52
52
  }
53
53
  import React from "react";
54
- import { useEditorStore } from "../store";
54
+ import { useEditorStore } from "../../store";
55
55
  /**
56
56
  * Blockquote 组件 - 引用块组件
57
57
  *
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- import { ElementProps, FootnoteDefinitionNode } from '../../el';
2
+ import { ElementProps, FootnoteDefinitionNode } from '../../../el';
3
3
  export declare const FootnoteDefinition: (props: ElementProps<FootnoteDefinitionNode>) => React.JSX.Element;
@@ -53,8 +53,8 @@ function _object_spread_props(target, source) {
53
53
  import { ExportOutlined } from "@ant-design/icons";
54
54
  import React, { useMemo } from "react";
55
55
  import { Node } from "slate";
56
- import { useEditorStore } from "../store";
57
- import { DragHandle } from "../tools/DragHandle";
56
+ import { useEditorStore } from "../../store";
57
+ import { DragHandle } from "../../tools/DragHandle";
58
58
  export var FootnoteDefinition = function(props) {
59
59
  var _useEditorStore = useEditorStore(), store = _useEditorStore.store, readonly = _useEditorStore.readonly, markdownContainerRef = _useEditorStore.markdownContainerRef;
60
60
  var element = props.element;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- import { ElementProps, FootnoteDefinitionNode } from '../../el';
2
+ import { ElementProps, FootnoteDefinitionNode } from '../../../el';
3
3
  export declare const FootnoteReference: (props: ElementProps<FootnoteDefinitionNode>) => React.JSX.Element;
@@ -98,9 +98,9 @@ function _unsupported_iterable_to_array(o, minLen) {
98
98
  }
99
99
  import React from "react";
100
100
  import { Node } from "slate";
101
- import { useSelStatus } from "../../hooks/editor";
102
- import { useEditorStore } from "../store";
103
- import { DragHandle } from "../tools/DragHandle";
101
+ import { useSelStatus } from "../../../hooks/editor";
102
+ import { useEditorStore } from "../../store";
103
+ import { DragHandle } from "../../tools/DragHandle";
104
104
  export var FootnoteReference = function(props) {
105
105
  var _useEditorStore = useEditorStore(), store = _useEditorStore.store, markdownContainerRef = _useEditorStore.markdownContainerRef;
106
106
  var _useSelStatus = _sliced_to_array(useSelStatus(props.element), 1), selected = _useSelStatus[0];
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { ElementProps, HeadNode } from '../../el';
2
+ import { ElementProps, HeadNode } from '../../../el';
3
3
  export declare function Head({ element, attributes, children, }: ElementProps<HeadNode>): React.DOMElement<{
4
4
  id: string;
5
5
  "data-be": string;
@@ -99,10 +99,10 @@ function _unsupported_iterable_to_array(o, minLen) {
99
99
  import classNames from "classnames";
100
100
  import React, { createElement } from "react";
101
101
  import { Node } from "slate";
102
- import { useSelStatus } from "../../hooks/editor";
103
- import { useEditorStore } from "../store";
104
- import { DragHandle } from "../tools/DragHandle";
105
- import { slugify } from "../utils/dom";
102
+ import { useSelStatus } from "../../../hooks/editor";
103
+ import { useEditorStore } from "../../store";
104
+ import { DragHandle } from "../../tools/DragHandle";
105
+ import { slugify } from "../../utils/dom";
106
106
  export function Head(param) {
107
107
  var element = param.element, attributes = param.attributes, children = param.children;
108
108
  var _useEditorStore = useEditorStore(), _useEditorStore_store = _useEditorStore.store, store = _useEditorStore_store === void 0 ? {} : _useEditorStore_store, markdownContainerRef = _useEditorStore.markdownContainerRef;
@@ -1,21 +1,21 @@
1
- import { ImageProps } from 'antd';
2
1
  import React from 'react';
3
2
  import { ElementProps, MediaNode } from '../../../el';
4
3
  /**
5
- * 图片组件,带有错误处理功能
4
+ * 只读模式下的图片组件,带有错误处理功能
6
5
  * 如果图片加载失败,将显示可点击的链接
7
6
  *
8
7
  * @component
9
- * @param props - 图片属性,继承自 ImageProps 接口
10
- * @param props.src - 图片的源地址
8
+ * @param props - 图片属性
11
9
  * @returns 返回一个图片组件,如果加载失败则返回一个链接
12
- *
13
- * @example
14
- * ```tsx
15
- * <ImageAndError src="https://example.com/image.jpg" alt="示例图片" />
16
- * ```
17
10
  */
18
- export declare const ImageAndError: React.FC<ImageProps>;
11
+ interface ReadonlyImageProps {
12
+ src?: string;
13
+ alt?: string;
14
+ width?: number | string;
15
+ height?: number | string;
16
+ crossOrigin?: 'anonymous' | 'use-credentials' | '';
17
+ }
18
+ export declare const ReadonlyImage: React.FC<ReadonlyImageProps>;
19
19
  /**
20
20
  * 修复图片大小的问题
21
21
  * @param props
@@ -34,3 +34,4 @@ export declare const ResizeImage: ({ onResizeStart, onResizeStop, selected, defa
34
34
  selected?: boolean | undefined;
35
35
  }) => React.JSX.Element;
36
36
  export declare function EditorImage({ element, attributes, children, }: ElementProps<MediaNode>): React.JSX.Element;
37
+ export {};