@diagrammo/dgmo 0.89.0 → 0.90.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 (208) hide show
  1. package/README.md +1 -1
  2. package/dist/advanced.d.ts +435 -15
  3. package/dist/advanced.js +356 -197
  4. package/dist/block.d.ts +1 -1
  5. package/dist/block.js +86 -63
  6. package/dist/{calculator-35YVW4QO.js → calculator-PX3JHKAS.js} +2 -2
  7. package/dist/{chart-meta-Bev5Ebjr.d.ts → chart-meta-B_WTMP0y.d.ts} +1 -1
  8. package/dist/chart-meta.d.ts +2 -2
  9. package/dist/chart-meta.js +17 -16
  10. package/dist/{chart-types-Bf8C5QQW.d.ts → chart-types-V2NcgN5O.d.ts} +4 -0
  11. package/dist/{charts-d3-KEQSUWKP.js → charts-d3-QW4ERNUE.js} +8 -7
  12. package/dist/{chunk-ECMA6XE2.js → chunk-2EDJPHXQ.js} +9 -9
  13. package/dist/{chunk-7WGCQE2E.js → chunk-2ZVLI6GQ.js} +1 -1
  14. package/dist/{chunk-UWKRPQZO.js → chunk-3BQCSQQJ.js} +16 -13
  15. package/dist/{chunk-7C2RAGPT.js → chunk-3HBR3YAN.js} +12 -12
  16. package/dist/chunk-3UR4F7FE.js +14 -0
  17. package/dist/{chunk-NIUO2TNR.js → chunk-4HG4PYHM.js} +197 -203
  18. package/dist/{chunk-NSR2CGV6.js → chunk-4IYJOXGS.js} +10 -10
  19. package/dist/{chunk-BOO24UMJ.js → chunk-4YO7VJTP.js} +1 -1
  20. package/dist/{chunk-YMFQLWZ2.js → chunk-54YUDXGP.js} +1 -1
  21. package/dist/{chunk-UG2XG57E.js → chunk-5M52RPAS.js} +2 -2
  22. package/dist/{chunk-QIOYTQDZ.js → chunk-5M6PMV5Z.js} +9 -9
  23. package/dist/{chunk-S2WE7TVK.js → chunk-5MDQMB6A.js} +1 -1
  24. package/dist/{chunk-WPL5PFXE.js → chunk-5TZPIKNV.js} +5 -5
  25. package/dist/{chunk-LFKSHDVI.js → chunk-62VWZ3SE.js} +5 -4
  26. package/dist/{chunk-PMNITNPR.js → chunk-64KSPLU2.js} +2 -1
  27. package/dist/{chunk-VEPIAUSK.js → chunk-6BQSDF77.js} +1 -5
  28. package/dist/{chunk-HUNDJTTH.js → chunk-A5EE66RQ.js} +1 -1
  29. package/dist/{chunk-JVZ7KFAX.js → chunk-AAC3XQWV.js} +2 -2
  30. package/dist/{chunk-7KPHRTND.js → chunk-AHWA36O7.js} +1 -1
  31. package/dist/{chunk-FKZ2Y3Q5.js → chunk-C4W62JZO.js} +2 -2
  32. package/dist/{chunk-C4FRGZGX.js → chunk-CDT33RHG.js} +1 -1
  33. package/dist/{chunk-B3S76BZO.js → chunk-COPSI54O.js} +3 -3
  34. package/dist/{chunk-GUTZCRBT.js → chunk-CUY56BK4.js} +2 -2
  35. package/dist/{chunk-HSRQDWV7.js → chunk-CYF2X3CG.js} +2 -11
  36. package/dist/{chunk-NGC3IZRY.js → chunk-DNMICILX.js} +2 -2
  37. package/dist/{chunk-N4BBSDWI.js → chunk-DXPT2HPH.js} +140 -151
  38. package/dist/{chunk-TAP2NZEU.js → chunk-EB7AEM2H.js} +13 -13
  39. package/dist/{chunk-3AQJNY65.js → chunk-EEYQFJVK.js} +149 -43
  40. package/dist/{chunk-SLQT3JP3.js → chunk-EK7JYFCL.js} +1 -1
  41. package/dist/{chunk-3C2FWS2J.js → chunk-EWERNTOX.js} +1 -1
  42. package/dist/{chunk-4AJKOUBO.js → chunk-FDRHBQUG.js} +17 -15
  43. package/dist/{chunk-FJNXXGTR.js → chunk-FS2LZBHG.js} +2 -2
  44. package/dist/{chunk-LPYYZCSI.js → chunk-G5BGW4BX.js} +1 -1
  45. package/dist/{chunk-IQ6P3HDE.js → chunk-GQVXYRPC.js} +2 -2
  46. package/dist/{chunk-MHAYUS65.js → chunk-GXP344YZ.js} +3 -3
  47. package/dist/{chunk-HAMF4F3P.js → chunk-GYBKG4Z6.js} +5 -5
  48. package/dist/{chunk-Q6SQISHT.js → chunk-HIVJBESO.js} +306 -68
  49. package/dist/{chunk-ID2K3IHI.js → chunk-HLE5QGZJ.js} +1 -1
  50. package/dist/{chunk-L5AFONQU.js → chunk-HX2KJEPD.js} +1 -1
  51. package/dist/{chunk-SOPM5PLO.js → chunk-I6FWHICD.js} +13 -13
  52. package/dist/{chunk-3RYBTEF5.js → chunk-I74AQRVD.js} +6 -12
  53. package/dist/{chunk-NRPELUB6.js → chunk-ICYPGWOV.js} +2 -2
  54. package/dist/chunk-IHK3Y2HG.js +781 -0
  55. package/dist/{chunk-RXIKESRI.js → chunk-IMHNZITR.js} +2 -2
  56. package/dist/{chunk-DPSMX4EY.js → chunk-IRVQT4GR.js} +3 -3
  57. package/dist/{chunk-AZ24RI5L.js → chunk-J3ODKAWN.js} +2 -2
  58. package/dist/{chunk-BB6QKWHZ.js → chunk-JRQ4LBQI.js} +10 -10
  59. package/dist/{chunk-MY6GUH26.js → chunk-JX4RCC6B.js} +2 -2
  60. package/dist/{chunk-XUCQVKLQ.js → chunk-K4GUO7FV.js} +4 -4
  61. package/dist/{chunk-J64NZ6NF.js → chunk-KSZHIAI2.js} +1 -1
  62. package/dist/{chunk-CUYHST3B.js → chunk-LBRHDWEA.js} +1 -1
  63. package/dist/{chunk-GSYZZFI5.js → chunk-LC5LY5V2.js} +2 -2
  64. package/dist/{chunk-WP22MHH6.js → chunk-LNQDICFJ.js} +9 -9
  65. package/dist/{chunk-PIXJL77H.js → chunk-M6J25PAZ.js} +1 -1
  66. package/dist/{chunk-UQLHKLF4.js → chunk-MIVSVEK4.js} +8 -8
  67. package/dist/{chunk-6K7RODXG.js → chunk-MKFQ5E7J.js} +1 -1
  68. package/dist/{chunk-44GP7PD5.js → chunk-MPJQMMBZ.js} +12 -0
  69. package/dist/{chunk-WQ6G6FFM.js → chunk-NFWRIC2V.js} +1 -1
  70. package/dist/{chunk-7SX4IY6T.js → chunk-NJYA4QSN.js} +1 -1
  71. package/dist/{chunk-RU725VCJ.js → chunk-NMKLX57Y.js} +10 -35
  72. package/dist/{chunk-RPKBWJBB.js → chunk-NP2SE6MQ.js} +1 -1
  73. package/dist/{chunk-ITSBBQTH.js → chunk-NUYWNKHH.js} +2 -2
  74. package/dist/{chunk-DV2VEJCC.js → chunk-NWSPPGIE.js} +6 -6
  75. package/dist/{chunk-AYOVY75O.js → chunk-NY56FM55.js} +3 -3
  76. package/dist/{chunk-MFW6P7WH.js → chunk-OSIUWQ3N.js} +3 -3
  77. package/dist/{chunk-2GM7N5TV.js → chunk-OWJVSJLA.js} +9 -9
  78. package/dist/{chunk-GDJW64XE.js → chunk-OYKNMFUY.js} +1 -1
  79. package/dist/{chunk-4R6OMKXB.js → chunk-PIHAUVA4.js} +5 -5
  80. package/dist/{chunk-C7QRRTAW.js → chunk-PNCKZFPE.js} +2 -2
  81. package/dist/{chunk-DDPGEGHB.js → chunk-POBNN5DP.js} +2 -2
  82. package/dist/{chunk-XJ2TBXHA.js → chunk-PQ5NW3QZ.js} +8 -8
  83. package/dist/{chunk-FKLE6QA3.js → chunk-PXEUQ7EG.js} +12 -12
  84. package/dist/{chunk-WEF6MXFG.js → chunk-QOZ4RVQY.js} +8 -8
  85. package/dist/{chunk-LR6RRDWN.js → chunk-QRIW46LR.js} +5 -5
  86. package/dist/{chunk-7W4XLIVH.js → chunk-R2PTZ6QM.js} +10 -10
  87. package/dist/{chunk-M2BCY7H3.js → chunk-RCBHL2B5.js} +189 -136
  88. package/dist/{chunk-66YFDTT6.js → chunk-RJYFHEP4.js} +3 -3
  89. package/dist/{chunk-P3SKSKJI.js → chunk-RNXX2GOQ.js} +2 -2
  90. package/dist/{chunk-RGWYZR3S.js → chunk-RRBV4HIM.js} +2 -2
  91. package/dist/{chunk-44FTCIRI.js → chunk-RY5RRKYN.js} +8 -8
  92. package/dist/{chunk-Y7PSAHAY.js → chunk-S4LLHDGK.js} +3 -3
  93. package/dist/chunk-S7C32S2T.js +825 -0
  94. package/dist/{chunk-JRUEIRJB.js → chunk-SLO22FPS.js} +2 -2
  95. package/dist/{chunk-47E5UTXE.js → chunk-SMEVBJJJ.js} +2 -2
  96. package/dist/{chunk-QFHWYWQL.js → chunk-SVQDLYX7.js} +1 -1
  97. package/dist/{chunk-WP2RLGDI.js → chunk-TCX5PMEY.js} +1 -1
  98. package/dist/{chunk-EXKCRXPO.js → chunk-TQ644YGV.js} +12 -12
  99. package/dist/{chunk-WRCAH3UO.js → chunk-U762HK4D.js} +15 -15
  100. package/dist/{chunk-LYLNMN77.js → chunk-VCHYS3RD.js} +8 -3
  101. package/dist/{chunk-7UDAIP6W.js → chunk-WHRIN7N3.js} +1 -1
  102. package/dist/{chunk-ZUCXFXLD.js → chunk-X3WYJ5T7.js} +2 -2
  103. package/dist/{chunk-UKJLPA7R.js → chunk-X6IZP2BD.js} +1 -1
  104. package/dist/{chunk-LCJURK7L.js → chunk-Y6GQQ4Y2.js} +1 -1
  105. package/dist/{chunk-HTWH2XQL.js → chunk-YE7D2S75.js} +2 -2
  106. package/dist/{chunk-DZPHN2WN.js → chunk-YKGUSW6D.js} +10 -10
  107. package/dist/{chunk-K5XT7NHD.js → chunk-YWRZG6GN.js} +10 -10
  108. package/dist/{chunk-JQ57AWDL.js → chunk-ZJ4PYTCK.js} +1 -1
  109. package/dist/completion-registry.d.ts +6 -0
  110. package/dist/completion-registry.js +62 -6
  111. package/dist/{d3-B6524aaP.d.ts → d3-2S3PrXik.d.ts} +11 -0
  112. package/dist/dgmo-router-BJBXSZMV.js +94 -0
  113. package/dist/{dimensions-7MF7VSGS.js → dimensions-AMA2S7RO.js} +5 -5
  114. package/dist/editor.js +12 -0
  115. package/dist/{flowchart-parser-GG7XBLQH.js → flowchart-parser-ADZIFVCH.js} +3 -3
  116. package/dist/{flowchart-renderer-DZQZRL2F.js → flowchart-renderer-CAG6ZNJ6.js} +5 -5
  117. package/dist/highlight.js +12 -0
  118. package/dist/index.d.ts +26 -5
  119. package/dist/index.js +83 -56
  120. package/dist/{layout-EFEZ533S.js → layout-6OSF2UGP.js} +3 -3
  121. package/dist/{layout-IGAVGDME.js → layout-C6MKMOBI.js} +1 -1
  122. package/dist/{layout-XUW444O5.js → layout-QS2SESBU.js} +2 -2
  123. package/dist/{layout-PP36LUTA.js → layout-T2PGKQUQ.js} +3 -3
  124. package/dist/{layout-Q3RYSODA.js → layout-UFB2O4AO.js} +3 -3
  125. package/dist/{layout-MSSHF45T.js → layout-UPQGIT3N.js} +2 -2
  126. package/dist/{layout-6L3BIFEZ.js → layout-VQ2USZJ3.js} +3 -3
  127. package/dist/{layout-DXVAYF6W.js → layout-VRJ5YFUE.js} +2 -2
  128. package/dist/{palettes-WZAIQTEG.js → palettes-WQHELGVQ.js} +2 -1
  129. package/dist/{parser-KYPP2DX6.js → parser-223VOHSB.js} +4 -4
  130. package/dist/{parser-JOOAVBJI.js → parser-2PNV7UI3.js} +3 -3
  131. package/dist/{parser-GZ3LVF72.js → parser-3MGA2MTM.js} +2 -2
  132. package/dist/{parser-NOANDFJ4.js → parser-4AR25MAS.js} +2 -2
  133. package/dist/{parser-337TACHB.js → parser-4B2PIXHI.js} +3 -3
  134. package/dist/{parser-KZMJNKDW.js → parser-57YQEEMC.js} +2 -2
  135. package/dist/{parser-J4DVNL4W.js → parser-5ZD2NKGU.js} +4 -4
  136. package/dist/{parser-LANGKWRG.js → parser-6LMB7BQQ.js} +2 -2
  137. package/dist/parser-AL6YL7KM.js +12 -0
  138. package/dist/{parser-5655XSOR.js → parser-B2FWP7ZO.js} +3 -3
  139. package/dist/{parser-GEKPWSSK.js → parser-BJDQX4KV.js} +3 -3
  140. package/dist/{parser-UTXFJG4X.js → parser-CA5WC5HF.js} +3 -3
  141. package/dist/{parser-KZMALSB2.js → parser-E5HFYL7B.js} +4 -4
  142. package/dist/{parser-GCCWMBTU.js → parser-ESZ5J5IJ.js} +5 -4
  143. package/dist/{parser-256EIWB2.js → parser-FDXUQ5TI.js} +2 -2
  144. package/dist/{parser-AN3MGHRL.js → parser-FV6RGALQ.js} +3 -3
  145. package/dist/{parser-DGF3ZEO6.js → parser-HPR7G7F6.js} +3 -3
  146. package/dist/{parser-OKB64MMN.js → parser-I4HZVIHX.js} +3 -3
  147. package/dist/{parser-P4TOQYNN.js → parser-J3BM2AP2.js} +3 -3
  148. package/dist/{parser-NPXPJHWN.js → parser-JFNDS5E5.js} +3 -3
  149. package/dist/{parser-TL3JA4RI.js → parser-KFIK3EOO.js} +3 -3
  150. package/dist/{parser-IMM2JJX3.js → parser-LGUT7KKH.js} +4 -4
  151. package/dist/{parser-KFYRTGTC.js → parser-MYRGCK7Q.js} +4 -4
  152. package/dist/{parser-ZLKYDFI5.js → parser-NAUUUCI3.js} +3 -3
  153. package/dist/{parser-DHSFIUPU.js → parser-NJ5VEZA3.js} +3 -3
  154. package/dist/{parser-OVQTTTUJ.js → parser-OFTMA36M.js} +2 -2
  155. package/dist/{parser-AKBVJHMK.js → parser-OV2WDSEV.js} +3 -3
  156. package/dist/{parser-LGS65QPN.js → parser-Q3UAOLEZ.js} +2 -2
  157. package/dist/{parser-XYY5NHP4.js → parser-R6OETHWM.js} +2 -2
  158. package/dist/{parser-7OEE7QT6.js → parser-RARXAHC7.js} +2 -2
  159. package/dist/{parser-NGHQQGD2.js → parser-T2RVIRDG.js} +3 -3
  160. package/dist/{parser-WEVTMBJ5.js → parser-W2DWCCLO.js} +3 -3
  161. package/dist/{parser-HCGXNHHL.js → parser-WFY4ZJUW.js} +3 -3
  162. package/dist/{parser-SA3RAJFS.js → parser-WSONWDFN.js} +2 -2
  163. package/dist/{renderer-CHQZES6G.js → renderer-3N64GVNM.js} +2 -2
  164. package/dist/{renderer-JR2XNZAH.js → renderer-3QM2DK7I.js} +5 -5
  165. package/dist/{renderer-XHEMXBQM.js → renderer-3W5T3IU6.js} +5 -5
  166. package/dist/{renderer-2ZQ6DPVD.js → renderer-4Z7FRQ2A.js} +2 -2
  167. package/dist/{renderer-EAORWLVK.js → renderer-52CHSV6S.js} +7 -7
  168. package/dist/{renderer-ZXQXRNDR.js → renderer-6OOJNEQE.js} +6 -6
  169. package/dist/{renderer-IR5GGAPB.js → renderer-A3PMPUO6.js} +11 -7
  170. package/dist/{renderer-3AD4NDF5.js → renderer-AM4VZSBQ.js} +6 -6
  171. package/dist/{renderer-P4XCRNCY.js → renderer-B3CPMS5R.js} +6 -6
  172. package/dist/{renderer-VGQMJC5K.js → renderer-B4KE3NM4.js} +11 -10
  173. package/dist/renderer-COSJM7UG.js +80 -0
  174. package/dist/{renderer-NAA7D33G.js → renderer-FXCVH2M5.js} +10 -9
  175. package/dist/{renderer-J4OS77PK.js → renderer-GWH5ACJ5.js} +3 -3
  176. package/dist/{renderer-7HOSI6JJ.js → renderer-IG72UJHW.js} +4 -4
  177. package/dist/{renderer-QQHQY3GT.js → renderer-IO3D5E4E.js} +5 -5
  178. package/dist/{renderer-6OQM32X3.js → renderer-IPDCAACY.js} +3 -3
  179. package/dist/{renderer-VYWCMRWA.js → renderer-KK5BU5K2.js} +5 -5
  180. package/dist/{renderer-7MCC6GKH.js → renderer-LD2H7WGP.js} +2 -2
  181. package/dist/{renderer-DCJ4AQ3N.js → renderer-MK47ESCB.js} +5 -5
  182. package/dist/{renderer-BLHN3RCY.js → renderer-MRMFYYZT.js} +2 -2
  183. package/dist/{renderer-XFEZ5UBE.js → renderer-O5RQHGK2.js} +6 -6
  184. package/dist/{renderer-43ESBXVY.js → renderer-OA5D3ZKB.js} +6 -6
  185. package/dist/{renderer-YTEZK3GC.js → renderer-ON4PTUHJ.js} +7 -7
  186. package/dist/{renderer-JRVY7HAD.js → renderer-OPDSKCQS.js} +4 -4
  187. package/dist/{renderer-FCXRDYSJ.js → renderer-PLRMST57.js} +7 -7
  188. package/dist/{renderer-WB75JME5.js → renderer-PSMRAL72.js} +6 -6
  189. package/dist/{renderer-7L7J4DHO.js → renderer-PXGCR7N4.js} +7 -6
  190. package/dist/{renderer-CEIX5JPA.js → renderer-R7OYCJEA.js} +2 -2
  191. package/dist/{renderer-DBNDLKPE.js → renderer-SBXCPA3S.js} +7 -7
  192. package/dist/{renderer-4JE5ORRO.js → renderer-TMQNTUQS.js} +7 -7
  193. package/dist/renderer-TTKTBB4C.js +46 -0
  194. package/dist/{renderer-5GZNGZU5.js → renderer-UVFGW2O6.js} +9 -7
  195. package/dist/{renderer-7VQOKAII.js → renderer-W22GX72R.js} +6 -6
  196. package/dist/{renderer-radial-NA5DVBG4.js → renderer-radial-42LVSG74.js} +5 -5
  197. package/dist/{state-parser-FE3RF6XY.js → state-parser-ROKY5KSI.js} +4 -4
  198. package/dist/{state-renderer-4S2C2CHB.js → state-renderer-MMG23G4W.js} +8 -8
  199. package/dist/{themes-CzuBdx1T.d.ts → themes-Cm2YBcT8.d.ts} +38 -2
  200. package/docs/ai-integration.md +4 -3
  201. package/docs/language-reference.md +162 -12
  202. package/gallery/fixtures/sketch.dgmo +2 -2
  203. package/gallery/fixtures/whiteboard.dgmo +18 -0
  204. package/package.json +2 -1
  205. package/dist/dgmo-router-7WANZOBD.js +0 -92
  206. package/dist/renderer-TJJGFQGT.js +0 -78
  207. package/dist/{chunk-CX6OH5WP.js → chunk-A5PUOHIS.js} +3 -3
  208. package/dist/{chunk-5LE2CTLS.js → chunk-NTJ5HVV6.js} +3 -3
