@diagrammo/dgmo 0.95.0 → 0.97.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 (279) hide show
  1. package/README.md +1 -1
  2. package/dist/advanced.d.ts +190 -568
  3. package/dist/advanced.js +259 -470
  4. package/dist/block.d.ts +8 -0
  5. package/dist/block.js +144 -73
  6. package/dist/{calculator-BNH3GSJE.js → calculator-CIGGTURF.js} +2 -2
  7. package/dist/{chart-meta-BbjsRY7o.d.ts → chart-meta-B7niEd52.d.ts} +3 -1
  8. package/dist/chart-meta.d.ts +2 -2
  9. package/dist/chart-meta.js +19 -19
  10. package/dist/{chart-types-Cppnp31G.d.ts → chart-types-Dxtv4XSz.d.ts} +4 -5
  11. package/dist/{charts-d3-SZV2SFTM.js → charts-d3-INWEGMSD.js} +14 -14
  12. package/dist/{chunk-P5XA627W.js → chunk-2FMOLWX4.js} +73 -65
  13. package/dist/{chunk-MLY5ALOV.js → chunk-2SZILMQT.js} +57 -15
  14. package/dist/chunk-35A3J4Z5.js +14 -0
  15. package/dist/{chunk-UXNA2H2V.js → chunk-3C4OXVZJ.js} +2 -2
  16. package/dist/{chunk-IZHGT5HD.js → chunk-3HL6NSSQ.js} +63 -18
  17. package/dist/{chunk-2WQ3YZMN.js → chunk-3IUMSK72.js} +2 -2
  18. package/dist/{chunk-LAXMUSGW.js → chunk-44RLIAYC.js} +17 -10
  19. package/dist/{chunk-H7AXCRO7.js → chunk-453IWXZ3.js} +0 -11
  20. package/dist/{chunk-2I4UQG7W.js → chunk-47INRTZ6.js} +2 -2
  21. package/dist/{chunk-IN7XI6NO.js → chunk-4NMRS6HW.js} +1 -1
  22. package/dist/{chunk-KLBTJEIK.js → chunk-4TK26YHH.js} +2 -2
  23. package/dist/{chunk-CN4RDJDV.js → chunk-5TGZBHEJ.js} +1 -1
  24. package/dist/{chunk-IXHWS2HI.js → chunk-5WZYJC2P.js} +2 -2
  25. package/dist/{chunk-KBDMEOLI.js → chunk-65JFUANT.js} +1 -1
  26. package/dist/{chunk-D3K4U3ZM.js → chunk-6K2W3FH7.js} +8 -5
  27. package/dist/{chunk-NXU4N5WT.js → chunk-6OUMYNAJ.js} +1 -1
  28. package/dist/{chunk-KRPLP5LP.js → chunk-6PUBFB6D.js} +24 -3
  29. package/dist/{chunk-EXHXTMVR.js → chunk-6S2H6EKN.js} +3 -3
  30. package/dist/{chunk-KSZB7TIY.js → chunk-6SDEXSJY.js} +42 -22
  31. package/dist/{chunk-IQN2NGEU.js → chunk-6YBZFOTA.js} +13 -13
  32. package/dist/{chunk-IHN6WDEY.js → chunk-74XR7Z3I.js} +13 -13
  33. package/dist/{chunk-2J2CWWWK.js → chunk-7ASVGFW3.js} +1 -1
  34. package/dist/{chunk-BH2SF4TT.js → chunk-7QKWU7FX.js} +3 -3
  35. package/dist/{chunk-A6YINTY6.js → chunk-7RACGVUY.js} +1 -1
  36. package/dist/{chunk-VB4VMB2I.js → chunk-7TEAFIEJ.js} +9 -5
  37. package/dist/{chunk-UNCCZ3NU.js → chunk-A3V72YIL.js} +14 -1
  38. package/dist/{chunk-BCV2VJTM.js → chunk-A5LFM62B.js} +3 -3
  39. package/dist/{chunk-U6VS3T2M.js → chunk-AULFF7L2.js} +4 -4
  40. package/dist/{chunk-LKZCUFOW.js → chunk-B7ZH5EQ2.js} +2 -2
  41. package/dist/{chunk-VGAMBOOC.js → chunk-C6ME2L4T.js} +2 -2
  42. package/dist/{chunk-3PP746YM.js → chunk-CGP7RGLJ.js} +1 -1
  43. package/dist/{chunk-67N26CER.js → chunk-CLW45YKE.js} +2 -1
  44. package/dist/{chunk-VTESGA5F.js → chunk-CUOMNKYW.js} +4 -4
  45. package/dist/{chunk-CDM6XMOT.js → chunk-CUTEHGXO.js} +2 -2
  46. package/dist/{chunk-NERQSSYD.js → chunk-D67YE4LR.js} +1 -1
  47. package/dist/{chunk-XOMIYMQ3.js → chunk-D7KZE2XJ.js} +39 -17
  48. package/dist/{chunk-NMS5XSLX.js → chunk-DFEVFLEG.js} +3 -3
  49. package/dist/{chunk-EBVVMUAA.js → chunk-DKMZ4VMV.js} +1 -1
  50. package/dist/{chunk-V5D6GDNK.js → chunk-DRY4W4W6.js} +36 -15
  51. package/dist/{chunk-XJQ6Z3FO.js → chunk-E6GHXMH2.js} +8 -8
  52. package/dist/{chunk-KBEWVCK3.js → chunk-EBJLT7PH.js} +1 -1
  53. package/dist/{chunk-TASRGDYP.js → chunk-EEIGHOJR.js} +92 -23
  54. package/dist/{chunk-AQQUJEDN.js → chunk-EUPUVYWO.js} +1 -1
  55. package/dist/{chunk-7IALGIOI.js → chunk-F2OAZHOX.js} +10 -5
  56. package/dist/{chunk-JXGSTBW6.js → chunk-FK6HZYGK.js} +4 -14
  57. package/dist/{chunk-OSSTOSXU.js → chunk-FTW2E2YH.js} +7 -10
  58. package/dist/{chunk-5P2L5QXE.js → chunk-FZVCS2XY.js} +4 -2
  59. package/dist/chunk-G24NSISJ.js +69 -0
  60. package/dist/{chunk-EBIDNRSR.js → chunk-GFQFLLP3.js} +2 -2
  61. package/dist/{chunk-RQTDUZUH.js → chunk-GLLYHYGT.js} +27 -17
  62. package/dist/{chunk-VLC6WNRD.js → chunk-GULGSH2Z.js} +4 -0
  63. package/dist/{chunk-H5NVCOEJ.js → chunk-GXBH7WNN.js} +2 -2
  64. package/dist/{chunk-C6G36F5S.js → chunk-H242TVAE.js} +9 -9
  65. package/dist/{chunk-5XBYLYYI.js → chunk-H7DZYHQF.js} +3 -3
  66. package/dist/{chunk-GLCMUTO5.js → chunk-HQNZJMNS.js} +1 -1
  67. package/dist/{chunk-IY62DXT2.js → chunk-IAM3IDL4.js} +2 -2
  68. package/dist/{chunk-IGJEKO2P.js → chunk-II6D6NWX.js} +8 -8
  69. package/dist/{chunk-AULZD45V.js → chunk-IUFTAFGN.js} +2 -2
  70. package/dist/{chunk-FWVE373X.js → chunk-IZEKHIV6.js} +3 -3
  71. package/dist/{chunk-BQMHJ6OW.js → chunk-J3YM6RA5.js} +22 -14
  72. package/dist/{chunk-R6EGUTIV.js → chunk-J467QBZF.js} +23 -3
  73. package/dist/{chunk-JJ7RGTAU.js → chunk-J7JF4QKA.js} +40 -30
  74. package/dist/{chunk-E7F76M3U.js → chunk-JULBDTNU.js} +61 -9
  75. package/dist/{chunk-EPDBWATV.js → chunk-K7RRXZHS.js} +4 -2
  76. package/dist/{chunk-ZECJ7Q6C.js → chunk-KMB754DO.js} +33 -6
  77. package/dist/chunk-KNKZGRRB.js +439 -0
  78. package/dist/{chunk-XIUGSUE4.js → chunk-KTGJQJB3.js} +6 -2
  79. package/dist/{chunk-4SACN2C5.js → chunk-KW3CC7SB.js} +1 -1
  80. package/dist/{chunk-3GUEYQGL.js → chunk-L3K5O3Z5.js} +3 -3
  81. package/dist/chunk-LRTSTDJ6.js +126 -0
  82. package/dist/{chunk-NBAAIRFP.js → chunk-LZATSXAA.js} +5 -2
  83. package/dist/{chunk-USE6HIOZ.js → chunk-MJ725XHD.js} +1156 -330
  84. package/dist/{chunk-3KVUFHUJ.js → chunk-NBISN6FH.js} +2 -2
  85. package/dist/{chunk-RITTLIDJ.js → chunk-NN5RUHXV.js} +84 -16
  86. package/dist/{chunk-62GLKE6Q.js → chunk-NOZMRPXI.js} +112 -157
  87. package/dist/{chunk-4XYZJTFO.js → chunk-NQFZ7LXC.js} +14 -6
  88. package/dist/chunk-NTDWVTEY.js +12 -0
  89. package/dist/{chunk-BQO24BDM.js → chunk-O3HRF25Z.js} +1 -1
  90. package/dist/{chunk-ZD3QCNB7.js → chunk-OSSA5UWA.js} +3 -3
  91. package/dist/{chunk-UOCWYLYT.js → chunk-OZXKW5NA.js} +1 -1
  92. package/dist/{chunk-NPDVWFAQ.js → chunk-PLQZJZ2K.js} +1 -1
  93. package/dist/chunk-PRG7NIUU.js +272 -0
  94. package/dist/{chunk-S4SJ4LLY.js → chunk-PSNRB75I.js} +3 -3
  95. package/dist/{chunk-QPQWY5RU.js → chunk-PT5VFY3B.js} +38 -14
  96. package/dist/{chunk-KAO7JL4I.js → chunk-PU5X3P3T.js} +6 -5
  97. package/dist/{chunk-J7Q4AB23.js → chunk-PZ5LAAO3.js} +2 -2
  98. package/dist/{chunk-TOHTKLKE.js → chunk-Q5Q5JLRT.js} +1 -1
  99. package/dist/{chunk-Y3SIQN4J.js → chunk-Q6V342WS.js} +17 -5
  100. package/dist/{chunk-RBVFNUAL.js → chunk-QDPTOIG7.js} +5 -5
  101. package/dist/{chunk-ERT7XDQW.js → chunk-QIITSGI5.js} +1 -1
  102. package/dist/{chunk-NM5V5EKY.js → chunk-QLIZ7SB7.js} +1 -1
  103. package/dist/chunk-QLNLRZ37.js +181 -0
  104. package/dist/{chunk-HHVIE45A.js → chunk-QOLRTPGH.js} +6 -6
  105. package/dist/{chunk-2ZW4NBYX.js → chunk-R4SXMBGF.js} +1 -1
  106. package/dist/chunk-R4U7IIRX.js +178 -0
  107. package/dist/{chunk-BRGRIZQB.js → chunk-RC6PISCK.js} +4 -2
  108. package/dist/{chunk-UIEKW4SG.js → chunk-REKLKGR6.js} +3 -4
  109. package/dist/{chunk-TIIZIAGS.js → chunk-RFGQDIOI.js} +843 -233
  110. package/dist/{chunk-FVTYJUXR.js → chunk-ROFSIFSY.js} +4 -4
  111. package/dist/{chunk-VSAKEMDD.js → chunk-ROH4LYBL.js} +71 -21
  112. package/dist/{chunk-4UVCTLRH.js → chunk-SNDCXT5R.js} +9 -7
  113. package/dist/{chunk-R46N5KR4.js → chunk-SQBCNEJB.js} +2 -1
  114. package/dist/{chunk-66JTY4AN.js → chunk-TDUBTDXS.js} +1 -1
  115. package/dist/{chunk-PGSGJLUR.js → chunk-TMB4YY3J.js} +34 -4
  116. package/dist/{chunk-UZ7EZW3B.js → chunk-TO53KK2P.js} +6 -1
  117. package/dist/{chunk-5KKZXA44.js → chunk-V3ICBS2O.js} +7 -5
  118. package/dist/{chunk-GWQRTA5W.js → chunk-V65EDV6S.js} +3 -3
  119. package/dist/{chunk-VF7IKIRS.js → chunk-VKT3BVRO.js} +35 -11
  120. package/dist/{chunk-L5S32VZJ.js → chunk-VOO65FKC.js} +12 -12
  121. package/dist/{chunk-PVWIBKV2.js → chunk-VQWLASDC.js} +2 -2
  122. package/dist/{chunk-JILEYZ2V.js → chunk-VVL2KKG4.js} +1 -1
  123. package/dist/{chunk-GI5R5B3S.js → chunk-VVZDBUHA.js} +2 -2
  124. package/dist/{chunk-PGBTUGDB.js → chunk-W46OMHOK.js} +23 -27
  125. package/dist/{chunk-XCKNFFKM.js → chunk-WH6E6SHC.js} +2 -4
  126. package/dist/{chunk-H6BT45SN.js → chunk-WPYJAHRP.js} +1 -1
  127. package/dist/{chunk-LJGE43SG.js → chunk-WXGFB2O2.js} +3 -3
  128. package/dist/{chunk-YQMIKX54.js → chunk-XCYGOCMS.js} +102 -52
  129. package/dist/{chunk-BTP2BMWN.js → chunk-XEMCNQQW.js} +15 -15
  130. package/dist/{chunk-NVZ7R4EK.js → chunk-XMUFXJI2.js} +6 -6
  131. package/dist/{chunk-AM42TLSZ.js → chunk-XZGXVN4T.js} +5 -5
  132. package/dist/{chunk-5OTA2PUH.js → chunk-YCIBBVI2.js} +2 -2
  133. package/dist/{chunk-V2NQV7VL.js → chunk-YFIDR7JH.js} +2 -2
  134. package/dist/{chunk-USZLHYEQ.js → chunk-YFWIFKRQ.js} +3 -3
  135. package/dist/{chunk-6XLMTAEX.js → chunk-YIHRLY55.js} +33 -6
  136. package/dist/{chunk-CYRB2JTN.js → chunk-YLKPRT6U.js} +1 -1
  137. package/dist/{chunk-KMU65FYM.js → chunk-YSDSFXQD.js} +1 -1
  138. package/dist/{chunk-ZI6WC24V.js → chunk-ZBJV4KNU.js} +1 -1
  139. package/dist/{chunk-4EX4OKGZ.js → chunk-ZCKVTZHD.js} +41 -19
  140. package/dist/{chunk-7PJBJ2DU.js → chunk-ZMVMGZAJ.js} +1 -1
  141. package/dist/{chunk-6EFCOES2.js → chunk-ZRW4B4KF.js} +48 -14
  142. package/dist/{chunk-A2A2I4Z4.js → chunk-ZTKO2RD4.js} +5 -5
  143. package/dist/collapse-6IGH2B24.js +31 -0
  144. package/dist/{collapse-BSPH3BFM.js → collapse-6X5S2S3G.js} +2 -1
  145. package/dist/collapse-GOWNCVHZ.js +7 -0
  146. package/dist/collapse-HNTPLB2Q.js +11 -0
  147. package/dist/collapse-NUM7DPJA.js +10 -0
  148. package/dist/completion-registry.js +28 -39
  149. package/dist/countdown.js +1 -1
  150. package/dist/dgmo-router-RSYWR5IS.js +101 -0
  151. package/dist/dimensions-KXAI7U2B.js +21 -0
  152. package/dist/editor.js +884 -222
  153. package/dist/{flowchart-parser-J3VWIFWB.js → flowchart-parser-UI5VZNGJ.js} +5 -5
  154. package/dist/{flowchart-renderer-FECH5KK5.js → flowchart-renderer-IYWPKPCF.js} +18 -18
  155. package/dist/fold-at-line-DmSAa1eU.d.ts +11 -0
  156. package/dist/highlight.js +886 -224
  157. package/dist/index.d.ts +89 -6
  158. package/dist/index.js +91 -70
  159. package/dist/{layout-TIBRMWHL.js → layout-6VY3DHYD.js} +6 -6
  160. package/dist/{layout-5SZ5A64I.js → layout-7C2QZCEZ.js} +10 -10
  161. package/dist/{layout-2WESJYRE.js → layout-7E7BNOGO.js} +3 -2
  162. package/dist/layout-BSK374N6.js +11 -0
  163. package/dist/{layout-RH3N46HP.js → layout-FJDBY3WG.js} +6 -5
  164. package/dist/{layout-YBMT74MG.js → layout-G3RVKEC4.js} +10 -10
  165. package/dist/{layout-KV27UW25.js → layout-GC5XX2RH.js} +2 -2
  166. package/dist/{layout-JTIRCKAW.js → layout-R6ULGQJK.js} +6 -6
  167. package/dist/{layout-HFBK5UEG.js → layout-ROI5KVSO.js} +3 -3
  168. package/dist/{layout-3TSVAGWH.js → layout-SPPS225I.js} +3 -3
  169. package/dist/{layout-HF3PMI4H.js → layout-VTGOYGRC.js} +2 -2
  170. package/dist/{layout-EWXHEXNS.js → layout-WBH5IHYK.js} +10 -10
  171. package/dist/layout-WTHBGTH2.js +15 -0
  172. package/dist/layout-ZCCABSV7.js +15 -0
  173. package/dist/{layout-search-AWPJWBKT.js → layout-search-DSIDKKQO.js} +8 -8
  174. package/dist/{legend-constants-55MFBXYF.js → legend-constants-KF3MKWL2.js} +2 -2
  175. package/dist/{parser-NUU3DVW4.js → parser-3PMYAVFL.js} +2 -2
  176. package/dist/{parser-KJPPUN4D.js → parser-5KVFS4RN.js} +2 -2
  177. package/dist/{parser-6TDWUKM5.js → parser-BA43YPIQ.js} +3 -3
  178. package/dist/{parser-EFF22GYO.js → parser-CFAYEWLF.js} +3 -3
  179. package/dist/{parser-A3AN76RQ.js → parser-DRFEX6OX.js} +3 -3
  180. package/dist/{parser-H5OODY5N.js → parser-DWVBRBB2.js} +3 -3
  181. package/dist/{parser-BJ7RJNUM.js → parser-E4B7HJT2.js} +3 -3
  182. package/dist/{parser-5UZV32ZI.js → parser-FWQY3HJX.js} +2 -2
  183. package/dist/{parser-RTWPFKXG.js → parser-GMCXCJSP.js} +3 -3
  184. package/dist/{parser-NL73FSFI.js → parser-IHFHPFL7.js} +3 -3
  185. package/dist/{parser-BTSTKY5G.js → parser-IU6425JW.js} +6 -6
  186. package/dist/{parser-ZRIZFDZY.js → parser-IZYIXDJX.js} +6 -6
  187. package/dist/{parser-4TBSWULQ.js → parser-JQGUTDSX.js} +3 -3
  188. package/dist/{parser-TUAEX6ML.js → parser-JRKPOO2Z.js} +3 -3
  189. package/dist/{parser-KMKVFET2.js → parser-KI2XYB2R.js} +2 -2
  190. package/dist/parser-LDVVBP7S.js +12 -0
  191. package/dist/{parser-YG625J5H.js → parser-MAGFK6OK.js} +4 -4
  192. package/dist/{parser-AR2GON37.js → parser-MH5BDN7X.js} +4 -4
  193. package/dist/{parser-EAQPZX2B.js → parser-MUHFEM4G.js} +3 -3
  194. package/dist/{parser-RCIEKN7Y.js → parser-P375HO7Q.js} +2 -2
  195. package/dist/{parser-GMQJISZ6.js → parser-PYY5BRLQ.js} +2 -2
  196. package/dist/parser-QEMFMVF5.js +12 -0
  197. package/dist/{parser-GDLKUBTO.js → parser-QIPDBT5M.js} +2 -2
  198. package/dist/{parser-BT4NI6JY.js → parser-RNBDDEGL.js} +3 -3
  199. package/dist/{parser-MA7L3XND.js → parser-RSWZGQA7.js} +6 -6
  200. package/dist/{parser-K2DI26SC.js → parser-SGX2PVR5.js} +2 -2
  201. package/dist/{parser-KKF6Y5MM.js → parser-SJUEFKNM.js} +4 -3
  202. package/dist/{parser-3QIFY5IN.js → parser-UMNBPXG2.js} +2 -2
  203. package/dist/{parser-F7NDRPMA.js → parser-WE4VSBBY.js} +3 -3
  204. package/dist/{parser-4Y6PODW6.js → parser-WKEYS7N3.js} +3 -3
  205. package/dist/{parser-KLCSFQ3J.js → parser-WPXUUNA2.js} +3 -3
  206. package/dist/{parser-LTRQASGB.js → parser-XP3RCOTN.js} +3 -3
  207. package/dist/{parser-2IKPQVKX.js → parser-YV4RBHG7.js} +3 -3
  208. package/dist/{parser-3LT3ZUUC.js → parser-YZ3J542U.js} +2 -2
  209. package/dist/{redraw-AHW7EUUF.js → redraw-BZ4GI6IC.js} +6 -4
  210. package/dist/{redraw-STZ4WJAI.js → redraw-LEOXS7C6.js} +3 -3
  211. package/dist/{renderer-IGSHD3OT.js → renderer-2V5NVI3V.js} +16 -16
  212. package/dist/renderer-4PKYVOYL.js +39 -0
  213. package/dist/{renderer-IVHD7ENY.js → renderer-66SCERH7.js} +14 -12
  214. package/dist/renderer-6IAXRZLK.js +85 -0
  215. package/dist/{renderer-XCLARXCK.js → renderer-6O5SV5YE.js} +10 -10
  216. package/dist/{renderer-IXBOT6DU.js → renderer-7OXMSF4R.js} +4 -4
  217. package/dist/{renderer-AM7P4LN7.js → renderer-A36NL2SS.js} +8 -8
  218. package/dist/{renderer-ACQQ2JXA.js → renderer-ASPBBACI.js} +13 -11
  219. package/dist/{renderer-W4MUMXJE.js → renderer-BXVTYE27.js} +7 -6
  220. package/dist/renderer-CC6O6GQK.js +18 -0
  221. package/dist/{renderer-Y47EM337.js → renderer-CNDB4JTZ.js} +17 -17
  222. package/dist/renderer-COV2DXTM.js +41 -0
  223. package/dist/renderer-DXCATVLO.js +30 -0
  224. package/dist/{renderer-JYHA6R2D.js → renderer-E5E3OJ42.js} +12 -11
  225. package/dist/{renderer-DAZWHNLI.js → renderer-E7LC7HCU.js} +5 -5
  226. package/dist/{renderer-RUSQJFFC.js → renderer-F3JYZERE.js} +4 -4
  227. package/dist/{renderer-7OGGV327.js → renderer-FAFSRFGR.js} +9 -9
  228. package/dist/renderer-HIB6LZWZ.js +26 -0
  229. package/dist/renderer-HLDRRFZB.js +28 -0
  230. package/dist/renderer-INQMQPNN.js +22 -0
  231. package/dist/renderer-ITJ67HXO.js +27 -0
  232. package/dist/{renderer-UTEEJDGB.js → renderer-JLOKFKOZ.js} +14 -13
  233. package/dist/{renderer-2LYX6NHN.js → renderer-KOPJ76GS.js} +10 -10
  234. package/dist/{renderer-MWZC7TMD.js → renderer-M2467III.js} +14 -13
  235. package/dist/{renderer-HX6ICPDX.js → renderer-MYKL6VG6.js} +6 -6
  236. package/dist/{renderer-BXD5KVSR.js → renderer-S6L3JR6C.js} +11 -11
  237. package/dist/{renderer-NOYLNVTI.js → renderer-SYWVZ4CY.js} +3 -3
  238. package/dist/renderer-TCTZZ5Y6.js +32 -0
  239. package/dist/{renderer-QTPWRRJ7.js → renderer-UIHCYXBY.js} +12 -12
  240. package/dist/{renderer-36446HSH.js → renderer-WIBVOPRC.js} +6 -4
  241. package/dist/{renderer-2QPHDBZY.js → renderer-XMJ6XZGL.js} +12 -11
  242. package/dist/{renderer-TINHO2IO.js → renderer-ZTHXOBXW.js} +8 -8
  243. package/dist/{renderer-radial-WFUX3Z3C.js → renderer-radial-FC25BDCZ.js} +8 -8
  244. package/dist/{state-parser-PMNHLHLE.js → state-parser-2PQRH5JE.js} +6 -6
  245. package/dist/state-renderer-YP6HWLJR.js +43 -0
  246. package/dist/{themes-DzIH3Hjv.d.ts → themes-DoLdhUXV.d.ts} +1 -1
  247. package/docs/ai-integration.md +4 -4
  248. package/docs/language-reference.md +154 -104
  249. package/gallery/fixtures/swot-relabel.dgmo +19 -0
  250. package/gallery/fixtures/swot-tags.dgmo +16 -0
  251. package/gallery/fixtures/swot.dgmo +13 -0
  252. package/gallery/fixtures/whiteboard.dgmo +1 -0
  253. package/package.json +1 -1
  254. package/dist/chunk-6BQSDF77.js +0 -734
  255. package/dist/chunk-NWSPPGIE.js +0 -60
  256. package/dist/chunk-R2K5L4UA.js +0 -49
  257. package/dist/chunk-VBMRZCMQ.js +0 -1465
  258. package/dist/chunk-WZBZXZ6T.js +0 -636
  259. package/dist/collapse-TCVK3RPO.js +0 -8
  260. package/dist/dgmo-router-6YLKM6WU.js +0 -101
  261. package/dist/dimensions-DS6FWLRY.js +0 -21
  262. package/dist/layout-D4L44NRG.js +0 -11
  263. package/dist/layout-MXHR3P35.js +0 -15
  264. package/dist/layout-ND26WVX2.js +0 -15
  265. package/dist/layout-VDCJOZSH.js +0 -11
  266. package/dist/parser-PEZ7RN43.js +0 -14
  267. package/dist/parser-YHDGKPZI.js +0 -14
  268. package/dist/renderer-4VGO27EE.js +0 -41
  269. package/dist/renderer-6BDK47V6.js +0 -30
  270. package/dist/renderer-ISQJ2ELA.js +0 -25
  271. package/dist/renderer-KJ3V5BYP.js +0 -26
  272. package/dist/renderer-O6RP52CQ.js +0 -22
  273. package/dist/renderer-P3WR7TKD.js +0 -39
  274. package/dist/renderer-UGW4N2W5.js +0 -28
  275. package/dist/renderer-WPN2SXGT.js +0 -29
  276. package/dist/renderer-XDX6S7OV.js +0 -30
  277. package/dist/renderer-ZV6KCLCL.js +0 -85
  278. package/dist/state-renderer-JQ5DS66J.js +0 -42
  279. package/gallery/fixtures/sketch.dgmo +0 -22
