@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 +110 -110
- package/es/style.css +1 -1
- package/lib/index.cjs +6 -6
- package/lib/style.css +1 -1
- package/package.json +5 -5
package/es/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { defineComponent as I, ref as
|
|
2
|
-
import { useNamespace as
|
|
3
|
-
import { Space as
|
|
4
|
-
import { Input as
|
|
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 =
|
|
24
|
-
|
|
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 =
|
|
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(
|
|
48
|
+
M(a(N), null, {
|
|
49
49
|
default: U(() => [
|
|
50
|
-
(o(!0), c(
|
|
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(),
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
90
|
+
M(a(N), null, {
|
|
91
91
|
default: U(() => [
|
|
92
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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(
|
|
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(),
|
|
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" ?
|
|
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(
|
|
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(),
|
|
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(),
|
|
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(
|
|
277
|
+
M(a(N), null, {
|
|
278
278
|
default: U(() => [
|
|
279
|
-
M(a(
|
|
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(
|
|
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 =
|
|
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 =
|
|
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(),
|
|
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 =
|
|
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(),
|
|
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
|
|
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>${
|
|
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>${
|
|
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>${
|
|
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,
|
|
476
|
-
u.push(`<h${f} class="md-heading md-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>${
|
|
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>${
|
|
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">${
|
|
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 =
|
|
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,
|
|
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(
|
|
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 =
|
|
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,
|
|
574
|
-
k.scrollTop =
|
|
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(
|
|
588
|
-
key:
|
|
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(),
|
|
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(
|
|
633
|
-
key:
|
|
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
|
-
|
|
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
|
-
|
|
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: "#
|
|
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 =
|
|
685
|
+
const n = t, u = v, l = j("app-card"), i = E(() => {
|
|
686
686
|
const d = {
|
|
687
|
-
published: { label: "已发布", color: "#
|
|
687
|
+
published: { label: "已发布", color: "#10B981", dotColor: "#10B981" },
|
|
688
688
|
draft: { label: "草稿", color: "#909399", dotColor: "#909399" },
|
|
689
|
-
archived: { label: "已归档", color: "#
|
|
689
|
+
archived: { label: "已归档", color: "#EF4444", dotColor: "#EF4444" }
|
|
690
690
|
};
|
|
691
691
|
return d[n.status] || d.draft;
|
|
692
|
-
}), C =
|
|
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" },
|
|
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 =
|
|
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 =
|
|
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,
|
|
826
|
-
for (; (
|
|
827
|
-
|
|
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,
|
|
829
|
+
content: w.slice(f, B.index)
|
|
830
830
|
}), k.push({
|
|
831
831
|
type: "code",
|
|
832
|
-
content:
|
|
833
|
-
language:
|
|
834
|
-
}), f =
|
|
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(
|
|
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(
|
|
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,
|
|
891
|
+
}, " 📋 复制 ", 8, Be)
|
|
892
892
|
]),
|
|
893
|
-
e("pre",
|
|
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
|
-
|
|
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,
|
|
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" },
|
|
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 =
|
|
935
|
-
success: { label: "成功", color: "#
|
|
936
|
-
error: { label: "失败", color: "#
|
|
937
|
-
running: { label: "运行中", color: "#
|
|
938
|
-
})[d] || { label: "未知", color: "#909399" }, C =
|
|
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(
|
|
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",
|
|
997
|
-
e("td",
|
|
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,
|
|
1001
|
+
}, " 查看详情 ", 8, Ae),
|
|
1002
1002
|
e("button", {
|
|
1003
1003
|
class: "action-link",
|
|
1004
1004
|
onClick: (p) => b(m)
|
|
1005
|
-
}, " 链路追踪 ", 8,
|
|
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",
|
|
1016
|
-
e("div",
|
|
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,
|
|
1022
|
-
e("span",
|
|
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,
|
|
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,
|
|
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 =
|
|
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: "#
|
|
1064
|
-
POST: "#
|
|
1065
|
-
PUT: "#
|
|
1066
|
-
DELETE: "#
|
|
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(
|
|
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(
|
|
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(
|
|
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 =
|
|
1230
|
+
const n = t, u = v, l = j("var-tag"), i = E(() => {
|
|
1231
1231
|
const b = {
|
|
1232
|
-
string: { icon: "📝", color: "#
|
|
1233
|
-
number: { icon: "🔢", color: "#
|
|
1234
|
-
boolean: { icon: "✓", color: "#
|
|
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: "#
|
|
1237
|
+
file: { icon: "📁", color: "#EF4444", label: "文件" }
|
|
1238
1238
|
};
|
|
1239
1239
|
return b[n.type] || b.string;
|
|
1240
|
-
}), C =
|
|
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 =
|
|
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;"}),
|
|
3
|
-
`),c=[];let l=!1,n="",k=[],f=!1,
|
|
4
|
-
`))}</code></pre>`),l=!1,n="",k=[]):(o(),s(),i(),l=!0,n=
|
|
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={"&":"&","<":"<",">":">",'"':""","'":"'"};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(),
|
|
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("")},{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.
|
|
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.
|
|
30
|
-
"@xto/core": "^1.
|
|
31
|
-
"@xto/data": "^1.
|
|
32
|
-
"@xto/form": "^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"
|