@diagrammo/dgmo 0.89.0 → 0.91.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 (233) hide show
  1. package/README.md +1 -1
  2. package/dist/advanced.d.ts +589 -15
  3. package/dist/advanced.js +813 -211
  4. package/dist/block.d.ts +11 -2
  5. package/dist/block.js +94 -64
  6. package/dist/{calculator-35YVW4QO.js → calculator-3LZUWOBK.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 +18 -17
  10. package/dist/{chart-types-Bf8C5QQW.d.ts → chart-types-V2NcgN5O.d.ts} +4 -0
  11. package/dist/{charts-d3-KEQSUWKP.js → charts-d3-YXD6VGZQ.js} +8 -7
  12. package/dist/{chunk-PMNITNPR.js → chunk-273GB7WK.js} +6 -5
  13. package/dist/{chunk-HAMF4F3P.js → chunk-2A4OFZ2Z.js} +5 -5
  14. package/dist/{chunk-K5XT7NHD.js → chunk-2AM6VA3A.js} +10 -10
  15. package/dist/{chunk-XJ2TBXHA.js → chunk-2UV627GG.js} +9 -9
  16. package/dist/{chunk-7WGCQE2E.js → chunk-2ZVLI6GQ.js} +1 -1
  17. package/dist/{chunk-JVZ7KFAX.js → chunk-37QQXKFV.js} +9 -10
  18. package/dist/{chunk-M2BCY7H3.js → chunk-3LINSNJT.js} +199 -146
  19. package/dist/{chunk-WPL5PFXE.js → chunk-3SLRZKLB.js} +6 -6
  20. package/dist/chunk-3UR4F7FE.js +14 -0
  21. package/dist/{chunk-ZUCXFXLD.js → chunk-3YTAOMMN.js} +2 -2
  22. package/dist/{chunk-NIUO2TNR.js → chunk-4HG4PYHM.js} +197 -203
  23. package/dist/{chunk-BOO24UMJ.js → chunk-4YO7VJTP.js} +1 -1
  24. package/dist/{chunk-HUNDJTTH.js → chunk-53BJIOLF.js} +1 -1
  25. package/dist/{chunk-LR6RRDWN.js → chunk-57L2JPP2.js} +10 -6
  26. package/dist/{chunk-IIOLFAGJ.js → chunk-5DIBB2QG.js} +51 -32
  27. package/dist/{chunk-S2WE7TVK.js → chunk-5MDQMB6A.js} +1 -1
  28. package/dist/{chunk-7Z2VFRP5.js → chunk-5U6DXIMV.js} +47 -24
  29. package/dist/{chunk-QIOYTQDZ.js → chunk-5VPWIC6T.js} +9 -9
  30. package/dist/{chunk-JRUEIRJB.js → chunk-634LDSN6.js} +3 -3
  31. package/dist/{chunk-VEPIAUSK.js → chunk-6BQSDF77.js} +1 -5
  32. package/dist/{chunk-LPYYZCSI.js → chunk-6NO3MNBC.js} +3 -3
  33. package/dist/{chunk-ITSBBQTH.js → chunk-6QEXWMBP.js} +13 -17
  34. package/dist/{chunk-DDPGEGHB.js → chunk-7BBRSOKS.js} +3 -3
  35. package/dist/{chunk-WQ6G6FFM.js → chunk-AR4QVMWG.js} +5 -2
  36. package/dist/{chunk-BB6QKWHZ.js → chunk-B6EUFLRP.js} +10 -10
  37. package/dist/{chunk-C4FRGZGX.js → chunk-CDT33RHG.js} +1 -1
  38. package/dist/{chunk-WP22MHH6.js → chunk-CPGKRI7H.js} +10 -13
  39. package/dist/{chunk-ZNNVI5SR.js → chunk-CU2PZLZP.js} +53 -31
  40. package/dist/{chunk-CUYHST3B.js → chunk-CVZBLHHW.js} +1 -1
  41. package/dist/{chunk-Y7PSAHAY.js → chunk-CXIPV2FY.js} +3 -3
  42. package/dist/{chunk-NRPELUB6.js → chunk-D7DXNQW5.js} +2 -2
  43. package/dist/{chunk-YMFQLWZ2.js → chunk-D7PP35BA.js} +1 -1
  44. package/dist/{chunk-RGWYZR3S.js → chunk-DLX7MEN4.js} +2 -2
  45. package/dist/chunk-EDPDAUBL.js +825 -0
  46. package/dist/{chunk-GSYZZFI5.js → chunk-EP7BT3HU.js} +2 -2
  47. package/dist/{chunk-ICZ7M6IZ.js → chunk-EQJ3U5EW.js} +1 -1
  48. package/dist/{chunk-3C2FWS2J.js → chunk-EWERNTOX.js} +1 -1
  49. package/dist/{chunk-XUCQVKLQ.js → chunk-F2436VRR.js} +4 -4
  50. package/dist/{chunk-UG2XG57E.js → chunk-F26ZPBSF.js} +3 -3
  51. package/dist/{chunk-UWKRPQZO.js → chunk-FJCYK4K3.js} +25 -22
  52. package/dist/{chunk-FKLE6QA3.js → chunk-G22UV5AF.js} +12 -12
  53. package/dist/{chunk-GUTZCRBT.js → chunk-G3EUQMV4.js} +4 -4
  54. package/dist/{chunk-SOPM5PLO.js → chunk-GCDW3WAY.js} +14 -14
  55. package/dist/{chunk-7UDAIP6W.js → chunk-HFG7KQOY.js} +13 -15
  56. package/dist/{chunk-ID2K3IHI.js → chunk-HLE5QGZJ.js} +1 -1
  57. package/dist/{chunk-QFHWYWQL.js → chunk-HLVGZXM5.js} +2 -2
  58. package/dist/{chunk-7C2RAGPT.js → chunk-HSGWR2FL.js} +16 -16
  59. package/dist/{chunk-P3SKSKJI.js → chunk-HWXUQCDY.js} +3 -3
  60. package/dist/{chunk-HTWH2XQL.js → chunk-HYV6GSXM.js} +6 -3
  61. package/dist/{chunk-3RYBTEF5.js → chunk-I74AQRVD.js} +6 -12
  62. package/dist/chunk-IHK3Y2HG.js +781 -0
  63. package/dist/{chunk-7KPHRTND.js → chunk-II4XJETG.js} +1 -1
  64. package/dist/{chunk-RXIKESRI.js → chunk-IMHNZITR.js} +2 -2
  65. package/dist/{chunk-TAP2NZEU.js → chunk-IMKPFW67.js} +13 -13
  66. package/dist/{chunk-FKZ2Y3Q5.js → chunk-IS6WFBX7.js} +3 -3
  67. package/dist/{chunk-47E5UTXE.js → chunk-IUBCDNT2.js} +2 -2
  68. package/dist/{chunk-EXKCRXPO.js → chunk-IWTUXGHN.js} +12 -12
  69. package/dist/{chunk-C7QRRTAW.js → chunk-J2SQNZ6D.js} +2 -2
  70. package/dist/{chunk-DZPHN2WN.js → chunk-JA2S7PHR.js} +14 -14
  71. package/dist/{chunk-DPSMX4EY.js → chunk-JJQWCI35.js} +4 -4
  72. package/dist/chunk-JJUDOR4I.js +110 -0
  73. package/dist/{chunk-LYLNMN77.js → chunk-K3BYD3WU.js} +8 -3
  74. package/dist/{chunk-3AQJNY65.js → chunk-KFXY5IW2.js} +149 -43
  75. package/dist/{chunk-J64NZ6NF.js → chunk-KSZHIAI2.js} +1 -1
  76. package/dist/{chunk-LCJURK7L.js → chunk-LKR4FACF.js} +2 -4
  77. package/dist/{chunk-PIXJL77H.js → chunk-M6J25PAZ.js} +1 -1
  78. package/dist/{chunk-IJ27L3R4.js → chunk-MA42PIGJ.js} +1 -1
  79. package/dist/{chunk-IQ6P3HDE.js → chunk-MI6SJJQU.js} +2 -2
  80. package/dist/{chunk-N4BBSDWI.js → chunk-MJKQ5ZYY.js} +140 -151
  81. package/dist/{chunk-6K7RODXG.js → chunk-MKFQ5E7J.js} +1 -1
  82. package/dist/{chunk-AZ24RI5L.js → chunk-MNL547RV.js} +6 -6
  83. package/dist/{chunk-44GP7PD5.js → chunk-MPJQMMBZ.js} +12 -0
  84. package/dist/{chunk-ECMA6XE2.js → chunk-N254IJM2.js} +13 -13
  85. package/dist/{layout-search-YKUL4VBV.js → chunk-NWPMLX2V.js} +27 -30
  86. package/dist/{chunk-DV2VEJCC.js → chunk-NWSPPGIE.js} +6 -6
  87. package/dist/{chunk-GDJW64XE.js → chunk-OYKNMFUY.js} +1 -1
  88. package/dist/{chunk-B3S76BZO.js → chunk-PSGSFRRE.js} +4 -4
  89. package/dist/{chunk-4AJKOUBO.js → chunk-PUZ63XZM.js} +13 -11
  90. package/dist/{chunk-UQLHKLF4.js → chunk-PZVTFQI2.js} +8 -8
  91. package/dist/{chunk-W7QN5BC5.js → chunk-Q3N7PI3B.js} +180 -7
  92. package/dist/{chunk-L5AFONQU.js → chunk-QKJ6MQXW.js} +2 -4
  93. package/dist/{chunk-7SX4IY6T.js → chunk-QVKTAU7P.js} +1 -1
  94. package/dist/{chunk-SLQT3JP3.js → chunk-R7BSF7Z7.js} +1 -1
  95. package/dist/{chunk-4R6OMKXB.js → chunk-RHXIUUWB.js} +5 -5
  96. package/dist/{chunk-MHAYUS65.js → chunk-RMTOZALT.js} +8 -5
  97. package/dist/{chunk-HSRQDWV7.js → chunk-ROCBGUJN.js} +8 -17
  98. package/dist/{chunk-44FTCIRI.js → chunk-RVTYIGWZ.js} +9 -9
  99. package/dist/{chunk-RU725VCJ.js → chunk-SKF7XLCM.js} +10 -35
  100. package/dist/{chunk-RPKBWJBB.js → chunk-SMTWQ66K.js} +6 -6
  101. package/dist/{chunk-3AX6MCI6.js → chunk-SPQVER4T.js} +2 -2
  102. package/dist/{chunk-CX6OH5WP.js → chunk-SWBHH2UW.js} +4 -4
  103. package/dist/{chunk-WP2RLGDI.js → chunk-TCX5PMEY.js} +1 -1
  104. package/dist/{chunk-7TF3QOOD.js → chunk-TIVMAITN.js} +14 -0
  105. package/dist/{chunk-NSR2CGV6.js → chunk-TLPY4ZBI.js} +611 -437
  106. package/dist/{chunk-WRCAH3UO.js → chunk-TPEYEOXA.js} +15 -15
  107. package/dist/{chunk-FJNXXGTR.js → chunk-UWJP4JSZ.js} +3 -3
  108. package/dist/{chunk-MY6GUH26.js → chunk-V3KHZQPK.js} +3 -3
  109. package/dist/{chunk-66YFDTT6.js → chunk-VGSSAMLA.js} +4 -4
  110. package/dist/{chunk-Q6SQISHT.js → chunk-VMD2CYVP.js} +311 -74
  111. package/dist/{chunk-MFW6P7WH.js → chunk-WNTPJZU7.js} +3 -3
  112. package/dist/{chunk-7W4XLIVH.js → chunk-WTE27AJT.js} +14 -14
  113. package/dist/{chunk-UKJLPA7R.js → chunk-X6IZP2BD.js} +1 -1
  114. package/dist/{chunk-2GM7N5TV.js → chunk-XLAREWBK.js} +9 -9
  115. package/dist/{chunk-AYOVY75O.js → chunk-XLPJJ35N.js} +4 -4
  116. package/dist/{chunk-NGC3IZRY.js → chunk-XQTRGKQ3.js} +4 -4
  117. package/dist/{chunk-WEF6MXFG.js → chunk-YZG37S7L.js} +9 -9
  118. package/dist/{chunk-LFKSHDVI.js → chunk-ZB2Q67NO.js} +14 -13
  119. package/dist/{chunk-JQ57AWDL.js → chunk-ZJ4PYTCK.js} +1 -1
  120. package/dist/completion-registry.d.ts +6 -0
  121. package/dist/completion-registry.js +62 -6
  122. package/dist/{compute-JAP5E2E4.js → compute-2XWFVO7K.js} +1 -1
  123. package/dist/{d3-B6524aaP.d.ts → d3-2S3PrXik.d.ts} +11 -0
  124. package/dist/dgmo-router-YHBMKTXY.js +94 -0
  125. package/dist/{dimensions-7MF7VSGS.js → dimensions-QMGWJQTR.js} +5 -5
  126. package/dist/editor.js +12 -0
  127. package/dist/{flowchart-parser-GG7XBLQH.js → flowchart-parser-BLJ6RA53.js} +4 -4
  128. package/dist/{flowchart-renderer-DZQZRL2F.js → flowchart-renderer-FXRQKXAK.js} +12 -8
  129. package/dist/highlight.js +12 -0
  130. package/dist/index.d.ts +26 -5
  131. package/dist/index.js +84 -57
  132. package/dist/{layout-5VSMZPMG.js → layout-5HCEF7VO.js} +1 -1
  133. package/dist/{layout-6L3BIFEZ.js → layout-6PLSBB5X.js} +3 -3
  134. package/dist/{layout-UIV56NUA.js → layout-B7PQRAMB.js} +1 -1
  135. package/dist/{layout-IGAVGDME.js → layout-CCVCLZ6S.js} +1 -1
  136. package/dist/{layout-PP36LUTA.js → layout-CRUAP7JG.js} +3 -3
  137. package/dist/{layout-Q3RYSODA.js → layout-G42FDCF3.js} +3 -3
  138. package/dist/{layout-EFEZ533S.js → layout-IV4H2FLB.js} +3 -3
  139. package/dist/{layout-4RRC7XU7.js → layout-JTNRSGOS.js} +6 -3
  140. package/dist/{layout-H4K54IW3.js → layout-RBLD5EGX.js} +6 -3
  141. package/dist/{layout-SW3XWYKC.js → layout-ROAVGBUC.js} +1 -1
  142. package/dist/{layout-XUW444O5.js → layout-T2DQ4M77.js} +8 -4
  143. package/dist/{layout-MSSHF45T.js → layout-UPQGIT3N.js} +2 -2
  144. package/dist/{layout-DXVAYF6W.js → layout-VRJ5YFUE.js} +2 -2
  145. package/dist/{layout-ZP7XYVXF.js → layout-YKGQRFDM.js} +2 -4
  146. package/dist/layout-search-L75YOBME.js +42 -0
  147. package/dist/{palettes-WZAIQTEG.js → palettes-WQHELGVQ.js} +2 -1
  148. package/dist/{parser-ZLKYDFI5.js → parser-2XCDVLSN.js} +3 -3
  149. package/dist/{parser-GZ3LVF72.js → parser-3MGA2MTM.js} +2 -2
  150. package/dist/{parser-NOANDFJ4.js → parser-4AR25MAS.js} +2 -2
  151. package/dist/{parser-GCCWMBTU.js → parser-4QNRCGU5.js} +5 -4
  152. package/dist/{parser-LANGKWRG.js → parser-6LMB7BQQ.js} +2 -2
  153. package/dist/{parser-WEVTMBJ5.js → parser-6NSQLPTS.js} +3 -3
  154. package/dist/{parser-KYPP2DX6.js → parser-6X4GGH2R.js} +4 -4
  155. package/dist/parser-AL6YL7KM.js +12 -0
  156. package/dist/{parser-5655XSOR.js → parser-D6YRVV75.js} +3 -3
  157. package/dist/{parser-NGHQQGD2.js → parser-EY3VJWBE.js} +3 -3
  158. package/dist/{parser-TL3JA4RI.js → parser-EYF4ZSZO.js} +3 -3
  159. package/dist/{parser-256EIWB2.js → parser-FDXUQ5TI.js} +2 -2
  160. package/dist/{parser-JOOAVBJI.js → parser-H2DJEAPG.js} +3 -3
  161. package/dist/{parser-AKBVJHMK.js → parser-ILWAA3QJ.js} +3 -3
  162. package/dist/{parser-AN3MGHRL.js → parser-KMFMNZYI.js} +3 -3
  163. package/dist/{parser-IMM2JJX3.js → parser-MDSVVCJP.js} +4 -4
  164. package/dist/{parser-OVQTTTUJ.js → parser-OFTMA36M.js} +2 -2
  165. package/dist/{parser-LGS65QPN.js → parser-Q3UAOLEZ.js} +2 -2
  166. package/dist/{parser-DGF3ZEO6.js → parser-QL4DEPVA.js} +4 -4
  167. package/dist/{parser-XYY5NHP4.js → parser-R6OETHWM.js} +2 -2
  168. package/dist/{parser-GEKPWSSK.js → parser-UEDPLM46.js} +3 -3
  169. package/dist/{parser-KZMALSB2.js → parser-UL6WN6W5.js} +4 -4
  170. package/dist/{parser-J4DVNL4W.js → parser-ULSUK36C.js} +4 -4
  171. package/dist/{parser-KZMJNKDW.js → parser-UY3K4ROB.js} +2 -2
  172. package/dist/{parser-KFYRTGTC.js → parser-UYQNNQKT.js} +4 -4
  173. package/dist/{parser-DHSFIUPU.js → parser-VG747VR6.js} +3 -3
  174. package/dist/{parser-UTXFJG4X.js → parser-VK4PNDX4.js} +3 -3
  175. package/dist/{parser-SA3RAJFS.js → parser-WSONWDFN.js} +2 -2
  176. package/dist/{parser-NPXPJHWN.js → parser-X5FQ36KJ.js} +3 -3
  177. package/dist/{parser-OKB64MMN.js → parser-XO5IAXMT.js} +3 -3
  178. package/dist/{parser-HCGXNHHL.js → parser-YVHO2NRM.js} +3 -3
  179. package/dist/{parser-P4TOQYNN.js → parser-YWZGIU3C.js} +3 -3
  180. package/dist/{parser-337TACHB.js → parser-ZFLSULFC.js} +3 -3
  181. package/dist/{parser-7OEE7QT6.js → parser-ZR7JAKSW.js} +2 -2
  182. package/dist/{renderer-CHQZES6G.js → renderer-3N64GVNM.js} +2 -2
  183. package/dist/{renderer-JR2XNZAH.js → renderer-43IVPARP.js} +5 -5
  184. package/dist/{renderer-J4OS77PK.js → renderer-4MEZYGU6.js} +3 -3
  185. package/dist/{renderer-IR5GGAPB.js → renderer-54GXA3UO.js} +11 -7
  186. package/dist/{renderer-7VQOKAII.js → renderer-7EAWN7MC.js} +6 -6
  187. package/dist/{renderer-QQHQY3GT.js → renderer-7SEXPBGM.js} +5 -5
  188. package/dist/{renderer-P4XCRNCY.js → renderer-B7B7BQM3.js} +9 -9
  189. package/dist/{renderer-7HOSI6JJ.js → renderer-I2LYSQBV.js} +4 -4
  190. package/dist/{renderer-6OQM32X3.js → renderer-IPDCAACY.js} +3 -3
  191. package/dist/{renderer-JRVY7HAD.js → renderer-J2LOMTBC.js} +4 -4
  192. package/dist/renderer-JUH6M3XF.js +46 -0
  193. package/dist/renderer-KY6O5JTX.js +80 -0
  194. package/dist/{renderer-FCXRDYSJ.js → renderer-LHTDI5RV.js} +7 -7
  195. package/dist/{renderer-XHEMXBQM.js → renderer-LWL3IJOF.js} +5 -5
  196. package/dist/{renderer-BLHN3RCY.js → renderer-MRMFYYZT.js} +2 -2
  197. package/dist/{renderer-DBNDLKPE.js → renderer-NCIDGJ2R.js} +7 -7
  198. package/dist/{renderer-3AD4NDF5.js → renderer-OPA4JJKX.js} +6 -6
  199. package/dist/{renderer-XFEZ5UBE.js → renderer-QMNC7TGN.js} +6 -6
  200. package/dist/{renderer-5GZNGZU5.js → renderer-QQNPJGAP.js} +9 -7
  201. package/dist/{renderer-CEIX5JPA.js → renderer-R7OYCJEA.js} +2 -2
  202. package/dist/{renderer-WQ654YT5.js → renderer-R7RK7FKI.js} +1 -1
  203. package/dist/{renderer-4JE5ORRO.js → renderer-RFP55AW7.js} +13 -10
  204. package/dist/{renderer-NAA7D33G.js → renderer-S3NFBJCY.js} +15 -11
  205. package/dist/{renderer-43ESBXVY.js → renderer-SD4ZHHAR.js} +8 -6
  206. package/dist/{renderer-WB75JME5.js → renderer-SE7Z5AOL.js} +6 -6
  207. package/dist/{renderer-YTEZK3GC.js → renderer-T2WUA7MC.js} +7 -7
  208. package/dist/{renderer-VYWCMRWA.js → renderer-TWKEZ3DD.js} +5 -5
  209. package/dist/{renderer-DCJ4AQ3N.js → renderer-U5PD72G7.js} +5 -5
  210. package/dist/{renderer-EAORWLVK.js → renderer-VCTKBUTR.js} +7 -7
  211. package/dist/{renderer-7L7J4DHO.js → renderer-VNZTWATB.js} +7 -6
  212. package/dist/{renderer-2ZQ6DPVD.js → renderer-YDNWK6RI.js} +2 -2
  213. package/dist/{renderer-VGQMJC5K.js → renderer-YDOWBIUB.js} +11 -10
  214. package/dist/{renderer-7MCC6GKH.js → renderer-YQPZ7O2C.js} +2 -2
  215. package/dist/{renderer-ZXQXRNDR.js → renderer-ZQ77CM6Y.js} +6 -6
  216. package/dist/{renderer-radial-NA5DVBG4.js → renderer-radial-TNNEL3YN.js} +5 -5
  217. package/dist/{resolver-XSXE2TRX.js → resolver-6DJLZF6Y.js} +1 -1
  218. package/dist/{state-parser-FE3RF6XY.js → state-parser-NIIVOU2Y.js} +4 -4
  219. package/dist/{state-renderer-4S2C2CHB.js → state-renderer-TVLEG32M.js} +14 -10
  220. package/dist/{themes-CzuBdx1T.d.ts → themes-Cm2YBcT8.d.ts} +38 -2
  221. package/docs/ai-integration.md +4 -3
  222. package/docs/language-reference.md +162 -12
  223. package/gallery/fixtures/sketch.dgmo +2 -2
  224. package/gallery/fixtures/whiteboard.dgmo +18 -0
  225. package/package.json +2 -1
  226. package/dist/chunk-6EK55ART.js +0 -116
  227. package/dist/chunk-HTNLLT34.js +0 -72
  228. package/dist/dgmo-router-7WANZOBD.js +0 -92
  229. package/dist/renderer-TJJGFQGT.js +0 -78
  230. package/dist/{chunk-3FCSOYN4.js → chunk-5P2L5QXE.js} +0 -0
  231. package/dist/{chunk-HJRP6PXL.js → chunk-BQVTV4LB.js} +0 -0
  232. package/dist/{chunk-LYRDIVSY.js → chunk-GLCMUTO5.js} +0 -0
  233. package/dist/{chunk-5LE2CTLS.js → chunk-NTJ5HVV6.js} +3 -3
package/dist/block.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { M as MapDataSource } from './d3-B6524aaP.js';
1
+ import { M as MapDataSource } from './d3-2S3PrXik.js';
2
2
  import './tag-groups-fgxWTyyB.js';
3
3
 
4
4
  /**
@@ -69,8 +69,17 @@ type BlockColorMode = 'auto' | 'light' | 'dark' | 'transparent';
69
69
  interface DgmoBlockOptions {
70
70
  /** `diagram` (default): SVG only. `showcase`: SVG + source chrome. */
71
71
  mode?: BlockMode;
72
- /** Palette name. Default `slate`; unknown names warn + fall back. */
72
+ /**
73
+ * Palette name — the surface's default, which a diagram's own `palette`
74
+ * line beats. Default `slate`; unknown names warn + fall back.
75
+ */
73
76
  palette?: string;
77
+ /**
78
+ * A palette name that beats the diagram's own `palette` line: a deliberate
79
+ * per-embed choice such as a fence attribute (#1038). Unknown names warn +
80
+ * fall back, like `palette`.
81
+ */
82
+ paletteOverride?: string;
74
83
  /** Default `auto` (dual light/dark render). */
75
84
  colorMode?: BlockColorMode;
76
85
  /**
package/dist/block.js CHANGED
@@ -4,102 +4,108 @@ import {
4
4
  } from "./chunk-D3K4U3ZM.js";
5
5
  import {
6
6
  render
7
- } from "./chunk-M2BCY7H3.js";
7
+ } from "./chunk-3LINSNJT.js";
8
8
  import "./chunk-ABP5BUD6.js";
9
9
  import {
10
10
  docsLink,
11
11
  renderErrorCard
12
- } from "./chunk-DDPGEGHB.js";
13
- import "./chunk-Q6SQISHT.js";
12
+ } from "./chunk-7BBRSOKS.js";
13
+ import {
14
+ choosePalette,
15
+ extractPaletteDirective
16
+ } from "./chunk-VMD2CYVP.js";
14
17
  import "./chunk-EOYPX6SF.js";
15
- import "./chunk-WP2RLGDI.js";
18
+ import "./chunk-ZJ4PYTCK.js";
19
+ import {
20
+ monthIndex,
21
+ weekdayIndex
22
+ } from "./chunk-WFA6IULY.js";
23
+ import "./chunk-3DPOIW3W.js";
24
+ import "./chunk-TCX5PMEY.js";
16
25
  import "./chunk-A2RUBBVT.js";
17
- import "./chunk-ZUCXFXLD.js";
18
- import "./chunk-47E5UTXE.js";
19
- import "./chunk-3AQJNY65.js";
26
+ import "./chunk-3YTAOMMN.js";
27
+ import "./chunk-IUBCDNT2.js";
28
+ import "./chunk-BDXC7MDK.js";
29
+ import "./chunk-KFXY5IW2.js";
20
30
  import "./chunk-KMU65FYM.js";
21
31
  import "./chunk-EPDBWATV.js";
22
- import "./chunk-7UDAIP6W.js";
32
+ import "./chunk-HFG7KQOY.js";
23
33
  import "./chunk-2CW5ZTNH.js";
24
34
  import {
25
35
  escapeAttr,
26
36
  escapeHtml
27
- } from "./chunk-UWKRPQZO.js";
37
+ } from "./chunk-FJCYK4K3.js";
28
38
  import "./chunk-YRYKTYMQ.js";
29
39
  import "./chunk-24YPR5EH.js";
40
+ import "./chunk-QVKTAU7P.js";
30
41
  import "./chunk-XCKNFFKM.js";
31
- import "./chunk-UKJLPA7R.js";
42
+ import "./chunk-X6IZP2BD.js";
32
43
  import "./chunk-SEKNYIMO.js";
33
44
  import "./chunk-CNUN5GO6.js";
34
45
  import "./chunk-OOCVGX4W.js";
35
- import "./chunk-VLC6WNRD.js";
36
- import "./chunk-BDXC7MDK.js";
37
- import "./chunk-7SX4IY6T.js";
38
46
  import "./chunk-NS7L7YKH.js";
47
+ import "./chunk-VLC6WNRD.js";
39
48
  import "./chunk-ICLB27PZ.js";
40
- import "./chunk-WQ6G6FFM.js";
41
- import "./chunk-B3S76BZO.js";
42
- import "./chunk-PIXJL77H.js";
43
- import "./chunk-3C2FWS2J.js";
44
- import "./chunk-P3SKSKJI.js";
45
- import "./chunk-MY6GUH26.js";
49
+ import "./chunk-MKFQ5E7J.js";
50
+ import "./chunk-AR4QVMWG.js";
51
+ import "./chunk-PSGSFRRE.js";
52
+ import "./chunk-M6J25PAZ.js";
53
+ import "./chunk-EWERNTOX.js";
54
+ import "./chunk-HWXUQCDY.js";
55
+ import "./chunk-V3KHZQPK.js";
46
56
  import "./chunk-XSVWUOUZ.js";
47
- import "./chunk-BOO24UMJ.js";
48
- import "./chunk-JQ57AWDL.js";
49
- import {
50
- monthIndex,
51
- weekdayIndex
52
- } from "./chunk-WFA6IULY.js";
53
- import "./chunk-3DPOIW3W.js";
54
- import "./chunk-HTWH2XQL.js";
55
- import "./chunk-MHAYUS65.js";
56
- import "./chunk-RU725VCJ.js";
57
- import "./chunk-DV2VEJCC.js";
58
- import "./chunk-C7QRRTAW.js";
59
- import "./chunk-FKZ2Y3Q5.js";
57
+ import "./chunk-4YO7VJTP.js";
58
+ import "./chunk-HYV6GSXM.js";
59
+ import "./chunk-RMTOZALT.js";
60
+ import "./chunk-SKF7XLCM.js";
61
+ import "./chunk-NWSPPGIE.js";
62
+ import "./chunk-IHK3Y2HG.js";
63
+ import "./chunk-J2SQNZ6D.js";
64
+ import "./chunk-IS6WFBX7.js";
60
65
  import "./chunk-QQJUTGQH.js";
61
- import "./chunk-NGC3IZRY.js";
62
- import "./chunk-6K7RODXG.js";
63
- import "./chunk-66YFDTT6.js";
64
- import "./chunk-GDJW64XE.js";
65
- import "./chunk-QFHWYWQL.js";
66
- import "./chunk-DPSMX4EY.js";
67
- import "./chunk-GSYZZFI5.js";
68
- import "./chunk-GUTZCRBT.js";
69
- import "./chunk-ITSBBQTH.js";
66
+ import "./chunk-XQTRGKQ3.js";
67
+ import "./chunk-VGSSAMLA.js";
68
+ import "./chunk-OYKNMFUY.js";
69
+ import "./chunk-HLVGZXM5.js";
70
+ import "./chunk-JJQWCI35.js";
71
+ import "./chunk-EP7BT3HU.js";
72
+ import "./chunk-G3EUQMV4.js";
73
+ import "./chunk-6QEXWMBP.js";
70
74
  import {
71
75
  encodeDiagramUrl
72
76
  } from "./chunk-RE27AX7O.js";
73
- import "./chunk-K5XT7NHD.js";
74
- import "./chunk-3RYBTEF5.js";
75
- import "./chunk-JVZ7KFAX.js";
77
+ import "./chunk-2AM6VA3A.js";
78
+ import "./chunk-I74AQRVD.js";
79
+ import "./chunk-37QQXKFV.js";
76
80
  import "./chunk-2SKMEL7V.js";
77
- import "./chunk-7WGCQE2E.js";
81
+ import "./chunk-2ZVLI6GQ.js";
78
82
  import "./chunk-EQW6HOP4.js";
79
83
  import {
80
84
  scanMonthNameDates
81
85
  } from "./chunk-DAOFNU6J.js";
82
86
  import {
87
+ getPalette,
83
88
  resolvePaletteOrFallback
84
- } from "./chunk-NIUO2TNR.js";
85
- import "./chunk-LFKSHDVI.js";
89
+ } from "./chunk-4HG4PYHM.js";
90
+ import "./chunk-ZB2Q67NO.js";
86
91
  import "./chunk-C3Z4DX3V.js";
87
- import "./chunk-JRUEIRJB.js";
88
- import "./chunk-7TF3QOOD.js";
89
- import "./chunk-AYOVY75O.js";
92
+ import "./chunk-634LDSN6.js";
93
+ import "./chunk-TIVMAITN.js";
94
+ import "./chunk-XLPJJ35N.js";
90
95
  import "./chunk-NXMESY4J.js";
91
- import "./chunk-MFW6P7WH.js";
92
- import "./chunk-WPL5PFXE.js";
93
- import "./chunk-J64NZ6NF.js";
96
+ import "./chunk-WNTPJZU7.js";
97
+ import "./chunk-3SLRZKLB.js";
98
+ import "./chunk-KSZHIAI2.js";
94
99
  import "./chunk-O753JUEZ.js";
95
100
  import "./chunk-N7VMGZCU.js";
96
- import "./chunk-FJNXXGTR.js";
97
- import "./chunk-UG2XG57E.js";
101
+ import "./chunk-UWJP4JSZ.js";
102
+ import "./chunk-F26ZPBSF.js";
98
103
  import "./chunk-IYULMRBE.js";
99
104
  import "./chunk-NOTA6TEI.js";
100
- import "./chunk-HSRQDWV7.js";
105
+ import "./chunk-ROCBGUJN.js";
101
106
  import "./chunk-4WW3SGMH.js";
102
- import "./chunk-L5AFONQU.js";
107
+ import "./chunk-3UR4F7FE.js";
108
+ import "./chunk-QKJ6MQXW.js";
103
109
  import {
104
110
  CHART_TYPE_IDS,
105
111
  REGISTRY_COLON_KEY_TOKENS,
@@ -107,7 +113,7 @@ import {
107
113
  REGISTRY_DIRECTIVE_TOKENS,
108
114
  REGISTRY_MODIFIER_TOKENS,
109
115
  REGISTRY_STATUS_TOKENS
110
- } from "./chunk-44GP7PD5.js";
116
+ } from "./chunk-MPJQMMBZ.js";
111
117
  import "./chunk-5NU7NII2.js";
112
118
  import "./chunk-I6GGMCTV.js";
113
119
  import "./chunk-KAO7JL4I.js";
@@ -1046,6 +1052,7 @@ function resolveBlockOptions(opts) {
1046
1052
  return {
1047
1053
  mode,
1048
1054
  palette: opts.palette ?? "slate",
1055
+ paletteOverride: opts.paletteOverride,
1049
1056
  colorMode: opts.colorMode ?? "auto",
1050
1057
  background: opts.background ?? "auto",
1051
1058
  showSource: opts.showSource ?? showcase,
@@ -1066,18 +1073,43 @@ async function renderDgmoBlock(source, options = {}) {
1066
1073
  const opts = resolveBlockOptions(options);
1067
1074
  const trimmed = source.trim();
1068
1075
  const palette = resolvePaletteOrFallback(opts.palette, opts.onWarn);
1076
+ const override = opts.paletteOverride === void 0 ? void 0 : resolvePaletteOrFallback(opts.paletteOverride, opts.onWarn);
1069
1077
  const diagnostics = [];
1070
1078
  let chartType;
1079
+ const directive = extractPaletteDirective(trimmed);
1080
+ const drawnIn = (theme) => {
1081
+ const chosen = choosePalette(directive, {
1082
+ palette: palette.id,
1083
+ ...override !== void 0 && { paletteOverride: override.id },
1084
+ theme
1085
+ });
1086
+ const config = chosen.palette ?? [palette, override].find((p) => p?.id === chosen.paletteId) ?? getPalette(chosen.paletteId);
1087
+ return {
1088
+ config,
1089
+ theme: chosen.theme,
1090
+ bg: config[chosen.theme === "dark" ? "dark" : "light"].bg,
1091
+ // Drawn in another mode than the slot asked for: its colours were
1092
+ // picked against its own ground, so stripping that ground would put
1093
+ // dark-mode text on a light page.
1094
+ pinned: chosen.theme !== theme
1095
+ };
1096
+ };
1097
+ const backgroundFor = (theme) => {
1098
+ if (opts.background !== "auto") return opts.background;
1099
+ return drawnIn(theme).pinned ? "opaque" : defaultEmbedBackground(chartType);
1100
+ };
1071
1101
  const renderTheme = async (theme) => {
1072
1102
  const r = await render(trimmed, {
1073
1103
  palette: palette.id,
1104
+ ...override !== void 0 && { paletteOverride: override.id },
1074
1105
  theme,
1075
1106
  ...opts.mapData !== void 0 ? { mapData: opts.mapData } : {}
1076
1107
  });
1077
1108
  chartType = r.chartType;
1078
1109
  diagnostics.push(...r.diagnostics);
1079
1110
  const errors = r.diagnostics.filter((d) => d.severity === "error");
1080
- return errors.length ? renderErrorCard(errors, trimmed, palette, theme) : r.svg;
1111
+ const drawn = drawnIn(theme);
1112
+ return errors.length ? renderErrorCard(errors, trimmed, drawn.config, drawn.theme) : r.svg;
1081
1113
  };
1082
1114
  let svgsHtml;
1083
1115
  if (opts.colorMode === "auto") {
@@ -1085,13 +1117,11 @@ async function renderDgmoBlock(source, options = {}) {
1085
1117
  renderTheme("light"),
1086
1118
  renderTheme("dark")
1087
1119
  ]);
1088
- const background = opts.background === "auto" ? defaultEmbedBackground(chartType) : opts.background;
1089
- svgsHtml = `<div class="${escapeAttr(innerClasses(opts, "dgmo-light"))}" data-dgmo-bg="${escapeAttr(palette.light.bg)}">${normalizeSvgForEmbed(light, { background })}</div><div class="${escapeAttr(innerClasses(opts, "dgmo-dark"))}" data-dgmo-bg="${escapeAttr(palette.dark.bg)}" style="display:none">${normalizeSvgForEmbed(dark, { background })}</div>`;
1120
+ svgsHtml = `<div class="${escapeAttr(innerClasses(opts, "dgmo-light"))}" data-dgmo-bg="${escapeAttr(drawnIn("light").bg)}">${normalizeSvgForEmbed(light, { background: backgroundFor("light") })}</div><div class="${escapeAttr(innerClasses(opts, "dgmo-dark"))}" data-dgmo-bg="${escapeAttr(drawnIn("dark").bg)}" style="display:none">${normalizeSvgForEmbed(dark, { background: backgroundFor("dark") })}</div>`;
1090
1121
  } else {
1091
1122
  const svg = await renderTheme(opts.colorMode);
1092
- const background = opts.background === "auto" ? defaultEmbedBackground(chartType) : opts.background;
1093
- const paletteBg = palette[opts.colorMode === "dark" ? "dark" : "light"].bg;
1094
- svgsHtml = `<div class="${escapeAttr(innerClasses(opts, "dgmo-svg"))}" data-dgmo-bg="${escapeAttr(paletteBg)}">${normalizeSvgForEmbed(svg, { background })}</div>`;
1123
+ const paletteBg = drawnIn(opts.colorMode).bg;
1124
+ svgsHtml = `<div class="${escapeAttr(innerClasses(opts, "dgmo-svg"))}" data-dgmo-bg="${escapeAttr(paletteBg)}">${normalizeSvgForEmbed(svg, { background: backgroundFor(opts.colorMode) })}</div>`;
1095
1125
  }
1096
1126
  return { html: assembleBlock(trimmed, svgsHtml, opts), diagnostics };
1097
1127
  }
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  calculateSchedule
3
- } from "./chunk-LCJURK7L.js";
3
+ } from "./chunk-LKR4FACF.js";
4
4
  import "./chunk-EQW6HOP4.js";
5
5
  import "./chunk-NOTA6TEI.js";
6
- import "./chunk-44GP7PD5.js";
6
+ import "./chunk-MPJQMMBZ.js";
7
7
  import "./chunk-2M4IGSCY.js";
8
8
  import "./chunk-BYU54C3S.js";
9
9
  import "./chunk-5WRI5ZAA.js";
@@ -1,4 +1,4 @@
1
- import './chart-types-Bf8C5QQW.js';
1
+ import './chart-types-V2NcgN5O.js';
2
2
  import { a as PaletteColors, T as TagGroup, D as DgmoError } from './tag-groups-fgxWTyyB.js';
3
3
 
4
4
  /** Convert hex (#RRGGBB or #RGB) to { h, s, l } with h in degrees, s/l as percentages. */
@@ -1,3 +1,3 @@
1
- export { C as ChartTypeId, a as ChartTypeMeta, c as chartTypes, b as getAvailablePalettes, g as getPalette } from './chart-types-Bf8C5QQW.js';
2
- export { A as ALL_CHART_TYPES, O as OrgNode, P as ParsedOrg, l as hexToHSLString, o as normalizePertSourceForShare, p as parseDgmoChartType, q as parseFirstLine, r as parseOrg, s as parseRaci, t as resolveOrgImports } from './chart-meta-Bev5Ebjr.js';
1
+ export { C as ChartTypeId, a as ChartTypeMeta, c as chartTypes, b as getAvailablePalettes, g as getPalette } from './chart-types-V2NcgN5O.js';
2
+ export { A as ALL_CHART_TYPES, O as OrgNode, P as ParsedOrg, l as hexToHSLString, o as normalizePertSourceForShare, p as parseDgmoChartType, q as parseFirstLine, r as parseOrg, s as parseRaci, t as resolveOrgImports } from './chart-meta-B_WTMP0y.js';
3
3
  export { C as CompactViewState, h as DecodedDiagramUrl, i as EncodeDiagramUrlOptions, j as EncodeDiagramUrlResult, a as PaletteColors, l as decodeDiagramUrl, m as decodeViewState, n as encodeDiagramUrl, o as encodeViewState } from './tag-groups-fgxWTyyB.js';
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  normalizePertSourceForShare,
3
3
  resolveOrgImports
4
- } from "./chunk-SLQT3JP3.js";
4
+ } from "./chunk-R7BSF7Z7.js";
5
5
  import {
6
6
  decodeDiagramUrl,
7
7
  decodeViewState,
@@ -10,43 +10,44 @@ import {
10
10
  } from "./chunk-RE27AX7O.js";
11
11
  import {
12
12
  parseDgmoChartType
13
- } from "./chunk-K5XT7NHD.js";
13
+ } from "./chunk-2AM6VA3A.js";
14
14
  import {
15
15
  parseRaci
16
- } from "./chunk-3RYBTEF5.js";
17
- import "./chunk-JVZ7KFAX.js";
16
+ } from "./chunk-I74AQRVD.js";
17
+ import "./chunk-37QQXKFV.js";
18
18
  import "./chunk-2SKMEL7V.js";
