@draftably/editor 0.0.0-stage → 0.1.0

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 (185) hide show
  1. package/README.md +26 -2
  2. package/dist/LICENSE +21 -0
  3. package/dist/assets/engine.worker-DmHew5f6.js +6813 -0
  4. package/dist/assets/import-d2.worker-CnXfFXoa.js +5395 -0
  5. package/dist/chunks/abnfDiagram-WEYOIA3C-llcpthp5.js +87 -0
  6. package/dist/chunks/arc-rJj0TtXf.js +83 -0
  7. package/dist/chunks/architectureDiagram-ZHVYKT53-CfiXg0Lk.js +4781 -0
  8. package/dist/chunks/blockDiagram-RJAE7QA3-CO-14jWz.js +1440 -0
  9. package/dist/chunks/browser-iNhbPsGc.js +40 -0
  10. package/dist/chunks/c4Diagram-XDPPPE54-DYKuxA4n.js +1524 -0
  11. package/dist/chunks/channel-qMvPU6eH.js +5 -0
  12. package/dist/chunks/chunk-2E7WHVMD-BEZwsFS3.js +670 -0
  13. package/dist/chunks/chunk-2Q5K7J3B-gqtzQ8ux.js +18 -0
  14. package/dist/chunks/chunk-4EMNKR2T-MC54CXVe.js +262 -0
  15. package/dist/chunks/chunk-55XCU76K-DkZUAaqC.js +68 -0
  16. package/dist/chunks/chunk-5VM5RSS4-CaKe4sjM.js +19 -0
  17. package/dist/chunks/chunk-JWPE2WC7-CnAFS2xF.js +8 -0
  18. package/dist/chunks/chunk-VQ5W62QI-CXRv7FiX.js +19 -0
  19. package/dist/chunks/chunk-XXDRQBXY-B-AMQgD2.js +8 -0
  20. package/dist/chunks/chunk-ZCHMQSOR-BALpdc3g.js +451 -0
  21. package/dist/chunks/classDiagram-v2-4MYWR3UA-wPjgJTg4.js +1570 -0
  22. package/dist/chunks/cose-bilkent-JH36ORCC-Bbh5ggBc.js +2608 -0
  23. package/dist/chunks/cynefin-EF2NZ3EQ-Bt6b88hY.js +22361 -0
  24. package/dist/chunks/cynefinDiagram-WF24UDRP-BHWZvxoF.js +299 -0
  25. package/dist/chunks/cytoscape.esm-CRsF_JA3.js +18791 -0
  26. package/dist/chunks/dagre-NK4GIZVX-Cz37yPrT.js +2157 -0
  27. package/dist/chunks/defaultLocale-BgPVtth8.js +171 -0
  28. package/dist/chunks/diagram-CBK3MWTC-Q2R6FJ0B.js +531 -0
  29. package/dist/chunks/diagram-I5XIIV2D-a2Kdu_wA.js +153 -0
  30. package/dist/chunks/diagram-ODIL2UCW-DTWXxcOn.js +346 -0
  31. package/dist/chunks/diagram-PFBEJUXE-DIAQQ5KX.js +480 -0
  32. package/dist/chunks/diagram-RJA3I4VV-BPD0GghS.js +219 -0
  33. package/dist/chunks/diagram-TYUNFSNR-BmdkONfG.js +2586 -0
  34. package/dist/chunks/dot-importer-B23jwEkx.js +1547 -0
  35. package/dist/chunks/ebnfDiagram-V4P3TTPT-C5IKvYlb.js +109 -0
  36. package/dist/chunks/elk-QONTBCTQ-CtdQFvh2.js +49229 -0
  37. package/dist/chunks/erDiagram-KYQIGQAA-5wguK9Dx.js +1064 -0
  38. package/dist/chunks/flowDiagram-IUGLLWBU-BijvFPku.js +1771 -0
  39. package/dist/chunks/ganttDiagram-R7GPNTJY-BaqGPz-O.js +2729 -0
  40. package/dist/chunks/gitGraphDiagram-PDYL7XHY-DZfMGyHE.js +815 -0
  41. package/dist/chunks/graph-CKJmgLki.js +1541 -0
  42. package/dist/chunks/import-core-C-I1wGfw.js +145 -0
  43. package/dist/chunks/infoDiagram-MVDRKAX5-C2vH_59e.js +24 -0
  44. package/dist/chunks/init-DjUOC4st.js +16 -0
  45. package/dist/chunks/ishikawaDiagram-HPEHV2GE-q149MFlV.js +624 -0
  46. package/dist/chunks/journeyDiagram-BOSHW7O7-D-2Z3VtR.js +834 -0
  47. package/dist/chunks/kanban-definition-FNSA4HC5-wvAjV5ub.js +724 -0
  48. package/dist/chunks/katex-BsrBVQKd.js +11314 -0
  49. package/dist/chunks/linear-4t7D_ros.js +259 -0
  50. package/dist/chunks/mermaid-facade-BoLWBerE.js +289 -0
  51. package/dist/chunks/mermaid-importer-Cgx1IhmR.js +478 -0
  52. package/dist/chunks/mermaid.core-DXv6D2Sm.js +19244 -0
  53. package/dist/chunks/mindmap-definition-6OY57UG3-r9wTKul_.js +837 -0
  54. package/dist/chunks/mount-C1Xk_GQz.js +22131 -0
  55. package/dist/chunks/ordinal-DfAQgscy.js +61 -0
  56. package/dist/chunks/pegDiagram-ECIUJNBX-CmKlFWiP.js +95 -0
  57. package/dist/chunks/pieDiagram-GNMPY74T-DNTw_qan.js +208 -0
  58. package/dist/chunks/quadrantDiagram-D57K4MC3-CT_tvVub.js +1029 -0
  59. package/dist/chunks/railroadDiagram-Y72NRBL7-C5TUvZBe.js +77 -0
  60. package/dist/chunks/requirementDiagram-EQYSW5RA-C_c65aCa.js +889 -0
  61. package/dist/chunks/sankeyDiagram-SY24JHO5-CKcbizM1.js +859 -0
  62. package/dist/chunks/sequenceDiagram-BLEHNHQU-GpVnHOjf.js +2972 -0
  63. package/dist/chunks/sizeCapture-INFHLROL-CToN3JSu.js +46 -0
  64. package/dist/chunks/stateDiagram-v2-A6IESKWZ-rJYd2FfM.js +1520 -0
  65. package/dist/chunks/swimlanes-B3ENRKFQ-C7w5pfxG.js +4991 -0
  66. package/dist/chunks/swimlanesDiagram-AYQRV4AK-BpGY_bvE.js +13 -0
  67. package/dist/chunks/timeline-definition-JXYKGLGB-ChKFPBKc.js +1058 -0
  68. package/dist/chunks/usecaseDiagram-WPOLBNNX-skXH8Dcu.js +7945 -0
  69. package/dist/chunks/vennDiagram-Q3Y3IDCW-C5KknmJf.js +1578 -0
  70. package/dist/chunks/wardleyDiagram-IVAIDKWA-DY4Lkfpu.js +678 -0
  71. package/dist/chunks/xychartDiagram-4URNHDU4-BHScsL7h.js +1536 -0
  72. package/dist/element.js +36 -0
  73. package/dist/index.js +4 -0
  74. package/dist/types/src/cli/links.d.ts +4 -0
  75. package/dist/types/src/cli/pdf.d.ts +29 -0
  76. package/dist/types/src/cli/png.d.ts +23 -0
  77. package/dist/types/src/cli/svg.d.ts +4 -0
  78. package/dist/types/src/components/Icon.d.ts +14 -0
  79. package/dist/types/src/components/LayoutPreviewBar.d.ts +2 -0
  80. package/dist/types/src/components/canvas/Canvas.d.ts +15 -0
  81. package/dist/types/src/components/canvas/Frame.d.ts +22 -0
  82. package/dist/types/src/components/canvas/InlineEditor.d.ts +2 -0
  83. package/dist/types/src/components/canvas/Notes.d.ts +5 -0
  84. package/dist/types/src/components/canvas/Overlay.d.ts +2 -0
  85. package/dist/types/src/components/canvas/StateBar.d.ts +5 -0
  86. package/dist/types/src/components/canvas/TextHits.d.ts +6 -0
  87. package/dist/types/src/components/canvas/ZoomControls.d.ts +1 -0
  88. package/dist/types/src/components/canvas/text-boxes.d.ts +24 -0
  89. package/dist/types/src/components/controls.d.ts +88 -0
  90. package/dist/types/src/components/scene/EdgeView.d.ts +22 -0
  91. package/dist/types/src/components/scene/GroupView.d.ts +22 -0
  92. package/dist/types/src/components/scene/Lifelines.d.ts +15 -0
  93. package/dist/types/src/components/scene/LinkMark.d.ts +11 -0
  94. package/dist/types/src/components/scene/NodeView.d.ts +18 -0
  95. package/dist/types/src/components/scene/parts.d.ts +50 -0
  96. package/dist/types/src/components/sculpt/BrushDock.d.ts +2 -0
  97. package/dist/types/src/components/sculpt/TimelineDeck.d.ts +2 -0
  98. package/dist/types/src/components/session-context.d.ts +486 -0
  99. package/dist/types/src/dsl/cells.d.ts +91 -0
  100. package/dist/types/src/dsl/channels.d.ts +53 -0
  101. package/dist/types/src/dsl/compile.d.ts +162 -0
  102. package/dist/types/src/dsl/frame.d.ts +38 -0
  103. package/dist/types/src/dsl/lanes.d.ts +23 -0
  104. package/dist/types/src/dsl/layout-edits.d.ts +58 -0
  105. package/dist/types/src/dsl/legend-notes.d.ts +3 -0
  106. package/dist/types/src/dsl/project.d.ts +39 -0
  107. package/dist/types/src/dsl/source-edits.d.ts +37 -0
  108. package/dist/types/src/dsl/syntax.d.ts +317 -0
  109. package/dist/types/src/dsl/translate.d.ts +69 -0
  110. package/dist/types/src/editor/Editor.d.ts +6 -0
  111. package/dist/types/src/editor/element.d.ts +15 -0
  112. package/dist/types/src/editor/mount.d.ts +23 -0
  113. package/dist/types/src/import/browser.d.ts +3 -0
  114. package/dist/types/src/import/detect.d.ts +31 -0
  115. package/dist/types/src/import/dot-importer.d.ts +3 -0
  116. package/dist/types/src/import/import-core.d.ts +105 -0
  117. package/dist/types/src/import/mermaid-facade.d.ts +120 -0
  118. package/dist/types/src/import/mermaid-importer.d.ts +4 -0
  119. package/dist/types/src/import/mermaid-sequence.d.ts +8 -0
  120. package/dist/types/src/import/scratch.d.ts +3 -0
  121. package/dist/types/src/lib/engine-tasks.d.ts +88 -0
  122. package/dist/types/src/lib/font-data.d.ts +9 -0
  123. package/dist/types/src/lib/saved-diagram.d.ts +4 -0
  124. package/dist/types/src/lib/scene-cache.d.ts +4 -0
  125. package/dist/types/src/lib/source-hash.d.ts +7 -0
  126. package/dist/types/src/lib/svg-export.d.ts +15 -0
  127. package/dist/types/src/model/appearance.d.ts +209 -0
  128. package/dist/types/src/model/bounds.d.ts +19 -0
  129. package/dist/types/src/model/camera.d.ts +21 -0
  130. package/dist/types/src/model/candidates.d.ts +53 -0
  131. package/dist/types/src/model/colors.d.ts +22 -0
  132. package/dist/types/src/model/document.d.ts +24 -0
  133. package/dist/types/src/model/edits.d.ts +133 -0
  134. package/dist/types/src/model/embed.d.ts +17 -0
  135. package/dist/types/src/model/examples.d.ts +15 -0
  136. package/dist/types/src/model/font-faces.d.ts +24 -0
  137. package/dist/types/src/model/fonts.d.ts +47 -0
  138. package/dist/types/src/model/footnote.d.ts +34 -0
  139. package/dist/types/src/model/frame.d.ts +71 -0
  140. package/dist/types/src/model/geometry.d.ts +29 -0
  141. package/dist/types/src/model/graph.d.ts +53 -0
  142. package/dist/types/src/model/heading.d.ts +38 -0
  143. package/dist/types/src/model/icons.d.ts +2 -0
  144. package/dist/types/src/model/label-hits.d.ts +27 -0
  145. package/dist/types/src/model/labels.d.ts +88 -0
  146. package/dist/types/src/model/legend.d.ts +25 -0
  147. package/dist/types/src/model/link.d.ts +63 -0
  148. package/dist/types/src/model/markers.d.ts +47 -0
  149. package/dist/types/src/model/note.d.ts +75 -0
  150. package/dist/types/src/model/panels.d.ts +11 -0
  151. package/dist/types/src/model/rich-text.d.ts +24 -0
  152. package/dist/types/src/model/routes.d.ts +170 -0
  153. package/dist/types/src/model/samples.d.ts +11 -0
  154. package/dist/types/src/model/stack.d.ts +8 -0
  155. package/dist/types/src/model/static-scene.d.ts +15 -0
  156. package/dist/types/src/model/status.d.ts +84 -0
  157. package/dist/types/src/model/styles.d.ts +13 -0
  158. package/dist/types/src/model/surface.d.ts +31 -0
  159. package/dist/types/src/model/types.d.ts +277 -0
  160. package/dist/types/src/runtime/svg-renderer.d.ts +38 -0
  161. package/dist/types/src/server/file-session.d.ts +19 -0
  162. package/dist/types/src/server/workspace.d.ts +21 -0
  163. package/dist/types/src/state/active-session.d.ts +479 -0
  164. package/dist/types/src/state/commands.d.ts +529 -0
  165. package/dist/types/src/state/comparison.d.ts +151 -0
  166. package/dist/types/src/state/files.d.ts +61 -0
  167. package/dist/types/src/state/keyboard.d.ts +6 -0
  168. package/dist/types/src/state/keys.d.ts +5 -0
  169. package/dist/types/src/state/launch.d.ts +61 -0
  170. package/dist/types/src/state/links.d.ts +11 -0
  171. package/dist/types/src/state/session/actions.d.ts +77 -0
  172. package/dist/types/src/state/session/canvas-text.d.ts +24 -0
  173. package/dist/types/src/state/session/document.d.ts +84 -0
  174. package/dist/types/src/state/session/editor.d.ts +81 -0
  175. package/dist/types/src/state/session/emphasis.d.ts +11 -0
  176. package/dist/types/src/state/session/file-session.d.ts +98 -0
  177. package/dist/types/src/state/session/index.d.ts +496 -0
  178. package/dist/types/src/state/session/layout.d.ts +79 -0
  179. package/dist/types/src/state/session/pointer.d.ts +19 -0
  180. package/dist/types/src/state/session/routing.d.ts +20 -0
  181. package/dist/types/src/state/session/scene.d.ts +144 -0
  182. package/dist/types/src/state/session/sculpt.d.ts +70 -0
  183. package/dist/types/src/state/toast.d.ts +14 -0
  184. package/dist/types/src/state/ui.d.ts +39 -0
  185. package/package.json +41 -3
