@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
@@ -0,0 +1,30 @@
1
+ bracket World Series
2
+ rounds Wild Card, Division, Championship
3
+
4
+ [American League] blue
5
+ seed 1 Blue Jays
6
+ seed 2 Mariners
7
+ seed 3 Yankees
8
+ seed 4 Red Sox
9
+ seed 5 Tigers
10
+ seed 6 Guardians
11
+ Yankees beats Guardians 2-1
12
+ Red Sox beats Tigers 2-1
13
+ Blue Jays beats Red Sox 3-1
14
+ Mariners beats Yankees 3-2
15
+ Blue Jays beats Mariners 4-3
16
+
17
+ [National League] red
18
+ seed 1 Brewers
19
+ seed 2 Phillies
20
+ seed 3 Dodgers
21
+ seed 4 Cubs
22
+ seed 5 Padres
23
+ seed 6 Mets
24
+ Dodgers beats Mets 2-0
25
+ Cubs beats Padres 2-1
26
+ Brewers beats Cubs 3-2
27
+ Phillies beats Dodgers 3-1
28
+ Brewers beats Phillies 4-2
29
+
30
+ Blue Jays beats Brewers 4-3
@@ -0,0 +1,8 @@
1
+ clock Crew standups
2
+ hours 9-17
3
+ days mon-fri
4
+ color-by work
5
+
6
+ London Europe/London as UK team
7
+ New York America/New_York as Dani (NY)
8
+ Los Angeles America/Los_Angeles as West coast
@@ -0,0 +1,3 @@
1
+ countdown Voyage to Tortuga
2
+
3
+ target 2099-08-21
@@ -0,0 +1,23 @@
1
+ family The Rackham Line
2
+
3
+ tag Allegiance as loyalty
4
+ Crown blue
5
+ Brethren red
6
+
7
+ Elizabeth Swann b: 1687, sex: f, occupation: Pirate King, loyalty: Brethren
8
+ "Will Turner" b: 1685, sex: m, occupation: Captain of the Dutchman, loyalty: Brethren
9
+
10
+ Elizabeth Swann + "Will Turner" m: 1729
11
+ Henry Turner b: 1730, sex: m, occupation: Sailor
12
+
13
+ Weatherby Swann + Margaret Smith m: 1685
14
+ Elizabeth Swann
15
+
16
+ Henry Turner + Carina Smyth m: 1751
17
+ Joshamee Turner sex: m
18
+ Anna Turner adopted, sex: f
19
+
20
+ Blackbeard b: 1680, d: 1718, sex: m, occupation: Pirate
21
+
22
+ Blackbeard + ? m: 1700 divorced
23
+ Carina Smyth b: 1731, sex: f
@@ -0,0 +1,4 @@
1
+ goal Doubloons Plundered ($) green
2
+ now 6400
3
+ target 10000
4
+ solid-fill
@@ -0,0 +1,22 @@
1
+ sketch Plunder Pipeline
2
+
3
+ tag Crew
4
+ Deck
5
+ Hold
6
+
7
+ Spyglass Feed shape: cloud, at: 0 0, crew: Deck
8
+ -sightings-> con
9
+ Captain's Console as con at: 2 0, crew: Deck
10
+ -orders-> bq
11
+ -supplies-> armory
12
+ Divvy Service as dvy at: 4 0, crew: Hold
13
+ -entries-> ledger
14
+
15
+ [Below Decks] at: 2 2, crew: Hold
16
+ Booty Queue as bq shape: queue, at: 0 0
17
+ ~haul~> dvy
18
+ Ship Ledger as ledger shape: database, at: 2 0
19
+
20
+ [Armory] as armory at: 0 2, collapsed
21
+ Powder Store at: 0 0
22
+ Cutlass Rack at: 0 1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diagrammo/dgmo",
3
- "version": "0.48.2",
3
+ "version": "0.50.0",
4
4
  "description": "DGMO diagram markup language — parser, renderer, and color system",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -35,6 +35,14 @@
35
35
  "types": "./dist/advanced.d.ts",
36
36
  "default": "./dist/advanced.js"
37
37
  },