@@ -7,12 +7,12 @@ import {
7
7
  } from "./chunk-2CW5ZTNH.js";
8
8
  import {
9
9
  layoutInlineHeader
10
- } from "./chunk-UIEKW4SG.js";
10
+ } from "./chunk-REKLKGR6.js";
11
11
  import {
12
12
  TITLE_FONT_SIZE,
13
13
  TITLE_FONT_WEIGHT,
14
14
  TITLE_Y
15
- } from "./chunk-VLC6WNRD.js";
15
+ } from "./chunk-GULGSH2Z.js";
16
16
  import {
17
17
  CARD_RADIUS,
18
18
  EDGE_DASH,
@@ -23,14 +23,14 @@ import {
23
23
  META_LINE_HEIGHT,
24
24
  NODE_STROKE_WIDTH,
25
25
  SEPARATOR_GAP
26
- } from "./chunk-XCKNFFKM.js";
26
+ } from "./chunk-WH6E6SHC.js";
27
27
  import {
28
28
  renderIntegratedLegend
29
- } from "./chunk-NMS5XSLX.js";
29
+ } from "./chunk-DFEVFLEG.js";
30
30
  import {
31
31
  getLegendExtent,
32
32
  getMaxLegendReservedHeight
33
- } from "./chunk-JILEYZ2V.js";
33
+ } from "./chunk-VVL2KKG4.js";
34
34
  import {
35
35
  FONT_FAMILY
36
36
  } from "./chunk-ICLB27PZ.js";
