@diagrammo/dgmo 0.48.2 → 0.50.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 (244) hide show
  1. package/.cursorrules +12 -3
  2. package/.github/copilot-instructions.md +12 -3
  3. package/.windsurfrules +12 -3
  4. package/SKILL.md +12 -3
  5. package/dist/advanced.d.ts +851 -1
  6. package/dist/advanced.js +601 -177
  7. package/dist/auto.css +63 -0
  8. package/dist/auto.js +220 -110
  9. package/dist/auto.mjs +45920 -33167
  10. package/dist/block.css +63 -0
  11. package/dist/block.d.ts +13 -5
  12. package/dist/block.js +239 -62
  13. package/dist/{charts-d3-QOZHKTCT.js → charts-d3-DKUD7MQE.js} +9 -8
  14. package/dist/{chunk-3MQQNXPD.js → chunk-2C56LEML.js} +3 -3
  15. package/dist/{chunk-L66GEFB6.js → chunk-2JJ2KNPI.js} +4 -4
  16. package/dist/{chunk-6SM5NJQH.js → chunk-2QYTMIRR.js} +4 -4
  17. package/dist/{chunk-RJE5JTVK.js → chunk-3G6TMNVF.js} +7 -7
  18. package/dist/{chunk-MO5YHHMQ.js → chunk-3LKM6FMW.js} +2 -2
  19. package/dist/{chunk-76OWZ3BA.js → chunk-3P2DKJCG.js} +2 -2
  20. package/dist/chunk-3TDRHT4J.js +1043 -0
  21. package/dist/chunk-3XPUDB7B.js +420 -0
  22. package/dist/{chunk-2LACINWN.js → chunk-3ZPC476N.js} +7 -7
  23. package/dist/{chunk-G2H74XJZ.js → chunk-4BMJQFNK.js} +8 -8
  24. package/dist/{chunk-THXCFRTU.js → chunk-4S723I74.js} +9 -9
  25. package/dist/{chunk-6NYWYNBI.js → chunk-4XK3FLFB.js} +3 -3
  26. package/dist/chunk-5JSWBPZZ.js +607 -0
  27. package/dist/{chunk-WCT3NYCV.js → chunk-5LWQH6QV.js} +1 -1
  28. package/dist/{chunk-7DTWEFUE.js → chunk-5Z736BSU.js} +8 -8
  29. package/dist/{chunk-ERLBPDGU.js → chunk-6BFZKBGD.js} +2 -2
  30. package/dist/{chunk-6HO5ZTXK.js → chunk-6IAA2QQ2.js} +2 -2
  31. package/dist/{chunk-H6PI3KJT.js → chunk-6IUAK7RZ.js} +2 -2
  32. package/dist/{chunk-RTLBSQ3G.js → chunk-6M5PJFQG.js} +3 -3
  33. package/dist/{chunk-Z5CGSFJB.js → chunk-6X4AKWLF.js} +4 -4
  34. package/dist/{chunk-OJR3MQYV.js → chunk-6ZT4U37Q.js} +291 -52
  35. package/dist/{chunk-5QXL4NYS.js → chunk-7G2ER4CY.js} +10 -5
  36. package/dist/chunk-7PQYTZMA.js +681 -0
  37. package/dist/{chunk-OURHMODR.js → chunk-7RB5Q6MB.js} +11 -11
  38. package/dist/{chunk-YAA6IID3.js → chunk-7UEMZREK.js} +2 -2
  39. package/dist/{chunk-AN2MOO5T.js → chunk-A3WQVFBS.js} +3 -3
  40. package/dist/{chunk-VOKGH627.js → chunk-AHGF2YYA.js} +13 -3
  41. package/dist/{chunk-CI2G3OEB.js → chunk-ASS5YYIZ.js} +12 -12
  42. package/dist/{chunk-TYS6CSS5.js → chunk-BCYVE3N5.js} +2 -2
  43. package/dist/chunk-BDXC7MDK.js +2395 -0
  44. package/dist/chunk-BTUTZMPT.js +482 -0
  45. package/dist/{chunk-YGJTDXVR.js → chunk-C4GQDB5L.js} +2 -2
  46. package/dist/{chunk-Y2ZE3MSG.js → chunk-C63UWAKM.js} +2 -2
  47. package/dist/{chunk-725LDASD.js → chunk-CLD2OKV7.js} +2 -2
  48. package/dist/{chunk-WBRZJOEC.js → chunk-CMCR5WBW.js} +3 -3
  49. package/dist/{chunk-IZMRON6C.js → chunk-CVV36CWI.js} +2 -2
  50. package/dist/chunk-DMJJ3CEQ.js +254 -0
  51. package/dist/{chunk-MZSBFAPJ.js → chunk-EJTKV7CY.js} +9 -9
  52. package/dist/{chunk-FITOLXSX.js → chunk-EOFPYPAU.js} +26 -2
  53. package/dist/{chunk-X5LCYCL5.js → chunk-ER5SCQWQ.js} +5 -5
  54. package/dist/{chunk-4OHACBGX.js → chunk-F2L5GCQ4.js} +2 -2
  55. package/dist/{chunk-FCIIHT24.js → chunk-F5UDBSJY.js} +7 -7
  56. package/dist/{chunk-3JLKYGBQ.js → chunk-F7BFXWNQ.js} +2 -2
  57. package/dist/{chunk-FANX6UJR.js → chunk-FAL7NOK3.js} +11 -11
  58. package/dist/{chunk-BUPDIHML.js → chunk-FB2WHOEQ.js} +4 -4
  59. package/dist/chunk-FL4IOQ37.js +379 -0
  60. package/dist/{chunk-LIOHW36Z.js → chunk-GBE54KY6.js} +6 -5
  61. package/dist/{chunk-RUNNI6VE.js → chunk-GL5UZ6NY.js} +3 -3
  62. package/dist/{chunk-4GRI7MEB.js → chunk-GPWHQ5FJ.js} +6 -6
  63. package/dist/chunk-GROQGHCT.js +960 -0
  64. package/dist/{chunk-SGZYXELT.js → chunk-H73FP42Q.js} +9 -6
  65. package/dist/{chunk-PBAHEPLQ.js → chunk-HGN652MU.js} +7 -6
  66. package/dist/{chunk-3SMGIJDD.js → chunk-HHXOONLX.js} +13 -1
  67. package/dist/{chunk-QOOUC2J5.js → chunk-HQCHYB5F.js} +2 -2
  68. package/dist/{chunk-AELOBFW5.js → chunk-I4IFRCUB.js} +3 -3
  69. package/dist/{chunk-GMR5MFHJ.js → chunk-I7F2A35O.js} +2 -2
  70. package/dist/{chunk-T2OE3YQB.js → chunk-IA3FJYWR.js} +3 -3
  71. package/dist/chunk-IAEC4KLA.js +492 -0
  72. package/dist/chunk-IVKC4GID.js +32 -0
  73. package/dist/{chunk-HSH73DP6.js → chunk-JFYIP7XU.js} +139 -39
  74. package/dist/{chunk-CKNVO24D.js → chunk-JZNMXEIV.js} +2 -2
  75. package/dist/chunk-KJXIHOVL.js +940 -0
  76. package/dist/chunk-L2ZTFHAY.js +331 -0
  77. package/dist/{chunk-B7JUCQUA.js → chunk-M5RXSRO2.js} +4 -4
  78. package/dist/{chunk-ULOEATBZ.js → chunk-NFFIKVNO.js} +106 -29
  79. package/dist/{chunk-PZMETGLY.js → chunk-NISQC5KW.js} +358 -122
  80. package/dist/chunk-O4VUFXIH.js +574 -0
  81. package/dist/{chunk-RVMRZAPB.js → chunk-O76UD6VJ.js} +3 -3
  82. package/dist/{chunk-JM4LEPY3.js → chunk-O7NUCTFU.js} +2 -2
  83. package/dist/{chunk-JED6ZDEE.js → chunk-O7WP4ZD4.js} +2 -2
  84. package/dist/{chunk-EVCVDTXE.js → chunk-OHQEMBLI.js} +3 -3
  85. package/dist/{chunk-ZBWMSD5N.js → chunk-ONA5KPV3.js} +4 -4
  86. package/dist/{chunk-Y3J7VR52.js → chunk-OTAL43EH.js} +34 -2
  87. package/dist/{chunk-WCSOJFU3.js → chunk-OTP5KVLO.js} +3 -3
  88. package/dist/{chunk-RYEGFMUO.js → chunk-PGEGPSCZ.js} +2 -2
  89. package/dist/{chunk-ZO27FGJS.js → chunk-PH5X4GIP.js} +2 -2
  90. package/dist/{chunk-ZJEL4H2R.js → chunk-PJUGRJHJ.js} +9 -9
  91. package/dist/{chunk-ZGR7ULFJ.js → chunk-PLZI6KPM.js} +26 -14
  92. package/dist/{chunk-3R5POCTZ.js → chunk-PMN3Q7RJ.js} +6 -6
  93. package/dist/{chunk-YGJZWZTY.js → chunk-PZFVK3IH.js} +2 -2
  94. package/dist/chunk-Q4V4XQWV.js +158 -0
  95. package/dist/chunk-QDFNCATJ.js +325 -0
  96. package/dist/{chunk-QEBUY5NY.js → chunk-QFQ35BTO.js} +4 -4
  97. package/dist/chunk-QQJUTGQH.js +135 -0
  98. package/dist/{chunk-PWIHZ6NJ.js → chunk-QUJGFNFN.js} +4 -4
  99. package/dist/{chunk-J5FIXQRT.js → chunk-R56LASIN.js} +4 -4
  100. package/dist/{chunk-SRTU6HMQ.js → chunk-RV26LTUU.js} +8 -8
  101. package/dist/chunk-RV6A2B5S.js +354 -0
  102. package/dist/{chunk-EB6FPQUP.js → chunk-S5GRONXL.js} +3 -3
  103. package/dist/{chunk-5MLYVTYM.js → chunk-SCHXJTZL.js} +2 -2
  104. package/dist/{chunk-T3UBLACL.js → chunk-SCQ5VPUF.js} +19 -5
  105. package/dist/{chunk-PBHE5UG6.js → chunk-SGFZZAUO.js} +46 -12
  106. package/dist/{chunk-BUVJFRPY.js → chunk-SU2VBK4L.js} +4 -4
  107. package/dist/{chunk-SML67VPV.js → chunk-T4BRO3Z6.js} +3 -3
  108. package/dist/{chunk-NURGB5Z4.js → chunk-TSA237IM.js} +2 -2
  109. package/dist/chunk-TWCLK2GA.js +273 -0
  110. package/dist/{chunk-IJZFN3HM.js → chunk-TWQUYVP3.js} +4 -4
  111. package/dist/{chunk-DKEPS5LH.js → chunk-U2HGPLZS.js} +36 -2
  112. package/dist/{chunk-B65G5DNL.js → chunk-URSQLCTR.js} +3 -3
  113. package/dist/{chunk-ILKORZ3H.js → chunk-UUS2GIJZ.js} +7 -7
  114. package/dist/{chunk-XAKEUMEJ.js → chunk-UXOSVCLJ.js} +4 -4
  115. package/dist/{chunk-QLCCJEJI.js → chunk-WCUHAQKB.js} +2 -2
  116. package/dist/{chunk-WVAJFAIA.js → chunk-WWN566I7.js} +257 -101
  117. package/dist/{chunk-IPWPWM6R.js → chunk-X2NMFTG3.js} +111 -10
  118. package/dist/{chunk-UWN33VNX.js → chunk-XCLHOZAM.js} +10 -10
  119. package/dist/{chunk-P235SVAH.js → chunk-XDXNDSKO.js} +2 -2
  120. package/dist/chunk-XHVV4NVW.js +51 -0
  121. package/dist/{chunk-33LCUH4H.js → chunk-XMVQ5F4M.js} +4 -4
  122. package/dist/{chunk-MITI6NOL.js → chunk-YA7D2N2O.js} +11 -11
  123. package/dist/{chunk-7JEGTRLD.js → chunk-YB3FW24O.js} +3 -3
  124. package/dist/chunk-YNRDWYZP.js +295 -0
  125. package/dist/{chunk-44CM72SQ.js → chunk-YZLMKW4T.js} +3 -3
  126. package/dist/chunk-Z6XJQ6KO.js +452 -0
  127. package/dist/cli.cjs +179 -133
  128. package/dist/clock.d.ts +10 -0
  129. package/dist/clock.js +235 -0
  130. package/dist/countdown.d.ts +12 -0
  131. package/dist/countdown.js +450 -0
  132. package/dist/dgmo-router-QOMFCOOV.js +84 -0
  133. package/dist/dimensions-P5FSX2QN.js +22 -0
  134. package/dist/editor.js +43 -2
  135. package/dist/element.js +220 -110
  136. package/dist/element.mjs +45920 -33167
  137. package/dist/{flowchart-parser-ZNSKIBVR.js → flowchart-parser-OE4WHLTF.js} +4 -4
  138. package/dist/{flowchart-renderer-SNDSII4D.js → flowchart-renderer-GPCSMTOR.js} +8 -8
  139. package/dist/highlight.d.ts +17 -1
  140. package/dist/highlight.js +163 -6
  141. package/dist/index.d.ts +5 -1
  142. package/dist/index.js +199 -233
  143. package/dist/{layout-HRBZPFCN.js → layout-34CLNICW.js} +5 -5
  144. package/dist/layout-46366KBT.js +10 -0
  145. package/dist/{layout-HWDSRX5E.js → layout-5BG6DFCU.js} +6 -6
  146. package/dist/layout-6RDJHS6E.js +9 -0
  147. package/dist/{layout-7QXCNOVS.js → layout-7H4H46CS.js} +3 -3
  148. package/dist/{layout-46N4JJYK.js → layout-7SKMFYHL.js} +5 -5
  149. package/dist/{layout-EE6GE46Y.js → layout-DC4TVXER.js} +5 -5
  150. package/dist/layout-FGQWRYYW.js +14 -0
  151. package/dist/{layout-S2QBYSK2.js → layout-NXG63LWH.js} +3 -3
  152. package/dist/{layout-N76NR4ZO.js → layout-PUQCB6AN.js} +7 -7
  153. package/dist/{layout-HYZPWAK5.js → layout-QNUQLEHU.js} +3 -3
  154. package/dist/{layout-UM5F4DJB.js → layout-T3OZU5QW.js} +5 -5
  155. package/dist/layout-TJIWF7EM.js +14 -0
  156. package/dist/layout-VYELEAW7.js +14 -0
  157. package/dist/{layout-5RA6QWR6.js → layout-WZHNDT2O.js} +6 -6
  158. package/dist/{layout-search-OYV77HHS.js → layout-search-QS44PI5R.js} +6 -6
  159. package/dist/{parser-6BTRLKRZ.js → parser-45DENHFZ.js} +4 -4
  160. package/dist/{parser-TFZFBVWN.js → parser-4AI5ZN5F.js} +3 -3
  161. package/dist/{parser-XDVELHRK.js → parser-4P36TUVD.js} +4 -4
  162. package/dist/{parser-ZSDPZYQP.js → parser-5AURY4A6.js} +4 -4
  163. package/dist/{parser-N5O4IHUN.js → parser-A2BEFMGK.js} +4 -4
  164. package/dist/parser-B5FVS7O6.js +11 -0
  165. package/dist/{parser-NGU3ETO6.js → parser-C2HF2C2E.js} +4 -4
  166. package/dist/parser-CSFUN3CT.js +14 -0
  167. package/dist/{parser-TRTHDFPP.js → parser-D3QT6GWN.js} +5 -5
  168. package/dist/parser-D5637H5H.js +15 -0
  169. package/dist/{parser-VQP2UJ6W.js → parser-DFFEDKHH.js} +3 -3
  170. package/dist/parser-DOKMZXVZ.js +13 -0
  171. package/dist/parser-FMPCVFRK.js +15 -0
  172. package/dist/{parser-Y6WTBU76.js → parser-HYRTF3DO.js} +3 -3
  173. package/dist/{parser-I6KXEYFK.js → parser-I2UIJKVQ.js} +4 -4
  174. package/dist/{parser-O5J4VBII.js → parser-IBWNAPY4.js} +3 -3
  175. package/dist/{parser-PQ3POX45.js → parser-KUQWRPIT.js} +4 -4
  176. package/dist/{parser-2MFP2H2E.js → parser-LWKKBNSA.js} +3 -3
  177. package/dist/{parser-OV7NOBW6.js → parser-O4QFCUW7.js} +5 -5
  178. package/dist/{parser-IXSZZQHY.js → parser-PGMQDD4G.js} +4 -4
  179. package/dist/{parser-3STE62GB.js → parser-Q4QKCIWQ.js} +4 -4
  180. package/dist/parser-QTOB4KFL.js +14 -0
  181. package/dist/{parser-2EWECDSA.js → parser-QYYM4QVW.js} +4 -4
  182. package/dist/{parser-4OGOBJJ4.js → parser-RZMQP7MM.js} +4 -4
  183. package/dist/parser-RZPVAQVX.js +11 -0
  184. package/dist/parser-SOUJOEYI.js +13 -0
  185. package/dist/{parser-4FL2CMDG.js → parser-UQE5OWZI.js} +5 -5
  186. package/dist/{parser-NRAI6O25.js → parser-WAV5JRPT.js} +4 -4
  187. package/dist/{parser-KNSQSKQO.js → parser-YLKYBRIT.js} +5 -5
  188. package/dist/{parser-XKRP7QKP.js → parser-YS7TOS2K.js} +3 -3
  189. package/dist/{parser-AQETEVRW.js → parser-ZSOWUBML.js} +5 -5
  190. package/dist/{parser-CFZD5IBL.js → parser-ZTBATMLX.js} +4 -4
  191. package/dist/{renderer-VACVQYML.js → renderer-35HSIDMZ.js} +8 -8
  192. package/dist/{renderer-5MYBMBYO.js → renderer-4ITCHBT7.js} +5 -5
  193. package/dist/{renderer-CLJHQPBJ.js → renderer-67NPCBIS.js} +11 -11
  194. package/dist/{renderer-5NDVNDAZ.js → renderer-6GHYK7DX.js} +9 -9
  195. package/dist/{renderer-Z7I3W2PP.js → renderer-6RNGHC5Z.js} +8 -8
  196. package/dist/renderer-72LGR2YF.js +14 -0
  197. package/dist/{renderer-KQB7UGDS.js → renderer-7RH2SI3B.js} +3 -3
  198. package/dist/renderer-7SWMIFMM.js +21 -0
  199. package/dist/renderer-BBCEFILK.js +24 -0
  200. package/dist/{renderer-JGBKUCZD.js → renderer-BSW7SRIZ.js} +4 -4
  201. package/dist/{renderer-BYCNMBF7.js → renderer-BY533UWU.js} +11 -11
  202. package/dist/{renderer-6W5462RB.js → renderer-BZSBPTZJ.js} +9 -9
  203. package/dist/{renderer-7MVLWWQD.js → renderer-CXUC4KAD.js} +9 -9
  204. package/dist/{renderer-QIWVHWZO.js → renderer-DAXMXIKD.js} +3 -3
  205. package/dist/renderer-FZUKFUNZ.js +23 -0
  206. package/dist/renderer-G2NLGNKF.js +17 -0
  207. package/dist/renderer-GO3FE3RA.js +24 -0
  208. package/dist/{renderer-ZGNTUWC4.js → renderer-HPGR6USK.js} +8 -8
  209. package/dist/{renderer-UV6MI64M.js → renderer-HVCU2C3Z.js} +3 -3
  210. package/dist/renderer-ICJN2SA2.js +24 -0
  211. package/dist/{renderer-AWWAF6XD.js → renderer-INEXO7B6.js} +10 -10
  212. package/dist/{renderer-YY2OSF6E.js → renderer-KDYCFRBX.js} +8 -8
  213. package/dist/renderer-KY4KQBTF.js +19 -0
  214. package/dist/{renderer-B2OMQIQG.js → renderer-LBN65V45.js} +13 -13
  215. package/dist/{renderer-N43WR5GV.js → renderer-MGBWOCXG.js} +10 -10
  216. package/dist/{renderer-PGX2TKVS.js → renderer-O4JKUGKO.js} +8 -8
  217. package/dist/{renderer-4JHRUBE6.js → renderer-OOGFODWP.js} +10 -10
  218. package/dist/{renderer-6EEZHMH4.js → renderer-Q6ZKPLS6.js} +9 -9
  219. package/dist/{renderer-RPOA5YPZ.js → renderer-SZQ326M5.js} +12 -12
  220. package/dist/{renderer-ZRNG54CW.js → renderer-TKG6LS4U.js} +11 -11
  221. package/dist/{renderer-W4M6QLIJ.js → renderer-TQMZGDAX.js} +13 -13
  222. package/dist/renderer-radial-JELMHQ24.js +21 -0
  223. package/dist/{resolver-NOAA7ID7.js → resolver-FHBCO3PL.js} +3 -3
  224. package/dist/{state-parser-Z2V23ATR.js → state-parser-3REXRK3R.js} +4 -4
  225. package/dist/{state-renderer-B4DQBM6M.js → state-renderer-XYLNRWXR.js} +8 -8
  226. package/docs/ai-integration.md +12 -3
  227. package/docs/language-reference.md +429 -24
  228. package/gallery/fixtures/body.dgmo +17 -0
  229. package/gallery/fixtures/bracket.dgmo +30 -0
  230. package/gallery/fixtures/clock.dgmo +8 -0
  231. package/gallery/fixtures/countdown.dgmo +3 -0
  232. package/gallery/fixtures/family.dgmo +23 -0
  233. package/gallery/fixtures/goal.dgmo +4 -0
  234. package/gallery/fixtures/sketch.dgmo +22 -0
  235. package/package.json +12 -4
  236. package/dist/chunk-ODZVHU3R.js +0 -153
  237. package/dist/dgmo-router-X35VLZLM.js +0 -73
  238. package/dist/dimensions-J3FHIMJ6.js +0 -22
  239. package/dist/layout-5T6RH5M6.js +0 -14
  240. package/dist/layout-G23F7LDH.js +0 -9
  241. package/dist/layout-OB3RI63S.js +0 -14
  242. package/dist/parser-JAL2HD4I.js +0 -13
  243. package/dist/renderer-SMIBCRVB.js +0 -24
  244. package/dist/renderer-radial-C32GPJQ7.js +0 -21
