@marktowin/prototype-core 1.0.3 → 1.0.4

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 wn, computed as C, openBlock as v, createBlock as lt, resolveDynamicComponent as Eo, createElementBlock as f, Fragment as P, renderList as N, normalizeClass as _, createTextVNode as G, toDisplayString as p, createElementVNode as e, createCommentVNode as x, ref as g, watch as _e, createVNode as X, Transition as Yl, withCtx as Xl, unref as a, withModifiers as ce, withDirectives as A, vModelText as F, normalizeStyle as Pe, createStaticVNode as El, reactive as jn, onBeforeUnmount as Zl, vModelSelect as Ce, nextTick as ia, onMounted as Ir, isRef as mn } from "vue";
1
+ import { defineComponent as wn, computed as C, openBlock as v, createBlock as lt, resolveDynamicComponent as Eo, createElementBlock as f, Fragment as P, renderList as N, normalizeClass as _, createTextVNode as W, toDisplayString as p, createElementVNode as e, createCommentVNode as x, ref as g, watch as _e, createVNode as X, Transition as Yl, withCtx as Xl, unref as a, withModifiers as ce, withDirectives as A, vModelText as F, normalizeStyle as Pe, createStaticVNode as El, reactive as jn, onBeforeUnmount as Zl, vModelSelect as Ce, nextTick as ia, onMounted as Ir, isRef as mn } from "vue";
2
2
  import { Save as _r, CloudUpload as Ar, Download as Nr, X as _o, Plus as Vn, ChevronDown as Tr, ChevronRight as Rr, Trash2 as gn, RefreshCw as Br, AlertTriangle as Er, CheckCircle2 as Or, CircleDot as Ol, Bug as Mr, ImagePlus as Ml, Filter as Ur, Search as jr, SunMedium as Vr, RotateCcw as Lr, PanelTop as ql, Keyboard as Fr } from "@lucide/vue";
3
- import { g as Gn, a as Kr, s as zr } from "./index-DOCptIsU.js";
3
+ import { g as Gn, a as Kr, s as zr } from "./index-pVTtzcnw.js";
4
4
  const Ln = /* @__PURE__ */ wn({
5
5
  __name: "ScreenRenderer",
6
6
  props: {
@@ -25,7 +25,7 @@ const Ln = /* @__PURE__ */ wn({
25
25
  onClick: (c) => n.$emit("change", r.id)
26
26
  }, [
27
27
  (v(), lt(Eo(r.icon), { class: "h-5 w-5" })),
28
- G(" " + p(r.label), 1)
28
+ W(" " + p(r.label), 1)
29
29
  ], 10, Hr))), 128))
30
30
  ]));
31
31
  }
@@ -54,7 +54,7 @@ const Ln = /* @__PURE__ */ wn({
54
54
  onClick: ($) => s("change", m.id)
55
55
  }, [
56
56
  c[0] || (c[0] = e("span", null, null, -1)),
57
- G(" " + p(m.label) + " ", 1),
57
+ W(" " + p(m.label) + " ", 1),
58
58
  (b = t.countForState) != null && b.call(t, m.id) ? (v(), f("b", Xr, p(t.countForState(m.id)), 1)) : x("", !0)
59
59
  ], 10, Yr);
60
60
  }), 128))
@@ -231,7 +231,7 @@ const Ln = /* @__PURE__ */ wn({
231
231
  const R = w.currentTarget.getBoundingClientRect(), D = R.left + R.width / 2;
232
232
  Ie.value = w.clientX < D ? "before" : "after", ne.value = k;
233
233
  }
234
- function H(w, k) {
234
+ function G(w, k) {
235
235
  var ge;
236
236
  w.preventDefault(), w.stopPropagation();
237
237
  const T = Ie.value;
@@ -330,7 +330,7 @@ const Ln = /* @__PURE__ */ wn({
330
330
  onClick: Xe
331
331
  }, [
332
332
  X(a(_r), { class: "h-4 w-4" }),
333
- G(" " + p(je.value ? "保存中…" : "保存到当前会话"), 1)
333
+ W(" " + p(je.value ? "保存中…" : "保存到当前会话"), 1)
334
334
  ], 8, ou),
335
335
  e("button", {
336
336
  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",
@@ -339,14 +339,14 @@ const Ln = /* @__PURE__ */ wn({
339
339
  onClick: Pt
340
340
  }, [
341
341
  X(a(Ar), { class: "h-4 w-4" }),
342
- G(" " + p(We.value ? "推送中…" : "推送到 Gitee"), 1)
342
+ W(" " + p(We.value ? "推送中…" : "推送到 Gitee"), 1)
343
343
  ], 8, au),
344
344
  e("button", {
345
345
  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",
346
346
  onClick: xn
347
347
  }, [
348
348
  X(a(Nr), { class: "h-4 w-4" }),
349
- k[5] || (k[5] = G(" 导出 JSON ", -1))
349
+ k[5] || (k[5] = W(" 导出 JSON ", -1))
350
350
  ]),
351
351
  e("button", {
352
352
  class: "flex h-8 w-8 items-center justify-center rounded-full bg-soft text-ink hover:bg-canvas transition",
@@ -364,7 +364,7 @@ const Ln = /* @__PURE__ */ wn({
364
364
  onClick: nn
365
365
  }, [
366
366
  X(a(Vn), { class: "h-4 w-4" }),
367
- k[6] || (k[6] = G(" 新建主流程 ", -1))
367
+ k[6] || (k[6] = W(" 新建主流程 ", -1))
368
368
  ])
369
369
  ]),
370
370
  e("div", ru, [
@@ -422,7 +422,7 @@ const Ln = /* @__PURE__ */ wn({
422
422
  onClick: (S) => vt(K)
423
423
  }, [
424
424
  X(a(Vn), { class: "h-3 w-3" }),
425
- k[7] || (k[7] = G(" 添加子流程 ", -1))
425
+ k[7] || (k[7] = W(" 添加子流程 ", -1))
426
426
  ], 8, mu)
427
427
  ])) : x("", !0)
428
428
  ], 2))), 128))
@@ -466,7 +466,7 @@ const Ln = /* @__PURE__ */ wn({
466
466
  onClick: ee
467
467
  }, [
468
468
  X(a(Vn), { class: "h-3.5 w-3.5" }),
469
- k[10] || (k[10] = G(" 新增空行 ", -1))
469
+ k[10] || (k[10] = W(" 新增空行 ", -1))
470
470
  ])) : x("", !0)
471
471
  ])
472
472
  ]),
@@ -490,7 +490,7 @@ const Ln = /* @__PURE__ */ wn({
490
490
  onDragstart: (me) => de(me, K),
491
491
  onDragend: pe,
492
492
  onDragover: ce((me) => Ct(me, K), ["prevent"]),
493
- onDrop: (me) => H(me, K)
493
+ onDrop: (me) => G(me, K)
494
494
  }, [
495
495
  nt.value === K ? (v(), f("div", Cu)) : x("", !0),
496
496
  K === I.value.length - 1 && nt.value === I.value.length ? (v(), f("div", Du)) : x("", !0),
@@ -535,9 +535,9 @@ const Ln = /* @__PURE__ */ wn({
535
535
  e("span", Bu, p(((S = ct(D.screenId)) == null ? void 0 : S.title) ?? D.screenId), 1)
536
536
  ]),
537
537
  e("span", Eu, [
538
- G(p(((ge = ct(D.screenId)) == null ? void 0 : ge.code) ?? ""), 1),
538
+ W(p(((ge = ct(D.screenId)) == null ? void 0 : ge.code) ?? ""), 1),
539
539
  D.stateId ? (v(), f(P, { key: 0 }, [
540
- G(" · " + p(Ue(D).stateLabel), 1)
540
+ W(" · " + p(Ue(D).stateLabel), 1)
541
541
  ], 64)) : x("", !0)
542
542
  ])
543
543
  ], 46, $u);