@@ -38,18 +38,18 @@ import {
38
38
  UNTAGGED_TAG_COLOR,
39
39
  resolveTagColor,
40
40
  tagAttrKey
41
- } from "./chunk-4SACN2C5.js";
41
+ } from "./chunk-KW3CC7SB.js";
42
42
  import {
43
43
  fillModeFromOptions,
44
44
  legendInlineRequested,
45
45
  legendSuppressed
46
- } from "./chunk-TIIZIAGS.js";
46
+ } from "./chunk-RFGQDIOI.js";
47
47
  import {
48
48
  LEGEND_GROUP_GAP
49
- } from "./chunk-UOCWYLYT.js";
49
+ } from "./chunk-OZXKW5NA.js";
50
50
  import {
51
51
  measureText
52
- } from "./chunk-KAO7JL4I.js";
52
+ } from "./chunk-PU5X3P3T.js";
53
53
  import {
54
54
  contrastText,
55
55
  mix,
@@ -4,21 +4,21 @@ import {
4
4
  import {
5
5
  resolveNotes,
6
6
  tryCollectNote
7
- } from "./chunk-KLBTJEIK.js";
7
+ } from "./chunk-4TK26YHH.js";
8
8
  import {
9
9
  displayName,
10
10
  normalizeName
11
11
  } from "./chunk-NOTA6TEI.js";
12
12
  import {
13
13
  isTagBlockHeading
14
- } from "./chunk-4SACN2C5.js";
14
+ } from "./chunk-KW3CC7SB.js";
15
15
  import {
16
16
  AliasRegistry,
17
17
  OPTION_NOCOLON_RE,
18
18
  measureIndent,
19
19
  parseFirstLine,
20
20
  tryParseSharedOption
21
- } from "./chunk-TIIZIAGS.js";
21
+ } from "./chunk-RFGQDIOI.js";
22
22
  import {
23
23
  resolveColorWithDiagnostic
24
24
  } from "./chunk-3J7O3CU6.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  measureText
