collabmd 0.1.54 → 0.1.56

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 (645) hide show
  1. package/README.md +1 -1
  2. package/bin/collabmd.js +19 -38
  3. package/dist/client/assets/CodeMirrorEditor-UCMRAMCV-CW5HP9uy.js +1 -0
  4. package/dist/client/assets/{Middleware-DUgFSleI.js → Middleware-DbxtuTyG.js} +1 -1
  5. package/dist/client/assets/{abnfDiagram-VCTEODGH-DxNxad6-.js → abnfDiagram-VCTEODGH-DY5tILUg.js} +1 -1
  6. package/dist/client/assets/{abnfDiagram-O67JEVCF-Dwt6a0Ds.js → abnfDiagram-WEYOIA3C-BqtDVimc.js} +1 -1
  7. package/dist/client/assets/api-client-utils-DkW9xiiw.js +1 -0
  8. package/dist/client/assets/{ar-SA-5WIASEJP-Di7OimCN.js → ar-SA-5WIASEJP-DbGUC-Fx.js} +1 -1
  9. package/dist/client/assets/{arc-DgcGdgmL.js → arc-Y1ARJVZ4.js} +1 -1
  10. package/dist/client/assets/architecture-7GRP2DOG-DndzY1Hb.js +1 -0
  11. package/dist/client/assets/architecture-WOLXFQ4H-tER6YKVA.js +1 -0
  12. package/dist/client/assets/{architectureDiagram-5GKGNRK7-C1uvg5id.js → architectureDiagram-5GKGNRK7-D_ZiDWLO.js} +2 -2
  13. package/dist/client/assets/{architectureDiagram-NJMV4G6O-D5CGiX3G.js → architectureDiagram-ZHVYKT53-CCmYbVDm.js} +3 -3
  14. package/dist/client/assets/{az-AZ-V5EUQD6C-C19OGTT_.js → az-AZ-V5EUQD6C-qK0euR1T.js} +1 -1
  15. package/dist/client/assets/babel-BaOs8qJH.js +16 -0
  16. package/dist/client/assets/base-CaIEJUF9.css +1 -0
  17. package/dist/client/assets/{bg-BG-EXASCMTR-BIt0xWyb.js → bg-BG-EXASCMTR-DHvN8nO_.js} +1 -1
  18. package/dist/client/assets/{blockDiagram-I7D4REHJ-B2YonsoG.js → blockDiagram-I7D4REHJ-CeN7xDSG.js} +2 -2
  19. package/dist/client/assets/{blockDiagram-BEXU5L5S-BgTM0var.js → blockDiagram-RJAE7QA3-CsHpm8AL.js} +3 -3
  20. package/dist/client/assets/{bn-BD-U4SYNFCO-CdNaPy4Q.js → bn-BD-U4SYNFCO-BKKqqvJ1.js} +1 -1
  21. package/dist/client/assets/{bn-IN-HKDJIITE-CdNaPy4Q.js → bn-IN-HKDJIITE-BKKqqvJ1.js} +1 -1
  22. package/dist/client/assets/{browser-BKLM0ThC-BCLQGPD6-K2seJgRL.js → browser-BKLM0ThC-BCLQGPD6-B6uxmOe1.js} +1 -1
  23. package/dist/client/assets/{c4Diagram-7LVT6UL2-r4IwomZm.js → c4Diagram-7LVT6UL2-Bezmsa8k.js} +1 -1
  24. package/dist/client/assets/{c4Diagram-YGBWAQC7-_xZPrNkB.js → c4Diagram-XDPPPE54-COKPOr_O.js} +2 -2
  25. package/dist/client/assets/{ca-ES-2KGUU5XB-C9t-c0cH.js → ca-ES-2KGUU5XB-CYClUOgC.js} +1 -1
  26. package/dist/client/assets/canvasEditor-BJkwGzO1.css +1 -0
  27. package/dist/client/assets/canvasEditor-CWbY0cMf.js +1 -0
  28. package/dist/client/assets/channel-COwKkfba.js +1 -0
  29. package/dist/client/assets/{chunk-6AZGARVD--pTGpDnx.js → chunk-24IY7LWP-DUl0BbtV.js} +1 -1
  30. package/dist/client/assets/chunk-2E4U76K2-CPmbCsOa.js +1 -0
  31. package/dist/client/assets/{chunk-GTNCS2PH-ChgkzEIi.js → chunk-2E7WHVMD-CnfGYKwC.js} +3 -3
  32. package/dist/client/assets/chunk-2ZTRR5NV-CowhtTwB.js +2 -0
  33. package/dist/client/assets/{chunk-5V3GS4D5-B5uC2oxu.js → chunk-3M4EKCLJ-BeG5ZU4c.js} +1 -1
  34. package/dist/client/assets/{chunk-3Z5EZCMW-BAnA6eQ7.js → chunk-3Z5EZCMW-DQ1fwqmG.js} +1 -1
  35. package/dist/client/assets/{chunk-NETBCI7D-CmUwDWUZ.js → chunk-4EMNKR2T-B97vb0rp.js} +1 -1
  36. package/dist/client/assets/{chunk-4HAMMTFA-q0ldNVvr.js → chunk-4HAMMTFA-B3s0XvP_.js} +1 -1
  37. package/dist/client/assets/{chunk-6K3QC6MW-DGVRzL6v.js → chunk-4S7OKTRW-DIpJGzf1.js} +1 -1
  38. package/dist/client/assets/{chunk-ICYGCRZG-D97UeqJs.js → chunk-53FOQ5SW-C3TQxbLr.js} +1 -1
  39. package/dist/client/assets/{chunk-GWA4HPMP-CGmv2yIq.js → chunk-55XCU76K-CZBj2eVM.js} +1 -1
  40. package/dist/client/assets/{chunk-5V3GS4D5-BR7kgIgJ.js → chunk-5V3GS4D5-CD51GF-u.js} +1 -1
  41. package/dist/client/assets/{chunk-6AZGARVD-CnZDr4Cj.js → chunk-6AZGARVD-BD9EvFmU.js} +1 -1
  42. package/dist/client/assets/{chunk-6EIED4P4-Bp8dpTvX.js → chunk-6EIED4P4-CZFyd-Ct.js} +1 -1
  43. package/dist/client/assets/{chunk-6K3QC6MW-JnuvEGV4.js → chunk-6K3QC6MW-BJWmnHdF.js} +1 -1
  44. package/dist/client/assets/{chunk-6TQVIW2G-BSj0l_pu.js → chunk-6TQVIW2G-DaBcb454.js} +1 -1
  45. package/dist/client/assets/chunk-747NJXEK-D08Z0c6r.js +2 -0
  46. package/dist/client/assets/{chunk-75Z2AOVW-DitkSoSG.js → chunk-75Z2AOVW-DLVzmKuL.js} +1 -1
  47. package/dist/client/assets/chunk-7S6XSTFO-CXBGoJ7Z.js +2 -0
  48. package/dist/client/assets/{chunk-MBY4JIJT-DTJ4UcAm.js → chunk-AQDTSKZB-BpOOnFv4.js} +3 -3
  49. package/dist/client/assets/chunk-BP2KR52E-yBDJ_0ib.js +2 -0
  50. package/dist/client/assets/{chunk-CLGD4ZFX-BfYJtJm1.js → chunk-CLGD4ZFX-BBNA_mHW.js} +1 -1
  51. package/dist/client/assets/chunk-DSNLSHJZ-DkAaVKkN.js +127 -0
  52. package/dist/client/assets/{chunk-DU6HZSFF-CWlP1Dk_.js → chunk-DU6HZSFF-Dz0Q7VKE.js} +2 -2
  53. package/dist/client/assets/{chunk-GNY47TPC-CTrH5O5R.js → chunk-EJLWFMJV-CxNRZ5Ez.js} +1 -1
  54. package/dist/client/assets/{chunk-F27PBJKO-DPcsPcEs.js → chunk-F27PBJKO-BziR3pku.js} +1 -1
  55. package/dist/client/assets/chunk-F6S3BTY2-Dw9FK6Vq.js +2 -0
  56. package/dist/client/assets/chunk-FBWCRPUE-PUG6Mjdg.js +12 -0
  57. package/dist/client/assets/{chunk-FOHPRMQF-Dmmo5Kak.js → chunk-FOHPRMQF-COOliuUh.js} +8 -8
  58. package/dist/client/assets/{chunk-GMAD6QVW-Bgk8qnty.js → chunk-GMAD6QVW-B6zS4VJx.js} +1 -1
  59. package/dist/client/assets/{chunk-GVQU2GXP-CQ8cl-Uu.js → chunk-GVQU2GXP-BA8Vt-19.js} +1 -1
  60. package/dist/client/assets/chunk-HAGFOTED-miSk6HXc.js +62 -0
  61. package/dist/client/assets/chunk-HNE4Q36P-BTbX-t8_.js +1 -0
  62. package/dist/client/assets/{chunk-I5DQTOEV-B98XA8VK.js → chunk-I5DQTOEV-qgbr-MbI.js} +1 -1
  63. package/dist/client/assets/{chunk-ICYGCRZG-odvlDZyA.js → chunk-ICYGCRZG-Dv6Hl9ds.js} +1 -1
  64. package/dist/client/assets/{chunk-IH6LHLGP-BNevEHZK.js → chunk-IH6LHLGP-DCTJcBuf.js} +1 -1
  65. package/dist/client/assets/{chunk-IMKFNOWR-CBqxfpcP.js → chunk-IMKFNOWR-DN2Mwt1n.js} +1 -1
  66. package/dist/client/assets/{chunk-KI3K4JFJ-D5XCPRZv.js → chunk-KI3K4JFJ-Hb_e7W2X.js} +1 -1
  67. package/dist/client/assets/{chunk-IH6LHLGP-CvXe34hB.js → chunk-KPI5JJXK-BoDlpdVM.js} +1 -1
  68. package/dist/client/assets/{chunk-L3NEJ4N5-BflzkdTI.js → chunk-L3NEJ4N5-M6XySblQ.js} +1 -1
  69. package/dist/client/assets/{chunk-LNGE3PJU-5nWSl6jJ.js → chunk-LNGE3PJU-CxdyKuxt.js} +4 -4
  70. package/dist/client/assets/{chunk-LNGE3PJU-5-SxdO55.js → chunk-LNGE3PJU-DRjopGY8.js} +4 -4
  71. package/dist/client/assets/chunk-NGNAAXSQ-Bw6tHVuc.js +136 -0
  72. package/dist/client/assets/chunk-NQOKRVIF-B_sOt25u.js +213 -0
  73. package/dist/client/assets/chunk-NZIJZ2A6-CmC5bqJr.js +42 -0
  74. package/dist/client/assets/{chunk-UY3FDG6J-DqSM_0FB.js → chunk-OD3NTWWA-D7wmrqo1.js} +1 -1
  75. package/dist/client/assets/{chunk-OSK3NFVY-DqeKV_pg.js → chunk-OSK3NFVY-DJyrXrea.js} +1 -1
  76. package/dist/client/assets/chunk-OUJLGHUK-DIWqBvm0.js +2 -0
  77. package/dist/client/assets/chunk-OYAV6JZA-kXOh375k.js +1 -0
  78. package/dist/client/assets/{chunk-P2QGCYS3-BA--DhpW.js → chunk-P2QGCYS3-DejntbnV.js} +1 -1
  79. package/dist/client/assets/{chunk-POPQ4Y6H-V_NEc45n.js → chunk-POPQ4Y6H-D3VayDzJ.js} +1 -1
  80. package/dist/client/assets/{chunk-PWAF6VOD-D_kLse-N.js → chunk-PWAF6VOD-CmxcnYFJ.js} +1 -1
  81. package/dist/client/assets/{chunk-3Z5EZCMW-Yx4Q5AcN.js → chunk-QNH66VMT-De2vWRUE.js} +1 -1
  82. package/dist/client/assets/{chunk-SHT3W25Y-YM3S-A_M.js → chunk-SHT3W25Y-SAi_Zk5G.js} +1 -1
  83. package/dist/client/assets/{chunk-SRAX5OIU-KFQikY-4.js → chunk-SRAX5OIU-wzfotNc-.js} +1 -1
  84. package/dist/client/assets/{chunk-SVP7TREG-DdNhDOmW.js → chunk-SVP7TREG-BtK2J628.js} +1 -1
  85. package/dist/client/assets/{chunk-TICWLB2K-BGGgCr4x.js → chunk-TICWLB2K-wmAorf_a.js} +1 -1
  86. package/dist/client/assets/{chunk-TLUHSLCS-DCZhIDYA.js → chunk-TLUHSLCS-DA3Sq1kc.js} +1 -1
  87. package/dist/client/assets/{chunk-6EIED4P4-DBVWq7Tz.js → chunk-TPMEZKFX-CarinQak.js} +1 -1
  88. package/dist/client/assets/{chunk-7PRAP22T-9uTvtc_-.js → chunk-UHW7PFBP-ClLfHtva.js} +1 -1
  89. package/dist/client/assets/{chunk-UY3FDG6J-QT-rkt0y.js → chunk-UY3FDG6J-BT57Gakr.js} +1 -1
  90. package/dist/client/assets/{chunk-6TQVIW2G-DgBX-Pv0.js → chunk-VPELOWWC-Dk0xIrB-.js} +1 -1
  91. package/dist/client/assets/{chunk-WEXAMYUT-DDlVNp8J.js → chunk-VQ5W62QI-CxUPWJRX.js} +1 -1
  92. package/dist/client/assets/{chunk-I5DQTOEV-aBZooNp1.js → chunk-VTWWFHGB-BZsdnDPL.js} +1 -1
  93. package/dist/client/assets/{chunk-KI3K4JFJ-FTtDwx3-.js → chunk-VZTHESGH-D6CHzqGr.js} +1 -1
  94. package/dist/client/assets/chunk-WQQL4CDK-BiuwKtd-.js +10 -0
  95. package/dist/client/assets/{chunk-X3CZISLH-DwWpRaN8.js → chunk-X3CZISLH-Bwnh_YJ7.js} +1 -1
  96. package/dist/client/assets/{chunk-X3CZISLH-BixgQztF.js → chunk-X3CZISLH-DayjKu55.js} +1 -1
  97. package/dist/client/assets/{chunk-XHIXRSVI-BSN7JlfK.js → chunk-XHIXRSVI-C0fC7dJN.js} +1 -1
  98. package/dist/client/assets/{chunk-XXDRQBXY-C7hQHDmQ.js → chunk-XXDRQBXY-BxVnmMBx.js} +1 -1
  99. package/dist/client/assets/{chunk-XXDRQBXY-CdRN9Akd.js → chunk-XXDRQBXY-DBb3y0NH.js} +1 -1
  100. package/dist/client/assets/{chunk-XHIXRSVI-DN_fEwws.js → chunk-YK26KJH5-ywVSJDLS.js} +1 -1
  101. package/dist/client/assets/{chunk-742MDFTN-D1nh6vNv.js → chunk-YZO67HFG-Bg5cZX5R.js} +1 -1
  102. package/dist/client/assets/{chunk-Z5NKEFVG-q6fHH75m.js → chunk-Z5NKEFVG-BPqw37Lj.js} +3 -3
  103. package/dist/client/assets/{chunk-5DYCD2WN-BKWCKnK-.js → chunk-ZAUX2LTX-Yte1ozQc.js} +1 -1
  104. package/dist/client/assets/chunk-ZCHMQSOR-B3FSat8d.js +1 -0
  105. package/dist/client/assets/chunk-ZO67DCNQ-DnpDWW4I.js +2 -0
  106. package/dist/client/assets/classDiagram-ZZMXUADV-CLl-Ahxw.js +1 -0
  107. package/dist/client/assets/{classDiagram-v2-NBCMYWYE-3TQORq33.js → classDiagram-v2-4MYWR3UA-rPd2Vhml.js} +3 -3
  108. package/dist/client/assets/classDiagram-v2-VYDZK3BY-CLl-Ahxw.js +1 -0
  109. package/dist/client/assets/{clike-D_6L3tnO.js → clike-xvONpD0Z.js} +1 -1
  110. package/dist/client/assets/{clone-C1hp9FUh.js → clone-BoYpPplK.js} +1 -1
  111. package/dist/client/assets/{comment-markdown-renderer-Bxi_JRSR.js → comment-markdown-renderer-a1B3HT_T.js} +1 -1
  112. package/dist/client/assets/comment-thread-store-da3_1rfw.js +1 -0
  113. package/dist/client/assets/comment-threads-mG1CkBKO.js +4 -0
  114. package/dist/client/assets/comment-ui-shared-4bhpJQpv.js +7 -0
  115. package/dist/client/assets/{cose-bilkent-JH36ORCC-Czr0rwGr.js → cose-bilkent-JH36ORCC-BMHIGaXC.js} +1 -1
  116. package/dist/client/assets/{cose-bilkent-JH36ORCC-DLmEf9HS.js → cose-bilkent-JH36ORCC-Chlyw-Nt.js} +1 -1
  117. package/dist/client/assets/crystal-Bl6YKCG_.js +1 -0
  118. package/dist/client/assets/{cs-CZ-VUCGPRML-BfCoYAgj.js → cs-CZ-VUCGPRML-KFMLw537.js} +1 -1
  119. package/dist/client/assets/cynefin-EF2NZ3EQ-CwzF3ccb.js +1 -0
  120. package/dist/client/assets/cynefin-OW5HDTMX-CeLVR4kL.js +1 -0
  121. package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-DTnLZaO7.js → cynefinDiagram-5FMLGOSQ-No5A0--Q.js} +1 -1
  122. package/dist/client/assets/{cynefinDiagram-VND7K2PF-DwfMZ3vk.js → cynefinDiagram-WF24UDRP-BvwG2vI4.js} +1 -1
  123. package/dist/client/assets/cytoscape-cose-bilkent-iiiP-uiT.js +1 -0
  124. package/dist/client/assets/cytoscape-fcose-CiCTciSr.js +1 -0
  125. package/dist/client/assets/cytoscape.esm-CCmQRb78.js +321 -0
  126. package/dist/client/assets/{da-DK-NNDP2IVP-DBw9ZNTR.js → da-DK-NNDP2IVP-BpM-jMGR.js} +1 -1
  127. package/dist/client/assets/dagre-D7JM2Yhv.js +1 -0
  128. package/dist/client/assets/dagre-GXQ25YYZ-B0VZWLr5.js +4 -0
  129. package/dist/client/assets/dagre-NK4GIZVX-DoXdmyVb.js +4 -0
  130. package/dist/client/assets/{de-CH-I7RAVIZN-DYW18Vsr.js → de-CH-I7RAVIZN-BNkaUG5V.js} +1 -1
  131. package/dist/client/assets/{de-DE-WBQ3DQLR-DYW18Vsr.js → de-DE-WBQ3DQLR-BNkaUG5V.js} +1 -1
  132. package/dist/client/assets/deferred-collab-C9aa9cvT.css +1 -0
  133. package/dist/client/assets/deferred-git-BPQ-UgrN.css +1 -0
  134. package/dist/client/assets/deferred-preview-B-RebLry.css +1 -0
  135. package/dist/client/assets/{diagram-3UASUU5V-DmhdYv6_.js → diagram-CBK3MWTC-hfExzGJR.js} +2 -2
  136. package/dist/client/assets/{diagram-MLGK6HIB-DIBG6Ivu.js → diagram-I5XIIV2D-Diz84D6I.js} +1 -1
  137. package/dist/client/assets/{diagram-CDSNMT55-D_qyS11R.js → diagram-ODIL2UCW-lVgTk1r8.js} +4 -4
  138. package/dist/client/assets/diagram-PFBEJUXE-Dm-wXUUU.js +3 -0
  139. package/dist/client/assets/{diagram-MPIPVDR6-D9XsALDV.js → diagram-RJA3I4VV-Bv4ZAy4v.js} +2 -2
  140. package/dist/client/assets/{diagram-S7CK7UJ4-CGTzfo2f.js → diagram-S7CK7UJ4-ClAT_J6s.js} +2 -2
  141. package/dist/client/assets/diagram-TYUNFSNR-CN-Xc6z9.js +200 -0
  142. package/dist/client/assets/{diagram-UQ7AKVKN-CWZS8QtB.js → diagram-UQ7AKVKN-DJ6uTWCE.js} +1 -1
  143. package/dist/client/assets/{diagram-VSXAHHWV-DaO1nOZF.js → diagram-VSXAHHWV-C2k4OYGw.js} +1 -1
  144. package/dist/client/assets/{diagram-VX7I27RA-B54P6Cyf.js → diagram-VX7I27RA-CLX2KoMs.js} +1 -1
  145. package/dist/client/assets/{diagram-Z3DM3KII-Cl2EXiXp.js → diagram-Z3DM3KII-BZcZUF57.js} +1 -1
  146. package/dist/client/assets/{direct-engine-DVLMOJWp-C-YL5NFb.js → direct-engine-DVLMOJWp-C_tInsJx.js} +1 -1
  147. package/dist/client/assets/dist-7kwQLW_E.js +1 -0
  148. package/dist/client/assets/dist-B-G-pifG.js +11 -0
  149. package/dist/client/assets/dist-B0vhBQTT.js +13 -0
  150. package/dist/client/assets/dist-BBVAlyPS.js +1 -0
  151. package/dist/client/assets/dist-BGDa8poZ.js +1 -0
  152. package/dist/client/assets/{dist-uk11ih8u.js → dist-BJ93nZVx.js} +2 -2
  153. package/dist/client/assets/dist-BS271jN_.js +1 -0
  154. package/dist/client/assets/dist-BUgvZKJ6.js +39 -0
  155. package/dist/client/assets/dist-BXomWIuA.js +2 -0
  156. package/dist/client/assets/dist-BbrmdpPb.js +1 -0
  157. package/dist/client/assets/dist-BfvzS-2t.js +1 -0
  158. package/dist/client/assets/dist-Bt7Xaqyp.js +1 -0
  159. package/dist/client/assets/dist-BtOSkvqt.js +1 -0
  160. package/dist/client/assets/{dist-Ch6Sr9KF.js → dist-C150LLfi.js} +6 -6
  161. package/dist/client/assets/dist-C6YYSeP1.js +9 -0
  162. package/dist/client/assets/dist-CFzMlwAz.js +1 -0
  163. package/dist/client/assets/dist-CH86sVcz.js +1 -0
  164. package/dist/client/assets/dist-CP97HJ4M.js +1 -0
  165. package/dist/client/assets/dist-CVDt4G0T.js +1 -0
  166. package/dist/client/assets/dist-CbwTIhZ4.js +1 -0
  167. package/dist/client/assets/dist-CfwwN8_Y.js +1 -0
  168. package/dist/client/assets/{dist-B_J_HbC0.js → dist-CumnGVmJ.js} +1 -1
  169. package/dist/client/assets/dist-CvwwJhwr.js +1 -0
  170. package/dist/client/assets/dist-D-detfUV.js +1 -0
  171. package/dist/client/assets/dist-DCaysCNp.js +1 -0
  172. package/dist/client/assets/dist-DCgncsfc.js +6 -0
  173. package/dist/client/assets/dist-DFWn8cbH.js +1 -0
  174. package/dist/client/assets/dist-DKBDZ7Fw.js +1 -0
  175. package/dist/client/assets/dist-DUrzEppq.js +1 -0
  176. package/dist/client/assets/dist-Db2OLA3a.js +1 -0
  177. package/dist/client/assets/dist-Dd0BffVR.js +1 -0
  178. package/dist/client/assets/dist-X-11q-Vc.js +1 -0
  179. package/dist/client/assets/dist-aNZ025fx.js +23 -0
  180. package/dist/client/assets/dist-ftwTHAfS.js +1 -0
  181. package/dist/client/assets/dist-hiG7zUCa.js +1 -0
  182. package/dist/client/assets/document-formatter-B_jrdFGJ.js +1 -0
  183. package/dist/client/assets/drawioEditor-DhRXvyRT.js +9 -0
  184. package/dist/client/assets/{duration-BiuFXtXd.js → duration-DPNtiFfE.js} +1 -1
  185. package/dist/client/assets/{dylan-BCDoL_-p.js → dylan-S7ucR4pR.js} +1 -1
  186. package/dist/client/assets/{ebnfDiagram-PWID7BFC-PfC84FyI.js → ebnfDiagram-PWID7BFC-B8zzvt1e.js} +1 -1
  187. package/dist/client/assets/{ebnfDiagram-ZINNZB2B-DYvm_QtE.js → ebnfDiagram-V4P3TTPT-PjRB23H_.js} +1 -1
  188. package/dist/client/assets/editor-session-BnTvcvzz.js +13 -0
  189. package/dist/client/assets/{el-GR-TYQHVGXW-Dx82YYAS.js → el-GR-TYQHVGXW-BHUJHVd3.js} +1 -1
  190. package/dist/client/assets/elk-QONTBCTQ-DknSb2FG.js +27 -0
  191. package/dist/client/assets/embedded-editor-base-C44ZcCZv.css +1 -0
  192. package/dist/client/assets/embedpdf-VVX-wFIh.js +1 -0
  193. package/dist/client/assets/{embedpdf-cl9qiF45-itpgqvGY.js → embedpdf-cl9qiF45-Cv92w6Wn.js} +6 -6
  194. package/dist/client/assets/en-AUO4QW63-CgjNrgHv.js +1 -0
  195. package/dist/client/assets/{erDiagram-OPXOYQCR-o8GRv8A_.js → erDiagram-KYQIGQAA-BHguakEd.js} +2 -2
  196. package/dist/client/assets/{erDiagram-RLTQ6QDP-C9cJl5NB.js → erDiagram-RLTQ6QDP-YPD0-iRc.js} +1 -1
  197. package/dist/client/assets/{es-ES-JEUOREKJ-Rx0NUQDl.js → es-ES-JEUOREKJ-CeuoqqTN.js} +1 -1
  198. package/dist/client/assets/{esm-BzZ1JFVo.js → esm-nC3n5xMZ.js} +5 -5
  199. package/dist/client/assets/{estree-DGmLqopC.js → estree-Cw-tQG5d.js} +4 -4
  200. package/dist/client/assets/{eu-ES-SO5DEEAN-CDYm-BcK.js → eu-ES-SO5DEEAN-D_7bAcKh.js} +1 -1
  201. package/dist/client/assets/eventmodeling-K75KTNOO-BsPoof5R.js +1 -0
  202. package/dist/client/assets/eventmodeling-NTZA5JFV-Bwo1LIKP.js +1 -0
  203. package/dist/client/assets/excalidraw-element-link-BduFAMXS.js +1 -0
  204. package/dist/client/assets/excalidraw-scene-DzfbvjqT.js +1 -0
  205. package/dist/client/assets/excalidrawEditor-3jfVRVmE.js +9 -0
  206. package/dist/client/assets/excalidrawEditor-DiKOIudt.css +1 -0
  207. package/dist/client/assets/export-page-BiB1AeMg.js +46 -0
  208. package/dist/client/assets/exportDocument-BwukVyB9.js +2 -0
  209. package/dist/client/assets/exportDocument-D0mONgQ4.css +1 -0
  210. package/dist/client/assets/{fa-IR-I4JNTJHK-CFtHZqoT.js → fa-IR-I4JNTJHK-BeoSOVqB.js} +1 -1
  211. package/dist/client/assets/{fi-FI-REAEF6HQ-BIpjJqIb.js → fi-FI-REAEF6HQ-BqIp6GiK.js} +1 -1
  212. package/dist/client/assets/file-kind-BGxTVHan.js +1 -0
  213. package/dist/client/assets/file-search-D2UfqaRv.js +1 -0
  214. package/dist/client/assets/flowDiagram-HODETNUW-CVKOAnD7.js +1 -0
  215. package/dist/client/assets/flowDiagram-IUGLLWBU-BjEyR0dW.js +1 -0
  216. package/dist/client/assets/{fr-FR-SUCL7J6B-DGAKE8jH.js → fr-FR-SUCL7J6B-Dl3EFjA3.js} +1 -1
  217. package/dist/client/assets/{ganttDiagram-EL5Y4UJY-x40PW0Ah.js → ganttDiagram-EL5Y4UJY-CCUwTKb4.js} +1 -1
  218. package/dist/client/assets/ganttDiagram-R7GPNTJY-CXLqT-aU.js +292 -0
  219. package/dist/client/assets/gitGraph-4MIJSDKK-CWZptYrG.js +1 -0
  220. package/dist/client/assets/gitGraph-VSP46ZUC-x2Q42NFN.js +1 -0
  221. package/dist/client/assets/gitGraphDiagram-PDYL7XHY-BJ9CsrRo.js +106 -0
  222. package/dist/client/assets/{gitGraphDiagram-WWUBYQGX-ahsNaZsp.js → gitGraphDiagram-WWUBYQGX-OqdVjcEn.js} +1 -1
  223. package/dist/client/assets/{gl-ES-KHCSOGVH-DWKh0CMu.js → gl-ES-KHCSOGVH-DGHdzXnJ.js} +1 -1
  224. package/dist/client/assets/graphlib-DS17s2tU.js +1 -0
  225. package/dist/client/assets/groovy-CUrWKPia.js +1 -0
  226. package/dist/client/assets/{he-IL-JYXVXV2Q-zqbcM-4g.js → he-IL-JYXVXV2Q-DP8F40TD.js} +1 -1
  227. package/dist/client/assets/{hi-IN-BU52H3BO-CY8v6eG9.js → hi-IN-BU52H3BO-B1huAT2Y.js} +1 -1
  228. package/dist/client/assets/{html-BryNQ_yx.js → html-Drt7kOJE.js} +2 -2
  229. package/dist/client/assets/{hu-HU-OWADXDQ3-CEl6Udfh.js → hu-HU-OWADXDQ3-87zhVnWy.js} +1 -1
  230. package/dist/client/assets/{id-ID-2WY7E4VX-CCAeQpPr.js → id-ID-2WY7E4VX-BdFs5w71.js} +1 -1
  231. package/dist/client/assets/image-V6E7PHAZ-DSZxKLH0.js +1 -0
  232. package/dist/client/assets/image-blob-reduce.esm-ZiL83eII.js +2 -0
  233. package/dist/client/assets/image-lightbox-controller-DH39QMBp.js +184 -0
  234. package/dist/client/assets/index-BebSD0ym.js +960 -0
  235. package/dist/client/assets/index-CglpXOg7.css +1 -0
  236. package/dist/client/assets/info-A6RAGUB7-D_xaPiSc.js +1 -0
  237. package/dist/client/assets/info-OHQRW6UA-CBi78irM.js +1 -0
  238. package/dist/client/assets/{infoDiagram-27XIBGKW-MrZyptIy.js → infoDiagram-27XIBGKW-Ck9hyDJb.js} +1 -1
  239. package/dist/client/assets/{infoDiagram-VRGFBTTK-KkUjDRAQ.js → infoDiagram-MVDRKAX5-DcpftzUS.js} +1 -1
  240. package/dist/client/assets/{ishikawaDiagram-5VMMS53U-Bnt9yM0O.js → ishikawaDiagram-5VMMS53U-CazBMMkQ.js} +2 -2
  241. package/dist/client/assets/{ishikawaDiagram-OU5B5YK6-Di9BcpOY.js → ishikawaDiagram-HPEHV2GE-BG5PpI0A.js} +3 -3
  242. package/dist/client/assets/{it-IT-INVHSAJF-DytAgndh.js → it-IT-INVHSAJF-DnUnri32.js} +1 -1
  243. package/dist/client/assets/{ja-JP-JBNTKYP4-BflWlGhw.js → ja-JP-JBNTKYP4-DIs2dSob.js} +1 -1
  244. package/dist/client/assets/javascript-DZ4Qsoqy.js +1 -0
  245. package/dist/client/assets/javascript-lj9EKOz0.js +1 -0
  246. package/dist/client/assets/{journeyDiagram-3NMN7TZE-Bl0abK1r.js → journeyDiagram-3NMN7TZE-DJFGpA3F.js} +1 -1
  247. package/dist/client/assets/{journeyDiagram-ZHPQQLJL-J-sGrs9e.js → journeyDiagram-BOSHW7O7-CAdC3Sr9.js} +3 -3
  248. package/dist/client/assets/{jsx-runtime-DKj5X9O4.js → jsx-runtime-CldxteV5.js} +1 -1
  249. package/dist/client/assets/{kaa-TC3VIB7V-B-xtZfy0.js → kaa-TC3VIB7V-wP2hxPDI.js} +1 -1
  250. package/dist/client/assets/{kab-KAB-UOUDSQKM-BmO0O4Y4.js → kab-KAB-UOUDSQKM-CwUZUlMm.js} +1 -1
  251. package/dist/client/assets/{kanban-definition-PNTS6WVX-5ZDV_yIa.js → kanban-definition-FNSA4HC5-DLzqpQsC.js} +4 -4
  252. package/dist/client/assets/{kanban-definition-UXKFOSKX-DMgUfNt0.js → kanban-definition-UXKFOSKX-R91H_Ua5.js} +1 -1
  253. package/dist/client/assets/katex-B_JcIwqj.js +257 -0
  254. package/dist/client/assets/{katex-9NBMfU68.js → katex-DJhrJSbw.js} +1 -1
  255. package/dist/client/assets/keyboard-shortcuts-BWNCBJqw.js +1 -0
  256. package/dist/client/assets/{kk-KZ-P5H2X7YS-CSQFB8IN.js → kk-KZ-P5H2X7YS-Q3XzFKqf.js} +1 -1
  257. package/dist/client/assets/{km-KH-IHMV2US7-BxrjuEzr.js → km-KH-IHMV2US7-CxtoNVOY.js} +1 -1
  258. package/dist/client/assets/{ko-KR-ZTMANIDF-BnNRXd5J.js → ko-KR-ZTMANIDF-CJeG69_5.js} +1 -1
  259. package/dist/client/assets/{ku-TR-GPJTRB5G-BZM7f2aT.js → ku-TR-GPJTRB5G-D4gY4ec8.js} +1 -1
  260. package/dist/client/assets/{line-DEbP8Ok6.js → line-CttJWsP1.js} +1 -1
  261. package/dist/client/assets/linear-DGppY5mt.js +1 -0
  262. package/dist/client/assets/lobby-presence-DWGiwZgG.js +1 -0
  263. package/dist/client/assets/{lt-LT-V3XDOK3P-MVQBOHmF.js → lt-LT-V3XDOK3P-DTiFqRKt.js} +1 -1
  264. package/dist/client/assets/{lv-LV-DVQ3FADO-CrenwAhS.js → lv-LV-DVQ3FADO-BDx0eM98.js} +1 -1
  265. package/dist/client/assets/{markdown-CZ1tYEW8.js → markdown-C7cnJl_Q.js} +12 -12
  266. package/dist/client/assets/markdown-headings-CHNl_tgP.js +41 -0
  267. package/dist/client/assets/markdown-it-DWMS_G3H.js +13 -0
  268. package/dist/client/assets/{markdown-math-CyyBVuDO.js → markdown-math-CBhbNj1w.js} +13 -13
  269. package/dist/client/assets/{merge-CALoRt3l.js → merge-5Ig019a6.js} +1 -1
  270. package/dist/client/assets/{mermaid-parser.core-DBy--Jc0.js → mermaid-parser.core-B89UfKha.js} +3 -3
  271. package/dist/client/assets/{mermaid-parser.core-Bpogunsh.js → mermaid-parser.core-Dns-W-xX.js} +1 -1
  272. package/dist/client/assets/mermaid.core-8OvaaBlM.js +10 -0
  273. package/dist/client/assets/{mindmap-definition-NLK3R4M7-ByVb-0vj.js → mindmap-definition-6OY57UG3-0aQEcLTH.js} +11 -9
  274. package/dist/client/assets/{mindmap-definition-YA3MSWOX-DBZN5_GH.js → mindmap-definition-YA3MSWOX-CCSfi8SE.js} +1 -1
  275. package/dist/client/assets/{mr-IN-VZ6HH5FE-B-PHPglH.js → mr-IN-VZ6HH5FE-Cofn25fc.js} +1 -1
  276. package/dist/client/assets/{my-MM-XYKWHRK6-Be5sYp5q.js → my-MM-XYKWHRK6-lMTCoeax.js} +1 -1
  277. package/dist/client/assets/{nb-NO-UNO2GGZJ-BvSKGdja.js → nb-NO-UNO2GGZJ-CEFDplVi.js} +1 -1
  278. package/dist/client/assets/{nginx-8H7HVH4w.js → nginx-C-ORUuei.js} +1 -1
  279. package/dist/client/assets/{nl-NL-76EFHT4P-C2yNx1Cj.js → nl-NL-76EFHT4P-2WbCYdRT.js} +1 -1
  280. package/dist/client/assets/{nn-NO-CFKD7ABE-4NsqlDRP.js → nn-NO-CFKD7ABE-DfK-9yuu.js} +1 -1
  281. package/dist/client/assets/{ntriples-B9h1VB_g.js → ntriples-CzMBulkp.js} +1 -1
  282. package/dist/client/assets/{oc-FR-YBJTCJ3J-B4OTQsWW.js → oc-FR-YBJTCJ3J-BSWusGxV.js} +1 -1
  283. package/dist/client/assets/{pa-IN-SNOXSMRV-CKj_sOG7.js → pa-IN-SNOXSMRV-BYkNTWiO.js} +1 -1
  284. package/dist/client/assets/packet-AYTQ26CC-D6Y_lKZt.js +1 -0
  285. package/dist/client/assets/packet-JDAUHWVQ-DAR0r-Im.js +1 -0
  286. package/dist/client/assets/{pegDiagram-GJSIUBJH-aost1sSO.js → pegDiagram-ECIUJNBX-VujrKWCK.js} +1 -1
  287. package/dist/client/assets/{pegDiagram-XKGWAZYB-DRo8CZu3.js → pegDiagram-XKGWAZYB-DTA3EjtF.js} +1 -1
  288. package/dist/client/assets/percentages-LWOC67ZH-BO-ZFv57.js +1 -0
  289. package/dist/client/assets/pica-CXv_OHDX.js +2 -0
  290. package/dist/client/assets/{pie-DzWLGKAD.js → pie-Ba_4rf3r.js} +1 -1
  291. package/dist/client/assets/pie-WAS4IAKB-DLhltotv.js +1 -0
  292. package/dist/client/assets/pie-XZMESJXO-5MOdYfI0.js +1 -0
  293. package/dist/client/assets/{pieDiagram-E7YTZNPT-CZThaHsc.js → pieDiagram-E7YTZNPT-DBz-eVG3.js} +1 -1
  294. package/dist/client/assets/{pieDiagram-5QR66LMP-BICdpEuz.js → pieDiagram-GNMPY74T-CjRzeDCN.js} +2 -2
  295. package/dist/client/assets/{pl-PL-BSY6YFZ3-CFuzA6L0.js → pl-PL-BSY6YFZ3-DQTYFenp.js} +1 -1
  296. package/dist/client/assets/{powershell-BcIto6Sf.js → powershell-D8WpQPaX.js} +1 -1
  297. package/dist/client/assets/preload-helper-khBccGFq.js +1 -0
  298. package/dist/client/assets/preview-diagram-utils-ByzpiwPu.js +3 -0
  299. package/dist/client/assets/preview-render-compiler-B_gyVIfk.js +3 -0
  300. package/dist/client/assets/preview-render-worker-DYGDgbKA.js +579 -0
  301. package/dist/client/assets/prod-BTPZlnru.js +1 -0
  302. package/dist/client/assets/prod-CUXkwl3E.js +144 -0
  303. package/dist/client/assets/{pt-BR-CZDV62R3-CkPMtyNx.js → pt-BR-CZDV62R3-qKOF4THL.js} +1 -1
  304. package/dist/client/assets/{pt-PT-JO57XJJW-CBSnfGtF.js → pt-PT-JO57XJJW-CVFFmqez.js} +1 -1
  305. package/dist/client/assets/pug-CGoiHVBP.js +1 -0
  306. package/dist/client/assets/purify.es-BP9p1Dbb.js +3 -0
  307. package/dist/client/assets/{quadrantDiagram-AXDQQJYC-C5iowkl_.js → quadrantDiagram-AXDQQJYC-DaTj4J-B.js} +1 -1
  308. package/dist/client/assets/{quadrantDiagram-O4NWA36T-Bgx5bF97.js → quadrantDiagram-D57K4MC3-Bvy8uMKb.js} +3 -3
  309. package/dist/client/assets/quick-switcher-controller-m2gikuD-.js +1 -0
  310. package/dist/client/assets/radar-ABXABTNO-hhs6i-b1.js +1 -0
  311. package/dist/client/assets/radar-RG4KPBEZ-B-2eETsZ.js +1 -0
  312. package/dist/client/assets/railroad-74A4TZTK-B18ef5-Z.js +1 -0
  313. package/dist/client/assets/railroad-I3PHUGI6-v8Mk380c.js +1 -0
  314. package/dist/client/assets/railroad-abnf-HS5TGJTU-CTQaqjqj.js +1 -0
  315. package/dist/client/assets/railroad-abnf-LNEFI6M7-C3t6jbSY.js +1 -0
  316. package/dist/client/assets/railroad-ebnf-DWYD2UWJ-BvF5fO2B.js +1 -0
  317. package/dist/client/assets/railroad-ebnf-LZEXJU2U-BU_P5mpS.js +1 -0
  318. package/dist/client/assets/railroad-peg-JR7BVNR7-B90veE1n.js +1 -0
  319. package/dist/client/assets/railroad-peg-WCYAUIDC-CQCPL33M.js +1 -0
  320. package/dist/client/assets/{railroadDiagram-O6MQD6OU-BTt_rKjT.js → railroadDiagram-O6MQD6OU-DJRswcTS.js} +1 -1
  321. package/dist/client/assets/{railroadDiagram-XR7U4H2S-DbVoNgSz.js → railroadDiagram-Y72NRBL7-BNjzJfAu.js} +1 -1
  322. package/dist/client/assets/{requirementDiagram-BXWQKSXE-BkvazG7r.js → requirementDiagram-BXWQKSXE-DsljP03a.js} +1 -1
  323. package/dist/client/assets/{requirementDiagram-PLB6GJNP-BT0j9C40.js → requirementDiagram-EQYSW5RA-BKm3hJ3g.js} +4 -4
  324. package/dist/client/assets/{ro-RO-UZ5ICYYN-BOuntc_r.js → ro-RO-UZ5ICYYN-BgFoGyRb.js} +1 -1
  325. package/dist/client/assets/rolldown-runtime-COiEfhsA.js +1 -0
  326. package/dist/client/assets/{ru-RU-AN7JPREC-D-ow3SNR.js → ru-RU-AN7JPREC-C1Q9hhMw.js} +1 -1
  327. package/dist/client/assets/{sankeyDiagram-P5KCCOFB-C_IemB9h.js → sankeyDiagram-P5KCCOFB-7e3snR42.js} +1 -1
  328. package/dist/client/assets/{sankeyDiagram-IPEJSGJF-X1BCUIrf.js → sankeyDiagram-SY24JHO5-X6282wPp.js} +3 -3
  329. package/dist/client/assets/sequenceDiagram-BLEHNHQU-BytEbBel.js +169 -0
  330. package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-CxFBgLGd.js → sequenceDiagram-WJ2MYXX4-Fy1RHQht.js} +2 -2
  331. package/dist/client/assets/{si-LK-7CBLD6QQ-c91EepX0.js → si-LK-7CBLD6QQ-B0AJbYON.js} +1 -1
  332. package/dist/client/assets/sizeCapture-INFHLROL-3uHXrFqA.js +1 -0
  333. package/dist/client/assets/sizeCapture-INFHLROL-BMR1ovSU.js +1 -0
  334. package/dist/client/assets/{sk-SK-SWR6DKBI-D5vFMIL6.js → sk-SK-SWR6DKBI-BSd-r0Zi.js} +1 -1
  335. package/dist/client/assets/{sl-SI-QY5KCFGA-RZhwMpQL.js → sl-SI-QY5KCFGA-Dzrhm7-L.js} +1 -1
  336. package/dist/client/assets/src-C2pSFGeK.js +1 -0
  337. package/dist/client/assets/src-GGgGZJfE.js +2 -0
  338. package/dist/client/assets/{standalone-DbyFjvTU.js → standalone-YobQElH8.js} +3 -3
  339. package/dist/client/assets/{stateDiagram-D77RDMKH-BaSQ6Owj.js → stateDiagram-D77RDMKH-CW2cSnDj.js} +1 -1
  340. package/dist/client/assets/{stateDiagram-v2-GCMORJYK-CsVcfwVp.js → stateDiagram-v2-A6IESKWZ-DZU6pVog.js} +2 -2
  341. package/dist/client/assets/stateDiagram-v2-MP3YSRHH-iqEUZMAD.js +1 -0
  342. package/dist/client/assets/subset-shared.chunk-CL3Oizwd.js +1 -0
  343. package/dist/client/assets/{subset-worker.chunk-CoaGye2U.js → subset-worker.chunk-BdPjfgp2.js} +1 -1
  344. package/dist/client/assets/{sv-SE-O3OFCY3J-DnS86_7q.js → sv-SE-O3OFCY3J-6NoVnLTE.js} +1 -1
  345. package/dist/client/assets/swimlanes-42K2YHIH-8FngRMNT.js +1 -0
  346. package/dist/client/assets/swimlanes-B3ENRKFQ-D6BYdY9J.js +1 -0
  347. package/dist/client/assets/swimlanesDiagram-AYQRV4AK-hRw-7uL-.js +8 -0
  348. package/dist/client/assets/swimlanesDiagram-VR7AAH4N-DvDPHOsc.js +8 -0
  349. package/dist/client/assets/{ta-IN-V6NHHU6Z-D5jy7_AE.js → ta-IN-V6NHHU6Z-MAwuBBtS.js} +1 -1
  350. package/dist/client/assets/{th-TH-WLSZUSBX-DHehoYR2.js → th-TH-WLSZUSBX-D--o8vzw.js} +1 -1
  351. package/dist/client/assets/{tiki-AK6FwT8q.js → tiki-CvUEFusT.js} +1 -1
  352. package/dist/client/assets/{timeline-definition-24CTP7MA-zse-5Dbm.js → timeline-definition-24CTP7MA-C_Q-Br6X.js} +1 -1
  353. package/dist/client/assets/{timeline-definition-EJHVYXUP-BhqPlKkN.js → timeline-definition-JXYKGLGB-7HLQ94MK.js} +3 -3
  354. package/dist/client/assets/{tr-TR-GUFYG22B-ClVaf8h1.js → tr-TR-GUFYG22B-Bd-NNmz1.js} +1 -1
  355. package/dist/client/assets/treeView-D4JQ5SDB-BR1FV1TU.js +1 -0
  356. package/dist/client/assets/treeView-Q6P3EWNA-3N1U2hq1.js +1 -0
  357. package/dist/client/assets/treemap-SAJKECNS-yO7fe4dH.js +1 -0
  358. package/dist/client/assets/treemap-WGGIJYW6-BFO1obBW.js +1 -0
  359. package/dist/client/assets/{uk-UA-K6SV5NFQ-BLTTtyNB.js → uk-UA-K6SV5NFQ-_OJVmMT9.js} +1 -1
  360. package/dist/client/assets/usecaseDiagram-WPOLBNNX-uIlXI205.js +328 -0
  361. package/dist/client/assets/{uz-UZ-TVKTZO2G-Bm02Eg3D.js → uz-UZ-TVKTZO2G-BPXzC1bJ.js} +1 -1
  362. package/dist/client/assets/vault-api-client-DORNT49K.js +25 -0
  363. package/dist/client/assets/{vault-paths-BT-6nztu.js → vault-paths-R2qcfmE0.js} +1 -1
  364. package/dist/client/assets/{venn.esm-C5rDfA9t.js → venn.esm-BxwF8YNp.js} +1 -1
  365. package/dist/client/assets/{vennDiagram-4TSXK5OY-DgHr6cJD.js → vennDiagram-4TSXK5OY-Cl6f16-U.js} +1 -1
  366. package/dist/client/assets/{vennDiagram-UO4OBE2U-BRwLn2Q1.js → vennDiagram-Q3Y3IDCW-DZFF_ntk.js} +3 -3
  367. package/dist/client/assets/{vi-VN-7FKFXJNO-CL3WPhmG.js → vi-VN-7FKFXJNO-CjP0avHF.js} +1 -1
  368. package/dist/client/assets/wardley-7MLQ67FV-CCVlnR9Q.js +1 -0
  369. package/dist/client/assets/wardley-WFR3VGLG-BuSMKsul.js +1 -0
  370. package/dist/client/assets/{wardleyDiagram-VNRHLVJA-B_tMcVFG.js → wardleyDiagram-IVAIDKWA-bwMSFCgK.js} +4 -4
  371. package/dist/client/assets/{wardleyDiagram-VM6X3IG4-9A60XZis.js → wardleyDiagram-VM6X3IG4-BbU7rAxb.js} +1 -1
  372. package/dist/client/assets/{wiki-link-resolver-Dch88erO.js → wiki-link-resolver-BCdGUpdu.js} +1 -1
  373. package/dist/client/assets/{worker-engine-BCCrxWYm-CX0qJ_cG.js → worker-engine-BCCrxWYm-BU5lrbSm.js} +1 -1
  374. package/dist/client/assets/workspace-sync-client-B7dmdJGR.js +1 -0
  375. package/dist/client/assets/xychartDiagram-4URNHDU4-AjWzA402.js +7 -0
  376. package/dist/client/assets/{xychartDiagram-S5SC5T6Z-D00iy-wB.js → xychartDiagram-S5SC5T6Z-C5L6jReS.js} +1 -1
  377. package/dist/client/assets/{yaml-BcZaqAz8.js → yaml-Breo7DWT.js} +4 -4
  378. package/dist/client/assets/yjs-ZDLwhBUu.js +4 -0
  379. package/dist/client/assets/yjs-provider-reset-guard-D5pm5yx8.js +1 -0
  380. package/dist/client/assets/{zh-CN-AOKVLNNK-DGidDH2b.js → zh-CN-AOKVLNNK-CU0vKHKs.js} +1 -1
  381. package/dist/client/assets/{zh-HK-CDKPF5DC-CRcNR3rk.js → zh-HK-CDKPF5DC-BBhn88ei.js} +1 -1
  382. package/dist/client/assets/{zh-TW-ZVGYESGW-C7Qji1y6.js → zh-TW-ZVGYESGW-od6h3pTc.js} +1 -1
  383. package/dist/client/canvas-editor.html +16 -0
  384. package/dist/client/drawio-editor.html +7 -6
  385. package/dist/client/excalidraw-editor.html +43 -42
  386. package/dist/client/export-document.html +4 -3
  387. package/dist/client/index.html +2 -2
  388. package/package.json +37 -39
  389. package/scripts/local-compose.mjs +101 -0
  390. package/src/client/app/canvas-editor.html +13 -0
  391. package/src/client/application/app-shell/git-feature.js +3 -2
  392. package/src/client/application/app-shell/ui-feature-identity.js +1 -0
  393. package/src/client/application/app-shell/ui-feature-shell.js +2 -0
  394. package/src/client/application/app-shell/ui-feature-tab-activity.js +4 -0
  395. package/src/client/application/app-shell/workspace-feature.js +8 -34
  396. package/src/client/application/diagram-chrome.js +8 -11
  397. package/src/client/application/diagram-preview-export.js +2 -1
  398. package/src/client/application/diagram-preview-hydrator.js +5 -5
  399. package/src/client/application/mermaid-preview-hydrator.js +5 -3
  400. package/src/client/application/plantuml-preview-hydrator.js +6 -0
  401. package/src/client/application/preview-render-compiler.js +34 -98
  402. package/src/client/application/preview-render-executor.js +3 -0
  403. package/src/client/application/preview-render-worker.js +2 -0
  404. package/src/client/application/preview-renderer.js +9 -5
  405. package/src/client/application/workspace-coordinator.js +18 -10
  406. package/src/client/application/workspace-preview-controller.js +105 -158
  407. package/src/client/application/workspace-route-controller.js +29 -54
  408. package/src/client/bootstrap/canvas-markdown-preview.js +87 -0
  409. package/src/client/bootstrap/collabmd-app-shell.js +28 -13
  410. package/src/client/canvas-editor.js +143 -0
  411. package/src/client/domain/canvas-view.js +50 -0
  412. package/src/client/domain/excalidraw-scene.js +17 -60
  413. package/src/client/domain/highlight-runtime.js +0 -4
  414. package/src/client/domain/markdown-formatting.js +12 -94
  415. package/src/client/domain/markdown-headings.js +98 -0
  416. package/src/client/domain/mermaid-source.js +44 -0
  417. package/src/client/domain/wiki-link-completions.js +42 -10
  418. package/src/client/export/export-pipeline.js +7 -6
  419. package/src/client/infrastructure/browser-preferences-port.js +27 -33
  420. package/src/client/infrastructure/canvas-room-client.js +210 -0
  421. package/src/client/infrastructure/canvas-text-editor.js +36 -0
  422. package/src/client/infrastructure/comment-thread-store.js +19 -77
  423. package/src/client/infrastructure/editor-view-adapter.js +0 -30
  424. package/src/client/infrastructure/excalidraw-room-client.js +22 -10
  425. package/src/client/infrastructure/hosted-api-client.js +4 -2
  426. package/src/client/infrastructure/vault-api-client.js +4 -4
  427. package/src/client/infrastructure/webmcp-tool-registry.js +5 -8
  428. package/src/client/presentation/canvas-editor-view.js +1028 -0
  429. package/src/client/presentation/canvas-embed-controller.js +116 -0
  430. package/src/client/presentation/canvas-picker.js +111 -0
  431. package/src/client/presentation/drawio-embed-controller.js +1 -3
  432. package/src/client/presentation/excalidraw-embed-controller.js +10 -3
  433. package/src/client/presentation/file-action-controller.js +37 -0
  434. package/src/client/presentation/file-explorer-controller.js +1 -2
  435. package/src/client/presentation/file-explorer-view.js +7 -1
  436. package/src/client/presentation/file-icon-svg.js +1 -1
  437. package/src/client/presentation/file-tree-state.js +4 -1
  438. package/src/client/presentation/git-diff-view-controller.js +3 -3
  439. package/src/client/presentation/image-lightbox-controller.js +1 -5
  440. package/src/client/presentation/team-settings-controller.js +44 -10
  441. package/src/client/styles/components/actions.css +4 -16
  442. package/src/client/styles/components/surfaces.css +0 -7
  443. package/src/client/styles/features/comment-card.css +1 -2
  444. package/src/client/styles/features/comment-markdown.css +0 -18
  445. package/src/client/styles/features/diagram-preview.css +0 -18
  446. package/src/client/styles/features/git-branch.css +0 -4
  447. package/src/client/styles/foundation/themes.css +6 -0
  448. package/src/client/styles/foundation/utilities.css +1 -2
  449. package/src/client/styles/layout/editor-page.css +0 -13
  450. package/src/client/styles/layout/responsive.css +2 -7
  451. package/src/client/styles/layout/shell.css +13 -1
  452. package/src/client/styles/layout/view-modes.css +1 -0
  453. package/src/client/styles/surfaces/canvas-editor.css +239 -0
  454. package/src/domain/canvas-room-codec.js +359 -0
  455. package/src/domain/collabmd-content-capabilities.js +10 -1
  456. package/src/domain/comment-threads.js +49 -5
  457. package/src/domain/excalidraw-room-codec.js +34 -83
  458. package/src/domain/excalidraw-scene.js +48 -0
  459. package/src/domain/file-kind.js +13 -1
  460. package/src/server/application/workspace-reconciliation.js +0 -14
  461. package/src/server/domain/backlink-index.js +1 -36
  462. package/src/server/domain/bases/base-index-snapshot-store.js +41 -24
  463. package/src/server/domain/bases/base-query-service.js +1 -47
  464. package/src/server/domain/collaboration/collaboration-room.js +214 -49
  465. package/src/server/domain/collaboration/room-registry.js +7 -7
  466. package/src/server/domain/hosted-workspace.js +29 -2
  467. package/src/server/domain/plantuml-encoder.js +7 -43
  468. package/src/server/infrastructure/git/diff-service.js +1 -5
  469. package/src/server/infrastructure/git/history-service.js +18 -2
  470. package/src/server/infrastructure/git/untracked-files.js +1 -1
  471. package/src/server/infrastructure/http/create-git-api-command-handler.js +60 -149
  472. package/src/server/infrastructure/http/create-hosted-api-handler.js +5 -2
  473. package/src/server/infrastructure/http/create-vault-api-query-handler.js +2 -2
  474. package/src/server/infrastructure/http/http-response.js +2 -36
  475. package/src/server/infrastructure/http/request-body.js +14 -49
  476. package/src/server/infrastructure/persistence/hosted-metadata-store.js +12 -3
  477. package/src/server/infrastructure/persistence/path-utils.js +8 -2
  478. package/src/server/infrastructure/persistence/sidecar-store.js +5 -1
  479. package/src/server/infrastructure/persistence/vault-file-store.js +26 -60
  480. package/src/server/{infrastructure/git → shared}/image-mime.js +2 -2
  481. package/dist/client/assets/CodeMirrorEditor-UCMRAMCV-kJfwukbn.js +0 -1
  482. package/dist/client/assets/_basePickBy-QJXUw_pr.js +0 -1
  483. package/dist/client/assets/_baseUniq-DR4vVjyC.js +0 -1
  484. package/dist/client/assets/architecture-7GRP2DOG-BBwRXFv3.js +0 -1
  485. package/dist/client/assets/architecture-7GRP2DOG-DJVtYNt-.js +0 -1
  486. package/dist/client/assets/babel-Bi_28hhi.js +0 -16
  487. package/dist/client/assets/browser-utils-S4QYY31r.js +0 -1
  488. package/dist/client/assets/channel-CgcHBnmr.js +0 -1
  489. package/dist/client/assets/chunk-2E4U76K2-CIQUuV9n.js +0 -1
  490. package/dist/client/assets/chunk-2ZTRR5NV-CnDP55cn.js +0 -2
  491. package/dist/client/assets/chunk-2ZTRR5NV-DcPRfelM.js +0 -2
  492. package/dist/client/assets/chunk-3FUC2YCW-8tZlhTGX.js +0 -1
  493. package/dist/client/assets/chunk-6AEJRKK7-DTVZj5bY.js +0 -1
  494. package/dist/client/assets/chunk-747NJXEK-BjqqAsS9.js +0 -2
  495. package/dist/client/assets/chunk-747NJXEK-Cur1aosP.js +0 -2
  496. package/dist/client/assets/chunk-7INBJB4K-CDmiHbaX.js +0 -62
  497. package/dist/client/assets/chunk-7M6MHVWA-BDakkknV.js +0 -213
  498. package/dist/client/assets/chunk-FOHPRMQF-DzxwRta7.js +0 -161
  499. package/dist/client/assets/chunk-ISPTBLVO-BMsDq9Ha.js +0 -12
  500. package/dist/client/assets/chunk-O7XYJQB3-D0_ZY2za.js +0 -126
  501. package/dist/client/assets/chunk-OUJLGHUK-75UXlPjl.js +0 -2
  502. package/dist/client/assets/chunk-OUJLGHUK-DA95-S9B.js +0 -2
  503. package/dist/client/assets/chunk-T5WUORNS-DD7KlyY6.js +0 -40
  504. package/dist/client/assets/chunk-UA2S7LBM-DicYDjDM.js +0 -1
  505. package/dist/client/assets/chunk-Z7XXMR3K-P4Vaq8hD.js +0 -10
  506. package/dist/client/assets/chunk-ZIGJFQKS-b8OUHKK5.js +0 -2
  507. package/dist/client/assets/classDiagram-ZZMXUADV-QLbh_Nkf.js +0 -1
  508. package/dist/client/assets/classDiagram-v2-VYDZK3BY-QLbh_Nkf.js +0 -1
  509. package/dist/client/assets/comment-thread-store-CHvy8GF8.js +0 -1
  510. package/dist/client/assets/comment-threads-nJhK1yfc.js +0 -4
  511. package/dist/client/assets/crystal-Bsdphhtm.js +0 -1
  512. package/dist/client/assets/cynefin-OW5HDTMX-CF3N9j1_.js +0 -1
  513. package/dist/client/assets/cynefin-OW5HDTMX-e-Quc9Yl.js +0 -1
  514. package/dist/client/assets/cytoscape-cose-bilkent-NdTYBUiT.js +0 -1
  515. package/dist/client/assets/cytoscape-fcose-DE9_QRG_.js +0 -1
  516. package/dist/client/assets/cytoscape.esm-EK2DW5Qr.js +0 -321
  517. package/dist/client/assets/dagre-6A5THRUB-DewyAGK6.js +0 -4
  518. package/dist/client/assets/dagre-D7FiCLLP.js +0 -1
  519. package/dist/client/assets/dagre-GXQ25YYZ-Vtyx08Qh.js +0 -4
  520. package/dist/client/assets/deferred-collab-D4cxEdad.css +0 -1
  521. package/dist/client/assets/deferred-git-BHKtkFYi.css +0 -1
  522. package/dist/client/assets/deferred-preview-BAXYgf4T.css +0 -1
  523. package/dist/client/assets/diagram-22UHCM2B-DbZirFfl.js +0 -200
  524. package/dist/client/assets/diagram-ATOU4E4O-B5uX-jVO.js +0 -3
  525. package/dist/client/assets/dist-9Eodxf4G.js +0 -1
  526. package/dist/client/assets/dist-B2ZNQifU.js +0 -1
  527. package/dist/client/assets/dist-B6QCMNze.js +0 -1
  528. package/dist/client/assets/dist-BIAv19LO.js +0 -1
  529. package/dist/client/assets/dist-BKYp1-dl.js +0 -13
  530. package/dist/client/assets/dist-BSAZ-Hek.js +0 -39
  531. package/dist/client/assets/dist-BSTbcioM.js +0 -11
  532. package/dist/client/assets/dist-BT9gJXCb.js +0 -1
  533. package/dist/client/assets/dist-BTVg1m-V.js +0 -1
  534. package/dist/client/assets/dist-Bi9ZIYXq.js +0 -9
  535. package/dist/client/assets/dist-BpAUe9sL.js +0 -1
  536. package/dist/client/assets/dist-Bqo-XRVG.js +0 -1
  537. package/dist/client/assets/dist-BrKhPlc9.js +0 -1
  538. package/dist/client/assets/dist-CBsvKPcT.js +0 -1
  539. package/dist/client/assets/dist-CJBYh9Wy.js +0 -23
  540. package/dist/client/assets/dist-CRwfjtwz.js +0 -2
  541. package/dist/client/assets/dist-CX7Kc61C.js +0 -1
  542. package/dist/client/assets/dist-CYfPeupF.js +0 -1
  543. package/dist/client/assets/dist-CoXN2D3R.js +0 -1
  544. package/dist/client/assets/dist-CucpLxUY.js +0 -1
  545. package/dist/client/assets/dist-DHBMeCxC.js +0 -6
  546. package/dist/client/assets/dist-DLEg9d4u.js +0 -1
  547. package/dist/client/assets/dist-DOHWxIty.js +0 -1
  548. package/dist/client/assets/dist-DYFBD-wW.js +0 -1
  549. package/dist/client/assets/dist-DeCV9FU4.js +0 -1
  550. package/dist/client/assets/dist-DugWGOjQ.js +0 -1
  551. package/dist/client/assets/dist-KrdpB_GB.js +0 -1
  552. package/dist/client/assets/dist-NNrRnB-f.js +0 -1
  553. package/dist/client/assets/dist-PUxZqhFe.js +0 -1
  554. package/dist/client/assets/dist-cYiJMWHJ.js +0 -1
  555. package/dist/client/assets/dist-iKC7go4m.js +0 -1
  556. package/dist/client/assets/dist-lw5TGjI6.js +0 -1
  557. package/dist/client/assets/document-formatter-6I63vstk.js +0 -1
  558. package/dist/client/assets/drawioEditor-DNTjsjzJ.js +0 -9
  559. package/dist/client/assets/editor-session-D8GGkJak.js +0 -14
  560. package/dist/client/assets/elk-276RUBZZ-B8LB3Pac.js +0 -27
  561. package/dist/client/assets/embedded-editor-base-elU0Avik.css +0 -1
  562. package/dist/client/assets/embedpdf-TkbBYowM.js +0 -1
  563. package/dist/client/assets/en-JTHJ2SIP-DBz9bRq4.js +0 -1
  564. package/dist/client/assets/eventmodeling-NTZA5JFV-CDy1bN6j.js +0 -1
  565. package/dist/client/assets/eventmodeling-NTZA5JFV-Dxtv5D-P.js +0 -1
  566. package/dist/client/assets/excalidraw-element-link-BRZOTIeI.js +0 -7
  567. package/dist/client/assets/excalidraw-scene-6uROebca.js +0 -1
  568. package/dist/client/assets/excalidrawEditor-BCTFp_CV.css +0 -1
  569. package/dist/client/assets/excalidrawEditor-D0orhhku.js +0 -9
  570. package/dist/client/assets/export-page-CVJNMERq.js +0 -46
  571. package/dist/client/assets/exportDocument-Ba-n1X4U.css +0 -1
  572. package/dist/client/assets/exportDocument-DSshnmnZ.js +0 -2
  573. package/dist/client/assets/file-kind-BwMIcZbi.js +0 -1
  574. package/dist/client/assets/file-search-BA8o_gs0.js +0 -1
  575. package/dist/client/assets/flowDiagram-HODETNUW-Bq4470NR.js +0 -1
  576. package/dist/client/assets/flowDiagram-KWPJA3E3-DQG9qGiU.js +0 -1
  577. package/dist/client/assets/ganttDiagram-FUAMR5RP-BQpsI7gQ.js +0 -292
  578. package/dist/client/assets/gitGraph-4MIJSDKK-B-rpDYbz.js +0 -1
  579. package/dist/client/assets/gitGraph-4MIJSDKK-ZaBIE4Lb.js +0 -1
  580. package/dist/client/assets/gitGraphDiagram-X574FWY7-wbs_2m9f.js +0 -106
  581. package/dist/client/assets/graphlib-C9Tl7QrK.js +0 -1
  582. package/dist/client/assets/groovy-CUpZ7dEl.js +0 -1
  583. package/dist/client/assets/image-I42VHMUI-B2-c_ifV.js +0 -1
  584. package/dist/client/assets/image-blob-reduce.esm-BFq-Mx5V.js +0 -2
  585. package/dist/client/assets/index-BCgNcVNs.css +0 -1
  586. package/dist/client/assets/index-BpmR5Qqk.js +0 -1140
  587. package/dist/client/assets/info-A6RAGUB7-BcGxhjED.js +0 -1
  588. package/dist/client/assets/info-A6RAGUB7-BlutK7BT.js +0 -1
  589. package/dist/client/assets/javascript-B9I2pbsP.js +0 -1
  590. package/dist/client/assets/javascript-DctB8BJo.js +0 -1
  591. package/dist/client/assets/katex-ZlcWpGUi.js +0 -257
  592. package/dist/client/assets/linear-DExL6ILt.js +0 -1
  593. package/dist/client/assets/lobby-presence-KJrYhMdN.js +0 -1
  594. package/dist/client/assets/markdown-it-DpvIRaVq.js +0 -13
  595. package/dist/client/assets/mermaid.core-BeOUPE3Q.js +0 -10
  596. package/dist/client/assets/packet-AYTQ26CC-CqpSjTWl.js +0 -1
  597. package/dist/client/assets/packet-AYTQ26CC-DvbY8dI6.js +0 -1
  598. package/dist/client/assets/percentages-LWOC67ZH-VhvllE7L.js +0 -1
  599. package/dist/client/assets/pica-BPrp-GK1.js +0 -2
  600. package/dist/client/assets/pie-WAS4IAKB-Bg2eCNl5.js +0 -1
  601. package/dist/client/assets/pie-WAS4IAKB-DWSm9SSD.js +0 -1
  602. package/dist/client/assets/preload-helper-BAlEavIC.js +0 -1
  603. package/dist/client/assets/preview-diagram-utils-txBCoW8d.js +0 -1
  604. package/dist/client/assets/preview-render-compiler-BmWQStaL.js +0 -43
  605. package/dist/client/assets/preview-render-worker-BA4VK_GY.js +0 -575
  606. package/dist/client/assets/prod-CA0ie9yD.js +0 -145
  607. package/dist/client/assets/prod-yKJZ3E4s.js +0 -1
  608. package/dist/client/assets/pug-CqqUmdG7.js +0 -1
  609. package/dist/client/assets/purify.es-go7v6Te-.js +0 -3
  610. package/dist/client/assets/quick-switcher-controller-B5vT9Vj5.js +0 -1
  611. package/dist/client/assets/radar-RG4KPBEZ-BfNQUEQy.js +0 -1
  612. package/dist/client/assets/radar-RG4KPBEZ-DxExotg6.js +0 -1
  613. package/dist/client/assets/railroad-74A4TZTK-BaQ6U6eJ.js +0 -1
  614. package/dist/client/assets/railroad-74A4TZTK-FfHmeIQk.js +0 -1
  615. package/dist/client/assets/railroad-abnf-HS5TGJTU-BJ3KZw7J.js +0 -1
  616. package/dist/client/assets/railroad-abnf-HS5TGJTU-CLkdDRsJ.js +0 -1
  617. package/dist/client/assets/railroad-ebnf-LZEXJU2U-B162zvcG.js +0 -1
  618. package/dist/client/assets/railroad-ebnf-LZEXJU2U-DA0sEq7w.js +0 -1
  619. package/dist/client/assets/railroad-peg-WCYAUIDC-CGs5GeJ5.js +0 -1
  620. package/dist/client/assets/railroad-peg-WCYAUIDC-DCmlICzO.js +0 -1
  621. package/dist/client/assets/rolldown-runtime-Dd_uD5pT.js +0 -1
  622. package/dist/client/assets/sequenceDiagram-PO4LG4MO-B-2QfXhV.js +0 -169
  623. package/dist/client/assets/sizeCapture-INFHLROL-B0uUizjq.js +0 -1
  624. package/dist/client/assets/sizeCapture-INFHLROL-DrzwYt5z.js +0 -1
  625. package/dist/client/assets/src-XiVvaevx.js +0 -1
  626. package/dist/client/assets/stateDiagram-v2-MP3YSRHH-CLlwrdvU.js +0 -1
  627. package/dist/client/assets/subset-shared.chunk-BXlA-9CO.js +0 -1
  628. package/dist/client/assets/swimlanes-2SLR337P-CnYTVqRX.js +0 -1
  629. package/dist/client/assets/swimlanes-42K2YHIH-CALFEmiS.js +0 -1
  630. package/dist/client/assets/swimlanesDiagram-TC7HE7FX-Bh4tmz27.js +0 -8
  631. package/dist/client/assets/swimlanesDiagram-VR7AAH4N-xhehUG9e.js +0 -8
  632. package/dist/client/assets/treeView-Q6P3EWNA-BvHOzbu9.js +0 -1
  633. package/dist/client/assets/treeView-Q6P3EWNA-Cccy0ngL.js +0 -1
  634. package/dist/client/assets/treemap-WGGIJYW6-oety7paS.js +0 -1
  635. package/dist/client/assets/treemap-WGGIJYW6-sMRCjCtX.js +0 -1
  636. package/dist/client/assets/usecaseDiagram-POWQR4AR-DR2LHQYs.js +0 -328
  637. package/dist/client/assets/vault-api-client-NS_EVHJ3.js +0 -7
  638. package/dist/client/assets/wardley-WFR3VGLG-BdwDpX_I.js +0 -1
  639. package/dist/client/assets/wardley-WFR3VGLG-Y7xty_3m.js +0 -1
  640. package/dist/client/assets/workspace-sync-client-BrMtf6zN.js +0 -1
  641. package/dist/client/assets/xychartDiagram-PMCCYNJV-fRpZ1MA5.js +0 -7
  642. package/dist/client/assets/yjs-B41tM6Sz.js +0 -4
  643. package/dist/client/assets/yjs-provider-reset-guard-DpntzUDR.js +0 -1
  644. package/scripts/local-plantuml-compose.mjs +0 -92
  645. package/scripts/local-structurizr-compose.mjs +0 -101
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  getVaultFileKind,
3
3
  isBaseFilePath,