19
- import "./chunk-7WGCQE2E.js";
19
+ import "./chunk-2ZVLI6GQ.js";
20
20
  import "./chunk-EQW6HOP4.js";
21
21
  import "./chunk-DAOFNU6J.js";
22
22
  import {
23
23
  getAvailablePalettes,
24
24
  getPalette
25
- } from "./chunk-NIUO2TNR.js";
26
- import "./chunk-LFKSHDVI.js";
25
+ } from "./chunk-4HG4PYHM.js";
26
+ import "./chunk-ZB2Q67NO.js";
27
27
  import "./chunk-C3Z4DX3V.js";
28
- import "./chunk-JRUEIRJB.js";
29
- import "./chunk-7TF3QOOD.js";
30
- import "./chunk-AYOVY75O.js";
28
+ import "./chunk-634LDSN6.js";
29
+ import "./chunk-TIVMAITN.js";
30
+ import "./chunk-XLPJJ35N.js";
31
31
  import "./chunk-NXMESY4J.js";
32
- import "./chunk-MFW6P7WH.js";
33
- import "./chunk-WPL5PFXE.js";
34
- import "./chunk-J64NZ6NF.js";
32
+ import "./chunk-WNTPJZU7.js";
33
+ import "./chunk-3SLRZKLB.js";
34
+ import "./chunk-KSZHIAI2.js";
35
35
  import "./chunk-O753JUEZ.js";