@@ -2,14 +2,14 @@ import {
2
2
  extractSymbols,
3
3
  looksLikeFlowchart,
4
4
  parseFlowchart
5
- } from "./chunk-LIOHW36Z.js";
5
+ } from "./chunk-GBE54KY6.js";
6
6
  import "./chunk-I46X5VUA.js";
7
7
  import "./chunk-NXMESY4J.js";
8
- import "./chunk-5MLYVTYM.js";
8
+ import "./chunk-SCHXJTZL.js";
9
9
  import "./chunk-FMDSF3OV.js";
10
10
  import "./chunk-FFUN5D66.js";
11
11
  import "./chunk-NOTA6TEI.js";
12
- import "./chunk-Y3J7VR52.js";
12
+ import "./chunk-OTAL43EH.js";
13
13
  import "./chunk-TLVIHFRO.js";
14
14
  import "./chunk-CXK4DZH3.js";
15
15
  import "./chunk-5WRI5ZAA.js";
@@ -18,4 +18,4 @@ export {
18
18
  looksLikeFlowchart,
19
19
  parseFlowchart
20
20
  };
21
- //# sourceMappingURL=flowchart-parser-ZNSKIBVR.js.map
21
+ //# sourceMappingURL=flowchart-parser-OE4WHLTF.js.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  renderFlowchart,
3
3
  renderFlowchartForExport
