react-ai-renderer 0.1.1 → 0.1.3

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 (119) hide show
  1. package/dist/MermaidRenderer-07b34bcf.js +170 -0
  2. package/dist/{MermaidRenderer-cdeab8f8.js.map → MermaidRenderer-07b34bcf.js.map} +1 -1
  3. package/dist/MermaidRenderer-0aacea2f.js +170 -0
  4. package/dist/MermaidRenderer-0aacea2f.js.map +1 -0
  5. package/dist/MermaidRenderer-1c06834c.js +170 -0
  6. package/dist/MermaidRenderer-1c06834c.js.map +1 -0
  7. package/dist/MermaidRenderer-22b8cb81.js +170 -0
  8. package/dist/MermaidRenderer-22b8cb81.js.map +1 -0
  9. package/dist/MermaidRenderer-2438ceb1.js +170 -0
  10. package/dist/MermaidRenderer-2438ceb1.js.map +1 -0
  11. package/dist/MermaidRenderer-2f6d93a2.js +170 -0
  12. package/dist/MermaidRenderer-2f6d93a2.js.map +1 -0
  13. package/dist/MermaidRenderer-447e20f0.js +170 -0
  14. package/dist/MermaidRenderer-447e20f0.js.map +1 -0
  15. package/dist/MermaidRenderer-456abbe8.js +170 -0
  16. package/dist/MermaidRenderer-456abbe8.js.map +1 -0
  17. package/dist/MermaidRenderer-45a1e235.js +170 -0
  18. package/dist/MermaidRenderer-45a1e235.js.map +1 -0
  19. package/dist/MermaidRenderer-4b75a3e5.js +172 -0
  20. package/dist/{MermaidRenderer-1f4c47aa.js.map → MermaidRenderer-4b75a3e5.js.map} +1 -1
  21. package/dist/MermaidRenderer-59cd2aac.js +172 -0
  22. package/dist/MermaidRenderer-59cd2aac.js.map +1 -0
  23. package/dist/MermaidRenderer-61954263.js +172 -0
  24. package/dist/MermaidRenderer-61954263.js.map +1 -0
  25. package/dist/{MermaidRenderer-1f4c47aa.js → MermaidRenderer-62cbf217.js} +1 -1
  26. package/dist/MermaidRenderer-62cbf217.js.map +1 -0
  27. package/dist/MermaidRenderer-6323359c.js +170 -0
  28. package/dist/MermaidRenderer-6323359c.js.map +1 -0
  29. package/dist/{MermaidRenderer-cdeab8f8.js → MermaidRenderer-680adac3.js} +1 -1
  30. package/dist/MermaidRenderer-680adac3.js.map +1 -0
  31. package/dist/MermaidRenderer-771db0f2.js +172 -0
  32. package/dist/MermaidRenderer-771db0f2.js.map +1 -0
  33. package/dist/MermaidRenderer-7a5bd531.js +170 -0
  34. package/dist/MermaidRenderer-7a5bd531.js.map +1 -0
  35. package/dist/MermaidRenderer-94fceb26.js +172 -0
  36. package/dist/MermaidRenderer-94fceb26.js.map +1 -0
  37. package/dist/MermaidRenderer-a6a464ec.js +172 -0
  38. package/dist/MermaidRenderer-a6a464ec.js.map +1 -0
  39. package/dist/MermaidRenderer-a8c58389.js +172 -0
  40. package/dist/MermaidRenderer-a8c58389.js.map +1 -0
  41. package/dist/MermaidRenderer-b23c2eec.js +172 -0
  42. package/dist/MermaidRenderer-b23c2eec.js.map +1 -0
  43. package/dist/MermaidRenderer-b30dda58.js +170 -0
  44. package/dist/MermaidRenderer-b30dda58.js.map +1 -0
  45. package/dist/MermaidRenderer-b65fed60.js +172 -0
  46. package/dist/MermaidRenderer-b65fed60.js.map +1 -0
  47. package/dist/MermaidRenderer-c594187b.js +172 -0
  48. package/dist/MermaidRenderer-c594187b.js.map +1 -0
  49. package/dist/MermaidRenderer-c5f51ccf.js +172 -0
  50. package/dist/MermaidRenderer-c5f51ccf.js.map +1 -0
  51. package/dist/MermaidRenderer-cf69f9fc.js +172 -0
  52. package/dist/MermaidRenderer-cf69f9fc.js.map +1 -0
  53. package/dist/MermaidRenderer-fa15e3c7.js +172 -0
  54. package/dist/MermaidRenderer-fa15e3c7.js.map +1 -0
  55. package/dist/MermaidRenderer-fc75606f.js +170 -0
  56. package/dist/MermaidRenderer-fc75606f.js.map +1 -0
  57. package/dist/index-27d5e758.js +1399 -0
  58. package/dist/index-27d5e758.js.map +1 -0
  59. package/dist/index-2b2eb026.js +1393 -0
  60. package/dist/index-2b2eb026.js.map +1 -0
  61. package/dist/index-34e4d478.js +1289 -0
  62. package/dist/index-34e4d478.js.map +1 -0
  63. package/dist/index-4881fdf3.js +1458 -0
  64. package/dist/index-4881fdf3.js.map +1 -0
  65. package/dist/index-4d8e81d1.js +1264 -0
  66. package/dist/index-4d8e81d1.js.map +1 -0
  67. package/dist/{index-c0f5a1e9.js → index-4f25eb16.js} +262 -215
  68. package/dist/index-4f25eb16.js.map +1 -0
  69. package/dist/index-53d781f0.js +1476 -0
  70. package/dist/index-53d781f0.js.map +1 -0
  71. package/dist/index-543584d8.js +1398 -0
  72. package/dist/index-543584d8.js.map +1 -0
  73. package/dist/index-54c78282.js +1474 -0
  74. package/dist/index-54c78282.js.map +1 -0
  75. package/dist/index-57a0454a.js +1441 -0
  76. package/dist/index-57a0454a.js.map +1 -0
  77. package/dist/index-58ab9759.js +1424 -0
  78. package/dist/index-58ab9759.js.map +1 -0
  79. package/dist/index-58ee3084.js +1399 -0
  80. package/dist/index-58ee3084.js.map +1 -0
  81. package/dist/index-5edd5559.js +1289 -0
  82. package/dist/index-5edd5559.js.map +1 -0
  83. package/dist/index-65168e57.js +1263 -0
  84. package/dist/index-65168e57.js.map +1 -0
  85. package/dist/index-66021d90.js +1431 -0
  86. package/dist/index-66021d90.js.map +1 -0
  87. package/dist/index-71e57dce.js +1425 -0
  88. package/dist/index-71e57dce.js.map +1 -0
  89. package/dist/index-742d8be6.js +1290 -0
  90. package/dist/index-742d8be6.js.map +1 -0
  91. package/dist/index-813be4d3.js +1425 -0
  92. package/dist/index-813be4d3.js.map +1 -0
  93. package/dist/index-82c906b1.js +1448 -0
  94. package/dist/index-82c906b1.js.map +1 -0
  95. package/dist/index-a7fb8ff9.js +1432 -0
  96. package/dist/index-a7fb8ff9.js.map +1 -0
  97. package/dist/{index-1e589dfb.js → index-b4765fbd.js} +262 -216
  98. package/dist/index-b4765fbd.js.map +1 -0
  99. package/dist/index-b78ff7b5.js +1399 -0
  100. package/dist/index-b78ff7b5.js.map +1 -0
  101. package/dist/index-c56180b9.js +1425 -0
  102. package/dist/index-c56180b9.js.map +1 -0
  103. package/dist/index-d5855b9f.js +1367 -0
  104. package/dist/index-d5855b9f.js.map +1 -0
  105. package/dist/index-d63be97b.js +1263 -0
  106. package/dist/index-d63be97b.js.map +1 -0
  107. package/dist/index-dd9fe728.js +1457 -0
  108. package/dist/index-dd9fe728.js.map +1 -0
  109. package/dist/index-e0ce1691.js +1467 -0
  110. package/dist/index-e0ce1691.js.map +1 -0
  111. package/dist/index-fadb7b0b.js +1450 -0
  112. package/dist/index-fadb7b0b.js.map +1 -0
  113. package/dist/index.d.ts +54 -13
  114. package/dist/index.es.js +1 -1
  115. package/dist/index.js +2 -1
  116. package/dist/index.js.map +1 -1
  117. package/package.json +1 -1
  118. package/dist/index-1e589dfb.js.map +0 -1
  119. package/dist/index-c0f5a1e9.js.map +0 -1