@@ -14,14 +14,14 @@ import {
14
14
  } from "./chunk-ICLB27PZ.js";
15
15
  import {
16
16
  allTasks
17
- } from "./chunk-3RYBTEF5.js";
17
+ } from "./chunk-I74AQRVD.js";
18
18
  import {
19
19
  VARIANTS
20
20
  } from "./chunk-4WW3SGMH.js";
21
21
  import {
22
22
  fillModeFromOptions,
23
23
  legendSuppressed
24
- } from "./chunk-44GP7PD5.js";
24
+ } from "./chunk-MPJQMMBZ.js";
25
25
  import {
26
26
  measureText,
27
27
  truncateText,
@@ -9,7 +9,7 @@ import {
9
9
  stripDefaultModifier,
10
10
  tagAttrKey,
11
11
  validateTagGroupNames
12
- } from "./chunk-L5AFONQU.js";
12
+ } from "./chunk-HX2KJEPD.js";
13
13
  import {
14
14
  AliasRegistry,
15
15
  KANBAN_REGISTRY,
@@ -22,7 +22,7 @@ import {
22
22
  splitNameAndMeta,
23
23
  warnUnknownMetaKeys,
24
24
  withTagAliases
25
- } from "./chunk-44GP7PD5.js";
25
+ } from "./chunk-MPJQMMBZ.js";
26
26
  import {
27
27
  resolveColorWithDiagnostic
28
28
  } from "./chunk-2M4IGSCY.js";