36
36
  import "./chunk-N7VMGZCU.js";
37
37
  import {
38
38
  parseOrg
39
- } from "./chunk-FJNXXGTR.js";
40
- import "./chunk-UG2XG57E.js";
39
+ } from "./chunk-UWJP4JSZ.js";
40
+ import "./chunk-F26ZPBSF.js";
41
41
  import "./chunk-IYULMRBE.js";
42
42
  import "./chunk-NOTA6TEI.js";
43
43
  import "./chunk-4WW3SGMH.js";
44
- import "./chunk-L5AFONQU.js";
44
+ import "./chunk-3UR4F7FE.js";
45
+ import "./chunk-QKJ6MQXW.js";
45
46
  import {
46
47
  ALL_CHART_TYPES,
47
48
  chartTypes,
48
49
  parseFirstLine
49
- } from "./chunk-44GP7PD5.js";
50
+ } from "./chunk-MPJQMMBZ.js";
50
51
  import "./chunk-5NU7NII2.js";
51
52
  import {
52
53
  hexToHSLString
@@ -159,6 +159,10 @@ declare const chartTypesData: readonly [{
159
159
  readonly id: "sketch";
160
160
  readonly description: "GUI-first constrained canvas: uniformly-sized shapes placed freely on a snap grid, arrows between them, meaning through tags — the markup is generated by the canvas editor";
161
161
  readonly beta: true;
162
+ }, {
163
+ readonly id: "whiteboard";
164
+ readonly description: "Free-form whiteboard on an infinite canvas: rectangles, ellipses, databases, queues, free arrows, text, pasted images and freehand ink at pixel positions — drawn in the canvas; AI writes shapes, arrows and text, never ink";
165
+ readonly beta: true;
162
166
  }, {
163
167
  readonly id: "goal";
164
168
  readonly description: "Single progress-toward-a-target value (now vs target) as a progress bar, thermometer, or gauge — KPIs, fundraising, quotas, completion";
@@ -2,21 +2,22 @@ import {
2
2
  D3_DATA_CHART_TYPES,
3
3
  renderDataChartD3,
4
4
  supportsD3DataChart
5
- } from "./chunk-3AQJNY65.js";
5
+ } from "./chunk-KFXY5IW2.js";
6
6
  import "./chunk-KMU65FYM.js";
7
7
  import "./chunk-EPDBWATV.js";
8
- import "./chunk-7UDAIP6W.js";
8
+ import "./chunk-HFG7KQOY.js";
9
9
  import "./chunk-2CW5ZTNH.js";
10
- import "./chunk-UKJLPA7R.js";
10
+ import "./chunk-X6IZP2BD.js";
11
11
  import "./chunk-SEKNYIMO.js";
12
12
  import "./chunk-CNUN5GO6.js";
13
13
  import "./chunk-OOCVGX4W.js";
14
- import "./chunk-VLC6WNRD.js";
15
14
  import "./chunk-NS7L7YKH.js";
15
+ import "./chunk-VLC6WNRD.js";
16
16
  import "./chunk-ICLB27PZ.js";
17
- import "./chunk-NIUO2TNR.js";
18
- import "./chunk-L5AFONQU.js";
19
- import "./chunk-44GP7PD5.js";
17
+ import "./chunk-4HG4PYHM.js";
18
+ import "./chunk-3UR4F7FE.js";
19
+ import "./chunk-QKJ6MQXW.js";
20
+ import "./chunk-MPJQMMBZ.js";
20
21
  import "./chunk-I6GGMCTV.js";
21
22
  import "./chunk-KAO7JL4I.js";
22
23
  import "./chunk-L24LESXF.js";
@@ -352,7 +352,8 @@ function applySwimLanes(g, resolved, _memberToGroup, collapsedGroupIds) {
352
352
  if (members.length > laneSlots[li]) laneSlots[li] = members.length;
353
353
  }
354
354
  }
355
- const slotSize = isLR ? DEFAULT_NODE_HEIGHT : g.node(g.nodes()[0])?.width ?? DEFAULT_NODE_HEIGHT;
355
+ const firstNode = g.nodes()[0];
356
+ const slotSize = isLR ? DEFAULT_NODE_HEIGHT : (firstNode === void 0 ? void 0 : g.node(firstNode)?.width) ?? DEFAULT_NODE_HEIGHT;
356
357
  const laneSize = new Array(numLanes).fill(0);
357
358
  for (let i = 1; i < numLanes; i++) {
358
359
  const slots = laneSlots[i];
@@ -378,7 +379,7 @@ function applySwimLanes(g, resolved, _memberToGroup, collapsedGroupIds) {
378
379
  const critOf = (id) => {
379
380
  const r = resolved.activities.find((a) => a.activity.id === id);
380
381
  if (r) {
381
- return r.criticality !== null ? r.criticality : r.isCriticalPath ? 1 : 0;
382
+ return r.criticality ?? (r.isCriticalPath ? 1 : 0);
382
383
  }
383
384
  const rg = resolved.groups.find((x) => x.group.id === id);
384
385
  if (!rg) return 0;
@@ -386,7 +387,7 @@ function applySwimLanes(g, resolved, _memberToGroup, collapsedGroupIds) {
386
387
  for (const aid of rg.group.activityIds) {
387
388
  const ar = resolved.activities.find((a) => a.activity.id === aid);
388
389
  if (!ar) continue;
389
- const c = ar.criticality !== null ? ar.criticality : ar.isCriticalPath ? 1 : 0;
390
+ const c = ar.criticality ?? (ar.isCriticalPath ? 1 : 0);
390
391
  if (c > m) m = c;
391
392
  }
392
393
  return m;
@@ -428,7 +429,7 @@ function centerByCriticality(g, resolved, memberToGroup, collapsedGroupIds) {
428
429
  const critById = /* @__PURE__ */ new Map();
429
430
  for (const r of resolved.activities) {
430
431
  if (memberToGroup.has(r.activity.id)) continue;
431
- const c = r.criticality !== null ? r.criticality : r.isCriticalPath ? 1 : 0;
432
+ const c = r.criticality ?? (r.isCriticalPath ? 1 : 0);
432
433
  critById.set(r.activity.id, c);
433
434
  }
434
435
  for (const rg of resolved.groups) {
@@ -437,7 +438,7 @@ function centerByCriticality(g, resolved, memberToGroup, collapsedGroupIds) {
437
438
  for (const aid of rg.group.activityIds) {
438
439
  const r = resolved.activities.find((x) => x.activity.id === aid);
439
440
  if (!r) continue;
440
- const c = r.criticality !== null ? r.criticality : r.isCriticalPath ? 1 : 0;
441
+ const c = r.criticality ?? (r.isCriticalPath ? 1 : 0);
441
442
  if (c > maxC) maxC = c;
442
443
  }
443
444
  critById.set(rg.group.id, maxC);
@@ -6,10 +6,10 @@ import {
6
6
  mapLegendConfig,
7
7
  mapLegendGroups,
8
8
  parsePathRings
9
- } from "./chunk-LR6RRDWN.js";
9
+ } from "./chunk-57L2JPP2.js";
10
10
  import {
11
11
  parseClock
12
- } from "./chunk-WP2RLGDI.js";
12
+ } from "./chunk-TCX5PMEY.js";
13
13
  import {
14
14
  fixedParts,
15
15
  formatTime,
@@ -17,14 +17,14 @@ import {
17
17
  workStatus,
18
18
  zoneParts
19
19
  } from "./chunk-A2RUBBVT.js";
20
+ import {
21
+ renderIntegratedLegend
22
+ } from "./chunk-QVKTAU7P.js";
20
23
  import {
21
24
  TITLE_FONT_SIZE,
22
25
  TITLE_FONT_WEIGHT,
23
26
  TITLE_Y
24
27
  } from "./chunk-VLC6WNRD.js";
25
- import {
26
- renderIntegratedLegend
27
- } from "./chunk-7SX4IY6T.js";
28
28
  import {
29
29
  FONT_FAMILY
30
30
  } from "./chunk-ICLB27PZ.js";
@@ -1,33 +1,33 @@
1
1
  import {
2
2
  looksLikePert
3
- } from "./chunk-JVZ7KFAX.js";
3
+ } from "./chunk-37QQXKFV.js";
4
4
  import {
5
5
  isLiveLinkLine
6
- } from "./chunk-7WGCQE2E.js";
6
+ } from "./chunk-2ZVLI6GQ.js";
7
7
  import {
8
8
  looksLikeSequence
9
- } from "./chunk-LFKSHDVI.js";
9
+ } from "./chunk-ZB2Q67NO.js";
10
10
  import {
11
11
  looksLikeFlowchart
12
- } from "./chunk-JRUEIRJB.js";
12
+ } from "./chunk-634LDSN6.js";
13
13
  import {
14
14
  looksLikeState
15
- } from "./chunk-AYOVY75O.js";
15
+ } from "./chunk-XLPJJ35N.js";
16
16
  import {
17
17
  looksLikeClassDiagram
18
- } from "./chunk-MFW6P7WH.js";
18
+ } from "./chunk-WNTPJZU7.js";
19
19
  import {
20
20
  looksLikeERDiagram
21
- } from "./chunk-WPL5PFXE.js";
21
+ } from "./chunk-3SLRZKLB.js";
22
22
  import {
23
23
  looksLikeOrg
24
- } from "./chunk-FJNXXGTR.js";
24
+ } from "./chunk-UWJP4JSZ.js";
25
25
  import {
26
26
  looksLikeSitemap
27
- } from "./chunk-UG2XG57E.js";
27
+ } from "./chunk-F26ZPBSF.js";
28
28
  import {
29
29
  parseFirstLine
30
- } from "./chunk-44GP7PD5.js";
30
+ } from "./chunk-MPJQMMBZ.js";
31
31
 