4
+ isCanvasFilePath,
4
5
  isDrawioFilePath,
5
6
  isExcalidrawFilePath,
6
7
  isImageAttachmentFilePath,
@@ -13,6 +14,7 @@ import {
13
14
 
14
15
  export const workspaceFeature = {
15
16
  isBaseFile: isBaseFilePath,
17
+ isCanvasFile: isCanvasFilePath,
16
18
  isDrawioFile: isDrawioFilePath,
17
19
  isExcalidrawFile: isExcalidrawFilePath,
18
20
  isImageFile: isImageAttachmentFilePath,
@@ -75,6 +77,7 @@ export const workspaceFeature = {
75
77
  },
76
78
 
77
79
  handleLayoutViewRequest(view) {
80
+ if (this.isCanvasFile?.(this.currentFilePath)) return view === 'preview';
78
81
  if (!this.currentFilePath || !this.isDrawioFile(this.currentFilePath)) {
79
82
  return true;
80
83
  }
@@ -129,50 +132,21 @@ export const workspaceFeature = {
129
132
  );
130
133
  },
131
134
 
132
- schedulePreviewLayoutSync({ delayMs = 120 } = {}) {
133
- this.workspacePreviewController.schedulePreviewLayoutSync({
134
- delayMs,
135
- hydrationPaused: this._previewHydrationPaused,
136
- previewLayoutSyncTimer: this._previewLayoutSyncTimer,
137
- setPendingPreviewLayoutSync: (value) => {
138
- this._pendingPreviewLayoutSync = value;
139
- },
140
- setPreviewLayoutSyncTimer: (value) => {
141
- this._previewLayoutSyncTimer = value;
142
- },
143
- });
135
+ schedulePreviewLayoutSync(options) {
136
+ this.workspacePreviewController.schedulePreviewLayoutSync(options);
144
137
  },
145
138
 
146
139
  handleEditorScrollActivityChange(isActive) {
147
- this.workspacePreviewController.handleEditorScrollActivityChange({
148
- isActive,
149
- pendingPreviewLayoutSync: this._pendingPreviewLayoutSync,
150
- previewLayoutSyncTimer: this._previewLayoutSyncTimer,
151
- setHydrationPaused: (value) => {
152
- this._previewHydrationPaused = value;
153
- },
154
- setPendingPreviewLayoutSync: (value) => {
155
- this._pendingPreviewLayoutSync = value;
156
- },
157
- setPreviewLayoutSyncTimer: (value) => {
158
- this._previewLayoutSyncTimer = value;
159
- },
160
- });
140
+ this.workspacePreviewController.handleEditorScrollActivityChange(isActive);
161
141
  },
162
142
 
163
143
  showEmptyState() {
164
- clearTimeout(this._previewLayoutSyncTimer);
165
- this._previewLayoutSyncTimer = null;
166
- this._pendingPreviewLayoutSync = false;
167
- this._previewHydrationPaused = false;
144
+ this.workspacePreviewController.resetPreviewLayoutSync();
168
145
  this.workspaceRouteController.showEmptyState();
169
146
  },
170
147
 
171
148
  showDiffState() {
172
- clearTimeout(this._previewLayoutSyncTimer);
173
- this._previewLayoutSyncTimer = null;
174
- this._pendingPreviewLayoutSync = false;
175
- this._previewHydrationPaused = false;
149
+ this.workspacePreviewController.resetPreviewLayoutSync();
176
150
  this.workspaceRouteController.showDiffState();
177
151
  },
178
152
 
@@ -90,13 +90,14 @@ export class DiagramChrome {
90
90
  this.maximizedRoots.forEach((root) => root.remove());
91
91
  this.maximizedRoots.clear();
92
92
  this.activeMaximizedShell = null;
93
+ this.syncBodyMaximizedClasses();
93
94
  }
94
95
 
95
96
  destroyAllShells() {
96
97
  this.resizeObservers.forEach((observer) => observer.disconnect());
97
98
  this.resizeObservers.clear();
98
99
  this.activeMaximizedShell = null;
99
- this.document.body.classList.remove('mermaid-maximized-open', 'plantuml-maximized-open');
100
+ this.syncBodyMaximizedClasses();
100
101
  }
101
102
 
102
103
  destroyShell(shell) {
@@ -147,7 +148,7 @@ export class DiagramChrome {
147
148
  root.hidden = true;
148
149
  }
149
150
  });
150
- this.document.body.classList.remove('mermaid-maximized-open', 'plantuml-maximized-open');
151
+ this.syncBodyMaximizedClasses();
151
152
  }
152
153
 
153
154
  syncActiveShell() {
@@ -189,13 +190,10 @@ export class DiagramChrome {
189
190
  return existing;
190
191
  }
191
192
 
192
- let root = this.document.body.querySelector(`[data-${kind}-maximized-root="true"]`);
193
- if (!root) {
194
- root = this.document.createElement('div');
195
- root.dataset[config.maximizedRootDatasetKey] = 'true';
196
- root.className = config.maximizedRootClassName;
197
- this.document.body.appendChild(root);
198
- }
193
+ const root = this.document.createElement('div');
194
+ root.dataset[config.maximizedRootDatasetKey] = 'true';
195
+ root.className = config.maximizedRootClassName;
196
+ this.document.body.appendChild(root);
199
197
 
200
198
  this.maximizedRoots.set(kind, root);
201
199
  return root;
@@ -235,11 +233,10 @@ export class DiagramChrome {
235
233
  }
236
234
 
237
235
  syncBodyMaximizedClasses() {
238
- const activeShell = this.syncActiveShell();
239
236
  for (const [kind, config] of Object.entries(DIAGRAM_CHROME_KIND_CONFIG)) {
240
237
  this.document.body.classList.toggle(
241
238
  config.bodyClassName,
242
- Boolean(activeShell?.classList?.contains(`${kind}-shell`)),
239
+ Boolean(this.document.querySelector?.(`.${kind}-shell.is-maximized`)),
243
240
  );
244
241
  }
245
242
  }
@@ -4,6 +4,7 @@ import {
4
4
  stripVaultFileExtension,
5
5
  } from '../../domain/file-kind.js';
6
6
  import { getVaultPathLeaf } from '../domain/vault-paths.js';
7
+ import { prepareMermaidRenderSource } from '../domain/mermaid-source.js';
7
8
  import {
8
9
  encodeSvgDataUrl,
9
10
  loadImage,
@@ -166,7 +167,7 @@ export function exportTrimmedSvgMarkupFromElement(svgElement, options = {}) {
166
167
  }
167
168
 
168
169
  function prepareMermaidExportSource(source) {
169
- let text = String(source ?? '').replace(MERMAID_INIT_DIRECTIVE_PATTERN, '');
170
+ let text = prepareMermaidRenderSource(String(source ?? '').replace(MERMAID_INIT_DIRECTIVE_PATTERN, ''));
170
171
 
171
172
  text = `%%{init: ${JSON.stringify(LIGHT_EXPORT_MERMAID_CONFIG)}}%%\n${text}`;
172
173
 
@@ -93,12 +93,12 @@ export class DiagramPreviewHydrator {
93
93
  return [];
94
94
  }
95
95
 
96
- const documentShells = previewElement.ownerDocument?.querySelectorAll?.(this.shellSelector);
97
- if (documentShells) {
98
- return Array.from(documentShells);
96
+ const shells = Array.from(previewElement.querySelectorAll(this.shellSelector));
97
+ const maximizedShell = this.renderer.diagramChrome?.syncActiveShell?.();
98
+ if (maximizedShell?.classList.contains(this.shellClassName) && !shells.includes(maximizedShell)) {
99
+ shells.push(maximizedShell);
99
100
  }
100
-
101
- return Array.from(previewElement.querySelectorAll(this.shellSelector));
101
+ return shells;
102
102
  }
103
103
 
104
104
  getPreservationIdentity(shell) {
@@ -3,6 +3,7 @@ import {
3
3
  renderMermaidExportSvgMarkup,
4
4
  } from './diagram-preview-export.js';
5
5
  import { DiagramPreviewHydrator } from './diagram-preview-hydrator.js';
6
+ import { prepareMermaidRenderSource } from '../domain/mermaid-source.js';
6
7
  import {
7
8
  createMermaidPlaceholderCardWithMessage,
8
9
  createDiagramErrorPlaceholderCard,
@@ -217,7 +218,6 @@ export class MermaidPreviewHydrator extends DiagramPreviewHydrator {
217
218
 
218
219
  const diagram = document.createElement('div');
219
220
  diagram.className = 'mermaid mermaid-render-node';
220
- diagram.id = shell.dataset.mermaidKey || `mermaid-${Date.now()}`;
221
221
  const sourceLine = shell.getAttribute('data-source-line');
222
222
  const sourceLineEnd = shell.getAttribute('data-source-line-end');
223
223
  if (sourceLine) {
@@ -231,7 +231,7 @@ export class MermaidPreviewHydrator extends DiagramPreviewHydrator {
231
231
  const renderHost = this.createRenderHost();
232
232
  try {
233
233
  renderHost.appendChild(diagram);
234
- await mermaid.run({ nodes: [diagram] });
234
+ const { svg, bindFunctions } = await mermaid.render(`mermaid-${crypto.randomUUID()}`, source, diagram);
235
235
  if (
236
236
  !this.isHydrationCurrent(renderVersion, shell, hydrationToken)
237
237
  || !diagram.isConnected
@@ -240,6 +240,8 @@ export class MermaidPreviewHydrator extends DiagramPreviewHydrator {
240
240
  return;
241
241
  }
242
242
 
243
+ diagram.innerHTML = svg;
244
+ bindFunctions?.(diagram);
243
245
  this.enhanceDiagram(shell, diagram, renderedSource, renderCacheKey);
244
246
  this.markShellHydrated(shell);
245
247
  } finally {
@@ -273,7 +275,7 @@ export class MermaidPreviewHydrator extends DiagramPreviewHydrator {
273
275
  }
274
276
 
275
277
  prepareSource(source) {
276
- let text = String(source ?? '');
278
+ let text = prepareMermaidRenderSource(source);
277
279
 
278
280
  if (!/%%\{[\s\S]*?\binit\s*:/m.test(text)) {
279
281
  const initConfig = this.getPreviewInitConfig(text);
@@ -12,6 +12,8 @@ import {
12
12
  sanitizeSvgMarkup,
13
13
  } from './preview-diagram-utils.js';
14
14
 
15
+ const SVG_CACHE_LIMIT = 30;
16
+
15
17
  export class PlantUmlPreviewHydrator extends DiagramPreviewHydrator {
16
18
  constructor(renderer, { loadFileSource = null, renderClient = null } = {}) {
17
19
  super(renderer, {
@@ -135,6 +137,10 @@ export class PlantUmlPreviewHydrator extends DiagramPreviewHydrator {
135
137
  const request = this.renderClient.renderSvg(source)
136
138
  .then((svgMarkup) => {
137
139
  const sanitized = sanitizeSvgMarkup(svgMarkup);
140
+ this.svgCache.delete(cacheKey);
141
+ while (this.svgCache.size >= SVG_CACHE_LIMIT) {
142
+ this.svgCache.delete(this.svgCache.keys().next().value);
143
+ }
138
144
  this.svgCache.set(cacheKey, sanitized);
139
145
  return sanitized;
140
146
  })
@@ -8,6 +8,7 @@ import {
8
8
  resolveWikiTargetWithIndex,
9
9
  } from '../../domain/wiki-link-resolver.js';
10
10
  import { classifyPublicVideoEmbed } from '../../domain/video-embed.js';
11
+ import { assignHeadingIds, findMarkdownSection } from '../domain/markdown-headings.js';
11
12
  import { highlightFence } from '../domain/highlight-runtime.js';
12
13
  import { escapeHtml } from '../domain/vault-utils.js';
13
14
  import { extractYamlFrontmatter } from '../../domain/yaml-frontmatter.js';
@@ -42,96 +43,6 @@ function escapePreviewText(content = '') {
42
43
  return escapeHtml(normalizePreviewTypography(content));
43
44
  }
44
45
 
45
- function createHeadingSlug(content = '') {
46
- return String(content ?? '')
47
- .trim()
48
- .toLowerCase()
49
- .replace(/[^a-z0-9]+/g, '-')
50
- .replace(/^-|-$/g, '')
51
- || 'section';
52
- }
53
-
54
- function createHeadingId(baseId = '', headingIdCounts = new Map()) {
55
- const normalizedBaseId = String(baseId ?? '').trim() || 'section';
56
- const occurrenceIndex = headingIdCounts.get(normalizedBaseId) ?? 0;
57
- headingIdCounts.set(normalizedBaseId, occurrenceIndex + 1);
58
- return occurrenceIndex === 0 ? normalizedBaseId : `${normalizedBaseId}-${occurrenceIndex}`;
59
- }
60
-
61
- function createContextualHeadingBaseId(headingInfo, groupedHeadingInfos = []) {
62
- if (!headingInfo?.slug) {
63
- return 'section';
64
- }
65
-
66
- if (groupedHeadingInfos.length <= 1) {
67
- return headingInfo.slug;
68
- }
69
-
70
- for (let depth = 1; depth <= headingInfo.parentSlugs.length; depth += 1) {
71
- const candidate = [
72
- ...headingInfo.parentSlugs.slice(-depth),
73
- headingInfo.slug,
74
- ].join('-');
75
-
76
- const isUniqueWithinGroup = groupedHeadingInfos.every((otherInfo) => {
77
- if (otherInfo === headingInfo) {
78
- return true;
79
- }
80
-
81
- const otherCandidate = [
82
- ...otherInfo.parentSlugs.slice(-depth),
83
- otherInfo.slug,
84
- ].join('-');
85
- return otherCandidate !== candidate;
86
- });
87
-
88
- if (isUniqueWithinGroup) {
89
- return candidate;
90
- }
91
- }
92
-
93
- return headingInfo.slug;
94
- }
95
-
96
- function assignHeadingIds(state) {
97
- const headingInfos = [];
98
- const parentSlugs = [];
99
-
100
- state.tokens.forEach((token, index) => {
101
- if (token.type !== 'heading_open' || token.attrGet('id')) {
102
- return;
103
- }
104
-
105
- const level = Number.parseInt(token.tag.slice(1), 10);
106
- if (!Number.isFinite(level) || level < 1) {
107
- return;
108
- }
109
-
110
- parentSlugs.length = Math.max(level - 1, 0);
111
- const inlineToken = state.tokens[index + 1];
112
- const slug = createHeadingSlug(inlineToken?.type === 'inline' ? inlineToken.content : '');
113
- headingInfos.push({
114
- parentSlugs: parentSlugs.filter(Boolean),
115
- slug,
116
- token,
117
- });
118
- parentSlugs[level - 1] = slug;
119
- });
120
-
121
- const headingsBySlug = new Map();
122
- headingInfos.forEach((headingInfo) => {
123
- const group = headingsBySlug.get(headingInfo.slug) ?? [];
124
- group.push(headingInfo);
125
- headingsBySlug.set(headingInfo.slug, group);
126
- });
127
-
128
- const headingIdCounts = new Map();
129
- headingInfos.forEach((headingInfo) => {
130
- const baseId = createContextualHeadingBaseId(headingInfo, headingsBySlug.get(headingInfo.slug) ?? []);
131
- headingInfo.token.attrSet('id', createHeadingId(baseId, headingIdCounts));
132
- });
133
- }
134
-
135
46
  function renderSafeInlineBreaks(content = '') {
136
47
  const parts = String(content).split(/<br\s*\/?>/i);
137
48
  if (parts.length === 1) {
@@ -276,7 +187,7 @@ function renderInlineWikiText(content, {
276
187
  baseEmbedCounts,
277
188
  drawioEmbedCounts,
278
189
  excalidrawEmbedCounts,
279
- wikiTargetIndex,
190
+ getWikiTargetIndex,
280
191
  mermaidEmbedCounts,
281
192
  plantUmlEmbedCounts,
282
193
  sourceFilePath = '',
@@ -349,7 +260,7 @@ function renderInlineWikiText(content, {
349
260
  } else {
350
261
  const target = match[4].trim();
351
262
  const display = (match[5] || match[4]).trim();
352
- const resolved = resolveWikiTargetWithIndex(target, wikiTargetIndex);
263
+ const resolved = resolveWikiTargetWithIndex(target, getWikiTargetIndex());
353
264
  const classes = resolved ? 'wiki-link' : 'wiki-link wiki-link-new';
354
265
  const title = resolved
355
266
  ? normalizePreviewTypography(display)
@@ -421,7 +332,8 @@ function createMarkdownRenderer(fileList = [], {
421
332
  const plantUmlCounts = new Map();
422
333
  const plantUmlEmbedCounts = new Map();
423
334
  const videoEmbedCounts = new Map();
424
- const wikiTargetIndex = createWikiTargetIndex(fileList);
335
+ let wikiTargetIndex;
336
+ const getWikiTargetIndex = () => (wikiTargetIndex ??= createWikiTargetIndex(fileList));
425
337
 
426
338
  const fallbackFence = markdown.renderer.rules.fence;
427
339
  const fallbackImage = markdown.renderer.rules.image;
@@ -505,7 +417,7 @@ function createMarkdownRenderer(fileList = [], {
505
417
  baseEmbedCounts: baseCounts,
506
418
  drawioEmbedCounts,
507
419
  excalidrawEmbedCounts,
508
- wikiTargetIndex,
420
+ getWikiTargetIndex,
509
421
  mermaidEmbedCounts,
510
422
  plantUmlEmbedCounts,
511
423
  sourceFilePath,
@@ -519,7 +431,7 @@ function createMarkdownRenderer(fileList = [], {
519
431
  baseEmbedCounts: baseCounts,
520
432
  drawioEmbedCounts,
521
433
  excalidrawEmbedCounts,
522
- wikiTargetIndex,
434
+ getWikiTargetIndex,
523
435
  mermaidEmbedCounts,
524
436
  plantUmlEmbedCounts,
525
437
  sourceFilePath,
@@ -532,7 +444,7 @@ function createMarkdownRenderer(fileList = [], {
532
444
  baseEmbedCounts: baseCounts,
533
445
  drawioEmbedCounts,
534
446
  excalidrawEmbedCounts,
535
- wikiTargetIndex,
447
+ getWikiTargetIndex,
536
448
  mermaidEmbedCounts,
537
449
  plantUmlEmbedCounts,
538
450
  sourceFilePath,
@@ -591,6 +503,7 @@ export function compilePreviewDocument({
591
503
  frontmatterInteractive = false,
592
504
  markdownText = '',
593
505
  sourceFilePath = '',
506
+ subpath = '',
594
507
  wikiLinkAutoCreate = true,
595
508
  } = {}) {
596
509
  const normalizedMarkdown = String(markdownText);
@@ -601,13 +514,36 @@ export function compilePreviewDocument({
601
514
  wikiLinkAutoCreate,
602
515
  });
603
516
  const renderedMarkdown = frontmatter ? frontmatter.bodyMarkdown : normalizedMarkdown;
604
- const frontmatterHtml = renderFrontmatterBlock(frontmatter, {
517
+ const env = {};
518
+ let tokens = renderer.parse(renderedMarkdown, env);
519
+ if (subpath) {
520
+ const section = subpath.startsWith('#') && findMarkdownSection(tokens, subpath.slice(1));
521
+ if (!section) {
522
+ return {
523
+ html: `<p>${subpath.startsWith('#^')
524
+ ? 'Block previews are not supported. Open the file to view it.'
525
+ : 'Heading not found in this file. Choose another heading or clear the field to show the whole file.'}</p>`,
526
+ stats: analyzeMarkdownComplexity(''),
527
+ };
528
+ }
529
+ // Keep enclosing blocks balanced, original heading IDs and full-document reference definitions.
530
+ const includedBlocks = [];
531
+ tokens = tokens.filter((token) => {
532
+ if (token.nesting === -1) return includedBlocks.pop();
533
+ const included = token.map
534
+ ? token.map[1] > section.startLine && (section.endLine === undefined || token.map[0] < section.endLine)
535
+ : includedBlocks.at(-1);
536
+ if (token.nesting === 1) includedBlocks.push(included);
537
+ return included;
538
+ });
539
+ }
540
+ const frontmatterHtml = subpath ? '' : renderFrontmatterBlock(frontmatter, {
605
541
  collapsed: frontmatterCollapsed,
606
542
  interactive: frontmatterInteractive,
607
543
  });
608
544
 
609
545
  return {
610
- html: `${frontmatterHtml}${renderer.render(renderedMarkdown)}`,
546
+ html: `${frontmatterHtml}${renderer.renderer.render(tokens, renderer.options, env)}`,
611
547
  stats: analyzeMarkdownComplexity(normalizedMarkdown),
612
548
  };
613
549
  }
@@ -80,6 +80,7 @@ export class PreviewRenderExecutor {
80
80
  async compile(markdownText, renderVersion, {
81
81
  frontmatterCollapsed = false,
82
82
  frontmatterInteractive = false,
83
+ subpath = '',
83
84
  } = {}) {
84
85
  const worker = this.ensureWorker();
85
86
 
@@ -102,6 +103,7 @@ export class PreviewRenderExecutor {
102
103
  markdownText,
103
104
  renderVersion,
104
105
  sourceFilePath: this.getSourceFilePath?.() ?? '',
106
+ subpath,
105
107
  wikiLinkAutoCreate: this.getWikiLinkAutoCreate?.() ?? true,
106
108
  });
107
109
  });
@@ -115,6 +117,7 @@ export class PreviewRenderExecutor {
115
117
  frontmatterInteractive,
116
118
  markdownText,
117
119
  sourceFilePath: this.getSourceFilePath?.() ?? '',
120
+ subpath,
118
121
  wikiLinkAutoCreate: this.getWikiLinkAutoCreate?.() ?? true,
119
122
  });
120
123
  }
@@ -9,6 +9,7 @@ self.onmessage = (event) => {
9
9
  markdownText,
10
10
  renderVersion,
11
11
  sourceFilePath,
12
+ subpath,
12
13
  wikiLinkAutoCreate,
13
14
  } = event.data ?? {};
14
15
 
@@ -20,6 +21,7 @@ self.onmessage = (event) => {
20
21
  frontmatterInteractive,
21
22
  markdownText,
22
23
  sourceFilePath,
24
+ subpath,
23
25
  wikiLinkAutoCreate,
24
26
  });
25
27
  self.postMessage({
@@ -11,6 +11,7 @@ export class PreviewRenderer {
11
11
  getFileList,
12
12
  getPreviewVisible = null,
13
13
  getSourceFilePath,
14
+ getSubpath = null,
14
15
  getTheme = null,
15
16
  getWikiLinkAutoCreate = null,
16
17
  loadFileSource = null,
@@ -28,6 +29,7 @@ export class PreviewRenderer {
28
29
  this.getFileList = getFileList;
29
30
  this.getPreviewVisible = getPreviewVisible;
30
31
  this.getSourceFilePath = getSourceFilePath;
32
+ this.getSubpath = getSubpath;
31
33
  this.getTheme = getTheme;
32
34
  this.getWikiLinkAutoCreate = getWikiLinkAutoCreate;
33
35
  this.loadFileSource = loadFileSource;
@@ -234,7 +236,9 @@ export class PreviewRenderer {
234
236
  this.renderScheduler.queue({
235
237
  markdownText,
236
238
  onRenderRequested: (queuedText, renderVersion) => {
237
- void this._deferredPreviewStylesPromise.then(() => this.render(queuedText, renderVersion));
239
+ void this._deferredPreviewStylesPromise.then(() => {
240
+ if (renderVersion === this.pendingRenderVersion) return this.render(queuedText, renderVersion);
241
+ });
238
242
  },
239
243
  renderVersion: scheduledVersion,
240
244
  });
@@ -250,6 +254,7 @@ export class PreviewRenderer {
250
254
  const result = await this.renderExecutor.compile(markdownText, renderVersion, {
251
255
  frontmatterCollapsed: this.frontmatterCollapsed,
252
256
  frontmatterInteractive: true,
257
+ subpath: this.getSubpath?.() ?? '',
253
258
  });
254
259
  if (renderVersion !== this.pendingRenderVersion) {
255
260
  return;
@@ -266,6 +271,7 @@ export class PreviewRenderer {
266
271
  }
267
272
 
268
273
  destroy() {
274
+ this.pendingRenderVersion += 1;
269
275
  this.renderScheduler.destroy();
270
276
  this.diagramChrome.destroy();
271
277
  this.mermaidHydrator.destroy();
@@ -321,8 +327,6 @@ export class PreviewRenderer {
321
327
 
322
328
  this.mermaidHydrator.cancelHydration({ preserveActiveShell: true });
323
329
  this.plantUmlHydrator.cancelHydration({ preserveActiveShell: true });
324
- document.body.classList.remove('mermaid-maximized-open');
325
- document.body.classList.remove('plantuml-maximized-open');
326
330
  this.mermaidHydrator.preserveHydratedShellsForCommit();
327
331
  this.plantUmlHydrator.preserveHydratedShellsForCommit();
328
332
 
@@ -339,7 +343,7 @@ export class PreviewRenderer {
339
343
  if (this.previewContainer) this.previewContainer.scrollTop = scrollTop;
340
344
  this.setPhase('base');
341
345
 
342
- this.outlineController.refresh();
346
+ this.outlineController?.refresh();
343
347
  this.onAfterRenderCommit?.(this.previewElement, {
344
348
  ...stats,
345
349
  isLargeDocument: this.isLargeDocument,
@@ -379,7 +383,7 @@ export class PreviewRenderer {
379
383
  }
380
384
 
381
385
  handleFrontmatterLayoutChange() {
382
- this.outlineController.refresh();
386
+ this.outlineController?.refresh();
383
387
  this.onPreviewLayoutChange?.({
384
388
  isLargeDocument: this.isLargeDocument,
385
389
  renderVersion: this.activeRenderVersion,
@@ -28,6 +28,7 @@ export class WorkspaceCoordinator {
28
28
  getStoredUserName,
29
29
  getTheme,
30
30
  isBaseFile,
31
+ isCanvasFile,
31
32
  isDrawioFile,
32
33
  isExcalidrawFile,
33
34
  isImageFile,
@@ -51,6 +52,7 @@ export class WorkspaceCoordinator {
51
52
  onSessionAssigned = null,
52
53
  onFileOpenMetric = null,
53
54
  onRenderBasePreview,
55
+ onRenderCanvasPreview,
54
56
  onRenderExcalidrawPreview,
55
57
  onRenderDrawioPreview,
56
58
  onRenderHtmlPreview,
@@ -82,6 +84,7 @@ export class WorkspaceCoordinator {
82
84
  this.getStoredUserName = getStoredUserName;
83
85
  this.getTheme = getTheme;
84
86
  this.isBaseFile = isBaseFile ?? (() => false);
87
+ this.isCanvasFile = isCanvasFile ?? (() => false);
85
88
  this.isDrawioFile = isDrawioFile ?? (() => false);
86
89
  this.isExcalidrawFile = isExcalidrawFile ?? (() => false);
87
90
  this.isImageFile = isImageFile ?? (() => false);
@@ -105,6 +108,7 @@ export class WorkspaceCoordinator {
105
108
  this.onSessionAssigned = onSessionAssigned;
106
109
  this.onFileOpenMetric = onFileOpenMetric;
107
110
  this.onRenderBasePreview = onRenderBasePreview;
111
+ this.onRenderCanvasPreview = onRenderCanvasPreview;
108
112
  this.onRenderDrawioPreview = onRenderDrawioPreview;
109
113
  this.onRenderExcalidrawPreview = onRenderExcalidrawPreview;
110
114
  this.onRenderHtmlPreview = onRenderHtmlPreview;
@@ -182,6 +186,7 @@ export class WorkspaceCoordinator {
182
186
 
183
187
  finalizeFileOpen({
184
188
  isBase = false,
189
+ isCanvas = false,
185
190
  isDrawio = false,
186
191
  filePath,
187
192
  isExcalidraw = false,
@@ -190,6 +195,7 @@ export class WorkspaceCoordinator {
190
195
  isPdf = false,
191
196
  supportsBacklinks,
192
197
  }) {
198
+ if (isCanvas) this.onRenderCanvasPreview(filePath);
193
199
  if (isExcalidraw) this.onRenderExcalidrawPreview(filePath);
194
200
  if (isBase || isBaseFilePath(filePath)) this.onRenderBasePreview(filePath);
195
201
  if (isDrawio) this.onRenderDrawioPreview(filePath);
@@ -221,6 +227,7 @@ export class WorkspaceCoordinator {
221
227
  const currentDrawioMode = this.stateStore.currentDrawioMode ?? null;
222
228
  const isDrawio = this.isDrawioFile(filePath) && drawioMode !== 'text' && this.shouldUseDrawioPreview(filePath);
223
229
  const isExcalidraw = this.isExcalidrawFile(filePath);
230
+ const isCanvas = this.isCanvasFile(filePath);
224
231
  const isBase = this.isBaseFile(filePath);
225
232
  const isImage = this.isImageFile(filePath);
226
233
  const isPdf = this.isPdfFile(filePath);
@@ -232,7 +239,7 @@ export class WorkspaceCoordinator {
232
239
  if (
233
240
  filePath === this.stateStore.currentFilePath
234
241
  && normalizedDrawioMode === currentDrawioMode
235
- && (this.session || isDrawio || isExcalidraw || isImage || isPdf)
242
+ && (this.session || isDrawio || isExcalidraw || isCanvas || isImage || isPdf)
236
243
  ) {
237
244
  this.onUpdateActiveFile(filePath);
238
245
  this.onUpdateLobbyCurrentFile(filePath);
@@ -249,7 +256,7 @@ export class WorkspaceCoordinator {
249
256
  });
250
257
  this.reportFileOpenMetric('open_started', loadToken, { filePath });
251
258
 
252
- if (isDrawio || isExcalidraw || isImage || isPdf) {
259
+ if (isDrawio || isExcalidraw || isCanvas || isImage || isPdf) {
253
260
  this.onSessionAssigned?.(null);
254
261
 
255
262
  if (loadToken !== this.stateStore.sessionLoadToken) {
@@ -260,6 +267,7 @@ export class WorkspaceCoordinator {
260
267
  this.finalizeFileOpen({
261
268
  filePath,
262
269
  isBase,
270
+ isCanvas,
263
271
  isDrawio,
264
272
  isExcalidraw,
265
273
  isImage,
@@ -291,6 +299,9 @@ export class WorkspaceCoordinator {
291
299
  : Promise.resolve(null);
292
300
 
293
301
  const EditorSession = await this.loadEditorSessionClass();
302
+ if (loadToken !== this.stateStore.sessionLoadToken) {
303
+ return false;
304
+ }
294
305
  const session = this.createEditorSession(EditorSession, {
295
306
  filePath,
296
307
  getFileList: this.getFileList,
@@ -427,15 +438,13 @@ export class WorkspaceCoordinator {
427
438
  await initializePromise;
428
439
 
429
440
  if (loadToken !== this.stateStore.sessionLoadToken) {
430
- session.destroy();
431
- return;
441
+ return false;
432
442
  }
433
443
 
434
444
  await Promise.all([liveSyncPromise, bootstrapVisibilityPromise]);
435
445
 
436
446
  if (loadToken !== this.stateStore.sessionLoadToken) {
437
- session.destroy();
438
- return;
447
+ return false;
439
448
  }
440
449
 
441
450
  if (!fileOpenReady) {
@@ -444,6 +453,9 @@ export class WorkspaceCoordinator {
444
453
  }
445
454
  return true;
446
455
  } catch (error) {
456
+ if (loadToken !== this.stateStore.sessionLoadToken) {
457
+ return false;
458
+ }
447
459
  console.error('[app] Failed to initialize editor:', error);
448
460
  session.destroy();
449
461
  this.attachEditorScroller(null);
@@ -451,10 +463,6 @@ export class WorkspaceCoordinator {
451
463
  this.session = null;
452
464
  }
453
465
 
454
- if (loadToken !== this.stateStore.sessionLoadToken) {
455
- return;
456
- }
457
-
458
466
  this.onFileOpenError({ code: 'load-failed', filePath });
459
467
  return false;
460
468
  }