@matechat/core 1.11.1 → 1.12.0-alpha.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 (42) hide show
  1. package/Attachment/Attachment.vue.d.ts +8 -8
  2. package/Attachment/attachment-types.d.ts +3 -35
  3. package/Attachment/index.css +1 -1
  4. package/Attachment/index.js +43 -45
  5. package/Bubble/index.css +1 -1
  6. package/Bubble/index.js +276 -146
  7. package/Bubble/useBubbleFoundation.d.ts +9 -0
  8. package/FileList/index.js +1 -1
  9. package/Header/index.css +1 -1
  10. package/Header/index.js +11 -11
  11. package/Input/components/EditableBlock.vue.d.ts +2 -2
  12. package/Input/index.css +1 -1
  13. package/Input/index.js +82 -57
  14. package/Introduction/index.css +1 -1
  15. package/Introduction/index.js +129 -39
  16. package/Layout/index.js +6 -6
  17. package/List/index.js +5 -5
  18. package/MarkdownCard/MDCardParser.d.ts +0 -10
  19. package/MarkdownCard/MermaidService-yeLQUW_e.js +142 -0
  20. package/MarkdownCard/index.css +1 -1
  21. package/MarkdownCard/index.js +545 -361
  22. package/MarkdownCard/mdCard.types.d.ts +2 -29
  23. package/MarkdownCard/mdCard.vue.d.ts +2 -2
  24. package/MarkdownCard/useMarkdownCardFoundation.d.ts +8 -0
  25. package/Mention/Mention.vue.d.ts +12 -3
  26. package/Mention/index.css +1 -1
  27. package/Mention/index.js +364 -110
  28. package/Mention/mention-types.d.ts +6 -4
  29. package/Mention/use-mention.d.ts +7 -0
  30. package/Prompt/index.js +1 -1
  31. package/Toolbar/index.css +1 -1
  32. package/Toolbar/index.d.ts +2 -1
  33. package/Toolbar/index.js +189 -198
  34. package/Toolbar/toolbar.types.d.ts +2 -26
  35. package/index.d.ts +2 -2
  36. package/mate-chat.js +2 -1
  37. package/package.json +1 -1
  38. package/Attachment/uploader.d.ts +0 -11
  39. package/MarkdownCard/MDCardService.d.ts +0 -14
  40. package/MarkdownCard/MermaidService-B6BcjbW_.js +0 -127
  41. package/MarkdownCard/MermaidService.d.ts +0 -22
  42. package/Mention/const.d.ts +0 -4