@@ -9,168 +9,17 @@ import { run, compile } from '@mdx-js/mdx';
9
9
  import RehypeKatex from 'rehype-katex';
10
10
  import RehypeHighlight from 'rehype-highlight';
11
11
 
12
- /******************************************************************************
13
- Copyright (c) Microsoft Corporation.
14
-
15
- Permission to use, copy, modify, and/or distribute this software for any
16
- purpose with or without fee is hereby granted.
17
-
18
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
19
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
20
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
21
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
22
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
23
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
24
- PERFORMANCE OF THIS SOFTWARE.
25
- ***************************************************************************** */
26
- /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
27
-
28
- var extendStatics = function(d, b) {
29
- extendStatics = Object.setPrototypeOf ||
30
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
31
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
32
- return extendStatics(d, b);
33
- };
34
-
35
- function __extends(d, b) {
36
- if (typeof b !== "function" && b !== null)
37
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
38
- extendStatics(d, b);
39
- function __() { this.constructor = d; }
40
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
41
- }
42
-
43
- var __assign = function() {
44
- __assign = Object.assign || function __assign(t) {
45
- for (var s, i = 1, n = arguments.length; i < n; i++) {
46
- s = arguments[i];
47
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
48
- }
49
- return t;
50
- };
51
- return __assign.apply(this, arguments);
52
- };
53
-
54
- function __rest(s, e) {
55
- var t = {};
56
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
57
- t[p] = s[p];
58
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
59
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
60
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
61
- t[p[i]] = s[p[i]];
62
- }
63
- return t;
64
- }
65
-
66
- function __awaiter(thisArg, _arguments, P, generator) {
67
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
68
- return new (P || (P = Promise))(function (resolve, reject) {
69
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
70
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
71
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
72
- step((generator = generator.apply(thisArg, _arguments || [])).next());
73
- });
74
- }
75
-
76
- function __generator(thisArg, body) {
77
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
78
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
79
- function verb(n) { return function (v) { return step([n, v]); }; }
80
- function step(op) {
81
- if (f) throw new TypeError("Generator is already executing.");
82
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
83
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
84
- if (y = 0, t) op = [op[0] & 2, t.value];
85
- switch (op[0]) {
86
- case 0: case 1: t = op; break;
87
- case 4: _.label++; return { value: op[1], done: false };
88
- case 5: _.label++; y = op[1]; op = [0]; continue;
89
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
90
- default:
91
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
92
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
93
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
94
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
95
- if (t[2]) _.ops.pop();
96
- _.trys.pop(); continue;
97
- }
98
- op = body.call(thisArg, _);
99
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
100
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
101
- }
102
- }
103
-
104
- function __values(o) {
105
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
106
- if (m) return m.call(o);
107
- if (o && typeof o.length === "number") return {
108
- next: function () {
109
- if (o && i >= o.length) o = void 0;
110
- return { value: o && o[i++], done: !o };
111
- }
112
- };
113
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
114
- }
115
-
116
- function __read(o, n) {
117
- var m = typeof Symbol === "function" && o[Symbol.iterator];
118
- if (!m) return o;
119
- var i = m.call(o), r, ar = [], e;
120
- try {
121
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
122
- }
123
- catch (error) { e = { error: error }; }
124
- finally {
125
- try {
126
- if (r && !r.done && (m = i["return"])) m.call(i);
127
- }
128
- finally { if (e) throw e.error; }
129
- }
130
- return ar;
131
- }
132
-
133
- function __spreadArray(to, from, pack) {
134
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
135
- if (ar || !(i in from)) {
136
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
137
- ar[i] = from[i];
138
- }
139
- }
140
- return to.concat(ar || Array.prototype.slice.call(from));
141
- }
142
-
143
- typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
144
- var e = new Error(message);
145
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
146
- };
147
-
148
12
  var MDXStreamingParser = /** @class */function () {
149
13
  function MDXStreamingParser(components) {
150
- this.registeredComponents = new Set(components);
14
+ // 将组件名称存储在Set中,而不是整个组件对象
15
+ this.registeredComponents = new Set(components.map(function (c) {
16
+ return c.name;
17
+ }));
151
18
  this.messages = new Map();
152
19
  }
153
- MDXStreamingParser.prototype.findComponentByName = function (name) {
154
- var e_1, _a;
155
- try {
156
- for (var _b = __values(this.registeredComponents), _c = _b.next(); !_c.done; _c = _b.next()) {
157
- var component = _c.value;
158
- if (component.name === name) {
159
- return component;
160
- }
161
- }
162
- } catch (e_1_1) {
163
- e_1 = {
164
- error: e_1_1
165
- };
166
- } finally {
167
- try {
168
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
169
- } finally {
170
- if (e_1) throw e_1.error;
171
- }
172
- }
173
- return undefined; // Return undefined if no component is found
20
+ // 检查组件是否已注册
21
+ MDXStreamingParser.prototype.isComponentRegistered = function (name) {
22
+ return this.registeredComponents.has(name);
174
23
  };
175
24
  MDXStreamingParser.prototype.parse = function (messageId, input) {
176
25
  var state = {
@@ -191,9 +40,10 @@ var MDXStreamingParser = /** @class */function () {
191
40
  break;
192
41
  }
193
42
  var tagName = input.slice(i + 2, closeTagEnd);
194
- var registerComponentInfo = this.findComponentByName(tagName);
43
+ // 检查组件是否已注册
44
+ var isRegistered = this.isComponentRegistered(tagName);
195
45
  // 如果组件未注册,则作为文本处理
196
- if (!registerComponentInfo) {
46
+ if (!isRegistered) {
197
47
  state.buffer += input.slice(i, closeTagEnd + 1);
198
48
  i = closeTagEnd + 1;
199
49
  continue;
@@ -228,9 +78,10 @@ var MDXStreamingParser = /** @class */function () {
228
78
  if (tagMatch) {
229
79
  // Handle accumulated text before the tag
230
80
  var componentName = tagMatch[1];
231
- var registerComponentInfo = this.findComponentByName(componentName);
81
+ // 检查组件是否已注册
82
+ var isRegistered = this.isComponentRegistered(componentName);
232
83
  // 如果组件未注册,将整个标签作为文本处理
233
- if (!registerComponentInfo) {
84
+ if (!isRegistered) {
234
85
  state.buffer += input[i];
235
86
  i++;
236
87
  continue;
@@ -258,20 +109,16 @@ var MDXStreamingParser = /** @class */function () {
258
109
  });
259
110
  }
260
111
  state.buffer = '';
261
- // const componentName = tagMatch[1];
262
- var selfClosing = false;
263
- // const registerComponentInfo = this.findComponentByName(componentName);
264
- if (registerComponentInfo) {
265
- selfClosing = registerComponentInfo.selfClosing;
266
- }
267
- var _a = this.parseComponentTag(input.slice(i), selfClosing),
112
+ // 动态解析标签形式,不再依赖预先注册的 selfClosing 属性
113
+ var _a = this.parseComponentTag(input.slice(i)),
268
114
  props = _a.props,
269
- endIndex = _a.endIndex;
115
+ endIndex = _a.endIndex,
116
+ selfClosing = _a.selfClosing;
270
117
  var component = {
271
118
  type: "component",
272
119
  value: componentName,
273
120
  props: props,
274
- selfClosing: selfClosing
121
+ selfClosing: selfClosing // 使用实际解析出的标签形式
275
122
  };
276
123
  if (!selfClosing) {
277
124
  state.stack.push(component);
@@ -362,22 +209,21 @@ var MDXStreamingParser = /** @class */function () {
362
209
  }
363
210
  return input.length;
364
211
  };
365
- MDXStreamingParser.prototype.parseComponentTag = function (input, selfClosing) {
212
+ MDXStreamingParser.prototype.parseComponentTag = function (input) {
366
213
  var props = {};
367
214
  var i = 0;
368
215
  // 跳过组件名
369
216
  while (i < input.length && input[i] !== ' ' && input[i] !== '>') i++;
370
- if (!selfClosing) {
371
- return this.parsePropsCommon(input);
372
- }
373
- // 使用 parseProps 方法解析属性
374
- var propsContent = input.slice(i);
375
- var parsedProps = this.parsePropsSelfClosing(propsContent);
217
+ // 使用 parsePropsCommon 方法解析属性,该方法会返回标签形式信息
218
+ var _a = this.parsePropsCommon(input),
219
+ parsedProps = _a.props,
220
+ endIndex = _a.endIndex,
221
+ selfClosing = _a.selfClosing;
376
222
  Object.assign(props, parsedProps);
377
- var endIndex = this.findComponentClose(input, i);
378
223
  return {
379
224
  props: props,
380
- endIndex: endIndex
225
+ endIndex: endIndex,
226
+ selfClosing: selfClosing
381
227
  };
382
228
  };
383
229
  MDXStreamingParser.prototype.parsePropsCommon = function (input) {
@@ -517,6 +363,130 @@ var MDXStreamingParser = /** @class */function () {
517
363
  return MDXStreamingParser;
518
364
  }();
519
365
 
366
+ /******************************************************************************
367
+ Copyright (c) Microsoft Corporation.
368
+
369
+ Permission to use, copy, modify, and/or distribute this software for any
370
+ purpose with or without fee is hereby granted.
371
+
372
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
373
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
374
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
375
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
376
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
377
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
378
+ PERFORMANCE OF THIS SOFTWARE.
379
+ ***************************************************************************** */
380
+ /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
381
+
382
+ var extendStatics = function(d, b) {
383
+ extendStatics = Object.setPrototypeOf ||
384
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
385
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
386
+ return extendStatics(d, b);
387
+ };
388
+
389
+ function __extends(d, b) {
390
+ if (typeof b !== "function" && b !== null)
391
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
392
+ extendStatics(d, b);
393
+ function __() { this.constructor = d; }
394
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
395
+ }
396
+
397
+ var __assign = function() {
398
+ __assign = Object.assign || function __assign(t) {
399
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
400
+ s = arguments[i];
401
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
402
+ }
403
+ return t;
404
+ };
405
+ return __assign.apply(this, arguments);
406
+ };
407
+
408
+ function __rest(s, e) {
409
+ var t = {};
410
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
411
+ t[p] = s[p];
412
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
413
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
414
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
415
+ t[p[i]] = s[p[i]];
416
+ }
417
+ return t;
418
+ }
419
+
420
+ function __awaiter(thisArg, _arguments, P, generator) {
421
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
422
+ return new (P || (P = Promise))(function (resolve, reject) {
423
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
424
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
425
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
426
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
427
+ });
428
+ }
429
+
430
+ function __generator(thisArg, body) {
431
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
432
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
433
+ function verb(n) { return function (v) { return step([n, v]); }; }
434
+ function step(op) {
435
+ if (f) throw new TypeError("Generator is already executing.");
436
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
437
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
438
+ if (y = 0, t) op = [op[0] & 2, t.value];
439
+ switch (op[0]) {
440
+ case 0: case 1: t = op; break;
441
+ case 4: _.label++; return { value: op[1], done: false };
442
+ case 5: _.label++; y = op[1]; op = [0]; continue;
443
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
444
+ default:
445
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
446
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
447
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
448
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
449
+ if (t[2]) _.ops.pop();
450
+ _.trys.pop(); continue;
451
+ }
452
+ op = body.call(thisArg, _);
453
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
454
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
455
+ }
456
+ }
457
+
458
+ function __read(o, n) {
459
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
460
+ if (!m) return o;
461
+ var i = m.call(o), r, ar = [], e;
462
+ try {
463
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
464
+ }
465
+ catch (error) { e = { error: error }; }
466
+ finally {
467
+ try {
468
+ if (r && !r.done && (m = i["return"])) m.call(i);
469
+ }
470
+ finally { if (e) throw e.error; }
471
+ }
472
+ return ar;
473
+ }
474
+
475
+ function __spreadArray(to, from, pack) {
476
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
477
+ if (ar || !(i in from)) {
478
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
479
+ ar[i] = from[i];
480
+ }
481
+ }
482
+ return to.concat(ar || Array.prototype.slice.call(from));
483
+ }
484
+
485
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
486
+ var e = new Error(message);
487
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
488
+ };
489
+
520
490
  var CodeHighlight = function (_a) {
521
491
  var textContent = _a.textContent,
522
492
  _b = _a.language,
@@ -567,7 +537,7 @@ var CodeHighlight = function (_a) {
567
537
  if (language === "mermaid") {
568
538
  // 动态导入 MermaidRenderer 组件
569
539
  var MermaidRenderer = /*#__PURE__*/React__default.lazy(function () {
570
- return import('./MermaidRenderer-cdeab8f8.js').catch(function () {
540
+ return import('./MermaidRenderer-fc75606f.js').catch(function () {
571
541
  return {
572
542
  default: function () {
573
543
  return /*#__PURE__*/jsx("div", {});
@@ -770,10 +740,35 @@ var AComponent = function (aProps) {
770
740
  var href = aProps.href || "";
771
741
  var isInternal = /^\/#/i.test(href);
772
742
  var target = isInternal ? "_self" : (_a = aProps.target) !== null && _a !== void 0 ? _a : "_blank";
743
+ // 增强链接样式,使其更加明显
744
+ var linkStyle = {
745
+ color: '#1a73e8',
746
+ fontWeight: '600',
747
+ borderBottom: '2px solid #1a73e8',
748
+ paddingBottom: '2px',
749
+ transition: 'all 0.2s ease'
750
+ };
751
+ // 鼠标悬停效果
752
+ var hoverStyle = {
753
+ color: '#0d47a1',
754
+ borderBottom: '2px solid #0d47a1',
755
+ backgroundColor: 'rgba(26, 115, 232, 0.1)'
756
+ };
757
+ // 合并原有属性和新样式
773
758
  return /*#__PURE__*/jsx("a", {
774
- color: "red",
775
759
  ...aProps,
776
- target: target
760
+ target: target,
761
+ style: __assign(__assign({}, linkStyle), aProps.style),
762
+ onMouseEnter: function (e) {
763
+ var target = e.target;
764
+ Object.assign(target.style, hoverStyle);
765
+ aProps.onMouseEnter && aProps.onMouseEnter(e);
766
+ },
767
+ onMouseLeave: function (e) {
768
+ var target = e.target;
769
+ Object.assign(target.style, linkStyle);
770
+ aProps.onMouseLeave && aProps.onMouseLeave(e);
771
+ }
777
772
  });
778
773
  };
779
774
  // Pre 组件
@@ -876,6 +871,15 @@ function remarkThinkUpdate(content) {
876
871
  resultContent: resultContent
877
872
  };
878
873
  }
874
+ /**
875
+ * 转义流式内容中的特殊字符,防止MDX解析错误
876
+ * @param content 需要转义的内容
877
+ * @returns 转义后的内容
878
+ */
879
+ function escapeContentForStream(content) {
880
+ if (typeof content !== 'string') return content;
881
+ return content.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/'/g, '&#x27;').replace(/{/g, '&#123;').replace(/}/g, '&#125;');
882
+ }
879
883
 
880
884
  var renderTimer = null;
881
885
  // 辅助函数:格式化props
@@ -897,7 +901,7 @@ function formatProps(props) {
897
901
  }
898
902
  function renderMdx(mdxContent, scope, registeredComponents) {
899
903
  return __awaiter(this, void 0, void 0, function () {
900
- var componentTagRegex, usedComponents, match, vf, XComponent, e_1;
904
+ var componentTagRegex, usedComponents, match, vf, XComponent;
901
905
  return __generator(this, function (_a) {
902
906
  switch (_a.label) {
903
907
  case 0:
@@ -932,19 +936,16 @@ function renderMdx(mdxContent, scope, registeredComponents) {
932
936
  scope: scope
933
937
  })];
934
938
  case 3:
935
- e_1 = _a.sent();
939
+ _a.sent();
936
940
  return [2 /*return*/, new Promise(function (resolve) {
937
941
  renderTimer = setTimeout(function () {
938
- console.log(mdxContent, 'mdxContent');
939
- console.log(e_1, 'error');
940
942
  resolve(/*#__PURE__*/React.createElement('div', {
941
943
  style: {
942
- fontSize: '14px',
943
944
  backgroundColor: 'transparent'
944
945
  }
945
946
  }, mdxContent));
946
947
  clearTimeout(renderTimer); // 清理定时器
947
- }, 1000); // 1秒延迟
948
+ }, 2000); // 1秒延迟
948
949
  })];
949
950
  case 4:
950
951
  return [2 /*return*/];
@@ -955,48 +956,81 @@ function renderMdx(mdxContent, scope, registeredComponents) {
955
956
  // 递归解析组件的函数
956
957
  function parseComponentRecursively(allComponentHandlers, item, scope) {
957
958
  return __awaiter(this, void 0, void 0, function () {
958
- var componentHandler, props, propsString, childrenContent_1, parsedChildren_1, componentString;
959
+ var componentHandler, componentString_1, parsedChildren, props, propsString, childrenContent_1, parsedChildren_1, componentString;
959
960
  return __generator(this, function (_a) {
960
961
  switch (_a.label) {
961
962
  case 0:
962
963
  if (item.type === 'text') {
963
964
  return [2 /*return*/, item.value];
964
965
  }
965
- if (!(item.type === 'component')) return [3 /*break*/, 3];
966
+ if (!(item.type === 'component')) return [3 /*break*/, 8];
966
967
  componentHandler = allComponentHandlers.find(function (c) {
967
968
  return c.name === item.value;
968
969
  });
969
- if (!componentHandler) {
970
- return [2 /*return*/, null];
970
+ if (!!componentHandler) return [3 /*break*/, 5];
971
+ componentString_1 = "<".concat(item.value);
972
+ if (item.props) {
973
+ componentString_1 += ' ' + Object.entries(item.props).map(function (_a) {
974
+ var _b = __read(_a, 2),
975
+ key = _b[0],
976
+ value = _b[1];
977
+ if (typeof value === 'string') {
978
+ return "".concat(key, "=\"").concat(value, "\"");
979
+ }
980
+ try {
981
+ return "".concat(key, "={").concat(JSON.stringify(value), "}");
982
+ } catch (e) {
983
+ return "".concat(key, "=\"[object Object]\"");
984
+ }
985
+ }).join(' ');
971
986
  }
987
+ if (!item.selfClosing) return [3 /*break*/, 1];
988
+ componentString_1 += ' />';
989
+ return [3 /*break*/, 4];
990
+ case 1:
991
+ componentString_1 += '>';
992
+ if (!(item.children && Array.isArray(item.children))) return [3 /*break*/, 3];
993
+ return [4 /*yield*/, Promise.all(item.children.map(function (child) {
994
+ return parseComponentRecursively(allComponentHandlers, child, scope);
995
+ }))];
996
+ case 2:
997
+ parsedChildren = _a.sent();
998
+ componentString_1 += parsedChildren.join('');
999
+ _a.label = 3;
1000
+ case 3:
1001
+ componentString_1 += "</".concat(item.value, ">");
1002
+ _a.label = 4;
1003
+ case 4:
1004
+ return [2 /*return*/, componentString_1];
1005
+ case 5:
972
1006
  props = __assign(__assign({}, item.props), {
973
1007
  key: generateRandomName()
974
1008
  });
975
1009
  propsString = formatProps(props);
976
1010
  propsString += " scope={props.scope}";
977
1011
  childrenContent_1 = '';
978
- if (!(item.children && Array.isArray(item.children))) return [3 /*break*/, 2];
1012
+ if (!(item.children && Array.isArray(item.children))) return [3 /*break*/, 7];
979
1013
  return [4 /*yield*/, Promise.all(item.children.map(function (child) {
980
1014
  return parseComponentRecursively(allComponentHandlers, child, scope);
981
1015
  }))];
982
- case 1:
1016
+ case 6:
983
1017
  parsedChildren_1 = _a.sent();
984
1018
  item.children.map(function (item, index) {
985
1019
  if (item.type === 'text') {
986
- childrenContent_1 += parsedChildren_1[index]; // encodeURIComponent(parsedChildren[index]);
1020
+ childrenContent_1 += escapeContentForStream(parsedChildren_1[index]); // encodeURIComponent(parsedChildren[index]);
987
1021
  } else {
988
1022
  childrenContent_1 += parsedChildren_1[index];
989
1023
  }
990
1024
  });
991
- _a.label = 2;
992
- case 2:
1025
+ _a.label = 7;
1026
+ case 7:
993
1027
  // 调用组件的渲染钩子
994
1028
  if (componentHandler.onRender) {
995
1029
  componentHandler.onRender(item, scope);
996
1030
  }
997
1031
  componentString = componentHandler.selfClosing ? "<".concat(item.value, " ").concat(propsString, " />") : "\t\n<".concat(item.value, " ").concat(propsString, ">\n").concat(childrenContent_1, "\n</").concat(item.value, ">\t\n");
998
1032
  return [2 /*return*/, componentString];
999
- case 3:
1033
+ case 8:
1000
1034
  return [2 /*return*/, null];
1001
1035
  }
1002
1036
  });
@@ -1068,11 +1102,12 @@ function ReactAIRenderer(_a) {
1068
1102
  var content = _a.content,
1069
1103
  _b = _a.scope,
1070
1104
  scope = _b === void 0 ? {} : _b,
1071
- components = _a.components,
1105
+ _c = _a.components,
1106
+ components = _c === void 0 ? {} : _c,
1072
1107
  children = _a.children,
1073
- _c = _a.componentHandlers,
1074
- componentHandlers = _c === void 0 ? [] : _c;
1075
- content = content || children;
1108
+ _d = _a.componentHandlers,
1109
+ componentHandlers = _d === void 0 ? [] : _d;
1110
+ content = content || children || '';
1076
1111
  var allComponents = __assign(__assign({}, BuiltInComponents), components);
1077
1112
  // 修复:确保 components 是一个对象后再使用 Object.entries
1078
1113
  var allComponentHandlers = __spreadArray(__spreadArray([], __read(components ? Object.entries(components).filter(function (_a) {
@@ -1085,7 +1120,6 @@ function ReactAIRenderer(_a) {
1085
1120
  var _b = __read(_a, 2),
1086
1121
  name = _b[0],
1087
1122
  component = _b[1];
1088
- console.log(name, 'name');
1089
1123
  var selfClosing = isSelfClosingComponent(component);
1090
1124
  return {
1091
1125
  component: component,
@@ -1093,15 +1127,15 @@ function ReactAIRenderer(_a) {
1093
1127
  selfClosing: selfClosing
1094
1128
  };
1095
1129
  }) : []), false), __read(componentHandlers), false);
1096
- var _d = __read(useState(null), 2),
1097
- component = _d[0],
1098
- setComponent = _d[1];
1130
+ var _e = __read(useState(null), 2),
1131
+ component = _e[0],
1132
+ setComponent = _e[1];
1099
1133
  var parser = new MDXStreamingParser(allComponentHandlers);
1100
- var mdxContent = content;
1134
+ var mdxContent = content || '';
1101
1135
  useEffect(function () {
1102
1136
  var parseMDX = function () {
1103
1137
  return __awaiter(_this, void 0, void 0, function () {
1104
- var ThinkComponent, ResultComponent, _a, thinkContent, resultContent, parsedData, parsedComponents, finalComponent, MDXComponent;
1138
+ var ThinkComponent, ResultComponent, _a, thinkContent, resultContent, parsedData, parsedComponents, finalComponent, i, _result, MDXComponent;
1105
1139
  return __generator(this, function (_b) {
1106
1140
  switch (_b.label) {
1107
1141
  case 0:
@@ -1114,7 +1148,7 @@ function ReactAIRenderer(_a) {
1114
1148
  ThinkComponent = _b.sent();
1115
1149
  _b.label = 2;
1116
1150
  case 2:
1117
- if (!resultContent) return [3 /*break*/, 5];
1151
+ if (!resultContent) return [3 /*break*/, 8];
1118
1152
  resultContent = fixMDXContent(resultContent);
1119
1153
  parsedData = parser.parse('magic', resultContent);
1120
1154
  return [4 /*yield*/, Promise.all(parsedData.map(function (item) {
@@ -1122,14 +1156,25 @@ function ReactAIRenderer(_a) {
1122
1156
  }))];
1123
1157
  case 3:
1124
1158
  parsedComponents = _b.sent();
1125
- return [4 /*yield*/, renderMdx(parsedComponents.join('\n'), scope, allComponents)];
1159
+ finalComponent = [];
1160
+ i = 0;
1161
+ _b.label = 4;
1126
1162
  case 4:
1127
- finalComponent = _b.sent();
1163
+ if (!(i < parsedComponents.length)) return [3 /*break*/, 7];
1164
+ return [4 /*yield*/, renderMdx(parsedComponents[i], scope, allComponents)];
1165
+ case 5:
1166
+ _result = _b.sent();
1167
+ finalComponent.push(_result);
1168
+ _b.label = 6;
1169
+ case 6:
1170
+ i++;
1171
+ return [3 /*break*/, 4];
1172
+ case 7:
1128
1173
  ResultComponent = /*#__PURE__*/jsx("div", {
1129
1174
  children: finalComponent
1130
1175
  });
1131
- _b.label = 5;
1132
- case 5:
1176
+ _b.label = 8;
1177
+ case 8:
1133
1178
  MDXComponent = /*#__PURE__*/jsxs(React__default.Fragment, {
1134
1179
  children: [ThinkComponent, ResultComponent]
1135
1180
  });
@@ -1212,6 +1257,7 @@ var ToolCall = function (_a) {
1212
1257
  });
1213
1258
  };
1214
1259
 
1215
- // 默认导出
1260
+ // 导出 MDXStreamingParser 类
1216
1261
 
1217
- export { ReactAIRenderer as R, Think as T, __read as _, __awaiter as a, __generator as b, ToolCall as c };
1262
+ export { MDXStreamingParser as M, ReactAIRenderer as R, Think as T, __read as _, __awaiter as a, __generator as b, ToolCall as c };
1263
+ //# sourceMappingURL=index-b4765fbd.js.map