@xto/business 1.2.1 → 1.3.0

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.
package/es/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
- import { defineComponent as I, ref as j, computed as B, openBlock as o, createElementBlock as c, normalizeClass as s, unref as a, createVNode as M, withCtx as U, Fragment as E, renderList as H, createBlock as W, withKeys as J, createCommentVNode as $, createTextVNode as q, createElementVNode as e, renderSlot as F, toDisplayString as h, normalizeStyle as z, reactive as te, withDirectives as K, vModelSelect as le, watch as Q, vShow as G, nextTick as Z, withModifiers as _, vModelText as ae } from "vue";
2
- import { useNamespace as A } from "@xto/core";
3
- import { Space as O, Button as X, Icon as ee } from "@xto/base";
4
- import { Input as D } from "@xto/form";
1
+ import { defineComponent as I, ref as F, computed as E, openBlock as o, createElementBlock as c, normalizeClass as s, unref as a, createVNode as M, withCtx as U, Fragment as S, renderList as H, createBlock as R, withKeys as J, createCommentVNode as $, createTextVNode as q, createElementVNode as e, renderSlot as O, toDisplayString as h, normalizeStyle as z, reactive as te, withDirectives as D, vModelSelect as le, watch as Q, vShow as G, nextTick as Z, withModifiers as _, vModelText as ae } from "vue";
2
+ import { useNamespace as j } from "@xto/core";
3
+ import { Space as N, Button as W, Icon as ee } from "@xto/base";
4
+ import { Input as X } from "@xto/form";
5
5
  import { Pagination as se } from "@xto/data";