3
- } from "./chunk-KAO7JL4I.js";
3
+ } from "./chunk-PU5X3P3T.js";
4
4
 
5
5
  // src/wireframe/layout.ts
6
6
  var DESKTOP_WIDTH = 1200;
@@ -7,7 +7,7 @@ import {
7
7
  import {
8
8
  resolveNotes,
9
9
  tryCollectNote
10
- } from "./chunk-KLBTJEIK.js";
10
+ } from "./chunk-4TK26YHH.js";
11
11
  import {
12
12
  displayName,
13
13
  normalizeName
@@ -19,7 +19,7 @@ import {
19
19
  measureIndent,
20
20
  parseFirstLine,
21
21
  tryParseSharedOption
22
- } from "./chunk-TIIZIAGS.js";
22
+ } from "./chunk-RFGQDIOI.js";
23
23
  import {
24
24
  NAME_DIAGNOSTIC_CODES,
25
25
  emit,
@@ -7,34 +7,34 @@ import {
7
7
  mutedFill,
8
8
  resolveCellColor,
9
9
  resolveColorMode
10
- } from "./chunk-CN4RDJDV.js";
10
+ } from "./chunk-5TGZBHEJ.js";
11
11
  import {
12
12
  layoutInlineHeader
13
- } from "./chunk-UIEKW4SG.js";
13
+ } from "./chunk-REKLKGR6.js";
14
14
  import {
15
15
  TITLE_FONT_SIZE,
16
16
  TITLE_FONT_WEIGHT,
17
17
  TITLE_Y
18
- } from "./chunk-VLC6WNRD.js";
18
+ } from "./chunk-GULGSH2Z.js";
19
19
  import {
20
20
  renderIntegratedLegend
21
- } from "./chunk-NMS5XSLX.js";
21
+ } from "./chunk-DFEVFLEG.js";
22
22
  import {
23
23
  getLegendExtent,
24
24
  getMaxLegendReservedHeight
25
- } from "./chunk-JILEYZ2V.js";
25
+ } from "./chunk-VVL2KKG4.js";
26
26
  import {
27
27
  FONT_FAMILY
28
28
  } from "./chunk-ICLB27PZ.js";
