@diagrammo/dgmo 0.48.2 → 0.49.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 (216) hide show
  1. package/.cursorrules +8 -3
  2. package/.github/copilot-instructions.md +8 -3
  3. package/.windsurfrules +8 -3
  4. package/SKILL.md +8 -3
  5. package/dist/advanced.d.ts +444 -1
  6. package/dist/advanced.js +208 -146
  7. package/dist/auto.css +63 -0
  8. package/dist/auto.js +202 -102
  9. package/dist/auto.mjs +6849 -824
  10. package/dist/block.css +63 -0
  11. package/dist/block.d.ts +13 -5
  12. package/dist/block.js +137 -57
  13. package/dist/{charts-d3-QOZHKTCT.js → charts-d3-EW3YQTEA.js} +9 -8
  14. package/dist/chunk-26RVGM44.js +331 -0
  15. package/dist/{chunk-44CM72SQ.js → chunk-2WMBWZY2.js} +3 -3
  16. package/dist/{chunk-L66GEFB6.js → chunk-35BBZDFE.js} +4 -4
  17. package/dist/{chunk-4GRI7MEB.js → chunk-3BIAFYD2.js} +6 -6
  18. package/dist/chunk-3NFJWFNP.js +1474 -0
  19. package/dist/{chunk-76OWZ3BA.js → chunk-4BD7EVPK.js} +2 -2
  20. package/dist/{chunk-MITI6NOL.js → chunk-4FIV4K4Z.js} +9 -9
  21. package/dist/chunk-4HVNZ7WF.js +574 -0
  22. package/dist/{chunk-X5LCYCL5.js → chunk-4NQ3IKUM.js} +2 -2
  23. package/dist/{chunk-PWIHZ6NJ.js → chunk-4UDKKGHH.js} +4 -4
  24. package/dist/{chunk-6NYWYNBI.js → chunk-4XK3FLFB.js} +3 -3
  25. package/dist/chunk-4YNP6O47.js +607 -0
  26. package/dist/{chunk-3MQQNXPD.js → chunk-5FGDJIJX.js} +3 -3
  27. package/dist/{chunk-WCT3NYCV.js → chunk-5LWQH6QV.js} +1 -1
  28. package/dist/chunk-5XCM7UUW.js +261 -0
  29. package/dist/{chunk-RYEGFMUO.js → chunk-5ZZLLBFK.js} +2 -2
  30. package/dist/{chunk-EB6FPQUP.js → chunk-65RTDUZH.js} +3 -3
  31. package/dist/chunk-6CLKNXVP.js +664 -0
  32. package/dist/{chunk-H6PI3KJT.js → chunk-6IUAK7RZ.js} +2 -2
  33. package/dist/{chunk-ZGR7ULFJ.js → chunk-6SA7FJE4.js} +31 -19
  34. package/dist/{chunk-LIOHW36Z.js → chunk-6VE3VLWM.js} +3 -3
  35. package/dist/{chunk-AN2MOO5T.js → chunk-7OVSJI2V.js} +3 -3
  36. package/dist/{chunk-YAA6IID3.js → chunk-7UEMZREK.js} +2 -2
  37. package/dist/{chunk-FCIIHT24.js → chunk-7VLUGEMJ.js} +7 -7
  38. package/dist/{chunk-VOKGH627.js → chunk-AHGF2YYA.js} +13 -3
  39. package/dist/{chunk-3R5POCTZ.js → chunk-AJ2PEY7J.js} +6 -6
  40. package/dist/{chunk-PBHE5UG6.js → chunk-ALRHIR6I.js} +46 -12
  41. package/dist/{chunk-7JEGTRLD.js → chunk-B57V3DWN.js} +3 -3
  42. package/dist/{chunk-ILKORZ3H.js → chunk-BCT5G2VN.js} +7 -7
  43. package/dist/{chunk-TYS6CSS5.js → chunk-BCYVE3N5.js} +2 -2
  44. package/dist/{chunk-ZBWMSD5N.js → chunk-BGJV5ATD.js} +4 -4
  45. package/dist/{chunk-G2H74XJZ.js → chunk-BPIJLRYE.js} +8 -8
  46. package/dist/{chunk-YGJTDXVR.js → chunk-C4GQDB5L.js} +2 -2
  47. package/dist/{chunk-Y2ZE3MSG.js → chunk-C63UWAKM.js} +2 -2
  48. package/dist/{chunk-QEBUY5NY.js → chunk-CEHZOPGM.js} +4 -4
  49. package/dist/{chunk-725LDASD.js → chunk-CLD2OKV7.js} +2 -2
  50. package/dist/{chunk-5QXL4NYS.js → chunk-CLR4A2N2.js} +10 -5
  51. package/dist/{chunk-WBRZJOEC.js → chunk-CMCR5WBW.js} +3 -3
  52. package/dist/{chunk-SML67VPV.js → chunk-D5AVQCDN.js} +3 -3
  53. package/dist/{chunk-2LACINWN.js → chunk-DDTJ5N7Q.js} +9 -9
  54. package/dist/{chunk-FITOLXSX.js → chunk-EOFPYPAU.js} +26 -2
  55. package/dist/{chunk-B65G5DNL.js → chunk-EYN7VFKL.js} +3 -3
  56. package/dist/{chunk-4OHACBGX.js → chunk-F2L5GCQ4.js} +2 -2
  57. package/dist/{chunk-RVMRZAPB.js → chunk-F743CM2N.js} +3 -3
  58. package/dist/{chunk-3JLKYGBQ.js → chunk-F7BFXWNQ.js} +2 -2
  59. package/dist/{chunk-WCSOJFU3.js → chunk-FMKTYMP4.js} +3 -3
  60. package/dist/{chunk-RTLBSQ3G.js → chunk-FUCAB3KQ.js} +3 -3
  61. package/dist/{chunk-SGZYXELT.js → chunk-GB3YZTAM.js} +9 -6
  62. package/dist/{chunk-QLCCJEJI.js → chunk-HBVD67XG.js} +2 -2
  63. package/dist/{chunk-PBAHEPLQ.js → chunk-HGN652MU.js} +7 -6
  64. package/dist/{chunk-3SMGIJDD.js → chunk-HHXOONLX.js} +13 -1
  65. package/dist/{chunk-QOOUC2J5.js → chunk-HQCHYB5F.js} +2 -2
  66. package/dist/chunk-IAEC4KLA.js +492 -0
  67. package/dist/{chunk-J5FIXQRT.js → chunk-IBC35BTK.js} +4 -4
  68. package/dist/{chunk-NURGB5Z4.js → chunk-IFK3GIUW.js} +2 -2
  69. package/dist/{chunk-FANX6UJR.js → chunk-IHLSHCPZ.js} +11 -11
  70. package/dist/{chunk-GMR5MFHJ.js → chunk-IUK7AGD4.js} +2 -2
  71. package/dist/chunk-IVKC4GID.js +32 -0
  72. package/dist/{chunk-OJR3MQYV.js → chunk-JFPY3UJ7.js} +296 -57
  73. package/dist/{chunk-5MLYVTYM.js → chunk-K6HNAY5V.js} +2 -2
  74. package/dist/{chunk-P235SVAH.js → chunk-KQAEKMIX.js} +2 -2
  75. package/dist/{chunk-7DTWEFUE.js → chunk-KUBBJ2CD.js} +10 -10
  76. package/dist/{chunk-BUVJFRPY.js → chunk-KV6Y2HE6.js} +4 -4
  77. package/dist/{chunk-OURHMODR.js → chunk-LG4TWW4U.js} +13 -13
  78. package/dist/{chunk-XAKEUMEJ.js → chunk-LVHPTBO3.js} +3 -3
  79. package/dist/{chunk-ERLBPDGU.js → chunk-MJCG5K2O.js} +2 -2
  80. package/dist/{chunk-THXCFRTU.js → chunk-N4J5KGWG.js} +12 -12
  81. package/dist/{chunk-MZSBFAPJ.js → chunk-NVT6C2VE.js} +9 -9
  82. package/dist/{chunk-AELOBFW5.js → chunk-O5MQPK7E.js} +3 -3
  83. package/dist/{chunk-JM4LEPY3.js → chunk-O7NUCTFU.js} +2 -2
  84. package/dist/{chunk-JED6ZDEE.js → chunk-O7WP4ZD4.js} +2 -2
  85. package/dist/{chunk-ZO27FGJS.js → chunk-PH5X4GIP.js} +2 -2
  86. package/dist/{chunk-B7JUCQUA.js → chunk-PU3AUQPA.js} +4 -4
  87. package/dist/{chunk-YGJZWZTY.js → chunk-PZFVK3IH.js} +2 -2
  88. package/dist/chunk-QQJUTGQH.js +135 -0
  89. package/dist/{chunk-HSH73DP6.js → chunk-RI4NIMFP.js} +99 -39
  90. package/dist/{chunk-33LCUH4H.js → chunk-RTERS6S5.js} +3 -3
  91. package/dist/{chunk-T3UBLACL.js → chunk-SCQ5VPUF.js} +19 -5
  92. package/dist/chunk-SGHSY3LU.js +377 -0
  93. package/dist/{chunk-SRTU6HMQ.js → chunk-SJEGO2QL.js} +8 -8
  94. package/dist/chunk-SQDFK5ZQ.js +273 -0
  95. package/dist/{chunk-PZMETGLY.js → chunk-SVDWQGX2.js} +296 -121
  96. package/dist/{chunk-Z5CGSFJB.js → chunk-T7IKPCMI.js} +4 -4
  97. package/dist/chunk-TC3YWBFO.js +233 -0
  98. package/dist/{chunk-EVCVDTXE.js → chunk-TLKMTQYL.js} +3 -3
  99. package/dist/{chunk-IJZFN3HM.js → chunk-TWQUYVP3.js} +4 -4
  100. package/dist/{chunk-IZMRON6C.js → chunk-UVCXZEGU.js} +2 -2
  101. package/dist/{chunk-CKNVO24D.js → chunk-UWDO3O52.js} +2 -2
  102. package/dist/{chunk-RJE5JTVK.js → chunk-VC3TR4NL.js} +7 -7
  103. package/dist/{chunk-CI2G3OEB.js → chunk-X2CH42BN.js} +9 -9
  104. package/dist/{chunk-6HO5ZTXK.js → chunk-XCC2RENT.js} +2 -2
  105. package/dist/chunk-XHVV4NVW.js +51 -0
  106. package/dist/{chunk-ZJEL4H2R.js → chunk-XJ7J6WOO.js} +9 -9
  107. package/dist/{chunk-ULOEATBZ.js → chunk-XKTN7CZF.js} +106 -29
  108. package/dist/{chunk-IPWPWM6R.js → chunk-YM2BSPYW.js} +111 -10
  109. package/dist/{chunk-BUPDIHML.js → chunk-YRVLP7UU.js} +3 -3
  110. package/dist/{chunk-T2OE3YQB.js → chunk-YTN572Q2.js} +3 -3
  111. package/dist/{chunk-WVAJFAIA.js → chunk-YYX3SU6H.js} +3 -3
  112. package/dist/{chunk-MO5YHHMQ.js → chunk-ZDUQGL3N.js} +2 -2
  113. package/dist/{chunk-Y3J7VR52.js → chunk-ZNQX6QWH.js} +30 -2
  114. package/dist/{chunk-UWN33VNX.js → chunk-ZREZOIGS.js} +8 -8
  115. package/dist/{chunk-6SM5NJQH.js → chunk-ZTLWVRNS.js} +4 -4
  116. package/dist/{chunk-RUNNI6VE.js → chunk-ZXL6MB4R.js} +3 -3
  117. package/dist/cli.cjs +159 -122
  118. package/dist/dgmo-router-ODKPEJ3P.js +79 -0
  119. package/dist/dimensions-WSIJXT5Q.js +22 -0
  120. package/dist/editor.js +4 -1
  121. package/dist/element.js +203 -103
  122. package/dist/element.mjs +6849 -824
  123. package/dist/{flowchart-parser-ZNSKIBVR.js → flowchart-parser-IVZN7CQN.js} +4 -4
  124. package/dist/{flowchart-renderer-SNDSII4D.js → flowchart-renderer-GMI2U3DD.js} +9 -9
  125. package/dist/highlight.js +7 -1
  126. package/dist/index.d.ts +5 -1
  127. package/dist/index.js +193 -232
  128. package/dist/{layout-HRBZPFCN.js → layout-34CLNICW.js} +5 -5
  129. package/dist/{layout-5RA6QWR6.js → layout-4Z5JM7PT.js} +6 -6
  130. package/dist/layout-6RDJHS6E.js +9 -0
  131. package/dist/{layout-7QXCNOVS.js → layout-7H4H46CS.js} +3 -3
  132. package/dist/{layout-46N4JJYK.js → layout-7SKMFYHL.js} +5 -5
  133. package/dist/{layout-HWDSRX5E.js → layout-D42XE4RE.js} +6 -6
  134. package/dist/{layout-EE6GE46Y.js → layout-DC4TVXER.js} +5 -5
  135. package/dist/layout-FGQWRYYW.js +14 -0
  136. package/dist/layout-GZ2CWONU.js +14 -0
  137. package/dist/layout-HQMBPJVS.js +10 -0
  138. package/dist/{layout-UM5F4DJB.js → layout-K2ZN3Q42.js} +5 -5
  139. package/dist/{layout-S2QBYSK2.js → layout-NXG63LWH.js} +3 -3
  140. package/dist/{layout-N76NR4ZO.js → layout-PUQCB6AN.js} +7 -7
  141. package/dist/{layout-HYZPWAK5.js → layout-QNUQLEHU.js} +3 -3
  142. package/dist/layout-S3EK4IYO.js +14 -0
  143. package/dist/{layout-search-OYV77HHS.js → layout-search-QS44PI5R.js} +6 -6
  144. package/dist/{parser-KNSQSKQO.js → parser-4BKIFG2C.js} +5 -5
  145. package/dist/{parser-OV7NOBW6.js → parser-4ROBKVUR.js} +4 -4
  146. package/dist/parser-667RGSUW.js +13 -0
  147. package/dist/{parser-IXSZZQHY.js → parser-BL7Z72EY.js} +4 -4
  148. package/dist/{parser-AQETEVRW.js → parser-CLMFZWCC.js} +4 -4
  149. package/dist/{parser-XKRP7QKP.js → parser-D6ONJQFR.js} +3 -3
  150. package/dist/{parser-2EWECDSA.js → parser-DERPY5KC.js} +4 -4
  151. package/dist/{parser-4OGOBJJ4.js → parser-GFSOPDB7.js} +4 -4
  152. package/dist/{parser-2MFP2H2E.js → parser-HVJFTOXL.js} +3 -3
  153. package/dist/{parser-VQP2UJ6W.js → parser-IKZFTLOJ.js} +3 -3
  154. package/dist/parser-J3P2D6IP.js +13 -0
  155. package/dist/{parser-PQ3POX45.js → parser-JD7OQ2E6.js} +4 -4
  156. package/dist/{parser-O5J4VBII.js → parser-K647FRI4.js} +3 -3
  157. package/dist/{parser-NGU3ETO6.js → parser-KPMN5KKE.js} +4 -4
  158. package/dist/{parser-4FL2CMDG.js → parser-MBJSBTL5.js} +4 -4
  159. package/dist/{parser-TFZFBVWN.js → parser-MCJWF5G3.js} +3 -3
  160. package/dist/{parser-NRAI6O25.js → parser-MRBPXXIV.js} +4 -4
  161. package/dist/{parser-6BTRLKRZ.js → parser-OBQG655V.js} +4 -4
  162. package/dist/{parser-3STE62GB.js → parser-QJYS7KQQ.js} +4 -4
  163. package/dist/{parser-XDVELHRK.js → parser-SMBJO3XN.js} +4 -4
  164. package/dist/{parser-TRTHDFPP.js → parser-TITK4YW6.js} +5 -5
  165. package/dist/{parser-I6KXEYFK.js → parser-TNYX5S7E.js} +4 -4
  166. package/dist/{parser-Y6WTBU76.js → parser-UBGPTIZD.js} +3 -3
  167. package/dist/parser-UGA23PYK.js +14 -0
  168. package/dist/{parser-N5O4IHUN.js → parser-WISPH7LW.js} +4 -4
  169. package/dist/{parser-CFZD5IBL.js → parser-XWUDFJ7P.js} +4 -4
  170. package/dist/parser-ZKF5K2H2.js +15 -0
  171. package/dist/{parser-ZSDPZYQP.js → parser-ZYC3XGNS.js} +4 -4
  172. package/dist/{renderer-AWWAF6XD.js → renderer-4IUPINAE.js} +10 -10
  173. package/dist/renderer-6L3NBEY5.js +24 -0
  174. package/dist/{renderer-ZRNG54CW.js → renderer-6T3KK4S3.js} +11 -11
  175. package/dist/{renderer-KQB7UGDS.js → renderer-7RH2SI3B.js} +3 -3
  176. package/dist/{renderer-6EEZHMH4.js → renderer-A5VFZQQK.js} +9 -9
  177. package/dist/{renderer-5MYBMBYO.js → renderer-BB5PREMY.js} +5 -5
  178. package/dist/{renderer-BYCNMBF7.js → renderer-CGW7QPNA.js} +10 -10
  179. package/dist/{renderer-QIWVHWZO.js → renderer-DAXMXIKD.js} +3 -3
  180. package/dist/{renderer-7MVLWWQD.js → renderer-DKESNMU5.js} +9 -9
  181. package/dist/{renderer-UV6MI64M.js → renderer-HVCU2C3Z.js} +3 -3
  182. package/dist/{renderer-VACVQYML.js → renderer-LWGJFT3D.js} +8 -8
  183. package/dist/{renderer-PGX2TKVS.js → renderer-MFJ7HY2H.js} +8 -8
  184. package/dist/{renderer-B2OMQIQG.js → renderer-MJDDU27W.js} +15 -15
  185. package/dist/{renderer-4JHRUBE6.js → renderer-QL5KO6SK.js} +10 -10
  186. package/dist/{renderer-W4M6QLIJ.js → renderer-QNHUXCRL.js} +14 -14
  187. package/dist/{renderer-ZGNTUWC4.js → renderer-ROV756WT.js} +8 -8
  188. package/dist/{renderer-YY2OSF6E.js → renderer-SQ3JUAI7.js} +9 -9
  189. package/dist/renderer-THD6V5TL.js +22 -0
  190. package/dist/{renderer-5NDVNDAZ.js → renderer-TPIBXNOS.js} +9 -9
  191. package/dist/{renderer-RPOA5YPZ.js → renderer-TYXRHMRI.js} +13 -13
  192. package/dist/{renderer-N43WR5GV.js → renderer-UZF3JROD.js} +11 -11
  193. package/dist/{renderer-6W5462RB.js → renderer-V3JEMWMM.js} +9 -9
  194. package/dist/{renderer-JGBKUCZD.js → renderer-VFUVRNLK.js} +4 -4
  195. package/dist/{renderer-Z7I3W2PP.js → renderer-VICQ4WNY.js} +8 -8
  196. package/dist/renderer-W5RMOURB.js +21 -0
  197. package/dist/renderer-XEKIRPI6.js +23 -0
  198. package/dist/{renderer-CLJHQPBJ.js → renderer-YHXPN3GF.js} +12 -12
  199. package/dist/renderer-radial-MHO2VDXN.js +21 -0
  200. package/dist/{resolver-NOAA7ID7.js → resolver-FHBCO3PL.js} +3 -3
  201. package/dist/{state-parser-Z2V23ATR.js → state-parser-RX3GXOIB.js} +4 -4
  202. package/dist/{state-renderer-B4DQBM6M.js → state-renderer-AJUKGNWU.js} +9 -9
  203. package/docs/ai-integration.md +8 -3
  204. package/docs/language-reference.md +179 -5
  205. package/gallery/fixtures/family.dgmo +23 -0
  206. package/gallery/fixtures/sketch.dgmo +22 -0
  207. package/package.json +1 -1
  208. package/dist/chunk-ODZVHU3R.js +0 -153
  209. package/dist/dgmo-router-X35VLZLM.js +0 -73
  210. package/dist/dimensions-J3FHIMJ6.js +0 -22
  211. package/dist/layout-5T6RH5M6.js +0 -14
  212. package/dist/layout-G23F7LDH.js +0 -9
  213. package/dist/layout-OB3RI63S.js +0 -14
  214. package/dist/parser-JAL2HD4I.js +0 -13
  215. package/dist/renderer-SMIBCRVB.js +0 -24
  216. package/dist/renderer-radial-C32GPJQ7.js +0 -21