@@ -1156,7 +1156,7 @@ const Ec = { class: "bug-page" }, Oc = { class: "bug-page-head" }, Mc = ["disabl
1156
1156
  sourceSideVersion: "",
1157
1157
  ownerRole: "后端开发",
1158
1158
  description: ""
1159
- }), U = g([]), nt = g(null), le = g([]), de = g(""), pe = g(null), Ct = Tc(), H = C(() => r.value.find((y) => y.id === Oe.value) ?? null), Dt = C(() => !!(H.value && !["已验证", "无需处理"].includes(H.value.status))), ft = C(() => r.value.filter((y) => y.status === "已修复" || y.status === "已验证").length), mt = C(() => r.value.filter((y) => y.status === "无需处理").length), gt = C(
1159
+ }), U = g([]), nt = g(null), le = g([]), de = g(""), pe = g(null), Ct = Tc(), G = C(() => r.value.find((y) => y.id === Oe.value) ?? null), Dt = C(() => !!(G.value && !["已验证", "无需处理"].includes(G.value.status))), ft = C(() => r.value.filter((y) => y.status === "已修复" || y.status === "已验证").length), mt = C(() => r.value.filter((y) => y.status === "无需处理").length), gt = C(
1160
1160
  () => Array.from(new Set(r.value.map((y) => {
1161
1161
  var u;
1162
1162
  return (u = y.sourceSideVersion) == null ? void 0 : u.trim();
@@ -1308,14 +1308,14 @@ const Ec = { class: "bug-page" }, Oc = { class: "bug-page-head" }, Mc = ["disabl
1308
1308
  const u = pt();
1309
1309
  Oe.value = y.id, Ie.value = !1, ee.value = "", Re.value = "", ae.value = !1, ne.value = "", U.value = [], at(), de.value = "", Z.status = y.status === "待处理" ? "已确认" : y.status, Z.operatorName = u, Z.fixerName = y.fixerName ?? u, Z.note = "", Ue.value = "";
1310
1310
  }
1311
- function kn() {
1311
+ function an() {
1312
1312
  Oe.value = "", Ie.value = !1, ee.value = "", Re.value = "", ae.value = !1, ne.value = "", U.value = [], at(), de.value = "";
1313
1313
  }
1314
1314
  function Lo() {
1315
- const y = H.value;
1315
+ const y = G.value;
1316
1316
  !y || !Dt.value || (ae.value = !1, Re.value = "", ne.value = "", V.title = y.title, V.type = y.type, V.severity = y.severity, V.sourceSide = y.sourceSide, V.sourceSideVersion = y.sourceSideVersion ?? "", V.ownerRole = y.ownerRole, V.description = y.description, U.value = [...y.attachments ?? []], at(), de.value = "", ee.value = "", Ie.value = !0);
1317
1317
  }
1318
- function an() {
1318
+ function kn() {
1319
1319
  Ie.value = !1, ee.value = "", U.value = [], at(), de.value = "";
1320
1320
  }
1321
1321
  function zt() {
@@ -1325,17 +1325,17 @@ const Ec = { class: "bug-page" }, Oc = { class: "bug-page-head" }, Mc = ["disabl
1325
1325
  Re.value = "", ne.value = "", ae.value = !1;
1326
1326
  }
1327
1327
  async function to() {
1328
- const y = H.value;
1328
+ const y = G.value;
1329
1329
  if (!y) return;
1330
1330
  if (!dt || ne.value.trim() !== dt) {
1331
1331
  Re.value = "密钥不正确";
1332
1332
  return;
1333
1333
  }
1334
1334
  const u = Z.operatorName.trim() || pt() || "管理员";
1335
- await Je(u, `删除 Bug ${y.id}`, (d) => d.filter((j) => j.id !== y.id)) && kn();
1335
+ await Je(u, `删除 Bug ${y.id}`, (d) => d.filter((j) => j.id !== y.id)) && an();
1336
1336
  }
1337
1337
  async function no() {
1338
- const y = H.value;
1338
+ const y = G.value;
1339
1339
  if (!y || !Dt.value) return;
1340
1340
  const u = V.title.trim(), E = V.description.trim(), d = V.sourceSideVersion.trim(), j = Z.operatorName.trim() || pt() || y.reporterName;
1341
1341
  if (!u || !E) {
@@ -1372,7 +1372,7 @@ const Ec = { class: "bug-page" }, Oc = { class: "bug-page-head" }, Mc = ["disabl
1372
1372
  }
1373
1373
  async function Sn() {
1374
1374
  Ue.value = "";
1375
- const y = H.value;
1375
+ const y = G.value;
1376
1376
  if (!y) return;
1377
1377
  const u = Z.operatorName.trim(), E = Z.fixerName.trim();
1378
1378
  if (!u) {
@@ -1605,9 +1605,9 @@ const Ec = { class: "bug-page" }, Oc = { class: "bug-page-head" }, Mc = ["disabl
1605
1605
  e("div", null, [
1606
1606
  e("b", null, p(d.name), 1),
1607
1607
  e("span", null, [
1608
- G(p(w(d.size)), 1),
1608
+ W(p(w(d.size)), 1),
1609
1609
  d.originalSize !== d.size ? (v(), f(P, { key: 0 }, [
1610
- G(" / 原图 " + p(w(d.originalSize)), 1)
1610
+ W(" / 原图 " + p(w(d.originalSize)), 1)
1611
1611
  ], 64)) : x("", !0)
1612
1612
  ]),
1613
1613
  d.error ? (v(), f("small", od, p(d.error), 1)) : x("", !0)
@@ -1788,9 +1788,9 @@ const Ec = { class: "bug-page" }, Oc = { class: "bug-page-head" }, Mc = ["disabl
1788
1788
  d.attachments.length > 3 ? (v(), f("span", Ad, "+" + p(d.attachments.length - 3), 1)) : x("", !0)
1789
1789
  ])) : x("", !0),
1790
1790
  e("small", null, [
1791
- G("提报人:" + p(d.reporterName) + " · " + p(Ft(d.createdAt)), 1),
1791
+ W("提报人:" + p(d.reporterName) + " · " + p(Ft(d.createdAt)), 1),
1792
1792
  d.fixerName ? (v(), f(P, { key: 0 }, [
1793
- G(" · 修复人:" + p(d.fixerName), 1)
1793
+ W(" · 修复人:" + p(d.fixerName), 1)
1794
1794
  ], 64)) : x("", !0)
1795
1795
  ])
1796
1796
  ]),
@@ -1819,36 +1819,36 @@ const Ec = { class: "bug-page" }, Oc = { class: "bug-page-head" }, Mc = ["disabl
1819
1819
  ])) : x("", !0)
1820
1820
  ])
1821
1821
  ]),
1822
- H.value ? (v(), f("div", {
1822
+ G.value ? (v(), f("div", {
1823
1823
  key: 0,
1824
1824
  class: "bug-detail-backdrop",
1825
- onClick: ce(kn, ["self"])
1825
+ onClick: ce(an, ["self"])
1826
1826
  }, [
1827
1827
  e("aside", Ed, [
1828
1828
  e("div", Od, [
1829
1829
  e("div", null, [
1830
- e("span", null, "#" + p(H.value.id), 1),
1831
- e("h2", null, p(H.value.title), 1)
1830
+ e("span", null, "#" + p(G.value.id), 1),
1831
+ e("h2", null, p(G.value.title), 1)
1832
1832
  ]),
1833
1833
  e("button", {
1834
1834
  type: "button",
1835
1835
  "aria-label": "关闭详情",
1836
- onClick: kn
1836
+ onClick: an
1837
1837
  }, [
1838
1838
  X(a(_o), { class: "h-5 w-5" })
1839
1839
  ])
1840
1840
  ]),
1841
1841
  e("div", Md, [
1842
- e("span", null, p(H.value.type), 1),
1842
+ e("span", null, p(G.value.type), 1),
1843
1843
  e("span", {
1844
- class: _(`severity-${Ae[H.value.severity]}`)
1845
- }, p(H.value.severity), 3),
1846
- e("span", null, "发生侧:" + p(H.value.sourceSide), 1),
1847
- H.value.sourceSideVersion ? (v(), f("span", Ud, "版本:" + p(H.value.sourceSideVersion), 1)) : x("", !0),
1848
- e("span", null, "归属:" + p(H.value.ownerRole), 1),
1844
+ class: _(`severity-${Ae[G.value.severity]}`)
1845
+ }, p(G.value.severity), 3),
1846
+ e("span", null, "发生侧:" + p(G.value.sourceSide), 1),
1847
+ G.value.sourceSideVersion ? (v(), f("span", Ud, "版本:" + p(G.value.sourceSideVersion), 1)) : x("", !0),
1848
+ e("span", null, "归属:" + p(G.value.ownerRole), 1),
1849
1849
  e("span", {
1850
- class: _(`status-${Se[H.value.status]}`)
1851
- }, p(H.value.status), 3)
1850
+ class: _(`status-${Se[G.value.status]}`)
1851
+ }, p(G.value.status), 3)
1852
1852
  ]),
1853
1853
  e("div", jd, [
1854
1854
  e("div", null, [
@@ -1866,7 +1866,7 @@ const Ec = { class: "bug-page" }, Oc = { class: "bug-page-head" }, Mc = ["disabl
1866
1866
  onClick: zt
1867
1867
  }, [
1868
1868
  X(a(gn), { class: "h-4 w-4" }),
1869
- u[64] || (u[64] = G(" 删除 Bug ", -1))
1869
+ u[64] || (u[64] = W(" 删除 Bug ", -1))
1870
1870
  ]))
1871
1871
  ]),
1872
1872
  ae.value ? (v(), f("form", {
@@ -2060,19 +2060,19 @@ const Ec = { class: "bug-page" }, Oc = { class: "bug-page-head" }, Mc = ["disabl
2060
2060
  e("div", ip, [
2061
2061
  e("button", {
2062
2062
  type: "button",
2063
- onClick: an
2063
+ onClick: kn
2064
2064
  }, "取消"),
2065
2065
  e("button", {
2066
2066
  type: "submit",
2067
2067
  disabled: a(q) === "loading"
2068
2068
  }, "保存修改", 8, rp)
2069
2069
  ])
2070
- ], 32)) : (v(), f("p", up, p(H.value.description), 1)),
2071
- e("p", cp, "提报人:" + p(H.value.reporterName) + " · " + p(Ft(H.value.createdAt)), 1),
2072
- !Ie.value && ((E = H.value.attachments) != null && E.length) ? (v(), f("section", dp, [
2070
+ ], 32)) : (v(), f("p", up, p(G.value.description), 1)),
2071
+ e("p", cp, "提报人:" + p(G.value.reporterName) + " · " + p(Ft(G.value.createdAt)), 1),
2072
+ !Ie.value && ((E = G.value.attachments) != null && E.length) ? (v(), f("section", dp, [
2073
2073
  u[75] || (u[75] = e("h3", null, "问题截图", -1)),
2074
2074
  e("div", null, [
2075
- (v(!0), f(P, null, N(H.value.attachments, (d) => (v(), f("button", {
2075
+ (v(!0), f(P, null, N(G.value.attachments, (d) => (v(), f("button", {
2076
2076
  key: d.id,
2077
2077
  type: "button",
2078
2078
  onClick: (j) => pe.value = d
@@ -2147,8 +2147,8 @@ const Ec = { class: "bug-page" }, Oc = { class: "bug-page-head" }, Mc = ["disabl
2147
2147
  ], 32),
2148
2148
  e("section", wp, [
2149
2149
  u[81] || (u[81] = e("h3", null, "处理记录", -1)),
2150
- H.value.history.length ? x("", !0) : (v(), f("p", xp, "暂无状态变更记录。")),
2151
- (v(!0), f(P, null, N(H.value.history, (d) => (v(), f("article", {
2150
+ G.value.history.length ? x("", !0) : (v(), f("p", xp, "暂无状态变更记录。")),
2151
+ (v(!0), f(P, null, N(G.value.history, (d) => (v(), f("article", {
2152
2152
  key: d.id
2153
2153
  }, [
2154
2154
  e("b", null, p(d.fromStatus) + " → " + p(d.toStatus), 1),
@@ -3266,22 +3266,25 @@ const rf = {
3266
3266
  }, ff = {
3267
3267
  key: 1,
3268
3268
  class: "top-chrome"
3269
- }, mf = { class: "apple-subnav" }, gf = { class: "text-[21px] font-semibold leading-none" }, bf = { class: "mt-1 text-xs text-muted" }, yf = { class: "mt-1 text-[11px] leading-none text-muted" }, hf = { class: "flex flex-wrap items-center justify-end gap-x-1.5 gap-y-2" }, wf = {
3269
+ }, mf = { class: "apple-subnav" }, gf = { class: "project-identity" }, bf = { class: "text-[21px] font-semibold leading-none" }, yf = { class: "mt-1 text-xs text-muted" }, hf = {
3270
+ class: "core-version-stack",
3271
+ "aria-label": "原型内核版本"
3272
+ }, wf = { class: "flex flex-wrap items-center justify-end gap-x-1.5 gap-y-2" }, xf = {
3270
3273
  key: 0,
3271
3274
  class: "bug-nav-badge"
3272
- }, xf = { class: "top-control-group flex rounded-full bg-panel ring-1 ring-line" }, kf = { class: "top-control-group flex rounded-full bg-panel ring-1 ring-line" }, Sf = { class: "top-control-group relative flex rounded-full bg-panel ring-1 ring-line" }, $f = {
3275
+ }, kf = { class: "top-control-group flex rounded-full bg-panel ring-1 ring-line" }, Sf = { class: "top-control-group flex rounded-full bg-panel ring-1 ring-line" }, $f = { class: "top-control-group relative flex rounded-full bg-panel ring-1 ring-line" }, Cf = {
3273
3276
  key: 0,
3274
3277
  class: "theme-popover"
3275
- }, Cf = { class: "flex items-start justify-between gap-3" }, Df = { class: "text-sm font-semibold text-ink" }, Pf = { class: "mt-1 text-xs leading-5 text-muted" }, If = { class: "mt-3 flex flex-wrap gap-2" }, _f = ["onClick"], Af = { class: "min-w-0" }, Nf = { class: "mt-3 flex gap-2" }, Tf = { class: "theme-color-grid" }, Rf = ["value", "onInput"], Bf = ["value", "onInput"], Ef = {
3278
+ }, Df = { class: "flex items-start justify-between gap-3" }, Pf = { class: "text-sm font-semibold text-ink" }, If = { class: "mt-1 text-xs leading-5 text-muted" }, _f = { class: "mt-3 flex flex-wrap gap-2" }, Af = ["onClick"], Nf = { class: "min-w-0" }, Tf = { class: "mt-3 flex gap-2" }, Rf = { class: "theme-color-grid" }, Bf = ["value", "onInput"], Ef = ["value", "onInput"], Of = {
3276
3279
  key: 0,
3277
3280
  class: "apple-hero-copy"
3278
- }, Of = { key: 1 }, Mf = { class: "flex flex-col gap-6 lg:flex-row" }, Uf = {
3281
+ }, Mf = { key: 1 }, Uf = { class: "flex flex-col gap-6 lg:flex-row" }, jf = {
3279
3282
  key: 0,
3280
3283
  class: "interactive-side-nav-scroll-wrap"
3281
- }, jf = ["onClick"], Vf = { class: "flex-1 text-left" }, Lf = {
3284
+ }, Vf = ["onClick"], Lf = { class: "flex-1 text-left" }, Ff = {
3282
3285
  key: 0,
3283
3286
  class: "annotation-nav-badge"
3284
- }, Ff = {
3287
+ }, Kf = {
3285
3288
  key: 0,
3286
3289
  class: "side-nav-scroll-hint-top",
3287
3290
  viewBox: "0 0 24 24",
@@ -3290,7 +3293,7 @@ const rf = {
3290
3293
  "stroke-width": "2.5",
3291
3294
  "stroke-linecap": "round",
3292
3295
  "stroke-linejoin": "round"
3293
- }, Kf = {
3296
+ }, zf = {
3294
3297
  key: 1,
3295
3298
  class: "side-nav-scroll-hint-bottom",
3296
3299
  viewBox: "0 0 24 24",
@@ -3299,91 +3302,91 @@ const rf = {
3299
3302
  "stroke-width": "2.5",
3300
3303
  "stroke-linecap": "round",
3301
3304
  "stroke-linejoin": "round"
3302
- }, zf = {
3305
+ }, Gf = {
3303
3306
  key: 1,
3304
3307
  class: "apple-side-nav overview-side-nav"
3305
- }, Gf = { class: "px-2 pb-4" }, Hf = { class: "flex items-center gap-3" }, Wf = { class: "min-w-5 text-center text-xs font-semibold text-ink" }, Jf = { class: "px-2" }, Yf = { class: "flex items-center gap-2" }, Xf = { class: "min-w-10 text-center text-xs font-semibold text-ink" }, Zf = {
3308
+ }, Hf = { class: "px-2 pb-4" }, Wf = { class: "flex items-center gap-3" }, Jf = { class: "min-w-5 text-center text-xs font-semibold text-ink" }, Yf = { class: "px-2" }, Xf = { class: "flex items-center gap-2" }, Zf = { class: "min-w-10 text-center text-xs font-semibold text-ink" }, qf = {
3306
3309
  key: 2,
3307
3310
  class: "apple-side-nav flow-side-nav lg:w-80"
3308
- }, qf = { class: "flex items-center justify-between px-2 pb-3" }, Qf = ["onClick"], em = { class: "min-w-0 flex-1 text-left" }, tm = {
3311
+ }, Qf = { class: "flex items-center justify-between px-2 pb-3" }, em = ["onClick"], tm = { class: "min-w-0 flex-1 text-left" }, nm = {
3309
3312
  key: 0,
3310
3313
  class: "flow-toolbar"
3311
- }, nm = { class: "flow-zoom-controls" }, om = {
3314
+ }, om = { class: "flow-zoom-controls" }, am = {
3312
3315
  key: 0,
3313
3316
  class: "status-bar"
3314
- }, am = ["onClickCapture"], lm = { class: "screen-scroll-wrapper" }, sm = {
3317
+ }, lm = ["onClickCapture"], sm = { class: "screen-scroll-wrapper" }, im = {
3315
3318
  key: 0,
3316
3319
  class: "annotation-layer"
3317
- }, im = ["data-annotation-id", "onMouseenter"], rm = ["disabled", "onClick", "onPointerdown"], um = { key: 0 }, cm = { class: "annotation-panel-head" }, dm = { class: "annotation-panel-tabs" }, pm = {
3320
+ }, rm = ["data-annotation-id", "onMouseenter"], um = ["disabled", "onClick", "onPointerdown"], cm = { key: 0 }, dm = { class: "annotation-panel-head" }, pm = { class: "annotation-panel-tabs" }, vm = {
3318
3321
  key: 0,
3319
3322
  class: "annotation-panel-actions"
3320
- }, vm = ["disabled"], fm = {
3323
+ }, fm = ["disabled"], mm = {
3321
3324
  key: 1,
3322
3325
  class: "annotation-panel-actions description-actions"
3323
- }, mm = ["disabled"], gm = { class: "annotation-author-field" }, bm = ["placeholder"], ym = { class: "annotation-polling-field" }, hm = { class: "annotation-polling-control" }, wm = ["disabled"], xm = { class: "annotation-polling-notice" }, km = {
3326
+ }, gm = ["disabled"], bm = { class: "annotation-author-field" }, ym = ["placeholder"], hm = { class: "annotation-polling-field" }, wm = { class: "annotation-polling-control" }, xm = ["disabled"], km = { class: "annotation-polling-notice" }, Sm = {
3324
3327
  key: 2,
3325
3328
  class: "annotation-list"
3326
- }, Sm = {
3329
+ }, $m = {
3327
3330
  key: 0,
3328
3331
  class: "annotation-empty"
3329
- }, $m = ["onMouseenter"], Cm = { key: 0 }, Dm = { class: "annotation-list-actions" }, Pm = ["onClick"], Im = ["disabled", "title", "onClick"], _m = {
3332
+ }, Cm = ["onMouseenter"], Dm = { key: 0 }, Pm = { class: "annotation-list-actions" }, Im = ["onClick"], _m = ["disabled", "title", "onClick"], Am = {
3330
3333
  key: 3,
3331
3334
  class: "page-description-view"
3332
- }, Am = {
3335
+ }, Nm = {
3333
3336
  key: 0,
3334
3337
  class: "annotation-empty"
3335
- }, Nm = {
3338
+ }, Tm = {
3336
3339
  key: 0,
3337
3340
  class: "page-description-meta"
3338
- }, Tm = { class: "collaboration-source-title" }, Rm = { "aria-hidden": "true" }, Bm = ["disabled"], Em = {
3341
+ }, Rm = { class: "collaboration-source-title" }, Bm = { "aria-hidden": "true" }, Em = ["disabled"], Om = {
3339
3342
  key: 0,
3340
3343
  class: "interaction-mode-toast",
3341
3344
  role: "status"
3342
- }, Om = { class: "page-description-dialog" }, Mm = { class: "page-description-dialog-head" }, Um = {
3345
+ }, Mm = { class: "page-description-dialog" }, Um = { class: "page-description-dialog-head" }, jm = {
3343
3346
  key: 0,
3344
3347
  class: "annotation-empty"
3345
- }, jm = {
3348
+ }, Vm = {
3346
3349
  key: 1,
3347
3350
  class: "page-description-meta"
3348
- }, Vm = ["placeholder"], Lm = ["placeholder"], Fm = ["placeholder"], Km = ["placeholder"], zm = ["placeholder"], Gm = { class: "page-description-form-actions" }, Hm = ["disabled"], Wm = { class: "annotation-popover-head" }, Jm = ["disabled", "title"], Ym = {
3351
+ }, Lm = ["placeholder"], Fm = ["placeholder"], Km = ["placeholder"], zm = ["placeholder"], Gm = ["placeholder"], Hm = { class: "page-description-form-actions" }, Wm = ["disabled"], Jm = { class: "annotation-popover-head" }, Ym = ["disabled", "title"], Xm = {
3349
3352
  key: 9,
3350
3353
  class: "annotation-form-backdrop"
3351
- }, Xm = ["placeholder"], Zm = ["placeholder"], qm = ["placeholder"], Qm = ["placeholder"], eg = { class: "annotation-form-actions" }, tg = ["disabled"], ng = {
3354
+ }, Zm = ["placeholder"], qm = ["placeholder"], Qm = ["placeholder"], eg = ["placeholder"], tg = { class: "annotation-form-actions" }, ng = ["disabled"], og = {
3352
3355
  key: 10,
3353
3356
  class: "annotation-form-backdrop"
3354
- }, og = ["readonly"], ag = ["readonly"], lg = ["readonly"], sg = { key: 0 }, ig = ["placeholder"], rg = ["disabled"], ug = { class: "page-description-summary-dialog" }, cg = { class: "page-description-summary-head" }, dg = {
3357
+ }, ag = ["readonly"], lg = ["readonly"], sg = ["readonly"], ig = { key: 0 }, rg = ["placeholder"], ug = ["disabled"], cg = { class: "page-description-summary-dialog" }, dg = { class: "page-description-summary-head" }, pg = {
3355
3358
  class: "page-description-summary-options",
3356
3359
  "aria-label": "选择展示的页面描述部分"
3357
- }, pg = ["checked", "onChange"], vg = { class: "page-description-summary-body" }, fg = {
3360
+ }, vg = ["checked", "onChange"], fg = { class: "page-description-summary-body" }, mg = {
3358
3361
  key: 0,
3359
3362
  class: "page-description-summary-empty"
3360
- }, mg = { class: "page-description-summary-actions" }, gg = ["disabled"], bg = {
3363
+ }, gg = { class: "page-description-summary-actions" }, bg = ["disabled"], yg = {
3361
3364
  class: "prototype-health-panel",
3362
3365
  role: "dialog",
3363
3366
  "aria-modal": "true",
3364
3367
  "aria-label": "原型健康检查"
3365
- }, yg = { class: "prototype-health-head" }, hg = { class: "prototype-health-tabs" }, wg = { class: "prototype-health-stat-grid" }, xg = { class: "prototype-health-section" }, kg = { class: "prototype-health-section-head" }, Sg = { class: "prototype-health-issues" }, $g = {
3368
+ }, hg = { class: "prototype-health-head" }, wg = { class: "prototype-health-tabs" }, xg = { class: "prototype-health-stat-grid" }, kg = { class: "prototype-health-section" }, Sg = { class: "prototype-health-section-head" }, $g = { class: "prototype-health-issues" }, Cg = {
3366
3369
  key: 1,
3367
3370
  class: "prototype-health-section prototype-health-matrix-section"
3368
- }, Cg = { class: "prototype-health-table-wrap" }, Dg = { class: "prototype-health-table" }, Pg = { 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)]" }, Ig = { class: "flex items-start justify-between gap-4" }, _g = { class: "mt-1 text-xs text-muted" }, Ag = { class: "mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1" }, Ng = ["onClick"], Tg = { class: "flex items-center justify-between gap-3" }, Rg = { class: "text-sm font-semibold text-ink" }, Bg = { class: "flex shrink-0 items-center gap-2" }, Eg = { class: "rounded-full bg-panel px-2 py-1 text-xs text-muted" }, Og = { class: "mt-2 text-sm leading-5 text-muted" }, Mg = {
3371
+ }, Dg = { class: "prototype-health-table-wrap" }, Pg = { class: "prototype-health-table" }, Ig = { 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)]" }, _g = { class: "flex items-start justify-between gap-4" }, Ag = { class: "mt-1 text-xs text-muted" }, Ng = { class: "mt-4 max-h-[60vh] space-y-3 overflow-y-auto pr-1" }, Tg = ["onClick"], Rg = { class: "flex items-center justify-between gap-3" }, Bg = { class: "text-sm font-semibold text-ink" }, Eg = { class: "flex shrink-0 items-center gap-2" }, Og = { class: "rounded-full bg-panel px-2 py-1 text-xs text-muted" }, Mg = { class: "mt-2 text-sm leading-5 text-muted" }, Ug = {
3369
3372
  key: 0,
3370
3373
  class: "border-t border-line bg-panel/60 px-3 py-3"
3371
- }, Ug = {
3374
+ }, jg = {
3372
3375
  key: 0,
3373
3376
  class: "space-y-2"
3374
- }, jg = {
3377
+ }, Vg = {
3375
3378
  key: 1,
3376
3379
  class: "rounded-[12px] bg-panel px-3 py-2 text-xs leading-5 text-muted"
3377
- }, Vg = {
3380
+ }, Lg = {
3378
3381
  key: 0,
3379
3382
  class: "rounded-[16px] bg-soft p-3 text-sm text-muted"
3380
- }, Lg = { class: "mobile-page-picker" }, Fg = { class: "mobile-page-picker-list" }, Kg = ["onClick"], zg = { class: "mobile-page-picker-code" }, Gg = { class: "mobile-page-picker-copy" }, Hg = {
3383
+ }, Fg = { class: "mobile-page-picker" }, Kg = { class: "mobile-page-picker-list" }, zg = ["onClick"], Gg = { class: "mobile-page-picker-code" }, Hg = { class: "mobile-page-picker-copy" }, Wg = {
3381
3384
  key: 0,
3382
3385
  class: "mobile-page-picker-count"
3383
- }, Wg = {
3386
+ }, Jg = {
3384
3387
  key: 0,
3385
3388
  class: "mobile-page-picker-states"
3386
- }, Jg = ["onClick"], Hl = "prototype-core-authenticated", Un = "prototype-core-page-description-summary-sections", Io = "prototype-core-panel-state-v1", Wl = 393, Yg = 852, Xg = 24, fa = 1920, Zg = 1080, qg = 640, Qg = 60 * 1e3, ob = /* @__PURE__ */ wn({
3389
+ }, Yg = ["onClick"], Hl = "prototype-core-authenticated", Un = "prototype-core-page-description-summary-sections", Io = "prototype-core-panel-state-v1", Wl = 393, Xg = 852, Zg = 24, fa = 1920, qg = 1080, Qg = 640, e1 = 60 * 1e3, a1 = /* @__PURE__ */ wn({
3387
3390
  __name: "App",
3388
3391
  setup(t) {
3389
3392
  var Rl;
@@ -3433,7 +3436,7 @@ const rf = {
3433
3436
  themeStyle: de,
3434
3437
  screens: pe,
3435
3438
  mainFlows: Ct,
3436
- showFlowEditor: H,
3439
+ showFlowEditor: G,
3437
3440
  canPushFlowsToRemote: Dt,
3438
3441
  currentMeta: ft,
3439
3442
  currentDisplayScreen: mt,
@@ -3459,9 +3462,9 @@ const rf = {
3459
3462
  importCustomTheme: at,
3460
3463
  setPrototypeState: Qn,
3461
3464
  go: eo,
3462
- goToAnnotatedScreen: kn,
3465
+ goToAnnotatedScreen: an,
3463
3466
  goTab: Lo,
3464
- startAnnotationPlacement: an,
3467
+ startAnnotationPlacement: kn,
3465
3468
  cancelAnnotationDraft: zt,
3466
3469
  handleAnnotationCanvasClick: Fo,
3467
3470
  saveAnnotationDraft: to,
@@ -3510,7 +3513,7 @@ const rf = {
3510
3513
  let po = null;
3511
3514
  const _n = /* @__PURE__ */ new Map();
3512
3515
  let $e = null, zo = "";
3513
- const vo = Gn(), Go = "1.0.3", Ho = g(""), Wt = g("idle"), $i = C(() => Wt.value === "success" && Ho.value !== Go), Ci = C(() => Wt.value === "success" ? `最新 v${Ho.value}` : Wt.value === "error" ? "最新版本暂不可用" : "最新版本检测中");
3516
+ const vo = Gn(), Go = "1.0.4", Ho = g(""), Wt = g("idle"), $i = C(() => Wt.value === "success" && Ho.value !== Go), Ci = C(() => Wt.value === "success" ? `v${Ho.value}` : Wt.value === "error" ? "版本暂不可用" : "版本检测中");
3514
3517
  async function Di() {
3515
3518
  if (Wt.value !== "idle") return;
3516
3519
  Wt.value = "loading";
@@ -3569,7 +3572,7 @@ const rf = {
3569
3572
  }, 3e3);
3570
3573
  }
3571
3574
  function Ai() {
3572
- r.value === "interactive" && (Be.value = !Be.value, Be.value && ($.value = !1, Tt.value = !1, _t.value = !1, H.value = !1));
3575
+ r.value === "interactive" && (Be.value = !Be.value, Be.value && ($.value = !1, Tt.value = !1, _t.value = !1, G.value = !1));
3573
3576
  }
3574
3577
  function Jo() {
3575
3578
  Be.value = !1;
@@ -3583,7 +3586,7 @@ const rf = {
3583
3586
  ), Ti = C(() => {
3584
3587
  const i = In.value.trim().toLowerCase();
3585
3588
  return pe.map((o) => {
3586
- const l = Pt(o.id), h = l.filter((W) => `${W.label} ${W.id}`.toLowerCase().includes(i)), z = !i || `${o.code} ${o.title} ${o.subtitle} ${o.id}`.toLowerCase().includes(i);
3589
+ const l = Pt(o.id), h = l.filter((H) => `${H.label} ${H.id}`.toLowerCase().includes(i)), z = !i || `${o.code} ${o.title} ${o.subtitle} ${o.id}`.toLowerCase().includes(i);
3587
3590
  return {
3588
3591
  screen: o,
3589
3592
  states: z ? l : h,
@@ -3596,7 +3599,7 @@ const rf = {
3596
3599
  );
3597
3600
  _e([c, Xe, q], () => {
3598
3601
  Nt.value = !1;
3599
- }), _e(Nt, (i) => It("pageDescriptions", i), { immediate: !0 }), _e(H, (i) => It("flows", i), { immediate: !0 }), _e([ae, ee], ([i, o]) => {
3602
+ }), _e(Nt, (i) => It("pageDescriptions", i), { immediate: !0 }), _e(G, (i) => It("flows", i), { immediate: !0 }), _e([ae, ee], ([i, o]) => {
3600
3603
  It("annotations", i !== "view" || !!o);
3601
3604
  }, { immediate: !0 }), _e(r, (i, o) => {
3602
3605
  i !== "interactive" && Be.value && Jo(), i === "interactive" && o !== "interactive" && _i();
@@ -3676,7 +3679,7 @@ const rf = {
3676
3679
  return i.querySelector(".annotation-layer");
3677
3680
  }
3678
3681
  function zi(i, o) {
3679
- const l = o.getBoundingClientRect(), h = Ki(o), z = (h == null ? void 0 : h.scrollWidth) ?? l.width, W = (h == null ? void 0 : h.scrollHeight) ?? l.height, ue = (i.clientX - l.left + o.scrollLeft) / z * 100, Po = (i.clientY - l.top + o.scrollTop) / W * 100;
3682
+ const l = o.getBoundingClientRect(), h = Ki(o), z = (h == null ? void 0 : h.scrollWidth) ?? l.width, H = (h == null ? void 0 : h.scrollHeight) ?? l.height, ue = (i.clientX - l.left + o.scrollLeft) / z * 100, Po = (i.clientY - l.top + o.scrollTop) / H * 100;
3680
3683
  return { x: Math.min(96, Math.max(4, ue)), y: Math.min(96, Math.max(4, Po)) };
3681
3684
  }
3682
3685
  function Gi(i, o) {
@@ -3716,7 +3719,7 @@ const rf = {
3716
3719
  }
3717
3720
  const z = _n.get(o.annotation.id);
3718
3721
  z && window.clearTimeout(z), cl(o.annotation.id, !0);
3719
- const W = window.setTimeout(async () => {
3722
+ const H = window.setTimeout(async () => {
3720
3723
  var ue;
3721
3724
  try {
3722
3725
  await oo(o.annotation.id, l.x, l.y);
@@ -3724,7 +3727,7 @@ const rf = {
3724
3727
  _n.delete(o.annotation.id), cl(o.annotation.id, !1), ((ue = qe.value) == null ? void 0 : ue.id) === o.annotation.id && (qe.value = null);
3725
3728
  }
3726
3729
  }, 300);
3727
- _n.set(o.annotation.id, W);
3730
+ _n.set(o.annotation.id, H);
3728
3731
  }
3729
3732
  function Ji(i) {
3730
3733
  !$e || $e.pointerId !== i.pointerId || (Bn(), qe.value = null);
@@ -3743,14 +3746,14 @@ const rf = {
3743
3746
  const i = Qo(R.value.updatedAt);
3744
3747
  return `${R.value.authorName || "未署名"}${i ? ` · ${i}` : ""}`;
3745
3748
  }), Qe = C(() => {
3746
- var i, o, l, h, z, W, ue, Po, Bl;
3749
+ var i, o, l, h, z, H, ue, Po, Bl;
3747
3750
  return {
3748
3751
  purpose: ((i = R.value) == null ? void 0 : i.purpose.trim()) || "当前页面暂无页面目的描述。",
3749
3752
  structure: ((o = R.value) == null ? void 0 : o.structure.trim()) || "当前页面暂无页面结构描述。",
3750
3753
  features: ((l = R.value) == null ? void 0 : l.features.trim()) || "当前页面暂无核心功能描述。",
3751
3754
  flowPosition: ((h = R.value) == null ? void 0 : h.flowPosition.trim()) || "当前页面暂无流程位置描述。",
3752
3755
  interactionRules: ((z = R.value) == null ? void 0 : z.interactionRules.trim()) || "当前页面暂无交互规则。",
3753
- stateCriteria: ((W = R.value) == null ? void 0 : W.stateCriteria.trim()) || "当前页面暂无状态判断依据。",
3756
+ stateCriteria: ((H = R.value) == null ? void 0 : H.stateCriteria.trim()) || "当前页面暂无状态判断依据。",
3754
3757
  edgeCases: ((ue = R.value) == null ? void 0 : ue.edgeCases.trim()) || "当前页面暂无异常与边界。",
3755
3758
  acceptanceCriteria: ((Po = R.value) == null ? void 0 : Po.acceptanceCriteria.trim()) || "当前页面暂无开发验收。",
3756
3759
  developmentNotes: ((Bl = R.value) == null ? void 0 : Bl.developmentNotes.trim()) || "当前页面暂无补充说明。"
@@ -3799,11 +3802,11 @@ const rf = {
3799
3802
  return xe.value ? (i = V.value) != null && i.scopes ? "云端 manifest" : "云端 manifest 未加载" : "本地兜底数据";
3800
3803
  }), pn = C(
3801
3804
  () => pe.map((i) => {
3802
- const o = Pt(i.id), l = o.length ? o.map((W) => ({
3803
- id: Zo(i.id, W.id),
3804
- stateId: W.id,
3805
- label: W.label
3806
- })) : [{ id: Zo(i.id), stateId: void 0, label: "默认" }], h = l.filter((W) => pl.value.has(W.id)).length, z = qo.value.filter((W) => W.screenId === i.id).length;
3805
+ const o = Pt(i.id), l = o.length ? o.map((H) => ({
3806
+ id: Zo(i.id, H.id),
3807
+ stateId: H.id,
3808
+ label: H.label
3809
+ })) : [{ id: Zo(i.id), stateId: void 0, label: "默认" }], h = l.filter((H) => pl.value.has(H.id)).length, z = qo.value.filter((H) => H.screenId === i.id).length;
3807
3810
  return {
3808
3811
  ...i,
3809
3812
  stateCount: l.length,
@@ -3813,7 +3816,7 @@ const rf = {
3813
3816
  describedCount: h,
3814
3817
  descriptionRatio: `${h}/${l.length}`,
3815
3818
  annotationCount: j(i.id),
3816
- missingDescriptions: l.filter((W) => !pl.value.has(W.id)).map((W) => W.label)
3819
+ missingDescriptions: l.filter((H) => !pl.value.has(H.id)).map((H) => H.label)
3817
3820
  };
3818
3821
  })
3819
3822
  ), vl = C(
@@ -3891,21 +3894,21 @@ const rf = {
3891
3894
  Le.value = Jt.value.map((o) => o.id).filter((o) => !i.has(o)), window.localStorage.setItem(Un, JSON.stringify(Le.value));
3892
3895
  }
3893
3896
  const ea = C(() => {
3894
- const i = Math.max(1, Ht.value), l = ((Yo.value || window.innerWidth) - Xg * (i - 1)) / i;
3897
+ const i = Math.max(1, Ht.value), l = ((Yo.value || window.innerWidth) - Zg * (i - 1)) / i;
3895
3898
  return Math.min(1, Math.max(0.36, Number((l / Wl).toFixed(3))));
3896
- }), bl = C(() => Math.round(Wl * ea.value * 100) / 100), ar = C(() => Math.round(Yg * ea.value * 100) / 100);
3899
+ }), bl = C(() => Math.round(Wl * ea.value * 100) / 100), ar = C(() => Math.round(Xg * ea.value * 100) / 100);
3897
3900
  function lr() {
3898
3901
  if (Be.value)
3899
3902
  return Math.min(fa, Tn.value, Math.max(0, bo.value - 48) * 16 / 9);
3900
3903
  if (L.value === "overview") return bl.value;
3901
- if (L.value === "flow") return qg;
3904
+ if (L.value === "flow") return Qg;
3902
3905
  const i = Yo.value || Tn.value;
3903
3906
  return Math.min(1440, i, Math.max(0, bo.value - 120) * 16 / 9);
3904
3907
  }
3905
3908
  function sr(i) {
3906
3909
  const o = L.value === "flow" ? ui(i) : {};
3907
3910
  if (i.platform !== "pc") return o;
3908
- const l = Math.max(1, lr()), h = l * Zg / fa;
3911
+ const l = Math.max(1, lr()), h = l * qg / fa;
3909
3912
  return {
3910
3913
  ...o,
3911
3914
  "--desktop-display-width": `${l}px`,
@@ -3927,8 +3930,8 @@ const rf = {
3927
3930
  function yl(i, o, l) {
3928
3931
  const h = rr(i);
3929
3932
  if (h === yt.value) return;
3930
- const z = (o - un.value) / yt.value, W = (l - cn.value) / yt.value;
3931
- yt.value = h, un.value = o - z * h, cn.value = l - W * h;
3933
+ const z = (o - un.value) / yt.value, H = (l - cn.value) / yt.value;
3934
+ yt.value = h, un.value = o - z * h, cn.value = l - H * h;
3932
3935
  }
3933
3936
  function hl(i) {
3934
3937
  yl(
@@ -3984,7 +3987,7 @@ const rf = {
3984
3987
  }), _e(Ht, async () => {
3985
3988
  r.value === "overview" && await xo();
3986
3989
  }), _e(Q, (i) => {
3987
- i && ($.value = !1, Tt.value = !1, _t.value = !1, H.value = !1, zt(), Sn(), Ue.value = "");
3990
+ i && ($.value = !1, Tt.value = !1, _t.value = !1, G.value = !1, zt(), Sn(), Ue.value = "");
3988
3991
  });
3989
3992
  const xt = "library", Bt = "", ko = g(!1), Sl = g(""), na = g("");
3990
3993
  let So, $o;
@@ -4031,7 +4034,7 @@ const rf = {
4031
4034
  key: "A",
4032
4035
  label: "添加注释点",
4033
4036
  run: () => {
4034
- r.value = "interactive", ie.value = !1, q.value = "annotations", an();
4037
+ r.value = "interactive", ie.value = !1, q.value = "annotations", kn();
4035
4038
  }
4036
4039
  },
4037
4040
  {
@@ -4066,7 +4069,7 @@ const rf = {
4066
4069
  return i instanceof HTMLElement && !!i.closest('input, textarea, select, [contenteditable]:not([contenteditable="false"])');
4067
4070
  }
4068
4071
  function gr() {
4069
- return Tt.value || _t.value || H.value || Nt.value || Ze.value || ae.value !== "view" || Z.value || !!Re.value || !!ee.value;
4072
+ return Tt.value || _t.value || G.value || Nt.value || Ze.value || ae.value !== "view" || Z.value || !!Re.value || !!ee.value;
4070
4073
  }
4071
4074
  function Dl(i) {
4072
4075
  if (!Dn.value || Q.value || i.defaultPrevented || i.isComposing || i.keyCode === 229 || i.repeat || i.ctrlKey || i.altKey || i.metaKey || mr(i.target)) return;
@@ -4106,7 +4109,7 @@ const rf = {
4106
4109
  ct.value && Pl();
4107
4110
  });
4108
4111
  function hr() {
4109
- So || (Il(), So = window.setInterval(Il, Qg));
4112
+ So || (Il(), So = window.setInterval(Il, e1));
4110
4113
  }
4111
4114
  async function Il() {
4112
4115
  var o, l;
@@ -4129,14 +4132,14 @@ const rf = {
4129
4132
  });
4130
4133
  return;
4131
4134
  }
4132
- const z = await h.json(), W = (o = z.version) == null ? void 0 : o.trim(), ue = (l = z.builtAt) == null ? void 0 : l.trim();
4135
+ const z = await h.json(), H = (o = z.version) == null ? void 0 : o.trim(), ue = (l = z.builtAt) == null ? void 0 : l.trim();
4133
4136
  if (console.info("📦 [版本检测] 服务器版本清单", {
4134
4137
  currentVersion: xt,
4135
4138
  currentBuiltAt: Bt,
4136
- remoteVersion: W,
4139
+ remoteVersion: H,
4137
4140
  remoteBuiltAt: ue,
4138
4141
  dismissedVersion: na.value || null
4139
- }), !W) {
4142
+ }), !H) {
4140
4143
  console.warn("⚠️ [版本检测] 服务器版本字段为空,无法判断是否更新", {
4141
4144
  currentVersion: xt,
4142
4145
  currentBuiltAt: Bt,
@@ -4144,19 +4147,19 @@ const rf = {
4144
4147
  });
4145
4148
  return;
4146
4149
  }
4147
- if (W === na.value) {
4150
+ if (H === na.value) {
4148
4151
  console.info("🙈 [版本检测] 服务器版本已被本次会话忽略,不再提示", {
4149
4152
  currentVersion: xt,
4150
- remoteVersion: W,
4153
+ remoteVersion: H,
4151
4154
  remoteBuiltAt: ue
4152
4155
  });
4153
4156
  return;
4154
4157
  }
4155
- if (W === xt) {
4158
+ if (H === xt) {
4156
4159
  console.info("✅ [版本检测] 未发现新版本", {
4157
4160
  currentVersion: xt,
4158
4161
  currentBuiltAt: Bt,
4159
- remoteVersion: W,
4162
+ remoteVersion: H,
4160
4163
  remoteBuiltAt: ue,
4161
4164
  builtAtChanged: ue ? ue !== Bt : !1,
4162
4165
  reason: "当前逻辑只比较 version;如果只重新 build 但没有新 commit,git hash 版本号不会变化。"
@@ -4166,9 +4169,9 @@ const rf = {
4166
4169
  console.info("🔔 [版本检测] 检测到新版本,准备展示刷新提示", {
4167
4170
  currentVersion: xt,
4168
4171
  currentBuiltAt: Bt,
4169
- remoteVersion: W,
4172
+ remoteVersion: H,
4170
4173
  remoteBuiltAt: ue
4171
- }), Sl.value = W, ko.value = !0;
4174
+ }), Sl.value = H, ko.value = !0;
4172
4175
  } catch (h) {
4173
4176
  console.error("❌ [版本检测] 请求或解析版本清单失败", {
4174
4177
  currentVersion: xt,
@@ -4269,22 +4272,30 @@ const rf = {
4269
4272
  ])) : x("", !0),
4270
4273
  Q.value ? x("", !0) : (v(), f("div", ff, [
4271
4274
  e("div", mf, [
4272
- e("button", {
4273
- class: "project-title-btn",
4274
- type: "button",
4275
- onClick: o[2] || (o[2] = (l) => fn())
4276
- }, [
4277
- e("p", gf, p(a(S)("prototypeTitle")), 1),
4278
- e("p", bf, p(a(S)("prototypeSubtitle")), 1),
4279
- e("p", yf, [
4280
- G(" 当前 v" + p(a(Go)) + " · ", 1),
4281
- e("span", {
4282
- class: _({ "text-warning": $i.value })
4283
- }, p(Ci.value), 3)
4275
+ e("div", gf, [
4276
+ e("button", {
4277
+ class: "project-title-btn",
4278
+ type: "button",
4279
+ onClick: o[2] || (o[2] = (l) => fn())
4280
+ }, [
4281
+ e("p", bf, p(a(S)("prototypeTitle")), 1),
4282
+ e("p", yf, p(a(S)("prototypeSubtitle")), 1)
4283
+ ]),
4284
+ e("div", hf, [
4285
+ e("p", null, [
4286
+ o[85] || (o[85] = e("span", null, "当前", -1)),
4287
+ e("b", null, "v" + p(a(Go)), 1)
4288
+ ]),
4289
+ e("p", null, [
4290
+ o[86] || (o[86] = e("span", null, "最新", -1)),
4291
+ e("b", {
4292
+ class: _({ "text-warning": $i.value })
4293
+ }, p(Ci.value), 3)
4294
+ ])
4284
4295
  ])
4285
4296
  ]),
4286
- e("div", hf, [
4287
- o[86] || (o[86] = e("a", {
4297
+ e("div", wf, [
4298
+ o[88] || (o[88] = e("a", {
4288
4299
  class: "mode-btn top-level-mode-btn rounded-full bg-panel ring-1 ring-line",
4289
4300
  href: "https://altimodo-doc.doc.gominex.com/",
4290
4301
  target: "_blank",
@@ -4302,10 +4313,10 @@ const rf = {
4302
4313
  class: _(["mode-btn bug-nav-btn rounded-full bg-panel ring-1 ring-line", { active: re.value === "bugs" }]),
4303
4314
  onClick: kr
4304
4315
  }, [
4305
- o[85] || (o[85] = G(" Bug ", -1)),
4306
- a(Qa) ? (v(), f("span", wf, p(a(Qa)), 1)) : x("", !0)
4316
+ o[87] || (o[87] = W(" Bug ", -1)),
4317
+ a(Qa) ? (v(), f("span", xf, p(a(Qa)), 1)) : x("", !0)
4307
4318
  ], 2),
4308
- e("div", xf, [
4319
+ e("div", kf, [
4309
4320
  e("button", {
4310
4321
  class: _(["mode-btn", { active: re.value === "prototype" && a(r) === "interactive" }]),
4311
4322
  onClick: o[3] || (o[3] = (l) => fn("interactive"))
@@ -4319,7 +4330,7 @@ const rf = {
4319
4330
  onClick: o[5] || (o[5] = (l) => fn("flow"))
4320
4331
  }, "流程模式", 2)
4321
4332
  ]),
4322
- e("div", kf, [
4333
+ e("div", Sf, [
4323
4334
  e("button", {
4324
4335
  class: _(["mode-btn", { active: a(s) === "zh" }]),
4325
4336
  onClick: o[6] || (o[6] = (l) => s.value = "zh")
@@ -4329,7 +4340,7 @@ const rf = {
4329
4340
  onClick: o[7] || (o[7] = (l) => s.value = "en")
4330
4341
  }, "English", 2)
4331
4342
  ]),
4332
- e("div", Sf, [
4343
+ e("div", $f, [
4333
4344
  e("button", {
4334
4345
  class: _(["mode-btn flex items-center gap-2", { active: a($) }]),
4335
4346
  onClick: o[8] || (o[8] = (l) => $.value = !a($))
@@ -4338,13 +4349,13 @@ const rf = {
4338
4349
  class: "theme-swatch",
4339
4350
  style: Pe({ "--swatch-color": a(nt).ocean })
4340
4351
  }, null, 4),
4341
- G(" " + p(a(S)("themeButton")), 1)
4352
+ W(" " + p(a(S)("themeButton")), 1)
4342
4353
  ], 2),
4343
- a($) ? (v(), f("div", $f, [
4344
- e("div", Cf, [
4354
+ a($) ? (v(), f("div", Cf, [
4355
+ e("div", Df, [
4345
4356
  e("div", null, [
4346
- e("p", Df, p(a(S)("themeTitle")), 1),
4347
- e("p", Pf, p(a(S)("themeDescription")), 1)
4357
+ e("p", Pf, p(a(S)("themeTitle")), 1),
4358
+ e("p", If, p(a(S)("themeDescription")), 1)
4348
4359
  ]),
4349
4360
  e("button", {
4350
4361
  class: "text-xs font-semibold text-ocean",
@@ -4352,7 +4363,7 @@ const rf = {
4352
4363
  (...l) => a(on) && a(on)(...l))
4353
4364
  }, p(a(S)("themeReset")), 1)
4354
4365
  ]),
4355
- e("div", If, [
4366
+ e("div", _f, [
4356
4367
  (v(!0), f(P, null, N(a(le), (l) => (v(), f("button", {
4357
4368
  key: l.id,
4358
4369
  class: _(["theme-scheme-btn", { active: a(b) === l.id }]),
@@ -4362,13 +4373,13 @@ const rf = {
4362
4373
  class: "theme-swatch",
4363
4374
  style: Pe({ "--swatch-color": l.colors.ocean })
4364
4375
  }, null, 4),
4365
- e("span", Af, [
4376
+ e("span", Nf, [
4366
4377
  e("b", null, p(a(S)(l.nameKey)), 1),
4367
4378
  e("small", null, p(a(S)(l.descriptionKey)), 1)
4368
4379
  ])
4369
- ], 10, _f))), 128))
4380
+ ], 10, Af))), 128))
4370
4381
  ]),
4371
- e("div", Nf, [
4382
+ e("div", Tf, [
4372
4383
  e("button", {
4373
4384
  class: "theme-file-btn",
4374
4385
  onClick: o[10] || (o[10] = //@ts-ignore
@@ -4391,7 +4402,7 @@ const rf = {
4391
4402
  (...l) => a(at) && a(at)(...l))
4392
4403
  }, null, 544)
4393
4404
  ]),
4394
- e("div", Tf, [
4405
+ e("div", Rf, [
4395
4406
  (v(!0), f(P, null, N(a(n), (l) => (v(), f("label", {
4396
4407
  key: l.key,
4397
4408
  class: "theme-color-field"
@@ -4400,7 +4411,7 @@ const rf = {
4400
4411
  type: "color",
4401
4412
  value: a(nt)[l.key],
4402
4413
  onInput: (h) => a(me)(l.key, h.target.value)
4403
- }, null, 40, Rf),
4414
+ }, null, 40, Bf),
4404
4415
  e("span", null, [
4405
4416
  e("b", null, p(a(S)(l.labelKey)), 1),
4406
4417
  e("small", null, p(a(S)(l.descKey)), 1)
@@ -4409,7 +4420,7 @@ const rf = {
4409
4420
  type: "text",
4410
4421
  value: a(nt)[l.key],
4411
4422
  onInput: (h) => a(me)(l.key, h.target.value)
4412
- }, null, 40, Bf)
4423
+ }, null, 40, Ef)
4413
4424
  ]))), 128))
4414
4425
  ])
4415
4426
  ])) : x("", !0)
@@ -4425,7 +4436,7 @@ const rf = {
4425
4436
  key: 3,
4426
4437
  class: _(["prototype-stage mx-auto flex w-full flex-col gap-6 px-4 py-6 lg:px-8", L.value === "overview" ? "max-w-none" : L.value === "interactive" && a(gt) === "pc" ? "max-w-[1504px]" : "max-w-7xl"])
4427
4438
  }, [
4428
- Q.value ? x("", !0) : (v(), f("section", Ef, [
4439
+ Q.value ? x("", !0) : (v(), f("section", Of, [
4429
4440
  L.value === "interactive" ? (v(), f("button", {
4430
4441
  key: 0,
4431
4442
  class: "page-description-summary",
@@ -4435,16 +4446,16 @@ const rf = {
4435
4446
  })
4436
4447
  }, [
4437
4448
  e("p", null, [
4438
- o[87] || (o[87] = e("b", null, "页面结构:", -1)),
4439
- G(p(Qe.value.structure), 1)
4449
+ o[89] || (o[89] = e("b", null, "页面结构:", -1)),
4450
+ W(p(Qe.value.structure), 1)
4440
4451
  ]),
4441
4452
  e("p", null, [
4442
- o[88] || (o[88] = e("b", null, "核心功能:", -1)),
4443
- G(p(Qe.value.features), 1)
4453
+ o[90] || (o[90] = e("b", null, "核心功能:", -1)),
4454
+ W(p(Qe.value.features), 1)
4444
4455
  ])
4445
- ])) : (v(), f("p", Of, p(a(S)("heroCopy")), 1))
4456
+ ])) : (v(), f("p", Mf, p(a(S)("heroCopy")), 1))
4446
4457
  ])),
4447
- e("div", Mf, [
4458
+ e("div", Uf, [
4448
4459
  L.value === "interactive" && !Q.value ? (v(), f("aside", {
4449
4460
  key: 0,
4450
4461
  class: _(["apple-side-nav interactive-side-nav", {
@@ -4458,7 +4469,7 @@ const rf = {
4458
4469
  type: "button",
4459
4470
  onClick: kl
4460
4471
  }, p(Rt.value ? "展开导航" : "收起导航"), 1),
4461
- Rt.value ? x("", !0) : (v(), f("div", Uf, [
4472
+ Rt.value ? x("", !0) : (v(), f("div", jf, [
4462
4473
  e("div", {
4463
4474
  ref_key: "interactiveSideNavRef",
4464
4475
  ref: sl,
@@ -4468,31 +4479,31 @@ const rf = {
4468
4479
  (v(!0), f(P, null, N(a(pe), (l) => (v(), f("button", {
4469
4480
  key: l.id,
4470
4481
  class: _(["nav-row", { active: a(c) === l.id }]),
4471
- onClick: (h) => a(kn)(l.id)
4482
+ onClick: (h) => a(an)(l.id)
4472
4483
  }, [
4473
4484
  e("span", {
4474
4485
  class: _(["platform-badge", l.platform === "pc" ? "is-pc" : "is-mobile"]),
4475
4486
  "aria-hidden": "true"
4476
4487
  }, p(l.platform === "pc" ? "P" : "M"), 3),
4477
4488
  (v(), lt(Eo(l.icon), { class: "h-4 w-4" })),
4478
- e("span", Vf, p(l.code) + " " + p(l.title), 1),
4479
- a(j)(l.id) ? (v(), f("span", Lf, p(a(j)(l.id)), 1)) : x("", !0)
4480
- ], 10, jf))), 128))
4489
+ e("span", Lf, p(l.code) + " " + p(l.title), 1),
4490
+ a(j)(l.id) ? (v(), f("span", Ff, p(a(j)(l.id)), 1)) : x("", !0)
4491
+ ], 10, Vf))), 128))
4481
4492
  ], 544),
4482
- An.value ? (v(), f("svg", Ff, [...o[89] || (o[89] = [
4493
+ An.value ? (v(), f("svg", Kf, [...o[91] || (o[91] = [
4483
4494
  e("path", { d: "M12 19V5M5 12l7-7 7 7" }, null, -1)
4484
4495
  ])])) : x("", !0),
4485
- Nn.value ? (v(), f("svg", Kf, [...o[90] || (o[90] = [
4496
+ Nn.value ? (v(), f("svg", zf, [...o[92] || (o[92] = [
4486
4497
  e("path", { d: "M12 5v14M5 12l7 7 7-7" }, null, -1)
4487
4498
  ])])) : x("", !0)
4488
4499
  ]))
4489
4500
  ], 2)) : x("", !0),
4490
- L.value === "overview" ? (v(), f("aside", zf, [
4491
- o[95] || (o[95] = e("p", { class: "px-2 pb-3 text-sm font-semibold text-muted" }, "显示设置", -1)),
4492
- e("div", Gf, [
4493
- o[93] || (o[93] = e("label", { class: "mb-2 block text-xs font-semibold text-muted" }, "每行数量", -1)),
4494
- e("div", Hf, [
4495
- o[91] || (o[91] = e("span", { class: "text-xs text-muted" }, "3", -1)),
4501
+ L.value === "overview" ? (v(), f("aside", Gf, [
4502
+ o[97] || (o[97] = e("p", { class: "px-2 pb-3 text-sm font-semibold text-muted" }, "显示设置", -1)),
4503
+ e("div", Hf, [
4504
+ o[95] || (o[95] = e("label", { class: "mb-2 block text-xs font-semibold text-muted" }, "每行数量", -1)),
4505
+ e("div", Wf, [
4506
+ o[93] || (o[93] = e("span", { class: "text-xs text-muted" }, "3", -1)),
4496
4507
  A(e("input", {
4497
4508
  "onUpdate:modelValue": o[14] || (o[14] = (l) => mn(Ht) ? Ht.value = l : null),
4498
4509
  min: "3",
@@ -4509,19 +4520,19 @@ const rf = {
4509
4520
  { number: !0 }
4510
4521
  ]
4511
4522
  ]),
4512
- o[92] || (o[92] = e("span", { class: "text-xs text-muted" }, "6", -1)),
4513
- e("strong", Wf, p(a(Ht)), 1)
4523
+ o[94] || (o[94] = e("span", { class: "text-xs text-muted" }, "6", -1)),
4524
+ e("strong", Jf, p(a(Ht)), 1)
4514
4525
  ])
4515
4526
  ]),
4516
- e("div", Jf, [
4517
- o[94] || (o[94] = e("label", { class: "mb-2 block text-xs font-semibold text-muted" }, "缩放", -1)),
4518
- e("div", Yf, [
4527
+ e("div", Yf, [
4528
+ o[96] || (o[96] = e("label", { class: "mb-2 block text-xs font-semibold text-muted" }, "缩放", -1)),
4529
+ e("div", Xf, [
4519
4530
  e("button", {
4520
4531
  type: "button",
4521
4532
  class: "overview-zoom-btn",
4522
4533
  onClick: o[15] || (o[15] = (l) => hl(-0.06))
4523
4534
  }, "−"),
4524
- e("strong", Xf, p(Math.round(a(yt) * 100)) + "%", 1),
4535
+ e("strong", Zf, p(Math.round(a(yt) * 100)) + "%", 1),
4525
4536
  e("button", {
4526
4537
  type: "button",
4527
4538
  class: "overview-zoom-btn",
@@ -4537,13 +4548,13 @@ const rf = {
4537
4548
  ])
4538
4549
  ])
4539
4550
  ])) : x("", !0),
4540
- L.value === "flow" ? (v(), f("aside", Zf, [
4541
- e("div", qf, [
4542
- o[97] || (o[97] = e("p", { class: "text-sm font-semibold text-muted" }, "主流程", -1)),
4551
+ L.value === "flow" ? (v(), f("aside", qf, [
4552
+ e("div", Qf, [
4553
+ o[99] || (o[99] = e("p", { class: "text-sm font-semibold text-muted" }, "主流程", -1)),
4543
4554
  e("button", {
4544
4555
  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",
4545
- onClick: o[17] || (o[17] = (l) => H.value = !0)
4546
- }, [...o[96] || (o[96] = [
4556
+ onClick: o[17] || (o[17] = (l) => G.value = !0)
4557
+ }, [...o[98] || (o[98] = [
4547
4558
  e("svg", {
4548
4559
  class: "h-3 w-3",
4549
4560
  viewBox: "0 0 24 24",
@@ -4556,7 +4567,7 @@ const rf = {
4556
4567
  e("path", { d: "M12 20h9" }),
4557
4568
  e("path", { d: "M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z" })
4558
4569
  ], -1),
4559
- G(" 编辑流程 ", -1)
4570
+ W(" 编辑流程 ", -1)
4560
4571
  ])])
4561
4572
  ]),
4562
4573
  (v(!0), f(P, null, N(a(Ct), (l) => (v(), f("button", {
@@ -4564,20 +4575,20 @@ const rf = {
4564
4575
  class: _(["nav-row flow-nav-row", { active: a(m) === l.id }]),
4565
4576
  onClick: (h) => a(ri)(l.id)
4566
4577
  }, [
4567
- o[98] || (o[98] = e("span", { class: "flow-dot" }, null, -1)),
4568
- e("span", em, [
4578
+ o[100] || (o[100] = e("span", { class: "flow-dot" }, null, -1)),
4579
+ e("span", tm, [
4569
4580
  e("b", null, p(l.title), 1),
4570
4581
  e("small", null, p(l.subtitle), 1)
4571
4582
  ])
4572
- ], 10, Qf))), 128))
4583
+ ], 10, em))), 128))
4573
4584
  ])) : x("", !0),
4574
4585
  e("section", {
4575
4586
  ref_key: "overviewStageRef",
4576
4587
  ref: go,
4577
4588
  class: "flex-1 relative"
4578
4589
  }, [
4579
- L.value === "flow" ? (v(), f("div", tm, [
4580
- e("div", nm, [
4590
+ L.value === "flow" ? (v(), f("div", nm, [
4591
+ e("div", om, [
4581
4592
  e("button", {
4582
4593
  type: "button",
4583
4594
  onClick: o[18] || (o[18] = (l) => a(Xa)(0.06))
@@ -4634,7 +4645,7 @@ const rf = {
4634
4645
  class: "flow-row-label",
4635
4646
  style: Pe(a(ci)(l.row))
4636
4647
  }, [
4637
- o[99] || (o[99] = e("span", null, "子流程", -1)),
4648
+ o[101] || (o[101] = e("span", null, "子流程", -1)),
4638
4649
  e("strong", null, p(l.label), 1)
4639
4650
  ], 4))), 128)),
4640
4651
  (v(!0), f(P, null, N(Ni.value, (l) => (v(), f("article", {
@@ -4666,7 +4677,7 @@ const rf = {
4666
4677
  e("div", {
4667
4678
  class: _(l.platform === "pc" ? "desktop-frame" : "phone-screen")
4668
4679
  }, [
4669
- l.platform === "mobile" && !Q.value ? (v(), f("div", om, [...o[100] || (o[100] = [
4680
+ l.platform === "mobile" && !Q.value ? (v(), f("div", am, [...o[102] || (o[102] = [
4670
4681
  e("span", null, "9:41", -1),
4671
4682
  e("span", null, "86%", -1)
4672
4683
  ])])) : x("", !0),
@@ -4678,17 +4689,17 @@ const rf = {
4678
4689
  }]),
4679
4690
  onClickCapture: (h) => !Q.value && a(Fo)(h, l.id)
4680
4691
  }, [
4681
- e("div", lm, [
4692
+ e("div", sm, [
4682
4693
  X(Ln, { screen: l }, null, 8, ["screen"]),
4683
- L.value === "interactive" && !Q.value && !Be.value && a(q) === "annotations" && a(oe) ? (v(), f("div", sm, [
4694
+ L.value === "interactive" && !Q.value && !Be.value && a(q) === "annotations" && a(oe) ? (v(), f("div", im, [
4684
4695
  (v(!0), f(P, null, N(a(T), (h, z) => {
4685
- var W;
4696
+ var H;
4686
4697
  return v(), f("div", {
4687
4698
  key: h.id,
4688
4699
  "data-annotation-id": h.id,
4689
4700
  class: _(["annotation-point-wrap", {
4690
4701
  "is-holding": ln.value === h.id,
4691
- "is-dragging": ((W = qe.value) == null ? void 0 : W.id) === h.id,
4702
+ "is-dragging": ((H = qe.value) == null ? void 0 : H.id) === h.id,
4692
4703
  "is-syncing-position": sn.value.has(h.id)
4693
4704
  }]),
4694
4705
  style: Pe(Vi(h)),
@@ -4706,14 +4717,14 @@ const rf = {
4706
4717
  onPointermove: Hi,
4707
4718
  onPointerup: Wi,
4708
4719
  onPointercancel: Ji
4709
- }, p(z + 1), 41, rm)
4710
- ], 46, im);
4720
+ }, p(z + 1), 41, um)
4721
+ ], 46, rm);
4711
4722
  }), 128)),
4712
4723
  Ri.value ? (v(), f("div", {
4713
4724
  key: 0,
4714
4725
  class: "annotation-point-wrap draft",
4715
4726
  style: Pe(a(Ya)(a(ee)))
4716
- }, [...o[101] || (o[101] = [
4727
+ }, [...o[103] || (o[103] = [
4717
4728
  e("button", {
4718
4729
  class: "annotation-point",
4719
4730
  type: "button"
@@ -4721,7 +4732,7 @@ const rf = {
4721
4732
  ])], 4)) : x("", !0)
4722
4733
  ])) : x("", !0)
4723
4734
  ])
4724
- ], 42, am),
4735
+ ], 42, lm),
4725
4736
  l.platform === "mobile" && l.hasTabBar ? (v(), lt(Wr, {
4726
4737
  key: 1,
4727
4738
  active: a(Te),
@@ -4738,10 +4749,10 @@ const rf = {
4738
4749
  class: _(["platform-badge is-small", l.platform === "pc" ? "is-pc" : "is-mobile"]),
4739
4750
  "aria-hidden": "true"
4740
4751
  }, p(l.platform === "pc" ? "P" : "M"), 3),
4741
- l.platform === "mobile" ? (v(), f("br", um)) : x("", !0),
4742
- G(" " + p(l.code) + " · " + p(l.title), 1),
4752
+ l.platform === "mobile" ? (v(), f("br", cm)) : x("", !0),
4753
+ W(" " + p(l.code) + " · " + p(l.title), 1),
4743
4754
  l.stateLabel ? (v(), f(P, { key: 1 }, [
4744
- G(" · " + p(l.stateLabel), 1)
4755
+ W(" · " + p(l.stateLabel), 1)
4745
4756
  ], 64)) : x("", !0)
4746
4757
  ], 2)) : x("", !0)
4747
4758
  ], 6))), 128))
@@ -4760,19 +4771,19 @@ const rf = {
4760
4771
  onClick: o[29] || (o[29] = (l) => ie.value = !a(ie))
4761
4772
  }, p(a(ie) ? a(S)("annotationExpand") : a(S)("annotationCollapse")), 1),
4762
4773
  a(ie) ? x("", !0) : (v(), f(P, { key: 0 }, [
4763
- e("div", cm, [
4774
+ e("div", dm, [
4764
4775
  e("div", null, [
4765
4776
  e("p", null, p(a(S)("annotationPanelTitle")), 1),
4766
4777
  e("span", null, [
4767
- G(p(a(S)("annotationPanelSubtitle")) + " · " + p(a(ft).code), 1),
4778
+ W(p(a(S)("annotationPanelSubtitle")) + " · " + p(a(ft).code), 1),
4768
4779
  dn.value ? (v(), f(P, { key: 0 }, [
4769
- G(" · " + p(dn.value), 1)
4780
+ W(" · " + p(dn.value), 1)
4770
4781
  ], 64)) : x("", !0)
4771
4782
  ])
4772
4783
  ]),
4773
4784
  e("strong", null, p(a(q) === "annotations" ? a(T).length : a(R) ? 1 : 0), 1)
4774
4785
  ]),
4775
- e("div", dm, [
4786
+ e("div", pm, [
4776
4787
  e("button", {
4777
4788
  type: "button",
4778
4789
  class: _({ active: a(q) === "annotations" }),
@@ -4786,12 +4797,12 @@ const rf = {
4786
4797
  })
4787
4798
  }, p(a(S)("annotationTabDescription")), 3)
4788
4799
  ]),
4789
- a(q) === "annotations" ? (v(), f("div", pm, [
4800
+ a(q) === "annotations" ? (v(), f("div", vm, [
4790
4801
  e("button", {
4791
4802
  type: "button",
4792
4803
  class: _({ active: a(Z) }),
4793
4804
  onClick: o[32] || (o[32] = //@ts-ignore
4794
- (...l) => a(an) && a(an)(...l))
4805
+ (...l) => a(kn) && a(kn)(...l))
4795
4806
  }, p(a(Z) ? a(S)("annotationCancelAdd") : a(S)("annotationAdd")), 3),
4796
4807
  e("button", {
4797
4808
  type: "button",
@@ -4801,18 +4812,18 @@ const rf = {
4801
4812
  type: "button",
4802
4813
  disabled: a(ke) === "syncing",
4803
4814
  onClick: o[34] || (o[34] = (l) => a(Gt)())
4804
- }, p(a(S)("annotationRefresh")), 9, vm),
4815
+ }, p(a(S)("annotationRefresh")), 9, fm),
4805
4816
  e("button", {
4806
4817
  type: "button",
4807
4818
  onClick: o[35] || (o[35] = //@ts-ignore
4808
4819
  (...l) => a(Wa) && a(Wa)(...l))
4809
4820
  }, p(a(S)("annotationExport")), 1)
4810
- ])) : (v(), f("div", fm, [
4821
+ ])) : (v(), f("div", mm, [
4811
4822
  e("button", {
4812
4823
  type: "button",
4813
4824
  disabled: a(ke) === "syncing",
4814
4825
  onClick: o[36] || (o[36] = (l) => a(Ve)())
4815
- }, p(a(S)("annotationRefresh")), 9, mm),
4826
+ }, p(a(S)("annotationRefresh")), 9, gm),
4816
4827
  e("button", {
4817
4828
  type: "button",
4818
4829
  onClick: o[37] || (o[37] = //@ts-ignore
@@ -4829,19 +4840,19 @@ const rf = {
4829
4840
  }, [
4830
4841
  e("span", null, p(a(xe) ? a(Je) : a(S)("annotationRemoteDisabled")), 1)
4831
4842
  ], 2),
4832
- e("label", gm, [
4843
+ e("label", bm, [
4833
4844
  e("span", null, p(a(S)("annotationAuthorName")), 1),
4834
4845
  A(e("input", {
4835
4846
  "onUpdate:modelValue": o[38] || (o[38] = (l) => mn(se) ? se.value = l : null),
4836
4847
  type: "text",
4837
4848
  placeholder: a(S)("annotationAuthorPlaceholder")
4838
- }, null, 8, bm), [
4849
+ }, null, 8, ym), [
4839
4850
  [F, a(se)]
4840
4851
  ])
4841
4852
  ]),
4842
- e("label", ym, [
4853
+ e("label", hm, [
4843
4854
  e("span", null, p(a(S)("annotationPollingInterval")), 1),
4844
- e("div", hm, [
4855
+ e("div", wm, [
4845
4856
  A(e("input", {
4846
4857
  "onUpdate:modelValue": o[39] || (o[39] = (l) => mn(Ae) ? Ae.value = l : null),
4847
4858
  min: "10",
@@ -4862,12 +4873,12 @@ const rf = {
4862
4873
  disabled: Number(a(Ae)) === a(Se),
4863
4874
  onClick: o[40] || (o[40] = //@ts-ignore
4864
4875
  (...l) => a(Ha) && a(Ha)(...l))
4865
- }, p(a(S)("annotationPollingSave")), 9, wm)
4876
+ }, p(a(S)("annotationPollingSave")), 9, xm)
4866
4877
  ])
4867
4878
  ]),
4868
- e("p", xm, p(a(Ee)), 1),
4869
- a(q) === "annotations" ? (v(), f("div", km, [
4870
- a(T).length ? x("", !0) : (v(), f("p", Sm, p(a(S)("annotationEmpty")), 1)),
4879
+ e("p", km, p(a(Ee)), 1),
4880
+ a(q) === "annotations" ? (v(), f("div", Sm, [
4881
+ a(T).length ? x("", !0) : (v(), f("p", $m, p(a(S)("annotationEmpty")), 1)),
4871
4882
  (v(!0), f(P, null, N(a(T), (l, h) => (v(), f("section", {
4872
4883
  key: l.id,
4873
4884
  onMouseenter: (z) => Xi(l),
@@ -4879,38 +4890,38 @@ const rf = {
4879
4890
  e("h3", null, p(l.featureName), 1),
4880
4891
  e("p", null, p(l.featureDescription), 1),
4881
4892
  e("small", null, p(l.specialNote), 1),
4882
- l.authorName || l.updatedAt ? (v(), f("small", Cm, [
4883
- G(p(l.authorName || "未署名"), 1),
4893
+ l.authorName || l.updatedAt ? (v(), f("small", Dm, [
4894
+ W(p(l.authorName || "未署名"), 1),
4884
4895
  Qo(l.updatedAt) ? (v(), f(P, { key: 0 }, [
4885
- G(" · " + p(Qo(l.updatedAt)), 1)
4896
+ W(" · " + p(Qo(l.updatedAt)), 1)
4886
4897
  ], 64)) : x("", !0)
4887
4898
  ])) : x("", !0)
4888
4899
  ]),
4889
- e("div", Dm, [
4900
+ e("div", Pm, [
4890
4901
  e("button", {
4891
4902
  class: "annotation-list-edit",
4892
4903
  type: "button",
4893
4904
  onClick: (z) => a(no)(l.id)
4894
- }, p(a(S)("editProfile")), 9, Pm),
4905
+ }, p(a(S)("editProfile")), 9, Im),
4895
4906
  e("button", {
4896
4907
  class: "annotation-list-delete annotation-delete-btn",
4897
4908
  type: "button",
4898
4909
  disabled: !a(se).trim(),
4899
4910
  title: a(se).trim() ? "" : "请先输入昵称以删除注释",
4900
4911
  onClick: (z) => a(d)(l.id)
4901
- }, p(a(S)("annotationDelete")), 9, Im)
4912
+ }, p(a(S)("annotationDelete")), 9, _m)
4902
4913
  ])
4903
- ], 40, $m))), 128))
4904
- ])) : (v(), f("div", _m, [
4914
+ ], 40, Cm))), 128))
4915
+ ])) : (v(), f("div", Am, [
4905
4916
  a(R) ? (v(), f(P, { key: 1 }, [
4906
- ho.value ? (v(), f("small", Nm, p(ho.value), 1)) : x("", !0),
4917
+ ho.value ? (v(), f("small", Tm, p(ho.value), 1)) : x("", !0),
4907
4918
  (v(!0), f(P, null, N(Jt.value, (l) => (v(), f("section", {
4908
4919
  key: l.id
4909
4920
  }, [
4910
4921
  e("h3", null, p(l.label), 1),
4911
4922
  e("p", null, p(l.value), 1)
4912
4923
  ]))), 128))
4913
- ], 64)) : (v(), f("p", Am, p(a(S)("pageDescriptionEmpty")), 1))
4924
+ ], 64)) : (v(), f("p", Nm, p(a(S)("pageDescriptionEmpty")), 1))
4914
4925
  ]))
4915
4926
  ], 64))
4916
4927
  ], 2)) : x("", !0),
@@ -4926,13 +4937,13 @@ const rf = {
4926
4937
  onClick: o[42] || (o[42] = (l) => ht.value = !ht.value)
4927
4938
  }, p(ht.value ? "展开数据源" : "收起数据源"), 1),
4928
4939
  ht.value ? x("", !0) : (v(), f(P, { key: 0 }, [
4929
- e("div", Tm, [
4930
- e("span", Rm, p(a(vt) === "warning" || a(vt) === "conflict" ? "⚠" : "●"), 1),
4940
+ e("div", Rm, [
4941
+ e("span", Bm, p(a(vt) === "warning" || a(vt) === "conflict" ? "⚠" : "●"), 1),
4931
4942
  e("strong", null, p(ki.value), 1),
4932
4943
  e("small", null, [
4933
- G("· " + p(hi.value), 1),
4944
+ W("· " + p(hi.value), 1),
4934
4945
  el.value ? (v(), f(P, { key: 0 }, [
4935
- G(" · " + p(el.value), 1)
4946
+ W(" · " + p(el.value), 1)
4936
4947
  ], 64)) : x("", !0)
4937
4948
  ])
4938
4949
  ]),
@@ -4944,7 +4955,7 @@ const rf = {
4944
4955
  disabled: a(Oe) === "running",
4945
4956
  onClick: o[43] || (o[43] = //@ts-ignore
4946
4957
  (...l) => a(Ga) && a(Ga)(...l))
4947
- }, p(a(Oe) === "running" ? `${a(B).current}/${a(B).total}` : xi.value ? "检查远端资料" : "初始化到 Gitee"), 9, Bm)) : x("", !0)
4958
+ }, p(a(Oe) === "running" ? `${a(B).current}/${a(B).total}` : xi.value ? "检查远端资料" : "初始化到 Gitee"), 9, Em)) : x("", !0)
4948
4959
  ], 64))
4949
4960
  ], 2)) : x("", !0),
4950
4961
  re.value === "prototype" && !Q.value && !Be.value ? (v(), f("aside", {
@@ -4958,10 +4969,10 @@ const rf = {
4958
4969
  onClick: o[44] || (o[44] = (l) => wt.value = !wt.value)
4959
4970
  }, [
4960
4971
  X(a(Fr), { class: "h-4 w-4" }),
4961
- G(" " + p(wt.value ? "快捷键" : "收起快捷键"), 1)
4972
+ W(" " + p(wt.value ? "快捷键" : "收起快捷键"), 1)
4962
4973
  ]),
4963
4974
  wt.value ? x("", !0) : (v(), f(P, { key: 0 }, [
4964
- o[102] || (o[102] = e("div", { class: "shortcut-panel-head" }, [
4975
+ o[104] || (o[104] = e("div", { class: "shortcut-panel-head" }, [
4965
4976
  e("strong", null, "当前面板快捷键"),
4966
4977
  e("span", null, "输入内容时自动停用")
4967
4978
  ], -1)),
@@ -4982,7 +4993,7 @@ const rf = {
4982
4993
  ], 2)) : x("", !0),
4983
4994
  X(Yl, { name: "shortcut-toast" }, {
4984
4995
  default: Xl(() => [
4985
- re.value === "prototype" && Wo.value && !Q.value && !Be.value ? (v(), f("div", Em, " 按快捷键 P 可以进入/退出演示模式 ")) : x("", !0)
4996
+ re.value === "prototype" && Wo.value && !Q.value && !Be.value ? (v(), f("div", Om, " 按快捷键 P 可以进入/退出演示模式 ")) : x("", !0)
4986
4997
  ]),
4987
4998
  _: 1
4988
4999
  }),
@@ -4991,14 +5002,14 @@ const rf = {
4991
5002
  class: "page-description-dialog-backdrop",
4992
5003
  onClick: ce(Xo, ["self"])
4993
5004
  }, [
4994
- e("section", Om, [
4995
- e("div", Mm, [
5005
+ e("section", Mm, [
5006
+ e("div", Um, [
4996
5007
  e("div", null, [
4997
5008
  e("p", null, p(a(R) ? "编辑页面描述" : "新增页面描述"), 1),
4998
5009
  e("span", null, [
4999
- G(p(a(ft).code) + " · " + p(a(ft).title), 1),
5010
+ W(p(a(ft).code) + " · " + p(a(ft).title), 1),
5000
5011
  dn.value ? (v(), f(P, { key: 0 }, [
5001
- G(" · " + p(dn.value), 1)
5012
+ W(" · " + p(dn.value), 1)
5002
5013
  ], 64)) : x("", !0)
5003
5014
  ])
5004
5015
  ]),
@@ -5012,13 +5023,13 @@ const rf = {
5012
5023
  class: "page-description-form",
5013
5024
  onSubmit: ce(Ei, ["prevent"])
5014
5025
  }, [
5015
- a(R) ? ho.value ? (v(), f("small", jm, p(ho.value), 1)) : x("", !0) : (v(), f("p", Um, p(a(S)("pageDescriptionEmpty")), 1)),
5026
+ a(R) ? ho.value ? (v(), f("small", Vm, p(ho.value), 1)) : x("", !0) : (v(), f("p", jm, p(a(S)("pageDescriptionEmpty")), 1)),
5016
5027
  e("label", null, [
5017
5028
  e("span", null, p(a(S)("pageDescriptionPurpose")), 1),
5018
5029
  A(e("textarea", {
5019
5030
  "onUpdate:modelValue": o[45] || (o[45] = (l) => a(U).purpose = l),
5020
5031
  placeholder: a(S)("pageDescriptionPurposePlaceholder")
5021
- }, null, 8, Vm), [
5032
+ }, null, 8, Lm), [
5022
5033
  [F, a(U).purpose]
5023
5034
  ])
5024
5035
  ]),
@@ -5027,7 +5038,7 @@ const rf = {
5027
5038
  A(e("textarea", {
5028
5039
  "onUpdate:modelValue": o[46] || (o[46] = (l) => a(U).structure = l),
5029
5040
  placeholder: a(S)("pageDescriptionStructurePlaceholder")
5030
- }, null, 8, Lm), [
5041
+ }, null, 8, Fm), [
5031
5042
  [F, a(U).structure]
5032
5043
  ])
5033
5044
  ]),
@@ -5036,7 +5047,7 @@ const rf = {
5036
5047
  A(e("textarea", {
5037
5048
  "onUpdate:modelValue": o[47] || (o[47] = (l) => a(U).features = l),
5038
5049
  placeholder: a(S)("pageDescriptionFeaturesPlaceholder")
5039
- }, null, 8, Fm), [
5050
+ }, null, 8, Km), [
5040
5051
  [F, a(U).features]
5041
5052
  ])
5042
5053
  ]),
@@ -5045,12 +5056,12 @@ const rf = {
5045
5056
  A(e("textarea", {
5046
5057
  "onUpdate:modelValue": o[48] || (o[48] = (l) => a(U).flowPosition = l),
5047
5058
  placeholder: a(S)("pageDescriptionFlowPlaceholder")
5048
- }, null, 8, Km), [
5059
+ }, null, 8, zm), [
5049
5060
  [F, a(U).flowPosition]
5050
5061
  ])
5051
5062
  ]),
5052
5063
  e("label", null, [
5053
- o[103] || (o[103] = e("span", null, "交互规则", -1)),
5064
+ o[105] || (o[105] = e("span", null, "交互规则", -1)),
5054
5065
  A(e("textarea", {
5055
5066
  "onUpdate:modelValue": o[49] || (o[49] = (l) => a(U).interactionRules = l),
5056
5067
  placeholder: "说明用户操作后的页面跳转、状态变化、按钮行为和不可直接跳过的流程。"
@@ -5059,7 +5070,7 @@ const rf = {
5059
5070
  ])
5060
5071
  ]),
5061
5072
  e("label", null, [
5062
- o[104] || (o[104] = e("span", null, "状态判断依据", -1)),
5073
+ o[106] || (o[106] = e("span", null, "状态判断依据", -1)),
5063
5074
  A(e("textarea", {
5064
5075
  "onUpdate:modelValue": o[50] || (o[50] = (l) => a(U).stateCriteria = l),
5065
5076
  placeholder: "用中文业务语义说明页面展示依赖哪些状态,不写接口字段名。"
@@ -5068,7 +5079,7 @@ const rf = {
5068
5079
  ])
5069
5080
  ]),
5070
5081
  e("label", null, [
5071
- o[105] || (o[105] = e("span", null, "异常与边界", -1)),
5082
+ o[107] || (o[107] = e("span", null, "异常与边界", -1)),
5072
5083
  A(e("textarea", {
5073
5084
  "onUpdate:modelValue": o[51] || (o[51] = (l) => a(U).edgeCases = l),
5074
5085
  placeholder: "说明空态、失败态、权限、断连、重复点击、数据不足等边界。"
@@ -5077,7 +5088,7 @@ const rf = {
5077
5088
  ])
5078
5089
  ]),
5079
5090
  e("label", null, [
5080
- o[106] || (o[106] = e("span", null, "开发验收", -1)),
5091
+ o[108] || (o[108] = e("span", null, "开发验收", -1)),
5081
5092
  A(e("textarea", {
5082
5093
  "onUpdate:modelValue": o[52] || (o[52] = (l) => a(U).acceptanceCriteria = l),
5083
5094
  placeholder: "说明开发完成后如何判断页面、状态、流程和指标语义实现正确。"
@@ -5086,15 +5097,15 @@ const rf = {
5086
5097
  ])
5087
5098
  ]),
5088
5099
  e("label", null, [
5089
- o[107] || (o[107] = e("span", null, "补充说明", -1)),
5100
+ o[109] || (o[109] = e("span", null, "补充说明", -1)),
5090
5101
  A(e("textarea", {
5091
5102
  "onUpdate:modelValue": o[53] || (o[53] = (l) => a(U).developmentNotes = l),
5092
5103
  placeholder: a(S)("pageDescriptionDevelopmentPlaceholder")
5093
- }, null, 8, zm), [
5104
+ }, null, 8, Gm), [
5094
5105
  [F, a(U).developmentNotes]
5095
5106
  ])
5096
5107
  ]),
5097
- e("div", Gm, [
5108
+ e("div", Hm, [
5098
5109
  e("button", {
5099
5110
  type: "button",
5100
5111
  onClick: Xo
@@ -5102,7 +5113,7 @@ const rf = {
5102
5113
  e("button", {
5103
5114
  type: "submit",
5104
5115
  disabled: a(ke) === "syncing"
5105
- }, p(a(S)("pageDescriptionSave")), 9, Hm)
5116
+ }, p(a(S)("pageDescriptionSave")), 9, Wm)
5106
5117
  ])
5107
5118
  ], 32)
5108
5119
  ])
@@ -5116,7 +5127,7 @@ const rf = {
5116
5127
  onMouseleave: o[56] || (o[56] = //@ts-ignore
5117
5128
  (...l) => a(u) && a(u)(...l))
5118
5129
  }, [
5119
- e("div", Wm, [
5130
+ e("div", Jm, [
5120
5131
  e("b", null, p(a(D).featureName), 1),
5121
5132
  e("button", {
5122
5133
  class: "annotation-delete-btn",
@@ -5124,12 +5135,12 @@ const rf = {
5124
5135
  disabled: !a(se).trim(),
5125
5136
  title: a(se).trim() ? "" : "请先输入昵称以删除注释",
5126
5137
  onClick: o[54] || (o[54] = (l) => a(d)(a(D).id))
5127
- }, p(a(S)("annotationDelete")), 9, Jm)
5138
+ }, p(a(S)("annotationDelete")), 9, Ym)
5128
5139
  ]),
5129
5140
  e("p", null, p(a(D).featureDescription), 1),
5130
5141
  e("small", null, p(a(D).specialNote), 1)
5131
5142
  ], 36)) : x("", !0),
5132
- re.value === "prototype" && a(ee) && !Q.value ? (v(), f("div", Ym, [
5143
+ re.value === "prototype" && a(ee) && !Q.value ? (v(), f("div", Xm, [
5133
5144
  e("form", {
5134
5145
  class: "annotation-form",
5135
5146
  onSubmit: o[62] || (o[62] = ce(
@@ -5145,7 +5156,7 @@ const rf = {
5145
5156
  "onUpdate:modelValue": o[57] || (o[57] = (l) => a(ee).featureName = l),
5146
5157
  type: "text",
5147
5158
  placeholder: a(S)("annotationNamePlaceholder")
5148
- }, null, 8, Xm), [
5159
+ }, null, 8, Zm), [
5149
5160
  [F, a(ee).featureName]
5150
5161
  ])
5151
5162
  ]),
@@ -5154,7 +5165,7 @@ const rf = {
5154
5165
  A(e("textarea", {
5155
5166
  "onUpdate:modelValue": o[58] || (o[58] = (l) => a(ee).featureDescription = l),
5156
5167
  placeholder: a(S)("annotationDescPlaceholder")
5157
- }, null, 8, Zm), [
5168
+ }, null, 8, qm), [
5158
5169
  [F, a(ee).featureDescription]
5159
5170
  ])
5160
5171
  ]),
@@ -5163,7 +5174,7 @@ const rf = {
5163
5174
  A(e("textarea", {
5164
5175
  "onUpdate:modelValue": o[59] || (o[59] = (l) => a(ee).specialNote = l),
5165
5176
  placeholder: a(S)("annotationNotePlaceholder")
5166
- }, null, 8, qm), [
5177
+ }, null, 8, Qm), [
5167
5178
  [F, a(ee).specialNote]
5168
5179
  ])
5169
5180
  ]),
@@ -5173,11 +5184,11 @@ const rf = {
5173
5184
  "onUpdate:modelValue": o[60] || (o[60] = (l) => mn(se) ? se.value = l : null),
5174
5185
  type: "text",
5175
5186
  placeholder: a(S)("annotationAuthorPlaceholder")
5176
- }, null, 8, Qm), [
5187
+ }, null, 8, eg), [
5177
5188
  [F, a(se)]
5178
5189
  ])
5179
5190
  ]),
5180
- e("div", eg, [
5191
+ e("div", tg, [
5181
5192
  e("button", {
5182
5193
  type: "button",
5183
5194
  onClick: o[61] || (o[61] = //@ts-ignore
@@ -5186,11 +5197,11 @@ const rf = {
5186
5197
  e("button", {
5187
5198
  type: "submit",
5188
5199
  disabled: !a(ee).featureName.trim() || !a(ee).featureDescription.trim() || !a(ee).specialNote.trim() || !a(se).trim()
5189
- }, p(a(S)("annotationSave")), 9, tg)
5200
+ }, p(a(S)("annotationSave")), 9, ng)
5190
5201
  ])
5191
5202
  ], 32)
5192
5203
  ])) : x("", !0),
5193
- re.value === "prototype" && a(Re) && !Q.value ? (v(), f("div", ng, [
5204
+ re.value === "prototype" && a(Re) && !Q.value ? (v(), f("div", og, [
5194
5205
  e("form", {
5195
5206
  class: "annotation-form",
5196
5207
  onSubmit: o[68] || (o[68] = ce(
@@ -5206,7 +5217,7 @@ const rf = {
5206
5217
  "onUpdate:modelValue": o[63] || (o[63] = (l) => a(ne).featureName = l),
5207
5218
  type: "text",
5208
5219
  readonly: a(ae) === "view"
5209
- }, null, 8, og), [
5220
+ }, null, 8, ag), [
5210
5221
  [F, a(ne).featureName]
5211
5222
  ])
5212
5223
  ]),
@@ -5215,7 +5226,7 @@ const rf = {
5215
5226
  A(e("textarea", {
5216
5227
  "onUpdate:modelValue": o[64] || (o[64] = (l) => a(ne).featureDescription = l),
5217
5228
  readonly: a(ae) === "view"
5218
- }, null, 8, ag), [
5229
+ }, null, 8, lg), [
5219
5230
  [F, a(ne).featureDescription]
5220
5231
  ])
5221
5232
  ]),
@@ -5224,17 +5235,17 @@ const rf = {
5224
5235
  A(e("textarea", {
5225
5236
  "onUpdate:modelValue": o[65] || (o[65] = (l) => a(ne).specialNote = l),
5226
5237
  readonly: a(ae) === "view"
5227
- }, null, 8, lg), [
5238
+ }, null, 8, sg), [
5228
5239
  [F, a(ne).specialNote]
5229
5240
  ])
5230
5241
  ]),
5231
- a(ae) === "edit" ? (v(), f("label", sg, [
5242
+ a(ae) === "edit" ? (v(), f("label", ig, [
5232
5243
  e("span", null, p(a(S)("annotationAuthorName")), 1),
5233
5244
  A(e("input", {
5234
5245
  "onUpdate:modelValue": o[66] || (o[66] = (l) => mn(se) ? se.value = l : null),
5235
5246
  type: "text",
5236
5247
  placeholder: a(S)("annotationAuthorPlaceholder")
5237
- }, null, 8, ig), [
5248
+ }, null, 8, rg), [
5238
5249
  [F, a(se)]
5239
5250
  ])
5240
5251
  ])) : x("", !0),
@@ -5250,7 +5261,7 @@ const rf = {
5250
5261
  key: 0,
5251
5262
  type: "submit",
5252
5263
  disabled: !a(ne).featureName.trim() || !a(ne).featureDescription.trim() || !a(ne).specialNote.trim() || !a(se).trim()
5253
- }, p(a(S)("annotationSave")), 9, rg)) : x("", !0)
5264
+ }, p(a(S)("annotationSave")), 9, ug)) : x("", !0)
5254
5265
  ], 2)
5255
5266
  ], 32)
5256
5267
  ])) : x("", !0),
@@ -5259,14 +5270,14 @@ const rf = {
5259
5270
  class: "page-description-summary-backdrop",
5260
5271
  onClick: o[70] || (o[70] = ce((l) => Ze.value = !1, ["self"]))
5261
5272
  }, [
5262
- e("section", ug, [
5263
- e("div", cg, [
5273
+ e("section", cg, [
5274
+ e("div", dg, [
5264
5275
  e("div", null, [
5265
- o[108] || (o[108] = e("p", null, "页面描述", -1)),
5276
+ o[110] || (o[110] = e("p", null, "页面描述", -1)),
5266
5277
  e("span", null, [
5267
- G(p(a(ft).code) + " · " + p(a(ft).title), 1),
5278
+ W(p(a(ft).code) + " · " + p(a(ft).title), 1),
5268
5279
  dn.value ? (v(), f(P, { key: 0 }, [
5269
- G(" · " + p(dn.value), 1)
5280
+ W(" · " + p(dn.value), 1)
5270
5281
  ], 64)) : x("", !0)
5271
5282
  ])
5272
5283
  ]),
@@ -5276,8 +5287,8 @@ const rf = {
5276
5287
  onClick: o[69] || (o[69] = (l) => Ze.value = !1)
5277
5288
  }, "×")
5278
5289
  ]),
5279
- e("div", dg, [
5280
- o[109] || (o[109] = e("div", { class: "page-description-summary-options-head" }, [
5290
+ e("div", pg, [
5291
+ o[111] || (o[111] = e("div", { class: "page-description-summary-options-head" }, [
5281
5292
  e("p", null, "展示内容")
5282
5293
  ], -1)),
5283
5294
  e("div", { class: "page-description-summary-bulk-actions" }, [
@@ -5298,26 +5309,26 @@ const rf = {
5298
5309
  type: "checkbox",
5299
5310
  checked: Le.value.includes(l.id),
5300
5311
  onChange: (h) => tr(l.id)
5301
- }, null, 40, pg),
5312
+ }, null, 40, vg),
5302
5313
  e("span", null, p(l.label), 1)
5303
5314
  ]))), 128))
5304
5315
  ])
5305
5316
  ]),
5306
- e("div", vg, [
5317
+ e("div", fg, [
5307
5318
  wo.value.length ? (v(!0), f(P, { key: 1 }, N(wo.value, (l) => (v(), f("p", {
5308
5319
  key: l.id
5309
5320
  }, [
5310
5321
  e("b", null, p(l.label) + ":", 1),
5311
- G(p(l.value), 1)
5312
- ]))), 128)) : (v(), f("p", fg, "请选择要展示的描述部分。"))
5322
+ W(p(l.value), 1)
5323
+ ]))), 128)) : (v(), f("p", mg, "请选择要展示的描述部分。"))
5313
5324
  ]),
5314
- e("div", mg, [
5325
+ e("div", gg, [
5315
5326
  e("small", null, p(At.value), 1),
5316
5327
  e("button", {
5317
5328
  type: "button",
5318
5329
  disabled: !wo.value.length,
5319
5330
  onClick: Qi
5320
- }, "复制选中内容", 8, gg)
5331
+ }, "复制选中内容", 8, bg)
5321
5332
  ])
5322
5333
  ])
5323
5334
  ])) : x("", !0),
@@ -5326,9 +5337,9 @@ const rf = {
5326
5337
  class: "prototype-health-backdrop",
5327
5338
  onClick: o[74] || (o[74] = ce((l) => _t.value = !1, ["self"]))
5328
5339
  }, [
5329
- e("section", bg, [
5330
- e("div", yg, [
5331
- o[110] || (o[110] = e("div", null, [
5340
+ e("section", yg, [
5341
+ e("div", hg, [
5342
+ o[112] || (o[112] = e("div", null, [
5332
5343
  e("p", null, "原型健康检查"),
5333
5344
  e("span", null, "页面描述覆盖率优先读取云端 manifest;云端文件全量检查请运行 pnpm validate:remote")
5334
5345
  ], -1)),
@@ -5338,7 +5349,7 @@ const rf = {
5338
5349
  onClick: o[71] || (o[71] = (l) => _t.value = !1)
5339
5350
  }, "×")
5340
5351
  ]),
5341
- e("div", hg, [
5352
+ e("div", wg, [
5342
5353
  e("button", {
5343
5354
  type: "button",
5344
5355
  class: _({ active: Pn.value === "overview" }),
@@ -5351,7 +5362,7 @@ const rf = {
5351
5362
  }, "页面/状态矩阵", 2)
5352
5363
  ]),
5353
5364
  Pn.value === "overview" ? (v(), f(P, { key: 0 }, [
5354
- e("div", wg, [
5365
+ e("div", xg, [
5355
5366
  (v(!0), f(P, null, N(qi.value, (l) => (v(), f("section", {
5356
5367
  key: l.label
5357
5368
  }, [
@@ -5360,12 +5371,12 @@ const rf = {
5360
5371
  e("small", null, p(l.detail), 1)
5361
5372
  ]))), 128))
5362
5373
  ]),
5363
- e("div", xg, [
5364
- e("div", kg, [
5365
- o[111] || (o[111] = e("p", null, "问题清单", -1)),
5374
+ e("div", kg, [
5375
+ e("div", Sg, [
5376
+ o[113] || (o[113] = e("p", null, "问题清单", -1)),
5366
5377
  e("span", null, p(gl.value.filter((l) => l.tone !== "success").length) + " 个待关注项", 1)
5367
5378
  ]),
5368
- e("div", Sg, [
5379
+ e("div", $g, [
5369
5380
  (v(!0), f(P, null, N(gl.value, (l) => (v(), f("section", {
5370
5381
  key: l.title,
5371
5382
  class: _(`is-${l.tone}`)
@@ -5375,14 +5386,14 @@ const rf = {
5375
5386
  ], 2))), 128))
5376
5387
  ])
5377
5388
  ])
5378
- ], 64)) : (v(), f("div", $g, [
5379
- o[113] || (o[113] = e("div", { class: "prototype-health-section-head" }, [
5389
+ ], 64)) : (v(), f("div", Cg, [
5390
+ o[115] || (o[115] = e("div", { class: "prototype-health-section-head" }, [
5380
5391
  e("p", null, "页面/状态矩阵"),
5381
5392
  e("span", null, "按页面聚合状态、流程覆盖、描述覆盖和注释数量")
5382
5393
  ], -1)),
5383
- e("div", Cg, [
5384
- e("table", Dg, [
5385
- o[112] || (o[112] = e("thead", null, [
5394
+ e("div", Dg, [
5395
+ e("table", Pg, [
5396
+ o[114] || (o[114] = e("thead", null, [
5386
5397
  e("tr", null, [
5387
5398
  e("th", null, "编号"),
5388
5399
  e("th", null, "页面"),
@@ -5420,18 +5431,18 @@ const rf = {
5420
5431
  class: "fixed inset-0 z-[130] flex items-center justify-center bg-black/35 px-4",
5421
5432
  onClick: o[76] || (o[76] = ce((l) => Tt.value = !1, ["self"]))
5422
5433
  }, [
5423
- e("section", Pg, [
5424
- e("div", Ig, [
5434
+ e("section", Ig, [
5435
+ e("div", _g, [
5425
5436
  e("div", null, [
5426
- o[114] || (o[114] = e("h2", { class: "text-lg font-semibold text-ink" }, "更新历史", -1)),
5427
- e("p", _g, "最近一次更新时间:" + p(Ii.value), 1)
5437
+ o[116] || (o[116] = e("h2", { class: "text-lg font-semibold text-ink" }, "更新历史", -1)),
5438
+ e("p", Ag, "最近一次更新时间:" + p(Ii.value), 1)
5428
5439
  ]),
5429
5440
  e("button", {
5430
5441
  class: "flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-soft text-base font-semibold text-ink",
5431
5442
  onClick: o[75] || (o[75] = (l) => Tt.value = !1)
5432
5443
  }, " × ")
5433
5444
  ]),
5434
- e("div", Ag, [
5445
+ e("div", Ng, [
5435
5446
  (v(!0), f(P, null, N(a(fo), (l) => (v(), f("section", {
5436
5447
  key: l.hash,
5437
5448
  class: "overflow-hidden rounded-[16px] bg-soft transition"
@@ -5441,27 +5452,27 @@ const rf = {
5441
5452
  class: "w-full p-3 text-left",
5442
5453
  onClick: (h) => pr(l.hash)
5443
5454
  }, [
5444
- e("div", Tg, [
5445
- e("p", Rg, p(l.date), 1),
5446
- e("div", Bg, [
5447
- e("code", Eg, p(l.hash), 1),
5455
+ e("div", Rg, [
5456
+ e("p", Bg, p(l.date), 1),
5457
+ e("div", Eg, [
5458
+ e("code", Og, p(l.hash), 1),
5448
5459
  e("span", {
5449
5460
  class: _(["text-sm text-muted transition-transform duration-200", { "rotate-180": mo.value === l.hash }])
5450
5461
  }, "⌄", 2)
5451
5462
  ])
5452
5463
  ]),
5453
- e("p", Og, p(l.message), 1)
5454
- ], 8, Ng),
5455
- mo.value === l.hash ? (v(), f("div", Mg, [
5456
- xl(l).length ? (v(), f("div", Ug, [
5464
+ e("p", Mg, p(l.message), 1)
5465
+ ], 8, Tg),
5466
+ mo.value === l.hash ? (v(), f("div", Ug, [
5467
+ xl(l).length ? (v(), f("div", jg, [
5457
5468
  (v(!0), f(P, null, N(xl(l), (h) => (v(), f("p", {
5458
5469
  key: `${l.hash}-${h}`,
5459
5470
  class: "rounded-[12px] bg-panel px-3 py-2 text-xs leading-5 text-muted"
5460
5471
  }, p(h), 1))), 128))
5461
- ])) : (v(), f("p", jg, "暂无更多修改细节"))
5472
+ ])) : (v(), f("p", Vg, "暂无更多修改细节"))
5462
5473
  ])) : x("", !0)
5463
5474
  ]))), 128)),
5464
- a(fo).length ? x("", !0) : (v(), f("p", Vg, "暂无提交记录"))
5475
+ a(fo).length ? x("", !0) : (v(), f("p", Lg, "暂无提交记录"))
5465
5476
  ])
5466
5477
  ])
5467
5478
  ])) : x("", !0),
@@ -5470,10 +5481,10 @@ const rf = {
5470
5481
  class: "mobile-page-picker-backdrop",
5471
5482
  onClick: ce(Do, ["self"])
5472
5483
  }, [
5473
- e("section", Lg, [
5474
- o[117] || (o[117] = e("div", { class: "mobile-page-picker-handle" }, null, -1)),
5484
+ e("section", Fg, [
5485
+ o[119] || (o[119] = e("div", { class: "mobile-page-picker-handle" }, null, -1)),
5475
5486
  e("header", { class: "mobile-page-picker-head" }, [
5476
- o[115] || (o[115] = e("div", null, [
5487
+ o[117] || (o[117] = e("div", null, [
5477
5488
  e("h2", null, "快速切换页面"),
5478
5489
  e("p", null, "选择页面或页面状态,直接进入目标画面")
5479
5490
  ], -1)),
@@ -5490,7 +5501,7 @@ const rf = {
5490
5501
  }, null, 512), [
5491
5502
  [F, In.value]
5492
5503
  ]),
5493
- e("div", Fg, [
5504
+ e("div", Kg, [
5494
5505
  (v(!0), f(P, null, N(Ti.value, (l) => (v(), f("section", {
5495
5506
  key: l.screen.id,
5496
5507
  class: "mobile-page-picker-item"
@@ -5500,23 +5511,23 @@ const rf = {
5500
5511
  class: _(["mobile-page-picker-screen", { active: a(c) === l.screen.id }]),
5501
5512
  onClick: (h) => l.states.length ? Cr(l.screen.id) : Dr(l.screen.id)
5502
5513
  }, [
5503
- e("span", zg, p(l.screen.code), 1),
5504
- e("span", Gg, [
5514
+ e("span", Gg, p(l.screen.code), 1),
5515
+ e("span", Hg, [
5505
5516
  e("b", null, p(l.screen.title), 1),
5506
5517
  e("small", null, p(l.screen.subtitle), 1)
5507
5518
  ]),
5508
- l.states.length ? (v(), f("span", Hg, p(l.states.length), 1)) : x("", !0)
5509
- ], 10, Kg),
5510
- l.states.length && (l.forceExpanded || io.value.has(l.screen.id)) ? (v(), f("div", Wg, [
5519
+ l.states.length ? (v(), f("span", Wg, p(l.states.length), 1)) : x("", !0)
5520
+ ], 10, zg),
5521
+ l.states.length && (l.forceExpanded || io.value.has(l.screen.id)) ? (v(), f("div", Jg, [
5511
5522
  (v(!0), f(P, null, N(l.states, (h) => (v(), f("button", {
5512
5523
  key: h.id,
5513
5524
  type: "button",
5514
5525
  class: _({ active: a(c) === l.screen.id && a(Xe) === h.id }),
5515
5526
  onClick: (z) => Pr(l.screen.id, h.id)
5516
5527
  }, [
5517
- o[116] || (o[116] = e("span", null, null, -1)),
5518
- G(" " + p(h.label), 1)
5519
- ], 10, Jg))), 128))
5528
+ o[118] || (o[118] = e("span", null, null, -1)),
5529
+ W(" " + p(h.label), 1)
5530
+ ], 10, Yg))), 128))
5520
5531
  ])) : x("", !0)
5521
5532
  ]))), 128))
5522
5533
  ])
@@ -5528,13 +5539,13 @@ const rf = {
5528
5539
  class: "presentation-exit-btn",
5529
5540
  onClick: Jo
5530
5541
  }, " 退出演示 (Esc) ")) : x("", !0),
5531
- re.value === "prototype" && a(H) && !Q.value ? (v(), lt(uc, {
5542
+ re.value === "prototype" && a(G) && !Q.value ? (v(), lt(uc, {
5532
5543
  key: 16,
5533
5544
  flows: a(Ct),
5534
5545
  screens: a(pe),
5535
5546
  "state-options-by-screen": a(Pt),
5536
5547
  "can-push-remote": a(Dt),
5537
- onClose: o[78] || (o[78] = (l) => H.value = !1),
5548
+ onClose: o[78] || (o[78] = (l) => G.value = !1),
5538
5549
  onSave: Oi,
5539
5550
  onPush: Mi,
5540
5551
  onExport: a(gi)
@@ -5581,5 +5592,5 @@ const rf = {
5581
5592
  }
5582
5593
  });
5583
5594
  export {
5584
- ob as default
5595
+ a1 as default
5585
5596
  };