29
29
  import {
30
30
  tagAttrKey
31
- } from "./chunk-4SACN2C5.js";
31
+ } from "./chunk-KW3CC7SB.js";
32
32
  import {
33
33
  LEGEND_GROUP_GAP
34
- } from "./chunk-UOCWYLYT.js";
34
+ } from "./chunk-OZXKW5NA.js";
35
35
  import {
36
36
  measureText
37
- } from "./chunk-KAO7JL4I.js";
37
+ } from "./chunk-PU5X3P3T.js";
38
38
  import {
39
39
  contrastText,
40
40
  getSeriesColors,
@@ -9,7 +9,7 @@ import {
9
9
  stripDefaultModifier,
10
10
  tagAttrKey,
11
11
  validateTagGroupNames
12
- } from "./chunk-4SACN2C5.js";
12
+ } from "./chunk-KW3CC7SB.js";
13
13
  import {
14
14
  MAP_DIRECTIVE_KEY_SET,
15
15
  MAP_REGISTRY,
@@ -18,7 +18,7 @@ import {
18
18
  peelRampColors,
19
19
  splitNameAndMeta,
20
20
  withTagAliases
21
- } from "./chunk-TIIZIAGS.js";
21
+ } from "./chunk-RFGQDIOI.js";
22
22
  import {
23
23
  NEGATIVE_VALUE_DX,
24
24
  emit,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  compactNumber
3
- } from "./chunk-CN4RDJDV.js";
3
+ } from "./chunk-5TGZBHEJ.js";
4
4
  import {
5
5
  TITLE_FONT_WEIGHT
6
- } from "./chunk-VLC6WNRD.js";
6
+ } from "./chunk-GULGSH2Z.js";
7
7
  import {
8
8
  parseInlineMarkdown
9
9
  } from "./chunk-QKPOIJBT.js";
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-ICLB27PZ.js";
13
13
  import {
14
14
  measureText
15
- } from "./chunk-KAO7JL4I.js";
15
+ } from "./chunk-PU5X3P3T.js";
16
16
  import {
17
17
  getSeriesColors,
18
18
  mix,
@@ -1,20 +1,23 @@
1
+ import {
2
+ isTitleRoot
3
+ } from "./chunk-35A3J4Z5.js";
1
4
  import {
2
5
  ScaleContext
3
6
  } from "./chunk-24YPR5EH.js";
4
7
  import {
5
8
  HEADER_HEIGHT
6
- } from "./chunk-XCKNFFKM.js";
9
+ } from "./chunk-WH6E6SHC.js";
7
10
  import {
8
11
  preprocessDescriptionLine
9
12
  } from "./chunk-IYULMRBE.js";
10
13
  import {
11
14
  injectDefaultTagMetadata,
12
15
  resolveTagColor
13
- } from "./chunk-4SACN2C5.js";
16
+ } from "./chunk-KW3CC7SB.js";
14
17
  import {
15
18
  measureText,
16
19
  truncateText
17
- } from "./chunk-KAO7JL4I.js";
20
+ } from "./chunk-PU5X3P3T.js";
18
21
 
19
22
  // src/mindmap/text-wrap.ts
20
23
  var H_PAD = 16;
