@antdv-next/x 1.0.1 → 1.0.2-beta.2

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 (134) hide show
  1. package/dist/bubble/Bubble.js +17 -12
  2. package/dist/code-highlighter/CodeHighlighter.js +24 -7
  3. package/dist/index.umd.js +66 -20
  4. package/dist/package.js +1 -1
  5. package/dist/x-provider/context.d.ts +5 -1
  6. package/dist/x-provider/index.d.ts +47 -0
  7. package/dist/x-provider/index.js +25 -0
  8. package/{dist-browser/_basePickBy-Cy7KVmkk.js → es/_basePickBy-DPqob0cQ.js} +2 -2
  9. package/{dist-browser/_baseUniq-Ch3HuHeT.js → es/_baseUniq-AMhRdOMz.js} +2 -2
  10. package/es/antdv-next-x.esm.js +22171 -0
  11. package/es/architecture-PBZL5I3N-CBmkTWjb.js +3 -0
  12. package/{dist-browser/architectureDiagram-2XIMDMQ5-D3IYLROv.js → es/architectureDiagram-2XIMDMQ5-ZOgJV9Kg.js} +84 -84
  13. package/{dist-browser/blockDiagram-WCTKOSBZ-nXanZ0sc.js → es/blockDiagram-WCTKOSBZ-8iZwAKBK.js} +529 -529
  14. package/{dist-browser/c4Diagram-IC4MRINW-C-gVp6th.js → es/c4Diagram-IC4MRINW-DrH9eRMR.js} +168 -168
  15. package/{dist-browser/channel-DoEe9DF9.js → es/channel-DIQFjdG3.js} +1 -1
  16. package/{dist-browser/chunk-4BX2VUAB-fLFD6XW0.js → es/chunk-4BX2VUAB-DUVpjbJi.js} +1 -1
  17. package/{dist-browser/chunk-55IACEB6-OtyKJzCH.js → es/chunk-55IACEB6-RlJ-J3tE.js} +1 -1
  18. package/{dist-browser/chunk-7E7YKBS2-C1dd36rm.js → es/chunk-7E7YKBS2-ChLFamzc.js} +1 -1
  19. package/{dist-browser/chunk-7R4GIKGN-DuTRhdsf.js → es/chunk-7R4GIKGN-B9vamSzt.js} +2 -2
  20. package/{dist-browser/chunk-C72U2L5F-ClmZGhFC.js → es/chunk-C72U2L5F-BV-rXau1.js} +1 -1
  21. package/{dist-browser/chunk-EGIJ26TM-Bar_u1MN.js → es/chunk-EGIJ26TM-GvsuORRL.js} +1 -1
  22. package/{dist-browser/chunk-FMBD7UC4-C_uJ_JJA.js → es/chunk-FMBD7UC4-D6ZlqqMC.js} +1 -1
  23. package/{dist-browser/chunk-GEFDOKGD-P7WhyrTU.js → es/chunk-GEFDOKGD-DM6dsEsk.js} +251 -251
  24. package/{dist-browser/chunk-GLR3WWYH-BvazRgdo.js → es/chunk-GLR3WWYH-CqFdLic9.js} +16 -16
  25. package/{dist-browser/chunk-HHEYEP7N-rv5s5WD4.js → es/chunk-HHEYEP7N-FVfYw94p.js} +2 -2
  26. package/{dist-browser/chunk-JSJVCQXG-89HUGe9V.js → es/chunk-JSJVCQXG-Wr9uPcCh.js} +2 -2
  27. package/{dist-browser/chunk-KX2RTZJC-pMHnNRQg.js → es/chunk-KX2RTZJC-BGffjoxB.js} +2 -2
  28. package/{dist-browser/chunk-KYZI473N-DJmSs1gK.js → es/chunk-KYZI473N-Bit5smNE.js} +571 -571
  29. package/{dist-browser/chunk-L3YUKLVL-Ck54qytQ.js → es/chunk-L3YUKLVL-DBuHDpQ2.js} +1 -1
  30. package/{dist-browser/chunk-MX3YWQON-MkpK3uBD.js → es/chunk-MX3YWQON-Cbj2WwUZ.js} +1 -1
  31. package/{dist-browser/chunk-NQ4KR5QH-DGshodQv.js → es/chunk-NQ4KR5QH-FPQ-IHJN.js} +119 -119
  32. package/{dist-browser/chunk-O4XLMI2P-e-ZzDQwg.js → es/chunk-O4XLMI2P-BCDk0ZIW.js} +237 -237
  33. package/{dist-browser/chunk-OZEHJAEY-DULNd43V.js → es/chunk-OZEHJAEY-BZ24IOgQ.js} +1 -1
  34. package/{dist-browser/chunk-PQ6SQG4A-CQ9Csv7s.js → es/chunk-PQ6SQG4A-DpwBx6Hx.js} +2 -2
  35. package/{dist-browser/chunk-PU5JKC2W-DkEFvrjH.js → es/chunk-PU5JKC2W-BNpJuXxn.js} +63 -63
  36. package/{dist-browser/chunk-QZHKN3VN-qww1plfw.js → es/chunk-QZHKN3VN-NEMwPryC.js} +1 -1
  37. package/{dist-browser/chunk-R5LLSJPH-BERXSDGJ.js → es/chunk-R5LLSJPH-g44vgerl.js} +1 -1
  38. package/{dist-browser/chunk-WL4C6EOR-C-d8WPS7.js → es/chunk-WL4C6EOR-B6l-Yy2t.js} +119 -119
  39. package/{dist-browser/chunk-XIRO2GV7-CFHofxVB.js → es/chunk-XIRO2GV7-CaFInIOW.js} +1 -1
  40. package/{dist-browser/chunk-XPW4576I-DgvoNZkW.js → es/chunk-XPW4576I-Cp1j6iTN.js} +1 -1
  41. package/{dist-browser/chunk-XZSTWKYB-k8_EXrSa.js → es/chunk-XZSTWKYB-CGk7ipHd.js} +5 -5
  42. package/{dist-browser/chunk-YBOYWFTD-BUW4AzEX.js → es/chunk-YBOYWFTD-dOTBpTYs.js} +7 -7
  43. package/es/classDiagram-VBA2DB6C-B3yBiQy3.js +29 -0
  44. package/es/classDiagram-v2-RAHNMMFH-jbFYm_Xj.js +29 -0
  45. package/{dist-browser/clone-BXDbKCDu.js → es/clone-DXVS0uSx.js} +1 -1
  46. package/{dist-browser/cose-bilkent-S5V4N54A-CnrS2OC1.js → es/cose-bilkent-S5V4N54A-DlmXyn6m.js} +1 -1
  47. package/{dist-browser/css-Dh17kjFY.js → es/css-DyS1hwc1.js} +1 -1
  48. package/es/css-HrHT_VUz.js +2 -0
  49. package/{dist-browser/dagre-BJOzGlhW.js → es/dagre-B1qTL793.js} +6 -6
  50. package/es/dagre-KLK3FWXG-CEhXRLVR.js +294 -0
  51. package/{dist-browser/diagram-E7M64L7V-DxuJj8ZG.js → es/diagram-E7M64L7V-Dnd8N74o.js} +59 -59
  52. package/{dist-browser/diagram-IFDJBPK2-BOpPZ6pu.js → es/diagram-IFDJBPK2-Dan7RsGr.js} +30 -30
  53. package/{dist-browser/diagram-P4PSJMXO--ChDmcya.js → es/diagram-P4PSJMXO-DwKJpttH.js} +31 -31
  54. package/{dist-browser/erDiagram-INFDFZHY-BA3m-v87.js → es/erDiagram-INFDFZHY-CGO6k23w.js} +127 -127
  55. package/{dist-browser/flowDiagram-PKNHOUZH-BCq6k3kr.js → es/flowDiagram-PKNHOUZH-DFN1GsRx.js} +155 -155
  56. package/{dist-browser/ganttDiagram-A5KZAMGK-DdMePS21.js → es/ganttDiagram-A5KZAMGK-Cf5NxH1w.js} +599 -602
  57. package/es/gitGraph-HDMCJU4V-CrEEHSZS.js +3 -0
  58. package/{dist-browser/gitGraphDiagram-K3NZZRJ6-CLbRwChG.js → es/gitGraphDiagram-K3NZZRJ6-BgE6aSZO.js} +175 -175
  59. package/{dist-browser/graphlib-C7ysKz4u.js → es/graphlib-DFxSohCv.js} +3 -3
  60. package/{dist-browser/html-BmZO1Eoo.js → es/html-C2-_98S6.js} +2 -2
  61. package/es/html-JbFqcNgP.js +2 -0
  62. package/es/info-3K5VOQVL-Dg3DCp4F.js +3 -0
  63. package/{dist-browser/infoDiagram-LFFYTUFH-DQAZ-vFk.js → es/infoDiagram-LFFYTUFH-WcApcdl5.js} +4 -4
  64. package/{dist-browser/isEmpty-2JxdWtc-.js → es/isEmpty-B1YrVV8B.js} +1 -1
  65. package/{dist-browser/ishikawaDiagram-PHBUUO56-B0r2IgGz.js → es/ishikawaDiagram-PHBUUO56-DwK7J31a.js} +65 -65
  66. package/{dist-browser/journeyDiagram-4ABVD52K-DnMUhOvg.js → es/journeyDiagram-4ABVD52K-CWuA57by.js} +4 -4
  67. package/{dist-browser/kanban-definition-K7BYSVSG-Da5Y-nJy.js → es/kanban-definition-K7BYSVSG-DBt3gYRQ.js} +10 -10
  68. package/{dist-browser/line-h2iCTGsE.js → es/line-zOBKZCP5.js} +1 -1
  69. package/{dist-browser/linear-Bv7XrZCH.js → es/linear-DttXWw4q.js} +1 -1
  70. package/{dist-browser/mermaid-parser.core-kTgpNO7M.js → es/mermaid-parser.core-CWNEdmZ_.js} +15 -15
  71. package/{dist-browser/mermaid.core-DRuUNxpC.js → es/mermaid.core-DPBXXViR.js} +206 -206
  72. package/{dist-browser/mindmap-definition-YRQLILUH-CYeqnCde.js → es/mindmap-definition-YRQLILUH-Bq2xqboX.js} +12 -12
  73. package/es/packet-RMMSAZCW-Dk7mKMJ4.js +3 -0
  74. package/es/pie-UPGHQEXC-CnM5YLNO.js +3 -0
  75. package/{dist-browser/pieDiagram-SKSYHLDU-DAsfTGvY.js → es/pieDiagram-SKSYHLDU-D4iMzwzH.js} +24 -24
  76. package/{dist-browser/quadrantDiagram-337W2JSQ-CZLbmQS4.js → es/quadrantDiagram-337W2JSQ-DSbXC0z6.js} +3 -3
  77. package/es/radar-KQ55EAFF-BwfADDx8.js +3 -0
  78. package/{dist-browser/requirementDiagram-Z7DCOOCP-Cb_Ygnfe.js → es/requirementDiagram-Z7DCOOCP-D7eLn3fs.js} +58 -58
  79. package/{dist-browser/sankeyDiagram-WA2Y5GQK-DBe5YfW4.js → es/sankeyDiagram-WA2Y5GQK-DN5ZPgWU.js} +2 -2
  80. package/{dist-browser/sequenceDiagram-2WXFIKYE-C_KUoojT.js → es/sequenceDiagram-2WXFIKYE-CRFEBP8-.js} +388 -388
  81. package/{dist-browser/stateDiagram-RAJIS63D-boG6DyfW.js → es/stateDiagram-RAJIS63D-CfO23QJX.js} +67 -67
  82. package/es/stateDiagram-v2-FVOUBMTO-BGWbXepL.js +27 -0
  83. package/{dist-browser/timeline-definition-YZTLITO2-pFt6rZ6S.js → es/timeline-definition-YZTLITO2-DmpPrD-3.js} +2 -2
  84. package/es/treemap-KZPCXAKY-BWfn7JxQ.js +3 -0
  85. package/{dist-browser/vennDiagram-LZ73GAT5-VaCO6k4H.js → es/vennDiagram-LZ73GAT5-B80Xr4jV.js} +104 -104
  86. package/{dist-browser/vue-BJ0ov2CZ.js → es/vue-DTiWrQBM.js} +3 -3
  87. package/{dist-browser/vue-html-D0gyDbfn.js → es/vue-html-BG3Xflut.js} +1 -1
  88. package/{dist-browser/xychartDiagram-JWTSCODW-xS5ybemA.js → es/xychartDiagram-JWTSCODW-DvQyPDr4.js} +98 -98
  89. package/package.json +13 -11
  90. package/dist/index.esm.js +0 -11372
  91. package/dist-browser/architecture-PBZL5I3N-DHfBr78A.js +0 -3
  92. package/dist-browser/classDiagram-VBA2DB6C-DWTAs0Zm.js +0 -29
  93. package/dist-browser/classDiagram-v2-RAHNMMFH-CoxCdmrt.js +0 -29
  94. package/dist-browser/css-D9vrnIUE.js +0 -2
  95. package/dist-browser/dagre-KLK3FWXG-CFC0naVr.js +0 -294
  96. package/dist-browser/gitGraph-HDMCJU4V-DbzpICZW.js +0 -3
  97. package/dist-browser/html-DnTYsv5k.js +0 -2
  98. package/dist-browser/index.es.js +0 -56149
  99. package/dist-browser/index.umd.js +0 -3281
  100. package/dist-browser/info-3K5VOQVL-CpUiQuel.js +0 -3
  101. package/dist-browser/packet-RMMSAZCW-UTFQ0FQx.js +0 -3
  102. package/dist-browser/pie-UPGHQEXC-CarAcBSi.js +0 -3
  103. package/dist-browser/radar-KQ55EAFF-NXK5PC9R.js +0 -3
  104. package/dist-browser/stateDiagram-v2-FVOUBMTO-DHCajhrN.js +0 -27
  105. package/dist-browser/treemap-KZPCXAKY-Cj9QakFB.js +0 -3
  106. /package/{dist-browser → es}/Serializer-y_SfSPKv.js +0 -0
  107. /package/{dist-browser → es}/arc-caEkbRYF.js +0 -0
  108. /package/{dist-browser → es}/array-CWNufkl9.js +0 -0
  109. /package/{dist-browser → es}/bash-CXEwhtGQ.js +0 -0
  110. /package/{dist-browser → es}/chunk-WQLz0Won.js +0 -0
  111. /package/{dist-browser → es}/cytoscape.esm-BY3wHcbp.js +0 -0
  112. /package/{dist-browser → es}/defaultLocale-BaPFSbai.js +0 -0
  113. /package/{dist-browser → es}/diff-BSu5dsa2.js +0 -0
  114. /package/{dist-browser → es}/dist-DltyvPj3.js +0 -0
  115. /package/{dist-browser → es}/init-PAs0hR-b.js +0 -0
  116. /package/{dist-browser/isArrayLikeObject-y3HlYDaX.js → es/isArrayLikeObject-BEG9p74d.js} +0 -0
  117. /package/{dist-browser → es}/javascript-BXHK_bZ2.js +0 -0
  118. /package/{dist-browser → es}/javascript-NV_FQBab.js +0 -0
  119. /package/{dist-browser → es}/json-C8Y9C4Ne.js +0 -0
  120. /package/{dist-browser → es}/json-DZ_9-j3Q.js +0 -0
  121. /package/{dist-browser → es}/jsx-CxlNNvOI.js +0 -0
  122. /package/{dist-browser/katex-b-xdokOf.js → es/katex-OR8z_f6I.js} +0 -0
  123. /package/{dist-browser → es}/markdown-BKwT7HWz.js +0 -0
  124. /package/{dist-browser → es}/math-DPzKeDKn.js +0 -0
  125. /package/{dist-browser → es}/mermaid-C1RUu_Iw.js +0 -0
  126. /package/{dist-browser → es}/ordinal-D8PKtxfM.js +0 -0
  127. /package/{dist-browser → es}/path-DZ-6AyWK.js +0 -0
  128. /package/{dist-browser → es}/python-BQM8giqx.js +0 -0
  129. /package/{dist-browser → es}/rough.esm-C_hJ3ICT.js +0 -0
  130. /package/{dist-browser/src-BukXhifV.js → es/src-BH16DVv0.js} +0 -0
  131. /package/{dist-browser → es}/tsx-DIYEV_g7.js +0 -0
  132. /package/{dist-browser → es}/typescript-B6MWEsBH.js +0 -0
  133. /package/{dist-browser → es}/typescript-CR48gG1F.js +0 -0
  134. /package/{dist-browser → es}/yaml-Y0CqUPTQ.js +0 -0