4
- } from "./chunk-B7JUCQUA.js";
4
+ } from "./chunk-M5RXSRO2.js";
5
5
  import "./chunk-PDKUANDZ.js";
6
- import "./chunk-T3UBLACL.js";
6
+ import "./chunk-SCQ5VPUF.js";
7
7
  import "./chunk-LP7EC4MI.js";
8
8
  import "./chunk-JEUJOX5X.js";
9
9
  import "./chunk-6EK55ART.js";
10
- import "./chunk-TYS6CSS5.js";
10
+ import "./chunk-BCYVE3N5.js";
11
11
  import "./chunk-5DH3KYFH.js";
12
12
  import "./chunk-3HDBAXF5.js";
13
13
  import "./chunk-BMR4CIEO.js";
@@ -15,16 +15,16 @@ import "./chunk-3CIOJ5YJ.js";
15
15
  import "./chunk-YYVTBZZC.js";
16
16
  import "./chunk-A4GOY3PE.js";
17
17
  import "./chunk-6KFWC4CO.js";
18
- import "./chunk-WCT3NYCV.js";
18
+ import "./chunk-5LWQH6QV.js";
19
19
  import "./chunk-P6T66CCZ.js";
20
- import "./chunk-LIOHW36Z.js";
20
+ import "./chunk-GBE54KY6.js";
21
21
  import "./chunk-I46X5VUA.js";