package/Layout/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "./index.css";
2
- import { createElementBlock as n, openBlock as c, renderSlot as o } from "vue";
2
+ import { openBlock as n, createElementBlock as c, renderSlot as o } from "vue";
3
3
  const s = (e, t) => {
4
4
  const r = e.__vccOpts || e;
5
5
  for (const [a, _] of t)
@@ -7,31 +7,31 @@ const s = (e, t) => {
7
7
  return r;
8
8
  }, u = {}, f = { class: "mc-layout-aside" };
9
9
  function i(e, t) {
10
- return c(), n("div", f, [
10
+ return n(), c("div", f, [
11
11
  o(e.$slots, "default")
12
12
  ]);
13
13
  }
14
14
  const l = /* @__PURE__ */ s(u, [["render", i]]), m = {}, $ = { class: "mc-layout-content" };
15
15
  function y(e, t) {
16
- return c(), n("div", $, [
16
+ return n(), c("div", $, [
17
17
  o(e.$slots, "default", {}, void 0, !0)
18
18
  ]);
19
19
  }
20
20
  const h = /* @__PURE__ */ s(m, [["render", y], ["__scopeId", "data-v-629ef113"]]), v = {}, L = { class: "mc-layout-header" };
21
21
  function M(e, t) {
22
- return c(), n("div", L, [
22
+ return n(), c("div", L, [
23
23
  o(e.$slots, "default", {}, void 0, !0)
24
24
  ]);
25
25
  }
26
26
  const p = /* @__PURE__ */ s(v, [["render", M], ["__scopeId", "data-v-8201933b"]]), k = {}, I = { class: "mc-layout" };
27
27
  function S(e, t) {
28
- return c(), n("div", I, [
28
+ return n(), c("div", I, [
29
29
  o(e.$slots, "default", {}, void 0, !0)
30
30
  ]);
31
31
  }
32
32
  const d = /* @__PURE__ */ s(k, [["render", S], ["__scopeId", "data-v-8f271543"]]), x = {}, A = { class: "mc-layout-sender" };
33
33
  function B(e, t) {
34
- return c(), n("div", A, [
34
+ return n(), c("div", A, [
35
35
  o(e.$slots, "default")
36
36
  ]);
37
37
  }
package/List/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "./index.css";
2
- import { computed as E, ref as L, onMounted as p, onUnmounted as w, defineComponent as z, createElementBlock as f, openBlock as v, unref as c, normalizeClass as g, Fragment as b, renderList as C, renderSlot as h, createTextVNode as T, toDisplayString as A } from "vue";
2
+ import { computed as E, ref as L, onMounted as p, onUnmounted as w, defineComponent as z, openBlock as f, createElementBlock as v, unref as c, normalizeClass as g, Fragment as b, renderList as C, renderSlot as h, createTextVNode as T, toDisplayString as A } from "vue";
3
3
  var m = /* @__PURE__ */ ((e) => (e.Horizontal = "horizontal", e.Vertical = "vertical", e))(m || {}), k = /* @__PURE__ */ ((e) => (e.Transparent = "transparent", e.Filled = "filled", e.Bordered = "bordered", e.None = "none", e))(k || {});
4
4
  const B = {
5
5
  direction: {
@@ -77,7 +77,7 @@ const U = ["onClick"], $ = /* @__PURE__ */ z({
77
77
  emits: ["select", "loadMore"],
78
78
  setup(e, { emit: r }) {
79
79
  const o = e, l = r, { listClasses: i } = K(o), { preSelectIndex: y, onItemClick: s, onListScroll: t } = D(o, l);
80
- return (n, d) => (v(), f(
80
+ return (n, d) => (f(), v(
81
81
  "div",
82
82
  {
83
83
  class: g(c(i)),
@@ -85,17 +85,17 @@ const U = ["onClick"], $ = /* @__PURE__ */ z({
85
85
  (...a) => c(t) && c(t)(...a))
86
86
  },
87
87
  [
88
- (v(!0), f(
88
+ (f(!0), v(
89
89
  b,
90
90
  null,
91
- C(n.data, (a, u) => (v(), f(
91
+ C(n.data, (a, u) => (f(), v(
92
92
  b,
93
93
  { key: u },
94
94
  [
95
95
  n.variant === c(k).None ? h(n.$slots, "item", {
96
96
  key: 0,
97
97
  item: a
98
- }, void 0, !0) : (v(), f("div", {
98
+ }, void 0, !0) : (f(), v("div", {
99
99
  key: 1,
100
100
  class: g([
101
101
  "mc-list-item",
@@ -1,12 +1,2 @@
1
- import type { Token } from 'markdown-it';
2
1
  import { VNode } from 'vue';
3
- export interface ASTNode {
4
- nodeType: string;
5
- openNode: Token | null;
6
- closeNode: Token | null;
7
- children: (ASTNode | Token)[];
8
- vNodeKey: string;
9
- }
10
- export declare const tokensToAst: (tokens: Token[]) => ASTNode[];
11
2
  export declare const htmlToVNode: (htmlString: string) => (VNode | string)[];
12
- export declare const isValidTagName: (tagName: string | undefined) => boolean;
@@ -0,0 +1,142 @@
1
+ var f = Object.defineProperty;
2
+ var u = (d, t, e) => t in d ? f(d, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : d[t] = e;
3
+ var m = (d, t, e) => u(d, typeof t != "symbol" ? t + "" : t, e);
4
+ class v {
5
+ constructor(t = {}) {
6
+ m(this, "mermaidInstance", null);
7
+ m(this, "isLoading", !1);
8
+ m(this, "lastValidResult", "");
9
+ m(this, "viewStateMap", /* @__PURE__ */ new WeakMap());
10
+ m(this, "containerHeight", 400);
11
+ this.config = t;
12
+ }
13
+ async loadMermaid() {
14
+ if (this.mermaidInstance)
15
+ return this.mermaidInstance;
16
+ if (this.isLoading)
17
+ return new Promise((t) => {
18
+ const e = () => {
19
+ this.mermaidInstance ? t(this.mermaidInstance) : setTimeout(e, 50);
20
+ };
21
+ e();
22
+ });
23
+ this.isLoading = !0;
24
+ try {
25
+ const { default: t } = await import("mermaid");
26
+ return t.initialize({
27
+ theme: this.config.theme || "default",
28
+ startOnLoad: !1,
29
+ suppressErrorRendering: !0,
30
+ ...this.config
31
+ }), this.mermaidInstance = t, t;
32
+ } catch (t) {
33
+ throw console.error("Failed to load mermaid:", t), new Error("Failed to load mermaid library");
34
+ } finally {
35
+ this.isLoading = !1;
36
+ }
37
+ }
38
+ async renderToContainer(t, e, a = "light") {
39
+ const s = await this.renderMermaid(e, a);
40
+ t.innerHTML = s;
41
+ const i = t.querySelector("svg");
42
+ i && (this.initViewState(t, i), this.applyTransform(t, i), i.addEventListener("mousedown", (o) => this.onSvgMouseDown(o, t, i)));
43
+ }
44
+ initViewState(t, e) {
45
+ let a = e.getAttribute("viewBox"), s = 0, i = 0;
46
+ if (a) {
47
+ const l = a.split(/\s+/);
48
+ s = parseFloat(l[2]), i = parseFloat(l[3]);
49
+ } else
50
+ s = e.width.baseVal.value || e.getBoundingClientRect().width, i = e.height.baseVal.value || e.getBoundingClientRect().height;
51
+ const o = t.clientWidth || 0, r = this.containerHeight;
52
+ let n = 1;
53
+ s && i && o && r && (n = Math.min(o / s, r / i, 1)), this.viewStateMap.set(t, {
54
+ scale: n,
55
+ offsetX: 0,
56
+ offsetY: 0,
57
+ dragging: !1,
58
+ dragStart: { x: 0, y: 0 },
59
+ lastOffset: { x: 0, y: 0 }
60
+ });
61
+ }
62
+ applyTransform(t, e) {
63
+ const a = this.viewStateMap.get(t);
64
+ a && (e.style.maxWidth = "90%", e.style.maxHeight = "90%", e.style.position = "absolute", e.style.left = "50%", e.style.top = "50%", e.style.transform = `translate(-50%, -50%) translate(${a.offsetX}px, ${a.offsetY}px) scale(${a.scale})`, e.style.transformOrigin = "center center", e.style.cursor = a.dragging ? "grabbing" : "grab");
65
+ }
66
+ zoomIn(t) {
67
+ const e = t.querySelector("svg"), a = this.viewStateMap.get(t);
68
+ e && a && (a.scale = Math.min(a.scale + 0.2, 3), this.applyTransform(t, e));
69
+ }
70
+ zoomOut(t) {
71
+ const e = t.querySelector("svg"), a = this.viewStateMap.get(t);
72
+ e && a && (a.scale = Math.max(a.scale - 0.2, 0.2), this.applyTransform(t, e));
73
+ }
74
+ reset(t) {
75
+ const e = t.querySelector("svg");
76
+ e && (this.initViewState(t, e), this.applyTransform(t, e));
77
+ }
78
+ async download(t, e = "diagram.png") {
79
+ const a = t.querySelector("svg");
80
+ if (a)
81
+ try {
82
+ const s = a.cloneNode(!0), i = new XMLSerializer().serializeToString(s), o = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(i)}`, r = new Image();
83
+ await new Promise((g, h) => {
84
+ r.onload = () => g(), r.onerror = (c) => h(new Error("Image loading failed")), r.src = o;
85
+ });
86
+ const n = document.createElement("canvas"), l = n.getContext("2d");
87
+ if (!l) throw new Error("Canvas context not available");
88
+ n.width = r.width * 2, n.height = r.height * 2, l.fillStyle = "white", l.fillRect(0, 0, n.width, n.height), l.drawImage(r, 0, 0), n.toBlob((g) => {
89
+ if (!g) {
90
+ console.error("Failed to create blob from canvas");
91
+ return;
92
+ }
93
+ const h = URL.createObjectURL(g), c = document.createElement("a");
94
+ c.href = h, c.download = e, document.body.appendChild(c), c.click(), setTimeout(() => {
95
+ document.body.removeChild(c), URL.revokeObjectURL(h);
96
+ }, 100);
97
+ }, "image/png");
98
+ } catch (s) {
99
+ console.error("Failed to download diagram:", s);
100
+ }
101
+ }
102
+ onSvgMouseDown(t, e, a) {
103
+ const s = this.viewStateMap.get(e);
104
+ if (!s) return;
105
+ s.dragging = !0, s.dragStart = { x: t.clientX, y: t.clientY }, s.lastOffset = { x: s.offsetX, y: s.offsetY };
106
+ const i = (r) => this.onSvgMouseMove(r, e, a), o = () => this.onSvgMouseUp(e, a, i, o);
107
+ document.addEventListener("mousemove", i), document.addEventListener("mouseup", o), this.applyTransform(e, a);
108
+ }
109
+ onSvgMouseMove(t, e, a) {
110
+ const s = this.viewStateMap.get(e);
111
+ !s || !s.dragging || (s.offsetX = s.lastOffset.x + (t.clientX - s.dragStart.x), s.offsetY = s.lastOffset.y + (t.clientY - s.dragStart.y), this.applyTransform(e, a));
112
+ }
113
+ onSvgMouseUp(t, e, a, s) {
114
+ const i = this.viewStateMap.get(t);
115
+ i && (i.dragging = !1, document.removeEventListener("mousemove", a), document.removeEventListener("mouseup", s), this.applyTransform(t, e));
116
+ }
117
+ async renderMermaid(t, e = "light") {
118
+ try {
119
+ const a = await this.loadMermaid();
120
+ this.config.theme !== e && a.initialize({
121
+ startOnLoad: !1,
122
+ suppressErrorRendering: !0,
123
+ theme: e === "dark" ? "dark" : "default",
124
+ ...this.config
125
+ });
126
+ const s = `mc_mermaid_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`, { svg: i } = await a.render(s, t);
127
+ return this.lastValidResult = i, i;
128
+ } catch {
129
+ return this.lastValidResult;
130
+ }
131
+ }
132
+ // 设置配置
133
+ setConfig(t = {}) {
134
+ this.config = {
135
+ theme: "default",
136
+ ...t
137
+ };
138
+ }
139
+ }
140
+ export {
141
+ v as MermaidService
142
+ };
@@ -1 +1 @@
1
- .mc-code-block-light[data-v-6332bb90] pre code.hljs{display:block;overflow-x:auto;padding:1em}.mc-code-block-light[data-v-6332bb90] code.hljs{padding:3px 5px}.mc-code-block-light[data-v-6332bb90] .hljs{background:#fefefe;color:#545454}.mc-code-block-light[data-v-6332bb90] .hljs-comment,.mc-code-block-light[data-v-6332bb90] .hljs-quote{color:#696969}.mc-code-block-light[data-v-6332bb90] .hljs-variable,.mc-code-block-light[data-v-6332bb90] .hljs-template-variable,.mc-code-block-light[data-v-6332bb90] .hljs-tag,.mc-code-block-light[data-v-6332bb90] .hljs-name,.mc-code-block-light[data-v-6332bb90] .hljs-selector-id,.mc-code-block-light[data-v-6332bb90] .hljs-selector-class,.mc-code-block-light[data-v-6332bb90] .hljs-regexp,.mc-code-block-light[data-v-6332bb90] .hljs-deletion{color:#d91e18}.mc-code-block-light[data-v-6332bb90] .hljs-number,.mc-code-block-light[data-v-6332bb90] .hljs-built_in,.mc-code-block-light[data-v-6332bb90] .hljs-literal,.mc-code-block-light[data-v-6332bb90] .hljs-type,.mc-code-block-light[data-v-6332bb90] .hljs-params,.mc-code-block-light[data-v-6332bb90] .hljs-meta,.mc-code-block-light[data-v-6332bb90] .hljs-link,.mc-code-block-light[data-v-6332bb90] .hljs-attribute{color:#aa5d00}.mc-code-block-light[data-v-6332bb90] .hljs-string,.mc-code-block-light[data-v-6332bb90] .hljs-symbol,.mc-code-block-light[data-v-6332bb90] .hljs-bullet,.mc-code-block-light[data-v-6332bb90] .hljs-addition{color:green}.mc-code-block-light[data-v-6332bb90] .hljs-title,.mc-code-block-light[data-v-6332bb90] .hljs-section{color:#007faa}.mc-code-block-light[data-v-6332bb90] .hljs-keyword,.mc-code-block-light[data-v-6332bb90] .hljs-selector-tag{color:#7928a1}.mc-code-block-light[data-v-6332bb90] .hljs-emphasis{font-style:italic}.mc-code-block-light[data-v-6332bb90] .hljs-strong{font-weight:700}@media screen and (-ms-high-contrast: active){.mc-code-block-light[data-v-6332bb90] .hljs-addition,.mc-code-block-light[data-v-6332bb90] .hljs-attribute,.mc-code-block-light[data-v-6332bb90] .hljs-built_in,.mc-code-block-light[data-v-6332bb90] .hljs-bullet,.mc-code-block-light[data-v-6332bb90] .hljs-comment,.mc-code-block-light[data-v-6332bb90] .hljs-link,.mc-code-block-light[data-v-6332bb90] .hljs-literal,.mc-code-block-light[data-v-6332bb90] .hljs-meta,.mc-code-block-light[data-v-6332bb90] .hljs-number,.mc-code-block-light[data-v-6332bb90] .hljs-params,.mc-code-block-light[data-v-6332bb90] .hljs-string,.mc-code-block-light[data-v-6332bb90] .hljs-symbol,.mc-code-block-light[data-v-6332bb90] .hljs-type,.mc-code-block-light[data-v-6332bb90] .hljs-quote{color:highlight}.mc-code-block-light[data-v-6332bb90] .hljs-keyword,.mc-code-block-light[data-v-6332bb90] .hljs-selector-tag{font-weight:700}}.mc-code-block-dark[data-v-6332bb90] pre code.hljs{display:block;overflow-x:auto;padding:1em}.mc-code-block-dark[data-v-6332bb90] code.hljs{padding:3px 5px}.mc-code-block-dark[data-v-6332bb90] .hljs{background:#2b2b2b;color:#f8f8f2}.mc-code-block-dark[data-v-6332bb90] .hljs-comment,.mc-code-block-dark[data-v-6332bb90] .hljs-quote{color:#d4d0ab}.mc-code-block-dark[data-v-6332bb90] .hljs-variable,.mc-code-block-dark[data-v-6332bb90] .hljs-template-variable,.mc-code-block-dark[data-v-6332bb90] .hljs-tag,.mc-code-block-dark[data-v-6332bb90] .hljs-name,.mc-code-block-dark[data-v-6332bb90] .hljs-selector-id,.mc-code-block-dark[data-v-6332bb90] .hljs-selector-class,.mc-code-block-dark[data-v-6332bb90] .hljs-regexp,.mc-code-block-dark[data-v-6332bb90] .hljs-deletion{color:#ffa07a}.mc-code-block-dark[data-v-6332bb90] .hljs-number,.mc-code-block-dark[data-v-6332bb90] .hljs-built_in,.mc-code-block-dark[data-v-6332bb90] .hljs-literal,.mc-code-block-dark[data-v-6332bb90] .hljs-type,.mc-code-block-dark[data-v-6332bb90] .hljs-params,.mc-code-block-dark[data-v-6332bb90] .hljs-meta,.mc-code-block-dark[data-v-6332bb90] .hljs-link{color:#f5ab35}.mc-code-block-dark[data-v-6332bb90] .hljs-attribute{color:gold}.mc-code-block-dark[data-v-6332bb90] .hljs-string,.mc-code-block-dark[data-v-6332bb90] .hljs-symbol,.mc-code-block-dark[data-v-6332bb90] .hljs-bullet,.mc-code-block-dark[data-v-6332bb90] .hljs-addition{color:#abe338}.mc-code-block-dark[data-v-6332bb90] .hljs-title,.mc-code-block-dark[data-v-6332bb90] .hljs-section{color:#00e0e0}.mc-code-block-dark[data-v-6332bb90] .hljs-keyword,.mc-code-block-dark[data-v-6332bb90] .hljs-selector-tag{color:#dcc6e0}.mc-code-block-dark[data-v-6332bb90] .hljs-emphasis{font-style:italic}.mc-code-block-dark[data-v-6332bb90] .hljs-strong{font-weight:700}@media screen and (-ms-high-contrast: active){.mc-code-block-dark[data-v-6332bb90] .hljs-addition,.mc-code-block-dark[data-v-6332bb90] .hljs-attribute,.mc-code-block-dark[data-v-6332bb90] .hljs-built_in,.mc-code-block-dark[data-v-6332bb90] .hljs-bullet,.mc-code-block-dark[data-v-6332bb90] .hljs-comment,.mc-code-block-dark[data-v-6332bb90] .hljs-link,.mc-code-block-dark[data-v-6332bb90] .hljs-literal,.mc-code-block-dark[data-v-6332bb90] .hljs-meta,.mc-code-block-dark[data-v-6332bb90] .hljs-number,.mc-code-block-dark[data-v-6332bb90] .hljs-params,.mc-code-block-dark[data-v-6332bb90] .hljs-string,.mc-code-block-dark[data-v-6332bb90] .hljs-symbol,.mc-code-block-dark[data-v-6332bb90] .hljs-type,.mc-code-block-dark[data-v-6332bb90] .hljs-quote{color:highlight}.mc-code-block-dark[data-v-6332bb90] .hljs-keyword,.mc-code-block-dark[data-v-6332bb90] .hljs-selector-tag{font-weight:700}}.v-enter-active[data-v-6332bb90],.v-leave-active[data-v-6332bb90]{transition:opacity .5s ease}.v-enter-from[data-v-6332bb90],.v-leave-to[data-v-6332bb90]{opacity:0}.mc-code-block[data-v-6332bb90]{margin:1rem 0;overflow:hidden;border-radius:14px}.mc-code-block pre[data-v-6332bb90]{margin:0}.mc-code-block .mc-action-btn[data-v-6332bb90]{width:24px;height:24px}.mc-code-block .mc-code-block-header[data-v-6332bb90]{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem}.mc-code-block .mc-code-block-header .mc-code-lang[data-v-6332bb90]{font-size:var(--devui-font-size, 14px)}.mc-code-block .mc-mermaid-content[data-v-6332bb90]{position:relative;width:100%;height:400px;overflow:hidden;background:inherit}.mc-code-block .mc-code-block-actions[data-v-6332bb90]{display:flex;align-items:center}.mc-code-block .mc-code-block-actions .mc-copy-btn[data-v-6332bb90],.mc-code-block .mc-code-block-actions .mc-toggle-btn[data-v-6332bb90]{cursor:pointer;border-radius:4px;font-size:18px;padding:4px}.mc-code-block .mc-diagram-switch[data-v-6332bb90]{display:flex;align-items:center;list-style:none;margin:0;padding:2px;border-radius:4px;background-color:var(--devui-icon-hover-bg);position:relative;transition:all .3s ease;overflow:hidden;height:24px}.mc-code-block .mc-diagram-switch[data-v-6332bb90]:before{content:"";position:absolute;top:2px;left:2px;width:calc(50% - 2px);height:calc(100% - 4px);background-color:var(--devui-base-bg, #ffffff);border-radius:4px;transition:transform .3s ease;box-shadow:0 1px 2px var(--devui-hover-shadow);z-index:1}.mc-code-block .mc-diagram-switch.mc-show-code[data-v-6332bb90]:before{transform:translate(100%)}.mc-code-block .mc-diagram-switch .mc-diagram-switch-active[data-v-6332bb90]{text-shadow:0 0 .4px var(--devui-text)}.mc-code-block .mc-diagram-switch li[data-v-6332bb90]{position:relative;padding:0 8px;font-size:12px;cursor:pointer;transition:color .3s ease;z-index:2;-webkit-user-select:none;user-select:none;width:50%;text-align:center;margin:0;display:flex;align-items:center;justify-content:center;height:100%;line-height:initial}.mc-code-block-light[data-v-6332bb90]{border:1px solid #d7d8da;background-color:#f5f5f5}.mc-code-block-light code.hljs[data-v-6332bb90]{padding:1em}.mc-code-block-light .mc-code-lang[data-v-6332bb90],.mc-code-block-light .mc-code-block-actions .mc-copy-btn[data-v-6332bb90],.mc-code-block-light .mc-code-block-actions .mc-toggle-btn[data-v-6332bb90]{color:#252b3a}.mc-code-block-light .mc-code-block-actions .mc-copy-btn[data-v-6332bb90]:hover,.mc-code-block-light .mc-code-block-actions .mc-toggle-btn[data-v-6332bb90]:hover{background-color:#ebebeb}.mc-code-block-light .mc-mermaid-content[data-v-6332bb90]{background:#fefefe}.mc-code-block-dark[data-v-6332bb90]{border:1px solid #4e5057;background-color:#34363a}.mc-code-block-dark code.hljs[data-v-6332bb90]{padding:1em}.mc-code-block-dark .mc-code-lang[data-v-6332bb90],.mc-code-block-dark .mc-code-block-actions .mc-copy-btn[data-v-6332bb90],.mc-code-block-dark .mc-code-block-actions .mc-toggle-btn[data-v-6332bb90]{color:#ced1db}.mc-code-block-dark .mc-code-block-actions .mc-copy-btn[data-v-6332bb90]:hover,.mc-code-block-dark .mc-code-block-actions .mc-toggle-btn[data-v-6332bb90]:hover{background-color:#393a3e}.mc-code-block-dark .mc-code-block-actions .mc-copy-btn img[data-v-6332bb90],.mc-code-block-dark .mc-code-block-actions .mc-toggle-btn img[data-v-6332bb90]{filter:brightness(1.5)}.mc-code-block-dark .mc-mermaid-content[data-v-6332bb90]{background:#2b2b2b}.collapse-transition-enter-from[data-v-6332bb90],.collapse-transition-leave-to[data-v-6332bb90]{opacity:0}.collapse-transition-enter-to[data-v-6332bb90],.collapse-transition-leave-from[data-v-6332bb90]{opacity:1}.collapse-transition-enter-active[data-v-6332bb90],.collapse-transition-leave-active[data-v-6332bb90]{transition:max-height .3s cubic-bezier(.5,.05,.5,.95),opacity .3s cubic-bezier(.5,.05,.5,.95)}div[id^=dmc_mermaid]{position:fixed;top:0;left:0;width:100%;z-index:-9999}.mc-markdown-render[data-v-f0759799] .h1,.mc-markdown-render[data-v-f0759799] .h2,.mc-markdown-render[data-v-f0759799] .h3,.mc-markdown-render[data-v-f0759799] .h4,.mc-markdown-render[data-v-f0759799] .h5,.mc-markdown-render[data-v-f0759799] .h6,.mc-markdown-render[data-v-f0759799] h1,.mc-markdown-render[data-v-f0759799] h2,.mc-markdown-render[data-v-f0759799] h3,.mc-markdown-render[data-v-f0759799] h4,.mc-markdown-render[data-v-f0759799] h5,.mc-markdown-render[data-v-f0759799] h6{line-height:1.1;margin:16px 0 12px}.mc-markdown-render[data-v-f0759799] .h1:first-child,.mc-markdown-render[data-v-f0759799] .h2:first-child,.mc-markdown-render[data-v-f0759799] .h3:first-child,.mc-markdown-render[data-v-f0759799] .h4:first-child,.mc-markdown-render[data-v-f0759799] .h5:first-child,.mc-markdown-render[data-v-f0759799] .h6:first-child,.mc-markdown-render[data-v-f0759799] h1:first-child,.mc-markdown-render[data-v-f0759799] h2:first-child,.mc-markdown-render[data-v-f0759799] h3:first-child,.mc-markdown-render[data-v-f0759799] h4:first-child,.mc-markdown-render[data-v-f0759799] h5:first-child,.mc-markdown-render[data-v-f0759799] h6:first-child{margin-top:0}.mc-markdown-render[data-v-f0759799] h1{font-size:32px;line-height:40px;overflow-wrap:break-word}.mc-markdown-render[data-v-f0759799] h3{line-height:28px;font-size:20px;overflow-wrap:break-word}.mc-markdown-render[data-v-f0759799] caption{border:1px dashed var(--devui-line, #d7d8da);border-bottom:0;padding:3px;text-align:center}.mc-markdown-render[data-v-f0759799] p{overflow-wrap:break-word;margin:0;padding:0;line-height:24px}.mc-markdown-render[data-v-f0759799] p:last-child{margin:0}.mc-markdown-render[data-v-f0759799] ul,.mc-markdown-render[data-v-f0759799] ol{margin:0;padding:0;padding-inline-start:1.75em}.mc-markdown-render[data-v-f0759799] ul>li,.mc-markdown-render[data-v-f0759799] ol>li{line-height:21px}.mc-markdown-render[data-v-f0759799] ul{list-style-type:disc}.mc-markdown-render[data-v-f0759799] ul li::marker{font-size:20px}.mc-markdown-render[data-v-f0759799] ol{list-style-type:decimal}.mc-markdown-render[data-v-f0759799] table{margin:10px 0;border-collapse:collapse;display:table;width:max-content}.mc-markdown-render[data-v-f0759799] td,.mc-markdown-render[data-v-f0759799] th{padding:5px 10px;border:1px solid var(--devui-dividing-line, #f2f2f3);background-color:var(--devui-base-bg, #ffffff);max-width:480px}.mc-markdown-render[data-v-f0759799] th{border-top:1px solid var(--devui-dividing-line, #f2f2f3);background-color:var(--devui-global-bg, #f6f6f8)}.mc-markdown-render[data-v-f0759799] td p{margin:0;padding:0}.mc-markdown-render[data-v-f0759799] blockquote{padding:0 8px;margin:0;color:var(--devui-text-weak, #575d6c);border-left:5px solid var(--devui-dividing-line, #f2f2f3)}.mc-markdown-render[data-v-f0759799] a{color:var(--devui-link, #526ecc);text-decoration:none;cursor:pointer}.mc-markdown-render[data-v-f0759799] a:hover{color:var(--devui-link-active, #526ecc)}.mc-markdown-render[data-v-f0759799] img{max-width:100%}.mc-markdown-render[data-v-f0759799]{font-size:var(--devui-font-size, 14px);overflow-x:auto;position:relative}.mc-markdown-render.mc-markdown-render-dark[data-v-f0759799]{color:#ced1db}.mc-markdown-render.mc-markdown-render-light[data-v-f0759799]{color:#252b3a}[data-v-f0759799] .mc-table-container{max-width:100%;width:fit-content;overflow-x:auto}[data-v-f0759799] .mc-think-block{color:var(--devui-aide-text, #71757f);border-left:1px solid var(--devui-line, #d7d8da);padding-left:8px;margin-bottom:1rem;line-height:24px}[data-v-f0759799] .mc-typewriter-color{background-image:-webkit-linear-gradient(left,#191919,#5588f0,#e171ee,#f2c55c);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}[data-v-f0759799] .mc-typewriter-gradient{background:linear-gradient(to right,var(--devui-text, #252b3a),var(--devui-base-bg, #ffffff));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}[data-v-f0759799] .mc-typewriter-cursor{font-weight:900;animation:typewriter-f0759799 .8s linear 0s infinite}@keyframes typewriter-f0759799{0%{opacity:1}50%{opacity:0}to{opacity:1}}
1
+ .mc-code-block-light[data-v-871cb018] pre code.hljs{display:block;overflow-x:auto;padding:1em}.mc-code-block-light[data-v-871cb018] code.hljs{padding:3px 5px}.mc-code-block-light[data-v-871cb018] .hljs{background:#fefefe;color:#545454}.mc-code-block-light[data-v-871cb018] .hljs-comment,.mc-code-block-light[data-v-871cb018] .hljs-quote{color:#696969}.mc-code-block-light[data-v-871cb018] .hljs-variable,.mc-code-block-light[data-v-871cb018] .hljs-template-variable,.mc-code-block-light[data-v-871cb018] .hljs-tag,.mc-code-block-light[data-v-871cb018] .hljs-name,.mc-code-block-light[data-v-871cb018] .hljs-selector-id,.mc-code-block-light[data-v-871cb018] .hljs-selector-class,.mc-code-block-light[data-v-871cb018] .hljs-regexp,.mc-code-block-light[data-v-871cb018] .hljs-deletion{color:#d91e18}.mc-code-block-light[data-v-871cb018] .hljs-number,.mc-code-block-light[data-v-871cb018] .hljs-built_in,.mc-code-block-light[data-v-871cb018] .hljs-literal,.mc-code-block-light[data-v-871cb018] .hljs-type,.mc-code-block-light[data-v-871cb018] .hljs-params,.mc-code-block-light[data-v-871cb018] .hljs-meta,.mc-code-block-light[data-v-871cb018] .hljs-link,.mc-code-block-light[data-v-871cb018] .hljs-attribute{color:#aa5d00}.mc-code-block-light[data-v-871cb018] .hljs-string,.mc-code-block-light[data-v-871cb018] .hljs-symbol,.mc-code-block-light[data-v-871cb018] .hljs-bullet,.mc-code-block-light[data-v-871cb018] .hljs-addition{color:green}.mc-code-block-light[data-v-871cb018] .hljs-title,.mc-code-block-light[data-v-871cb018] .hljs-section{color:#007faa}.mc-code-block-light[data-v-871cb018] .hljs-keyword,.mc-code-block-light[data-v-871cb018] .hljs-selector-tag{color:#7928a1}.mc-code-block-light[data-v-871cb018] .hljs-emphasis{font-style:italic}.mc-code-block-light[data-v-871cb018] .hljs-strong{font-weight:700}@media screen and (-ms-high-contrast: active){.mc-code-block-light[data-v-871cb018] .hljs-addition,.mc-code-block-light[data-v-871cb018] .hljs-attribute,.mc-code-block-light[data-v-871cb018] .hljs-built_in,.mc-code-block-light[data-v-871cb018] .hljs-bullet,.mc-code-block-light[data-v-871cb018] .hljs-comment,.mc-code-block-light[data-v-871cb018] .hljs-link,.mc-code-block-light[data-v-871cb018] .hljs-literal,.mc-code-block-light[data-v-871cb018] .hljs-meta,.mc-code-block-light[data-v-871cb018] .hljs-number,.mc-code-block-light[data-v-871cb018] .hljs-params,.mc-code-block-light[data-v-871cb018] .hljs-string,.mc-code-block-light[data-v-871cb018] .hljs-symbol,.mc-code-block-light[data-v-871cb018] .hljs-type,.mc-code-block-light[data-v-871cb018] .hljs-quote{color:highlight}.mc-code-block-light[data-v-871cb018] .hljs-keyword,.mc-code-block-light[data-v-871cb018] .hljs-selector-tag{font-weight:700}}.mc-code-block-dark[data-v-871cb018] pre code.hljs{display:block;overflow-x:auto;padding:1em}.mc-code-block-dark[data-v-871cb018] code.hljs{padding:3px 5px}.mc-code-block-dark[data-v-871cb018] .hljs{background:#2b2b2b;color:#f8f8f2}.mc-code-block-dark[data-v-871cb018] .hljs-comment,.mc-code-block-dark[data-v-871cb018] .hljs-quote{color:#d4d0ab}.mc-code-block-dark[data-v-871cb018] .hljs-variable,.mc-code-block-dark[data-v-871cb018] .hljs-template-variable,.mc-code-block-dark[data-v-871cb018] .hljs-tag,.mc-code-block-dark[data-v-871cb018] .hljs-name,.mc-code-block-dark[data-v-871cb018] .hljs-selector-id,.mc-code-block-dark[data-v-871cb018] .hljs-selector-class,.mc-code-block-dark[data-v-871cb018] .hljs-regexp,.mc-code-block-dark[data-v-871cb018] .hljs-deletion{color:#ffa07a}.mc-code-block-dark[data-v-871cb018] .hljs-number,.mc-code-block-dark[data-v-871cb018] .hljs-built_in,.mc-code-block-dark[data-v-871cb018] .hljs-literal,.mc-code-block-dark[data-v-871cb018] .hljs-type,.mc-code-block-dark[data-v-871cb018] .hljs-params,.mc-code-block-dark[data-v-871cb018] .hljs-meta,.mc-code-block-dark[data-v-871cb018] .hljs-link{color:#f5ab35}.mc-code-block-dark[data-v-871cb018] .hljs-attribute{color:gold}.mc-code-block-dark[data-v-871cb018] .hljs-string,.mc-code-block-dark[data-v-871cb018] .hljs-symbol,.mc-code-block-dark[data-v-871cb018] .hljs-bullet,.mc-code-block-dark[data-v-871cb018] .hljs-addition{color:#abe338}.mc-code-block-dark[data-v-871cb018] .hljs-title,.mc-code-block-dark[data-v-871cb018] .hljs-section{color:#00e0e0}.mc-code-block-dark[data-v-871cb018] .hljs-keyword,.mc-code-block-dark[data-v-871cb018] .hljs-selector-tag{color:#dcc6e0}.mc-code-block-dark[data-v-871cb018] .hljs-emphasis{font-style:italic}.mc-code-block-dark[data-v-871cb018] .hljs-strong{font-weight:700}@media screen and (-ms-high-contrast: active){.mc-code-block-dark[data-v-871cb018] .hljs-addition,.mc-code-block-dark[data-v-871cb018] .hljs-attribute,.mc-code-block-dark[data-v-871cb018] .hljs-built_in,.mc-code-block-dark[data-v-871cb018] .hljs-bullet,.mc-code-block-dark[data-v-871cb018] .hljs-comment,.mc-code-block-dark[data-v-871cb018] .hljs-link,.mc-code-block-dark[data-v-871cb018] .hljs-literal,.mc-code-block-dark[data-v-871cb018] .hljs-meta,.mc-code-block-dark[data-v-871cb018] .hljs-number,.mc-code-block-dark[data-v-871cb018] .hljs-params,.mc-code-block-dark[data-v-871cb018] .hljs-string,.mc-code-block-dark[data-v-871cb018] .hljs-symbol,.mc-code-block-dark[data-v-871cb018] .hljs-type,.mc-code-block-dark[data-v-871cb018] .hljs-quote{color:highlight}.mc-code-block-dark[data-v-871cb018] .hljs-keyword,.mc-code-block-dark[data-v-871cb018] .hljs-selector-tag{font-weight:700}}.v-enter-active[data-v-871cb018],.v-leave-active[data-v-871cb018]{transition:opacity .5s ease}.v-enter-from[data-v-871cb018],.v-leave-to[data-v-871cb018]{opacity:0}.mc-code-block[data-v-871cb018]{margin:1rem 0;overflow:hidden;border-radius:14px}.mc-code-block pre[data-v-871cb018]{margin:0}.mc-code-block .mc-action-btn[data-v-871cb018]{width:24px;height:24px}.mc-code-block .mc-code-block-header[data-v-871cb018]{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem}.mc-code-block .mc-code-block-header .mc-code-lang[data-v-871cb018]{font-size:var(--devui-font-size, 14px)}.mc-code-block .mc-mermaid-content[data-v-871cb018]{position:relative;width:100%;height:400px;overflow:hidden;background:inherit}.mc-code-block .mc-code-block-actions[data-v-871cb018]{display:flex;align-items:center}.mc-code-block .mc-code-block-actions .mc-copy-btn[data-v-871cb018],.mc-code-block .mc-code-block-actions .mc-toggle-btn[data-v-871cb018]{cursor:pointer;border-radius:4px;font-size:18px;padding:4px}.mc-code-block .mc-diagram-switch[data-v-871cb018]{display:flex;align-items:center;list-style:none;margin:0;padding:2px;border-radius:4px;background-color:var(--devui-icon-hover-bg);position:relative;transition:all .3s ease;overflow:hidden;height:24px}.mc-code-block .mc-diagram-switch[data-v-871cb018]:before{content:"";position:absolute;top:2px;left:2px;width:calc(50% - 2px);height:calc(100% - 4px);background-color:var(--devui-base-bg, #ffffff);border-radius:4px;transition:transform .3s ease;box-shadow:0 1px 2px var(--devui-hover-shadow);z-index:1}.mc-code-block .mc-diagram-switch.mc-show-code[data-v-871cb018]:before{transform:translate(100%)}.mc-code-block .mc-diagram-switch .mc-diagram-switch-active[data-v-871cb018]{text-shadow:0 0 .4px var(--devui-text)}.mc-code-block .mc-diagram-switch li[data-v-871cb018]{position:relative;padding:0 8px;font-size:12px;cursor:pointer;transition:color .3s ease;z-index:2;-webkit-user-select:none;user-select:none;width:50%;text-align:center;margin:0;display:flex;align-items:center;justify-content:center;height:100%;line-height:initial}.mc-code-block-light[data-v-871cb018]{border:1px solid #d7d8da;background-color:#f5f5f5}.mc-code-block-light code.hljs[data-v-871cb018]{padding:1em}.mc-code-block-light .mc-code-lang[data-v-871cb018],.mc-code-block-light .mc-code-block-actions .mc-copy-btn[data-v-871cb018],.mc-code-block-light .mc-code-block-actions .mc-toggle-btn[data-v-871cb018]{color:#252b3a}.mc-code-block-light .mc-code-block-actions .mc-copy-btn[data-v-871cb018]:hover,.mc-code-block-light .mc-code-block-actions .mc-toggle-btn[data-v-871cb018]:hover{background-color:#ebebeb}.mc-code-block-light .mc-mermaid-content[data-v-871cb018]{background:#fefefe}.mc-code-block-dark[data-v-871cb018]{border:1px solid #4e5057;background-color:#34363a}.mc-code-block-dark code.hljs[data-v-871cb018]{padding:1em}.mc-code-block-dark .mc-code-lang[data-v-871cb018],.mc-code-block-dark .mc-code-block-actions .mc-copy-btn[data-v-871cb018],.mc-code-block-dark .mc-code-block-actions .mc-toggle-btn[data-v-871cb018]{color:#ced1db}.mc-code-block-dark .mc-code-block-actions .mc-copy-btn[data-v-871cb018]:hover,.mc-code-block-dark .mc-code-block-actions .mc-toggle-btn[data-v-871cb018]:hover{background-color:#393a3e}.mc-code-block-dark .mc-code-block-actions .mc-copy-btn img[data-v-871cb018],.mc-code-block-dark .mc-code-block-actions .mc-toggle-btn img[data-v-871cb018]{filter:brightness(1.5)}.mc-code-block-dark .mc-mermaid-content[data-v-871cb018]{background:#2b2b2b}.collapse-transition-enter-from[data-v-871cb018],.collapse-transition-leave-to[data-v-871cb018]{opacity:0}.collapse-transition-enter-to[data-v-871cb018],.collapse-transition-leave-from[data-v-871cb018]{opacity:1}.collapse-transition-enter-active[data-v-871cb018],.collapse-transition-leave-active[data-v-871cb018]{transition:max-height .3s cubic-bezier(.5,.05,.5,.95),opacity .3s cubic-bezier(.5,.05,.5,.95)}div[id^=dmc_mermaid]{position:fixed;top:0;left:0;width:100%;z-index:-9999}.mc-markdown-render[data-v-8063b2f5] .h1,.mc-markdown-render[data-v-8063b2f5] .h2,.mc-markdown-render[data-v-8063b2f5] .h3,.mc-markdown-render[data-v-8063b2f5] .h4,.mc-markdown-render[data-v-8063b2f5] .h5,.mc-markdown-render[data-v-8063b2f5] .h6,.mc-markdown-render[data-v-8063b2f5] h1,.mc-markdown-render[data-v-8063b2f5] h2,.mc-markdown-render[data-v-8063b2f5] h3,.mc-markdown-render[data-v-8063b2f5] h4,.mc-markdown-render[data-v-8063b2f5] h5,.mc-markdown-render[data-v-8063b2f5] h6{line-height:1.1;margin:16px 0 12px}.mc-markdown-render[data-v-8063b2f5] .h1:first-child,.mc-markdown-render[data-v-8063b2f5] .h2:first-child,.mc-markdown-render[data-v-8063b2f5] .h3:first-child,.mc-markdown-render[data-v-8063b2f5] .h4:first-child,.mc-markdown-render[data-v-8063b2f5] .h5:first-child,.mc-markdown-render[data-v-8063b2f5] .h6:first-child,.mc-markdown-render[data-v-8063b2f5] h1:first-child,.mc-markdown-render[data-v-8063b2f5] h2:first-child,.mc-markdown-render[data-v-8063b2f5] h3:first-child,.mc-markdown-render[data-v-8063b2f5] h4:first-child,.mc-markdown-render[data-v-8063b2f5] h5:first-child,.mc-markdown-render[data-v-8063b2f5] h6:first-child{margin-top:0}.mc-markdown-render[data-v-8063b2f5] h1{font-size:32px;line-height:40px;overflow-wrap:break-word}.mc-markdown-render[data-v-8063b2f5] h3{line-height:28px;font-size:20px;overflow-wrap:break-word}.mc-markdown-render[data-v-8063b2f5] caption{border:1px dashed var(--devui-line, #d7d8da);border-bottom:0;padding:3px;text-align:center}.mc-markdown-render[data-v-8063b2f5] p{overflow-wrap:break-word;margin:0;padding:0;line-height:24px}.mc-markdown-render[data-v-8063b2f5] p:last-child{margin:0}.mc-markdown-render[data-v-8063b2f5] ul,.mc-markdown-render[data-v-8063b2f5] ol{margin:0;padding:0;padding-inline-start:1.75em}.mc-markdown-render[data-v-8063b2f5] ul>li,.mc-markdown-render[data-v-8063b2f5] ol>li{line-height:21px}.mc-markdown-render[data-v-8063b2f5] ul{list-style-type:disc}.mc-markdown-render[data-v-8063b2f5] ol{list-style-type:decimal}.mc-markdown-render[data-v-8063b2f5] table{margin:10px 0;border-collapse:collapse;display:table;width:max-content}.mc-markdown-render[data-v-8063b2f5] td,.mc-markdown-render[data-v-8063b2f5] th{padding:5px 10px;border:1px solid var(--devui-dividing-line, #f2f2f3);background-color:var(--devui-base-bg, #ffffff);max-width:480px}.mc-markdown-render[data-v-8063b2f5] th{border-top:1px solid var(--devui-dividing-line, #f2f2f3);background-color:var(--devui-global-bg, #f6f6f8)}.mc-markdown-render[data-v-8063b2f5] td p{margin:0;padding:0}.mc-markdown-render[data-v-8063b2f5] blockquote{padding:0 8px;margin:0;color:var(--devui-text-weak, #575d6c);border-left:5px solid var(--devui-dividing-line, #f2f2f3)}.mc-markdown-render[data-v-8063b2f5] a{color:var(--devui-link, #526ecc);text-decoration:none;cursor:pointer}.mc-markdown-render[data-v-8063b2f5] a:hover{color:var(--devui-link-active, #526ecc)}.mc-markdown-render[data-v-8063b2f5] img{max-width:100%}.mc-markdown-render[data-v-8063b2f5]{font-size:var(--devui-font-size, 14px);overflow-x:auto;position:relative}.mc-markdown-render.mc-markdown-render-dark[data-v-8063b2f5]{color:#ced1db}.mc-markdown-render.mc-markdown-render-light[data-v-8063b2f5]{color:#252b3a}[data-v-8063b2f5] .mc-table-container{max-width:100%;width:fit-content;overflow-x:auto}[data-v-8063b2f5] .mc-think-block{color:var(--devui-aide-text, #71757f);border-left:1px solid var(--devui-line, #d7d8da);padding-left:8px;margin-bottom:1rem;line-height:24px}[data-v-8063b2f5] .mc-typewriter-color{background-image:-webkit-linear-gradient(left,#191919,#5588f0,#e171ee,#f2c55c);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}[data-v-8063b2f5] .mc-typewriter-gradient{background:linear-gradient(to right,var(--devui-text, #252b3a),var(--devui-base-bg, #ffffff));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}[data-v-8063b2f5] .mc-typewriter-cursor{font-weight:900;animation:typewriter-8063b2f5 .8s linear 0s infinite}@keyframes typewriter-8063b2f5{0%{opacity:1}50%{opacity:0}to{opacity:1}}