@@ -172,7 +172,10 @@ var XBubble = /* @__PURE__ */ defineComponent({
172
172
  const { class: _class, style: _style, ...rest } = attrs;
173
173
  return rest;
174
174
  });
175
- const memoedContent = computed(() => {
175
+ const fallbackContent = computed(() => {
176
+ return props.contentRender ? props.contentRender(props.content, props.info) : props.content;
177
+ });
178
+ const resolveMainContent = () => {
176
179
  if (slots.content) {
177
180
  const slotNode = slots.content({
178
181
  content: props.content,
@@ -180,23 +183,23 @@ var XBubble = /* @__PURE__ */ defineComponent({
180
183
  });
181
184
  if (hasRenderableNode(slotNode)) return slotNode;
182
185
  }
183
- return props.contentRender ? props.contentRender(props.content, props.info) : props.content;
184
- });
186
+ return fallbackContent.value;
187
+ };
185
188
  const mergedTyping = computed(() => {
186
189
  if (typeof props.typing === "function") return props.typing(props.content, props.info);
187
190
  return props.typing;
188
191
  });
189
192
  const usingInnerAnimation = computed(() => {
190
- return Boolean(mergedTyping.value) && typeof memoedContent.value === "string";
193
+ return Boolean(mergedTyping.value) && typeof fallbackContent.value === "string";
191
194
  });
192
195
  watch(() => [
193
- memoedContent.value,
196
+ fallbackContent.value,
194
197
  usingInnerAnimation.value,
195
198
  props.streaming
196
199
  ], () => {
197
200
  if (usingInnerAnimation.value) return;
198
201
  if (props.streaming) return;
199
- if (typeof memoedContent.value === "string") props.onTypingComplete?.(memoedContent.value);
202
+ if (typeof fallbackContent.value === "string") props.onTypingComplete?.(fallbackContent.value);
200
203
  }, { immediate: true });
201
204
  const footerPlacement = computed(() => {
202
205
  if (props.footerPlacement) return props.footerPlacement;
@@ -246,7 +249,7 @@ var XBubble = /* @__PURE__ */ defineComponent({
246
249
  "style": getSlotStyle("footer")
247
250
  }, [node]);
248
251
  };
249
- const renderMainContent = () => {
252
+ const renderMainContent = (mainContent, usingInnerAnimationInRender) => {
250
253
  if (isEditing.value) {
251
254
  if (typeof props.content !== "string") throw new Error("[Bubble] Editable mode only supports string content.");
252
255
  return createVNode(EditableContent, {
@@ -258,14 +261,14 @@ var XBubble = /* @__PURE__ */ defineComponent({
258
261
  "onEditCancel": props.onEditCancel
259
262
  }, null);
260
263
  }
261
- return usingInnerAnimation.value && typeof memoedContent.value === "string" ? createVNode(TypingContent, {
264
+ return usingInnerAnimationInRender && typeof mainContent === "string" ? createVNode(TypingContent, {
262
265
  "prefixCls": props.prefixCls,
263
266
  "streaming": props.streaming,
264
267
  "typing": mergedTyping.value,
265
- "content": memoedContent.value,
268
+ "content": mainContent,
266
269
  "onTyping": props.onTyping,
267
270
  "onTypingComplete": props.onTypingComplete
268
- }, null) : memoedContent.value;
271
+ }, null) : mainContent;
269
272
  };
270
273
  const renderContent = () => {
271
274
  if (props.loading) {
@@ -279,6 +282,8 @@ var XBubble = /* @__PURE__ */ defineComponent({
279
282
  if (props.loadingRender) return props.loadingRender(props.content, props.info);
280
283
  return createVNode(loading_default, { "prefixCls": props.prefixCls }, null);
281
284
  }
285
+ const mainContent = resolveMainContent();
286
+ const usingInnerAnimationInRender = Boolean(mergedTyping.value) && typeof mainContent === "string";
282
287
  return createVNode("div", {
283
288
  "class": getSlotClassName("body"),
284
289
  "style": getSlotStyle("body")
@@ -292,7 +297,7 @@ var XBubble = /* @__PURE__ */ defineComponent({
292
297
  contextConfig.value.classes?.content,
293
298
  props.classes?.content,
294
299
  {
295
- [`${prefixCls.value}-content-string`]: typeof memoedContent.value === "string",
300
+ [`${prefixCls.value}-content-string`]: typeof mainContent === "string",
296
301
  [`${prefixCls.value}-content-editing`]: isEditing.value,
297
302
  [`${prefixCls.value}-content-${props.info.status}`]: props.info.status
298
303
  }
@@ -301,7 +306,7 @@ var XBubble = /* @__PURE__ */ defineComponent({
301
306
  ...contextConfig.value.styles?.content,
302
307
  ...props.styles?.content
303
308
  }
304
- }, [isFooterInner.value ? createVNode(Fragment, null, [createVNode("div", { "class": `${prefixCls.value}-content-with-footer` }, [renderMainContent()]), !isEditing.value ? renderFooter() : null]) : renderMainContent()]),
309
+ }, [isFooterInner.value ? createVNode(Fragment, null, [createVNode("div", { "class": `${prefixCls.value}-content-with-footer` }, [renderMainContent(mainContent, usingInnerAnimationInRender)]), !isEditing.value ? renderFooter() : null]) : renderMainContent(mainContent, usingInnerAnimationInRender)]),
305
310
  !isEditing.value && !isFooterInner.value ? renderFooter() : null
306
311
  ]);
307
312
  };
@@ -1,3 +1,4 @@
1
+ import useXComponentConfig from "../_utils/hooks/use-x-component-config.js";
1
2
  import { codeToHtml } from "./shiki.js";
2
3
  import style_default from "./style/index.js";
3
4
  import { computed, createVNode, defineComponent, mergeProps, ref, shallowRef, useAttrs, watch } from "vue";
@@ -80,6 +81,7 @@ var XCodeHighlighter = /* @__PURE__ */ defineComponent({
80
81
  emits: ["update:theme"],
81
82
  setup(props, { emit, expose }) {
82
83
  const attrs = useAttrs();
84
+ const contextConfig = useXComponentConfig("codeHighlighter");
83
85
  const rootRef = ref();
84
86
  const [hashId, cssVarCls] = style_default(computed(() => props.prefixCls));
85
87
  const copied = ref(false);
@@ -131,16 +133,24 @@ var XCodeHighlighter = /* @__PURE__ */ defineComponent({
131
133
  emit("update:theme", props.theme === "light" ? "dark" : "light");
132
134
  };
133
135
  const getSlotClassName = (slot) => {
134
- return [`${props.prefixCls}-${slot}`, props.classes?.[slot]];
136
+ return [
137
+ `${props.prefixCls}-${slot}`,
138
+ contextConfig.value.classes?.[slot],
139
+ props.classes?.[slot]
140
+ ];
135
141
  };
136
142
  const renderHeader = () => {
137
143
  if (!(props.showLanguage || props.showThemeToggle || props.showCopyButton)) return null;
138
144
  return createVNode("div", {
139
145
  "class": getSlotClassName("header"),
140
- "style": props.styles?.header
146
+ "style": [contextConfig.value.styles?.header, props.styles?.header]
141
147
  }, [props.showLanguage && createVNode("span", {
142
- "class": [`${props.prefixCls}-lang`, props.classes?.headerTitle],
143
- "style": props.styles?.headerTitle
148
+ "class": [
149
+ `${props.prefixCls}-lang`,
150
+ contextConfig.value.classes?.headerTitle,
151
+ props.classes?.headerTitle
152
+ ],
153
+ "style": [contextConfig.value.styles?.headerTitle, props.styles?.headerTitle]
144
154
  }, [props.language || "text"]), createVNode("div", { "class": `${props.prefixCls}-actions` }, [props.showThemeToggle && createVNode(Tooltip, { "title": props.theme === "light" ? "切换暗色主题" : "切换亮色主题" }, { default: () => [createVNode(Button, {
145
155
  "type": "text",
146
156
  "size": "small",
@@ -163,10 +173,14 @@ var XCodeHighlighter = /* @__PURE__ */ defineComponent({
163
173
  const renderContent = () => {
164
174
  return createVNode("div", {
165
175
  "class": getSlotClassName("content"),
166
- "style": props.styles?.content
176
+ "style": [contextConfig.value.styles?.content, props.styles?.content]
167
177
  }, [renderLineNumbers(), createVNode("div", {
168
- "class": [`${props.prefixCls}-code`, props.classes?.code],
169
- "style": props.styles?.code,
178
+ "class": [
179
+ `${props.prefixCls}-code`,
180
+ contextConfig.value.classes?.code,
181
+ props.classes?.code
182
+ ],
183
+ "style": [contextConfig.value.styles?.code, props.styles?.code],
170
184
  "innerHTML": highlightedHtml.value
171
185
  }, null)]);
172
186
  };
@@ -175,6 +189,7 @@ var XCodeHighlighter = /* @__PURE__ */ defineComponent({
175
189
  props.prefixCls,
176
190
  `${props.prefixCls}-${props.theme}`,
177
191
  props.rootClass,
192
+ contextConfig.value.classes?.root,
178
193
  props.classes?.root,
179
194
  hashId.value,
180
195
  cssVarCls.value,
@@ -182,6 +197,8 @@ var XCodeHighlighter = /* @__PURE__ */ defineComponent({
182
197
  props.class
183
198
  ],
184
199
  "style": [
200
+ contextConfig.value.style,
201
+ contextConfig.value.styles?.root,
185
202
  props.styles?.root,
186
203
  attrs.style,
187
204
  props.style
package/dist/index.umd.js CHANGED
@@ -48,7 +48,7 @@
48
48
  shiki_dist_themes_vitesse_dark_mjs = __toESM(shiki_dist_themes_vitesse_dark_mjs);
49
49
  shiki_dist_themes_vitesse_light_mjs = __toESM(shiki_dist_themes_vitesse_light_mjs);
50
50
  //#region package.json
51
- var version = "1.0.1";
51
+ var version = "1.0.2-beta.2";
52
52
  //#endregion
53
53
  //#region components/x-provider/context.ts
54
54
  var XProviderContextKey = Symbol("antdv-next-x-provider-context");
@@ -4056,7 +4056,10 @@
4056
4056
  const { class: _class, style: _style, ...rest } = attrs;
4057
4057
  return rest;
4058
4058
  });
4059
- const memoedContent = (0, vue.computed)(() => {
4059
+ const fallbackContent = (0, vue.computed)(() => {
4060
+ return props.contentRender ? props.contentRender(props.content, props.info) : props.content;
4061
+ });
4062
+ const resolveMainContent = () => {
4060
4063
  if (slots.content) {
4061
4064
  const slotNode = slots.content({
4062
4065
  content: props.content,
@@ -4064,23 +4067,23 @@
4064
4067
  });
4065
4068
  if (hasRenderableNode(slotNode)) return slotNode;
4066
4069
  }
4067
- return props.contentRender ? props.contentRender(props.content, props.info) : props.content;
4068
- });
4070
+ return fallbackContent.value;
4071
+ };
4069
4072
  const mergedTyping = (0, vue.computed)(() => {
4070
4073
  if (typeof props.typing === "function") return props.typing(props.content, props.info);
4071
4074
  return props.typing;
4072
4075
  });
4073
4076
  const usingInnerAnimation = (0, vue.computed)(() => {
4074
- return Boolean(mergedTyping.value) && typeof memoedContent.value === "string";
4077
+ return Boolean(mergedTyping.value) && typeof fallbackContent.value === "string";
4075
4078
  });
4076
4079
  (0, vue.watch)(() => [
4077
- memoedContent.value,
4080
+ fallbackContent.value,
4078
4081
  usingInnerAnimation.value,
4079
4082
  props.streaming
4080
4083
  ], () => {
4081
4084
  if (usingInnerAnimation.value) return;
4082
4085
  if (props.streaming) return;
4083
- if (typeof memoedContent.value === "string") props.onTypingComplete?.(memoedContent.value);
4086
+ if (typeof fallbackContent.value === "string") props.onTypingComplete?.(fallbackContent.value);
4084
4087
  }, { immediate: true });
4085
4088
  const footerPlacement = (0, vue.computed)(() => {
4086
4089
  if (props.footerPlacement) return props.footerPlacement;
@@ -4130,7 +4133,7 @@
4130
4133
  "style": getSlotStyle("footer")
4131
4134
  }, [node]);
4132
4135
  };
4133
- const renderMainContent = () => {
4136
+ const renderMainContent = (mainContent, usingInnerAnimationInRender) => {
4134
4137
  if (isEditing.value) {
4135
4138
  if (typeof props.content !== "string") throw new Error("[Bubble] Editable mode only supports string content.");
4136
4139
  return (0, vue.createVNode)(EditableContent, {
@@ -4142,14 +4145,14 @@
4142
4145
  "onEditCancel": props.onEditCancel
4143
4146
  }, null);
4144
4147
  }
4145
- return usingInnerAnimation.value && typeof memoedContent.value === "string" ? (0, vue.createVNode)(TypingContent, {
4148
+ return usingInnerAnimationInRender && typeof mainContent === "string" ? (0, vue.createVNode)(TypingContent, {
4146
4149
  "prefixCls": props.prefixCls,
4147
4150
  "streaming": props.streaming,
4148
4151
  "typing": mergedTyping.value,
4149
- "content": memoedContent.value,
4152
+ "content": mainContent,
4150
4153
  "onTyping": props.onTyping,
4151
4154
  "onTypingComplete": props.onTypingComplete
4152
- }, null) : memoedContent.value;
4155
+ }, null) : mainContent;
4153
4156
  };
4154
4157
  const renderContent = () => {
4155
4158
  if (props.loading) {
@@ -4163,6 +4166,8 @@
4163
4166
  if (props.loadingRender) return props.loadingRender(props.content, props.info);
4164
4167
  return (0, vue.createVNode)(loading_default, { "prefixCls": props.prefixCls }, null);
4165
4168
  }
4169
+ const mainContent = resolveMainContent();
4170
+ const usingInnerAnimationInRender = Boolean(mergedTyping.value) && typeof mainContent === "string";
4166
4171
  return (0, vue.createVNode)("div", {
4167
4172
  "class": getSlotClassName("body"),
4168
4173
  "style": getSlotStyle("body")
@@ -4176,7 +4181,7 @@
4176
4181
  contextConfig.value.classes?.content,
4177
4182
  props.classes?.content,
4178
4183
  {
4179
- [`${prefixCls.value}-content-string`]: typeof memoedContent.value === "string",
4184
+ [`${prefixCls.value}-content-string`]: typeof mainContent === "string",
4180
4185
  [`${prefixCls.value}-content-editing`]: isEditing.value,
4181
4186
  [`${prefixCls.value}-content-${props.info.status}`]: props.info.status
4182
4187
  }
@@ -4185,7 +4190,7 @@
4185
4190
  ...contextConfig.value.styles?.content,
4186
4191
  ...props.styles?.content
4187
4192
  }
4188
- }, [isFooterInner.value ? (0, vue.createVNode)(vue.Fragment, null, [(0, vue.createVNode)("div", { "class": `${prefixCls.value}-content-with-footer` }, [renderMainContent()]), !isEditing.value ? renderFooter() : null]) : renderMainContent()]),
4193
+ }, [isFooterInner.value ? (0, vue.createVNode)(vue.Fragment, null, [(0, vue.createVNode)("div", { "class": `${prefixCls.value}-content-with-footer` }, [renderMainContent(mainContent, usingInnerAnimationInRender)]), !isEditing.value ? renderFooter() : null]) : renderMainContent(mainContent, usingInnerAnimationInRender)]),
4189
4194
  !isEditing.value && !isFooterInner.value ? renderFooter() : null
4190
4195
  ]);
4191
4196
  };
@@ -5008,6 +5013,7 @@
5008
5013
  emits: ["update:theme"],
5009
5014
  setup(props, { emit, expose }) {
5010
5015
  const attrs = (0, vue.useAttrs)();
5016
+ const contextConfig = useXComponentConfig("codeHighlighter");
5011
5017
  const rootRef = (0, vue.ref)();
5012
5018
  const [hashId, cssVarCls] = style_default$9((0, vue.computed)(() => props.prefixCls));
5013
5019
  const copied = (0, vue.ref)(false);
@@ -5059,16 +5065,24 @@
5059
5065
  emit("update:theme", props.theme === "light" ? "dark" : "light");
5060
5066
  };
5061
5067
  const getSlotClassName = (slot) => {
5062
- return [`${props.prefixCls}-${slot}`, props.classes?.[slot]];
5068
+ return [
5069
+ `${props.prefixCls}-${slot}`,
5070
+ contextConfig.value.classes?.[slot],
5071
+ props.classes?.[slot]
5072
+ ];
5063
5073
  };
5064
5074
  const renderHeader = () => {
5065
5075
  if (!(props.showLanguage || props.showThemeToggle || props.showCopyButton)) return null;
5066
5076
  return (0, vue.createVNode)("div", {
5067
5077
  "class": getSlotClassName("header"),
5068
- "style": props.styles?.header
5078
+ "style": [contextConfig.value.styles?.header, props.styles?.header]
5069
5079
  }, [props.showLanguage && (0, vue.createVNode)("span", {
5070
- "class": [`${props.prefixCls}-lang`, props.classes?.headerTitle],
5071
- "style": props.styles?.headerTitle
5080
+ "class": [
5081
+ `${props.prefixCls}-lang`,
5082
+ contextConfig.value.classes?.headerTitle,
5083
+ props.classes?.headerTitle
5084
+ ],
5085
+ "style": [contextConfig.value.styles?.headerTitle, props.styles?.headerTitle]
5072
5086
  }, [props.language || "text"]), (0, vue.createVNode)("div", { "class": `${props.prefixCls}-actions` }, [props.showThemeToggle && (0, vue.createVNode)(antdv_next.Tooltip, { "title": props.theme === "light" ? "切换暗色主题" : "切换亮色主题" }, { default: () => [(0, vue.createVNode)(antdv_next.Button, {
5073
5087
  "type": "text",
5074
5088
  "size": "small",
@@ -5091,10 +5105,14 @@
5091
5105
  const renderContent = () => {
5092
5106
  return (0, vue.createVNode)("div", {
5093
5107
  "class": getSlotClassName("content"),
5094
- "style": props.styles?.content
5108
+ "style": [contextConfig.value.styles?.content, props.styles?.content]
5095
5109
  }, [renderLineNumbers(), (0, vue.createVNode)("div", {
5096
- "class": [`${props.prefixCls}-code`, props.classes?.code],
5097
- "style": props.styles?.code,
5110
+ "class": [
5111
+ `${props.prefixCls}-code`,
5112
+ contextConfig.value.classes?.code,
5113
+ props.classes?.code
5114
+ ],
5115
+ "style": [contextConfig.value.styles?.code, props.styles?.code],
5098
5116
  "innerHTML": highlightedHtml.value
5099
5117
  }, null)]);
5100
5118
  };
@@ -5103,6 +5121,7 @@
5103
5121
  props.prefixCls,
5104
5122
  `${props.prefixCls}-${props.theme}`,
5105
5123
  props.rootClass,
5124
+ contextConfig.value.classes?.root,
5106
5125
  props.classes?.root,
5107
5126
  hashId.value,
5108
5127
  cssVarCls.value,
@@ -5110,6 +5129,8 @@
5110
5129
  props.class
5111
5130
  ],
5112
5131
  "style": [
5132
+ contextConfig.value.style,
5133
+ contextConfig.value.styles?.root,
5113
5134
  props.styles?.root,
5114
5135
  attrs.style,
5115
5136
  props.style
@@ -11312,6 +11333,14 @@
11312
11333
  type: Object,
11313
11334
  default: void 0
11314
11335
  },
11336
+ sources: {
11337
+ type: Object,
11338
+ default: void 0
11339
+ },
11340
+ codeHighlighter: {
11341
+ type: Object,
11342
+ default: void 0
11343
+ },
11315
11344
  mermaid: {
11316
11345
  type: Object,
11317
11346
  default: void 0
@@ -11324,6 +11353,18 @@
11324
11353
  type: Object,
11325
11354
  default: void 0
11326
11355
  },
11356
+ sender: {
11357
+ type: Object,
11358
+ default: void 0
11359
+ },
11360
+ think: {
11361
+ type: Object,
11362
+ default: void 0
11363
+ },
11364
+ thoughtChain: {
11365
+ type: Object,
11366
+ default: void 0
11367
+ },
11327
11368
  welcome: {
11328
11369
  type: Object,
11329
11370
  default: void 0
@@ -11350,9 +11391,14 @@
11350
11391
  bubble: props.bubble,
11351
11392
  conversations: props.conversations,
11352
11393
  fileCard: props.fileCard,
11394
+ sources: props.sources,
11395
+ codeHighlighter: props.codeHighlighter,
11353
11396
  mermaid: props.mermaid,
11354
11397
  prompts: props.prompts,
11355
11398
  suggestion: props.suggestion,
11399
+ sender: props.sender,
11400
+ think: props.think,
11401
+ thoughtChain: props.thoughtChain,
11356
11402
  welcome: props.welcome
11357
11403
  };
11358
11404
  }));
package/dist/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  //#region package.json
2
- var version = "1.0.1";
2
+ var version = "1.0.2-beta.2";
3
3
  //#endregion
4
4
  export { version };
@@ -3,6 +3,7 @@ import { ComputedRef, CSSProperties, StyleValue } from 'vue';
3
3
  import { ActionsProps } from '../actions';
4
4
  import { AttachmentsProps } from '../attachments';
5
5
  import { BubbleProps } from '../bubble';
6
+ import { CodeHighlighterProps } from '../code-highlighter';
6
7
  import { ConversationsProps } from '../conversations';
7
8
  import { FileCardProps } from '../file-card';
8
9
  import { MermaidProps } from '../mermaid';
@@ -29,9 +30,12 @@ export interface XComponentsConfig {
29
30
  actions?: Pick<ActionsProps, "style" | "styles" | "classes">;
30
31
  sources?: Pick<SourcesProps, "style" | "styles" | "classes">;
31
32
  fileCard?: Pick<FileCardProps, "style" | "styles" | "classes">;
33
+ codeHighlighter?: Pick<CodeHighlighterProps, "style" | "styles" | "classes">;
32
34
  mermaid?: Pick<MermaidProps, "style" | "styles" | "classes">;
33
35
  prompts?: Pick<PromptsProps, "style" | "styles" | "classes">;
34
- sender?: Pick<SenderProps, "style" | "styles" | "classNames">;
36
+ sender?: Pick<SenderProps, "style" | "styles" | "classNames"> & {
37
+ classes?: SenderProps["classNames"];
38
+ };
35
39
  suggestion?: Pick<SuggestionProps, "style" | "styles" | "classes">;
36
40
  think?: Pick<ThinkProps, "style" | "styles" | "classes">;
37
41
  thoughtChain?: Pick<ThoughtChainProps, "style" | "styles" | "classes">;
@@ -22,6 +22,14 @@ declare const XProvider: import('vue').DefineComponent<import('vue').ExtractProp
22
22
  type: PropType<XProviderProps["fileCard"]>;
23
23
  default: undefined;
24
24
  };
25
+ sources: {
26
+ type: PropType<XProviderProps["sources"]>;
27
+ default: undefined;
28
+ };
29
+ codeHighlighter: {
30
+ type: PropType<XProviderProps["codeHighlighter"]>;
31
+ default: undefined;
32
+ };
25
33
  mermaid: {
26
34
  type: PropType<XProviderProps["mermaid"]>;
27
35
  default: undefined;
@@ -34,6 +42,18 @@ declare const XProvider: import('vue').DefineComponent<import('vue').ExtractProp
34
42
  type: PropType<XProviderProps["suggestion"]>;
35
43
  default: undefined;
36
44
  };
45
+ sender: {
46
+ type: PropType<XProviderProps["sender"]>;
47
+ default: undefined;
48
+ };
49
+ think: {
50
+ type: PropType<XProviderProps["think"]>;
51
+ default: undefined;
52
+ };
53
+ thoughtChain: {
54
+ type: PropType<XProviderProps["thoughtChain"]>;
55
+ default: undefined;
56
+ };
37
57
  welcome: {
38
58
  type: PropType<XProviderProps["welcome"]>;
39
59
  default: undefined;
@@ -71,6 +91,14 @@ declare const XProvider: import('vue').DefineComponent<import('vue').ExtractProp
71
91
  type: PropType<XProviderProps["fileCard"]>;
72
92
  default: undefined;
73
93
  };
94
+ sources: {
95
+ type: PropType<XProviderProps["sources"]>;
96
+ default: undefined;
97
+ };
98
+ codeHighlighter: {
99
+ type: PropType<XProviderProps["codeHighlighter"]>;
100
+ default: undefined;
101
+ };
74
102
  mermaid: {
75
103
  type: PropType<XProviderProps["mermaid"]>;
76
104
  default: undefined;
@@ -83,6 +111,18 @@ declare const XProvider: import('vue').DefineComponent<import('vue').ExtractProp
83
111
  type: PropType<XProviderProps["suggestion"]>;
84
112
  default: undefined;
85
113
  };
114
+ sender: {
115
+ type: PropType<XProviderProps["sender"]>;
116
+ default: undefined;
117
+ };
118
+ think: {
119
+ type: PropType<XProviderProps["think"]>;
120
+ default: undefined;
121
+ };
122
+ thoughtChain: {
123
+ type: PropType<XProviderProps["thoughtChain"]>;
124
+ default: undefined;
125
+ };
86
126
  welcome: {
87
127
  type: PropType<XProviderProps["welcome"]>;
88
128
  default: undefined;
@@ -109,10 +149,17 @@ declare const XProvider: import('vue').DefineComponent<import('vue').ExtractProp
109
149
  bubble: Pick<import('..').BubbleProps<string>, "style" | "classes" | "styles"> | undefined;
110
150
  conversations: Pick<import('..').ConversationsProps, "style" | "classes" | "styles" | "shortcutKeys"> | undefined;
111
151
  actions: Pick<import('..').ActionsProps, "style" | "classes" | "styles"> | undefined;
152
+ sources: Pick<import('..').SourcesProps, "style" | "classes" | "styles"> | undefined;
112
153
  fileCard: Pick<import('..').FileCardProps, "style" | "classes" | "styles"> | undefined;
154
+ codeHighlighter: Pick<import('..').CodeHighlighterProps, "style" | "classes" | "styles"> | undefined;
113
155
  mermaid: Pick<import('..').MermaidProps, "style" | "classes" | "styles"> | undefined;
114
156
  prompts: Pick<import('..').PromptsProps, "style" | "classes" | "styles"> | undefined;
157
+ sender: (Pick<import('..').SenderProps, "style" | "styles" | "classNames"> & {
158
+ classes?: import('..').SenderProps["classNames"];
159
+ }) | undefined;
115
160
  suggestion: Pick<import('..').SuggestionProps<any>, "style" | "classes" | "styles"> | undefined;
161
+ think: Pick<import('..').ThinkProps, "style" | "classes" | "styles"> | undefined;
162
+ thoughtChain: Pick<import('..').ThoughtChainProps, "style" | "classes" | "styles"> | undefined;
116
163
  welcome: Pick<import('..').WelcomeProps, "style" | "classes" | "styles"> | undefined;
117
164
  locale: any;
118
165
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
@@ -27,6 +27,14 @@ var XProvider = /* @__PURE__ */ defineComponent({
27
27
  type: Object,
28
28
  default: void 0
29
29
  },
30
+ sources: {
31
+ type: Object,
32
+ default: void 0
33
+ },
34
+ codeHighlighter: {
35
+ type: Object,
36
+ default: void 0
37
+ },
30
38
  mermaid: {
31
39
  type: Object,
32
40
  default: void 0
@@ -39,6 +47,18 @@ var XProvider = /* @__PURE__ */ defineComponent({
39
47
  type: Object,
40
48
  default: void 0
41
49
  },
50
+ sender: {
51
+ type: Object,
52
+ default: void 0
53
+ },
54
+ think: {
55
+ type: Object,
56
+ default: void 0
57
+ },
58
+ thoughtChain: {
59
+ type: Object,
60
+ default: void 0
61
+ },
42
62
  welcome: {
43
63
  type: Object,
44
64
  default: void 0
@@ -65,9 +85,14 @@ var XProvider = /* @__PURE__ */ defineComponent({
65
85
  bubble: props.bubble,
66
86
  conversations: props.conversations,
67
87
  fileCard: props.fileCard,
88
+ sources: props.sources,
89
+ codeHighlighter: props.codeHighlighter,
68
90
  mermaid: props.mermaid,
69
91
  prompts: props.prompts,
70
92
  suggestion: props.suggestion,
93
+ sender: props.sender,
94
+ think: props.think,
95
+ thoughtChain: props.thoughtChain,
71
96
  welcome: props.welcome
72
97
  };
73
98
  }));
@@ -1,5 +1,5 @@
1
- import { A as e, B as t, C as n, E as r, H as i, M as a, U as o, V as s, k as c, p as l, w as u, z as d } from "./isArrayLikeObject-y3HlYDaX.js";
2
- import { A as f, C as p, D as m, M as h, N as g, S as _, T as v, f as y, h as b, u as x, w as S } from "./_baseUniq-Ch3HuHeT.js";
1
+ import { A as e, B as t, C as n, E as r, H as i, M as a, U as o, V as s, k as c, p as l, w as u, z as d } from "./isArrayLikeObject-BEG9p74d.js";
2
+ import { A as f, C as p, D as m, M as h, N as g, S as _, T as v, f as y, h as b, u as x, w as S } from "./_baseUniq-AMhRdOMz.js";
3
3
  //#region ../../node_modules/lodash-es/_trimmedEndIndex.js
4
4
  var C = /\s/;
5
5
  function w(e) {
@@ -1,5 +1,5 @@
1
- import { A as e, B as t, F as n, H as r, M as i, O as a, T as o, U as s, V as c, W as l, _ as u, a as d, b as f, c as p, d as m, g as h, h as g, i as _, k as v, l as y, n as ee, o as b, p as x, r as te, s as ne, u as re, v as ie, w as S, y as C, z as w } from "./isArrayLikeObject-y3HlYDaX.js";
2
- import { i as ae, n as T, r as E } from "./isEmpty-2JxdWtc-.js";
1
+ import { A as e, B as t, F as n, H as r, M as i, O as a, T as o, U as s, V as c, W as l, _ as u, a as d, b as f, c as p, d as m, g as h, h as g, i as _, k as v, l as y, n as ee, o as b, p as x, r as te, s as ne, u as re, v as ie, w as S, y as C, z as w } from "./isArrayLikeObject-BEG9p74d.js";
2
+ import { i as ae, n as T, r as E } from "./isEmpty-B1YrVV8B.js";
3
3
  //#region ../../node_modules/lodash-es/isSymbol.js
4
4
  var oe = "[object Symbol]";
5
5
  function D(e) {