22
22
  import "./chunk-NXMESY4J.js";
23
- import "./chunk-5MLYVTYM.js";
23
+ import "./chunk-SCHXJTZL.js";
24
24
  import "./chunk-FMDSF3OV.js";
25
25
  import "./chunk-FFUN5D66.js";
26
26
  import "./chunk-NOTA6TEI.js";
27
- import "./chunk-Y3J7VR52.js";
27
+ import "./chunk-OTAL43EH.js";
28
28
  import "./chunk-TLVIHFRO.js";
29
29
  import "./chunk-CXK4DZH3.js";
30
30
  import "./chunk-5WRI5ZAA.js";
@@ -32,4 +32,4 @@ export {
32
32
  renderFlowchart,
33
33
  renderFlowchartForExport
34
34
  };
35
- //# sourceMappingURL=flowchart-renderer-SNDSII4D.js.map
35
+ //# sourceMappingURL=flowchart-renderer-GPCSMTOR.js.map
@@ -30,6 +30,22 @@ declare function highlightDgmo(source: string): HighlightToken[];
30
30
  * ViewPlugin both consume it, so the two render paths can't drift.
31
31
  */
32
32
  declare const ATTRIBUTE_KEYS: Set<string>;
33
+ /** A role override for one token span on a recurrence line. */
34
+ interface RecurrenceSpan {
35
+ /** Char offset of the token within the line. */
36
+ start: number;
37
+ /** Char offset (exclusive) of the token end within the line. */
38
+ end: number;
39
+ role: 'keyword' | 'modifier';
40
+ }
41
+ /**
42
+ * Classify the significant tokens on a countdown recurrence line. Returns the
43
+ * spans to re-role: sub-keywords (`every`/`on`/`at`/`from` + cadence units) →
44
+ * `keyword`, closed instant vocab (month/weekday names, ordinals) → `modifier`.
45
+ * Numeric tokens (day, `HH:MM`, dates) already tokenize as numbers, so they are
46
+ * left alone. Returns `[]` for any non-recurrence line.
47
+ */
48
+ declare function classifyRecurrenceLine(line: string): RecurrenceSpan[];
33
49
  declare const NORD_ROLE_STYLES: Record<string, Record<string, string>>;
