@septkit/ui 0.0.42 → 0.0.44

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 (154) hide show
  1. package/dist/code/code-block.js +7 -0
  2. package/dist/code/code-block.vue_vue_type_script_setup_true_lang.js +63 -0
  3. package/dist/code/diff.js +35 -0
  4. package/dist/code/highlight.js +30 -0
  5. package/dist/code/index.js +5 -0
  6. package/dist/code/xml-diff.js +5 -0
  7. package/dist/code/xml-diff.vue_vue_type_script_setup_true_lang.js +33 -0
  8. package/dist/dialecte/composables/index.js +2 -1
  9. package/dist/dialecte/composables/use-active-document.js +24 -0
  10. package/dist/dialecte/create-document-store.js +3 -3
  11. package/dist/dialecte/index.js +2 -1
  12. package/dist/dialog/dialog-host.js +5 -0
  13. package/dist/dialog/dialog-host.vue_vue_type_script_setup_true_lang.js +33 -0
  14. package/dist/dialog/dialog.js +5 -0
  15. package/dist/dialog/dialog.vue_vue_type_script_setup_true_lang.js +72 -0
  16. package/dist/dialog/index.js +4 -0
  17. package/dist/dialog/use-dialog-host.js +32 -0
  18. package/dist/external/.pnpm/@dialecte_core@0.4.6/node_modules/@dialecte/core/dist/helpers.js +142 -0
  19. package/dist/external/.pnpm/@dialecte_core@0.4.6/node_modules/@dialecte/core/dist/index.js +3 -0
  20. package/dist/external/.pnpm/{@dialecte_core@0.4.2/node_modules/@dialecte/core/dist/project-E32sEthh.js → @dialecte_core@0.4.6/node_modules/@dialecte/core/dist/project-wohrish5.js} +3352 -1170
  21. package/dist/external/.pnpm/{@dialecte_core@0.4.2/node_modules/@dialecte/core/dist/utils-DgKwrT2n.js → @dialecte_core@0.4.6/node_modules/@dialecte/core/dist/utils-C5_11hqg.js} +73 -3
  22. package/dist/external/.pnpm/@dialecte_scl@0.3.5/node_modules/@dialecte/scl/dist/hooks-abaf9148.js +25264 -0
  23. package/dist/external/.pnpm/@dialecte_scl@0.3.5/node_modules/@dialecte/scl/dist/v2019C1/index.js +3 -0
  24. package/dist/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 +11 -0
  25. package/dist/external/.pnpm/@lucide_vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/copy.js +16 -0
  26. package/dist/external/.pnpm/@lucide_vue@1.23.0_vue@3.5.39_typescript@5.8.3_/node_modules/@lucide/vue/dist/esm/icons/text-wrap.js +22 -0
  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/x.js +11 -0
  28. package/dist/external/.pnpm/@shikijs_core@3.23.0/node_modules/@shikijs/core/dist/index.js +1299 -0
  29. package/dist/external/.pnpm/@shikijs_engine-javascript@3.23.0/node_modules/@shikijs/engine-javascript/dist/engine-compile.js +34 -0
  30. package/dist/external/.pnpm/@shikijs_engine-javascript@3.23.0/node_modules/@shikijs/engine-javascript/dist/shared/engine-javascript.hzpS1_41.js +66 -0
  31. package/dist/external/.pnpm/@shikijs_langs@3.23.0/node_modules/@shikijs/langs/dist/java.js +3 -0
  32. package/dist/external/.pnpm/@shikijs_langs@3.23.0/node_modules/@shikijs/langs/dist/xml.js +5 -0
  33. package/dist/external/.pnpm/@shikijs_themes@3.23.0/node_modules/@shikijs/themes/dist/github-dark.js +4 -0
  34. package/dist/external/.pnpm/@shikijs_types@3.23.0/node_modules/@shikijs/types/dist/index.js +8 -0
  35. package/dist/external/.pnpm/@shikijs_vscode-textmate@10.0.2/node_modules/@shikijs/vscode-textmate/dist/index.js +1576 -0
  36. package/dist/external/.pnpm/@vueuse_core@14.3.0_vue@3.5.39_typescript@5.8.3_/node_modules/@vueuse/core/dist/index.js +126 -43
  37. package/dist/external/.pnpm/@vueuse_shared@14.3.0_vue@3.5.39_typescript@5.8.3_/node_modules/@vueuse/shared/dist/index.js +84 -55
  38. package/dist/external/.pnpm/ccount@2.0.1/node_modules/ccount/index.js +10 -0
  39. package/dist/external/.pnpm/character-entities-html4@2.1.0/node_modules/character-entities-html4/index.js +257 -0
  40. package/dist/external/.pnpm/character-entities-legacy@3.0.0/node_modules/character-entities-legacy/index.js +4 -0
  41. package/dist/external/.pnpm/comma-separated-tokens@2.0.3/node_modules/comma-separated-tokens/index.js +7 -0
  42. package/dist/external/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/handle/comment.js +11 -0
  43. package/dist/external/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/handle/doctype.js +6 -0
  44. package/dist/external/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/handle/element.js +49 -0
  45. package/dist/external/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/handle/index.js +28 -0
  46. package/dist/external/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/handle/raw.js +7 -0
  47. package/dist/external/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/handle/root.js +6 -0
  48. package/dist/external/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/handle/text.js +8 -0
  49. package/dist/external/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/index.js +48 -0
  50. package/dist/external/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/omission/closing.js +86 -0
  51. package/dist/external/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/omission/omission.js +10 -0
  52. package/dist/external/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/omission/opening.js +39 -0
  53. package/dist/external/.pnpm/hast-util-to-html@9.0.5/node_modules/hast-util-to-html/lib/omission/util/siblings.js +13 -0
  54. package/dist/external/.pnpm/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/lib/index.js +10 -0
  55. package/dist/external/.pnpm/html-void-elements@3.0.0/node_modules/html-void-elements/index.js +25 -0
  56. package/dist/external/.pnpm/oniguruma-parser@0.12.2/node_modules/oniguruma-parser/dist/parser/node-utils.js +23 -0
  57. package/dist/external/.pnpm/oniguruma-parser@0.12.2/node_modules/oniguruma-parser/dist/parser/parse.js +419 -0
  58. package/dist/external/.pnpm/oniguruma-parser@0.12.2/node_modules/oniguruma-parser/dist/tokenizer/tokenize.js +487 -0
  59. package/dist/external/.pnpm/oniguruma-parser@0.12.2/node_modules/oniguruma-parser/dist/traverser/traverse.js +84 -0
  60. package/dist/external/.pnpm/oniguruma-parser@0.12.2/node_modules/oniguruma-parser/dist/utils.js +30 -0
  61. package/dist/external/.pnpm/oniguruma-to-es@4.3.6/node_modules/oniguruma-to-es/dist/esm/index.js +970 -0
  62. package/dist/external/.pnpm/property-information@7.2.0/node_modules/property-information/index.js +25 -0
  63. package/dist/external/.pnpm/property-information@7.2.0/node_modules/property-information/lib/aria.js +61 -0
  64. package/dist/external/.pnpm/property-information@7.2.0/node_modules/property-information/lib/find.js +31 -0
  65. package/dist/external/.pnpm/property-information@7.2.0/node_modules/property-information/lib/html.js +326 -0
  66. package/dist/external/.pnpm/property-information@7.2.0/node_modules/property-information/lib/normalize.js +6 -0
  67. package/dist/external/.pnpm/property-information@7.2.0/node_modules/property-information/lib/svg.js +564 -0
  68. package/dist/external/.pnpm/property-information@7.2.0/node_modules/property-information/lib/util/case-insensitive-transform.js +7 -0
  69. package/dist/external/.pnpm/property-information@7.2.0/node_modules/property-information/lib/util/case-sensitive-transform.js +6 -0
  70. package/dist/external/.pnpm/property-information@7.2.0/node_modules/property-information/lib/util/create.js +14 -0
  71. package/dist/external/.pnpm/property-information@7.2.0/node_modules/property-information/lib/util/defined-info.js +18 -0
  72. package/dist/external/.pnpm/property-information@7.2.0/node_modules/property-information/lib/util/info.js +9 -0
  73. package/dist/external/.pnpm/property-information@7.2.0/node_modules/property-information/lib/util/merge.js +9 -0
  74. package/dist/external/.pnpm/property-information@7.2.0/node_modules/property-information/lib/util/schema.js +9 -0
  75. package/dist/external/.pnpm/property-information@7.2.0/node_modules/property-information/lib/util/types.js +16 -0
  76. package/dist/external/.pnpm/property-information@7.2.0/node_modules/property-information/lib/xlink.js +19 -0
  77. package/dist/external/.pnpm/property-information@7.2.0/node_modules/property-information/lib/xml.js +15 -0
  78. package/dist/external/.pnpm/property-information@7.2.0/node_modules/property-information/lib/xmlns.js +14 -0
  79. package/dist/external/.pnpm/regex-recursion@6.0.2/node_modules/regex-recursion/src/index.js +110 -0
  80. package/dist/external/.pnpm/regex-utilities@2.3.0/node_modules/regex-utilities/src/index.js +56 -0
  81. package/dist/external/.pnpm/regex@6.1.0/node_modules/regex/src/atomic.js +94 -0
  82. package/dist/external/.pnpm/regex@6.1.0/node_modules/regex/src/internals.js +2 -0
  83. package/dist/external/.pnpm/regex@6.1.0/node_modules/regex/src/utils-internals.js +10 -0
  84. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Dialog/DialogContent.js +72 -0
  85. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Dialog/DialogContentImpl.js +101 -0
  86. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Dialog/DialogContentModal.js +83 -0
  87. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Dialog/DialogContentNonModal.js +74 -0
  88. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Dialog/DialogOverlay.js +48 -0
  89. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Dialog/DialogOverlayImpl.js +47 -0
  90. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Dialog/DialogPortal.js +33 -0
  91. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Dialog/DialogRoot.js +61 -0
  92. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Dialog/DialogTitle.js +28 -0
  93. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Dialog/utils.js +17 -0
  94. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Menu/utils.js +16 -0
  95. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Splitter/SplitterGroup.js +384 -0
  96. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Splitter/SplitterPanel.js +136 -0
  97. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Splitter/SplitterResizeHandle.js +119 -0
  98. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Stepper/StepperIndicator.js +27 -0
  99. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Stepper/StepperItem.js +67 -0
  100. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Stepper/StepperRoot.js +136 -0
  101. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Stepper/StepperTitle.js +28 -0
  102. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/composables/useWindowSplitterBehavior.js +37 -0
  103. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/composables/useWindowSplitterPanelGroupBehavior.js +82 -0
  104. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/shared/arrays.js +7 -2
  105. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/shared/browser.js +4 -0
  106. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/utils/assert.js +6 -0
  107. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/utils/calculate.js +73 -0
  108. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/utils/callPanelCallbacks.js +19 -0
  109. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/utils/compare.js +11 -0
  110. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/utils/debounce.js +11 -0
  111. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/utils/dom.js +20 -0
  112. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/utils/events.js +33 -0
  113. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/utils/layout.js +103 -0
  114. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/utils/pivot.js +8 -0
  115. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/utils/rects.js +6 -0
  116. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/utils/registry.js +106 -0
  117. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/utils/resizePanel.js +15 -0
  118. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/utils/stackingOrder.js +57 -0
  119. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/utils/storage.js +50 -0
  120. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/utils/style.js +35 -0
  121. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/utils/units.js +57 -0
  122. package/dist/external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/utils/validation.js +39 -0
  123. package/dist/external/.pnpm/space-separated-tokens@2.0.2/node_modules/space-separated-tokens/index.js +6 -0
  124. package/dist/external/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/constant/dangerous.js +13 -0
  125. package/dist/external/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/core.js +23 -0
  126. package/dist/external/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/index.js +8 -0
  127. package/dist/external/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/format-smart.js +14 -0
  128. package/dist/external/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-decimal.js +8 -0
  129. package/dist/external/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-hexadecimal.js +8 -0
  130. package/dist/external/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-named.js +17 -0
  131. package/dist/external/.pnpm/zwitch@2.0.4/node_modules/zwitch/index.js +16 -0
  132. package/dist/index.d.ts +396 -21
  133. package/dist/index.js +24 -8
  134. package/dist/merge/build-view-model.js +168 -0
  135. package/dist/merge/decision-toggle.js +5 -0
  136. package/dist/merge/decision-toggle.vue_vue_type_script_setup_true_lang.js +40 -0
  137. package/dist/merge/element-detail.js +5 -0
  138. package/dist/merge/element-detail.vue_vue_type_script_setup_true_lang.js +53 -0
  139. package/dist/merge/index.js +6 -0
  140. package/dist/merge/merge-progress.js +5 -0
  141. package/dist/merge/merge-progress.vue_vue_type_script_setup_true_lang.js +31 -0
  142. package/dist/merge/merge-review.js +5 -0
  143. package/dist/merge/merge-review.vue_vue_type_script_setup_true_lang.js +305 -0
  144. package/dist/merge/merge-summary.js +5 -0
  145. package/dist/merge/merge-summary.vue_vue_type_script_setup_true_lang.js +76 -0
  146. package/dist/merge/merge-tree.js +5 -0
  147. package/dist/merge/merge-tree.vue_vue_type_script_setup_true_lang.js +86 -0
  148. package/dist/merge/merge.service.js +69 -0
  149. package/dist/merge/use-document-progress.js +27 -0
  150. package/dist/merge/use-merge-session.js +151 -0
  151. package/dist/ui.css +1 -1
  152. package/package.json +4 -2
  153. package/dist/external/.pnpm/@dialecte_core@0.4.2/node_modules/@dialecte/core/dist/helpers.js +0 -13
  154. package/dist/external/.pnpm/@dialecte_core@0.4.2/node_modules/@dialecte/core/dist/index.js +0 -3