@@ -0,0 +1,299 @@
1
+ import { p as xt } from "./chunk-JWPE2WC7-CnAFS2xF.js";
2
+ import { s as gt, g as $t, t as bt, q as wt, a as Ct, b as vt, _ as s, l as Y, Q as Dt, d as kt, A as At, N as Q, L as U, O as Tt, R as ot } from "./mermaid.core-DXv6D2Sm.js";
3
+ import { p as Bt } from "./cynefin-EF2NZ3EQ-Bt6b88hY.js";
4
+ var rt = /* @__PURE__ */ s(() => ({
5
+ domains: /* @__PURE__ */ new Map(),
6
+ transitions: []
7
+ }), "createDefaultData"), H = rt(), St = /* @__PURE__ */ s(() => H.domains, "getDomains"), Mt = /* @__PURE__ */ s(() => H.transitions, "getTransitions"), Lt = /* @__PURE__ */ s((t) => {
8
+ if (t)
9
+ for (const e of t) {
10
+ const n = e.domain, a = (e.items ?? []).map((c) => ({
11
+ label: c.label
12
+ }));
13
+ H.domains.set(n, {
14
+ name: n,
15
+ items: a
16
+ });
17
+ }
18
+ }, "setDomains"), zt = /* @__PURE__ */ s((t) => {
19
+ t && (H.transitions = t.filter((e) => e.from === e.to ? (Y.warn(
20
+ `Cynefin: self-loop transition on domain "${e.from}" is not meaningful and will be skipped.`
21
+ ), !1) : !0).map((e) => ({
22
+ from: e.from,
23
+ to: e.to,
24
+ label: e.label || void 0
25
+ })));
26
+ }, "setTransitions"), Nt = /* @__PURE__ */ s(() => Q({
27
+ ...Tt.cynefin,
28
+ ...U().cynefin
29
+ }), "getConfig"), Pt = /* @__PURE__ */ s(() => {
30
+ At(), H = rt();
31
+ }, "clear"), O = {
32
+ getDomains: St,
33
+ getTransitions: Mt,
34
+ setDomains: Lt,
35
+ setTransitions: zt,
36
+ getConfig: Nt,
37
+ clear: Pt,
38
+ setAccTitle: vt,
39
+ getAccTitle: Ct,
40
+ setDiagramTitle: wt,
41
+ getDiagramTitle: bt,
42
+ getAccDescription: $t,
43
+ setAccDescription: gt
44
+ }, It = /* @__PURE__ */ s((t) => {
45
+ xt(t, O), O.setDomains(t.domains), O.setTransitions(t.transitions);
46
+ }, "populate"), Rt = {
47
+ parse: /* @__PURE__ */ s(async (t) => {
48
+ const e = await Bt("cynefin", t);
49
+ Y.debug(e), It(e);
50
+ }, "parse")
51
+ };
52
+ function E(t) {
53
+ let e = t + 1831565813 | 0;
54
+ return e = Math.imul(e ^ e >>> 15, e | 1), e ^= e + Math.imul(e ^ e >>> 7, e | 61), ((e ^ e >>> 14) >>> 0) / 4294967296;
55
+ }
56
+ s(E, "seededRandom");
57
+ function st(t) {
58
+ let e = 0;
59
+ for (let n = 0; n < t.length; n++) {
60
+ const a = t.charCodeAt(n);
61
+ e = (e << 5) - e + a, e |= 0;
62
+ }
63
+ return e;
64
+ }
65
+ s(st, "hashString");
66
+ function it(t, e) {
67
+ return typeof t == "number" && Number.isFinite(t) && t !== 0 ? t : st(e);
68
+ }
69
+ s(it, "resolveSeed");
70
+ function ct(t, e, n, a) {
71
+ const c = t / 2, m = a ?? t * 0.015, v = 7, R = e / v, d = [];
72
+ for (let o = 0; o <= v; o++) {
73
+ const p = E(n + o * 17) * m * 2 - m;
74
+ d.push({ x: c + p, y: o * R });
75
+ }
76
+ let D = `M${d[0].x},${d[0].y}`;
77
+ for (let o = 0; o < d.length - 1; o++) {
78
+ const p = d[o], i = d[o + 1], f = (p.y + i.y) / 2, b = o % 2 === 0 ? 1 : -1, h = m * 1.5 * b * E(n + o * 31 + 7), W = p.x + h, _ = f, F = i.x - h;
79
+ D += ` C${W},${_} ${F},${f} ${i.x},${i.y}`;
80
+ }
81
+ return D;
82
+ }
83
+ s(ct, "generateFoldPath");
84
+ function lt(t, e, n, a) {
85
+ const c = e / 2, m = a ?? e * 0.015, v = 7, R = t / v, d = [];
86
+ for (let o = 0; o <= v; o++) {
87
+ const p = E(n + o * 23) * m * 2 - m;
88
+ d.push({ x: o * R, y: c + p });
89
+ }
90
+ let D = `M${d[0].x},${d[0].y}`;
91
+ for (let o = 0; o < d.length - 1; o++) {
92
+ const p = d[o], i = d[o + 1], f = (p.x + i.x) / 2, b = o % 2 === 0 ? 1 : -1, h = m * 1.5 * b * E(n + o * 37 + 11), W = f, _ = p.y + h, F = f, L = i.y - h;
93
+ D += ` C${W},${_} ${F},${L} ${i.x},${i.y}`;
94
+ }
95
+ return D;
96
+ }
97
+ s(lt, "generateHorizontalBoundary");
98
+ function dt(t, e) {
99
+ const n = t / 2, a = e * 0.5, c = e, m = t * 0.03;
100
+ return [
101
+ `M${n},${a}`,
102
+ `C${n + m},${a + (c - a) * 0.2}`,
103
+ `${n - m * 1.5},${a + (c - a) * 0.55}`,
104
+ `${n + m * 0.5},${a + (c - a) * 0.75}`,
105
+ `C${n - m},${a + (c - a) * 0.85}`,
106
+ `${n + m * 0.3},${a + (c - a) * 0.95}`,
107
+ `${n},${c}`
108
+ ].join(" ");
109
+ }
110
+ s(dt, "generateCliffPath");
111
+ function ft(t, e, n, a) {
112
+ return [
113
+ `M${t - n},${e}`,
114
+ `A${n},${a} 0 1,1 ${t + n},${e}`,
115
+ `A${n},${a} 0 1,1 ${t - n},${e}`,
116
+ "Z"
117
+ ].join(" ");
118
+ }
119
+ s(ft, "generateConfusionPath");
120
+ var at = {
121
+ complex: { model: "Probe → Sense → Respond", practice: "Emergent Practices" },
122
+ complicated: { model: "Sense → Analyse → Respond", practice: "Good Practices" },
123
+ clear: { model: "Sense → Categorise → Respond", practice: "Best Practices" },
124
+ chaotic: { model: "Act → Sense → Respond", practice: "Novel Practices" },
125
+ confusion: { model: "", practice: "Disorder" }
126
+ }, Wt = /* @__PURE__ */ s((t, e) => {
127
+ const n = t / 2, a = e / 2;
128
+ return {
129
+ complex: { cx: n / 2, cy: a / 2, x: 0, y: 0, w: n, h: a },
130
+ complicated: { cx: n + n / 2, cy: a / 2, x: n, y: 0, w: n, h: a },
131
+ chaotic: { cx: n / 2, cy: a + a / 2, x: 0, y: a, w: n, h: a },
132
+ clear: { cx: n + n / 2, cy: a + a / 2, x: n, y: a, w: n, h: a },
133
+ confusion: { cx: n, cy: a, x: n * 0.7, y: a * 0.7, w: n * 0.6, h: a * 0.6 }
134
+ };
135
+ }, "getDomainLayouts"), _t = /* @__PURE__ */ s(() => {
136
+ const t = ot(), e = U();
137
+ return Q(t, e.themeVariables).cynefin;
138
+ }, "getCynefinDomainColors"), q = 3, Ft = /* @__PURE__ */ s((t, e, n, a) => {
139
+ const c = a.db, m = c.getDomains(), v = c.getTransitions(), R = c.getDiagramTitle(), d = c.getAccTitle(), D = c.getAccDescription(), o = c.getConfig(), p = _t();
140
+ Y.debug("Rendering Cynefin diagram");
141
+ const i = o.width, f = o.height, b = o.padding, h = o.showDomainDescriptions, W = o.boundaryAmplitude, _ = i + b * 2, F = f + b * 2, L = {
142
+ complex: p.complexBg,
143
+ complicated: p.complicatedBg,
144
+ clear: p.clearBg,
145
+ chaotic: p.chaoticBg,
146
+ confusion: p.confusionBg
147
+ }, k = Dt(e);
148
+ kt(k, F, _, o.useMaxWidth ?? !0), k.attr("viewBox", `0 0 ${_} ${F}`), d && k.append("title").text(d), D && k.append("desc").text(D);
149
+ const A = k.append("g").attr("transform", `translate(${b}, ${b})`), V = Wt(i, f), Z = it(o.seed, e), mt = A.append("g").attr("class", "cynefin-backgrounds"), X = ["complex", "complicated", "chaotic", "clear"];
150
+ for (const l of X) {
151
+ const r = V[l];
152
+ mt.append("rect").attr("class", "cynefinDomain").attr("x", r.x).attr("y", r.y).attr("width", r.w).attr("height", r.h).attr("fill", L[l]).attr("fill-opacity", 0.4).attr("stroke", "none");
153
+ }
154
+ const j = A.append("g").attr("class", "cynefin-boundaries");
155
+ j.append("path").attr("class", "cynefinBoundary").attr("d", ct(i, f, Z, W)).attr("fill", "none"), j.append("path").attr("class", "cynefinBoundary").attr("d", lt(i, f, Z + 100, W)).attr("fill", "none"), j.append("path").attr("class", "cynefinCliff").attr("d", dt(i, f)).attr("fill", "none");
156
+ const pt = i * 0.15, yt = f * 0.15;
157
+ A.append("path").attr("class", "cynefinConfusion").attr("d", ft(i / 2, f / 2, pt, yt)).attr("fill", L.confusion).attr("fill-opacity", 0.5);
158
+ const J = A.append("g").attr("class", "cynefin-labels");
159
+ for (const l of X) {
160
+ const r = V[l];
161
+ J.append("text").attr("class", "cynefinDomainLabel").attr("x", r.cx).attr("y", h ? r.cy - 30 : r.cy).attr("text-anchor", "middle").attr("dominant-baseline", "middle").text(l.charAt(0).toUpperCase() + l.slice(1));
162
+ }
163
+ if (J.append("text").attr("class", "cynefinDomainLabel").attr("x", i / 2).attr("y", h ? f / 2 - 10 : f / 2).attr("text-anchor", "middle").attr("dominant-baseline", "middle").text("Confusion"), h) {
164
+ const l = A.append("g").attr("class", "cynefin-subtitles");
165
+ for (const r of X) {
166
+ const u = V[r], y = at[r];
167
+ l.append("text").attr("class", "cynefinSubtitle").attr("x", u.cx).attr("y", u.cy - 10).attr("text-anchor", "middle").attr("dominant-baseline", "middle").text(y.model), l.append("text").attr("class", "cynefinSubtitle").attr("x", u.cx).attr("y", u.cy + 5).attr("text-anchor", "middle").attr("dominant-baseline", "middle").text(y.practice);
168
+ }
169
+ l.append("text").attr("class", "cynefinSubtitle").attr("x", i / 2).attr("y", f / 2 + 8).attr("text-anchor", "middle").attr("dominant-baseline", "middle").text(at.confusion.practice);
170
+ }
171
+ const K = A.append("g").attr("class", "cynefin-items"), T = 26, tt = 10, ut = ["complex", "complicated", "chaotic", "clear", "confusion"];
172
+ for (const l of ut) {
173
+ const r = m.get(l);
174
+ if (!r || r.items.length === 0)
175
+ continue;
176
+ const u = V[l], y = l === "confusion";
177
+ let z = r.items, N = 0;
178
+ y && r.items.length > q && (N = r.items.length - q, z = r.items.slice(0, q));
179
+ let B;
180
+ if (y) {
181
+ const g = h ? 22 : 14;
182
+ B = u.cy + g;
183
+ } else
184
+ B = u.cy + (h ? 25 : 15);
185
+ if ([...z].forEach((g, S) => {
186
+ const w = B + S * (T + 4), M = K.append("g"), P = M.append("text").attr("class", "cynefinItemText").attr("x", 0).attr("y", T / 2).attr("text-anchor", "middle").attr("dominant-baseline", "central").text(g.label);
187
+ let $ = g.label.length * 7;
188
+ const x = P.node();
189
+ if (x && typeof x.getBBox == "function") {
190
+ const G = x.getBBox();
191
+ G.width > 0 && ($ = G.width);
192
+ }
193
+ const C = $ + tt * 2, I = u.cx - C / 2;
194
+ M.attr("transform", `translate(${I}, ${w})`), M.insert("rect", "text").attr("class", "cynefinItem").attr("x", 0).attr("y", 0).attr("width", C).attr("height", T).attr("rx", 4).attr("ry", 4).attr("fill", L[l]).attr("fill-opacity", 0.95), P.attr("x", C / 2).attr("y", T / 2);
195
+ }), N > 0) {
196
+ const g = B + z.length * (T + 4), S = `+${N} more`, w = K.append("g"), M = w.append("text").attr("class", "cynefinItemText").attr("x", 0).attr("y", T / 2).attr("text-anchor", "middle").attr("dominant-baseline", "central").text(S);
197
+ let P = S.length * 7;
198
+ const $ = M.node();
199
+ if ($ && typeof $.getBBox == "function") {
200
+ const I = $.getBBox();
201
+ I.width > 0 && (P = I.width);
202
+ }
203
+ const x = P + tt * 2, C = u.cx - x / 2;
204
+ w.attr("transform", `translate(${C}, ${g})`), w.insert("rect", "text").attr("class", "cynefinItemOverflow").attr("x", 0).attr("y", 0).attr("width", x).attr("height", T).attr("rx", 4).attr("ry", 4).attr("fill", L[l]).attr("fill-opacity", 0.6), M.attr("x", x / 2).attr("y", T / 2);
205
+ }
206
+ }
207
+ if (v.length > 0) {
208
+ const l = k.select("defs").empty() ? k.append("defs") : k.select("defs"), r = `cynefin-arrow-${e}`;
209
+ l.append("marker").attr("id", r).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerWidth", 6).attr("markerHeight", 6).attr("orient", "auto-start-reverse").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "cynefinArrowHead");
210
+ const u = A.append("g").attr("class", "cynefin-arrows");
211
+ v.forEach((y) => {
212
+ const z = V[y.from], N = V[y.to];
213
+ if (!z || !N)
214
+ return;
215
+ if (y.from === y.to) {
216
+ Y.warn(`Cynefin renderer: skipping self-loop on domain "${y.from}"`);
217
+ return;
218
+ }
219
+ const B = z.cx, g = z.cy, S = N.cx, w = N.cy, M = (B + S) / 2, P = (g + w) / 2, $ = S - B, x = w - g, C = Math.sqrt($ * $ + x * x), I = C * 0.15, G = -x / C, ht = $ / C, et = M + G * I, nt = P + ht * I;
220
+ u.append("path").attr("class", "cynefinArrowLine").attr("d", `M${B},${g} Q${et},${nt} ${S},${w}`).attr("fill", "none").attr("marker-end", `url(#${r})`), y.label && u.append("text").attr("class", "cynefinArrowLabel").attr("x", et).attr("y", nt - 6).attr("text-anchor", "middle").attr("dominant-baseline", "auto").text(y.label);
221
+ });
222
+ }
223
+ R && A.append("text").attr("class", "cynefinTitle").attr("x", i / 2).attr("y", -b / 2).attr("text-anchor", "middle").attr("dominant-baseline", "middle").text(R);
224
+ }, "draw"), Vt = { draw: Ft }, Et = /* @__PURE__ */ s(() => {
225
+ const t = ot(), e = U();
226
+ return Q(t, e.themeVariables).cynefin;
227
+ }, "getCynefinTheme"), Ht = /* @__PURE__ */ s(() => {
228
+ const t = Et();
229
+ return `
230
+ .cynefinDomain {
231
+ stroke: none;
232
+ }
233
+ .cynefinDomainLabel {
234
+ font-size: ${t.domainFontSize}px;
235
+ font-weight: bold;
236
+ fill: ${t.labelColor};
237
+ }
238
+ .cynefinSubtitle {
239
+ font-size: ${t.itemFontSize - 1}px;
240
+ fill: ${t.textColor};
241
+ font-style: italic;
242
+ }
243
+ .cynefinItem {
244
+ fill-opacity: 0.95;
245
+ stroke: ${t.boundaryColor};
246
+ stroke-width: 1;
247
+ }
248
+ .cynefinItemText {
249
+ font-size: ${t.itemFontSize}px;
250
+ fill: ${t.textColor};
251
+ }
252
+ .cynefinItemOverflow {
253
+ fill-opacity: 0.6;
254
+ stroke: ${t.boundaryColor};
255
+ stroke-width: 1;
256
+ stroke-dasharray: 3 2;
257
+ }
258
+ .cynefinBoundary {
259
+ stroke: ${t.boundaryColor};
260
+ stroke-width: ${t.boundaryWidth};
261
+ stroke-dasharray: 6 3;
262
+ }
263
+ .cynefinCliff {
264
+ stroke: ${t.cliffColor};
265
+ stroke-width: ${t.cliffWidth};
266
+ }
267
+ .cynefinConfusion {
268
+ stroke: ${t.boundaryColor};
269
+ stroke-width: 1.5;
270
+ stroke-dasharray: 4 2;
271
+ }
272
+ .cynefinArrowLine {
273
+ stroke: ${t.arrowColor};
274
+ stroke-width: ${t.arrowWidth};
275
+ fill: none;
276
+ }
277
+ .cynefinArrowHead {
278
+ fill: ${t.arrowColor};
279
+ stroke: none;
280
+ }
281
+ .cynefinArrowLabel {
282
+ font-size: ${t.itemFontSize - 1}px;
283
+ fill: ${t.textColor};
284
+ }
285
+ .cynefinTitle {
286
+ font-size: ${t.domainFontSize + 2}px;
287
+ font-weight: bold;
288
+ fill: ${t.labelColor};
289
+ }
290
+ `;
291
+ }, "styles"), Gt = Ht, jt = {
292
+ parser: Rt,
293
+ db: O,
294
+ renderer: Vt,
295
+ styles: Gt
296
+ };
297
+ export {
298
+ jt as diagram
299
+ };