34
50
  /**
35
51
  * Light-background counterpart of NORD_ROLE_STYLES for static contexts
@@ -46,4 +62,4 @@ declare const ROLE_TO_ANSI: Record<string, string>;
46
62
  */
47
63
  declare function renderAnsi(tokens: HighlightToken[], useColor: boolean): string;
48
64
 
49
- export { ATTRIBUTE_KEYS, type HighlightToken, LIGHT_ROLE_STYLES, NODE_TO_ROLE, NORD_ROLE_STYLES, ROLE_TO_ANSI, highlightDgmo, renderAnsi };
65
+ export { ATTRIBUTE_KEYS, type HighlightToken, LIGHT_ROLE_STYLES, NODE_TO_ROLE, NORD_ROLE_STYLES, ROLE_TO_ANSI, type RecurrenceSpan, classifyRecurrenceLine, highlightDgmo, renderAnsi };
package/dist/highlight.js CHANGED
@@ -136,6 +136,17 @@ var DIRECTIVES_REGISTRY = [
136
136
  { token: "import", category: "directive" },
137
137
  { token: "hide", category: "directive" },
138
138
  { token: "direction", category: "directive" },
139
+ // ── Clock ────────────────────────────────────────────────
140
+ // The board's flat directives — highlight-only (the parser validates them
141
+ // inline, no extractable Set). `no-title` + `direction` are already listed
142
+ // above (shared). Values (analog is a bare flag; color-by's
143
+ // place|work|daylight|time|none) highlight as plain tokens.
144
+ { token: "analog", category: "directive" },
145
+ { token: "hours", category: "directive" },
146
+ { token: "days", category: "directive" },
147
+ { token: "no-sun", category: "directive" },
148
+ { token: "time-24", category: "directive" },
149
+ { token: "color-by", category: "directive" },
139
150
  // ── Boxes-and-lines ──────────────────────────────────────
140
151
  // `heat <Label> [low] [high]` is the value→colour ramp directive, but `heat`
141
152
  // is NOT registered as a directive keyword: it is dual-use with the `heat:`
@@ -228,6 +239,17 @@ var DIRECTIVES_REGISTRY = [
228
239
  { token: "scrubber-trials", category: "directive" },
229
240
  { token: "start-date", category: "directive" },
230
241
  { token: "end-date", category: "directive" },
242
+ // ── Goal ─────────────────────────────────────────────────
243
+ // Mode flags, value-key leaders, and opt-outs. `now`/`target` collide with
244
+ // label prose ("start now", "on target"), but the arrow-label demotion pass
245
+ // (see highlight-api LABEL_WORD_NODES) treats any keyword-bearing label as
246
+ // text and demotes them, so they highlight only as line leaders.
247
+ { token: "thermometer", category: "directive" },
248
+ { token: "gauge", category: "directive" },
249
+ { token: "now", category: "directive" },
250
+ { token: "target", category: "directive" },
251
+ { token: "no-note", category: "directive" },
252
+ { token: "no-auto-color", category: "directive" },
231
253
  // ── Control-flow + wireframe element keywords (CONTROL) ──
232
254
  { token: "if", category: "control" },
233
255
  { token: "else", category: "control" },
@@ -269,7 +291,19 @@ var DIRECTIVES_REGISTRY = [
269
291
  { token: "date", category: "modifier" },
270
292
  { token: "timestamp", category: "modifier" },
271
293
  { token: "float", category: "modifier" },
272
- { token: "decimal", category: "modifier" }
294
+ { token: "decimal", category: "modifier" },
295
+ // ── Bracket ──────────────────────────────────────────────
296
+ // `beats` / `vs` are the infix match keywords; the rest are line directives.
297
+ // (`seed` and `no-legend` already appear above — shared, not re-listed.)
298
+ { token: "beats", category: "control" },
299
+ { token: "vs", category: "control" },
300
+ { token: "rounds", category: "directive" },
301
+ { token: "accent", category: "directive" },
302
+ { token: "no-round", category: "modifier" },
303
+ { token: "no-rounds", category: "modifier" },
304
+ { token: "single-elim", category: "modifier" },
305
+ { token: "double-elim", category: "modifier" },
306
+ { token: "seeded", category: "modifier" }
273
307
  ];
274
308
  function tokensWhere(pred) {
275
309
  const out = /* @__PURE__ */ new Set();
@@ -317,10 +351,12 @@ var CHART_TYPES = /* @__PURE__ */ new Set([
317
351
  "class",
318
352
  "er",
319
353
  "org",
354
+ "family",
320
355
  "kanban",
321
356
  "c4",
322
357
  "state",
323
358
  "sitemap",
359
+ "bracket",
324
360
  "infra",
325
361
  "gantt",
326
362
  "pert",
@@ -335,6 +371,10 @@ var CHART_TYPES = /* @__PURE__ */ new Set([
335
371
  "ring",
336
372
  "treemap",
337
373
  "block",
374
+ "goal",
375
+ "countdown",
376
+ "clock",
377
+ "sketch",
338
378
  "raci",
339
379
  "cycle",
340
380
  // Data chart types
@@ -356,7 +396,8 @@ var CHART_TYPES = /* @__PURE__ */ new Set([
356
396
  "event-line",
357
397
  "venn",
358
398
  "quadrant",
359
- "map"
399
+ "map",
400
+ "body"
360
401
  ]);
361
402
  var TAG_KEYWORD = "tag";
362
403
  var DIRECTIVE_KEYWORDS = /* @__PURE__ */ new Set([...REGISTRY_DIRECTIVE_TOKENS]);
@@ -392,6 +433,33 @@ var parser = LRParser.deserialize({
392
433
  tokenPrec: 204
393
434
  });
394
435
 
436
+ // src/countdown/resolve.ts
437
+ var DAY_MS = 864e5;
438
+ var WEEK_MS = 7 * DAY_MS;
439
+ function monthIndex(token) {
440
+ const t = token.trim().toLowerCase().slice(0, 3);
441
+ const i = [
442
+ "jan",
443
+ "feb",
444
+ "mar",
445
+ "apr",
446
+ "may",
447
+ "jun",
448
+ "jul",
449
+ "aug",
450
+ "sep",
451
+ "oct",
452
+ "nov",
453
+ "dec"
454
+ ].indexOf(t);
455
+ return i < 0 ? null : i;
456
+ }
457
+ function weekdayIndex(token) {
458
+ const t = token.trim().toLowerCase().slice(0, 3);
459
+ const i = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"].indexOf(t);
460
+ return i < 0 ? null : i;
461
+ }
462
+
395
463
  // src/editor/highlight-api.ts
396
464
  var NODE_TO_ROLE = {
397
465
  Comment: "comment",
@@ -444,6 +512,14 @@ var OVERRIDE_IN_LABEL = /* @__PURE__ */ new Set([
444
512
  "Duration",
445
513
  "DateLiteral"
446
514
  ]);
515
+ var LABEL_WORD_NODES = /* @__PURE__ */ new Set([
516
+ "Identifier",
517
+ "ChartType",
518
+ "TagKeyword",
519
+ "DirectiveKeyword",
520
+ "ControlKeyword",
521
+ "ModifierKeyword"
522
+ ]);
447
523
  var KEYWORD_STARTS = /* @__PURE__ */ new Set([
448
524
  "TagKeyword",
449
525
  "DirectiveKeyword",
@@ -487,6 +563,7 @@ function highlightDgmo(source) {
487
563
  applyAttributeKeys(tokens);
488
564
  applyLabelOverrides(tokens);
489
565
  applyNoteContent(tokens);
566
+ applyRecurringLine(tokens);
490
567
  return tokens;
491
568
  }
492
569
  var ATTRIBUTE_KEYS = /* @__PURE__ */ new Set([
@@ -524,6 +601,9 @@ var ATTRIBUTE_KEYS = /* @__PURE__ */ new Set([
524
601
  "value",
525
602
  "label",
526
603
  "style",
604
+ // Sketch (§31): shape morph + half-slot coordinate keys
605
+ "shape",
606
+ "at",
527
607
  // Treemap + boxes-and-lines + map colour-by-value channel key
528
608
  "heat",
529
609
  // Infra node behavior + edge colon-keys (§4) come from the single-source
@@ -623,14 +703,14 @@ function applyLabelOverrides(tokens) {
623
703
  }
624
704
  const hasArrow = firstDashTildeIdx >= 0 && lastArrowIdx > firstDashTildeIdx;
625
705
  if (!hasArrow) continue;
626
- let labelHasIdentifier = false;
706
+ let labelHasWord = false;
627
707
  for (let li = firstDashTildeIdx + 1; li < lastArrowIdx; li++) {
628
- if (nonWs[li].nodeName === "Identifier") {
629
- labelHasIdentifier = true;
708
+ if (LABEL_WORD_NODES.has(nonWs[li].nodeName)) {
709
+ labelHasWord = true;
630
710
  break;
631
711
  }
632
712
  }
633
- if (!labelHasIdentifier) continue;
713
+ if (!labelHasWord) continue;
634
714
  for (let li = firstDashTildeIdx + 1; li < lastArrowIdx; li++) {
635
715
  const ref = nonWs[li];
636
716
  if (OVERRIDE_IN_LABEL.has(ref.nodeName)) {
@@ -642,6 +722,82 @@ function applyLabelOverrides(tokens) {
642
722
  }
643
723
  }
644
724
  }
725
+ var RECUR_LEADERS = /* @__PURE__ */ new Set([
726
+ "every",
727
+ "on",
728
+ "at",
729
+ "from",
730
+ "on-day",
731
+ "since-label"
732
+ ]);
733
+ var RECUR_CONNECTORS = /* @__PURE__ */ new Set(["on", "at", "from"]);
734
+ var RECUR_CADENCE_WORDS = /* @__PURE__ */ new Set([
735
+ "year",
736
+ "month",
737
+ "week",
738
+ "day",
739
+ "days",
740
+ "weeks",
741
+ "months"
742
+ ]);
743
+ function isRecurOrdinal(token) {
744
+ return /^(?:\d+(?:st|nd|rd|th)|last)$/i.test(token);
745
+ }
746
+ function classifyRecurrenceLine(line) {
747
+ const spans = [];
748
+ const toks = [];
749
+ const re = /\S+/g;
750
+ let m;
751
+ while ((m = re.exec(line)) !== null) {
752
+ toks.push({ t: m[0], s: m.index, e: m.index + m[0].length });
753
+ }
754
+ if (toks.length === 0) return spans;
755
+ const lead = toks[0].t.toLowerCase();
756
+ if (!RECUR_LEADERS.has(lead)) return spans;
757
+ const everyLine = lead === "every";
758
+ let seenConnector = false;
759
+ for (let i = 0; i < toks.length; i++) {
760
+ const { t, s, e } = toks[i];
761
+ const low = t.toLowerCase();
762
+ if (i === 0) {
763
+ spans.push({ start: s, end: e, role: "keyword" });
764
+ continue;
765
+ }
766
+ if (RECUR_CONNECTORS.has(low)) {
767
+ spans.push({ start: s, end: e, role: "keyword" });
768
+ seenConnector = true;
769
+ continue;
770
+ }
771
+ if (everyLine && !seenConnector && RECUR_CADENCE_WORDS.has(low)) {
772
+ spans.push({ start: s, end: e, role: "keyword" });
773
+ continue;
774
+ }
775
+ if (isRecurOrdinal(low) || monthIndex(t) !== null || weekdayIndex(t) !== null) {
776
+ spans.push({ start: s, end: e, role: "modifier" });
777
+ }
778
+ }
779
+ return spans;
780
+ }
781
+ function applyRecurringLine(tokens) {
782
+ const fullText = tokens.map((t) => t.text).join("");
783
+ const lines = fullText.split("\n");
784
+ const firstContent = lines.find((l) => {
785
+ const t = l.trim();
786
+ return t.length > 0 && !t.startsWith("//");
787
+ });
788
+ if (firstContent?.trim().split(/\s+/)[0].toLowerCase() !== "countdown") {
789
+ return;
790
+ }
791
+ let offset = 0;
792
+ for (const lineText of lines) {
793
+ if (!/^\s/.test(lineText)) {
794
+ for (const sp of classifyRecurrenceLine(lineText)) {
795
+ markTokensInRange(tokens, offset + sp.start, offset + sp.end, sp.role);
796
+ }
797
+ }
798
+ offset += lineText.length + 1;
799
+ }
800
+ }
645
801
  var NOTE_HEAD_RE = /^note(\s|$)/i;
646
802
  function applyNoteContent(tokens) {
647
803
  const fullText = tokens.map((t) => t.text).join("");
@@ -813,6 +969,7 @@ export {
813
969
  NODE_TO_ROLE,
814
970
  NORD_ROLE_STYLES,
815
971
  ROLE_TO_ANSI,
972
+ classifyRecurrenceLine,
816
973
  highlightDgmo,
817
974
  renderAnsi
818
975
  };
package/dist/index.d.ts CHANGED
@@ -96,7 +96,11 @@ declare function getDiagnosticSpec(code: string): DiagnosticSpec | undefined;
96
96
 
97
97
  interface RenderOptions {
98
98
  theme?: Theme;
99
- palette?: PaletteConfig;
99
+ /**
100
+ * A `PaletteConfig` (e.g. `palettes.catppuccin`) or a palette id string
101
+ * (e.g. `'catppuccin'`). Unknown ids fall back to the default palette.
102
+ */
103
+ palette?: PaletteConfig | string;
100
104
  /**
101
105
  * How to handle parse errors:
102
106
  * 'svg' — render an inline error SVG (default)