@@ -188,17 +191,14 @@ function layoutMindmap(parsed, _palette, options) {
188
191
  collectAll(roots);
189
192
  injectDefaultTagMetadata(allNodes, parsed.tagGroups);
190
193
  const tagGroups = parsed.tagGroups;
191
- if (roots.length === 1) {
192
- return layoutSingleRoot(
193
- roots[0],
194
- hiddenCounts,
195
- hideDescriptions,
196
- tagGroups,
197
- activeTagGroup,
198
- sc
199
- );
200
- }
201
- return layoutMultiRoot(
194
+ const result = roots.length === 1 ? layoutSingleRoot(
195
+ roots[0],
196
+ hiddenCounts,
197
+ hideDescriptions,
198
+ tagGroups,
199
+ activeTagGroup,
200
+ sc
201
+ ) : layoutMultiRoot(
202
202
  roots,
203
203
  parsed,
204
204
  hiddenCounts,
@@ -207,6 +207,14 @@ function layoutMindmap(parsed, _palette, options) {
207
207
  activeTagGroup,
208
208
  sc
209
209
  );
210
+ const titleRootId = roots.find(isTitleRoot)?.id;
211
+ if (titleRootId === void 0) return result;
212
+ return {
213
+ ...result,
214
+ nodes: result.nodes.map(
215
+ (n) => n.id === titleRootId ? { ...n, hasChildren: false } : n
216
+ )
217
+ };
210
218
  }
211
219
  function layoutSingleRoot(root, hiddenCounts, hideDescriptions, tagGroups = [], activeTagGroup = null, sc) {
212
220
  const positioned = [];
@@ -7,11 +7,12 @@ import {
7
7
  } from "./chunk-NOTA6TEI.js";
8
8
  import {
9
9
  AUTO_TAG_COLOR_SENTINEL,
10
+ activeTagNoMatchMessage,
10
11
  finalizeAutoTagColors,
11
12
  matchTagBlockHeading,
12
13
  stripDefaultModifier,
13
14
  tagAttrKey
14
- } from "./chunk-4SACN2C5.js";
15
+ } from "./chunk-KW3CC7SB.js";
15
16
  import {
16
17
  FAMILY_PERSON_REGISTRY,
17
18
  FAMILY_UNION_REGISTRY,
@@ -26,13 +27,14 @@ import {
26
27
  tokenizeQuoteAware,
27
28
  tryParseSharedOption,
28
29
  withTagAliases
29
- } from "./chunk-TIIZIAGS.js";
30
+ } from "./chunk-RFGQDIOI.js";
30
31
  import {
31
32
  nord,
32
33
  resolveColor
33
34
  } from "./chunk-3J7O3CU6.js";
34
35
  import {
35
- emit
36
+ emit,
37
+ makeDgmoError
36
38
  } from "./chunk-BYU54C3S.js";
37
39
 
38
40
  // src/family/diagnostics.ts
@@ -148,6 +150,8 @@ function matchFamilyOption(line) {
148
150
  const h = line.match(/^highlight\s+(.+)$/i);
149
151
  if (h) return { key: "highlight", value: h[1].trim() };
150
152
  if (/^generations$/i.test(line)) return { key: "generations", value: "true" };
153
+ const at = line.match(/^active-tag\s+(.+)$/i);
154
+ if (at) return { key: "active-tag", value: at[1].trim() };
151
155
  if (/^no-daggers$/i.test(line)) return { key: "no-daggers", value: "true" };
152
156
  return null;
153
157
  }
@@ -157,6 +161,7 @@ function parseFamily(content, palette) {
157
161
  const unions = [];
158
162
  const tagGroups = [];
159
163
  const options = {};
164
+ let activeTagLine = 0;
160
165
  const rawLines = content.split("\n");
161
166
  let title;
162
167
  let titleLineNumber;
@@ -244,6 +249,7 @@ function parseFamily(content, palette) {
244
249
  const fam = matchFamilyOption(trimmed);
245
250
  if (fam) {
246
251
  options[fam.key] = fam.value;
252
+ if (fam.key === "active-tag") activeTagLine = lineNum;
247
253
  continue;
248
254
  }
249
255
  }
@@ -548,6 +554,20 @@ function parseFamily(content, palette) {
548
554
  delete options["highlight"];
549
555
  }
550
556
  }
557
+ const activeTagWarning = activeTagNoMatchMessage(
558
+ options["active-tag"],
559
+ tagGroups
560
+ );
561
+ if (activeTagWarning) {
562
+ diagnostics.push(
563
+ makeDgmoError(
564
+ activeTagLine || 1,
565
+ activeTagWarning,
566
+ "warning",
567
+ "W_ACTIVE_TAG_NO_MATCH"
568
+ )
569
+ );
570
+ }
551
571
  let error = null;
552
572
  const quotient = buildCoupleQuotient(frozenPersons, unions);
553
573
  if (quotient.cycle) {
@@ -1,27 +1,27 @@
1
- import {
2
- renderNodeCard
3
- } from "./chunk-R2K5L4UA.js";
4
1
  import {
5
2
  placeEdgeLabels
6
- } from "./chunk-IN7XI6NO.js";
3
+ } from "./chunk-4NMRS6HW.js";
7
4
  import {
8
5
  serializeSvg
9
- } from "./chunk-CYRB2JTN.js";
6
+ } from "./chunk-YLKPRT6U.js";
10
7
  import {
11
8
  ScaleContext
12
9
  } from "./chunk-24YPR5EH.js";
10
+ import {
11
+ renderCollapseBar,
12
+ renderNodeCard
13
+ } from "./chunk-LRTSTDJ6.js";
13
14
  import {
14
15
  layoutInlineHeader
15
- } from "./chunk-UIEKW4SG.js";
16
+ } from "./chunk-REKLKGR6.js";
16
17
  import {
17
18
  TITLE_FONT_SIZE,
18
19
  TITLE_FONT_WEIGHT
19
- } from "./chunk-VLC6WNRD.js";
20
+ } from "./chunk-GULGSH2Z.js";
20
21
  import {
21
22
  ARROWHEAD_HEIGHT,
22
23
  ARROWHEAD_WIDTH,
23
24
  CARD_RADIUS,
24
- COLLAPSE_BAR_HEIGHT,
25
25
  CONTAINER_HEADER_HEIGHT,
26
26
  CONTAINER_LABEL_FONT_SIZE,
27
27
  CONTAINER_META_FONT_SIZE,
@@ -35,14 +35,14 @@ import {
35
35
  META_LINE_HEIGHT,
36
36
  NODE_STROKE_WIDTH,
37
37
  SEPARATOR_GAP
38
- } from "./chunk-XCKNFFKM.js";
38
+ } from "./chunk-WH6E6SHC.js";
39
39
  import {
40
40
  renderIntegratedLegend
41
- } from "./chunk-NMS5XSLX.js";
41
+ } from "./chunk-DFEVFLEG.js";
42
42
  import {
43
43
  getLegendExtent,
44
44
  getMaxLegendReservedHeight
45
- } from "./chunk-JILEYZ2V.js";
45
+ } from "./chunk-VVL2KKG4.js";
46
46
  import {
47
47
  preprocessDescriptionLine
48
48
  } from "./chunk-IYULMRBE.js";
@@ -54,12 +54,12 @@ import {
54
54
  } from "./chunk-ICLB27PZ.js";