@@ -332,7 +332,7 @@ function parseKanban(content, palette) {
332
332
  const groupKey = metaAliasMap.get(tagKey.toLowerCase()) ?? tagKey.toLowerCase();
333
333
  const validValues = tagValueSets.get(groupKey);
334
334
  if (validValues && !validValues.has(tagValue.toLowerCase())) {
335
- const entries = result.tagGroups.find((g) => g.name.toLowerCase() === groupKey)?.entries.map((e) => e.value);
335
+ const entries = result.tagGroups.find((g) => tagAttrKey(g.name) === groupKey)?.entries.map((e) => e.value);
336
336
  let msg = `Unknown tag value "${tagValue}" for group "${groupKey}"`;
337
337
  if (entries) {
338
338
  const hint = suggest(tagValue, entries);
@@ -40,10 +40,10 @@ import {
40
40
  } from "./chunk-ICLB27PZ.js";
41
41
  import {
42
42
  parseFlowchart
43
- } from "./chunk-JRUEIRJB.js";
43
+ } from "./chunk-SLO22FPS.js";
44
44
  import {
45
45
  fillModeFromOptions
46
- } from "./chunk-44GP7PD5.js";
46
+ } from "./chunk-MPJQMMBZ.js";
47
47
  import {
48
48
  measureText
49
49
  } from "./chunk-KAO7JL4I.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  layoutOrg
3
- } from "./chunk-IQ6P3HDE.js";
3
+ } from "./chunk-GQVXYRPC.js";
4
4
  import {
5
5
  renderCollapseBar,
6
6
  renderNodeCard
@@ -8,6 +8,9 @@ import {
8
8
  import {
9
9
  ScaleContext
10
10
  } from "./chunk-24YPR5EH.js";
11
+ import {
12
+ renderIntegratedLegend
13
+ } from "./chunk-NJYA4QSN.js";
11
14
  import {
12
15
  CARD_RADIUS,
13
16
  COLLAPSE_BAR_HEIGHT,
@@ -29,29 +32,26 @@ import {
29
32
  extractExportSvg,
30
33
  runInExportContainer
31
34
  } from "./chunk-SEKNYIMO.js";
35
+ import {
36
+ getMaxLegendReservedHeight
37
+ } from "./chunk-NS7L7YKH.js";
32
38
  import {
33
39
  TITLE_FONT_SIZE,
34
40
  TITLE_FONT_WEIGHT
35
41
  } from "./chunk-VLC6WNRD.js";
36
- import {
37
- renderIntegratedLegend
38
- } from "./chunk-7SX4IY6T.js";
39
- import {
40
- getMaxLegendReservedHeight
41
- } from "./chunk-NS7L7YKH.js";
42
42
  import {
43
43
  FONT_FAMILY
44
44
  } from "./chunk-ICLB27PZ.js";
45
45
  import {
46
46
  parseOrg
47
- } from "./chunk-FJNXXGTR.js";
47
+ } from "./chunk-FS2LZBHG.js";
48
48
  import {
49
49
  resolveTagColor,
50
50
  tagAttrKey
51
- } from "./chunk-L5AFONQU.js";
51
+ } from "./chunk-HX2KJEPD.js";
52
52
  import {
53
53
  fillModeFromOptions
54
- } from "./chunk-44GP7PD5.js";
54
+ } from "./chunk-MPJQMMBZ.js";
55
55
  import {
56
56
  EYE_CLOSED_PATH,
57
57
  EYE_OPEN_PATH,
@@ -9,13 +9,13 @@ import {
9
9
  tagAttrKey,
10
10
  validateTagGroupNames,
11
11
  validateTagValues
12
- } from "./chunk-L5AFONQU.js";
12
+ } from "./chunk-HX2KJEPD.js";
13
13
  import {
14
14
  extractColor,
15
15
  fillModeFromToken,
16
16
  measureIndent,
17
17
  parseFirstLine
18
- } from "./chunk-44GP7PD5.js";
18
+ } from "./chunk-MPJQMMBZ.js";
19
19
  import {
20
20
  formatDgmoError,
21
21
  makeDgmoError,
@@ -7,6 +7,9 @@ import {
7
7
  import {
8
8
  ScaleContext
9
9
  } from "./chunk-24YPR5EH.js";
10
+ import {
11
+ renderIntegratedLegend
12
+ } from "./chunk-NJYA4QSN.js";
10
13
  import {
11
14
  ARROWHEAD_HEIGHT,
12
15
  ARROWHEAD_WIDTH
@@ -16,15 +19,12 @@ import {
16
19
  TITLE_FONT_WEIGHT,
17
20
  TITLE_Y
18
21
  } from "./chunk-VLC6WNRD.js";
19
- import {
20
- renderIntegratedLegend
21
- } from "./chunk-7SX4IY6T.js";
22
22
  import {
23
23
  FONT_FAMILY
24
24
  } from "./chunk-ICLB27PZ.js";
25
25
  import {
26
26
  fillModeFromOptions
27
- } from "./chunk-44GP7PD5.js";
27
+ } from "./chunk-MPJQMMBZ.js";
28
28
  import {
29
29
  LEGEND_HEIGHT
30
30
  } from "./chunk-I6GGMCTV.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  extractColor,
3
3
  measureIndent
4
- } from "./chunk-44GP7PD5.js";
4
+ } from "./chunk-MPJQMMBZ.js";
5
5
  import {
6
6
  makeDgmoError
7
7
  } from "./chunk-BYU54C3S.js";
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  injectDefaultTagMetadata,
12
12
  resolveTagColor