32
32
  // src/chart-type-detect.ts
33
33
  var GANTT_DURATION_RE = /^\d+(?:\.\d+)?(?:min|bd|sp|d|w|m|q|y|h)(?:\?)?\s+/;
@@ -3,7 +3,7 @@ import {
3
3
  layoutJourneyMap,
4
4
  scoreToColor,
5
5
  scoreToCurveY
6
- } from "./chunk-ID2K3IHI.js";
6
+ } from "./chunk-HLE5QGZJ.js";
7
7
  import {
8
8
  wrapNoteBody
9
9
  } from "./chunk-RJNZHFNG.js";
@@ -16,6 +16,9 @@ import {
16
16
  import {
17
17
  ScaleContext
18
18
  } from "./chunk-24YPR5EH.js";
19
+ import {
20
+ renderIntegratedLegend
21
+ } from "./chunk-QVKTAU7P.js";
19
22
  import {
20
23
  CARD_RADIUS,
21
24
  CONTAINER_RADIUS,
@@ -25,22 +28,19 @@ import {
25
28
  import {
26
29
  serializeSvg
27
30
  } from "./chunk-OOCVGX4W.js";
28
- import {
29
- renderIntegratedLegend
30
- } from "./chunk-7SX4IY6T.js";
31
31
  import {
32
32
  FONT_FAMILY
33
33
  } from "./chunk-ICLB27PZ.js";
34
34
  import {
35
35
  parseJourneyMap
36
- } from "./chunk-B3S76BZO.js";
36
+ } from "./chunk-PSGSFRRE.js";
37
37
  import {
38
38
  resolveActiveTagGroup,
39
39
  tagAttrKey
40
- } from "./chunk-L5AFONQU.js";
40
+ } from "./chunk-QKJ6MQXW.js";
41
41
  import {
42
42
  fillModeFromOptions
43
- } from "./chunk-44GP7PD5.js";
43
+ } from "./chunk-MPJQMMBZ.js";
44
44
  import {
45
45
  measureText,
46
46
  truncateText,
@@ -697,7 +697,7 @@ function renderStepCard(parent, sl, palette, isDark, activeGroup, tagGroups, onN
697
697
  }
698
698
  const titleBlockH = CARD_PADDING_Y + titleLines.length * TITLE_LINE_HEIGHT + CARD_PADDING_Y;
699
699
  const cardAnnotations = sl.step.annotations;
700
- const hasContent = sl.step.description || cardAnnotations.length > 0;
700
+ const hasContent = !!sl.step.description || cardAnnotations.length > 0;
701
701
  if (hasContent) {
702
702
  stepG.append("line").attr("x1", cx).attr("y1", cy + titleBlockH).attr("x2", cx + sl.width).attr("y2", cy + titleBlockH).attr("stroke", fillMode === "solid" ? onCardText : cardStroke).attr("stroke-opacity", 0.3).attr("stroke-width", 1);
703
703
  }
@@ -737,7 +737,7 @@ function renderStepCard(parent, sl, palette, isDark, activeGroup, tagGroups, onN
737
737
  }
738
738
  for (const [key, value] of Object.entries(sl.step.tags)) {
739
739
  const group = tagGroups.find(
740
- (g) => g.name.toLowerCase() === key.toLowerCase()
740
+ (g) => tagAttrKey(g.name) === key.toLowerCase()
741
741
  );
742
742
  const entry = group?.entries.find(
743
743
  (e) => e.value.toLowerCase() === value.toLowerCase()
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseFirstLine
3
- } from "./chunk-44GP7PD5.js";
3
+ } from "./chunk-MPJQMMBZ.js";
4
4
  import {
5
5
  parseCloudReferenceFence,
6
6
  parseCloudReferenceUrl
@@ -21,7 +21,7 @@ import {
21
21
  tagAttrKey,
22
22
  validateTagGroupNames,
23
23
  validateTagValues
24
- } from "./chunk-L5AFONQU.js";
24
+ } from "./chunk-QKJ6MQXW.js";
25
25
  import {
26
26
  PERT_REGISTRY,
27
27
  extractColor,
@@ -31,7 +31,7 @@ import {
31
31
  splitNameAndMeta,
32
32
  warnUnknownMetaKeys,
33
33
  withTagAliases
34
- } from "./chunk-44GP7PD5.js";
34
+ } from "./chunk-MPJQMMBZ.js";
35
35
  import {
36
36
  emit,
37
37
  makeDgmoError,
@@ -898,7 +898,10 @@ function parsePert(content, parseOpts = {}) {
898
898
  options.trials = deriveTrials(activities.length);
899
899
  }
900
900
  if (options.seed === -1) {
901
- const seedSource = title || activities.map((a) => a.name).sort().join("\n") || "pert";
901
+ const seedSource = (
902
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing -- an empty title also seeds from the activity names
903
+ title || activities.map((a) => a.name).sort().join("\n") || "pert"
904
+ );
902
905
  options.seed = deriveSeed(seedSource);
903
906
  }
904
907
  const hasSprintOption = options.sprintLength !== null || options.sprintNumber !== null || options.sprintStart !== null;
@@ -911,12 +914,8 @@ function parsePert(content, parseOpts = {}) {
911
914
  options.sprintMode = "auto";
912
915
  }
913
916
  if (options.sprintMode) {
914
- if (!options.sprintLength) {
915
- options.sprintLength = { amount: 2, unit: "w" };
916
- }
917
- if (options.sprintNumber === null) {
918
- options.sprintNumber = 1;
919
- }
917
+ options.sprintLength ??= { amount: 2, unit: "w" };
918
+ options.sprintNumber ??= 1;
920
919
  }
921
920
  finalizeAutoTagColors(tagGroups, parseOpts.palette);
922
921
  if (tagGroups.length > 0) {
@@ -930,7 +929,7 @@ function parsePert(content, parseOpts = {}) {
930
929
  error
931
930
  );
932
931
  const ensureTags = (entity) => {
933
- if (!entity.tags) entity.tags = {};
932
+ entity.tags ??= {};
934
933
  return {
935
934
  metadata: entity.tags,
936
935
  lineNumber: entity.lineNumber