55
55
  import {
56
56
  tagAttrKey
57
- } from "./chunk-4SACN2C5.js";
57
+ } from "./chunk-KW3CC7SB.js";
58
58
  import {
59
59
  fillModeFromOptions,
60
60
  legendInlineRequested,
61
61
  legendSuppressed
62
- } from "./chunk-TIIZIAGS.js";
62
+ } from "./chunk-RFGQDIOI.js";
63
63
  import {
64
64
  EYE_CLOSED_PATH,
65
65
  EYE_OPEN_PATH,
@@ -67,10 +67,10 @@ import {
67
67
  LEGEND_EYE_SIZE,
68
68
  LEGEND_GROUP_GAP,
69
69
  LEGEND_HEIGHT
70
- } from "./chunk-UOCWYLYT.js";
70
+ } from "./chunk-OZXKW5NA.js";
71
71
  import {
72
72
  measureText
73
- } from "./chunk-KAO7JL4I.js";
73
+ } from "./chunk-PU5X3P3T.js";
74
74
  import {
75
75
  contrastText,
76
76
  mix,
@@ -170,7 +170,6 @@ function renderSitemap(container, parsed, layout, palette, isDark, onClickItem,
170
170
  const sContainerHeaderHeight = ctx.structural(CONTAINER_HEADER_HEIGHT);
171
171
  const sTitleFontSize = ctx.text(TITLE_FONT_SIZE);
172
172
  const sTitleHeight = ctx.structural(TITLE_HEIGHT);
173
- const sCollapseBarHeight = ctx.structural(COLLAPSE_BAR_HEIGHT);
174
173
  const sLegendFixedGap = ctx.aesthetic(LEGEND_FIXED_GAP);
175
174
  const noLegend = legendSuppressed(parsed.options);
176
175
  const hasLegend = layout.legend.length > 0 && !noLegend;
@@ -319,10 +318,17 @@ function renderSitemap(container, parsed, layout, palette, isDark, onClickItem,
319
318
  cG.append("text").attr("x", valueX).attr("y", rowY).attr("fill", valColor).attr("font-size", sContainerMetaFontSize).text(value);
320
319
  }
321
320
  }
322
- if (!exportDims && c.hiddenCount && c.hiddenCount > 0) {
323
- const clipId = `clip-${c.nodeId}`;
324
- cG.append("clipPath").attr("id", clipId).append("rect").attr("width", c.width).attr("height", c.height).attr("rx", CONTAINER_RADIUS);
325
- cG.append("rect").attr("y", c.height - sCollapseBarHeight).attr("width", c.width).attr("height", sCollapseBarHeight).attr("fill", stroke).attr("clip-path", `url(#${clipId})`).attr("class", "sitemap-collapse-bar");
321
+ if (c.hasChildren) {
322
+ renderCollapseBar(cG, {
323
+ expanded: !c.hiddenCount,
324
+ width: c.width,
325
+ height: c.height,
326
+ rx: CONTAINER_RADIUS,
327
+ fill: stroke,
328
+ clipId: `clip-${c.nodeId}`,
329
+ prefix: "sitemap",
330
+ scale: ctx
331
+ });
326
332
  }
327
333
  }
328
334
  const labelCentres = placeSitemapEdgeLabels(layout, sEdgeLabelFontSize);
@@ -347,7 +353,7 @@ function renderSitemap(container, parsed, layout, palette, isDark, onClickItem,
347
353
  for (const node of layout.nodes) {
348
354
  const nodeG = contentG.append("g").attr("transform", `translate(${node.x - node.width / 2}, ${node.y})`).attr("class", "sitemap-node").attr("data-line-number", String(node.lineNumber)).attr("data-node-id", node.id);
349
355
  if (node.hasChildren) {
350
- nodeG.attr("data-node-toggle", node.id).attr("role", "button").attr("aria-expanded", String(!node.hiddenCount));
356
+ nodeG.attr("data-node-toggle", node.id).attr("role", "button").attr("aria-expanded", String(!node.hiddenCount)).attr("aria-label", node.label);
351
357
  }
352
358
  if (onClickItem) {
353
359
  nodeG.style("cursor", "pointer").on("click", () => onClickItem(node.lineNumber));
@@ -410,13 +416,17 @@ function renderSitemap(container, parsed, layout, palette, isDark, onClickItem,
410
416
  renderInlineText(textEl, processed, palette, sMetaFontSize);
411
417
  }
412
418
  }
413
- if (!exportDims && node.hiddenCount && node.hiddenCount > 0) {
414
- const clipId = `clip-${node.id}`;
415
- nodeG.append("clipPath").attr("id", clipId).append("rect").attr("width", node.width).attr("height", node.height).attr("rx", CARD_RADIUS);
416
- nodeG.append("rect").attr("y", node.height - sCollapseBarHeight).attr("width", node.width).attr("height", sCollapseBarHeight).attr(
417
- "fill",
418
- fillMode === "solid" ? labelColor : node.color ?? palette.primary
419
- ).attr("opacity", 0.5).attr("clip-path", `url(#${clipId})`);
419
+ if (node.hasChildren) {
420
+ renderCollapseBar(nodeG, {
421
+ expanded: !node.hiddenCount,
422
+ width: node.width,
423
+ height: node.height,
424
+ rx: CARD_RADIUS,
425
+ fill: fillMode === "solid" ? labelColor : stroke,
426
+ clipId: `clip-${node.id}`,
427
+ prefix: "sitemap",
428
+ scale: ctx
429
+ });
420
430
  }
421
431
  }
422
432
  if (exportDims && hasLegend) {
@@ -507,8 +517,8 @@ function renderLegend(parent, legendGroups, palette, isDark, activeTagGroup, fix
507
517
  }
508
518
  }
509
519
  async function renderSitemapForExport(content, theme, palette) {
510
- const { parseSitemap } = await import("./parser-6TDWUKM5.js");
511
- const { layoutSitemap } = await import("./layout-ND26WVX2.js");
520
+ const { parseSitemap } = await import("./parser-BA43YPIQ.js");
521
+ const { layoutSitemap } = await import("./layout-ZCCABSV7.js");
512
522
  const { getPalette, DEFAULT_PALETTE_ID } = await import("./palettes-4Y7CL2QL.js");
513
523
  const isDark = theme === "dark";
514
524
  const defaultCfg = getPalette(DEFAULT_PALETTE_ID);
@@ -1,34 +1,35 @@
1
1
  import {
2
2
  drawCylinderCard,
3
3
  drawQueueCard
4
- } from "./chunk-IHN6WDEY.js";
4
+ } from "./chunk-74XR7Z3I.js";
5
5
  import {
6
6
  CYLINDER_RY,
7
+ FILE_WAVE,
7
8
  QUEUE_CAP
8
- } from "./chunk-5KKZXA44.js";
9
+ } from "./chunk-V3ICBS2O.js";
9
10
  import {
10
11
  WHITEBOARD_COLORS,
11
12
  WHITEBOARD_NOTE_COLOR
12
- } from "./chunk-R46N5KR4.js";
13
+ } from "./chunk-SQBCNEJB.js";
13
14
  import {
14
15
  renderChartTitle
15
- } from "./chunk-6XLMTAEX.js";
16
+ } from "./chunk-YIHRLY55.js";
16
17
  import {
17
18
  TITLE_FONT_SIZE
18
- } from "./chunk-VLC6WNRD.js";
19
+ } from "./chunk-GULGSH2Z.js";
19
20
  import {
20
21
  renderIntegratedLegend
21
- } from "./chunk-NMS5XSLX.js";
22
+ } from "./chunk-DFEVFLEG.js";
22
23
  import {
23
24
  getMaxLegendReservedHeight
24
- } from "./chunk-JILEYZ2V.js";
25
+ } from "./chunk-VVL2KKG4.js";
25
26
  import {
26
27
  FONT_FAMILY
27
28
  } from "./chunk-ICLB27PZ.js";
