@septkit/ui 0.0.50 → 0.0.52

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.
Files changed (27) hide show
  1. package/dist/dialecte/composables/use-active-document.js +26 -23
  2. package/dist/dialecte/composables/use-live-data.js +13 -13
  3. package/dist/dropdown/index.js +2 -1
  4. package/dist/dropdown/multi-select.js +5 -0
  5. package/dist/dropdown/multi-select.vue_vue_type_script_setup_true_lang.js +126 -0
  6. package/dist/external/.pnpm/{@dialecte_scl@0.3.9/node_modules/@dialecte/scl/dist/hooks-DO4gUiix.js → @dialecte_scl@0.3.12/node_modules/@dialecte/scl/dist/hooks-Cm_UYBBt.js} +1 -1
  7. package/dist/external/.pnpm/@dialecte_scl@0.3.12/node_modules/@dialecte/scl/dist/v2019C1/index.js +22 -0
  8. package/dist/index.d.ts +108 -47
  9. package/dist/index.js +20 -19
  10. package/dist/merge/build-view-model.js +71 -60
  11. package/dist/merge/decision-toggle.vue_vue_type_script_setup_true_lang.js +2 -2
  12. package/dist/merge/element-detail.vue_vue_type_script_setup_true_lang.js +139 -67
  13. package/dist/merge/merge-correlate.js +46 -0
  14. package/dist/merge/merge-decision.js +6 -0
  15. package/dist/merge/merge-highlight.js +44 -0
  16. package/dist/merge/merge-preflight.js +5 -0
  17. package/dist/merge/merge-preflight.vue_vue_type_script_setup_true_lang.js +41 -0
  18. package/dist/merge/merge-progress.vue_vue_type_script_setup_true_lang.js +12 -20
  19. package/dist/merge/merge-review.vue_vue_type_script_setup_true_lang.js +233 -189
  20. package/dist/merge/merge-tree.vue_vue_type_script_setup_true_lang.js +74 -65
  21. package/dist/merge/merge.service.js +36 -23
  22. package/dist/merge/use-document-progress.js +8 -9
  23. package/dist/merge/use-merge-session.js +122 -111
  24. package/dist/ui.css +1 -1
  25. package/package.json +2 -2
  26. package/dist/external/.pnpm/@dialecte_scl@0.3.9/node_modules/@dialecte/scl/dist/v2019C1/index.js +0 -3
  27. package/dist/external/.pnpm/@lucide_vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/rotate-ccw.js +0 -11
@@ -6,25 +6,26 @@ import { StepperRoot_default as i } from "../external/.pnpm/reka-ui@2.10.1_vue@3
6
6
  import { StepperItem_default as a } from "../external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Stepper/StepperItem.js";
7
7
  import { StepperIndicator_default as o } from "../external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Stepper/StepperIndicator.js";
8
8
  import { StepperTitle_default as ee } from "../external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Stepper/StepperTitle.js";
9
- import te from "../external/.pnpm/@lucide_vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/arrow-right.js";
10
- import ne from "../external/.pnpm/@lucide_vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/check.js";
11
- import re from "../external/.pnpm/@lucide_vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/eye-off.js";
12
- import ie from "../external/.pnpm/@lucide_vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/eye.js";
13
- import ae from "../external/.pnpm/@lucide_vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/link.js";
14
- import oe from "../external/.pnpm/@lucide_vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/list-tree.js";
15
- import se from "../code/xml-diff.js";
9
+ import s from "../external/.pnpm/@lucide_vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/arrow-right.js";
10
+ import c from "../external/.pnpm/@lucide_vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/check.js";
11
+ import te from "../external/.pnpm/@lucide_vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/eye-off.js";
12
+ import ne from "../external/.pnpm/@lucide_vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/eye.js";
13
+ import re from "../external/.pnpm/@lucide_vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/link.js";
14
+ import ie from "../external/.pnpm/@lucide_vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/list-tree.js";
15
+ import ae from "../code/xml-diff.js";
16
16
  import "../code/index.js";
17
- import ce from "./element-detail.js";
18
- import { buildDetail as le, buildSummary as s } from "./build-view-model.js";
19
- import ue from "./merge-progress.js";
20
- import de from "./merge-summary.js";
21
- import fe from "./merge-tree.js";
22
- import pe from "./type-name-authority.js";
23
- import { useDocumentProgress as c } from "./use-document-progress.js";
17
+ import oe from "./element-detail.js";
18
+ import { allGroups as l, buildDetail as u, buildSummary as se } from "./build-view-model.js";
19
+ import ce from "./merge-preflight.js";
20
+ import le from "./merge-progress.js";
21
+ import ue from "./merge-summary.js";
22
+ import de from "./merge-tree.js";
23
+ import fe from "./type-name-authority.js";
24
+ import { useDocumentProgress as pe } from "./use-document-progress.js";
24
25
  import { useMergeSession as me } from "./use-merge-session.js";
