@marktowin/prototype-core 1.0.7 → 1.0.8

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.
@@ -1,6 +1,6 @@
1
- import { defineComponent as kn, computed as k, openBlock as v, createBlock as st, resolveDynamicComponent as Bo, createElementBlock as f, Fragment as I, renderList as N, normalizeClass as P, createTextVNode as G, toDisplayString as p, createElementVNode as e, createCommentVNode as w, ref as b, watch as Ae, createVNode as X, Transition as os, withCtx as as, unref as l, withModifiers as re, withDirectives as A, vModelText as z, normalizeStyle as Pe, createStaticVNode as Kl, reactive as Fn, onBeforeUnmount as ls, vModelSelect as Ie, nextTick as ma, onMounted as Ur, isRef as yn, vModelCheckbox as jr } from "vue";
1
+ import { defineComponent as kn, computed as k, openBlock as v, createBlock as st, resolveDynamicComponent as Bo, createElementBlock as f, Fragment as _, renderList as N, normalizeClass as P, createTextVNode as H, toDisplayString as p, createElementVNode as e, createCommentVNode as w, ref as b, watch as Ae, createVNode as X, Transition as os, withCtx as as, unref as l, withModifiers as re, withDirectives as A, vModelText as z, normalizeStyle as Pe, createStaticVNode as Kl, reactive as Fn, onBeforeUnmount as ls, vModelSelect as _e, nextTick as ma, onMounted as Ur, isRef as yn, vModelCheckbox as jr } from "vue";
2
2
  import { Save as Vr, CloudUpload as Lr, Download as Fr, X as Ao, Plus as Kn, ChevronDown as Kr, ChevronRight as zr, Trash2 as hn, RefreshCw as Gr, AlertTriangle as Hr, CheckCircle2 as Wr, CircleDot as zl, Bug as Yr, ImagePlus as Gl, Filter as Jr, Search as Xr, SunMedium as Zr, RotateCcw as qr, PanelTop as ss, Keyboard as Qr } from "@lucide/vue";