28
29
  import {
29
30
  measureText,
30
31
  wrapTextToWidth
31
- } from "./chunk-KAO7JL4I.js";
32
+ } from "./chunk-PU5X3P3T.js";
32
33
  import {
33
34
  contrastText,
34
35
  mix,
@@ -68,6 +69,32 @@ function roundedRect(x, y, w, h, radius) {
68
69
  ...ellipse(x + w - r, y + h - r, r, r)
69
70
  ];
70
71
  }
72
+ function whiteboardFileWave(h) {
73
+ return Math.max(0, Math.min(FILE_WAVE, h / 4));
74
+ }
75
+ var FILE_WAVE_STEPS = 16;
76
+ function whiteboardFileWavePoints(x, y, w, h, steps = FILE_WAVE_STEPS) {
77
+ const wave = whiteboardFileWave(h);
78
+ const b = y + h - wave;
79
+ const xs = [x + w, x + w * 0.75, x + w * 0.25, x];
80
+ const ys = [b, b + 2 * wave, b - wave, b];
81
+ const out = [];
82
+ for (let i = 0; i <= steps; i++) {
83
+ const t = i / steps;
84
+ const u = 1 - t;
85
+ const k = [u * u * u, 3 * u * u * t, 3 * u * t * t, t * t * t];
86
+ out.push({
87
+ x: k[0] * xs[0] + k[1] * xs[1] + k[2] * xs[2] + k[3] * xs[3],
88
+ y: k[0] * ys[0] + k[1] * ys[1] + k[2] * ys[2] + k[3] * ys[3]
89
+ });
90
+ }
91
+ return out;
92
+ }
93
+ function whiteboardFilePath(x, y, w, h) {
94
+ const wave = whiteboardFileWave(h);
95
+ const b = y + h - wave;
96
+ return `M ${x} ${y} L ${x + w} ${y} L ${x + w} ${b} C ${x + w * 0.75} ${b + 2 * wave}, ${x + w * 0.25} ${b - wave}, ${x} ${b} Z`;
97
+ }
71
98
  function piecesOf(s) {
72
99
  const { x, y, width: w, height: h } = s;
73
100
  if (s.kind === "note") {
@@ -105,6 +132,26 @@ function piecesOf(s) {
105
132
  ...ellipse(x + w - cap, cy, cap, h / 2)
106
133
  ];
107
134
  }
135
+ case "file": {
136
+ const pts = whiteboardFileWavePoints(x, y, w, h);
137
+ const top = Math.min(...pts.map((p) => p.y));
138
+ const strips = [];
139
+ for (let i = pts.length - 1; i > 0; i--) {
140
+ const a = pts[i];
141
+ const b = pts[i - 1];
142
+ if (b.x - a.x < EPS || Math.max(a.y, b.y) - top < EPS) continue;
143
+ strips.push({
144
+ kind: "poly",
145
+ pts: [
146
+ { x: a.x, y: top },
147
+ { x: b.x, y: top },
148
+ { x: b.x, y: Math.max(b.y, top) },
149
+ { x: a.x, y: Math.max(a.y, top) }
150
+ ]
151
+ });
152
+ }
153
+ return [...rect(x, y, x + w, top), ...strips];
154
+ }
108
155
  }
109
156
  }
110
157
  function halfPlanes(pts) {
@@ -398,7 +445,7 @@ function whiteboardLabelHeight(box) {
398
445
  return Math.max(box.height - 2 * WHITEBOARD_NOTE_PAD, 0);
399
446
  }
400
447
  const shape = "shape" in box ? box.shape : "rectangle";
401
- const inset = shape === "ellipse" ? box.height * ELLIPSE_INSET : shape === "database" ? 2 * CYLINDER_RY : 0;
448
+ const inset = shape === "ellipse" ? box.height * ELLIPSE_INSET : shape === "database" ? 2 * CYLINDER_RY : shape === "file" ? whiteboardFileWave(box.height) / 2 : 0;
402
449
  return Math.max(box.height - 2 * (LABEL_PAD + inset), 0);
403
450
  }
404
451
  function wrapWhiteboardLabel(label, box) {
@@ -928,6 +975,8 @@ function renderWhiteboard(container, parsed, palette, isDark, options = {}) {
928
975
  g.append("rect").attr("x", el.x).attr("y", el.y).attr("width", el.width).attr("height", el.height).attr("rx", Math.min(RECT_RADIUS, el.width / 2, el.height / 2)).attr("fill", fill).attr("stroke", stroke).attr("stroke-width", SHAPE_STROKE);
929
976
  } else if (el.shape === "ellipse") {
930
977
  g.append("ellipse").attr("cx", cx).attr("cy", cy).attr("rx", el.width / 2).attr("ry", el.height / 2).attr("fill", fill).attr("stroke", stroke).attr("stroke-width", SHAPE_STROKE);
978
+ } else if (el.shape === "file") {
979
+ g.append("path").attr("d", whiteboardFilePath(el.x, el.y, el.width, el.height)).attr("fill", fill).attr("stroke", stroke).attr("stroke-width", SHAPE_STROKE);
931
980
  } else {
932
981
  const inner = g.append("g").attr("transform", `translate(${round2(cx)},${round2(cy)})`);
933
982
  if (el.shape === "database") {
@@ -1050,6 +1099,9 @@ function round2(n) {
1050
1099
 
1051
1100
  export {
1052
1101
  whiteboardNoteFold,
1102
+ whiteboardFileWave,
1103
+ whiteboardFileWavePoints,
1104
+ whiteboardFilePath,
1053
1105
  whiteboardShapeContains,
1054
1106
  whiteboardLabelPosition,
1055
1107
  whiteboardShapeAt,
@@ -1,16 +1,18 @@
1
1
  // src/utils/fit-canvas.ts
2
2
  var MIN_CANVAS_WIDTH = 480;
3
+ var MIN_DRAWN_TEXT_PX = 7;
3
4
  function fitDiagramToCanvas(p) {
4
5
  const scaleX = (p.width - p.padding * 2) / p.diagramW;
5
6
  let scale;
6
7
  let canvasHeight;
7
8
  let canvasWidth;
8
9
  if (p.exportMode) {
9
- scale = Math.min(p.maxScale, scaleX, 1);
10
+ const minScale = p.smallestTextPx ? MIN_DRAWN_TEXT_PX / p.smallestTextPx : 0;
11
+ scale = Math.max(Math.min(p.maxScale, scaleX, 1), minScale);
10
12
  canvasHeight = p.titleHeight + p.diagramH * scale + p.padding * 2;
11
13
  canvasWidth = Math.round(
12
14
  Math.min(
13
- p.width,
15
+ scale > scaleX ? Infinity : p.width,
14
16
  Math.max(MIN_CANVAS_WIDTH, p.diagramW * scale + p.padding * 2)
15
17
  )
16
18
  );