13
- } from "./chunk-L5AFONQU.js";
13
+ } from "./chunk-HX2KJEPD.js";
14
14
  import {
15
15
  measureText,
16
16
  truncateText
@@ -18,7 +18,7 @@ import {
18
18
  stripDefaultModifier,
19
19
  tagAttrKey,
20
20
  validateTagGroupNames
21
- } from "./chunk-L5AFONQU.js";
21
+ } from "./chunk-HX2KJEPD.js";
22
22
  import {
23
23
  AliasRegistry,
24
24
  C4_REGISTRY,
@@ -30,7 +30,7 @@ import {
30
30
  splitNameAndMeta,
31
31
  warnUnknownMetaKeys,
32
32
  withTagAliases
33
- } from "./chunk-44GP7PD5.js";
33
+ } from "./chunk-MPJQMMBZ.js";
34
34
  import {
35
35
  formatDgmoError,
36
36
  makeDgmoError,
@@ -4,10 +4,13 @@ import {
4
4
  import {
5
5
  computeNodeSizing,
6
6
  layoutPert
7
- } from "./chunk-PMNITNPR.js";
7
+ } from "./chunk-64KSPLU2.js";
8
8
  import {
9
9
  ScaleContext
10
10
  } from "./chunk-24YPR5EH.js";
11
+ import {
12
+ renderIntegratedLegend
13
+ } from "./chunk-NJYA4QSN.js";
11
14
  import {
12
15
  ARROWHEAD_HEIGHT,
13
16
  ARROWHEAD_WIDTH,
@@ -30,6 +33,9 @@ import {
30
33
  import {
31
34
  serializeSvg
32
35
  } from "./chunk-OOCVGX4W.js";
36
+ import {
37
+ getLegendExtent
38
+ } from "./chunk-NS7L7YKH.js";
33
39
  import {
34
40
  CAPTION_BOX_PADDING_X,
35
41
  CAPTION_BOX_PADDING_Y,
@@ -41,18 +47,12 @@ import {
41
47
  TITLE_FONT_WEIGHT,
42
48
  TITLE_Y
43
49
  } from "./chunk-VLC6WNRD.js";
44
- import {
45
- renderIntegratedLegend
46
- } from "./chunk-7SX4IY6T.js";
47
- import {
48
- getLegendExtent
49
- } from "./chunk-NS7L7YKH.js";
50
50
  import {
51
51
  FONT_FAMILY
52
52
  } from "./chunk-ICLB27PZ.js";
53
53
  import {
54
54
  parsePert
55
- } from "./chunk-JVZ7KFAX.js";
55
+ } from "./chunk-AAC3XQWV.js";
56
56
  import {
57
57
  addCalendarDays,
58
58
  formatDuration,
@@ -65,7 +65,7 @@ import {
65
65
  resolveActiveTagGroup,
66
66
  resolveGroupTagColor,
67
67
  resolveTagColor
68
- } from "./chunk-L5AFONQU.js";
68
+ } from "./chunk-HX2KJEPD.js";
69
69
  import {
70
70
  LEGEND_HEIGHT
71
71
  } from "./chunk-I6GGMCTV.js";
@@ -5,7 +5,7 @@ import {
5
5
  splitNameAndMeta,
6
6
  tryParseSharedOption,
7
7
  warnUnknownMetaKeys
8
- } from "./chunk-44GP7PD5.js";
8
+ } from "./chunk-MPJQMMBZ.js";
9
9
  import {
10
10
  makeDgmoError,
11
11
  makeFail
@@ -1,21 +1,21 @@
1
+ import {
2
+ renderIntegratedLegend
3
+ } from "./chunk-NJYA4QSN.js";
1
4
  import {
2
5
  EDGE_DASH
3
6
  } from "./chunk-XCKNFFKM.js";
4
7
  import {
5
8
  layoutInlineHeader
6
9
  } from "./chunk-CNUN5GO6.js";
10
+ import {
11
+ getLegendExtent,
12
+ getMaxLegendReservedHeight
13
+ } from "./chunk-NS7L7YKH.js";
7
14
  import {
8
15
  TITLE_FONT_SIZE,
9
16
  TITLE_FONT_WEIGHT,
10
17
  TITLE_Y
11
18
  } from "./chunk-VLC6WNRD.js";
12
- import {
13
- renderIntegratedLegend
14
- } from "./chunk-7SX4IY6T.js";
15
- import {
16
- getLegendExtent,
17
- getMaxLegendReservedHeight
18
- } from "./chunk-NS7L7YKH.js";
19
19
  import {
20
20
  FONT_FAMILY
21
21
  } from "./chunk-ICLB27PZ.js";
@@ -25,7 +25,7 @@ import {
25
25
  import {
26
26
  resolveTagColor,
27
27
  tagAttrKey
28
- } from "./chunk-L5AFONQU.js";
28
+ } from "./chunk-HX2KJEPD.js";
29
29
  import {
30
30
  LEGEND_GROUP_GAP
31
31
  } from "./chunk-I6GGMCTV.js";
@@ -5,7 +5,7 @@ import {
5
5
  parseFirstLine,
6
6
  splitNameAndMeta,
7
7
  warnUnknownMetaKeys
8
- } from "./chunk-44GP7PD5.js";
8
+ } from "./chunk-MPJQMMBZ.js";
9
9
  import {
10
10
  makeDgmoError,
11
11
  makeFail,
@@ -135,6 +135,11 @@ var chartTypesData = [
135
135
  description: "GUI-first constrained canvas: uniformly-sized shapes placed freely on a snap grid, arrows between them, meaning through tags \u2014 the markup is generated by the canvas editor",
136
136
  beta: true
137
137
  },
138
+ {
139
+ id: "whiteboard",
140
+ description: "Free-form whiteboard on an infinite canvas: rectangles, ellipses, databases, queues, free arrows, text, pasted images and freehand ink at pixel positions \u2014 drawn in the canvas; AI writes shapes, arrows and text, never ink",
141
+ beta: true
142
+ },
138
143
  {
139
144
  id: "goal",
140
145
  description: "Single progress-toward-a-target value (now vs target) as a progress bar, thermometer, or gauge \u2014 KPIs, fundraising, quotas, completion"
@@ -569,6 +574,13 @@ var DIRECTIVES_REGISTRY = [
569
574
  { token: "alert", category: "control" },
570
575
  { token: "progress", category: "control" },
571
576
  { token: "mobile", category: "control" },
577
+ // Whiteboard element leaders (§39). `image` is shared with wireframe above
578
+ // and `text` stays an ER modifier; `database` / `queue` are left plain
579
+ // because sketch and sequence use them as values, not line leaders.
580
+ { token: "rectangle", category: "control" },
581
+ { token: "ellipse", category: "control" },
582
+ { token: "arrow", category: "control" },
583
+ { token: "ink", category: "control" },
572
584
  // ── Kanban status keywords (STATUS) ──────────────────────
573
585
  { token: "na", category: "status" },
574
586
  { token: "todo", category: "status" },
@@ -5,7 +5,7 @@ import {
5
5
  splitNameAndMeta,
6
6
  tryParseSharedOption,
7
7
  warnUnknownMetaKeys
8
- } from "./chunk-44GP7PD5.js";
8
+ } from "./chunk-MPJQMMBZ.js";
9
9
  import {
10
10
  makeDgmoError,
11
11
  makeFail
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-ICLB27PZ.js";
7
7
  import {
8
8
  tagAttrKey
9
- } from "./chunk-L5AFONQU.js";
9
+ } from "./chunk-HX2KJEPD.js";
10
10
  import {
11
11
  CONTROLS_ICON_PATH,
12
12
  LEGEND_DOT_R,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SKETCH_DIAGNOSTIC_CODES
3
- } from "./chunk-DV2VEJCC.js";
3
+ } from "./chunk-NWSPPGIE.js";
4
4
  import {
5
5
  parseInArrowLabel
6
6
  } from "./chunk-N7VMGZCU.js";
@@ -16,7 +16,7 @@ import {
16
16
  tagAttrKey,
17
17
  validateTagGroupNames,
18
18
  validateTagValues
19
- } from "./chunk-L5AFONQU.js";
19
+ } from "./chunk-HX2KJEPD.js";
20
20
  import {
21
21
  SKETCH_REGISTRY,
22
22
  extractColor,
@@ -28,7 +28,7 @@ import {
28
28
  stripQuotes,
29
29
  warnUnknownMetaKeys,
30
30
  withTagAliases
31
- } from "./chunk-44GP7PD5.js";
31
+ } from "./chunk-MPJQMMBZ.js";
32
32
  import {
33
33
  NAME_DIAGNOSTIC_CODES,
34
34
  formatDgmoError,
@@ -38,19 +38,6 @@ import {
38
38
  suggest
39
39
  } from "./chunk-BYU54C3S.js";
40
40
 
41
- // src/sketch/types.ts
42
- var SKETCH_SHAPE_KINDS = [
43
- "rectangle",
44
- "database",
45
- "queue",
46
- "person",
47
- "document",
48
- "note"
49
- ];
50
- function isSketchShapeKind(value) {
51
- return SKETCH_SHAPE_KINDS.includes(value);
52
- }
53
-
54
41
  // src/sketch/parser.ts
55
42
  var EDGE_FORMS = [
56
43
  { re: /^<-(.+?)->\s*(.+)$/, heads: "both", dashed: false, labeled: true },
@@ -137,25 +124,19 @@ function parseSketch(content, palette) {
137
124
  return { c, r };
138
125
  };
139
126
  const liftReserved = (meta, lineNumber) => {
140
- let shape = "rectangle";
141
127
  const shapeRaw = meta["shape"];
142
128
  if (shapeRaw !== void 0) {
143
- const kind = shapeRaw.trim().toLowerCase();
144
- if (kind === "rectangle" || isSketchShapeKind(kind)) {
145
- shape = kind;
146
- } else {
147
- warn(
148
- lineNumber,
149
- `Unknown shape "${shapeRaw}" \u2014 rendered as a rectangle (valid: database, queue, person, document, note)`,
150
- SKETCH_DIAGNOSTIC_CODES.UNKNOWN_SHAPE
151
- );
152
- }
129
+ pushError(
130
+ lineNumber,
131
+ `shape: ${shapeRaw.trim()} is not supported in sketch \u2014 every box is a plain rectangle; remove the shape: clause`,
132
+ SKETCH_DIAGNOSTIC_CODES.SHAPE_UNSUPPORTED
133
+ );
153
134
  delete meta["shape"];
154
135
  }
155
136
  const at = parseAt(meta["at"], lineNumber);
156
137
  delete meta["at"];
157
138
  delete meta["collapsed"];
158
- return { shape, at };
139
+ return { at };
159
140
  };
160
141
  const addShape = (trimmed, lineNumber, box) => {
161
142
  const snm = splitNameAndMeta(
@@ -179,7 +160,7 @@ function parseSketch(content, palette) {
179
160
  (m) => warn(lineNumber, m),
180
161
  snm.name
181
162
  );
182
- const { shape, at } = liftReserved(meta, lineNumber);
163
+ const { at } = liftReserved(meta, lineNumber);
183
164
  const norm = normalizeName(label);
184
165
  if (snm.alias !== void 0 && aliasIndex.has(snm.alias)) {
185
166
  warn(
@@ -196,9 +177,6 @@ function parseSketch(content, palette) {
196
177
  if (!(k in first.metadata)) first.metadata[k] = v;
197
178
  }
198
179
  if (first.at === null && at !== null) first.at = at;
199
- if (first.shape === "rectangle" && shape !== "rectangle") {
200
- first.shape = shape;
201
- }
202
180
  warn(
203
181
  lineNumber,
204
182
  nameMergedMessage({
@@ -217,7 +195,6 @@ function parseSketch(content, palette) {
217
195
  id,
218
196
  label,
219
197
  ...alias !== void 0 && { alias },
220
- shape,
221
198
  at,
222
199
  metadata: meta,
223
200
  ...box !== null && { boxLabel: box.label },
@@ -658,7 +635,5 @@ ${descLine}`;
658
635
  }
659
636
 
660
637
  export {
661
- SKETCH_SHAPE_KINDS,
662
- isSketchShapeKind,
663
638
  parseSketch
664
639
  };
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-ICLB27PZ.js";
11
11
  import {
12
12
  fillModeFromOptions
13
- } from "./chunk-44GP7PD5.js";
13
+ } from "./chunk-MPJQMMBZ.js";
14
14
  import {
15
15
  measureText
16
16
  } from "./chunk-KAO7JL4I.js";
@@ -17,7 +17,7 @@ import {
17
17
  stripDefaultModifier,
18
18
  tagAttrKey,
19
19
  validateTagGroupNames
20
- } from "./chunk-L5AFONQU.js";
20
+ } from "./chunk-HX2KJEPD.js";
21
21
  import {
22
22
  AliasRegistry,
23
23
  GANTT_BOOLEAN_SET,
@@ -32,7 +32,7 @@ import {
32
32
  splitNameAndMeta,
33
33
  warnUnknownMetaKeys,
34
34
  withTagAliases
35
- } from "./chunk-44GP7PD5.js";
35
+ } from "./chunk-MPJQMMBZ.js";
36
36
  import {
37
37
  getSeriesColors
38
38
  } from "./chunk-L24LESXF.js";
@@ -2,7 +2,7 @@
2
2
  var SKETCH_DIAGNOSTIC_CODES = {
3
3
  BOX_DEPTH: "E_SKETCH_BOX_DEPTH",
4
4
  AMBIGUOUS_TARGET: "E_SKETCH_AMBIGUOUS_TARGET",
5
- UNKNOWN_SHAPE: "W_SKETCH_UNKNOWN_SHAPE",
5
+ SHAPE_UNSUPPORTED: "E_SKETCH_SHAPE_UNSUPPORTED",
6
6
  OVERLAP_RESOLVED: "W_SKETCH_OVERLAP_RESOLVED",
7
7
  AT_OUT_OF_RANGE: "W_SKETCH_AT_OUT_OF_RANGE"
8
8
  };
@@ -26,12 +26,12 @@ var SKETCH_DIAGNOSTICS = [
26
26
  example: "sketch\nCache as c1\nCache as c2\nApp\n -> c1"
27
27
  },
28
28
  {
29
- code: SKETCH_DIAGNOSTIC_CODES.UNKNOWN_SHAPE,
30
- severity: "warning",
29
+ code: SKETCH_DIAGNOSTIC_CODES.SHAPE_UNSUPPORTED,
30
+ severity: "error",
31
31
  chartType: "sketch",
32
- title: "Unknown shape",
33
- message: (p) => `Unknown shape "${String(p.shape ?? "?")}" \u2014 rendered as a rectangle (valid: database, queue, person, document, note)`,
34
- hint: "Use one of the closed shape kinds, or drop shape: for a rectangle.",
32
+ title: "shape: is not supported in sketch",
33
+ message: (p) => `shape: ${String(p.shape ?? "?")} is not supported in sketch \u2014 every box is a plain rectangle; remove the shape: clause`,
34
+ hint: "Delete the shape: clause. Use a tag to say what kind of thing a box is.",
35
35
  example: "sketch\nStore shape: database"
36
36
  },
37
37
  {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  tryCollectNote
3
- } from "./chunk-J64NZ6NF.js";
3
+ } from "./chunk-KSZHIAI2.js";
4
4
  import {
5
5
  resolveNotes
6
6
  } from "./chunk-O753JUEZ.js";
@@ -19,7 +19,7 @@ import {
19
19
  tagAttrKey,
20
20
  validateTagGroupNames,
21
21
  validateTagValues
22
- } from "./chunk-L5AFONQU.js";
22
+ } from "./chunk-HX2KJEPD.js";
23
23
  import {
24
24
  ALL_CHART_TYPES,
25
25
  FILL_FAMILY_TOKENS,
@@ -32,7 +32,7 @@ import {
32
32
  parseMetadataRegion,
33
33
  tryParseSharedOption,
34
34
  withTagAliases
35
- } from "./chunk-44GP7PD5.js";
35
+ } from "./chunk-MPJQMMBZ.js";
36
36
  import {
37
37
  resolveColorWithDiagnostic
38
38
  } from "./chunk-2M4IGSCY.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  tryCollectNote
3
- } from "./chunk-J64NZ6NF.js";
3
+ } from "./chunk-KSZHIAI2.js";
4
4
  import {
5
5
  resolveNotes
6
6
  } from "./chunk-O753JUEZ.js";
@@ -13,14 +13,14 @@ import {
13
13
  } from "./chunk-NOTA6TEI.js";
14
14
  import {
15
15
  isTagBlockHeading
16
- } from "./chunk-L5AFONQU.js";
16
+ } from "./chunk-HX2KJEPD.js";
17
17
  import {
18
18
  AliasRegistry,
19
19
  OPTION_NOCOLON_RE,
20
20
  measureIndent,
21
21
  parseFirstLine,
22
22
  tryParseSharedOption
23
- } from "./chunk-44GP7PD5.js";
23
+ } from "./chunk-MPJQMMBZ.js";
24
24
  import {
25
25
  resolveColorWithDiagnostic
26
26
  } from "./chunk-2M4IGSCY.js";
@@ -5,6 +5,9 @@ import {
5
5
  import {
6
6
  EMPHASIS_DIM_OPACITY
7
7
  } from "./chunk-2CW5ZTNH.js";
8
+ import {
9
+ renderIntegratedLegend
10
+ } from "./chunk-NJYA4QSN.js";
8
11
  import {
9
12
  CARD_RADIUS,
10
13
  EDGE_DASH,
@@ -19,18 +22,15 @@ import {
19
22
  import {
20
23
  layoutInlineHeader
21
24
  } from "./chunk-CNUN5GO6.js";
25
+ import {
26
+ getLegendExtent,
27
+ getMaxLegendReservedHeight
28
+ } from "./chunk-NS7L7YKH.js";
22
29
  import {
23
30
  TITLE_FONT_SIZE,
24
31
  TITLE_FONT_WEIGHT,
25
32
  TITLE_Y
26
33
  } from "./chunk-VLC6WNRD.js";
27
- import {
28
- renderIntegratedLegend
29
- } from "./chunk-7SX4IY6T.js";
30
- import {
31
- getLegendExtent,
32
- getMaxLegendReservedHeight
33
- } from "./chunk-NS7L7YKH.js";
34
34
  import {
35
35
  FONT_FAMILY
36
36
  } from "./chunk-ICLB27PZ.js";
@@ -38,12 +38,12 @@ import {
38
38
  UNTAGGED_TAG_COLOR,
39
39
  resolveTagColor,
40
40
  tagAttrKey
41
- } from "./chunk-L5AFONQU.js";
41
+ } from "./chunk-HX2KJEPD.js";
42
42
  import {
43
43
  fillModeFromOptions,
44
44
  legendInlineRequested,
45
45
  legendSuppressed
46
- } from "./chunk-44GP7PD5.js";
46
+ } from "./chunk-MPJQMMBZ.js";
47
47
  import {
48
48
  LEGEND_GROUP_GAP
49
49
  } from "./chunk-I6GGMCTV.js";
@@ -7,7 +7,7 @@ import {
7
7
  splitNameAndMeta,
8
8
  warnUnknownMetaKeys,
9
9
  withTagAliases
10
- } from "./chunk-44GP7PD5.js";
10
+ } from "./chunk-MPJQMMBZ.js";
11
11
  import {
12
12
  makeDgmoError
13
13
  } from "./chunk-BYU54C3S.js";
@@ -7,22 +7,22 @@ import {
7
7
  import {
8
8
  ScaleContext
9
9
  } from "./chunk-24YPR5EH.js";
10
- import {
11
- TITLE_FONT_SIZE
12
- } from "./chunk-VLC6WNRD.js";
13
10
  import {
14
11
  renderIntegratedLegend
15
- } from "./chunk-7SX4IY6T.js";
12
+ } from "./chunk-NJYA4QSN.js";
16
13
  import {
17
14
  getMaxLegendReservedHeight
18
15
  } from "./chunk-NS7L7YKH.js";
16
+ import {
17
+ TITLE_FONT_SIZE
18
+ } from "./chunk-VLC6WNRD.js";
19
19
  import {
20
20
  FONT_FAMILY
21
21
  } from "./chunk-ICLB27PZ.js";
22
22
  import {
23
23
  fillModeFromOptions,
24
24
  legendSuppressed
25
- } from "./chunk-44GP7PD5.js";
25
+ } from "./chunk-MPJQMMBZ.js";
26
26
  import {
27
27
  measureText,
28
28
  truncateText,
@@ -4,13 +4,13 @@ import {
4
4
  matchTagBlockHeading,
5
5
  stripDefaultModifier,
6
6
  tagAttrKey
7
- } from "./chunk-L5AFONQU.js";
7
+ } from "./chunk-HX2KJEPD.js";
8
8
  import {
9
9
  FILL_FAMILY_TOKENS,
10
10
  extractColor,
11
11
  measureIndent,
12
12
  parseFirstLine
13
- } from "./chunk-44GP7PD5.js";
13
+ } from "./chunk-MPJQMMBZ.js";
14
14
  import {
15
15
  emit
16
16
  } from "./chunk-BYU54C3S.js";