package/dist/index.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  getEmbedSvgViewBox,
3
- normalizeSvgForEmbed
4
- } from "./chunk-ODZVHU3R.js";
3
+ normalizeSvgForEmbed,
4
+ renderErrorCard
5
+ } from "./chunk-26RVGM44.js";
5
6
  import {
6
7
  completeMapPlaces,
7
8
  completeMapRegions,
@@ -10,79 +11,86 @@ import {
10
11
  } from "./chunk-SQAG3UXH.js";
11
12
  import {
12
13
  MAP_DIAGNOSTICS
13
- } from "./chunk-3SMGIJDD.js";
14
+ } from "./chunk-HHXOONLX.js";
14
15
  import {
15
16
  decodeDiagramUrl,
16
17
  encodeDiagramUrl,
17
18
  render
18
- } from "./chunk-PZMETGLY.js";
19
- import "./chunk-PBAHEPLQ.js";
19
+ } from "./chunk-SVDWQGX2.js";
20
+ import {
21
+ REGISTRY_BY_ID,
22
+ chartTypes,
23
+ parseDgmo
24
+ } from "./chunk-RI4NIMFP.js";
25
+ import {
26
+ RACI_DIAGNOSTICS
27
+ } from "./chunk-5ZZLLBFK.js";
28
+ import {
29
+ BODY_DIAGNOSTICS
30
+ } from "./chunk-TC3YWBFO.js";
20
31
  import {
21
32
  D3_DATA_CHART_TYPES,
22
33
  renderDataChartD3,
23
34
  supportsD3DataChart
24
- } from "./chunk-OJR3MQYV.js";
25
- import "./chunk-UWN33VNX.js";
35
+ } from "./chunk-JFPY3UJ7.js";
36
+ import "./chunk-HGN652MU.js";
37
+ import "./chunk-KQAEKMIX.js";
38
+ import "./chunk-ZREZOIGS.js";
26
39
  import "./chunk-YRYKTYMQ.js";