6
6
  const ne = ["colspan"], oe = ["colspan"], ie = ["value"], rt = /* @__PURE__ */ I({
7
7
  name: "XProTable",
@@ -20,8 +20,8 @@ const ne = ["colspan"], oe = ["colspan"], ie = ["value"], rt = /* @__PURE__ */ I
20
20
  },
21
21
  emits: ["update:data", "update:currentPage", "update:pageSize", "search", "refresh", "reset"],
22
22
  setup(t, { emit: v }) {
23
- const n = t, u = v, l = A("pro-table"), i = j({});
24
- j([]), B({
23
+ const n = t, u = v, l = j("pro-table"), i = F({});
24
+ F([]), E({
25
25
  get: () => n.data,
26
26
  set: (r) => u("update:data", r)
27
27
  });
@@ -35,7 +35,7 @@ const ne = ["colspan"], oe = ["colspan"], ie = ["value"], rt = /* @__PURE__ */ I
35
35
  i.value = {}, u("reset"), u("search", {});
36
36
  }, b = () => {
37
37
  u("refresh");
38
- }, d = B(
38
+ }, d = E(
39
39
  () => n.columns.filter((r) => r.search)
40
40
  );
41
41
  return (r, m) => (o(), c("div", {
@@ -45,12 +45,12 @@ const ne = ["colspan"], oe = ["colspan"], ie = ["value"], rt = /* @__PURE__ */ I
45
45
  key: 0,
46
46
  class: s(a(l).e("search"))
47
47
  }, [
48
- M(a(O), null, {
48
+ M(a(N), null, {
49
49
  default: U(() => [
50
- (o(!0), c(E, null, H(d.value, (p) => (o(), c(E, {
50
+ (o(!0), c(S, null, H(d.value, (p) => (o(), c(S, {
51
51
  key: p.prop
52
52
  }, [
53
- p.searchType === "input" || !p.searchType ? (o(), W(a(D), {
53
+ p.searchType === "input" || !p.searchType ? (o(), R(a(X), {
54
54
  key: 0,
55
55
  modelValue: i.value[p.prop],
56
56
  "onUpdate:modelValue": (V) => i.value[p.prop] = V,
@@ -59,7 +59,7 @@ const ne = ["colspan"], oe = ["colspan"], ie = ["value"], rt = /* @__PURE__ */ I
59
59
  onKeyup: J(T, ["enter"])
60
60
  }, null, 8, ["modelValue", "onUpdate:modelValue", "placeholder"])) : $("", !0)
61
61
  ], 64))), 128)),
62
- M(a(X), {
62
+ M(a(W), {
63
63
  type: "primary",
64
64
  onClick: T
65
65
  }, {
@@ -68,13 +68,13 @@ const ne = ["colspan"], oe = ["colspan"], ie = ["value"], rt = /* @__PURE__ */ I
68
68
  ])]),
69
69
  _: 1
70
70
  }),
71
- M(a(X), { onClick: g }, {
71
+ M(a(W), { onClick: g }, {
72
72
  default: U(() => [...m[1] || (m[1] = [
73
73
  q("重置", -1)
74
74
  ])]),
75
75
  _: 1
76
76
  }),
77
- M(a(X), { onClick: b }, {
77
+ M(a(W), { onClick: b }, {
78
78
  default: U(() => [...m[2] || (m[2] = [
79
79
  q("刷新", -1)
80
80
  ])]),
@@ -87,9 +87,9 @@ const ne = ["colspan"], oe = ["colspan"], ie = ["value"], rt = /* @__PURE__ */ I
87
87
  e("div", {
88
88
  class: s(a(l).e("toolbar"))
89
89
  }, [
90
- M(a(O), null, {
90
+ M(a(N), null, {
91
91
  default: U(() => [
92
- F(r.$slots, "toolbar")
92
+ O(r.$slots, "toolbar")
93
93
  ]),
94
94
  _: 3
95
95
  })
@@ -112,7 +112,7 @@ const ne = ["colspan"], oe = ["colspan"], ie = ["value"], rt = /* @__PURE__ */ I
112
112
  key: 1,
113
113
  class: s(a(l).e("index"))
114
114
  }, h(t.indexLabel), 3)) : $("", !0),
115
- (o(!0), c(E, null, H(t.columns, (p) => (o(), c("th", {
115
+ (o(!0), c(S, null, H(t.columns, (p) => (o(), c("th", {
116
116
  key: p.prop,
117
117
  class: s(a(l).e("column")),
118
118
  style: z({
@@ -146,7 +146,7 @@ const ne = ["colspan"], oe = ["colspan"], ie = ["value"], rt = /* @__PURE__ */ I
146
146
  class: s(a(l).e("empty"))
147
147
  }, " 暂无数据 ", 2)
148
148
  ], 8, oe)
149
- ], 2)) : (o(!0), c(E, { key: 2 }, H(t.data, (p, V) => (o(), c("tr", {
149
+ ], 2)) : (o(!0), c(S, { key: 2 }, H(t.data, (p, V) => (o(), c("tr", {
150
150
  key: V,
151
151
  class: s(a(l).e("row"))
152
152
  }, [
@@ -163,14 +163,14 @@ const ne = ["colspan"], oe = ["colspan"], ie = ["value"], rt = /* @__PURE__ */ I
163
163
  key: 1,
164
164
  class: s(a(l).e("index"))
165
165
  }, h((t.currentPage - 1) * t.pageSize + V + 1), 3)) : $("", !0),
166
- (o(!0), c(E, null, H(t.columns, (w) => {
166
+ (o(!0), c(S, null, H(t.columns, (w) => {
167
167
  var x;
168
168
  return o(), c("td", {
169
169
  key: w.prop,
170
170
  class: s(a(l).e("cell")),
171
171
  style: z({ textAlign: w.align || "left" })
172
172
  }, [
173
- F(r.$slots, (x = w.slots) == null ? void 0 : x.default, {
173
+ O(r.$slots, (x = w.slots) == null ? void 0 : x.default, {
174
174
  row: p,
175
175
  column: w
176
176
  }, () => [
@@ -208,7 +208,7 @@ const ne = ["colspan"], oe = ["colspan"], ie = ["value"], rt = /* @__PURE__ */ I
208
208
  },
209
209
  emits: ["search", "reset"],
210
210
  setup(t, { emit: v }) {
211
- const n = t, u = v, l = A("search-form"), i = te({});
211
+ const n = t, u = v, l = j("search-form"), i = te({});
212
212
  n.columns.forEach((g) => {
213
213
  g.defaultValue !== void 0 ? i[g.prop] = g.defaultValue : n.model[g.prop] !== void 0 && (i[g.prop] = n.model[g.prop]);
214
214
  });
@@ -218,7 +218,7 @@ const ne = ["colspan"], oe = ["colspan"], ie = ["value"], rt = /* @__PURE__ */ I
218
218
  n.columns.forEach((g) => {
219
219
  i[g.prop] = g.defaultValue;
220
220
  }), u("reset");
221
- }, T = B(() => ({
221
+ }, T = E(() => ({
222
222
  width: typeof n.labelWidth == "number" ? `${n.labelWidth}px` : n.labelWidth
223
223
  }));
224
224
  return (g, b) => (o(), c("div", {
@@ -227,7 +227,7 @@ const ne = ["colspan"], oe = ["colspan"], ie = ["value"], rt = /* @__PURE__ */ I
227
227
  e("div", {
228
228
  class: s(a(l).e("items"))
229
229
  }, [
230
- (o(!0), c(E, null, H(t.columns, (d) => (o(), c("div", {
230
+ (o(!0), c(S, null, H(t.columns, (d) => (o(), c("div", {
231
231
  key: d.prop,
232
232
  class: s(a(l).e("item"))
233
233
  }, [
@@ -238,31 +238,31 @@ const ne = ["colspan"], oe = ["colspan"], ie = ["value"], rt = /* @__PURE__ */ I
238
238
  e("div", {
239
239
  class: s(a(l).e("content"))
240
240
  }, [
241
- d.type === "input" || !d.type ? (o(), W(a(D), {
241
+ d.type === "input" || !d.type ? (o(), R(a(X), {
242
242
  key: 0,
243
243
  modelValue: i[d.prop],
244
244
  "onUpdate:modelValue": (r) => i[d.prop] = r,
245
245
  placeholder: d.placeholder || `请输入${d.label}`,
246
246
  clearable: ""
247
- }, null, 8, ["modelValue", "onUpdate:modelValue", "placeholder"])) : d.type === "select" ? K((o(), c("select", {
247
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "placeholder"])) : d.type === "select" ? D((o(), c("select", {
248
248
  key: 1,
249
249
  "onUpdate:modelValue": (r) => i[d.prop] = r,
250
250
  class: s(a(l).e("select"))
251
251
  }, [
252
252
  b[0] || (b[0] = e("option", { value: "" }, "请选择", -1)),
253
- (o(!0), c(E, null, H(d.options, (r) => (o(), c("option", {
253
+ (o(!0), c(S, null, H(d.options, (r) => (o(), c("option", {
254
254
  key: r.value,
255
255
  value: r.value
256
256
  }, h(r.label), 9, de))), 128))
257
257
  ], 10, ce)), [
258
258
  [le, i[d.prop]]
259
- ]) : d.type === "date" ? (o(), W(a(D), {
259
+ ]) : d.type === "date" ? (o(), R(a(X), {
260
260
  key: 2,
261
261
  modelValue: i[d.prop],
262
262
  "onUpdate:modelValue": (r) => i[d.prop] = r,
263
263
  type: "date",
264
264
  placeholder: d.placeholder || `请选择${d.label}`
265
- }, null, 8, ["modelValue", "onUpdate:modelValue", "placeholder"])) : (o(), W(a(D), {
265
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "placeholder"])) : (o(), R(a(X), {
266
266
  key: 3,
267
267
  modelValue: i[d.prop],
268
268
  "onUpdate:modelValue": (r) => i[d.prop] = r,
@@ -274,9 +274,9 @@ const ne = ["colspan"], oe = ["colspan"], ie = ["value"], rt = /* @__PURE__ */ I
274
274
  e("div", {
275
275
  class: s(a(l).e("actions"))
276
276
  }, [
277
- M(a(O), null, {
277
+ M(a(N), null, {
278
278
  default: U(() => [
279
- M(a(X), {
279
+ M(a(W), {
280
280
  type: "primary",
281
281
  onClick: C
282
282
  }, {
@@ -285,7 +285,7 @@ const ne = ["colspan"], oe = ["colspan"], ie = ["value"], rt = /* @__PURE__ */ I
285
285
  ])]),
286
286
  _: 1
287
287
  }),
288
- M(a(X), { onClick: y }, {
288
+ M(a(W), { onClick: y }, {
289
289
  default: U(() => [...b[2] || (b[2] = [
290
290
  q("重置", -1)
291
291
  ])]),
@@ -313,10 +313,10 @@ const ne = ["colspan"], oe = ["colspan"], ie = ["value"], rt = /* @__PURE__ */ I
313
313
  valueColor: {}
314
314
  },
315
315
  setup(t) {
316
- const v = t, n = A("statistic"), u = B(() => typeof v.value == "number" ? v.value.toFixed(v.precision) : v.value), l = B(() => [
316
+ const v = t, n = j("statistic"), u = E(() => typeof v.value == "number" ? v.value.toFixed(v.precision) : v.value), l = E(() => [
317
317
  n.e("trend"),
318
318
  n.em("trend", v.trend)
319
- ]), i = B(() => v.trend === "up" ? "arrow-up" : v.trend === "down" ? "arrow-down" : "");
319
+ ]), i = E(() => v.trend === "up" ? "arrow-up" : v.trend === "down" ? "arrow-down" : "");
320
320
  return (C, y) => (o(), c("div", {
321
321
  class: s(a(n).b())
322
322
  }, [
@@ -347,7 +347,7 @@ const ne = ["colspan"], oe = ["colspan"], ie = ["value"], rt = /* @__PURE__ */ I
347
347
  e("span", {
348
348
  class: s(a(n).e("trend-icon"))
349
349
  }, [
350
- i.value ? (o(), W(a(ee), {
350
+ i.value ? (o(), R(a(ee), {
351
351
  key: 0,
352
352
  name: i.value,
353
353
  size: 14
@@ -369,7 +369,7 @@ const ne = ["colspan"], oe = ["colspan"], ie = ["value"], rt = /* @__PURE__ */ I
369
369
  columns: { default: () => [] }
370
370
  },
371
371
  setup(t) {
372
- const v = t, n = j(!1), u = () => {
372
+ const v = t, n = F(!1), u = () => {
373
373
  if (v.data.length !== 0) {
374
374
  n.value = !0;
375
375
  try {
@@ -391,7 +391,7 @@ const ne = ["colspan"], oe = ["colspan"], ie = ["value"], rt = /* @__PURE__ */ I
391
391
  }
392
392
  }
393
393
  };
394
- return (l, i) => (o(), W(a(X), {
394
+ return (l, i) => (o(), R(a(W), {
395
395
  loading: n.value,
396
396
  onClick: u
397
397
  }, {
@@ -415,7 +415,7 @@ function Y(t) {
415
415
  };
416
416
  return t.replace(/[&<>"']/g, (n) => v[n]);
417
417
  }
418
- function R(t) {
418
+ function A(t) {
419
419
  return t = t.replace(/`([^`]+)`/g, '<code class="md-code">$1</code>'), t = t.replace(/\*\*([^*]+)\*\*/g, "<strong>$1</strong>"), t = t.replace(/__([^_]+)__/g, "<strong>$1</strong>"), t = t.replace(/\*([^*]+)\*/g, "<em>$1</em>"), t = t.replace(/_([^_]+)_/g, "<em>$1</em>"), t = t.replace(/~~([^~]+)~~/g, "<del>$1</del>"), t = t.replace(/\[([^\]]+)\]\(([^)]+)\)/g, '<a href="$2" target="_blank" class="md-link">$1</a>'), t = t.replace(/!\[([^\]]*)\]\(([^)]+)\)/g, '<img src="$2" alt="$1" class="md-image" />'), t;
420
420
  }
421
421
  function re(t, v = {}) {
@@ -449,13 +449,13 @@ function re(t, v = {}) {
449
449
  const P = n[p + 1];
450
450
  if (P && P.trim().startsWith("|") && P.trim().endsWith("|") && P.trim().slice(1, -1).split("|").map((L) => L.trim()).every((L) => /^[-:]+$/.test(L))) {
451
451
  u.push("<thead><tr>"), f.forEach((L) => {
452
- u.push(`<th>${R(L)}</th>`);
452
+ u.push(`<th>${A(L)}</th>`);
453
453
  }), u.push("</tr></thead><tbody>");
454
454
  continue;
455
455
  }
456
456
  }
457
457
  u.push("<tr>"), f.forEach((P) => {
458
- u.push(`<td>${R(P)}</td>`);
458
+ u.push(`<td>${A(P)}</td>`);
459
459
  }), u.push("</tr>");
460
460
  continue;
461
461
  } else b && (u.push("</tbody>"), m());
@@ -466,14 +466,14 @@ function re(t, v = {}) {
466
466
  if (V.startsWith(">")) {
467
467
  d(), g || (u.push('<blockquote class="md-blockquote">'), g = !0);
468
468
  const f = V.replace(/^>\s?/, "");
469
- u.push(`<p>${R(f)}</p>`);
469
+ u.push(`<p>${A(f)}</p>`);
470
470
  continue;
471
471
  } else g && r();
472
472
  const w = V.match(/^(#{1,6})\s+(.+)$/);
473
473
  if (w) {
474
474
  d();
475
- const f = w[1].length, S = R(w[2]);
476
- u.push(`<h${f} class="md-heading md-h${f}">${S}</h${f}>`);
475
+ const f = w[1].length, B = A(w[2]);
476
+ u.push(`<h${f} class="md-heading md-h${f}">${B}</h${f}>`);
477
477
  continue;
478
478
  }
479
479
  if (/^[-*_]{3,}$/.test(V.trim())) {
@@ -482,15 +482,15 @@ function re(t, v = {}) {
482
482
  }
483
483
  const x = V.match(/^[-*+]\s+(.+)$/);
484
484
  if (x) {
485
- (!y || T !== "ul") && (d(), u.push('<ul class="md-list">'), y = !0, T = "ul"), u.push(`<li>${R(x[1])}</li>`);
485
+ (!y || T !== "ul") && (d(), u.push('<ul class="md-list">'), y = !0, T = "ul"), u.push(`<li>${A(x[1])}</li>`);
486
486
  continue;
487
487
  }
488
488
  const k = V.match(/^(\d+)\.\s+(.+)$/);
489
489
  if (k) {
490
- (!y || T !== "ol") && (d(), u.push('<ol class="md-list">'), y = !0, T = "ol"), u.push(`<li>${R(k[2])}</li>`);
490
+ (!y || T !== "ol") && (d(), u.push('<ol class="md-list">'), y = !0, T = "ol"), u.push(`<li>${A(k[2])}</li>`);
491
491
  continue;
492
492
  }
493
- d(), v.breaks !== !1 ? u.push(`<p class="md-paragraph">${R(V)}</p>`) : u.push(`<p class="md-paragraph">${R(V)}</p>`);
493
+ d(), v.breaks !== !1 ? u.push(`<p class="md-paragraph">${A(V)}</p>`) : u.push(`<p class="md-paragraph">${A(V)}</p>`);
494
494
  }
495
495
  return d(), r(), m(), l && u.push(`<pre class="md-code-block"><code>${Y(C.join(`
496
496
  `))}</code></pre>`), u.join(`
@@ -524,7 +524,7 @@ const pe = ["title", "disabled", "onClick"], he = {
524
524
  },
525
525
  emits: ["update:modelValue", "change"],
526
526
  setup(t, { emit: v }) {
527
- const n = t, u = v, l = A("markdown-editor"), i = j(n.modelValue), C = j(), y = j(n.mode), T = B(() => re(i.value)), g = B(() => ue(i.value)), b = B(() => ({
527
+ const n = t, u = v, l = j("markdown-editor"), i = F(n.modelValue), C = F(), y = F(n.mode), T = E(() => re(i.value)), g = E(() => ue(i.value)), b = E(() => ({
528
528
  height: typeof n.height == "number" ? `${n.height}px` : n.height
529
529
  }));
530
530
  Q(() => n.modelValue, (x) => {
@@ -537,9 +537,9 @@ const pe = ["title", "disabled", "onClick"], he = {
537
537
  y.value = x;
538
538
  }, m = (x, k = "") => {
539
539
  if (!C.value || n.disabled) return;
540
- const f = C.value, S = f.selectionStart, P = f.selectionEnd, N = i.value.substring(S, P), L = i.value.substring(0, S) + x + N + k + i.value.substring(P);
540
+ const f = C.value, B = f.selectionStart, P = f.selectionEnd, K = i.value.substring(B, P), L = i.value.substring(0, B) + x + K + k + i.value.substring(P);
541
541
  i.value = L, u("update:modelValue", L), u("change", L), Z(() => {
542
- f.focus(), f.setSelectionRange(S + x.length, S + x.length + N.length);
542
+ f.focus(), f.setSelectionRange(B + x.length, B + x.length + K.length);
543
543
  });
544
544
  }, p = [
545
545
  { icon: "heading", label: "H1", title: "标题1", action: () => m("# ", "") },
@@ -562,7 +562,7 @@ const pe = ["title", "disabled", "onClick"], he = {
562
562
  `, "") },
563
563
  { icon: "quote", title: "引用", action: () => m("> ", "") },
564
564
  { icon: "code-block", title: "代码块", action: () => m("\n```\n", "\n```\n") }
565
- ], V = B(() => [
565
+ ], V = E(() => [
566
566
  l.b(),
567
567
  l.is("disabled", n.disabled),
568
568
  l.is(`mode-${y.value}`)
@@ -570,8 +570,8 @@ const pe = ["title", "disabled", "onClick"], he = {
570
570
  if (y.value !== "split") return;
571
571
  const k = document.querySelector(".x-markdown-editor__preview");
572
572
  if (!k) return;
573
- const f = x.target, S = f.scrollTop / (f.scrollHeight - f.clientHeight);
574
- k.scrollTop = S * (k.scrollHeight - k.clientHeight);
573
+ const f = x.target, B = f.scrollTop / (f.scrollHeight - f.clientHeight);
574
+ k.scrollTop = B * (k.scrollHeight - k.clientHeight);
575
575
  };
576
576
  return (x, k) => (o(), c("div", {
577
577
  class: s(V.value),
@@ -584,14 +584,14 @@ const pe = ["title", "disabled", "onClick"], he = {
584
584
  e("div", {
585
585
  class: s(a(l).e("toolbar-left"))
586
586
  }, [
587
- (o(), c(E, null, H(p, (f, S) => e("button", {
588
- key: S,
587
+ (o(), c(S, null, H(p, (f, B) => e("button", {
588
+ key: B,
589
589
  class: s([a(l).e("toolbar-btn"), { "is-divider": f.type === "divider" }]),
590
590
  title: f.title,
591
591
  disabled: t.disabled,
592
592
  onClick: f.action
593
593
  }, [
594
- f.type ? $("", !0) : (o(), W(a(ee), {
594
+ f.type ? $("", !0) : (o(), R(a(ee), {
595
595
  key: 0,
596
596
  name: f.icon,
597
597
  size: 16
@@ -629,8 +629,8 @@ const pe = ["title", "disabled", "onClick"], he = {
629
629
  e("ul", {
630
630
  class: s(a(l).e("toc-list"))
631
631
  }, [
632
- (o(!0), c(E, null, H(g.value, (f, S) => (o(), c("li", {
633
- key: S,
632
+ (o(!0), c(S, null, H(g.value, (f, B) => (o(), c("li", {
633
+ key: B,
634
634
  class: s(a(l).e("toc-item")),
635
635
  style: z({ paddingLeft: (f.level - 1) * 12 + "px" })
636
636
  }, h(f.text), 7))), 128))
@@ -639,7 +639,7 @@ const pe = ["title", "disabled", "onClick"], he = {
639
639
  e("div", {
640
640
  class: s(a(l).e("content"))
641
641
  }, [
642
- K(e("div", {
642
+ D(e("div", {
643
643
  class: s(a(l).e("editor-wrapper"))
644
644
  }, [
645
645
  e("textarea", {
@@ -655,7 +655,7 @@ const pe = ["title", "disabled", "onClick"], he = {
655
655
  ], 2), [
656
656
  [G, y.value !== "preview"]
657
657
  ]),
658
- K(e("div", {
658
+ D(e("div", {
659
659
  class: s(a(l).e("preview")),
660
660
  innerHTML: T.value
661
661
  }, null, 10, fe), [
@@ -673,7 +673,7 @@ const pe = ["title", "disabled", "onClick"], he = {
673
673
  name: { default: "" },
674
674
  description: { default: "" },
675
675
  icon: { default: "📱" },
676
- iconBgColor: { default: "#409eff" },
676
+ iconBgColor: { default: "#4F46E5" },
677
677
  status: { default: "draft" },
678
678
  creator: { default: "" },
679
679
  createTime: { default: "" },
@@ -682,14 +682,14 @@ const pe = ["title", "disabled", "onClick"], he = {
682
682
  },
683
683
  emits: ["click", "edit", "delete", "publish"],
684
684
  setup(t, { emit: v }) {
685
- const n = t, u = v, l = A("app-card"), i = B(() => {
685
+ const n = t, u = v, l = j("app-card"), i = E(() => {
686
686
  const d = {
687
- published: { label: "已发布", color: "#67c23a", dotColor: "#67c23a" },
687
+ published: { label: "已发布", color: "#10B981", dotColor: "#10B981" },
688
688
  draft: { label: "草稿", color: "#909399", dotColor: "#909399" },
689
- archived: { label: "已归档", color: "#f56c6c", dotColor: "#f56c6c" }
689
+ archived: { label: "已归档", color: "#EF4444", dotColor: "#EF4444" }
690
690
  };
691
691
  return d[n.status] || d.draft;
692
- }), C = B(() => [
692
+ }), C = E(() => [
693
693
  l.b(),
694
694
  l.m(n.status),
695
695
  l.is("disabled", n.disabled)
@@ -778,7 +778,7 @@ const pe = ["title", "disabled", "onClick"], he = {
778
778
  }, we = {
779
779
  key: 1,
780
780
  class: "code-block"
781
- }, Te = { class: "code-header" }, Ve = { class: "language" }, Se = ["onClick"], Be = { class: "code-content" }, Ee = ["placeholder", "disabled", "onKeydown"], Pe = ["disabled"], vt = /* @__PURE__ */ I({
781
+ }, Te = { class: "code-header" }, Ve = { class: "language" }, Be = ["onClick"], Ee = { class: "code-content" }, Se = ["placeholder", "disabled", "onKeydown"], Pe = ["disabled"], vt = /* @__PURE__ */ I({
782
782
  name: "XChat",
783
783
  __name: "index",
784
784
  props: {
@@ -793,10 +793,10 @@ const pe = ["title", "disabled", "onClick"], he = {
793
793
  },
794
794
  emits: ["send", "clear", "copy"],
795
795
  setup(t, { emit: v }) {
796
- const n = t, u = v, l = A("chat"), i = j(""), C = j(null), y = B(() => [
796
+ const n = t, u = v, l = j("chat"), i = F(""), C = F(null), y = E(() => [
797
797
  l.b(),
798
798
  l.is("disabled", n.disabled)
799
- ]), T = B(() => ({ maxHeight: typeof n.maxHeight == "number" ? `${n.maxHeight}px` : n.maxHeight })), g = () => {
799
+ ]), T = E(() => ({ maxHeight: typeof n.maxHeight == "number" ? `${n.maxHeight}px` : n.maxHeight })), g = () => {
800
800
  i.value.trim() && !n.disabled && !n.loading && (u("send", i.value.trim()), i.value = "");
801
801
  }, b = () => {
802
802
  u("clear");
@@ -822,16 +822,16 @@ const pe = ["title", "disabled", "onClick"], he = {
822
822
  system: "系统"
823
823
  })[w] || "消息", V = (w) => {
824
824
  const x = /```(\w+)?\n([\s\S]*?)```/g, k = [];
825
- let f = 0, S;
826
- for (; (S = x.exec(w)) !== null; )
827
- S.index > f && k.push({
825
+ let f = 0, B;
826
+ for (; (B = x.exec(w)) !== null; )
827
+ B.index > f && k.push({
828
828
  type: "text",
829
- content: w.slice(f, S.index)
829
+ content: w.slice(f, B.index)
830
830
  }), k.push({
831
831
  type: "code",
832
- content: S[2],
833
- language: S[1] || "plaintext"
834
- }), f = S.index + S[0].length;
832
+ content: B[2],
833
+ language: B[1] || "plaintext"
834
+ }), f = B.index + B[0].length;
835
835
  return f < w.length && k.push({
836
836
  type: "text",
837
837
  content: w.slice(f)
@@ -863,7 +863,7 @@ const pe = ["title", "disabled", "onClick"], he = {
863
863
  e("span", { class: "empty-icon" }, "💬", -1),
864
864
  e("span", { class: "empty-text" }, "暂无对话消息", -1)
865
865
  ])], 2)) : $("", !0),
866
- (o(!0), c(E, null, H(t.messages, (k) => (o(), c("div", {
866
+ (o(!0), c(S, null, H(t.messages, (k) => (o(), c("div", {
867
867
  key: k.id,
868
868
  class: s([a(l).e("message"), a(l).em("message", k.role)])
869
869
  }, [
@@ -881,16 +881,16 @@ const pe = ["title", "disabled", "onClick"], he = {
881
881
  e("span", { class: "dot" }, null, -1),
882
882
  e("span", { class: "dot" }, null, -1),
883
883
  e("span", { class: "dot" }, null, -1)
884
- ])])) : (o(!0), c(E, { key: 1 }, H(V(k.content), (f, S) => (o(), c(E, { key: S }, [
884
+ ])])) : (o(!0), c(S, { key: 1 }, H(V(k.content), (f, B) => (o(), c(S, { key: B }, [
885
885
  f.type === "text" ? (o(), c("div", xe, h(f.content), 1)) : (o(), c("div", we, [
886
886
  e("div", Te, [
887
887
  e("span", Ve, h(f.language), 1),
888
888
  e("button", {
889
889
  class: "copy-btn",
890
890
  onClick: (P) => d(f.content)
891
- }, " 📋 复制 ", 8, Se)
891
+ }, " 📋 复制 ", 8, Be)
892
892
  ]),
893
- e("pre", Be, [
893
+ e("pre", Ee, [
894
894
  e("code", null, h(f.content), 1)
895
895
  ])
896
896
  ]))
@@ -902,14 +902,14 @@ const pe = ["title", "disabled", "onClick"], he = {
902
902
  key: 1,
903
903
  class: s(a(l).e("input"))
904
904
  }, [
905
- K(e("textarea", {
905
+ D(e("textarea", {
906
906
  "onUpdate:modelValue": x[0] || (x[0] = (k) => i.value = k),
907
907
  placeholder: t.placeholder,
908
908
  disabled: t.disabled || t.loading,
909
909
  class: "input-textarea",
910
910
  onKeydown: J(_(g, ["ctrl"]), ["enter"]),
911
911
  rows: "3"
912
- }, null, 40, Ee), [
912
+ }, null, 40, Se), [
913
913
  [ae, i.value]
914
914
  ]),
915
915
  e("button", {
@@ -920,7 +920,7 @@ const pe = ["title", "disabled", "onClick"], he = {
920
920
  ], 2)) : $("", !0)
921
921
  ], 2));
922
922
  }
923
- }), ze = { key: 0 }, He = { key: 1 }, Ue = { class: "col-session-id" }, Ie = { class: "session-id" }, Le = { class: "col-title" }, Me = { class: "col-message-count" }, qe = { class: "col-status" }, je = { class: "col-time" }, Ae = { class: "col-actions" }, Re = ["onClick"], We = ["onClick"], Xe = { class: "pagination-info" }, De = { class: "pagination-controls" }, Ke = ["disabled"], Ne = { class: "pagination-current" }, Oe = ["disabled"], Fe = ["value"], gt = /* @__PURE__ */ I({
923
+ }), ze = { key: 0 }, He = { key: 1 }, Ue = { class: "col-session-id" }, Ie = { class: "session-id" }, Le = { class: "col-title" }, Me = { class: "col-message-count" }, qe = { class: "col-status" }, Fe = { class: "col-time" }, je = { class: "col-actions" }, Ae = ["onClick"], Re = ["onClick"], We = { class: "pagination-info" }, Xe = { class: "pagination-controls" }, De = ["disabled"], Ke = { class: "pagination-current" }, Ne = ["disabled"], Oe = ["value"], gt = /* @__PURE__ */ I({
924
924
  name: "XLogTable",
925
925
  __name: "index",
926
926
  props: {
@@ -931,11 +931,11 @@ const pe = ["title", "disabled", "onClick"], he = {
931
931
  },
932
932
  emits: ["page-change", "size-change", "view-detail", "view-trace"],
933
933
  setup(t, { emit: v }) {
934
- const n = t, u = v, l = A("log-table"), i = (d) => ({
935
- success: { label: "成功", color: "#67c23a" },
936
- error: { label: "失败", color: "#f56c6c" },
937
- running: { label: "运行中", color: "#409eff" }
938
- })[d] || { label: "未知", color: "#909399" }, C = B(() => [
934
+ const n = t, u = v, l = j("log-table"), i = (d) => ({
935
+ success: { label: "成功", color: "#10B981" },
936
+ error: { label: "失败", color: "#EF4444" },
937
+ running: { label: "运行中", color: "#4F46E5" }
938
+ })[d] || { label: "未知", color: "#909399" }, C = E(() => [
939
939
  l.b(),
940
940
  l.is("loading", n.loading)
941
941
  ]), y = (d) => {
@@ -979,7 +979,7 @@ const pe = ["title", "disabled", "onClick"], he = {
979
979
  class: s(a(l).e("empty"))
980
980
  }, " 暂无日志记录 ", 2)
981
981
  ])) : $("", !0),
982
- (o(!0), c(E, null, H(t.data, (m) => (o(), c("tr", {
982
+ (o(!0), c(S, null, H(t.data, (m) => (o(), c("tr", {
983
983
  key: m.id
984
984
  }, [
985
985
  e("td", Ue, [
@@ -993,16 +993,16 @@ const pe = ["title", "disabled", "onClick"], he = {
993
993
  style: z({ backgroundColor: i(m.status).color })
994
994
  }, h(i(m.status).label), 5)
995
995
  ]),
996
- e("td", je, h(m.latestMessageTime), 1),
997
- e("td", Ae, [
996
+ e("td", Fe, h(m.latestMessageTime), 1),
997
+ e("td", je, [
998
998
  e("button", {
999
999
  class: "action-link",
1000
1000
  onClick: (p) => g(m)
1001
- }, " 查看详情 ", 8, Re),
1001
+ }, " 查看详情 ", 8, Ae),
1002
1002
  e("button", {
1003
1003
  class: "action-link",
1004
1004
  onClick: (p) => b(m)
1005
- }, " 链路追踪 ", 8, We)
1005
+ }, " 链路追踪 ", 8, Re)
1006
1006
  ])
1007
1007
  ]))), 128))
1008
1008
  ])
@@ -1012,19 +1012,19 @@ const pe = ["title", "disabled", "onClick"], he = {
1012
1012
  key: 0,
1013
1013
  class: s(a(l).e("pagination"))
1014
1014
  }, [
1015
- e("span", Xe, " 共 " + h(t.pagination.total) + " 条 ", 1),
1016
- e("div", De, [
1015
+ e("span", We, " 共 " + h(t.pagination.total) + " 条 ", 1),
1016
+ e("div", Xe, [
1017
1017
  e("button", {
1018
1018
  class: "pagination-btn",
1019
1019
  disabled: t.pagination.current <= 1,
1020
1020
  onClick: r[0] || (r[0] = (m) => y(t.pagination.current - 1))
1021
- }, " 上一页 ", 8, Ke),
1022
- e("span", Ne, "第 " + h(t.pagination.current) + " 页", 1),
1021
+ }, " 上一页 ", 8, De),
1022
+ e("span", Ke, "第 " + h(t.pagination.current) + " 页", 1),
1023
1023
  e("button", {
1024
1024
  class: "pagination-btn",
1025
1025
  disabled: t.pagination.current >= Math.ceil(t.pagination.total / t.pagination.pageSize),
1026
1026
  onClick: r[1] || (r[1] = (m) => y(t.pagination.current + 1))
1027
- }, " 下一页 ", 8, Oe)
1027
+ }, " 下一页 ", 8, Ne)
1028
1028
  ]),
1029
1029
  e("select", {
1030
1030
  class: "pagination-size-select",
@@ -1035,7 +1035,7 @@ const pe = ["title", "disabled", "onClick"], he = {
1035
1035
  e("option", { value: "20" }, "20条/页", -1),
1036
1036
  e("option", { value: "50" }, "50条/页", -1),
1037
1037
  e("option", { value: "100" }, "100条/页", -1)
1038
- ])], 40, Fe)
1038
+ ])], 40, Oe)
1039
1039
  ], 2)) : $("", !0)
1040
1040
  ], 2));
1041
1041
  }
@@ -1057,13 +1057,13 @@ const pe = ["title", "disabled", "onClick"], he = {
1057
1057
  },
1058
1058
  emits: ["copy-curl"],
1059
1059
  setup(t, { emit: v }) {
1060
- const n = t, u = v, l = A("api-doc"), i = j(n.endpoints[0] || null), C = B(() => [
1060
+ const n = t, u = v, l = j("api-doc"), i = F(n.endpoints[0] || null), C = E(() => [
1061
1061
  l.b()
1062
1062
  ]), y = {
1063
- GET: "#67c23a",
1064
- POST: "#409eff",
1065
- PUT: "#e6a23c",
1066
- DELETE: "#f56c6c",
1063
+ GET: "#10B981",
1064
+ POST: "#4F46E5",
1065
+ PUT: "#F59E0B",
1066
+ DELETE: "#EF4444",
1067
1067
  PATCH: "#909399"
1068
1068
  }, T = (d) => {
1069
1069
  const r = d.method, m = `${n.baseUrl}${d.path}`;
@@ -1092,7 +1092,7 @@ const pe = ["title", "disabled", "onClick"], he = {
1092
1092
  e("div", {
1093
1093
  class: s(a(l).e("endpoint-list"))
1094
1094
  }, [
1095
- (o(!0), c(E, null, H(t.endpoints, (p) => (o(), c("div", {
1095
+ (o(!0), c(S, null, H(t.endpoints, (p) => (o(), c("div", {
1096
1096
  key: `${p.method}-${p.path}`,
1097
1097
  class: s([a(l).e("endpoint-item"), { "is-active": i.value === p }]),
1098
1098
  onClick: (V) => b(p)
@@ -1108,7 +1108,7 @@ const pe = ["title", "disabled", "onClick"], he = {
1108
1108
  e("div", {
1109
1109
  class: s(a(l).e("content"))
1110
1110
  }, [
1111
- i.value ? (o(), c(E, { key: 0 }, [
1111
+ i.value ? (o(), c(S, { key: 0 }, [
1112
1112
  e("div", {
1113
1113
  class: s(a(l).e("header"))
1114
1114
  }, [
@@ -1139,7 +1139,7 @@ const pe = ["title", "disabled", "onClick"], he = {
1139
1139
  ])
1140
1140
  ], -1)),
1141
1141
  e("tbody", null, [
1142
- (o(!0), c(E, null, H(i.value.parameters, (p) => (o(), c("tr", {
1142
+ (o(!0), c(S, null, H(i.value.parameters, (p) => (o(), c("tr", {
1143
1143
  key: p.name
1144
1144
  }, [
1145
1145
  e("td", Ze, h(p.name), 1),
@@ -1227,23 +1227,23 @@ const pe = ["title", "disabled", "onClick"], he = {
1227
1227
  },
1228
1228
  emits: ["click", "copy"],
1229
1229
  setup(t, { emit: v }) {
1230
- const n = t, u = v, l = A("var-tag"), i = B(() => {
1230
+ const n = t, u = v, l = j("var-tag"), i = E(() => {
1231
1231
  const b = {
1232
- string: { icon: "📝", color: "#409eff", label: "文本" },
1233
- number: { icon: "🔢", color: "#67c23a", label: "数字" },
1234
- boolean: { icon: "✓", color: "#e6a23c", label: "布尔" },
1232
+ string: { icon: "📝", color: "#4F46E5", label: "文本" },
1233
+ number: { icon: "🔢", color: "#10B981", label: "数字" },
1234
+ boolean: { icon: "✓", color: "#F59E0B", label: "布尔" },
1235
1235
  object: { icon: "📦", color: "#909399", label: "对象" },
1236
1236
  array: { icon: "📚", color: "#909399", label: "数组" },
1237
- file: { icon: "📁", color: "#f56c6c", label: "文件" }
1237
+ file: { icon: "📁", color: "#EF4444", label: "文件" }
1238
1238
  };
1239
1239
  return b[n.type] || b.string;
1240
- }), C = B(() => [
1240
+ }), C = E(() => [
1241
1241
  l.b(),
1242
1242
  l.m(n.size),
1243
1243
  l.m(n.type),
1244
1244
  l.is("disabled", n.disabled),
1245
1245
  l.is("copyable", n.copyable)
1246
- ]), y = B(() => n.value === void 0 || n.value === null ? "-" : n.type === "object" || n.type === "array" ? JSON.stringify(n.value) : String(n.value)), T = () => {
1246
+ ]), y = E(() => n.value === void 0 || n.value === null ? "-" : n.type === "object" || n.type === "array" ? JSON.stringify(n.value) : String(n.value)), T = () => {
1247
1247
  n.disabled || u("click", n.name);
1248
1248
  }, g = async () => {
1249
1249
  if (!n.disabled && n.copyable)
package/es/style.css CHANGED
@@ -1 +1 @@
1
- .x-pro-table{background-color:#fff;border-radius:4px}.x-pro-table__search{padding:18px 20px 0;margin-bottom:16px}.x-pro-table__toolbar{padding:0 20px 16px;display:flex;justify-content:space-between;align-items:center}.x-pro-table__table-wrapper{width:100%;overflow-x:auto}.x-pro-table__table{width:100%;border-collapse:collapse}.x-pro-table__table th,.x-pro-table__table td{padding:12px 16px;border-bottom:1px solid #ebeef5;font-size:14px;text-align:left}.x-pro-table__table th{background-color:#fafafa;font-weight:500;color:#606266;-webkit-user-select:none;user-select:none}.x-pro-table__table td{color:#606266}.x-pro-table__table tr:hover td{background-color:#f5f7fa}.x-pro-table__selection{width:50px;text-align:center!important}.x-pro-table__selection input{cursor:pointer}.x-pro-table__index{width:60px;text-align:center!important}.x-pro-table__column{padding:12px 16px;text-align:left}.x-pro-table__cell{padding:12px 16px}.x-pro-table__loading,.x-pro-table__empty{padding:40px 0;text-align:center;color:#909399;font-size:14px}.x-pro-table__pagination{display:flex;justify-content:flex-end;padding:16px 20px;border-top:1px solid #ebeef5}.x-search-form{display:flex;flex-wrap:wrap;gap:16px;padding:16px 20px;background-color:#fff;border-radius:4px}.x-search-form__items{display:flex;flex-wrap:wrap;gap:16px;flex:1}.x-search-form__item{display:flex;align-items:center}.x-search-form__label{padding-right:12px;font-size:14px;color:#606266;text-align:right;flex-shrink:0}.x-search-form__content{flex:1;min-width:180px}.x-search-form__select{width:100%;height:32px;padding:0 12px;font-size:14px;color:#606266;background-color:#fff;border:1px solid #dcdfe6;border-radius:4px;cursor:pointer}.x-search-form__select:hover{border-color:#c0c4cc}.x-search-form__select:focus{border-color:#409eff;outline:none}.x-search-form__actions{display:flex;align-items:center}.x-statistic{display:flex;flex-direction:column;padding:16px 20px;background-color:#fff;border-radius:8px;box-shadow:0 2px 12px #00000014}.x-statistic__title{font-size:14px;color:#909399;margin-bottom:8px}.x-statistic__content{display:flex;align-items:baseline;gap:4px}.x-statistic__prefix{font-size:16px;color:#606266;margin-right:4px}.x-statistic__value{font-size:24px;font-weight:600;color:#303133}.x-statistic__suffix{font-size:14px;color:#606266;margin-left:4px}.x-statistic__trend{display:flex;align-items:center;margin-top:8px;font-size:14px}.x-statistic__trend-icon{margin-right:4px}.x-statistic__trend--up{color:#67c23a}.x-statistic__trend--down{color:#f56c6c}.x-markdown-editor{display:flex;flex-direction:column;border:1px solid #dcdfe6;border-radius:4px;background-color:#fff;overflow:hidden}.x-markdown-editor.is-disabled{background-color:#f5f7fa;cursor:not-allowed}.x-markdown-editor.is-disabled .x-markdown-editor__editor{cursor:not-allowed;color:#c0c4cc}.x-markdown-editor__toolbar{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background-color:#fafafa;border-bottom:1px solid #e8e8e8;flex-shrink:0}.x-markdown-editor__toolbar-left,.x-markdown-editor__toolbar-right{display:flex;align-items:center;gap:4px}.x-markdown-editor__toolbar-btn{min-width:28px;height:28px;padding:0 6px;border:none;background:none;cursor:pointer;font-size:14px;color:#606266;border-radius:4px;display:flex;align-items:center;justify-content:center}.x-markdown-editor__toolbar-btn:hover:not(:disabled){background-color:#e8e8e8}.x-markdown-editor__toolbar-btn:disabled{cursor:not-allowed;color:#c0c4cc}.x-markdown-editor__toolbar-btn.is-divider{width:1px;height:20px;min-width:1px;padding:0;margin:0 4px;background-color:#dcdfe6;cursor:default}.x-markdown-editor__toolbar-btn.is-divider:hover{background-color:#dcdfe6}.x-markdown-editor__mode-btn{padding:4px 12px;border:1px solid #dcdfe6;background:#fff;cursor:pointer;font-size:13px;color:#606266;border-radius:4px}.x-markdown-editor__mode-btn:hover{color:#409eff;border-color:#c6e2ff;background-color:#ecf5ff}.x-markdown-editor__mode-btn.is-active{color:#fff;background-color:#409eff;border-color:#409eff}.x-markdown-editor__body{display:flex;flex:1;overflow:hidden}.x-markdown-editor__toc{width:200px;padding:16px;border-right:1px solid #e8e8e8;background-color:#fafafa;overflow-y:auto;flex-shrink:0}.x-markdown-editor__toc-title{font-size:14px;font-weight:600;color:#303133;margin-bottom:12px}.x-markdown-editor__toc-list{list-style:none;padding:0;margin:0}.x-markdown-editor__toc-item{font-size:13px;color:#606266;padding:6px 0;cursor:pointer}.x-markdown-editor__toc-item:hover{color:#409eff}.x-markdown-editor__content,.x-markdown-editor__editor-wrapper{flex:1;display:flex;overflow:hidden}.is-mode-split .x-markdown-editor__editor-wrapper{border-right:1px solid #e8e8e8}.x-markdown-editor__editor{flex:1;padding:16px;border:none;resize:none;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;line-height:1.6;color:#303133;background-color:transparent;outline:none}.x-markdown-editor__editor::placeholder{color:#c0c4cc}.x-markdown-editor__preview{flex:1;padding:16px;overflow-y:auto;font-size:14px;line-height:1.8;color:#303133}.x-markdown-editor__preview .md-heading{margin:16px 0 8px;font-weight:600;color:#303133}.x-markdown-editor__preview .md-heading.md-h1{font-size:28px;margin-top:0}.x-markdown-editor__preview .md-heading.md-h2{font-size:24px}.x-markdown-editor__preview .md-heading.md-h3{font-size:20px}.x-markdown-editor__preview .md-heading.md-h4{font-size:18px}.x-markdown-editor__preview .md-heading.md-h5{font-size:16px}.x-markdown-editor__preview .md-heading.md-h6{font-size:14px}.x-markdown-editor__preview .md-paragraph{margin:12px 0}.x-markdown-editor__preview .md-code{padding:2px 6px;background-color:#f5f7fa;border-radius:3px;font-family:Monaco,Menlo,monospace;font-size:13px;color:#e96900}.x-markdown-editor__preview .md-code-block{margin:12px 0;padding:16px;background-color:#f8f8f8;border-radius:4px;overflow-x:auto}.x-markdown-editor__preview .md-code-block code{font-family:Monaco,Menlo,monospace;font-size:13px;line-height:1.6;color:#303133}.x-markdown-editor__preview .md-link{color:#409eff;text-decoration:none}.x-markdown-editor__preview .md-link:hover{text-decoration:underline}.x-markdown-editor__preview .md-image{max-width:100%;border-radius:4px;margin:8px 0}.x-markdown-editor__preview .md-list{padding-left:24px;margin:12px 0}.x-markdown-editor__preview .md-list li{margin:4px 0}.x-markdown-editor__preview .md-blockquote{margin:12px 0;padding:12px 16px;border-left:4px solid #409eff;background-color:#f0f7ff;color:#606266}.x-markdown-editor__preview .md-blockquote p{margin:4px 0}.x-markdown-editor__preview .md-hr{margin:16px 0;border:none;border-top:1px solid #e8e8e8}.x-markdown-editor__preview .md-table{width:100%;border-collapse:collapse;margin:12px 0}.x-markdown-editor__preview .md-table th,.x-markdown-editor__preview .md-table td{padding:8px 12px;border:1px solid #e8e8e8;text-align:left}.x-markdown-editor__preview .md-table th{background-color:#fafafa;font-weight:600}.x-markdown-editor.is-mode-edit .x-markdown-editor__editor-wrapper,.x-markdown-editor.is-mode-preview .x-markdown-editor__preview{width:100%}.x-app-card{position:relative;display:flex;flex-direction:column;padding:16px;background-color:var(--bg-color, #fff);border-radius:8px;box-shadow:0 2px 12px #00000014;cursor:pointer;transition:all .3s;min-width:200px;max-width:280px}.x-app-card:hover:not(.is-disabled){box-shadow:0 4px 16px #0000001f;transform:translateY(-2px)}.x-app-card.is-disabled{opacity:.5;cursor:not-allowed}.x-app-card--published{border:1px solid rgba(103,194,58,.3)}.x-app-card--draft{border:1px solid rgba(144,147,153,.3)}.x-app-card--archived{border:1px solid rgba(245,108,108,.3)}.x-app-card__icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.x-app-card__icon .icon-text{font-size:24px;color:#fff}.x-app-card__status{position:absolute;top:12px;right:12px;display:flex;align-items:center;gap:4px;font-size:12px}.x-app-card__status .status-dot{width:6px;height:6px;border-radius:50%}.x-app-card__status .status-label{color:var(--color-text-secondary, #909399)}.x-app-card__info{margin-bottom:12px}.x-app-card__name{font-size:16px;font-weight:600;color:var(--color-text-primary, #303133);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-app-card__description{font-size:13px;color:var(--color-text-regular, #606266);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-app-card__meta{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--color-text-secondary, #909399);margin-bottom:12px}.x-app-card__creator,.x-app-card__time{display:block}.x-app-card__actions{display:flex;gap:8px;margin-top:auto}.x-app-card__actions .action-btn{padding:6px 10px;background:var(--color-fill-light, #f5f7fa);border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}.x-app-card__actions .action-btn:hover{background:var(--color-fill, #e4e7ed)}.x-app-card__actions .action-btn--danger:hover{background:#f56c6c1a;color:var(--color-danger, #f56c6c)}.x-chat{display:flex;flex-direction:column;background-color:var(--bg-color, #fff);border-radius:8px;border:1px solid var(--color-border-lighter, #ebeef5);overflow:hidden}.x-chat.is-disabled{opacity:.6}.x-chat__toolbar{padding:12px;border-bottom:1px solid var(--color-border-lighter, #ebeef5);display:flex;justify-content:flex-end}.x-chat__toolbar .clear-btn{padding:6px 12px;background:transparent;border:1px solid var(--color-border, #dcdfe6);border-radius:4px;font-size:13px;color:var(--color-text-regular, #606266);cursor:pointer;transition:all .2s}.x-chat__toolbar .clear-btn:hover:not(:disabled){color:var(--color-danger, #f56c6c);border-color:var(--color-danger, #f56c6c)}.x-chat__toolbar .clear-btn:disabled{opacity:.5;cursor:not-allowed}.x-chat__messages{flex:1;overflow-y:auto;padding:16px;background-color:var(--bg-color-page, #fafafa)}.x-chat__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:var(--color-text-placeholder, #c0c4cc)}.x-chat__empty .empty-icon{font-size:48px;margin-bottom:8px}.x-chat__empty .empty-text{font-size:14px}.x-chat__message{margin-bottom:16px;padding:12px;background:var(--bg-color, #fff);border-radius:8px;box-shadow:0 1px 4px #0000000d}.x-chat__message--user{background:#409eff0d;border-left:3px solid var(--color-primary, #409eff)}.x-chat__message--assistant{background:#67c23a0d;border-left:3px solid var(--color-success, #67c23a)}.x-chat__message--system{background:#9093990d;border-left:3px solid var(--color-info, #909399)}.x-chat__message-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.x-chat__message-header .role-icon{font-size:16px}.x-chat__message-header .role-label{font-size:13px;font-weight:500;color:var(--color-text-primary, #303133)}.x-chat__message-header .timestamp{font-size:12px;color:var(--color-text-secondary, #909399)}.x-chat__message-content{font-size:14px;color:var(--color-text-regular, #606266);line-height:1.6}.x-chat__message-content .text-content{white-space:pre-wrap}.x-chat__message-content .loading-indicator{display:inline-flex;gap:4px}.x-chat__message-content .loading-indicator .dot{width:6px;height:6px;background:var(--color-primary, #409eff);border-radius:50%;animation:bounce 1.4s ease-in-out infinite both}.x-chat__message-content .loading-indicator .dot:nth-child(1){animation-delay:-.32s}.x-chat__message-content .loading-indicator .dot:nth-child(2){animation-delay:-.16s}.x-chat__message-content .code-block{margin:8px 0;background:var(--color-fill-dark, #1e1e1e);border-radius:6px;overflow:hidden}.x-chat__message-content .code-block .code-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#ffffff1a}.x-chat__message-content .code-block .code-header .language{font-size:12px;color:#aaa}.x-chat__message-content .code-block .code-header .copy-btn{padding:4px 8px;background:transparent;border:none;color:#ccc;font-size:12px;cursor:pointer}.x-chat__message-content .code-block .code-header .copy-btn:hover{color:#fff}.x-chat__message-content .code-block .code-content{padding:12px;margin:0;font-size:13px;color:#d4d4d4;overflow-x:auto}.x-chat__message-content .code-block .code-content code{font-family:Monaco,Menlo,monospace}.x-chat__input{padding:12px;border-top:1px solid var(--color-border-lighter, #ebeef5);display:flex;gap:12px}.x-chat__input .input-textarea{flex:1;padding:8px 12px;border:1px solid var(--color-border, #dcdfe6);border-radius:4px;font-size:14px;resize:none;outline:none;transition:border-color .2s}.x-chat__input .input-textarea:focus{border-color:var(--color-primary, #409eff)}.x-chat__input .input-textarea:disabled{background:var(--color-fill-light, #f5f7fa);cursor:not-allowed}.x-chat__input .send-btn{padding:8px 16px;background:var(--color-primary, #409eff);color:#fff;border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}.x-chat__input .send-btn:hover:not(:disabled){background:var(--color-primary-light, #79bbff)}.x-chat__input .send-btn:disabled{background:var(--color-fill, #e4e7ed);cursor:not-allowed}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.x-log-table{background-color:var(--bg-color, #fff);border-radius:8px;overflow:hidden}.x-log-table.is-loading .x-log-table__wrapper table{opacity:.5}.x-log-table__wrapper{overflow-x:auto}.x-log-table__wrapper table{width:100%;border-collapse:collapse}.x-log-table__wrapper th{padding:12px 16px;background:var(--color-fill-light, #f5f7fa);color:var(--color-text-secondary, #909399);font-weight:500;text-align:left;border-bottom:1px solid var(--color-border-lighter, #ebeef5);font-size:14px}.x-log-table__wrapper td{padding:12px 16px;border-bottom:1px solid var(--color-border-lighter, #ebeef5);color:var(--color-text-regular, #606266);font-size:14px}.x-log-table__wrapper tr:hover td{background:var(--color-fill-lighter, #fafafa)}.x-log-table__wrapper .col-session-id .session-id{color:var(--color-primary, #409eff);font-size:12px}.x-log-table__wrapper .col-title{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-log-table__wrapper .col-message-count{text-align:center}.x-log-table__wrapper .col-status .status-tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;color:#fff}.x-log-table__wrapper .col-time{font-size:12px;color:var(--color-text-secondary, #909399)}.x-log-table__wrapper .col-actions .action-link{padding:0 8px;background:transparent;border:none;color:var(--color-primary, #409eff);font-size:13px;cursor:pointer}.x-log-table__wrapper .col-actions .action-link:hover{text-decoration:underline}.x-log-table__wrapper .col-actions .action-link:not(:last-child){border-right:1px solid var(--color-border-lighter, #ebeef5)}.x-log-table__loading-cell{display:table-cell;text-align:center;padding:40px}.x-log-table__loading-cell .loading-spinner{display:inline-block;width:24px;height:24px;border:2px solid var(--color-border, #dcdfe6);border-top-color:var(--color-primary, #409eff);border-radius:50%;animation:spin .8s linear infinite;margin-right:8px}.x-log-table__loading-cell .loading-text{color:var(--color-text-secondary, #909399)}.x-log-table__empty{text-align:center;padding:40px;color:var(--color-text-placeholder, #c0c4cc)}.x-log-table__pagination{display:flex;align-items:center;justify-content:flex-end;gap:16px;padding:16px}.x-log-table__pagination .pagination-info{font-size:13px;color:var(--color-text-secondary, #909399)}.x-log-table__pagination .pagination-controls{display:flex;align-items:center;gap:8px}.x-log-table__pagination .pagination-controls .pagination-btn{padding:6px 12px;background:var(--bg-color, #fff);border:1px solid var(--color-border, #dcdfe6);border-radius:4px;font-size:13px;color:var(--color-text-regular, #606266);cursor:pointer}.x-log-table__pagination .pagination-controls .pagination-btn:hover:not(:disabled){color:var(--color-primary, #409eff);border-color:var(--color-primary, #409eff)}.x-log-table__pagination .pagination-controls .pagination-btn:disabled{color:var(--color-text-placeholder, #c0c4cc);cursor:not-allowed}.x-log-table__pagination .pagination-controls .pagination-current{font-size:13px;color:var(--color-text-primary, #303133)}.x-log-table__pagination .pagination-size-select{padding:6px 8px;border:1px solid var(--color-border, #dcdfe6);border-radius:4px;font-size:13px;color:var(--color-text-regular, #606266);cursor:pointer}.x-log-table__pagination .pagination-size-select:focus{border-color:var(--color-primary, #409eff);outline:none}@keyframes spin{to{transform:rotate(360deg)}}.x-api-doc{display:flex;background-color:var(--bg-color, #fff);border-radius:8px;border:1px solid var(--color-border-lighter, #ebeef5);overflow:hidden;min-height:400px}.x-api-doc__sidebar{width:240px;border-right:1px solid var(--color-border-lighter, #ebeef5);background:var(--color-fill-light, #f5f7fa);overflow-y:auto}.x-api-doc__sidebar-header{padding:12px 16px;font-weight:600;color:var(--color-text-primary, #303133);border-bottom:1px solid var(--color-border-lighter, #ebeef5)}.x-api-doc__endpoint-list{padding:8px}.x-api-doc__endpoint-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:4px;cursor:pointer;transition:background-color .2s}.x-api-doc__endpoint-item:hover{background:var(--color-fill-lighter, #fafafa)}.x-api-doc__endpoint-item.is-active{background:#409eff1a;border-left:2px solid var(--color-primary, #409eff)}.x-api-doc__endpoint-item .method-tag{display:inline-block;padding:2px 6px;font-size:11px;font-weight:600;color:#fff;border-radius:2px}.x-api-doc__endpoint-item .endpoint-path{font-size:13px;color:var(--color-text-regular, #606266);overflow:hidden;text-overflow:ellipsis}.x-api-doc__content{flex:1;padding:20px;overflow-y:auto}.x-api-doc__header{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--color-border-lighter, #ebeef5);margin-bottom:20px}.x-api-doc__header .method-badge{display:inline-block;padding:4px 12px;font-size:14px;font-weight:600;color:#fff;border-radius:4px}.x-api-doc__header .endpoint-url{font-size:16px;font-weight:500;color:var(--color-text-primary, #303133)}.x-api-doc__header .endpoint-desc{font-size:13px;color:var(--color-text-secondary, #909399)}.x-api-doc__section{margin-bottom:20px}.x-api-doc__section-title{display:flex;align-items:center;justify-content:space-between;font-weight:500;color:var(--color-text-primary, #303133);margin-bottom:12px}.x-api-doc__section-title .copy-btn{padding:4px 8px;background:transparent;border:1px solid var(--color-border, #dcdfe6);border-radius:4px;font-size:12px;color:var(--color-text-regular, #606266);cursor:pointer}.x-api-doc__section-title .copy-btn:hover{color:var(--color-primary, #409eff);border-color:var(--color-primary, #409eff)}.x-api-doc__params-table{width:100%;border-collapse:collapse}.x-api-doc__params-table th{padding:10px 12px;background:var(--color-fill-light, #f5f7fa);color:var(--color-text-secondary, #909399);font-weight:500;text-align:left;border:1px solid var(--color-border-lighter, #ebeef5)}.x-api-doc__params-table td{padding:10px 12px;border:1px solid var(--color-border-lighter, #ebeef5);font-size:13px}.x-api-doc__params-table .param-name{color:var(--color-primary, #409eff);font-weight:500}.x-api-doc__params-table .param-type{color:var(--color-text-regular, #606266)}.x-api-doc__params-table .required-tag{color:var(--color-danger, #f56c6c);font-size:12px}.x-api-doc__params-table .optional-tag{color:var(--color-text-secondary, #909399);font-size:12px}.x-api-doc__params-table .param-desc{color:var(--color-text-regular, #606266)}.x-api-doc__code-block{background:var(--color-fill-dark, #1e1e1e);border-radius:6px;overflow:hidden}.x-api-doc__code-block pre{padding:12px;margin:0;overflow-x:auto}.x-api-doc__code-block code{font-family:Monaco,Menlo,monospace;font-size:13px;color:#d4d4d4;line-height:1.5}.x-api-doc__empty{display:flex;align-items:center;justify-content:center;height:200px;color:var(--color-text-placeholder, #c0c4cc)}.x-var-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--color-fill-light, #f5f7fa);border-radius:4px;font-size:13px;color:var(--color-text-regular, #606266);cursor:default;transition:all .2s}.x-var-tag.is-disabled{opacity:.5}.x-var-tag.is-copyable{cursor:pointer}.x-var-tag.is-copyable:hover{background:var(--color-fill, #e4e7ed)}.x-var-tag--small{font-size:12px;padding:1px 6px}.x-var-tag--default{font-size:13px;padding:2px 8px}.x-var-tag--large{font-size:14px;padding:4px 12px}.x-var-tag--string{border-left:2px solid #409eff}.x-var-tag--number{border-left:2px solid #67c23a}.x-var-tag--boolean{border-left:2px solid #e6a23c}.x-var-tag--object,.x-var-tag--array{border-left:2px solid #909399}.x-var-tag--file{border-left:2px solid #f56c6c}.x-var-tag__icon{font-size:12px}.x-var-tag__name{color:var(--color-primary, #409eff);font-weight:500}.x-var-tag__value{color:var(--color-text-regular, #606266);max-width:100px;overflow:hidden;text-overflow:ellipsis}.x-var-tag__type{font-size:11px}.x-var-tag__copy-btn{padding:0 4px;background:transparent;border:none;font-size:12px;cursor:pointer;color:var(--color-text-secondary, #909399)}.x-var-tag__copy-btn:hover{color:var(--color-primary, #409eff)}
1
+ .x-pro-table{background-color:var(--xto-bg-color, #FFFFFF);border-radius:var(--xto-border-radius-large, 8px)}.x-pro-table__search{padding:var(--xto-spacing-md, 12px) var(--xto-spacing-lg, 24px) 0;margin-bottom:var(--xto-spacing-base, 16px)}.x-pro-table__toolbar{padding:0 var(--xto-spacing-lg, 24px) var(--xto-spacing-base, 16px);display:flex;justify-content:space-between;align-items:center}.x-pro-table__table-wrapper{width:100%;overflow-x:auto}.x-pro-table__table{width:100%;border-collapse:collapse}.x-pro-table__table th,.x-pro-table__table td{padding:var(--xto-spacing-sm, 8px) var(--xto-spacing-base, 16px);border-bottom:1px solid var(--xto-border-color-lighter, #F3F4F6);font-size:var(--xto-font-size-base, 14px);text-align:left}.x-pro-table__table th{background-color:var(--xto-fill-color-light, #F9FAFB);font-weight:500;color:var(--xto-color-text-secondary, #6B7280);-webkit-user-select:none;user-select:none}.x-pro-table__table td{color:var(--xto-color-text-regular, #4B5563)}.x-pro-table__table tr:hover td{background-color:var(--xto-fill-color, #F3F4F6)}.x-pro-table__selection{width:50px;text-align:center!important}.x-pro-table__selection input{cursor:pointer}.x-pro-table__index{width:60px;text-align:center!important}.x-pro-table__column{padding:var(--xto-spacing-sm, 8px) var(--xto-spacing-base, 16px);text-align:left}.x-pro-table__cell{padding:var(--xto-spacing-sm, 8px) var(--xto-spacing-base, 16px)}.x-pro-table__loading,.x-pro-table__empty{padding:var(--xto-spacing-xl, 32px) 0;text-align:center;color:var(--xto-color-text-secondary, #6B7280);font-size:var(--xto-font-size-base, 14px)}.x-pro-table__pagination{display:flex;justify-content:flex-end;padding:var(--xto-spacing-base, 16px) var(--xto-spacing-lg, 24px);border-top:1px solid var(--xto-border-color-lighter, #F3F4F6)}.x-search-form{display:flex;flex-wrap:wrap;gap:16px;padding:16px 20px;background-color:var(--xto-bg-color, #FFFFFF);border-radius:var(--xto-border-radius-base, 6px)}.x-search-form__items{display:flex;flex-wrap:wrap;gap:16px;flex:1}.x-search-form__item{display:flex;align-items:center}.x-search-form__label{padding-right:12px;font-size:14px;color:var(--xto-color-text-regular, #4B5563);text-align:right;flex-shrink:0}.x-search-form__content{flex:1;min-width:180px}.x-search-form__select{width:100%;height:32px;padding:0 12px;font-size:14px;color:var(--xto-color-text-regular, #4B5563);background-color:var(--xto-bg-color, #FFFFFF);border:1px solid var(--xto-border-color, #D1D5DB);border-radius:var(--xto-border-radius-base, 6px);cursor:pointer}.x-search-form__select:hover{border-color:var(--xto-color-text-disabled, #D1D5DB)}.x-search-form__select:focus{border-color:var(--xto-color-primary, #4F46E5);outline:none}.x-search-form__select:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}.x-search-form__actions{display:flex;align-items:center}.x-statistic{display:flex;flex-direction:column;padding:16px 20px;background-color:var(--xto-bg-color, #FFFFFF);border-radius:var(--xto-border-radius-large, 8px);box-shadow:0 2px 12px #00000014}.x-statistic__title{font-size:14px;color:var(--xto-color-info, #6B7280);margin-bottom:8px}.x-statistic__content{display:flex;align-items:baseline;gap:4px}.x-statistic__prefix{font-size:16px;color:var(--xto-color-text-regular, #4B5563);margin-right:4px}.x-statistic__value{font-size:24px;font-weight:600;color:var(--xto-color-text-primary, #1F2937)}.x-statistic__suffix{font-size:14px;color:var(--xto-color-text-regular, #4B5563);margin-left:4px}.x-statistic__trend{display:flex;align-items:center;margin-top:8px;font-size:14px}.x-statistic__trend-icon{margin-right:4px}.x-statistic__trend--up{color:var(--xto-color-success, #10B981)}.x-statistic__trend--down{color:var(--xto-color-danger, #EF4444)}.x-markdown-editor{display:flex;flex-direction:column;border:1px solid var(--xto-border-color, #D1D5DB);border-radius:var(--xto-border-radius-base, 6px);background-color:var(--xto-bg-color, #FFFFFF);overflow:hidden}.x-markdown-editor.is-disabled{background-color:var(--xto-fill-color, #F3F4F6);cursor:not-allowed}.x-markdown-editor.is-disabled .x-markdown-editor__editor{cursor:not-allowed;color:var(--xto-color-text-disabled, #D1D5DB)}.x-markdown-editor__toolbar{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background-color:var(--xto-fill-color-light, #F9FAFB);border-bottom:1px solid var(--xto-border-color-light, #E5E7EB);flex-shrink:0}.x-markdown-editor__toolbar-left,.x-markdown-editor__toolbar-right{display:flex;align-items:center;gap:4px}.x-markdown-editor__toolbar-btn{min-width:28px;height:28px;padding:0 6px;border:none;background:none;cursor:pointer;font-size:14px;color:var(--xto-color-text-regular, #4B5563);border-radius:var(--xto-border-radius-base, 6px);display:flex;align-items:center;justify-content:center}.x-markdown-editor__toolbar-btn:hover:not(:disabled){background-color:var(--xto-border-color-light, #E5E7EB)}.x-markdown-editor__toolbar-btn:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}.x-markdown-editor__toolbar-btn:disabled{cursor:not-allowed;color:var(--xto-color-text-disabled, #D1D5DB)}.x-markdown-editor__toolbar-btn.is-divider{width:1px;height:20px;min-width:1px;padding:0;margin:0 4px;background-color:var(--xto-border-color, #D1D5DB);cursor:default}.x-markdown-editor__toolbar-btn.is-divider:hover{background-color:var(--xto-border-color, #D1D5DB)}.x-markdown-editor__mode-btn{padding:4px 12px;border:1px solid var(--xto-border-color, #D1D5DB);background:var(--xto-bg-color, #FFFFFF);cursor:pointer;font-size:13px;color:var(--xto-color-text-regular, #4B5563);border-radius:var(--xto-border-radius-base, 6px)}.x-markdown-editor__mode-btn:hover{color:var(--xto-color-primary, #4F46E5);border-color:var(--xto-color-primary, #4F46E5);background-color:var(--xto-fill-color-light, #F9FAFB)}.x-markdown-editor__mode-btn:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}.x-markdown-editor__mode-btn.is-active{color:var(--xto-bg-color, #FFFFFF);background-color:var(--xto-color-primary, #4F46E5);border-color:var(--xto-color-primary, #4F46E5)}.x-markdown-editor__body{display:flex;flex:1;overflow:hidden}.x-markdown-editor__toc{width:200px;padding:16px;border-right:1px solid var(--xto-border-color-light, #E5E7EB);background-color:var(--xto-fill-color-light, #F9FAFB);overflow-y:auto;flex-shrink:0}.x-markdown-editor__toc-title{font-size:14px;font-weight:600;color:var(--xto-color-text-primary, #1F2937);margin-bottom:12px}.x-markdown-editor__toc-list{list-style:none;padding:0;margin:0}.x-markdown-editor__toc-item{font-size:13px;color:var(--xto-color-text-regular, #4B5563);padding:6px 0;cursor:pointer}.x-markdown-editor__toc-item:hover{color:var(--xto-color-primary, #4F46E5)}.x-markdown-editor__content,.x-markdown-editor__editor-wrapper{flex:1;display:flex;overflow:hidden}.is-mode-split .x-markdown-editor__editor-wrapper{border-right:1px solid var(--xto-border-color-light, #E5E7EB)}.x-markdown-editor__editor{flex:1;padding:16px;border:none;resize:none;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;line-height:1.6;color:var(--xto-color-text-primary, #1F2937);background-color:transparent;outline:none}.x-markdown-editor__editor::placeholder{color:var(--xto-color-text-placeholder, #9CA3AF)}.x-markdown-editor__editor:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:-2px}.x-markdown-editor__preview{flex:1;padding:16px;overflow-y:auto;font-size:14px;line-height:1.8;color:var(--xto-color-text-primary, #1F2937)}.x-markdown-editor__preview .md-heading{margin:16px 0 8px;font-weight:600;color:var(--xto-color-text-primary, #1F2937)}.x-markdown-editor__preview .md-heading.md-h1{font-size:28px;margin-top:0}.x-markdown-editor__preview .md-heading.md-h2{font-size:24px}.x-markdown-editor__preview .md-heading.md-h3{font-size:20px}.x-markdown-editor__preview .md-heading.md-h4{font-size:18px}.x-markdown-editor__preview .md-heading.md-h5{font-size:16px}.x-markdown-editor__preview .md-heading.md-h6{font-size:14px}.x-markdown-editor__preview .md-paragraph{margin:12px 0}.x-markdown-editor__preview .md-code{padding:2px 6px;background-color:var(--xto-fill-color, #F3F4F6);border-radius:3px;font-family:Monaco,Menlo,monospace;font-size:13px;color:#e96900}.x-markdown-editor__preview .md-code-block{margin:12px 0;padding:16px;background-color:var(--xto-fill-color, #F3F4F6);border-radius:var(--xto-border-radius-base, 6px);overflow-x:auto}.x-markdown-editor__preview .md-code-block code{font-family:Monaco,Menlo,monospace;font-size:13px;line-height:1.6;color:var(--xto-color-text-primary, #1F2937)}.x-markdown-editor__preview .md-link{color:var(--xto-color-primary, #4F46E5);text-decoration:none}.x-markdown-editor__preview .md-link:hover{text-decoration:underline}.x-markdown-editor__preview .md-image{max-width:100%;border-radius:var(--xto-border-radius-base, 6px);margin:8px 0}.x-markdown-editor__preview .md-list{padding-left:24px;margin:12px 0}.x-markdown-editor__preview .md-list li{margin:4px 0}.x-markdown-editor__preview .md-blockquote{margin:12px 0;padding:12px 16px;border-left:4px solid var(--xto-color-primary, #4F46E5);background-color:var(--xto-fill-color-light, #F9FAFB);color:var(--xto-color-text-regular, #4B5563)}.x-markdown-editor__preview .md-blockquote p{margin:4px 0}.x-markdown-editor__preview .md-hr{margin:16px 0;border:none;border-top:1px solid var(--xto-border-color-light, #E5E7EB)}.x-markdown-editor__preview .md-table{width:100%;border-collapse:collapse;margin:12px 0}.x-markdown-editor__preview .md-table th,.x-markdown-editor__preview .md-table td{padding:8px 12px;border:1px solid var(--xto-border-color-light, #E5E7EB);text-align:left}.x-markdown-editor__preview .md-table th{background-color:var(--xto-fill-color-light, #F9FAFB);font-weight:600}.x-markdown-editor.is-mode-edit .x-markdown-editor__editor-wrapper,.x-markdown-editor.is-mode-preview .x-markdown-editor__preview{width:100%}.x-app-card{position:relative;display:flex;flex-direction:column;padding:16px;background-color:var(--xto-bg-color, #FFFFFF);border-radius:var(--xto-border-radius-large, 8px);box-shadow:0 2px 12px #00000014;cursor:pointer;transition:all var(--xto-transition-duration-base, .25s);min-width:200px;max-width:280px}.x-app-card:hover:not(.is-disabled){box-shadow:0 4px 16px #0000001f;transform:translateY(-2px)}.x-app-card:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}.x-app-card.is-disabled{opacity:.5;cursor:not-allowed}.x-app-card--published{border:1px solid rgba(16,185,129,.3)}.x-app-card--draft{border:1px solid rgba(107,114,128,.3)}.x-app-card--archived{border:1px solid rgba(239,68,68,.3)}.x-app-card__icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.x-app-card__icon .icon-text{font-size:24px;color:var(--xto-bg-color, #FFFFFF)}.x-app-card__status{position:absolute;top:12px;right:12px;display:flex;align-items:center;gap:4px;font-size:12px}.x-app-card__status .status-dot{width:6px;height:6px;border-radius:50%}.x-app-card__status .status-label{color:var(--xto-color-text-secondary, #6B7280)}.x-app-card__info{margin-bottom:12px}.x-app-card__name{font-size:16px;font-weight:600;color:var(--xto-color-text-primary, #1F2937);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-app-card__description{font-size:13px;color:var(--xto-color-text-regular, #4B5563);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-app-card__meta{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--xto-color-text-secondary, #6B7280);margin-bottom:12px}.x-app-card__creator,.x-app-card__time{display:block}.x-app-card__actions{display:flex;gap:8px;margin-top:auto}.x-app-card__actions .action-btn{padding:6px 10px;background:var(--xto-fill-color-light, #F9FAFB);border:none;border-radius:var(--xto-border-radius-base, 6px);font-size:14px;cursor:pointer;transition:all var(--xto-transition-duration-fast, .15s)}.x-app-card__actions .action-btn:hover{background:var(--xto-fill-color, #F3F4F6)}.x-app-card__actions .action-btn:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}.x-app-card__actions .action-btn--danger:hover{background:#ef44441a;color:var(--xto-color-danger, #EF4444)}.x-app-card__actions .action-btn--danger:focus-visible{outline-color:var(--xto-color-danger, #EF4444)}.x-chat{display:flex;flex-direction:column;background-color:var(--xto-bg-color, #FFFFFF);border-radius:var(--xto-border-radius-large, 8px);border:1px solid var(--xto-border-color-lighter, #F3F4F6);overflow:hidden}.x-chat.is-disabled{opacity:.6}.x-chat__toolbar{padding:12px;border-bottom:1px solid var(--xto-border-color-lighter, #F3F4F6);display:flex;justify-content:flex-end}.x-chat__toolbar .clear-btn{padding:6px 12px;background:transparent;border:1px solid var(--xto-border-color, #D1D5DB);border-radius:var(--xto-border-radius-base, 6px);font-size:13px;color:var(--xto-color-text-regular, #4B5563);cursor:pointer;transition:all var(--xto-transition-duration-fast, .15s)}.x-chat__toolbar .clear-btn:hover:not(:disabled){color:var(--xto-color-danger, #EF4444);border-color:var(--xto-color-danger, #EF4444)}.x-chat__toolbar .clear-btn:focus-visible{outline:2px solid var(--xto-color-danger, #EF4444);outline-offset:2px}.x-chat__toolbar .clear-btn:disabled{opacity:.5;cursor:not-allowed}.x-chat__messages{flex:1;overflow-y:auto;padding:16px;background-color:var(--xto-bg-color-page, #F9FAFB)}.x-chat__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:var(--xto-color-text-placeholder, #9CA3AF)}.x-chat__empty .empty-icon{font-size:48px;margin-bottom:8px}.x-chat__empty .empty-text{font-size:14px}.x-chat__message{margin-bottom:16px;padding:12px;background:var(--xto-bg-color, #FFFFFF);border-radius:var(--xto-border-radius-large, 8px);box-shadow:0 1px 4px #0000000d}.x-chat__message--user{background:#4f46e50d;border-left:3px solid var(--xto-color-primary, #4F46E5)}.x-chat__message--assistant{background:#10b9810d;border-left:3px solid var(--xto-color-success, #10B981)}.x-chat__message--system{background:#6b72800d;border-left:3px solid var(--xto-color-info, #6B7280)}.x-chat__message-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.x-chat__message-header .role-icon{font-size:16px}.x-chat__message-header .role-label{font-size:13px;font-weight:500;color:var(--xto-color-text-primary, #1F2937)}.x-chat__message-header .timestamp{font-size:12px;color:var(--xto-color-text-secondary, #6B7280)}.x-chat__message-content{font-size:14px;color:var(--xto-color-text-regular, #4B5563);line-height:1.6}.x-chat__message-content .text-content{white-space:pre-wrap}.x-chat__message-content .loading-indicator{display:inline-flex;gap:4px}.x-chat__message-content .loading-indicator .dot{width:6px;height:6px;background:var(--xto-color-primary, #4F46E5);border-radius:50%;animation:bounce 1.4s ease-in-out infinite both}.x-chat__message-content .loading-indicator .dot:nth-child(1){animation-delay:-.32s}.x-chat__message-content .loading-indicator .dot:nth-child(2){animation-delay:-.16s}.x-chat__message-content .code-block{margin:8px 0;background:var(--xto-color-fill-dark, #1e1e1e);border-radius:6px;overflow:hidden}.x-chat__message-content .code-block .code-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#ffffff1a}.x-chat__message-content .code-block .code-header .language{font-size:12px;color:#aaa}.x-chat__message-content .code-block .code-header .copy-btn{padding:4px 8px;background:transparent;border:none;color:#ccc;font-size:12px;cursor:pointer}.x-chat__message-content .code-block .code-header .copy-btn:hover{color:var(--xto-bg-color, #FFFFFF)}.x-chat__message-content .code-block .code-header .copy-btn:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}.x-chat__message-content .code-block .code-content{padding:12px;margin:0;font-size:13px;color:#d4d4d4;overflow-x:auto}.x-chat__message-content .code-block .code-content code{font-family:Monaco,Menlo,monospace}.x-chat__input{padding:12px;border-top:1px solid var(--xto-border-color-lighter, #F3F4F6);display:flex;gap:12px}.x-chat__input .input-textarea{flex:1;padding:8px 12px;border:1px solid var(--xto-border-color, #D1D5DB);border-radius:var(--xto-border-radius-base, 6px);font-size:14px;resize:none;outline:none;transition:border-color var(--xto-transition-duration-fast, .15s)}.x-chat__input .input-textarea:focus{border-color:var(--xto-color-primary, #4F46E5)}.x-chat__input .input-textarea:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}.x-chat__input .input-textarea:disabled{background:var(--xto-fill-color-light, #F9FAFB);cursor:not-allowed}.x-chat__input .send-btn{padding:8px 16px;background:var(--xto-color-primary, #4F46E5);color:var(--xto-bg-color, #FFFFFF);border:none;border-radius:var(--xto-border-radius-base, 6px);font-size:14px;cursor:pointer;transition:all var(--xto-transition-duration-fast, .15s)}.x-chat__input .send-btn:hover:not(:disabled){background:var(--xto-color-primary-light, #79bbff)}.x-chat__input .send-btn:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}.x-chat__input .send-btn:disabled{background:var(--xto-fill-color, #F3F4F6);cursor:not-allowed}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.x-log-table{background-color:var(--xto-bg-color, #FFFFFF);border-radius:var(--xto-border-radius-large, 8px);overflow:hidden}.x-log-table.is-loading .x-log-table__wrapper table{opacity:.5}.x-log-table__wrapper{overflow-x:auto}.x-log-table__wrapper table{width:100%;border-collapse:collapse}.x-log-table__wrapper th{padding:12px 16px;background:var(--xto-fill-color-light, #F9FAFB);color:var(--xto-color-text-secondary, #6B7280);font-weight:500;text-align:left;border-bottom:1px solid var(--xto-border-color-lighter, #F3F4F6);font-size:14px}.x-log-table__wrapper td{padding:12px 16px;border-bottom:1px solid var(--xto-border-color-lighter, #F3F4F6);color:var(--xto-color-text-regular, #4B5563);font-size:14px}.x-log-table__wrapper tr:hover td{background:var(--xto-fill-color-light, #F9FAFB)}.x-log-table__wrapper .col-session-id .session-id{color:var(--xto-color-primary, #4F46E5);font-size:12px}.x-log-table__wrapper .col-title{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-log-table__wrapper .col-message-count{text-align:center}.x-log-table__wrapper .col-status .status-tag{display:inline-block;padding:2px 8px;border-radius:var(--xto-border-radius-base, 6px);font-size:12px;color:var(--xto-bg-color, #FFFFFF)}.x-log-table__wrapper .col-time{font-size:12px;color:var(--xto-color-text-secondary, #6B7280)}.x-log-table__wrapper .col-actions .action-link{padding:0 8px;background:transparent;border:none;color:var(--xto-color-primary, #4F46E5);font-size:13px;cursor:pointer}.x-log-table__wrapper .col-actions .action-link:hover{text-decoration:underline}.x-log-table__wrapper .col-actions .action-link:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px;border-radius:var(--xto-border-radius-base, 6px)}.x-log-table__wrapper .col-actions .action-link:not(:last-child){border-right:1px solid var(--xto-border-color-lighter, #F3F4F6)}.x-log-table__loading-cell{display:table-cell;text-align:center;padding:40px}.x-log-table__loading-cell .loading-spinner{display:inline-block;width:24px;height:24px;border:2px solid var(--xto-border-color, #D1D5DB);border-top-color:var(--xto-color-primary, #4F46E5);border-radius:50%;animation:spin .8s linear infinite;margin-right:8px}.x-log-table__loading-cell .loading-text{color:var(--xto-color-text-secondary, #6B7280)}.x-log-table__empty{text-align:center;padding:40px;color:var(--xto-color-text-placeholder, #9CA3AF)}.x-log-table__pagination{display:flex;align-items:center;justify-content:flex-end;gap:16px;padding:16px}.x-log-table__pagination .pagination-info{font-size:13px;color:var(--xto-color-text-secondary, #6B7280)}.x-log-table__pagination .pagination-controls{display:flex;align-items:center;gap:8px}.x-log-table__pagination .pagination-controls .pagination-btn{padding:6px 12px;background:var(--xto-bg-color, #FFFFFF);border:1px solid var(--xto-border-color, #D1D5DB);border-radius:var(--xto-border-radius-base, 6px);font-size:13px;color:var(--xto-color-text-regular, #4B5563);cursor:pointer}.x-log-table__pagination .pagination-controls .pagination-btn:hover:not(:disabled){color:var(--xto-color-primary, #4F46E5);border-color:var(--xto-color-primary, #4F46E5)}.x-log-table__pagination .pagination-controls .pagination-btn:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}.x-log-table__pagination .pagination-controls .pagination-btn:disabled{color:var(--xto-color-text-placeholder, #9CA3AF);cursor:not-allowed}.x-log-table__pagination .pagination-controls .pagination-current{font-size:13px;color:var(--xto-color-text-primary, #1F2937)}.x-log-table__pagination .pagination-size-select{padding:6px 8px;border:1px solid var(--xto-border-color, #D1D5DB);border-radius:var(--xto-border-radius-base, 6px);font-size:13px;color:var(--xto-color-text-regular, #4B5563);cursor:pointer}.x-log-table__pagination .pagination-size-select:focus{border-color:var(--xto-color-primary, #4F46E5);outline:none}.x-log-table__pagination .pagination-size-select:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}@keyframes spin{to{transform:rotate(360deg)}}.x-api-doc{display:flex;background-color:var(--xto-bg-color, #FFFFFF);border-radius:var(--xto-border-radius-large, 8px);border:1px solid var(--xto-border-color-lighter, #F3F4F6);overflow:hidden;min-height:400px}.x-api-doc__sidebar{width:240px;border-right:1px solid var(--xto-border-color-lighter, #F3F4F6);background:var(--xto-fill-color-light, #F9FAFB);overflow-y:auto}.x-api-doc__sidebar-header{padding:12px 16px;font-weight:600;color:var(--xto-color-text-primary, #1F2937);border-bottom:1px solid var(--xto-border-color-lighter, #F3F4F6)}.x-api-doc__endpoint-list{padding:8px}.x-api-doc__endpoint-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--xto-border-radius-base, 6px);cursor:pointer;transition:background-color var(--xto-transition-duration-fast, .15s)}.x-api-doc__endpoint-item:hover{background:var(--xto-fill-color-light, #F9FAFB)}.x-api-doc__endpoint-item:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}.x-api-doc__endpoint-item.is-active{background:#4f46e51a;border-left:2px solid var(--xto-color-primary, #4F46E5)}.x-api-doc__endpoint-item .method-tag{display:inline-block;padding:2px 6px;font-size:11px;font-weight:600;color:var(--xto-bg-color, #FFFFFF);border-radius:2px}.x-api-doc__endpoint-item .endpoint-path{font-size:13px;color:var(--xto-color-text-regular, #4B5563);overflow:hidden;text-overflow:ellipsis}.x-api-doc__content{flex:1;padding:20px;overflow-y:auto}.x-api-doc__header{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--xto-border-color-lighter, #F3F4F6);margin-bottom:20px}.x-api-doc__header .method-badge{display:inline-block;padding:4px 12px;font-size:14px;font-weight:600;color:var(--xto-bg-color, #FFFFFF);border-radius:var(--xto-border-radius-base, 6px)}.x-api-doc__header .endpoint-url{font-size:16px;font-weight:500;color:var(--xto-color-text-primary, #1F2937)}.x-api-doc__header .endpoint-desc{font-size:13px;color:var(--xto-color-text-secondary, #6B7280)}.x-api-doc__section{margin-bottom:20px}.x-api-doc__section-title{display:flex;align-items:center;justify-content:space-between;font-weight:500;color:var(--xto-color-text-primary, #1F2937);margin-bottom:12px}.x-api-doc__section-title .copy-btn{padding:4px 8px;background:transparent;border:1px solid var(--xto-border-color, #D1D5DB);border-radius:var(--xto-border-radius-base, 6px);font-size:12px;color:var(--xto-color-text-regular, #4B5563);cursor:pointer}.x-api-doc__section-title .copy-btn:hover{color:var(--xto-color-primary, #4F46E5);border-color:var(--xto-color-primary, #4F46E5)}.x-api-doc__section-title .copy-btn:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}.x-api-doc__params-table{width:100%;border-collapse:collapse}.x-api-doc__params-table th{padding:10px 12px;background:var(--xto-fill-color-light, #F9FAFB);color:var(--xto-color-text-secondary, #6B7280);font-weight:500;text-align:left;border:1px solid var(--xto-border-color-lighter, #F3F4F6)}.x-api-doc__params-table td{padding:10px 12px;border:1px solid var(--xto-border-color-lighter, #F3F4F6);font-size:13px}.x-api-doc__params-table .param-name{color:var(--xto-color-primary, #4F46E5);font-weight:500}.x-api-doc__params-table .param-type{color:var(--xto-color-text-regular, #4B5563)}.x-api-doc__params-table .required-tag{color:var(--xto-color-danger, #EF4444);font-size:12px}.x-api-doc__params-table .optional-tag{color:var(--xto-color-text-secondary, #6B7280);font-size:12px}.x-api-doc__params-table .param-desc{color:var(--xto-color-text-regular, #4B5563)}.x-api-doc__code-block{background:var(--xto-color-fill-dark, #1e1e1e);border-radius:6px;overflow:hidden}.x-api-doc__code-block pre{padding:12px;margin:0;overflow-x:auto}.x-api-doc__code-block code{font-family:Monaco,Menlo,monospace;font-size:13px;color:#d4d4d4;line-height:1.5}.x-api-doc__empty{display:flex;align-items:center;justify-content:center;height:200px;color:var(--xto-color-text-placeholder, #9CA3AF)}.x-var-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--xto-fill-color-light, #F9FAFB);border-radius:var(--xto-border-radius-base, 6px);font-size:13px;color:var(--xto-color-text-regular, #4B5563);cursor:default;transition:all var(--xto-transition-duration-fast, .15s)}.x-var-tag.is-disabled{opacity:.5}.x-var-tag.is-copyable{cursor:pointer}.x-var-tag.is-copyable:hover{background:var(--xto-fill-color, #F3F4F6)}.x-var-tag--small{font-size:12px;padding:1px 6px}.x-var-tag--default{font-size:13px;padding:2px 8px}.x-var-tag--large{font-size:14px;padding:4px 12px}.x-var-tag--string{border-left:2px solid var(--xto-color-primary, #4F46E5)}.x-var-tag--number{border-left:2px solid var(--xto-color-success, #10B981)}.x-var-tag--boolean{border-left:2px solid var(--xto-color-warning, #F59E0B)}.x-var-tag--object,.x-var-tag--array{border-left:2px solid var(--xto-color-info, #6B7280)}.x-var-tag--file{border-left:2px solid var(--xto-color-danger, #EF4444)}.x-var-tag__icon{font-size:12px}.x-var-tag__name{color:var(--xto-color-primary, #4F46E5);font-weight:500}.x-var-tag__value{color:var(--xto-color-text-regular, #4B5563);max-width:100px;overflow:hidden;text-overflow:ellipsis}.x-var-tag__type{font-size:11px}.x-var-tag__copy-btn{padding:0 4px;background:transparent;border:none;font-size:12px;cursor:pointer;color:var(--xto-color-text-secondary, #6B7280)}.x-var-tag__copy-btn:hover{color:var(--xto-color-primary, #4F46E5)}.x-var-tag__copy-btn:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px;border-radius:var(--xto-border-radius-base, 6px)}
package/lib/index.cjs CHANGED
@@ -1,9 +1,9 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),N=require("@xto/core"),b=require("@xto/base"),$=require("@xto/form"),w=require("@xto/data"),T=["colspan"],D=["colspan"],L=["value"],P=e.defineComponent({name:"XProTable",__name:"index",props:{columns:{},data:{default:()=>[]},loading:{type:Boolean,default:!1},pagination:{type:Boolean,default:!0},pageSize:{default:10},currentPage:{default:1},total:{default:0},selection:{type:Boolean,default:!1},index:{type:Boolean,default:!1},indexLabel:{default:"#"}},emits:["update:data","update:currentPage","update:pageSize","search","refresh","reset"],setup(t,{emit:u}){const a=t,c=u,l=N.useNamespace("pro-table"),n=e.ref({});e.ref([]),e.computed({get:()=>a.data,set:s=>c("update:data",s)});const k=s=>{c("update:currentPage",s),c("search",{...n.value,page:s})},f=s=>{c("update:pageSize",s),c("search",{...n.value,pageSize:s})},v=()=>{c("search",n.value)},m=()=>{n.value={},c("reset"),c("search",{})},p=()=>{c("refresh")},o=e.computed(()=>a.columns.filter(s=>s.search));return(s,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(l).b())},[o.value.length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("search"))},[e.createVNode(e.unref(b.Space),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,r=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:r.prop},[r.searchType==="input"||!r.searchType?(e.openBlock(),e.createBlock(e.unref($.Input),{key:0,modelValue:n.value[r.prop],"onUpdate:modelValue":C=>n.value[r.prop]=C,placeholder:`请输入${r.label}`,clearable:"",onKeyup:e.withKeys(v,["enter"])},null,8,["modelValue","onUpdate:modelValue","placeholder"])):e.createCommentVNode("",!0)],64))),128)),e.createVNode(e.unref(b.Button),{type:"primary",onClick:v},{default:e.withCtx(()=>[...i[0]||(i[0]=[e.createTextVNode("搜索",-1)])]),_:1}),e.createVNode(e.unref(b.Button),{onClick:m},{default:e.withCtx(()=>[...i[1]||(i[1]=[e.createTextVNode("重置",-1)])]),_:1}),e.createVNode(e.unref(b.Button),{onClick:p},{default:e.withCtx(()=>[...i[2]||(i[2]=[e.createTextVNode("刷新",-1)])]),_:1})]),_:1})],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("toolbar"))},[e.createVNode(e.unref(b.Space),null,{default:e.withCtx(()=>[e.renderSlot(s.$slots,"toolbar")]),_:3})],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("table-wrapper"))},[e.createElementVNode("table",{class:e.normalizeClass(e.unref(l).e("table"))},[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[t.selection?(e.openBlock(),e.createElementBlock("th",{key:0,class:e.normalizeClass(e.unref(l).e("selection"))},[...i[3]||(i[3]=[e.createElementVNode("input",{type:"checkbox"},null,-1)])],2)):e.createCommentVNode("",!0),t.index?(e.openBlock(),e.createElementBlock("th",{key:1,class:e.normalizeClass(e.unref(l).e("index"))},e.toDisplayString(t.indexLabel),3)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,r=>(e.openBlock(),e.createElementBlock("th",{key:r.prop,class:e.normalizeClass(e.unref(l).e("column")),style:e.normalizeStyle({width:r.width,minWidth:r.minWidth,textAlign:r.align||"left"})},e.toDisplayString(r.label),7))),128))])]),e.createElementVNode("tbody",null,[t.loading?(e.openBlock(),e.createElementBlock("tr",{key:0,class:e.normalizeClass(e.unref(l).e("loading-row"))},[e.createElementVNode("td",{colspan:t.columns.length+(t.selection?1:0)+(t.index?1:0)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("loading"))}," 加载中... ",2)],8,T)],2)):t.data.length===0?(e.openBlock(),e.createElementBlock("tr",{key:1,class:e.normalizeClass(e.unref(l).e("empty-row"))},[e.createElementVNode("td",{colspan:t.columns.length+(t.selection?1:0)+(t.index?1:0)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("empty"))}," 暂无数据 ",2)],8,D)],2)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(t.data,(r,C)=>(e.openBlock(),e.createElementBlock("tr",{key:C,class:e.normalizeClass(e.unref(l).e("row"))},[t.selection?(e.openBlock(),e.createElementBlock("td",{key:0,class:e.normalizeClass(e.unref(l).e("selection"))},[e.createElementVNode("input",{type:"checkbox",value:r},null,8,L)],2)):e.createCommentVNode("",!0),t.index?(e.openBlock(),e.createElementBlock("td",{key:1,class:e.normalizeClass(e.unref(l).e("index"))},e.toDisplayString((t.currentPage-1)*t.pageSize+C+1),3)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,y=>{var g;return e.openBlock(),e.createElementBlock("td",{key:y.prop,class:e.normalizeClass(e.unref(l).e("cell")),style:e.normalizeStyle({textAlign:y.align||"left"})},[e.renderSlot(s.$slots,(g=y.slots)==null?void 0:g.default,{row:r,column:y},()=>[e.createTextVNode(e.toDisplayString(y.formatter?y.formatter(r,y,r[y.prop]):r[y.prop]),1)])],6)}),128))],2))),128))])],2)],2),t.pagination?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(l).e("pagination"))},[e.createVNode(e.unref(w.Pagination),{total:t.total,"page-size":t.pageSize,"current-page":t.currentPage,layout:"total, sizes, prev, pager, next, jumper",onCurrentChange:k,onSizeChange:f},null,8,["total","page-size","current-page"])],2)):e.createCommentVNode("",!0)],2))}}),H=["onUpdate:modelValue"],I=["value"],q=e.defineComponent({name:"XSearchForm",__name:"index",props:{columns:{default:()=>[]},model:{default:()=>({})},labelWidth:{default:"100px"},labelPosition:{default:"right"}},emits:["search","reset"],setup(t,{emit:u}){const a=t,c=u,l=N.useNamespace("search-form"),n=e.reactive({});a.columns.forEach(m=>{m.defaultValue!==void 0?n[m.prop]=m.defaultValue:a.model[m.prop]!==void 0&&(n[m.prop]=a.model[m.prop])});const k=()=>{c("search",{...n})},f=()=>{a.columns.forEach(m=>{n[m.prop]=m.defaultValue}),c("reset")},v=e.computed(()=>({width:typeof a.labelWidth=="number"?`${a.labelWidth}px`:a.labelWidth}));return(m,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(l).b())},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("items"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,o=>(e.openBlock(),e.createElementBlock("div",{key:o.prop,class:e.normalizeClass(e.unref(l).e("item"))},[e.createElementVNode("label",{class:e.normalizeClass(e.unref(l).e("label")),style:e.normalizeStyle(v.value)},e.toDisplayString(o.label),7),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("content"))},[o.type==="input"||!o.type?(e.openBlock(),e.createBlock(e.unref($.Input),{key:0,modelValue:n[o.prop],"onUpdate:modelValue":s=>n[o.prop]=s,placeholder:o.placeholder||`请输入${o.label}`,clearable:""},null,8,["modelValue","onUpdate:modelValue","placeholder"])):o.type==="select"?e.withDirectives((e.openBlock(),e.createElementBlock("select",{key:1,"onUpdate:modelValue":s=>n[o.prop]=s,class:e.normalizeClass(e.unref(l).e("select"))},[p[0]||(p[0]=e.createElementVNode("option",{value:""},"请选择",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.options,s=>(e.openBlock(),e.createElementBlock("option",{key:s.value,value:s.value},e.toDisplayString(s.label),9,I))),128))],10,H)),[[e.vModelSelect,n[o.prop]]]):o.type==="date"?(e.openBlock(),e.createBlock(e.unref($.Input),{key:2,modelValue:n[o.prop],"onUpdate:modelValue":s=>n[o.prop]=s,type:"date",placeholder:o.placeholder||`请选择${o.label}`},null,8,["modelValue","onUpdate:modelValue","placeholder"])):(e.openBlock(),e.createBlock(e.unref($.Input),{key:3,modelValue:n[o.prop],"onUpdate:modelValue":s=>n[o.prop]=s,placeholder:o.placeholder||`请输入${o.label}`},null,8,["modelValue","onUpdate:modelValue","placeholder"]))],2)],2))),128))],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("actions"))},[e.createVNode(e.unref(b.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(b.Button),{type:"primary",onClick:k},{default:e.withCtx(()=>[...p[1]||(p[1]=[e.createTextVNode("搜索",-1)])]),_:1}),e.createVNode(e.unref(b.Button),{onClick:f},{default:e.withCtx(()=>[...p[2]||(p[2]=[e.createTextVNode("重置",-1)])]),_:1})]),_:1})],2)],2))}}),U=e.defineComponent({name:"XStatistic",__name:"index",props:{title:{default:""},value:{default:0},suffix:{default:""},prefix:{default:""},precision:{default:0},trend:{default:""},trendValue:{default:0},color:{},titleColor:{},valueColor:{}},setup(t){const u=t,a=N.useNamespace("statistic"),c=e.computed(()=>typeof u.value=="number"?u.value.toFixed(u.precision):u.value),l=e.computed(()=>[a.e("trend"),a.em("trend",u.trend)]),n=e.computed(()=>u.trend==="up"?"arrow-up":u.trend==="down"?"arrow-down":"");return(k,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(a).b())},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(a).e("title")),style:e.normalizeStyle({color:t.titleColor})},e.toDisplayString(t.title),7),e.createElementVNode("div",{class:e.normalizeClass(e.unref(a).e("content"))},[t.prefix?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(a).e("prefix"))},e.toDisplayString(t.prefix),3)):e.createCommentVNode("",!0),e.createElementVNode("span",{class:e.normalizeClass(e.unref(a).e("value")),style:e.normalizeStyle({color:t.valueColor})},e.toDisplayString(c.value),7),t.suffix?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(a).e("suffix"))},e.toDisplayString(t.suffix),3)):e.createCommentVNode("",!0)],2),t.trend?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(l.value)},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(a).e("trend-icon"))},[n.value?(e.openBlock(),e.createBlock(e.unref(b.Icon),{key:0,name:n.value,size:14},null,8,["name"])):e.createCommentVNode("",!0)],2),e.createElementVNode("span",{class:e.normalizeClass(e.unref(a).e("trend-value"))},e.toDisplayString(t.trendValue),3)],2)):e.createCommentVNode("",!0)],2))}}),F=e.defineComponent({name:"XExport",__name:"index",props:{data:{default:()=>[]},filename:{default:"export"},sheetName:{default:"Sheet1"},columns:{default:()=>[]}},setup(t){const u=t,a=e.ref(!1),c=()=>{if(u.data.length!==0){a.value=!0;try{const l=u.columns.length>0?u.columns.map(p=>p.title):Object.keys(u.data[0]),n=u.columns.length>0?u.columns.map(p=>p.key):Object.keys(u.data[0]),k=[l.join(","),...u.data.map(p=>n.map(o=>{const s=p[o];return typeof s=="string"&&(s.includes(",")||s.includes('"'))?`"${s.replace(/"/g,'""')}"`:s}).join(","))].join(`
2
- `),f=new Blob([k],{type:"text/csv;charset=utf-8;"}),v=URL.createObjectURL(f),m=document.createElement("a");m.href=v,m.download=`${u.filename}.csv`,document.body.appendChild(m),m.click(),document.body.removeChild(m),URL.revokeObjectURL(v)}catch(l){console.error("Export failed:",l)}finally{a.value=!1}}};return(l,n)=>(e.openBlock(),e.createBlock(e.unref(b.Button),{loading:a.value,onClick:c},{default:e.withCtx(()=>[...n[0]||(n[0]=[e.createTextVNode("导出",-1)])]),icon:e.withCtx(()=>[...n[1]||(n[1]=[e.createTextVNode("📥",-1)])]),_:1},8,["loading"]))}});function x(t){const u={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};return t.replace(/[&<>"']/g,a=>u[a])}function z(t){return t=t.replace(/`([^`]+)`/g,'<code class="md-code">$1</code>'),t=t.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),t=t.replace(/__([^_]+)__/g,"<strong>$1</strong>"),t=t.replace(/\*([^*]+)\*/g,"<em>$1</em>"),t=t.replace(/_([^_]+)_/g,"<em>$1</em>"),t=t.replace(/~~([^~]+)~~/g,"<del>$1</del>"),t=t.replace(/\[([^\]]+)\]\(([^)]+)\)/g,'<a href="$2" target="_blank" class="md-link">$1</a>'),t=t.replace(/!\[([^\]]*)\]\(([^)]+)\)/g,'<img src="$2" alt="$1" class="md-image" />'),t}function M(t,u={}){const a=t.split(`
3
- `),c=[];let l=!1,n="",k=[],f=!1,v="",m=!1,p=!1;const o=()=>{f&&(c.push(`</${v}>`),f=!1,v="")},s=()=>{m&&(c.push("</blockquote>"),m=!1)},i=()=>{p&&(c.push("</table>"),p=!1)};for(let r=0;r<a.length;r++){let C=a[r];if(C.startsWith("```")){l?(c.push(`<pre class="md-code-block"><code class="language-${n}">${x(k.join(`
4
- `))}</code></pre>`),l=!1,n="",k=[]):(o(),s(),i(),l=!0,n=C.slice(3).trim(),k=[]);continue}if(l){k.push(C);continue}if(C.trim().startsWith("|")&&C.trim().endsWith("|")){p||(o(),s(),p=!0,c.push('<table class="md-table">'));const d=C.trim().slice(1,-1).split("|").map(V=>V.trim());if(d.every(V=>/^[-:]+$/.test(V)))continue;if((r===0||r>0&&!a[r-1].trim().startsWith("|"))&&r<a.length-1){const V=a[r+1];if(V&&V.trim().startsWith("|")&&V.trim().endsWith("|")&&V.trim().slice(1,-1).split("|").map(B=>B.trim()).every(B=>/^[-:]+$/.test(B))){c.push("<thead><tr>"),d.forEach(B=>{c.push(`<th>${z(B)}</th>`)}),c.push("</tr></thead><tbody>");continue}}c.push("<tr>"),d.forEach(V=>{c.push(`<td>${z(V)}</td>`)}),c.push("</tr>");continue}else p&&(c.push("</tbody>"),i());if(!C.trim()){o(),s(),i();continue}if(C.startsWith(">")){o(),m||(c.push('<blockquote class="md-blockquote">'),m=!0);const d=C.replace(/^>\s?/,"");c.push(`<p>${z(d)}</p>`);continue}else m&&s();const y=C.match(/^(#{1,6})\s+(.+)$/);if(y){o();const d=y[1].length,E=z(y[2]);c.push(`<h${d} class="md-heading md-h${d}">${E}</h${d}>`);continue}if(/^[-*_]{3,}$/.test(C.trim())){o(),c.push('<hr class="md-hr" />');continue}const g=C.match(/^[-*+]\s+(.+)$/);if(g){(!f||v!=="ul")&&(o(),c.push('<ul class="md-list">'),f=!0,v="ul"),c.push(`<li>${z(g[1])}</li>`);continue}const h=C.match(/^(\d+)\.\s+(.+)$/);if(h){(!f||v!=="ol")&&(o(),c.push('<ol class="md-list">'),f=!0,v="ol"),c.push(`<li>${z(h[2])}</li>`);continue}o(),u.breaks!==!1?c.push(`<p class="md-paragraph">${z(C)}</p>`):c.push(`<p class="md-paragraph">${z(C)}</p>`)}return o(),s(),i(),l&&c.push(`<pre class="md-code-block"><code>${x(k.join(`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),N=require("@xto/core"),b=require("@xto/base"),$=require("@xto/form"),w=require("@xto/data"),T=["colspan"],D=["colspan"],F=["value"],L=e.defineComponent({name:"XProTable",__name:"index",props:{columns:{},data:{default:()=>[]},loading:{type:Boolean,default:!1},pagination:{type:Boolean,default:!0},pageSize:{default:10},currentPage:{default:1},total:{default:0},selection:{type:Boolean,default:!1},index:{type:Boolean,default:!1},indexLabel:{default:"#"}},emits:["update:data","update:currentPage","update:pageSize","search","refresh","reset"],setup(t,{emit:u}){const a=t,c=u,l=N.useNamespace("pro-table"),n=e.ref({});e.ref([]),e.computed({get:()=>a.data,set:s=>c("update:data",s)});const k=s=>{c("update:currentPage",s),c("search",{...n.value,page:s})},f=s=>{c("update:pageSize",s),c("search",{...n.value,pageSize:s})},E=()=>{c("search",n.value)},m=()=>{n.value={},c("reset"),c("search",{})},p=()=>{c("refresh")},o=e.computed(()=>a.columns.filter(s=>s.search));return(s,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(l).b())},[o.value.length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("search"))},[e.createVNode(e.unref(b.Space),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,r=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:r.prop},[r.searchType==="input"||!r.searchType?(e.openBlock(),e.createBlock(e.unref($.Input),{key:0,modelValue:n.value[r.prop],"onUpdate:modelValue":v=>n.value[r.prop]=v,placeholder:`请输入${r.label}`,clearable:"",onKeyup:e.withKeys(E,["enter"])},null,8,["modelValue","onUpdate:modelValue","placeholder"])):e.createCommentVNode("",!0)],64))),128)),e.createVNode(e.unref(b.Button),{type:"primary",onClick:E},{default:e.withCtx(()=>[...i[0]||(i[0]=[e.createTextVNode("搜索",-1)])]),_:1}),e.createVNode(e.unref(b.Button),{onClick:m},{default:e.withCtx(()=>[...i[1]||(i[1]=[e.createTextVNode("重置",-1)])]),_:1}),e.createVNode(e.unref(b.Button),{onClick:p},{default:e.withCtx(()=>[...i[2]||(i[2]=[e.createTextVNode("刷新",-1)])]),_:1})]),_:1})],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("toolbar"))},[e.createVNode(e.unref(b.Space),null,{default:e.withCtx(()=>[e.renderSlot(s.$slots,"toolbar")]),_:3})],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("table-wrapper"))},[e.createElementVNode("table",{class:e.normalizeClass(e.unref(l).e("table"))},[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[t.selection?(e.openBlock(),e.createElementBlock("th",{key:0,class:e.normalizeClass(e.unref(l).e("selection"))},[...i[3]||(i[3]=[e.createElementVNode("input",{type:"checkbox"},null,-1)])],2)):e.createCommentVNode("",!0),t.index?(e.openBlock(),e.createElementBlock("th",{key:1,class:e.normalizeClass(e.unref(l).e("index"))},e.toDisplayString(t.indexLabel),3)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,r=>(e.openBlock(),e.createElementBlock("th",{key:r.prop,class:e.normalizeClass(e.unref(l).e("column")),style:e.normalizeStyle({width:r.width,minWidth:r.minWidth,textAlign:r.align||"left"})},e.toDisplayString(r.label),7))),128))])]),e.createElementVNode("tbody",null,[t.loading?(e.openBlock(),e.createElementBlock("tr",{key:0,class:e.normalizeClass(e.unref(l).e("loading-row"))},[e.createElementVNode("td",{colspan:t.columns.length+(t.selection?1:0)+(t.index?1:0)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("loading"))}," 加载中... ",2)],8,T)],2)):t.data.length===0?(e.openBlock(),e.createElementBlock("tr",{key:1,class:e.normalizeClass(e.unref(l).e("empty-row"))},[e.createElementVNode("td",{colspan:t.columns.length+(t.selection?1:0)+(t.index?1:0)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("empty"))}," 暂无数据 ",2)],8,D)],2)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(t.data,(r,v)=>(e.openBlock(),e.createElementBlock("tr",{key:v,class:e.normalizeClass(e.unref(l).e("row"))},[t.selection?(e.openBlock(),e.createElementBlock("td",{key:0,class:e.normalizeClass(e.unref(l).e("selection"))},[e.createElementVNode("input",{type:"checkbox",value:r},null,8,F)],2)):e.createCommentVNode("",!0),t.index?(e.openBlock(),e.createElementBlock("td",{key:1,class:e.normalizeClass(e.unref(l).e("index"))},e.toDisplayString((t.currentPage-1)*t.pageSize+v+1),3)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,y=>{var g;return e.openBlock(),e.createElementBlock("td",{key:y.prop,class:e.normalizeClass(e.unref(l).e("cell")),style:e.normalizeStyle({textAlign:y.align||"left"})},[e.renderSlot(s.$slots,(g=y.slots)==null?void 0:g.default,{row:r,column:y},()=>[e.createTextVNode(e.toDisplayString(y.formatter?y.formatter(r,y,r[y.prop]):r[y.prop]),1)])],6)}),128))],2))),128))])],2)],2),t.pagination?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(l).e("pagination"))},[e.createVNode(e.unref(w.Pagination),{total:t.total,"page-size":t.pageSize,"current-page":t.currentPage,layout:"total, sizes, prev, pager, next, jumper",onCurrentChange:k,onSizeChange:f},null,8,["total","page-size","current-page"])],2)):e.createCommentVNode("",!0)],2))}}),P=["onUpdate:modelValue"],H=["value"],I=e.defineComponent({name:"XSearchForm",__name:"index",props:{columns:{default:()=>[]},model:{default:()=>({})},labelWidth:{default:"100px"},labelPosition:{default:"right"}},emits:["search","reset"],setup(t,{emit:u}){const a=t,c=u,l=N.useNamespace("search-form"),n=e.reactive({});a.columns.forEach(m=>{m.defaultValue!==void 0?n[m.prop]=m.defaultValue:a.model[m.prop]!==void 0&&(n[m.prop]=a.model[m.prop])});const k=()=>{c("search",{...n})},f=()=>{a.columns.forEach(m=>{n[m.prop]=m.defaultValue}),c("reset")},E=e.computed(()=>({width:typeof a.labelWidth=="number"?`${a.labelWidth}px`:a.labelWidth}));return(m,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(l).b())},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("items"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.columns,o=>(e.openBlock(),e.createElementBlock("div",{key:o.prop,class:e.normalizeClass(e.unref(l).e("item"))},[e.createElementVNode("label",{class:e.normalizeClass(e.unref(l).e("label")),style:e.normalizeStyle(E.value)},e.toDisplayString(o.label),7),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("content"))},[o.type==="input"||!o.type?(e.openBlock(),e.createBlock(e.unref($.Input),{key:0,modelValue:n[o.prop],"onUpdate:modelValue":s=>n[o.prop]=s,placeholder:o.placeholder||`请输入${o.label}`,clearable:""},null,8,["modelValue","onUpdate:modelValue","placeholder"])):o.type==="select"?e.withDirectives((e.openBlock(),e.createElementBlock("select",{key:1,"onUpdate:modelValue":s=>n[o.prop]=s,class:e.normalizeClass(e.unref(l).e("select"))},[p[0]||(p[0]=e.createElementVNode("option",{value:""},"请选择",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.options,s=>(e.openBlock(),e.createElementBlock("option",{key:s.value,value:s.value},e.toDisplayString(s.label),9,H))),128))],10,P)),[[e.vModelSelect,n[o.prop]]]):o.type==="date"?(e.openBlock(),e.createBlock(e.unref($.Input),{key:2,modelValue:n[o.prop],"onUpdate:modelValue":s=>n[o.prop]=s,type:"date",placeholder:o.placeholder||`请选择${o.label}`},null,8,["modelValue","onUpdate:modelValue","placeholder"])):(e.openBlock(),e.createBlock(e.unref($.Input),{key:3,modelValue:n[o.prop],"onUpdate:modelValue":s=>n[o.prop]=s,placeholder:o.placeholder||`请输入${o.label}`},null,8,["modelValue","onUpdate:modelValue","placeholder"]))],2)],2))),128))],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("actions"))},[e.createVNode(e.unref(b.Space),null,{default:e.withCtx(()=>[e.createVNode(e.unref(b.Button),{type:"primary",onClick:k},{default:e.withCtx(()=>[...p[1]||(p[1]=[e.createTextVNode("搜索",-1)])]),_:1}),e.createVNode(e.unref(b.Button),{onClick:f},{default:e.withCtx(()=>[...p[2]||(p[2]=[e.createTextVNode("重置",-1)])]),_:1})]),_:1})],2)],2))}}),q=e.defineComponent({name:"XStatistic",__name:"index",props:{title:{default:""},value:{default:0},suffix:{default:""},prefix:{default:""},precision:{default:0},trend:{default:""},trendValue:{default:0},color:{},titleColor:{},valueColor:{}},setup(t){const u=t,a=N.useNamespace("statistic"),c=e.computed(()=>typeof u.value=="number"?u.value.toFixed(u.precision):u.value),l=e.computed(()=>[a.e("trend"),a.em("trend",u.trend)]),n=e.computed(()=>u.trend==="up"?"arrow-up":u.trend==="down"?"arrow-down":"");return(k,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(a).b())},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(a).e("title")),style:e.normalizeStyle({color:t.titleColor})},e.toDisplayString(t.title),7),e.createElementVNode("div",{class:e.normalizeClass(e.unref(a).e("content"))},[t.prefix?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(a).e("prefix"))},e.toDisplayString(t.prefix),3)):e.createCommentVNode("",!0),e.createElementVNode("span",{class:e.normalizeClass(e.unref(a).e("value")),style:e.normalizeStyle({color:t.valueColor})},e.toDisplayString(c.value),7),t.suffix?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(a).e("suffix"))},e.toDisplayString(t.suffix),3)):e.createCommentVNode("",!0)],2),t.trend?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(l.value)},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(a).e("trend-icon"))},[n.value?(e.openBlock(),e.createBlock(e.unref(b.Icon),{key:0,name:n.value,size:14},null,8,["name"])):e.createCommentVNode("",!0)],2),e.createElementVNode("span",{class:e.normalizeClass(e.unref(a).e("trend-value"))},e.toDisplayString(t.trendValue),3)],2)):e.createCommentVNode("",!0)],2))}}),U=e.defineComponent({name:"XExport",__name:"index",props:{data:{default:()=>[]},filename:{default:"export"},sheetName:{default:"Sheet1"},columns:{default:()=>[]}},setup(t){const u=t,a=e.ref(!1),c=()=>{if(u.data.length!==0){a.value=!0;try{const l=u.columns.length>0?u.columns.map(p=>p.title):Object.keys(u.data[0]),n=u.columns.length>0?u.columns.map(p=>p.key):Object.keys(u.data[0]),k=[l.join(","),...u.data.map(p=>n.map(o=>{const s=p[o];return typeof s=="string"&&(s.includes(",")||s.includes('"'))?`"${s.replace(/"/g,'""')}"`:s}).join(","))].join(`
2
+ `),f=new Blob([k],{type:"text/csv;charset=utf-8;"}),E=URL.createObjectURL(f),m=document.createElement("a");m.href=E,m.download=`${u.filename}.csv`,document.body.appendChild(m),m.click(),document.body.removeChild(m),URL.revokeObjectURL(E)}catch(l){console.error("Export failed:",l)}finally{a.value=!1}}};return(l,n)=>(e.openBlock(),e.createBlock(e.unref(b.Button),{loading:a.value,onClick:c},{default:e.withCtx(()=>[...n[0]||(n[0]=[e.createTextVNode("导出",-1)])]),icon:e.withCtx(()=>[...n[1]||(n[1]=[e.createTextVNode("📥",-1)])]),_:1},8,["loading"]))}});function x(t){const u={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};return t.replace(/[&<>"']/g,a=>u[a])}function z(t){return t=t.replace(/`([^`]+)`/g,'<code class="md-code">$1</code>'),t=t.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),t=t.replace(/__([^_]+)__/g,"<strong>$1</strong>"),t=t.replace(/\*([^*]+)\*/g,"<em>$1</em>"),t=t.replace(/_([^_]+)_/g,"<em>$1</em>"),t=t.replace(/~~([^~]+)~~/g,"<del>$1</del>"),t=t.replace(/\[([^\]]+)\]\(([^)]+)\)/g,'<a href="$2" target="_blank" class="md-link">$1</a>'),t=t.replace(/!\[([^\]]*)\]\(([^)]+)\)/g,'<img src="$2" alt="$1" class="md-image" />'),t}function M(t,u={}){const a=t.split(`
3
+ `),c=[];let l=!1,n="",k=[],f=!1,E="",m=!1,p=!1;const o=()=>{f&&(c.push(`</${E}>`),f=!1,E="")},s=()=>{m&&(c.push("</blockquote>"),m=!1)},i=()=>{p&&(c.push("</table>"),p=!1)};for(let r=0;r<a.length;r++){let v=a[r];if(v.startsWith("```")){l?(c.push(`<pre class="md-code-block"><code class="language-${n}">${x(k.join(`
4
+ `))}</code></pre>`),l=!1,n="",k=[]):(o(),s(),i(),l=!0,n=v.slice(3).trim(),k=[]);continue}if(l){k.push(v);continue}if(v.trim().startsWith("|")&&v.trim().endsWith("|")){p||(o(),s(),p=!0,c.push('<table class="md-table">'));const d=v.trim().slice(1,-1).split("|").map(V=>V.trim());if(d.every(V=>/^[-:]+$/.test(V)))continue;if((r===0||r>0&&!a[r-1].trim().startsWith("|"))&&r<a.length-1){const V=a[r+1];if(V&&V.trim().startsWith("|")&&V.trim().endsWith("|")&&V.trim().slice(1,-1).split("|").map(B=>B.trim()).every(B=>/^[-:]+$/.test(B))){c.push("<thead><tr>"),d.forEach(B=>{c.push(`<th>${z(B)}</th>`)}),c.push("</tr></thead><tbody>");continue}}c.push("<tr>"),d.forEach(V=>{c.push(`<td>${z(V)}</td>`)}),c.push("</tr>");continue}else p&&(c.push("</tbody>"),i());if(!v.trim()){o(),s(),i();continue}if(v.startsWith(">")){o(),m||(c.push('<blockquote class="md-blockquote">'),m=!0);const d=v.replace(/^>\s?/,"");c.push(`<p>${z(d)}</p>`);continue}else m&&s();const y=v.match(/^(#{1,6})\s+(.+)$/);if(y){o();const d=y[1].length,C=z(y[2]);c.push(`<h${d} class="md-heading md-h${d}">${C}</h${d}>`);continue}if(/^[-*_]{3,}$/.test(v.trim())){o(),c.push('<hr class="md-hr" />');continue}const g=v.match(/^[-*+]\s+(.+)$/);if(g){(!f||E!=="ul")&&(o(),c.push('<ul class="md-list">'),f=!0,E="ul"),c.push(`<li>${z(g[1])}</li>`);continue}const h=v.match(/^(\d+)\.\s+(.+)$/);if(h){(!f||E!=="ol")&&(o(),c.push('<ol class="md-list">'),f=!0,E="ol"),c.push(`<li>${z(h[2])}</li>`);continue}o(),u.breaks!==!1?c.push(`<p class="md-paragraph">${z(v)}</p>`):c.push(`<p class="md-paragraph">${z(v)}</p>`)}return o(),s(),i(),l&&c.push(`<pre class="md-code-block"><code>${x(k.join(`
5
5
  `))}</code></pre>`),c.join(`
6
6
  `)}function j(t){const u=[];return t.split(`
7
- `).forEach((c,l)=>{const n=c.match(/^(#{1,6})\s+(.+)$/);if(n){const k=n[1].length,f=n[2].trim(),v=`heading-${l}`;u.push({level:k,text:f,id:v})}}),u}const A=["title","disabled","onClick"],R={key:1,class:"toolbar-label"},W=["value","placeholder","disabled"],X=["innerHTML"],K=e.defineComponent({name:"XMarkdownEditor",__name:"index",props:{modelValue:{default:""},placeholder:{default:"请输入 Markdown 内容..."},height:{default:400},mode:{default:"split"},showToolbar:{type:Boolean,default:!0},showToc:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","change"],setup(t,{emit:u}){const a=t,c=u,l=N.useNamespace("markdown-editor"),n=e.ref(a.modelValue),k=e.ref(),f=e.ref(a.mode),v=e.computed(()=>M(n.value)),m=e.computed(()=>j(n.value)),p=e.computed(()=>({height:typeof a.height=="number"?`${a.height}px`:a.height}));e.watch(()=>a.modelValue,g=>{n.value=g});const o=g=>{const h=g.target.value;n.value=h,c("update:modelValue",h),c("change",h)},s=g=>{f.value=g},i=(g,h="")=>{if(!k.value||a.disabled)return;const d=k.value,E=d.selectionStart,V=d.selectionEnd,S=n.value.substring(E,V),B=n.value.substring(0,E)+g+S+h+n.value.substring(V);n.value=B,c("update:modelValue",B),c("change",B),e.nextTick(()=>{d.focus(),d.setSelectionRange(E+g.length,E+g.length+S.length)})},r=[{icon:"heading",label:"H1",title:"标题1",action:()=>i("# ","")},{icon:"heading",label:"H2",title:"标题2",action:()=>i("## ","")},{icon:"heading",label:"H3",title:"标题3",action:()=>i("### ","")},{type:"divider"},{icon:"bold",title:"粗体",action:()=>i("**","**")},{icon:"italic",title:"斜体",action:()=>i("*","*")},{icon:"strikethrough",title:"删除线",action:()=>i("~~","~~")},{type:"divider"},{icon:"list-bullet",title:"无序列表",action:()=>i("- ","")},{icon:"list-number",title:"有序列表",action:()=>i("1. ","")},{type:"divider"},{icon:"link-text",title:"链接",action:()=>i("[","](url)")},{icon:"image-insert",title:"图片",action:()=>i("![alt](",")")},{icon:"code-inline",title:"代码",action:()=>i("`","`")},{type:"divider"},{icon:"divider-h",title:"分割线",action:()=>i(`
7
+ `).forEach((c,l)=>{const n=c.match(/^(#{1,6})\s+(.+)$/);if(n){const k=n[1].length,f=n[2].trim(),E=`heading-${l}`;u.push({level:k,text:f,id:E})}}),u}const A=["title","disabled","onClick"],R={key:1,class:"toolbar-label"},W=["value","placeholder","disabled"],X=["innerHTML"],K=e.defineComponent({name:"XMarkdownEditor",__name:"index",props:{modelValue:{default:""},placeholder:{default:"请输入 Markdown 内容..."},height:{default:400},mode:{default:"split"},showToolbar:{type:Boolean,default:!0},showToc:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","change"],setup(t,{emit:u}){const a=t,c=u,l=N.useNamespace("markdown-editor"),n=e.ref(a.modelValue),k=e.ref(),f=e.ref(a.mode),E=e.computed(()=>M(n.value)),m=e.computed(()=>j(n.value)),p=e.computed(()=>({height:typeof a.height=="number"?`${a.height}px`:a.height}));e.watch(()=>a.modelValue,g=>{n.value=g});const o=g=>{const h=g.target.value;n.value=h,c("update:modelValue",h),c("change",h)},s=g=>{f.value=g},i=(g,h="")=>{if(!k.value||a.disabled)return;const d=k.value,C=d.selectionStart,V=d.selectionEnd,S=n.value.substring(C,V),B=n.value.substring(0,C)+g+S+h+n.value.substring(V);n.value=B,c("update:modelValue",B),c("change",B),e.nextTick(()=>{d.focus(),d.setSelectionRange(C+g.length,C+g.length+S.length)})},r=[{icon:"heading",label:"H1",title:"标题1",action:()=>i("# ","")},{icon:"heading",label:"H2",title:"标题2",action:()=>i("## ","")},{icon:"heading",label:"H3",title:"标题3",action:()=>i("### ","")},{type:"divider"},{icon:"bold",title:"粗体",action:()=>i("**","**")},{icon:"italic",title:"斜体",action:()=>i("*","*")},{icon:"strikethrough",title:"删除线",action:()=>i("~~","~~")},{type:"divider"},{icon:"list-bullet",title:"无序列表",action:()=>i("- ","")},{icon:"list-number",title:"有序列表",action:()=>i("1. ","")},{type:"divider"},{icon:"link-text",title:"链接",action:()=>i("[","](url)")},{icon:"image-insert",title:"图片",action:()=>i("![alt](",")")},{icon:"code-inline",title:"代码",action:()=>i("`","`")},{type:"divider"},{icon:"divider-h",title:"分割线",action:()=>i(`
8
8
  ---
9
- `,"")},{icon:"quote",title:"引用",action:()=>i("> ","")},{icon:"code-block",title:"代码块",action:()=>i("\n```\n","\n```\n")}],C=e.computed(()=>[l.b(),l.is("disabled",a.disabled),l.is(`mode-${f.value}`)]),y=g=>{if(f.value!=="split")return;const h=document.querySelector(".x-markdown-editor__preview");if(!h)return;const d=g.target,E=d.scrollTop/(d.scrollHeight-d.clientHeight);h.scrollTop=E*(h.scrollHeight-h.clientHeight)};return(g,h)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(C.value),style:e.normalizeStyle(p.value)},[t.showToolbar?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("toolbar"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("toolbar-left"))},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(r,(d,E)=>e.createElementVNode("button",{key:E,class:e.normalizeClass([e.unref(l).e("toolbar-btn"),{"is-divider":d.type==="divider"}]),title:d.title,disabled:t.disabled,onClick:d.action},[d.type?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.Icon),{key:0,name:d.icon,size:16},null,8,["name"])),d.label?(e.openBlock(),e.createElementBlock("span",R,e.toDisplayString(d.label),1)):e.createCommentVNode("",!0)],10,A)),64))],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("toolbar-right"))},[e.createElementVNode("button",{class:e.normalizeClass([e.unref(l).e("mode-btn"),{"is-active":f.value==="edit"}]),onClick:h[0]||(h[0]=d=>s("edit"))}," 编辑 ",2),e.createElementVNode("button",{class:e.normalizeClass([e.unref(l).e("mode-btn"),{"is-active":f.value==="split"}]),onClick:h[1]||(h[1]=d=>s("split"))}," 分屏 ",2),e.createElementVNode("button",{class:e.normalizeClass([e.unref(l).e("mode-btn"),{"is-active":f.value==="preview"}]),onClick:h[2]||(h[2]=d=>s("preview"))}," 预览 ",2)],2)],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("body"))},[t.showToc&&m.value.length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("toc"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("toc-title"))},"目录",2),e.createElementVNode("ul",{class:e.normalizeClass(e.unref(l).e("toc-list"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(d,E)=>(e.openBlock(),e.createElementBlock("li",{key:E,class:e.normalizeClass(e.unref(l).e("toc-item")),style:e.normalizeStyle({paddingLeft:(d.level-1)*12+"px"})},e.toDisplayString(d.text),7))),128))],2)],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("content"))},[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("editor-wrapper"))},[e.createElementVNode("textarea",{ref_key:"editorRef",ref:k,class:e.normalizeClass(e.unref(l).e("editor")),value:n.value,placeholder:t.placeholder,disabled:t.disabled,onInput:o,onScroll:y},null,42,W)],2),[[e.vShow,f.value!=="preview"]]),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("preview")),innerHTML:v.value},null,10,X),[[e.vShow,f.value!=="edit"]])],2)],2)],6))}}),O={class:"icon-text"},G={class:"status-label"},Y=e.defineComponent({name:"XAppCard",__name:"index",props:{id:{default:""},name:{default:""},description:{default:""},icon:{default:"📱"},iconBgColor:{default:"#409eff"},status:{default:"draft"},creator:{default:""},createTime:{default:""},category:{default:""},disabled:{type:Boolean,default:!1}},emits:["click","edit","delete","publish"],setup(t,{emit:u}){const a=t,c=u,l=N.useNamespace("app-card"),n=e.computed(()=>{const o={published:{label:"已发布",color:"#67c23a",dotColor:"#67c23a"},draft:{label:"草稿",color:"#909399",dotColor:"#909399"},archived:{label:"已归档",color:"#f56c6c",dotColor:"#f56c6c"}};return o[a.status]||o.draft}),k=e.computed(()=>[l.b(),l.m(a.status),l.is("disabled",a.disabled)]),f=()=>{a.disabled||c("click",a.id)},v=o=>{o.stopPropagation(),a.disabled||c("edit",a.id)},m=o=>{o.stopPropagation(),a.disabled||c("delete",a.id)},p=o=>{o.stopPropagation(),a.disabled||c("publish",a.id)};return(o,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(k.value),onClick:f},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("icon")),style:e.normalizeStyle({backgroundColor:t.iconBgColor})},[e.createElementVNode("span",O,e.toDisplayString(t.icon),1)],6),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("status"))},[e.createElementVNode("span",{class:"status-dot",style:e.normalizeStyle({backgroundColor:n.value.dotColor})},null,4),e.createElementVNode("span",G,e.toDisplayString(n.value.label),1)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("info"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("name"))},e.toDisplayString(t.name),3),t.description?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("description"))},e.toDisplayString(t.description),3)):e.createCommentVNode("",!0)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("meta"))},[t.creator?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(l).e("creator"))},"创建者: "+e.toDisplayString(t.creator),3)):e.createCommentVNode("",!0),t.createTime?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(l).e("time"))},e.toDisplayString(t.createTime),3)):e.createCommentVNode("",!0)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("actions"))},[e.createElementVNode("button",{class:"action-btn",title:"编辑",onClick:v}," ✏️ "),t.status==="draft"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"action-btn",title:"发布",onClick:p}," 🚀 ")):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"action-btn action-btn--danger",title:"删除",onClick:m}," 🗑️ ")],2)],2))}}),J=["disabled"],Q={class:"role-icon"},Z={class:"role-label"},_={key:0,class:"timestamp"},ee={key:0,class:"loading-indicator"},te={key:0,class:"text-content"},le={key:1,class:"code-block"},ae={class:"code-header"},ne={class:"language"},oe=["onClick"],se={class:"code-content"},ce=["placeholder","disabled","onKeydown"],re=["disabled"],ie=e.defineComponent({name:"XChat",__name:"index",props:{messages:{default:()=>[]},showInput:{type:Boolean,default:!0},placeholder:{default:"输入消息..."},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},maxHeight:{default:400},showClear:{type:Boolean,default:!0},showTimestamp:{type:Boolean,default:!0}},emits:["send","clear","copy"],setup(t,{emit:u}){const a=t,c=u,l=N.useNamespace("chat"),n=e.ref(""),k=e.ref(null),f=e.computed(()=>[l.b(),l.is("disabled",a.disabled)]),v=e.computed(()=>({maxHeight:typeof a.maxHeight=="number"?`${a.maxHeight}px`:a.maxHeight})),m=()=>{n.value.trim()&&!a.disabled&&!a.loading&&(c("send",n.value.trim()),n.value="")},p=()=>{c("clear")},o=async y=>{try{await navigator.clipboard.writeText(y),c("copy",y)}catch(g){console.error("复制失败:",g)}},s=async()=>{await e.nextTick(),k.value&&(k.value.scrollTop=k.value.scrollHeight)};e.watch(()=>a.messages,()=>{s()},{deep:!0});const i=y=>({user:"👤",assistant:"🤖",system:"⚙️"})[y]||"💬",r=y=>({user:"用户",assistant:"AI助手",system:"系统"})[y]||"消息",C=y=>{const g=/```(\w+)?\n([\s\S]*?)```/g,h=[];let d=0,E;for(;(E=g.exec(y))!==null;)E.index>d&&h.push({type:"text",content:y.slice(d,E.index)}),h.push({type:"code",content:E[2],language:E[1]||"plaintext"}),d=E.index+E[0].length;return d<y.length&&h.push({type:"text",content:y.slice(d)}),h.length>0?h:[{type:"text",content:y}]};return(y,g)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(f.value)},[t.showClear?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("toolbar"))},[e.createElementVNode("button",{class:"clear-btn",onClick:p,disabled:t.disabled||t.messages.length===0}," 🗑️ 清空对话 ",8,J)],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"messagesContainer",ref:k,class:e.normalizeClass(e.unref(l).e("messages")),style:e.normalizeStyle(v.value)},[t.messages.length===0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("empty"))},[...g[1]||(g[1]=[e.createElementVNode("span",{class:"empty-icon"},"💬",-1),e.createElementVNode("span",{class:"empty-text"},"暂无对话消息",-1)])],2)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.messages,h=>(e.openBlock(),e.createElementBlock("div",{key:h.id,class:e.normalizeClass([e.unref(l).e("message"),e.unref(l).em("message",h.role)])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("message-header"))},[e.createElementVNode("span",Q,e.toDisplayString(i(h.role)),1),e.createElementVNode("span",Z,e.toDisplayString(r(h.role)),1),t.showTimestamp&&h.timestamp?(e.openBlock(),e.createElementBlock("span",_,e.toDisplayString(h.timestamp),1)):e.createCommentVNode("",!0)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("message-content"))},[h.loading?(e.openBlock(),e.createElementBlock("span",ee,[...g[2]||(g[2]=[e.createElementVNode("span",{class:"dot"},null,-1),e.createElementVNode("span",{class:"dot"},null,-1),e.createElementVNode("span",{class:"dot"},null,-1)])])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(C(h.content),(d,E)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:E},[d.type==="text"?(e.openBlock(),e.createElementBlock("div",te,e.toDisplayString(d.content),1)):(e.openBlock(),e.createElementBlock("div",le,[e.createElementVNode("div",ae,[e.createElementVNode("span",ne,e.toDisplayString(d.language),1),e.createElementVNode("button",{class:"copy-btn",onClick:V=>o(d.content)}," 📋 复制 ",8,oe)]),e.createElementVNode("pre",se,[e.createElementVNode("code",null,e.toDisplayString(d.content),1)])]))],64))),128))],2)],2))),128))],6),t.showInput?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(l).e("input"))},[e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":g[0]||(g[0]=h=>n.value=h),placeholder:t.placeholder,disabled:t.disabled||t.loading,class:"input-textarea",onKeydown:e.withKeys(e.withModifiers(m,["ctrl"]),["enter"]),rows:"3"},null,40,ce),[[e.vModelText,n.value]]),e.createElementVNode("button",{class:"send-btn",disabled:t.disabled||t.loading||!n.value.trim(),onClick:m},e.toDisplayString(t.loading?"发送中...":"发送"),9,re)],2)):e.createCommentVNode("",!0)],2))}}),de={key:0},ue={key:1},me={class:"col-session-id"},pe={class:"session-id"},fe={class:"col-title"},he={class:"col-message-count"},ke={class:"col-status"},ge={class:"col-time"},ye={class:"col-actions"},ve=["onClick"],Ce=["onClick"],Ee={class:"pagination-info"},Ve={class:"pagination-controls"},be=["disabled"],Be={class:"pagination-current"},Ne=["disabled"],ze=["value"],$e=e.defineComponent({name:"XLogTable",__name:"index",props:{data:{default:()=>[]},loading:{type:Boolean,default:!1},pagination:{default:void 0},showPagination:{type:Boolean,default:!0}},emits:["page-change","size-change","view-detail","view-trace"],setup(t,{emit:u}){const a=t,c=u,l=N.useNamespace("log-table"),n=o=>({success:{label:"成功",color:"#67c23a"},error:{label:"失败",color:"#f56c6c"},running:{label:"运行中",color:"#409eff"}})[o]||{label:"未知",color:"#909399"},k=e.computed(()=>[l.b(),l.is("loading",a.loading)]),f=o=>{c("page-change",o)},v=o=>{c("size-change",o)},m=o=>{c("view-detail",o)},p=o=>{c("view-trace",o)};return(o,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(k.value)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("wrapper"))},[e.createElementVNode("table",null,[s[4]||(s[4]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",{class:"col-session-id"},"会话ID"),e.createElementVNode("th",{class:"col-title"},"会话标题"),e.createElementVNode("th",{class:"col-message-count"},"消息数"),e.createElementVNode("th",{class:"col-status"},"状态"),e.createElementVNode("th",{class:"col-time"},"最新消息时间"),e.createElementVNode("th",{class:"col-actions"},"操作")])],-1)),e.createElementVNode("tbody",null,[t.loading?(e.openBlock(),e.createElementBlock("tr",de,[e.createElementVNode("td",{colspan:"6",class:e.normalizeClass(e.unref(l).e("loading-cell"))},[...s[3]||(s[3]=[e.createElementVNode("span",{class:"loading-spinner"},null,-1),e.createElementVNode("span",{class:"loading-text"},"加载中...",-1)])],2)])):t.data.length===0?(e.openBlock(),e.createElementBlock("tr",ue,[e.createElementVNode("td",{colspan:"6",class:e.normalizeClass(e.unref(l).e("empty"))}," 暂无日志记录 ",2)])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.data,i=>(e.openBlock(),e.createElementBlock("tr",{key:i.id},[e.createElementVNode("td",me,[e.createElementVNode("span",pe,e.toDisplayString(i.sessionId),1)]),e.createElementVNode("td",fe,e.toDisplayString(i.title),1),e.createElementVNode("td",he,e.toDisplayString(i.messageCount),1),e.createElementVNode("td",ke,[e.createElementVNode("span",{class:"status-tag",style:e.normalizeStyle({backgroundColor:n(i.status).color})},e.toDisplayString(n(i.status).label),5)]),e.createElementVNode("td",ge,e.toDisplayString(i.latestMessageTime),1),e.createElementVNode("td",ye,[e.createElementVNode("button",{class:"action-link",onClick:r=>m(i)}," 查看详情 ",8,ve),e.createElementVNode("button",{class:"action-link",onClick:r=>p(i)}," 链路追踪 ",8,Ce)])]))),128))])])],2),t.showPagination&&t.pagination?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("pagination"))},[e.createElementVNode("span",Ee," 共 "+e.toDisplayString(t.pagination.total)+" 条 ",1),e.createElementVNode("div",Ve,[e.createElementVNode("button",{class:"pagination-btn",disabled:t.pagination.current<=1,onClick:s[0]||(s[0]=i=>f(t.pagination.current-1))}," 上一页 ",8,be),e.createElementVNode("span",Be,"第 "+e.toDisplayString(t.pagination.current)+" 页",1),e.createElementVNode("button",{class:"pagination-btn",disabled:t.pagination.current>=Math.ceil(t.pagination.total/t.pagination.pageSize),onClick:s[1]||(s[1]=i=>f(t.pagination.current+1))}," 下一页 ",8,Ne)]),e.createElementVNode("select",{class:"pagination-size-select",value:t.pagination.pageSize,onChange:s[2]||(s[2]=i=>v(Number(i.target.value)))},[...s[5]||(s[5]=[e.createElementVNode("option",{value:"10"},"10条/页",-1),e.createElementVNode("option",{value:"20"},"20条/页",-1),e.createElementVNode("option",{value:"50"},"50条/页",-1),e.createElementVNode("option",{value:"100"},"100条/页",-1)])],40,ze)],2)):e.createCommentVNode("",!0)],2))}}),Se=["onClick"],xe={class:"endpoint-path"},we={class:"endpoint-url"},Te={class:"endpoint-desc"},De={class:"param-name"},Le={class:"param-type"},Pe={class:"param-required"},He={key:0,class:"required-tag"},Ie={key:1,class:"optional-tag"},qe={class:"param-default"},Ue={class:"param-desc"},Fe=e.defineComponent({name:"XApiDoc",__name:"index",props:{baseUrl:{default:"https://api.example.com"},endpoints:{default:()=>[]},showCurlExample:{type:Boolean,default:!0},authType:{default:"apikey"},apiKeyPlaceholder:{default:"YOUR_API_KEY"}},emits:["copy-curl"],setup(t,{emit:u}){const a=t,c=u,l=N.useNamespace("api-doc"),n=e.ref(a.endpoints[0]||null),k=e.computed(()=>[l.b()]),f={GET:"#67c23a",POST:"#409eff",PUT:"#e6a23c",DELETE:"#f56c6c",PATCH:"#909399"},v=o=>{const s=o.method,i=`${a.baseUrl}${o.path}`;let r=`curl -X ${s} '${i}'`;return a.authType==="apikey"?r+=` -H 'Authorization: ApiKey ${a.apiKeyPlaceholder}'`:a.authType==="bearer"?r+=` -H 'Authorization: Bearer ${a.apiKeyPlaceholder}'`:a.authType==="basic"&&(r+=" -u 'username:password'"),s!=="GET"&&(r+=" -H 'Content-Type: application/json'"),o.requestBody&&s!=="GET"&&(r+=` -d '${o.requestBody}'`),r},m=async o=>{try{await navigator.clipboard.writeText(o),c("copy-curl",o)}catch(s){console.error("复制失败:",s)}},p=o=>{n.value=o};return(o,s)=>{var i;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(k.value)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("sidebar"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("sidebar-header"))},"API 端点",2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("endpoint-list"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.endpoints,r=>(e.openBlock(),e.createElementBlock("div",{key:`${r.method}-${r.path}`,class:e.normalizeClass([e.unref(l).e("endpoint-item"),{"is-active":n.value===r}]),onClick:C=>p(r)},[e.createElementVNode("span",{class:"method-tag",style:e.normalizeStyle({backgroundColor:f[r.method]})},e.toDisplayString(r.method),5),e.createElementVNode("span",xe,e.toDisplayString(r.path),1)],10,Se))),128))],2)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("content"))},[n.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("header"))},[e.createElementVNode("span",{class:"method-badge",style:e.normalizeStyle({backgroundColor:f[n.value.method]})},e.toDisplayString(n.value.method),5),e.createElementVNode("span",we,e.toDisplayString(t.baseUrl)+e.toDisplayString(n.value.path),1),e.createElementVNode("span",Te,e.toDisplayString(n.value.description),1)],2),(i=n.value.parameters)!=null&&i.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("section"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("section-title"))},"请求参数",2),e.createElementVNode("table",{class:e.normalizeClass(e.unref(l).e("params-table"))},[s[1]||(s[1]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"参数名"),e.createElementVNode("th",null,"类型"),e.createElementVNode("th",null,"必填"),e.createElementVNode("th",null,"默认值"),e.createElementVNode("th",null,"说明")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value.parameters,r=>(e.openBlock(),e.createElementBlock("tr",{key:r.name},[e.createElementVNode("td",De,e.toDisplayString(r.name),1),e.createElementVNode("td",Le,e.toDisplayString(r.type),1),e.createElementVNode("td",Pe,[r.required?(e.openBlock(),e.createElementBlock("span",He,"必填")):(e.openBlock(),e.createElementBlock("span",Ie,"可选"))]),e.createElementVNode("td",qe,e.toDisplayString(r.defaultValue||"-"),1),e.createElementVNode("td",Ue,e.toDisplayString(r.description),1)]))),128))])],2)],2)):e.createCommentVNode("",!0),t.showCurlExample?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(l).e("section"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("section-title"))},[s[2]||(s[2]=e.createTextVNode(" curl 示例 ",-1)),e.createElementVNode("button",{class:"copy-btn",onClick:s[0]||(s[0]=r=>m(v(n.value)))}," 📋 复制 ")],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("code-block"))},[e.createElementVNode("pre",null,[e.createElementVNode("code",null,e.toDisplayString(v(n.value)),1)])],2)],2)):e.createCommentVNode("",!0),n.value.requestBody?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(e.unref(l).e("section"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("section-title"))},"请求体示例",2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("code-block"))},[e.createElementVNode("pre",null,[e.createElementVNode("code",null,e.toDisplayString(n.value.requestBody),1)])],2)],2)):e.createCommentVNode("",!0),n.value.responseExample?(e.openBlock(),e.createElementBlock("div",{key:3,class:e.normalizeClass(e.unref(l).e("section"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("section-title"))},"响应示例",2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("code-block"))},[e.createElementVNode("pre",null,[e.createElementVNode("code",null,e.toDisplayString(n.value.responseExample),1)])],2)],2)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(l).e("empty"))}," 请选择一个 API 端点查看详情 ",2))],2)],2)}}}),Me=e.defineComponent({name:"XVarTag",__name:"index",props:{name:{default:""},type:{default:"string"},value:{default:void 0},showValue:{type:Boolean,default:!1},copyable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},size:{default:"default"},showTypeIcon:{type:Boolean,default:!0}},emits:["click","copy"],setup(t,{emit:u}){const a=t,c=u,l=N.useNamespace("var-tag"),n=e.computed(()=>{const p={string:{icon:"📝",color:"#409eff",label:"文本"},number:{icon:"🔢",color:"#67c23a",label:"数字"},boolean:{icon:"✓",color:"#e6a23c",label:"布尔"},object:{icon:"📦",color:"#909399",label:"对象"},array:{icon:"📚",color:"#909399",label:"数组"},file:{icon:"📁",color:"#f56c6c",label:"文件"}};return p[a.type]||p.string}),k=e.computed(()=>[l.b(),l.m(a.size),l.m(a.type),l.is("disabled",a.disabled),l.is("copyable",a.copyable)]),f=e.computed(()=>a.value===void 0||a.value===null?"-":a.type==="object"||a.type==="array"?JSON.stringify(a.value):String(a.value)),v=()=>{a.disabled||c("click",a.name)},m=async()=>{if(!a.disabled&&a.copyable)try{const p=a.showValue?`${a.name}: ${f.value}`:a.name;await navigator.clipboard.writeText(p),c("copy",a.name,a.value)}catch(p){console.error("复制失败:",p)}};return(p,o)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(k.value),onClick:v},[t.showTypeIcon?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(l).e("icon"))},e.toDisplayString(n.value.icon),3)):e.createCommentVNode("",!0),e.createElementVNode("span",{class:e.normalizeClass(e.unref(l).e("name"))},e.toDisplayString(t.name),3),t.showValue?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(l).e("value"))},e.toDisplayString(f.value),3)):e.createCommentVNode("",!0),t.showValue?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",{key:2,class:e.normalizeClass(e.unref(l).e("type")),style:e.normalizeStyle({color:n.value.color})},e.toDisplayString(n.value.label),7)),t.copyable?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(e.unref(l).e("copy-btn")),onClick:e.withModifiers(m,["stop"])}," 📋 ",2)):e.createCommentVNode("",!0)],2))}});exports.ApiDoc=Fe;exports.AppCard=Y;exports.Chat=ie;exports.Export=F;exports.LogTable=$e;exports.MarkdownEditor=K;exports.ProTable=P;exports.SearchForm=q;exports.Statistic=U;exports.VarTag=Me;
9
+ `,"")},{icon:"quote",title:"引用",action:()=>i("> ","")},{icon:"code-block",title:"代码块",action:()=>i("\n```\n","\n```\n")}],v=e.computed(()=>[l.b(),l.is("disabled",a.disabled),l.is(`mode-${f.value}`)]),y=g=>{if(f.value!=="split")return;const h=document.querySelector(".x-markdown-editor__preview");if(!h)return;const d=g.target,C=d.scrollTop/(d.scrollHeight-d.clientHeight);h.scrollTop=C*(h.scrollHeight-h.clientHeight)};return(g,h)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(v.value),style:e.normalizeStyle(p.value)},[t.showToolbar?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("toolbar"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("toolbar-left"))},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(r,(d,C)=>e.createElementVNode("button",{key:C,class:e.normalizeClass([e.unref(l).e("toolbar-btn"),{"is-divider":d.type==="divider"}]),title:d.title,disabled:t.disabled,onClick:d.action},[d.type?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(b.Icon),{key:0,name:d.icon,size:16},null,8,["name"])),d.label?(e.openBlock(),e.createElementBlock("span",R,e.toDisplayString(d.label),1)):e.createCommentVNode("",!0)],10,A)),64))],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("toolbar-right"))},[e.createElementVNode("button",{class:e.normalizeClass([e.unref(l).e("mode-btn"),{"is-active":f.value==="edit"}]),onClick:h[0]||(h[0]=d=>s("edit"))}," 编辑 ",2),e.createElementVNode("button",{class:e.normalizeClass([e.unref(l).e("mode-btn"),{"is-active":f.value==="split"}]),onClick:h[1]||(h[1]=d=>s("split"))}," 分屏 ",2),e.createElementVNode("button",{class:e.normalizeClass([e.unref(l).e("mode-btn"),{"is-active":f.value==="preview"}]),onClick:h[2]||(h[2]=d=>s("preview"))}," 预览 ",2)],2)],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("body"))},[t.showToc&&m.value.length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("toc"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("toc-title"))},"目录",2),e.createElementVNode("ul",{class:e.normalizeClass(e.unref(l).e("toc-list"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(d,C)=>(e.openBlock(),e.createElementBlock("li",{key:C,class:e.normalizeClass(e.unref(l).e("toc-item")),style:e.normalizeStyle({paddingLeft:(d.level-1)*12+"px"})},e.toDisplayString(d.text),7))),128))],2)],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("content"))},[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("editor-wrapper"))},[e.createElementVNode("textarea",{ref_key:"editorRef",ref:k,class:e.normalizeClass(e.unref(l).e("editor")),value:n.value,placeholder:t.placeholder,disabled:t.disabled,onInput:o,onScroll:y},null,42,W)],2),[[e.vShow,f.value!=="preview"]]),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("preview")),innerHTML:E.value},null,10,X),[[e.vShow,f.value!=="edit"]])],2)],2)],6))}}),O={class:"icon-text"},G={class:"status-label"},Y=e.defineComponent({name:"XAppCard",__name:"index",props:{id:{default:""},name:{default:""},description:{default:""},icon:{default:"📱"},iconBgColor:{default:"#4F46E5"},status:{default:"draft"},creator:{default:""},createTime:{default:""},category:{default:""},disabled:{type:Boolean,default:!1}},emits:["click","edit","delete","publish"],setup(t,{emit:u}){const a=t,c=u,l=N.useNamespace("app-card"),n=e.computed(()=>{const o={published:{label:"已发布",color:"#10B981",dotColor:"#10B981"},draft:{label:"草稿",color:"#909399",dotColor:"#909399"},archived:{label:"已归档",color:"#EF4444",dotColor:"#EF4444"}};return o[a.status]||o.draft}),k=e.computed(()=>[l.b(),l.m(a.status),l.is("disabled",a.disabled)]),f=()=>{a.disabled||c("click",a.id)},E=o=>{o.stopPropagation(),a.disabled||c("edit",a.id)},m=o=>{o.stopPropagation(),a.disabled||c("delete",a.id)},p=o=>{o.stopPropagation(),a.disabled||c("publish",a.id)};return(o,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(k.value),onClick:f},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("icon")),style:e.normalizeStyle({backgroundColor:t.iconBgColor})},[e.createElementVNode("span",O,e.toDisplayString(t.icon),1)],6),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("status"))},[e.createElementVNode("span",{class:"status-dot",style:e.normalizeStyle({backgroundColor:n.value.dotColor})},null,4),e.createElementVNode("span",G,e.toDisplayString(n.value.label),1)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("info"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("name"))},e.toDisplayString(t.name),3),t.description?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("description"))},e.toDisplayString(t.description),3)):e.createCommentVNode("",!0)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("meta"))},[t.creator?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(l).e("creator"))},"创建者: "+e.toDisplayString(t.creator),3)):e.createCommentVNode("",!0),t.createTime?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(l).e("time"))},e.toDisplayString(t.createTime),3)):e.createCommentVNode("",!0)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("actions"))},[e.createElementVNode("button",{class:"action-btn",title:"编辑",onClick:E}," ✏️ "),t.status==="draft"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"action-btn",title:"发布",onClick:p}," 🚀 ")):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"action-btn action-btn--danger",title:"删除",onClick:m}," 🗑️ ")],2)],2))}}),J=["disabled"],Q={class:"role-icon"},Z={class:"role-label"},_={key:0,class:"timestamp"},ee={key:0,class:"loading-indicator"},te={key:0,class:"text-content"},le={key:1,class:"code-block"},ae={class:"code-header"},ne={class:"language"},oe=["onClick"],se={class:"code-content"},ce=["placeholder","disabled","onKeydown"],re=["disabled"],ie=e.defineComponent({name:"XChat",__name:"index",props:{messages:{default:()=>[]},showInput:{type:Boolean,default:!0},placeholder:{default:"输入消息..."},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},maxHeight:{default:400},showClear:{type:Boolean,default:!0},showTimestamp:{type:Boolean,default:!0}},emits:["send","clear","copy"],setup(t,{emit:u}){const a=t,c=u,l=N.useNamespace("chat"),n=e.ref(""),k=e.ref(null),f=e.computed(()=>[l.b(),l.is("disabled",a.disabled)]),E=e.computed(()=>({maxHeight:typeof a.maxHeight=="number"?`${a.maxHeight}px`:a.maxHeight})),m=()=>{n.value.trim()&&!a.disabled&&!a.loading&&(c("send",n.value.trim()),n.value="")},p=()=>{c("clear")},o=async y=>{try{await navigator.clipboard.writeText(y),c("copy",y)}catch(g){console.error("复制失败:",g)}},s=async()=>{await e.nextTick(),k.value&&(k.value.scrollTop=k.value.scrollHeight)};e.watch(()=>a.messages,()=>{s()},{deep:!0});const i=y=>({user:"👤",assistant:"🤖",system:"⚙️"})[y]||"💬",r=y=>({user:"用户",assistant:"AI助手",system:"系统"})[y]||"消息",v=y=>{const g=/```(\w+)?\n([\s\S]*?)```/g,h=[];let d=0,C;for(;(C=g.exec(y))!==null;)C.index>d&&h.push({type:"text",content:y.slice(d,C.index)}),h.push({type:"code",content:C[2],language:C[1]||"plaintext"}),d=C.index+C[0].length;return d<y.length&&h.push({type:"text",content:y.slice(d)}),h.length>0?h:[{type:"text",content:y}]};return(y,g)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(f.value)},[t.showClear?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("toolbar"))},[e.createElementVNode("button",{class:"clear-btn",onClick:p,disabled:t.disabled||t.messages.length===0}," 🗑️ 清空对话 ",8,J)],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"messagesContainer",ref:k,class:e.normalizeClass(e.unref(l).e("messages")),style:e.normalizeStyle(E.value)},[t.messages.length===0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("empty"))},[...g[1]||(g[1]=[e.createElementVNode("span",{class:"empty-icon"},"💬",-1),e.createElementVNode("span",{class:"empty-text"},"暂无对话消息",-1)])],2)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.messages,h=>(e.openBlock(),e.createElementBlock("div",{key:h.id,class:e.normalizeClass([e.unref(l).e("message"),e.unref(l).em("message",h.role)])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("message-header"))},[e.createElementVNode("span",Q,e.toDisplayString(i(h.role)),1),e.createElementVNode("span",Z,e.toDisplayString(r(h.role)),1),t.showTimestamp&&h.timestamp?(e.openBlock(),e.createElementBlock("span",_,e.toDisplayString(h.timestamp),1)):e.createCommentVNode("",!0)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("message-content"))},[h.loading?(e.openBlock(),e.createElementBlock("span",ee,[...g[2]||(g[2]=[e.createElementVNode("span",{class:"dot"},null,-1),e.createElementVNode("span",{class:"dot"},null,-1),e.createElementVNode("span",{class:"dot"},null,-1)])])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(v(h.content),(d,C)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:C},[d.type==="text"?(e.openBlock(),e.createElementBlock("div",te,e.toDisplayString(d.content),1)):(e.openBlock(),e.createElementBlock("div",le,[e.createElementVNode("div",ae,[e.createElementVNode("span",ne,e.toDisplayString(d.language),1),e.createElementVNode("button",{class:"copy-btn",onClick:V=>o(d.content)}," 📋 复制 ",8,oe)]),e.createElementVNode("pre",se,[e.createElementVNode("code",null,e.toDisplayString(d.content),1)])]))],64))),128))],2)],2))),128))],6),t.showInput?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(l).e("input"))},[e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":g[0]||(g[0]=h=>n.value=h),placeholder:t.placeholder,disabled:t.disabled||t.loading,class:"input-textarea",onKeydown:e.withKeys(e.withModifiers(m,["ctrl"]),["enter"]),rows:"3"},null,40,ce),[[e.vModelText,n.value]]),e.createElementVNode("button",{class:"send-btn",disabled:t.disabled||t.loading||!n.value.trim(),onClick:m},e.toDisplayString(t.loading?"发送中...":"发送"),9,re)],2)):e.createCommentVNode("",!0)],2))}}),de={key:0},ue={key:1},me={class:"col-session-id"},pe={class:"session-id"},fe={class:"col-title"},he={class:"col-message-count"},ke={class:"col-status"},ge={class:"col-time"},ye={class:"col-actions"},Ee=["onClick"],ve=["onClick"],Ce={class:"pagination-info"},Ve={class:"pagination-controls"},be=["disabled"],Be={class:"pagination-current"},Ne=["disabled"],ze=["value"],$e=e.defineComponent({name:"XLogTable",__name:"index",props:{data:{default:()=>[]},loading:{type:Boolean,default:!1},pagination:{default:void 0},showPagination:{type:Boolean,default:!0}},emits:["page-change","size-change","view-detail","view-trace"],setup(t,{emit:u}){const a=t,c=u,l=N.useNamespace("log-table"),n=o=>({success:{label:"成功",color:"#10B981"},error:{label:"失败",color:"#EF4444"},running:{label:"运行中",color:"#4F46E5"}})[o]||{label:"未知",color:"#909399"},k=e.computed(()=>[l.b(),l.is("loading",a.loading)]),f=o=>{c("page-change",o)},E=o=>{c("size-change",o)},m=o=>{c("view-detail",o)},p=o=>{c("view-trace",o)};return(o,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(k.value)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("wrapper"))},[e.createElementVNode("table",null,[s[4]||(s[4]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",{class:"col-session-id"},"会话ID"),e.createElementVNode("th",{class:"col-title"},"会话标题"),e.createElementVNode("th",{class:"col-message-count"},"消息数"),e.createElementVNode("th",{class:"col-status"},"状态"),e.createElementVNode("th",{class:"col-time"},"最新消息时间"),e.createElementVNode("th",{class:"col-actions"},"操作")])],-1)),e.createElementVNode("tbody",null,[t.loading?(e.openBlock(),e.createElementBlock("tr",de,[e.createElementVNode("td",{colspan:"6",class:e.normalizeClass(e.unref(l).e("loading-cell"))},[...s[3]||(s[3]=[e.createElementVNode("span",{class:"loading-spinner"},null,-1),e.createElementVNode("span",{class:"loading-text"},"加载中...",-1)])],2)])):t.data.length===0?(e.openBlock(),e.createElementBlock("tr",ue,[e.createElementVNode("td",{colspan:"6",class:e.normalizeClass(e.unref(l).e("empty"))}," 暂无日志记录 ",2)])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.data,i=>(e.openBlock(),e.createElementBlock("tr",{key:i.id},[e.createElementVNode("td",me,[e.createElementVNode("span",pe,e.toDisplayString(i.sessionId),1)]),e.createElementVNode("td",fe,e.toDisplayString(i.title),1),e.createElementVNode("td",he,e.toDisplayString(i.messageCount),1),e.createElementVNode("td",ke,[e.createElementVNode("span",{class:"status-tag",style:e.normalizeStyle({backgroundColor:n(i.status).color})},e.toDisplayString(n(i.status).label),5)]),e.createElementVNode("td",ge,e.toDisplayString(i.latestMessageTime),1),e.createElementVNode("td",ye,[e.createElementVNode("button",{class:"action-link",onClick:r=>m(i)}," 查看详情 ",8,Ee),e.createElementVNode("button",{class:"action-link",onClick:r=>p(i)}," 链路追踪 ",8,ve)])]))),128))])])],2),t.showPagination&&t.pagination?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("pagination"))},[e.createElementVNode("span",Ce," 共 "+e.toDisplayString(t.pagination.total)+" 条 ",1),e.createElementVNode("div",Ve,[e.createElementVNode("button",{class:"pagination-btn",disabled:t.pagination.current<=1,onClick:s[0]||(s[0]=i=>f(t.pagination.current-1))}," 上一页 ",8,be),e.createElementVNode("span",Be,"第 "+e.toDisplayString(t.pagination.current)+" 页",1),e.createElementVNode("button",{class:"pagination-btn",disabled:t.pagination.current>=Math.ceil(t.pagination.total/t.pagination.pageSize),onClick:s[1]||(s[1]=i=>f(t.pagination.current+1))}," 下一页 ",8,Ne)]),e.createElementVNode("select",{class:"pagination-size-select",value:t.pagination.pageSize,onChange:s[2]||(s[2]=i=>E(Number(i.target.value)))},[...s[5]||(s[5]=[e.createElementVNode("option",{value:"10"},"10条/页",-1),e.createElementVNode("option",{value:"20"},"20条/页",-1),e.createElementVNode("option",{value:"50"},"50条/页",-1),e.createElementVNode("option",{value:"100"},"100条/页",-1)])],40,ze)],2)):e.createCommentVNode("",!0)],2))}}),Se=["onClick"],xe={class:"endpoint-path"},we={class:"endpoint-url"},Te={class:"endpoint-desc"},De={class:"param-name"},Fe={class:"param-type"},Le={class:"param-required"},Pe={key:0,class:"required-tag"},He={key:1,class:"optional-tag"},Ie={class:"param-default"},qe={class:"param-desc"},Ue=e.defineComponent({name:"XApiDoc",__name:"index",props:{baseUrl:{default:"https://api.example.com"},endpoints:{default:()=>[]},showCurlExample:{type:Boolean,default:!0},authType:{default:"apikey"},apiKeyPlaceholder:{default:"YOUR_API_KEY"}},emits:["copy-curl"],setup(t,{emit:u}){const a=t,c=u,l=N.useNamespace("api-doc"),n=e.ref(a.endpoints[0]||null),k=e.computed(()=>[l.b()]),f={GET:"#10B981",POST:"#4F46E5",PUT:"#F59E0B",DELETE:"#EF4444",PATCH:"#909399"},E=o=>{const s=o.method,i=`${a.baseUrl}${o.path}`;let r=`curl -X ${s} '${i}'`;return a.authType==="apikey"?r+=` -H 'Authorization: ApiKey ${a.apiKeyPlaceholder}'`:a.authType==="bearer"?r+=` -H 'Authorization: Bearer ${a.apiKeyPlaceholder}'`:a.authType==="basic"&&(r+=" -u 'username:password'"),s!=="GET"&&(r+=" -H 'Content-Type: application/json'"),o.requestBody&&s!=="GET"&&(r+=` -d '${o.requestBody}'`),r},m=async o=>{try{await navigator.clipboard.writeText(o),c("copy-curl",o)}catch(s){console.error("复制失败:",s)}},p=o=>{n.value=o};return(o,s)=>{var i;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(k.value)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("sidebar"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("sidebar-header"))},"API 端点",2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("endpoint-list"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.endpoints,r=>(e.openBlock(),e.createElementBlock("div",{key:`${r.method}-${r.path}`,class:e.normalizeClass([e.unref(l).e("endpoint-item"),{"is-active":n.value===r}]),onClick:v=>p(r)},[e.createElementVNode("span",{class:"method-tag",style:e.normalizeStyle({backgroundColor:f[r.method]})},e.toDisplayString(r.method),5),e.createElementVNode("span",xe,e.toDisplayString(r.path),1)],10,Se))),128))],2)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("content"))},[n.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("header"))},[e.createElementVNode("span",{class:"method-badge",style:e.normalizeStyle({backgroundColor:f[n.value.method]})},e.toDisplayString(n.value.method),5),e.createElementVNode("span",we,e.toDisplayString(t.baseUrl)+e.toDisplayString(n.value.path),1),e.createElementVNode("span",Te,e.toDisplayString(n.value.description),1)],2),(i=n.value.parameters)!=null&&i.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("section"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("section-title"))},"请求参数",2),e.createElementVNode("table",{class:e.normalizeClass(e.unref(l).e("params-table"))},[s[1]||(s[1]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"参数名"),e.createElementVNode("th",null,"类型"),e.createElementVNode("th",null,"必填"),e.createElementVNode("th",null,"默认值"),e.createElementVNode("th",null,"说明")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value.parameters,r=>(e.openBlock(),e.createElementBlock("tr",{key:r.name},[e.createElementVNode("td",De,e.toDisplayString(r.name),1),e.createElementVNode("td",Fe,e.toDisplayString(r.type),1),e.createElementVNode("td",Le,[r.required?(e.openBlock(),e.createElementBlock("span",Pe,"必填")):(e.openBlock(),e.createElementBlock("span",He,"可选"))]),e.createElementVNode("td",Ie,e.toDisplayString(r.defaultValue||"-"),1),e.createElementVNode("td",qe,e.toDisplayString(r.description),1)]))),128))])],2)],2)):e.createCommentVNode("",!0),t.showCurlExample?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(l).e("section"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("section-title"))},[s[2]||(s[2]=e.createTextVNode(" curl 示例 ",-1)),e.createElementVNode("button",{class:"copy-btn",onClick:s[0]||(s[0]=r=>m(E(n.value)))}," 📋 复制 ")],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("code-block"))},[e.createElementVNode("pre",null,[e.createElementVNode("code",null,e.toDisplayString(E(n.value)),1)])],2)],2)):e.createCommentVNode("",!0),n.value.requestBody?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(e.unref(l).e("section"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("section-title"))},"请求体示例",2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("code-block"))},[e.createElementVNode("pre",null,[e.createElementVNode("code",null,e.toDisplayString(n.value.requestBody),1)])],2)],2)):e.createCommentVNode("",!0),n.value.responseExample?(e.openBlock(),e.createElementBlock("div",{key:3,class:e.normalizeClass(e.unref(l).e("section"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("section-title"))},"响应示例",2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("code-block"))},[e.createElementVNode("pre",null,[e.createElementVNode("code",null,e.toDisplayString(n.value.responseExample),1)])],2)],2)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(l).e("empty"))}," 请选择一个 API 端点查看详情 ",2))],2)],2)}}}),Me=e.defineComponent({name:"XVarTag",__name:"index",props:{name:{default:""},type:{default:"string"},value:{default:void 0},showValue:{type:Boolean,default:!1},copyable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},size:{default:"default"},showTypeIcon:{type:Boolean,default:!0}},emits:["click","copy"],setup(t,{emit:u}){const a=t,c=u,l=N.useNamespace("var-tag"),n=e.computed(()=>{const p={string:{icon:"📝",color:"#4F46E5",label:"文本"},number:{icon:"🔢",color:"#10B981",label:"数字"},boolean:{icon:"✓",color:"#F59E0B",label:"布尔"},object:{icon:"📦",color:"#909399",label:"对象"},array:{icon:"📚",color:"#909399",label:"数组"},file:{icon:"📁",color:"#EF4444",label:"文件"}};return p[a.type]||p.string}),k=e.computed(()=>[l.b(),l.m(a.size),l.m(a.type),l.is("disabled",a.disabled),l.is("copyable",a.copyable)]),f=e.computed(()=>a.value===void 0||a.value===null?"-":a.type==="object"||a.type==="array"?JSON.stringify(a.value):String(a.value)),E=()=>{a.disabled||c("click",a.name)},m=async()=>{if(!a.disabled&&a.copyable)try{const p=a.showValue?`${a.name}: ${f.value}`:a.name;await navigator.clipboard.writeText(p),c("copy",a.name,a.value)}catch(p){console.error("复制失败:",p)}};return(p,o)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(k.value),onClick:E},[t.showTypeIcon?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(l).e("icon"))},e.toDisplayString(n.value.icon),3)):e.createCommentVNode("",!0),e.createElementVNode("span",{class:e.normalizeClass(e.unref(l).e("name"))},e.toDisplayString(t.name),3),t.showValue?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(l).e("value"))},e.toDisplayString(f.value),3)):e.createCommentVNode("",!0),t.showValue?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",{key:2,class:e.normalizeClass(e.unref(l).e("type")),style:e.normalizeStyle({color:n.value.color})},e.toDisplayString(n.value.label),7)),t.copyable?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(e.unref(l).e("copy-btn")),onClick:e.withModifiers(m,["stop"])}," 📋 ",2)):e.createCommentVNode("",!0)],2))}});exports.ApiDoc=Ue;exports.AppCard=Y;exports.Chat=ie;exports.Export=U;exports.LogTable=$e;exports.MarkdownEditor=K;exports.ProTable=L;exports.SearchForm=I;exports.Statistic=q;exports.VarTag=Me;
package/lib/style.css CHANGED
@@ -1 +1 @@
1
- .x-pro-table{background-color:#fff;border-radius:4px}.x-pro-table__search{padding:18px 20px 0;margin-bottom:16px}.x-pro-table__toolbar{padding:0 20px 16px;display:flex;justify-content:space-between;align-items:center}.x-pro-table__table-wrapper{width:100%;overflow-x:auto}.x-pro-table__table{width:100%;border-collapse:collapse}.x-pro-table__table th,.x-pro-table__table td{padding:12px 16px;border-bottom:1px solid #ebeef5;font-size:14px;text-align:left}.x-pro-table__table th{background-color:#fafafa;font-weight:500;color:#606266;-webkit-user-select:none;user-select:none}.x-pro-table__table td{color:#606266}.x-pro-table__table tr:hover td{background-color:#f5f7fa}.x-pro-table__selection{width:50px;text-align:center!important}.x-pro-table__selection input{cursor:pointer}.x-pro-table__index{width:60px;text-align:center!important}.x-pro-table__column{padding:12px 16px;text-align:left}.x-pro-table__cell{padding:12px 16px}.x-pro-table__loading,.x-pro-table__empty{padding:40px 0;text-align:center;color:#909399;font-size:14px}.x-pro-table__pagination{display:flex;justify-content:flex-end;padding:16px 20px;border-top:1px solid #ebeef5}.x-search-form{display:flex;flex-wrap:wrap;gap:16px;padding:16px 20px;background-color:#fff;border-radius:4px}.x-search-form__items{display:flex;flex-wrap:wrap;gap:16px;flex:1}.x-search-form__item{display:flex;align-items:center}.x-search-form__label{padding-right:12px;font-size:14px;color:#606266;text-align:right;flex-shrink:0}.x-search-form__content{flex:1;min-width:180px}.x-search-form__select{width:100%;height:32px;padding:0 12px;font-size:14px;color:#606266;background-color:#fff;border:1px solid #dcdfe6;border-radius:4px;cursor:pointer}.x-search-form__select:hover{border-color:#c0c4cc}.x-search-form__select:focus{border-color:#409eff;outline:none}.x-search-form__actions{display:flex;align-items:center}.x-statistic{display:flex;flex-direction:column;padding:16px 20px;background-color:#fff;border-radius:8px;box-shadow:0 2px 12px #00000014}.x-statistic__title{font-size:14px;color:#909399;margin-bottom:8px}.x-statistic__content{display:flex;align-items:baseline;gap:4px}.x-statistic__prefix{font-size:16px;color:#606266;margin-right:4px}.x-statistic__value{font-size:24px;font-weight:600;color:#303133}.x-statistic__suffix{font-size:14px;color:#606266;margin-left:4px}.x-statistic__trend{display:flex;align-items:center;margin-top:8px;font-size:14px}.x-statistic__trend-icon{margin-right:4px}.x-statistic__trend--up{color:#67c23a}.x-statistic__trend--down{color:#f56c6c}.x-markdown-editor{display:flex;flex-direction:column;border:1px solid #dcdfe6;border-radius:4px;background-color:#fff;overflow:hidden}.x-markdown-editor.is-disabled{background-color:#f5f7fa;cursor:not-allowed}.x-markdown-editor.is-disabled .x-markdown-editor__editor{cursor:not-allowed;color:#c0c4cc}.x-markdown-editor__toolbar{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background-color:#fafafa;border-bottom:1px solid #e8e8e8;flex-shrink:0}.x-markdown-editor__toolbar-left,.x-markdown-editor__toolbar-right{display:flex;align-items:center;gap:4px}.x-markdown-editor__toolbar-btn{min-width:28px;height:28px;padding:0 6px;border:none;background:none;cursor:pointer;font-size:14px;color:#606266;border-radius:4px;display:flex;align-items:center;justify-content:center}.x-markdown-editor__toolbar-btn:hover:not(:disabled){background-color:#e8e8e8}.x-markdown-editor__toolbar-btn:disabled{cursor:not-allowed;color:#c0c4cc}.x-markdown-editor__toolbar-btn.is-divider{width:1px;height:20px;min-width:1px;padding:0;margin:0 4px;background-color:#dcdfe6;cursor:default}.x-markdown-editor__toolbar-btn.is-divider:hover{background-color:#dcdfe6}.x-markdown-editor__mode-btn{padding:4px 12px;border:1px solid #dcdfe6;background:#fff;cursor:pointer;font-size:13px;color:#606266;border-radius:4px}.x-markdown-editor__mode-btn:hover{color:#409eff;border-color:#c6e2ff;background-color:#ecf5ff}.x-markdown-editor__mode-btn.is-active{color:#fff;background-color:#409eff;border-color:#409eff}.x-markdown-editor__body{display:flex;flex:1;overflow:hidden}.x-markdown-editor__toc{width:200px;padding:16px;border-right:1px solid #e8e8e8;background-color:#fafafa;overflow-y:auto;flex-shrink:0}.x-markdown-editor__toc-title{font-size:14px;font-weight:600;color:#303133;margin-bottom:12px}.x-markdown-editor__toc-list{list-style:none;padding:0;margin:0}.x-markdown-editor__toc-item{font-size:13px;color:#606266;padding:6px 0;cursor:pointer}.x-markdown-editor__toc-item:hover{color:#409eff}.x-markdown-editor__content,.x-markdown-editor__editor-wrapper{flex:1;display:flex;overflow:hidden}.is-mode-split .x-markdown-editor__editor-wrapper{border-right:1px solid #e8e8e8}.x-markdown-editor__editor{flex:1;padding:16px;border:none;resize:none;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;line-height:1.6;color:#303133;background-color:transparent;outline:none}.x-markdown-editor__editor::placeholder{color:#c0c4cc}.x-markdown-editor__preview{flex:1;padding:16px;overflow-y:auto;font-size:14px;line-height:1.8;color:#303133}.x-markdown-editor__preview .md-heading{margin:16px 0 8px;font-weight:600;color:#303133}.x-markdown-editor__preview .md-heading.md-h1{font-size:28px;margin-top:0}.x-markdown-editor__preview .md-heading.md-h2{font-size:24px}.x-markdown-editor__preview .md-heading.md-h3{font-size:20px}.x-markdown-editor__preview .md-heading.md-h4{font-size:18px}.x-markdown-editor__preview .md-heading.md-h5{font-size:16px}.x-markdown-editor__preview .md-heading.md-h6{font-size:14px}.x-markdown-editor__preview .md-paragraph{margin:12px 0}.x-markdown-editor__preview .md-code{padding:2px 6px;background-color:#f5f7fa;border-radius:3px;font-family:Monaco,Menlo,monospace;font-size:13px;color:#e96900}.x-markdown-editor__preview .md-code-block{margin:12px 0;padding:16px;background-color:#f8f8f8;border-radius:4px;overflow-x:auto}.x-markdown-editor__preview .md-code-block code{font-family:Monaco,Menlo,monospace;font-size:13px;line-height:1.6;color:#303133}.x-markdown-editor__preview .md-link{color:#409eff;text-decoration:none}.x-markdown-editor__preview .md-link:hover{text-decoration:underline}.x-markdown-editor__preview .md-image{max-width:100%;border-radius:4px;margin:8px 0}.x-markdown-editor__preview .md-list{padding-left:24px;margin:12px 0}.x-markdown-editor__preview .md-list li{margin:4px 0}.x-markdown-editor__preview .md-blockquote{margin:12px 0;padding:12px 16px;border-left:4px solid #409eff;background-color:#f0f7ff;color:#606266}.x-markdown-editor__preview .md-blockquote p{margin:4px 0}.x-markdown-editor__preview .md-hr{margin:16px 0;border:none;border-top:1px solid #e8e8e8}.x-markdown-editor__preview .md-table{width:100%;border-collapse:collapse;margin:12px 0}.x-markdown-editor__preview .md-table th,.x-markdown-editor__preview .md-table td{padding:8px 12px;border:1px solid #e8e8e8;text-align:left}.x-markdown-editor__preview .md-table th{background-color:#fafafa;font-weight:600}.x-markdown-editor.is-mode-edit .x-markdown-editor__editor-wrapper,.x-markdown-editor.is-mode-preview .x-markdown-editor__preview{width:100%}.x-app-card{position:relative;display:flex;flex-direction:column;padding:16px;background-color:var(--bg-color, #fff);border-radius:8px;box-shadow:0 2px 12px #00000014;cursor:pointer;transition:all .3s;min-width:200px;max-width:280px}.x-app-card:hover:not(.is-disabled){box-shadow:0 4px 16px #0000001f;transform:translateY(-2px)}.x-app-card.is-disabled{opacity:.5;cursor:not-allowed}.x-app-card--published{border:1px solid rgba(103,194,58,.3)}.x-app-card--draft{border:1px solid rgba(144,147,153,.3)}.x-app-card--archived{border:1px solid rgba(245,108,108,.3)}.x-app-card__icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.x-app-card__icon .icon-text{font-size:24px;color:#fff}.x-app-card__status{position:absolute;top:12px;right:12px;display:flex;align-items:center;gap:4px;font-size:12px}.x-app-card__status .status-dot{width:6px;height:6px;border-radius:50%}.x-app-card__status .status-label{color:var(--color-text-secondary, #909399)}.x-app-card__info{margin-bottom:12px}.x-app-card__name{font-size:16px;font-weight:600;color:var(--color-text-primary, #303133);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-app-card__description{font-size:13px;color:var(--color-text-regular, #606266);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-app-card__meta{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--color-text-secondary, #909399);margin-bottom:12px}.x-app-card__creator,.x-app-card__time{display:block}.x-app-card__actions{display:flex;gap:8px;margin-top:auto}.x-app-card__actions .action-btn{padding:6px 10px;background:var(--color-fill-light, #f5f7fa);border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}.x-app-card__actions .action-btn:hover{background:var(--color-fill, #e4e7ed)}.x-app-card__actions .action-btn--danger:hover{background:#f56c6c1a;color:var(--color-danger, #f56c6c)}.x-chat{display:flex;flex-direction:column;background-color:var(--bg-color, #fff);border-radius:8px;border:1px solid var(--color-border-lighter, #ebeef5);overflow:hidden}.x-chat.is-disabled{opacity:.6}.x-chat__toolbar{padding:12px;border-bottom:1px solid var(--color-border-lighter, #ebeef5);display:flex;justify-content:flex-end}.x-chat__toolbar .clear-btn{padding:6px 12px;background:transparent;border:1px solid var(--color-border, #dcdfe6);border-radius:4px;font-size:13px;color:var(--color-text-regular, #606266);cursor:pointer;transition:all .2s}.x-chat__toolbar .clear-btn:hover:not(:disabled){color:var(--color-danger, #f56c6c);border-color:var(--color-danger, #f56c6c)}.x-chat__toolbar .clear-btn:disabled{opacity:.5;cursor:not-allowed}.x-chat__messages{flex:1;overflow-y:auto;padding:16px;background-color:var(--bg-color-page, #fafafa)}.x-chat__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:var(--color-text-placeholder, #c0c4cc)}.x-chat__empty .empty-icon{font-size:48px;margin-bottom:8px}.x-chat__empty .empty-text{font-size:14px}.x-chat__message{margin-bottom:16px;padding:12px;background:var(--bg-color, #fff);border-radius:8px;box-shadow:0 1px 4px #0000000d}.x-chat__message--user{background:#409eff0d;border-left:3px solid var(--color-primary, #409eff)}.x-chat__message--assistant{background:#67c23a0d;border-left:3px solid var(--color-success, #67c23a)}.x-chat__message--system{background:#9093990d;border-left:3px solid var(--color-info, #909399)}.x-chat__message-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.x-chat__message-header .role-icon{font-size:16px}.x-chat__message-header .role-label{font-size:13px;font-weight:500;color:var(--color-text-primary, #303133)}.x-chat__message-header .timestamp{font-size:12px;color:var(--color-text-secondary, #909399)}.x-chat__message-content{font-size:14px;color:var(--color-text-regular, #606266);line-height:1.6}.x-chat__message-content .text-content{white-space:pre-wrap}.x-chat__message-content .loading-indicator{display:inline-flex;gap:4px}.x-chat__message-content .loading-indicator .dot{width:6px;height:6px;background:var(--color-primary, #409eff);border-radius:50%;animation:bounce 1.4s ease-in-out infinite both}.x-chat__message-content .loading-indicator .dot:nth-child(1){animation-delay:-.32s}.x-chat__message-content .loading-indicator .dot:nth-child(2){animation-delay:-.16s}.x-chat__message-content .code-block{margin:8px 0;background:var(--color-fill-dark, #1e1e1e);border-radius:6px;overflow:hidden}.x-chat__message-content .code-block .code-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#ffffff1a}.x-chat__message-content .code-block .code-header .language{font-size:12px;color:#aaa}.x-chat__message-content .code-block .code-header .copy-btn{padding:4px 8px;background:transparent;border:none;color:#ccc;font-size:12px;cursor:pointer}.x-chat__message-content .code-block .code-header .copy-btn:hover{color:#fff}.x-chat__message-content .code-block .code-content{padding:12px;margin:0;font-size:13px;color:#d4d4d4;overflow-x:auto}.x-chat__message-content .code-block .code-content code{font-family:Monaco,Menlo,monospace}.x-chat__input{padding:12px;border-top:1px solid var(--color-border-lighter, #ebeef5);display:flex;gap:12px}.x-chat__input .input-textarea{flex:1;padding:8px 12px;border:1px solid var(--color-border, #dcdfe6);border-radius:4px;font-size:14px;resize:none;outline:none;transition:border-color .2s}.x-chat__input .input-textarea:focus{border-color:var(--color-primary, #409eff)}.x-chat__input .input-textarea:disabled{background:var(--color-fill-light, #f5f7fa);cursor:not-allowed}.x-chat__input .send-btn{padding:8px 16px;background:var(--color-primary, #409eff);color:#fff;border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}.x-chat__input .send-btn:hover:not(:disabled){background:var(--color-primary-light, #79bbff)}.x-chat__input .send-btn:disabled{background:var(--color-fill, #e4e7ed);cursor:not-allowed}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.x-log-table{background-color:var(--bg-color, #fff);border-radius:8px;overflow:hidden}.x-log-table.is-loading .x-log-table__wrapper table{opacity:.5}.x-log-table__wrapper{overflow-x:auto}.x-log-table__wrapper table{width:100%;border-collapse:collapse}.x-log-table__wrapper th{padding:12px 16px;background:var(--color-fill-light, #f5f7fa);color:var(--color-text-secondary, #909399);font-weight:500;text-align:left;border-bottom:1px solid var(--color-border-lighter, #ebeef5);font-size:14px}.x-log-table__wrapper td{padding:12px 16px;border-bottom:1px solid var(--color-border-lighter, #ebeef5);color:var(--color-text-regular, #606266);font-size:14px}.x-log-table__wrapper tr:hover td{background:var(--color-fill-lighter, #fafafa)}.x-log-table__wrapper .col-session-id .session-id{color:var(--color-primary, #409eff);font-size:12px}.x-log-table__wrapper .col-title{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-log-table__wrapper .col-message-count{text-align:center}.x-log-table__wrapper .col-status .status-tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;color:#fff}.x-log-table__wrapper .col-time{font-size:12px;color:var(--color-text-secondary, #909399)}.x-log-table__wrapper .col-actions .action-link{padding:0 8px;background:transparent;border:none;color:var(--color-primary, #409eff);font-size:13px;cursor:pointer}.x-log-table__wrapper .col-actions .action-link:hover{text-decoration:underline}.x-log-table__wrapper .col-actions .action-link:not(:last-child){border-right:1px solid var(--color-border-lighter, #ebeef5)}.x-log-table__loading-cell{display:table-cell;text-align:center;padding:40px}.x-log-table__loading-cell .loading-spinner{display:inline-block;width:24px;height:24px;border:2px solid var(--color-border, #dcdfe6);border-top-color:var(--color-primary, #409eff);border-radius:50%;animation:spin .8s linear infinite;margin-right:8px}.x-log-table__loading-cell .loading-text{color:var(--color-text-secondary, #909399)}.x-log-table__empty{text-align:center;padding:40px;color:var(--color-text-placeholder, #c0c4cc)}.x-log-table__pagination{display:flex;align-items:center;justify-content:flex-end;gap:16px;padding:16px}.x-log-table__pagination .pagination-info{font-size:13px;color:var(--color-text-secondary, #909399)}.x-log-table__pagination .pagination-controls{display:flex;align-items:center;gap:8px}.x-log-table__pagination .pagination-controls .pagination-btn{padding:6px 12px;background:var(--bg-color, #fff);border:1px solid var(--color-border, #dcdfe6);border-radius:4px;font-size:13px;color:var(--color-text-regular, #606266);cursor:pointer}.x-log-table__pagination .pagination-controls .pagination-btn:hover:not(:disabled){color:var(--color-primary, #409eff);border-color:var(--color-primary, #409eff)}.x-log-table__pagination .pagination-controls .pagination-btn:disabled{color:var(--color-text-placeholder, #c0c4cc);cursor:not-allowed}.x-log-table__pagination .pagination-controls .pagination-current{font-size:13px;color:var(--color-text-primary, #303133)}.x-log-table__pagination .pagination-size-select{padding:6px 8px;border:1px solid var(--color-border, #dcdfe6);border-radius:4px;font-size:13px;color:var(--color-text-regular, #606266);cursor:pointer}.x-log-table__pagination .pagination-size-select:focus{border-color:var(--color-primary, #409eff);outline:none}@keyframes spin{to{transform:rotate(360deg)}}.x-api-doc{display:flex;background-color:var(--bg-color, #fff);border-radius:8px;border:1px solid var(--color-border-lighter, #ebeef5);overflow:hidden;min-height:400px}.x-api-doc__sidebar{width:240px;border-right:1px solid var(--color-border-lighter, #ebeef5);background:var(--color-fill-light, #f5f7fa);overflow-y:auto}.x-api-doc__sidebar-header{padding:12px 16px;font-weight:600;color:var(--color-text-primary, #303133);border-bottom:1px solid var(--color-border-lighter, #ebeef5)}.x-api-doc__endpoint-list{padding:8px}.x-api-doc__endpoint-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:4px;cursor:pointer;transition:background-color .2s}.x-api-doc__endpoint-item:hover{background:var(--color-fill-lighter, #fafafa)}.x-api-doc__endpoint-item.is-active{background:#409eff1a;border-left:2px solid var(--color-primary, #409eff)}.x-api-doc__endpoint-item .method-tag{display:inline-block;padding:2px 6px;font-size:11px;font-weight:600;color:#fff;border-radius:2px}.x-api-doc__endpoint-item .endpoint-path{font-size:13px;color:var(--color-text-regular, #606266);overflow:hidden;text-overflow:ellipsis}.x-api-doc__content{flex:1;padding:20px;overflow-y:auto}.x-api-doc__header{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--color-border-lighter, #ebeef5);margin-bottom:20px}.x-api-doc__header .method-badge{display:inline-block;padding:4px 12px;font-size:14px;font-weight:600;color:#fff;border-radius:4px}.x-api-doc__header .endpoint-url{font-size:16px;font-weight:500;color:var(--color-text-primary, #303133)}.x-api-doc__header .endpoint-desc{font-size:13px;color:var(--color-text-secondary, #909399)}.x-api-doc__section{margin-bottom:20px}.x-api-doc__section-title{display:flex;align-items:center;justify-content:space-between;font-weight:500;color:var(--color-text-primary, #303133);margin-bottom:12px}.x-api-doc__section-title .copy-btn{padding:4px 8px;background:transparent;border:1px solid var(--color-border, #dcdfe6);border-radius:4px;font-size:12px;color:var(--color-text-regular, #606266);cursor:pointer}.x-api-doc__section-title .copy-btn:hover{color:var(--color-primary, #409eff);border-color:var(--color-primary, #409eff)}.x-api-doc__params-table{width:100%;border-collapse:collapse}.x-api-doc__params-table th{padding:10px 12px;background:var(--color-fill-light, #f5f7fa);color:var(--color-text-secondary, #909399);font-weight:500;text-align:left;border:1px solid var(--color-border-lighter, #ebeef5)}.x-api-doc__params-table td{padding:10px 12px;border:1px solid var(--color-border-lighter, #ebeef5);font-size:13px}.x-api-doc__params-table .param-name{color:var(--color-primary, #409eff);font-weight:500}.x-api-doc__params-table .param-type{color:var(--color-text-regular, #606266)}.x-api-doc__params-table .required-tag{color:var(--color-danger, #f56c6c);font-size:12px}.x-api-doc__params-table .optional-tag{color:var(--color-text-secondary, #909399);font-size:12px}.x-api-doc__params-table .param-desc{color:var(--color-text-regular, #606266)}.x-api-doc__code-block{background:var(--color-fill-dark, #1e1e1e);border-radius:6px;overflow:hidden}.x-api-doc__code-block pre{padding:12px;margin:0;overflow-x:auto}.x-api-doc__code-block code{font-family:Monaco,Menlo,monospace;font-size:13px;color:#d4d4d4;line-height:1.5}.x-api-doc__empty{display:flex;align-items:center;justify-content:center;height:200px;color:var(--color-text-placeholder, #c0c4cc)}.x-var-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--color-fill-light, #f5f7fa);border-radius:4px;font-size:13px;color:var(--color-text-regular, #606266);cursor:default;transition:all .2s}.x-var-tag.is-disabled{opacity:.5}.x-var-tag.is-copyable{cursor:pointer}.x-var-tag.is-copyable:hover{background:var(--color-fill, #e4e7ed)}.x-var-tag--small{font-size:12px;padding:1px 6px}.x-var-tag--default{font-size:13px;padding:2px 8px}.x-var-tag--large{font-size:14px;padding:4px 12px}.x-var-tag--string{border-left:2px solid #409eff}.x-var-tag--number{border-left:2px solid #67c23a}.x-var-tag--boolean{border-left:2px solid #e6a23c}.x-var-tag--object,.x-var-tag--array{border-left:2px solid #909399}.x-var-tag--file{border-left:2px solid #f56c6c}.x-var-tag__icon{font-size:12px}.x-var-tag__name{color:var(--color-primary, #409eff);font-weight:500}.x-var-tag__value{color:var(--color-text-regular, #606266);max-width:100px;overflow:hidden;text-overflow:ellipsis}.x-var-tag__type{font-size:11px}.x-var-tag__copy-btn{padding:0 4px;background:transparent;border:none;font-size:12px;cursor:pointer;color:var(--color-text-secondary, #909399)}.x-var-tag__copy-btn:hover{color:var(--color-primary, #409eff)}
1
+ .x-pro-table{background-color:var(--xto-bg-color, #FFFFFF);border-radius:var(--xto-border-radius-large, 8px)}.x-pro-table__search{padding:var(--xto-spacing-md, 12px) var(--xto-spacing-lg, 24px) 0;margin-bottom:var(--xto-spacing-base, 16px)}.x-pro-table__toolbar{padding:0 var(--xto-spacing-lg, 24px) var(--xto-spacing-base, 16px);display:flex;justify-content:space-between;align-items:center}.x-pro-table__table-wrapper{width:100%;overflow-x:auto}.x-pro-table__table{width:100%;border-collapse:collapse}.x-pro-table__table th,.x-pro-table__table td{padding:var(--xto-spacing-sm, 8px) var(--xto-spacing-base, 16px);border-bottom:1px solid var(--xto-border-color-lighter, #F3F4F6);font-size:var(--xto-font-size-base, 14px);text-align:left}.x-pro-table__table th{background-color:var(--xto-fill-color-light, #F9FAFB);font-weight:500;color:var(--xto-color-text-secondary, #6B7280);-webkit-user-select:none;user-select:none}.x-pro-table__table td{color:var(--xto-color-text-regular, #4B5563)}.x-pro-table__table tr:hover td{background-color:var(--xto-fill-color, #F3F4F6)}.x-pro-table__selection{width:50px;text-align:center!important}.x-pro-table__selection input{cursor:pointer}.x-pro-table__index{width:60px;text-align:center!important}.x-pro-table__column{padding:var(--xto-spacing-sm, 8px) var(--xto-spacing-base, 16px);text-align:left}.x-pro-table__cell{padding:var(--xto-spacing-sm, 8px) var(--xto-spacing-base, 16px)}.x-pro-table__loading,.x-pro-table__empty{padding:var(--xto-spacing-xl, 32px) 0;text-align:center;color:var(--xto-color-text-secondary, #6B7280);font-size:var(--xto-font-size-base, 14px)}.x-pro-table__pagination{display:flex;justify-content:flex-end;padding:var(--xto-spacing-base, 16px) var(--xto-spacing-lg, 24px);border-top:1px solid var(--xto-border-color-lighter, #F3F4F6)}.x-search-form{display:flex;flex-wrap:wrap;gap:16px;padding:16px 20px;background-color:var(--xto-bg-color, #FFFFFF);border-radius:var(--xto-border-radius-base, 6px)}.x-search-form__items{display:flex;flex-wrap:wrap;gap:16px;flex:1}.x-search-form__item{display:flex;align-items:center}.x-search-form__label{padding-right:12px;font-size:14px;color:var(--xto-color-text-regular, #4B5563);text-align:right;flex-shrink:0}.x-search-form__content{flex:1;min-width:180px}.x-search-form__select{width:100%;height:32px;padding:0 12px;font-size:14px;color:var(--xto-color-text-regular, #4B5563);background-color:var(--xto-bg-color, #FFFFFF);border:1px solid var(--xto-border-color, #D1D5DB);border-radius:var(--xto-border-radius-base, 6px);cursor:pointer}.x-search-form__select:hover{border-color:var(--xto-color-text-disabled, #D1D5DB)}.x-search-form__select:focus{border-color:var(--xto-color-primary, #4F46E5);outline:none}.x-search-form__select:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}.x-search-form__actions{display:flex;align-items:center}.x-statistic{display:flex;flex-direction:column;padding:16px 20px;background-color:var(--xto-bg-color, #FFFFFF);border-radius:var(--xto-border-radius-large, 8px);box-shadow:0 2px 12px #00000014}.x-statistic__title{font-size:14px;color:var(--xto-color-info, #6B7280);margin-bottom:8px}.x-statistic__content{display:flex;align-items:baseline;gap:4px}.x-statistic__prefix{font-size:16px;color:var(--xto-color-text-regular, #4B5563);margin-right:4px}.x-statistic__value{font-size:24px;font-weight:600;color:var(--xto-color-text-primary, #1F2937)}.x-statistic__suffix{font-size:14px;color:var(--xto-color-text-regular, #4B5563);margin-left:4px}.x-statistic__trend{display:flex;align-items:center;margin-top:8px;font-size:14px}.x-statistic__trend-icon{margin-right:4px}.x-statistic__trend--up{color:var(--xto-color-success, #10B981)}.x-statistic__trend--down{color:var(--xto-color-danger, #EF4444)}.x-markdown-editor{display:flex;flex-direction:column;border:1px solid var(--xto-border-color, #D1D5DB);border-radius:var(--xto-border-radius-base, 6px);background-color:var(--xto-bg-color, #FFFFFF);overflow:hidden}.x-markdown-editor.is-disabled{background-color:var(--xto-fill-color, #F3F4F6);cursor:not-allowed}.x-markdown-editor.is-disabled .x-markdown-editor__editor{cursor:not-allowed;color:var(--xto-color-text-disabled, #D1D5DB)}.x-markdown-editor__toolbar{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background-color:var(--xto-fill-color-light, #F9FAFB);border-bottom:1px solid var(--xto-border-color-light, #E5E7EB);flex-shrink:0}.x-markdown-editor__toolbar-left,.x-markdown-editor__toolbar-right{display:flex;align-items:center;gap:4px}.x-markdown-editor__toolbar-btn{min-width:28px;height:28px;padding:0 6px;border:none;background:none;cursor:pointer;font-size:14px;color:var(--xto-color-text-regular, #4B5563);border-radius:var(--xto-border-radius-base, 6px);display:flex;align-items:center;justify-content:center}.x-markdown-editor__toolbar-btn:hover:not(:disabled){background-color:var(--xto-border-color-light, #E5E7EB)}.x-markdown-editor__toolbar-btn:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}.x-markdown-editor__toolbar-btn:disabled{cursor:not-allowed;color:var(--xto-color-text-disabled, #D1D5DB)}.x-markdown-editor__toolbar-btn.is-divider{width:1px;height:20px;min-width:1px;padding:0;margin:0 4px;background-color:var(--xto-border-color, #D1D5DB);cursor:default}.x-markdown-editor__toolbar-btn.is-divider:hover{background-color:var(--xto-border-color, #D1D5DB)}.x-markdown-editor__mode-btn{padding:4px 12px;border:1px solid var(--xto-border-color, #D1D5DB);background:var(--xto-bg-color, #FFFFFF);cursor:pointer;font-size:13px;color:var(--xto-color-text-regular, #4B5563);border-radius:var(--xto-border-radius-base, 6px)}.x-markdown-editor__mode-btn:hover{color:var(--xto-color-primary, #4F46E5);border-color:var(--xto-color-primary, #4F46E5);background-color:var(--xto-fill-color-light, #F9FAFB)}.x-markdown-editor__mode-btn:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}.x-markdown-editor__mode-btn.is-active{color:var(--xto-bg-color, #FFFFFF);background-color:var(--xto-color-primary, #4F46E5);border-color:var(--xto-color-primary, #4F46E5)}.x-markdown-editor__body{display:flex;flex:1;overflow:hidden}.x-markdown-editor__toc{width:200px;padding:16px;border-right:1px solid var(--xto-border-color-light, #E5E7EB);background-color:var(--xto-fill-color-light, #F9FAFB);overflow-y:auto;flex-shrink:0}.x-markdown-editor__toc-title{font-size:14px;font-weight:600;color:var(--xto-color-text-primary, #1F2937);margin-bottom:12px}.x-markdown-editor__toc-list{list-style:none;padding:0;margin:0}.x-markdown-editor__toc-item{font-size:13px;color:var(--xto-color-text-regular, #4B5563);padding:6px 0;cursor:pointer}.x-markdown-editor__toc-item:hover{color:var(--xto-color-primary, #4F46E5)}.x-markdown-editor__content,.x-markdown-editor__editor-wrapper{flex:1;display:flex;overflow:hidden}.is-mode-split .x-markdown-editor__editor-wrapper{border-right:1px solid var(--xto-border-color-light, #E5E7EB)}.x-markdown-editor__editor{flex:1;padding:16px;border:none;resize:none;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;line-height:1.6;color:var(--xto-color-text-primary, #1F2937);background-color:transparent;outline:none}.x-markdown-editor__editor::placeholder{color:var(--xto-color-text-placeholder, #9CA3AF)}.x-markdown-editor__editor:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:-2px}.x-markdown-editor__preview{flex:1;padding:16px;overflow-y:auto;font-size:14px;line-height:1.8;color:var(--xto-color-text-primary, #1F2937)}.x-markdown-editor__preview .md-heading{margin:16px 0 8px;font-weight:600;color:var(--xto-color-text-primary, #1F2937)}.x-markdown-editor__preview .md-heading.md-h1{font-size:28px;margin-top:0}.x-markdown-editor__preview .md-heading.md-h2{font-size:24px}.x-markdown-editor__preview .md-heading.md-h3{font-size:20px}.x-markdown-editor__preview .md-heading.md-h4{font-size:18px}.x-markdown-editor__preview .md-heading.md-h5{font-size:16px}.x-markdown-editor__preview .md-heading.md-h6{font-size:14px}.x-markdown-editor__preview .md-paragraph{margin:12px 0}.x-markdown-editor__preview .md-code{padding:2px 6px;background-color:var(--xto-fill-color, #F3F4F6);border-radius:3px;font-family:Monaco,Menlo,monospace;font-size:13px;color:#e96900}.x-markdown-editor__preview .md-code-block{margin:12px 0;padding:16px;background-color:var(--xto-fill-color, #F3F4F6);border-radius:var(--xto-border-radius-base, 6px);overflow-x:auto}.x-markdown-editor__preview .md-code-block code{font-family:Monaco,Menlo,monospace;font-size:13px;line-height:1.6;color:var(--xto-color-text-primary, #1F2937)}.x-markdown-editor__preview .md-link{color:var(--xto-color-primary, #4F46E5);text-decoration:none}.x-markdown-editor__preview .md-link:hover{text-decoration:underline}.x-markdown-editor__preview .md-image{max-width:100%;border-radius:var(--xto-border-radius-base, 6px);margin:8px 0}.x-markdown-editor__preview .md-list{padding-left:24px;margin:12px 0}.x-markdown-editor__preview .md-list li{margin:4px 0}.x-markdown-editor__preview .md-blockquote{margin:12px 0;padding:12px 16px;border-left:4px solid var(--xto-color-primary, #4F46E5);background-color:var(--xto-fill-color-light, #F9FAFB);color:var(--xto-color-text-regular, #4B5563)}.x-markdown-editor__preview .md-blockquote p{margin:4px 0}.x-markdown-editor__preview .md-hr{margin:16px 0;border:none;border-top:1px solid var(--xto-border-color-light, #E5E7EB)}.x-markdown-editor__preview .md-table{width:100%;border-collapse:collapse;margin:12px 0}.x-markdown-editor__preview .md-table th,.x-markdown-editor__preview .md-table td{padding:8px 12px;border:1px solid var(--xto-border-color-light, #E5E7EB);text-align:left}.x-markdown-editor__preview .md-table th{background-color:var(--xto-fill-color-light, #F9FAFB);font-weight:600}.x-markdown-editor.is-mode-edit .x-markdown-editor__editor-wrapper,.x-markdown-editor.is-mode-preview .x-markdown-editor__preview{width:100%}.x-app-card{position:relative;display:flex;flex-direction:column;padding:16px;background-color:var(--xto-bg-color, #FFFFFF);border-radius:var(--xto-border-radius-large, 8px);box-shadow:0 2px 12px #00000014;cursor:pointer;transition:all var(--xto-transition-duration-base, .25s);min-width:200px;max-width:280px}.x-app-card:hover:not(.is-disabled){box-shadow:0 4px 16px #0000001f;transform:translateY(-2px)}.x-app-card:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}.x-app-card.is-disabled{opacity:.5;cursor:not-allowed}.x-app-card--published{border:1px solid rgba(16,185,129,.3)}.x-app-card--draft{border:1px solid rgba(107,114,128,.3)}.x-app-card--archived{border:1px solid rgba(239,68,68,.3)}.x-app-card__icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.x-app-card__icon .icon-text{font-size:24px;color:var(--xto-bg-color, #FFFFFF)}.x-app-card__status{position:absolute;top:12px;right:12px;display:flex;align-items:center;gap:4px;font-size:12px}.x-app-card__status .status-dot{width:6px;height:6px;border-radius:50%}.x-app-card__status .status-label{color:var(--xto-color-text-secondary, #6B7280)}.x-app-card__info{margin-bottom:12px}.x-app-card__name{font-size:16px;font-weight:600;color:var(--xto-color-text-primary, #1F2937);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-app-card__description{font-size:13px;color:var(--xto-color-text-regular, #4B5563);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-app-card__meta{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--xto-color-text-secondary, #6B7280);margin-bottom:12px}.x-app-card__creator,.x-app-card__time{display:block}.x-app-card__actions{display:flex;gap:8px;margin-top:auto}.x-app-card__actions .action-btn{padding:6px 10px;background:var(--xto-fill-color-light, #F9FAFB);border:none;border-radius:var(--xto-border-radius-base, 6px);font-size:14px;cursor:pointer;transition:all var(--xto-transition-duration-fast, .15s)}.x-app-card__actions .action-btn:hover{background:var(--xto-fill-color, #F3F4F6)}.x-app-card__actions .action-btn:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}.x-app-card__actions .action-btn--danger:hover{background:#ef44441a;color:var(--xto-color-danger, #EF4444)}.x-app-card__actions .action-btn--danger:focus-visible{outline-color:var(--xto-color-danger, #EF4444)}.x-chat{display:flex;flex-direction:column;background-color:var(--xto-bg-color, #FFFFFF);border-radius:var(--xto-border-radius-large, 8px);border:1px solid var(--xto-border-color-lighter, #F3F4F6);overflow:hidden}.x-chat.is-disabled{opacity:.6}.x-chat__toolbar{padding:12px;border-bottom:1px solid var(--xto-border-color-lighter, #F3F4F6);display:flex;justify-content:flex-end}.x-chat__toolbar .clear-btn{padding:6px 12px;background:transparent;border:1px solid var(--xto-border-color, #D1D5DB);border-radius:var(--xto-border-radius-base, 6px);font-size:13px;color:var(--xto-color-text-regular, #4B5563);cursor:pointer;transition:all var(--xto-transition-duration-fast, .15s)}.x-chat__toolbar .clear-btn:hover:not(:disabled){color:var(--xto-color-danger, #EF4444);border-color:var(--xto-color-danger, #EF4444)}.x-chat__toolbar .clear-btn:focus-visible{outline:2px solid var(--xto-color-danger, #EF4444);outline-offset:2px}.x-chat__toolbar .clear-btn:disabled{opacity:.5;cursor:not-allowed}.x-chat__messages{flex:1;overflow-y:auto;padding:16px;background-color:var(--xto-bg-color-page, #F9FAFB)}.x-chat__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:var(--xto-color-text-placeholder, #9CA3AF)}.x-chat__empty .empty-icon{font-size:48px;margin-bottom:8px}.x-chat__empty .empty-text{font-size:14px}.x-chat__message{margin-bottom:16px;padding:12px;background:var(--xto-bg-color, #FFFFFF);border-radius:var(--xto-border-radius-large, 8px);box-shadow:0 1px 4px #0000000d}.x-chat__message--user{background:#4f46e50d;border-left:3px solid var(--xto-color-primary, #4F46E5)}.x-chat__message--assistant{background:#10b9810d;border-left:3px solid var(--xto-color-success, #10B981)}.x-chat__message--system{background:#6b72800d;border-left:3px solid var(--xto-color-info, #6B7280)}.x-chat__message-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.x-chat__message-header .role-icon{font-size:16px}.x-chat__message-header .role-label{font-size:13px;font-weight:500;color:var(--xto-color-text-primary, #1F2937)}.x-chat__message-header .timestamp{font-size:12px;color:var(--xto-color-text-secondary, #6B7280)}.x-chat__message-content{font-size:14px;color:var(--xto-color-text-regular, #4B5563);line-height:1.6}.x-chat__message-content .text-content{white-space:pre-wrap}.x-chat__message-content .loading-indicator{display:inline-flex;gap:4px}.x-chat__message-content .loading-indicator .dot{width:6px;height:6px;background:var(--xto-color-primary, #4F46E5);border-radius:50%;animation:bounce 1.4s ease-in-out infinite both}.x-chat__message-content .loading-indicator .dot:nth-child(1){animation-delay:-.32s}.x-chat__message-content .loading-indicator .dot:nth-child(2){animation-delay:-.16s}.x-chat__message-content .code-block{margin:8px 0;background:var(--xto-color-fill-dark, #1e1e1e);border-radius:6px;overflow:hidden}.x-chat__message-content .code-block .code-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#ffffff1a}.x-chat__message-content .code-block .code-header .language{font-size:12px;color:#aaa}.x-chat__message-content .code-block .code-header .copy-btn{padding:4px 8px;background:transparent;border:none;color:#ccc;font-size:12px;cursor:pointer}.x-chat__message-content .code-block .code-header .copy-btn:hover{color:var(--xto-bg-color, #FFFFFF)}.x-chat__message-content .code-block .code-header .copy-btn:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}.x-chat__message-content .code-block .code-content{padding:12px;margin:0;font-size:13px;color:#d4d4d4;overflow-x:auto}.x-chat__message-content .code-block .code-content code{font-family:Monaco,Menlo,monospace}.x-chat__input{padding:12px;border-top:1px solid var(--xto-border-color-lighter, #F3F4F6);display:flex;gap:12px}.x-chat__input .input-textarea{flex:1;padding:8px 12px;border:1px solid var(--xto-border-color, #D1D5DB);border-radius:var(--xto-border-radius-base, 6px);font-size:14px;resize:none;outline:none;transition:border-color var(--xto-transition-duration-fast, .15s)}.x-chat__input .input-textarea:focus{border-color:var(--xto-color-primary, #4F46E5)}.x-chat__input .input-textarea:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}.x-chat__input .input-textarea:disabled{background:var(--xto-fill-color-light, #F9FAFB);cursor:not-allowed}.x-chat__input .send-btn{padding:8px 16px;background:var(--xto-color-primary, #4F46E5);color:var(--xto-bg-color, #FFFFFF);border:none;border-radius:var(--xto-border-radius-base, 6px);font-size:14px;cursor:pointer;transition:all var(--xto-transition-duration-fast, .15s)}.x-chat__input .send-btn:hover:not(:disabled){background:var(--xto-color-primary-light, #79bbff)}.x-chat__input .send-btn:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}.x-chat__input .send-btn:disabled{background:var(--xto-fill-color, #F3F4F6);cursor:not-allowed}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.x-log-table{background-color:var(--xto-bg-color, #FFFFFF);border-radius:var(--xto-border-radius-large, 8px);overflow:hidden}.x-log-table.is-loading .x-log-table__wrapper table{opacity:.5}.x-log-table__wrapper{overflow-x:auto}.x-log-table__wrapper table{width:100%;border-collapse:collapse}.x-log-table__wrapper th{padding:12px 16px;background:var(--xto-fill-color-light, #F9FAFB);color:var(--xto-color-text-secondary, #6B7280);font-weight:500;text-align:left;border-bottom:1px solid var(--xto-border-color-lighter, #F3F4F6);font-size:14px}.x-log-table__wrapper td{padding:12px 16px;border-bottom:1px solid var(--xto-border-color-lighter, #F3F4F6);color:var(--xto-color-text-regular, #4B5563);font-size:14px}.x-log-table__wrapper tr:hover td{background:var(--xto-fill-color-light, #F9FAFB)}.x-log-table__wrapper .col-session-id .session-id{color:var(--xto-color-primary, #4F46E5);font-size:12px}.x-log-table__wrapper .col-title{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-log-table__wrapper .col-message-count{text-align:center}.x-log-table__wrapper .col-status .status-tag{display:inline-block;padding:2px 8px;border-radius:var(--xto-border-radius-base, 6px);font-size:12px;color:var(--xto-bg-color, #FFFFFF)}.x-log-table__wrapper .col-time{font-size:12px;color:var(--xto-color-text-secondary, #6B7280)}.x-log-table__wrapper .col-actions .action-link{padding:0 8px;background:transparent;border:none;color:var(--xto-color-primary, #4F46E5);font-size:13px;cursor:pointer}.x-log-table__wrapper .col-actions .action-link:hover{text-decoration:underline}.x-log-table__wrapper .col-actions .action-link:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px;border-radius:var(--xto-border-radius-base, 6px)}.x-log-table__wrapper .col-actions .action-link:not(:last-child){border-right:1px solid var(--xto-border-color-lighter, #F3F4F6)}.x-log-table__loading-cell{display:table-cell;text-align:center;padding:40px}.x-log-table__loading-cell .loading-spinner{display:inline-block;width:24px;height:24px;border:2px solid var(--xto-border-color, #D1D5DB);border-top-color:var(--xto-color-primary, #4F46E5);border-radius:50%;animation:spin .8s linear infinite;margin-right:8px}.x-log-table__loading-cell .loading-text{color:var(--xto-color-text-secondary, #6B7280)}.x-log-table__empty{text-align:center;padding:40px;color:var(--xto-color-text-placeholder, #9CA3AF)}.x-log-table__pagination{display:flex;align-items:center;justify-content:flex-end;gap:16px;padding:16px}.x-log-table__pagination .pagination-info{font-size:13px;color:var(--xto-color-text-secondary, #6B7280)}.x-log-table__pagination .pagination-controls{display:flex;align-items:center;gap:8px}.x-log-table__pagination .pagination-controls .pagination-btn{padding:6px 12px;background:var(--xto-bg-color, #FFFFFF);border:1px solid var(--xto-border-color, #D1D5DB);border-radius:var(--xto-border-radius-base, 6px);font-size:13px;color:var(--xto-color-text-regular, #4B5563);cursor:pointer}.x-log-table__pagination .pagination-controls .pagination-btn:hover:not(:disabled){color:var(--xto-color-primary, #4F46E5);border-color:var(--xto-color-primary, #4F46E5)}.x-log-table__pagination .pagination-controls .pagination-btn:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}.x-log-table__pagination .pagination-controls .pagination-btn:disabled{color:var(--xto-color-text-placeholder, #9CA3AF);cursor:not-allowed}.x-log-table__pagination .pagination-controls .pagination-current{font-size:13px;color:var(--xto-color-text-primary, #1F2937)}.x-log-table__pagination .pagination-size-select{padding:6px 8px;border:1px solid var(--xto-border-color, #D1D5DB);border-radius:var(--xto-border-radius-base, 6px);font-size:13px;color:var(--xto-color-text-regular, #4B5563);cursor:pointer}.x-log-table__pagination .pagination-size-select:focus{border-color:var(--xto-color-primary, #4F46E5);outline:none}.x-log-table__pagination .pagination-size-select:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}@keyframes spin{to{transform:rotate(360deg)}}.x-api-doc{display:flex;background-color:var(--xto-bg-color, #FFFFFF);border-radius:var(--xto-border-radius-large, 8px);border:1px solid var(--xto-border-color-lighter, #F3F4F6);overflow:hidden;min-height:400px}.x-api-doc__sidebar{width:240px;border-right:1px solid var(--xto-border-color-lighter, #F3F4F6);background:var(--xto-fill-color-light, #F9FAFB);overflow-y:auto}.x-api-doc__sidebar-header{padding:12px 16px;font-weight:600;color:var(--xto-color-text-primary, #1F2937);border-bottom:1px solid var(--xto-border-color-lighter, #F3F4F6)}.x-api-doc__endpoint-list{padding:8px}.x-api-doc__endpoint-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--xto-border-radius-base, 6px);cursor:pointer;transition:background-color var(--xto-transition-duration-fast, .15s)}.x-api-doc__endpoint-item:hover{background:var(--xto-fill-color-light, #F9FAFB)}.x-api-doc__endpoint-item:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}.x-api-doc__endpoint-item.is-active{background:#4f46e51a;border-left:2px solid var(--xto-color-primary, #4F46E5)}.x-api-doc__endpoint-item .method-tag{display:inline-block;padding:2px 6px;font-size:11px;font-weight:600;color:var(--xto-bg-color, #FFFFFF);border-radius:2px}.x-api-doc__endpoint-item .endpoint-path{font-size:13px;color:var(--xto-color-text-regular, #4B5563);overflow:hidden;text-overflow:ellipsis}.x-api-doc__content{flex:1;padding:20px;overflow-y:auto}.x-api-doc__header{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--xto-border-color-lighter, #F3F4F6);margin-bottom:20px}.x-api-doc__header .method-badge{display:inline-block;padding:4px 12px;font-size:14px;font-weight:600;color:var(--xto-bg-color, #FFFFFF);border-radius:var(--xto-border-radius-base, 6px)}.x-api-doc__header .endpoint-url{font-size:16px;font-weight:500;color:var(--xto-color-text-primary, #1F2937)}.x-api-doc__header .endpoint-desc{font-size:13px;color:var(--xto-color-text-secondary, #6B7280)}.x-api-doc__section{margin-bottom:20px}.x-api-doc__section-title{display:flex;align-items:center;justify-content:space-between;font-weight:500;color:var(--xto-color-text-primary, #1F2937);margin-bottom:12px}.x-api-doc__section-title .copy-btn{padding:4px 8px;background:transparent;border:1px solid var(--xto-border-color, #D1D5DB);border-radius:var(--xto-border-radius-base, 6px);font-size:12px;color:var(--xto-color-text-regular, #4B5563);cursor:pointer}.x-api-doc__section-title .copy-btn:hover{color:var(--xto-color-primary, #4F46E5);border-color:var(--xto-color-primary, #4F46E5)}.x-api-doc__section-title .copy-btn:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px}.x-api-doc__params-table{width:100%;border-collapse:collapse}.x-api-doc__params-table th{padding:10px 12px;background:var(--xto-fill-color-light, #F9FAFB);color:var(--xto-color-text-secondary, #6B7280);font-weight:500;text-align:left;border:1px solid var(--xto-border-color-lighter, #F3F4F6)}.x-api-doc__params-table td{padding:10px 12px;border:1px solid var(--xto-border-color-lighter, #F3F4F6);font-size:13px}.x-api-doc__params-table .param-name{color:var(--xto-color-primary, #4F46E5);font-weight:500}.x-api-doc__params-table .param-type{color:var(--xto-color-text-regular, #4B5563)}.x-api-doc__params-table .required-tag{color:var(--xto-color-danger, #EF4444);font-size:12px}.x-api-doc__params-table .optional-tag{color:var(--xto-color-text-secondary, #6B7280);font-size:12px}.x-api-doc__params-table .param-desc{color:var(--xto-color-text-regular, #4B5563)}.x-api-doc__code-block{background:var(--xto-color-fill-dark, #1e1e1e);border-radius:6px;overflow:hidden}.x-api-doc__code-block pre{padding:12px;margin:0;overflow-x:auto}.x-api-doc__code-block code{font-family:Monaco,Menlo,monospace;font-size:13px;color:#d4d4d4;line-height:1.5}.x-api-doc__empty{display:flex;align-items:center;justify-content:center;height:200px;color:var(--xto-color-text-placeholder, #9CA3AF)}.x-var-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--xto-fill-color-light, #F9FAFB);border-radius:var(--xto-border-radius-base, 6px);font-size:13px;color:var(--xto-color-text-regular, #4B5563);cursor:default;transition:all var(--xto-transition-duration-fast, .15s)}.x-var-tag.is-disabled{opacity:.5}.x-var-tag.is-copyable{cursor:pointer}.x-var-tag.is-copyable:hover{background:var(--xto-fill-color, #F3F4F6)}.x-var-tag--small{font-size:12px;padding:1px 6px}.x-var-tag--default{font-size:13px;padding:2px 8px}.x-var-tag--large{font-size:14px;padding:4px 12px}.x-var-tag--string{border-left:2px solid var(--xto-color-primary, #4F46E5)}.x-var-tag--number{border-left:2px solid var(--xto-color-success, #10B981)}.x-var-tag--boolean{border-left:2px solid var(--xto-color-warning, #F59E0B)}.x-var-tag--object,.x-var-tag--array{border-left:2px solid var(--xto-color-info, #6B7280)}.x-var-tag--file{border-left:2px solid var(--xto-color-danger, #EF4444)}.x-var-tag__icon{font-size:12px}.x-var-tag__name{color:var(--xto-color-primary, #4F46E5);font-weight:500}.x-var-tag__value{color:var(--xto-color-text-regular, #4B5563);max-width:100px;overflow:hidden;text-overflow:ellipsis}.x-var-tag__type{font-size:11px}.x-var-tag__copy-btn{padding:0 4px;background:transparent;border:none;font-size:12px;cursor:pointer;color:var(--xto-color-text-secondary, #6B7280)}.x-var-tag__copy-btn:hover{color:var(--xto-color-primary, #4F46E5)}.x-var-tag__copy-btn:focus-visible{outline:2px solid var(--xto-color-primary, #4F46E5);outline-offset:2px;border-radius:var(--xto-border-radius-base, 6px)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xto/business",
3
- "version": "1.2.1",
3
+ "version": "1.3.0",
4
4
  "description": "Xto Business - Business components",
5
5
  "homepage": "https://jinguchu.github.io/xto-ui/",
6
6
  "repository": {
@@ -26,10 +26,10 @@
26
26
  "access": "public"
27
27
  },
28
28
  "dependencies": {
29
- "@xto/base": "^1.4.1",
30
- "@xto/core": "^1.2.4",
31
- "@xto/data": "^1.2.2",
32
- "@xto/form": "^1.4.1"
29
+ "@xto/base": "^1.5.0",
30
+ "@xto/core": "^1.3.0",
31
+ "@xto/data": "^1.3.0",
32
+ "@xto/form": "^1.5.0"
33
33
  },
34
34
  "peerDependencies": {
35
35
  "vue": "^3.4.0"