25
- import { Fragment as l, computed as u, createBlock as d, createCommentVNode as f, createElementBlock as p, createElementVNode as m, createTextVNode as h, createVNode as g, defineComponent as _, normalizeClass as v, onMounted as he, openBlock as y, ref as b, renderList as ge, resolveDynamicComponent as _e, toDisplayString as x, unref as S, vShow as ve, watch as ye, withCtx as C, withDirectives as w } from "vue";
26
+ import { Fragment as d, computed as f, createBlock as p, createCommentVNode as m, createElementBlock as h, createElementVNode as g, createTextVNode as _, createVNode as v, defineComponent as y, normalizeClass as b, onMounted as he, openBlock as x, ref as S, renderList as ge, resolveDynamicComponent as _e, toDisplayString as C, unref as w, vShow as ve, watch as ye, withCtx as T, withDirectives as be } from "vue";
26
27
  //#region lib/merge/merge-review.vue?vue&type=script&setup=true&lang.ts
27
- var T = { class: "flex h-full flex-col" }, E = { class: "flex flex-wrap items-center justify-between gap-x-8 gap-y-3 border-b border-base-300 px-4 py-2.5" }, D = {
28
+ var xe = { class: "flex h-full flex-col" }, E = { class: "flex flex-wrap items-center justify-between gap-x-8 gap-y-3 border-b border-base-300 px-4 py-2.5" }, D = {
28
29
  key: 0,
29
30
  class: "flex flex-col items-start gap-x-4 gap-y-1 text-xs md:flex-row md:items-center"
30
31
  }, O = {
@@ -33,25 +34,28 @@ var T = { class: "flex h-full flex-col" }, E = { class: "flex flex-wrap items-ce
33
34
  }, k = { class: "font-semibold" }, A = { class: "text-base-content/60" }, j = {
34
35
  key: 0,
35
36
  class: "uppercase"
36
- }, M = { key: 1 }, N = {
37
+ }, M = { key: 1 }, Se = {
37
38
  key: 1,
38
39
  class: "flex items-baseline gap-1.5"
39
- }, P = { class: "font-semibold" }, be = { class: "text-base-content/60" }, xe = {
40
+ }, Ce = { class: "font-semibold" }, we = { class: "text-base-content/60" }, Te = {
40
41
  key: 0,
41
42
  class: "uppercase"
42
- }, Se = { key: 1 }, Ce = {
43
+ }, Ee = { key: 1 }, De = {
43
44
  key: 0,
44
45
  class: "border-b border-error/40 bg-error/10 p-2 text-xs whitespace-pre-wrap text-error"
45
- }, we = {
46
+ }, Oe = { class: "min-h-0 flex-1" }, ke = {
46
47
  key: 1,
47
- class: "flex items-center gap-2 border-b border-info/40 bg-info/10 p-2 text-xs text-info"
48
- }, Te = { class: "min-h-0 flex-1" }, Ee = { class: "h-full" }, De = { class: "flex shrink-0 items-center gap-3 border-b border-base-300 px-3 py-1.5 text-xs" }, Oe = { class: "flex items-center gap-1" }, ke = ["title"], Ae = { class: "min-h-0 flex-1 overflow-y-auto" }, je = {
49
- key: 2,
48
+ class: "h-full"
49
+ }, Ae = {
50
+ key: 0,
51
+ class: "grid h-full place-items-center p-6 text-center"
52
+ }, je = { class: "max-w-md space-y-2" }, Me = { class: "h-full" }, Ne = { class: "flex shrink-0 items-center gap-3 border-b border-base-300 px-3 py-1.5 text-xs" }, Pe = { class: "flex items-center gap-1" }, Fe = ["title"], Ie = { class: "min-h-0 flex-1 overflow-y-auto" }, Le = {
53
+ key: 3,
50
54
  class: "grid h-full place-items-center p-6 text-center"
51
- }, Me = { class: "flex flex-col items-center gap-1" }, Ne = {
55
+ }, Re = { class: "flex flex-col items-center gap-1" }, ze = {
52
56
  key: 0,
53
57
  class: "text-xs opacity-70"
54
- }, Pe = { class: "flex items-center justify-end gap-2 border-t border-base-300 p-2" }, F = /*@__PURE__*/ _({
58
+ }, Be = { class: "flex items-center justify-end gap-2 border-t border-base-300 p-2" }, N = /*@__PURE__*/ y({
55
59
  __name: "merge-review",
56
60
  props: {
57
61
  targetDocument: {},
@@ -66,25 +70,31 @@ var T = { class: "flex h-full flex-col" }, E = { class: "flex flex-wrap items-ce
66
70
  affixMask: { type: Function }
67
71
  },
68
72
  emits: ["applied", "close"],
69
- setup(_, { emit: F }) {
70
- let I = _, L = F, R = me(I), { structuralTree: z, previewXml: Fe, previewBeforeXml: Ie, previewLoading: Le } = R, B = u({
71
- get: () => R.keepNameTypesFrom.value,
72
- set: (e) => R.setKeepNameTypesFrom(e)
73
- }), { progress: Re, history: ze, track: V } = c(() => I.targetDocument.state), H = b("review"), U = b(!1), W = b(), G = b(), K = b(), q = b(), J = b(), Y = b(!0), X = b(), Be = [
74
- "Review",
75
- "Confirm",
76
- "Done"
77
- ], Z = u(() => ({
78
- review: 0,
79
- confirm: 1,
80
- done: 2
81
- })[H.value]), Ve = u(() => !!R.report.value && R.report.value.groups.length === 0), He = u(() => {
73
+ setup(y, { emit: N }) {
74
+ let P = y, F = N, I = me(P), { structuralTree: L, previewXml: Ve, previewBeforeXml: He, previewLoading: Ue } = I, R = f({
75
+ get: () => I.keepNameTypesFrom.value,
76
+ set: (e) => I.setKeepNameTypesFrom(e)
77
+ }), { progress: We, track: z } = pe(() => P.targetDocument.state), B = S("review"), V = S(!1), H = S(), U = S(), W = S(), G = S(), Ge = f(() => !!G.value && I.decisionOf(G.value) === "skip"), K = S(), q = S(!0), J = S(), Y = f(() => !!I.report.value && l(I.report.value).length === 0), X = f(() => I.warnings.value), Ke = f(() => Y.value || X.value.length > 0), Z = f(() => Y.value ? ["preflight"] : X.value.length > 0 ? [
78
+ "preflight",
79
+ "review",
80
+ "confirm",
81
+ "done"
82
+ ] : [
83
+ "review",
84
+ "confirm",
85
+ "done"
86
+ ]), qe = {
87
+ preflight: "Information",
88
+ review: "Review",
89
+ confirm: "Confirm",
90
+ done: "Done"
91
+ }, Je = f(() => Z.value.map((e) => qe[e])), Q = f(() => Math.max(0, Z.value.indexOf(B.value))), Ye = f(() => {
82
92
  let e = {};
83
- for (let t of R.report.value?.groups ?? []) e[t.id] = R.decisionOf(t.id);
93
+ for (let t of I.report.value ? l(I.report.value) : []) e[t.id] = I.decisionOf(t.id);
84
94
  return e;
85
- }), Q = u(() => {
86
- let e = z.value;
87
- if (Y.value) return e.items;
95
+ }), Xe = f(() => {
96
+ let e = L.value;
97
+ if (q.value) return e.items;
88
98
  let t = new Set(e.expanded);
89
99
  function n(e) {
90
100
  let r = [];
@@ -99,162 +109,164 @@ var T = { class: "flex h-full flex-col" }, E = { class: "flex flex-wrap items-ce
99
109
  return r;
100
110
  }
101
111
  return n(e.items);
102
- }), Ue = u(() => X.value ?? z.value.expanded);
103
- ye(z, () => {
104
- X.value = void 0;
112
+ }), Ze = f(() => J.value ?? L.value.expanded);
113
+ ye(L, () => {
114
+ J.value = void 0;
105
115
  }), he(async () => {
106
- W.value = "Analyzing template…", U.value = !0;
116
+ H.value = "Analyzing template…", V.value = !0;
107
117
  try {
108
- await V(R.load());
118
+ await z(I.load()), Ke.value && (B.value = "preflight");
109
119
  } catch (e) {
110
- G.value = e instanceof Error ? e.stack ?? e.message : String(e);
120
+ U.value = e instanceof Error ? e.stack ?? e.message : String(e);
111
121
  } finally {
112
- U.value = !1;
122
+ V.value = !1;
113
123
  }
114
124
  });
115
125
  function $() {
116
126
  return {
117
- sourceQuery: I.sourceQuery,
118
- targetQuery: I.targetDocument.query
127
+ sourceQuery: P.sourceQuery,
128
+ targetQuery: P.targetDocument.query
119
129
  };
120
130
  }
121
- function We() {
122
- let e = z.value, t = new Set(e.expanded);
131
+ function Qe() {
132
+ let e = L.value, t = new Set(e.expanded);
123
133
  function n(r, i) {
124
134
  for (let a of r) {
125
135
  let r = (e.meta[a.id]?.change ?? "unchanged") !== "unchanged", o = i || r;
126
136
  o && a.children?.length && t.add(a.id), a.children && n(a.children, o);
127
137
  }
128
138
  }
129
- n(e.items, !1), X.value = [...t];
139
+ n(e.items, !1), J.value = [...t];
130
140
  }
131
- async function Ge(e) {
132
- let t = z.value.index[e.id];
141
+ async function $e(e) {
142
+ let t = L.value.index[e.id];
133
143
  if (!t) return;
134
- R.select(t), q.value = t.role === "primary" ? t.groupId : void 0;
135
- let n = q.value ? R.report.value?.groups.find((e) => e.id === q.value) : void 0, r = t.node ? await le(t.node, n, $()) : void 0;
144
+ I.select(t), G.value = t.role === "primary" ? t.groupId : void 0;
145
+ let n = G.value && I.report.value ? l(I.report.value).find((e) => e.id === G.value) : void 0, r = t.node ? await u(t.node, n, $()) : void 0;
136
146
  if (r) {
137
- let e = await R.stagedAttributes(t.previewRef);
138
- for (let t of r.attributes) t.editable && e[t.name] != null && (t.after = e[t.name]);
147
+ let e = await I.stagedAttributes(t.previewRef);
148
+ for (let t of r.attributes) t.editable && e[t.name] != null && (t.written = e[t.name]);
139
149
  }
140
- K.value = r;
150
+ W.value = r;
141
151
  }
142
- function Ke(e, t) {
143
- R.setDecision(e, t);
152
+ function et(e, t) {
153
+ I.setDecision(e, t);
144
154
  }
145
- function qe(e, t) {
146
- if (!q.value || !K.value) return;
147
- R.setValue(q.value, e, t);
148
- let n = K.value.attributes.find((t) => t.name === e);
149
- n && (n.after = t);
155
+ function tt(e, t) {
156
+ if (!G.value || !W.value) return;
157
+ I.setValue(G.value, e, t);
158
+ let n = W.value.attributes.find((t) => t.name === e);
159
+ n && (n.written = t);
150
160
  }
151
- async function Je() {
152
- let e = R.report.value;
153
- e && (J.value = await s(e, R.decisionOf, R.editedValue, $()), H.value = "confirm");
161
+ async function nt() {
162
+ let e = I.report.value;
163
+ e && (K.value = await se(e, I.decisionOf, I.editedValue, $()), B.value = "confirm");
154
164
  }
155
- async function Ye() {
156
- W.value = "Applying changes…", U.value = !0;
165
+ async function rt() {
166
+ H.value = "Applying changes…", V.value = !0;
157
167
  try {
158
- await V(R.commit()), H.value = "done";
168
+ await z(I.commit()), B.value = "done";
159
169
  } catch (e) {
160
- G.value = e instanceof Error ? e.stack ?? e.message : String(e);
170
+ U.value = e instanceof Error ? e.stack ?? e.message : String(e);
161
171
  } finally {
162
- U.value = !1;
172
+ V.value = !1;
163
173
  }
164
174
  }
165
- return (le, s) => (y(), p("div", T, [
166
- m("header", E, [g(S(i), {
167
- "model-value": Z.value + 1,
175
+ return (l, u) => (x(), h("div", xe, [
176
+ g("header", E, [v(w(i), {
177
+ "model-value": Q.value + 1,
168
178
  class: "flex items-center",
169
179
  "aria-label": "Merge steps"
170
180
  }, {
171
- default: C(() => [(y(), p(l, null, ge(Be, (e, t) => (y(), p(l, { key: e }, [t > 0 ? (y(), p("div", {
181
+ default: T(() => [(x(!0), h(d, null, ge(Je.value, (e, t) => (x(), h(d, { key: e }, [t > 0 ? (x(), h("div", {
172
182
  key: 0,
173
- class: v(["mx-3 h-px w-8 transition-colors", t <= Z.value ? "bg-primary" : "bg-base-300"])
174
- }, null, 2)) : f("", !0), g(S(a), {
183
+ class: b(["mx-3 h-px w-8 transition-colors", t <= Q.value ? "bg-primary" : "bg-base-300"])
184
+ }, null, 2)) : m("", !0), v(w(a), {
175
185
  step: t + 1,
176
186
  class: "flex items-center gap-2"
177
187
  }, {
178
- default: C(() => [g(S(o), { class: v(["grid size-6 place-items-center rounded-full border text-xs font-semibold transition-colors", t < Z.value ? "border-primary bg-primary text-primary-content" : t === Z.value ? "border-primary text-primary" : "border-base-300 text-base-content/40"]) }, {
179
- default: C(() => [t < Z.value ? (y(), d(S(ne), {
188
+ default: T(() => [v(w(o), { class: b(["grid size-6 place-items-center rounded-full border text-xs font-semibold transition-colors", t < Q.value ? "border-primary bg-primary text-primary-content" : t === Q.value ? "border-primary text-primary" : "border-base-300 text-base-content/40"]) }, {
189
+ default: T(() => [t < Q.value ? (x(), p(w(c), {
180
190
  key: 0,
181
191
  class: "size-3.5"
182
- })) : (y(), p(l, { key: 1 }, [h(x(t + 1), 1)], 64))]),
192
+ })) : (x(), h(d, { key: 1 }, [_(C(t + 1), 1)], 64))]),
183
193
  _: 2
184
- }, 1032, ["class"]), g(S(ee), { class: v(["text-xs font-medium transition-colors", t === Z.value ? "text-base-content" : t < Z.value ? "text-base-content/70" : "text-base-content/40"]) }, {
185
- default: C(() => [h(x(e), 1)]),
194
+ }, 1032, ["class"]), v(w(ee), { class: b(["text-xs font-medium transition-colors", t === Q.value ? "text-base-content" : t < Q.value ? "text-base-content/70" : "text-base-content/40"]) }, {
195
+ default: T(() => [_(C(e), 1)]),
186
196
  _: 2
187
197
  }, 1032, ["class"])]),
188
198
  _: 2
189
- }, 1032, ["step"])], 64))), 64))]),
199
+ }, 1032, ["step"])], 64))), 128))]),
190
200
  _: 1
191
- }, 8, ["model-value"]), _.source || _.target ? (y(), p("div", D, [
192
- _.source ? (y(), p("span", O, [
193
- s[5] ||= m("span", { class: "text-[10px] font-medium uppercase tracking-wide text-base-content/45" }, " Source ", -1),
194
- m("span", k, x(_.source.label), 1),
195
- m("span", A, [
196
- _.source.type ? (y(), p("span", j, x(_.source.type), 1)) : f("", !0),
197
- _.source.type ? (y(), p("span", M, " · ")) : f("", !0),
198
- h("v" + x(_.source.version || "0") + "." + x(_.source.revision || "0"), 1)
201
+ }, 8, ["model-value"]), y.source || y.target ? (x(), h("div", D, [
202
+ y.source ? (x(), h("span", O, [
203
+ u[8] ||= g("span", { class: "text-[10px] font-medium uppercase tracking-wide text-base-content/45" }, " Source ", -1),
204
+ g("span", k, C(y.source.label), 1),
205
+ g("span", A, [
206
+ y.source.type ? (x(), h("span", j, C(y.source.type), 1)) : m("", !0),
207
+ y.source.type ? (x(), h("span", M, " · ")) : m("", !0),
208
+ _("v" + C(y.source.version || "0") + "." + C(y.source.revision || "0"), 1)
199
209
  ])
200
- ])) : f("", !0),
201
- g(S(te), { class: "hidden size-4 shrink-0 text-base-content/40 md:block" }),
202
- _.target ? (y(), p("span", N, [
203
- s[6] ||= m("span", { class: "text-[10px] font-medium uppercase tracking-wide text-base-content/45" }, " Target ", -1),
204
- m("span", P, x(_.target.label), 1),
205
- m("span", be, [
206
- _.target.type ? (y(), p("span", xe, x(_.target.type), 1)) : f("", !0),
207
- _.target.type ? (y(), p("span", Se, " · ")) : f("", !0),
208
- h("v" + x(_.target.version || "0") + "." + x(_.target.revision || "0"), 1)
210
+ ])) : m("", !0),
211
+ v(w(s), { class: "hidden size-4 shrink-0 text-base-content/40 md:block" }),
212
+ y.target ? (x(), h("span", Se, [
213
+ u[9] ||= g("span", { class: "text-[10px] font-medium uppercase tracking-wide text-base-content/45" }, " Target ", -1),
214
+ g("span", Ce, C(y.target.label), 1),
215
+ g("span", we, [
216
+ y.target.type ? (x(), h("span", Te, C(y.target.type), 1)) : m("", !0),
217
+ y.target.type ? (x(), h("span", Ee, " · ")) : m("", !0),
218
+ _("v" + C(y.target.version || "0") + "." + C(y.target.revision || "0"), 1)
209
219
  ])
210
- ])) : f("", !0)
211
- ])) : f("", !0)]),
212
- G.value ? (y(), p("div", Ce, x(G.value), 1)) : f("", !0),
213
- !U.value && !G.value && H.value === "review" && Ve.value ? (y(), p("div", we, [g(S(ae), { class: "size-4 shrink-0" }), s[7] ||= h(" This instance is already up to date with the template — nothing to apply. ", -1)])) : f("", !0),
214
- m("div", Te, [
215
- U.value ? (y(), d(ue, {
220
+ ])) : m("", !0)
221
+ ])) : m("", !0)]),
222
+ U.value ? (x(), h("div", De, C(U.value), 1)) : m("", !0),
223
+ g("div", Oe, [
224
+ V.value ? (x(), p(le, {
216
225
  key: 0,
217
- label: W.value,
218
- progress: S(Re),
219
- history: S(ze)
220
- }, null, 8, [
221
- "label",
222
- "progress",
223
- "history"
224
- ])) : f("", !0),
225
- w(m("div", Ee, [g(S(t), {
226
+ label: H.value,
227
+ progress: w(We)
228
+ }, null, 8, ["label", "progress"])) : m("", !0),
229
+ !V.value && B.value === "preflight" ? (x(), h("div", ke, [Y.value ? (x(), h("div", Ae, [g("div", je, [
230
+ v(w(re), { class: "mx-auto size-8 text-info" }),
231
+ u[10] ||= g("h2", { class: "text-base font-semibold" }, "Already up to date", -1),
232
+ u[11] ||= g("p", { class: "text-sm text-base-content/70" }, " This instance is already up to date with the template — nothing to apply. ", -1)
233
+ ])])) : (x(), p(ce, {
234
+ key: 1,
235
+ warnings: X.value
236
+ }, null, 8, ["warnings"]))])) : m("", !0),
237
+ be(g("div", Me, [v(w(t), {
226
238
  direction: "horizontal",
227
239
  class: "h-full min-h-0"
228
240
  }, {
229
- default: C(() => [
230
- g(S(n), {
241
+ default: T(() => [
242
+ v(w(n), {
231
243
  "default-size": 42,
232
244
  class: "flex h-full min-h-0 flex-col"
233
245
  }, {
234
- default: C(() => [m("div", De, [
235
- g(pe, {
236
- modelValue: B.value,
237
- "onUpdate:modelValue": s[0] ||= (e) => B.value = e
246
+ default: T(() => [g("div", Ne, [
247
+ v(fe, {
248
+ modelValue: R.value,
249
+ "onUpdate:modelValue": u[0] ||= (e) => R.value = e
238
250
  }, null, 8, ["modelValue"]),
239
- s[8] ||= m("div", { class: "ml-auto h-4 w-px shrink-0 bg-base-300" }, null, -1),
240
- m("div", Oe, [m("button", {
251
+ u[12] ||= g("div", { class: "ml-auto h-4 w-px shrink-0 bg-base-300" }, null, -1),
252
+ g("div", Pe, [g("button", {
241
253
  type: "button",
242
- class: v(["btn btn-ghost btn-xs btn-square", { "text-primary": Y.value }]),
243
- title: Y.value ? "Hide unchanged elements" : "Show unchanged elements",
244
- onClick: s[1] ||= (e) => Y.value = !Y.value
245
- }, [(y(), d(_e(Y.value ? S(ie) : S(re)), { class: "h-4 w-4" }))], 10, ke), m("button", {
254
+ class: b(["btn btn-ghost btn-xs btn-square", { "text-primary": q.value }]),
255
+ title: q.value ? "Hide unchanged elements" : "Show unchanged elements",
256
+ onClick: u[1] ||= (e) => q.value = !q.value
257
+ }, [(x(), p(_e(q.value ? w(ne) : w(te)), { class: "h-4 w-4" }))], 10, Fe), g("button", {
246
258
  type: "button",
247
259
  class: "btn btn-ghost btn-xs btn-square",
248
260
  title: "Expand all differences",
249
- onClick: We
250
- }, [g(S(oe), { class: "h-4 w-4" })])])
251
- ]), m("div", Ae, [g(fe, {
252
- items: Q.value,
253
- meta: S(z).meta,
254
- decisions: He.value,
255
- "expanded-items": Ue.value,
256
- onSelect: Ge,
257
- "onUpdate:decision": Ke
261
+ onClick: Qe
262
+ }, [v(w(ie), { class: "h-4 w-4" })])])
263
+ ]), g("div", Ie, [v(de, {
264
+ items: Xe.value,
265
+ meta: w(L).meta,
266
+ decisions: Ye.value,
267
+ "expanded-items": Ze.value,
268
+ onSelect: $e,
269
+ "onUpdate:decision": et
258
270
  }, null, 8, [
259
271
  "items",
260
272
  "meta",
@@ -263,30 +275,35 @@ var T = { class: "flex h-full flex-col" }, E = { class: "flex flex-wrap items-ce
263
275
  ])])]),
264
276
  _: 1
265
277
  }),
266
- g(S(r), { class: "w-px bg-base-300" }),
267
- g(S(n), { class: "h-full border-s border-base-300" }, {
268
- default: C(() => [g(S(t), {
278
+ v(w(r), { class: "w-px bg-base-300" }),
279
+ v(w(n), { class: "h-full border-s border-base-300" }, {
280
+ default: T(() => [v(w(t), {
269
281
  direction: "vertical",
270
282
  class: "h-full"
271
283
  }, {
272
- default: C(() => [
273
- g(S(n), {
284
+ default: T(() => [
285
+ v(w(n), {
274
286
  "default-size": 55,
275
287
  class: "min-h-0 overflow-auto"
276
288
  }, {
277
- default: C(() => [g(ce, {
278
- detail: K.value,
279
- "affix-mask": _.affixMask,
280
- onEdit: qe
281
- }, null, 8, ["detail", "affix-mask"])]),
289
+ default: T(() => [v(oe, {
290
+ detail: W.value,
291
+ "affix-mask": y.affixMask,
292
+ disabled: Ge.value,
293
+ onEdit: tt
294
+ }, null, 8, [
295
+ "detail",
296
+ "affix-mask",
297
+ "disabled"
298
+ ])]),
282
299
  _: 1
283
300
  }),
284
- g(S(r), { class: "h-px bg-base-300" }),
285
- g(S(n), { class: "min-h-0" }, {
286
- default: C(() => [g(S(se), {
287
- before: S(Ie),
288
- after: S(Fe),
289
- loading: S(Le)
301
+ v(w(r), { class: "h-px bg-base-300" }),
302
+ v(w(n), { class: "min-h-0" }, {
303
+ default: T(() => [v(w(ae), {
304
+ before: w(He),
305
+ after: w(Ve),
306
+ loading: w(Ue)
290
307
  }, null, 8, [
291
308
  "before",
292
309
  "after",
@@ -301,65 +318,92 @@ var T = { class: "flex h-full flex-col" }, E = { class: "flex flex-wrap items-ce
301
318
  })
302
319
  ]),
303
320
  _: 1
304
- })], 512), [[ve, !U.value && H.value === "review"]]),
305
- !U.value && H.value === "confirm" && J.value ? (y(), d(de, {
306
- key: 1,
307
- summary: J.value,
308
- scenario: _.scenario,
309
- verb: _.verb
321
+ })], 512), [[ve, !V.value && B.value === "review"]]),
322
+ !V.value && B.value === "confirm" && K.value ? (x(), p(ue, {
323
+ key: 2,
324
+ summary: K.value,
325
+ scenario: y.scenario,
326
+ verb: y.verb
310
327
  }, null, 8, [
311
328
  "summary",
312
329
  "scenario",
313
330
  "verb"
314
- ])) : f("", !0),
315
- !U.value && H.value === "done" ? (y(), p("div", je, [m("div", Me, [
316
- s[9] ||= m("span", { class: "text-3xl text-success" }, "✓", -1),
317
- s[10] ||= m("p", { class: "font-medium" }, "Applied", -1),
318
- J.value ? (y(), p("p", Ne, x(J.value.added.length) + " added · " + x(J.value.updated.length) + " updated · " + x(J.value.skipped.length) + " skipped ", 1)) : f("", !0)
319
- ])])) : f("", !0)
331
+ ])) : m("", !0),
332
+ !V.value && B.value === "done" ? (x(), h("div", Le, [g("div", Re, [
333
+ u[13] ||= g("span", { class: "text-3xl text-success" }, "✓", -1),
334
+ u[14] ||= g("p", { class: "font-medium" }, "Applied", -1),
335
+ K.value ? (x(), h("p", ze, C(K.value.added.length) + " added · " + C(K.value.updated.length) + " updated · " + C(K.value.skipped.length) + " skipped ", 1)) : m("", !0)
336
+ ])])) : m("", !0)
320
337
  ]),
321
- m("footer", Pe, [H.value === "review" ? (y(), p(l, { key: 0 }, [g(e, {
338
+ g("footer", Be, [B.value === "preflight" ? (x(), h(d, { key: 0 }, [Y.value ? (x(), p(e, {
339
+ key: 0,
340
+ color: "primary",
341
+ size: "sm",
342
+ onClick: u[2] ||= (e) => F("close")
343
+ }, {
344
+ default: T(() => [...u[15] ||= [_("Close", -1)]]),
345
+ _: 1
346
+ })) : (x(), h(d, { key: 1 }, [
347
+ u[18] ||= g("span", { class: "mr-auto text-xs text-base-content/60" }, " Warnings only — you can continue and review the changes. ", -1),
348
+ v(e, {
349
+ variant: "ghost",
350
+ size: "sm",
351
+ onClick: u[3] ||= (e) => F("close")
352
+ }, {
353
+ default: T(() => [...u[16] ||= [_("Close", -1)]]),
354
+ _: 1
355
+ }),
356
+ v(e, {
357
+ color: "primary",
358
+ size: "sm",
359
+ disabled: V.value,
360
+ onClick: u[4] ||= (e) => B.value = "review"
361
+ }, {
362
+ default: T(() => [u[17] ||= _(" Next: Review ", -1), v(w(s), { class: "size-4" })]),
363
+ _: 1
364
+ }, 8, ["disabled"])
365
+ ], 64))], 64)) : B.value === "review" ? (x(), h(d, { key: 1 }, [v(e, {
322
366
  variant: "ghost",
323
367
  size: "sm",
324
- onClick: s[2] ||= (e) => L("close")
368
+ onClick: u[5] ||= (e) => F("close")
325
369
  }, {
326
- default: C(() => [...s[11] ||= [h("Close", -1)]]),
370
+ default: T(() => [...u[19] ||= [_("Close", -1)]]),
327
371
  _: 1
328
- }), g(e, {
372
+ }), v(e, {
329
373
  color: "primary",
330
374
  size: "sm",
331
- disabled: U.value || !!G.value,
332
- onClick: Je
375
+ disabled: V.value || !!U.value,
376
+ onClick: nt
333
377
  }, {
334
- default: C(() => [...s[12] ||= [h(" Next: Confirm ", -1)]]),
378
+ default: T(() => [...u[20] ||= [_(" Next: Confirm ", -1)]]),
335
379
  _: 1
336
- }, 8, ["disabled"])], 64)) : H.value === "confirm" ? (y(), p(l, { key: 1 }, [g(e, {
380
+ }, 8, ["disabled"])], 64)) : B.value === "confirm" ? (x(), h(d, { key: 2 }, [v(e, {
337
381
  variant: "ghost",
338
382
  size: "sm",
339
- disabled: U.value,
340
- onClick: s[3] ||= (e) => H.value = "review"
383
+ disabled: V.value,
384
+ onClick: u[6] ||= (e) => B.value = "review"
341
385
  }, {
342
- default: C(() => [...s[13] ||= [h("Back", -1)]]),
386
+ default: T(() => [...u[21] ||= [_("Back", -1)]]),
343
387
  _: 1
344
- }, 8, ["disabled"]), g(e, {
388
+ }, 8, ["disabled"]), v(e, {
345
389
  color: "primary",
346
390
  size: "sm",
347
- disabled: U.value,
348
- onClick: Ye
391
+ disabled: V.value,
392
+ onClick: rt
349
393
  }, {
350
- default: C(() => [...s[14] ||= [h("Apply", -1)]]),
394
+ default: T(() => [...u[22] ||= [_("Apply", -1)]]),
351
395
  _: 1
352
- }, 8, ["disabled"])], 64)) : (y(), d(e, {
353
- key: 2,
396
+ }, 8, ["disabled"])], 64)) : (x(), p(e, {
397
+ key: 3,
354
398
  color: "primary",
355
399
  size: "sm",
356
- onClick: s[4] ||= (e) => L("applied")
400
+ onClick: u[7] ||= (e) => F("applied")
357
401
  }, {
358
- default: C(() => [...s[15] ||= [h("Close", -1)]]),
402
+ default: T(() => [...u[23] ||= [_("Close", -1)]]),
359
403
  _: 1
360
404
  }))])
361
405
  ]));
362
406
  }
363
407
  });
364
408
  //#endregion
365
- export { F as default };
409
+ export { N as default };