27
- import "./chunk-U6EQI3U6.js";
28
- import "./chunk-PWIHZ6NJ.js";
29
40
  import "./chunk-YYVTBZZC.js";
30
- import "./chunk-YAA6IID3.js";
41
+ import "./chunk-U6EQI3U6.js";
42
+ import "./chunk-3NFJWFNP.js";
43
+ import "./chunk-4UDKKGHH.js";
44
+ import "./chunk-7UEMZREK.js";
31
45
  import "./chunk-A4GOY3PE.js";
32
- import {
33
- FONT_FAMILY
34
- } from "./chunk-6KFWC4CO.js";
35
- import "./chunk-QOOUC2J5.js";
36
- import {
37
- measureText,
38
- truncateText
39
- } from "./chunk-WCT3NYCV.js";
40
- import {
41
- REGISTRY_BY_ID,
42
- chartTypes,
43
- parseDgmo
44
- } from "./chunk-HSH73DP6.js";
45
- import "./chunk-P235SVAH.js";
46
- import "./chunk-6HO5ZTXK.js";
47
- import "./chunk-44CM72SQ.js";
48
- import "./chunk-76OWZ3BA.js";
49
- import "./chunk-MO5YHHMQ.js";
46
+ import "./chunk-6KFWC4CO.js";
47
+ import "./chunk-HQCHYB5F.js";
48
+ import "./chunk-5LWQH6QV.js";
49
+ import "./chunk-TLKMTQYL.js";
50
+ import "./chunk-IFK3GIUW.js";
51
+ import "./chunk-XCC2RENT.js";
52
+ import "./chunk-2WMBWZY2.js";
53
+ import "./chunk-4BD7EVPK.js";
54
+ import "./chunk-ZDUQGL3N.js";
50
55
  import {
51
56
  TREEMAP_DIAGNOSTICS
52
- } from "./chunk-WCSOJFU3.js";
53
- import "./chunk-7JEGTRLD.js";
57
+ } from "./chunk-FMKTYMP4.js";
58
+ import "./chunk-B57V3DWN.js";
54
59
  import "./chunk-NNAAJVBU.js";
