@septkit/ui 0.0.42 → 0.0.43

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.5/node_modules/@dialecte/core/dist/helpers.js +142 -0
  19. package/dist/external/.pnpm/@dialecte_core@0.4.5/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.5/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.5/node_modules/@dialecte/core/dist/utils-C5_11hqg.js} +73 -3
  22. package/dist/external/.pnpm/@dialecte_scl@0.3.3/node_modules/@dialecte/scl/dist/hooks-BTkrNj6r.js +25264 -0
  23. package/dist/external/.pnpm/@dialecte_scl@0.3.3/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 +402 -2
  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,13 @@
1
+ //#region node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/constant/dangerous.js
2
+ var e = [
3
+ "cent",
4
+ "copy",
5
+ "divide",
6
+ "gt",
7
+ "lt",
8
+ "not",
9
+ "para",
10
+ "times"
11
+ ];
12
+ //#endregion
13
+ export { e as dangerous };
@@ -0,0 +1,23 @@
1
+ //#region node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/core.js
2
+ var e = /["&'<>`]/g, t = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g, n = /[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g, r = /[|\\{}()[\]^$+*?.]/g, i = /* @__PURE__ */ new WeakMap();
3
+ function a(r, i) {
4
+ if (r = r.replace(i.subset ? o(i.subset) : e, s), i.subset || i.escapeOnly) return r;
5
+ return r.replace(t, a).replace(n, s);
6
+ function a(e, t, n) {
7
+ return i.format((e.charCodeAt(0) - 55296) * 1024 + e.charCodeAt(1) - 56320 + 65536, n.charCodeAt(t + 2), i);
8
+ }
9
+ function s(e, t, n) {
10
+ return i.format(e.charCodeAt(0), n.charCodeAt(t + 1), i);
11
+ }
12
+ }
13
+ function o(e) {
14
+ let t = i.get(e);
15
+ return t || (t = s(e), i.set(e, t)), t;
16
+ }
17
+ function s(e) {
18
+ let t = [], n = -1;
19
+ for (; ++n < e.length;) t.push(e[n].replace(r, "\\$&"));
20
+ return RegExp("(?:" + t.join("|") + ")", "g");
21
+ }
22
+ //#endregion
23
+ export { a as core };
@@ -0,0 +1,8 @@
1
+ import { core as e } from "./core.js";
2
+ import { formatSmart as t } from "./util/format-smart.js";
3
+ //#region node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/index.js
4
+ function n(n, r) {
5
+ return e(n, Object.assign({ format: t }, r));
6
+ }
7
+ //#endregion
8
+ export { n as stringifyEntities };
@@ -0,0 +1,14 @@
1
+ import { toHexadecimal as e } from "./to-hexadecimal.js";
2
+ import { toDecimal as t } from "./to-decimal.js";
3
+ import { toNamed as n } from "./to-named.js";
4
+ //#region node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/format-smart.js
5
+ function r(r, i, a) {
6
+ let o = e(r, i, a.omitOptionalSemicolons), s;
7
+ if ((a.useNamedReferences || a.useShortestReferences) && (s = n(r, i, a.omitOptionalSemicolons, a.attribute)), (a.useShortestReferences || !s) && a.useShortestReferences) {
8
+ let e = t(r, i, a.omitOptionalSemicolons);
9
+ e.length < o.length && (o = e);
10
+ }
11
+ return s && (!a.useShortestReferences || s.length < o.length) ? s : o;
12
+ }
13
+ //#endregion
14
+ export { r as formatSmart };
@@ -0,0 +1,8 @@
1
+ //#region node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-decimal.js
2
+ var e = /\d/;
3
+ function t(t, n, r) {
4
+ let i = "&#" + String(t);
5
+ return r && n && !e.test(String.fromCharCode(n)) ? i : i + ";";
6
+ }
7
+ //#endregion
8
+ export { t as toDecimal };
@@ -0,0 +1,8 @@
1
+ //#region node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-hexadecimal.js
2
+ var e = /[\dA-Fa-f]/;
3
+ function t(t, n, r) {
4
+ let i = "&#x" + t.toString(16).toUpperCase();
5
+ return r && n && !e.test(String.fromCharCode(n)) ? i : i + ";";
6
+ }
7
+ //#endregion
8
+ export { t as toHexadecimal };
@@ -0,0 +1,17 @@
1
+ import { characterEntitiesLegacy as e } from "../../../../../character-entities-legacy@3.0.0/node_modules/character-entities-legacy/index.js";
2
+ import { characterEntitiesHtml4 as t } from "../../../../../character-entities-html4@2.1.0/node_modules/character-entities-html4/index.js";
3
+ import { dangerous as n } from "../constant/dangerous.js";
4
+ //#region node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-named.js
5
+ var r = {}.hasOwnProperty, i = {}, a;
6
+ for (a in t) r.call(t, a) && (i[t[a]] = a);
7
+ var o = /[^\dA-Za-z]/;
8
+ function s(t, a, s, c) {
9
+ let l = String.fromCharCode(t);
10
+ if (r.call(i, l)) {
11
+ let t = i[l], r = "&" + t;
12
+ return s && e.includes(t) && !n.includes(t) && (!c || a && a !== 61 && o.test(String.fromCharCode(a))) ? r : r + ";";
13
+ }
14
+ return "";
15
+ }
16
+ //#endregion
17
+ export { s as toNamed };
@@ -0,0 +1,16 @@
1
+ //#region node_modules/.pnpm/zwitch@2.0.4/node_modules/zwitch/index.js
2
+ var e = {}.hasOwnProperty;
3
+ function t(t, n) {
4
+ let r = n || {};
5
+ function i(n, ...r) {
6
+ let a = i.invalid, o = i.handlers;
7
+ if (n && e.call(n, t)) {
8
+ let r = String(n[t]);
9
+ a = e.call(o, r) ? o[r] : i.unknown;
10
+ }
11
+ if (a) return a.call(this, n, ...r);
12
+ }
13
+ return i.handlers = r.handlers || {}, i.invalid = r.invalid, i.unknown = r.unknown, i;
14
+ }
15
+ //#endregion
16
+ export { t as zwitch };
package/dist/index.d.ts CHANGED
@@ -1,15 +1,26 @@
1
1
  import { AcceptableValue } from 'reka-ui';
2
+ import { ApplyResult } from '@dialecte/scl/v2019C1';
2
3
  import { BoundExtensionMap } from '@dialecte/core';
3
4
  import { Component } from 'vue';
4
5
  import { ComponentOptionsMixin } from 'vue';
5
6
  import { ComponentProvideOptions } from 'vue';
6
7
  import { ComputedRef } from 'vue';
7
8
  import { DefineComponent } from 'vue';
9
+ import { DiffNode } from '@dialecte/scl/v2019C1';
10
+ import { DiffReport } from '@dialecte/scl/v2019C1';
8
11
  import { ExtensionModule } from '@dialecte/core';
12
+ import { GroupDecision } from '@dialecte/scl/v2019C1';
13
+ import { InjectionKey } from 'vue';
14
+ import { LifecycleScenario } from '@dialecte/scl/v2019C1';
15
+ import { LifecycleTarget } from '@dialecte/scl/v2019C1';
16
+ import { LifecycleVerb } from '@dialecte/scl/v2019C1';
9
17
  import { MaybeRefOrGetter } from 'vue';
10
18
  import { ProjectChannelMessage } from '@dialecte/core';
11
19
  import { PublicProps } from 'vue';
20
+ import { Reactive } from 'vue';
12
21
  import { Ref } from 'vue';
22
+ import { Scl } from '@dialecte/scl/v2019C1';
23
+ import { ShallowRef } from 'vue';
13
24
 
14
25
  declare const __VLS_component: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLButtonElement>;
15
26
 
@@ -44,13 +55,22 @@ size: "xs" | "sm" | "md" | "lg" | "xl";
44
55
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
45
56
 
46
57
  declare const __VLS_component_4: DefineComponent<__VLS_Props_4, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
58
+ "update:open": (value: boolean) => any;
59
+ }, string, PublicProps, Readonly<__VLS_Props_4> & Readonly<{
60
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
61
+ }>, {
62
+ size: DialogSize;
63
+ closable: boolean;
64
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
65
+
66
+ declare const __VLS_component_5: DefineComponent<__VLS_Props_6, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
47
67
  select: (node: ExplorerNode) => any;
48
68
  contextmenu: (payload: {
49
69
  node: ExplorerNode;
50
70
  event: MouseEvent;
51
71
  }) => any;
52
72
  "update:expanded": (state: ExplorerExpandedState) => any;
53
- }, string, PublicProps, Readonly<__VLS_Props_4> & Readonly<{
73
+ }, string, PublicProps, Readonly<__VLS_Props_6> & Readonly<{
54
74
  onSelect?: ((node: ExplorerNode) => any) | undefined;
55
75
  onContextmenu?: ((payload: {
56
76
  node: ExplorerNode;
@@ -71,6 +91,25 @@ declare type __VLS_Props = {
71
91
  modifier?: 'wide' | 'block' | 'square' | 'circle';
72
92
  };
73
93
 
94
+ declare type __VLS_Props_10 = {
95
+ detail: ElementDetailVM | undefined;
96
+ };
97
+
98
+ declare type __VLS_Props_11 = MergeSessionParams & {
99
+ source?: FileMeta;
100
+ target?: FileMeta;
101
+ };
102
+
103
+ declare type __VLS_Props_12 = {
104
+ items: ExplorerNode[];
105
+ /** Per-node metadata keyed by node id (change, role, groupId, path). */
106
+ meta: Record<string, MergeNodeMeta>;
107
+ /** Current decision per group id. */
108
+ decisions: Record<string, DecisionAction>;
109
+ /** Node ids to expand by default (the path to every change). */
110
+ expandedItems?: string[];
111
+ };
112
+
74
113
  declare type __VLS_Props_2 = {
75
114
  /** Trigger color */
76
115
  color?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error';
@@ -101,15 +140,62 @@ declare type __VLS_Props_3 = {
101
140
  };
102
141
 
103
142
  declare type __VLS_Props_4 = {
143
+ /** Controlled open state (v-model:open). */
144
+ open: boolean;
145
+ title?: string;
146
+ size?: DialogSize;
147
+ closable?: boolean;
148
+ /**
149
+ * Render in place (no teleport) and position `absolute`, so the dialog is
150
+ * confined to its nearest positioned ancestor instead of the whole viewport.
151
+ * The container must be `relative` + `overflow-hidden`.
152
+ */
153
+ scoped?: boolean;
154
+ };
155
+
156
+ declare type __VLS_Props_5 = {
157
+ host?: DialogController;
158
+ };
159
+
160
+ declare type __VLS_Props_6 = {
104
161
  items: ExplorerNode[];
105
162
  expanded?: ExplorerExpandedState;
106
163
  ariaLabel?: string;
107
164
  };
108
165
 
166
+ declare type __VLS_Props_7 = {
167
+ /** Code to render. */
168
+ code?: string;
169
+ /** Shiki language id. Defaults to `xml`. */
170
+ lang?: string;
171
+ /** Optional per-line diff status, index-aligned with `code` lines. */
172
+ lineStatuses?: readonly LineStatus[];
173
+ loading?: boolean;
174
+ /** Start with word wrap enabled. */
175
+ wrap?: boolean;
176
+ };
177
+
178
+ declare type __VLS_Props_8 = {
179
+ /** Baseline XML. Omit (or empty) for a purely-added element. */
180
+ before?: string;
181
+ /** Resulting XML. */
182
+ after?: string;
183
+ loading?: boolean;
184
+ };
185
+
186
+ declare type __VLS_Props_9 = {
187
+ size?: 'xs' | 'sm' | 'md';
188
+ disabled?: boolean;
189
+ };
190
+
109
191
  declare type __VLS_PublicProps = {
110
192
  modelValue?: AcceptableValue;
111
193
  } & __VLS_Props_3;
112
194
 
195
+ declare type __VLS_PublicProps_2 = {
196
+ modelValue: DecisionAction;
197
+ } & __VLS_Props_9;
198
+
113
199
  declare function __VLS_template(): {
114
200
  attrs: Partial<{}>;
115
201
  slots: {
@@ -143,6 +229,17 @@ declare function __VLS_template_3(): {
143
229
  };
144
230
 
145
231
  declare function __VLS_template_4(): {
232
+ attrs: Partial<{}>;
233
+ slots: {
234
+ header?(_: {}): any;
235
+ default?(_: {}): any;
236
+ footer?(_: {}): any;
237
+ };
238
+ refs: {};
239
+ rootEl: any;
240
+ };
241
+
242
+ declare function __VLS_template_5(): {
146
243
  attrs: Partial<{}>;
147
244
  slots: Readonly<{
148
245
  'node-prefix'(props: {
@@ -177,6 +274,8 @@ declare type __VLS_TemplateResult_3 = ReturnType<typeof __VLS_template_3>;
177
274
 
178
275
  declare type __VLS_TemplateResult_4 = ReturnType<typeof __VLS_template_4>;
179
276
 
277
+ declare type __VLS_TemplateResult_5 = ReturnType<typeof __VLS_template_5>;
278
+
180
279
  declare type __VLS_WithTemplateSlots<T, S> = T & {
181
280
  new (): {
182
281
  $slots: S;
@@ -201,12 +300,69 @@ declare type __VLS_WithTemplateSlots_4<T, S> = T & {
201
300
  };
202
301
  };
203
302
 
303
+ declare type __VLS_WithTemplateSlots_5<T, S> = T & {
304
+ new (): {
305
+ $slots: S;
306
+ };
307
+ };
308
+
309
+ /** The component + props + options currently mounted in the host. */
310
+ export declare type ActiveDialog = {
311
+ component: Component;
312
+ props?: Record<string, unknown>;
313
+ options: DialogOptions;
314
+ };
315
+
316
+ /**
317
+ * Shell-agnostic observable used for the active document id — a current `value`
318
+ * plus `subscribe` (mirrors the shell's `Observable<T>`, whose value is
319
+ * `T | undefined`). Structural so the UI layer stays decoupled from
320
+ * `@septkit/shell-lib`.
321
+ */
322
+ export declare type ActiveDocumentObservable<GenericValue> = {
323
+ readonly value: GenericValue | undefined;
324
+ subscribe(listener: (value: GenericValue | undefined) => void): () => void;
325
+ };
326
+
327
+ /**
328
+ * Minimal project surface `useActiveDocument` needs: the cross-realm readiness
329
+ * probe and the document opener. Real core/scl `Project`s satisfy it as-is.
330
+ */
331
+ export declare type ActiveDocumentProject<GenericDocument> = {
332
+ getDocumentStatus: (documentId: string) => Promise<{
333
+ live: boolean;
334
+ ready: boolean;
335
+ }>;
336
+ openDocument: (documentId: string) => GenericDocument;
337
+ };
338
+
339
+ /**
340
+ * Consumer hook run INSIDE the merge transaction, right after `tx.lifecycle.apply`.
341
+ * Receives the `ApplyResult` (the instance roots the write produced) so a caller can
342
+ * layer domain-specific post-steps (e.g. naming, wiring) onto the same atomic tx for
343
+ * both preview and commit, keeping this service domain-agnostic.
344
+ */
345
+ export declare type AfterApply = (tx: MergeTx, ctx: AfterApplyContext) => Promise<void> | void;
346
+
347
+ /** Context handed to {@link AfterApply}: the target plus what `apply` produced. */
348
+ declare type AfterApplyContext = {
349
+ target: LifecycleTarget;
350
+ report: DiffReport;
351
+ decisions: Map<string, GroupDecision>;
352
+ result: ApplyResult;
353
+ };
354
+
204
355
  export declare const Button: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
205
356
 
206
357
  export declare const CATEGORY_ELEMENTS: Record<string, string[]>;
207
358
 
359
+ /** How an element or attribute changed between the template and the instance. */
360
+ export declare type ChangeStatus = 'added' | 'removed' | 'modified' | 'unchanged';
361
+
208
362
  declare function closeDropdown(): void;
209
363
 
364
+ export declare const CodeBlock: DefineComponent<__VLS_Props_7, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_7> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
365
+
210
366
  /**
211
367
  * Collects the ids of every node that has children, for binding to
212
368
  * Explorer's `expanded` v-model to expand the whole tree.
@@ -215,6 +371,9 @@ export declare function collectExpandableNodeIds(items: ExplorerNode[]): string[
215
371
 
216
372
  export declare const Combobox: __VLS_WithTemplateSlots_3<typeof __VLS_component_3, __VLS_TemplateResult_3["slots"]>;
217
373
 
374
+ /** Create a standalone dialog host (pure reactive state, no store). */
375
+ export declare function createDialogHost(): DialogController;
376
+
218
377
  /**
219
378
  * Build a per-extension reactive document store.
220
379
  *
@@ -243,6 +402,29 @@ export declare function createDocumentStore<GenericBaseDocument, GenericAugmente
243
402
  clear: () => void;
244
403
  };
245
404
 
405
+ /** A user's binary choice on a decision group. */
406
+ export declare type DecisionAction = 'accept' | 'skip';
407
+
408
+ export declare const DecisionToggle: DefineComponent<__VLS_PublicProps_2, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
409
+ "update:modelValue": (value: DecisionAction) => any;
410
+ }, string, PublicProps, Readonly<__VLS_PublicProps_2> & Readonly<{
411
+ "onUpdate:modelValue"?: ((value: DecisionAction) => any) | undefined;
412
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
413
+
414
+ /** One attribute row in the element-detail panel (write-oriented +/- view). */
415
+ export declare type DetailAttribute = {
416
+ name: string;
417
+ status: ChangeStatus;
418
+ /** The current/instance value — the `-` line, present when modified/removed. */
419
+ before?: string;
420
+ /** The final value that will be written — the `+` line, present when added/modified. */
421
+ after?: string;
422
+ /** When set, the attribute is user-editable and its value renders as an input. */
423
+ editable?: EditableMode;
424
+ /** The engine auto-resolved a placement collision on this field (value = the resolved one). */
425
+ conflict?: boolean;
426
+ };
427
+
246
428
  /**
247
429
  * Message shapes posted on a dialecte project's BroadcastChannel — the public
248
430
  * event contract of @dialecte/core. Alias of core's `ProjectChannelMessage`
@@ -250,8 +432,51 @@ export declare function createDocumentStore<GenericBaseDocument, GenericAugmente
250
432
  */
251
433
  export declare type DialecteChannelMessage = ProjectChannelMessage;
252
434
 
435
+ export declare const Dialog: __VLS_WithTemplateSlots_4<typeof __VLS_component_4, __VLS_TemplateResult_4["slots"]>;
436
+
437
+ export declare type DialogController = {
438
+ /** Whether the host dialog is open. */
439
+ readonly open: Ref<boolean>;
440
+ /** The active dialog payload, or `undefined` when closed/empty. */
441
+ readonly active: ShallowRef<ActiveDialog | undefined>;
442
+ /** Open `component` in the host dialog with (type-checked) `props` and `options`. */
443
+ openDialog: <C extends Component>(component: C, props?: PropsOf<C>, options?: DialogOptions) => void;
444
+ /** Close the host dialog. */
445
+ close: () => void;
446
+ };
447
+
448
+ export declare const DialogHost: DefineComponent<__VLS_Props_5, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_5> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
449
+
450
+ /** Injection key for the ambient dialog host. */
451
+ export declare const dialogHostKey: InjectionKey<DialogController>;
452
+
453
+ /** Presentation options for a hosted dialog (passed through the dialog host). */
454
+ export declare type DialogOptions = {
455
+ /** Size preset. `full` fills the viewport, `fit` shrinks to the content. Default `md`. */
456
+ size?: DialogSize;
457
+ /** Optional heading shown in the dialog chrome. */
458
+ title?: string;
459
+ /** Whether the user may dismiss it (close button, escape, click-outside). Default `true`. */
460
+ closable?: boolean;
461
+ /** Confine the dialog to the host's container (in place, `absolute`) instead of the viewport. */
462
+ scoped?: boolean;
463
+ };
464
+
465
+ /** The width/height presets a {@link Dialog} supports. */
466
+ export declare type DialogSize = 'sm' | 'md' | 'lg' | 'xl' | 'full' | 'fit';
467
+
468
+ /**
469
+ * Line-level unified diff (LCS). Unchanged lines are shared; a divergent region
470
+ * emits its removed lines (from `before`) then its added lines (from `after`),
471
+ * matching the familiar GitHub-style ordering.
472
+ */
473
+ export declare function diffLines(before: string, after: string): UnifiedDiff;
474
+
253
475
  export declare const Dropdown: __VLS_WithTemplateSlots_2<typeof __VLS_component_2, __VLS_TemplateResult_2["slots"]>;
254
476
 
477
+ /** How the UI may edit an attribute (schema-derived classifier). */
478
+ export declare type EditableMode = 'rename' | 'free';
479
+
255
480
  export declare const ELEMENT_TO_COLOR: Record<string, ElementColor>;
256
481
 
257
482
  export declare const ELEMENT_TO_ICON: Record<string, Component>;
@@ -261,6 +486,20 @@ export declare interface ElementColor {
261
486
  background: string;
262
487
  }
263
488
 
489
+ export declare const ElementDetail: DefineComponent<__VLS_Props_10, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
490
+ edit: (attr: string, value: string) => any;
491
+ }, string, PublicProps, Readonly<__VLS_Props_10> & Readonly<{
492
+ onEdit?: ((attr: string, value: string) => any) | undefined;
493
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
494
+
495
+ /** View-model for the selected element's detail panel. */
496
+ export declare type ElementDetailVM = {
497
+ tag: string;
498
+ title: string;
499
+ change: ChangeStatus;
500
+ attributes: DetailAttribute[];
501
+ };
502
+
264
503
  /**
265
504
  * Controlled expand state (v-model:expanded). `scoped` is the exact list of
266
505
  * expanded node ids; `all` expands every node with children and takes
@@ -298,6 +537,33 @@ export declare type ExtendedDocument<GenericDocument, GenericQuery, GenericTrans
298
537
  /** Map of named extension modules. */
299
538
  export declare type ExtensionsConfig = Record<string, ExtensionModule>;
300
539
 
540
+ /** Display metadata for a merged file (source or target), shown in the review header. */
541
+ export declare type FileMeta = {
542
+ /** Display name (filename, typically without extension). */
543
+ label: string;
544
+ /** File-type badge (`Header.fileType` or extension). */
545
+ type?: string;
546
+ /** SCL `Header` @version. */
547
+ version: string;
548
+ /** SCL `Header` @revision. */
549
+ revision: string;
550
+ };
551
+
552
+ /**
553
+ * Render code to syntax-highlighted HTML using Shiki's VSCode grammars/themes.
554
+ * The JavaScript RegExp engine is used (not the WASM/oniguruma engine) so the
555
+ * build stays self-contained with no separate WASM asset to ship.
556
+ *
557
+ * When `lineStatuses` is provided, each line node gets a `diff add` / `diff remove`
558
+ * class so a diff background can be painted on top of the highlighting.
559
+ */
560
+ export declare function highlightCode(code: string, options?: {
561
+ lang?: string;
562
+ lineStatuses?: readonly LineStatus[];
563
+ }): Promise<string>;
564
+
565
+ export declare type LineStatus = 'added' | 'removed' | 'unchanged';
566
+
301
567
  /**
302
568
  * Minimal slice of a `Document` consumed by `useLiveData`: the id it queries
303
569
  * and the project channel it listens on. Structural (not `Pick<Document, ...>`)
@@ -308,16 +574,123 @@ export declare type LiveDataDocument = {
308
574
  channelName: string;
309
575
  };
310
576
 
577
+ /**
578
+ * Per-node metadata the merge tree overlays on an `ExplorerNode` (keyed by node id).
579
+ * The tree itself is a plain `ExplorerNode[]`; this side map drives change colour, the
580
+ * decision control, and the spotlight/skip styling.
581
+ */
582
+ export declare type MergeNodeMeta = {
583
+ change: ChangeStatus;
584
+ /** `primary` rows carry the decision control; `companion` rows are read-only side effects. */
585
+ role: 'primary' | 'companion' | 'plain';
586
+ /** The decision group this node belongs to (primary + companions share it). */
587
+ groupId?: string;
588
+ /** For a satellite companion that lives elsewhere: its real document path (shown as subtitle). */
589
+ path?: string;
590
+ };
591
+
592
+ export declare const MergeReview: DefineComponent<__VLS_Props_11, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
593
+ close: () => any;
594
+ applied: () => any;
595
+ }, string, PublicProps, Readonly<__VLS_Props_11> & Readonly<{
596
+ onClose?: (() => any) | undefined;
597
+ onApplied?: (() => any) | undefined;
598
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
599
+
600
+ export declare type MergeSessionParams = {
601
+ targetDocument: Scl.Document;
602
+ sourceQuery: Scl.Query;
603
+ verb: LifecycleVerb;
604
+ /** Operation to perform: place a new instance, or reconcile the existing one. */
605
+ scenario: LifecycleScenario;
606
+ /** Source (template) element: a Function (fsd) or Application (asd). */
607
+ sourceRef: Scl.Ref<'Function'> | Scl.Ref<'Application'>;
608
+ /** Target parent the instance lives under / is placed into. */
609
+ anchor: Scl.Ref<Scl.ElementsOf>;
610
+ /** Optional consumer post-step run inside the merge tx (preview + commit). */
611
+ afterApply?: AfterApply;
612
+ };
613
+
614
+ export declare const MergeTree: DefineComponent<__VLS_Props_12, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
615
+ select: (node: ExplorerNode) => any;
616
+ "update:decision": (groupId: string, action: DecisionAction) => any;
617
+ }, string, PublicProps, Readonly<__VLS_Props_12> & Readonly<{
618
+ onSelect?: ((node: ExplorerNode) => any) | undefined;
619
+ "onUpdate:decision"?: ((groupId: string, action: DecisionAction) => any) | undefined;
620
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
621
+
622
+ /** The transaction handle passed to `prepare`/`transaction` callbacks. */
623
+ declare type MergeTx = Parameters<Parameters<Scl.Document['prepare']>[0]>[0];
624
+
625
+ /** The props a component accepts (declared props + Vue built-ins like `onXxx` listeners). */
626
+ declare type PropsOf<C extends Component> = C extends new (...args: never[]) => {
627
+ $props: infer P;
628
+ } ? P : Record<string, never>;
629
+
630
+ /** Create (or adopt) a dialog host and provide it to descendants. Call once at the root. */
631
+ export declare function provideDialogHost(host?: DialogController): DialogController;
632
+
311
633
  declare type QueryMapOf<GenericExtensions extends ExtensionsConfig> = {
312
634
  [ExtensionName in keyof GenericExtensions as GenericExtensions[ExtensionName]['query'] extends object ? ExtensionName : never]: NonNullable<GenericExtensions[ExtensionName]['query']>;
313
635
  };
314
636
 
315
- export declare const SclExplorer: __VLS_WithTemplateSlots_4<typeof __VLS_component_4, __VLS_TemplateResult_4["slots"]>;
637
+ export declare const SclExplorer: __VLS_WithTemplateSlots_5<typeof __VLS_component_5, __VLS_TemplateResult_5["slots"]>;
638
+
639
+ /** Per-node selection payload: what to preview and (if any) the change it carries. */
640
+ declare type StructuralNodeInfo = {
641
+ previewRef: Scl.Ref<Scl.ElementsOf>;
642
+ change: ChangeStatus;
643
+ role: 'primary' | 'companion' | 'plain';
644
+ groupId?: string;
645
+ node?: DiffNode;
646
+ };
647
+
648
+ declare type StructuralTree = {
649
+ items: ExplorerNode[];
650
+ /** Per node-id metadata (change, role, groupId) for the explorer decoration. */
651
+ meta: Record<string, MergeNodeMeta>;
652
+ /** Selection payload per node id. */
653
+ index: Record<string, StructuralNodeInfo>;
654
+ /** Ids on the path to any change — the explorer opens these by default. */
655
+ expanded: string[];
656
+ };
316
657
 
317
658
  declare type TransactionMapOf<GenericExtensions extends ExtensionsConfig> = {
318
659
  [ExtensionName in keyof GenericExtensions as GenericExtensions[ExtensionName]['transaction'] extends object ? ExtensionName : never]: NonNullable<GenericExtensions[ExtensionName]['transaction']>;
319
660
  };
320
661
 
662
+ export declare type UnifiedDiff = {
663
+ /** Every line (removed + added + unchanged), joined for a single highlight pass. */
664
+ code: string;
665
+ /** Per-line status, index-aligned with the lines of `code`. */
666
+ statuses: LineStatus[];
667
+ };
668
+
669
+ /**
670
+ * Reactively hydrate the shell's active document — race-safe across realms.
671
+ *
672
+ * The active-document id (shell `localStorage` `storage` event) and the
673
+ * project's document registry (BroadcastChannel) are not ordered across realms,
674
+ * so in an iframe extension the id can arrive before the document is registered
675
+ * / its records are readable. `project.getDocumentStatus(id)` reconciles this
676
+ * realm's store against persisted state first, so hydration never races ahead
677
+ * of the document. Results from a superseded switch are ignored.
678
+ *
679
+ * Cleanup runs automatically when used inside a component/effect scope; the
680
+ * returned `stop` lets scope-less callers (e.g. an extension bootstrap) tear it
681
+ * down manually.
682
+ */
683
+ export declare function useActiveDocument<GenericDocument>(params: {
684
+ project: ActiveDocumentProject<GenericDocument>;
685
+ activeDocumentId: ActiveDocumentObservable<string>;
686
+ hydrate: (doc: GenericDocument) => void;
687
+ clear: () => void;
688
+ }): {
689
+ isReady: Ref<boolean>;
690
+ activeDocumentId: Ref<string | undefined>;
691
+ stop: () => void;
692
+ };
693
+
321
694
  /**
322
695
  * Listen to a dialecte project's BroadcastChannel.
323
696
  *
@@ -337,6 +710,9 @@ export declare function useDialecteChannel(channelName: MaybeRefOrGetter<string
337
710
  isSupported: Ref<boolean>;
338
711
  };
339
712
 
713
+ /** Inject the ambient dialog host. Throws if no host was provided. */
714
+ export declare function useDialog(): DialogController;
715
+
340
716
  /**
341
717
  * Async data that refetches when its document changes.
342
718
  *
@@ -356,6 +732,28 @@ export declare function useLiveData<T>(params: {
356
732
  refresh: (delay?: number) => Promise<T | undefined>;
357
733
  };
358
734
 
735
+ /**
736
+ * Drives one merge-review session: runs `report`, holds the decision map + selection,
737
+ * builds an element-scoped merged-XML preview from a single preview-apply, and commits.
738
+ * The UI panels read the reactive refs and call the setters.
739
+ */
740
+ export declare function useMergeSession(params: MergeSessionParams): {
741
+ report: ShallowRef<DiffReport | undefined, DiffReport | undefined>;
742
+ decisions: Reactive<Map<string, GroupDecision>>;
743
+ structuralTree: ShallowRef<StructuralTree, StructuralTree>;
744
+ previewXml: ShallowRef<string | undefined, string | undefined>;
745
+ previewBeforeXml: ShallowRef<string | undefined, string | undefined>;
746
+ previewLoading: ShallowRef<boolean, boolean>;
747
+ load: () => Promise<void>;
748
+ setDecision: (groupId: string, action: "accept" | "skip") => void;
749
+ setValue: (groupId: string, attr: string, value: string) => void;
750
+ decisionOf: (groupId: string) => "accept" | "skip";
751
+ editedValue: (groupId: string, attr: string) => string | undefined;
752
+ select: (sel: StructuralNodeInfo | undefined) => void;
753
+ stagedAttributes: (ref: Scl.Ref<Scl.ElementsOf>) => Promise<Record<string, string | undefined>>;
754
+ commit: () => Promise<void>;
755
+ };
756
+
359
757
  /**
360
758
  * Async data that refetches when anything in the project changes:
361
759
  * commits on any document, imports, removals, new documents.
@@ -374,4 +772,6 @@ export declare function useProjectLiveData<T>(params: {
374
772
  refresh: (delay?: number) => Promise<T | undefined>;
375
773
  };
376
774
 
775
+ export declare const XmlDiff: DefineComponent<__VLS_Props_8, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_8> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
776
+
377
777
  export { }