@marktowin/prototype-core 1.0.8 → 1.0.9

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 _, 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";
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 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 _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-Rlo9gWPV.js";
3
+ import { g as Yn, a as eu, s as tu } from "./index-CZG48yO-.js";
4
4
  const zn = /* @__PURE__ */ kn({
5
5
  __name: "ScreenRenderer",
6
6
  props: {
@@ -25,18 +25,18 @@ const zn = /* @__PURE__ */ kn({
25
25
  onClick: (u) => n.$emit("change", r.id)
26
26
  }, [
27
27
  (v(), st(Bo(r.icon), { class: "h-5 w-5" })),
28
- H(" " + p(r.label), 1)
28
+ G(" " + p(r.label), 1)
29
29
  ], 10, ou))), 128))
30
30
  ]));
31
31
  }
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 = {
32
+ }), lu = { class: "prototype-state-switcher" }, su = ["onClick"], iu = { class: "ml-auto flex items-center gap-2" }, ru = {
33
33
  key: 0,
34
34
  class: "prototype-state-annotation-count"
35
- }, cu = {
35
+ }, uu = {
36
36
  key: 1,
37
37
  class: "prototype-state-highlight-dot",
38
38
  "aria-hidden": "true"
39
- }, du = /* @__PURE__ */ kn({
39
+ }, cu = /* @__PURE__ */ kn({
40
40
  __name: "PrototypeStateSwitcher",
41
41
  props: {
42
42
  title: {},
@@ -59,56 +59,56 @@ const zn = /* @__PURE__ */ kn({
59
59
  onClick: (I) => s("change", m.id)
60
60
  }, [
61
61
  u[0] || (u[0] = e("span", null, null, -1)),
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)
62
+ G(" " + p(m.label) + " ", 1),
63
+ e("div", iu, [
64
+ (g = t.countForState) != null && g.call(t, m.id) ? (v(), f("b", ru, p(t.countForState(m.id)), 1)) : w("", !0),
65
+ (C = t.highlightedIds) != null && C.has(m.id) ? (v(), f("div", uu)) : w("", !0)
66
66
  ])
67
67
  ], 10, su);
68
68
  }), 128))
69
69
  ]));