55
- import {
56
- RACI_DIAGNOSTICS
57
- } from "./chunk-RYEGFMUO.js";
58
- import "./chunk-33LCUH4H.js";
59
- import "./chunk-XAKEUMEJ.js";
60
- import "./chunk-BUPDIHML.js";
60
+ import "./chunk-RTERS6S5.js";
61
+ import "./chunk-LVHPTBO3.js";
62
+ import "./chunk-YRVLP7UU.js";
61
63
  import "./chunk-DKEPS5LH.js";
62
- import "./chunk-BUVJFRPY.js";
64
+ import "./chunk-KV6Y2HE6.js";
65
+ import "./chunk-4YNP6O47.js";
66
+ import {
67
+ SKETCH_DIAGNOSTICS
68
+ } from "./chunk-XHVV4NVW.js";
63
69
  import {
64
70
  SWIMLANE_DIAGNOSTICS
65
- } from "./chunk-WVAJFAIA.js";
66
- import "./chunk-EB6FPQUP.js";
67
- import "./chunk-EVCVDTXE.js";
68
- import "./chunk-NURGB5Z4.js";
69
- import "./chunk-L66GEFB6.js";
70
- import "./chunk-RVMRZAPB.js";
71
- import "./chunk-AN2MOO5T.js";
71
+ } from "./chunk-YYX3SU6H.js";
72
+ import {
73
+ FAMILY_DIAGNOSTICS
74
+ } from "./chunk-4HVNZ7WF.js";
75
+ import "./chunk-QQJUTGQH.js";
76
+ import "./chunk-65RTDUZH.js";
77
+ import "./chunk-35BBZDFE.js";
78
+ import "./chunk-F743CM2N.js";
79
+ import "./chunk-7OVSJI2V.js";
72
80
  import {
73
81
  PERT_DIAGNOSTICS
74
- } from "./chunk-RTLBSQ3G.js";
82
+ } from "./chunk-FUCAB3KQ.js";
75
83
  import "./chunk-L3UHP6TD.js";
76
84
  import "./chunk-USZW2HHU.js";
77
85
  import {
78
86
  EVENT_LINE_DIAGNOSTICS
79
- } from "./chunk-5QXL4NYS.js";
80
- import "./chunk-GMR5MFHJ.js";
87
+ } from "./chunk-CLR4A2N2.js";
88
+ import "./chunk-IUK7AGD4.js";
81
89
  import {
82
90
  VERSION_CONTROL_DIAGNOSTICS
83
- } from "./chunk-ERLBPDGU.js";
84
- import "./chunk-AELOBFW5.js";
85
- import "./chunk-B65G5DNL.js";
91
+ } from "./chunk-MJCG5K2O.js";
92
+ import "./chunk-O5MQPK7E.js";
93
+ import "./chunk-EYN7VFKL.js";
86
94
  import "./chunk-IYULMRBE.js";