38
+ "./countdown": {
39
+ "types": "./dist/countdown.d.ts",
40
+ "default": "./dist/countdown.js"
41
+ },
42
+ "./clock": {
43
+ "types": "./dist/clock.d.ts",
44
+ "default": "./dist/clock.js"
45
+ },
38
46
  "./pert": {
39
47
  "types": "./dist/pert.d.ts",
40
48
  "default": "./dist/pert.js"
@@ -80,15 +88,15 @@
80
88
  "typecheck": "tsc --noEmit",
81
89
  "dev": "DGMO_DEV_RELOAD=1 tsup --watch",
82
90
  "pretest": "pnpm codegen",
83
- "test": "vitest run --coverage",
91
+ "test": "TZ=UTC vitest run --coverage",
84
92
  "bench:perf": "vitest run --config vitest.perf.config.ts tests/perf-bench.ts",
85
93
  "bench:bl": "vitest run --config vitest.bench.config.ts tests/bl-layout-bench.ts",
86
94
  "bench:bl-collapse": "vitest run --config vitest.bench.config.ts tests/bl-collapse-bench.ts",
87
95
  "bench:bl-options": "vitest run --config vitest.bench.config.ts tests/bl-options.ts",
88
96
  "bench:bl-overlap": "vitest run --config vitest.bench.config.ts tests/bl-overlap-debug.ts",
89
97
  "bl-gallery": "vitest run --config vitest.bench.config.ts tests/bl-gallery.ts",
90
- "test:watch": "vitest",
91
- "test:auto": "pnpm build && vitest run tests/auto.test.ts tests/safe-href.test.ts",
98
+ "test:watch": "TZ=UTC vitest",
99
+ "test:auto": "pnpm build && TZ=UTC vitest run tests/auto.test.ts tests/safe-href.test.ts",
92
100
  "sri": "node scripts/sri.mjs",
93
101
  "eval:tools": "pnpm build && pnpm -C ../dgmo-mcp build:fast && node scripts/eval-tools.mjs",
94
102
  "eval:ai": "pnpm build && pnpm -C ../dgmo-mcp build:fast && node scripts/eval-ai-generation.mjs",
@@ -1,153 +0,0 @@
1
- // src/utils/svg-embed.ts
2
- function normalizeSvgForEmbed(input) {
3
- let svg = input;
4
- const rootMatch = svg.match(/<svg[^>]*>/);
5
- const rootTag = rootMatch?.[0] ?? "";
6
- if (rootTag && !rootTag.includes("viewBox")) {
7
- const wh = rootTag.match(/width="(\d+)"[^>]*height="(\d+)"/);
8
- if (wh) {
9
- svg = svg.replace(/<svg/, `<svg viewBox="0 0 ${wh[1]} ${wh[2]}"`);
10
- }
11
- }
12
- const tight = computeBBox(svg);
13
- if (tight && tight.width > 0 && tight.height > 0) {
14
- const pad = 16;
15
- const x = tight.x - pad;
16
- const y = tight.y - pad;
17
- const w = tight.width + pad * 2;
18
- const h = tight.height + pad * 2;
19
- const canvas = readViewBox(svg);
20
- const TOL = 2;
21
- const MIN_COVERAGE = 0.5;
22
- const trustworthy = !canvas || x >= canvas.x - TOL && y >= canvas.y - TOL && x + w <= canvas.x + canvas.width + TOL && y + h <= canvas.y + canvas.height + TOL && w >= canvas.width * MIN_COVERAGE && h >= canvas.height * MIN_COVERAGE;
23
- if (trustworthy) {
24
- const vb = `${x} ${y} ${w} ${h}`;
25
- svg = svg.replace(/(<svg[^>]*?)viewBox="[^"]*"/, `$1viewBox="${vb}"`);
26
- }
27
- }
28
- svg = svg.replace(/(<svg[^>]*?) width="[^"]*"/g, "$1");
29
- svg = svg.replace(/(<svg[^>]*?) height="[^"]*"/g, "$1");
30
- svg = svg.replace(/<svg\s{2,}/g, "<svg ");
31
- return svg;
32
- }
33
- function getEmbedSvgViewBox(svg) {
34
- const tight = computeBBox(svg);
35
- if (!tight || tight.width <= 0 || tight.height <= 0) return null;
36
- const pad = 16;
37
- return {
38
- x: tight.x - pad,
39
- y: tight.y - pad,
40
- width: tight.width + pad * 2,
41
- height: tight.height + pad * 2
42
- };
43
- }
44
- function readViewBox(svg) {
45
- const m = svg.match(/<svg[^>]*?\bviewBox="([^"]+)"/);
46
- if (!m) return null;
47
- const n = m[1].trim().split(/[\s,]+/).map(Number);
48
- if (n.length !== 4 || n.some((v) => !Number.isFinite(v)) || n[2] <= 0 || n[3] <= 0)
49
- return null;
50
- return { x: n[0], y: n[1], width: n[2], height: n[3] };
51
- }
52
- function computeBBox(svg) {
53
- const xs = [];
54
- const ys = [];
55
- function push(x, y) {
56
- if (Number.isFinite(x) && Number.isFinite(y)) {
57
- xs.push(x);
58
- ys.push(y);
59
- }
60
- }
61
- function attr(tag, name) {
62
- const m = tag.match(new RegExp(`\\b${name}="([^"]*)"`));
63
- if (!m) return null;
64
- const n = parseFloat(m[1]);
65
- return Number.isFinite(n) ? n : null;
66
- }
67
- for (const m of svg.matchAll(/<rect\b[^>]*?\/?>/g)) {
68
- const tag = m[0];
69
- const x = attr(tag, "x");
70
- const y = attr(tag, "y");
71
- const w = attr(tag, "width");
72
- const h = attr(tag, "height");
73
- if (x !== null && y !== null && w !== null && h !== null) {
74
- push(x, y);
75
- push(x + w, y + h);
76
- }
77
- }
78
- for (const m of svg.matchAll(/<line\b[^>]*?\/?>/g)) {
79
- const tag = m[0];
80
- const x1 = attr(tag, "x1");
81
- const y1 = attr(tag, "y1");
82
- const x2 = attr(tag, "x2");
83
- const y2 = attr(tag, "y2");
84
- if (x1 !== null && y1 !== null && x2 !== null && y2 !== null) {
85
- push(x1, y1);
86
- push(x2, y2);
87
- }
88
- }
89
- for (const m of svg.matchAll(/<circle\b[^>]*?\/?>/g)) {
90
- const tag = m[0];
91
- const cx = attr(tag, "cx");
92
- const cy = attr(tag, "cy");
93
- const r = attr(tag, "r");
94
- if (cx !== null && cy !== null && r !== null) {
95
- push(cx - r, cy - r);
96
- push(cx + r, cy + r);
97
- }
98
- }
99
- for (const m of svg.matchAll(/<ellipse\b[^>]*?\/?>/g)) {
100
- const tag = m[0];
101
- const cx = attr(tag, "cx");
102
- const cy = attr(tag, "cy");
103
- const rx = attr(tag, "rx");
104
- const ry = attr(tag, "ry");
105
- if (cx !== null && cy !== null && rx !== null && ry !== null) {
106
- push(cx - rx, cy - ry);
107
- push(cx + rx, cy + ry);
108
- }
109
- }
110
- for (const m of svg.matchAll(/<text\b([^>]*?)>([\s\S]*?)<\/text>/g)) {
111
- const tag = `<text${m[1]}>`;
112
- const text = m[2].replace(/<[^>]+>/g, "");
113
- const x = attr(tag, "x");
114
- const y = attr(tag, "y");
115
- if (x !== null && y !== null) {
116
- const w = text.length * 7;
117
- const anchor = tag.match(/\btext-anchor="([^"]*)"/)?.[1] ?? "start";
118
- const left = anchor === "middle" ? x - w / 2 : anchor === "end" ? x - w : x;
119
- const right = anchor === "middle" ? x + w / 2 : anchor === "end" ? x : x + w;
120
- push(left, y - 14);
121
- push(right, y + 4);
122
- }
123
- }
124
- for (const m of svg.matchAll(/<path\b[^>]*?\bd="([^"]+)"/g)) {
125
- const d = m[1];
126
- const nums = d.match(/-?\d+(?:\.\d+)?/g);
127
- if (!nums) continue;
128
- for (let i = 0; i + 1 < nums.length; i += 2) {
129
- push(parseFloat(nums[i]), parseFloat(nums[i + 1]));
130
- }
131
- }
132
- for (const m of svg.matchAll(
133
- /<(?:polygon|polyline)\b[^>]*?\bpoints="([^"]+)"/g
134
- )) {
135
- const nums = m[1].match(/-?\d+(?:\.\d+)?/g);
136
- if (!nums) continue;
137
- for (let i = 0; i + 1 < nums.length; i += 2) {
138
- push(parseFloat(nums[i]), parseFloat(nums[i + 1]));
139
- }
140
- }
141
- if (xs.length === 0 || ys.length === 0) return null;
142
- const minX = Math.min(...xs);
143
- const maxX = Math.max(...xs);
144
- const minY = Math.min(...ys);
145
- const maxY = Math.max(...ys);
146
- return { x: minX, y: minY, width: maxX - minX, height: maxY - minY };
147
- }
148
-
149
- export {
150
- normalizeSvgForEmbed,
151
- getEmbedSvgViewBox
152
- };
153
- //# sourceMappingURL=chunk-ODZVHU3R.js.map
@@ -1,73 +0,0 @@
1
- import {
2
- CHART_TYPE_DESCRIPTIONS,
3
- chartTypeParsers,
4
- getAllChartTypes,
5
- getRenderCategory,
6
- isExtendedChartType,
7
- knownChartTypeIds,
8
- looksLikeC4,
9
- looksLikeGantt,
10
- parseDgmo,
11
- parseDgmoChartType
12
- } from "./chunk-HSH73DP6.js";
13
- import "./chunk-P235SVAH.js";
14
- import "./chunk-6HO5ZTXK.js";
15
- import "./chunk-44CM72SQ.js";
16
- import "./chunk-76OWZ3BA.js";
17
- import "./chunk-MO5YHHMQ.js";
18
- import "./chunk-WCSOJFU3.js";
19
- import "./chunk-7JEGTRLD.js";
20
- import "./chunk-NNAAJVBU.js";
21
- import "./chunk-RYEGFMUO.js";
22
- import "./chunk-33LCUH4H.js";
23
- import "./chunk-XAKEUMEJ.js";
24
- import "./chunk-BUPDIHML.js";
25
- import "./chunk-DKEPS5LH.js";
26
- import "./chunk-BUVJFRPY.js";
27
- import "./chunk-WVAJFAIA.js";
28
- import "./chunk-EB6FPQUP.js";
29
- import "./chunk-EVCVDTXE.js";
30
- import "./chunk-NURGB5Z4.js";
31
- import "./chunk-L66GEFB6.js";
32
- import "./chunk-RVMRZAPB.js";
33
- import "./chunk-AN2MOO5T.js";
34
- import "./chunk-RTLBSQ3G.js";
35
- import "./chunk-L3UHP6TD.js";
36
- import "./chunk-USZW2HHU.js";
37
- import "./chunk-5QXL4NYS.js";
38
- import "./chunk-GMR5MFHJ.js";
39
- import "./chunk-ERLBPDGU.js";
40
- import "./chunk-AELOBFW5.js";
41
- import "./chunk-B65G5DNL.js";
42
- import "./chunk-IYULMRBE.js";
43
- import "./chunk-R3XI2VC7.js";
44
- import "./chunk-P6T66CCZ.js";
45
- import "./chunk-SML67VPV.js";
46
- import "./chunk-C3Z4DX3V.js";
47
- import "./chunk-QLCCJEJI.js";
48
- import "./chunk-LIOHW36Z.js";
49
- import "./chunk-I46X5VUA.js";
50
- import "./chunk-3MQQNXPD.js";
51
- import "./chunk-NXMESY4J.js";
52
- import "./chunk-RUNNI6VE.js";
53
- import "./chunk-5MLYVTYM.js";
54
- import "./chunk-FMDSF3OV.js";
55
- import "./chunk-FFUN5D66.js";
56
- import "./chunk-NOTA6TEI.js";
57
- import "./chunk-Y3J7VR52.js";
58
- import "./chunk-TLVIHFRO.js";
59
- import "./chunk-CXK4DZH3.js";
60
- import "./chunk-5WRI5ZAA.js";
61
- export {
62
- CHART_TYPE_DESCRIPTIONS,
63
- chartTypeParsers,
64
- getAllChartTypes,
65
- getRenderCategory,
66
- isExtendedChartType,
67
- knownChartTypeIds,
68
- looksLikeC4,
69
- looksLikeGantt,
70
- parseDgmo,
71
- parseDgmoChartType
72
- };
73
- //# sourceMappingURL=dgmo-router-X35VLZLM.js.map
@@ -1,22 +0,0 @@
1
- import {
2
- mapContentAspect,
3
- mapExportDimensions
4
- } from "./chunk-CKNVO24D.js";
5
- import "./chunk-IPWPWM6R.js";
6
- import "./chunk-I5IGB56C.js";
7
- import "./chunk-PBAHEPLQ.js";
8
- import "./chunk-YAA6IID3.js";
9
- import "./chunk-A4GOY3PE.js";
10
- import "./chunk-QOOUC2J5.js";
11
- import "./chunk-WCT3NYCV.js";
12
- import "./chunk-P6T66CCZ.js";
13
- import "./chunk-QLCCJEJI.js";
14
- import "./chunk-Y3J7VR52.js";
15
- import "./chunk-TLVIHFRO.js";
16
- import "./chunk-CXK4DZH3.js";
17
- import "./chunk-5WRI5ZAA.js";
18
- export {
19
- mapContentAspect,
20
- mapExportDimensions
21
- };
22
- //# sourceMappingURL=dimensions-J3FHIMJ6.js.map
@@ -1,14 +0,0 @@
1
- import {
2
- layoutSitemap
3
- } from "./chunk-6SM5NJQH.js";
4
- import "./chunk-QOOUC2J5.js";
5
- import "./chunk-WCT3NYCV.js";
6
- import "./chunk-QLCCJEJI.js";
7
- import "./chunk-Y3J7VR52.js";
8
- import "./chunk-TLVIHFRO.js";
9
- import "./chunk-CXK4DZH3.js";
10
- import "./chunk-5WRI5ZAA.js";
11
- export {
12
- layoutSitemap
13
- };
14
- //# sourceMappingURL=layout-5T6RH5M6.js.map
@@ -1,9 +0,0 @@
1
- import {
2
- layoutWireframe
3
- } from "./chunk-H6PI3KJT.js";
4
- import "./chunk-WCT3NYCV.js";
5
- import "./chunk-5WRI5ZAA.js";
6
- export {
7
- layoutWireframe
8
- };
9
- //# sourceMappingURL=layout-G23F7LDH.js.map
@@ -1,14 +0,0 @@
1
- import {
2
- layoutOrg
3
- } from "./chunk-J5FIXQRT.js";
4
- import "./chunk-QOOUC2J5.js";
5
- import "./chunk-WCT3NYCV.js";
6
- import "./chunk-QLCCJEJI.js";
7
- import "./chunk-Y3J7VR52.js";
8
- import "./chunk-TLVIHFRO.js";
9
- import "./chunk-CXK4DZH3.js";
10
- import "./chunk-5WRI5ZAA.js";
11
- export {
12
- layoutOrg
13
- };
14
- //# sourceMappingURL=layout-OB3RI63S.js.map
@@ -1,13 +0,0 @@
1
- import {
2
- parseEventLine
3
- } from "./chunk-5QXL4NYS.js";
4
- import "./chunk-GMR5MFHJ.js";
5
- import "./chunk-QLCCJEJI.js";
6
- import "./chunk-Y3J7VR52.js";
7
- import "./chunk-TLVIHFRO.js";
8
- import "./chunk-CXK4DZH3.js";
9
- import "./chunk-5WRI5ZAA.js";
10
- export {
11
- parseEventLine
12
- };
13
- //# sourceMappingURL=parser-JAL2HD4I.js.map
@@ -1,24 +0,0 @@
1
- import {
2
- renderMap,
3
- renderMapForExport
4
- } from "./chunk-Z5CGSFJB.js";
5
- import "./chunk-IPWPWM6R.js";
6
- import "./chunk-I5IGB56C.js";
7
- import "./chunk-PBAHEPLQ.js";
8
- import "./chunk-PWIHZ6NJ.js";
9
- import "./chunk-YAA6IID3.js";
10
- import "./chunk-A4GOY3PE.js";
11
- import "./chunk-6KFWC4CO.js";
12
- import "./chunk-QOOUC2J5.js";
13
- import "./chunk-WCT3NYCV.js";
14
- import "./chunk-P6T66CCZ.js";
15
- import "./chunk-QLCCJEJI.js";
16
- import "./chunk-Y3J7VR52.js";
17
- import "./chunk-TLVIHFRO.js";
18
- import "./chunk-CXK4DZH3.js";
19
- import "./chunk-5WRI5ZAA.js";
20
- export {
21
- renderMap,
22
- renderMapForExport
23
- };
24
- //# sourceMappingURL=renderer-SMIBCRVB.js.map
@@ -1,21 +0,0 @@
1
- import {
2
- renderTreemapRadial,
3
- renderTreemapRadialForExport
4
- } from "./chunk-ULOEATBZ.js";
5
- import "./chunk-IZMRON6C.js";
6
- import "./chunk-PWIHZ6NJ.js";
7
- import "./chunk-YAA6IID3.js";
8
- import "./chunk-6KFWC4CO.js";
9
- import "./chunk-QOOUC2J5.js";
10
- import "./chunk-WCT3NYCV.js";
11
- import "./chunk-P6T66CCZ.js";
12
- import "./chunk-QLCCJEJI.js";
13
- import "./chunk-Y3J7VR52.js";
14
- import "./chunk-TLVIHFRO.js";
15
- import "./chunk-CXK4DZH3.js";
16
- import "./chunk-5WRI5ZAA.js";
17
- export {
18
- renderTreemapRadial,
19
- renderTreemapRadialForExport
20
- };
21
- //# sourceMappingURL=renderer-radial-C32GPJQ7.js.map