3
- import { g as Yn, a as eu, s as tu } from "./index-DGQ_BQUA.js";
3
+ import { g as Yn, a as eu, s as tu } from "./index-Rlo9gWPV.js";
4
4
  const zn = /* @__PURE__ */ kn({
5
5
  __name: "ScreenRenderer",
6
6
  props: {
@@ -19,24 +19,24 @@ const zn = /* @__PURE__ */ kn({
19
19
  emits: ["change"],
20
20
  setup(t) {
21
21
  return (n, s) => (v(), f("div", nu, [
22
- (v(!0), f(I, null, N(t.items, (r) => (v(), f("button", {
22
+ (v(!0), f(_, null, N(t.items, (r) => (v(), f("button", {
23
23
  key: r.id,
24
24
  class: P(["flex flex-col items-center gap-1 rounded-full py-2 text-xs font-normal transition active:scale-95", t.active === r.id ? "bg-soft text-ocean" : "text-muted"]),
25
25
  onClick: (u) => n.$emit("change", r.id)
26
26
  }, [
27
27
  (v(), st(Bo(r.icon), { class: "h-5 w-5" })),
28
- G(" " + p(r.label), 1)
28
+ H(" " + p(r.label), 1)
29
29
  ], 10, ou))), 128))
30
30
  ]));
31
31
  }
32
- }), lu = { class: "prototype-state-switcher" }, su = ["onClick"], iu = {
32
+ }), lu = { class: "prototype-state-switcher" }, su = ["onClick"], iu = { class: "min-w-0 flex-1 truncate text-left" }, ru = { class: "ml-auto flex items-center gap-2" }, uu = {
33
33
  key: 0,
34
34
  class: "prototype-state-annotation-count"
35
- }, ru = {
35
+ }, cu = {
36
36
  key: 1,
37
37
  class: "prototype-state-highlight-dot",
38
38
  "aria-hidden": "true"
39
- }, uu = /* @__PURE__ */ kn({
39
+ }, du = /* @__PURE__ */ kn({
40
40
  __name: "PrototypeStateSwitcher",
41
41
  props: {
42
42
  title: {},
@@ -50,63 +50,65 @@ const zn = /* @__PURE__ */ kn({
50
50
  const s = n;
51
51
  return (r, u) => (v(), f("aside", lu, [
52
52
  e("p", null, p(t.title), 1),
53
- (v(!0), f(I, null, N(t.options, (m) => {
53
+ (v(!0), f(_, null, N(t.options, (m) => {
54
54
  var g, C;
55
55
  return v(), f("button", {
56
56
  key: m.id,
57
57
  type: "button",
58
58
  class: P({ active: t.activeId === m.id }),
59
- onClick: (_) => s("change", m.id)
59
+ onClick: (I) => s("change", m.id)
60
60
  }, [
61
61
  u[0] || (u[0] = e("span", null, null, -1)),
62
- G(" " + p(m.label) + " ", 1),
63
- (g = t.countForState) != null && g.call(t, m.id) ? (v(), f("b", iu, p(t.countForState(m.id)), 1)) : w("", !0),
64
- (C = t.highlightedIds) != null && C.has(m.id) ? (v(), f("span", ru)) : w("", !0)
62
+ e("span", iu, p(m.label), 1),
63
+ e("span", ru, [
64
+ (g = t.countForState) != null && g.call(t, m.id) ? (v(), f("b", uu, p(t.countForState(m.id)), 1)) : w("", !0),
65
+ (C = t.highlightedIds) != null && C.has(m.id) ? (v(), f("span", cu)) : w("", !0)
66
+ ])
65
67
  ], 10, su);
66
68
  }), 128))
67
69
  ]));
68
70
  }
69
- }), cu = { class: "fixed inset-0 z-[200] bg-canvas flex flex-col" }, du = { class: "flex items-center justify-between px-6 py-3 border-b border-line bg-panel relative" }, pu = { class: "flex items-center gap-3" }, vu = { class: "text-xs text-muted" }, fu = { class: "flex items-center gap-2" }, mu = ["disabled"], gu = ["disabled", "title"], bu = { class: "grid grid-cols-[1fr_3fr_1fr] flex-1 overflow-hidden" }, yu = { class: "min-w-[200px] border-r border-line bg-panel flex flex-col overflow-hidden" }, hu = { class: "p-4 border-b border-line" }, wu = { class: "flex-1 overflow-y-auto p-3 space-y-2" }, xu = ["onClick"], Su = ["value", "onInput"], ku = ["onClick"], Cu = {
71
+ }), pu = { class: "fixed inset-0 z-[200] bg-canvas flex flex-col" }, vu = { class: "flex items-center justify-between px-6 py-3 border-b border-line bg-panel relative" }, fu = { class: "flex items-center gap-3" }, mu = { class: "text-xs text-muted" }, gu = { class: "flex items-center gap-2" }, bu = ["disabled"], yu = ["disabled", "title"], hu = { class: "grid grid-cols-[1fr_3fr_1fr] flex-1 overflow-hidden" }, wu = { class: "min-w-[200px] border-r border-line bg-panel flex flex-col overflow-hidden" }, xu = { class: "p-4 border-b border-line" }, Su = { class: "flex-1 overflow-y-auto p-3 space-y-2" }, ku = ["onClick"], Cu = ["value", "onInput"], $u = ["onClick"], _u = {
70
72
  key: 0,
71
73
  class: "border-t border-line"
72
- }, $u = ["onClick"], Iu = ["onClick"], _u = ["onClick"], Pu = { class: "flex-1 flex flex-col bg-canvas min-w-0" }, Du = { class: "flex items-center justify-between px-6 py-3 border-b border-line bg-panel" }, Au = { class: "flex items-center gap-3" }, Nu = ["value"], Tu = { class: "flex items-center gap-4" }, Ru = { class: "flex items-center gap-2" }, Eu = { class: "text-xs text-muted w-8 text-right" }, Ou = { class: "flex flex-wrap gap-4 content-start min-h-full" }, Bu = ["onDragstart", "onDragover", "onDrop"], Mu = {
74
+ }, Iu = ["onClick"], Pu = ["onClick"], Du = ["onClick"], Au = { class: "flex-1 flex flex-col bg-canvas min-w-0" }, Nu = { class: "flex items-center justify-between px-6 py-3 border-b border-line bg-panel" }, Tu = { class: "flex items-center gap-3" }, Ru = ["value"], Eu = { class: "flex items-center gap-4" }, Ou = { class: "flex items-center gap-2" }, Bu = { class: "text-xs text-muted w-8 text-right" }, Mu = { class: "flex flex-wrap gap-4 content-start min-h-full" }, Uu = ["onDragstart", "onDragover", "onDrop"], ju = {
73
75
  key: 0,
74
76
  class: "absolute -left-2 top-1/2 -translate-y-1/2 h-[72%] w-[3px] rounded-full bg-ocean pointer-events-none z-20",
75
77
  style: { "box-shadow": "0 0 10px rgb(var(--color-ocean)), 0 0 4px rgb(var(--color-ocean))" }
76
- }, Uu = {
78
+ }, Vu = {
77
79
  key: 1,
78
80
  class: "absolute -right-2 top-1/2 -translate-y-1/2 h-[72%] w-[3px] rounded-full bg-ocean pointer-events-none z-20",
79
81
  style: { "box-shadow": "0 0 10px rgb(var(--color-ocean)), 0 0 4px rgb(var(--color-ocean))" }
80
- }, ju = { class: "relative cursor-grab active:cursor-grabbing" }, Vu = {
82
+ }, Lu = { class: "relative cursor-grab active:cursor-grabbing" }, Fu = {
81
83
  key: 0,
82
84
  class: "desktop-frame-thumb"
83
- }, Lu = { class: "desktop-screen-content-thumb" }, Fu = {
85
+ }, Ku = { class: "desktop-screen-content-thumb" }, zu = {
84
86
  key: 1,
85
87
  class: "phone-screen",
86
88
  style: { width: "393px", height: "852px" }
87
- }, Ku = {
89
+ }, Gu = {
88
90
  class: "screen-content",
89
91
  style: { height: "100%", overflow: "hidden", "padding-bottom": "20px" }
90
- }, zu = ["onClick"], Gu = { class: "flex items-center justify-center gap-1 max-w-full" }, Hu = { class: "text-center text-[11px] text-ink leading-tight truncate" }, Wu = { class: "text-center text-[10px] text-muted" }, Yu = {
92
+ }, Hu = ["onClick"], Wu = { class: "flex items-center justify-center gap-1 max-w-full" }, Yu = { class: "text-center text-[11px] text-ink leading-tight truncate" }, Ju = { class: "text-center text-[10px] text-muted" }, Xu = {
91
93
  key: 1,
92
94
  class: "flex flex-col items-center justify-center w-full h-48 text-muted relative"
93
- }, Ju = {
95
+ }, Zu = {
94
96
  key: 0,
95
97
  class: "absolute inset-x-6 top-0 h-[3px] rounded-full bg-ocean pointer-events-none z-20",
96
98
  style: { "box-shadow": "0 0 10px rgb(var(--color-ocean)), 0 0 4px rgb(var(--color-ocean))" }
97
- }, Xu = { class: "h-16 w-16 rounded-full border-2 border-dashed border-line flex items-center justify-center mb-3" }, Zu = { class: "min-w-[200px] border-l border-line bg-panel flex flex-col overflow-hidden" }, qu = { class: "flex-1 overflow-y-auto p-3 space-y-4" }, Qu = { key: 0 }, ec = { class: "grid grid-cols-2 gap-3" }, tc = ["onDragstart"], nc = {
99
+ }, qu = { class: "h-16 w-16 rounded-full border-2 border-dashed border-line flex items-center justify-center mb-3" }, Qu = { class: "min-w-[200px] border-l border-line bg-panel flex flex-col overflow-hidden" }, ec = { class: "flex-1 overflow-y-auto p-3 space-y-4" }, tc = { key: 0 }, nc = { class: "grid grid-cols-2 gap-3" }, oc = ["onDragstart"], ac = {
98
100
  class: "phone-screen",
99
101
  style: { width: "393px", height: "852px" }
100
- }, oc = {
102
+ }, lc = {
101
103
  class: "screen-content",
102
104
  style: { height: "100%", overflow: "hidden", "padding-bottom": "20px" }
103
- }, ac = { class: "flex items-center gap-1 px-0.5" }, lc = { class: "text-[10px] font-mono text-muted" }, sc = { class: "text-[10px] text-ink leading-tight truncate" }, ic = {
105
+ }, sc = { class: "flex items-center gap-1 px-0.5" }, ic = { class: "text-[10px] font-mono text-muted" }, rc = { class: "text-[10px] text-ink leading-tight truncate" }, uc = {
104
106
  key: 0,
105
107
  class: "px-0.5 text-[10px] leading-tight text-ocean truncate"
106
- }, rc = { key: 1 }, uc = { class: "grid grid-cols-2 gap-3" }, cc = ["onDragstart"], dc = { class: "desktop-frame-thumb" }, pc = { class: "desktop-screen-content-thumb" }, vc = { class: "flex items-center gap-1 px-0.5" }, fc = { class: "text-[10px] font-mono text-muted" }, mc = { class: "text-[10px] text-ink leading-tight truncate" }, gc = {
108
+ }, cc = { key: 1 }, dc = { class: "grid grid-cols-2 gap-3" }, pc = ["onDragstart"], vc = { class: "desktop-frame-thumb" }, fc = { class: "desktop-screen-content-thumb" }, mc = { class: "flex items-center gap-1 px-0.5" }, gc = { class: "text-[10px] font-mono text-muted" }, bc = { class: "text-[10px] text-ink leading-tight truncate" }, yc = {
107
109
  key: 0,
108
110
  class: "px-0.5 text-[10px] leading-tight text-ocean truncate"
109
- }, bc = 0.18, yc = 0.38, Hl = 393, hc = 852, Un = 640, Wl = 360, Yl = 1920, wc = /* @__PURE__ */ kn({
111
+ }, hc = 0.18, wc = 0.38, Hl = 393, xc = 852, Un = 640, Wl = 360, Yl = 1920, Sc = /* @__PURE__ */ kn({
110
112
  __name: "FlowEditor",
111
113
  props: {
112
114
  flows: {},
@@ -120,7 +122,7 @@ const zn = /* @__PURE__ */ kn({
120
122
  Ae(() => s.flows, (x) => {
121
123
  u.value = JSON.parse(JSON.stringify(x));
122
124
  }, { deep: !0 });
123
- const m = b(0), g = b(0), C = k(() => u.value[m.value]), _ = k(() => {
125
+ const m = b(0), g = b(0), C = k(() => u.value[m.value]), I = k(() => {
124
126
  var x;
125
127
  return ((x = C.value) == null ? void 0 : x.rows[g.value]) ?? [];
126
128
  }), M = b(0.28);
@@ -128,7 +130,7 @@ const zn = /* @__PURE__ */ kn({
128
130
  return x === "pc" ? M.value * Un / Yl : M.value;
129
131
  }
130
132
  function xe(x) {
131
- const S = x === "pc" ? Un : Hl, T = x === "pc" ? Wl : hc;
133
+ const S = x === "pc" ? Un : Hl, T = x === "pc" ? Wl : xc;
132
134
  return {
133
135
  width: `${Math.ceil(S * M.value) + 2}px`,
134
136
  height: `${Math.ceil(T * M.value) + 2}px`
@@ -250,17 +252,17 @@ const zn = /* @__PURE__ */ kn({
250
252
  } catch {
251
253
  return;
252
254
  }
253
- const H = Ee();
254
- if (!H) return;
255
+ const G = Ee();
256
+ if (!G) return;
255
257
  const le = T === "before" ? S : S + 1;
256
258
  if (D.type === "palette" && D.screenId) {
257
259
  const $ = { screenId: D.screenId, stateId: D.stateId };
258
- H.splice(le, 0, $);
260
+ G.splice(le, 0, $);
259
261
  } else if (D.type === "sort" && typeof D.fromIndex == "number") {
260
262
  const $ = D.fromIndex;
261
263
  if ($ === le) return;
262
- const [$n] = H.splice($, 1), Wt = $ < le ? le - 1 : le;
263
- H.splice(Wt, 0, $n);
264
+ const [$n] = G.splice($, 1), Wt = $ < le ? le - 1 : le;
265
+ G.splice(Wt, 0, $n);
264
266
  }
265
267
  }
266
268
  function Dt(x) {
@@ -314,11 +316,11 @@ const zn = /* @__PURE__ */ kn({
314
316
  }
315
317
  return (x, S) => {
316
318
  var T, R;
317
- return v(), f("div", cu, [
318
- e("header", du, [
319
- e("div", pu, [
319
+ return v(), f("div", pu, [
320
+ e("header", vu, [
321
+ e("div", fu, [
320
322
  S[4] || (S[4] = e("h2", { class: "text-lg font-semibold text-ink" }, "流程编排", -1)),
321
- e("span", vu, p((T = C.value) == null ? void 0 : T.title) + " · 子流程 " + p(g.value + 1) + " / " + p((R = C.value) == null ? void 0 : R.rows.length), 1)
323
+ e("span", mu, p((T = C.value) == null ? void 0 : T.title) + " · 子流程 " + p(g.value + 1) + " / " + p((R = C.value) == null ? void 0 : R.rows.length), 1)
322
324
  ]),
323
325
  X(os, { name: "toast" }, {
324
326
  default: as(() => [
@@ -329,15 +331,15 @@ const zn = /* @__PURE__ */ kn({
329
331
  ]),
330
332
  _: 1
331
333
  }),
332
- e("div", fu, [
334
+ e("div", gu, [
333
335
  e("button", {
334
336
  class: "flex items-center gap-1.5 rounded-lg bg-soft px-3 py-1.5 text-sm font-medium text-ink hover:bg-canvas transition",
335
337
  disabled: Fe.value,
336
338
  onClick: Ze
337
339
  }, [
338
340
  X(l(Vr), { class: "h-4 w-4" }),
339
- G(" " + p(Fe.value ? "保存中…" : "保存到当前会话"), 1)
340
- ], 8, mu),
341
+ H(" " + p(Fe.value ? "保存中…" : "保存到当前会话"), 1)
342
+ ], 8, bu),
341
343
  e("button", {
342
344
  class: "flex items-center gap-1.5 rounded-lg bg-ink px-3 py-1.5 text-sm font-medium text-white transition hover:bg-ocean disabled:cursor-not-allowed disabled:opacity-40",
343
345
  disabled: Ye.value || !t.canPushRemote,
@@ -345,14 +347,14 @@ const zn = /* @__PURE__ */ kn({
345
347
  onClick: At
346
348
  }, [
347
349
  X(l(Lr), { class: "h-4 w-4" }),
348
- G(" " + p(Ye.value ? "推送中…" : "推送到 Gitee"), 1)
349
- ], 8, gu),
350
+ H(" " + p(Ye.value ? "推送中…" : "推送到 Gitee"), 1)
351
+ ], 8, yu),
350
352
  e("button", {
351
353
  class: "flex items-center gap-1.5 rounded-lg bg-ocean px-3 py-1.5 text-sm font-medium text-white hover:opacity-90 transition",
352
354
  onClick: Cn
353
355
  }, [
354
356
  X(l(Fr), { class: "h-4 w-4" }),
355
- S[5] || (S[5] = G(" 导出 JSON ", -1))
357
+ S[5] || (S[5] = H(" 导出 JSON ", -1))
356
358
  ]),
357
359
  e("button", {
358
360
  class: "flex h-8 w-8 items-center justify-center rounded-full bg-soft text-ink hover:bg-canvas transition",
@@ -362,97 +364,97 @@ const zn = /* @__PURE__ */ kn({
362
364
  ])
363
365
  ])
364
366
  ]),
365
- e("div", bu, [
366
- e("aside", yu, [
367
- e("div", hu, [
367
+ e("div", hu, [
368
+ e("aside", wu, [
369
+ e("div", xu, [
368
370
  e("button", {
369
371
  class: "flex w-full items-center justify-center gap-2 rounded-xl bg-ocean py-2.5 text-sm font-medium text-white hover:opacity-90 transition",
370
372
  onClick: ln
371
373
  }, [
372
374
  X(l(Kn), { class: "h-4 w-4" }),
373
- S[6] || (S[6] = G(" 新建主流程 ", -1))
375
+ S[6] || (S[6] = H(" 新建主流程 ", -1))
374
376
  ])
375
377
  ]),
376
- e("div", wu, [
377
- (v(!0), f(I, null, N(u.value, (D, H) => (v(), f("div", {
378
+ e("div", Su, [
379
+ (v(!0), f(_, null, N(u.value, (D, G) => (v(), f("div", {
378
380
  key: D.id,
379
- class: P(["rounded-xl border border-line bg-soft overflow-hidden", { "ring-1 ring-ocean": m.value === H }])
381
+ class: P(["rounded-xl border border-line bg-soft overflow-hidden", { "ring-1 ring-ocean": m.value === G }])
380
382
  }, [
381
383
  e("div", {
382
384
  class: "flex items-center gap-2 px-3 py-2.5 cursor-pointer hover:bg-canvas transition",
383
- onClick: (le) => Ne(H)
385
+ onClick: (le) => Ne(G)
384
386
  }, [
385
- (v(), st(Bo(Ce.value.has(H) ? l(Kr) : l(zr)), { class: "h-4 w-4 text-muted" })),
387
+ (v(), st(Bo(Ce.value.has(G) ? l(Kr) : l(zr)), { class: "h-4 w-4 text-muted" })),
386
388
  e("input", {
387
389
  value: D.title,
388
390
  class: "flex-1 min-w-0 bg-transparent text-sm font-semibold text-ink outline-none",
389
391
  onClick: S[0] || (S[0] = re(() => {
390
392
  }, ["stop"])),
391
- onInput: (le) => vt(H, le.target.value)
392
- }, null, 40, Su),
393
+ onInput: (le) => vt(G, le.target.value)
394
+ }, null, 40, Cu),
393
395
  e("button", {
394
396
  class: "text-muted hover:text-danger transition",
395
397
  title: "删除主流程",
396
- onClick: re((le) => pt(H), ["stop"])
398
+ onClick: re((le) => pt(G), ["stop"])
397
399
  }, [
398
400
  X(l(hn), { class: "h-3.5 w-3.5" })
399
- ], 8, ku)
400
- ], 8, xu),
401
- Ce.value.has(H) ? (v(), f("div", Cu, [
402
- (v(!0), f(I, null, N(D.rows, (le, ge) => (v(), f("div", {
401
+ ], 8, $u)
402
+ ], 8, ku),
403
+ Ce.value.has(G) ? (v(), f("div", _u, [
404
+ (v(!0), f(_, null, N(D.rows, (le, ge) => (v(), f("div", {
403
405
  key: ge,
404
406
  class: P(["group/row flex items-center gap-2 py-2 text-xs cursor-pointer hover:bg-canvas transition", [
405
- m.value === H && g.value === ge ? "pl-[9px] pr-3 bg-ocean/5 border-l-[3px] border-ocean" : "px-3"
407
+ m.value === G && g.value === ge ? "pl-[9px] pr-3 bg-ocean/5 border-l-[3px] border-ocean" : "px-3"
406
408
  ]]),
407
- onClick: ($) => Ue(H, ge)
409
+ onClick: ($) => Ue(G, ge)
408
410
  }, [
409
411
  e("span", {
410
- class: P(["h-1.5 w-1.5 rounded-full", m.value === H && g.value === ge ? "bg-ocean" : "bg-muted"])
412
+ class: P(["h-1.5 w-1.5 rounded-full", m.value === G && g.value === ge ? "bg-ocean" : "bg-muted"])
411
413
  }, null, 2),
412
414
  e("span", {
413
- class: P(["flex-1 min-w-0 truncate", m.value === H && g.value === ge ? "text-ink font-medium" : "text-muted"])
415
+ class: P(["flex-1 min-w-0 truncate", m.value === G && g.value === ge ? "text-ink font-medium" : "text-muted"])
414
416
  }, p(Xe(D, ge)), 3),
415
417
  e("span", {
416
- class: P(["", m.value === H && g.value === ge ? "text-ocean" : "text-muted/60"])
418
+ class: P(["", m.value === G && g.value === ge ? "text-ocean" : "text-muted/60"])
417
419
  }, p(le.length) + " 页", 3),
418
420
  e("button", {
419
421
  class: "text-muted hover:text-danger transition opacity-0 group-hover/row:opacity-100",
420
422
  title: "删除子流程",
421
- onClick: re(($) => J(H, ge), ["stop"])
423
+ onClick: re(($) => J(G, ge), ["stop"])
422
424
  }, [
423
425
  X(l(hn), { class: "h-3 w-3" })
424
- ], 8, Iu)
425
- ], 10, $u))), 128)),
426
+ ], 8, Pu)
427
+ ], 10, Iu))), 128)),
426
428
  e("button", {
427
429
  class: "flex w-full items-center gap-1.5 px-3 py-2 text-xs text-ocean hover:bg-canvas transition",
428
- onClick: (le) => ft(H)
430
+ onClick: (le) => ft(G)
429
431
  }, [
430
432
  X(l(Kn), { class: "h-3 w-3" }),
431
- S[7] || (S[7] = G(" 添加子流程 ", -1))
432
- ], 8, _u)
433
+ S[7] || (S[7] = H(" 添加子流程 ", -1))
434
+ ], 8, Du)
433
435
  ])) : w("", !0)
434
436
  ], 2))), 128))
435
437
  ])
436
438
  ]),
437
- e("section", Pu, [
438
- e("div", Du, [
439
- e("div", Au, [
439
+ e("section", Au, [
440
+ e("div", Nu, [
441
+ e("div", Tu, [
440
442
  S[8] || (S[8] = e("span", { class: "text-sm text-muted" }, "当前子流程名称", -1)),
441
443
  e("input", {
442
444
  value: Xe(C.value, g.value),
443
445
  class: "rounded-lg border border-line bg-canvas px-3 py-1.5 text-sm text-ink outline-none focus:border-ocean",
444
446
  placeholder: "输入子流程名称...",
445
447
  onInput: S[1] || (S[1] = (D) => je(g.value, D.target.value))
446
- }, null, 40, Nu)
448
+ }, null, 40, Ru)
447
449
  ]),
448
- e("div", Tu, [
449
- e("div", Ru, [
450
+ e("div", Eu, [
451
+ e("div", Ou, [
450
452
  S[9] || (S[9] = e("span", { class: "text-xs text-muted" }, "缩略图", -1)),
451
453
  A(e("input", {
452
454
  "onUpdate:modelValue": S[2] || (S[2] = (D) => M.value = D),
453
455
  type: "range",
454
- min: bc,
455
- max: yc,
456
+ min: hc,
457
+ max: wc,
456
458
  step: "0.01",
457
459
  class: "w-20 h-1 accent-ocean cursor-pointer",
458
460
  "aria-label": "缩略图缩放"
@@ -464,7 +466,7 @@ const zn = /* @__PURE__ */ kn({
464
466
  { number: !0 }
465
467
  ]
466
468
  ]),
467
- e("span", Eu, p(Math.round(M.value * 100)) + "%", 1)
469
+ e("span", Bu, p(Math.round(M.value * 100)) + "%", 1)
468
470
  ]),
469
471
  C.value ? (v(), f("button", {
470
472
  key: 0,
@@ -472,7 +474,7 @@ const zn = /* @__PURE__ */ kn({
472
474
  onClick: ee
473
475
  }, [
474
476
  X(l(Kn), { class: "h-3.5 w-3.5" }),
475
- S[10] || (S[10] = G(" 新增空行 ", -1))
477
+ S[10] || (S[10] = H(" 新增空行 ", -1))
476
478
  ])) : w("", !0)
477
479
  ])
478
480
  ]),
@@ -482,25 +484,25 @@ const zn = /* @__PURE__ */ kn({
482
484
  }, ["prevent"])),
483
485
  onDrop: Dt
484
486
  }, [
485
- e("div", Ou, [
486
- _.value.length > 0 ? (v(!0), f(I, { key: 0 }, N(_.value, (D, H) => {
487
+ e("div", Mu, [
488
+ I.value.length > 0 ? (v(!0), f(_, { key: 0 }, N(I.value, (D, G) => {
487
489
  var le, ge;
488
490
  return v(), f("div", {
489
- key: `${D.screenId}-${H}`,
491
+ key: `${D.screenId}-${G}`,
490
492
  class: P(["group relative flex flex-col items-center gap-2", {
491
- "opacity-40 scale-[0.96]": V.value === H,
493
+ "opacity-40 scale-[0.96]": V.value === G,
492
494
  "transition-all duration-150": !0
493
495
  }]),
494
496
  style: Pe({ width: `${oe(D) === "pc" ? Se.value : q.value}px` }),
495
497
  draggable: "true",
496
- onDragstart: ($) => ve($, H),
498
+ onDragstart: ($) => ve($, G),
497
499
  onDragend: fe,
498
- onDragover: re(($) => Pt($, H), ["prevent"]),
499
- onDrop: ($) => W($, H)
500
+ onDragover: re(($) => Pt($, G), ["prevent"]),
501
+ onDrop: ($) => W($, G)
500
502
  }, [
501
- ot.value === H ? (v(), f("div", Mu)) : w("", !0),
502
- H === _.value.length - 1 && ot.value === _.value.length ? (v(), f("div", Uu)) : w("", !0),
503
- e("div", ju, [
503
+ ot.value === G ? (v(), f("div", ju)) : w("", !0),
504
+ G === I.value.length - 1 && ot.value === I.value.length ? (v(), f("div", Vu)) : w("", !0),
505
+ e("div", Lu, [
504
506
  e("div", {
505
507
  class: P(["thumb-frame", { "pc-thumb-frame": oe(D) === "pc" }]),
506
508
  style: Pe(xe(oe(D)))
@@ -509,16 +511,16 @@ const zn = /* @__PURE__ */ kn({
509
511
  class: "thumb-scale",
510
512
  style: Pe({ transform: `scale(${se(oe(D))})` })
511
513
  }, [
512
- oe(D) === "pc" ? (v(), f("div", Vu, [
513
- e("div", Lu, [
514
+ oe(D) === "pc" ? (v(), f("div", Fu, [
515
+ e("div", Ku, [
514
516
  D.screenId ? (v(), st(zn, {
515
517
  key: 0,
516
518
  screen: Le(D)
517
519
  }, null, 8, ["screen"])) : w("", !0)
518
520
  ])
519
- ])) : (v(), f("div", Fu, [
521
+ ])) : (v(), f("div", zu, [
520
522
  S[11] || (S[11] = Kl('<div class="status-bar" data-v-0f3d8899><span data-v-0f3d8899>9:41</span><span class="flex items-center gap-1" data-v-0f3d8899><svg class="h-3 w-3" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-0f3d8899><path d="M12 2a4 4 0 0 0-4 4c0 2.5 3 5.5 4 9 1-3.5 4-6.5 4-9a4 4 0 0 0-4-4Z" data-v-0f3d8899></path><circle cx="12" cy="6" r="1.5" data-v-0f3d8899></circle></svg> 86% </span></div>', 1)),
521
- e("div", Ku, [
523
+ e("div", Gu, [
522
524
  D.screenId ? (v(), st(zn, {
523
525
  key: 0,
524
526
  screen: Le(D)
@@ -529,27 +531,27 @@ const zn = /* @__PURE__ */ kn({
529
531
  ], 6),
530
532
  e("button", {
531
533
  class: "absolute -right-1.5 -top-1.5 flex h-5 w-5 items-center justify-center rounded-full bg-danger text-white shadow-sm transition hover:scale-110",
532
- onClick: ($) => mt(g.value, H)
534
+ onClick: ($) => mt(g.value, G)
533
535
  }, [
534
536
  X(l(Ao), { class: "h-3 w-3" })
535
- ], 8, zu)
537
+ ], 8, Hu)
536
538
  ]),
537
- e("div", Gu, [
539
+ e("div", Wu, [
538
540
  e("span", {
539
541
  class: P(["platform-badge is-small", oe(D) === "pc" ? "is-pc" : "is-mobile"])
540
542
  }, p(oe(D) === "pc" ? "P" : "M"), 3),
541
- e("span", Hu, p(((le = dt(D.screenId)) == null ? void 0 : le.title) ?? D.screenId), 1)
543
+ e("span", Yu, p(((le = dt(D.screenId)) == null ? void 0 : le.title) ?? D.screenId), 1)
542
544
  ]),
543
- e("span", Wu, [
544
- G(p(((ge = dt(D.screenId)) == null ? void 0 : ge.code) ?? ""), 1),
545
- D.stateId ? (v(), f(I, { key: 0 }, [
546
- G(" · " + p(Le(D).stateLabel), 1)
545
+ e("span", Ju, [
546
+ H(p(((ge = dt(D.screenId)) == null ? void 0 : ge.code) ?? ""), 1),
547
+ D.stateId ? (v(), f(_, { key: 0 }, [
548
+ H(" · " + p(Le(D).stateLabel), 1)
547
549
  ], 64)) : w("", !0)
548
550
  ])
549
- ], 46, Bu);
550
- }), 128)) : (v(), f("div", Yu, [
551
- ae.value ? (v(), f("div", Ju)) : w("", !0),
552
- e("div", Xu, [
551
+ ], 46, Uu);
552
+ }), 128)) : (v(), f("div", Xu, [
553
+ ae.value ? (v(), f("div", Zu)) : w("", !0),
554
+ e("div", qu, [
553
555
  X(l(Kn), { class: "h-6 w-6" })
554
556
  ]),
555
557
  S[12] || (S[12] = e("p", { class: "text-sm" }, "从右侧拖拽页面到此处", -1))
@@ -557,22 +559,22 @@ const zn = /* @__PURE__ */ kn({
557
559
  ])
558
560
  ], 32)
559
561
  ]),
560
- e("aside", Zu, [
562
+ e("aside", Qu, [
561
563
  S[18] || (S[18] = e("div", { class: "p-4 border-b border-line" }, [
562
564
  e("h3", { class: "text-sm font-semibold text-ink" }, "状态库"),
563
565
  e("p", { class: "text-xs text-muted mt-1" }, "拖拽页面状态到中间画布")
564
566
  ], -1)),
565
- e("div", qu, [
566
- Ve.value.length ? (v(), f("div", Qu, [
567
+ e("div", ec, [
568
+ Ve.value.length ? (v(), f("div", tc, [
567
569
  S[15] || (S[15] = e("p", { class: "mb-2 text-xs font-semibold text-muted" }, "移动端", -1)),
568
- e("div", ec, [
569
- (v(!0), f(I, null, N(Ve.value, (D) => (v(), f("div", {
570
+ e("div", nc, [
571
+ (v(!0), f(_, null, N(Ve.value, (D) => (v(), f("div", {
570
572
  key: D.key,
571
573
  class: P(["group flex flex-col gap-1 p-2 rounded-xl border border-line bg-soft hover:border-ocean hover:shadow-sm transition cursor-grab active:cursor-grabbing", {
572
574
  "opacity-40 ring-2 ring-ocean/40": U.value === D.key
573
575
  }]),
574
576
  draggable: "true",
575
- onDragstart: (H) => ie(H, D),
577
+ onDragstart: (G) => ie(G, D),
576
578
  onDragend: fe
577
579
  }, [
578
580
  e("div", {
@@ -583,9 +585,9 @@ const zn = /* @__PURE__ */ kn({
583
585
  class: "thumb-scale",
584
586
  style: Pe({ transform: `scale(${M.value})` })
585
587
  }, [
586
- e("div", nc, [
588
+ e("div", ac, [
587
589
  S[13] || (S[13] = Kl('<div class="status-bar" data-v-0f3d8899><span data-v-0f3d8899>9:41</span><span class="flex items-center gap-1" data-v-0f3d8899><svg class="h-3 w-3" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-0f3d8899><path d="M12 2a4 4 0 0 0-4 4c0 2.5 3 5.5 4 9 1-3.5 4-6.5 4-9a4 4 0 0 0-4-4Z" data-v-0f3d8899></path><circle cx="12" cy="6" r="1.5" data-v-0f3d8899></circle></svg> 86% </span></div>', 1)),
588
- e("div", oc, [
590
+ e("div", lc, [
589
591
  X(zn, {
590
592
  screen: Z(D)
591
593
  }, null, 8, ["screen"])
@@ -593,25 +595,25 @@ const zn = /* @__PURE__ */ kn({
593
595
  ])
594
596
  ], 4)
595
597
  ], 4),
596
- e("div", ac, [
598
+ e("div", sc, [
597
599
  S[14] || (S[14] = e("span", { class: "platform-badge is-small is-mobile" }, "M", -1)),
598
- e("span", lc, p(D.screen.code), 1),
599
- e("span", sc, p(D.screen.title), 1)
600
+ e("span", ic, p(D.screen.code), 1),
601
+ e("span", rc, p(D.screen.title), 1)
600
602
  ]),
601
- D.stateLabel ? (v(), f("span", ic, p(D.stateLabel), 1)) : w("", !0)
602
- ], 42, tc))), 128))
603
+ D.stateLabel ? (v(), f("span", uc, p(D.stateLabel), 1)) : w("", !0)
604
+ ], 42, oc))), 128))
603
605
  ])
604
606
  ])) : w("", !0),
605
- ce.value.length ? (v(), f("div", rc, [
607
+ ce.value.length ? (v(), f("div", cc, [
606
608
  S[17] || (S[17] = e("p", { class: "mb-2 text-xs font-semibold text-muted" }, "PC 端", -1)),
607
- e("div", uc, [
608
- (v(!0), f(I, null, N(ce.value, (D) => (v(), f("div", {
609
+ e("div", dc, [
610
+ (v(!0), f(_, null, N(ce.value, (D) => (v(), f("div", {
609
611
  key: D.key,
610
612
  class: P(["group flex flex-col gap-1 p-2 rounded-xl border border-line bg-soft hover:border-ocean hover:shadow-sm transition cursor-grab active:cursor-grabbing", {
611
613
  "opacity-40 ring-2 ring-ocean/40": U.value === D.key
612
614
  }]),
613
615
  draggable: "true",
614
- onDragstart: (H) => ie(H, D),
616
+ onDragstart: (G) => ie(G, D),
615
617
  onDragend: fe
616
618
  }, [
617
619
  e("div", {
@@ -622,8 +624,8 @@ const zn = /* @__PURE__ */ kn({
622
624
  class: "thumb-scale",
623
625
  style: Pe({ transform: `scale(${Je.value})` })
624
626
  }, [
625
- e("div", dc, [
626
- e("div", pc, [
627
+ e("div", vc, [
628
+ e("div", fc, [
627
629
  X(zn, {
628
630
  screen: Z(D)
629
631
  }, null, 8, ["screen"])
@@ -631,13 +633,13 @@ const zn = /* @__PURE__ */ kn({
631
633
  ])
632
634
  ], 4)
633
635
  ], 4),
634
- e("div", vc, [
636
+ e("div", mc, [
635
637
  S[16] || (S[16] = e("span", { class: "platform-badge is-small is-pc" }, "P", -1)),
636
- e("span", fc, p(D.screen.code), 1),
637
- e("span", mc, p(D.screen.title), 1)
638
+ e("span", gc, p(D.screen.code), 1),
639
+ e("span", bc, p(D.screen.title), 1)
638
640
  ]),
639
- D.stateLabel ? (v(), f("span", gc, p(D.stateLabel), 1)) : w("", !0)
640
- ], 42, cc))), 128))
641
+ D.stateLabel ? (v(), f("span", yc, p(D.stateLabel), 1)) : w("", !0)
642
+ ], 42, pc))), 128))
641
643
  ])
642
644
  ])) : w("", !0)
643
645
  ])
@@ -651,8 +653,8 @@ const zn = /* @__PURE__ */ kn({
651
653
  for (const [r, u] of n)
652
654
  s[r] = u;
653
655
  return s;
654
- }, xc = /* @__PURE__ */ is(wc, [["__scopeId", "data-v-0f3d8899"]]);
655
- function Sc(t) {
656
+ }, kc = /* @__PURE__ */ is(Sc, [["__scopeId", "data-v-0f3d8899"]]);
657
+ function Cc(t) {
656
658
  if (t === "main") return "main";
657
659
  let n = 2166136261;
658
660
  for (const r of t)
@@ -699,8 +701,8 @@ function ds(t, n) {
699
701
  }
700
702
  const ps = 2;
701
703
  function ye() {
702
- var _, M, se, xe, q, Se, ke;
703
- const t = Yn().collaboration ?? {}, n = ((_ = t.provider) == null ? void 0 : _.trim()) ?? "", s = ((M = t.owner) == null ? void 0 : M.trim()) ?? "", r = ((se = t.repo) == null ? void 0 : se.trim()) ?? "", u = ((xe = t.token) == null ? void 0 : xe.trim()) ?? "", m = ((q = t.codeBranch) == null ? void 0 : q.trim()) ?? "", g = n !== "gitee" || !s || !r || !u, C = !m;
704
+ var I, M, se, xe, q, Se, ke;
705
+ const t = Yn().collaboration ?? {}, n = ((I = t.provider) == null ? void 0 : I.trim()) ?? "", s = ((M = t.owner) == null ? void 0 : M.trim()) ?? "", r = ((se = t.repo) == null ? void 0 : se.trim()) ?? "", u = ((xe = t.token) == null ? void 0 : xe.trim()) ?? "", m = ((q = t.codeBranch) == null ? void 0 : q.trim()) ?? "", g = n !== "gitee" || !s || !r || !u, C = !m;
704
706
  return {
705
707
  provider: n,
706
708
  owner: s,
@@ -709,7 +711,7 @@ function ye() {
709
711
  remoteBranch: ((Se = t.remoteBranch) == null ? void 0 : Se.trim()) || "master",
710
712
  projectId: ((ke = t.projectId) == null ? void 0 : ke.trim()) || "prototype-core",
711
713
  codeBranch: m,
712
- branchKey: m ? Sc(m) : "unknown",
714
+ branchKey: m ? Cc(m) : "unknown",
713
715
  remoteReadable: !g && !C,
714
716
  remoteWritable: !g && !C,
715
717
  unavailableReason: C ? "无法识别代码分支,当前无法推送" : g ? "Gitee 未配置,当前无法推送" : ""
@@ -745,14 +747,14 @@ function We(t, n, s, r) {
745
747
  };
746
748
  return (m = vs()) == null || m.setItem(fs(t), JSON.stringify(u)), u;
747
749
  }
748
- const ms = "https://gitee.com/api/v5", kc = us(), gs = ye().remoteReadable;
750
+ const ms = "https://gitee.com/api/v5", $c = us(), gs = ye().remoteReadable;
749
751
  function bs(t) {
750
752
  return t.split("/").map(encodeURIComponent).join("/");
751
753
  }
752
- function Cc(t) {
754
+ function _c(t) {
753
755
  return btoa(unescape(encodeURIComponent(t)));
754
756
  }
755
- function $c(t) {
757
+ function Ic(t) {
756
758
  return decodeURIComponent(escape(atob(t.replace(/\s/g, ""))));
757
759
  }
758
760
  function ys() {
@@ -762,7 +764,7 @@ function ys() {
762
764
  function hs() {
763
765
  return `projects/${ye().projectId}/bugs/bugs.json`;
764
766
  }
765
- function Ic(t, n) {
767
+ function Pc(t, n) {
766
768
  const s = ye();
767
769
  return ["docs: update product bugs", "", `提交人:${t}`, `代码分支:${s.codeBranch}`, `数据分支:${s.branchKey}`, `操作:${n}`].join(`
768
770
  `);
@@ -781,7 +783,7 @@ async function Jl(t) {
781
783
  const u = await r.json(), m = ds(u, t);
782
784
  if (m)
783
785
  return {
784
- value: JSON.parse($c(m.content)),
786
+ value: JSON.parse(Ic(m.content)),
785
787
  sha: m.sha,
786
788
  exists: !0,
787
789
  legacy: t === hs()
@@ -793,11 +795,11 @@ async function ws() {
793
795
  const t = await Jl(ys());
794
796
  return t || (ye().codeBranch !== "main" ? null : Jl(hs()));
795
797
  }
796
- async function _c(t, n, s, r) {
798
+ async function Dc(t, n, s, r) {
797
799
  const u = ye();
798
800
  if (!u.remoteWritable) return;
799
801
  const m = `${ms}/repos/${encodeURIComponent(u.owner)}/${encodeURIComponent(u.repo)}/contents/${bs(t)}`, g = new URLSearchParams();
800
- g.set("access_token", u.token), g.set("branch", u.remoteBranch), g.set("content", Cc(JSON.stringify(n, null, 2))), g.set("message", r), s && g.set("sha", s);
802
+ g.set("access_token", u.token), g.set("branch", u.remoteBranch), g.set("content", _c(JSON.stringify(n, null, 2))), g.set("message", r), s && g.set("sha", s);
801
803
  const C = await fetch(m, {
802
804
  method: s ? "PUT" : "POST",
803
805
  headers: { "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8" },
@@ -806,20 +808,20 @@ async function _c(t, n, s, r) {
806
808
  if (C.status === 409 || C.status === 422) throw new Error("远端已有新的 Bug 数据,请刷新后再提交");
807
809
  if (!C.ok) throw new Error(`提交 Gitee Bug 文件失败:${C.status}`);
808
810
  }
809
- async function Pc() {
811
+ async function Ac() {
810
812
  const t = await ws();
811
813
  return t ? {
812
814
  ...t,
813
815
  value: Array.isArray(t.value) ? t.value : []
814
816
  } : null;
815
817
  }
816
- async function Dc(t, n, s) {
817
- return kc("bugs:all", async () => {
818
+ async function Nc(t, n, s) {
819
+ return $c("bugs:all", async () => {
818
820
  const r = await ws(), u = s(Array.isArray(r == null ? void 0 : r.value) ? r.value : []);
819
- return await _c(ys(), u, r != null && r.legacy ? null : (r == null ? void 0 : r.sha) ?? null, Ic(t, n)), u;
821
+ return await Dc(ys(), u, r != null && r.legacy ? null : (r == null ? void 0 : r.sha) ?? null, Pc(t, n)), u;
820
822
  });
821
823
  }
822
- const xs = ["功能异常", "UI/文案", "流程阻塞", "数据/报告", "设备/蓝牙", "性能/稳定性", "兼容性", "其他"], Ss = ["P0", "P1", "P2", "P3", "P4"], ks = ["安卓侧", "iOS 侧", "后端"], Cs = ["后端开发", "iOS 开发", "安卓开发", "产品经理", "算法开发", "硬件嵌入式开发"], $s = ["待处理", "已确认", "修复中", "已修复", "已验证", "无需处理"], Is = ["待处理", "已确认", "修复中"], Ge = b([]), To = b(gs), _s = b(gs ? "loading" : "idle"), Oa = b("");
824
+ const xs = ["功能异常", "UI/文案", "流程阻塞", "数据/报告", "设备/蓝牙", "性能/稳定性", "兼容性", "其他"], Ss = ["P0", "P1", "P2", "P3", "P4"], ks = ["安卓侧", "iOS 侧", "后端"], Cs = ["后端开发", "iOS 开发", "安卓开发", "产品经理", "算法开发", "硬件嵌入式开发"], $s = ["待处理", "已确认", "修复中", "已修复", "已验证", "无需处理"], _s = ["待处理", "已确认", "修复中"], Ge = b([]), To = b(gs), Is = b(gs ? "loading" : "idle"), Oa = b("");
823
825
  let Xl = !1;
824
826
  function Ps() {
825
827
  try {
@@ -835,22 +837,22 @@ function ka() {
835
837
  "bugs"
836
838
  );
837
839
  }
838
- function Ac(t) {
840
+ function Tc(t) {
839
841
  return typeof t == "string" && xs.includes(t);
840
842
  }
841
- function Nc(t) {
843
+ function Rc(t) {
842
844
  return typeof t == "string" && Ss.includes(t);
843
845
  }
844
- function Tc(t) {
846
+ function Ec(t) {
845
847
  return typeof t == "string" && ks.includes(t);
846
848
  }
847
- function Rc(t) {
849
+ function Oc(t) {
848
850
  return typeof t == "string" && Cs.includes(t);
849
851
  }
850
852
  function ba(t) {
851
853
  return typeof t == "string" && $s.includes(t);
852
854
  }
853
- function Ec(t) {
855
+ function Bc(t) {
854
856
  if (!t || typeof t != "object") return null;
855
857
  const n = t;
856
858
  return typeof n.id != "string" || !n.id.trim() || typeof n.name != "string" || !n.name.trim() || typeof n.objectKey != "string" || !n.objectKey.trim() || typeof n.url != "string" || !n.url.trim() || typeof n.mimeType != "string" || !n.mimeType.startsWith("image/") || typeof n.uploaderName != "string" || !n.uploaderName.trim() ? null : {
@@ -865,17 +867,17 @@ function Ec(t) {
865
867
  createdAt: typeof n.createdAt == "string" && n.createdAt ? n.createdAt : (/* @__PURE__ */ new Date()).toISOString()
866
868
  };
867
869
  }
868
- function Oc(t) {
870
+ function Mc(t) {
869
871
  if (!t || typeof t != "object") return null;
870
872
  const n = t;
871
- if (typeof n.id != "string" || !n.id.trim() || typeof n.title != "string" || !n.title.trim() || !Ac(n.type) || !Rc(n.ownerRole) || !ba(n.status) || typeof n.description != "string" || !n.description.trim() || typeof n.reporterName != "string" || !n.reporterName.trim()) return null;
873
+ if (typeof n.id != "string" || !n.id.trim() || typeof n.title != "string" || !n.title.trim() || !Tc(n.type) || !Oc(n.ownerRole) || !ba(n.status) || typeof n.description != "string" || !n.description.trim() || typeof n.reporterName != "string" || !n.reporterName.trim()) return null;
872
874
  const s = typeof n.createdAt == "string" && n.createdAt ? n.createdAt : (/* @__PURE__ */ new Date()).toISOString(), r = typeof n.updatedAt == "string" && n.updatedAt ? n.updatedAt : s;
873
875
  return {
874
876
  id: n.id,
875
877
  title: n.title.trim(),
876
878
  type: n.type,
877
- severity: Nc(n.severity) ? n.severity : "P2",
878
- sourceSide: Tc(n.sourceSide) ? n.sourceSide : "后端",
879
+ severity: Rc(n.severity) ? n.severity : "P2",
880
+ sourceSide: Ec(n.sourceSide) ? n.sourceSide : "后端",
879
881
  sourceSideVersion: typeof n.sourceSideVersion == "string" && n.sourceSideVersion.trim() ? n.sourceSideVersion.trim() : void 0,
880
882
  ownerRole: n.ownerRole,
881
883
  status: n.status,
@@ -884,25 +886,25 @@ function Oc(t) {
884
886
  fixerName: typeof n.fixerName == "string" ? n.fixerName.trim() : void 0,
885
887
  createdAt: s,
886
888
  updatedAt: r,
887
- attachments: Array.isArray(n.attachments) ? n.attachments.map(Ec).filter((u) => !!u) : [],
889
+ attachments: Array.isArray(n.attachments) ? n.attachments.map(Bc).filter((u) => !!u) : [],
888
890
  history: Array.isArray(n.history) ? n.history.filter((u) => u && typeof u == "object").map((u) => u).filter((u) => typeof u.id == "string" && ba(u.fromStatus) && ba(u.toStatus) && typeof u.operatorName == "string" && typeof u.createdAt == "string") : []
889
891
  };
890
892
  }
891
893
  function wn(t) {
892
- return Array.isArray(t) ? t.map(Oc).filter((n) => !!n).sort((n, s) => s.updatedAt.localeCompare(n.updatedAt)) : [];
894
+ return Array.isArray(t) ? t.map(Mc).filter((n) => !!n).sort((n, s) => s.updatedAt.localeCompare(n.updatedAt)) : [];
893
895
  }
894
896
  function Ca(t) {
895
897
  var n;
896
898
  (n = Ps()) == null || n.setItem(ka(), JSON.stringify(t));
897
899
  }
898
900
  function $t(t, n = "") {
899
- _s.value = t, Oa.value = n;
901
+ Is.value = t, Oa.value = n;
900
902
  }
901
903
  async function Ds() {
902
904
  if (To.value)
903
905
  try {
904
906
  $t("loading", "正在同步 Gitee Bug 数据");
905
- const s = await Pc();
907
+ const s = await Ac();
906
908
  Ge.value = wn((s == null ? void 0 : s.value) ?? []), Ca(Ge.value), $t("success", "已同步 Gitee Bug 数据");
907
909
  return;
908
910
  } catch (s) {
@@ -919,7 +921,7 @@ async function Ds() {
919
921
  Ge.value = [];
920
922
  Oa.value || $t("idle", "当前使用本地 Bug 数据");
921
923
  }
922
- async function Bc() {
924
+ async function Uc() {
923
925
  if (!Xl) {
924
926
  Xl = !0;
925
927
  try {
@@ -929,22 +931,22 @@ async function Bc() {
929
931
  }
930
932
  }
931
933
  }
932
- async function Mc(t, n, s) {
934
+ async function jc(t, n, s) {
933
935
  const r = () => {
934
936
  Ge.value = wn(s(Ge.value)), Ca(Ge.value);
935
937
  };
936
938
  if (To.value)
937
939
  try {
938
940
  $t("loading", "正在提交 Gitee Bug 数据");
939
- const u = await Dc(t, n, (m) => wn(s(wn(m))));
941
+ const u = await Nc(t, n, (m) => wn(s(wn(m))));
940
942
  return Ge.value = wn(u ?? []), Ca(Ge.value), $t("success", "Bug 数据已提交"), !0;
941
943
  } catch (u) {
942
944
  return $t("error", u instanceof Error ? u.message : "Bug 数据提交失败"), !1;
943
945
  }
944
946
  return r(), $t("success", "Bug 数据已保存到本地"), !0;
945
947
  }
946
- const Uc = k(() => Ge.value.filter((t) => Is.includes(t.status)).length);
947
- function jc(t) {
948
+ const Vc = k(() => Ge.value.filter((t) => _s.includes(t.status)).length);
949
+ function Lc(t) {
948
950
  const n = t.reduce((s, r) => {
949
951
  const u = /^BUG-(\d+)$/i.exec(r.id.trim());
950
952
  return u ? Math.max(s, Number.parseInt(u[1], 10) || 0) : s;
@@ -959,34 +961,34 @@ function As() {
959
961
  bugSourceSides: ks,
960
962
  bugOwnerRoles: Cs,
961
963
  bugStatuses: $s,
962
- unresolvedBugStatuses: Is,
963
- unresolvedBugCount: Uc,
964
+ unresolvedBugStatuses: _s,
965
+ unresolvedBugCount: Vc,
964
966
  bugRemoteReady: To,
965
- bugSyncStatus: _s,
967
+ bugSyncStatus: Is,
966
968
  bugSyncMessage: Oa,
967
- initializeBugs: Bc,
969
+ initializeBugs: Uc,
968
970
  refreshBugs: Ds,
969
- persistBugs: Mc,
970
- nextBugId: jc
971
+ persistBugs: jc,
972
+ nextBugId: Lc
971
973
  };
972
974
  }
973
- const Vc = "x-oss-process=image/resize,w_240/quality,q_75";
975
+ const Fc = "x-oss-process=image/resize,w_240/quality,q_75";
974
976
  function Ba() {
975
- var m, g, C, _;
976
- const t = Yn().oss ?? {}, n = ((m = t.bucket) == null ? void 0 : m.trim()) ?? "", s = (((g = t.baseUrl) == null ? void 0 : g.trim()) ?? "").replace(/\/$/, ""), r = ((C = t.accessKeyId) == null ? void 0 : C.trim()) ?? "", u = ((_ = t.accessKeySecret) == null ? void 0 : _.trim()) ?? "";
977
+ var m, g, C, I;
978
+ const t = Yn().oss ?? {}, n = ((m = t.bucket) == null ? void 0 : m.trim()) ?? "", s = (((g = t.baseUrl) == null ? void 0 : g.trim()) ?? "").replace(/\/$/, ""), r = ((C = t.accessKeyId) == null ? void 0 : C.trim()) ?? "", u = ((I = t.accessKeySecret) == null ? void 0 : I.trim()) ?? "";
977
979
  return !n || !s || !r || !u ? null : { bucket: n, baseUrl: s, accessKeyId: r, accessKeySecret: u };
978
980
  }
979
- function Lc(t) {
981
+ function Kc(t) {
980
982
  let n = "";
981
983
  return new Uint8Array(t).forEach((r) => {
982
984
  n += String.fromCharCode(r);
983
985
  }), btoa(n);
984
986
  }
985
- async function Fc(t, n) {
987
+ async function zc(t, n) {
986
988
  const s = new TextEncoder(), r = await crypto.subtle.importKey("raw", s.encode(n), { name: "HMAC", hash: "SHA-1" }, !1, ["sign"]), u = await crypto.subtle.sign("HMAC", r, s.encode(t));
987
- return Lc(u);
989
+ return Kc(u);
988
990
  }
989
- function Kc(t, n) {
991
+ function Gc(t, n) {
990
992
  const s = new Date(Date.now() + 6e5).toISOString();
991
993
  return btoa(
992
994
  JSON.stringify({
@@ -999,20 +1001,20 @@ function Kc(t, n) {
999
1001
  })
1000
1002
  );
1001
1003
  }
1002
- function zc() {
1004
+ function Hc() {
1003
1005
  return !!Ba();
1004
1006
  }
1005
- function Gc(t) {
1007
+ function Wc(t) {
1006
1008
  const n = Ba();
1007
1009
  return n ? `${n.baseUrl}/${t.split("/").map(encodeURIComponent).join("/")}` : "";
1008
1010
  }
1009
1011
  function ya(t) {
1010
- return t ? `${t}${t.includes("?") ? "&" : "?"}${Vc}` : "";
1012
+ return t ? `${t}${t.includes("?") ? "&" : "?"}${Fc}` : "";
1011
1013
  }
1012
- async function Hc(t, n) {
1014
+ async function Yc(t, n) {
1013
1015
  const s = Ba();
1014
1016
  if (!s) throw new Error("缺少 OSS 上传配置");
1015
- const r = Kc(t, n.size), u = await Fc(r, s.accessKeySecret), m = new FormData();
1017
+ const r = Gc(t, n.size), u = await zc(r, s.accessKeySecret), m = new FormData();
1016
1018
  m.set("key", t), m.set("policy", r), m.set("OSSAccessKeyId", s.accessKeyId), m.set("signature", u), m.set("success_action_status", "201"), m.set("Content-Type", n.type || "application/octet-stream"), m.set("file", n);
1017
1019
  const g = await fetch(s.baseUrl, {
1018
1020
  method: "POST",
@@ -1021,66 +1023,66 @@ async function Hc(t, n) {
1021
1023
  if (!g.ok) throw new Error(`OSS 图片上传失败:${g.status}`);
1022
1024
  return {
1023
1025
  objectKey: t,
1024
- url: Gc(t)
1026
+ url: Wc(t)
1025
1027
  };
1026
1028
  }
1027
- const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabled"], Xc = { class: "bug-refresh-main" }, Zc = { class: "bug-stat-grid" }, qc = { class: "bug-stat-card danger" }, Qc = { class: "bug-stat-card success" }, ed = { class: "bug-stat-card muted" }, td = { class: "bug-workspace" }, nd = { id: "bug-source-side-version-options" }, od = ["value"], ad = { class: "bug-section-title" }, ld = { class: "bug-form-row" }, sd = ["value"], id = ["value"], rd = ["value"], ud = ["value"], cd = { class: "bug-image-uploader" }, dd = { class: "bug-section-title" }, pd = ["disabled"], vd = {
1029
+ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabled"], qc = { class: "bug-refresh-main" }, Qc = { class: "bug-stat-grid" }, ed = { class: "bug-stat-card danger" }, td = { class: "bug-stat-card success" }, nd = { class: "bug-stat-card muted" }, od = { class: "bug-workspace" }, ad = { id: "bug-source-side-version-options" }, ld = ["value"], sd = { class: "bug-section-title" }, id = { class: "bug-form-row" }, rd = ["value"], ud = ["value"], cd = ["value"], dd = ["value"], pd = { class: "bug-image-uploader" }, vd = { class: "bug-section-title" }, fd = ["disabled"], md = {
1028
1030
  key: 0,
1029
1031
  class: "bug-pending-images"
1030
- }, fd = ["src", "alt"], md = { key: 0 }, gd = ["disabled", "onClick"], bd = {
1032
+ }, gd = ["src", "alt"], bd = { key: 0 }, yd = ["disabled", "onClick"], hd = {
1031
1033
  key: 1,
1032
1034
  class: "bug-form-error"
1033
- }, yd = {
1035
+ }, wd = {
1034
1036
  key: 0,
1035
1037
  class: "bug-form-error"
1036
- }, hd = ["disabled"], wd = { class: "bug-list-panel" }, xd = { class: "bug-filter-bar" }, Sd = { class: "bug-section-title" }, kd = { class: "bug-filter-grid" }, Cd = ["value"], $d = ["value"], Id = ["value"], _d = ["value"], Pd = ["value"], Dd = ["value"], Ad = { class: "bug-search-field" }, Nd = { class: "bug-list-controls" }, Td = ["value"], Rd = ["value"], Ed = { class: "bug-list" }, Od = {
1038
+ }, xd = ["disabled"], Sd = { class: "bug-list-panel" }, kd = { class: "bug-filter-bar" }, Cd = { class: "bug-section-title" }, $d = { class: "bug-filter-grid" }, _d = ["value"], Id = ["value"], Pd = ["value"], Dd = ["value"], Ad = ["value"], Nd = ["value"], Td = { class: "bug-search-field" }, Rd = { class: "bug-list-controls" }, Ed = ["value"], Od = ["value"], Bd = { class: "bug-list" }, Md = {
1037
1039
  key: 0,
1038
1040
  class: "bug-empty"
1039
- }, Bd = { class: "bug-list-main" }, Md = { class: "bug-list-meta" }, Ud = { key: 0 }, jd = {
1041
+ }, Ud = { class: "bug-list-main" }, jd = { class: "bug-list-meta" }, Vd = { key: 0 }, Ld = {
1040
1042
  key: 0,
1041
1043
  class: "bug-list-images"
1042
- }, Vd = ["onClick"], Ld = ["src", "alt"], Fd = { key: 0 }, Kd = ["onClick"], zd = {
1044
+ }, Fd = ["onClick"], Kd = ["src", "alt"], zd = { key: 0 }, Gd = ["onClick"], Hd = {
1043
1045
  key: 0,
1044
1046
  class: "bug-pagination"
1045
- }, Gd = ["disabled"], Hd = ["disabled"], Wd = { class: "bug-detail-panel" }, Yd = { class: "bug-detail-head" }, Jd = { class: "bug-detail-summary" }, Xd = { key: 0 }, Zd = { class: "bug-detail-actions" }, qd = { key: 1 }, Qd = {
1047
+ }, Wd = ["disabled"], Yd = ["disabled"], Jd = { class: "bug-detail-panel" }, Xd = { class: "bug-detail-head" }, Zd = { class: "bug-detail-summary" }, qd = { key: 0 }, Qd = { class: "bug-detail-actions" }, ep = { key: 1 }, tp = {
1046
1048
  key: 0,
1047
1049
  class: "bug-form-error"
1048
- }, ep = ["disabled"], tp = { class: "bug-form-row" }, np = ["value"], op = ["value"], ap = ["value"], lp = ["value"], sp = { class: "bug-edit-images" }, ip = { class: "bug-section-title" }, rp = ["disabled"], up = {
1050
+ }, np = ["disabled"], op = { class: "bug-form-row" }, ap = ["value"], lp = ["value"], sp = ["value"], ip = ["value"], rp = { class: "bug-edit-images" }, up = { class: "bug-section-title" }, cp = ["disabled"], dp = {
1049
1051
  key: 0,
1050
1052
  class: "bug-edit-existing-images"
1051
- }, cp = ["onClick"], dp = ["src", "alt"], pp = ["onClick"], vp = {
1053
+ }, pp = ["onClick"], vp = ["src", "alt"], fp = ["onClick"], mp = {
1052
1054
  key: 1,
1053
1055
  class: "bug-pending-images"
1054
- }, fp = ["src", "alt"], mp = { key: 0 }, gp = ["disabled", "onClick"], bp = {
1056
+ }, gp = ["src", "alt"], bp = { key: 0 }, yp = ["disabled", "onClick"], hp = {
1055
1057
  key: 2,
1056
1058
  class: "bug-image-hint"
1057
- }, yp = {
1059
+ }, wp = {
1058
1060
  key: 0,
1059
1061
  class: "bug-form-error"
1060
- }, hp = { class: "bug-edit-actions" }, wp = ["disabled"], xp = {
1062
+ }, xp = { class: "bug-edit-actions" }, Sp = ["disabled"], kp = {
1061
1063
  key: 2,
1062
1064
  class: "bug-detail-description"
1063
- }, Sp = { class: "bug-detail-meta" }, kp = {
1065
+ }, Cp = { class: "bug-detail-meta" }, $p = {
1064
1066
  key: 3,
1065
1067
  class: "bug-detail-images"
1066
- }, Cp = ["onClick"], $p = ["src", "alt"], Ip = { class: "bug-section-title" }, _p = ["value"], Pp = { class: "bug-form-row" }, Dp = ["placeholder"], Ap = {
1068
+ }, _p = ["onClick"], Ip = ["src", "alt"], Pp = { class: "bug-section-title" }, Dp = ["value"], Ap = { class: "bug-form-row" }, Np = ["placeholder"], Tp = {
1067
1069
  key: 0,
1068
1070
  class: "bug-form-error"
1069
- }, Np = ["disabled"], Tp = { class: "bug-history" }, Rp = {
1071
+ }, Rp = ["disabled"], Ep = { class: "bug-history" }, Op = {
1070
1072
  key: 0,
1071
1073
  class: "bug-empty"
1072
- }, Ep = { key: 0 }, Op = { key: 1 }, Bp = { class: "bug-image-preview-dialog" }, Mp = ["src", "alt"], Zl = "prototype-core-annotation-author", jn = 10, Up = /* @__PURE__ */ kn({
1074
+ }, Bp = { key: 0 }, Mp = { key: 1 }, Up = { class: "bug-image-preview-dialog" }, jp = ["src", "alt"], Zl = "prototype-core-annotation-author", jn = 10, Vp = /* @__PURE__ */ kn({
1073
1075
  __name: "BugReportPage",
1074
1076
  emits: ["close"],
1075
1077
  setup(t, { emit: n }) {
1076
- var _n, sn;
1078
+ var In, sn;
1077
1079
  const s = n, {
1078
1080
  bugs: r,
1079
1081
  bugTypes: u,
1080
1082
  bugSeverities: m,
1081
1083
  bugSourceSides: g,
1082
1084
  bugOwnerRoles: C,
1083
- bugStatuses: _,
1085
+ bugStatuses: I,
1084
1086
  unresolvedBugStatuses: M,
1085
1087
  unresolvedBugCount: se,
1086
1088
  bugRemoteReady: xe,
@@ -1115,7 +1117,7 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1115
1117
  { value: "updatedAsc", label: "更新时间 旧→新" },
1116
1118
  { value: "severityAsc", label: "等级 P0→P4" },
1117
1119
  { value: "severityDesc", label: "等级 P4→P0" }
1118
- ], ln = [10, 20, 50, 100], pt = ((sn = (_n = Yn().tools) == null ? void 0 : _n.bugDeleteCode) == null ? void 0 : sn.trim()) ?? "";
1120
+ ], ln = [10, 20, 50, 100], pt = ((sn = (In = Yn().tools) == null ? void 0 : In.bugDeleteCode) == null ? void 0 : sn.trim()) ?? "";
1119
1121
  function vt() {
1120
1122
  var h;
1121
1123
  try {
@@ -1162,7 +1164,7 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1162
1164
  sourceSideVersion: "",
1163
1165
  ownerRole: "后端开发",
1164
1166
  description: ""
1165
- }), U = b([]), ot = b(null), ie = b([]), ve = b(""), fe = b(null), Pt = zc(), W = k(() => r.value.find((h) => h.id === je.value) ?? null), Dt = k(() => !!(W.value && !["已验证", "无需处理"].includes(W.value.status))), mt = k(() => r.value.filter((h) => h.status === "已修复" || h.status === "已验证").length), gt = k(() => r.value.filter((h) => h.status === "无需处理").length), bt = k(
1167
+ }), U = b([]), ot = b(null), ie = b([]), ve = b(""), fe = b(null), Pt = Hc(), W = k(() => r.value.find((h) => h.id === je.value) ?? null), Dt = k(() => !!(W.value && !["已验证", "无需处理"].includes(W.value.status))), mt = k(() => r.value.filter((h) => h.status === "已修复" || h.status === "已验证").length), gt = k(() => r.value.filter((h) => h.status === "无需处理").length), bt = k(
1166
1168
  () => Array.from(new Set(r.value.map((h) => {
1167
1169
  var d;
1168
1170
  return (d = h.sourceSideVersion) == null ? void 0 : d.trim();
@@ -1210,7 +1212,7 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1210
1212
  status: "ready"
1211
1213
  };
1212
1214
  }
1213
- async function H(h) {
1215
+ async function G(h) {
1214
1216
  ve.value = "";
1215
1217
  const d = h.filter((L) => L.type.startsWith("image/"));
1216
1218
  if (!d.length) return;
@@ -1229,12 +1231,12 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1229
1231
  }
1230
1232
  function le(h) {
1231
1233
  const d = h.target;
1232
- H(Array.from(d.files ?? [])), d.value = "";
1234
+ G(Array.from(d.files ?? [])), d.value = "";
1233
1235
  }
1234
1236
  function ge(h) {
1235
1237
  var O;
1236
1238
  const d = Array.from(((O = h.clipboardData) == null ? void 0 : O.items) ?? []).filter((c) => c.kind === "file" && c.type.startsWith("image/")).map((c) => c.getAsFile()).filter((c) => !!c);
1237
- d.length && (h.preventDefault(), H(d));
1239
+ d.length && (h.preventDefault(), G(d));
1238
1240
  }
1239
1241
  function $(h) {
1240
1242
  const d = ie.value.find((O) => O.id === h);
@@ -1250,7 +1252,7 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1250
1252
  for (const c of ie.value) {
1251
1253
  c.status = "uploading", c.error = "";
1252
1254
  try {
1253
- const L = await Hc(R(h, c), c.file);
1255
+ const L = await Yc(R(h, c), c.file);
1254
1256
  c.status = "uploaded", O.push({
1255
1257
  id: `att-${Date.now()}-${Math.random().toString(16).slice(2)}`,
1256
1258
  name: c.name,
@@ -1327,7 +1329,7 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1327
1329
  function Ho() {
1328
1330
  De.value = !1, ee.value = "", U.value = [], lt(), ve.value = "", Ee.value = "", ne.value = "", ae.value = !0;
1329
1331
  }
1330
- function In() {
1332
+ function _n() {
1331
1333
  Ee.value = "", ne.value = "", ae.value = !1;
1332
1334
  }
1333
1335
  async function Jt() {
@@ -1414,8 +1416,8 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1414
1416
  }
1415
1417
  return (h, d) => {
1416
1418
  var O;
1417
- return v(), f("main", Wc, [
1418
- e("header", Yc, [
1419
+ return v(), f("main", Jc, [
1420
+ e("header", Xc, [
1419
1421
  e("div", null, [
1420
1422
  e("button", {
1421
1423
  class: "bug-back-btn",
@@ -1432,27 +1434,27 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1432
1434
  onClick: d[1] || (d[1] = //@ts-ignore
1433
1435
  (...c) => l(ke) && l(ke)(...c))
1434
1436
  }, [
1435
- e("span", Xc, [
1437
+ e("span", qc, [
1436
1438
  X(l(Gr), { class: "h-4 w-4" }),
1437
1439
  d[39] || (d[39] = e("span", null, "刷新", -1))
1438
1440
  ]),
1439
1441
  e("span", {
1440
1442
  class: P(["bug-refresh-status", `is-${l(q)}`])
1441
1443
  }, p(l(Se) || "Bug 数据已就绪"), 3)
1442
- ], 8, Jc)
1444
+ ], 8, Zc)
1443
1445
  ]),
1444
- e("section", Zc, [
1445
- e("article", qc, [
1446
+ e("section", Qc, [
1447
+ e("article", ed, [
1446
1448
  X(l(Hr), { class: "h-5 w-5" }),
1447
1449
  d[40] || (d[40] = e("span", null, "未修复", -1)),
1448
1450
  e("strong", null, p(l(se)), 1)
1449
1451
  ]),
1450
- e("article", Qc, [
1452
+ e("article", td, [
1451
1453
  X(l(Wr), { class: "h-5 w-5" }),
1452
1454
  d[41] || (d[41] = e("span", null, "已修复/验证", -1)),
1453
1455
  e("strong", null, p(mt.value), 1)
1454
1456
  ]),
1455
- e("article", ed, [
1457
+ e("article", nd, [
1456
1458
  X(l(zl), { class: "h-5 w-5" }),
1457
1459
  d[42] || (d[42] = e("span", null, "无需处理", -1)),
1458
1460
  e("strong", null, p(gt.value), 1)
@@ -1465,19 +1467,19 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1465
1467
  e("strong", null, p(l(q) === "loading" ? "同步中" : l(r).length), 1)
1466
1468
  ], 2)
1467
1469
  ]),
1468
- e("section", td, [
1470
+ e("section", od, [
1469
1471
  e("form", {
1470
1472
  class: "bug-submit-panel",
1471
1473
  onSubmit: re(no, ["prevent"]),
1472
1474
  onPaste: ge
1473
1475
  }, [
1474
- e("datalist", nd, [
1475
- (v(!0), f(I, null, N(bt.value, (c) => (v(), f("option", {
1476
+ e("datalist", ad, [
1477
+ (v(!0), f(_, null, N(bt.value, (c) => (v(), f("option", {
1476
1478
  key: c,
1477
1479
  value: c
1478
- }, null, 8, od))), 128))
1480
+ }, null, 8, ld))), 128))
1479
1481
  ]),
1480
- e("div", ad, [
1482
+ e("div", sd, [
1481
1483
  X(l(Kn), { class: "h-4 w-4" }),
1482
1484
  d[43] || (d[43] = e("span", null, "提报 Bug", -1))
1483
1485
  ]),
@@ -1501,18 +1503,18 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1501
1503
  [z, J.title]
1502
1504
  ])
1503
1505
  ]),
1504
- e("div", ld, [
1506
+ e("div", id, [
1505
1507
  e("label", null, [
1506
1508
  d[46] || (d[46] = e("span", null, "类型", -1)),
1507
1509
  A(e("select", {
1508
1510
  "onUpdate:modelValue": d[4] || (d[4] = (c) => J.type = c)
1509
1511
  }, [
1510
- (v(!0), f(I, null, N(l(u), (c) => (v(), f("option", {
1512
+ (v(!0), f(_, null, N(l(u), (c) => (v(), f("option", {
1511
1513
  key: c,
1512
1514
  value: c
1513
- }, p(c), 9, sd))), 128))
1515
+ }, p(c), 9, rd))), 128))
1514
1516
  ], 512), [
1515
- [Ie, J.type]
1517
+ [_e, J.type]
1516
1518
  ])
1517
1519
  ]),
1518
1520
  e("label", null, [
@@ -1520,12 +1522,12 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1520
1522
  A(e("select", {
1521
1523
  "onUpdate:modelValue": d[5] || (d[5] = (c) => J.severity = c)
1522
1524
  }, [
1523
- (v(!0), f(I, null, N(l(m), (c) => (v(), f("option", {
1525
+ (v(!0), f(_, null, N(l(m), (c) => (v(), f("option", {
1524
1526
  key: c,
1525
1527
  value: c
1526
- }, p(c), 9, id))), 128))
1528
+ }, p(c), 9, ud))), 128))
1527
1529
  ], 512), [
1528
- [Ie, J.severity]
1530
+ [_e, J.severity]
1529
1531
  ])
1530
1532
  ]),
1531
1533
  e("label", null, [
@@ -1533,12 +1535,12 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1533
1535
  A(e("select", {
1534
1536
  "onUpdate:modelValue": d[6] || (d[6] = (c) => J.sourceSide = c)
1535
1537
  }, [
1536
- (v(!0), f(I, null, N(l(g), (c) => (v(), f("option", {
1538
+ (v(!0), f(_, null, N(l(g), (c) => (v(), f("option", {
1537
1539
  key: c,
1538
1540
  value: c
1539
- }, p(c), 9, rd))), 128))
1541
+ }, p(c), 9, cd))), 128))
1540
1542
  ], 512), [
1541
- [Ie, J.sourceSide]
1543
+ [_e, J.sourceSide]
1542
1544
  ])
1543
1545
  ]),
1544
1546
  e("label", null, [
@@ -1557,12 +1559,12 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1557
1559
  A(e("select", {
1558
1560
  "onUpdate:modelValue": d[8] || (d[8] = (c) => J.ownerRole = c)
1559
1561
  }, [
1560
- (v(!0), f(I, null, N(l(C), (c) => (v(), f("option", {
1562
+ (v(!0), f(_, null, N(l(C), (c) => (v(), f("option", {
1561
1563
  key: c,
1562
1564
  value: c
1563
- }, p(c), 9, ud))), 128))
1565
+ }, p(c), 9, dd))), 128))
1564
1566
  ], 512), [
1565
- [Ie, J.ownerRole]
1567
+ [_e, J.ownerRole]
1566
1568
  ])
1567
1569
  ])
1568
1570
  ]),
@@ -1575,8 +1577,8 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1575
1577
  [z, J.description]
1576
1578
  ])
1577
1579
  ]),
1578
- e("section", cd, [
1579
- e("div", dd, [
1580
+ e("section", pd, [
1581
+ e("div", vd, [
1580
1582
  X(l(Gl), { class: "h-4 w-4" }),
1581
1583
  d[52] || (d[52] = e("span", null, "问题截图", -1))
1582
1584
  ]),
@@ -1588,7 +1590,7 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1588
1590
  var L;
1589
1591
  return (L = ot.value) == null ? void 0 : L.click();
1590
1592
  })
1591
- }, " 选择图片 / 粘贴截图 ", 8, pd),
1593
+ }, " 选择图片 / 粘贴截图 ", 8, fd),
1592
1594
  e("input", {
1593
1595
  ref_key: "imageInputRef",
1594
1596
  ref: ot,
@@ -1599,24 +1601,24 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1599
1601
  onChange: le
1600
1602
  }, null, 544),
1601
1603
  d[53] || (d[53] = e("p", { class: "bug-image-hint" }, "支持 png、jpg、webp;最多 10 张;图片将按原文件直接上传 OSS。", -1)),
1602
- ie.value.length ? (v(), f("div", vd, [
1603
- (v(!0), f(I, null, N(ie.value, (c) => (v(), f("article", {
1604
+ ie.value.length ? (v(), f("div", md, [
1605
+ (v(!0), f(_, null, N(ie.value, (c) => (v(), f("article", {
1604
1606
  key: c.id,
1605
1607
  class: P(`is-${c.status}`)
1606
1608
  }, [
1607
1609
  e("img", {
1608
1610
  src: c.previewUrl,
1609
1611
  alt: c.name
1610
- }, null, 8, fd),
1612
+ }, null, 8, gd),
1611
1613
  e("div", null, [
1612
1614
  e("b", null, p(c.name), 1),
1613
1615
  e("span", null, [
1614
- G(p(x(c.size)), 1),
1615
- c.originalSize !== c.size ? (v(), f(I, { key: 0 }, [
1616
- G(" / 原图 " + p(x(c.originalSize)), 1)
1616
+ H(p(x(c.size)), 1),
1617
+ c.originalSize !== c.size ? (v(), f(_, { key: 0 }, [
1618
+ H(" / 原图 " + p(x(c.originalSize)), 1)
1617
1619
  ], 64)) : w("", !0)
1618
1620
  ]),
1619
- c.error ? (v(), f("small", md, p(c.error), 1)) : w("", !0)
1621
+ c.error ? (v(), f("small", bd, p(c.error), 1)) : w("", !0)
1620
1622
  ]),
1621
1623
  e("button", {
1622
1624
  type: "button",
@@ -1624,93 +1626,93 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1624
1626
  onClick: (L) => $(c.id)
1625
1627
  }, [
1626
1628
  X(l(hn), { class: "h-4 w-4" })
1627
- ], 8, gd)
1629
+ ], 8, yd)
1628
1630
  ], 2))), 128))
1629
1631
  ])) : w("", !0),
1630
- ve.value ? (v(), f("p", bd, p(ve.value), 1)) : w("", !0)
1632
+ ve.value ? (v(), f("p", hd, p(ve.value), 1)) : w("", !0)
1631
1633
  ]),
1632
- Xe.value ? (v(), f("p", yd, p(Xe.value), 1)) : w("", !0),
1634
+ Xe.value ? (v(), f("p", wd, p(Xe.value), 1)) : w("", !0),
1633
1635
  e("button", {
1634
1636
  class: "bug-primary-btn",
1635
1637
  type: "submit",
1636
1638
  disabled: l(q) === "loading"
1637
- }, "提交 Bug", 8, hd)
1639
+ }, "提交 Bug", 8, xd)
1638
1640
  ], 32),
1639
- e("section", wd, [
1640
- e("div", xd, [
1641
- e("div", Sd, [
1641
+ e("section", Sd, [
1642
+ e("div", kd, [
1643
+ e("div", Cd, [
1642
1644
  X(l(Jr), { class: "h-4 w-4" }),
1643
1645
  d[54] || (d[54] = e("span", null, "筛选", -1))
1644
1646
  ]),
1645
- e("div", kd, [
1647
+ e("div", $d, [
1646
1648
  A(e("select", {
1647
1649
  "onUpdate:modelValue": d[11] || (d[11] = (c) => E.status = c)
1648
1650
  }, [
1649
1651
  d[55] || (d[55] = e("option", { value: "未修复" }, "未修复", -1)),
1650
1652
  d[56] || (d[56] = e("option", { value: "全部" }, "全部状态", -1)),
1651
- (v(!0), f(I, null, N(l(_), (c) => (v(), f("option", {
1653
+ (v(!0), f(_, null, N(l(I), (c) => (v(), f("option", {
1652
1654
  key: c,
1653
1655
  value: c
1654
- }, p(c), 9, Cd))), 128))
1656
+ }, p(c), 9, _d))), 128))
1655
1657
  ], 512), [
1656
- [Ie, E.status]
1658
+ [_e, E.status]
1657
1659
  ]),
1658
1660
  A(e("select", {
1659
1661
  "onUpdate:modelValue": d[12] || (d[12] = (c) => E.type = c)
1660
1662
  }, [
1661
1663
  d[57] || (d[57] = e("option", { value: "全部" }, "全部类型", -1)),
1662
- (v(!0), f(I, null, N(l(u), (c) => (v(), f("option", {
1664
+ (v(!0), f(_, null, N(l(u), (c) => (v(), f("option", {
1663
1665
  key: c,
1664
1666
  value: c
1665
- }, p(c), 9, $d))), 128))
1667
+ }, p(c), 9, Id))), 128))
1666
1668
  ], 512), [
1667
- [Ie, E.type]
1669
+ [_e, E.type]
1668
1670
  ]),
1669
1671
  A(e("select", {
1670
1672
  "onUpdate:modelValue": d[13] || (d[13] = (c) => E.severity = c)
1671
1673
  }, [
1672
1674
  d[58] || (d[58] = e("option", { value: "全部" }, "全部等级", -1)),
1673
- (v(!0), f(I, null, N(l(m), (c) => (v(), f("option", {
1675
+ (v(!0), f(_, null, N(l(m), (c) => (v(), f("option", {
1674
1676
  key: c,
1675
1677
  value: c
1676
- }, p(c), 9, Id))), 128))
1678
+ }, p(c), 9, Pd))), 128))
1677
1679
  ], 512), [
1678
- [Ie, E.severity]
1680
+ [_e, E.severity]
1679
1681
  ]),
1680
1682
  A(e("select", {
1681
1683
  "onUpdate:modelValue": d[14] || (d[14] = (c) => E.ownerRole = c)
1682
1684
  }, [
1683
1685
  d[59] || (d[59] = e("option", { value: "全部" }, "全部归属", -1)),
1684
- (v(!0), f(I, null, N(l(C), (c) => (v(), f("option", {
1686
+ (v(!0), f(_, null, N(l(C), (c) => (v(), f("option", {
1685
1687
  key: c,
1686
1688
  value: c
1687
- }, p(c), 9, _d))), 128))
1689
+ }, p(c), 9, Dd))), 128))
1688
1690
  ], 512), [
1689
- [Ie, E.ownerRole]
1691
+ [_e, E.ownerRole]
1690
1692
  ]),
1691
1693
  A(e("select", {
1692
1694
  "onUpdate:modelValue": d[15] || (d[15] = (c) => E.sourceSide = c)
1693
1695
  }, [
1694
1696
  d[60] || (d[60] = e("option", { value: "全部" }, "全部发生侧", -1)),
1695
- (v(!0), f(I, null, N(l(g), (c) => (v(), f("option", {
1697
+ (v(!0), f(_, null, N(l(g), (c) => (v(), f("option", {
1696
1698
  key: c,
1697
1699
  value: c
1698
- }, p(c), 9, Pd))), 128))
1700
+ }, p(c), 9, Ad))), 128))
1699
1701
  ], 512), [
1700
- [Ie, E.sourceSide]
1702
+ [_e, E.sourceSide]
1701
1703
  ]),
1702
1704
  A(e("select", {
1703
1705
  "onUpdate:modelValue": d[16] || (d[16] = (c) => E.sourceSideVersion = c)
1704
1706
  }, [
1705
1707
  d[61] || (d[61] = e("option", { value: "全部" }, "全部发生侧版本", -1)),
1706
- (v(!0), f(I, null, N(bt.value, (c) => (v(), f("option", {
1708
+ (v(!0), f(_, null, N(bt.value, (c) => (v(), f("option", {
1707
1709
  key: c,
1708
1710
  value: c
1709
- }, p(c), 9, Dd))), 128))
1711
+ }, p(c), 9, Nd))), 128))
1710
1712
  ], 512), [
1711
- [Ie, E.sourceSideVersion]
1713
+ [_e, E.sourceSideVersion]
1712
1714
  ]),
1713
- e("label", Ad, [
1715
+ e("label", Td, [
1714
1716
  X(l(Xr), { class: "h-4 w-4" }),
1715
1717
  A(e("input", {
1716
1718
  "onUpdate:modelValue": d[17] || (d[17] = (c) => E.keyword = c),
@@ -1721,18 +1723,18 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1721
1723
  ])
1722
1724
  ])
1723
1725
  ]),
1724
- e("div", Nd, [
1726
+ e("div", Rd, [
1725
1727
  e("label", null, [
1726
1728
  d[62] || (d[62] = e("span", null, "排序", -1)),
1727
1729
  A(e("select", {
1728
1730
  "onUpdate:modelValue": d[18] || (d[18] = (c) => Ve.value = c)
1729
1731
  }, [
1730
- (v(), f(I, null, N(dt, (c) => e("option", {
1732
+ (v(), f(_, null, N(dt, (c) => e("option", {
1731
1733
  key: c.value,
1732
1734
  value: c.value
1733
- }, p(c.label), 9, Td)), 64))
1735
+ }, p(c.label), 9, Ed)), 64))
1734
1736
  ], 512), [
1735
- [Ie, Ve.value]
1737
+ [_e, Ve.value]
1736
1738
  ])
1737
1739
  ]),
1738
1740
  e("label", null, [
@@ -1740,13 +1742,13 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1740
1742
  A(e("select", {
1741
1743
  "onUpdate:modelValue": d[19] || (d[19] = (c) => ce.value = c)
1742
1744
  }, [
1743
- (v(), f(I, null, N(ln, (c) => e("option", {
1745
+ (v(), f(_, null, N(ln, (c) => e("option", {
1744
1746
  key: c,
1745
1747
  value: c
1746
- }, p(c) + " 条", 9, Rd)), 64))
1748
+ }, p(c) + " 条", 9, Od)), 64))
1747
1749
  ], 512), [
1748
1750
  [
1749
- Ie,
1751
+ _e,
1750
1752
  ce.value,
1751
1753
  void 0,
1752
1754
  { number: !0 }
@@ -1755,23 +1757,23 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1755
1757
  ])
1756
1758
  ])
1757
1759
  ]),
1758
- e("div", Ed, [
1759
- at.value.length ? w("", !0) : (v(), f("p", Od, "当前筛选条件下暂无 Bug。")),
1760
- (v(!0), f(I, null, N(Ze.value, (c) => {
1760
+ e("div", Bd, [
1761
+ at.value.length ? w("", !0) : (v(), f("p", Md, "当前筛选条件下暂无 Bug。")),
1762
+ (v(!0), f(_, null, N(Ze.value, (c) => {
1761
1763
  var L;
1762
1764
  return v(), f("article", {
1763
1765
  key: c.id,
1764
1766
  class: P(["bug-list-item", `is-${Ce[c.status]}`])
1765
1767
  }, [
1766
- e("div", Bd, [
1767
- e("div", Md, [
1768
+ e("div", Ud, [
1769
+ e("div", jd, [
1768
1770
  e("b", null, "#" + p(c.id), 1),
1769
1771
  e("span", null, p(c.type), 1),
1770
1772
  e("span", {
1771
1773
  class: P(`severity-${Ne[c.severity]}`)
1772
1774
  }, p(c.severity), 3),
1773
1775
  e("span", null, "发生侧:" + p(c.sourceSide), 1),
1774
- c.sourceSideVersion ? (v(), f("span", Ud, "版本:" + p(c.sourceSideVersion), 1)) : w("", !0),
1776
+ c.sourceSideVersion ? (v(), f("span", Vd, "版本:" + p(c.sourceSideVersion), 1)) : w("", !0),
1775
1777
  e("span", null, "归属:" + p(c.ownerRole), 1),
1776
1778
  e("i", {
1777
1779
  class: P(`status-${Ce[c.status]}`)
@@ -1779,8 +1781,8 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1779
1781
  ]),
1780
1782
  e("h2", null, p(c.title), 1),
1781
1783
  e("p", null, p(c.description), 1),
1782
- (L = c.attachments) != null && L.length ? (v(), f("div", jd, [
1783
- (v(!0), f(I, null, N(c.attachments.slice(0, 3), (be) => (v(), f("button", {
1784
+ (L = c.attachments) != null && L.length ? (v(), f("div", Ld, [
1785
+ (v(!0), f(_, null, N(c.attachments.slice(0, 3), (be) => (v(), f("button", {
1784
1786
  key: be.id,
1785
1787
  type: "button",
1786
1788
  onClick: (yt) => fe.value = be
@@ -1789,38 +1791,38 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1789
1791
  src: l(ya)(be.url),
1790
1792
  alt: be.name,
1791
1793
  loading: "lazy"
1792
- }, null, 8, Ld)
1793
- ], 8, Vd))), 128)),
1794
- c.attachments.length > 3 ? (v(), f("span", Fd, "+" + p(c.attachments.length - 3), 1)) : w("", !0)
1794
+ }, null, 8, Kd)
1795
+ ], 8, Fd))), 128)),
1796
+ c.attachments.length > 3 ? (v(), f("span", zd, "+" + p(c.attachments.length - 3), 1)) : w("", !0)
1795
1797
  ])) : w("", !0),
1796
1798
  e("small", null, [
1797
- G("提报人:" + p(c.reporterName) + " · " + p(Ht(c.createdAt)), 1),
1798
- c.fixerName ? (v(), f(I, { key: 0 }, [
1799
- G(" · 修复人:" + p(c.fixerName), 1)
1799
+ H("提报人:" + p(c.reporterName) + " · " + p(Ht(c.createdAt)), 1),
1800
+ c.fixerName ? (v(), f(_, { key: 0 }, [
1801
+ H(" · 修复人:" + p(c.fixerName), 1)
1800
1802
  ], 64)) : w("", !0)
1801
1803
  ])
1802
1804
  ]),
1803
1805
  e("button", {
1804
1806
  type: "button",
1805
1807
  onClick: (be) => oo(c)
1806
- }, "查看/变更状态", 8, Kd)
1808
+ }, "查看/变更状态", 8, Gd)
1807
1809
  ], 2);
1808
1810
  }), 128))
1809
1811
  ]),
1810
- at.value.length ? (v(), f("div", zd, [
1812
+ at.value.length ? (v(), f("div", Hd, [
1811
1813
  e("span", null, "第 " + p(At.value) + "-" + p(Cn.value) + " 条,共 " + p(Fe.value.length) + " 条", 1),
1812
1814
  e("div", null, [
1813
1815
  e("button", {
1814
1816
  type: "button",
1815
1817
  disabled: oe.value <= 1,
1816
1818
  onClick: d[20] || (d[20] = (c) => oe.value -= 1)
1817
- }, "上一页", 8, Gd),
1819
+ }, "上一页", 8, Wd),
1818
1820
  e("strong", null, p(oe.value) + " / " + p(Ye.value), 1),
1819
1821
  e("button", {
1820
1822
  type: "button",
1821
1823
  disabled: oe.value >= Ye.value,
1822
1824
  onClick: d[21] || (d[21] = (c) => oe.value += 1)
1823
- }, "下一页", 8, Hd)
1825
+ }, "下一页", 8, Yd)
1824
1826
  ])
1825
1827
  ])) : w("", !0)
1826
1828
  ])
@@ -1830,8 +1832,8 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1830
1832
  class: "bug-detail-backdrop",
1831
1833
  onClick: re(Yt, ["self"])
1832
1834
  }, [
1833
- e("aside", Wd, [
1834
- e("div", Yd, [
1835
+ e("aside", Jd, [
1836
+ e("div", Xd, [
1835
1837
  e("div", null, [
1836
1838
  e("span", null, "#" + p(W.value.id), 1),
1837
1839
  e("h2", null, p(W.value.title), 1)
@@ -1844,26 +1846,26 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1844
1846
  X(l(Ao), { class: "h-5 w-5" })
1845
1847
  ])
1846
1848
  ]),
1847
- e("div", Jd, [
1849
+ e("div", Zd, [
1848
1850
  e("span", null, p(W.value.type), 1),
1849
1851
  e("span", {
1850
1852
  class: P(`severity-${Ne[W.value.severity]}`)
1851
1853
  }, p(W.value.severity), 3),
1852
1854
  e("span", null, "发生侧:" + p(W.value.sourceSide), 1),
1853
- W.value.sourceSideVersion ? (v(), f("span", Xd, "版本:" + p(W.value.sourceSideVersion), 1)) : w("", !0),
1855
+ W.value.sourceSideVersion ? (v(), f("span", qd, "版本:" + p(W.value.sourceSideVersion), 1)) : w("", !0),
1854
1856
  e("span", null, "归属:" + p(W.value.ownerRole), 1),
1855
1857
  e("span", {
1856
1858
  class: P(`status-${Ce[W.value.status]}`)
1857
1859
  }, p(W.value.status), 3)
1858
1860
  ]),
1859
- e("div", Zd, [
1861
+ e("div", Qd, [
1860
1862
  e("div", null, [
1861
1863
  Dt.value && !De.value ? (v(), f("button", {
1862
1864
  key: 0,
1863
1865
  class: "bug-edit-entry-btn",
1864
1866
  type: "button",
1865
1867
  onClick: ao
1866
- }, "编辑 Bug")) : Dt.value ? w("", !0) : (v(), f("span", qd, "已完结 Bug 不支持编辑"))
1868
+ }, "编辑 Bug")) : Dt.value ? w("", !0) : (v(), f("span", ep, "已完结 Bug 不支持编辑"))
1867
1869
  ]),
1868
1870
  De.value ? w("", !0) : (v(), f("button", {
1869
1871
  key: 0,
@@ -1872,7 +1874,7 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1872
1874
  onClick: Ho
1873
1875
  }, [
1874
1876
  X(l(hn), { class: "h-4 w-4" }),
1875
- d[64] || (d[64] = G(" 删除 Bug ", -1))
1877
+ d[64] || (d[64] = H(" 删除 Bug ", -1))
1876
1878
  ]))
1877
1879
  ]),
1878
1880
  ae.value ? (v(), f("form", {
@@ -1895,16 +1897,16 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1895
1897
  [z, ne.value]
1896
1898
  ])
1897
1899
  ]),
1898
- Ee.value ? (v(), f("p", Qd, p(Ee.value), 1)) : w("", !0),
1900
+ Ee.value ? (v(), f("p", tp, p(Ee.value), 1)) : w("", !0),
1899
1901
  e("div", null, [
1900
1902
  e("button", {
1901
1903
  type: "button",
1902
- onClick: In
1904
+ onClick: _n
1903
1905
  }, "取消"),
1904
1906
  e("button", {
1905
1907
  type: "submit",
1906
1908
  disabled: l(q) === "loading"
1907
- }, "确认删除", 8, ep)
1909
+ }, "确认删除", 8, np)
1908
1910
  ])
1909
1911
  ], 32)) : w("", !0),
1910
1912
  De.value ? (v(), f("form", {
@@ -1922,18 +1924,18 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1922
1924
  [z, V.title]
1923
1925
  ])
1924
1926
  ]),
1925
- e("div", tp, [
1927
+ e("div", op, [
1926
1928
  e("label", null, [
1927
1929
  d[68] || (d[68] = e("span", null, "类型", -1)),
1928
1930
  A(e("select", {
1929
1931
  "onUpdate:modelValue": d[24] || (d[24] = (c) => V.type = c)
1930
1932
  }, [
1931
- (v(!0), f(I, null, N(l(u), (c) => (v(), f("option", {
1933
+ (v(!0), f(_, null, N(l(u), (c) => (v(), f("option", {
1932
1934
  key: c,
1933
1935
  value: c
1934
- }, p(c), 9, np))), 128))
1936
+ }, p(c), 9, ap))), 128))
1935
1937
  ], 512), [
1936
- [Ie, V.type]
1938
+ [_e, V.type]
1937
1939
  ])
1938
1940
  ]),
1939
1941
  e("label", null, [
@@ -1941,12 +1943,12 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1941
1943
  A(e("select", {
1942
1944
  "onUpdate:modelValue": d[25] || (d[25] = (c) => V.severity = c)
1943
1945
  }, [
1944
- (v(!0), f(I, null, N(l(m), (c) => (v(), f("option", {
1946
+ (v(!0), f(_, null, N(l(m), (c) => (v(), f("option", {
1945
1947
  key: c,
1946
1948
  value: c
1947
- }, p(c), 9, op))), 128))
1949
+ }, p(c), 9, lp))), 128))
1948
1950
  ], 512), [
1949
- [Ie, V.severity]
1951
+ [_e, V.severity]
1950
1952
  ])
1951
1953
  ]),
1952
1954
  e("label", null, [
@@ -1954,12 +1956,12 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1954
1956
  A(e("select", {
1955
1957
  "onUpdate:modelValue": d[26] || (d[26] = (c) => V.sourceSide = c)
1956
1958
  }, [
1957
- (v(!0), f(I, null, N(l(g), (c) => (v(), f("option", {
1959
+ (v(!0), f(_, null, N(l(g), (c) => (v(), f("option", {
1958
1960
  key: c,
1959
1961
  value: c
1960
- }, p(c), 9, ap))), 128))
1962
+ }, p(c), 9, sp))), 128))
1961
1963
  ], 512), [
1962
- [Ie, V.sourceSide]
1964
+ [_e, V.sourceSide]
1963
1965
  ])
1964
1966
  ]),
1965
1967
  e("label", null, [
@@ -1978,12 +1980,12 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1978
1980
  A(e("select", {
1979
1981
  "onUpdate:modelValue": d[28] || (d[28] = (c) => V.ownerRole = c)
1980
1982
  }, [
1981
- (v(!0), f(I, null, N(l(C), (c) => (v(), f("option", {
1983
+ (v(!0), f(_, null, N(l(C), (c) => (v(), f("option", {
1982
1984
  key: c,
1983
1985
  value: c
1984
- }, p(c), 9, lp))), 128))
1986
+ }, p(c), 9, ip))), 128))
1985
1987
  ], 512), [
1986
- [Ie, V.ownerRole]
1988
+ [_e, V.ownerRole]
1987
1989
  ])
1988
1990
  ])
1989
1991
  ]),
@@ -1995,8 +1997,8 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
1995
1997
  [z, V.description]
1996
1998
  ])
1997
1999
  ]),
1998
- e("section", sp, [
1999
- e("div", ip, [
2000
+ e("section", rp, [
2001
+ e("div", up, [
2000
2002
  X(l(Gl), { class: "h-4 w-4" }),
2001
2003
  d[74] || (d[74] = e("span", null, "问题截图", -1))
2002
2004
  ]),
@@ -2008,9 +2010,9 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
2008
2010
  var L;
2009
2011
  return (L = ot.value) == null ? void 0 : L.click();
2010
2012
  })
2011
- }, " 添加图片 / 粘贴截图 ", 8, rp),
2012
- U.value.length ? (v(), f("div", up, [
2013
- (v(!0), f(I, null, N(U.value, (c) => (v(), f("article", {
2013
+ }, " 添加图片 / 粘贴截图 ", 8, cp),
2014
+ U.value.length ? (v(), f("div", dp, [
2015
+ (v(!0), f(_, null, N(U.value, (c) => (v(), f("article", {
2014
2016
  key: c.id
2015
2017
  }, [
2016
2018
  e("button", {
@@ -2022,8 +2024,8 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
2022
2024
  src: l(ya)(c.url),
2023
2025
  alt: c.name,
2024
2026
  loading: "lazy"
2025
- }, null, 8, dp)
2026
- ], 8, cp),
2027
+ }, null, 8, vp)
2028
+ ], 8, pp),
2027
2029
  e("div", null, [
2028
2030
  e("b", null, p(c.name), 1),
2029
2031
  e("span", null, p(x(c.size)), 1)
@@ -2034,22 +2036,22 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
2034
2036
  onClick: (L) => $n(c.id)
2035
2037
  }, [
2036
2038
  X(l(hn), { class: "h-4 w-4" })
2037
- ], 8, pp)
2039
+ ], 8, fp)
2038
2040
  ]))), 128))
2039
2041
  ])) : w("", !0),
2040
- ie.value.length ? (v(), f("div", vp, [
2041
- (v(!0), f(I, null, N(ie.value, (c) => (v(), f("article", {
2042
+ ie.value.length ? (v(), f("div", mp, [
2043
+ (v(!0), f(_, null, N(ie.value, (c) => (v(), f("article", {
2042
2044
  key: c.id,
2043
2045
  class: P(`is-${c.status}`)
2044
2046
  }, [
2045
2047
  e("img", {
2046
2048
  src: c.previewUrl,
2047
2049
  alt: c.name
2048
- }, null, 8, fp),
2050
+ }, null, 8, gp),
2049
2051
  e("div", null, [
2050
2052
  e("b", null, p(c.name), 1),
2051
2053
  e("span", null, p(x(c.size)), 1),
2052
- c.error ? (v(), f("small", mp, p(c.error), 1)) : w("", !0)
2054
+ c.error ? (v(), f("small", bp, p(c.error), 1)) : w("", !0)
2053
2055
  ]),
2054
2056
  e("button", {
2055
2057
  type: "button",
@@ -2057,13 +2059,13 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
2057
2059
  onClick: (L) => $(c.id)
2058
2060
  }, [
2059
2061
  X(l(hn), { class: "h-4 w-4" })
2060
- ], 8, gp)
2062
+ ], 8, yp)
2061
2063
  ], 2))), 128))
2062
2064
  ])) : w("", !0),
2063
- ve.value ? (v(), f("p", bp, p(ve.value), 1)) : w("", !0)
2065
+ ve.value ? (v(), f("p", hp, p(ve.value), 1)) : w("", !0)
2064
2066
  ]),
2065
- ee.value ? (v(), f("p", yp, p(ee.value), 1)) : w("", !0),
2066
- e("div", hp, [
2067
+ ee.value ? (v(), f("p", wp, p(ee.value), 1)) : w("", !0),
2068
+ e("div", xp, [
2067
2069
  e("button", {
2068
2070
  type: "button",
2069
2071
  onClick: Go
@@ -2071,14 +2073,14 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
2071
2073
  e("button", {
2072
2074
  type: "submit",
2073
2075
  disabled: l(q) === "loading"
2074
- }, "保存修改", 8, wp)
2076
+ }, "保存修改", 8, Sp)
2075
2077
  ])
2076
- ], 32)) : (v(), f("p", xp, p(W.value.description), 1)),
2077
- e("p", Sp, "提报人:" + p(W.value.reporterName) + " · " + p(Ht(W.value.createdAt)), 1),
2078
- !De.value && ((O = W.value.attachments) != null && O.length) ? (v(), f("section", kp, [
2078
+ ], 32)) : (v(), f("p", kp, p(W.value.description), 1)),
2079
+ e("p", Cp, "提报人:" + p(W.value.reporterName) + " · " + p(Ht(W.value.createdAt)), 1),
2080
+ !De.value && ((O = W.value.attachments) != null && O.length) ? (v(), f("section", $p, [
2079
2081
  d[75] || (d[75] = e("h3", null, "问题截图", -1)),
2080
2082
  e("div", null, [
2081
- (v(!0), f(I, null, N(W.value.attachments, (c) => (v(), f("button", {
2083
+ (v(!0), f(_, null, N(W.value.attachments, (c) => (v(), f("button", {
2082
2084
  key: c.id,
2083
2085
  type: "button",
2084
2086
  onClick: (L) => fe.value = c
@@ -2087,16 +2089,16 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
2087
2089
  src: l(ya)(c.url),
2088
2090
  alt: c.name,
2089
2091
  loading: "lazy"
2090
- }, null, 8, $p),
2092
+ }, null, 8, Ip),
2091
2093
  e("span", null, p(c.name), 1)
2092
- ], 8, Cp))), 128))
2094
+ ], 8, _p))), 128))
2093
2095
  ])
2094
2096
  ])) : w("", !0),
2095
2097
  e("form", {
2096
2098
  class: "bug-status-form",
2097
2099
  onSubmit: re(lo, ["prevent"])
2098
2100
  }, [
2099
- e("div", Ip, [
2101
+ e("div", Pp, [
2100
2102
  X(l(zl), { class: "h-4 w-4" }),
2101
2103
  d[76] || (d[76] = e("span", null, "状态变更", -1))
2102
2104
  ]),
@@ -2105,15 +2107,15 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
2105
2107
  A(e("select", {
2106
2108
  "onUpdate:modelValue": d[31] || (d[31] = (c) => Z.status = c)
2107
2109
  }, [
2108
- (v(!0), f(I, null, N(l(_), (c) => (v(), f("option", {
2110
+ (v(!0), f(_, null, N(l(I), (c) => (v(), f("option", {
2109
2111
  key: c,
2110
2112
  value: c
2111
- }, p(c), 9, _p))), 128))
2113
+ }, p(c), 9, Dp))), 128))
2112
2114
  ], 512), [
2113
- [Ie, Z.status]
2115
+ [_e, Z.status]
2114
2116
  ])
2115
2117
  ]),
2116
- e("div", Pp, [
2118
+ e("div", Ap, [
2117
2119
  e("label", null, [
2118
2120
  d[78] || (d[78] = e("span", null, "操作人姓名", -1)),
2119
2121
  A(e("input", {
@@ -2130,7 +2132,7 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
2130
2132
  "onUpdate:modelValue": d[33] || (d[33] = (c) => Z.fixerName = c),
2131
2133
  type: "text",
2132
2134
  placeholder: Z.status === "已修复" ? "已修复时必填" : "选填"
2133
- }, null, 8, Dp), [
2135
+ }, null, 8, Np), [
2134
2136
  [z, Z.fixerName]
2135
2137
  ])
2136
2138
  ])
@@ -2144,23 +2146,23 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
2144
2146
  [z, Z.note]
2145
2147
  ])
2146
2148
  ]),
2147
- Le.value ? (v(), f("p", Ap, p(Le.value), 1)) : w("", !0),
2149
+ Le.value ? (v(), f("p", Tp, p(Le.value), 1)) : w("", !0),
2148
2150
  e("button", {
2149
2151
  class: "bug-primary-btn",
2150
2152
  type: "submit",
2151
2153
  disabled: l(q) === "loading"
2152
- }, "提交状态变更", 8, Np)
2154
+ }, "提交状态变更", 8, Rp)
2153
2155
  ], 32),
2154
- e("section", Tp, [
2156
+ e("section", Ep, [
2155
2157
  d[81] || (d[81] = e("h3", null, "处理记录", -1)),
2156
- W.value.history.length ? w("", !0) : (v(), f("p", Rp, "暂无状态变更记录。")),
2157
- (v(!0), f(I, null, N(W.value.history, (c) => (v(), f("article", {
2158
+ W.value.history.length ? w("", !0) : (v(), f("p", Op, "暂无状态变更记录。")),
2159
+ (v(!0), f(_, null, N(W.value.history, (c) => (v(), f("article", {
2158
2160
  key: c.id
2159
2161
  }, [
2160
2162
  e("b", null, p(c.fromStatus) + " → " + p(c.toStatus), 1),
2161
2163
  e("span", null, p(c.operatorName) + " · " + p(Ht(c.createdAt)), 1),
2162
- c.fixerName ? (v(), f("p", Ep, "修复人:" + p(c.fixerName), 1)) : w("", !0),
2163
- c.note ? (v(), f("p", Op, p(c.note), 1)) : w("", !0)
2164
+ c.fixerName ? (v(), f("p", Bp, "修复人:" + p(c.fixerName), 1)) : w("", !0),
2165
+ c.note ? (v(), f("p", Mp, p(c.note), 1)) : w("", !0)
2164
2166
  ]))), 128))
2165
2167
  ])
2166
2168
  ])
@@ -2170,7 +2172,7 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
2170
2172
  class: "bug-image-preview-backdrop",
2171
2173
  onClick: d[36] || (d[36] = re((c) => fe.value = null, ["self"]))
2172
2174
  }, [
2173
- e("section", Bp, [
2175
+ e("section", Up, [
2174
2176
  e("div", null, [
2175
2177
  e("p", null, p(fe.value.name), 1),
2176
2178
  e("button", {
@@ -2184,7 +2186,7 @@ const Wc = { class: "bug-page" }, Yc = { class: "bug-page-head" }, Jc = ["disabl
2184
2186
  e("img", {
2185
2187
  src: fe.value.url,
2186
2188
  alt: fe.value.name
2187
- }, null, 8, Mp)
2189
+ }, null, 8, jp)
2188
2190
  ])
2189
2191
  ])) : w("", !0)
2190
2192
  ]);
@@ -2200,20 +2202,20 @@ const Ts = ye().remoteReadable;
2200
2202
  function Rs(t) {
2201
2203
  return t.split("/").map(encodeURIComponent).join("/");
2202
2204
  }
2203
- function jp(t) {
2205
+ function Lp(t) {
2204
2206
  return btoa(unescape(encodeURIComponent(t)));
2205
2207
  }
2206
- function Vp(t) {
2208
+ function Fp(t) {
2207
2209
  return decodeURIComponent(escape(atob(t.replace(/\s/g, ""))));
2208
2210
  }
2209
- function Lp(t) {
2211
+ function Kp(t) {
2210
2212
  return t === "pageDescriptions" ? "page-descriptions" : t;
2211
2213
  }
2212
2214
  function jt(t, n) {
2213
2215
  const s = ye(), r = `projects/${s.projectId}/branches/${s.branchKey}`;
2214
- return t === "flows" ? `${r}/flows.json` : `${r}/${Lp(t)}/${n ?? "manifest"}.json`;
2216
+ return t === "flows" ? `${r}/flows.json` : `${r}/${Kp(t)}/${n ?? "manifest"}.json`;
2215
2217
  }
2216
- function Fp(t, n) {
2218
+ function zp(t, n) {
2217
2219
  const s = ye();
2218
2220
  return t === "flows" ? null : t === "annotations" && !n ? `projects/${s.projectId}/manifest.json` : t === "annotations" ? `projects/${s.projectId}/annotations/${n}.json` : n ? `projects/${s.projectId}/page-descriptions/${n}.json` : `projects/${s.projectId}/page-descriptions/manifest.json`;
2219
2221
  }
@@ -2235,7 +2237,7 @@ async function Vt(t) {
2235
2237
  if (u.status === 404) return null;
2236
2238
  if (!u.ok) throw new Error(`读取 Gitee 文件失败:${u.status}`);
2237
2239
  const m = await u.json(), g = ds(m, t);
2238
- if (g) return { value: JSON.parse(Vp(g.content)), sha: g.sha, legacy: !1 };
2240
+ if (g) return { value: JSON.parse(Fp(g.content)), sha: g.sha, legacy: !1 };
2239
2241
  if (Array.isArray(m)) return null;
2240
2242
  const C = m && typeof m == "object" ? Object.keys(m).join(",") || "empty" : typeof m;
2241
2243
  throw new Error(`Gitee 文件响应格式异常:${u.status} / ${C}`);
@@ -2246,7 +2248,7 @@ async function Lt(t, n) {
2246
2248
  const s = await Vt(jt(t, n));
2247
2249
  if (s) return s;
2248
2250
  if (ye().codeBranch !== "main") return null;
2249
- const u = Fp(t, n);
2251
+ const u = zp(t, n);
2250
2252
  if (!u) return null;
2251
2253
  const m = await Vt(u);
2252
2254
  return m ? { ...m, legacy: !0 } : null;
@@ -2255,7 +2257,7 @@ async function Zn(t, n, s, r) {
2255
2257
  const u = ye();
2256
2258
  if (!u.remoteWritable) return;
2257
2259
  const m = `${Ns}/repos/${encodeURIComponent(u.owner)}/${encodeURIComponent(u.repo)}/contents/${Rs(t)}`, g = new URLSearchParams();
2258
- g.set("access_token", u.token), g.set("branch", u.remoteBranch), g.set("content", jp(JSON.stringify(n, null, 2))), g.set("message", r), s && g.set("sha", s);
2260
+ g.set("access_token", u.token), g.set("branch", u.remoteBranch), g.set("content", Lp(JSON.stringify(n, null, 2))), g.set("message", r), s && g.set("sha", s);
2259
2261
  const C = await fetch(m, {
2260
2262
  method: s ? "PUT" : "POST",
2261
2263
  headers: { "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8" },
@@ -2281,10 +2283,10 @@ function Vn(t, n, s, r) {
2281
2283
  return g ? cs(g.value, s) : (await Zn(m, s, null, qn(n ?? "all", r, "初始化", t)), "created");
2282
2284
  });
2283
2285
  }
2284
- async function Kp() {
2286
+ async function Gp() {
2285
2287
  return !!await Vt(Es());
2286
2288
  }
2287
- function zp(t, n) {
2289
+ function Hp(t, n) {
2288
2290
  return Jn("initialization:marker", async () => {
2289
2291
  const s = Es(), r = await Vt(s);
2290
2292
  return r ? cs(r.value, t) : (await Zn(s, t, null, qn("all", n, "初始化完成", "flows")), "created");
@@ -2294,7 +2296,7 @@ async function Bs(t, n, s, r) {
2294
2296
  return Jn(`${t}:manifest`, async () => {
2295
2297
  var u, m;
2296
2298
  for (let g = 0; g < 2; g += 1) {
2297
- const C = await Vt(jt(t)), _ = !C && ye().codeBranch === "main" ? await Lt(t) : null, M = (u = C ?? _) == null ? void 0 : u.value, se = r.split("__")[0], xe = {
2299
+ const C = await Vt(jt(t)), I = !C && ye().codeBranch === "main" ? await Lt(t) : null, M = (u = C ?? I) == null ? void 0 : u.value, se = r.split("__")[0], xe = {
2298
2300
  ...M ?? n,
2299
2301
  projectId: n.projectId,
2300
2302
  updatedAt: (/* @__PURE__ */ new Date()).toISOString(),
@@ -2310,50 +2312,50 @@ async function Bs(t, n, s, r) {
2310
2312
  return null;
2311
2313
  });
2312
2314
  }
2313
- function Gp() {
2315
+ function Wp() {
2314
2316
  return Lt("annotations");
2315
2317
  }
2316
2318
  function $a(t) {
2317
2319
  return Lt("annotations", t);
2318
2320
  }
2319
- async function Hp(t, n, s, r) {
2321
+ async function Yp(t, n, s, r) {
2320
2322
  return Jn(`annotations:${t}`, async () => {
2321
- var _;
2322
- const u = await Vt(jt("annotations", t)), m = !u && ye().codeBranch === "main" ? await $a(t) : null, g = (_ = u ?? m) == null ? void 0 : _.value, C = r(Array.isArray(g) ? g : []);
2323
+ var I;
2324
+ const u = await Vt(jt("annotations", t)), m = !u && ye().codeBranch === "main" ? await $a(t) : null, g = (I = u ?? m) == null ? void 0 : I.value, C = r(Array.isArray(g) ? g : []);
2323
2325
  return await Zn(jt("annotations", t), C, (u == null ? void 0 : u.sha) ?? null, qn(t, n, s, "annotations")), $a(t);
2324
2326
  });
2325
2327
  }
2326
- async function Wp(t, n, s) {
2328
+ async function Jp(t, n, s) {
2327
2329
  return Bs("annotations", t, n, s);
2328
2330
  }
2329
- function Yp() {
2331
+ function Xp() {
2330
2332
  return Lt("pageDescriptions");
2331
2333
  }
2332
- function Jp(t) {
2334
+ function Zp(t) {
2333
2335
  return Lt("pageDescriptions", t);
2334
2336
  }
2335
- function Xp(t, n, s) {
2337
+ function qp(t, n, s) {
2336
2338
  return Os("pageDescriptions", s, t, n, "保存");
2337
2339
  }
2338
- function Zp(t, n, s) {
2340
+ function Qp(t, n, s) {
2339
2341
  return Bs("pageDescriptions", t, n, s);
2340
2342
  }
2341
- function qp() {
2343
+ function ev() {
2342
2344
  return Lt("flows");
2343
2345
  }
2344
- function Qp(t, n) {
2346
+ function tv(t, n) {
2345
2347
  return Os("flows", { version: "1.0.0", flows: n }, "", t, "保存");
2346
2348
  }
2347
- const ev = {}, tv = { class: "flex min-h-full flex-col items-center justify-center bg-canvas px-8 text-center text-ink" };
2348
- function nv(t, n) {
2349
- return v(), f("section", tv, [...n[0] || (n[0] = [
2349
+ const nv = {}, ov = { class: "flex min-h-full flex-col items-center justify-center bg-canvas px-8 text-center text-ink" };
2350
+ function av(t, n) {
2351
+ return v(), f("section", ov, [...n[0] || (n[0] = [
2350
2352
  e("div", { class: "rounded-[28px] border border-line bg-panel px-7 py-8 shadow-sm" }, [
2351
2353
  e("p", { class: "text-lg font-semibold" }, "暂无原型页面"),
2352
2354
  e("p", { class: "mt-2 text-sm leading-6 text-muted" }, "请先在产品注册表中配置页面、状态与流程。")
2353
2355
  ], -1)
2354
2356
  ])]);
2355
2357
  }
2356
- const ov = /* @__PURE__ */ is(ev, [["render", nv]]), { copy: av, pages: Ms, states: Us, flows: lv, extendContext: ha } = eu(), tt = {
2358
+ const lv = /* @__PURE__ */ is(nv, [["render", av]]), { copy: sv, pages: Ms, states: Us, flows: iv, extendContext: ha } = eu(), tt = {
2357
2359
  ocean: "#1d1d1f",
2358
2360
  ink: "#1d1d1f",
2359
2361
  muted: "#747579",
@@ -2367,7 +2369,7 @@ const ov = /* @__PURE__ */ is(ev, [["render", nv]]), { copy: av, pages: Ms, stat
2367
2369
  dark: "#232326",
2368
2370
  device: "#1d1d1f",
2369
2371
  head: "#f5f5f7"
2370
- }, sv = [
2372
+ }, rv = [
2371
2373
  { id: "default", nameKey: "themeDefault", descriptionKey: "themeDefaultDesc", colors: tt },
2372
2374
  {
2373
2375
  id: "warm",
@@ -2413,11 +2415,11 @@ const ov = /* @__PURE__ */ is(ev, [["render", nv]]), { copy: av, pages: Ms, stat
2413
2415
  { key: "dark", labelKey: "themeColorDark", descKey: "themeColorDarkDesc" },
2414
2416
  { key: "device", labelKey: "themeColorDevice", descKey: "themeColorDeviceDesc" },
2415
2417
  { key: "head", labelKey: "themeColorHead", descKey: "themeColorHeadDesc" }
2416
- ], Ia = "prototype-core-custom-theme", Vs = "prototype-core-annotation-author", Ls = "prototype-core-collaboration-polling-interval-v2", Fs = 60, Ks = 10, zs = 300, Gs = b("zh"), _a = b("interactive"), Re = b("splash"), ut = b(""), ct = b("default"), It = b({ ...tt }), iv = b(!1), rv = b(null), Te = b(0.42), nn = b(360), on = b(150), Mo = b(!1), Gn = b({ x: 0, y: 0, panX: 0, panY: 0 }), wa = Ms.find((t) => t.platform === "mobile" && t.hasTabBar), Ma = b((wa == null ? void 0 : wa.id) ?? ""), Ua = Fn({});
2418
+ ], _a = "prototype-core-custom-theme", Vs = "prototype-core-annotation-author", Ls = "prototype-core-collaboration-polling-interval-v2", Fs = 60, Ks = 10, zs = 300, Gs = b("zh"), Ia = b("interactive"), Re = b("splash"), ut = b(""), ct = b("default"), _t = b({ ...tt }), uv = b(!1), cv = b(null), Te = b(0.42), nn = b(360), on = b(150), Mo = b(!1), Gn = b({ x: 0, y: 0, panX: 0, panY: 0 }), wa = Ms.find((t) => t.platform === "mobile" && t.hasTabBar), Ma = b((wa == null ? void 0 : wa.id) ?? ""), Ua = Fn({});
2417
2419
  Object.entries(Us).forEach(([t, n]) => {
2418
2420
  n.length && (Ua[t] = n[0].id);
2419
2421
  });
2420
- const uv = b("annotations"), _t = b(Ts), Ut = b("idle"), Ft = b(Ts ? "云端协作已启用" : "本地兜底模式"), nt = b(""), xn = b(Fs), Ro = b(String(Fs)), Pa = b(""), cv = b(!1), dv = b(!0), Uo = b(!1), jo = b(""), Qn = b(null), ja = b(""), eo = b("view"), Sn = b({ featureName: "", featureDescription: "", specialNote: "" }), Y = b([]), Kt = b(null), Me = b([]), zt = b(null), Va = b({
2422
+ const dv = b("annotations"), It = b(Ts), Ut = b("idle"), Ft = b(Ts ? "云端协作已启用" : "本地兜底模式"), nt = b(""), xn = b(Fs), Ro = b(String(Fs)), Pa = b(""), pv = b(!1), vv = b(!0), Uo = b(!1), jo = b(""), Qn = b(null), ja = b(""), eo = b("view"), Sn = b({ featureName: "", featureDescription: "", specialNote: "" }), Y = b([]), Kt = b(null), Me = b([]), zt = b(null), Va = b({
2421
2423
  highlighted: !1,
2422
2424
  purpose: "",
2423
2425
  structure: "",
@@ -2432,7 +2434,7 @@ const uv = b("annotations"), _t = b(Ts), Ut = b("idle"), Ft = b(Ts ? "云端协
2432
2434
  annotations: { source: "local-seed", status: "idle" },
2433
2435
  pageDescriptions: { source: "local-seed", status: "idle" },
2434
2436
  flows: { source: "local-seed", status: "idle" }
2435
- }), Mt = b("idle"), _e = b({ current: 0, total: 0, label: "" }), tn = b(""), pv = b(!1), Ws = k(() => _t.value && we.remoteWritable), vv = b(1), fv = b(3), Wn = b(null), an = Ms;
2437
+ }), Mt = b("idle"), Ie = b({ current: 0, total: 0, label: "" }), tn = b(""), fv = b(!1), Ws = k(() => It.value && we.remoteWritable), mv = b(1), gv = b(3), Wn = b(null), an = Ms;
2436
2438
  function it() {
2437
2439
  return typeof window > "u" ? null : window.localStorage;
2438
2440
  }
@@ -2443,7 +2445,7 @@ function Js(t) {
2443
2445
  var n, s;
2444
2446
  Ys.value = t, t ? (n = it()) == null || n.setItem(Da, "true") : (s = it()) == null || s.removeItem(Da);
2445
2447
  }
2446
- const mv = k(() => {
2448
+ const bv = k(() => {
2447
2449
  var r;
2448
2450
  const t = Object.values(me.value);
2449
2451
  if (t.some((u) => u.status === "conflict")) return "数据冲突";
@@ -2454,17 +2456,17 @@ const mv = k(() => {
2454
2456
  }), Xs = k(() => {
2455
2457
  const t = Object.values(me.value);
2456
2458
  return t.some((n) => n.status === "conflict") ? "conflict" : !we.remoteWritable || t.some((n) => n.status === "error") ? "warning" : t.some((n) => n.status === "syncing") ? "syncing" : t.every((n) => n.source === "gitee") ? "remote" : "local";
2457
- }), gv = k(() => {
2459
+ }), yv = k(() => {
2458
2460
  const t = Object.values(me.value).map((n) => n.syncedAt).filter((n) => !!n).sort();
2459
2461
  return t[t.length - 1] ?? "";
2460
- }), bv = k(() => {
2461
- if (Mt.value === "running") return `正在初始化 Gitee · ${_e.value.current} / ${_e.value.total}`;
2462
+ }), hv = k(() => {
2463
+ if (Mt.value === "running") return `正在初始化 Gitee · ${Ie.value.current} / ${Ie.value.total}`;
2462
2464
  if (tn.value) return tn.value;
2463
2465
  if (!we.remoteWritable) return we.unavailableReason;
2464
2466
  if (Xs.value === "conflict") return "远端已更新,请处理本地草稿";
2465
2467
  const t = Object.values(me.value).find((n) => n.status === "error");
2466
2468
  return (t == null ? void 0 : t.message) || "注释 / 页面描述 / 流程";
2467
- }), yv = k(() => we.remoteWritable && Mt.value !== "running");
2469
+ }), wv = k(() => we.remoteWritable && Mt.value !== "running");
2468
2470
  function te(t, n, s, r = "", u) {
2469
2471
  me.value = {
2470
2472
  ...me.value,
@@ -2474,42 +2476,42 @@ function te(t, n, s, r = "", u) {
2474
2476
  function La(t, n) {
2475
2477
  te(t, me.value[t].source, "conflict", n), Ut.value = "error", Ft.value = n;
2476
2478
  }
2477
- function hv(t, n) {
2479
+ function xv(t, n) {
2478
2480
  Hn.value = { ...Hn.value, [t]: n };
2479
2481
  }
2480
2482
  function Zs(t) {
2481
- return av[Gs.value][t] ?? t;
2483
+ return sv[Gs.value][t] ?? t;
2482
2484
  }
2483
2485
  function Fa(t) {
2484
2486
  return /^#[0-9a-fA-F]{6}$/.test(t);
2485
2487
  }
2486
- function wv(t) {
2488
+ function Sv(t) {
2487
2489
  const n = t.replace("#", ""), s = Number.parseInt(n, 16);
2488
2490
  return Number.isNaN(s) ? "0 0 0" : `${s >> 16 & 255} ${s >> 8 & 255} ${s & 255}`;
2489
2491
  }
2490
2492
  const qs = k(() => [
2491
- ...sv,
2492
- { id: "custom", nameKey: "themeCustom", descriptionKey: "themeCustomDesc", colors: It.value }
2493
+ ...rv,
2494
+ { id: "custom", nameKey: "themeCustom", descriptionKey: "themeCustomDesc", colors: _t.value }
2493
2495
  ]), Qs = k(() => {
2494
2496
  var t;
2495
2497
  return ((t = qs.value.find((n) => n.id === ct.value)) == null ? void 0 : t.colors) ?? tt;
2496
- }), xv = k(
2497
- () => Object.fromEntries(Object.entries(Qs.value).map(([t, n]) => [`--color-${t}`, wv(n)]))
2498
+ }), kv = k(
2499
+ () => Object.fromEntries(Object.entries(Qs.value).map(([t, n]) => [`--color-${t}`, Sv(n)]))
2498
2500
  );
2499
- function Sv(t) {
2501
+ function Cv(t) {
2500
2502
  ct.value = t;
2501
2503
  }
2502
- function kv(t, n) {
2503
- Fa(n) && (It.value = { ...It.value, [t]: n }, ct.value = "custom");
2504
+ function $v(t, n) {
2505
+ Fa(n) && (_t.value = { ..._t.value, [t]: n }, ct.value = "custom");
2504
2506
  }
2505
- function Cv() {
2506
- It.value = { ...tt }, ct.value = "default";
2507
+ function _v() {
2508
+ _t.value = { ...tt }, ct.value = "default";
2507
2509
  }
2508
- function $v() {
2509
- const t = new Blob([JSON.stringify({ selectedThemeId: "custom", colors: It.value }, null, 2)], { type: "application/json;charset=utf-8" }), n = document.createElement("a");
2510
+ function Iv() {
2511
+ const t = new Blob([JSON.stringify({ selectedThemeId: "custom", colors: _t.value }, null, 2)], { type: "application/json;charset=utf-8" }), n = document.createElement("a");
2510
2512
  n.href = URL.createObjectURL(t), n.download = "prototype-core-theme.json", n.click(), URL.revokeObjectURL(n.href);
2511
2513
  }
2512
- function Iv(t) {
2514
+ function Pv(t) {
2513
2515
  var r;
2514
2516
  const n = (r = t.target.files) == null ? void 0 : r[0];
2515
2517
  if (!n) return;
@@ -2518,8 +2520,8 @@ function Iv(t) {
2518
2520
  try {
2519
2521
  const u = JSON.parse(String(s.result)), m = { ...tt };
2520
2522
  Object.entries(u.colors ?? {}).forEach(([g, C]) => {
2521
- js.some((_) => _.key === g) && typeof C == "string" && Fa(C) && (m[g] = C);
2522
- }), It.value = m, ct.value = "custom";
2523
+ js.some((I) => I.key === g) && typeof C == "string" && Fa(C) && (m[g] = C);
2524
+ }), _t.value = m, ct.value = "custom";
2523
2525
  } catch {
2524
2526
  Ft.value = "主题文件解析失败";
2525
2527
  }
@@ -2532,7 +2534,7 @@ const ei = {
2532
2534
  title: "暂无原型页面",
2533
2535
  subtitle: "等待产品注册",
2534
2536
  icon: ss,
2535
- component: ov,
2537
+ component: lv,
2536
2538
  hasTabBar: !1
2537
2539
  }, Ka = k(() => an.find((t) => t.id === Re.value) ?? an[0] ?? ei), Aa = k(() => he.value.find((t) => t.id === ut.value) ?? he.value[0] ?? null), za = k(
2538
2540
  () => {
@@ -2572,7 +2574,7 @@ const He = k(() => Ua[Re.value]), ni = k(() => ({
2572
2574
  ...Ka.value,
2573
2575
  stateId: He.value,
2574
2576
  stateLabel: He.value ? Ga(Re.value, He.value) : void 0
2575
- })), _v = k(() => Ka.value.platform), Pv = k(
2577
+ })), Dv = k(() => Ka.value.platform), Av = k(
2576
2578
  () => an.flatMap((t) => {
2577
2579
  const n = Gt(t.id);
2578
2580
  return n.length ? n.map((s) => ({
@@ -2581,7 +2583,7 @@ const He = k(() => Ua[Re.value]), ni = k(() => ({
2581
2583
  stateLabel: s.label
2582
2584
  })) : [{ ...t }];
2583
2585
  })
2584
- ), Dv = k(() => _a.value === "overview" ? Pv.value : _a.value === "flow" ? za.value : [ni.value]), Av = k(() => Gt(Re.value));
2586
+ ), Nv = k(() => Ia.value === "overview" ? Av.value : Ia.value === "flow" ? za.value : [ni.value]), Tv = k(() => Gt(Re.value));
2585
2587
  function Na(t, n) {
2586
2588
  const s = n === void 0 ? Re.value : t, r = n ?? t;
2587
2589
  Ua[s] = r;
@@ -2591,7 +2593,7 @@ function Eo(t) {
2591
2593
  const n = an.find((s) => s.id === t);
2592
2594
  n != null && n.hasTabBar && (Ma.value = t);
2593
2595
  }
2594
- function Nv(t) {
2596
+ function Rv(t) {
2595
2597
  Eo(t);
2596
2598
  const n = He.value, s = n ? Ra(t, n) : di(t), r = Gt(t).find((u) => Ra(t, u.id) > 0);
2597
2599
  s <= 0 && r && Na(t, r.id);
@@ -2618,14 +2620,14 @@ function Fo(t) {
2618
2620
  function li(t) {
2619
2621
  return Vo(t).some((n) => Fo(n));
2620
2622
  }
2621
- function Tv(t) {
2623
+ function Ev(t) {
2622
2624
  const n = Gt(t), s = /* @__PURE__ */ new Set();
2623
2625
  return n.forEach((r) => {
2624
2626
  Fo(B(t, r.id)) && s.add(r.id);
2625
2627
  }), s;
2626
2628
  }
2627
- const Rv = k(() => Tv(Re.value)), Ev = k(() => li(Re.value)), Ov = k(() => Fo(Lo())), si = k(() => Y.value.find((t) => t.id === ja.value) ?? null), Bv = k(() => Y.value.find((t) => t.id === jo.value) ?? null);
2628
- function Mv(t) {
2629
+ const Ov = k(() => Ev(Re.value)), Bv = k(() => li(Re.value)), Mv = k(() => Fo(Lo())), si = k(() => Y.value.find((t) => t.id === ja.value) ?? null), Uv = k(() => Y.value.find((t) => t.id === jo.value) ?? null);
2630
+ function jv(t) {
2629
2631
  return { left: `${t.x}%`, top: `${t.y}%` };
2630
2632
  }
2631
2633
  function Ha() {
@@ -2693,17 +2695,17 @@ async function xa(t, n) {
2693
2695
  return n;
2694
2696
  }
2695
2697
  }
2696
- async function Uv() {
2698
+ async function Vv() {
2697
2699
  var Se, ke, Je, ue, Ce;
2698
2700
  const t = (Se = it()) == null ? void 0 : Se.getItem(Vs);
2699
2701
  t && (nt.value = t);
2700
2702
  const n = (ke = it()) == null ? void 0 : ke.getItem(Ls), s = n == null ? Number.NaN : Number(n);
2701
2703
  Number.isFinite(s) && (xn.value = Math.min(zs, Math.max(Ks, s)), Ro.value = String(xn.value));
2702
2704
  try {
2703
- const Ne = JSON.parse(((Je = it()) == null ? void 0 : Je.getItem(Ia)) ?? "null");
2704
- Ne != null && Ne.colors && (It.value = { ...tt, ...Object.fromEntries(Object.entries(Ne.colors).filter(([, Ue]) => typeof Ue == "string" && Fa(Ue))) }, ct.value = Ne.selectedThemeId ?? ct.value);
2705
+ const Ne = JSON.parse(((Je = it()) == null ? void 0 : Je.getItem(_a)) ?? "null");
2706
+ Ne != null && Ne.colors && (_t.value = { ...tt, ...Object.fromEntries(Object.entries(Ne.colors).filter(([, Ue]) => typeof Ue == "string" && Fa(Ue))) }, ct.value = Ne.selectedThemeId ?? ct.value);
2705
2707
  } catch {
2706
- (ue = it()) == null || ue.removeItem(Ia);
2708
+ (ue = it()) == null || ue.removeItem(_a);
2707
2709
  }
2708
2710
  const [r, u, m] = await Promise.all([
2709
2711
  xa("flows.json", { flows: [] }),
@@ -2712,20 +2714,20 @@ async function Uv() {
2712
2714
  ]), g = {
2713
2715
  annotations: Wa(m),
2714
2716
  pageDescriptions: ii(u),
2715
- flows: Array.isArray(r.flows) && r.flows.length ? r.flows : lv.flows
2716
- }, C = rt("annotations"), _ = rt("pageDescriptions"), M = rt("flows"), se = ga(C, g.annotations), xe = ga(_, g.pageDescriptions), q = ga(M, g.flows);
2717
- Y.value = se.value, Me.value = xe.value, he.value = q.value, te("annotations", se.source, "idle"), te("pageDescriptions", xe.source, "idle"), te("flows", q.source, "idle"), ut.value = ((Ce = he.value[0]) == null ? void 0 : Ce.id) ?? "", _t.value ? await Oo(!1) : Ft.value = we.unavailableReason, Ha(), Hs.value = !0;
2717
+ flows: Array.isArray(r.flows) && r.flows.length ? r.flows : iv.flows
2718
+ }, C = rt("annotations"), I = rt("pageDescriptions"), M = rt("flows"), se = ga(C, g.annotations), xe = ga(I, g.pageDescriptions), q = ga(M, g.flows);
2719
+ Y.value = se.value, Me.value = xe.value, he.value = q.value, te("annotations", se.source, "idle"), te("pageDescriptions", xe.source, "idle"), te("flows", q.source, "idle"), ut.value = ((Ce = he.value[0]) == null ? void 0 : Ce.id) ?? "", It.value ? await Oo(!1) : Ft.value = we.unavailableReason, Ha(), Hs.value = !0;
2718
2720
  }
2719
- Ae([It, ct], () => {
2721
+ Ae([_t, ct], () => {
2720
2722
  var t;
2721
- (t = it()) == null || t.setItem(Ia, JSON.stringify({ selectedThemeId: ct.value, colors: It.value }));
2723
+ (t = it()) == null || t.setItem(_a, JSON.stringify({ selectedThemeId: ct.value, colors: _t.value }));
2722
2724
  }, { deep: !0 });
2723
2725
  Ae(nt, (t) => {
2724
2726
  var n;
2725
2727
  t.trim() && ((n = it()) == null || n.setItem(Vs, t.trim()));
2726
2728
  });
2727
2729
  Ae([Re, He], () => {
2728
- Ha(), _t.value && (Ya(!1), Ja(!1));
2730
+ Ha(), It.value && (Ya(!1), Ja(!1));
2729
2731
  });
2730
2732
  function Ko(t, n, s) {
2731
2733
  const r = (/* @__PURE__ */ new Date()).toISOString(), u = B(t, n), m = Kt.value ?? {
@@ -2735,9 +2737,9 @@ function Ko(t, n, s) {
2735
2737
  screens: {}
2736
2738
  };
2737
2739
  m.scopes = { ...m.scopes ?? {}, [u]: { count: s, updatedAt: r } };
2738
- const g = Vo(t).reduce((C, _) => {
2740
+ const g = Vo(t).reduce((C, I) => {
2739
2741
  var M, se;
2740
- return C + (((se = (M = m.scopes) == null ? void 0 : M[_]) == null ? void 0 : se.count) ?? 0);
2742
+ return C + (((se = (M = m.scopes) == null ? void 0 : M[I]) == null ? void 0 : se.count) ?? 0);
2741
2743
  }, 0);
2742
2744
  m.screens = { ...m.screens, [t]: { count: g, updatedAt: r } }, m.updatedAt = r, Kt.value = m;
2743
2745
  }
@@ -2752,42 +2754,42 @@ function Ta(t, n, s, r) {
2752
2754
  ...g.scopes ?? {},
2753
2755
  [m]: r === !0 ? { count: s, updatedAt: u, highlighted: !0 } : { count: s, updatedAt: u }
2754
2756
  };
2755
- const C = Vo(t).reduce((_, M) => {
2757
+ const C = Vo(t).reduce((I, M) => {
2756
2758
  var se, xe;
2757
- return _ + (((xe = (se = g.scopes) == null ? void 0 : se[M]) == null ? void 0 : xe.count) ?? 0);
2759
+ return I + (((xe = (se = g.scopes) == null ? void 0 : se[M]) == null ? void 0 : xe.count) ?? 0);
2758
2760
  }, 0);
2759
2761
  g.screens = { ...g.screens, [t]: { count: C, updatedAt: u } }, g.updatedAt = u, zt.value = g;
2760
2762
  }
2761
- async function jv(t, n = to(t, He.value)) {
2763
+ async function Lv(t, n = to(t, He.value)) {
2762
2764
  var g;
2763
2765
  const s = await $a(B(t, n));
2764
2766
  if (!s) return !1;
2765
2767
  const r = Wa(s.value).map((C) => ({ ...C, screenId: t, stateId: n })), u = [...Y.value.filter((C) => B(C.screenId, C.stateId) !== B(t, n)), ...r], m = (/* @__PURE__ */ new Date()).toISOString();
2766
2768
  return We("annotations", u, s.sha, m), Y.value = ((g = rt("annotations")) == null ? void 0 : g.value) ?? u, Ko(t, n, r.length), te("annotations", "gitee", "success", s.legacy ? "已读取主分支旧目录" : "", m), !0;
2767
2769
  }
2768
- async function Vv() {
2770
+ async function Fv() {
2769
2771
  var C;
2770
- const t = Re.value, n = He.value, s = B(t, n), r = await Jp(B(t, n));
2772
+ const t = Re.value, n = He.value, s = B(t, n), r = await Zp(B(t, n));
2771
2773
  if (!r) return !1;
2772
2774
  const u = ii([{ ...r.value, screenId: t, stateId: n }])[0];
2773
2775
  if (!u) return;
2774
- const m = [...Me.value.filter((_) => B(_.screenId, _.stateId) !== s), u], g = (/* @__PURE__ */ new Date()).toISOString();
2776
+ const m = [...Me.value.filter((I) => B(I.screenId, I.stateId) !== s), u], g = (/* @__PURE__ */ new Date()).toISOString();
2775
2777
  return We("pageDescriptions", m, r.sha, g), Me.value = ((C = rt("pageDescriptions")) == null ? void 0 : C.value) ?? m, Ta(t, n, 1, u.highlighted), s === Lo() && Ha(), te("pageDescriptions", "gitee", "success", r.legacy ? "已读取主分支旧目录" : "", g), !0;
2776
2778
  }
2777
2779
  async function Ya(t = !1) {
2778
2780
  var n, s;
2779
- if (_t.value) {
2781
+ if (It.value) {
2780
2782
  if (Ea(t, Hn.value.annotations)) {
2781
2783
  te("annotations", me.value.annotations.source, "idle", "检测到本地编辑,已暂缓轮询覆盖");
2782
2784
  return;
2783
2785
  }
2784
2786
  Ut.value = "syncing", te("annotations", me.value.annotations.source, "syncing");
2785
2787
  try {
2786
- const r = await Gp();
2788
+ const r = await Wp();
2787
2789
  Kt.value = (r == null ? void 0 : r.value) ?? Kt.value;
2788
- const u = await jv(Re.value, He.value), m = B(Re.value, He.value);
2790
+ const u = await Lv(Re.value, He.value), m = B(Re.value, He.value);
2789
2791
  if (!u && r && !((n = r.value.scopes) != null && n[m])) {
2790
- const g = Y.value.filter((_) => B(_.screenId, _.stateId) !== m), C = (/* @__PURE__ */ new Date()).toISOString();
2792
+ const g = Y.value.filter((I) => B(I.screenId, I.stateId) !== m), C = (/* @__PURE__ */ new Date()).toISOString();
2791
2793
  We("annotations", g, r.sha, C), Y.value = ((s = rt("annotations")) == null ? void 0 : s.value) ?? g, te("annotations", "gitee", "success", "", C);
2792
2794
  } else if (!u)
2793
2795
  throw new Error("Gitee 当前注释文件不存在");
@@ -2798,15 +2800,15 @@ async function Ya(t = !1) {
2798
2800
  }
2799
2801
  }
2800
2802
  async function Ja(t = !1) {
2801
- if (_t.value) {
2803
+ if (It.value) {
2802
2804
  if (Ea(t, Hn.value.pageDescriptions)) {
2803
2805
  te("pageDescriptions", me.value.pageDescriptions.source, "idle", "检测到本地编辑,已暂缓轮询覆盖");
2804
2806
  return;
2805
2807
  }
2806
2808
  Ut.value = "syncing", te("pageDescriptions", me.value.pageDescriptions.source, "syncing");
2807
2809
  try {
2808
- const n = await Yp();
2809
- if (zt.value = (n == null ? void 0 : n.value) ?? zt.value, !await Vv()) throw new Error("Gitee 当前页面描述不存在");
2810
+ const n = await Xp();
2811
+ if (zt.value = (n == null ? void 0 : n.value) ?? zt.value, !await Fv()) throw new Error("Gitee 当前页面描述不存在");
2810
2812
  Ut.value = "success", Ft.value = "页面说明已同步";
2811
2813
  } catch (n) {
2812
2814
  Ut.value = "error", Ft.value = "页面说明同步失败", te("pageDescriptions", me.value.pageDescriptions.source, "error", n instanceof Error ? n.message : "页面描述同步失败");
@@ -2815,7 +2817,7 @@ async function Ja(t = !1) {
2815
2817
  }
2816
2818
  async function ri(t = !1) {
2817
2819
  var n, s, r, u;
2818
- if (_t.value) {
2820
+ if (It.value) {
2819
2821
  if (Ys.value) {
2820
2822
  he.value = ((n = rt("flows")) == null ? void 0 : n.value) ?? he.value, te("flows", "local-cache", "idle", "存在未推送到 Gitee 的本地流程");
2821
2823
  return;
@@ -2826,10 +2828,10 @@ async function ri(t = !1) {
2826
2828
  }
2827
2829
  te("flows", me.value.flows.source, "syncing");
2828
2830
  try {
2829
- const m = await qp(), g = Array.isArray((s = m == null ? void 0 : m.value) == null ? void 0 : s.flows) ? m.value.flows : null;
2831
+ const m = await ev(), g = Array.isArray((s = m == null ? void 0 : m.value) == null ? void 0 : s.flows) ? m.value.flows : null;
2830
2832
  if (!m || !g) throw new Error("Gitee 流程文件不存在");
2831
2833
  const C = (/* @__PURE__ */ new Date()).toISOString();
2832
- We("flows", g, m.sha, C), he.value = ((r = rt("flows")) == null ? void 0 : r.value) ?? g, he.value.some((_) => _.id === ut.value) || (ut.value = ((u = he.value[0]) == null ? void 0 : u.id) ?? ""), te("flows", "gitee", "success", "", C);
2834
+ We("flows", g, m.sha, C), he.value = ((r = rt("flows")) == null ? void 0 : r.value) ?? g, he.value.some((I) => I.id === ut.value) || (ut.value = ((u = he.value[0]) == null ? void 0 : u.id) ?? ""), te("flows", "gitee", "success", "", C);
2833
2835
  } catch (m) {
2834
2836
  te("flows", me.value.flows.source, "error", m instanceof Error ? m.message : "流程同步失败");
2835
2837
  }
@@ -2841,30 +2843,30 @@ async function Oo(t = !1) {
2841
2843
  function Ql(t) {
2842
2844
  const n = (/* @__PURE__ */ new Date()).toISOString(), s = t === "annotations" ? Y.value : Me.value, r = /* @__PURE__ */ new Map();
2843
2845
  s.forEach((g) => {
2844
- const C = B(g.screenId, g.stateId), _ = r.get(C), M = t === "pageDescriptions" && g.highlighted === !0;
2846
+ const C = B(g.screenId, g.stateId), I = r.get(C), M = t === "pageDescriptions" && g.highlighted === !0;
2845
2847
  r.set(C, {
2846
2848
  screenId: g.screenId,
2847
- count: ((_ == null ? void 0 : _.count) ?? 0) + 1,
2848
- highlighted: (_ == null ? void 0 : _.highlighted) === !0 || M
2849
+ count: ((I == null ? void 0 : I.count) ?? 0) + 1,
2850
+ highlighted: (I == null ? void 0 : I.highlighted) === !0 || M
2849
2851
  });
2850
2852
  });
2851
2853
  const u = {}, m = {};
2852
- return r.forEach(({ screenId: g, count: C, highlighted: _ }, M) => {
2854
+ return r.forEach(({ screenId: g, count: C, highlighted: I }, M) => {
2853
2855
  var se;
2854
- u[M] = _ === !0 ? { count: C, updatedAt: n, highlighted: !0 } : { count: C, updatedAt: n }, m[g] = { count: (((se = m[g]) == null ? void 0 : se.count) ?? 0) + C, updatedAt: n };
2856
+ u[M] = I === !0 ? { count: C, updatedAt: n, highlighted: !0 } : { count: C, updatedAt: n }, m[g] = { count: (((se = m[g]) == null ? void 0 : se.count) ?? 0) + C, updatedAt: n };
2855
2857
  }), { projectId: we.projectId, updatedAt: n, scopes: u, screens: m };
2856
2858
  }
2857
- async function Lv() {
2859
+ async function Kv() {
2858
2860
  if (!we.remoteWritable || Mt.value === "running") return;
2859
2861
  const t = nt.value.trim() || "初始化工具";
2860
- Mt.value = "running", tn.value = "", _e.value = { current: 0, total: 1, label: "检查初始化状态" };
2862
+ Mt.value = "running", tn.value = "", Ie.value = { current: 0, total: 1, label: "检查初始化状态" };
2861
2863
  try {
2862
- if (await Kp()) {
2863
- Mt.value = "success", _e.value = { current: 1, total: 1, label: "远端已初始化" }, tn.value = "远端已初始化:未逐文件检查,未产生重复提交", await Oo(!1);
2864
+ if (await Gp()) {
2865
+ Mt.value = "success", Ie.value = { current: 1, total: 1, label: "远端已初始化" }, tn.value = "远端已初始化:未逐文件检查,未产生重复提交", await Oo(!1);
2864
2866
  return;
2865
2867
  }
2866
2868
  } catch (u) {
2867
- Mt.value = "partial", _e.value = { current: 1, total: 1, label: "初始化状态检查失败" }, tn.value = u instanceof Error ? u.message : "无法检查 Gitee 初始化状态", console.error("❌ [Gitee 初始化] 初始化状态检查失败", { error: u });
2869
+ Mt.value = "partial", Ie.value = { current: 1, total: 1, label: "初始化状态检查失败" }, tn.value = u instanceof Error ? u.message : "无法检查 Gitee 初始化状态", console.error("❌ [Gitee 初始化] 初始化状态检查失败", { error: u });
2868
2870
  return;
2869
2871
  }
2870
2872
  const n = [], s = /* @__PURE__ */ new Map();
@@ -2874,33 +2876,33 @@ async function Lv() {
2874
2876
  }), s.forEach((u, m) => n.push({ label: `注释:${m}`, run: () => Vn("annotations", m, u, t) })), n.push({ label: "注释索引", run: () => Vn("annotations", void 0, Ql("annotations"), t) }), Me.value.forEach((u) => {
2875
2877
  const m = B(u.screenId, u.stateId);
2876
2878
  n.push({ label: `页面描述:${m}`, run: () => Vn("pageDescriptions", m, u, t) });
2877
- }), n.push({ label: "页面描述索引", run: () => Vn("pageDescriptions", void 0, Ql("pageDescriptions"), t) }), n.push({ label: "流程", run: () => Vn("flows", void 0, { version: "1.0.0", flows: he.value }, t) }), _e.value = { current: 0, total: n.length + 1, label: "" };
2879
+ }), n.push({ label: "页面描述索引", run: () => Vn("pageDescriptions", void 0, Ql("pageDescriptions"), t) }), n.push({ label: "流程", run: () => Vn("flows", void 0, { version: "1.0.0", flows: he.value }, t) }), Ie.value = { current: 0, total: n.length + 1, label: "" };
2878
2880
  const r = { created: 0, unchanged: 0, protected: 0, failed: 0 };
2879
2881
  for (const u of n) {
2880
- _e.value = { ..._e.value, label: u.label };
2882
+ Ie.value = { ...Ie.value, label: u.label };
2881
2883
  try {
2882
2884
  r[await u.run()] += 1;
2883
2885
  } catch (m) {
2884
2886
  r.failed += 1, console.error("❌ [Gitee 初始化] 文件处理失败", { label: u.label, error: m });
2885
2887
  } finally {
2886
- _e.value = { ..._e.value, current: _e.value.current + 1 };
2888
+ Ie.value = { ...Ie.value, current: Ie.value.current + 1 };
2887
2889
  }
2888
2890
  }
2889
- if (_e.value = { ..._e.value, label: r.failed ? "存在失败,暂不写完成标记" : "写入初始化完成标记" }, !r.failed)
2891
+ if (Ie.value = { ...Ie.value, label: r.failed ? "存在失败,暂不写完成标记" : "写入初始化完成标记" }, !r.failed)
2890
2892
  try {
2891
- r[await zp({ schemaVersion: 1, branchKey: we.branchKey, completedAt: (/* @__PURE__ */ new Date()).toISOString(), fileCount: n.length }, t)] += 1;
2893
+ r[await Hp({ schemaVersion: 1, branchKey: we.branchKey, completedAt: (/* @__PURE__ */ new Date()).toISOString(), fileCount: n.length }, t)] += 1;
2892
2894
  } catch (u) {
2893
2895
  r.failed += 1, console.error("❌ [Gitee 初始化] 完成标记写入失败", { error: u });
2894
2896
  }
2895
- _e.value = { ..._e.value, current: _e.value.current + 1 }, Mt.value = r.failed ? "partial" : "success", tn.value = r.failed ? `初始化部分完成:新建 ${r.created},跳过 ${r.unchanged + r.protected},失败 ${r.failed}` : r.created ? `初始化成功:新建 ${r.created},跳过 ${r.unchanged + r.protected}` : `远端已初始化:未重复创建,检查 ${r.unchanged + r.protected}`, await Oo(!1);
2897
+ Ie.value = { ...Ie.value, current: Ie.value.current + 1 }, Mt.value = r.failed ? "partial" : "success", tn.value = r.failed ? `初始化部分完成:新建 ${r.created},跳过 ${r.unchanged + r.protected},失败 ${r.failed}` : r.created ? `初始化成功:新建 ${r.created},跳过 ${r.unchanged + r.protected}` : `远端已初始化:未重复创建,检查 ${r.unchanged + r.protected}`, await Oo(!1);
2896
2898
  }
2897
- function Fv() {
2899
+ function zv() {
2898
2900
  Uo.value = !0, Qn.value = null;
2899
2901
  }
2900
2902
  function ui() {
2901
2903
  Uo.value = !1, Qn.value = null, eo.value = "view";
2902
2904
  }
2903
- function Kv(t, n) {
2905
+ function Gv(t, n) {
2904
2906
  if (!Uo.value) return;
2905
2907
  const s = t.currentTarget, r = s.getBoundingClientRect(), u = s.querySelector(".annotation-layer"), m = (u == null ? void 0 : u.scrollWidth) ?? r.width, g = (u == null ? void 0 : u.scrollHeight) ?? r.height;
2906
2908
  Qn.value = {
@@ -2914,13 +2916,13 @@ function Kv(t, n) {
2914
2916
  }, Sn.value = { featureName: "", featureDescription: "", specialNote: "" }, eo.value = "create";
2915
2917
  }
2916
2918
  async function zo(t, n, s, r) {
2917
- if (!_t.value) return null;
2919
+ if (!It.value) return null;
2918
2920
  try {
2919
- const u = await Hp(B(t, n), nt.value.trim() || "未署名", s, r);
2921
+ const u = await Yp(B(t, n), nt.value.trim() || "未署名", s, r);
2920
2922
  if (!u) return null;
2921
- const m = Wa(u.value).map((_) => ({ ..._, screenId: t, stateId: n }));
2922
- Ko(t, n, m.length), Kt.value && await Wp(Kt.value, nt.value.trim() || "未署名", B(t, n));
2923
- const g = (/* @__PURE__ */ new Date()).toISOString(), C = [...Y.value.filter((_) => B(_.screenId, _.stateId) !== B(t, n)), ...m];
2923
+ const m = Wa(u.value).map((I) => ({ ...I, screenId: t, stateId: n }));
2924
+ Ko(t, n, m.length), Kt.value && await Jp(Kt.value, nt.value.trim() || "未署名", B(t, n));
2925
+ const g = (/* @__PURE__ */ new Date()).toISOString(), C = [...Y.value.filter((I) => B(I.screenId, I.stateId) !== B(t, n)), ...m];
2924
2926
  return We("annotations", C, u.sha, g), te("annotations", "gitee", "success", "", g), m;
2925
2927
  } catch (u) {
2926
2928
  const m = u instanceof Error ? u.message : "注释保存失败";
@@ -2928,7 +2930,7 @@ async function zo(t, n, s, r) {
2928
2930
  return;
2929
2931
  }
2930
2932
  }
2931
- async function zv() {
2933
+ async function Hv() {
2932
2934
  const t = Qn.value;
2933
2935
  if (!t) return;
2934
2936
  const n = (/* @__PURE__ */ new Date()).toISOString(), s = {
@@ -2943,7 +2945,7 @@ async function zv() {
2943
2945
  }, r = await zo(t.screenId, t.stateId, "新增", (u) => [...u, s]);
2944
2946
  r !== void 0 && (r ? Y.value = [...Y.value.filter((u) => B(u.screenId, u.stateId) !== B(t.screenId, t.stateId)), ...r] : (Y.value = [...Y.value, s], Ko(t.screenId, t.stateId, oi.value.length), We("annotations", Y.value, null, null), te("annotations", "local-cache", "success", we.unavailableReason)), ui());
2945
2947
  }
2946
- function Gv(t) {
2948
+ function Wv(t) {
2947
2949
  const n = Y.value.find((s) => s.id === t);
2948
2950
  n && (ja.value = t, Sn.value = {
2949
2951
  featureName: n.featureName,
@@ -2954,7 +2956,7 @@ function Gv(t) {
2954
2956
  function ci() {
2955
2957
  ja.value = "", eo.value = "view";
2956
2958
  }
2957
- async function Hv() {
2959
+ async function Yv() {
2958
2960
  const t = si.value;
2959
2961
  if (!t) return;
2960
2962
  const n = (/* @__PURE__ */ new Date()).toISOString(), s = (u) => u.id === t.id ? {
@@ -2967,36 +2969,36 @@ async function Hv() {
2967
2969
  } : u, r = await zo(t.screenId, t.stateId, "编辑", (u) => u.map(s));
2968
2970
  r !== void 0 && (Y.value = r ? [...Y.value.filter((u) => B(u.screenId, u.stateId) !== B(t.screenId, t.stateId)), ...r] : Y.value.map(s), r === null && We("annotations", Y.value, null, null), ci());
2969
2971
  }
2970
- async function Wv(t, n, s) {
2971
- const r = Y.value.find((_) => _.id === t);
2972
+ async function Jv(t, n, s) {
2973
+ const r = Y.value.find((I) => I.id === t);
2972
2974
  if (!r) return !1;
2973
- const u = (/* @__PURE__ */ new Date()).toISOString(), m = (_) => _.id === t ? {
2974
- ..._,
2975
+ const u = (/* @__PURE__ */ new Date()).toISOString(), m = (I) => I.id === t ? {
2976
+ ...I,
2975
2977
  x: Math.min(96, Math.max(4, n)),
2976
2978
  y: Math.min(96, Math.max(4, s)),
2977
- authorName: nt.value.trim() || _.authorName || "未署名",
2979
+ authorName: nt.value.trim() || I.authorName || "未署名",
2978
2980
  updatedAt: u
2979
- } : _, g = m(r), C = await zo(
2981
+ } : I, g = m(r), C = await zo(
2980
2982
  r.screenId,
2981
2983
  r.stateId,
2982
2984
  "编辑",
2983
- (_) => _.some((M) => M.id === t) ? _.map(m) : [..._, g]
2985
+ (I) => I.some((M) => M.id === t) ? I.map(m) : [...I, g]
2984
2986
  );
2985
- return C === void 0 ? !1 : (Y.value = C ? [...Y.value.filter((_) => B(_.screenId, _.stateId) !== B(r.screenId, r.stateId)), ...C] : Y.value.map(m), C === null && We("annotations", Y.value, null, null), !0);
2987
+ return C === void 0 ? !1 : (Y.value = C ? [...Y.value.filter((I) => B(I.screenId, I.stateId) !== B(r.screenId, r.stateId)), ...C] : Y.value.map(m), C === null && We("annotations", Y.value, null, null), !0);
2986
2988
  }
2987
- async function Yv(t) {
2989
+ async function Xv(t) {
2988
2990
  const n = Y.value.find((r) => r.id === t);
2989
2991
  if (!n) return;
2990
2992
  const s = await zo(n.screenId, n.stateId, "删除", (r) => r.filter((u) => u.id !== t));
2991
2993
  s !== void 0 && (Y.value = s ? [...Y.value.filter((r) => B(r.screenId, r.stateId) !== B(n.screenId, n.stateId)), ...s] : Y.value.filter((r) => r.id !== t), s === null && We("annotations", Y.value, null, null), Ko(n.screenId, n.stateId, Y.value.filter((r) => B(r.screenId, r.stateId) === B(n.screenId, n.stateId)).length));
2992
2994
  }
2993
- function Jv(t) {
2995
+ function Zv(t) {
2994
2996
  Wn.value && window.clearTimeout(Wn.value), jo.value = t;
2995
2997
  }
2996
- function Xv() {
2998
+ function qv() {
2997
2999
  Wn.value && window.clearTimeout(Wn.value);
2998
3000
  }
2999
- function Zv() {
3001
+ function Qv() {
3000
3002
  Wn.value = window.setTimeout(() => {
3001
3003
  jo.value = "";
3002
3004
  }, 160);
@@ -3013,7 +3015,7 @@ function Ra(t, n) {
3013
3015
  const s = B(t, n);
3014
3016
  return ((m = (u = (r = Kt.value) == null ? void 0 : r.scopes) == null ? void 0 : u[s]) == null ? void 0 : m.count) ?? Y.value.filter((g) => B(g.screenId, g.stateId) === s).length;
3015
3017
  }
3016
- async function qv() {
3018
+ async function ef() {
3017
3019
  var u;
3018
3020
  const t = Re.value, n = He.value, s = (/* @__PURE__ */ new Date()).toISOString(), r = {
3019
3021
  screenId: t,
@@ -3022,12 +3024,12 @@ async function qv() {
3022
3024
  authorName: nt.value.trim() || "未署名",
3023
3025
  updatedAt: s
3024
3026
  };
3025
- if (_t.value)
3027
+ if (It.value)
3026
3028
  try {
3027
- const m = await Xp(B(t, n), r.authorName ?? "未署名", r);
3029
+ const m = await qp(B(t, n), r.authorName ?? "未署名", r);
3028
3030
  if (!m) return !1;
3029
- Ta(t, n, 1, r.highlighted), zt.value && await Zp(zt.value, r.authorName ?? "未署名", B(t, n));
3030
- const g = [...Me.value.filter((_) => B(_.screenId, _.stateId) !== B(t, n)), r], C = (/* @__PURE__ */ new Date()).toISOString();
3031
+ Ta(t, n, 1, r.highlighted), zt.value && await Qp(zt.value, r.authorName ?? "未署名", B(t, n));
3032
+ const g = [...Me.value.filter((I) => B(I.screenId, I.stateId) !== B(t, n)), r], C = (/* @__PURE__ */ new Date()).toISOString();
3031
3033
  return We("pageDescriptions", g, m.sha, C), Me.value = ((u = rt("pageDescriptions")) == null ? void 0 : u.value) ?? g, te("pageDescriptions", "gitee", "success", "", C), !0;
3032
3034
  } catch (m) {
3033
3035
  const g = m instanceof Error ? m.message : "页面描述保存失败";
@@ -3035,15 +3037,15 @@ async function qv() {
3035
3037
  }
3036
3038
  return Me.value = [...Me.value.filter((m) => B(m.screenId, m.stateId) !== B(t, n)), r], We("pageDescriptions", Me.value, null, null), te("pageDescriptions", "local-cache", "success", we.unavailableReason), Ta(t, n, 1, r.highlighted), !0;
3037
3039
  }
3038
- function Qv() {
3040
+ function tf() {
3039
3041
  const t = new Blob([JSON.stringify(Y.value, null, 2)], { type: "application/json;charset=utf-8" }), n = document.createElement("a");
3040
3042
  n.href = URL.createObjectURL(t), n.download = "annotations.json", n.click(), URL.revokeObjectURL(n.href);
3041
3043
  }
3042
- function ef() {
3044
+ function nf() {
3043
3045
  const t = new Blob([JSON.stringify(Me.value, null, 2)], { type: "application/json;charset=utf-8" }), n = document.createElement("a");
3044
3046
  n.href = URL.createObjectURL(t), n.download = "page-descriptions.json", n.click(), URL.revokeObjectURL(n.href);
3045
3047
  }
3046
- function tf() {
3048
+ function of() {
3047
3049
  var n;
3048
3050
  const t = Number(Ro.value);
3049
3051
  if (!Number.isFinite(t)) {
@@ -3052,16 +3054,16 @@ function tf() {
3052
3054
  }
3053
3055
  xn.value = Math.min(zs, Math.max(Ks, t)), Ro.value = String(xn.value), (n = it()) == null || n.setItem(Ls, String(xn.value)), Pa.value = "已保存同步间隔";
3054
3056
  }
3055
- const nf = k(() => ({
3057
+ const af = k(() => ({
3056
3058
  "--flow-zoom": String(Te.value)
3057
- })), of = k(() => `${Math.round(Te.value * 100)}%`);
3058
- function af(t) {
3059
+ })), lf = k(() => `${Math.round(Te.value * 100)}%`);
3060
+ function sf(t) {
3059
3061
  return t === "pc" ? 640 : 393;
3060
3062
  }
3061
3063
  function Xa(t) {
3062
3064
  return t === "pc" ? 360 : 902;
3063
3065
  }
3064
- const lf = 88, pi = 152, sf = 260, rf = k(() => {
3066
+ const rf = 88, pi = 152, uf = 260, cf = k(() => {
3065
3067
  const t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map();
3066
3068
  return za.value.forEach((s) => {
3067
3069
  const r = s.flowRow ?? 1;
@@ -3069,7 +3071,7 @@ const lf = 88, pi = 152, sf = 260, rf = k(() => {
3069
3071
  }), n.forEach((s, r) => {
3070
3072
  let u = 0;
3071
3073
  s.sort((m, g) => (m.flowCol ?? 0) - (g.flowCol ?? 0)).forEach((m) => {
3072
- t.set(`${r}-${m.flowCol ?? 1}`, u), u += af(m.platform) + lf;
3074
+ t.set(`${r}-${m.flowCol ?? 1}`, u), u += sf(m.platform) + rf;
3073
3075
  });
3074
3076
  }), t;
3075
3077
  }), vi = k(() => {
@@ -3078,7 +3080,7 @@ const lf = 88, pi = 152, sf = 260, rf = k(() => {
3078
3080
  const s = n.flowRow ?? 1, r = Xa(n.platform);
3079
3081
  t.set(s, Math.max(t.get(s) ?? 0, r));
3080
3082
  }), t;
3081
- }), uf = k(
3083
+ }), df = k(
3082
3084
  () => {
3083
3085
  var t;
3084
3086
  return ((t = Aa.value) == null ? void 0 : t.rows.map((n, s) => {
@@ -3091,26 +3093,26 @@ const lf = 88, pi = 152, sf = 260, rf = k(() => {
3091
3093
  })) ?? [];
3092
3094
  }
3093
3095
  );
3094
- function cf(t) {
3096
+ function pf(t) {
3095
3097
  ut.value = t;
3096
3098
  }
3097
- function df(t) {
3099
+ function vf(t) {
3098
3100
  Te.value = fi(Te.value + t);
3099
3101
  }
3100
- function pf() {
3102
+ function ff() {
3101
3103
  nn.value = 360, on.value = 150, Te.value = 0.42;
3102
3104
  }
3103
- function vf(t) {
3104
- const n = t.flowRow ?? 1, s = t.flowCol ?? 1, r = rf.value.get(`${n}-${s}`) ?? 0;
3105
+ function mf(t) {
3106
+ const n = t.flowRow ?? 1, s = t.flowCol ?? 1, r = cf.value.get(`${n}-${s}`) ?? 0;
3105
3107
  let u = 0;
3106
3108
  for (let m = 1; m < n; m++)
3107
3109
  u += (vi.value.get(m) ?? Xa("mobile")) + pi;
3108
3110
  return {
3109
- left: `${nn.value + (sf + r) * Te.value}px`,
3111
+ left: `${nn.value + (uf + r) * Te.value}px`,
3110
3112
  top: `${on.value + u * Te.value}px`
3111
3113
  };
3112
3114
  }
3113
- function ff(t) {
3115
+ function gf(t) {
3114
3116
  let n = 0;
3115
3117
  for (let s = 1; s < t; s++)
3116
3118
  n += (vi.value.get(s) ?? Xa("mobile")) + pi;
@@ -3120,16 +3122,16 @@ function ff(t) {
3120
3122
  transform: `scale(${Te.value})`
3121
3123
  };
3122
3124
  }
3123
- function mf(t) {
3125
+ function bf(t) {
3124
3126
  t.target.closest("button, input, select, textarea, video") || (Mo.value = !0, Gn.value = { x: t.clientX, y: t.clientY, panX: nn.value, panY: on.value });
3125
3127
  }
3126
- function gf(t) {
3128
+ function yf(t) {
3127
3129
  Mo.value && (nn.value = Gn.value.panX + t.clientX - Gn.value.x, on.value = Gn.value.panY + t.clientY - Gn.value.y);
3128
3130
  }
3129
- function bf() {
3131
+ function hf() {
3130
3132
  Mo.value = !1;
3131
3133
  }
3132
- function yf(t) {
3134
+ function wf(t) {
3133
3135
  t.preventDefault();
3134
3136
  const n = fi(Te.value + (t.deltaY > 0 ? -0.04 : 0.04));
3135
3137
  if (n === Te.value) return;
@@ -3144,12 +3146,12 @@ function mi(t) {
3144
3146
  const n = JSON.parse(JSON.stringify(t)), s = rt("flows");
3145
3147
  return We("flows", n, (s == null ? void 0 : s.revision) ?? null, (s == null ? void 0 : s.lastRemoteSyncAt) ?? null), he.value = n, Js(!0), he.value.some((u) => u.id === ut.value) || (ut.value = ((r = he.value[0]) == null ? void 0 : r.id) ?? ""), te("flows", "local-cache", "success", we.unavailableReason), !0;
3146
3148
  }
3147
- async function hf(t) {
3149
+ async function xf(t) {
3148
3150
  var s, r;
3149
3151
  const n = JSON.parse(JSON.stringify(t));
3150
3152
  if (mi(n), !Ws.value) return !1;
3151
3153
  try {
3152
- const u = await Qp(nt.value.trim() || "未署名", n), m = Array.isArray((s = u == null ? void 0 : u.value) == null ? void 0 : s.flows) ? u.value.flows : null;
3154
+ const u = await tv(nt.value.trim() || "未署名", n), m = Array.isArray((s = u == null ? void 0 : u.value) == null ? void 0 : s.flows) ? u.value.flows : null;
3153
3155
  if (!u || !m) return !1;
3154
3156
  const g = (/* @__PURE__ */ new Date()).toISOString();
3155
3157
  return We("flows", m, u.sha, g), he.value = m, Js(!1), he.value.some((C) => C.id === ut.value) || (ut.value = ((r = he.value[0]) == null ? void 0 : r.id) ?? ""), te("flows", "gitee", "success", "", g), !0;
@@ -3158,14 +3160,14 @@ async function hf(t) {
3158
3160
  return u instanceof Xn ? La("flows", m) : te("flows", me.value.flows.source, "error", m), !1;
3159
3161
  }
3160
3162
  }
3161
- function wf(t = he.value) {
3163
+ function Sf(t = he.value) {
3162
3164
  const n = new Blob([JSON.stringify({ version: "1.0.0", flows: t }, null, 2)], { type: "application/json;charset=utf-8" }), s = document.createElement("a");
3163
3165
  s.href = URL.createObjectURL(n), s.download = "flows.json", s.click(), URL.revokeObjectURL(s.href);
3164
3166
  }
3165
- function xf() {
3166
- return { saveFlowsToSession: mi, pushFlowsToGitee: hf, exportFlows: wf };
3167
+ function kf() {
3168
+ return { saveFlowsToSession: mi, pushFlowsToGitee: xf, exportFlows: Sf };
3167
3169
  }
3168
- function Sf() {
3170
+ function Cf() {
3169
3171
  const t = {
3170
3172
  ...(ha == null ? void 0 : ha({ go: Eo, goTab: ql, setPrototypeState: Na })) ?? {},
3171
3173
  PanelTop: ss,
@@ -3173,17 +3175,17 @@ function Sf() {
3173
3175
  SunMedium: Zr,
3174
3176
  themeColorFields: js,
3175
3177
  lang: Gs,
3176
- mode: _a,
3178
+ mode: Ia,
3177
3179
  currentScreen: Re,
3178
3180
  selectedFlowId: ut,
3179
3181
  selectedThemeId: ct,
3180
- showThemePanel: iv,
3181
- themeImportInput: rv,
3182
+ showThemePanel: uv,
3183
+ themeImportInput: cv,
3182
3184
  flowZoom: Te,
3183
3185
  isFlowPanning: Mo,
3184
3186
  selectedTab: Ma,
3185
- activeCollaborationTab: uv,
3186
- annotationRemoteReady: _t,
3187
+ activeCollaborationTab: dv,
3188
+ annotationRemoteReady: It,
3187
3189
  annotationSyncStatus: Ut,
3188
3190
  annotationSyncLabel: Ft,
3189
3191
  annotationAuthorName: nt,
@@ -3193,16 +3195,16 @@ function Sf() {
3193
3195
  collaborationInitialized: Hs,
3194
3196
  collaborationContext: we,
3195
3197
  collaborationSources: me,
3196
- collaborationSourceLabel: mv,
3198
+ collaborationSourceLabel: bv,
3197
3199
  collaborationSourceTone: Xs,
3198
- collaborationSourceDetail: bv,
3199
- collaborationLastSyncedAt: gv,
3200
+ collaborationSourceDetail: hv,
3201
+ collaborationLastSyncedAt: yv,
3200
3202
  collaborationBootstrapStatus: Mt,
3201
- collaborationBootstrapProgress: _e,
3203
+ collaborationBootstrapProgress: Ie,
3202
3204
  collaborationBootstrapMessage: tn,
3203
- canInitializeRemote: yv,
3204
- annotationPanelCollapsed: cv,
3205
- annotationPointsVisible: dv,
3205
+ canInitializeRemote: wv,
3206
+ annotationPanelCollapsed: pv,
3207
+ annotationPointsVisible: vv,
3206
3208
  isPlacingAnnotation: Uo,
3207
3209
  hoveredAnnotationId: jo,
3208
3210
  annotationDraft: Qn,
@@ -3214,117 +3216,117 @@ function Sf() {
3214
3216
  pageDescriptionEditor: Va,
3215
3217
  activeThemeColors: Qs,
3216
3218
  themeOptions: qs,
3217
- themeStyle: xv,
3219
+ themeStyle: kv,
3218
3220
  screens: an,
3219
3221
  mainFlows: he,
3220
- showFlowEditor: pv,
3222
+ showFlowEditor: fv,
3221
3223
  canPushFlowsToRemote: Ws,
3222
3224
  currentMeta: Ka,
3223
3225
  currentDisplayScreen: ni,
3224
- currentScreenPlatform: _v,
3225
- flowRows: uf,
3226
- visibleScreens: Dv,
3227
- prototypeStateOptions: Av,
3226
+ currentScreenPlatform: Dv,
3227
+ flowRows: df,
3228
+ visibleScreens: Nv,
3229
+ prototypeStateOptions: Tv,
3228
3230
  activePrototypeStateId: He,
3229
3231
  getPrototypeStateOptions: Gt,
3230
3232
  getPrototypeStateLabel: Ga,
3231
3233
  normalizePrototypeStateId: to,
3232
- flowGridStyle: nf,
3233
- flowZoomPercent: of,
3234
+ flowGridStyle: af,
3235
+ flowZoomPercent: lf,
3234
3236
  currentScreenAnnotations: oi,
3235
3237
  currentPageDescription: ai,
3236
3238
  isScopeHighlighted: Fo,
3237
3239
  isScreenHighlighted: li,
3238
- activeScreenHighlightedStateIds: Rv,
3239
- activeScreenHighlighted: Ev,
3240
- activeScopeHighlighted: Ov,
3241
- hoveredAnnotation: Bv,
3242
- initializePrototype: Uv,
3240
+ activeScreenHighlightedStateIds: Ov,
3241
+ activeScreenHighlighted: Bv,
3242
+ activeScopeHighlighted: Mv,
3243
+ hoveredAnnotation: Uv,
3244
+ initializePrototype: Vv,
3243
3245
  t: Zs,
3244
- selectTheme: Sv,
3245
- updateCustomThemeColor: kv,
3246
- resetCustomTheme: Cv,
3247
- exportCustomTheme: $v,
3248
- importCustomTheme: Iv,
3246
+ selectTheme: Cv,
3247
+ updateCustomThemeColor: $v,
3248
+ resetCustomTheme: _v,
3249
+ exportCustomTheme: Iv,
3250
+ importCustomTheme: Pv,
3249
3251
  setPrototypeState: Na,
3250
3252
  go: Eo,
3251
- goToAnnotatedScreen: Nv,
3253
+ goToAnnotatedScreen: Rv,
3252
3254
  goTab: ql,
3253
- startAnnotationPlacement: Fv,
3255
+ startAnnotationPlacement: zv,
3254
3256
  cancelAnnotationDraft: ui,
3255
- handleAnnotationCanvasClick: Kv,
3256
- saveAnnotationDraft: zv,
3257
- openAnnotationDialog: Gv,
3257
+ handleAnnotationCanvasClick: Gv,
3258
+ saveAnnotationDraft: Hv,
3259
+ openAnnotationDialog: Wv,
3258
3260
  closeAnnotationDialog: ci,
3259
- saveAnnotationEdit: Hv,
3260
- updateAnnotationPosition: Wv,
3261
- keepAnnotationPopover: Xv,
3262
- scheduleHideAnnotationPopover: Zv,
3263
- showAnnotationPopover: Jv,
3264
- removeAnnotation: Yv,
3261
+ saveAnnotationEdit: Yv,
3262
+ updateAnnotationPosition: Jv,
3263
+ keepAnnotationPopover: qv,
3264
+ scheduleHideAnnotationPopover: Qv,
3265
+ showAnnotationPopover: Zv,
3266
+ removeAnnotation: Xv,
3265
3267
  annotationCountByScreen: di,
3266
3268
  annotationCountByState: Ra,
3267
3269
  refreshPrototypeAnnotations: Ya,
3268
3270
  refreshPageDescriptions: Ja,
3269
3271
  refreshFlows: ri,
3270
3272
  refreshAllCollaborationData: Oo,
3271
- setCollaborationEditing: hv,
3272
- initializeRemoteCollaborationData: Lv,
3273
- saveAnnotationPollingInterval: tf,
3274
- exportAnnotations: Qv,
3275
- saveCurrentPageDescription: qv,
3276
- exportPageDescriptions: ef,
3277
- annotationPointStyle: Mv,
3278
- selectFlow: cf,
3279
- stepFlowZoom: df,
3280
- resetFlowView: pf,
3281
- flowNodeStyle: vf,
3282
- flowRowLabelStyle: ff,
3283
- startFlowPan: mf,
3284
- moveFlowPan: gf,
3285
- stopFlowPan: bf,
3286
- zoomFlowAtPoint: yf,
3287
- overviewZoom: vv,
3288
- overviewColumns: fv
3273
+ setCollaborationEditing: xv,
3274
+ initializeRemoteCollaborationData: Kv,
3275
+ saveAnnotationPollingInterval: of,
3276
+ exportAnnotations: tf,
3277
+ saveCurrentPageDescription: ef,
3278
+ exportPageDescriptions: nf,
3279
+ annotationPointStyle: jv,
3280
+ selectFlow: pf,
3281
+ stepFlowZoom: vf,
3282
+ resetFlowView: ff,
3283
+ flowNodeStyle: mf,
3284
+ flowRowLabelStyle: gf,
3285
+ startFlowPan: bf,
3286
+ moveFlowPan: yf,
3287
+ stopFlowPan: hf,
3288
+ zoomFlowAtPoint: wf,
3289
+ overviewZoom: mv,
3290
+ overviewColumns: gv
3289
3291
  };
3290
3292
  return tu(t), t;
3291
3293
  }
3292
- var kf = [];
3293
- const Cf = {
3294
+ var $f = [];
3295
+ const _f = {
3294
3296
  key: 0,
3295
3297
  class: "flex min-h-screen items-center justify-center px-5 py-10"
3296
- }, $f = { class: "mt-6 space-y-3 text-left" }, If = { class: "block" }, _f = { class: "block" }, Pf = {
3298
+ }, If = { class: "mt-6 space-y-3 text-left" }, Pf = { class: "block" }, Df = { class: "block" }, Af = {
3297
3299
  key: 0,
3298
3300
  class: "mt-4 text-sm font-semibold text-red-500"
3299
- }, Df = {
3301
+ }, Nf = {
3300
3302
  key: 0,
3301
3303
  class: "update-banner"
3302
- }, Af = {
3304
+ }, Tf = {
3303
3305
  key: 1,
3304
3306
  class: "top-chrome"
3305
- }, Nf = { class: "apple-subnav" }, Tf = { class: "project-identity" }, Rf = { class: "text-[21px] font-semibold leading-none" }, Ef = { class: "mt-1 text-xs text-muted" }, Of = {
3307
+ }, Rf = { class: "apple-subnav" }, Ef = { class: "project-identity" }, Of = { class: "text-[21px] font-semibold leading-none" }, Bf = { class: "mt-1 text-xs text-muted" }, Mf = {
3306
3308
  class: "core-version-stack",
3307
3309
  "aria-label": "原型内核版本"
3308
- }, Bf = { class: "flex flex-wrap items-center justify-end gap-x-1.5 gap-y-2" }, Mf = {
3310
+ }, Uf = { class: "flex flex-wrap items-center justify-end gap-x-1.5 gap-y-2" }, jf = {
3309
3311
  key: 0,
3310
3312
  class: "bug-nav-badge"
3311
- }, Uf = { class: "top-control-group flex rounded-full bg-panel ring-1 ring-line" }, jf = { class: "top-control-group flex rounded-full bg-panel ring-1 ring-line" }, Vf = { class: "top-control-group relative flex rounded-full bg-panel ring-1 ring-line" }, Lf = {
3313
+ }, Vf = { class: "top-control-group flex rounded-full bg-panel ring-1 ring-line" }, Lf = { class: "top-control-group flex rounded-full bg-panel ring-1 ring-line" }, Ff = { class: "top-control-group relative flex rounded-full bg-panel ring-1 ring-line" }, Kf = {
3312
3314
  key: 0,
3313
3315
  class: "theme-popover"
3314
- }, Ff = { class: "flex items-start justify-between gap-3" }, Kf = { class: "text-sm font-semibold text-ink" }, zf = { class: "mt-1 text-xs leading-5 text-muted" }, Gf = { class: "mt-3 flex flex-wrap gap-2" }, Hf = ["onClick"], Wf = { class: "min-w-0" }, Yf = { class: "mt-3 flex gap-2" }, Jf = { class: "theme-color-grid" }, Xf = ["value", "onInput"], Zf = ["value", "onInput"], qf = {
3316
+ }, zf = { class: "flex items-start justify-between gap-3" }, Gf = { class: "text-sm font-semibold text-ink" }, Hf = { class: "mt-1 text-xs leading-5 text-muted" }, Wf = { class: "mt-3 flex flex-wrap gap-2" }, Yf = ["onClick"], Jf = { class: "min-w-0" }, Xf = { class: "mt-3 flex gap-2" }, Zf = { class: "theme-color-grid" }, qf = ["value", "onInput"], Qf = ["value", "onInput"], em = {
3315
3317
  key: 0,
3316
3318
  class: "apple-hero-copy"
3317
- }, Qf = { key: 1 }, em = { class: "flex flex-col gap-6 lg:flex-row" }, tm = {
3319
+ }, tm = { key: 1 }, nm = { class: "flex flex-col gap-6 lg:flex-row" }, om = {
3318
3320
  key: 0,
3319
3321
  class: "interactive-side-nav-scroll-wrap"
3320
- }, nm = ["onClick"], om = { class: "flex-1 text-left" }, am = {
3322
+ }, am = ["onClick"], lm = { class: "flex-1 text-left" }, sm = { class: "ml-auto flex items-center gap-2" }, im = {
3321
3323
  key: 0,
3322
3324
  class: "annotation-nav-badge"
3323
- }, lm = {
3325
+ }, rm = {
3324
3326
  key: 1,
3325
3327
  class: "screen-highlight-dot",
3326
3328
  "aria-hidden": "true"
3327
- }, sm = {
3329
+ }, um = {
3328
3330
  key: 0,
3329
3331
  class: "side-nav-scroll-hint-top",
3330
3332
  viewBox: "0 0 24 24",
@@ -3333,7 +3335,7 @@ const Cf = {
3333
3335
  "stroke-width": "2.5",
3334
3336
  "stroke-linecap": "round",
3335
3337
  "stroke-linejoin": "round"
3336
- }, im = {
3338
+ }, cm = {
3337
3339
  key: 1,
3338
3340
  class: "side-nav-scroll-hint-bottom",
3339
3341
  viewBox: "0 0 24 24",
@@ -3342,96 +3344,96 @@ const Cf = {
3342
3344
  "stroke-width": "2.5",
3343
3345
  "stroke-linecap": "round",
3344
3346
  "stroke-linejoin": "round"
3345
- }, rm = {
3347
+ }, dm = {
3346
3348
  key: 1,
3347
3349
  class: "apple-side-nav overview-side-nav"
3348
- }, um = { class: "px-2 pb-4" }, cm = { class: "flex items-center gap-3" }, dm = { class: "min-w-5 text-center text-xs font-semibold text-ink" }, pm = { class: "px-2" }, vm = { class: "flex items-center gap-2" }, fm = { class: "min-w-10 text-center text-xs font-semibold text-ink" }, mm = {
3350
+ }, pm = { class: "px-2 pb-4" }, vm = { class: "flex items-center gap-3" }, fm = { class: "min-w-5 text-center text-xs font-semibold text-ink" }, mm = { class: "px-2" }, gm = { class: "flex items-center gap-2" }, bm = { class: "min-w-10 text-center text-xs font-semibold text-ink" }, ym = {
3349
3351
  key: 2,
3350
3352
  class: "apple-side-nav flow-side-nav lg:w-80"
3351
- }, gm = { class: "flex items-center justify-between px-2 pb-3" }, bm = ["onClick"], ym = { class: "min-w-0 flex-1 text-left" }, hm = {
3353
+ }, hm = { class: "flex items-center justify-between px-2 pb-3" }, wm = ["onClick"], xm = { class: "min-w-0 flex-1 text-left" }, Sm = {
3352
3354
  key: 0,
3353
3355
  class: "flow-toolbar"
3354
- }, wm = { class: "flow-zoom-controls" }, xm = {
3356
+ }, km = { class: "flow-zoom-controls" }, Cm = {
3355
3357
  key: 0,
3356
3358
  class: "status-bar"
3357
- }, Sm = ["onClickCapture"], km = { class: "screen-scroll-wrapper" }, Cm = {
3359
+ }, $m = ["onClickCapture"], _m = { class: "screen-scroll-wrapper" }, Im = {
3358
3360
  key: 0,
3359
3361
  class: "annotation-layer"
3360
- }, $m = ["data-annotation-id", "onMouseenter"], Im = ["disabled", "onClick", "onPointerdown"], _m = { key: 0 }, Pm = { class: "annotation-panel-head" }, Dm = { class: "annotation-panel-tabs" }, Am = {
3362
+ }, Pm = ["data-annotation-id", "onMouseenter"], Dm = ["disabled", "onClick", "onPointerdown"], Am = { key: 0 }, Nm = { class: "annotation-panel-head" }, Tm = { class: "annotation-panel-tabs" }, Rm = {
3361
3363
  key: 0,
3362
3364
  class: "annotation-panel-actions"
3363
- }, Nm = ["disabled"], Tm = {
3365
+ }, Em = ["disabled"], Om = {
3364
3366
  key: 1,
3365
3367
  class: "annotation-panel-actions description-actions"
3366
- }, Rm = ["disabled"], Em = { class: "annotation-author-field" }, Om = ["placeholder"], Bm = { class: "annotation-polling-field" }, Mm = { class: "annotation-polling-control" }, Um = ["disabled"], jm = { class: "annotation-polling-notice" }, Vm = {
3368
+ }, Bm = ["disabled"], Mm = { class: "annotation-author-field" }, Um = ["placeholder"], jm = { class: "annotation-polling-field" }, Vm = { class: "annotation-polling-control" }, Lm = ["disabled"], Fm = { class: "annotation-polling-notice" }, Km = {
3367
3369
  key: 2,
3368
3370
  class: "annotation-list"
3369
- }, Lm = {
3371
+ }, zm = {
3370
3372
  key: 0,
3371
3373
  class: "annotation-empty"
3372
- }, Fm = ["onMouseenter"], Km = { key: 0 }, zm = { class: "annotation-list-actions" }, Gm = ["onClick"], Hm = ["disabled", "title", "onClick"], Wm = {
3374
+ }, Gm = ["onMouseenter"], Hm = { key: 0 }, Wm = { class: "annotation-list-actions" }, Ym = ["onClick"], Jm = ["disabled", "title", "onClick"], Xm = {
3373
3375
  key: 3,
3374
3376
  class: "page-description-view"
3375
- }, Ym = {
3377
+ }, Zm = {
3376
3378
  key: 0,
3377
3379
  class: "annotation-empty"
3378
- }, Jm = {
3380
+ }, qm = {
3379
3381
  key: 0,
3380
3382
  class: "page-description-meta"
3381
- }, Xm = { class: "collaboration-source-title" }, Zm = { "aria-hidden": "true" }, qm = ["disabled"], Qm = {
3383
+ }, Qm = { class: "collaboration-source-title" }, eg = { "aria-hidden": "true" }, tg = ["disabled"], ng = {
3382
3384
  class: "environment-check-panel",
3383
3385
  role: "dialog",
3384
3386
  "aria-modal": "true",
3385
3387
  "aria-labelledby": "environment-check-title"
3386
- }, eg = { class: "environment-check-groups" }, tg = { "aria-hidden": "true" }, ng = {
3388
+ }, og = { class: "environment-check-groups" }, ag = { "aria-hidden": "true" }, lg = {
3387
3389
  key: 0,
3388
3390
  class: "interaction-mode-toast",
3389
3391
  role: "status"
3390
- }, og = { class: "page-description-dialog" }, ag = { class: "page-description-dialog-head" }, lg = {
3392
+ }, sg = { class: "page-description-dialog" }, ig = { class: "page-description-dialog-head" }, rg = {
3391
3393
  key: 0,
3392
3394
  class: "annotation-empty"
3393
- }, sg = {
3395
+ }, ug = {
3394
3396
  key: 1,
3395
3397
  class: "page-description-meta"
3396
- }, ig = { class: "page-description-highlight-field" }, rg = ["placeholder"], ug = ["placeholder"], cg = ["placeholder"], dg = ["placeholder"], pg = ["placeholder"], vg = { class: "page-description-form-actions" }, fg = ["disabled"], mg = { class: "annotation-popover-head" }, gg = ["disabled", "title"], bg = {
3398
+ }, cg = { class: "page-description-highlight-field" }, dg = ["placeholder"], pg = ["placeholder"], vg = ["placeholder"], fg = ["placeholder"], mg = ["placeholder"], gg = { class: "page-description-form-actions" }, bg = ["disabled"], yg = { class: "annotation-popover-head" }, hg = ["disabled", "title"], wg = {
3397
3399
  key: 10,
3398
3400
  class: "annotation-form-backdrop"
3399
- }, yg = ["placeholder"], hg = ["placeholder"], wg = ["placeholder"], xg = ["placeholder"], Sg = { class: "annotation-form-actions" }, kg = ["disabled"], Cg = {
3401
+ }, xg = ["placeholder"], Sg = ["placeholder"], kg = ["placeholder"], Cg = ["placeholder"], $g = { class: "annotation-form-actions" }, _g = ["disabled"], Ig = {
3400
3402
  key: 11,
3401
3403
  class: "annotation-form-backdrop"
3402
- }, $g = ["readonly"], Ig = ["readonly"], _g = ["readonly"], Pg = { key: 0 }, Dg = ["placeholder"], Ag = ["disabled"], Ng = { class: "page-description-summary-dialog" }, Tg = { class: "page-description-summary-head" }, Rg = {
3404
+ }, Pg = ["readonly"], Dg = ["readonly"], Ag = ["readonly"], Ng = { key: 0 }, Tg = ["placeholder"], Rg = ["disabled"], Eg = { class: "page-description-summary-dialog" }, Og = { class: "page-description-summary-head" }, Bg = {
3403
3405
  class: "page-description-summary-options",
3404
3406
  "aria-label": "选择展示的页面描述部分"
3405
- }, Eg = ["checked", "onChange"], Og = { class: "page-description-summary-body" }, Bg = {
3407
+ }, Mg = ["checked", "onChange"], Ug = { class: "page-description-summary-body" }, jg = {
3406
3408
  key: 0,
3407
3409
  class: "page-description-summary-empty"
3408
- }, Mg = { class: "page-description-summary-actions" }, Ug = ["disabled"], jg = {
3410
+ }, Vg = { class: "page-description-summary-actions" }, Lg = ["disabled"], Fg = {
3409
3411
  class: "prototype-health-panel",
3410
3412
  role: "dialog",
3411
3413
  "aria-modal": "true",
3412
3414
  "aria-label": "原型健康检查"
3413
- }, Vg = { class: "prototype-health-head" }, Lg = { class: "prototype-health-tabs" }, Fg = { class: "prototype-health-stat-grid" }, Kg = { class: "prototype-health-section" }, zg = { class: "prototype-health-section-head" }, Gg = { class: "prototype-health-issues" }, Hg = {
3415
+ }, Kg = { class: "prototype-health-head" }, zg = { class: "prototype-health-tabs" }, Gg = { class: "prototype-health-stat-grid" }, Hg = { class: "prototype-health-section" }, Wg = { class: "prototype-health-section-head" }, Yg = { class: "prototype-health-issues" }, Jg = {
3414
3416
  key: 1,
3415
3417
  class: "prototype-health-section prototype-health-matrix-section"
3416
- }, Wg = { class: "prototype-health-table-wrap" }, Yg = { class: "prototype-health-table" }, Jg = { class: "w-full max-w-xl rounded-[24px] border border-line bg-panel p-5 text-left shadow-[0_24px_70px_rgb(0_0_0/0.18)]" }, Xg = { class: "flex items-start justify-between gap-4" }, Zg = { class: "mt-1 text-xs text-muted" }, qg = { class: "mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1" }, Qg = ["onClick"], e1 = { class: "flex items-center justify-between gap-3" }, t1 = { class: "text-sm font-semibold text-ink" }, n1 = { class: "flex shrink-0 items-center gap-2" }, o1 = { class: "rounded-full bg-panel px-2 py-1 text-xs text-muted" }, a1 = { class: "mt-2 text-sm leading-5 text-muted" }, l1 = {
3418
+ }, Xg = { class: "prototype-health-table-wrap" }, Zg = { class: "prototype-health-table" }, qg = { class: "w-full max-w-xl rounded-[24px] border border-line bg-panel p-5 text-left shadow-[0_24px_70px_rgb(0_0_0/0.18)]" }, Qg = { class: "flex items-start justify-between gap-4" }, e1 = { class: "mt-1 text-xs text-muted" }, t1 = { class: "mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1" }, n1 = ["onClick"], o1 = { class: "flex items-center justify-between gap-3" }, a1 = { class: "text-sm font-semibold text-ink" }, l1 = { class: "flex shrink-0 items-center gap-2" }, s1 = { class: "rounded-full bg-panel px-2 py-1 text-xs text-muted" }, i1 = { class: "mt-2 text-sm leading-5 text-muted" }, r1 = {
3417
3419
  key: 0,
3418
3420
  class: "border-t border-line bg-panel/60 px-3 py-3"
3419
- }, s1 = {
3421
+ }, u1 = {
3420
3422
  key: 0,
3421
3423
  class: "space-y-2"
3422
- }, i1 = {
3424
+ }, c1 = {
3423
3425
  key: 1,
3424
3426
  class: "rounded-[12px] bg-panel px-3 py-2 text-xs leading-5 text-muted"
3425
- }, r1 = {
3427
+ }, d1 = {
3426
3428
  key: 0,
3427
3429
  class: "rounded-[16px] bg-soft p-3 text-sm text-muted"
3428
- }, u1 = { class: "mobile-page-picker" }, c1 = { class: "mobile-page-picker-list" }, d1 = ["onClick"], p1 = { class: "mobile-page-picker-code" }, v1 = { class: "mobile-page-picker-copy" }, f1 = {
3430
+ }, p1 = { class: "mobile-page-picker" }, v1 = { class: "mobile-page-picker-list" }, f1 = ["onClick"], m1 = { class: "mobile-page-picker-code" }, g1 = { class: "mobile-page-picker-copy" }, b1 = {
3429
3431
  key: 0,
3430
3432
  class: "mobile-page-picker-count"
3431
- }, m1 = {
3433
+ }, y1 = {
3432
3434
  key: 0,
3433
3435
  class: "mobile-page-picker-states"
3434
- }, g1 = ["onClick"], es = "prototype-core-authenticated", Ln = "prototype-core-page-description-summary-sections", Do = "prototype-core-panel-state-v1", ts = 393, b1 = 852, y1 = 24, Sa = 1920, h1 = 1080, w1 = 640, x1 = 60 * 1e3, $1 = /* @__PURE__ */ kn({
3436
+ }, h1 = ["onClick"], es = "prototype-core-authenticated", Ln = "prototype-core-page-description-summary-sections", Do = "prototype-core-panel-state-v1", ts = 393, w1 = 852, x1 = 24, Sa = 1920, S1 = 1080, k1 = 640, C1 = 60 * 1e3, P1 = /* @__PURE__ */ kn({
3435
3437
  __name: "App",
3436
3438
  setup(t) {
3437
3439
  var Ll;
@@ -3443,7 +3445,7 @@ const Cf = {
3443
3445
  selectedFlowId: m,
3444
3446
  selectedThemeId: g,
3445
3447
  showThemePanel: C,
3446
- themeImportInput: _,
3448
+ themeImportInput: I,
3447
3449
  flowZoom: M,
3448
3450
  isFlowPanning: se,
3449
3451
  selectedTab: xe,
@@ -3498,7 +3500,7 @@ const Cf = {
3498
3500
  currentScreenAnnotations: T,
3499
3501
  currentPageDescription: R,
3500
3502
  isScreenHighlighted: D,
3501
- activeScreenHighlightedStateIds: H,
3503
+ activeScreenHighlightedStateIds: G,
3502
3504
  hoveredAnnotation: le,
3503
3505
  initializePrototype: ge,
3504
3506
  t: $,
@@ -3511,11 +3513,11 @@ const Cf = {
3511
3513
  go: ao,
3512
3514
  goToAnnotatedScreen: Go,
3513
3515
  goTab: Ho,
3514
- startAnnotationPlacement: In,
3516
+ startAnnotationPlacement: _n,
3515
3517
  cancelAnnotationDraft: Jt,
3516
3518
  handleAnnotationCanvasClick: Wo,
3517
3519
  saveAnnotationDraft: lo,
3518
- openAnnotationDialog: _n,
3520
+ openAnnotationDialog: In,
3519
3521
  closeAnnotationDialog: sn,
3520
3522
  saveAnnotationEdit: h,
3521
3523
  updateAnnotationPosition: d,
@@ -3546,7 +3548,7 @@ const Cf = {
3546
3548
  zoomFlowAtPoint: ki,
3547
3549
  overviewZoom: wt,
3548
3550
  overviewColumns: Xt
3549
- } = Sf(), { saveFlowsToSession: Ci, pushFlowsToGitee: $i, exportFlows: Ii } = xf(), { unresolvedBugCount: ll, initializeBugs: _i } = As(), Pi = k(
3551
+ } = Cf(), { saveFlowsToSession: Ci, pushFlowsToGitee: $i, exportFlows: _i } = kf(), { unresolvedBugCount: ll, initializeBugs: Ii } = As(), Pi = k(
3550
3552
  () => fe.filter((i) => i.platform === "mobile" && i.hasTabBar).map((i) => ({ id: i.id, label: i.title, icon: i.icon }))
3551
3553
  ), Jo = {
3552
3554
  gitee: "Gitee",
@@ -3615,7 +3617,7 @@ const Cf = {
3615
3617
  ]
3616
3618
  }
3617
3619
  ];
3618
- }), rl = k(() => Zo.value.reduce((i, o) => i + o.items.length, 0)), ul = k(() => Zo.value.reduce((i, o) => i + o.items.filter((a) => a.configured).length, 0)), qo = k(() => rl.value - ul.value), Qo = "1.0.7", ea = b(""), qt = b("idle"), Ei = k(() => qt.value === "success" && ea.value !== Qo), Oi = k(() => qt.value === "success" ? `v${ea.value}` : qt.value === "error" ? "版本暂不可用" : "版本检测中");
3620
+ }), rl = k(() => Zo.value.reduce((i, o) => i + o.items.length, 0)), ul = k(() => Zo.value.reduce((i, o) => i + o.items.filter((a) => a.configured).length, 0)), qo = k(() => rl.value - ul.value), Qo = "1.0.8", ea = b(""), qt = b("idle"), Ei = k(() => qt.value === "success" && ea.value !== Qo), Oi = k(() => qt.value === "success" ? `v${ea.value}` : qt.value === "error" ? "版本暂不可用" : "版本检测中");
3619
3621
  async function Bi() {
3620
3622
  if (qt.value !== "idle") return;
3621
3623
  qt.value = "loading";
@@ -3648,7 +3650,7 @@ const Cf = {
3648
3650
  return ((i = xt.auth) == null ? void 0 : i.enabled) === !0 && !!(cl() && dl());
3649
3651
  }
3650
3652
  function vl() {
3651
- il.value || (ge().then(Ol), _i(), il.value = !0), Bi(), Dr();
3653
+ il.value || (ge().then(Ol), Ii(), il.value = !0), Bi(), Dr();
3652
3654
  }
3653
3655
  function Mi() {
3654
3656
  if (Pn.value = "", !pl()) {
@@ -3661,7 +3663,7 @@ const Cf = {
3661
3663
  }
3662
3664
  window.localStorage.setItem(es, "true"), Dn.value = !0, so.value = "", io.value = "", vl();
3663
3665
  }
3664
- const mo = kf, Et = b(!1), go = b(((Ll = mo[0]) == null ? void 0 : Ll.hash) ?? ""), Ui = k(() => {
3666
+ const mo = $f, Et = b(!1), go = b(((Ll = mo[0]) == null ? void 0 : Ll.hash) ?? ""), Ui = k(() => {
3665
3667
  var i;
3666
3668
  return ((i = mo[0]) == null ? void 0 : i.date) ?? "暂无记录";
3667
3669
  }), de = b("prototype"), fl = b(null), Rn = b(!1), En = b(!1), Ot = b(!1), St = b(!1), kt = b(!0), ta = b(!1), ml = b(!1), Q = k(
@@ -3777,7 +3779,7 @@ const Cf = {
3777
3779
  Xo = "";
3778
3780
  return;
3779
3781
  }
3780
- _n(i.id);
3782
+ In(i.id);
3781
3783
  }
3782
3784
  function Qi(i) {
3783
3785
  return i.querySelector(".annotation-layer");
@@ -3998,21 +4000,21 @@ const Cf = {
3998
4000
  ze.value = Qt.value.map((o) => o.id).filter((o) => !i.has(o)), window.localStorage.setItem(Ln, JSON.stringify(ze.value));
3999
4001
  }
4000
4002
  const ra = k(() => {
4001
- const i = Math.max(1, Xt.value), a = ((oa.value || window.innerWidth) - y1 * (i - 1)) / i;
4003
+ const i = Math.max(1, Xt.value), a = ((oa.value || window.innerWidth) - x1 * (i - 1)) / i;
4002
4004
  return Math.min(1, Math.max(0.36, Number((a / ts).toFixed(3))));
4003
- }), $l = k(() => Math.round(ts * ra.value * 100) / 100), fr = k(() => Math.round(b1 * ra.value * 100) / 100);
4005
+ }), $l = k(() => Math.round(ts * ra.value * 100) / 100), fr = k(() => Math.round(w1 * ra.value * 100) / 100);
4004
4006
  function mr() {
4005
4007
  if (Be.value)
4006
4008
  return Math.min(Sa, On.value, Math.max(0, yo.value - 48) * 16 / 9);
4007
4009
  if (K.value === "overview") return $l.value;
4008
- if (K.value === "flow") return w1;
4010
+ if (K.value === "flow") return k1;
4009
4011
  const i = oa.value || On.value;
4010
4012
  return Math.min(1440, i, Math.max(0, yo.value - 120) * 16 / 9);
4011
4013
  }
4012
4014
  function gr(i) {
4013
4015
  const o = K.value === "flow" ? hi(i) : {};
4014
4016
  if (i.platform !== "pc") return o;
4015
- const a = Math.max(1, mr()), y = a * h1 / Sa;
4017
+ const a = Math.max(1, mr()), y = a * S1 / Sa;
4016
4018
  return {
4017
4019
  ...o,
4018
4020
  "--desktop-display-width": `${a}px`,
@@ -4031,14 +4033,14 @@ const Cf = {
4031
4033
  function yr(i) {
4032
4034
  return Math.min(1.2, Math.max(0.25, Number(i.toFixed(2))));
4033
4035
  }
4034
- function Il(i, o, a) {
4036
+ function _l(i, o, a) {
4035
4037
  const y = yr(i);
4036
4038
  if (y === wt.value) return;
4037
4039
  const j = (o - pn.value) / wt.value, F = (a - vn.value) / wt.value;
4038
4040
  wt.value = y, pn.value = o - j * y, vn.value = a - F * y;
4039
4041
  }
4040
- function _l(i) {
4041
- Il(
4042
+ function Il(i) {
4043
+ _l(
4042
4044
  wt.value + i,
4043
4045
  On.value / 2,
4044
4046
  yo.value / 2
@@ -4062,7 +4064,7 @@ const Cf = {
4062
4064
  function xr(i) {
4063
4065
  i.preventDefault();
4064
4066
  const o = i.currentTarget.getBoundingClientRect();
4065
- Il(
4067
+ _l(
4066
4068
  wt.value + (i.deltaY > 0 ? -0.04 : 0.04),
4067
4069
  i.clientX - o.left,
4068
4070
  i.clientY - o.top
@@ -4138,7 +4140,7 @@ const Cf = {
4138
4140
  key: "A",
4139
4141
  label: "添加注释点",
4140
4142
  run: () => {
4141
- r.value = "interactive", ce.value = !1, q.value = "annotations", In();
4143
+ r.value = "interactive", ce.value = !1, q.value = "annotations", _n();
4142
4144
  }
4143
4145
  },
4144
4146
  {
@@ -4176,15 +4178,15 @@ const Cf = {
4176
4178
  function $r(i) {
4177
4179
  return i instanceof HTMLElement && !!i.closest('input, textarea, select, [contenteditable]:not([contenteditable="false"])');
4178
4180
  }
4179
- function Ir() {
4181
+ function _r() {
4180
4182
  return Et.value || Nt.value || Zt.value || W.value || Rt.value || qe.value || ae.value !== "view" || Z.value || !!Ee.value || !!ee.value;
4181
4183
  }
4182
4184
  function El(i) {
4183
4185
  if (!Dn.value || Q.value || i.defaultPrevented || i.isComposing || i.keyCode === 229 || i.repeat || i.ctrlKey || i.altKey || i.metaKey || $r(i.target)) return;
4184
4186
  const o = i.key === "Escape" ? "esc" : i.key.toLowerCase(), a = kr.get(o);
4185
- a && (o !== "esc" && Ir() && !(o === "e" && qe.value) || (i.preventDefault(), a.run()));
4187
+ a && (o !== "esc" && _r() && !(o === "e" && qe.value) || (i.preventDefault(), a.run()));
4186
4188
  }
4187
- function _r(i) {
4189
+ function Ir(i) {
4188
4190
  if (!i || typeof i != "object") return !1;
4189
4191
  const o = i;
4190
4192
  return ["navigationCollapsed", "collaborationCollapsed", "dataSourceCollapsed", "shortcutsCollapsed"].every((a) => typeof o[a] == "boolean");
@@ -4192,7 +4194,7 @@ const Cf = {
4192
4194
  function Pr() {
4193
4195
  try {
4194
4196
  const i = JSON.parse(window.localStorage.getItem(Do) ?? "null");
4195
- if (!_r(i)) {
4197
+ if (!Ir(i)) {
4196
4198
  i !== null && window.localStorage.removeItem(Do);
4197
4199
  return;
4198
4200
  }
@@ -4217,7 +4219,7 @@ const Cf = {
4217
4219
  dt.value && Ol();
4218
4220
  });
4219
4221
  function Dr() {
4220
- Co || (Bl(), Co = window.setInterval(Bl, x1));
4222
+ Co || (Bl(), Co = window.setInterval(Bl, C1));
4221
4223
  }
4222
4224
  async function Bl() {
4223
4225
  var o, a;
@@ -4326,10 +4328,10 @@ const Cf = {
4326
4328
  const o = Ml(i.touches);
4327
4329
  o === null || o - co.value < 72 || (i.preventDefault(), po.value = !0, ro.value = !0, Nn.value = "", uo.value = /* @__PURE__ */ new Set([u.value]));
4328
4330
  }
4329
- function Io() {
4331
+ function _o() {
4330
4332
  co.value = null, po.value = !1;
4331
4333
  }
4332
- function _o() {
4334
+ function Io() {
4333
4335
  ro.value = !1, Nn.value = "";
4334
4336
  }
4335
4337
  function Or(i) {
@@ -4337,10 +4339,10 @@ const Cf = {
4337
4339
  o.has(i) ? o.delete(i) : o.add(i), uo.value = o;
4338
4340
  }
4339
4341
  function Br(i) {
4340
- ao(i), _o();
4342
+ ao(i), Io();
4341
4343
  }
4342
4344
  function Mr(i, o) {
4343
- ao(i), Yt(i, o), _o();
4345
+ ao(i), Yt(i, o), Io();
4344
4346
  }
4345
4347
  function fa() {
4346
4348
  var i;
@@ -4351,9 +4353,9 @@ const Cf = {
4351
4353
  }
4352
4354
  return Ur(() => {
4353
4355
  var i;
4354
- da(), cr(), Pr(), en = window.matchMedia("(max-width: 640px)"), va(en), en.addEventListener("change", va), window.addEventListener("touchstart", Ul, { passive: !0 }), window.addEventListener("touchmove", jl, { passive: !1 }), window.addEventListener("touchend", Io, { passive: !0 }), window.addEventListener("touchcancel", Io, { passive: !0 }), window.addEventListener("resize", Vl), window.addEventListener("hashchange", da), fa(), gn = new ResizeObserver(fa), bo.value && gn.observe(bo.value), window.addEventListener("keydown", El), Dn.value = ((i = xt.auth) == null ? void 0 : i.enabled) !== !0 || window.localStorage.getItem(es) === "true", Dn.value ? vl() : pl() || console.error("🔐 [前端认证] 已启用认证但未提供用户名或密码,访问页将无法登录");
4356
+ da(), cr(), Pr(), en = window.matchMedia("(max-width: 640px)"), va(en), en.addEventListener("change", va), window.addEventListener("touchstart", Ul, { passive: !0 }), window.addEventListener("touchmove", jl, { passive: !1 }), window.addEventListener("touchend", _o, { passive: !0 }), window.addEventListener("touchcancel", _o, { passive: !0 }), window.addEventListener("resize", Vl), window.addEventListener("hashchange", da), fa(), gn = new ResizeObserver(fa), bo.value && gn.observe(bo.value), window.addEventListener("keydown", El), Dn.value = ((i = xt.auth) == null ? void 0 : i.enabled) !== !0 || window.localStorage.getItem(es) === "true", Dn.value ? vl() : pl() || console.error("🔐 [前端认证] 已启用认证但未提供用户名或密码,访问页将无法登录");
4355
4357
  }), ls(() => {
4356
- Tl(), Mn(), Ji(), en == null || en.removeEventListener("change", va), en = void 0, window.removeEventListener("touchstart", Ul), window.removeEventListener("touchmove", jl), window.removeEventListener("touchend", Io), window.removeEventListener("touchcancel", Io), window.removeEventListener("resize", Vl), window.removeEventListener("hashchange", da), window.removeEventListener("keydown", El), gn == null || gn.disconnect(), gn = void 0, Co && window.clearInterval(Co), dn && window.clearTimeout(dn);
4358
+ Tl(), Mn(), Ji(), en == null || en.removeEventListener("change", va), en = void 0, window.removeEventListener("touchstart", Ul), window.removeEventListener("touchmove", jl), window.removeEventListener("touchend", _o), window.removeEventListener("touchcancel", _o), window.removeEventListener("resize", Vl), window.removeEventListener("hashchange", da), window.removeEventListener("keydown", El), gn == null || gn.disconnect(), gn = void 0, Co && window.clearInterval(Co), dn && window.clearTimeout(dn);
4357
4359
  }), (i, o) => (v(), f("main", {
4358
4360
  class: P(["min-h-screen bg-canvas text-ink transition-[padding] duration-200", [
4359
4361
  Q.value ? "mobile-pure-interactive" : "",
@@ -4361,8 +4363,8 @@ const Cf = {
4361
4363
  ]]),
4362
4364
  style: Pe(l(ve))
4363
4365
  }, [
4364
- Dn.value ? (v(), f(I, { key: 1 }, [
4365
- ko.value && !Q.value ? (v(), f("div", Df, [
4366
+ Dn.value ? (v(), f(_, { key: 1 }, [
4367
+ ko.value && !Q.value ? (v(), f("div", Nf, [
4366
4368
  e("div", { class: "update-banner-inner" }, [
4367
4369
  o[88] || (o[88] = e("p", null, "🔔 检测到新版本,刷新后即可使用最新页面", -1)),
4368
4370
  e("div", { class: "update-banner-actions" }, [
@@ -4378,18 +4380,18 @@ const Cf = {
4378
4380
  ])
4379
4381
  ])
4380
4382
  ])) : w("", !0),
4381
- Q.value ? w("", !0) : (v(), f("div", Af, [
4382
- e("div", Nf, [
4383
- e("div", Tf, [
4383
+ Q.value ? w("", !0) : (v(), f("div", Tf, [
4384
+ e("div", Rf, [
4385
+ e("div", Ef, [
4384
4386
  e("button", {
4385
4387
  class: "project-title-btn",
4386
4388
  type: "button",
4387
4389
  onClick: o[2] || (o[2] = (a) => bn())
4388
4390
  }, [
4389
- e("p", Rf, p(l($)("prototypeTitle")), 1),
4390
- e("p", Ef, p(l($)("prototypeSubtitle")), 1)
4391
+ e("p", Of, p(l($)("prototypeTitle")), 1),
4392
+ e("p", Bf, p(l($)("prototypeSubtitle")), 1)
4391
4393
  ]),
4392
- e("div", Of, [
4394
+ e("div", Mf, [
4393
4395
  e("p", null, [
4394
4396
  o[89] || (o[89] = e("span", null, "当前", -1)),
4395
4397
  e("b", null, "v" + p(l(Qo)), 1)
@@ -4402,7 +4404,7 @@ const Cf = {
4402
4404
  ])
4403
4405
  ])
4404
4406
  ]),
4405
- e("div", Bf, [
4407
+ e("div", Uf, [
4406
4408
  o[92] || (o[92] = e("a", {
4407
4409
  class: "mode-btn top-level-mode-btn rounded-full bg-panel ring-1 ring-line",
4408
4410
  href: "https://altimodo-doc.doc.gominex.com/",
@@ -4421,10 +4423,10 @@ const Cf = {
4421
4423
  class: P(["mode-btn bug-nav-btn rounded-full bg-panel ring-1 ring-line", { active: de.value === "bugs" }]),
4422
4424
  onClick: Tr
4423
4425
  }, [
4424
- o[91] || (o[91] = G(" Bug ", -1)),
4425
- l(ll) ? (v(), f("span", Mf, p(l(ll)), 1)) : w("", !0)
4426
+ o[91] || (o[91] = H(" Bug ", -1)),
4427
+ l(ll) ? (v(), f("span", jf, p(l(ll)), 1)) : w("", !0)
4426
4428
  ], 2),
4427
- e("div", Uf, [
4429
+ e("div", Vf, [
4428
4430
  e("button", {
4429
4431
  class: P(["mode-btn", { active: de.value === "prototype" && l(r) === "interactive" }]),
4430
4432
  onClick: o[3] || (o[3] = (a) => bn("interactive"))
@@ -4438,7 +4440,7 @@ const Cf = {
4438
4440
  onClick: o[5] || (o[5] = (a) => bn("flow"))
4439
4441
  }, "流程模式", 2)
4440
4442
  ]),
4441
- e("div", jf, [
4443
+ e("div", Lf, [
4442
4444
  e("button", {
4443
4445
  class: P(["mode-btn", { active: l(s) === "zh" }]),
4444
4446
  onClick: o[6] || (o[6] = (a) => s.value = "zh")
@@ -4448,7 +4450,7 @@ const Cf = {
4448
4450
  onClick: o[7] || (o[7] = (a) => s.value = "en")
4449
4451
  }, "English", 2)
4450
4452
  ]),
4451
- e("div", Vf, [
4453
+ e("div", Ff, [
4452
4454
  e("button", {
4453
4455
  class: P(["mode-btn flex items-center gap-2", { active: l(C) }]),
4454
4456
  onClick: o[8] || (o[8] = (a) => C.value = !l(C))
@@ -4457,13 +4459,13 @@ const Cf = {
4457
4459
  class: "theme-swatch",
4458
4460
  style: Pe({ "--swatch-color": l(ot).ocean })
4459
4461
  }, null, 4),
4460
- G(" " + p(l($)("themeButton")), 1)
4462
+ H(" " + p(l($)("themeButton")), 1)
4461
4463
  ], 2),
4462
- l(C) ? (v(), f("div", Lf, [
4463
- e("div", Ff, [
4464
+ l(C) ? (v(), f("div", Kf, [
4465
+ e("div", zf, [
4464
4466
  e("div", null, [
4465
- e("p", Kf, p(l($)("themeTitle")), 1),
4466
- e("p", zf, p(l($)("themeDescription")), 1)
4467
+ e("p", Gf, p(l($)("themeTitle")), 1),
4468
+ e("p", Hf, p(l($)("themeDescription")), 1)
4467
4469
  ]),
4468
4470
  e("button", {
4469
4471
  class: "text-xs font-semibold text-ocean",
@@ -4471,8 +4473,8 @@ const Cf = {
4471
4473
  (...a) => l(lt) && l(lt)(...a))
4472
4474
  }, p(l($)("themeReset")), 1)
4473
4475
  ]),
4474
- e("div", Gf, [
4475
- (v(!0), f(I, null, N(l(ie), (a) => (v(), f("button", {
4476
+ e("div", Wf, [
4477
+ (v(!0), f(_, null, N(l(ie), (a) => (v(), f("button", {
4476
4478
  key: a.id,
4477
4479
  class: P(["theme-scheme-btn", { active: l(g) === a.id }]),
4478
4480
  onClick: (y) => l($n)(a.id)
@@ -4481,13 +4483,13 @@ const Cf = {
4481
4483
  class: "theme-swatch",
4482
4484
  style: Pe({ "--swatch-color": a.colors.ocean })
4483
4485
  }, null, 4),
4484
- e("span", Wf, [
4486
+ e("span", Jf, [
4485
4487
  e("b", null, p(l($)(a.nameKey)), 1),
4486
4488
  e("small", null, p(l($)(a.descriptionKey)), 1)
4487
4489
  ])
4488
- ], 10, Hf))), 128))
4490
+ ], 10, Yf))), 128))
4489
4491
  ]),
4490
- e("div", Yf, [
4492
+ e("div", Xf, [
4491
4493
  e("button", {
4492
4494
  class: "theme-file-btn",
4493
4495
  onClick: o[10] || (o[10] = //@ts-ignore
@@ -4497,12 +4499,12 @@ const Cf = {
4497
4499
  class: "theme-file-btn",
4498
4500
  onClick: o[11] || (o[11] = (a) => {
4499
4501
  var y;
4500
- return (y = l(_)) == null ? void 0 : y.click();
4502
+ return (y = l(I)) == null ? void 0 : y.click();
4501
4503
  })
4502
4504
  }, p(l($)("themeImport")), 1),
4503
4505
  e("input", {
4504
4506
  ref_key: "themeImportInput",
4505
- ref: _,
4507
+ ref: I,
4506
4508
  class: "hidden",
4507
4509
  type: "file",
4508
4510
  accept: "application/json,.json",
@@ -4510,8 +4512,8 @@ const Cf = {
4510
4512
  (...a) => l(oo) && l(oo)(...a))
4511
4513
  }, null, 544)
4512
4514
  ]),
4513
- e("div", Jf, [
4514
- (v(!0), f(I, null, N(l(n), (a) => (v(), f("label", {
4515
+ e("div", Zf, [
4516
+ (v(!0), f(_, null, N(l(n), (a) => (v(), f("label", {
4515
4517
  key: a.key,
4516
4518
  class: "theme-color-field"
4517
4519
  }, [
@@ -4519,7 +4521,7 @@ const Cf = {
4519
4521
  type: "color",
4520
4522
  value: l(ot)[a.key],
4521
4523
  onInput: (y) => l(Wt)(a.key, y.target.value)
4522
- }, null, 40, Xf),
4524
+ }, null, 40, qf),
4523
4525
  e("span", null, [
4524
4526
  e("b", null, p(l($)(a.labelKey)), 1),
4525
4527
  e("small", null, p(l($)(a.descKey)), 1)
@@ -4528,7 +4530,7 @@ const Cf = {
4528
4530
  type: "text",
4529
4531
  value: l(ot)[a.key],
4530
4532
  onInput: (y) => l(Wt)(a.key, y.target.value)
4531
- }, null, 40, Zf)
4533
+ }, null, 40, Qf)
4532
4534
  ]))), 128))
4533
4535
  ])
4534
4536
  ])) : w("", !0)
@@ -4536,7 +4538,7 @@ const Cf = {
4536
4538
  ])
4537
4539
  ])
4538
4540
  ])),
4539
- de.value === "bugs" && !Q.value ? (v(), st(Up, {
4541
+ de.value === "bugs" && !Q.value ? (v(), st(Vp, {
4540
4542
  key: 2,
4541
4543
  onClose: pa
4542
4544
  })) : w("", !0),
@@ -4544,7 +4546,7 @@ const Cf = {
4544
4546
  key: 3,
4545
4547
  class: P(["prototype-stage mx-auto flex w-full flex-col gap-6 px-4 py-6 lg:px-8", K.value === "overview" ? "max-w-none" : K.value === "interactive" && l(bt) === "pc" ? "max-w-[1504px]" : "max-w-7xl"])
4546
4548
  }, [
4547
- Q.value ? w("", !0) : (v(), f("section", qf, [
4549
+ Q.value ? w("", !0) : (v(), f("section", em, [
4548
4550
  K.value === "interactive" ? (v(), f("button", {
4549
4551
  key: 0,
4550
4552
  class: "page-description-summary",
@@ -4555,15 +4557,15 @@ const Cf = {
4555
4557
  }, [
4556
4558
  e("p", null, [
4557
4559
  o[93] || (o[93] = e("b", null, "页面结构:", -1)),
4558
- G(p(et.value.structure), 1)
4560
+ H(p(et.value.structure), 1)
4559
4561
  ]),
4560
4562
  e("p", null, [
4561
4563
  o[94] || (o[94] = e("b", null, "核心功能:", -1)),
4562
- G(p(et.value.features), 1)
4564
+ H(p(et.value.features), 1)
4563
4565
  ])
4564
- ])) : (v(), f("p", Qf, p(l($)("heroCopy")), 1))
4566
+ ])) : (v(), f("p", tm, p(l($)("heroCopy")), 1))
4565
4567
  ])),
4566
- e("div", em, [
4568
+ e("div", nm, [
4567
4569
  K.value === "interactive" && !Q.value ? (v(), f("aside", {
4568
4570
  key: 0,
4569
4571
  class: P(["apple-side-nav interactive-side-nav", {
@@ -4577,14 +4579,14 @@ const Cf = {
4577
4579
  type: "button",
4578
4580
  onClick: Al
4579
4581
  }, p(Ot.value ? "展开导航" : "收起导航"), 1),
4580
- Ot.value ? w("", !0) : (v(), f("div", tm, [
4582
+ Ot.value ? w("", !0) : (v(), f("div", om, [
4581
4583
  e("div", {
4582
4584
  ref_key: "interactiveSideNavRef",
4583
4585
  ref: fl,
4584
4586
  class: "interactive-side-nav-scroll",
4585
4587
  onScroll: ua
4586
4588
  }, [
4587
- (v(!0), f(I, null, N(l(fe), (a) => (v(), f("button", {
4589
+ (v(!0), f(_, null, N(l(fe), (a) => (v(), f("button", {
4588
4590
  key: a.id,
4589
4591
  class: P(["nav-row", { active: l(u) === a.id }]),
4590
4592
  onClick: (y) => l(Go)(a.id)
@@ -4594,24 +4596,26 @@ const Cf = {
4594
4596
  "aria-hidden": "true"
4595
4597
  }, p(a.platform === "pc" ? "P" : "M"), 3),
4596
4598
  (v(), st(Bo(a.icon), { class: "h-4 w-4" })),
4597
- e("span", om, p(a.code) + " " + p(a.title), 1),
4598
- l(yt)(a.id) ? (v(), f("span", am, p(l(yt)(a.id)), 1)) : w("", !0),
4599
- l(D)(a.id) ? (v(), f("span", lm)) : w("", !0)
4600
- ], 10, nm))), 128))
4599
+ e("span", lm, p(a.code) + " " + p(a.title), 1),
4600
+ e("span", sm, [
4601
+ l(yt)(a.id) ? (v(), f("span", im, p(l(yt)(a.id)), 1)) : w("", !0),
4602
+ l(D)(a.id) ? (v(), f("span", rm)) : w("", !0)
4603
+ ])
4604
+ ], 10, am))), 128))
4601
4605
  ], 544),
4602
- Rn.value ? (v(), f("svg", sm, [...o[95] || (o[95] = [
4606
+ Rn.value ? (v(), f("svg", um, [...o[95] || (o[95] = [
4603
4607
  e("path", { d: "M12 19V5M5 12l7-7 7 7" }, null, -1)
4604
4608
  ])])) : w("", !0),
4605
- En.value ? (v(), f("svg", im, [...o[96] || (o[96] = [
4609
+ En.value ? (v(), f("svg", cm, [...o[96] || (o[96] = [
4606
4610
  e("path", { d: "M12 5v14M5 12l7 7 7-7" }, null, -1)
4607
4611
  ])])) : w("", !0)
4608
4612
  ]))
4609
4613
  ], 2)) : w("", !0),
4610
- K.value === "overview" ? (v(), f("aside", rm, [
4614
+ K.value === "overview" ? (v(), f("aside", dm, [
4611
4615
  o[101] || (o[101] = e("p", { class: "px-2 pb-3 text-sm font-semibold text-muted" }, "显示设置", -1)),
4612
- e("div", um, [
4616
+ e("div", pm, [
4613
4617
  o[99] || (o[99] = e("label", { class: "mb-2 block text-xs font-semibold text-muted" }, "每行数量", -1)),
4614
- e("div", cm, [
4618
+ e("div", vm, [
4615
4619
  o[97] || (o[97] = e("span", { class: "text-xs text-muted" }, "3", -1)),
4616
4620
  A(e("input", {
4617
4621
  "onUpdate:modelValue": o[14] || (o[14] = (a) => yn(Xt) ? Xt.value = a : null),
@@ -4630,22 +4634,22 @@ const Cf = {
4630
4634
  ]
4631
4635
  ]),
4632
4636
  o[98] || (o[98] = e("span", { class: "text-xs text-muted" }, "6", -1)),
4633
- e("strong", dm, p(l(Xt)), 1)
4637
+ e("strong", fm, p(l(Xt)), 1)
4634
4638
  ])
4635
4639
  ]),
4636
- e("div", pm, [
4640
+ e("div", mm, [
4637
4641
  o[100] || (o[100] = e("label", { class: "mb-2 block text-xs font-semibold text-muted" }, "缩放", -1)),
4638
- e("div", vm, [
4642
+ e("div", gm, [
4639
4643
  e("button", {
4640
4644
  type: "button",
4641
4645
  class: "overview-zoom-btn",
4642
- onClick: o[15] || (o[15] = (a) => _l(-0.06))
4646
+ onClick: o[15] || (o[15] = (a) => Il(-0.06))
4643
4647
  }, "−"),
4644
- e("strong", fm, p(Math.round(l(wt) * 100)) + "%", 1),
4648
+ e("strong", bm, p(Math.round(l(wt) * 100)) + "%", 1),
4645
4649
  e("button", {
4646
4650
  type: "button",
4647
4651
  class: "overview-zoom-btn",
4648
- onClick: o[16] || (o[16] = (a) => _l(0.06))
4652
+ onClick: o[16] || (o[16] = (a) => Il(0.06))
4649
4653
  }, "+"),
4650
4654
  e("button", {
4651
4655
  type: "button",
@@ -4657,8 +4661,8 @@ const Cf = {
4657
4661
  ])
4658
4662
  ])
4659
4663
  ])) : w("", !0),
4660
- K.value === "flow" ? (v(), f("aside", mm, [
4661
- e("div", gm, [
4664
+ K.value === "flow" ? (v(), f("aside", ym, [
4665
+ e("div", hm, [
4662
4666
  o[103] || (o[103] = e("p", { class: "text-sm font-semibold text-muted" }, "主流程", -1)),
4663
4667
  e("button", {
4664
4668
  class: "flex items-center gap-1 rounded-lg bg-soft px-2.5 py-1 text-xs font-medium text-ink hover:bg-canvas transition",
@@ -4676,28 +4680,28 @@ const Cf = {
4676
4680
  e("path", { d: "M12 20h9" }),
4677
4681
  e("path", { d: "M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z" })
4678
4682
  ], -1),
4679
- G(" 编辑流程 ", -1)
4683
+ H(" 编辑流程 ", -1)
4680
4684
  ])])
4681
4685
  ]),
4682
- (v(!0), f(I, null, N(l(Pt), (a) => (v(), f("button", {
4686
+ (v(!0), f(_, null, N(l(Pt), (a) => (v(), f("button", {
4683
4687
  key: a.id,
4684
4688
  class: P(["nav-row flow-nav-row", { active: l(m) === a.id }]),
4685
4689
  onClick: (y) => l(yi)(a.id)
4686
4690
  }, [
4687
4691
  o[104] || (o[104] = e("span", { class: "flow-dot" }, null, -1)),
4688
- e("span", ym, [
4692
+ e("span", xm, [
4689
4693
  e("b", null, p(a.title), 1),
4690
4694
  e("small", null, p(a.subtitle), 1)
4691
4695
  ])
4692
- ], 10, bm))), 128))
4696
+ ], 10, wm))), 128))
4693
4697
  ])) : w("", !0),
4694
4698
  e("section", {
4695
4699
  ref_key: "overviewStageRef",
4696
4700
  ref: bo,
4697
4701
  class: "flex-1 relative"
4698
4702
  }, [
4699
- K.value === "flow" ? (v(), f("div", hm, [
4700
- e("div", wm, [
4703
+ K.value === "flow" ? (v(), f("div", Sm, [
4704
+ e("div", km, [
4701
4705
  e("button", {
4702
4706
  type: "button",
4703
4707
  onClick: o[18] || (o[18] = (a) => l(nl)(0.06))
@@ -4749,7 +4753,7 @@ const Cf = {
4749
4753
  class: P(K.value === "overview" ? "overview-grid" : "contents"),
4750
4754
  style: Pe(K.value === "overview" ? br.value : void 0)
4751
4755
  }, [
4752
- (v(!0), f(I, null, N(K.value === "flow" ? l(at) : [], (a) => (v(), f("div", {
4756
+ (v(!0), f(_, null, N(K.value === "flow" ? l(at) : [], (a) => (v(), f("div", {
4753
4757
  key: a.key,
4754
4758
  class: "flow-row-label",
4755
4759
  style: Pe(l(wi)(a.row))
@@ -4757,7 +4761,7 @@ const Cf = {
4757
4761
  o[105] || (o[105] = e("span", null, "子流程", -1)),
4758
4762
  e("strong", null, p(a.label), 1)
4759
4763
  ], 4))), 128)),
4760
- (v(!0), f(I, null, N(Li.value, (a) => (v(), f("article", {
4764
+ (v(!0), f(_, null, N(Li.value, (a) => (v(), f("article", {
4761
4765
  key: K.value === "flow" ? `${a.id}-${a.stateId ?? "default"}-${a.flowRow}-${a.flowCol}` : `${a.id}-${a.stateId ?? "default"}`,
4762
4766
  class: P([
4763
4767
  a.platform === "pc" ? "desktop-shell" : "phone-shell",
@@ -4775,19 +4779,19 @@ const Cf = {
4775
4779
  "overview-desktop-scale": K.value === "overview" && a.platform === "pc"
4776
4780
  }])
4777
4781
  }, [
4778
- K.value === "interactive" && !Q.value && a.platform === "mobile" && l(Ye).length && l(Ze) ? (v(), st(uu, {
4782
+ K.value === "interactive" && !Q.value && a.platform === "mobile" && l(Ye).length && l(Ze) ? (v(), st(du, {
4779
4783
  key: 0,
4780
4784
  title: l($)("prototypeStateSwitch"),
4781
4785
  options: l(Ye),
4782
4786
  "active-id": l(Ze),
4783
4787
  "count-for-state": (y) => l(Ke)(l(u), y),
4784
- "highlighted-ids": l(H),
4788
+ "highlighted-ids": l(G),
4785
4789
  onChange: o[22] || (o[22] = (y) => l(Yt)(l(u), y))
4786
4790
  }, null, 8, ["title", "options", "active-id", "count-for-state", "highlighted-ids"])) : w("", !0),
4787
4791
  e("div", {
4788
4792
  class: P(a.platform === "pc" ? "desktop-frame" : "phone-screen")
4789
4793
  }, [
4790
- a.platform === "mobile" && !Q.value ? (v(), f("div", xm, [...o[106] || (o[106] = [
4794
+ a.platform === "mobile" && !Q.value ? (v(), f("div", Cm, [...o[106] || (o[106] = [
4791
4795
  e("span", null, "9:41", -1),
4792
4796
  e("span", null, "86%", -1)
4793
4797
  ])])) : w("", !0),
@@ -4799,10 +4803,10 @@ const Cf = {
4799
4803
  }]),
4800
4804
  onClickCapture: (y) => !Q.value && l(Wo)(y, a.id)
4801
4805
  }, [
4802
- e("div", km, [
4806
+ e("div", _m, [
4803
4807
  X(zn, { screen: a }, null, 8, ["screen"]),
4804
- K.value === "interactive" && !Q.value && !Be.value && l(q) === "annotations" && l(oe) ? (v(), f("div", Cm, [
4805
- (v(!0), f(I, null, N(l(T), (y, j) => {
4808
+ K.value === "interactive" && !Q.value && !Be.value && l(q) === "annotations" && l(oe) ? (v(), f("div", Im, [
4809
+ (v(!0), f(_, null, N(l(T), (y, j) => {
4806
4810
  var F;
4807
4811
  return v(), f("div", {
4808
4812
  key: y.id,
@@ -4827,8 +4831,8 @@ const Cf = {
4827
4831
  onPointermove: nr,
4828
4832
  onPointerup: or,
4829
4833
  onPointercancel: ar
4830
- }, p(j + 1), 41, Im)
4831
- ], 46, $m);
4834
+ }, p(j + 1), 41, Dm)
4835
+ ], 46, Pm);
4832
4836
  }), 128)),
4833
4837
  Ki.value ? (v(), f("div", {
4834
4838
  key: 0,
@@ -4842,7 +4846,7 @@ const Cf = {
4842
4846
  ])], 4)) : w("", !0)
4843
4847
  ])) : w("", !0)
4844
4848
  ])
4845
- ], 42, Sm),
4849
+ ], 42, $m),
4846
4850
  a.platform === "mobile" && a.hasTabBar ? (v(), st(au, {
4847
4851
  key: 1,
4848
4852
  active: l(xe),
@@ -4859,10 +4863,10 @@ const Cf = {
4859
4863
  class: P(["platform-badge is-small", a.platform === "pc" ? "is-pc" : "is-mobile"]),
4860
4864
  "aria-hidden": "true"
4861
4865
  }, p(a.platform === "pc" ? "P" : "M"), 3),
4862
- a.platform === "mobile" ? (v(), f("br", _m)) : w("", !0),
4863
- G(" " + p(a.code) + " · " + p(a.title), 1),
4864
- a.stateLabel ? (v(), f(I, { key: 1 }, [
4865
- G(" · " + p(a.stateLabel), 1)
4866
+ a.platform === "mobile" ? (v(), f("br", Am)) : w("", !0),
4867
+ H(" " + p(a.code) + " · " + p(a.title), 1),
4868
+ a.stateLabel ? (v(), f(_, { key: 1 }, [
4869
+ H(" · " + p(a.stateLabel), 1)
4866
4870
  ], 64)) : w("", !0)
4867
4871
  ], 2)) : w("", !0)
4868
4872
  ], 6))), 128))
@@ -4880,20 +4884,20 @@ const Cf = {
4880
4884
  type: "button",
4881
4885
  onClick: o[29] || (o[29] = (a) => ce.value = !l(ce))
4882
4886
  }, p(l(ce) ? l($)("annotationExpand") : l($)("annotationCollapse")), 1),
4883
- l(ce) ? w("", !0) : (v(), f(I, { key: 0 }, [
4884
- e("div", Pm, [
4887
+ l(ce) ? w("", !0) : (v(), f(_, { key: 0 }, [
4888
+ e("div", Nm, [
4885
4889
  e("div", null, [
4886
4890
  e("p", null, p(l($)("annotationPanelTitle")), 1),
4887
4891
  e("span", null, [
4888
- G(p(l($)("annotationPanelSubtitle")) + " · " + p(l(mt).code), 1),
4889
- fn.value ? (v(), f(I, { key: 0 }, [
4890
- G(" · " + p(fn.value), 1)
4892
+ H(p(l($)("annotationPanelSubtitle")) + " · " + p(l(mt).code), 1),
4893
+ fn.value ? (v(), f(_, { key: 0 }, [
4894
+ H(" · " + p(fn.value), 1)
4891
4895
  ], 64)) : w("", !0)
4892
4896
  ])
4893
4897
  ]),
4894
4898
  e("strong", null, p(l(q) === "annotations" ? l(T).length : l(R) ? 1 : 0), 1)
4895
4899
  ]),
4896
- e("div", Dm, [
4900
+ e("div", Tm, [
4897
4901
  e("button", {
4898
4902
  type: "button",
4899
4903
  class: P({ active: l(q) === "annotations" }),
@@ -4907,12 +4911,12 @@ const Cf = {
4907
4911
  })
4908
4912
  }, p(l($)("annotationTabDescription")), 3)
4909
4913
  ]),
4910
- l(q) === "annotations" ? (v(), f("div", Am, [
4914
+ l(q) === "annotations" ? (v(), f("div", Rm, [
4911
4915
  e("button", {
4912
4916
  type: "button",
4913
4917
  class: P({ active: l(Z) }),
4914
4918
  onClick: o[32] || (o[32] = //@ts-ignore
4915
- (...a) => l(In) && l(In)(...a))
4919
+ (...a) => l(_n) && l(_n)(...a))
4916
4920
  }, p(l(Z) ? l($)("annotationCancelAdd") : l($)("annotationAdd")), 3),
4917
4921
  e("button", {
4918
4922
  type: "button",
@@ -4922,18 +4926,18 @@ const Cf = {
4922
4926
  type: "button",
4923
4927
  disabled: l(ke) === "syncing",
4924
4928
  onClick: o[34] || (o[34] = (a) => l(ht)())
4925
- }, p(l($)("annotationRefresh")), 9, Nm),
4929
+ }, p(l($)("annotationRefresh")), 9, Em),
4926
4930
  e("button", {
4927
4931
  type: "button",
4928
4932
  onClick: o[35] || (o[35] = //@ts-ignore
4929
4933
  (...a) => l(Qa) && l(Qa)(...a))
4930
4934
  }, p(l($)("annotationExport")), 1)
4931
- ])) : (v(), f("div", Tm, [
4935
+ ])) : (v(), f("div", Om, [
4932
4936
  e("button", {
4933
4937
  type: "button",
4934
4938
  disabled: l(ke) === "syncing",
4935
4939
  onClick: o[36] || (o[36] = (a) => l(rn)())
4936
- }, p(l($)("annotationRefresh")), 9, Rm),
4940
+ }, p(l($)("annotationRefresh")), 9, Bm),
4937
4941
  e("button", {
4938
4942
  type: "button",
4939
4943
  onClick: o[37] || (o[37] = //@ts-ignore
@@ -4950,19 +4954,19 @@ const Cf = {
4950
4954
  }, [
4951
4955
  e("span", null, p(l(Se) ? l(Je) : l($)("annotationRemoteDisabled")), 1)
4952
4956
  ], 2),
4953
- e("label", Em, [
4957
+ e("label", Mm, [
4954
4958
  e("span", null, p(l($)("annotationAuthorName")), 1),
4955
4959
  A(e("input", {
4956
4960
  "onUpdate:modelValue": o[38] || (o[38] = (a) => yn(ue) ? ue.value = a : null),
4957
4961
  type: "text",
4958
4962
  placeholder: l($)("annotationAuthorPlaceholder")
4959
- }, null, 8, Om), [
4963
+ }, null, 8, Um), [
4960
4964
  [z, l(ue)]
4961
4965
  ])
4962
4966
  ]),
4963
- e("label", Bm, [
4967
+ e("label", jm, [
4964
4968
  e("span", null, p(l($)("annotationPollingInterval")), 1),
4965
- e("div", Mm, [
4969
+ e("div", Vm, [
4966
4970
  A(e("input", {
4967
4971
  "onUpdate:modelValue": o[39] || (o[39] = (a) => yn(Ne) ? Ne.value = a : null),
4968
4972
  min: "10",
@@ -4983,13 +4987,13 @@ const Cf = {
4983
4987
  disabled: Number(l(Ne)) === l(Ce),
4984
4988
  onClick: o[40] || (o[40] = //@ts-ignore
4985
4989
  (...a) => l(qa) && l(qa)(...a))
4986
- }, p(l($)("annotationPollingSave")), 9, Um)
4990
+ }, p(l($)("annotationPollingSave")), 9, Lm)
4987
4991
  ])
4988
4992
  ]),
4989
- e("p", jm, p(l(Ue)), 1),
4990
- l(q) === "annotations" ? (v(), f("div", Vm, [
4991
- l(T).length ? w("", !0) : (v(), f("p", Lm, p(l($)("annotationEmpty")), 1)),
4992
- (v(!0), f(I, null, N(l(T), (a, y) => (v(), f("section", {
4993
+ e("p", Fm, p(l(Ue)), 1),
4994
+ l(q) === "annotations" ? (v(), f("div", Km, [
4995
+ l(T).length ? w("", !0) : (v(), f("p", zm, p(l($)("annotationEmpty")), 1)),
4996
+ (v(!0), f(_, null, N(l(T), (a, y) => (v(), f("section", {
4993
4997
  key: a.id,
4994
4998
  onMouseenter: (j) => sr(a),
4995
4999
  onMouseleave: o[41] || (o[41] = //@ts-ignore
@@ -5000,38 +5004,38 @@ const Cf = {
5000
5004
  e("h3", null, p(a.featureName), 1),
5001
5005
  e("p", null, p(a.featureDescription), 1),
5002
5006
  e("small", null, p(a.specialNote), 1),
5003
- a.authorName || a.updatedAt ? (v(), f("small", Km, [
5004
- G(p(a.authorName || "未署名"), 1),
5005
- ia(a.updatedAt) ? (v(), f(I, { key: 0 }, [
5006
- G(" · " + p(ia(a.updatedAt)), 1)
5007
+ a.authorName || a.updatedAt ? (v(), f("small", Hm, [
5008
+ H(p(a.authorName || "未署名"), 1),
5009
+ ia(a.updatedAt) ? (v(), f(_, { key: 0 }, [
5010
+ H(" · " + p(ia(a.updatedAt)), 1)
5007
5011
  ], 64)) : w("", !0)
5008
5012
  ])) : w("", !0)
5009
5013
  ]),
5010
- e("div", zm, [
5014
+ e("div", Wm, [
5011
5015
  e("button", {
5012
5016
  class: "annotation-list-edit",
5013
5017
  type: "button",
5014
- onClick: (j) => l(_n)(a.id)
5015
- }, p(l($)("editProfile")), 9, Gm),
5018
+ onClick: (j) => l(In)(a.id)
5019
+ }, p(l($)("editProfile")), 9, Ym),
5016
5020
  e("button", {
5017
5021
  class: "annotation-list-delete annotation-delete-btn",
5018
5022
  type: "button",
5019
5023
  disabled: !l(ue).trim(),
5020
5024
  title: l(ue).trim() ? "" : "请先输入昵称以删除注释",
5021
5025
  onClick: (j) => l(be)(a.id)
5022
- }, p(l($)("annotationDelete")), 9, Hm)
5026
+ }, p(l($)("annotationDelete")), 9, Jm)
5023
5027
  ])
5024
- ], 40, Fm))), 128))
5025
- ])) : (v(), f("div", Wm, [
5026
- l(R) ? (v(), f(I, { key: 1 }, [
5027
- wo.value ? (v(), f("small", Jm, p(wo.value), 1)) : w("", !0),
5028
- (v(!0), f(I, null, N(Qt.value, (a) => (v(), f("section", {
5028
+ ], 40, Gm))), 128))
5029
+ ])) : (v(), f("div", Xm, [
5030
+ l(R) ? (v(), f(_, { key: 1 }, [
5031
+ wo.value ? (v(), f("small", qm, p(wo.value), 1)) : w("", !0),
5032
+ (v(!0), f(_, null, N(Qt.value, (a) => (v(), f("section", {
5029
5033
  key: a.id
5030
5034
  }, [
5031
5035
  e("h3", null, p(a.label), 1),
5032
5036
  e("p", null, p(a.value), 1)
5033
5037
  ]))), 128))
5034
- ], 64)) : (v(), f("p", Ym, p(l($)("pageDescriptionEmpty")), 1))
5038
+ ], 64)) : (v(), f("p", Zm, p(l($)("pageDescriptionEmpty")), 1))
5035
5039
  ]))
5036
5040
  ], 64))
5037
5041
  ], 2)) : w("", !0),
@@ -5046,14 +5050,14 @@ const Cf = {
5046
5050
  type: "button",
5047
5051
  onClick: o[42] || (o[42] = (a) => St.value = !St.value)
5048
5052
  }, p(St.value ? "展开数据源" : "收起数据源"), 1),
5049
- St.value ? w("", !0) : (v(), f(I, { key: 0 }, [
5050
- e("div", Xm, [
5051
- e("span", Zm, p(l(ft) === "warning" || l(ft) === "conflict" ? "⚠" : "●"), 1),
5053
+ St.value ? w("", !0) : (v(), f(_, { key: 0 }, [
5054
+ e("div", Qm, [
5055
+ e("span", eg, p(l(ft) === "warning" || l(ft) === "conflict" ? "⚠" : "●"), 1),
5052
5056
  e("strong", null, p(Ti.value), 1),
5053
5057
  e("small", null, [
5054
- G("· " + p(Di.value), 1),
5055
- sl.value ? (v(), f(I, { key: 0 }, [
5056
- G(" · " + p(sl.value), 1)
5058
+ H("· " + p(Di.value), 1),
5059
+ sl.value ? (v(), f(_, { key: 0 }, [
5060
+ H(" · " + p(sl.value), 1)
5057
5061
  ], 64)) : w("", !0)
5058
5062
  ])
5059
5063
  ]),
@@ -5065,7 +5069,7 @@ const Cf = {
5065
5069
  disabled: l(je) === "running",
5066
5070
  onClick: o[43] || (o[43] = //@ts-ignore
5067
5071
  (...a) => l(Za) && l(Za)(...a))
5068
- }, p(l(je) === "running" ? `${l(E).current}/${l(E).total}` : Ni.value ? "检查远端资料" : "初始化到 Gitee"), 9, qm)) : w("", !0),
5072
+ }, p(l(je) === "running" ? `${l(E).current}/${l(E).total}` : Ni.value ? "检查远端资料" : "初始化到 Gitee"), 9, tg)) : w("", !0),
5069
5073
  e("button", {
5070
5074
  class: "environment-check-trigger",
5071
5075
  type: "button",
@@ -5078,16 +5082,16 @@ const Cf = {
5078
5082
  class: "environment-check-backdrop",
5079
5083
  onClick: o[46] || (o[46] = re((a) => Zt.value = !1, ["self"]))
5080
5084
  }, [
5081
- e("section", Qm, [
5085
+ e("section", ng, [
5082
5086
  e("header", null, [
5083
5087
  e("div", null, [
5084
5088
  o[108] || (o[108] = e("h2", { id: "environment-check-title" }, "环境变量检查", -1)),
5085
5089
  e("p", {
5086
5090
  class: P({ "has-missing": qo.value > 0 })
5087
5091
  }, [
5088
- G(p(ul.value) + " / " + p(rl.value) + " 已配置 ", 1),
5089
- qo.value ? (v(), f(I, { key: 0 }, [
5090
- G(" · 缺失 " + p(qo.value) + " 项", 1)
5092
+ H(p(ul.value) + " / " + p(rl.value) + " 已配置 ", 1),
5093
+ qo.value ? (v(), f(_, { key: 0 }, [
5094
+ H(" · 缺失 " + p(qo.value) + " 项", 1)
5091
5095
  ], 64)) : w("", !0)
5092
5096
  ], 2)
5093
5097
  ]),
@@ -5097,16 +5101,16 @@ const Cf = {
5097
5101
  onClick: o[45] || (o[45] = (a) => Zt.value = !1)
5098
5102
  }, "×")
5099
5103
  ]),
5100
- e("div", eg, [
5101
- (v(!0), f(I, null, N(Zo.value, (a) => (v(), f("section", {
5104
+ e("div", og, [
5105
+ (v(!0), f(_, null, N(Zo.value, (a) => (v(), f("section", {
5102
5106
  key: a.id
5103
5107
  }, [
5104
5108
  e("h3", null, p(a.title), 1),
5105
- (v(!0), f(I, null, N(a.items, (y) => (v(), f("div", {
5109
+ (v(!0), f(_, null, N(a.items, (y) => (v(), f("div", {
5106
5110
  key: y.name,
5107
5111
  class: P(["environment-check-row", { missing: !y.configured }])
5108
5112
  }, [
5109
- e("span", tg, p(y.configured ? "✓" : "✕"), 1),
5113
+ e("span", ag, p(y.configured ? "✓" : "✕"), 1),
5110
5114
  e("code", null, p(y.name), 1),
5111
5115
  e("b", null, p(y.configured ? "已配置" : "请配置"), 1)
5112
5116
  ], 2))), 128))
@@ -5126,19 +5130,19 @@ const Cf = {
5126
5130
  onClick: o[47] || (o[47] = (a) => kt.value = !kt.value)
5127
5131
  }, [
5128
5132
  X(l(Qr), { class: "h-4 w-4" }),
5129
- G(" " + p(kt.value ? "快捷键" : "收起快捷键"), 1)
5133
+ H(" " + p(kt.value ? "快捷键" : "收起快捷键"), 1)
5130
5134
  ]),
5131
- kt.value ? w("", !0) : (v(), f(I, { key: 0 }, [
5135
+ kt.value ? w("", !0) : (v(), f(_, { key: 0 }, [
5132
5136
  o[110] || (o[110] = e("div", { class: "shortcut-panel-head" }, [
5133
5137
  e("strong", null, "当前面板快捷键"),
5134
5138
  e("span", null, "输入内容时自动停用")
5135
5139
  ], -1)),
5136
- (v(), f(I, null, N(Rl, (a) => e("section", {
5140
+ (v(), f(_, null, N(Rl, (a) => e("section", {
5137
5141
  key: a.title,
5138
5142
  class: "shortcut-group"
5139
5143
  }, [
5140
5144
  e("h3", null, p(a.title), 1),
5141
- (v(!0), f(I, null, N(a.items, (y) => (v(), f("div", {
5145
+ (v(!0), f(_, null, N(a.items, (y) => (v(), f("div", {
5142
5146
  key: y.key,
5143
5147
  class: "shortcut-row"
5144
5148
  }, [
@@ -5150,7 +5154,7 @@ const Cf = {
5150
5154
  ], 2)) : w("", !0),
5151
5155
  X(os, { name: "shortcut-toast" }, {
5152
5156
  default: as(() => [
5153
- de.value === "prototype" && ta.value && !Q.value && !Be.value ? (v(), f("div", ng, " 按快捷键 P 可以进入/退出演示模式 ")) : w("", !0)
5157
+ de.value === "prototype" && ta.value && !Q.value && !Be.value ? (v(), f("div", lg, " 按快捷键 P 可以进入/退出演示模式 ")) : w("", !0)
5154
5158
  ]),
5155
5159
  _: 1
5156
5160
  }),
@@ -5159,14 +5163,14 @@ const Cf = {
5159
5163
  class: "page-description-dialog-backdrop",
5160
5164
  onClick: re(aa, ["self"])
5161
5165
  }, [
5162
- e("section", og, [
5163
- e("div", ag, [
5166
+ e("section", sg, [
5167
+ e("div", ig, [
5164
5168
  e("div", null, [
5165
5169
  e("p", null, p(l(R) ? "编辑页面描述" : "新增页面描述"), 1),
5166
5170
  e("span", null, [
5167
- G(p(l(mt).code) + " · " + p(l(mt).title), 1),
5168
- fn.value ? (v(), f(I, { key: 0 }, [
5169
- G(" · " + p(fn.value), 1)
5171
+ H(p(l(mt).code) + " · " + p(l(mt).title), 1),
5172
+ fn.value ? (v(), f(_, { key: 0 }, [
5173
+ H(" · " + p(fn.value), 1)
5170
5174
  ], 64)) : w("", !0)
5171
5175
  ])
5172
5176
  ]),
@@ -5180,8 +5184,8 @@ const Cf = {
5180
5184
  class: "page-description-form",
5181
5185
  onSubmit: re(Gi, ["prevent"])
5182
5186
  }, [
5183
- l(R) ? wo.value ? (v(), f("small", sg, p(wo.value), 1)) : w("", !0) : (v(), f("p", lg, p(l($)("pageDescriptionEmpty")), 1)),
5184
- e("label", ig, [
5187
+ l(R) ? wo.value ? (v(), f("small", ug, p(wo.value), 1)) : w("", !0) : (v(), f("p", rg, p(l($)("pageDescriptionEmpty")), 1)),
5188
+ e("label", cg, [
5185
5189
  A(e("input", {
5186
5190
  "onUpdate:modelValue": o[48] || (o[48] = (a) => l(U).highlighted = a),
5187
5191
  type: "checkbox"
@@ -5195,7 +5199,7 @@ const Cf = {
5195
5199
  A(e("textarea", {
5196
5200
  "onUpdate:modelValue": o[49] || (o[49] = (a) => l(U).purpose = a),
5197
5201
  placeholder: l($)("pageDescriptionPurposePlaceholder")
5198
- }, null, 8, rg), [
5202
+ }, null, 8, dg), [
5199
5203
  [z, l(U).purpose]
5200
5204
  ])
5201
5205
  ]),
@@ -5204,7 +5208,7 @@ const Cf = {
5204
5208
  A(e("textarea", {
5205
5209
  "onUpdate:modelValue": o[50] || (o[50] = (a) => l(U).structure = a),
5206
5210
  placeholder: l($)("pageDescriptionStructurePlaceholder")
5207
- }, null, 8, ug), [
5211
+ }, null, 8, pg), [
5208
5212
  [z, l(U).structure]
5209
5213
  ])
5210
5214
  ]),
@@ -5213,7 +5217,7 @@ const Cf = {
5213
5217
  A(e("textarea", {
5214
5218
  "onUpdate:modelValue": o[51] || (o[51] = (a) => l(U).features = a),
5215
5219
  placeholder: l($)("pageDescriptionFeaturesPlaceholder")
5216
- }, null, 8, cg), [
5220
+ }, null, 8, vg), [
5217
5221
  [z, l(U).features]
5218
5222
  ])
5219
5223
  ]),
@@ -5222,7 +5226,7 @@ const Cf = {
5222
5226
  A(e("textarea", {
5223
5227
  "onUpdate:modelValue": o[52] || (o[52] = (a) => l(U).flowPosition = a),
5224
5228
  placeholder: l($)("pageDescriptionFlowPlaceholder")
5225
- }, null, 8, dg), [
5229
+ }, null, 8, fg), [
5226
5230
  [z, l(U).flowPosition]
5227
5231
  ])
5228
5232
  ]),
@@ -5267,11 +5271,11 @@ const Cf = {
5267
5271
  A(e("textarea", {
5268
5272
  "onUpdate:modelValue": o[57] || (o[57] = (a) => l(U).developmentNotes = a),
5269
5273
  placeholder: l($)("pageDescriptionDevelopmentPlaceholder")
5270
- }, null, 8, pg), [
5274
+ }, null, 8, mg), [
5271
5275
  [z, l(U).developmentNotes]
5272
5276
  ])
5273
5277
  ]),
5274
- e("div", vg, [
5278
+ e("div", gg, [
5275
5279
  e("button", {
5276
5280
  type: "button",
5277
5281
  onClick: aa
@@ -5279,7 +5283,7 @@ const Cf = {
5279
5283
  e("button", {
5280
5284
  type: "submit",
5281
5285
  disabled: l(ke) === "syncing"
5282
- }, p(l($)("pageDescriptionSave")), 9, fg)
5286
+ }, p(l($)("pageDescriptionSave")), 9, bg)
5283
5287
  ])
5284
5288
  ], 32)
5285
5289
  ])
@@ -5293,7 +5297,7 @@ const Cf = {
5293
5297
  onMouseleave: o[60] || (o[60] = //@ts-ignore
5294
5298
  (...a) => l(c) && l(c)(...a))
5295
5299
  }, [
5296
- e("div", mg, [
5300
+ e("div", yg, [
5297
5301
  e("b", null, p(l(le).featureName), 1),
5298
5302
  e("button", {
5299
5303
  class: "annotation-delete-btn",
@@ -5301,12 +5305,12 @@ const Cf = {
5301
5305
  disabled: !l(ue).trim(),
5302
5306
  title: l(ue).trim() ? "" : "请先输入昵称以删除注释",
5303
5307
  onClick: o[58] || (o[58] = (a) => l(be)(l(le).id))
5304
- }, p(l($)("annotationDelete")), 9, gg)
5308
+ }, p(l($)("annotationDelete")), 9, hg)
5305
5309
  ]),
5306
5310
  e("p", null, p(l(le).featureDescription), 1),
5307
5311
  e("small", null, p(l(le).specialNote), 1)
5308
5312
  ], 36)) : w("", !0),
5309
- de.value === "prototype" && l(ee) && !Q.value ? (v(), f("div", bg, [
5313
+ de.value === "prototype" && l(ee) && !Q.value ? (v(), f("div", wg, [
5310
5314
  e("form", {
5311
5315
  class: "annotation-form",
5312
5316
  onSubmit: o[66] || (o[66] = re(
@@ -5322,7 +5326,7 @@ const Cf = {
5322
5326
  "onUpdate:modelValue": o[61] || (o[61] = (a) => l(ee).featureName = a),
5323
5327
  type: "text",
5324
5328
  placeholder: l($)("annotationNamePlaceholder")
5325
- }, null, 8, yg), [
5329
+ }, null, 8, xg), [
5326
5330
  [z, l(ee).featureName]
5327
5331
  ])
5328
5332
  ]),
@@ -5331,7 +5335,7 @@ const Cf = {
5331
5335
  A(e("textarea", {
5332
5336
  "onUpdate:modelValue": o[62] || (o[62] = (a) => l(ee).featureDescription = a),
5333
5337
  placeholder: l($)("annotationDescPlaceholder")
5334
- }, null, 8, hg), [
5338
+ }, null, 8, Sg), [
5335
5339
  [z, l(ee).featureDescription]
5336
5340
  ])
5337
5341
  ]),
@@ -5340,7 +5344,7 @@ const Cf = {
5340
5344
  A(e("textarea", {
5341
5345
  "onUpdate:modelValue": o[63] || (o[63] = (a) => l(ee).specialNote = a),
5342
5346
  placeholder: l($)("annotationNotePlaceholder")
5343
- }, null, 8, wg), [
5347
+ }, null, 8, kg), [
5344
5348
  [z, l(ee).specialNote]
5345
5349
  ])
5346
5350
  ]),
@@ -5350,11 +5354,11 @@ const Cf = {
5350
5354
  "onUpdate:modelValue": o[64] || (o[64] = (a) => yn(ue) ? ue.value = a : null),
5351
5355
  type: "text",
5352
5356
  placeholder: l($)("annotationAuthorPlaceholder")
5353
- }, null, 8, xg), [
5357
+ }, null, 8, Cg), [
5354
5358
  [z, l(ue)]
5355
5359
  ])
5356
5360
  ]),
5357
- e("div", Sg, [
5361
+ e("div", $g, [
5358
5362
  e("button", {
5359
5363
  type: "button",
5360
5364
  onClick: o[65] || (o[65] = //@ts-ignore
@@ -5363,11 +5367,11 @@ const Cf = {
5363
5367
  e("button", {
5364
5368
  type: "submit",
5365
5369
  disabled: !l(ee).featureName.trim() || !l(ee).featureDescription.trim() || !l(ee).specialNote.trim() || !l(ue).trim()
5366
- }, p(l($)("annotationSave")), 9, kg)
5370
+ }, p(l($)("annotationSave")), 9, _g)
5367
5371
  ])
5368
5372
  ], 32)
5369
5373
  ])) : w("", !0),
5370
- de.value === "prototype" && l(Ee) && !Q.value ? (v(), f("div", Cg, [
5374
+ de.value === "prototype" && l(Ee) && !Q.value ? (v(), f("div", Ig, [
5371
5375
  e("form", {
5372
5376
  class: "annotation-form",
5373
5377
  onSubmit: o[72] || (o[72] = re(
@@ -5383,7 +5387,7 @@ const Cf = {
5383
5387
  "onUpdate:modelValue": o[67] || (o[67] = (a) => l(ne).featureName = a),
5384
5388
  type: "text",
5385
5389
  readonly: l(ae) === "view"
5386
- }, null, 8, $g), [
5390
+ }, null, 8, Pg), [
5387
5391
  [z, l(ne).featureName]
5388
5392
  ])
5389
5393
  ]),
@@ -5392,7 +5396,7 @@ const Cf = {
5392
5396
  A(e("textarea", {
5393
5397
  "onUpdate:modelValue": o[68] || (o[68] = (a) => l(ne).featureDescription = a),
5394
5398
  readonly: l(ae) === "view"
5395
- }, null, 8, Ig), [
5399
+ }, null, 8, Dg), [
5396
5400
  [z, l(ne).featureDescription]
5397
5401
  ])
5398
5402
  ]),
@@ -5401,17 +5405,17 @@ const Cf = {
5401
5405
  A(e("textarea", {
5402
5406
  "onUpdate:modelValue": o[69] || (o[69] = (a) => l(ne).specialNote = a),
5403
5407
  readonly: l(ae) === "view"
5404
- }, null, 8, _g), [
5408
+ }, null, 8, Ag), [
5405
5409
  [z, l(ne).specialNote]
5406
5410
  ])
5407
5411
  ]),
5408
- l(ae) === "edit" ? (v(), f("label", Pg, [
5412
+ l(ae) === "edit" ? (v(), f("label", Ng, [
5409
5413
  e("span", null, p(l($)("annotationAuthorName")), 1),
5410
5414
  A(e("input", {
5411
5415
  "onUpdate:modelValue": o[70] || (o[70] = (a) => yn(ue) ? ue.value = a : null),
5412
5416
  type: "text",
5413
5417
  placeholder: l($)("annotationAuthorPlaceholder")
5414
- }, null, 8, Dg), [
5418
+ }, null, 8, Tg), [
5415
5419
  [z, l(ue)]
5416
5420
  ])
5417
5421
  ])) : w("", !0),
@@ -5427,7 +5431,7 @@ const Cf = {
5427
5431
  key: 0,
5428
5432
  type: "submit",
5429
5433
  disabled: !l(ne).featureName.trim() || !l(ne).featureDescription.trim() || !l(ne).specialNote.trim() || !l(ue).trim()
5430
- }, p(l($)("annotationSave")), 9, Ag)) : w("", !0)
5434
+ }, p(l($)("annotationSave")), 9, Rg)) : w("", !0)
5431
5435
  ], 2)
5432
5436
  ], 32)
5433
5437
  ])) : w("", !0),
@@ -5436,14 +5440,14 @@ const Cf = {
5436
5440
  class: "page-description-summary-backdrop",
5437
5441
  onClick: o[74] || (o[74] = re((a) => qe.value = !1, ["self"]))
5438
5442
  }, [
5439
- e("section", Ng, [
5440
- e("div", Tg, [
5443
+ e("section", Eg, [
5444
+ e("div", Og, [
5441
5445
  e("div", null, [
5442
5446
  o[117] || (o[117] = e("p", null, "页面描述", -1)),
5443
5447
  e("span", null, [
5444
- G(p(l(mt).code) + " · " + p(l(mt).title), 1),
5445
- fn.value ? (v(), f(I, { key: 0 }, [
5446
- G(" · " + p(fn.value), 1)
5448
+ H(p(l(mt).code) + " · " + p(l(mt).title), 1),
5449
+ fn.value ? (v(), f(_, { key: 0 }, [
5450
+ H(" · " + p(fn.value), 1)
5447
5451
  ], 64)) : w("", !0)
5448
5452
  ])
5449
5453
  ]),
@@ -5453,7 +5457,7 @@ const Cf = {
5453
5457
  onClick: o[73] || (o[73] = (a) => qe.value = !1)
5454
5458
  }, "×")
5455
5459
  ]),
5456
- e("div", Rg, [
5460
+ e("div", Bg, [
5457
5461
  o[118] || (o[118] = e("div", { class: "page-description-summary-options-head" }, [
5458
5462
  e("p", null, "展示内容")
5459
5463
  ], -1)),
@@ -5468,33 +5472,33 @@ const Cf = {
5468
5472
  }, "反选")
5469
5473
  ]),
5470
5474
  e("div", null, [
5471
- (v(!0), f(I, null, N(Qt.value, (a) => (v(), f("label", {
5475
+ (v(!0), f(_, null, N(Qt.value, (a) => (v(), f("label", {
5472
5476
  key: a.id
5473
5477
  }, [
5474
5478
  e("input", {
5475
5479
  type: "checkbox",
5476
5480
  checked: ze.value.includes(a.id),
5477
5481
  onChange: (y) => dr(a.id)
5478
- }, null, 40, Eg),
5482
+ }, null, 40, Mg),
5479
5483
  e("span", null, p(a.label), 1)
5480
5484
  ]))), 128))
5481
5485
  ])
5482
5486
  ]),
5483
- e("div", Og, [
5484
- xo.value.length ? (v(!0), f(I, { key: 1 }, N(xo.value, (a) => (v(), f("p", {
5487
+ e("div", Ug, [
5488
+ xo.value.length ? (v(!0), f(_, { key: 1 }, N(xo.value, (a) => (v(), f("p", {
5485
5489
  key: a.id
5486
5490
  }, [
5487
5491
  e("b", null, p(a.label) + ":", 1),
5488
- G(p(a.value), 1)
5489
- ]))), 128)) : (v(), f("p", Bg, "请选择要展示的描述部分。"))
5492
+ H(p(a.value), 1)
5493
+ ]))), 128)) : (v(), f("p", jg, "请选择要展示的描述部分。"))
5490
5494
  ]),
5491
- e("div", Mg, [
5495
+ e("div", Vg, [
5492
5496
  e("small", null, p(Tt.value), 1),
5493
5497
  e("button", {
5494
5498
  type: "button",
5495
5499
  disabled: !xo.value.length,
5496
5500
  onClick: ur
5497
- }, "复制选中内容", 8, Ug)
5501
+ }, "复制选中内容", 8, Lg)
5498
5502
  ])
5499
5503
  ])
5500
5504
  ])) : w("", !0),
@@ -5503,8 +5507,8 @@ const Cf = {
5503
5507
  class: "prototype-health-backdrop",
5504
5508
  onClick: o[78] || (o[78] = re((a) => Nt.value = !1, ["self"]))
5505
5509
  }, [
5506
- e("section", jg, [
5507
- e("div", Vg, [
5510
+ e("section", Fg, [
5511
+ e("div", Kg, [
5508
5512
  o[119] || (o[119] = e("div", null, [
5509
5513
  e("p", null, "原型健康检查"),
5510
5514
  e("span", null, "页面描述覆盖率优先读取云端 manifest;云端文件全量检查请运行 pnpm validate:remote")
@@ -5515,7 +5519,7 @@ const Cf = {
5515
5519
  onClick: o[75] || (o[75] = (a) => Nt.value = !1)
5516
5520
  }, "×")
5517
5521
  ]),
5518
- e("div", Lg, [
5522
+ e("div", zg, [
5519
5523
  e("button", {
5520
5524
  type: "button",
5521
5525
  class: P({ active: An.value === "overview" }),
@@ -5527,9 +5531,9 @@ const Cf = {
5527
5531
  onClick: o[77] || (o[77] = (a) => An.value = "matrix")
5528
5532
  }, "页面/状态矩阵", 2)
5529
5533
  ]),
5530
- An.value === "overview" ? (v(), f(I, { key: 0 }, [
5531
- e("div", Fg, [
5532
- (v(!0), f(I, null, N(rr.value, (a) => (v(), f("section", {
5534
+ An.value === "overview" ? (v(), f(_, { key: 0 }, [
5535
+ e("div", Gg, [
5536
+ (v(!0), f(_, null, N(rr.value, (a) => (v(), f("section", {
5533
5537
  key: a.label
5534
5538
  }, [
5535
5539
  e("span", null, p(a.label), 1),
@@ -5537,13 +5541,13 @@ const Cf = {
5537
5541
  e("small", null, p(a.detail), 1)
5538
5542
  ]))), 128))
5539
5543
  ]),
5540
- e("div", Kg, [
5541
- e("div", zg, [
5544
+ e("div", Hg, [
5545
+ e("div", Wg, [
5542
5546
  o[120] || (o[120] = e("p", null, "问题清单", -1)),
5543
5547
  e("span", null, p(Cl.value.filter((a) => a.tone !== "success").length) + " 个待关注项", 1)
5544
5548
  ]),
5545
- e("div", Gg, [
5546
- (v(!0), f(I, null, N(Cl.value, (a) => (v(), f("section", {
5549
+ e("div", Yg, [
5550
+ (v(!0), f(_, null, N(Cl.value, (a) => (v(), f("section", {
5547
5551
  key: a.title,
5548
5552
  class: P(`is-${a.tone}`)
5549
5553
  }, [
@@ -5552,13 +5556,13 @@ const Cf = {
5552
5556
  ], 2))), 128))
5553
5557
  ])
5554
5558
  ])
5555
- ], 64)) : (v(), f("div", Hg, [
5559
+ ], 64)) : (v(), f("div", Jg, [
5556
5560
  o[122] || (o[122] = e("div", { class: "prototype-health-section-head" }, [
5557
5561
  e("p", null, "页面/状态矩阵"),
5558
5562
  e("span", null, "按页面聚合状态、流程覆盖、描述覆盖和注释数量")
5559
5563
  ], -1)),
5560
- e("div", Wg, [
5561
- e("table", Yg, [
5564
+ e("div", Xg, [
5565
+ e("table", Zg, [
5562
5566
  o[121] || (o[121] = e("thead", null, [
5563
5567
  e("tr", null, [
5564
5568
  e("th", null, "编号"),
@@ -5571,7 +5575,7 @@ const Cf = {
5571
5575
  ])
5572
5576
  ], -1)),
5573
5577
  e("tbody", null, [
5574
- (v(!0), f(I, null, N(mn.value, (a) => (v(), f("tr", {
5578
+ (v(!0), f(_, null, N(mn.value, (a) => (v(), f("tr", {
5575
5579
  key: a.id,
5576
5580
  class: P({ "has-gap": a.describedCount < a.stateCount || !a.inFlow })
5577
5581
  }, [
@@ -5597,19 +5601,19 @@ const Cf = {
5597
5601
  class: "fixed inset-0 z-[130] flex items-center justify-center bg-black/35 px-4",
5598
5602
  onClick: o[80] || (o[80] = re((a) => Et.value = !1, ["self"]))
5599
5603
  }, [
5600
- e("section", Jg, [
5601
- e("div", Xg, [
5604
+ e("section", qg, [
5605
+ e("div", Qg, [
5602
5606
  e("div", null, [
5603
5607
  o[123] || (o[123] = e("h2", { class: "text-lg font-semibold text-ink" }, "更新历史", -1)),
5604
- e("p", Zg, "最近一次更新时间:" + p(Ui.value), 1)
5608
+ e("p", e1, "最近一次更新时间:" + p(Ui.value), 1)
5605
5609
  ]),
5606
5610
  e("button", {
5607
5611
  class: "flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-soft text-base font-semibold text-ink",
5608
5612
  onClick: o[79] || (o[79] = (a) => Et.value = !1)
5609
5613
  }, " × ")
5610
5614
  ]),
5611
- e("div", qg, [
5612
- (v(!0), f(I, null, N(l(mo), (a) => (v(), f("section", {
5615
+ e("div", t1, [
5616
+ (v(!0), f(_, null, N(l(mo), (a) => (v(), f("section", {
5613
5617
  key: a.hash,
5614
5618
  class: "overflow-hidden rounded-[16px] bg-soft transition"
5615
5619
  }, [
@@ -5618,36 +5622,36 @@ const Cf = {
5618
5622
  class: "w-full p-3 text-left",
5619
5623
  onClick: (y) => Sr(a.hash)
5620
5624
  }, [
5621
- e("div", e1, [
5622
- e("p", t1, p(a.date), 1),
5623
- e("div", n1, [
5624
- e("code", o1, p(a.hash), 1),
5625
+ e("div", o1, [
5626
+ e("p", a1, p(a.date), 1),
5627
+ e("div", l1, [
5628
+ e("code", s1, p(a.hash), 1),
5625
5629
  e("span", {
5626
5630
  class: P(["text-sm text-muted transition-transform duration-200", { "rotate-180": go.value === a.hash }])
5627
5631
  }, "⌄", 2)
5628
5632
  ])
5629
5633
  ]),
5630
- e("p", a1, p(a.message), 1)
5631
- ], 8, Qg),
5632
- go.value === a.hash ? (v(), f("div", l1, [
5633
- Dl(a).length ? (v(), f("div", s1, [
5634
- (v(!0), f(I, null, N(Dl(a), (y) => (v(), f("p", {
5634
+ e("p", i1, p(a.message), 1)
5635
+ ], 8, n1),
5636
+ go.value === a.hash ? (v(), f("div", r1, [
5637
+ Dl(a).length ? (v(), f("div", u1, [
5638
+ (v(!0), f(_, null, N(Dl(a), (y) => (v(), f("p", {
5635
5639
  key: `${a.hash}-${y}`,
5636
5640
  class: "rounded-[12px] bg-panel px-3 py-2 text-xs leading-5 text-muted"
5637
5641
  }, p(y), 1))), 128))
5638
- ])) : (v(), f("p", i1, "暂无更多修改细节"))
5642
+ ])) : (v(), f("p", c1, "暂无更多修改细节"))
5639
5643
  ])) : w("", !0)
5640
5644
  ]))), 128)),
5641
- l(mo).length ? w("", !0) : (v(), f("p", r1, "暂无提交记录"))
5645
+ l(mo).length ? w("", !0) : (v(), f("p", d1, "暂无提交记录"))
5642
5646
  ])
5643
5647
  ])
5644
5648
  ])) : w("", !0),
5645
5649
  de.value === "prototype" && ro.value && Q.value ? (v(), f("div", {
5646
5650
  key: 15,
5647
5651
  class: "mobile-page-picker-backdrop",
5648
- onClick: re(_o, ["self"])
5652
+ onClick: re(Io, ["self"])
5649
5653
  }, [
5650
- e("section", u1, [
5654
+ e("section", p1, [
5651
5655
  o[126] || (o[126] = e("div", { class: "mobile-page-picker-handle" }, null, -1)),
5652
5656
  e("header", { class: "mobile-page-picker-head" }, [
5653
5657
  o[124] || (o[124] = e("div", null, [
@@ -5656,7 +5660,7 @@ const Cf = {
5656
5660
  ], -1)),
5657
5661
  e("button", {
5658
5662
  type: "button",
5659
- onClick: _o
5663
+ onClick: Io
5660
5664
  }, "关闭")
5661
5665
  ]),
5662
5666
  A(e("input", {
@@ -5667,8 +5671,8 @@ const Cf = {
5667
5671
  }, null, 512), [
5668
5672
  [z, Nn.value]
5669
5673
  ]),
5670
- e("div", c1, [
5671
- (v(!0), f(I, null, N(Fi.value, (a) => (v(), f("section", {
5674
+ e("div", v1, [
5675
+ (v(!0), f(_, null, N(Fi.value, (a) => (v(), f("section", {
5672
5676
  key: a.screen.id,
5673
5677
  class: "mobile-page-picker-item"
5674
5678
  }, [
@@ -5677,23 +5681,23 @@ const Cf = {
5677
5681
  class: P(["mobile-page-picker-screen", { active: l(u) === a.screen.id }]),
5678
5682
  onClick: (y) => a.states.length ? Or(a.screen.id) : Br(a.screen.id)
5679
5683
  }, [
5680
- e("span", p1, p(a.screen.code), 1),
5681
- e("span", v1, [
5684
+ e("span", m1, p(a.screen.code), 1),
5685
+ e("span", g1, [
5682
5686
  e("b", null, p(a.screen.title), 1),
5683
5687
  e("small", null, p(a.screen.subtitle), 1)
5684
5688
  ]),
5685
- a.states.length ? (v(), f("span", f1, p(a.states.length), 1)) : w("", !0)
5686
- ], 10, d1),
5687
- a.states.length && (a.forceExpanded || uo.value.has(a.screen.id)) ? (v(), f("div", m1, [
5688
- (v(!0), f(I, null, N(a.states, (y) => (v(), f("button", {
5689
+ a.states.length ? (v(), f("span", b1, p(a.states.length), 1)) : w("", !0)
5690
+ ], 10, f1),
5691
+ a.states.length && (a.forceExpanded || uo.value.has(a.screen.id)) ? (v(), f("div", y1, [
5692
+ (v(!0), f(_, null, N(a.states, (y) => (v(), f("button", {
5689
5693
  key: y.id,
5690
5694
  type: "button",
5691
5695
  class: P({ active: l(u) === a.screen.id && l(Ze) === y.id }),
5692
5696
  onClick: (j) => Mr(a.screen.id, y.id)
5693
5697
  }, [
5694
5698
  o[125] || (o[125] = e("span", null, null, -1)),
5695
- G(" " + p(y.label), 1)
5696
- ], 10, g1))), 128))
5699
+ H(" " + p(y.label), 1)
5700
+ ], 10, h1))), 128))
5697
5701
  ])) : w("", !0)
5698
5702
  ]))), 128))
5699
5703
  ])
@@ -5705,7 +5709,7 @@ const Cf = {
5705
5709
  class: "presentation-exit-btn",
5706
5710
  onClick: na
5707
5711
  }, " 退出演示 (Esc) ")) : w("", !0),
5708
- de.value === "prototype" && l(W) && !Q.value ? (v(), st(xc, {
5712
+ de.value === "prototype" && l(W) && !Q.value ? (v(), st(kc, {
5709
5713
  key: 17,
5710
5714
  flows: l(Pt),
5711
5715
  screens: l(fe),
@@ -5714,17 +5718,17 @@ const Cf = {
5714
5718
  onClose: o[82] || (o[82] = (a) => W.value = !1),
5715
5719
  onSave: Hi,
5716
5720
  onPush: Wi,
5717
- onExport: l(Ii)
5721
+ onExport: l(_i)
5718
5722
  }, null, 8, ["flows", "screens", "state-options-by-screen", "can-push-remote", "onExport"])) : w("", !0)
5719
- ], 64)) : (v(), f("section", Cf, [
5723
+ ], 64)) : (v(), f("section", _f, [
5720
5724
  e("form", {
5721
5725
  class: "w-full max-w-sm rounded-[28px] border border-line bg-panel p-6 text-center shadow-soft",
5722
5726
  onSubmit: re(Mi, ["prevent"])
5723
5727
  }, [
5724
5728
  o[85] || (o[85] = e("h1", { class: "text-2xl font-semibold text-ink" }, "产品原型访问", -1)),
5725
5729
  o[86] || (o[86] = e("p", { class: "mt-2 text-sm leading-6 text-muted" }, "请输入访问账号和密码", -1)),
5726
- e("div", $f, [
5727
- e("label", If, [
5730
+ e("div", If, [
5731
+ e("label", Pf, [
5728
5732
  o[83] || (o[83] = e("span", { class: "text-xs font-semibold text-muted" }, "账号", -1)),
5729
5733
  A(e("input", {
5730
5734
  "onUpdate:modelValue": o[0] || (o[0] = (a) => so.value = a),
@@ -5735,7 +5739,7 @@ const Cf = {
5735
5739
  [z, so.value]
5736
5740
  ])
5737
5741
  ]),
5738
- e("label", _f, [
5742
+ e("label", Df, [
5739
5743
  o[84] || (o[84] = e("span", { class: "text-xs font-semibold text-muted" }, "密码", -1)),
5740
5744
  A(e("input", {
5741
5745
  "onUpdate:modelValue": o[1] || (o[1] = (a) => io.value = a),
@@ -5751,12 +5755,12 @@ const Cf = {
5751
5755
  class: "primary-btn mt-5 w-full justify-center",
5752
5756
  type: "submit"
5753
5757
  }, "进入原型", -1)),
5754
- Pn.value ? (v(), f("p", Pf, p(Pn.value), 1)) : w("", !0)
5758
+ Pn.value ? (v(), f("p", Af, p(Pn.value), 1)) : w("", !0)
5755
5759
  ], 32)
5756
5760
  ]))
5757
5761
  ], 6));
5758
5762
  }
5759
5763
  });
5760
5764
  export {
5761
- $1 as default
5765
+ P1 as default
5762
5766
  };