87
95
  import {
88
96
  getPalette,
@@ -90,23 +98,23 @@ import {
90
98
  resolvePaletteOrFallback
91
99
  } from "./chunk-R3XI2VC7.js";
92
100
  import "./chunk-P6T66CCZ.js";
93
- import "./chunk-SML67VPV.js";
101
+ import "./chunk-D5AVQCDN.js";
94
102
  import "./chunk-C3Z4DX3V.js";
95
- import "./chunk-QLCCJEJI.js";
96
- import "./chunk-LIOHW36Z.js";
103
+ import "./chunk-HBVD67XG.js";
104
+ import "./chunk-6VE3VLWM.js";
97
105
  import {
98
106
  GRAPH_DIAGNOSTICS
99
107
  } from "./chunk-I46X5VUA.js";
100
- import "./chunk-3MQQNXPD.js";
108
+ import "./chunk-5FGDJIJX.js";
101
109
  import "./chunk-NXMESY4J.js";
102
- import "./chunk-RUNNI6VE.js";
103
- import "./chunk-5MLYVTYM.js";
110
+ import "./chunk-ZXL6MB4R.js";
111
+ import "./chunk-K6HNAY5V.js";
104
112
  import "./chunk-FMDSF3OV.js";
105
113
  import {
106
114
  ARROW_DIAGNOSTIC_CODES
107
115
  } from "./chunk-FFUN5D66.js";
108
116
  import "./chunk-NOTA6TEI.js";
109
- import "./chunk-Y3J7VR52.js";
117
+ import "./chunk-ZNQX6QWH.js";
110
118
  import "./chunk-TLVIHFRO.js";
111
119
  import {
112
120
  emit,
@@ -116,172 +124,6 @@ import {
116
124
  } from "./chunk-CXK4DZH3.js";
117
125
  import "./chunk-5WRI5ZAA.js";
118
126
 
119
- // src/error-card.ts
120
- var MONO_FAMILY = "ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace";
121
- var W = 660;
122
- var PAD = 24;
123
- var CONTENT_W = W - PAD * 2;
124
- var MAX_ERRORS = 4;
125
- var MONO_CH = 0.6;
126
- var CODE_FS = 12.5;
127
- function renderErrorCard(errors, source, palette, theme) {
128
- const c = palette[theme === "dark" ? "dark" : "light"];
129
- const isTransparent = theme === "transparent";
130
- const card = c.surface;
131
- const codeBg = c.bg;
132
- const border = c.border;
133
- const danger = c.destructive ?? c.colors.red;
134
- const text = c.text;
135
- const muted = c.textMuted;
136
- const srcLines = source.split("\n");
137
- const shown = errors.slice(0, MAX_ERRORS);
138
- const overflow = errors.length - shown.length;
139
- const parts = [];
140
- let y = PAD + 8;
141
- parts.push(frownMark(PAD + 14, y + 12, danger));
142
- parts.push(
143
- `<text x="${PAD + 38}" y="${y + 11}" fill="${text}" font-family="${FONT_FAMILY}" font-size="16" font-weight="700">Couldn't render this diagram</text>`,
144
- `<text x="${W - PAD}" y="${y + 10}" text-anchor="end" fill="${muted}" font-family="${FONT_FAMILY}" font-size="12" font-weight="600" letter-spacing="0.5">dgmo</text>`
145
- );
146
- y += 24;
147
- const errLabel = errors.length === 1 ? "1 error" : `${errors.length} errors`;
148
- parts.push(
149
- `<text x="${PAD + 38}" y="${y + 4}" fill="${muted}" font-family="${FONT_FAMILY}" font-size="12.5">${errLabel} \u2014 fix the lines below and re-render</text>`
150
- );
151
- y += 22;
152
- parts.push(
153
- `<line x1="${PAD}" y1="${y}" x2="${W - PAD}" y2="${y}" stroke="${border}" stroke-width="1"/>`
154
- );
155
- y += 24;
156
- for (const e of shown) {
157
- const hasLine = e.line > 0;
158
- let msgX = PAD;
159
- if (hasLine) {
160
- const label = e.column ? `Line ${e.line}:${e.column}` : `Line ${e.line}`;
161
- const badgeW = 14 + label.length * 7;
162
- parts.push(
163
- `<rect x="${PAD}" y="${y - 13}" width="${badgeW}" height="19" rx="4" fill="${danger}"/>`,
164
- `<text x="${PAD + badgeW / 2}" y="${y + 1}" text-anchor="middle" fill="${c.bg}" font-family="${FONT_FAMILY}" font-size="11.5" font-weight="700">${escapeXml(label)}</text>`
165
- );
166
- msgX = PAD + badgeW + 12;
167
- }
168
- const lines = wrapMessage(e.message, CONTENT_W - (msgX - PAD), CONTENT_W);
169
- lines.forEach((line, i) => {
170
- parts.push(
171
- `<text x="${i === 0 ? msgX : PAD}" y="${y + 1}" fill="${text}" font-family="${FONT_FAMILY}" font-size="13">${escapeXml(line)}</text>`
172
- );
173
- if (i < lines.length - 1) y += 18;
174
- });
175
- y += 24;
176
- if (hasLine) {
177
- const CTX = 2;
178
- const first = Math.max(1, e.line - CTX);
179
- const last = Math.min(srcLines.length, e.line + CTX);
180
- const rowH = 18;
181
- const hasCaret = e.column !== void 0 && e.column > 0;
182
- const gutterW = `${last}`.length * CODE_FS * MONO_CH + 16;
183
- const codeX = PAD + gutterW;
184
- const codeMaxW = CONTENT_W - gutterW - 12;
185
- const topY = y - 14;
186
- const rowCount = last - first + 1;
187
- const blockH = rowCount * rowH + (hasCaret ? 14 : 0) + 10;
188
- const rowParts = [];
189
- let ry = y + 3;
190
- for (let n = first; n <= last; n++) {
191
- const raw = (srcLines[n - 1] ?? "").replace(/\t/g, " ");
192
- const codeText = truncateText(raw, CODE_FS, codeMaxW);
193
- const isBad = n === e.line;
194
- if (isBad) {
195
- rowParts.push(
196
- `<rect x="${PAD + 1}" y="${ry - 13}" width="${CONTENT_W - 2}" height="${rowH}" fill="${danger}" fill-opacity="0.16"/>`
197
- );
198
- }
199
- rowParts.push(
200
- `<text x="${PAD + 8}" y="${ry + 1}" fill="${isBad ? danger : muted}" font-family="${MONO_FAMILY}" font-size="${CODE_FS}" font-weight="${isBad ? 700 : 400}">${escapeXml(`${n}`)}</text>`,
201
- `<text x="${codeX}" y="${ry + 1}" fill="${text}" font-family="${MONO_FAMILY}" font-size="${CODE_FS}" xml:space="preserve">${escapeXml(codeText)}</text>`
202
- );
203
- if (isBad && hasCaret) {
204
- const caretX = codeX + (e.column - 1) * CODE_FS * MONO_CH;
205
- rowParts.push(
206
- `<text x="${caretX}" y="${ry + 15}" fill="${danger}" font-family="${MONO_FAMILY}" font-size="${CODE_FS}" font-weight="700">^</text>`
207
- );
208
- ry += 14;
209
- }
210
- ry += rowH;
211
- }
212
- parts.push(
213
- `<rect x="${PAD}" y="${topY}" width="${CONTENT_W}" height="${blockH}" rx="5" fill="${codeBg}" stroke="${border}" stroke-width="1"/>`,
214
- `<line x1="${codeX - 8}" y1="${topY}" x2="${codeX - 8}" y2="${topY + blockH}" stroke="${border}" stroke-width="1"/>`,
215
- rowParts.join("")
216
- );
217
- y = topY + blockH + 10;
218
- }
219
- y += 14;
220
- }
221
- if (overflow > 0) {
222
- parts.push(
223
- `<text x="${PAD}" y="${y}" fill="${muted}" font-family="${FONT_FAMILY}" font-size="12.5" font-style="italic">+ ${overflow} more error${overflow === 1 ? "" : "s"}</text>`
224
- );
225
- y += 22;
226
- }
227
- y += 2;
228
- parts.push(
229
- `<line x1="${PAD}" y1="${y}" x2="${W - PAD}" y2="${y}" stroke="${border}" stroke-width="1"/>`
230
- );
231
- y += 24;
232
- const encoded = encodeDiagramUrl(source);
233
- const editUrl = "url" in encoded && encoded.url ? encoded.url : "https://online.diagrammo.app";
234
- const iconSize = 18;
235
- const linkColor = c.colors.blue ?? c.text;
236
- parts.push(
237
- `<a href="${escapeXml(editUrl)}" target="_blank" rel="noopener noreferrer">` + diagrammoIcon(PAD, y - 14, iconSize) + `<text x="${PAD + iconSize + 8}" y="${y}" fill="${linkColor}" font-family="${FONT_FAMILY}" font-size="12.5" font-weight="600" text-decoration="underline">Edit &amp; fix this diagram at online.diagrammo.app \u2197</text></a>`
238
- );
239
- y += 8;
240
- const height = Math.round(y + PAD - 14);
241
- const pageBg = isTransparent ? "" : `<rect width="100%" height="100%" fill="${c.bg}"/>`;
242
- return [
243
- `<svg xmlns="http://www.w3.org/2000/svg" width="${W}" height="${height}" viewBox="0 0 ${W} ${height}" font-family="${FONT_FAMILY}">`,
244
- pageBg,
245
- `<rect x="0.5" y="0.5" width="${W - 1}" height="${height - 1}" rx="10" fill="${card}" stroke="${border}" stroke-width="1"/>`,
246
- parts.join(""),
247
- `</svg>`
248
- ].join("");
249
- }
250
- function wrapMessage(message, firstWidth, fullWidth) {
251
- const words = message.split(/\s+/).filter(Boolean);
252
- if (words.length === 0) return [""];
253
- const lines = [];
254
- let cur = "";
255
- for (const word of words) {
256
- const limit = lines.length === 0 ? firstWidth : fullWidth;
257
- const test = cur ? `${cur} ${word}` : word;
258
- if (measureText(test, 13) <= limit || !cur) {
259
- cur = test;
260
- } else {
261
- lines.push(cur);
262
- cur = word;
263
- }
264
- }
265
- if (cur) lines.push(cur);
266
- return lines;
267
- }
268
- function frownMark(cx, cy, color) {
269
- const r = 12;
270
- return [
271
- `<circle cx="${cx}" cy="${cy}" r="${r}" fill="none" stroke="${color}" stroke-width="2"/>`,
272
- `<circle cx="${cx - 4.5}" cy="${cy - 3}" r="1.6" fill="${color}"/>`,
273
- `<circle cx="${cx + 4.5}" cy="${cy - 3}" r="1.6" fill="${color}"/>`,
274
- `<path d="M ${cx - 5} ${cy + 6} Q ${cx} ${cy + 1} ${cx + 5} ${cy + 6}" fill="none" stroke="${color}" stroke-width="2" stroke-linecap="round"/>`
275
- ].join("");
276
- }
277
- function diagrammoIcon(x, y, size) {
278
- const s = size / 100;
279
- return `<g transform="translate(${x} ${y}) scale(${s})"><rect width="100" height="100" rx="18" fill="#1f2933"/><path d="M41 71 L41 63.51 A28 28 0 1 1 59 63.51 L59 71" fill="none" stroke="#c9a227" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/><rect x="36" y="43" width="7" height="9" rx="1.9" fill="#c0504d"/><rect x="45" y="37" width="7" height="15" rx="1.9" fill="#5b9357"/><rect x="54" y="30" width="7" height="22" rx="1.9" fill="#3b6ea5"/><rect x="36" y="75" width="28" height="4.6" rx="2.3" fill="#7d5ba6"/><rect x="36" y="82" width="28" height="4.6" rx="2.3" fill="#7d5ba6"/><rect x="36" y="89" width="28" height="4.6" rx="2.3" fill="#7d5ba6"/></g>`;
280
- }
281
- function escapeXml(s) {
282
- return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
283
- }
284
-
285
127
  // src/dimensions.ts
286
128
  function getMinDimensions(content) {
287
129
  const { chartType } = parseDgmo(content);
@@ -300,10 +142,12 @@ function ensureStyle(svg, muted) {
300
142
  const style = doc.createElementNS(NS, "style");
301
143
  style.id = STYLE_ID;
302
144
  style.textContent = `
303
- .dgmo-series,.dgmo-datum,.dgmo-tick{transition:opacity .12s ease}
304
- .dgmo-series.dgmo-dim,.dgmo-datum.dgmo-dim{opacity:.18}
145
+ .dgmo-series,.dgmo-datum,.dgmo-tick,.dgmo-ptlabel{transition:opacity .12s ease}
146
+ .dgmo-series.dgmo-dim,.dgmo-datum.dgmo-dim,.dgmo-ptlabel.dgmo-dim{opacity:.18}
305
147
  .dgmo-tick.dgmo-faded{opacity:.22}
306
148
  .dgmo-datum{cursor:pointer}
149
+ .dgmo-axis-label{cursor:pointer}
150
+ .dgmo-axis-label.dgmo-axis-active{font-weight:700}
307
151
  .dgmo-axline{stroke:${muted};stroke-width:1;stroke-dasharray:4 4;pointer-events:none}
308
152
  `;
309
153
  svg.insertBefore(style, svg.firstChild);
@@ -390,8 +234,36 @@ function attachDataChartInteractions(svg, opts = {}) {
390
234
  }
391
235
  getOverlay().appendChild(t);
392
236
  };
237
+ const pointValue = (cx, numY, lblY, label, value, anchor = "middle", color) => {
238
+ const fill = color ?? text;
239
+ const mk = (content, y, font, weight, opacity) => {
240
+ const t = doc.createElementNS(NS, "text");
241
+ t.setAttribute("class", "dgmo-pointval");
242
+ t.setAttribute("font-size", String(font));
243
+ t.setAttribute("font-weight", String(weight));
244
+ t.setAttribute("font-family", "Inter, system-ui, sans-serif");
245
+ t.setAttribute("fill", fill);
246
+ t.setAttribute("fill-opacity", String(opacity));
247
+ t.setAttribute("text-anchor", anchor);
248
+ t.setAttribute("x", String(cx));
249
+ t.setAttribute("y", String(y));
250
+ t.textContent = content;
251
+ getOverlay().appendChild(t);
252
+ };
253
+ mk(value, numY, 20, 700, 0.75);
254
+ mk(label, lblY, 11, 500, 0.85);
255
+ };
256
+ const ptLabels = Array.from(
257
+ svg.querySelectorAll(".dgmo-ptlabel")
258
+ );
393
259
  const dimDatumsExcept = (el) => {
394
260
  for (const d of datums) d.classList.toggle("dgmo-dim", d !== el);
261
+ const line = el?.getAttribute("data-line-number");
262
+ for (const l of ptLabels)
263
+ l.classList.toggle(
264
+ "dgmo-dim",
265
+ line == null || l.getAttribute("data-line-number") !== line
266
+ );
395
267
  };
396
268
  const dimByKey = (el) => {
397
269
  const key = el.getAttribute("data-emph-key");
@@ -404,7 +276,42 @@ function attachDataChartInteractions(svg, opts = {}) {
404
276
  const clearDim = () => {
405
277
  for (const d of datums) d.classList.remove("dgmo-dim");
406
278
  for (const g of seriesGroups) g.classList.remove("dgmo-dim");
279
+ for (const l of ptLabels) l.classList.remove("dgmo-dim");
280
+ reapplyAxisPin();
407
281
  };
282
+ let axisPin = null;
283
+ const axisLabels = Array.from(
284
+ svg.querySelectorAll("[data-filter-attr]")
285
+ );
286
+ const applyAxisFilter = (attr, value) => {
287
+ for (const d of datums)
288
+ d.classList.toggle("dgmo-dim", d.getAttribute(attr) !== value);
289
+ };
290
+ function reapplyAxisPin() {
291
+ if (axisPin) applyAxisFilter(axisPin.attr, axisPin.value);
292
+ }
293
+ const setAxisPin = (next) => {
294
+ if (axisPin) axisPin.el.classList.remove("dgmo-axis-active");
295
+ axisPin = next;
296
+ if (axisPin) axisPin.el.classList.add("dgmo-axis-active");
297
+ if (!axisPin) for (const d of datums) d.classList.remove("dgmo-dim");
298
+ reapplyAxisPin();
299
+ };
300
+ const axisLabelListeners = [];
301
+ for (const el of axisLabels) {
302
+ const attr = el.getAttribute("data-filter-attr");
303
+ const value = el.getAttribute("data-filter-value");
304
+ if (!attr || value == null) continue;
305
+ const onEnter = () => applyAxisFilter(attr, value);
306
+ const onExit = () => {
307
+ for (const d of datums) d.classList.remove("dgmo-dim");
308
+ reapplyAxisPin();
309
+ };
310
+ el.addEventListener("mouseenter", onEnter);
311
+ el.addEventListener("mouseleave", onExit);
312
+ axisLabelListeners.push([el, "mouseenter", onEnter]);
313
+ axisLabelListeners.push([el, "mouseleave", onExit]);
314
+ }
408
315
  const crosshairOn = !!plot && circles.length > 0;
409
316
  let activePt = null;
410
317
  const restorePt = () => {
@@ -493,6 +400,29 @@ function attachDataChartInteractions(svg, opts = {}) {
493
400
  dottedLine(plot.left, cy, cx, cy);
494
401
  axisValue(plot.left, cy, axY, "y");
495
402
  }
403
+ const sz = el.getAttribute("data-size");
404
+ if (sz !== null) {
405
+ const label = el.getAttribute("data-size-label") ?? "size";
406
+ const vx = el.getAttribute("data-sizeval-x");
407
+ const vy = el.getAttribute("data-sizeval-y");
408
+ const vly = el.getAttribute("data-sizeval-ly");
409
+ const va = el.getAttribute("data-sizeval-anchor");
410
+ const color = el.getAttribute("data-color") ?? void 0;
411
+ if (vx !== null && vy !== null && vly !== null) {
412
+ pointValue(
413
+ parseFloat(vx),
414
+ parseFloat(vy),
415
+ parseFloat(vly),
416
+ label,
417
+ sz,
418
+ va === "start" || va === "end" ? va : "middle",
419
+ color
420
+ );
421
+ } else {
422
+ const r = parseFloat(el.getAttribute("r") ?? "0");
423
+ pointValue(cx, cy + r + 22, cy + r + 37, label, sz, "middle", color);
424
+ }
425
+ }
496
426
  fadeTicks();
497
427
  dimDatumsExcept(el);
498
428
  } else {
@@ -502,9 +432,14 @@ function attachDataChartInteractions(svg, opts = {}) {
502
432
  };
503
433
  let crosshairActive = false;
504
434
  const onSvgMove = (e) => {
505
- const el = e.target.closest?.(
506
- ".dgmo-datum"
507
- );
435
+ const t = e.target;
436
+ let el = t.closest?.(".dgmo-datum");
437
+ if (!el) {
438
+ const lbl = t.closest?.(".dgmo-ptlabel");
439
+ const ln = lbl?.getAttribute("data-line-number");
440
+ if (ln != null)
441
+ el = datums.find((d) => d.getAttribute("data-line-number") === ln) ?? null;
442
+ }
508
443
  if (el) {
509
444
  if (el !== curDatum) {
510
445
  clearDatum();
@@ -534,8 +469,24 @@ function attachDataChartInteractions(svg, opts = {}) {
534
469
  }
535
470
  };
536
471
  const onClick = (e) => {
472
+ const label = e.target.closest?.(
473
+ "[data-filter-attr]"
474
+ );
475
+ if (label && axisLabels.includes(label)) {
476
+ const attr = label.getAttribute("data-filter-attr");
477
+ const value = label.getAttribute("data-filter-value");
478
+ if (attr && value != null) {
479
+ const same = axisPin?.attr === attr && axisPin.value === value;
480
+ setAxisPin(same ? null : { attr, value, el: label });
481
+ return;
482
+ }
483
+ }
537
484
  const line = walkUpForLine(e.target, svg);
538
- if (line !== null && opts.onNavigate) opts.onNavigate(line);
485
+ if (line !== null && opts.onNavigate) {
486
+ opts.onNavigate(line);
487
+ return;
488
+ }
489
+ if (axisPin) setAxisPin(null);
539
490
  };
540
491
  let pinned = [];
541
492
  const clearHighlight = () => {
@@ -543,6 +494,7 @@ function attachDataChartInteractions(svg, opts = {}) {
543
494
  pinned = [];
544
495
  for (const d of datums) d.classList.remove("dgmo-dim");
545
496
  for (const g of seriesGroups) g.classList.remove("dgmo-dim");
497
+ reapplyAxisPin();
546
498
  };
547
499
  const highlightLine = (line) => {
548
500
  if (curDatum || crosshairActive) return;
@@ -586,7 +538,10 @@ function attachDataChartInteractions(svg, opts = {}) {
586
538
  }
587
539
  };
588
540
  const legendListeners = [];
589
- if (legendEntries.length > 0 && seriesGroups.length > 1) {
541
+ const datumsHaveSeries = datums.some(
542
+ (d) => d.getAttribute("data-series-name") != null
543
+ );
544
+ if (legendEntries.length > 0 && (seriesGroups.length > 1 || datumsHaveSeries)) {
590
545
  for (const entry of legendEntries) {
591
546
  const name = entry.getAttribute("data-series-name");
592
547
  if (name == null) continue;
@@ -640,8 +595,11 @@ function attachDataChartInteractions(svg, opts = {}) {
640
595
  svg.removeEventListener("click", onClick);
641
596
  for (const [el, ev, fn] of legendListeners)
642
597
  el.removeEventListener(ev, fn);
598
+ for (const [el, ev, fn] of axisLabelListeners)
599
+ el.removeEventListener(ev, fn);
643
600
  if (overlay) overlay.remove();
644
601
  restorePt();
602
+ setAxisPin(null);
645
603
  clearHighlight();
646
604
  clearDim();
647
605
  },
@@ -832,12 +790,15 @@ var REGISTRY = [
832
790
  ...RACI_DIAGNOSTICS,
833
791
  ...TREEMAP_DIAGNOSTICS,
834
792
  ...EVENT_LINE_DIAGNOSTICS,
793
+ ...BODY_DIAGNOSTICS,
835
794
  ...VERSION_CONTROL_DIAGNOSTICS,
836
795
  ...ARROW_DIAGNOSTICS,
837
796
  ...MAP_DIAGNOSTICS,
838
797
  ...PERT_DIAGNOSTICS,
839
798
  ...GRAPH_DIAGNOSTICS,
840
- ...COLOR_DIAGNOSTICS
799
+ ...COLOR_DIAGNOSTICS,
800
+ ...SKETCH_DIAGNOSTICS,
801
+ ...FAMILY_DIAGNOSTICS
841
802
  ];
842
803
  function listDiagnosticCodes() {
843
804
  return [...REGISTRY].sort((a, b) => a.code.localeCompare(b.code));
@@ -848,7 +809,7 @@ function getDiagnosticSpec(code) {
848
809
 
849
810
  // src/index.ts
850
811
  async function render2(text, options) {
851
- const palette = options?.palette ?? palettes.slate;
812
+ const palette = typeof options?.palette === "string" ? getPalette(options.palette) : options?.palette ?? palettes.slate;
852
813
  const onError = options?.onError ?? "svg";
853
814
  const result = await render(text, {
854
815
  ...options?.theme !== void 0 && { theme: options.theme },
@@ -3,13 +3,13 @@ import {
3
3
  NODE_WIDTH,
4
4
  computeNodeSize,
5
5
  layoutBoxesAndLines
6
- } from "./chunk-IJZFN3HM.js";
7
- import "./chunk-JED6ZDEE.js";
6
+ } from "./chunk-TWQUYVP3.js";
7
+ import "./chunk-O7WP4ZD4.js";
8
8
  import "./chunk-6EK55ART.js";
9
- import "./chunk-TYS6CSS5.js";
9
+ import "./chunk-BCYVE3N5.js";
10
10
  import "./chunk-5DH3KYFH.js";
11
11
  import "./chunk-BMR4CIEO.js";
12
- import "./chunk-WCT3NYCV.js";
12
+ import "./chunk-5LWQH6QV.js";
13
13
  import "./chunk-FMDSF3OV.js";
14
14
  import "./chunk-NOTA6TEI.js";
15
15
  import "./chunk-CXK4DZH3.js";
@@ -20,4 +20,4 @@ export {
20
20
  computeNodeSize,
21
21
  layoutBoxesAndLines
22
22
  };
23
- //# sourceMappingURL=layout-HRBZPFCN.js.map
23
+ //# sourceMappingURL=layout-34CLNICW.js.map
@@ -6,11 +6,11 @@ import {
6
6
  layoutC4Context,
7
7
  layoutC4Deployment,
8
8
  rollUpContextRelationships
9
- } from "./chunk-QEBUY5NY.js";
10
- import "./chunk-QOOUC2J5.js";
11
- import "./chunk-WCT3NYCV.js";
12
- import "./chunk-QLCCJEJI.js";
13
- import "./chunk-Y3J7VR52.js";
9
+ } from "./chunk-CEHZOPGM.js";
10
+ import "./chunk-HQCHYB5F.js";
11
+ import "./chunk-5LWQH6QV.js";
12
+ import "./chunk-HBVD67XG.js";
13
+ import "./chunk-ZNQX6QWH.js";
14
14
  import "./chunk-TLVIHFRO.js";
15
15
  import "./chunk-CXK4DZH3.js";
16
16
  import "./chunk-5WRI5ZAA.js";
@@ -23,4 +23,4 @@ export {
23
23
  layoutC4Deployment,
24
24
  rollUpContextRelationships
25
25
  };
26
- //# sourceMappingURL=layout-5RA6QWR6.js.map
26
+ //# sourceMappingURL=layout-4Z5JM7PT.js.map
@@ -0,0 +1,9 @@
1
+ import {
2
+ layoutWireframe
3
+ } from "./chunk-6IUAK7RZ.js";
4
+ import "./chunk-5LWQH6QV.js";
5
+ import "./chunk-5WRI5ZAA.js";
6
+ export {
7
+ layoutWireframe
8
+ };
9
+ //# sourceMappingURL=layout-6RDJHS6E.js.map
@@ -2,12 +2,12 @@ import {
2
2
  fixEdgeWaypoints,
3
3
  layoutInfra,
4
4
  separateGroups
5
- } from "./chunk-Y2ZE3MSG.js";
6
- import "./chunk-WCT3NYCV.js";
5
+ } from "./chunk-C63UWAKM.js";
6
+ import "./chunk-5LWQH6QV.js";
7
7
  import "./chunk-5WRI5ZAA.js";
8
8
  export {
9
9
  fixEdgeWaypoints,
10
10
  layoutInfra,
11
11
  separateGroups
12
12
  };
13
- //# sourceMappingURL=layout-7QXCNOVS.js.map
13
+ //# sourceMappingURL=layout-7H4H46CS.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  layoutClassDiagram
3
- } from "./chunk-WBRZJOEC.js";
4
- import "./chunk-JED6ZDEE.js";
3
+ } from "./chunk-CMCR5WBW.js";
4
+ import "./chunk-O7WP4ZD4.js";
5
5
  import "./chunk-6EK55ART.js";
6
- import "./chunk-TYS6CSS5.js";
6
+ import "./chunk-BCYVE3N5.js";
7
7
  import "./chunk-5DH3KYFH.js";
8
8
  import "./chunk-BMR4CIEO.js";
9
- import "./chunk-WCT3NYCV.js";
9
+ import "./chunk-5LWQH6QV.js";
10
10
  import "./chunk-FMDSF3OV.js";
11
11
  import "./chunk-NOTA6TEI.js";
12
12
  import "./chunk-CXK4DZH3.js";
@@ -14,4 +14,4 @@ import "./chunk-5WRI5ZAA.js";
14
14
  export {
15
15
  layoutClassDiagram
16
16
  };
17
- //# sourceMappingURL=layout-46N4JJYK.js.map
17
+ //# sourceMappingURL=layout-7SKMFYHL.js.map