70
70
  }
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 = {
71
+ }), du = { class: "fixed inset-0 z-[200] bg-canvas flex flex-col" }, pu = { class: "flex items-center justify-between px-6 py-3 border-b border-line bg-panel relative" }, vu = { class: "flex items-center gap-3" }, fu = { class: "text-xs text-muted" }, mu = { class: "flex items-center gap-2" }, gu = ["disabled"], bu = ["disabled", "title"], yu = { class: "grid grid-cols-[1fr_3fr_1fr] flex-1 overflow-hidden" }, hu = { class: "min-w-[200px] border-r border-line bg-panel flex flex-col overflow-hidden" }, wu = { class: "p-4 border-b border-line" }, xu = { class: "flex-1 overflow-y-auto p-3 space-y-2" }, Su = ["onClick"], ku = ["value", "onInput"], Cu = ["onClick"], $u = {
72
72
  key: 0,
73
73
  class: "border-t border-line"
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 = {
74
+ }, _u = ["onClick"], Iu = ["onClick"], Pu = ["onClick"], Du = { class: "flex-1 flex flex-col bg-canvas min-w-0" }, Au = { class: "flex items-center justify-between px-6 py-3 border-b border-line bg-panel" }, Nu = { class: "flex items-center gap-3" }, Tu = ["value"], Ru = { class: "flex items-center gap-4" }, Eu = { class: "flex items-center gap-2" }, Ou = { class: "text-xs text-muted w-8 text-right" }, Bu = { class: "flex flex-wrap gap-4 content-start min-h-full" }, Mu = ["onDragstart", "onDragover", "onDrop"], Uu = {
75
75
  key: 0,
76
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",
77
77
  style: { "box-shadow": "0 0 10px rgb(var(--color-ocean)), 0 0 4px rgb(var(--color-ocean))" }
78
- }, Vu = {
78
+ }, ju = {
79
79
  key: 1,
80
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",
81
81
  style: { "box-shadow": "0 0 10px rgb(var(--color-ocean)), 0 0 4px rgb(var(--color-ocean))" }
82
- }, Lu = { class: "relative cursor-grab active:cursor-grabbing" }, Fu = {
82
+ }, Vu = { class: "relative cursor-grab active:cursor-grabbing" }, Lu = {
83
83
  key: 0,
84
84
  class: "desktop-frame-thumb"
85
- }, Ku = { class: "desktop-screen-content-thumb" }, zu = {
85
+ }, Fu = { class: "desktop-screen-content-thumb" }, Ku = {
86
86
  key: 1,
87
87
  class: "phone-screen",
88
88
  style: { width: "393px", height: "852px" }
89
- }, Gu = {
89
+ }, zu = {
90
90
  class: "screen-content",
91
91
  style: { height: "100%", overflow: "hidden", "padding-bottom": "20px" }
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 = {
92
+ }, Gu = ["onClick"], Hu = { class: "flex items-center justify-center gap-1 max-w-full" }, Wu = { class: "text-center text-[11px] text-ink leading-tight truncate" }, Yu = { class: "text-center text-[10px] text-muted" }, Ju = {
93
93
  key: 1,
94
94
  class: "flex flex-col items-center justify-center w-full h-48 text-muted relative"
95
- }, Zu = {
95
+ }, Xu = {
96
96
  key: 0,
97
97
  class: "absolute inset-x-6 top-0 h-[3px] rounded-full bg-ocean pointer-events-none z-20",
98
98
  style: { "box-shadow": "0 0 10px rgb(var(--color-ocean)), 0 0 4px rgb(var(--color-ocean))" }
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 = {
99
+ }, Zu = { 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" }, Qu = { class: "flex-1 overflow-y-auto p-3 space-y-4" }, ec = { key: 0 }, tc = { class: "grid grid-cols-2 gap-3" }, nc = ["onDragstart"], oc = {
100
100
  class: "phone-screen",
101
101
  style: { width: "393px", height: "852px" }
102
- }, lc = {
102
+ }, ac = {
103
103
  class: "screen-content",
104
104
  style: { height: "100%", overflow: "hidden", "padding-bottom": "20px" }
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 = {
105
+ }, lc = { class: "flex items-center gap-1 px-0.5" }, sc = { class: "text-[10px] font-mono text-muted" }, ic = { class: "text-[10px] text-ink leading-tight truncate" }, rc = {
106
106
  key: 0,
107
107
  class: "px-0.5 text-[10px] leading-tight text-ocean truncate"
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 = {
108
+ }, uc = { key: 1 }, cc = { class: "grid grid-cols-2 gap-3" }, dc = ["onDragstart"], pc = { class: "desktop-frame-thumb" }, vc = { class: "desktop-screen-content-thumb" }, fc = { class: "flex items-center gap-1 px-0.5" }, mc = { class: "text-[10px] font-mono text-muted" }, gc = { class: "text-[10px] text-ink leading-tight truncate" }, bc = {
109
109
  key: 0,
110
110
  class: "px-0.5 text-[10px] leading-tight text-ocean truncate"
111
- }, hc = 0.18, wc = 0.38, Hl = 393, xc = 852, Un = 640, Wl = 360, Yl = 1920, Sc = /* @__PURE__ */ kn({
111
+ }, yc = 0.18, hc = 0.38, Hl = 393, wc = 852, Un = 640, Wl = 360, Yl = 1920, xc = /* @__PURE__ */ kn({
112
112
  __name: "FlowEditor",
113
113
  props: {
114
114
  flows: {},
@@ -130,7 +130,7 @@ const zn = /* @__PURE__ */ kn({
130
130
  return x === "pc" ? M.value * Un / Yl : M.value;
131
131
  }
132
132
  function xe(x) {
133
- const S = x === "pc" ? Un : Hl, T = x === "pc" ? Wl : xc;
133
+ const S = x === "pc" ? Un : Hl, T = x === "pc" ? Wl : wc;
134
134
  return {
135
135
  width: `${Math.ceil(S * M.value) + 2}px`,
136
136
  height: `${Math.ceil(T * M.value) + 2}px`
@@ -252,17 +252,17 @@ const zn = /* @__PURE__ */ kn({
252
252
  } catch {
253
253
  return;
254
254
  }
255
- const G = Ee();
256
- if (!G) return;
255
+ const H = Ee();
256
+ if (!H) return;
257
257
  const le = T === "before" ? S : S + 1;
258
258
  if (D.type === "palette" && D.screenId) {
259
259
  const $ = { screenId: D.screenId, stateId: D.stateId };
260
- G.splice(le, 0, $);
260
+ H.splice(le, 0, $);
261
261
  } else if (D.type === "sort" && typeof D.fromIndex == "number") {
262
262
  const $ = D.fromIndex;
263
263
  if ($ === le) return;
264
- const [$n] = G.splice($, 1), Wt = $ < le ? le - 1 : le;
265
- G.splice(Wt, 0, $n);
264
+ const [$n] = H.splice($, 1), Wt = $ < le ? le - 1 : le;
265
+ H.splice(Wt, 0, $n);
266
266
  }
267
267
  }
268
268
  function Dt(x) {
@@ -316,11 +316,11 @@ const zn = /* @__PURE__ */ kn({
316
316
  }
317
317
  return (x, S) => {
318
318
  var T, R;
319
- return v(), f("div", pu, [
320
- e("header", vu, [
321
- e("div", fu, [
319
+ return v(), f("div", du, [
320
+ e("header", pu, [
321
+ e("div", vu, [
322
322
  S[4] || (S[4] = e("h2", { class: "text-lg font-semibold text-ink" }, "流程编排", -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)
323
+ e("span", fu, p((T = C.value) == null ? void 0 : T.title) + " · 子流程 " + p(g.value + 1) + " / " + p((R = C.value) == null ? void 0 : R.rows.length), 1)
324
324
  ]),
325
325
  X(os, { name: "toast" }, {
326
326
  default: as(() => [
@@ -331,15 +331,15 @@ const zn = /* @__PURE__ */ kn({
331
331
  ]),
332
332
  _: 1
333
333
  }),
334
- e("div", gu, [
334
+ e("div", mu, [
335
335
  e("button", {
336
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",
337
337
  disabled: Fe.value,
338
338
  onClick: Ze
339
339
  }, [
340
340
  X(l(Vr), { class: "h-4 w-4" }),
341
- H(" " + p(Fe.value ? "保存中…" : "保存到当前会话"), 1)
342
- ], 8, bu),
341
+ G(" " + p(Fe.value ? "保存中…" : "保存到当前会话"), 1)
342
+ ], 8, gu),
343
343
  e("button", {
344
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",
345
345
  disabled: Ye.value || !t.canPushRemote,
@@ -347,14 +347,14 @@ const zn = /* @__PURE__ */ kn({
347
347
  onClick: At
348
348
  }, [
349
349
  X(l(Lr), { class: "h-4 w-4" }),
350
- H(" " + p(Ye.value ? "推送中…" : "推送到 Gitee"), 1)
351
- ], 8, yu),
350
+ G(" " + p(Ye.value ? "推送中…" : "推送到 Gitee"), 1)
351
+ ], 8, bu),
352
352
  e("button", {
353
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",
354
354
  onClick: Cn
355
355
  }, [
356
356
  X(l(Fr), { class: "h-4 w-4" }),
357
- S[5] || (S[5] = H(" 导出 JSON ", -1))
357
+ S[5] || (S[5] = G(" 导出 JSON ", -1))
358
358
  ]),
359
359
  e("button", {
360
360
  class: "flex h-8 w-8 items-center justify-center rounded-full bg-soft text-ink hover:bg-canvas transition",
@@ -364,97 +364,97 @@ const zn = /* @__PURE__ */ kn({
364
364
  ])
365
365
  ])
366
366
  ]),
367
- e("div", hu, [
368
- e("aside", wu, [
369
- e("div", xu, [
367
+ e("div", yu, [
368
+ e("aside", hu, [
369
+ e("div", wu, [
370
370
  e("button", {
371
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",
372
372
  onClick: ln
373
373
  }, [
374
374
  X(l(Kn), { class: "h-4 w-4" }),
375
- S[6] || (S[6] = H(" 新建主流程 ", -1))
375
+ S[6] || (S[6] = G(" 新建主流程 ", -1))
376
376
  ])
377
377
  ]),
378
- e("div", Su, [
379
- (v(!0), f(_, null, N(u.value, (D, G) => (v(), f("div", {
378
+ e("div", xu, [
379
+ (v(!0), f(_, null, N(u.value, (D, H) => (v(), f("div", {
380
380
  key: D.id,
381
- class: P(["rounded-xl border border-line bg-soft overflow-hidden", { "ring-1 ring-ocean": m.value === G }])
381
+ class: P(["rounded-xl border border-line bg-soft overflow-hidden", { "ring-1 ring-ocean": m.value === H }])
382
382
  }, [
383
383
  e("div", {
384
384
  class: "flex items-center gap-2 px-3 py-2.5 cursor-pointer hover:bg-canvas transition",
385
- onClick: (le) => Ne(G)
385
+ onClick: (le) => Ne(H)
386
386
  }, [
387
- (v(), st(Bo(Ce.value.has(G) ? l(Kr) : l(zr)), { class: "h-4 w-4 text-muted" })),
387
+ (v(), st(Bo(Ce.value.has(H) ? l(Kr) : l(zr)), { class: "h-4 w-4 text-muted" })),
388
388
  e("input", {
389
389
  value: D.title,
390
390
  class: "flex-1 min-w-0 bg-transparent text-sm font-semibold text-ink outline-none",
391
391
  onClick: S[0] || (S[0] = re(() => {
392
392
  }, ["stop"])),
393
- onInput: (le) => vt(G, le.target.value)
394
- }, null, 40, Cu),
393
+ onInput: (le) => vt(H, le.target.value)
394
+ }, null, 40, ku),
395
395
  e("button", {
396
396
  class: "text-muted hover:text-danger transition",
397
397
  title: "删除主流程",
398
- onClick: re((le) => pt(G), ["stop"])
398
+ onClick: re((le) => pt(H), ["stop"])
399
399
  }, [
400
400
  X(l(hn), { class: "h-3.5 w-3.5" })
401
- ], 8, $u)
402
- ], 8, ku),
403
- Ce.value.has(G) ? (v(), f("div", _u, [
401
+ ], 8, Cu)
402
+ ], 8, Su),
403
+ Ce.value.has(H) ? (v(), f("div", $u, [
404
404
  (v(!0), f(_, null, N(D.rows, (le, ge) => (v(), f("div", {
405
405
  key: ge,
406
406
  class: P(["group/row flex items-center gap-2 py-2 text-xs cursor-pointer hover:bg-canvas transition", [
407
- m.value === G && g.value === ge ? "pl-[9px] pr-3 bg-ocean/5 border-l-[3px] border-ocean" : "px-3"
407
+ m.value === H && g.value === ge ? "pl-[9px] pr-3 bg-ocean/5 border-l-[3px] border-ocean" : "px-3"
408
408
  ]]),
409
- onClick: ($) => Ue(G, ge)
409
+ onClick: ($) => Ue(H, ge)
410
410
  }, [
411
411
  e("span", {
412
- class: P(["h-1.5 w-1.5 rounded-full", m.value === G && g.value === ge ? "bg-ocean" : "bg-muted"])
412
+ class: P(["h-1.5 w-1.5 rounded-full", m.value === H && g.value === ge ? "bg-ocean" : "bg-muted"])
413
413
  }, null, 2),
414
414
  e("span", {
415
- class: P(["flex-1 min-w-0 truncate", m.value === G && g.value === ge ? "text-ink font-medium" : "text-muted"])
415
+ class: P(["flex-1 min-w-0 truncate", m.value === H && g.value === ge ? "text-ink font-medium" : "text-muted"])
416
416
  }, p(Xe(D, ge)), 3),
417
417
  e("span", {
418
- class: P(["", m.value === G && g.value === ge ? "text-ocean" : "text-muted/60"])
418
+ class: P(["", m.value === H && g.value === ge ? "text-ocean" : "text-muted/60"])
419
419
  }, p(le.length) + " 页", 3),
420
420
  e("button", {
421
421
  class: "text-muted hover:text-danger transition opacity-0 group-hover/row:opacity-100",
422
422
  title: "删除子流程",
423
- onClick: re(($) => J(G, ge), ["stop"])
423
+ onClick: re(($) => J(H, ge), ["stop"])
424
424
  }, [
425
425
  X(l(hn), { class: "h-3 w-3" })
426
- ], 8, Pu)
427
- ], 10, Iu))), 128)),
426
+ ], 8, Iu)
427
+ ], 10, _u))), 128)),
428
428
  e("button", {
429
429
  class: "flex w-full items-center gap-1.5 px-3 py-2 text-xs text-ocean hover:bg-canvas transition",
430
- onClick: (le) => ft(G)
430
+ onClick: (le) => ft(H)
431
431
  }, [
432
432
  X(l(Kn), { class: "h-3 w-3" }),
433
- S[7] || (S[7] = H(" 添加子流程 ", -1))
434
- ], 8, Du)
433
+ S[7] || (S[7] = G(" 添加子流程 ", -1))
434
+ ], 8, Pu)
435
435
  ])) : w("", !0)
436
436
  ], 2))), 128))
437
437
  ])
438
438
  ]),
439
- e("section", Au, [
440
- e("div", Nu, [
441
- e("div", Tu, [
439
+ e("section", Du, [
440
+ e("div", Au, [
441
+ e("div", Nu, [
442
442
  S[8] || (S[8] = e("span", { class: "text-sm text-muted" }, "当前子流程名称", -1)),
443
443
  e("input", {
444
444
  value: Xe(C.value, g.value),
445
445
  class: "rounded-lg border border-line bg-canvas px-3 py-1.5 text-sm text-ink outline-none focus:border-ocean",
446
446
  placeholder: "输入子流程名称...",
447
447
  onInput: S[1] || (S[1] = (D) => je(g.value, D.target.value))
448
- }, null, 40, Ru)
448
+ }, null, 40, Tu)
449
449
  ]),
450
- e("div", Eu, [
451
- e("div", Ou, [
450
+ e("div", Ru, [
451
+ e("div", Eu, [
452
452
  S[9] || (S[9] = e("span", { class: "text-xs text-muted" }, "缩略图", -1)),
453
453
  A(e("input", {
454
454
  "onUpdate:modelValue": S[2] || (S[2] = (D) => M.value = D),
455
455
  type: "range",
456
- min: hc,
457
- max: wc,
456
+ min: yc,
457
+ max: hc,
458
458
  step: "0.01",
459
459
  class: "w-20 h-1 accent-ocean cursor-pointer",
460
460
  "aria-label": "缩略图缩放"
@@ -466,7 +466,7 @@ const zn = /* @__PURE__ */ kn({
466
466
  { number: !0 }
467
467
  ]
468
468
  ]),
469
- e("span", Bu, p(Math.round(M.value * 100)) + "%", 1)
469
+ e("span", Ou, p(Math.round(M.value * 100)) + "%", 1)
470
470
  ]),
471
471
  C.value ? (v(), f("button", {
472
472
  key: 0,
@@ -474,7 +474,7 @@ const zn = /* @__PURE__ */ kn({
474
474
  onClick: ee
475
475
  }, [
476
476
  X(l(Kn), { class: "h-3.5 w-3.5" }),
477
- S[10] || (S[10] = H(" 新增空行 ", -1))
477
+ S[10] || (S[10] = G(" 新增空行 ", -1))
478
478
  ])) : w("", !0)
479
479
  ])
480
480
  ]),
@@ -484,25 +484,25 @@ const zn = /* @__PURE__ */ kn({
484
484
  }, ["prevent"])),
485
485
  onDrop: Dt
486
486
  }, [
487
- e("div", Mu, [
488
- I.value.length > 0 ? (v(!0), f(_, { key: 0 }, N(I.value, (D, G) => {
487
+ e("div", Bu, [
488
+ I.value.length > 0 ? (v(!0), f(_, { key: 0 }, N(I.value, (D, H) => {
489
489
  var le, ge;
490
490
  return v(), f("div", {
491
- key: `${D.screenId}-${G}`,
491
+ key: `${D.screenId}-${H}`,
492
492
  class: P(["group relative flex flex-col items-center gap-2", {
493
- "opacity-40 scale-[0.96]": V.value === G,
493
+ "opacity-40 scale-[0.96]": V.value === H,
494
494
  "transition-all duration-150": !0
495
495
  }]),
496
496
  style: Pe({ width: `${oe(D) === "pc" ? Se.value : q.value}px` }),
497
497
  draggable: "true",
498
- onDragstart: ($) => ve($, G),
498
+ onDragstart: ($) => ve($, H),
499
499
  onDragend: fe,
500
- onDragover: re(($) => Pt($, G), ["prevent"]),
501
- onDrop: ($) => W($, G)
500
+ onDragover: re(($) => Pt($, H), ["prevent"]),
501
+ onDrop: ($) => W($, H)
502
502
  }, [
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, [
503
+ ot.value === H ? (v(), f("div", Uu)) : w("", !0),
504
+ H === I.value.length - 1 && ot.value === I.value.length ? (v(), f("div", ju)) : w("", !0),
505
+ e("div", Vu, [
506
506
  e("div", {
507
507
  class: P(["thumb-frame", { "pc-thumb-frame": oe(D) === "pc" }]),
508
508
  style: Pe(xe(oe(D)))
@@ -511,16 +511,16 @@ const zn = /* @__PURE__ */ kn({
511
511
  class: "thumb-scale",
512
512
  style: Pe({ transform: `scale(${se(oe(D))})` })
513
513
  }, [
514
- oe(D) === "pc" ? (v(), f("div", Fu, [
515
- e("div", Ku, [
514
+ oe(D) === "pc" ? (v(), f("div", Lu, [
515
+ e("div", Fu, [
516
516
  D.screenId ? (v(), st(zn, {
517
517
  key: 0,
518
518
  screen: Le(D)
519
519
  }, null, 8, ["screen"])) : w("", !0)
520
520
  ])
521
- ])) : (v(), f("div", zu, [
521
+ ])) : (v(), f("div", Ku, [
522
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)),
523
- e("div", Gu, [
523
+ e("div", zu, [
524
524
  D.screenId ? (v(), st(zn, {
525
525
  key: 0,
526
526
  screen: Le(D)
@@ -531,27 +531,27 @@ const zn = /* @__PURE__ */ kn({
531
531
  ], 6),
532
532
  e("button", {
533
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",
534
- onClick: ($) => mt(g.value, G)
534
+ onClick: ($) => mt(g.value, H)
535
535
  }, [
536
536
  X(l(Ao), { class: "h-3 w-3" })
537
- ], 8, Hu)
537
+ ], 8, Gu)
538
538
  ]),
539
- e("div", Wu, [
539
+ e("div", Hu, [
540
540
  e("span", {
541
541
  class: P(["platform-badge is-small", oe(D) === "pc" ? "is-pc" : "is-mobile"])
542
542
  }, p(oe(D) === "pc" ? "P" : "M"), 3),
543
- e("span", Yu, p(((le = dt(D.screenId)) == null ? void 0 : le.title) ?? D.screenId), 1)
543
+ e("span", Wu, p(((le = dt(D.screenId)) == null ? void 0 : le.title) ?? D.screenId), 1)
544
544
  ]),
545
- e("span", Ju, [
546
- H(p(((ge = dt(D.screenId)) == null ? void 0 : ge.code) ?? ""), 1),
545
+ e("span", Yu, [
546
+ G(p(((ge = dt(D.screenId)) == null ? void 0 : ge.code) ?? ""), 1),
547
547
  D.stateId ? (v(), f(_, { key: 0 }, [
548
- H(" · " + p(Le(D).stateLabel), 1)
548
+ G(" · " + p(Le(D).stateLabel), 1)
549
549
  ], 64)) : w("", !0)
550
550
  ])
551
- ], 46, Uu);
552
- }), 128)) : (v(), f("div", Xu, [
553
- ae.value ? (v(), f("div", Zu)) : w("", !0),
554
- e("div", qu, [
551
+ ], 46, Mu);
552
+ }), 128)) : (v(), f("div", Ju, [
553
+ ae.value ? (v(), f("div", Xu)) : w("", !0),
554
+ e("div", Zu, [
555
555
  X(l(Kn), { class: "h-6 w-6" })
556
556
  ]),
557
557
  S[12] || (S[12] = e("p", { class: "text-sm" }, "从右侧拖拽页面到此处", -1))
@@ -559,22 +559,22 @@ const zn = /* @__PURE__ */ kn({
559
559
  ])
560
560
  ], 32)
561
561
  ]),
562
- e("aside", Qu, [
562
+ e("aside", qu, [
563
563
  S[18] || (S[18] = e("div", { class: "p-4 border-b border-line" }, [
564
564
  e("h3", { class: "text-sm font-semibold text-ink" }, "状态库"),
565
565
  e("p", { class: "text-xs text-muted mt-1" }, "拖拽页面状态到中间画布")
566
566
  ], -1)),
567
- e("div", ec, [
568
- Ve.value.length ? (v(), f("div", tc, [
567
+ e("div", Qu, [
568
+ Ve.value.length ? (v(), f("div", ec, [
569
569
  S[15] || (S[15] = e("p", { class: "mb-2 text-xs font-semibold text-muted" }, "移动端", -1)),
570
- e("div", nc, [
570
+ e("div", tc, [
571
571
  (v(!0), f(_, null, N(Ve.value, (D) => (v(), f("div", {
572
572
  key: D.key,
573
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", {
574
574
  "opacity-40 ring-2 ring-ocean/40": U.value === D.key
575
575
  }]),
576
576
  draggable: "true",
577
- onDragstart: (G) => ie(G, D),
577
+ onDragstart: (H) => ie(H, D),
578
578
  onDragend: fe
579
579
  }, [
580
580
  e("div", {
@@ -585,9 +585,9 @@ const zn = /* @__PURE__ */ kn({
585
585
  class: "thumb-scale",
586
586
  style: Pe({ transform: `scale(${M.value})` })
587
587
  }, [
588
- e("div", ac, [
588
+ e("div", oc, [
589
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)),
590
- e("div", lc, [
590
+ e("div", ac, [
591
591
  X(zn, {
592
592
  screen: Z(D)
593
593
  }, null, 8, ["screen"])
@@ -595,25 +595,25 @@ const zn = /* @__PURE__ */ kn({
595
595
  ])
596
596
  ], 4)
597
597
  ], 4),
598
- e("div", sc, [
598
+ e("div", lc, [
599
599
  S[14] || (S[14] = e("span", { class: "platform-badge is-small is-mobile" }, "M", -1)),
600
- e("span", ic, p(D.screen.code), 1),
601
- e("span", rc, p(D.screen.title), 1)
600
+ e("span", sc, p(D.screen.code), 1),
601
+ e("span", ic, p(D.screen.title), 1)
602
602
  ]),
603
- D.stateLabel ? (v(), f("span", uc, p(D.stateLabel), 1)) : w("", !0)
604
- ], 42, oc))), 128))
603
+ D.stateLabel ? (v(), f("span", rc, p(D.stateLabel), 1)) : w("", !0)
604
+ ], 42, nc))), 128))
605
605
  ])
606
606
  ])) : w("", !0),
607
- ce.value.length ? (v(), f("div", cc, [
607
+ ce.value.length ? (v(), f("div", uc, [
608
608
  S[17] || (S[17] = e("p", { class: "mb-2 text-xs font-semibold text-muted" }, "PC 端", -1)),
609
- e("div", dc, [
609
+ e("div", cc, [
610
610
  (v(!0), f(_, null, N(ce.value, (D) => (v(), f("div", {
611
611
  key: D.key,
612
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", {
613
613
  "opacity-40 ring-2 ring-ocean/40": U.value === D.key
614
614
  }]),
615
615
  draggable: "true",
616
- onDragstart: (G) => ie(G, D),
616
+ onDragstart: (H) => ie(H, D),
617
617
  onDragend: fe
618
618
  }, [
619
619
  e("div", {
@@ -624,8 +624,8 @@ const zn = /* @__PURE__ */ kn({
624
624
  class: "thumb-scale",
625
625
  style: Pe({ transform: `scale(${Je.value})` })
626
626
  }, [
627
- e("div", vc, [
628
- e("div", fc, [
627
+ e("div", pc, [
628
+ e("div", vc, [
629
629
  X(zn, {
630
630
  screen: Z(D)
631
631
  }, null, 8, ["screen"])
@@ -633,13 +633,13 @@ const zn = /* @__PURE__ */ kn({
633
633
  ])
634
634
  ], 4)
635
635
  ], 4),
636
- e("div", mc, [
636
+ e("div", fc, [
637
637
  S[16] || (S[16] = e("span", { class: "platform-badge is-small is-pc" }, "P", -1)),
638
- e("span", gc, p(D.screen.code), 1),
639
- e("span", bc, p(D.screen.title), 1)
638
+ e("span", mc, p(D.screen.code), 1),
639
+ e("span", gc, p(D.screen.title), 1)
640
640
  ]),
641
- D.stateLabel ? (v(), f("span", yc, p(D.stateLabel), 1)) : w("", !0)
642
- ], 42, pc))), 128))
641
+ D.stateLabel ? (v(), f("span", bc, p(D.stateLabel), 1)) : w("", !0)
642
+ ], 42, dc))), 128))
643
643
  ])
644
644
  ])) : w("", !0)
645
645
  ])
@@ -653,8 +653,8 @@ const zn = /* @__PURE__ */ kn({
653
653
  for (const [r, u] of n)
654
654
  s[r] = u;
655
655
  return s;
656
- }, kc = /* @__PURE__ */ is(Sc, [["__scopeId", "data-v-0f3d8899"]]);
657
- function Cc(t) {
656
+ }, Sc = /* @__PURE__ */ is(xc, [["__scopeId", "data-v-0f3d8899"]]);
657
+ function kc(t) {
658
658
  if (t === "main") return "main";
659
659
  let n = 2166136261;
660
660
  for (const r of t)
@@ -711,7 +711,7 @@ function ye() {
711
711
  remoteBranch: ((Se = t.remoteBranch) == null ? void 0 : Se.trim()) || "master",
712
712
  projectId: ((ke = t.projectId) == null ? void 0 : ke.trim()) || "prototype-core",
713
713
  codeBranch: m,
714
- branchKey: m ? Cc(m) : "unknown",
714
+ branchKey: m ? kc(m) : "unknown",
715
715
  remoteReadable: !g && !C,
716
716
  remoteWritable: !g && !C,
717
717
  unavailableReason: C ? "无法识别代码分支,当前无法推送" : g ? "Gitee 未配置,当前无法推送" : ""
@@ -747,14 +747,14 @@ function We(t, n, s, r) {
747
747
  };
748
748
  return (m = vs()) == null || m.setItem(fs(t), JSON.stringify(u)), u;
749
749
  }
750
- const ms = "https://gitee.com/api/v5", $c = us(), gs = ye().remoteReadable;
750
+ const ms = "https://gitee.com/api/v5", Cc = us(), gs = ye().remoteReadable;
751
751
  function bs(t) {
752
752
  return t.split("/").map(encodeURIComponent).join("/");
753
753
  }
754
- function _c(t) {
754
+ function $c(t) {
755
755
  return btoa(unescape(encodeURIComponent(t)));
756
756
  }
757
- function Ic(t) {
757
+ function _c(t) {
758
758
  return decodeURIComponent(escape(atob(t.replace(/\s/g, ""))));
759
759
  }
760
760
  function ys() {
@@ -764,7 +764,7 @@ function ys() {
764
764
  function hs() {
765
765
  return `projects/${ye().projectId}/bugs/bugs.json`;
766
766
  }
767
- function Pc(t, n) {
767
+ function Ic(t, n) {
768
768
  const s = ye();
769
769
  return ["docs: update product bugs", "", `提交人:${t}`, `代码分支:${s.codeBranch}`, `数据分支:${s.branchKey}`, `操作:${n}`].join(`
770
770
  `);
@@ -783,7 +783,7 @@ async function Jl(t) {
783
783
  const u = await r.json(), m = ds(u, t);
784
784
  if (m)
785
785
  return {
786
- value: JSON.parse(Ic(m.content)),
786
+ value: JSON.parse(_c(m.content)),
787
787
  sha: m.sha,
788
788
  exists: !0,
789
789
  legacy: t === hs()
@@ -795,11 +795,11 @@ async function ws() {
795
795
  const t = await Jl(ys());
796
796
  return t || (ye().codeBranch !== "main" ? null : Jl(hs()));
797
797
  }
798
- async function Dc(t, n, s, r) {
798
+ async function Pc(t, n, s, r) {
799
799
  const u = ye();
800
800
  if (!u.remoteWritable) return;
801
801
  const m = `${ms}/repos/${encodeURIComponent(u.owner)}/${encodeURIComponent(u.repo)}/contents/${bs(t)}`, g = new URLSearchParams();
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);
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);
803
803
  const C = await fetch(m, {
804
804
  method: s ? "PUT" : "POST",
805
805
  headers: { "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8" },
@@ -808,17 +808,17 @@ async function Dc(t, n, s, r) {
808
808
  if (C.status === 409 || C.status === 422) throw new Error("远端已有新的 Bug 数据,请刷新后再提交");
809
809
  if (!C.ok) throw new Error(`提交 Gitee Bug 文件失败:${C.status}`);
810
810
  }
811
- async function Ac() {
811
+ async function Dc() {
812
812
  const t = await ws();
813
813
  return t ? {
814
814
  ...t,
815
815
  value: Array.isArray(t.value) ? t.value : []
816
816
  } : null;
817
817
  }
818
- async function Nc(t, n, s) {
819
- return $c("bugs:all", async () => {
818
+ async function Ac(t, n, s) {
819
+ return Cc("bugs:all", async () => {
820
820
  const r = await ws(), u = s(Array.isArray(r == null ? void 0 : r.value) ? r.value : []);
821
- return await Dc(ys(), u, r != null && r.legacy ? null : (r == null ? void 0 : r.sha) ?? null, Pc(t, n)), u;
821
+ return await Pc(ys(), u, r != null && r.legacy ? null : (r == null ? void 0 : r.sha) ?? null, Ic(t, n)), u;
822
822
  });
823
823
  }
824
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("");
@@ -837,22 +837,22 @@ function ka() {
837
837
  "bugs"
838
838
  );
839
839
  }
840
- function Tc(t) {
840
+ function Nc(t) {
841
841
  return typeof t == "string" && xs.includes(t);
842
842
  }
843
- function Rc(t) {
843
+ function Tc(t) {
844
844
  return typeof t == "string" && Ss.includes(t);
845
845
  }
846
- function Ec(t) {
846
+ function Rc(t) {
847
847
  return typeof t == "string" && ks.includes(t);
848
848
  }
849
- function Oc(t) {
849
+ function Ec(t) {
850
850
  return typeof t == "string" && Cs.includes(t);
851
851
  }
852
852
  function ba(t) {
853
853
  return typeof t == "string" && $s.includes(t);
854
854
  }
855
- function Bc(t) {
855
+ function Oc(t) {
856
856
  if (!t || typeof t != "object") return null;
857
857
  const n = t;
858
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 : {
@@ -867,17 +867,17 @@ function Bc(t) {
867
867
  createdAt: typeof n.createdAt == "string" && n.createdAt ? n.createdAt : (/* @__PURE__ */ new Date()).toISOString()
868
868
  };
869
869
  }
870
- function Mc(t) {
870
+ function Bc(t) {
871
871
  if (!t || typeof t != "object") return null;
872
872
  const n = t;
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;
873
+ if (typeof n.id != "string" || !n.id.trim() || typeof n.title != "string" || !n.title.trim() || !Nc(n.type) || !Ec(n.ownerRole) || !ba(n.status) || typeof n.description != "string" || !n.description.trim() || typeof n.reporterName != "string" || !n.reporterName.trim()) return null;
874
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;
875
875
  return {
876
876
  id: n.id,
877
877
  title: n.title.trim(),
878
878
  type: n.type,
879
- severity: Rc(n.severity) ? n.severity : "P2",
880
- sourceSide: Ec(n.sourceSide) ? n.sourceSide : "后端",
879
+ severity: Tc(n.severity) ? n.severity : "P2",
880
+ sourceSide: Rc(n.sourceSide) ? n.sourceSide : "后端",
881
881
  sourceSideVersion: typeof n.sourceSideVersion == "string" && n.sourceSideVersion.trim() ? n.sourceSideVersion.trim() : void 0,
882
882
  ownerRole: n.ownerRole,
883
883
  status: n.status,
@@ -886,12 +886,12 @@ function Mc(t) {
886
886
  fixerName: typeof n.fixerName == "string" ? n.fixerName.trim() : void 0,
887
887
  createdAt: s,
888
888
  updatedAt: r,
889
- attachments: Array.isArray(n.attachments) ? n.attachments.map(Bc).filter((u) => !!u) : [],
889
+ attachments: Array.isArray(n.attachments) ? n.attachments.map(Oc).filter((u) => !!u) : [],
890
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") : []
891
891
  };
892
892
  }
893
893
  function wn(t) {
894
- return Array.isArray(t) ? t.map(Mc).filter((n) => !!n).sort((n, s) => s.updatedAt.localeCompare(n.updatedAt)) : [];
894
+ return Array.isArray(t) ? t.map(Bc).filter((n) => !!n).sort((n, s) => s.updatedAt.localeCompare(n.updatedAt)) : [];
895
895
  }
896
896
  function Ca(t) {
897
897
  var n;
@@ -904,7 +904,7 @@ async function Ds() {
904
904
  if (To.value)
905
905
  try {
906
906
  $t("loading", "正在同步 Gitee Bug 数据");
907
- const s = await Ac();
907
+ const s = await Dc();
908
908
  Ge.value = wn((s == null ? void 0 : s.value) ?? []), Ca(Ge.value), $t("success", "已同步 Gitee Bug 数据");
909
909
  return;
910
910
  } catch (s) {
@@ -921,7 +921,7 @@ async function Ds() {
921
921
  Ge.value = [];
922
922
  Oa.value || $t("idle", "当前使用本地 Bug 数据");
923
923
  }
924
- async function Uc() {
924
+ async function Mc() {
925
925
  if (!Xl) {
926
926
  Xl = !0;
927
927
  try {
@@ -931,22 +931,22 @@ async function Uc() {
931
931
  }
932
932
  }
933
933
  }
934
- async function jc(t, n, s) {
934
+ async function Uc(t, n, s) {
935
935
  const r = () => {
936
936
  Ge.value = wn(s(Ge.value)), Ca(Ge.value);
937
937
  };
938
938
  if (To.value)
939
939
  try {
940
940
  $t("loading", "正在提交 Gitee Bug 数据");
941
- const u = await Nc(t, n, (m) => wn(s(wn(m))));
941
+ const u = await Ac(t, n, (m) => wn(s(wn(m))));
942
942
  return Ge.value = wn(u ?? []), Ca(Ge.value), $t("success", "Bug 数据已提交"), !0;
943
943
  } catch (u) {
944
944
  return $t("error", u instanceof Error ? u.message : "Bug 数据提交失败"), !1;
945
945
  }
946
946
  return r(), $t("success", "Bug 数据已保存到本地"), !0;
947
947
  }
948
- const Vc = k(() => Ge.value.filter((t) => _s.includes(t.status)).length);
949
- function Lc(t) {
948
+ const jc = k(() => Ge.value.filter((t) => _s.includes(t.status)).length);
949
+ function Vc(t) {
950
950
  const n = t.reduce((s, r) => {
951
951
  const u = /^BUG-(\d+)$/i.exec(r.id.trim());
952
952
  return u ? Math.max(s, Number.parseInt(u[1], 10) || 0) : s;
@@ -962,33 +962,33 @@ function As() {
962
962
  bugOwnerRoles: Cs,
963
963
  bugStatuses: $s,
964
964
  unresolvedBugStatuses: _s,
965
- unresolvedBugCount: Vc,
965
+ unresolvedBugCount: jc,
966
966
  bugRemoteReady: To,
967
967
  bugSyncStatus: Is,
968
968
  bugSyncMessage: Oa,
969
- initializeBugs: Uc,
969
+ initializeBugs: Mc,
970
970
  refreshBugs: Ds,
971
- persistBugs: jc,
972
- nextBugId: Lc
971
+ persistBugs: Uc,
972
+ nextBugId: Vc
973
973
  };
974
974
  }
975
- const Fc = "x-oss-process=image/resize,w_240/quality,q_75";
975
+ const Lc = "x-oss-process=image/resize,w_240/quality,q_75";
976
976
  function Ba() {
977
977
  var m, g, C, I;
978
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()) ?? "";
979
979
  return !n || !s || !r || !u ? null : { bucket: n, baseUrl: s, accessKeyId: r, accessKeySecret: u };
980
980
  }
981
- function Kc(t) {
981
+ function Fc(t) {
982
982
  let n = "";
983
983
  return new Uint8Array(t).forEach((r) => {
984
984
  n += String.fromCharCode(r);
985
985
  }), btoa(n);
986
986
  }
987
- async function zc(t, n) {
987
+ async function Kc(t, n) {
988
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));
989
- return Kc(u);
989
+ return Fc(u);
990
990
  }
991
- function Gc(t, n) {
991
+ function zc(t, n) {
992
992
  const s = new Date(Date.now() + 6e5).toISOString();
993
993
  return btoa(
994
994
  JSON.stringify({
@@ -1001,20 +1001,20 @@ function Gc(t, n) {
1001
1001
  })
1002
1002
  );
1003
1003
  }
1004
- function Hc() {
1004
+ function Gc() {
1005
1005
  return !!Ba();
1006
1006
  }
1007
- function Wc(t) {
1007
+ function Hc(t) {
1008
1008
  const n = Ba();
1009
1009
  return n ? `${n.baseUrl}/${t.split("/").map(encodeURIComponent).join("/")}` : "";
1010
1010
  }
1011
1011
  function ya(t) {
1012
- return t ? `${t}${t.includes("?") ? "&" : "?"}${Fc}` : "";
1012
+ return t ? `${t}${t.includes("?") ? "&" : "?"}${Lc}` : "";
1013
1013
  }
1014
- async function Yc(t, n) {
1014
+ async function Wc(t, n) {
1015
1015
  const s = Ba();
1016
1016
  if (!s) throw new Error("缺少 OSS 上传配置");
1017
- const r = Gc(t, n.size), u = await zc(r, s.accessKeySecret), m = new FormData();
1017
+ const r = zc(t, n.size), u = await Kc(r, s.accessKeySecret), m = new FormData();
1018
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);
1019
1019
  const g = await fetch(s.baseUrl, {
1020
1020
  method: "POST",
@@ -1023,55 +1023,55 @@ async function Yc(t, n) {
1023
1023
  if (!g.ok) throw new Error(`OSS 图片上传失败:${g.status}`);
1024
1024
  return {
1025
1025
  objectKey: t,
1026
- url: Wc(t)
1026
+ url: Hc(t)
1027
1027
  };
1028
1028
  }
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 = {
1029
+ const Yc = { class: "bug-page" }, Jc = { class: "bug-page-head" }, Xc = ["disabled"], Zc = { class: "bug-refresh-main" }, qc = { class: "bug-stat-grid" }, Qc = { class: "bug-stat-card danger" }, ed = { class: "bug-stat-card success" }, td = { class: "bug-stat-card muted" }, nd = { class: "bug-workspace" }, od = { id: "bug-source-side-version-options" }, ad = ["value"], ld = { class: "bug-section-title" }, sd = { class: "bug-form-row" }, id = ["value"], rd = ["value"], ud = ["value"], cd = ["value"], dd = { class: "bug-image-uploader" }, pd = { class: "bug-section-title" }, vd = ["disabled"], fd = {
1030
1030
  key: 0,
1031
1031
  class: "bug-pending-images"
1032
- }, gd = ["src", "alt"], bd = { key: 0 }, yd = ["disabled", "onClick"], hd = {
1032
+ }, md = ["src", "alt"], gd = { key: 0 }, bd = ["disabled", "onClick"], yd = {
1033
1033
  key: 1,
1034
1034
  class: "bug-form-error"
1035
- }, wd = {
1035
+ }, hd = {
1036
1036
  key: 0,
1037
1037
  class: "bug-form-error"
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 = {
1038
+ }, wd = ["disabled"], xd = { class: "bug-list-panel" }, Sd = { class: "bug-filter-bar" }, kd = { class: "bug-section-title" }, Cd = { class: "bug-filter-grid" }, $d = ["value"], _d = ["value"], Id = ["value"], Pd = ["value"], Dd = ["value"], Ad = ["value"], Nd = { class: "bug-search-field" }, Td = { class: "bug-list-controls" }, Rd = ["value"], Ed = ["value"], Od = { class: "bug-list" }, Bd = {
1039
1039
  key: 0,
1040
1040
  class: "bug-empty"
1041
- }, Ud = { class: "bug-list-main" }, jd = { class: "bug-list-meta" }, Vd = { key: 0 }, Ld = {
1041
+ }, Md = { class: "bug-list-main" }, Ud = { class: "bug-list-meta" }, jd = { key: 0 }, Vd = {
1042
1042
  key: 0,
1043
1043
  class: "bug-list-images"
1044
- }, Fd = ["onClick"], Kd = ["src", "alt"], zd = { key: 0 }, Gd = ["onClick"], Hd = {
1044
+ }, Ld = ["onClick"], Fd = ["src", "alt"], Kd = { key: 0 }, zd = ["onClick"], Gd = {
1045
1045
  key: 0,
1046
1046
  class: "bug-pagination"
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 = {
1047
+ }, Hd = ["disabled"], Wd = ["disabled"], Yd = { class: "bug-detail-panel" }, Jd = { class: "bug-detail-head" }, Xd = { class: "bug-detail-summary" }, Zd = { key: 0 }, qd = { class: "bug-detail-actions" }, Qd = { key: 1 }, ep = {
1048
1048
  key: 0,
1049
1049
  class: "bug-form-error"
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 = {
1050
+ }, tp = ["disabled"], np = { class: "bug-form-row" }, op = ["value"], ap = ["value"], lp = ["value"], sp = ["value"], ip = { class: "bug-edit-images" }, rp = { class: "bug-section-title" }, up = ["disabled"], cp = {
1051
1051
  key: 0,
1052
1052
  class: "bug-edit-existing-images"
1053
- }, pp = ["onClick"], vp = ["src", "alt"], fp = ["onClick"], mp = {
1053
+ }, dp = ["onClick"], pp = ["src", "alt"], vp = ["onClick"], fp = {
1054
1054
  key: 1,
1055
1055
  class: "bug-pending-images"
1056
- }, gp = ["src", "alt"], bp = { key: 0 }, yp = ["disabled", "onClick"], hp = {
1056
+ }, mp = ["src", "alt"], gp = { key: 0 }, bp = ["disabled", "onClick"], yp = {
1057
1057
  key: 2,
1058
1058
  class: "bug-image-hint"
1059
- }, wp = {
1059
+ }, hp = {
1060
1060
  key: 0,
1061
1061
  class: "bug-form-error"
1062
- }, xp = { class: "bug-edit-actions" }, Sp = ["disabled"], kp = {
1062
+ }, wp = { class: "bug-edit-actions" }, xp = ["disabled"], Sp = {
1063
1063
  key: 2,
1064
1064
  class: "bug-detail-description"
1065
- }, Cp = { class: "bug-detail-meta" }, $p = {
1065
+ }, kp = { class: "bug-detail-meta" }, Cp = {
1066
1066
  key: 3,
1067
1067
  class: "bug-detail-images"
1068
- }, _p = ["onClick"], Ip = ["src", "alt"], Pp = { class: "bug-section-title" }, Dp = ["value"], Ap = { class: "bug-form-row" }, Np = ["placeholder"], Tp = {
1068
+ }, $p = ["onClick"], _p = ["src", "alt"], Ip = { class: "bug-section-title" }, Pp = ["value"], Dp = { class: "bug-form-row" }, Ap = ["placeholder"], Np = {
1069
1069
  key: 0,
1070
1070
  class: "bug-form-error"
1071
- }, Rp = ["disabled"], Ep = { class: "bug-history" }, Op = {
1071
+ }, Tp = ["disabled"], Rp = { class: "bug-history" }, Ep = {
1072
1072
  key: 0,
1073
1073
  class: "bug-empty"
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({
1074
+ }, Op = { key: 0 }, Bp = { key: 1 }, Mp = { class: "bug-image-preview-dialog" }, Up = ["src", "alt"], Zl = "prototype-core-annotation-author", jn = 10, jp = /* @__PURE__ */ kn({
1075
1075
  __name: "BugReportPage",
1076
1076
  emits: ["close"],
1077
1077
  setup(t, { emit: n }) {
@@ -1164,7 +1164,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1164
1164
  sourceSideVersion: "",
1165
1165
  ownerRole: "后端开发",
1166
1166
  description: ""
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(
1167
+ }), U = b([]), ot = b(null), ie = b([]), ve = b(""), fe = b(null), Pt = Gc(), 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(
1168
1168
  () => Array.from(new Set(r.value.map((h) => {
1169
1169
  var d;
1170
1170
  return (d = h.sourceSideVersion) == null ? void 0 : d.trim();
@@ -1212,7 +1212,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1212
1212
  status: "ready"
1213
1213
  };
1214
1214
  }
1215
- async function G(h) {
1215
+ async function H(h) {
1216
1216
  ve.value = "";
1217
1217
  const d = h.filter((L) => L.type.startsWith("image/"));
1218
1218
  if (!d.length) return;
@@ -1231,12 +1231,12 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1231
1231
  }
1232
1232
  function le(h) {
1233
1233
  const d = h.target;
1234
- G(Array.from(d.files ?? [])), d.value = "";
1234
+ H(Array.from(d.files ?? [])), d.value = "";
1235
1235
  }
1236
1236
  function ge(h) {
1237
1237
  var O;
1238
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);
1239
- d.length && (h.preventDefault(), G(d));
1239
+ d.length && (h.preventDefault(), H(d));
1240
1240
  }
1241
1241
  function $(h) {
1242
1242
  const d = ie.value.find((O) => O.id === h);
@@ -1252,7 +1252,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1252
1252
  for (const c of ie.value) {
1253
1253
  c.status = "uploading", c.error = "";
1254
1254
  try {
1255
- const L = await Yc(R(h, c), c.file);
1255
+ const L = await Wc(R(h, c), c.file);
1256
1256
  c.status = "uploaded", O.push({
1257
1257
  id: `att-${Date.now()}-${Math.random().toString(16).slice(2)}`,
1258
1258
  name: c.name,
@@ -1416,8 +1416,8 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1416
1416
  }
1417
1417
  return (h, d) => {
1418
1418
  var O;
1419
- return v(), f("main", Jc, [
1420
- e("header", Xc, [
1419
+ return v(), f("main", Yc, [
1420
+ e("header", Jc, [
1421
1421
  e("div", null, [
1422
1422
  e("button", {
1423
1423
  class: "bug-back-btn",
@@ -1434,27 +1434,27 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1434
1434
  onClick: d[1] || (d[1] = //@ts-ignore
1435
1435
  (...c) => l(ke) && l(ke)(...c))
1436
1436
  }, [
1437
- e("span", qc, [
1437
+ e("span", Zc, [
1438
1438
  X(l(Gr), { class: "h-4 w-4" }),
1439
1439
  d[39] || (d[39] = e("span", null, "刷新", -1))
1440
1440
  ]),
1441
1441
  e("span", {
1442
1442
  class: P(["bug-refresh-status", `is-${l(q)}`])
1443
1443
  }, p(l(Se) || "Bug 数据已就绪"), 3)
1444
- ], 8, Zc)
1444
+ ], 8, Xc)
1445
1445
  ]),
1446
- e("section", Qc, [
1447
- e("article", ed, [
1446
+ e("section", qc, [
1447
+ e("article", Qc, [
1448
1448
  X(l(Hr), { class: "h-5 w-5" }),
1449
1449
  d[40] || (d[40] = e("span", null, "未修复", -1)),
1450
1450
  e("strong", null, p(l(se)), 1)
1451
1451
  ]),
1452
- e("article", td, [
1452
+ e("article", ed, [
1453
1453
  X(l(Wr), { class: "h-5 w-5" }),
1454
1454
  d[41] || (d[41] = e("span", null, "已修复/验证", -1)),
1455
1455
  e("strong", null, p(mt.value), 1)
1456
1456
  ]),
1457
- e("article", nd, [
1457
+ e("article", td, [
1458
1458
  X(l(zl), { class: "h-5 w-5" }),
1459
1459
  d[42] || (d[42] = e("span", null, "无需处理", -1)),
1460
1460
  e("strong", null, p(gt.value), 1)
@@ -1467,19 +1467,19 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1467
1467
  e("strong", null, p(l(q) === "loading" ? "同步中" : l(r).length), 1)
1468
1468
  ], 2)
1469
1469
  ]),
1470
- e("section", od, [
1470
+ e("section", nd, [
1471
1471
  e("form", {
1472
1472
  class: "bug-submit-panel",
1473
1473
  onSubmit: re(no, ["prevent"]),
1474
1474
  onPaste: ge
1475
1475
  }, [
1476
- e("datalist", ad, [
1476
+ e("datalist", od, [
1477
1477
  (v(!0), f(_, null, N(bt.value, (c) => (v(), f("option", {
1478
1478
  key: c,
1479
1479
  value: c
1480
- }, null, 8, ld))), 128))
1480
+ }, null, 8, ad))), 128))
1481
1481
  ]),
1482
- e("div", sd, [
1482
+ e("div", ld, [
1483
1483
  X(l(Kn), { class: "h-4 w-4" }),
1484
1484
  d[43] || (d[43] = e("span", null, "提报 Bug", -1))
1485
1485
  ]),
@@ -1503,7 +1503,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1503
1503
  [z, J.title]
1504
1504
  ])
1505
1505
  ]),
1506
- e("div", id, [
1506
+ e("div", sd, [
1507
1507
  e("label", null, [
1508
1508
  d[46] || (d[46] = e("span", null, "类型", -1)),
1509
1509
  A(e("select", {
@@ -1512,7 +1512,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1512
1512
  (v(!0), f(_, null, N(l(u), (c) => (v(), f("option", {
1513
1513
  key: c,
1514
1514
  value: c
1515
- }, p(c), 9, rd))), 128))
1515
+ }, p(c), 9, id))), 128))
1516
1516
  ], 512), [
1517
1517
  [_e, J.type]
1518
1518
  ])
@@ -1525,7 +1525,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1525
1525
  (v(!0), f(_, null, N(l(m), (c) => (v(), f("option", {
1526
1526
  key: c,
1527
1527
  value: c
1528
- }, p(c), 9, ud))), 128))
1528
+ }, p(c), 9, rd))), 128))
1529
1529
  ], 512), [
1530
1530
  [_e, J.severity]
1531
1531
  ])
@@ -1538,7 +1538,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1538
1538
  (v(!0), f(_, null, N(l(g), (c) => (v(), f("option", {
1539
1539
  key: c,
1540
1540
  value: c
1541
- }, p(c), 9, cd))), 128))
1541
+ }, p(c), 9, ud))), 128))
1542
1542
  ], 512), [
1543
1543
  [_e, J.sourceSide]
1544
1544
  ])
@@ -1562,7 +1562,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1562
1562
  (v(!0), f(_, null, N(l(C), (c) => (v(), f("option", {
1563
1563
  key: c,
1564
1564
  value: c
1565
- }, p(c), 9, dd))), 128))
1565
+ }, p(c), 9, cd))), 128))
1566
1566
  ], 512), [
1567
1567
  [_e, J.ownerRole]
1568
1568
  ])
@@ -1577,8 +1577,8 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1577
1577
  [z, J.description]
1578
1578
  ])
1579
1579
  ]),
1580
- e("section", pd, [
1581
- e("div", vd, [
1580
+ e("section", dd, [
1581
+ e("div", pd, [
1582
1582
  X(l(Gl), { class: "h-4 w-4" }),
1583
1583
  d[52] || (d[52] = e("span", null, "问题截图", -1))
1584
1584
  ]),
@@ -1590,7 +1590,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1590
1590
  var L;
1591
1591
  return (L = ot.value) == null ? void 0 : L.click();
1592
1592
  })
1593
- }, " 选择图片 / 粘贴截图 ", 8, fd),
1593
+ }, " 选择图片 / 粘贴截图 ", 8, vd),
1594
1594
  e("input", {
1595
1595
  ref_key: "imageInputRef",
1596
1596
  ref: ot,
@@ -1601,7 +1601,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1601
1601
  onChange: le
1602
1602
  }, null, 544),
1603
1603
  d[53] || (d[53] = e("p", { class: "bug-image-hint" }, "支持 png、jpg、webp;最多 10 张;图片将按原文件直接上传 OSS。", -1)),
1604
- ie.value.length ? (v(), f("div", md, [
1604
+ ie.value.length ? (v(), f("div", fd, [
1605
1605
  (v(!0), f(_, null, N(ie.value, (c) => (v(), f("article", {
1606
1606
  key: c.id,
1607
1607
  class: P(`is-${c.status}`)
@@ -1609,16 +1609,16 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1609
1609
  e("img", {
1610
1610
  src: c.previewUrl,
1611
1611
  alt: c.name
1612
- }, null, 8, gd),
1612
+ }, null, 8, md),
1613
1613
  e("div", null, [
1614
1614
  e("b", null, p(c.name), 1),
1615
1615
  e("span", null, [
1616
- H(p(x(c.size)), 1),
1616
+ G(p(x(c.size)), 1),
1617
1617
  c.originalSize !== c.size ? (v(), f(_, { key: 0 }, [
1618
- H(" / 原图 " + p(x(c.originalSize)), 1)
1618
+ G(" / 原图 " + p(x(c.originalSize)), 1)
1619
1619
  ], 64)) : w("", !0)
1620
1620
  ]),
1621
- c.error ? (v(), f("small", bd, p(c.error), 1)) : w("", !0)
1621
+ c.error ? (v(), f("small", gd, p(c.error), 1)) : w("", !0)
1622
1622
  ]),
1623
1623
  e("button", {
1624
1624
  type: "button",
@@ -1626,25 +1626,25 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1626
1626
  onClick: (L) => $(c.id)
1627
1627
  }, [
1628
1628
  X(l(hn), { class: "h-4 w-4" })
1629
- ], 8, yd)
1629
+ ], 8, bd)
1630
1630
  ], 2))), 128))
1631
1631
  ])) : w("", !0),
1632
- ve.value ? (v(), f("p", hd, p(ve.value), 1)) : w("", !0)
1632
+ ve.value ? (v(), f("p", yd, p(ve.value), 1)) : w("", !0)
1633
1633
  ]),
1634
- Xe.value ? (v(), f("p", wd, p(Xe.value), 1)) : w("", !0),
1634
+ Xe.value ? (v(), f("p", hd, p(Xe.value), 1)) : w("", !0),
1635
1635
  e("button", {
1636
1636
  class: "bug-primary-btn",
1637
1637
  type: "submit",
1638
1638
  disabled: l(q) === "loading"
1639
- }, "提交 Bug", 8, xd)
1639
+ }, "提交 Bug", 8, wd)
1640
1640
  ], 32),
1641
- e("section", Sd, [
1642
- e("div", kd, [
1643
- e("div", Cd, [
1641
+ e("section", xd, [
1642
+ e("div", Sd, [
1643
+ e("div", kd, [
1644
1644
  X(l(Jr), { class: "h-4 w-4" }),
1645
1645
  d[54] || (d[54] = e("span", null, "筛选", -1))
1646
1646
  ]),
1647
- e("div", $d, [
1647
+ e("div", Cd, [
1648
1648
  A(e("select", {
1649
1649
  "onUpdate:modelValue": d[11] || (d[11] = (c) => E.status = c)
1650
1650
  }, [
@@ -1653,7 +1653,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1653
1653
  (v(!0), f(_, null, N(l(I), (c) => (v(), f("option", {
1654
1654
  key: c,
1655
1655
  value: c
1656
- }, p(c), 9, _d))), 128))
1656
+ }, p(c), 9, $d))), 128))
1657
1657
  ], 512), [
1658
1658
  [_e, E.status]
1659
1659
  ]),
@@ -1664,7 +1664,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1664
1664
  (v(!0), f(_, null, N(l(u), (c) => (v(), f("option", {
1665
1665
  key: c,
1666
1666
  value: c
1667
- }, p(c), 9, Id))), 128))
1667
+ }, p(c), 9, _d))), 128))
1668
1668
  ], 512), [
1669
1669
  [_e, E.type]
1670
1670
  ]),
@@ -1675,7 +1675,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1675
1675
  (v(!0), f(_, null, N(l(m), (c) => (v(), f("option", {
1676
1676
  key: c,
1677
1677
  value: c
1678
- }, p(c), 9, Pd))), 128))
1678
+ }, p(c), 9, Id))), 128))
1679
1679
  ], 512), [
1680
1680
  [_e, E.severity]
1681
1681
  ]),
@@ -1686,7 +1686,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1686
1686
  (v(!0), f(_, null, N(l(C), (c) => (v(), f("option", {
1687
1687
  key: c,
1688
1688
  value: c
1689
- }, p(c), 9, Dd))), 128))
1689
+ }, p(c), 9, Pd))), 128))
1690
1690
  ], 512), [
1691
1691
  [_e, E.ownerRole]
1692
1692
  ]),
@@ -1697,7 +1697,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1697
1697
  (v(!0), f(_, null, N(l(g), (c) => (v(), f("option", {
1698
1698
  key: c,
1699
1699
  value: c
1700
- }, p(c), 9, Ad))), 128))
1700
+ }, p(c), 9, Dd))), 128))
1701
1701
  ], 512), [
1702
1702
  [_e, E.sourceSide]
1703
1703
  ]),
@@ -1708,11 +1708,11 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1708
1708
  (v(!0), f(_, null, N(bt.value, (c) => (v(), f("option", {
1709
1709
  key: c,
1710
1710
  value: c
1711
- }, p(c), 9, Nd))), 128))
1711
+ }, p(c), 9, Ad))), 128))
1712
1712
  ], 512), [
1713
1713
  [_e, E.sourceSideVersion]
1714
1714
  ]),
1715
- e("label", Td, [
1715
+ e("label", Nd, [
1716
1716
  X(l(Xr), { class: "h-4 w-4" }),
1717
1717
  A(e("input", {
1718
1718
  "onUpdate:modelValue": d[17] || (d[17] = (c) => E.keyword = c),
@@ -1723,7 +1723,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1723
1723
  ])
1724
1724
  ])
1725
1725
  ]),
1726
- e("div", Rd, [
1726
+ e("div", Td, [
1727
1727
  e("label", null, [
1728
1728
  d[62] || (d[62] = e("span", null, "排序", -1)),
1729
1729
  A(e("select", {
@@ -1732,7 +1732,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1732
1732
  (v(), f(_, null, N(dt, (c) => e("option", {
1733
1733
  key: c.value,
1734
1734
  value: c.value
1735
- }, p(c.label), 9, Ed)), 64))
1735
+ }, p(c.label), 9, Rd)), 64))
1736
1736
  ], 512), [
1737
1737
  [_e, Ve.value]
1738
1738
  ])
@@ -1745,7 +1745,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1745
1745
  (v(), f(_, null, N(ln, (c) => e("option", {
1746
1746
  key: c,
1747
1747
  value: c
1748
- }, p(c) + " 条", 9, Od)), 64))
1748
+ }, p(c) + " 条", 9, Ed)), 64))
1749
1749
  ], 512), [
1750
1750
  [
1751
1751
  _e,
@@ -1757,23 +1757,23 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1757
1757
  ])
1758
1758
  ])
1759
1759
  ]),
1760
- e("div", Bd, [
1761
- at.value.length ? w("", !0) : (v(), f("p", Md, "当前筛选条件下暂无 Bug。")),
1760
+ e("div", Od, [
1761
+ at.value.length ? w("", !0) : (v(), f("p", Bd, "当前筛选条件下暂无 Bug。")),
1762
1762
  (v(!0), f(_, null, N(Ze.value, (c) => {
1763
1763
  var L;
1764
1764
  return v(), f("article", {
1765
1765
  key: c.id,
1766
1766
  class: P(["bug-list-item", `is-${Ce[c.status]}`])
1767
1767
  }, [
1768
- e("div", Ud, [
1769
- e("div", jd, [
1768
+ e("div", Md, [
1769
+ e("div", Ud, [
1770
1770
  e("b", null, "#" + p(c.id), 1),
1771
1771
  e("span", null, p(c.type), 1),
1772
1772
  e("span", {
1773
1773
  class: P(`severity-${Ne[c.severity]}`)
1774
1774
  }, p(c.severity), 3),
1775
1775
  e("span", null, "发生侧:" + p(c.sourceSide), 1),
1776
- c.sourceSideVersion ? (v(), f("span", Vd, "版本:" + p(c.sourceSideVersion), 1)) : w("", !0),
1776
+ c.sourceSideVersion ? (v(), f("span", jd, "版本:" + p(c.sourceSideVersion), 1)) : w("", !0),
1777
1777
  e("span", null, "归属:" + p(c.ownerRole), 1),
1778
1778
  e("i", {
1779
1779
  class: P(`status-${Ce[c.status]}`)
@@ -1781,7 +1781,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1781
1781
  ]),
1782
1782
  e("h2", null, p(c.title), 1),
1783
1783
  e("p", null, p(c.description), 1),
1784
- (L = c.attachments) != null && L.length ? (v(), f("div", Ld, [
1784
+ (L = c.attachments) != null && L.length ? (v(), f("div", Vd, [
1785
1785
  (v(!0), f(_, null, N(c.attachments.slice(0, 3), (be) => (v(), f("button", {
1786
1786
  key: be.id,
1787
1787
  type: "button",
@@ -1791,38 +1791,38 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1791
1791
  src: l(ya)(be.url),
1792
1792
  alt: be.name,
1793
1793
  loading: "lazy"
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)
1794
+ }, null, 8, Fd)
1795
+ ], 8, Ld))), 128)),
1796
+ c.attachments.length > 3 ? (v(), f("span", Kd, "+" + p(c.attachments.length - 3), 1)) : w("", !0)
1797
1797
  ])) : w("", !0),
1798
1798
  e("small", null, [
1799
- H("提报人:" + p(c.reporterName) + " · " + p(Ht(c.createdAt)), 1),
1799
+ G("提报人:" + p(c.reporterName) + " · " + p(Ht(c.createdAt)), 1),
1800
1800
  c.fixerName ? (v(), f(_, { key: 0 }, [
1801
- H(" · 修复人:" + p(c.fixerName), 1)
1801
+ G(" · 修复人:" + p(c.fixerName), 1)
1802
1802
  ], 64)) : w("", !0)
1803
1803
  ])
1804
1804
  ]),
1805
1805
  e("button", {
1806
1806
  type: "button",
1807
1807
  onClick: (be) => oo(c)
1808
- }, "查看/变更状态", 8, Gd)
1808
+ }, "查看/变更状态", 8, zd)
1809
1809
  ], 2);
1810
1810
  }), 128))
1811
1811
  ]),
1812
- at.value.length ? (v(), f("div", Hd, [
1812
+ at.value.length ? (v(), f("div", Gd, [
1813
1813
  e("span", null, "第 " + p(At.value) + "-" + p(Cn.value) + " 条,共 " + p(Fe.value.length) + " 条", 1),
1814
1814
  e("div", null, [
1815
1815
  e("button", {
1816
1816
  type: "button",
1817
1817
  disabled: oe.value <= 1,
1818
1818
  onClick: d[20] || (d[20] = (c) => oe.value -= 1)
1819
- }, "上一页", 8, Wd),
1819
+ }, "上一页", 8, Hd),
1820
1820
  e("strong", null, p(oe.value) + " / " + p(Ye.value), 1),
1821
1821
  e("button", {
1822
1822
  type: "button",
1823
1823
  disabled: oe.value >= Ye.value,
1824
1824
  onClick: d[21] || (d[21] = (c) => oe.value += 1)
1825
- }, "下一页", 8, Yd)
1825
+ }, "下一页", 8, Wd)
1826
1826
  ])
1827
1827
  ])) : w("", !0)
1828
1828
  ])
@@ -1832,8 +1832,8 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1832
1832
  class: "bug-detail-backdrop",
1833
1833
  onClick: re(Yt, ["self"])
1834
1834
  }, [
1835
- e("aside", Jd, [
1836
- e("div", Xd, [
1835
+ e("aside", Yd, [
1836
+ e("div", Jd, [
1837
1837
  e("div", null, [
1838
1838
  e("span", null, "#" + p(W.value.id), 1),
1839
1839
  e("h2", null, p(W.value.title), 1)
@@ -1846,26 +1846,26 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1846
1846
  X(l(Ao), { class: "h-5 w-5" })
1847
1847
  ])
1848
1848
  ]),
1849
- e("div", Zd, [
1849
+ e("div", Xd, [
1850
1850
  e("span", null, p(W.value.type), 1),
1851
1851
  e("span", {
1852
1852
  class: P(`severity-${Ne[W.value.severity]}`)
1853
1853
  }, p(W.value.severity), 3),
1854
1854
  e("span", null, "发生侧:" + p(W.value.sourceSide), 1),
1855
- W.value.sourceSideVersion ? (v(), f("span", qd, "版本:" + p(W.value.sourceSideVersion), 1)) : w("", !0),
1855
+ W.value.sourceSideVersion ? (v(), f("span", Zd, "版本:" + p(W.value.sourceSideVersion), 1)) : w("", !0),
1856
1856
  e("span", null, "归属:" + p(W.value.ownerRole), 1),
1857
1857
  e("span", {
1858
1858
  class: P(`status-${Ce[W.value.status]}`)
1859
1859
  }, p(W.value.status), 3)
1860
1860
  ]),
1861
- e("div", Qd, [
1861
+ e("div", qd, [
1862
1862
  e("div", null, [
1863
1863
  Dt.value && !De.value ? (v(), f("button", {
1864
1864
  key: 0,
1865
1865
  class: "bug-edit-entry-btn",
1866
1866
  type: "button",
1867
1867
  onClick: ao
1868
- }, "编辑 Bug")) : Dt.value ? w("", !0) : (v(), f("span", ep, "已完结 Bug 不支持编辑"))
1868
+ }, "编辑 Bug")) : Dt.value ? w("", !0) : (v(), f("span", Qd, "已完结 Bug 不支持编辑"))
1869
1869
  ]),
1870
1870
  De.value ? w("", !0) : (v(), f("button", {
1871
1871
  key: 0,
@@ -1874,7 +1874,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1874
1874
  onClick: Ho
1875
1875
  }, [
1876
1876
  X(l(hn), { class: "h-4 w-4" }),
1877
- d[64] || (d[64] = H(" 删除 Bug ", -1))
1877
+ d[64] || (d[64] = G(" 删除 Bug ", -1))
1878
1878
  ]))
1879
1879
  ]),
1880
1880
  ae.value ? (v(), f("form", {
@@ -1897,7 +1897,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1897
1897
  [z, ne.value]
1898
1898
  ])
1899
1899
  ]),
1900
- Ee.value ? (v(), f("p", tp, p(Ee.value), 1)) : w("", !0),
1900
+ Ee.value ? (v(), f("p", ep, p(Ee.value), 1)) : w("", !0),
1901
1901
  e("div", null, [
1902
1902
  e("button", {
1903
1903
  type: "button",
@@ -1906,7 +1906,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1906
1906
  e("button", {
1907
1907
  type: "submit",
1908
1908
  disabled: l(q) === "loading"
1909
- }, "确认删除", 8, np)
1909
+ }, "确认删除", 8, tp)
1910
1910
  ])
1911
1911
  ], 32)) : w("", !0),
1912
1912
  De.value ? (v(), f("form", {
@@ -1924,7 +1924,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1924
1924
  [z, V.title]
1925
1925
  ])
1926
1926
  ]),
1927
- e("div", op, [
1927
+ e("div", np, [
1928
1928
  e("label", null, [
1929
1929
  d[68] || (d[68] = e("span", null, "类型", -1)),
1930
1930
  A(e("select", {
@@ -1933,7 +1933,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1933
1933
  (v(!0), f(_, null, N(l(u), (c) => (v(), f("option", {
1934
1934
  key: c,
1935
1935
  value: c
1936
- }, p(c), 9, ap))), 128))
1936
+ }, p(c), 9, op))), 128))
1937
1937
  ], 512), [
1938
1938
  [_e, V.type]
1939
1939
  ])
@@ -1946,7 +1946,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1946
1946
  (v(!0), f(_, null, N(l(m), (c) => (v(), f("option", {
1947
1947
  key: c,
1948
1948
  value: c
1949
- }, p(c), 9, lp))), 128))
1949
+ }, p(c), 9, ap))), 128))
1950
1950
  ], 512), [
1951
1951
  [_e, V.severity]
1952
1952
  ])
@@ -1959,7 +1959,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1959
1959
  (v(!0), f(_, null, N(l(g), (c) => (v(), f("option", {
1960
1960
  key: c,
1961
1961
  value: c
1962
- }, p(c), 9, sp))), 128))
1962
+ }, p(c), 9, lp))), 128))
1963
1963
  ], 512), [
1964
1964
  [_e, V.sourceSide]
1965
1965
  ])
@@ -1983,7 +1983,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1983
1983
  (v(!0), f(_, null, N(l(C), (c) => (v(), f("option", {
1984
1984
  key: c,
1985
1985
  value: c
1986
- }, p(c), 9, ip))), 128))
1986
+ }, p(c), 9, sp))), 128))
1987
1987
  ], 512), [
1988
1988
  [_e, V.ownerRole]
1989
1989
  ])
@@ -1997,8 +1997,8 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
1997
1997
  [z, V.description]
1998
1998
  ])
1999
1999
  ]),
2000
- e("section", rp, [
2001
- e("div", up, [
2000
+ e("section", ip, [
2001
+ e("div", rp, [
2002
2002
  X(l(Gl), { class: "h-4 w-4" }),
2003
2003
  d[74] || (d[74] = e("span", null, "问题截图", -1))
2004
2004
  ]),
@@ -2010,8 +2010,8 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
2010
2010
  var L;
2011
2011
  return (L = ot.value) == null ? void 0 : L.click();
2012
2012
  })
2013
- }, " 添加图片 / 粘贴截图 ", 8, cp),
2014
- U.value.length ? (v(), f("div", dp, [
2013
+ }, " 添加图片 / 粘贴截图 ", 8, up),
2014
+ U.value.length ? (v(), f("div", cp, [
2015
2015
  (v(!0), f(_, null, N(U.value, (c) => (v(), f("article", {
2016
2016
  key: c.id
2017
2017
  }, [
@@ -2024,8 +2024,8 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
2024
2024
  src: l(ya)(c.url),
2025
2025
  alt: c.name,
2026
2026
  loading: "lazy"
2027
- }, null, 8, vp)
2028
- ], 8, pp),
2027
+ }, null, 8, pp)
2028
+ ], 8, dp),
2029
2029
  e("div", null, [
2030
2030
  e("b", null, p(c.name), 1),
2031
2031
  e("span", null, p(x(c.size)), 1)
@@ -2036,10 +2036,10 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
2036
2036
  onClick: (L) => $n(c.id)
2037
2037
  }, [
2038
2038
  X(l(hn), { class: "h-4 w-4" })
2039
- ], 8, fp)
2039
+ ], 8, vp)
2040
2040
  ]))), 128))
2041
2041
  ])) : w("", !0),
2042
- ie.value.length ? (v(), f("div", mp, [
2042
+ ie.value.length ? (v(), f("div", fp, [
2043
2043
  (v(!0), f(_, null, N(ie.value, (c) => (v(), f("article", {
2044
2044
  key: c.id,
2045
2045
  class: P(`is-${c.status}`)
@@ -2047,11 +2047,11 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
2047
2047
  e("img", {
2048
2048
  src: c.previewUrl,
2049
2049
  alt: c.name
2050
- }, null, 8, gp),
2050
+ }, null, 8, mp),
2051
2051
  e("div", null, [
2052
2052
  e("b", null, p(c.name), 1),
2053
2053
  e("span", null, p(x(c.size)), 1),
2054
- c.error ? (v(), f("small", bp, p(c.error), 1)) : w("", !0)
2054
+ c.error ? (v(), f("small", gp, p(c.error), 1)) : w("", !0)
2055
2055
  ]),
2056
2056
  e("button", {
2057
2057
  type: "button",
@@ -2059,13 +2059,13 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
2059
2059
  onClick: (L) => $(c.id)
2060
2060
  }, [
2061
2061
  X(l(hn), { class: "h-4 w-4" })
2062
- ], 8, yp)
2062
+ ], 8, bp)
2063
2063
  ], 2))), 128))
2064
2064
  ])) : w("", !0),
2065
- ve.value ? (v(), f("p", hp, p(ve.value), 1)) : w("", !0)
2065
+ ve.value ? (v(), f("p", yp, p(ve.value), 1)) : w("", !0)
2066
2066
  ]),
2067
- ee.value ? (v(), f("p", wp, p(ee.value), 1)) : w("", !0),
2068
- e("div", xp, [
2067
+ ee.value ? (v(), f("p", hp, p(ee.value), 1)) : w("", !0),
2068
+ e("div", wp, [
2069
2069
  e("button", {
2070
2070
  type: "button",
2071
2071
  onClick: Go
@@ -2073,11 +2073,11 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
2073
2073
  e("button", {
2074
2074
  type: "submit",
2075
2075
  disabled: l(q) === "loading"
2076
- }, "保存修改", 8, Sp)
2076
+ }, "保存修改", 8, xp)
2077
2077
  ])
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, [
2078
+ ], 32)) : (v(), f("p", Sp, p(W.value.description), 1)),
2079
+ e("p", kp, "提报人:" + p(W.value.reporterName) + " · " + p(Ht(W.value.createdAt)), 1),
2080
+ !De.value && ((O = W.value.attachments) != null && O.length) ? (v(), f("section", Cp, [
2081
2081
  d[75] || (d[75] = e("h3", null, "问题截图", -1)),
2082
2082
  e("div", null, [
2083
2083
  (v(!0), f(_, null, N(W.value.attachments, (c) => (v(), f("button", {
@@ -2089,16 +2089,16 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
2089
2089
  src: l(ya)(c.url),
2090
2090
  alt: c.name,
2091
2091
  loading: "lazy"
2092
- }, null, 8, Ip),
2092
+ }, null, 8, _p),
2093
2093
  e("span", null, p(c.name), 1)
2094
- ], 8, _p))), 128))
2094
+ ], 8, $p))), 128))
2095
2095
  ])
2096
2096
  ])) : w("", !0),
2097
2097
  e("form", {
2098
2098
  class: "bug-status-form",
2099
2099
  onSubmit: re(lo, ["prevent"])
2100
2100
  }, [
2101
- e("div", Pp, [
2101
+ e("div", Ip, [
2102
2102
  X(l(zl), { class: "h-4 w-4" }),
2103
2103
  d[76] || (d[76] = e("span", null, "状态变更", -1))
2104
2104
  ]),
@@ -2110,12 +2110,12 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
2110
2110
  (v(!0), f(_, null, N(l(I), (c) => (v(), f("option", {
2111
2111
  key: c,
2112
2112
  value: c
2113
- }, p(c), 9, Dp))), 128))
2113
+ }, p(c), 9, Pp))), 128))
2114
2114
  ], 512), [
2115
2115
  [_e, Z.status]
2116
2116
  ])
2117
2117
  ]),
2118
- e("div", Ap, [
2118
+ e("div", Dp, [
2119
2119
  e("label", null, [
2120
2120
  d[78] || (d[78] = e("span", null, "操作人姓名", -1)),
2121
2121
  A(e("input", {
@@ -2132,7 +2132,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
2132
2132
  "onUpdate:modelValue": d[33] || (d[33] = (c) => Z.fixerName = c),
2133
2133
  type: "text",
2134
2134
  placeholder: Z.status === "已修复" ? "已修复时必填" : "选填"
2135
- }, null, 8, Np), [
2135
+ }, null, 8, Ap), [
2136
2136
  [z, Z.fixerName]
2137
2137
  ])
2138
2138
  ])
@@ -2146,23 +2146,23 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
2146
2146
  [z, Z.note]
2147
2147
  ])
2148
2148
  ]),
2149
- Le.value ? (v(), f("p", Tp, p(Le.value), 1)) : w("", !0),
2149
+ Le.value ? (v(), f("p", Np, p(Le.value), 1)) : w("", !0),
2150
2150
  e("button", {
2151
2151
  class: "bug-primary-btn",
2152
2152
  type: "submit",
2153
2153
  disabled: l(q) === "loading"
2154
- }, "提交状态变更", 8, Rp)
2154
+ }, "提交状态变更", 8, Tp)
2155
2155
  ], 32),
2156
- e("section", Ep, [
2156
+ e("section", Rp, [
2157
2157
  d[81] || (d[81] = e("h3", null, "处理记录", -1)),
2158
- W.value.history.length ? w("", !0) : (v(), f("p", Op, "暂无状态变更记录。")),
2158
+ W.value.history.length ? w("", !0) : (v(), f("p", Ep, "暂无状态变更记录。")),
2159
2159
  (v(!0), f(_, null, N(W.value.history, (c) => (v(), f("article", {
2160
2160
  key: c.id
2161
2161
  }, [
2162
2162
  e("b", null, p(c.fromStatus) + " → " + p(c.toStatus), 1),
2163
2163
  e("span", null, p(c.operatorName) + " · " + p(Ht(c.createdAt)), 1),
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
+ c.fixerName ? (v(), f("p", Op, "修复人:" + p(c.fixerName), 1)) : w("", !0),
2165
+ c.note ? (v(), f("p", Bp, p(c.note), 1)) : w("", !0)
2166
2166
  ]))), 128))
2167
2167
  ])
2168
2168
  ])
@@ -2172,7 +2172,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
2172
2172
  class: "bug-image-preview-backdrop",
2173
2173
  onClick: d[36] || (d[36] = re((c) => fe.value = null, ["self"]))
2174
2174
  }, [
2175
- e("section", Up, [
2175
+ e("section", Mp, [
2176
2176
  e("div", null, [
2177
2177
  e("p", null, p(fe.value.name), 1),
2178
2178
  e("button", {
@@ -2186,7 +2186,7 @@ const Jc = { class: "bug-page" }, Xc = { class: "bug-page-head" }, Zc = ["disabl
2186
2186
  e("img", {
2187
2187
  src: fe.value.url,
2188
2188
  alt: fe.value.name
2189
- }, null, 8, jp)
2189
+ }, null, 8, Up)
2190
2190
  ])
2191
2191
  ])) : w("", !0)
2192
2192
  ]);
@@ -2202,20 +2202,20 @@ const Ts = ye().remoteReadable;
2202
2202
  function Rs(t) {
2203
2203
  return t.split("/").map(encodeURIComponent).join("/");
2204
2204
  }
2205
- function Lp(t) {
2205
+ function Vp(t) {
2206
2206
  return btoa(unescape(encodeURIComponent(t)));
2207
2207
  }
2208
- function Fp(t) {
2208
+ function Lp(t) {
2209
2209
  return decodeURIComponent(escape(atob(t.replace(/\s/g, ""))));
2210
2210
  }
2211
- function Kp(t) {
2211
+ function Fp(t) {
2212
2212
  return t === "pageDescriptions" ? "page-descriptions" : t;
2213
2213
  }
2214
2214
  function jt(t, n) {
2215
2215
  const s = ye(), r = `projects/${s.projectId}/branches/${s.branchKey}`;
2216
- return t === "flows" ? `${r}/flows.json` : `${r}/${Kp(t)}/${n ?? "manifest"}.json`;
2216
+ return t === "flows" ? `${r}/flows.json` : `${r}/${Fp(t)}/${n ?? "manifest"}.json`;
2217
2217
  }
2218
- function zp(t, n) {
2218
+ function Kp(t, n) {
2219
2219
  const s = ye();
2220
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`;
2221
2221
  }
@@ -2237,7 +2237,7 @@ async function Vt(t) {
2237
2237
  if (u.status === 404) return null;
2238
2238
  if (!u.ok) throw new Error(`读取 Gitee 文件失败:${u.status}`);
2239
2239
  const m = await u.json(), g = ds(m, t);
2240
- if (g) return { value: JSON.parse(Fp(g.content)), sha: g.sha, legacy: !1 };
2240
+ if (g) return { value: JSON.parse(Lp(g.content)), sha: g.sha, legacy: !1 };
2241
2241
  if (Array.isArray(m)) return null;
2242
2242
  const C = m && typeof m == "object" ? Object.keys(m).join(",") || "empty" : typeof m;
2243
2243
  throw new Error(`Gitee 文件响应格式异常:${u.status} / ${C}`);
@@ -2248,7 +2248,7 @@ async function Lt(t, n) {
2248
2248
  const s = await Vt(jt(t, n));
2249
2249
  if (s) return s;
2250
2250
  if (ye().codeBranch !== "main") return null;
2251
- const u = zp(t, n);
2251
+ const u = Kp(t, n);
2252
2252
  if (!u) return null;
2253
2253
  const m = await Vt(u);
2254
2254
  return m ? { ...m, legacy: !0 } : null;
@@ -2257,7 +2257,7 @@ async function Zn(t, n, s, r) {
2257
2257
  const u = ye();
2258
2258
  if (!u.remoteWritable) return;
2259
2259
  const m = `${Ns}/repos/${encodeURIComponent(u.owner)}/${encodeURIComponent(u.repo)}/contents/${Rs(t)}`, g = new URLSearchParams();
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);
2260
+ g.set("access_token", u.token), g.set("branch", u.remoteBranch), g.set("content", Vp(JSON.stringify(n, null, 2))), g.set("message", r), s && g.set("sha", s);
2261
2261
  const C = await fetch(m, {
2262
2262
  method: s ? "PUT" : "POST",
2263
2263
  headers: { "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8" },
@@ -2283,10 +2283,10 @@ function Vn(t, n, s, r) {
2283
2283
  return g ? cs(g.value, s) : (await Zn(m, s, null, qn(n ?? "all", r, "初始化", t)), "created");
2284
2284
  });
2285
2285
  }
2286
- async function Gp() {
2286
+ async function zp() {
2287
2287
  return !!await Vt(Es());
2288
2288
  }
2289
- function Hp(t, n) {
2289
+ function Gp(t, n) {
2290
2290
  return Jn("initialization:marker", async () => {
2291
2291
  const s = Es(), r = await Vt(s);
2292
2292
  return r ? cs(r.value, t) : (await Zn(s, t, null, qn("all", n, "初始化完成", "flows")), "created");
@@ -2312,50 +2312,50 @@ async function Bs(t, n, s, r) {
2312
2312
  return null;
2313
2313
  });
2314
2314
  }
2315
- function Wp() {
2315
+ function Hp() {
2316
2316
  return Lt("annotations");
2317
2317
  }
2318
2318
  function $a(t) {
2319
2319
  return Lt("annotations", t);
2320
2320
  }
2321
- async function Yp(t, n, s, r) {
2321
+ async function Wp(t, n, s, r) {
2322
2322
  return Jn(`annotations:${t}`, async () => {
2323
2323
  var I;
2324
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 : []);
2325
2325
  return await Zn(jt("annotations", t), C, (u == null ? void 0 : u.sha) ?? null, qn(t, n, s, "annotations")), $a(t);
2326
2326
  });
2327
2327
  }
2328
- async function Jp(t, n, s) {
2328
+ async function Yp(t, n, s) {
2329
2329
  return Bs("annotations", t, n, s);
2330
2330
  }
2331
- function Xp() {
2331
+ function Jp() {
2332
2332
  return Lt("pageDescriptions");
2333
2333
  }
2334
- function Zp(t) {
2334
+ function Xp(t) {
2335
2335
  return Lt("pageDescriptions", t);
2336
2336
  }
2337
- function qp(t, n, s) {
2337
+ function Zp(t, n, s) {
2338
2338
  return Os("pageDescriptions", s, t, n, "保存");
2339
2339
  }
2340
- function Qp(t, n, s) {
2340
+ function qp(t, n, s) {
2341
2341
  return Bs("pageDescriptions", t, n, s);
2342
2342
  }
2343
- function ev() {
2343
+ function Qp() {
2344
2344
  return Lt("flows");
2345
2345
  }
2346
- function tv(t, n) {
2346
+ function ev(t, n) {
2347
2347
  return Os("flows", { version: "1.0.0", flows: n }, "", t, "保存");
2348
2348
  }
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] = [
2349
+ const tv = {}, nv = { class: "flex min-h-full flex-col items-center justify-center bg-canvas px-8 text-center text-ink" };
2350
+ function ov(t, n) {
2351
+ return v(), f("section", nv, [...n[0] || (n[0] = [
2352
2352
  e("div", { class: "rounded-[28px] border border-line bg-panel px-7 py-8 shadow-sm" }, [
2353
2353
  e("p", { class: "text-lg font-semibold" }, "暂无原型页面"),
2354
2354
  e("p", { class: "mt-2 text-sm leading-6 text-muted" }, "请先在产品注册表中配置页面、状态与流程。")
2355
2355
  ], -1)
2356
2356
  ])]);
2357
2357
  }
2358
- const lv = /* @__PURE__ */ is(nv, [["render", av]]), { copy: sv, pages: Ms, states: Us, flows: iv, extendContext: ha } = eu(), tt = {
2358
+ const av = /* @__PURE__ */ is(tv, [["render", ov]]), { copy: lv, pages: Ms, states: Us, flows: sv, extendContext: ha } = eu(), tt = {
2359
2359
  ocean: "#1d1d1f",
2360
2360
  ink: "#1d1d1f",
2361
2361
  muted: "#747579",
@@ -2369,7 +2369,7 @@ const lv = /* @__PURE__ */ is(nv, [["render", av]]), { copy: sv, pages: Ms, stat
2369
2369
  dark: "#232326",
2370
2370
  device: "#1d1d1f",
2371
2371
  head: "#f5f5f7"
2372
- }, rv = [
2372
+ }, iv = [
2373
2373
  { id: "default", nameKey: "themeDefault", descriptionKey: "themeDefaultDesc", colors: tt },
2374
2374
  {
2375
2375
  id: "warm",
@@ -2415,11 +2415,11 @@ const lv = /* @__PURE__ */ is(nv, [["render", av]]), { copy: sv, pages: Ms, stat
2415
2415
  { key: "dark", labelKey: "themeColorDark", descKey: "themeColorDarkDesc" },
2416
2416
  { key: "device", labelKey: "themeColorDevice", descKey: "themeColorDeviceDesc" },
2417
2417
  { key: "head", labelKey: "themeColorHead", descKey: "themeColorHeadDesc" }
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({});
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 }), rv = b(!1), uv = 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({});
2419
2419
  Object.entries(Us).forEach(([t, n]) => {
2420
2420
  n.length && (Ua[t] = n[0].id);
2421
2421
  });
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({
2422
+ const cv = b("annotations"), It = b(Ts), Ut = b("idle"), Ft = b(Ts ? "云端协作已启用" : "本地兜底模式"), nt = b(""), xn = b(Fs), Ro = b(String(Fs)), Pa = b(""), dv = b(!1), pv = 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({
2423
2423
  highlighted: !1,
2424
2424
  purpose: "",
2425
2425
  structure: "",
@@ -2434,7 +2434,7 @@ const dv = b("annotations"), It = b(Ts), Ut = b("idle"), Ft = b(Ts ? "云端协
2434
2434
  annotations: { source: "local-seed", status: "idle" },
2435
2435
  pageDescriptions: { source: "local-seed", status: "idle" },
2436
2436
  flows: { source: "local-seed", status: "idle" }
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;
2437
+ }), Mt = b("idle"), Ie = b({ current: 0, total: 0, label: "" }), tn = b(""), vv = b(!1), Ws = k(() => It.value && we.remoteWritable), fv = b(1), mv = b(3), Wn = b(null), an = Ms;
2438
2438
  function it() {
2439
2439
  return typeof window > "u" ? null : window.localStorage;
2440
2440
  }
@@ -2445,7 +2445,7 @@ function Js(t) {
2445
2445
  var n, s;
2446
2446
  Ys.value = t, t ? (n = it()) == null || n.setItem(Da, "true") : (s = it()) == null || s.removeItem(Da);
2447
2447
  }
2448
- const bv = k(() => {
2448
+ const gv = k(() => {
2449
2449
  var r;
2450
2450
  const t = Object.values(me.value);
2451
2451
  if (t.some((u) => u.status === "conflict")) return "数据冲突";
@@ -2456,17 +2456,17 @@ const bv = k(() => {
2456
2456
  }), Xs = k(() => {
2457
2457
  const t = Object.values(me.value);
2458
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";
2459
- }), yv = k(() => {
2459
+ }), bv = k(() => {
2460
2460
  const t = Object.values(me.value).map((n) => n.syncedAt).filter((n) => !!n).sort();
2461
2461
  return t[t.length - 1] ?? "";
2462
- }), hv = k(() => {
2462
+ }), yv = k(() => {
2463
2463
  if (Mt.value === "running") return `正在初始化 Gitee · ${Ie.value.current} / ${Ie.value.total}`;
2464
2464
  if (tn.value) return tn.value;
2465
2465
  if (!we.remoteWritable) return we.unavailableReason;
2466
2466
  if (Xs.value === "conflict") return "远端已更新,请处理本地草稿";
2467
2467
  const t = Object.values(me.value).find((n) => n.status === "error");
2468
2468
  return (t == null ? void 0 : t.message) || "注释 / 页面描述 / 流程";
2469
- }), wv = k(() => we.remoteWritable && Mt.value !== "running");
2469
+ }), hv = k(() => we.remoteWritable && Mt.value !== "running");
2470
2470
  function te(t, n, s, r = "", u) {
2471
2471
  me.value = {
2472
2472
  ...me.value,
@@ -2476,42 +2476,42 @@ function te(t, n, s, r = "", u) {
2476
2476
  function La(t, n) {
2477
2477
  te(t, me.value[t].source, "conflict", n), Ut.value = "error", Ft.value = n;
2478
2478
  }
2479
- function xv(t, n) {
2479
+ function wv(t, n) {
2480
2480
  Hn.value = { ...Hn.value, [t]: n };
2481
2481
  }
2482
2482
  function Zs(t) {
2483
- return sv[Gs.value][t] ?? t;
2483
+ return lv[Gs.value][t] ?? t;
2484
2484
  }
2485
2485
  function Fa(t) {
2486
2486
  return /^#[0-9a-fA-F]{6}$/.test(t);
2487
2487
  }
2488
- function Sv(t) {
2488
+ function xv(t) {
2489
2489
  const n = t.replace("#", ""), s = Number.parseInt(n, 16);
2490
2490
  return Number.isNaN(s) ? "0 0 0" : `${s >> 16 & 255} ${s >> 8 & 255} ${s & 255}`;
2491
2491
  }
2492
2492
  const qs = k(() => [
2493
- ...rv,
2493
+ ...iv,
2494
2494
  { id: "custom", nameKey: "themeCustom", descriptionKey: "themeCustomDesc", colors: _t.value }
2495
2495
  ]), Qs = k(() => {
2496
2496
  var t;
2497
2497
  return ((t = qs.value.find((n) => n.id === ct.value)) == null ? void 0 : t.colors) ?? tt;
2498
- }), kv = k(
2499
- () => Object.fromEntries(Object.entries(Qs.value).map(([t, n]) => [`--color-${t}`, Sv(n)]))
2498
+ }), Sv = k(
2499
+ () => Object.fromEntries(Object.entries(Qs.value).map(([t, n]) => [`--color-${t}`, xv(n)]))
2500
2500
  );
2501
- function Cv(t) {
2501
+ function kv(t) {
2502
2502
  ct.value = t;
2503
2503
  }
2504
- function $v(t, n) {
2504
+ function Cv(t, n) {
2505
2505
  Fa(n) && (_t.value = { ..._t.value, [t]: n }, ct.value = "custom");
2506
2506
  }
2507
- function _v() {
2507
+ function $v() {
2508
2508
  _t.value = { ...tt }, ct.value = "default";
2509
2509
  }
2510
- function Iv() {
2510
+ function _v() {
2511
2511
  const t = new Blob([JSON.stringify({ selectedThemeId: "custom", colors: _t.value }, null, 2)], { type: "application/json;charset=utf-8" }), n = document.createElement("a");
2512
2512
  n.href = URL.createObjectURL(t), n.download = "prototype-core-theme.json", n.click(), URL.revokeObjectURL(n.href);
2513
2513
  }
2514
- function Pv(t) {
2514
+ function Iv(t) {
2515
2515
  var r;
2516
2516
  const n = (r = t.target.files) == null ? void 0 : r[0];
2517
2517
  if (!n) return;
@@ -2534,7 +2534,7 @@ const ei = {
2534
2534
  title: "暂无原型页面",
2535
2535
  subtitle: "等待产品注册",
2536
2536
  icon: ss,
2537
- component: lv,
2537
+ component: av,
2538
2538
  hasTabBar: !1
2539
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(
2540
2540
  () => {
@@ -2574,7 +2574,7 @@ const He = k(() => Ua[Re.value]), ni = k(() => ({
2574
2574
  ...Ka.value,
2575
2575
  stateId: He.value,
2576
2576
  stateLabel: He.value ? Ga(Re.value, He.value) : void 0
2577
- })), Dv = k(() => Ka.value.platform), Av = k(
2577
+ })), Pv = k(() => Ka.value.platform), Dv = k(
2578
2578
  () => an.flatMap((t) => {
2579
2579
  const n = Gt(t.id);
2580
2580
  return n.length ? n.map((s) => ({
@@ -2583,7 +2583,7 @@ const He = k(() => Ua[Re.value]), ni = k(() => ({
2583
2583
  stateLabel: s.label
2584
2584
  })) : [{ ...t }];
2585
2585
  })
2586
- ), Nv = k(() => Ia.value === "overview" ? Av.value : Ia.value === "flow" ? za.value : [ni.value]), Tv = k(() => Gt(Re.value));
2586
+ ), Av = k(() => Ia.value === "overview" ? Dv.value : Ia.value === "flow" ? za.value : [ni.value]), Nv = k(() => Gt(Re.value));
2587
2587
  function Na(t, n) {
2588
2588
  const s = n === void 0 ? Re.value : t, r = n ?? t;
2589
2589
  Ua[s] = r;
@@ -2593,7 +2593,7 @@ function Eo(t) {
2593
2593
  const n = an.find((s) => s.id === t);
2594
2594
  n != null && n.hasTabBar && (Ma.value = t);
2595
2595
  }
2596
- function Rv(t) {
2596
+ function Tv(t) {
2597
2597
  Eo(t);
2598
2598
  const n = He.value, s = n ? Ra(t, n) : di(t), r = Gt(t).find((u) => Ra(t, u.id) > 0);
2599
2599
  s <= 0 && r && Na(t, r.id);
@@ -2620,14 +2620,14 @@ function Fo(t) {
2620
2620
  function li(t) {
2621
2621
  return Vo(t).some((n) => Fo(n));
2622
2622
  }
2623
- function Ev(t) {
2623
+ function Rv(t) {
2624
2624
  const n = Gt(t), s = /* @__PURE__ */ new Set();
2625
2625
  return n.forEach((r) => {
2626
2626
  Fo(B(t, r.id)) && s.add(r.id);
2627
2627
  }), s;
2628
2628
  }
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
+ const Ev = k(() => Rv(Re.value)), Ov = k(() => li(Re.value)), Bv = k(() => Fo(Lo())), si = k(() => Y.value.find((t) => t.id === ja.value) ?? null), Mv = k(() => Y.value.find((t) => t.id === jo.value) ?? null);
2630
+ function Uv(t) {
2631
2631
  return { left: `${t.x}%`, top: `${t.y}%` };
2632
2632
  }
2633
2633
  function Ha() {
@@ -2695,7 +2695,7 @@ async function xa(t, n) {
2695
2695
  return n;
2696
2696
  }
2697
2697
  }
2698
- async function Vv() {
2698
+ async function jv() {
2699
2699
  var Se, ke, Je, ue, Ce;
2700
2700
  const t = (Se = it()) == null ? void 0 : Se.getItem(Vs);
2701
2701
  t && (nt.value = t);
@@ -2714,7 +2714,7 @@ async function Vv() {
2714
2714
  ]), g = {
2715
2715
  annotations: Wa(m),
2716
2716
  pageDescriptions: ii(u),
2717
- flows: Array.isArray(r.flows) && r.flows.length ? r.flows : iv.flows
2717
+ flows: Array.isArray(r.flows) && r.flows.length ? r.flows : sv.flows
2718
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
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;
2720
2720
  }
@@ -2760,16 +2760,16 @@ function Ta(t, n, s, r) {
2760
2760
  }, 0);
2761
2761
  g.screens = { ...g.screens, [t]: { count: C, updatedAt: u } }, g.updatedAt = u, zt.value = g;
2762
2762
  }
2763
- async function Lv(t, n = to(t, He.value)) {
2763
+ async function Vv(t, n = to(t, He.value)) {
2764
2764
  var g;
2765
2765
  const s = await $a(B(t, n));
2766
2766
  if (!s) return !1;
2767
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();
2768
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;
2769
2769
  }
2770
- async function Fv() {
2770
+ async function Lv() {
2771
2771
  var C;
2772
- const t = Re.value, n = He.value, s = B(t, n), r = await Zp(B(t, n));
2772
+ const t = Re.value, n = He.value, s = B(t, n), r = await Xp(B(t, n));
2773
2773
  if (!r) return !1;
2774
2774
  const u = ii([{ ...r.value, screenId: t, stateId: n }])[0];
2775
2775
  if (!u) return;
@@ -2785,9 +2785,9 @@ async function Ya(t = !1) {
2785
2785
  }
2786
2786
  Ut.value = "syncing", te("annotations", me.value.annotations.source, "syncing");
2787
2787
  try {
2788
- const r = await Wp();
2788
+ const r = await Hp();
2789
2789
  Kt.value = (r == null ? void 0 : r.value) ?? Kt.value;
2790
- const u = await Lv(Re.value, He.value), m = B(Re.value, He.value);
2790
+ const u = await Vv(Re.value, He.value), m = B(Re.value, He.value);
2791
2791
  if (!u && r && !((n = r.value.scopes) != null && n[m])) {
2792
2792
  const g = Y.value.filter((I) => B(I.screenId, I.stateId) !== m), C = (/* @__PURE__ */ new Date()).toISOString();
2793
2793
  We("annotations", g, r.sha, C), Y.value = ((s = rt("annotations")) == null ? void 0 : s.value) ?? g, te("annotations", "gitee", "success", "", C);
@@ -2807,8 +2807,8 @@ async function Ja(t = !1) {
2807
2807
  }
2808
2808
  Ut.value = "syncing", te("pageDescriptions", me.value.pageDescriptions.source, "syncing");
2809
2809
  try {
2810
- const n = await Xp();
2811
- if (zt.value = (n == null ? void 0 : n.value) ?? zt.value, !await Fv()) throw new Error("Gitee 当前页面描述不存在");
2810
+ const n = await Jp();
2811
+ if (zt.value = (n == null ? void 0 : n.value) ?? zt.value, !await Lv()) throw new Error("Gitee 当前页面描述不存在");
2812
2812
  Ut.value = "success", Ft.value = "页面说明已同步";
2813
2813
  } catch (n) {
2814
2814
  Ut.value = "error", Ft.value = "页面说明同步失败", te("pageDescriptions", me.value.pageDescriptions.source, "error", n instanceof Error ? n.message : "页面描述同步失败");
@@ -2828,7 +2828,7 @@ async function ri(t = !1) {
2828
2828
  }
2829
2829
  te("flows", me.value.flows.source, "syncing");
2830
2830
  try {
2831
- const m = await ev(), g = Array.isArray((s = m == null ? void 0 : m.value) == null ? void 0 : s.flows) ? m.value.flows : null;
2831
+ const m = await Qp(), g = Array.isArray((s = m == null ? void 0 : m.value) == null ? void 0 : s.flows) ? m.value.flows : null;
2832
2832
  if (!m || !g) throw new Error("Gitee 流程文件不存在");
2833
2833
  const C = (/* @__PURE__ */ new Date()).toISOString();
2834
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);
@@ -2856,12 +2856,12 @@ function Ql(t) {
2856
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 };
2857
2857
  }), { projectId: we.projectId, updatedAt: n, scopes: u, screens: m };
2858
2858
  }
2859
- async function Kv() {
2859
+ async function Fv() {
2860
2860
  if (!we.remoteWritable || Mt.value === "running") return;
2861
2861
  const t = nt.value.trim() || "初始化工具";
2862
2862
  Mt.value = "running", tn.value = "", Ie.value = { current: 0, total: 1, label: "检查初始化状态" };
2863
2863
  try {
2864
- if (await Gp()) {
2864
+ if (await zp()) {
2865
2865
  Mt.value = "success", Ie.value = { current: 1, total: 1, label: "远端已初始化" }, tn.value = "远端已初始化:未逐文件检查,未产生重复提交", await Oo(!1);
2866
2866
  return;
2867
2867
  }
@@ -2890,19 +2890,19 @@ async function Kv() {
2890
2890
  }
2891
2891
  if (Ie.value = { ...Ie.value, label: r.failed ? "存在失败,暂不写完成标记" : "写入初始化完成标记" }, !r.failed)
2892
2892
  try {
2893
- r[await Hp({ schemaVersion: 1, branchKey: we.branchKey, completedAt: (/* @__PURE__ */ new Date()).toISOString(), fileCount: n.length }, t)] += 1;
2893
+ r[await Gp({ schemaVersion: 1, branchKey: we.branchKey, completedAt: (/* @__PURE__ */ new Date()).toISOString(), fileCount: n.length }, t)] += 1;
2894
2894
  } catch (u) {
2895
2895
  r.failed += 1, console.error("❌ [Gitee 初始化] 完成标记写入失败", { error: u });
2896
2896
  }
2897
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);
2898
2898
  }
2899
- function zv() {
2899
+ function Kv() {
2900
2900
  Uo.value = !0, Qn.value = null;
2901
2901
  }
2902
2902
  function ui() {
2903
2903
  Uo.value = !1, Qn.value = null, eo.value = "view";
2904
2904
  }
2905
- function Gv(t, n) {
2905
+ function zv(t, n) {
2906
2906
  if (!Uo.value) return;
2907
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;
2908
2908
  Qn.value = {
@@ -2918,10 +2918,10 @@ function Gv(t, n) {
2918
2918
  async function zo(t, n, s, r) {
2919
2919
  if (!It.value) return null;
2920
2920
  try {
2921
- const u = await Yp(B(t, n), nt.value.trim() || "未署名", s, r);
2921
+ const u = await Wp(B(t, n), nt.value.trim() || "未署名", s, r);
2922
2922
  if (!u) return null;
2923
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));
2924
+ Ko(t, n, m.length), Kt.value && await Yp(Kt.value, nt.value.trim() || "未署名", B(t, n));
2925
2925
  const g = (/* @__PURE__ */ new Date()).toISOString(), C = [...Y.value.filter((I) => B(I.screenId, I.stateId) !== B(t, n)), ...m];
2926
2926
  return We("annotations", C, u.sha, g), te("annotations", "gitee", "success", "", g), m;
2927
2927
  } catch (u) {
@@ -2930,7 +2930,7 @@ async function zo(t, n, s, r) {
2930
2930
  return;
2931
2931
  }
2932
2932
  }
2933
- async function Hv() {
2933
+ async function Gv() {
2934
2934
  const t = Qn.value;
2935
2935
  if (!t) return;
2936
2936
  const n = (/* @__PURE__ */ new Date()).toISOString(), s = {
@@ -2945,7 +2945,7 @@ async function Hv() {
2945
2945
  }, r = await zo(t.screenId, t.stateId, "新增", (u) => [...u, s]);
2946
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());
2947
2947
  }
2948
- function Wv(t) {
2948
+ function Hv(t) {
2949
2949
  const n = Y.value.find((s) => s.id === t);
2950
2950
  n && (ja.value = t, Sn.value = {
2951
2951
  featureName: n.featureName,
@@ -2956,7 +2956,7 @@ function Wv(t) {
2956
2956
  function ci() {
2957
2957
  ja.value = "", eo.value = "view";
2958
2958
  }
2959
- async function Yv() {
2959
+ async function Wv() {
2960
2960
  const t = si.value;
2961
2961
  if (!t) return;
2962
2962
  const n = (/* @__PURE__ */ new Date()).toISOString(), s = (u) => u.id === t.id ? {
@@ -2969,7 +2969,7 @@ async function Yv() {
2969
2969
  } : u, r = await zo(t.screenId, t.stateId, "编辑", (u) => u.map(s));
2970
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());
2971
2971
  }
2972
- async function Jv(t, n, s) {
2972
+ async function Yv(t, n, s) {
2973
2973
  const r = Y.value.find((I) => I.id === t);
2974
2974
  if (!r) return !1;
2975
2975
  const u = (/* @__PURE__ */ new Date()).toISOString(), m = (I) => I.id === t ? {
@@ -2986,19 +2986,19 @@ async function Jv(t, n, s) {
2986
2986
  );
2987
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);
2988
2988
  }
2989
- async function Xv(t) {
2989
+ async function Jv(t) {
2990
2990
  const n = Y.value.find((r) => r.id === t);
2991
2991
  if (!n) return;
2992
2992
  const s = await zo(n.screenId, n.stateId, "删除", (r) => r.filter((u) => u.id !== t));
2993
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));
2994
2994
  }
2995
- function Zv(t) {
2995
+ function Xv(t) {
2996
2996
  Wn.value && window.clearTimeout(Wn.value), jo.value = t;
2997
2997
  }
2998
- function qv() {
2998
+ function Zv() {
2999
2999
  Wn.value && window.clearTimeout(Wn.value);
3000
3000
  }
3001
- function Qv() {
3001
+ function qv() {
3002
3002
  Wn.value = window.setTimeout(() => {
3003
3003
  jo.value = "";
3004
3004
  }, 160);
@@ -3015,7 +3015,7 @@ function Ra(t, n) {
3015
3015
  const s = B(t, n);
3016
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;
3017
3017
  }
3018
- async function ef() {
3018
+ async function Qv() {
3019
3019
  var u;
3020
3020
  const t = Re.value, n = He.value, s = (/* @__PURE__ */ new Date()).toISOString(), r = {
3021
3021
  screenId: t,
@@ -3026,9 +3026,9 @@ async function ef() {
3026
3026
  };
3027
3027
  if (It.value)
3028
3028
  try {
3029
- const m = await qp(B(t, n), r.authorName ?? "未署名", r);
3029
+ const m = await Zp(B(t, n), r.authorName ?? "未署名", r);
3030
3030
  if (!m) return !1;
3031
- Ta(t, n, 1, r.highlighted), zt.value && await Qp(zt.value, r.authorName ?? "未署名", B(t, n));
3031
+ Ta(t, n, 1, r.highlighted), zt.value && await qp(zt.value, r.authorName ?? "未署名", B(t, n));
3032
3032
  const g = [...Me.value.filter((I) => B(I.screenId, I.stateId) !== B(t, n)), r], C = (/* @__PURE__ */ new Date()).toISOString();
3033
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;
3034
3034
  } catch (m) {
@@ -3037,15 +3037,15 @@ async function ef() {
3037
3037
  }
3038
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;
3039
3039
  }
3040
- function tf() {
3040
+ function ef() {
3041
3041
  const t = new Blob([JSON.stringify(Y.value, null, 2)], { type: "application/json;charset=utf-8" }), n = document.createElement("a");
3042
3042
  n.href = URL.createObjectURL(t), n.download = "annotations.json", n.click(), URL.revokeObjectURL(n.href);
3043
3043
  }
3044
- function nf() {
3044
+ function tf() {
3045
3045
  const t = new Blob([JSON.stringify(Me.value, null, 2)], { type: "application/json;charset=utf-8" }), n = document.createElement("a");
3046
3046
  n.href = URL.createObjectURL(t), n.download = "page-descriptions.json", n.click(), URL.revokeObjectURL(n.href);
3047
3047
  }
3048
- function of() {
3048
+ function nf() {
3049
3049
  var n;
3050
3050
  const t = Number(Ro.value);
3051
3051
  if (!Number.isFinite(t)) {
@@ -3054,16 +3054,16 @@ function of() {
3054
3054
  }
3055
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 = "已保存同步间隔";
3056
3056
  }
3057
- const af = k(() => ({
3057
+ const of = k(() => ({
3058
3058
  "--flow-zoom": String(Te.value)
3059
- })), lf = k(() => `${Math.round(Te.value * 100)}%`);
3060
- function sf(t) {
3059
+ })), af = k(() => `${Math.round(Te.value * 100)}%`);
3060
+ function lf(t) {
3061
3061
  return t === "pc" ? 640 : 393;
3062
3062
  }
3063
3063
  function Xa(t) {
3064
3064
  return t === "pc" ? 360 : 902;
3065
3065
  }
3066
- const rf = 88, pi = 152, uf = 260, cf = k(() => {
3066
+ const sf = 88, pi = 152, rf = 260, uf = k(() => {
3067
3067
  const t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map();
3068
3068
  return za.value.forEach((s) => {
3069
3069
  const r = s.flowRow ?? 1;
@@ -3071,7 +3071,7 @@ const rf = 88, pi = 152, uf = 260, cf = k(() => {
3071
3071
  }), n.forEach((s, r) => {
3072
3072
  let u = 0;
3073
3073
  s.sort((m, g) => (m.flowCol ?? 0) - (g.flowCol ?? 0)).forEach((m) => {
3074
- t.set(`${r}-${m.flowCol ?? 1}`, u), u += sf(m.platform) + rf;
3074
+ t.set(`${r}-${m.flowCol ?? 1}`, u), u += lf(m.platform) + sf;
3075
3075
  });
3076
3076
  }), t;
3077
3077
  }), vi = k(() => {
@@ -3080,7 +3080,7 @@ const rf = 88, pi = 152, uf = 260, cf = k(() => {
3080
3080
  const s = n.flowRow ?? 1, r = Xa(n.platform);
3081
3081
  t.set(s, Math.max(t.get(s) ?? 0, r));
3082
3082
  }), t;
3083
- }), df = k(
3083
+ }), cf = k(
3084
3084
  () => {
3085
3085
  var t;
3086
3086
  return ((t = Aa.value) == null ? void 0 : t.rows.map((n, s) => {
@@ -3093,26 +3093,26 @@ const rf = 88, pi = 152, uf = 260, cf = k(() => {
3093
3093
  })) ?? [];
3094
3094
  }
3095
3095
  );
3096
- function pf(t) {
3096
+ function df(t) {
3097
3097
  ut.value = t;
3098
3098
  }
3099
- function vf(t) {
3099
+ function pf(t) {
3100
3100
  Te.value = fi(Te.value + t);
3101
3101
  }
3102
- function ff() {
3102
+ function vf() {
3103
3103
  nn.value = 360, on.value = 150, Te.value = 0.42;
3104
3104
  }
3105
- function mf(t) {
3106
- const n = t.flowRow ?? 1, s = t.flowCol ?? 1, r = cf.value.get(`${n}-${s}`) ?? 0;
3105
+ function ff(t) {
3106
+ const n = t.flowRow ?? 1, s = t.flowCol ?? 1, r = uf.value.get(`${n}-${s}`) ?? 0;
3107
3107
  let u = 0;
3108
3108
  for (let m = 1; m < n; m++)
3109
3109
  u += (vi.value.get(m) ?? Xa("mobile")) + pi;
3110
3110
  return {
3111
- left: `${nn.value + (uf + r) * Te.value}px`,
3111
+ left: `${nn.value + (rf + r) * Te.value}px`,
3112
3112
  top: `${on.value + u * Te.value}px`
3113
3113
  };
3114
3114
  }
3115
- function gf(t) {
3115
+ function mf(t) {
3116
3116
  let n = 0;
3117
3117
  for (let s = 1; s < t; s++)
3118
3118
  n += (vi.value.get(s) ?? Xa("mobile")) + pi;
@@ -3122,16 +3122,16 @@ function gf(t) {
3122
3122
  transform: `scale(${Te.value})`
3123
3123
  };
3124
3124
  }
3125
- function bf(t) {
3125
+ function gf(t) {
3126
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 });
3127
3127
  }
3128
- function yf(t) {
3128
+ function bf(t) {
3129
3129
  Mo.value && (nn.value = Gn.value.panX + t.clientX - Gn.value.x, on.value = Gn.value.panY + t.clientY - Gn.value.y);
3130
3130
  }
3131
- function hf() {
3131
+ function yf() {
3132
3132
  Mo.value = !1;
3133
3133
  }
3134
- function wf(t) {
3134
+ function hf(t) {
3135
3135
  t.preventDefault();
3136
3136
  const n = fi(Te.value + (t.deltaY > 0 ? -0.04 : 0.04));
3137
3137
  if (n === Te.value) return;
@@ -3146,12 +3146,12 @@ function mi(t) {
3146
3146
  const n = JSON.parse(JSON.stringify(t)), s = rt("flows");
3147
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;
3148
3148
  }
3149
- async function xf(t) {
3149
+ async function wf(t) {
3150
3150
  var s, r;
3151
3151
  const n = JSON.parse(JSON.stringify(t));
3152
3152
  if (mi(n), !Ws.value) return !1;
3153
3153
  try {
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;
3154
+ const u = await ev(nt.value.trim() || "未署名", n), m = Array.isArray((s = u == null ? void 0 : u.value) == null ? void 0 : s.flows) ? u.value.flows : null;
3155
3155
  if (!u || !m) return !1;
3156
3156
  const g = (/* @__PURE__ */ new Date()).toISOString();
3157
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;
@@ -3160,14 +3160,14 @@ async function xf(t) {
3160
3160
  return u instanceof Xn ? La("flows", m) : te("flows", me.value.flows.source, "error", m), !1;
3161
3161
  }
3162
3162
  }
3163
- function Sf(t = he.value) {
3163
+ function xf(t = he.value) {
3164
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");
3165
3165
  s.href = URL.createObjectURL(n), s.download = "flows.json", s.click(), URL.revokeObjectURL(s.href);
3166
3166
  }
3167
- function kf() {
3168
- return { saveFlowsToSession: mi, pushFlowsToGitee: xf, exportFlows: Sf };
3167
+ function Sf() {
3168
+ return { saveFlowsToSession: mi, pushFlowsToGitee: wf, exportFlows: xf };
3169
3169
  }
3170
- function Cf() {
3170
+ function kf() {
3171
3171
  const t = {
3172
3172
  ...(ha == null ? void 0 : ha({ go: Eo, goTab: ql, setPrototypeState: Na })) ?? {},
3173
3173
  PanelTop: ss,
@@ -3179,12 +3179,12 @@ function Cf() {
3179
3179
  currentScreen: Re,
3180
3180
  selectedFlowId: ut,
3181
3181
  selectedThemeId: ct,
3182
- showThemePanel: uv,
3183
- themeImportInput: cv,
3182
+ showThemePanel: rv,
3183
+ themeImportInput: uv,
3184
3184
  flowZoom: Te,
3185
3185
  isFlowPanning: Mo,
3186
3186
  selectedTab: Ma,
3187
- activeCollaborationTab: dv,
3187
+ activeCollaborationTab: cv,
3188
3188
  annotationRemoteReady: It,
3189
3189
  annotationSyncStatus: Ut,
3190
3190
  annotationSyncLabel: Ft,
@@ -3195,16 +3195,16 @@ function Cf() {
3195
3195
  collaborationInitialized: Hs,
3196
3196
  collaborationContext: we,
3197
3197
  collaborationSources: me,
3198
- collaborationSourceLabel: bv,
3198
+ collaborationSourceLabel: gv,
3199
3199
  collaborationSourceTone: Xs,
3200
- collaborationSourceDetail: hv,
3201
- collaborationLastSyncedAt: yv,
3200
+ collaborationSourceDetail: yv,
3201
+ collaborationLastSyncedAt: bv,
3202
3202
  collaborationBootstrapStatus: Mt,
3203
3203
  collaborationBootstrapProgress: Ie,
3204
3204
  collaborationBootstrapMessage: tn,
3205
- canInitializeRemote: wv,
3206
- annotationPanelCollapsed: pv,
3207
- annotationPointsVisible: vv,
3205
+ canInitializeRemote: hv,
3206
+ annotationPanelCollapsed: dv,
3207
+ annotationPointsVisible: pv,
3208
3208
  isPlacingAnnotation: Uo,
3209
3209
  hoveredAnnotationId: jo,
3210
3210
  annotationDraft: Qn,
@@ -3216,117 +3216,117 @@ function Cf() {
3216
3216
  pageDescriptionEditor: Va,
3217
3217
  activeThemeColors: Qs,
3218
3218
  themeOptions: qs,
3219
- themeStyle: kv,
3219
+ themeStyle: Sv,
3220
3220
  screens: an,
3221
3221
  mainFlows: he,
3222
- showFlowEditor: fv,
3222
+ showFlowEditor: vv,
3223
3223
  canPushFlowsToRemote: Ws,
3224
3224
  currentMeta: Ka,
3225
3225
  currentDisplayScreen: ni,
3226
- currentScreenPlatform: Dv,
3227
- flowRows: df,
3228
- visibleScreens: Nv,
3229
- prototypeStateOptions: Tv,
3226
+ currentScreenPlatform: Pv,
3227
+ flowRows: cf,
3228
+ visibleScreens: Av,
3229
+ prototypeStateOptions: Nv,
3230
3230
  activePrototypeStateId: He,
3231
3231
  getPrototypeStateOptions: Gt,
3232
3232
  getPrototypeStateLabel: Ga,
3233
3233
  normalizePrototypeStateId: to,
3234
- flowGridStyle: af,
3235
- flowZoomPercent: lf,
3234
+ flowGridStyle: of,
3235
+ flowZoomPercent: af,
3236
3236
  currentScreenAnnotations: oi,
3237
3237
  currentPageDescription: ai,
3238
3238
  isScopeHighlighted: Fo,
3239
3239
  isScreenHighlighted: li,
3240
- activeScreenHighlightedStateIds: Ov,
3241
- activeScreenHighlighted: Bv,
3242
- activeScopeHighlighted: Mv,
3243
- hoveredAnnotation: Uv,
3244
- initializePrototype: Vv,
3240
+ activeScreenHighlightedStateIds: Ev,
3241
+ activeScreenHighlighted: Ov,
3242
+ activeScopeHighlighted: Bv,
3243
+ hoveredAnnotation: Mv,
3244
+ initializePrototype: jv,
3245
3245
  t: Zs,
3246
- selectTheme: Cv,
3247
- updateCustomThemeColor: $v,
3248
- resetCustomTheme: _v,
3249
- exportCustomTheme: Iv,
3250
- importCustomTheme: Pv,
3246
+ selectTheme: kv,
3247
+ updateCustomThemeColor: Cv,
3248
+ resetCustomTheme: $v,
3249
+ exportCustomTheme: _v,
3250
+ importCustomTheme: Iv,
3251
3251
  setPrototypeState: Na,
3252
3252
  go: Eo,
3253
- goToAnnotatedScreen: Rv,
3253
+ goToAnnotatedScreen: Tv,
3254
3254
  goTab: ql,
3255
- startAnnotationPlacement: zv,
3255
+ startAnnotationPlacement: Kv,
3256
3256
  cancelAnnotationDraft: ui,
3257
- handleAnnotationCanvasClick: Gv,
3258
- saveAnnotationDraft: Hv,
3259
- openAnnotationDialog: Wv,
3257
+ handleAnnotationCanvasClick: zv,
3258
+ saveAnnotationDraft: Gv,
3259
+ openAnnotationDialog: Hv,
3260
3260
  closeAnnotationDialog: ci,
3261
- saveAnnotationEdit: Yv,
3262
- updateAnnotationPosition: Jv,
3263
- keepAnnotationPopover: qv,
3264
- scheduleHideAnnotationPopover: Qv,
3265
- showAnnotationPopover: Zv,
3266
- removeAnnotation: Xv,
3261
+ saveAnnotationEdit: Wv,
3262
+ updateAnnotationPosition: Yv,
3263
+ keepAnnotationPopover: Zv,
3264
+ scheduleHideAnnotationPopover: qv,
3265
+ showAnnotationPopover: Xv,
3266
+ removeAnnotation: Jv,
3267
3267
  annotationCountByScreen: di,
3268
3268
  annotationCountByState: Ra,
3269
3269
  refreshPrototypeAnnotations: Ya,
3270
3270
  refreshPageDescriptions: Ja,
3271
3271
  refreshFlows: ri,
3272
3272
  refreshAllCollaborationData: Oo,
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
3273
+ setCollaborationEditing: wv,
3274
+ initializeRemoteCollaborationData: Fv,
3275
+ saveAnnotationPollingInterval: nf,
3276
+ exportAnnotations: ef,
3277
+ saveCurrentPageDescription: Qv,
3278
+ exportPageDescriptions: tf,
3279
+ annotationPointStyle: Uv,
3280
+ selectFlow: df,
3281
+ stepFlowZoom: pf,
3282
+ resetFlowView: vf,
3283
+ flowNodeStyle: ff,
3284
+ flowRowLabelStyle: mf,
3285
+ startFlowPan: gf,
3286
+ moveFlowPan: bf,
3287
+ stopFlowPan: yf,
3288
+ zoomFlowAtPoint: hf,
3289
+ overviewZoom: fv,
3290
+ overviewColumns: mv
3291
3291
  };
3292
3292
  return tu(t), t;
3293
3293
  }
3294
- var $f = [];
3295
- const _f = {
3294
+ var Cf = [];
3295
+ const $f = {
3296
3296
  key: 0,
3297
3297
  class: "flex min-h-screen items-center justify-center px-5 py-10"
3298
- }, If = { class: "mt-6 space-y-3 text-left" }, Pf = { class: "block" }, Df = { class: "block" }, Af = {
3298
+ }, _f = { class: "mt-6 space-y-3 text-left" }, If = { class: "block" }, Pf = { class: "block" }, Df = {
3299
3299
  key: 0,
3300
3300
  class: "mt-4 text-sm font-semibold text-red-500"
3301
- }, Nf = {
3301
+ }, Af = {
3302
3302
  key: 0,
3303
3303
  class: "update-banner"
3304
- }, Tf = {
3304
+ }, Nf = {
3305
3305
  key: 1,
3306
3306
  class: "top-chrome"
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 = {
3307
+ }, Tf = { class: "apple-subnav" }, Rf = { class: "project-identity" }, Ef = { class: "text-[21px] font-semibold leading-none" }, Of = { class: "mt-1 text-xs text-muted" }, Bf = {
3308
3308
  class: "core-version-stack",
3309
3309
  "aria-label": "原型内核版本"
3310
- }, Uf = { class: "flex flex-wrap items-center justify-end gap-x-1.5 gap-y-2" }, jf = {
3310
+ }, Mf = { class: "flex flex-wrap items-center justify-end gap-x-1.5 gap-y-2" }, Uf = {
3311
3311
  key: 0,
3312
3312
  class: "bug-nav-badge"
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 = {
3313
+ }, jf = { class: "top-control-group flex rounded-full bg-panel ring-1 ring-line" }, Vf = { class: "top-control-group flex rounded-full bg-panel ring-1 ring-line" }, Lf = { class: "top-control-group relative flex rounded-full bg-panel ring-1 ring-line" }, Ff = {
3314
3314
  key: 0,
3315
3315
  class: "theme-popover"
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 = {
3316
+ }, Kf = { class: "flex items-start justify-between gap-3" }, zf = { class: "text-sm font-semibold text-ink" }, Gf = { class: "mt-1 text-xs leading-5 text-muted" }, Hf = { class: "mt-3 flex flex-wrap gap-2" }, Wf = ["onClick"], Yf = { class: "min-w-0" }, Jf = { class: "mt-3 flex gap-2" }, Xf = { class: "theme-color-grid" }, Zf = ["value", "onInput"], qf = ["value", "onInput"], Qf = {
3317
3317
  key: 0,
3318
3318
  class: "apple-hero-copy"
3319
- }, tm = { key: 1 }, nm = { class: "flex flex-col gap-6 lg:flex-row" }, om = {
3319
+ }, em = { key: 1 }, tm = { class: "flex flex-col gap-6 lg:flex-row" }, nm = {
3320
3320
  key: 0,
3321
3321
  class: "interactive-side-nav-scroll-wrap"
3322
- }, am = ["onClick"], lm = { class: "flex-1 text-left" }, sm = { class: "ml-auto flex items-center gap-2" }, im = {
3322
+ }, om = ["onClick"], am = { class: "flex-1 text-left" }, lm = { class: "ml-auto flex items-center gap-2" }, sm = {
3323
3323
  key: 0,
3324
3324
  class: "annotation-nav-badge"
3325
- }, rm = {
3325
+ }, im = {
3326
3326
  key: 1,
3327
3327
  class: "screen-highlight-dot",
3328
3328
  "aria-hidden": "true"
3329
- }, um = {
3329
+ }, rm = {
3330
3330
  key: 0,
3331
3331
  class: "side-nav-scroll-hint-top",
3332
3332
  viewBox: "0 0 24 24",
@@ -3335,7 +3335,7 @@ const _f = {
3335
3335
  "stroke-width": "2.5",
3336
3336
  "stroke-linecap": "round",
3337
3337
  "stroke-linejoin": "round"
3338
- }, cm = {
3338
+ }, um = {
3339
3339
  key: 1,
3340
3340
  class: "side-nav-scroll-hint-bottom",
3341
3341
  viewBox: "0 0 24 24",
@@ -3344,96 +3344,96 @@ const _f = {
3344
3344
  "stroke-width": "2.5",
3345
3345
  "stroke-linecap": "round",
3346
3346
  "stroke-linejoin": "round"
3347
- }, dm = {
3347
+ }, cm = {
3348
3348
  key: 1,
3349
3349
  class: "apple-side-nav overview-side-nav"
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 = {
3350
+ }, dm = { class: "px-2 pb-4" }, pm = { class: "flex items-center gap-3" }, vm = { class: "min-w-5 text-center text-xs font-semibold text-ink" }, fm = { class: "px-2" }, mm = { class: "flex items-center gap-2" }, gm = { class: "min-w-10 text-center text-xs font-semibold text-ink" }, bm = {
3351
3351
  key: 2,
3352
3352
  class: "apple-side-nav flow-side-nav lg:w-80"
3353
- }, hm = { class: "flex items-center justify-between px-2 pb-3" }, wm = ["onClick"], xm = { class: "min-w-0 flex-1 text-left" }, Sm = {
3353
+ }, ym = { class: "flex items-center justify-between px-2 pb-3" }, hm = ["onClick"], wm = { class: "min-w-0 flex-1 text-left" }, xm = {
3354
3354
  key: 0,
3355
3355
  class: "flow-toolbar"
3356
- }, km = { class: "flow-zoom-controls" }, Cm = {
3356
+ }, Sm = { class: "flow-zoom-controls" }, km = {
3357
3357
  key: 0,
3358
3358
  class: "status-bar"
3359
- }, $m = ["onClickCapture"], _m = { class: "screen-scroll-wrapper" }, Im = {
3359
+ }, Cm = ["onClickCapture"], $m = { class: "screen-scroll-wrapper" }, _m = {
3360
3360
  key: 0,
3361
3361
  class: "annotation-layer"
3362
- }, Pm = ["data-annotation-id", "onMouseenter"], Dm = ["disabled", "onClick", "onPointerdown"], Am = { key: 0 }, Nm = { class: "annotation-panel-head" }, Tm = { class: "annotation-panel-tabs" }, Rm = {
3362
+ }, Im = ["data-annotation-id", "onMouseenter"], Pm = ["disabled", "onClick", "onPointerdown"], Dm = { key: 0 }, Am = { class: "annotation-panel-head" }, Nm = { class: "annotation-panel-tabs" }, Tm = {
3363
3363
  key: 0,
3364
3364
  class: "annotation-panel-actions"
3365
- }, Em = ["disabled"], Om = {
3365
+ }, Rm = ["disabled"], Em = {
3366
3366
  key: 1,
3367
3367
  class: "annotation-panel-actions description-actions"
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 = {
3368
+ }, Om = ["disabled"], Bm = { class: "annotation-author-field" }, Mm = ["placeholder"], Um = { class: "annotation-polling-field" }, jm = { class: "annotation-polling-control" }, Vm = ["disabled"], Lm = { class: "annotation-polling-notice" }, Fm = {
3369
3369
  key: 2,
3370
3370
  class: "annotation-list"
3371
- }, zm = {
3371
+ }, Km = {
3372
3372
  key: 0,
3373
3373
  class: "annotation-empty"
3374
- }, Gm = ["onMouseenter"], Hm = { key: 0 }, Wm = { class: "annotation-list-actions" }, Ym = ["onClick"], Jm = ["disabled", "title", "onClick"], Xm = {
3374
+ }, zm = ["onMouseenter"], Gm = { key: 0 }, Hm = { class: "annotation-list-actions" }, Wm = ["onClick"], Ym = ["disabled", "title", "onClick"], Jm = {
3375
3375
  key: 3,
3376
3376
  class: "page-description-view"
3377
- }, Zm = {
3377
+ }, Xm = {
3378
3378
  key: 0,
3379
3379
  class: "annotation-empty"
3380
- }, qm = {
3380
+ }, Zm = {
3381
3381
  key: 0,
3382
3382
  class: "page-description-meta"
3383
- }, Qm = { class: "collaboration-source-title" }, eg = { "aria-hidden": "true" }, tg = ["disabled"], ng = {
3383
+ }, qm = { class: "collaboration-source-title" }, Qm = { "aria-hidden": "true" }, eg = ["disabled"], tg = {
3384
3384
  class: "environment-check-panel",
3385
3385
  role: "dialog",
3386
3386
  "aria-modal": "true",
3387
3387
  "aria-labelledby": "environment-check-title"
3388
- }, og = { class: "environment-check-groups" }, ag = { "aria-hidden": "true" }, lg = {
3388
+ }, ng = { class: "environment-check-groups" }, og = { "aria-hidden": "true" }, ag = {
3389
3389
  key: 0,
3390
3390
  class: "interaction-mode-toast",
3391
3391
  role: "status"
3392
- }, sg = { class: "page-description-dialog" }, ig = { class: "page-description-dialog-head" }, rg = {
3392
+ }, lg = { class: "page-description-dialog" }, sg = { class: "page-description-dialog-head" }, ig = {
3393
3393
  key: 0,
3394
3394
  class: "annotation-empty"
3395
- }, ug = {
3395
+ }, rg = {
3396
3396
  key: 1,
3397
3397
  class: "page-description-meta"
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 = {
3398
+ }, ug = { class: "page-description-highlight-field" }, cg = ["placeholder"], dg = ["placeholder"], pg = ["placeholder"], vg = ["placeholder"], fg = ["placeholder"], mg = { class: "page-description-form-actions" }, gg = ["disabled"], bg = { class: "annotation-popover-head" }, yg = ["disabled", "title"], hg = {
3399
3399
  key: 10,
3400
3400
  class: "annotation-form-backdrop"
3401
- }, xg = ["placeholder"], Sg = ["placeholder"], kg = ["placeholder"], Cg = ["placeholder"], $g = { class: "annotation-form-actions" }, _g = ["disabled"], Ig = {
3401
+ }, wg = ["placeholder"], xg = ["placeholder"], Sg = ["placeholder"], kg = ["placeholder"], Cg = { class: "annotation-form-actions" }, $g = ["disabled"], _g = {
3402
3402
  key: 11,
3403
3403
  class: "annotation-form-backdrop"
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 = {
3404
+ }, Ig = ["readonly"], Pg = ["readonly"], Dg = ["readonly"], Ag = { key: 0 }, Ng = ["placeholder"], Tg = ["disabled"], Rg = { class: "page-description-summary-dialog" }, Eg = { class: "page-description-summary-head" }, Og = {
3405
3405
  class: "page-description-summary-options",
3406
3406
  "aria-label": "选择展示的页面描述部分"
3407
- }, Mg = ["checked", "onChange"], Ug = { class: "page-description-summary-body" }, jg = {
3407
+ }, Bg = ["checked", "onChange"], Mg = { class: "page-description-summary-body" }, Ug = {
3408
3408
  key: 0,
3409
3409
  class: "page-description-summary-empty"
3410
- }, Vg = { class: "page-description-summary-actions" }, Lg = ["disabled"], Fg = {
3410
+ }, jg = { class: "page-description-summary-actions" }, Vg = ["disabled"], Lg = {
3411
3411
  class: "prototype-health-panel",
3412
3412
  role: "dialog",
3413
3413
  "aria-modal": "true",
3414
3414
  "aria-label": "原型健康检查"
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 = {
3415
+ }, Fg = { class: "prototype-health-head" }, Kg = { class: "prototype-health-tabs" }, zg = { class: "prototype-health-stat-grid" }, Gg = { class: "prototype-health-section" }, Hg = { class: "prototype-health-section-head" }, Wg = { class: "prototype-health-issues" }, Yg = {
3416
3416
  key: 1,
3417
3417
  class: "prototype-health-section prototype-health-matrix-section"
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 = {
3418
+ }, Jg = { class: "prototype-health-table-wrap" }, Xg = { class: "prototype-health-table" }, Zg = { 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" }, Qg = { class: "mt-1 text-xs text-muted" }, e1 = { class: "mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1" }, t1 = ["onClick"], n1 = { class: "flex items-center justify-between gap-3" }, o1 = { class: "text-sm font-semibold text-ink" }, a1 = { class: "flex shrink-0 items-center gap-2" }, l1 = { class: "rounded-full bg-panel px-2 py-1 text-xs text-muted" }, s1 = { class: "mt-2 text-sm leading-5 text-muted" }, i1 = {
3419
3419
  key: 0,
3420
3420
  class: "border-t border-line bg-panel/60 px-3 py-3"
3421
- }, u1 = {
3421
+ }, r1 = {
3422
3422
  key: 0,
3423
3423
  class: "space-y-2"
3424
- }, c1 = {
3424
+ }, u1 = {
3425
3425
  key: 1,
3426
3426
  class: "rounded-[12px] bg-panel px-3 py-2 text-xs leading-5 text-muted"
3427
- }, d1 = {
3427
+ }, c1 = {
3428
3428
  key: 0,
3429
3429
  class: "rounded-[16px] bg-soft p-3 text-sm text-muted"
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 = {
3430
+ }, d1 = { class: "mobile-page-picker" }, p1 = { class: "mobile-page-picker-list" }, v1 = ["onClick"], f1 = { class: "mobile-page-picker-code" }, m1 = { class: "mobile-page-picker-copy" }, g1 = {
3431
3431
  key: 0,
3432
3432
  class: "mobile-page-picker-count"
3433
- }, y1 = {
3433
+ }, b1 = {
3434
3434
  key: 0,
3435
3435
  class: "mobile-page-picker-states"
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({
3436
+ }, y1 = ["onClick"], es = "prototype-core-authenticated", Ln = "prototype-core-page-description-summary-sections", Do = "prototype-core-panel-state-v1", ts = 393, h1 = 852, w1 = 24, Sa = 1920, x1 = 1080, S1 = 640, k1 = 60 * 1e3, I1 = /* @__PURE__ */ kn({
3437
3437
  __name: "App",
3438
3438
  setup(t) {
3439
3439
  var Ll;
@@ -3500,7 +3500,7 @@ const _f = {
3500
3500
  currentScreenAnnotations: T,
3501
3501
  currentPageDescription: R,
3502
3502
  isScreenHighlighted: D,
3503
- activeScreenHighlightedStateIds: G,
3503
+ activeScreenHighlightedStateIds: H,
3504
3504
  hoveredAnnotation: le,
3505
3505
  initializePrototype: ge,
3506
3506
  t: $,
@@ -3548,7 +3548,7 @@ const _f = {
3548
3548
  zoomFlowAtPoint: ki,
3549
3549
  overviewZoom: wt,
3550
3550
  overviewColumns: Xt
3551
- } = Cf(), { saveFlowsToSession: Ci, pushFlowsToGitee: $i, exportFlows: _i } = kf(), { unresolvedBugCount: ll, initializeBugs: Ii } = As(), Pi = k(
3551
+ } = kf(), { saveFlowsToSession: Ci, pushFlowsToGitee: $i, exportFlows: _i } = Sf(), { unresolvedBugCount: ll, initializeBugs: Ii } = As(), Pi = k(
3552
3552
  () => fe.filter((i) => i.platform === "mobile" && i.hasTabBar).map((i) => ({ id: i.id, label: i.title, icon: i.icon }))
3553
3553
  ), Jo = {
3554
3554
  gitee: "Gitee",
@@ -3617,7 +3617,7 @@ const _f = {
3617
3617
  ]
3618
3618
  }
3619
3619
  ];
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" ? "版本暂不可用" : "版本检测中");
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.9", ea = b(""), qt = b("idle"), Ei = k(() => qt.value === "success" && ea.value !== Qo), Oi = k(() => qt.value === "success" ? `v${ea.value}` : qt.value === "error" ? "版本暂不可用" : "版本检测中");
3621
3621
  async function Bi() {
3622
3622
  if (qt.value !== "idle") return;
3623
3623
  qt.value = "loading";
@@ -3663,7 +3663,7 @@ const _f = {
3663
3663
  }
3664
3664
  window.localStorage.setItem(es, "true"), Dn.value = !0, so.value = "", io.value = "", vl();
3665
3665
  }
3666
- const mo = $f, Et = b(!1), go = b(((Ll = mo[0]) == null ? void 0 : Ll.hash) ?? ""), Ui = k(() => {
3666
+ const mo = Cf, Et = b(!1), go = b(((Ll = mo[0]) == null ? void 0 : Ll.hash) ?? ""), Ui = k(() => {
3667
3667
  var i;
3668
3668
  return ((i = mo[0]) == null ? void 0 : i.date) ?? "暂无记录";
3669
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(
@@ -4000,21 +4000,21 @@ const _f = {
4000
4000
  ze.value = Qt.value.map((o) => o.id).filter((o) => !i.has(o)), window.localStorage.setItem(Ln, JSON.stringify(ze.value));
4001
4001
  }
4002
4002
  const ra = k(() => {
4003
- const i = Math.max(1, Xt.value), a = ((oa.value || window.innerWidth) - x1 * (i - 1)) / i;
4003
+ const i = Math.max(1, Xt.value), a = ((oa.value || window.innerWidth) - w1 * (i - 1)) / i;
4004
4004
  return Math.min(1, Math.max(0.36, Number((a / ts).toFixed(3))));
4005
- }), $l = k(() => Math.round(ts * ra.value * 100) / 100), fr = k(() => Math.round(w1 * ra.value * 100) / 100);
4005
+ }), $l = k(() => Math.round(ts * ra.value * 100) / 100), fr = k(() => Math.round(h1 * ra.value * 100) / 100);
4006
4006
  function mr() {
4007
4007
  if (Be.value)
4008
4008
  return Math.min(Sa, On.value, Math.max(0, yo.value - 48) * 16 / 9);
4009
4009
  if (K.value === "overview") return $l.value;
4010
- if (K.value === "flow") return k1;
4010
+ if (K.value === "flow") return S1;
4011
4011
  const i = oa.value || On.value;
4012
4012
  return Math.min(1440, i, Math.max(0, yo.value - 120) * 16 / 9);
4013
4013
  }
4014
4014
  function gr(i) {
4015
4015
  const o = K.value === "flow" ? hi(i) : {};
4016
4016
  if (i.platform !== "pc") return o;
4017
- const a = Math.max(1, mr()), y = a * S1 / Sa;
4017
+ const a = Math.max(1, mr()), y = a * x1 / Sa;
4018
4018
  return {
4019
4019
  ...o,
4020
4020
  "--desktop-display-width": `${a}px`,
@@ -4219,7 +4219,7 @@ const _f = {
4219
4219
  dt.value && Ol();
4220
4220
  });
4221
4221
  function Dr() {
4222
- Co || (Bl(), Co = window.setInterval(Bl, C1));
4222
+ Co || (Bl(), Co = window.setInterval(Bl, k1));
4223
4223
  }
4224
4224
  async function Bl() {
4225
4225
  var o, a;
@@ -4364,7 +4364,7 @@ const _f = {
4364
4364
  style: Pe(l(ve))
4365
4365
  }, [
4366
4366
  Dn.value ? (v(), f(_, { key: 1 }, [
4367
- ko.value && !Q.value ? (v(), f("div", Nf, [
4367
+ ko.value && !Q.value ? (v(), f("div", Af, [
4368
4368
  e("div", { class: "update-banner-inner" }, [
4369
4369
  o[88] || (o[88] = e("p", null, "🔔 检测到新版本,刷新后即可使用最新页面", -1)),
4370
4370
  e("div", { class: "update-banner-actions" }, [
@@ -4380,18 +4380,18 @@ const _f = {
4380
4380
  ])
4381
4381
  ])
4382
4382
  ])) : w("", !0),
4383
- Q.value ? w("", !0) : (v(), f("div", Tf, [
4384
- e("div", Rf, [
4385
- e("div", Ef, [
4383
+ Q.value ? w("", !0) : (v(), f("div", Nf, [
4384
+ e("div", Tf, [
4385
+ e("div", Rf, [
4386
4386
  e("button", {
4387
4387
  class: "project-title-btn",
4388
4388
  type: "button",
4389
4389
  onClick: o[2] || (o[2] = (a) => bn())
4390
4390
  }, [
4391
- e("p", Of, p(l($)("prototypeTitle")), 1),
4392
- e("p", Bf, p(l($)("prototypeSubtitle")), 1)
4391
+ e("p", Ef, p(l($)("prototypeTitle")), 1),
4392
+ e("p", Of, p(l($)("prototypeSubtitle")), 1)
4393
4393
  ]),
4394
- e("div", Mf, [
4394
+ e("div", Bf, [
4395
4395
  e("p", null, [
4396
4396
  o[89] || (o[89] = e("span", null, "当前", -1)),
4397
4397
  e("b", null, "v" + p(l(Qo)), 1)
@@ -4404,7 +4404,7 @@ const _f = {
4404
4404
  ])
4405
4405
  ])
4406
4406
  ]),
4407
- e("div", Uf, [
4407
+ e("div", Mf, [
4408
4408
  o[92] || (o[92] = e("a", {
4409
4409
  class: "mode-btn top-level-mode-btn rounded-full bg-panel ring-1 ring-line",
4410
4410
  href: "https://altimodo-doc.doc.gominex.com/",
@@ -4423,10 +4423,10 @@ const _f = {
4423
4423
  class: P(["mode-btn bug-nav-btn rounded-full bg-panel ring-1 ring-line", { active: de.value === "bugs" }]),
4424
4424
  onClick: Tr
4425
4425
  }, [
4426
- o[91] || (o[91] = H(" Bug ", -1)),
4427
- l(ll) ? (v(), f("span", jf, p(l(ll)), 1)) : w("", !0)
4426
+ o[91] || (o[91] = G(" Bug ", -1)),
4427
+ l(ll) ? (v(), f("span", Uf, p(l(ll)), 1)) : w("", !0)
4428
4428
  ], 2),
4429
- e("div", Vf, [
4429
+ e("div", jf, [
4430
4430
  e("button", {
4431
4431
  class: P(["mode-btn", { active: de.value === "prototype" && l(r) === "interactive" }]),
4432
4432
  onClick: o[3] || (o[3] = (a) => bn("interactive"))
@@ -4440,7 +4440,7 @@ const _f = {
4440
4440
  onClick: o[5] || (o[5] = (a) => bn("flow"))
4441
4441
  }, "流程模式", 2)
4442
4442
  ]),
4443
- e("div", Lf, [
4443
+ e("div", Vf, [
4444
4444
  e("button", {
4445
4445
  class: P(["mode-btn", { active: l(s) === "zh" }]),
4446
4446
  onClick: o[6] || (o[6] = (a) => s.value = "zh")
@@ -4450,7 +4450,7 @@ const _f = {
4450
4450
  onClick: o[7] || (o[7] = (a) => s.value = "en")
4451
4451
  }, "English", 2)
4452
4452
  ]),
4453
- e("div", Ff, [
4453
+ e("div", Lf, [
4454
4454
  e("button", {
4455
4455
  class: P(["mode-btn flex items-center gap-2", { active: l(C) }]),
4456
4456
  onClick: o[8] || (o[8] = (a) => C.value = !l(C))
@@ -4459,13 +4459,13 @@ const _f = {
4459
4459
  class: "theme-swatch",
4460
4460
  style: Pe({ "--swatch-color": l(ot).ocean })
4461
4461
  }, null, 4),
4462
- H(" " + p(l($)("themeButton")), 1)
4462
+ G(" " + p(l($)("themeButton")), 1)
4463
4463
  ], 2),
4464
- l(C) ? (v(), f("div", Kf, [
4465
- e("div", zf, [
4464
+ l(C) ? (v(), f("div", Ff, [
4465
+ e("div", Kf, [
4466
4466
  e("div", null, [
4467
- e("p", Gf, p(l($)("themeTitle")), 1),
4468
- e("p", Hf, p(l($)("themeDescription")), 1)
4467
+ e("p", zf, p(l($)("themeTitle")), 1),
4468
+ e("p", Gf, p(l($)("themeDescription")), 1)
4469
4469
  ]),
4470
4470
  e("button", {
4471
4471
  class: "text-xs font-semibold text-ocean",
@@ -4473,7 +4473,7 @@ const _f = {
4473
4473
  (...a) => l(lt) && l(lt)(...a))
4474
4474
  }, p(l($)("themeReset")), 1)
4475
4475
  ]),
4476
- e("div", Wf, [
4476
+ e("div", Hf, [
4477
4477
  (v(!0), f(_, null, N(l(ie), (a) => (v(), f("button", {
4478
4478
  key: a.id,
4479
4479
  class: P(["theme-scheme-btn", { active: l(g) === a.id }]),
@@ -4483,13 +4483,13 @@ const _f = {
4483
4483
  class: "theme-swatch",
4484
4484
  style: Pe({ "--swatch-color": a.colors.ocean })
4485
4485
  }, null, 4),
4486
- e("span", Jf, [
4486
+ e("span", Yf, [
4487
4487
  e("b", null, p(l($)(a.nameKey)), 1),
4488
4488
  e("small", null, p(l($)(a.descriptionKey)), 1)
4489
4489
  ])
4490
- ], 10, Yf))), 128))
4490
+ ], 10, Wf))), 128))
4491
4491
  ]),
4492
- e("div", Xf, [
4492
+ e("div", Jf, [
4493
4493
  e("button", {
4494
4494
  class: "theme-file-btn",
4495
4495
  onClick: o[10] || (o[10] = //@ts-ignore
@@ -4512,7 +4512,7 @@ const _f = {
4512
4512
  (...a) => l(oo) && l(oo)(...a))
4513
4513
  }, null, 544)
4514
4514
  ]),
4515
- e("div", Zf, [
4515
+ e("div", Xf, [
4516
4516
  (v(!0), f(_, null, N(l(n), (a) => (v(), f("label", {
4517
4517
  key: a.key,
4518
4518
  class: "theme-color-field"
@@ -4521,7 +4521,7 @@ const _f = {
4521
4521
  type: "color",
4522
4522
  value: l(ot)[a.key],
4523
4523
  onInput: (y) => l(Wt)(a.key, y.target.value)
4524
- }, null, 40, qf),
4524
+ }, null, 40, Zf),
4525
4525
  e("span", null, [
4526
4526
  e("b", null, p(l($)(a.labelKey)), 1),
4527
4527
  e("small", null, p(l($)(a.descKey)), 1)
@@ -4530,7 +4530,7 @@ const _f = {
4530
4530
  type: "text",
4531
4531
  value: l(ot)[a.key],
4532
4532
  onInput: (y) => l(Wt)(a.key, y.target.value)
4533
- }, null, 40, Qf)
4533
+ }, null, 40, qf)
4534
4534
  ]))), 128))
4535
4535
  ])
4536
4536
  ])) : w("", !0)
@@ -4538,7 +4538,7 @@ const _f = {
4538
4538
  ])
4539
4539
  ])
4540
4540
  ])),
4541
- de.value === "bugs" && !Q.value ? (v(), st(Vp, {
4541
+ de.value === "bugs" && !Q.value ? (v(), st(jp, {
4542
4542
  key: 2,
4543
4543
  onClose: pa
4544
4544
  })) : w("", !0),
@@ -4546,7 +4546,7 @@ const _f = {
4546
4546
  key: 3,
4547
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"])
4548
4548
  }, [
4549
- Q.value ? w("", !0) : (v(), f("section", em, [
4549
+ Q.value ? w("", !0) : (v(), f("section", Qf, [
4550
4550
  K.value === "interactive" ? (v(), f("button", {
4551
4551
  key: 0,
4552
4552
  class: "page-description-summary",
@@ -4557,15 +4557,15 @@ const _f = {
4557
4557
  }, [
4558
4558
  e("p", null, [
4559
4559
  o[93] || (o[93] = e("b", null, "页面结构:", -1)),
4560
- H(p(et.value.structure), 1)
4560
+ G(p(et.value.structure), 1)
4561
4561
  ]),
4562
4562
  e("p", null, [
4563
4563
  o[94] || (o[94] = e("b", null, "核心功能:", -1)),
4564
- H(p(et.value.features), 1)
4564
+ G(p(et.value.features), 1)
4565
4565
  ])
4566
- ])) : (v(), f("p", tm, p(l($)("heroCopy")), 1))
4566
+ ])) : (v(), f("p", em, p(l($)("heroCopy")), 1))
4567
4567
  ])),
4568
- e("div", nm, [
4568
+ e("div", tm, [
4569
4569
  K.value === "interactive" && !Q.value ? (v(), f("aside", {
4570
4570
  key: 0,
4571
4571
  class: P(["apple-side-nav interactive-side-nav", {
@@ -4579,7 +4579,7 @@ const _f = {
4579
4579
  type: "button",
4580
4580
  onClick: Al
4581
4581
  }, p(Ot.value ? "展开导航" : "收起导航"), 1),
4582
- Ot.value ? w("", !0) : (v(), f("div", om, [
4582
+ Ot.value ? w("", !0) : (v(), f("div", nm, [
4583
4583
  e("div", {
4584
4584
  ref_key: "interactiveSideNavRef",
4585
4585
  ref: fl,
@@ -4596,26 +4596,26 @@ const _f = {
4596
4596
  "aria-hidden": "true"
4597
4597
  }, p(a.platform === "pc" ? "P" : "M"), 3),
4598
4598
  (v(), st(Bo(a.icon), { class: "h-4 w-4" })),
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)
4599
+ e("span", am, p(a.code) + " " + p(a.title), 1),
4600
+ e("div", lm, [
4601
+ l(yt)(a.id) ? (v(), f("span", sm, p(l(yt)(a.id)), 1)) : w("", !0),
4602
+ l(D)(a.id) ? (v(), f("span", im)) : w("", !0)
4603
4603
  ])
4604
- ], 10, am))), 128))
4604
+ ], 10, om))), 128))
4605
4605
  ], 544),
4606
- Rn.value ? (v(), f("svg", um, [...o[95] || (o[95] = [
4606
+ Rn.value ? (v(), f("svg", rm, [...o[95] || (o[95] = [
4607
4607
  e("path", { d: "M12 19V5M5 12l7-7 7 7" }, null, -1)
4608
4608
  ])])) : w("", !0),
4609
- En.value ? (v(), f("svg", cm, [...o[96] || (o[96] = [
4609
+ En.value ? (v(), f("svg", um, [...o[96] || (o[96] = [
4610
4610
  e("path", { d: "M12 5v14M5 12l7 7 7-7" }, null, -1)
4611
4611
  ])])) : w("", !0)
4612
4612
  ]))
4613
4613
  ], 2)) : w("", !0),
4614
- K.value === "overview" ? (v(), f("aside", dm, [
4614
+ K.value === "overview" ? (v(), f("aside", cm, [
4615
4615
  o[101] || (o[101] = e("p", { class: "px-2 pb-3 text-sm font-semibold text-muted" }, "显示设置", -1)),
4616
- e("div", pm, [
4616
+ e("div", dm, [
4617
4617
  o[99] || (o[99] = e("label", { class: "mb-2 block text-xs font-semibold text-muted" }, "每行数量", -1)),
4618
- e("div", vm, [
4618
+ e("div", pm, [
4619
4619
  o[97] || (o[97] = e("span", { class: "text-xs text-muted" }, "3", -1)),
4620
4620
  A(e("input", {
4621
4621
  "onUpdate:modelValue": o[14] || (o[14] = (a) => yn(Xt) ? Xt.value = a : null),
@@ -4634,18 +4634,18 @@ const _f = {
4634
4634
  ]
4635
4635
  ]),
4636
4636
  o[98] || (o[98] = e("span", { class: "text-xs text-muted" }, "6", -1)),
4637
- e("strong", fm, p(l(Xt)), 1)
4637
+ e("strong", vm, p(l(Xt)), 1)
4638
4638
  ])
4639
4639
  ]),
4640
- e("div", mm, [
4640
+ e("div", fm, [
4641
4641
  o[100] || (o[100] = e("label", { class: "mb-2 block text-xs font-semibold text-muted" }, "缩放", -1)),
4642
- e("div", gm, [
4642
+ e("div", mm, [
4643
4643
  e("button", {
4644
4644
  type: "button",
4645
4645
  class: "overview-zoom-btn",
4646
4646
  onClick: o[15] || (o[15] = (a) => Il(-0.06))
4647
4647
  }, "−"),
4648
- e("strong", bm, p(Math.round(l(wt) * 100)) + "%", 1),
4648
+ e("strong", gm, p(Math.round(l(wt) * 100)) + "%", 1),
4649
4649
  e("button", {
4650
4650
  type: "button",
4651
4651
  class: "overview-zoom-btn",
@@ -4661,8 +4661,8 @@ const _f = {
4661
4661
  ])
4662
4662
  ])
4663
4663
  ])) : w("", !0),
4664
- K.value === "flow" ? (v(), f("aside", ym, [
4665
- e("div", hm, [
4664
+ K.value === "flow" ? (v(), f("aside", bm, [
4665
+ e("div", ym, [
4666
4666
  o[103] || (o[103] = e("p", { class: "text-sm font-semibold text-muted" }, "主流程", -1)),
4667
4667
  e("button", {
4668
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",
@@ -4680,7 +4680,7 @@ const _f = {
4680
4680
  e("path", { d: "M12 20h9" }),
4681
4681
  e("path", { d: "M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z" })
4682
4682
  ], -1),
4683
- H(" 编辑流程 ", -1)
4683
+ G(" 编辑流程 ", -1)
4684
4684
  ])])
4685
4685
  ]),
4686
4686
  (v(!0), f(_, null, N(l(Pt), (a) => (v(), f("button", {
@@ -4689,19 +4689,19 @@ const _f = {
4689
4689
  onClick: (y) => l(yi)(a.id)
4690
4690
  }, [
4691
4691
  o[104] || (o[104] = e("span", { class: "flow-dot" }, null, -1)),
4692
- e("span", xm, [
4692
+ e("span", wm, [
4693
4693
  e("b", null, p(a.title), 1),
4694
4694
  e("small", null, p(a.subtitle), 1)
4695
4695
  ])
4696
- ], 10, wm))), 128))
4696
+ ], 10, hm))), 128))
4697
4697
  ])) : w("", !0),
4698
4698
  e("section", {
4699
4699
  ref_key: "overviewStageRef",
4700
4700
  ref: bo,
4701
4701
  class: "flex-1 relative"
4702
4702
  }, [
4703
- K.value === "flow" ? (v(), f("div", Sm, [
4704
- e("div", km, [
4703
+ K.value === "flow" ? (v(), f("div", xm, [
4704
+ e("div", Sm, [
4705
4705
  e("button", {
4706
4706
  type: "button",
4707
4707
  onClick: o[18] || (o[18] = (a) => l(nl)(0.06))
@@ -4779,19 +4779,19 @@ const _f = {
4779
4779
  "overview-desktop-scale": K.value === "overview" && a.platform === "pc"
4780
4780
  }])
4781
4781
  }, [
4782
- K.value === "interactive" && !Q.value && a.platform === "mobile" && l(Ye).length && l(Ze) ? (v(), st(du, {
4782
+ K.value === "interactive" && !Q.value && a.platform === "mobile" && l(Ye).length && l(Ze) ? (v(), st(cu, {
4783
4783
  key: 0,
4784
4784
  title: l($)("prototypeStateSwitch"),
4785
4785
  options: l(Ye),
4786
4786
  "active-id": l(Ze),
4787
4787
  "count-for-state": (y) => l(Ke)(l(u), y),
4788
- "highlighted-ids": l(G),
4788
+ "highlighted-ids": l(H),
4789
4789
  onChange: o[22] || (o[22] = (y) => l(Yt)(l(u), y))
4790
4790
  }, null, 8, ["title", "options", "active-id", "count-for-state", "highlighted-ids"])) : w("", !0),
4791
4791
  e("div", {
4792
4792
  class: P(a.platform === "pc" ? "desktop-frame" : "phone-screen")
4793
4793
  }, [
4794
- a.platform === "mobile" && !Q.value ? (v(), f("div", Cm, [...o[106] || (o[106] = [
4794
+ a.platform === "mobile" && !Q.value ? (v(), f("div", km, [...o[106] || (o[106] = [
4795
4795
  e("span", null, "9:41", -1),
4796
4796
  e("span", null, "86%", -1)
4797
4797
  ])])) : w("", !0),
@@ -4803,9 +4803,9 @@ const _f = {
4803
4803
  }]),
4804
4804
  onClickCapture: (y) => !Q.value && l(Wo)(y, a.id)
4805
4805
  }, [
4806
- e("div", _m, [
4806
+ e("div", $m, [
4807
4807
  X(zn, { screen: a }, null, 8, ["screen"]),
4808
- K.value === "interactive" && !Q.value && !Be.value && l(q) === "annotations" && l(oe) ? (v(), f("div", Im, [
4808
+ K.value === "interactive" && !Q.value && !Be.value && l(q) === "annotations" && l(oe) ? (v(), f("div", _m, [
4809
4809
  (v(!0), f(_, null, N(l(T), (y, j) => {
4810
4810
  var F;
4811
4811
  return v(), f("div", {
@@ -4831,8 +4831,8 @@ const _f = {
4831
4831
  onPointermove: nr,
4832
4832
  onPointerup: or,
4833
4833
  onPointercancel: ar
4834
- }, p(j + 1), 41, Dm)
4835
- ], 46, Pm);
4834
+ }, p(j + 1), 41, Pm)
4835
+ ], 46, Im);
4836
4836
  }), 128)),
4837
4837
  Ki.value ? (v(), f("div", {
4838
4838
  key: 0,
@@ -4846,7 +4846,7 @@ const _f = {
4846
4846
  ])], 4)) : w("", !0)
4847
4847
  ])) : w("", !0)
4848
4848
  ])
4849
- ], 42, $m),
4849
+ ], 42, Cm),
4850
4850
  a.platform === "mobile" && a.hasTabBar ? (v(), st(au, {
4851
4851
  key: 1,
4852
4852
  active: l(xe),
@@ -4863,10 +4863,10 @@ const _f = {
4863
4863
  class: P(["platform-badge is-small", a.platform === "pc" ? "is-pc" : "is-mobile"]),
4864
4864
  "aria-hidden": "true"
4865
4865
  }, p(a.platform === "pc" ? "P" : "M"), 3),
4866
- a.platform === "mobile" ? (v(), f("br", Am)) : w("", !0),
4867
- H(" " + p(a.code) + " · " + p(a.title), 1),
4866
+ a.platform === "mobile" ? (v(), f("br", Dm)) : w("", !0),
4867
+ G(" " + p(a.code) + " · " + p(a.title), 1),
4868
4868
  a.stateLabel ? (v(), f(_, { key: 1 }, [
4869
- H(" · " + p(a.stateLabel), 1)
4869
+ G(" · " + p(a.stateLabel), 1)
4870
4870
  ], 64)) : w("", !0)
4871
4871
  ], 2)) : w("", !0)
4872
4872
  ], 6))), 128))
@@ -4885,19 +4885,19 @@ const _f = {
4885
4885
  onClick: o[29] || (o[29] = (a) => ce.value = !l(ce))
4886
4886
  }, p(l(ce) ? l($)("annotationExpand") : l($)("annotationCollapse")), 1),
4887
4887
  l(ce) ? w("", !0) : (v(), f(_, { key: 0 }, [
4888
- e("div", Nm, [
4888
+ e("div", Am, [
4889
4889
  e("div", null, [
4890
4890
  e("p", null, p(l($)("annotationPanelTitle")), 1),
4891
4891
  e("span", null, [
4892
- H(p(l($)("annotationPanelSubtitle")) + " · " + p(l(mt).code), 1),
4892
+ G(p(l($)("annotationPanelSubtitle")) + " · " + p(l(mt).code), 1),
4893
4893
  fn.value ? (v(), f(_, { key: 0 }, [
4894
- H(" · " + p(fn.value), 1)
4894
+ G(" · " + p(fn.value), 1)
4895
4895
  ], 64)) : w("", !0)
4896
4896
  ])
4897
4897
  ]),
4898
4898
  e("strong", null, p(l(q) === "annotations" ? l(T).length : l(R) ? 1 : 0), 1)
4899
4899
  ]),
4900
- e("div", Tm, [
4900
+ e("div", Nm, [
4901
4901
  e("button", {
4902
4902
  type: "button",
4903
4903
  class: P({ active: l(q) === "annotations" }),
@@ -4911,7 +4911,7 @@ const _f = {
4911
4911
  })
4912
4912
  }, p(l($)("annotationTabDescription")), 3)
4913
4913
  ]),
4914
- l(q) === "annotations" ? (v(), f("div", Rm, [
4914
+ l(q) === "annotations" ? (v(), f("div", Tm, [
4915
4915
  e("button", {
4916
4916
  type: "button",
4917
4917
  class: P({ active: l(Z) }),
@@ -4926,18 +4926,18 @@ const _f = {
4926
4926
  type: "button",
4927
4927
  disabled: l(ke) === "syncing",
4928
4928
  onClick: o[34] || (o[34] = (a) => l(ht)())
4929
- }, p(l($)("annotationRefresh")), 9, Em),
4929
+ }, p(l($)("annotationRefresh")), 9, Rm),
4930
4930
  e("button", {
4931
4931
  type: "button",
4932
4932
  onClick: o[35] || (o[35] = //@ts-ignore
4933
4933
  (...a) => l(Qa) && l(Qa)(...a))
4934
4934
  }, p(l($)("annotationExport")), 1)
4935
- ])) : (v(), f("div", Om, [
4935
+ ])) : (v(), f("div", Em, [
4936
4936
  e("button", {
4937
4937
  type: "button",
4938
4938
  disabled: l(ke) === "syncing",
4939
4939
  onClick: o[36] || (o[36] = (a) => l(rn)())
4940
- }, p(l($)("annotationRefresh")), 9, Bm),
4940
+ }, p(l($)("annotationRefresh")), 9, Om),
4941
4941
  e("button", {
4942
4942
  type: "button",
4943
4943
  onClick: o[37] || (o[37] = //@ts-ignore
@@ -4954,19 +4954,19 @@ const _f = {
4954
4954
  }, [
4955
4955
  e("span", null, p(l(Se) ? l(Je) : l($)("annotationRemoteDisabled")), 1)
4956
4956
  ], 2),
4957
- e("label", Mm, [
4957
+ e("label", Bm, [
4958
4958
  e("span", null, p(l($)("annotationAuthorName")), 1),
4959
4959
  A(e("input", {
4960
4960
  "onUpdate:modelValue": o[38] || (o[38] = (a) => yn(ue) ? ue.value = a : null),
4961
4961
  type: "text",
4962
4962
  placeholder: l($)("annotationAuthorPlaceholder")
4963
- }, null, 8, Um), [
4963
+ }, null, 8, Mm), [
4964
4964
  [z, l(ue)]
4965
4965
  ])
4966
4966
  ]),
4967
- e("label", jm, [
4967
+ e("label", Um, [
4968
4968
  e("span", null, p(l($)("annotationPollingInterval")), 1),
4969
- e("div", Vm, [
4969
+ e("div", jm, [
4970
4970
  A(e("input", {
4971
4971
  "onUpdate:modelValue": o[39] || (o[39] = (a) => yn(Ne) ? Ne.value = a : null),
4972
4972
  min: "10",
@@ -4987,12 +4987,12 @@ const _f = {
4987
4987
  disabled: Number(l(Ne)) === l(Ce),
4988
4988
  onClick: o[40] || (o[40] = //@ts-ignore
4989
4989
  (...a) => l(qa) && l(qa)(...a))
4990
- }, p(l($)("annotationPollingSave")), 9, Lm)
4990
+ }, p(l($)("annotationPollingSave")), 9, Vm)
4991
4991
  ])
4992
4992
  ]),
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)),
4993
+ e("p", Lm, p(l(Ue)), 1),
4994
+ l(q) === "annotations" ? (v(), f("div", Fm, [
4995
+ l(T).length ? w("", !0) : (v(), f("p", Km, p(l($)("annotationEmpty")), 1)),
4996
4996
  (v(!0), f(_, null, N(l(T), (a, y) => (v(), f("section", {
4997
4997
  key: a.id,
4998
4998
  onMouseenter: (j) => sr(a),
@@ -5004,38 +5004,38 @@ const _f = {
5004
5004
  e("h3", null, p(a.featureName), 1),
5005
5005
  e("p", null, p(a.featureDescription), 1),
5006
5006
  e("small", null, p(a.specialNote), 1),
5007
- a.authorName || a.updatedAt ? (v(), f("small", Hm, [
5008
- H(p(a.authorName || "未署名"), 1),
5007
+ a.authorName || a.updatedAt ? (v(), f("small", Gm, [
5008
+ G(p(a.authorName || "未署名"), 1),
5009
5009
  ia(a.updatedAt) ? (v(), f(_, { key: 0 }, [
5010
- H(" · " + p(ia(a.updatedAt)), 1)
5010
+ G(" · " + p(ia(a.updatedAt)), 1)
5011
5011
  ], 64)) : w("", !0)
5012
5012
  ])) : w("", !0)
5013
5013
  ]),
5014
- e("div", Wm, [
5014
+ e("div", Hm, [
5015
5015
  e("button", {
5016
5016
  class: "annotation-list-edit",
5017
5017
  type: "button",
5018
5018
  onClick: (j) => l(In)(a.id)
5019
- }, p(l($)("editProfile")), 9, Ym),
5019
+ }, p(l($)("editProfile")), 9, Wm),
5020
5020
  e("button", {
5021
5021
  class: "annotation-list-delete annotation-delete-btn",
5022
5022
  type: "button",
5023
5023
  disabled: !l(ue).trim(),
5024
5024
  title: l(ue).trim() ? "" : "请先输入昵称以删除注释",
5025
5025
  onClick: (j) => l(be)(a.id)
5026
- }, p(l($)("annotationDelete")), 9, Jm)
5026
+ }, p(l($)("annotationDelete")), 9, Ym)
5027
5027
  ])
5028
- ], 40, Gm))), 128))
5029
- ])) : (v(), f("div", Xm, [
5028
+ ], 40, zm))), 128))
5029
+ ])) : (v(), f("div", Jm, [
5030
5030
  l(R) ? (v(), f(_, { key: 1 }, [
5031
- wo.value ? (v(), f("small", qm, p(wo.value), 1)) : w("", !0),
5031
+ wo.value ? (v(), f("small", Zm, p(wo.value), 1)) : w("", !0),
5032
5032
  (v(!0), f(_, null, N(Qt.value, (a) => (v(), f("section", {
5033
5033
  key: a.id
5034
5034
  }, [
5035
5035
  e("h3", null, p(a.label), 1),
5036
5036
  e("p", null, p(a.value), 1)
5037
5037
  ]))), 128))
5038
- ], 64)) : (v(), f("p", Zm, p(l($)("pageDescriptionEmpty")), 1))
5038
+ ], 64)) : (v(), f("p", Xm, p(l($)("pageDescriptionEmpty")), 1))
5039
5039
  ]))
5040
5040
  ], 64))
5041
5041
  ], 2)) : w("", !0),
@@ -5051,13 +5051,13 @@ const _f = {
5051
5051
  onClick: o[42] || (o[42] = (a) => St.value = !St.value)
5052
5052
  }, p(St.value ? "展开数据源" : "收起数据源"), 1),
5053
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),
5054
+ e("div", qm, [
5055
+ e("span", Qm, p(l(ft) === "warning" || l(ft) === "conflict" ? "⚠" : "●"), 1),
5056
5056
  e("strong", null, p(Ti.value), 1),
5057
5057
  e("small", null, [
5058
- H("· " + p(Di.value), 1),
5058
+ G("· " + p(Di.value), 1),
5059
5059
  sl.value ? (v(), f(_, { key: 0 }, [
5060
- H(" · " + p(sl.value), 1)
5060
+ G(" · " + p(sl.value), 1)
5061
5061
  ], 64)) : w("", !0)
5062
5062
  ])
5063
5063
  ]),
@@ -5069,7 +5069,7 @@ const _f = {
5069
5069
  disabled: l(je) === "running",
5070
5070
  onClick: o[43] || (o[43] = //@ts-ignore
5071
5071
  (...a) => l(Za) && l(Za)(...a))
5072
- }, p(l(je) === "running" ? `${l(E).current}/${l(E).total}` : Ni.value ? "检查远端资料" : "初始化到 Gitee"), 9, tg)) : w("", !0),
5072
+ }, p(l(je) === "running" ? `${l(E).current}/${l(E).total}` : Ni.value ? "检查远端资料" : "初始化到 Gitee"), 9, eg)) : w("", !0),
5073
5073
  e("button", {
5074
5074
  class: "environment-check-trigger",
5075
5075
  type: "button",
@@ -5082,16 +5082,16 @@ const _f = {
5082
5082
  class: "environment-check-backdrop",
5083
5083
  onClick: o[46] || (o[46] = re((a) => Zt.value = !1, ["self"]))
5084
5084
  }, [
5085
- e("section", ng, [
5085
+ e("section", tg, [
5086
5086
  e("header", null, [
5087
5087
  e("div", null, [
5088
5088
  o[108] || (o[108] = e("h2", { id: "environment-check-title" }, "环境变量检查", -1)),
5089
5089
  e("p", {
5090
5090
  class: P({ "has-missing": qo.value > 0 })
5091
5091
  }, [
5092
- H(p(ul.value) + " / " + p(rl.value) + " 已配置 ", 1),
5092
+ G(p(ul.value) + " / " + p(rl.value) + " 已配置 ", 1),
5093
5093
  qo.value ? (v(), f(_, { key: 0 }, [
5094
- H(" · 缺失 " + p(qo.value) + " 项", 1)
5094
+ G(" · 缺失 " + p(qo.value) + " 项", 1)
5095
5095
  ], 64)) : w("", !0)
5096
5096
  ], 2)
5097
5097
  ]),
@@ -5101,7 +5101,7 @@ const _f = {
5101
5101
  onClick: o[45] || (o[45] = (a) => Zt.value = !1)
5102
5102
  }, "×")
5103
5103
  ]),
5104
- e("div", og, [
5104
+ e("div", ng, [
5105
5105
  (v(!0), f(_, null, N(Zo.value, (a) => (v(), f("section", {
5106
5106
  key: a.id
5107
5107
  }, [
@@ -5110,7 +5110,7 @@ const _f = {
5110
5110
  key: y.name,
5111
5111
  class: P(["environment-check-row", { missing: !y.configured }])
5112
5112
  }, [
5113
- e("span", ag, p(y.configured ? "✓" : "✕"), 1),
5113
+ e("span", og, p(y.configured ? "✓" : "✕"), 1),
5114
5114
  e("code", null, p(y.name), 1),
5115
5115
  e("b", null, p(y.configured ? "已配置" : "请配置"), 1)
5116
5116
  ], 2))), 128))
@@ -5130,7 +5130,7 @@ const _f = {
5130
5130
  onClick: o[47] || (o[47] = (a) => kt.value = !kt.value)
5131
5131
  }, [
5132
5132
  X(l(Qr), { class: "h-4 w-4" }),
5133
- H(" " + p(kt.value ? "快捷键" : "收起快捷键"), 1)
5133
+ G(" " + p(kt.value ? "快捷键" : "收起快捷键"), 1)
5134
5134
  ]),
5135
5135
  kt.value ? w("", !0) : (v(), f(_, { key: 0 }, [
5136
5136
  o[110] || (o[110] = e("div", { class: "shortcut-panel-head" }, [
@@ -5154,7 +5154,7 @@ const _f = {
5154
5154
  ], 2)) : w("", !0),
5155
5155
  X(os, { name: "shortcut-toast" }, {
5156
5156
  default: as(() => [
5157
- de.value === "prototype" && ta.value && !Q.value && !Be.value ? (v(), f("div", lg, " 按快捷键 P 可以进入/退出演示模式 ")) : w("", !0)
5157
+ de.value === "prototype" && ta.value && !Q.value && !Be.value ? (v(), f("div", ag, " 按快捷键 P 可以进入/退出演示模式 ")) : w("", !0)
5158
5158
  ]),
5159
5159
  _: 1
5160
5160
  }),
@@ -5163,14 +5163,14 @@ const _f = {
5163
5163
  class: "page-description-dialog-backdrop",
5164
5164
  onClick: re(aa, ["self"])
5165
5165
  }, [
5166
- e("section", sg, [
5167
- e("div", ig, [
5166
+ e("section", lg, [
5167
+ e("div", sg, [
5168
5168
  e("div", null, [
5169
5169
  e("p", null, p(l(R) ? "编辑页面描述" : "新增页面描述"), 1),
5170
5170
  e("span", null, [
5171
- H(p(l(mt).code) + " · " + p(l(mt).title), 1),
5171
+ G(p(l(mt).code) + " · " + p(l(mt).title), 1),
5172
5172
  fn.value ? (v(), f(_, { key: 0 }, [
5173
- H(" · " + p(fn.value), 1)
5173
+ G(" · " + p(fn.value), 1)
5174
5174
  ], 64)) : w("", !0)
5175
5175
  ])
5176
5176
  ]),
@@ -5184,8 +5184,8 @@ const _f = {
5184
5184
  class: "page-description-form",
5185
5185
  onSubmit: re(Gi, ["prevent"])
5186
5186
  }, [
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, [
5187
+ l(R) ? wo.value ? (v(), f("small", rg, p(wo.value), 1)) : w("", !0) : (v(), f("p", ig, p(l($)("pageDescriptionEmpty")), 1)),
5188
+ e("label", ug, [
5189
5189
  A(e("input", {
5190
5190
  "onUpdate:modelValue": o[48] || (o[48] = (a) => l(U).highlighted = a),
5191
5191
  type: "checkbox"
@@ -5199,7 +5199,7 @@ const _f = {
5199
5199
  A(e("textarea", {
5200
5200
  "onUpdate:modelValue": o[49] || (o[49] = (a) => l(U).purpose = a),
5201
5201
  placeholder: l($)("pageDescriptionPurposePlaceholder")
5202
- }, null, 8, dg), [
5202
+ }, null, 8, cg), [
5203
5203
  [z, l(U).purpose]
5204
5204
  ])
5205
5205
  ]),
@@ -5208,7 +5208,7 @@ const _f = {
5208
5208
  A(e("textarea", {
5209
5209
  "onUpdate:modelValue": o[50] || (o[50] = (a) => l(U).structure = a),
5210
5210
  placeholder: l($)("pageDescriptionStructurePlaceholder")
5211
- }, null, 8, pg), [
5211
+ }, null, 8, dg), [
5212
5212
  [z, l(U).structure]
5213
5213
  ])
5214
5214
  ]),
@@ -5217,7 +5217,7 @@ const _f = {
5217
5217
  A(e("textarea", {
5218
5218
  "onUpdate:modelValue": o[51] || (o[51] = (a) => l(U).features = a),
5219
5219
  placeholder: l($)("pageDescriptionFeaturesPlaceholder")
5220
- }, null, 8, vg), [
5220
+ }, null, 8, pg), [
5221
5221
  [z, l(U).features]
5222
5222
  ])
5223
5223
  ]),
@@ -5226,7 +5226,7 @@ const _f = {
5226
5226
  A(e("textarea", {
5227
5227
  "onUpdate:modelValue": o[52] || (o[52] = (a) => l(U).flowPosition = a),
5228
5228
  placeholder: l($)("pageDescriptionFlowPlaceholder")
5229
- }, null, 8, fg), [
5229
+ }, null, 8, vg), [
5230
5230
  [z, l(U).flowPosition]
5231
5231
  ])
5232
5232
  ]),
@@ -5271,11 +5271,11 @@ const _f = {
5271
5271
  A(e("textarea", {
5272
5272
  "onUpdate:modelValue": o[57] || (o[57] = (a) => l(U).developmentNotes = a),
5273
5273
  placeholder: l($)("pageDescriptionDevelopmentPlaceholder")
5274
- }, null, 8, mg), [
5274
+ }, null, 8, fg), [
5275
5275
  [z, l(U).developmentNotes]
5276
5276
  ])
5277
5277
  ]),
5278
- e("div", gg, [
5278
+ e("div", mg, [
5279
5279
  e("button", {
5280
5280
  type: "button",
5281
5281
  onClick: aa
@@ -5283,7 +5283,7 @@ const _f = {
5283
5283
  e("button", {
5284
5284
  type: "submit",
5285
5285
  disabled: l(ke) === "syncing"
5286
- }, p(l($)("pageDescriptionSave")), 9, bg)
5286
+ }, p(l($)("pageDescriptionSave")), 9, gg)
5287
5287
  ])
5288
5288
  ], 32)
5289
5289
  ])
@@ -5297,7 +5297,7 @@ const _f = {
5297
5297
  onMouseleave: o[60] || (o[60] = //@ts-ignore
5298
5298
  (...a) => l(c) && l(c)(...a))
5299
5299
  }, [
5300
- e("div", yg, [
5300
+ e("div", bg, [
5301
5301
  e("b", null, p(l(le).featureName), 1),
5302
5302
  e("button", {
5303
5303
  class: "annotation-delete-btn",
@@ -5305,12 +5305,12 @@ const _f = {
5305
5305
  disabled: !l(ue).trim(),
5306
5306
  title: l(ue).trim() ? "" : "请先输入昵称以删除注释",
5307
5307
  onClick: o[58] || (o[58] = (a) => l(be)(l(le).id))
5308
- }, p(l($)("annotationDelete")), 9, hg)
5308
+ }, p(l($)("annotationDelete")), 9, yg)
5309
5309
  ]),
5310
5310
  e("p", null, p(l(le).featureDescription), 1),
5311
5311
  e("small", null, p(l(le).specialNote), 1)
5312
5312
  ], 36)) : w("", !0),
5313
- de.value === "prototype" && l(ee) && !Q.value ? (v(), f("div", wg, [
5313
+ de.value === "prototype" && l(ee) && !Q.value ? (v(), f("div", hg, [
5314
5314
  e("form", {
5315
5315
  class: "annotation-form",
5316
5316
  onSubmit: o[66] || (o[66] = re(
@@ -5326,7 +5326,7 @@ const _f = {
5326
5326
  "onUpdate:modelValue": o[61] || (o[61] = (a) => l(ee).featureName = a),
5327
5327
  type: "text",
5328
5328
  placeholder: l($)("annotationNamePlaceholder")
5329
- }, null, 8, xg), [
5329
+ }, null, 8, wg), [
5330
5330
  [z, l(ee).featureName]
5331
5331
  ])
5332
5332
  ]),
@@ -5335,7 +5335,7 @@ const _f = {
5335
5335
  A(e("textarea", {
5336
5336
  "onUpdate:modelValue": o[62] || (o[62] = (a) => l(ee).featureDescription = a),
5337
5337
  placeholder: l($)("annotationDescPlaceholder")
5338
- }, null, 8, Sg), [
5338
+ }, null, 8, xg), [
5339
5339
  [z, l(ee).featureDescription]
5340
5340
  ])
5341
5341
  ]),
@@ -5344,7 +5344,7 @@ const _f = {
5344
5344
  A(e("textarea", {
5345
5345
  "onUpdate:modelValue": o[63] || (o[63] = (a) => l(ee).specialNote = a),
5346
5346
  placeholder: l($)("annotationNotePlaceholder")
5347
- }, null, 8, kg), [
5347
+ }, null, 8, Sg), [
5348
5348
  [z, l(ee).specialNote]
5349
5349
  ])
5350
5350
  ]),
@@ -5354,11 +5354,11 @@ const _f = {
5354
5354
  "onUpdate:modelValue": o[64] || (o[64] = (a) => yn(ue) ? ue.value = a : null),
5355
5355
  type: "text",
5356
5356
  placeholder: l($)("annotationAuthorPlaceholder")
5357
- }, null, 8, Cg), [
5357
+ }, null, 8, kg), [
5358
5358
  [z, l(ue)]
5359
5359
  ])
5360
5360
  ]),
5361
- e("div", $g, [
5361
+ e("div", Cg, [
5362
5362
  e("button", {
5363
5363
  type: "button",
5364
5364
  onClick: o[65] || (o[65] = //@ts-ignore
@@ -5367,11 +5367,11 @@ const _f = {
5367
5367
  e("button", {
5368
5368
  type: "submit",
5369
5369
  disabled: !l(ee).featureName.trim() || !l(ee).featureDescription.trim() || !l(ee).specialNote.trim() || !l(ue).trim()
5370
- }, p(l($)("annotationSave")), 9, _g)
5370
+ }, p(l($)("annotationSave")), 9, $g)
5371
5371
  ])
5372
5372
  ], 32)
5373
5373
  ])) : w("", !0),
5374
- de.value === "prototype" && l(Ee) && !Q.value ? (v(), f("div", Ig, [
5374
+ de.value === "prototype" && l(Ee) && !Q.value ? (v(), f("div", _g, [
5375
5375
  e("form", {
5376
5376
  class: "annotation-form",
5377
5377
  onSubmit: o[72] || (o[72] = re(
@@ -5387,7 +5387,7 @@ const _f = {
5387
5387
  "onUpdate:modelValue": o[67] || (o[67] = (a) => l(ne).featureName = a),
5388
5388
  type: "text",
5389
5389
  readonly: l(ae) === "view"
5390
- }, null, 8, Pg), [
5390
+ }, null, 8, Ig), [
5391
5391
  [z, l(ne).featureName]
5392
5392
  ])
5393
5393
  ]),
@@ -5396,7 +5396,7 @@ const _f = {
5396
5396
  A(e("textarea", {
5397
5397
  "onUpdate:modelValue": o[68] || (o[68] = (a) => l(ne).featureDescription = a),
5398
5398
  readonly: l(ae) === "view"
5399
- }, null, 8, Dg), [
5399
+ }, null, 8, Pg), [
5400
5400
  [z, l(ne).featureDescription]
5401
5401
  ])
5402
5402
  ]),
@@ -5405,17 +5405,17 @@ const _f = {
5405
5405
  A(e("textarea", {
5406
5406
  "onUpdate:modelValue": o[69] || (o[69] = (a) => l(ne).specialNote = a),
5407
5407
  readonly: l(ae) === "view"
5408
- }, null, 8, Ag), [
5408
+ }, null, 8, Dg), [
5409
5409
  [z, l(ne).specialNote]
5410
5410
  ])
5411
5411
  ]),
5412
- l(ae) === "edit" ? (v(), f("label", Ng, [
5412
+ l(ae) === "edit" ? (v(), f("label", Ag, [
5413
5413
  e("span", null, p(l($)("annotationAuthorName")), 1),
5414
5414
  A(e("input", {
5415
5415
  "onUpdate:modelValue": o[70] || (o[70] = (a) => yn(ue) ? ue.value = a : null),
5416
5416
  type: "text",
5417
5417
  placeholder: l($)("annotationAuthorPlaceholder")
5418
- }, null, 8, Tg), [
5418
+ }, null, 8, Ng), [
5419
5419
  [z, l(ue)]
5420
5420
  ])
5421
5421
  ])) : w("", !0),
@@ -5431,7 +5431,7 @@ const _f = {
5431
5431
  key: 0,
5432
5432
  type: "submit",
5433
5433
  disabled: !l(ne).featureName.trim() || !l(ne).featureDescription.trim() || !l(ne).specialNote.trim() || !l(ue).trim()
5434
- }, p(l($)("annotationSave")), 9, Rg)) : w("", !0)
5434
+ }, p(l($)("annotationSave")), 9, Tg)) : w("", !0)
5435
5435
  ], 2)
5436
5436
  ], 32)
5437
5437
  ])) : w("", !0),
@@ -5440,14 +5440,14 @@ const _f = {
5440
5440
  class: "page-description-summary-backdrop",
5441
5441
  onClick: o[74] || (o[74] = re((a) => qe.value = !1, ["self"]))
5442
5442
  }, [
5443
- e("section", Eg, [
5444
- e("div", Og, [
5443
+ e("section", Rg, [
5444
+ e("div", Eg, [
5445
5445
  e("div", null, [
5446
5446
  o[117] || (o[117] = e("p", null, "页面描述", -1)),
5447
5447
  e("span", null, [
5448
- H(p(l(mt).code) + " · " + p(l(mt).title), 1),
5448
+ G(p(l(mt).code) + " · " + p(l(mt).title), 1),
5449
5449
  fn.value ? (v(), f(_, { key: 0 }, [
5450
- H(" · " + p(fn.value), 1)
5450
+ G(" · " + p(fn.value), 1)
5451
5451
  ], 64)) : w("", !0)
5452
5452
  ])
5453
5453
  ]),
@@ -5457,7 +5457,7 @@ const _f = {
5457
5457
  onClick: o[73] || (o[73] = (a) => qe.value = !1)
5458
5458
  }, "×")
5459
5459
  ]),
5460
- e("div", Bg, [
5460
+ e("div", Og, [
5461
5461
  o[118] || (o[118] = e("div", { class: "page-description-summary-options-head" }, [
5462
5462
  e("p", null, "展示内容")
5463
5463
  ], -1)),
@@ -5479,26 +5479,26 @@ const _f = {
5479
5479
  type: "checkbox",
5480
5480
  checked: ze.value.includes(a.id),
5481
5481
  onChange: (y) => dr(a.id)
5482
- }, null, 40, Mg),
5482
+ }, null, 40, Bg),
5483
5483
  e("span", null, p(a.label), 1)
5484
5484
  ]))), 128))
5485
5485
  ])
5486
5486
  ]),
5487
- e("div", Ug, [
5487
+ e("div", Mg, [
5488
5488
  xo.value.length ? (v(!0), f(_, { key: 1 }, N(xo.value, (a) => (v(), f("p", {
5489
5489
  key: a.id
5490
5490
  }, [
5491
5491
  e("b", null, p(a.label) + ":", 1),
5492
- H(p(a.value), 1)
5493
- ]))), 128)) : (v(), f("p", jg, "请选择要展示的描述部分。"))
5492
+ G(p(a.value), 1)
5493
+ ]))), 128)) : (v(), f("p", Ug, "请选择要展示的描述部分。"))
5494
5494
  ]),
5495
- e("div", Vg, [
5495
+ e("div", jg, [
5496
5496
  e("small", null, p(Tt.value), 1),
5497
5497
  e("button", {
5498
5498
  type: "button",
5499
5499
  disabled: !xo.value.length,
5500
5500
  onClick: ur
5501
- }, "复制选中内容", 8, Lg)
5501
+ }, "复制选中内容", 8, Vg)
5502
5502
  ])
5503
5503
  ])
5504
5504
  ])) : w("", !0),
@@ -5507,8 +5507,8 @@ const _f = {
5507
5507
  class: "prototype-health-backdrop",
5508
5508
  onClick: o[78] || (o[78] = re((a) => Nt.value = !1, ["self"]))
5509
5509
  }, [
5510
- e("section", Fg, [
5511
- e("div", Kg, [
5510
+ e("section", Lg, [
5511
+ e("div", Fg, [
5512
5512
  o[119] || (o[119] = e("div", null, [
5513
5513
  e("p", null, "原型健康检查"),
5514
5514
  e("span", null, "页面描述覆盖率优先读取云端 manifest;云端文件全量检查请运行 pnpm validate:remote")
@@ -5519,7 +5519,7 @@ const _f = {
5519
5519
  onClick: o[75] || (o[75] = (a) => Nt.value = !1)
5520
5520
  }, "×")
5521
5521
  ]),
5522
- e("div", zg, [
5522
+ e("div", Kg, [
5523
5523
  e("button", {
5524
5524
  type: "button",
5525
5525
  class: P({ active: An.value === "overview" }),
@@ -5532,7 +5532,7 @@ const _f = {
5532
5532
  }, "页面/状态矩阵", 2)
5533
5533
  ]),
5534
5534
  An.value === "overview" ? (v(), f(_, { key: 0 }, [
5535
- e("div", Gg, [
5535
+ e("div", zg, [
5536
5536
  (v(!0), f(_, null, N(rr.value, (a) => (v(), f("section", {
5537
5537
  key: a.label
5538
5538
  }, [
@@ -5541,12 +5541,12 @@ const _f = {
5541
5541
  e("small", null, p(a.detail), 1)
5542
5542
  ]))), 128))
5543
5543
  ]),
5544
- e("div", Hg, [
5545
- e("div", Wg, [
5544
+ e("div", Gg, [
5545
+ e("div", Hg, [
5546
5546
  o[120] || (o[120] = e("p", null, "问题清单", -1)),
5547
5547
  e("span", null, p(Cl.value.filter((a) => a.tone !== "success").length) + " 个待关注项", 1)
5548
5548
  ]),
5549
- e("div", Yg, [
5549
+ e("div", Wg, [
5550
5550
  (v(!0), f(_, null, N(Cl.value, (a) => (v(), f("section", {
5551
5551
  key: a.title,
5552
5552
  class: P(`is-${a.tone}`)
@@ -5556,13 +5556,13 @@ const _f = {
5556
5556
  ], 2))), 128))
5557
5557
  ])
5558
5558
  ])
5559
- ], 64)) : (v(), f("div", Jg, [
5559
+ ], 64)) : (v(), f("div", Yg, [
5560
5560
  o[122] || (o[122] = e("div", { class: "prototype-health-section-head" }, [
5561
5561
  e("p", null, "页面/状态矩阵"),
5562
5562
  e("span", null, "按页面聚合状态、流程覆盖、描述覆盖和注释数量")
5563
5563
  ], -1)),
5564
- e("div", Xg, [
5565
- e("table", Zg, [
5564
+ e("div", Jg, [
5565
+ e("table", Xg, [
5566
5566
  o[121] || (o[121] = e("thead", null, [
5567
5567
  e("tr", null, [
5568
5568
  e("th", null, "编号"),
@@ -5601,18 +5601,18 @@ const _f = {
5601
5601
  class: "fixed inset-0 z-[130] flex items-center justify-center bg-black/35 px-4",
5602
5602
  onClick: o[80] || (o[80] = re((a) => Et.value = !1, ["self"]))
5603
5603
  }, [
5604
- e("section", qg, [
5605
- e("div", Qg, [
5604
+ e("section", Zg, [
5605
+ e("div", qg, [
5606
5606
  e("div", null, [
5607
5607
  o[123] || (o[123] = e("h2", { class: "text-lg font-semibold text-ink" }, "更新历史", -1)),
5608
- e("p", e1, "最近一次更新时间:" + p(Ui.value), 1)
5608
+ e("p", Qg, "最近一次更新时间:" + p(Ui.value), 1)
5609
5609
  ]),
5610
5610
  e("button", {
5611
5611
  class: "flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-soft text-base font-semibold text-ink",
5612
5612
  onClick: o[79] || (o[79] = (a) => Et.value = !1)
5613
5613
  }, " × ")
5614
5614
  ]),
5615
- e("div", t1, [
5615
+ e("div", e1, [
5616
5616
  (v(!0), f(_, null, N(l(mo), (a) => (v(), f("section", {
5617
5617
  key: a.hash,
5618
5618
  class: "overflow-hidden rounded-[16px] bg-soft transition"
@@ -5622,27 +5622,27 @@ const _f = {
5622
5622
  class: "w-full p-3 text-left",
5623
5623
  onClick: (y) => Sr(a.hash)
5624
5624
  }, [
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
+ e("div", n1, [
5626
+ e("p", o1, p(a.date), 1),
5627
+ e("div", a1, [
5628
+ e("code", l1, p(a.hash), 1),
5629
5629
  e("span", {
5630
5630
  class: P(["text-sm text-muted transition-transform duration-200", { "rotate-180": go.value === a.hash }])
5631
5631
  }, "⌄", 2)
5632
5632
  ])
5633
5633
  ]),
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, [
5634
+ e("p", s1, p(a.message), 1)
5635
+ ], 8, t1),
5636
+ go.value === a.hash ? (v(), f("div", i1, [
5637
+ Dl(a).length ? (v(), f("div", r1, [
5638
5638
  (v(!0), f(_, null, N(Dl(a), (y) => (v(), f("p", {
5639
5639
  key: `${a.hash}-${y}`,
5640
5640
  class: "rounded-[12px] bg-panel px-3 py-2 text-xs leading-5 text-muted"
5641
5641
  }, p(y), 1))), 128))
5642
- ])) : (v(), f("p", c1, "暂无更多修改细节"))
5642
+ ])) : (v(), f("p", u1, "暂无更多修改细节"))
5643
5643
  ])) : w("", !0)
5644
5644
  ]))), 128)),
5645
- l(mo).length ? w("", !0) : (v(), f("p", d1, "暂无提交记录"))
5645
+ l(mo).length ? w("", !0) : (v(), f("p", c1, "暂无提交记录"))
5646
5646
  ])
5647
5647
  ])
5648
5648
  ])) : w("", !0),
@@ -5651,7 +5651,7 @@ const _f = {
5651
5651
  class: "mobile-page-picker-backdrop",
5652
5652
  onClick: re(Io, ["self"])
5653
5653
  }, [
5654
- e("section", p1, [
5654
+ e("section", d1, [
5655
5655
  o[126] || (o[126] = e("div", { class: "mobile-page-picker-handle" }, null, -1)),
5656
5656
  e("header", { class: "mobile-page-picker-head" }, [
5657
5657
  o[124] || (o[124] = e("div", null, [
@@ -5671,7 +5671,7 @@ const _f = {
5671
5671
  }, null, 512), [
5672
5672
  [z, Nn.value]
5673
5673
  ]),
5674
- e("div", v1, [
5674
+ e("div", p1, [
5675
5675
  (v(!0), f(_, null, N(Fi.value, (a) => (v(), f("section", {
5676
5676
  key: a.screen.id,
5677
5677
  class: "mobile-page-picker-item"
@@ -5681,14 +5681,14 @@ const _f = {
5681
5681
  class: P(["mobile-page-picker-screen", { active: l(u) === a.screen.id }]),
5682
5682
  onClick: (y) => a.states.length ? Or(a.screen.id) : Br(a.screen.id)
5683
5683
  }, [
5684
- e("span", m1, p(a.screen.code), 1),
5685
- e("span", g1, [
5684
+ e("span", f1, p(a.screen.code), 1),
5685
+ e("span", m1, [
5686
5686
  e("b", null, p(a.screen.title), 1),
5687
5687
  e("small", null, p(a.screen.subtitle), 1)
5688
5688
  ]),
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, [
5689
+ a.states.length ? (v(), f("span", g1, p(a.states.length), 1)) : w("", !0)
5690
+ ], 10, v1),
5691
+ a.states.length && (a.forceExpanded || uo.value.has(a.screen.id)) ? (v(), f("div", b1, [
5692
5692
  (v(!0), f(_, null, N(a.states, (y) => (v(), f("button", {
5693
5693
  key: y.id,
5694
5694
  type: "button",
@@ -5696,8 +5696,8 @@ const _f = {
5696
5696
  onClick: (j) => Mr(a.screen.id, y.id)
5697
5697
  }, [
5698
5698
  o[125] || (o[125] = e("span", null, null, -1)),
5699
- H(" " + p(y.label), 1)
5700
- ], 10, h1))), 128))
5699
+ G(" " + p(y.label), 1)
5700
+ ], 10, y1))), 128))
5701
5701
  ])) : w("", !0)
5702
5702
  ]))), 128))
5703
5703
  ])
@@ -5709,7 +5709,7 @@ const _f = {
5709
5709
  class: "presentation-exit-btn",
5710
5710
  onClick: na
5711
5711
  }, " 退出演示 (Esc) ")) : w("", !0),
5712
- de.value === "prototype" && l(W) && !Q.value ? (v(), st(kc, {
5712
+ de.value === "prototype" && l(W) && !Q.value ? (v(), st(Sc, {
5713
5713
  key: 17,
5714
5714
  flows: l(Pt),
5715
5715
  screens: l(fe),
@@ -5720,15 +5720,15 @@ const _f = {
5720
5720
  onPush: Wi,
5721
5721
  onExport: l(_i)
5722
5722
  }, null, 8, ["flows", "screens", "state-options-by-screen", "can-push-remote", "onExport"])) : w("", !0)
5723
- ], 64)) : (v(), f("section", _f, [
5723
+ ], 64)) : (v(), f("section", $f, [
5724
5724
  e("form", {
5725
5725
  class: "w-full max-w-sm rounded-[28px] border border-line bg-panel p-6 text-center shadow-soft",
5726
5726
  onSubmit: re(Mi, ["prevent"])
5727
5727
  }, [
5728
5728
  o[85] || (o[85] = e("h1", { class: "text-2xl font-semibold text-ink" }, "产品原型访问", -1)),
5729
5729
  o[86] || (o[86] = e("p", { class: "mt-2 text-sm leading-6 text-muted" }, "请输入访问账号和密码", -1)),
5730
- e("div", If, [
5731
- e("label", Pf, [
5730
+ e("div", _f, [
5731
+ e("label", If, [
5732
5732
  o[83] || (o[83] = e("span", { class: "text-xs font-semibold text-muted" }, "账号", -1)),
5733
5733
  A(e("input", {
5734
5734
  "onUpdate:modelValue": o[0] || (o[0] = (a) => so.value = a),
@@ -5739,7 +5739,7 @@ const _f = {
5739
5739
  [z, so.value]
5740
5740
  ])
5741
5741
  ]),
5742
- e("label", Df, [
5742
+ e("label", Pf, [
5743
5743
  o[84] || (o[84] = e("span", { class: "text-xs font-semibold text-muted" }, "密码", -1)),
5744
5744
  A(e("input", {
5745
5745
  "onUpdate:modelValue": o[1] || (o[1] = (a) => io.value = a),
@@ -5755,12 +5755,12 @@ const _f = {
5755
5755
  class: "primary-btn mt-5 w-full justify-center",
5756
5756
  type: "submit"
5757
5757
  }, "进入原型", -1)),
5758
- Pn.value ? (v(), f("p", Af, p(Pn.value), 1)) : w("", !0)
5758
+ Pn.value ? (v(), f("p", Df, p(Pn.value), 1)) : w("", !0)
5759
5759
  ], 32)
5760
5760
  ]))
5761
5761
  ], 6));
5762
5762
  }
5763
5763
  });
5764
5764
  export {
5765
- P1 as default
5765
+ I1 as default
5766
5766
  };