@@ -0,0 +1,168 @@
1
+ import { extractTitle as e, getAttributes as t } from "./merge.service.js";
2
+ //#region lib/merge/build-view-model.ts
3
+ async function n(e) {
4
+ let { report: n, createdBySourceUuid: r, sourceQuery: i } = e, a = /* @__PURE__ */ new Map();
5
+ for (let e of n.groups) {
6
+ a.set(e.primary, {
7
+ role: "primary",
8
+ groupId: e.id
9
+ });
10
+ for (let t of e.companions) a.set(t, {
11
+ role: "companion",
12
+ groupId: e.id
13
+ });
14
+ }
15
+ let o = /* @__PURE__ */ new Map();
16
+ async function s(e) {
17
+ if (e.instanceRef) return e.instanceRef.id;
18
+ if (e.sourceRef) {
19
+ let n = await t(i, e.sourceRef);
20
+ return n.uuid ? r.get(n.uuid)?.id : void 0;
21
+ }
22
+ }
23
+ async function c(e) {
24
+ let t = await s(e);
25
+ if (t) {
26
+ let n = a.get(e);
27
+ o.set(t, {
28
+ change: e.change,
29
+ role: n?.role ?? "plain",
30
+ groupId: n?.groupId,
31
+ node: e
32
+ });
33
+ }
34
+ }
35
+ async function l(e) {
36
+ await c(e);
37
+ for (let t of e.children) await l(t);
38
+ }
39
+ for (let e of n.roots) await l(e);
40
+ for (let e of n.groups) for (let t of e.companions) await c(t);
41
+ return o;
42
+ }
43
+ async function r(t) {
44
+ let { tree: n, changeByStagedId: r, query: i } = t, a = {
45
+ items: [],
46
+ meta: {},
47
+ index: {},
48
+ expanded: []
49
+ };
50
+ async function o(t) {
51
+ let n = r.get(t.id), s = n?.change ?? "unchanged", c = {
52
+ tagName: t.tagName,
53
+ id: t.id
54
+ }, l = [];
55
+ for (let e of t.tree ?? []) l.push(await o(e));
56
+ let u = s !== "unchanged" || l.some((e) => e.changed);
57
+ return a.meta[t.id] = {
58
+ change: s,
59
+ role: n?.role ?? "plain",
60
+ groupId: n?.groupId
61
+ }, a.index[t.id] = {
62
+ previewRef: c,
63
+ change: s,
64
+ role: n?.role ?? "plain",
65
+ groupId: n?.groupId,
66
+ node: n?.node
67
+ }, u && a.expanded.push(t.id), {
68
+ node: {
69
+ tag: t.tagName,
70
+ id: t.id,
71
+ name: await e(i, c),
72
+ selectable: !0,
73
+ children: l.length ? l.map((e) => e.node) : void 0
74
+ },
75
+ changed: u
76
+ };
77
+ }
78
+ return a.items.push((await o(n)).node), a;
79
+ }
80
+ async function i(e, n, r) {
81
+ let i = new Map((n?.editableAttributes ?? []).map((e) => [e.attr, e])), a = [];
82
+ if (e.change === "added" && e.sourceRef) {
83
+ let n = await t(r.sourceQuery, e.sourceRef);
84
+ for (let [e, t] of Object.entries(n)) {
85
+ if (t == null) continue;
86
+ let n = i.get(e), r = n?.conflict ? n.suggestedValue ?? t : t;
87
+ a.push({
88
+ name: e,
89
+ status: "added",
90
+ after: r,
91
+ editable: n?.mode,
92
+ conflict: n?.conflict
93
+ });
94
+ }
95
+ } else if (e.change === "removed" && e.instanceRef) {
96
+ let n = await t(r.targetQuery, e.instanceRef);
97
+ for (let [e, t] of Object.entries(n)) t != null && a.push({
98
+ name: e,
99
+ status: "removed",
100
+ before: t
101
+ });
102
+ } else {
103
+ let n = e.instanceRef ?? e.sourceRef, o = e.instanceRef ? r.targetQuery : r.sourceQuery, s = n ? await t(o, n) : {}, c = /* @__PURE__ */ new Map();
104
+ for (let [e, t] of Object.entries(s)) t != null && c.set(e, {
105
+ name: e,
106
+ status: "unchanged",
107
+ after: t,
108
+ editable: i.get(e)?.mode
109
+ });
110
+ for (let t of e.attributeChanges ?? []) c.set(t.name, {
111
+ name: t.name,
112
+ status: "modified",
113
+ before: t.before,
114
+ after: t.after,
115
+ editable: i.get(t.name)?.mode
116
+ });
117
+ a.push(...c.values());
118
+ }
119
+ return {
120
+ tag: e.tagName,
121
+ title: await o(e, r),
122
+ change: e.change,
123
+ attributes: a
124
+ };
125
+ }
126
+ async function a(e, t, n, r) {
127
+ let i = {
128
+ added: [],
129
+ updated: [],
130
+ skipped: [],
131
+ renamed: []
132
+ };
133
+ for (let a of e.groups) {
134
+ let e = await o(a.primary, r), s = a.primary.tagName, c = a.companions.length;
135
+ if (t(a.id) === "skip") {
136
+ i.skipped.push({
137
+ title: e,
138
+ tag: s
139
+ });
140
+ continue;
141
+ }
142
+ for (let t of a.editableAttributes ?? []) t.conflict && t.suggestedValue && n(a.id, t.attr) == null && i.renamed.push({
143
+ title: e,
144
+ field: t.attr,
145
+ to: t.suggestedValue
146
+ });
147
+ let l = a.editableAttributes?.find((e) => e.attr === "name" && e.conflict), u = n(a.id, "name") ?? l?.suggestedValue ?? e;
148
+ if (a.primary.change === "added") i.added.push({
149
+ title: u,
150
+ tag: s,
151
+ detail: c ? `+${c} companion${c > 1 ? "s" : ""}` : void 0
152
+ });
153
+ else if (a.primary.change === "modified") {
154
+ let e = a.primary.attributeChanges?.length ?? 0;
155
+ i.updated.push({
156
+ title: u,
157
+ tag: s,
158
+ detail: e ? `${e} attribute change${e > 1 ? "s" : ""}` : void 0
159
+ });
160
+ }
161
+ }
162
+ return i;
163
+ }
164
+ async function o(t, n) {
165
+ return t.instanceRef ? e(n.targetQuery, t.instanceRef) : t.sourceRef ? e(n.sourceQuery, t.sourceRef) : t.tagName;
166
+ }
167
+ //#endregion
168
+ export { n as buildChangeIndex, i as buildDetail, r as buildStructuralTree, a as buildSummary };
@@ -0,0 +1,5 @@
1
+ import e from "./decision-toggle.vue_vue_type_script_setup_true_lang.js";
2
+ //#region lib/merge/decision-toggle.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,40 @@
1
+ import { computed as e, createElementBlock as t, createElementVNode as n, defineComponent as r, mergeModels as i, normalizeClass as a, openBlock as o, useModel as s } from "vue";
2
+ //#region lib/merge/decision-toggle.vue?vue&type=script&setup=true&lang.ts
3
+ var c = {
4
+ class: "join",
5
+ role: "group",
6
+ "aria-label": "Accept or skip this change"
7
+ }, l = ["disabled", "aria-pressed"], u = ["disabled", "aria-pressed"], d = /*@__PURE__*/ r({
8
+ __name: "decision-toggle",
9
+ props: /*@__PURE__*/ i({
10
+ size: {},
11
+ disabled: { type: Boolean }
12
+ }, {
13
+ modelValue: { required: !0 },
14
+ modelModifiers: {}
15
+ }),
16
+ emits: ["update:modelValue"],
17
+ setup(r) {
18
+ let i = s(r, "modelValue"), d = r, f = e(() => ({
19
+ xs: "btn-xs",
20
+ sm: "btn-sm",
21
+ md: "btn-md",
22
+ undefined: "btn-sm"
23
+ })[d.size ?? "undefined"]);
24
+ return (e, s) => (o(), t("div", c, [n("button", {
25
+ type: "button",
26
+ class: a(["btn join-item", [f.value, i.value === "accept" ? "btn-success" : "btn-ghost"]]),
27
+ disabled: r.disabled,
28
+ "aria-pressed": i.value === "accept",
29
+ onClick: s[0] ||= (e) => i.value = "accept"
30
+ }, " Accept ", 10, l), n("button", {
31
+ type: "button",
32
+ class: a(["btn join-item", [f.value, i.value === "skip" ? "btn-warning" : "btn-ghost"]]),
33
+ disabled: r.disabled,
34
+ "aria-pressed": i.value === "skip",
35
+ onClick: s[1] ||= (e) => i.value = "skip"
36
+ }, " Skip ", 10, u)]));
37
+ }
38
+ });
39
+ //#endregion
40
+ export { d as default };
@@ -0,0 +1,5 @@
1
+ import e from "./element-detail.vue_vue_type_script_setup_true_lang.js";
2
+ //#region lib/merge/element-detail.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,53 @@
1
+ import { Fragment as e, computed as t, createCommentVNode as n, createElementBlock as r, createElementVNode as i, defineComponent as a, normalizeClass as o, openBlock as s, renderList as c, toDisplayString as l } from "vue";
2
+ //#region lib/merge/element-detail.vue?vue&type=script&setup=true&lang.ts
3
+ var u = {
4
+ key: 0,
5
+ class: "flex h-full flex-col gap-3 overflow-auto p-3 text-sm"
6
+ }, d = { class: "flex items-center gap-2" }, f = { class: "font-medium" }, p = { class: "badge badge-sm opacity-70" }, m = {
7
+ key: 0,
8
+ class: "flex flex-col gap-2 font-mono text-xs"
9
+ }, h = { class: "whitespace-nowrap shrink-0 opacity-70" }, g = ["value", "onInput"], _ = {
10
+ key: 0,
11
+ class: "badge badge-warning badge-xs shrink-0",
12
+ title: "Auto-resolved to avoid a naming collision — edit to override"
13
+ }, v = { class: "badge badge-ghost badge-xs shrink-0" }, y = {
14
+ key: 1,
15
+ class: "text-xs opacity-60"
16
+ }, b = {
17
+ key: 1,
18
+ class: "grid h-full place-items-center p-4 text-sm opacity-60"
19
+ }, x = /*@__PURE__*/ a({
20
+ __name: "element-detail",
21
+ props: { detail: {} },
22
+ emits: ["edit"],
23
+ setup(a, { emit: x }) {
24
+ let S = a, C = x, w = t(() => ({
25
+ added: "badge-success",
26
+ removed: "badge-error",
27
+ modified: "badge-warning",
28
+ unchanged: "badge-ghost"
29
+ })[S.detail?.change ?? "unchanged"]), T = t(() => S.detail?.attributes.filter((e) => e.editable));
30
+ function E(e, t) {
31
+ C("edit", e.name, t.target.value);
32
+ }
33
+ return (t, x) => a.detail ? (s(), r("div", u, [i("header", d, [
34
+ i("span", f, l(a.detail.title), 1),
35
+ i("span", p, l(a.detail.tag), 1),
36
+ i("span", { class: o(["badge badge-sm", w.value]) }, l(a.detail.change), 3)
37
+ ]), T.value?.length ? (s(), r("div", m, [(s(!0), r(e, null, c(T.value, (e) => (s(), r("label", {
38
+ key: e.name,
39
+ class: "flex items-center gap-2"
40
+ }, [
41
+ i("span", h, l(e.name) + ":", 1),
42
+ i("input", {
43
+ class: o(["input input-xs input-bordered w-full font-mono", { "input-warning": e.conflict }]),
44
+ value: e.after ?? "",
45
+ onInput: (t) => E(e, t)
46
+ }, null, 42, g),
47
+ e.conflict ? (s(), r("span", _, " conflict ")) : n("", !0),
48
+ i("span", v, l(e.editable), 1)
49
+ ]))), 128))])) : (s(), r("div", y, "No editable fields. See the diff below."))])) : (s(), r("div", b, " Select an element to see its changes. "));
50
+ }
51
+ });
52
+ //#endregion
53
+ export { x as default };
@@ -0,0 +1,6 @@
1
+ import e from "./decision-toggle.js";
2
+ import t from "./element-detail.js";
3
+ import n from "./merge-tree.js";
4
+ import { useMergeSession as r } from "./use-merge-session.js";
5
+ import i from "./merge-review.js";
6
+ export { e as DecisionToggle, t as ElementDetail, i as MergeReview, n as MergeTree, r as useMergeSession };
@@ -0,0 +1,5 @@
1
+ import e from "./merge-progress.vue_vue_type_script_setup_true_lang.js";
2
+ //#region lib/merge/merge-progress.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,31 @@
1
+ import { Fragment as e, createCommentVNode as t, createElementBlock as n, createElementVNode as r, defineComponent as i, openBlock as a, renderList as o, toDisplayString as s } from "vue";
2
+ //#region lib/merge/merge-progress.vue?vue&type=script&setup=true&lang.ts
3
+ var c = { class: "grid h-full place-items-center p-6" }, l = { class: "flex w-full max-w-md flex-col items-center gap-3" }, u = { class: "text-sm font-medium" }, d = ["value", "max"], f = {
4
+ key: 1,
5
+ class: "w-full space-y-0.5 text-center text-xs opacity-60"
6
+ }, p = /*@__PURE__*/ i({
7
+ __name: "merge-progress",
8
+ props: {
9
+ label: {},
10
+ progress: {},
11
+ history: {}
12
+ },
13
+ setup(i) {
14
+ return (p, m) => (a(), n("div", c, [r("div", l, [
15
+ m[0] ||= r("span", { class: "loading loading-spinner loading-lg text-primary" }, null, -1),
16
+ r("p", u, s(i.progress?.message || i.label || "Working…"), 1),
17
+ i.progress && i.progress.total > 0 ? (a(), n("progress", {
18
+ key: 0,
19
+ class: "progress progress-primary w-full",
20
+ value: i.progress.current,
21
+ max: i.progress.total
22
+ }, null, 8, d)) : t("", !0),
23
+ i.history?.length ? (a(), n("ul", f, [(a(!0), n(e, null, o(i.history, (e, t) => (a(), n("li", {
24
+ key: t,
25
+ class: "truncate"
26
+ }, s(e.message || e.method), 1))), 128))])) : t("", !0)
27
+ ])]));
28
+ }
29
+ });
30
+ //#endregion
31
+ export { p as default };
@@ -0,0 +1,5 @@
1
+ import e from "./merge-review.vue_vue_type_script_setup_true_lang.js";
2
+ //#region lib/merge/merge-review.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,305 @@
1
+ import e from "../button/button.js";
2
+ import { SplitterGroup_default as t } from "../external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Splitter/SplitterGroup.js";
3
+ import { SplitterPanel_default as n } from "../external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Splitter/SplitterPanel.js";
4
+ import { SplitterResizeHandle_default as r } from "../external/.pnpm/reka-ui@2.10.1_vue@3.5.39_typescript@5.8.3_/node_modules/reka-ui/dist/Splitter/SplitterResizeHandle.js";
5
+ import { StepperRoot_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/StepperRoot.js";
6
+ import { StepperItem_default as te } 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
+ import { StepperIndicator_default as i } 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
+ import { StepperTitle_default as ne } 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 re 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 ie 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 ae from "../code/xml-diff.js";
12
+ import "../code/index.js";
13
+ import oe from "./element-detail.js";
14
+ import { buildDetail as se, buildSummary as a } from "./build-view-model.js";
15
+ import ce from "./merge-progress.js";
16
+ import le from "./merge-summary.js";
17
+ import ue from "./merge-tree.js";
18
+ import { useDocumentProgress as de } from "./use-document-progress.js";
19
+ import { useMergeSession as fe } from "./use-merge-session.js";
20
+ import { Fragment as o, computed as s, createBlock as c, createCommentVNode as l, createElementBlock as u, createElementVNode as d, createTextVNode as f, createVNode as p, defineComponent as m, normalizeClass as h, onMounted as pe, openBlock as g, ref as _, renderList as me, toDisplayString as v, unref as y, vShow as he, withCtx as b, withDirectives as x } from "vue";
21
+ //#region lib/merge/merge-review.vue?vue&type=script&setup=true&lang.ts
22
+ var S = { class: "flex h-full flex-col" }, C = { class: "flex flex-wrap items-center justify-between gap-x-8 gap-y-3 border-b border-base-300 px-4 py-2.5" }, w = {
23
+ key: 0,
24
+ class: "flex flex-col items-start gap-x-4 gap-y-1 text-xs md:flex-row md:items-center"
25
+ }, T = {
26
+ key: 0,
27
+ class: "flex items-baseline gap-1.5"
28
+ }, E = { class: "font-semibold" }, D = { class: "text-base-content/60" }, O = {
29
+ key: 0,
30
+ class: "uppercase"
31
+ }, k = { key: 1 }, A = {
32
+ key: 1,
33
+ class: "flex items-baseline gap-1.5"
34
+ }, j = { class: "font-semibold" }, M = { class: "text-base-content/60" }, N = {
35
+ key: 0,
36
+ class: "uppercase"
37
+ }, P = { key: 1 }, F = {
38
+ key: 0,
39
+ class: "border-b border-error/40 bg-error/10 p-2 text-xs whitespace-pre-wrap text-error"
40
+ }, I = { class: "min-h-0 flex-1" }, L = { class: "h-full" }, R = {
41
+ key: 2,
42
+ class: "grid h-full place-items-center p-6 text-center"
43
+ }, ge = { class: "flex flex-col items-center gap-1" }, _e = {
44
+ key: 0,
45
+ class: "text-xs opacity-70"
46
+ }, ve = { class: "flex items-center justify-end gap-2 border-t border-base-300 p-2" }, z = /*@__PURE__*/ m({
47
+ __name: "merge-review",
48
+ props: {
49
+ targetDocument: {},
50
+ sourceQuery: {},
51
+ verb: {},
52
+ scenario: {},
53
+ sourceRef: {},
54
+ anchor: {},
55
+ afterApply: { type: Function },
56
+ source: {},
57
+ target: {}
58
+ },
59
+ emits: ["applied", "close"],
60
+ setup(m, { emit: z }) {
61
+ let B = m, V = z, H = fe(B), { structuralTree: U, previewXml: ye, previewBeforeXml: be, previewLoading: xe } = H, { progress: Se, history: Ce, track: W } = de(() => B.targetDocument.state), G = _("review"), K = _(!1), q = _(), J = _(), Y = _(), X = _(), Z = _(), we = [
62
+ "Review",
63
+ "Confirm",
64
+ "Done"
65
+ ], Q = s(() => ({
66
+ review: 0,
67
+ confirm: 1,
68
+ done: 2
69
+ })[G.value]), Te = s(() => {
70
+ let e = {};
71
+ for (let t of H.report.value?.groups ?? []) e[t.id] = H.decisionOf(t.id);
72
+ return e;
73
+ });
74
+ pe(async () => {
75
+ q.value = "Analyzing template…", K.value = !0;
76
+ try {
77
+ await W(H.load());
78
+ } catch (e) {
79
+ J.value = e instanceof Error ? e.stack ?? e.message : String(e);
80
+ } finally {
81
+ K.value = !1;
82
+ }
83
+ });
84
+ function $() {
85
+ return {
86
+ sourceQuery: B.sourceQuery,
87
+ targetQuery: B.targetDocument.query
88
+ };
89
+ }
90
+ async function Ee(e) {
91
+ let t = U.value.index[e.id];
92
+ if (!t) return;
93
+ H.select(t), X.value = t.role === "primary" ? t.groupId : void 0;
94
+ let n = X.value ? H.report.value?.groups.find((e) => e.id === X.value) : void 0, r = t.node ? await se(t.node, n, $()) : void 0;
95
+ if (r) {
96
+ let e = await H.stagedAttributes(t.previewRef);
97
+ for (let t of r.attributes) t.editable && e[t.name] != null && (t.after = e[t.name]);
98
+ }
99
+ Y.value = r;
100
+ }
101
+ function De(e, t) {
102
+ H.setDecision(e, t);
103
+ }
104
+ function Oe(e, t) {
105
+ if (!X.value || !Y.value) return;
106
+ H.setValue(X.value, e, t);
107
+ let n = Y.value.attributes.find((t) => t.name === e);
108
+ n && (n.after = t);
109
+ }
110
+ async function ke() {
111
+ let e = H.report.value;
112
+ e && (Z.value = await a(e, H.decisionOf, H.editedValue, $()), G.value = "confirm");
113
+ }
114
+ async function Ae() {
115
+ q.value = "Applying changes…", K.value = !0;
116
+ try {
117
+ await W(H.commit()), G.value = "done";
118
+ } catch (e) {
119
+ J.value = e instanceof Error ? e.stack ?? e.message : String(e);
120
+ } finally {
121
+ K.value = !1;
122
+ }
123
+ }
124
+ return (se, a) => (g(), u("div", S, [
125
+ d("header", C, [p(y(ee), {
126
+ "model-value": Q.value + 1,
127
+ class: "flex items-center",
128
+ "aria-label": "Merge steps"
129
+ }, {
130
+ default: b(() => [(g(), u(o, null, me(we, (e, t) => (g(), u(o, { key: e }, [t > 0 ? (g(), u("div", {
131
+ key: 0,
132
+ class: h(["mx-3 h-px w-8 transition-colors", t <= Q.value ? "bg-primary" : "bg-base-300"])
133
+ }, null, 2)) : l("", !0), p(y(te), {
134
+ step: t + 1,
135
+ class: "flex items-center gap-2"
136
+ }, {
137
+ default: b(() => [p(y(i), { class: h(["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"]) }, {
138
+ default: b(() => [t < Q.value ? (g(), c(y(ie), {
139
+ key: 0,
140
+ class: "size-3.5"
141
+ })) : (g(), u(o, { key: 1 }, [f(v(t + 1), 1)], 64))]),
142
+ _: 2
143
+ }, 1032, ["class"]), p(y(ne), { class: h(["text-xs font-medium transition-colors", t === Q.value ? "text-base-content" : t < Q.value ? "text-base-content/70" : "text-base-content/40"]) }, {
144
+ default: b(() => [f(v(e), 1)]),
145
+ _: 2
146
+ }, 1032, ["class"])]),
147
+ _: 2
148
+ }, 1032, ["step"])], 64))), 64))]),
149
+ _: 1
150
+ }, 8, ["model-value"]), m.source || m.target ? (g(), u("div", w, [
151
+ m.source ? (g(), u("span", T, [
152
+ a[3] ||= d("span", { class: "text-[10px] font-medium uppercase tracking-wide text-base-content/45" }, " Source ", -1),
153
+ d("span", E, v(m.source.label), 1),
154
+ d("span", D, [
155
+ m.source.type ? (g(), u("span", O, v(m.source.type), 1)) : l("", !0),
156
+ m.source.type ? (g(), u("span", k, " · ")) : l("", !0),
157
+ f("v" + v(m.source.version || "0") + "." + v(m.source.revision || "0"), 1)
158
+ ])
159
+ ])) : l("", !0),
160
+ p(y(re), { class: "hidden size-4 shrink-0 text-base-content/40 md:block" }),
161
+ m.target ? (g(), u("span", A, [
162
+ a[4] ||= d("span", { class: "text-[10px] font-medium uppercase tracking-wide text-base-content/45" }, " Target ", -1),
163
+ d("span", j, v(m.target.label), 1),
164
+ d("span", M, [
165
+ m.target.type ? (g(), u("span", N, v(m.target.type), 1)) : l("", !0),
166
+ m.target.type ? (g(), u("span", P, " · ")) : l("", !0),
167
+ f("v" + v(m.target.version || "0") + "." + v(m.target.revision || "0"), 1)
168
+ ])
169
+ ])) : l("", !0)
170
+ ])) : l("", !0)]),
171
+ J.value ? (g(), u("div", F, v(J.value), 1)) : l("", !0),
172
+ d("div", I, [
173
+ K.value ? (g(), c(ce, {
174
+ key: 0,
175
+ label: q.value,
176
+ progress: y(Se),
177
+ history: y(Ce)
178
+ }, null, 8, [
179
+ "label",
180
+ "progress",
181
+ "history"
182
+ ])) : l("", !0),
183
+ x(d("div", L, [p(y(t), {
184
+ direction: "horizontal",
185
+ class: "h-full min-h-0"
186
+ }, {
187
+ default: b(() => [
188
+ p(y(n), {
189
+ "default-size": 42,
190
+ class: "h-full overflow-auto"
191
+ }, {
192
+ default: b(() => [p(ue, {
193
+ items: y(U).items,
194
+ meta: y(U).meta,
195
+ decisions: Te.value,
196
+ "expanded-items": y(U).expanded,
197
+ onSelect: Ee,
198
+ "onUpdate:decision": De
199
+ }, null, 8, [
200
+ "items",
201
+ "meta",
202
+ "decisions",
203
+ "expanded-items"
204
+ ])]),
205
+ _: 1
206
+ }),
207
+ p(y(r), { class: "w-px bg-base-300" }),
208
+ p(y(n), { class: "h-full border-s border-base-300" }, {
209
+ default: b(() => [p(y(t), {
210
+ direction: "vertical",
211
+ class: "h-full"
212
+ }, {
213
+ default: b(() => [
214
+ p(y(n), {
215
+ "default-size": 55,
216
+ class: "min-h-0 overflow-auto"
217
+ }, {
218
+ default: b(() => [p(oe, {
219
+ detail: Y.value,
220
+ onEdit: Oe
221
+ }, null, 8, ["detail"])]),
222
+ _: 1
223
+ }),
224
+ p(y(r), { class: "h-px bg-base-300" }),
225
+ p(y(n), { class: "min-h-0" }, {
226
+ default: b(() => [p(y(ae), {
227
+ before: y(be),
228
+ after: y(ye),
229
+ loading: y(xe)
230
+ }, null, 8, [
231
+ "before",
232
+ "after",
233
+ "loading"
234
+ ])]),
235
+ _: 1
236
+ })
237
+ ]),
238
+ _: 1
239
+ })]),
240
+ _: 1
241
+ })
242
+ ]),
243
+ _: 1
244
+ })], 512), [[he, !K.value && G.value === "review"]]),
245
+ !K.value && G.value === "confirm" && Z.value ? (g(), c(le, {
246
+ key: 1,
247
+ summary: Z.value,
248
+ scenario: m.scenario,
249
+ verb: m.verb
250
+ }, null, 8, [
251
+ "summary",
252
+ "scenario",
253
+ "verb"
254
+ ])) : l("", !0),
255
+ !K.value && G.value === "done" ? (g(), u("div", R, [d("div", ge, [
256
+ a[5] ||= d("span", { class: "text-3xl text-success" }, "✓", -1),
257
+ a[6] ||= d("p", { class: "font-medium" }, "Applied", -1),
258
+ Z.value ? (g(), u("p", _e, v(Z.value.added.length) + " added · " + v(Z.value.updated.length) + " updated · " + v(Z.value.skipped.length) + " skipped ", 1)) : l("", !0)
259
+ ])])) : l("", !0)
260
+ ]),
261
+ d("footer", ve, [G.value === "review" ? (g(), u(o, { key: 0 }, [p(e, {
262
+ variant: "ghost",
263
+ size: "sm",
264
+ onClick: a[0] ||= (e) => V("close")
265
+ }, {
266
+ default: b(() => [...a[7] ||= [f("Close", -1)]]),
267
+ _: 1
268
+ }), p(e, {
269
+ color: "primary",
270
+ size: "sm",
271
+ disabled: K.value || !!J.value,
272
+ onClick: ke
273
+ }, {
274
+ default: b(() => [...a[8] ||= [f(" Next: Confirm ", -1)]]),
275
+ _: 1
276
+ }, 8, ["disabled"])], 64)) : G.value === "confirm" ? (g(), u(o, { key: 1 }, [p(e, {
277
+ variant: "ghost",
278
+ size: "sm",
279
+ disabled: K.value,
280
+ onClick: a[1] ||= (e) => G.value = "review"
281
+ }, {
282
+ default: b(() => [...a[9] ||= [f("Back", -1)]]),
283
+ _: 1
284
+ }, 8, ["disabled"]), p(e, {
285
+ color: "primary",
286
+ size: "sm",
287
+ disabled: K.value,
288
+ onClick: Ae
289
+ }, {
290
+ default: b(() => [...a[10] ||= [f("Apply", -1)]]),
291
+ _: 1
292
+ }, 8, ["disabled"])], 64)) : (g(), c(e, {
293
+ key: 2,
294
+ color: "primary",
295
+ size: "sm",
296
+ onClick: a[2] ||= (e) => V("applied")
297
+ }, {
298
+ default: b(() => [...a[11] ||= [f("Close", -1)]]),
299
+ _: 1
300
+ }))])
301
+ ]));
302
+ }
303
+ });
304
+ //#endregion
305
+ export { z as default };
@@ -0,0 +1,5 @@
1
+ import e from "./merge-summary.vue_vue_type_script_setup_true_lang.js";
2
+ //#region lib/merge/merge-summary.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };