collabmd 0.1.23 → 0.1.26

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 (681) hide show
  1. package/README.md +8 -5
  2. package/dist/client/assets/CodeMirrorEditor-UCMRAMCV-C5yVpm45.js +1 -0
  3. package/dist/client/assets/_basePickBy-Dr0N-hVE.js +1 -0
  4. package/dist/client/assets/_baseUniq-BddJc3B1.js +1 -0
  5. package/dist/client/assets/apl-CJPt5sW7.js +1 -0
  6. package/dist/client/assets/ar-SA-NXDWD63E-C3GLfrYV.js +8 -0
  7. package/dist/client/assets/arc-fx_D7wYg.js +1 -0
  8. package/dist/client/assets/architecture-PBZL5I3N-C1Yv7agI.js +1 -0
  9. package/dist/client/assets/architectureDiagram-2XIMDMQ5-T__yxKk2.js +36 -0
  10. package/dist/client/assets/array-e43ctQmx.js +1 -0
  11. package/dist/client/assets/asciiarmor-D0oCypDs.js +1 -0
  12. package/dist/client/assets/asn1-8xgVfRoq.js +1 -0
  13. package/dist/client/assets/asterisk-B5kv5AQp.js +1 -0
  14. package/dist/client/assets/az-AZ-MXSORGZV-BJ2t-y-C.js +1 -0
  15. package/dist/client/assets/bg-BG-O6MV2KSF-Cd3kEZI-.js +5 -0
  16. package/dist/client/assets/blockDiagram-WCTKOSBZ-BivLpsk_.js +132 -0
  17. package/dist/client/assets/bn-BD-T2VJNT7N-BFCx9nbZ.js +3 -0
  18. package/dist/client/assets/bn-IN-MMW2ORAC-Dn9W9dUT.js +3 -0
  19. package/dist/client/assets/brainfuck-Dh7M1Ucz.js +1 -0
  20. package/dist/client/assets/c4Diagram-IC4MRINW-nVzPTZmV.js +10 -0
  21. package/dist/client/assets/ca-ES-MKBCGNOG-D_BNlrmg.js +8 -0
  22. package/dist/client/assets/channel-DBZin7O0.js +1 -0
  23. package/dist/client/assets/chunk-27N2SPOM-CyIruM79.js +34 -0
  24. package/dist/client/assets/chunk-3PELD44J-D4qJ8fq7.js +1 -0
  25. package/dist/client/assets/chunk-4BX2VUAB-n_yl-toC.js +1 -0
  26. package/dist/client/assets/chunk-55IACEB6-CJ9i_5Da.js +1 -0
  27. package/dist/client/assets/chunk-7E7YKBS2-CebEBDsj.js +1 -0
  28. package/dist/client/assets/chunk-7R4GIKGN-BXNhzFkP.js +80 -0
  29. package/{public/assets/js/chunks/chunk-IR2DOYV4.js → dist/client/assets/chunk-A66AFZZU-CJuwmF1m.js} +2 -2
  30. package/dist/client/assets/chunk-C72U2L5F-Cck8MvGP.js +1 -0
  31. package/dist/client/assets/chunk-D-fkvfCP.js +1 -0
  32. package/dist/client/assets/chunk-EGIJ26TM-BDQ7tRV-.js +1 -0
  33. package/dist/client/assets/chunk-ETSVUAFD-C8C1JDu2.js +12 -0
  34. package/{public/assets/js/chunks/chunk-U6APNHAF.js → dist/client/assets/chunk-FMBD7UC4-DAcjCJR-.js} +2 -2
  35. package/dist/client/assets/chunk-GEFDOKGD-CYSNVsp-.js +2 -0
  36. package/dist/client/assets/chunk-GLR3WWYH-FplqAopN.js +2 -0
  37. package/dist/client/assets/chunk-HHEYEP7N-Bv_FKHmu.js +1 -0
  38. package/dist/client/assets/chunk-JSJVCQXG-CLgStmEI.js +1 -0
  39. package/dist/client/assets/chunk-KX2RTZJC-B__vUl1o.js +1 -0
  40. package/dist/client/assets/chunk-KYZI473N-BpfobHkp.js +53 -0
  41. package/dist/client/assets/chunk-L3YUKLVL-B7jdwbRL.js +1 -0
  42. package/dist/client/assets/chunk-MX3YWQON-DNcuP5dS.js +1 -0
  43. package/dist/client/assets/chunk-NQ4KR5QH-oaq5iS2W.js +220 -0
  44. package/dist/client/assets/chunk-O4XLMI2P-NI4OcSZ6.js +7 -0
  45. package/dist/client/assets/chunk-OZEHJAEY-BevHLeQ0.js +1 -0
  46. package/dist/client/assets/chunk-PQ6SQG4A-fQ_Oml5n.js +1 -0
  47. package/dist/client/assets/chunk-PU5JKC2W-Bp4H-mwZ.js +70 -0
  48. package/dist/client/assets/chunk-QZHKN3VN-Blawx8vd.js +1 -0
  49. package/dist/client/assets/chunk-R5LLSJPH-CZzZlfdI.js +1 -0
  50. package/dist/client/assets/chunk-SRAX5OIU-CtUYAya6.js +1 -0
  51. package/dist/client/assets/chunk-WL4C6EOR-DnV9nMco.js +189 -0
  52. package/dist/client/assets/chunk-XIRO2GV7-BnkmoLpc.js +1 -0
  53. package/dist/client/assets/chunk-XPW4576I-DOk6pMat.js +32 -0
  54. package/dist/client/assets/chunk-XZSTWKYB-DZzfqgVn.js +94 -0
  55. package/dist/client/assets/chunk-YBOYWFTD-CrI5WFnC.js +1 -0
  56. package/dist/client/assets/chunk-Z5NKEFVG-EGvolisB.js +22 -0
  57. package/dist/client/assets/classDiagram-VBA2DB6C-CreQafQu.js +1 -0
  58. package/dist/client/assets/classDiagram-v2-RAHNMMFH-BIYHzbiv.js +1 -0
  59. package/dist/client/assets/clike-zYz_LEkw.js +1 -0
  60. package/dist/client/assets/clojure-CdWlIeQh.js +1 -0
  61. package/dist/client/assets/clone-C3ajWNce.js +1 -0
  62. package/dist/client/assets/cmake-wWuF5ifR.js +1 -0
  63. package/dist/client/assets/cobol-D3WLbLVy.js +1 -0
  64. package/dist/client/assets/coffeescript-DRtt-5a2.js +1 -0
  65. package/dist/client/assets/commonlisp-DJV75lsU.js +1 -0
  66. package/dist/client/assets/cose-bilkent-S5V4N54A-PcMOD_rX.js +1 -0
  67. package/dist/client/assets/crystal-C7mEw92C.js +1 -0
  68. package/dist/client/assets/cs-CZ-V77HGUP7-gpioT6mv.js +7 -0
  69. package/dist/client/assets/css-_6KgQwpu.js +1 -0
  70. package/dist/client/assets/cypher-B3uWx7jm.js +1 -0
  71. package/dist/client/assets/cytoscape.esm-BbbuX1pV.js +321 -0
  72. package/dist/client/assets/d-D3kOh3JF.js +1 -0
  73. package/dist/client/assets/da-DK-I5RFNTM4-CVv-_qu9.js +2 -0
  74. package/dist/client/assets/dagre-BD9xHP_z.js +1 -0
  75. package/dist/client/assets/dagre-KLK3FWXG-Ct1xwvCC.js +4 -0
  76. package/dist/client/assets/de-CH-WLRDEVBV-CL0gsFEp.js +7 -0
  77. package/dist/client/assets/de-DE-DTI4WUSC-BQO1SHIK.js +7 -0
  78. package/dist/client/assets/defaultLocale-DTn6RiRA.js +1 -0
  79. package/dist/client/assets/diagram-E7M64L7V-DkHzt94k.js +24 -0
  80. package/dist/client/assets/diagram-IFDJBPK2-D4g8afpU.js +43 -0
  81. package/dist/client/assets/diagram-P4PSJMXO-DVwwx6ED.js +24 -0
  82. package/dist/client/assets/diff-CoamybWh.js +1 -0
  83. package/dist/client/assets/dist-2HWwyMLA.js +1 -0
  84. package/dist/client/assets/dist-60g3bzYH.js +11 -0
  85. package/dist/client/assets/dist-B2pRSR5A.js +23 -0
  86. package/dist/client/assets/dist-BQhICHxD.js +2 -0
  87. package/dist/client/assets/dist-BS6yAJ9F.js +1 -0
  88. package/dist/client/assets/dist-BUnp4fHW.js +1 -0
  89. package/dist/client/assets/dist-BWEDjv8G.js +1 -0
  90. package/dist/client/assets/dist-BZc5d15t.js +1 -0
  91. package/dist/client/assets/dist-BdtPRC1F.js +1 -0
  92. package/dist/client/assets/dist-BiFbHWxc.js +1 -0
  93. package/dist/client/assets/dist-BlhsMbAl.js +1 -0
  94. package/dist/client/assets/dist-CLsz2DCg.js +1 -0
  95. package/dist/client/assets/dist-Ciw3BJA2.js +1 -0
  96. package/dist/client/assets/dist-CvMToPSN.js +1 -0
  97. package/dist/client/assets/dist-D2m8lD1h.js +6 -0
  98. package/dist/client/assets/dist-DAwSRqIJ.js +1 -0
  99. package/dist/client/assets/dist-DZD5y4h6.js +1 -0
  100. package/dist/client/assets/dist-DhzldYic.js +9 -0
  101. package/dist/client/assets/dist-DrNF924C.js +1 -0
  102. package/dist/client/assets/dist-DzArd_Bk.js +1 -0
  103. package/dist/client/assets/dist-EPRNBXHp.js +1 -0
  104. package/dist/client/assets/dist-Q6uG0wie.js +1 -0
  105. package/dist/client/assets/dist-U9MIFRLF.js +1 -0
  106. package/dist/client/assets/dist-WrbPKwPQ.js +1 -0
  107. package/dist/client/assets/dist-_L_gn5XE.js +1 -0
  108. package/dist/client/assets/dist-a6bFAbQd.js +1 -0
  109. package/dist/client/assets/dist-fkQ6urpt.js +1 -0
  110. package/dist/client/assets/dist-lbtQBzLu.js +1 -0
  111. package/dist/client/assets/dist-naAaVPPS.js +1 -0
  112. package/dist/client/assets/dist-yRVuIDKu.js +13 -0
  113. package/dist/client/assets/dockerfile-Ci0-ApQC.js +1 -0
  114. package/dist/client/assets/drawio-editor-BW2z4NH2.js +9 -0
  115. package/dist/client/assets/drawio-room-D6352KkV.js +1 -0
  116. package/dist/client/assets/drawioEditor-DgoA4Zqi.js +2 -0
  117. package/dist/client/assets/dtd-BjGQwMWL.js +1 -0
  118. package/dist/client/assets/dylan-B9W3X2GI.js +1 -0
  119. package/dist/client/assets/ebnf-d5D0otVn.js +1 -0
  120. package/dist/client/assets/ecl-C5Q_IBPt.js +1 -0
  121. package/dist/client/assets/editor-session-xPvmulmt.js +16 -0
  122. package/dist/client/assets/eiffel-BQA_6I3b.js +1 -0
  123. package/dist/client/assets/el-GR-ZXDJ2OS4-DGa9DqWI.js +7 -0
  124. package/dist/client/assets/elm-unPS17vB.js +1 -0
  125. package/dist/client/assets/en-CTDJDZ6K-DC-4I8h8.js +1 -0
  126. package/dist/client/assets/erDiagram-INFDFZHY-Dnub3poK.js +70 -0
  127. package/dist/client/assets/erlang-R8nOsUTx.js +1 -0
  128. package/dist/client/assets/es-ES-DYQHAD43-Cox3GUnj.js +7 -0
  129. package/dist/client/assets/eu-ES-QDSYU5Y3-DrPM2uSX.js +7 -0
  130. package/dist/client/assets/excalidraw-editor-BAYca95w.js +182 -0
  131. package/dist/client/assets/excalidraw-editor-D8O7A69r.css +1 -0
  132. package/dist/client/assets/excalidraw-mermaid-stub-BJq3n7pR.js +1 -0
  133. package/dist/client/assets/excalidraw-mermaid-stub-LpuTrLnr.js +1 -0
  134. package/dist/client/assets/excalidrawEditor-BY5rq_Bn.js +2 -0
  135. package/dist/client/assets/fa-IR-26LZG4PM-ViTdxAWX.js +9 -0
  136. package/dist/client/assets/factor-DMvifS-k.js +1 -0
  137. package/dist/client/assets/fcl-CVAfW9wK.js +1 -0
  138. package/dist/client/assets/fi-FI-6YS4KDE4-BTBRGd69.js +6 -0
  139. package/dist/client/assets/flowDiagram-PKNHOUZH-DF4dDV_8.js +162 -0
  140. package/dist/client/assets/forth-DHbsK8X8.js +1 -0
  141. package/dist/client/assets/fortran-4jMwxW9-.js +1 -0
  142. package/dist/client/assets/fr-FR-BRLLPTZC-z-POHcHJ.js +12 -0
  143. package/dist/client/assets/ganttDiagram-A5KZAMGK-CwrN53Gu.js +292 -0
  144. package/dist/client/assets/gas-zC_XGrQT.js +1 -0
  145. package/dist/client/assets/gherkin-CPBQou3u.js +1 -0
  146. package/dist/client/assets/gitGraph-HDMCJU4V-DbS2XnWK.js +1 -0
  147. package/dist/client/assets/gitGraphDiagram-K3NZZRJ6-BV9w0K-N.js +65 -0
  148. package/dist/client/assets/github-dark.min-Z5exjX_n.css +1 -0
  149. package/dist/client/assets/github.min-D2BCvnWf.css +1 -0
  150. package/dist/client/assets/gl-ES-OKUZTLYG-BQtfDFNk.js +6 -0
  151. package/dist/client/assets/graphlib-B7v-yqry.js +1 -0
  152. package/dist/client/assets/groovy-Cqopym0q.js +1 -0
  153. package/dist/client/assets/haskell-imzbNPgF.js +1 -0
  154. package/dist/client/assets/haxe-Doh225Ku.js +1 -0
  155. package/dist/client/assets/he-IL-26MGYIU7-Dyw-xS4W.js +8 -0
  156. package/dist/client/assets/hi-IN-Q4ZOGTP2-BqENUkZA.js +3 -0
  157. package/dist/client/assets/http-j4R5uEso.js +1 -0
  158. package/dist/client/assets/hu-HU-P2OXPSN5-D1HGK0_M.js +3 -0
  159. package/dist/client/assets/id-ID-2EIKXYN6-BEjyfllL.js +8 -0
  160. package/dist/client/assets/idl-l9d1__Hj.js +1 -0
  161. package/dist/client/assets/image-32MOCVDX-BBXPyAeU.js +1 -0
  162. package/dist/client/assets/image-blob-reduce.esm-CQfEe3_g.js +2 -0
  163. package/dist/client/assets/index-C95nV7Tl.css +1 -0
  164. package/dist/client/assets/index-GE56R5t4.js +2 -0
  165. package/dist/client/assets/info-3K5VOQVL-Bre4VStM.js +1 -0
  166. package/dist/client/assets/infoDiagram-LFFYTUFH-CuUbZqrG.js +2 -0
  167. package/dist/client/assets/init-207s1ipc.js +1 -0
  168. package/dist/client/assets/isArrayLikeObject-ZCMZRndo.js +1 -0
  169. package/dist/client/assets/isEmpty-CLDc0Kt_.js +1 -0
  170. package/dist/client/assets/ishikawaDiagram-PHBUUO56-CmO_FyHY.js +70 -0
  171. package/dist/client/assets/it-IT-4CFKVXI2-C24G-VcQ.js +12 -0
  172. package/dist/client/assets/ja-JP-MAND2Z4V-DLhvsdYk.js +7 -0
  173. package/dist/client/assets/javascript-9dQYqEHJ.js +1 -0
  174. package/dist/client/assets/javascript-DdEc60Aj.js +1 -0
  175. package/dist/client/assets/journeyDiagram-4ABVD52K-DF4HAYLk.js +139 -0
  176. package/dist/client/assets/jsx-runtime-DJkgQklN.js +1 -0
  177. package/dist/client/assets/julia-ByGjwiLn.js +1 -0
  178. package/dist/client/assets/kaa-HQRTCXTJ-DC8l3BuJ.js +1 -0
  179. package/dist/client/assets/kab-KAB-JKIKKTGH-DVFog4hd.js +4 -0
  180. package/dist/client/assets/kanban-definition-K7BYSVSG-nQoJJABn.js +89 -0
  181. package/dist/client/assets/katex-XOVNa2d9.js +261 -0
  182. package/dist/client/assets/kk-KZ-HXQ63ZFC-CULUfwMg.js +1 -0
  183. package/dist/client/assets/km-KH-PKL3LSGX-CnLlEv7i.js +7 -0
  184. package/dist/client/assets/ko-KR-KXLREZX3-DNKXAYCx.js +5 -0
  185. package/dist/client/assets/ku-TR-MJ4IER3X-DLUiMa4h.js +6 -0
  186. package/dist/client/assets/line-DvLjT0Gv.js +1 -0
  187. package/dist/client/assets/linear-CEb8O7zv.js +1 -0
  188. package/dist/client/assets/livescript-B8l2m7xO.js +1 -0
  189. package/dist/client/assets/lt-LT-H6WFQ6FJ-CoFiurzb.js +3 -0
  190. package/dist/client/assets/lua-DrfAKnQQ.js +1 -0
  191. package/dist/client/assets/lv-LV-GOCK6SJW-DzeEvHxX.js +4 -0
  192. package/dist/client/assets/main-AejRWvom.js +600 -0
  193. package/dist/client/assets/math-BlD6rf4Z.js +1 -0
  194. package/dist/client/assets/mathematica-DYk_2Ik_.js +1 -0
  195. package/dist/client/assets/mbox-BOzVHzVt.js +1 -0
  196. package/dist/client/assets/mermaid-parser.core-DllATXd7.js +4 -0
  197. package/dist/client/assets/mermaid-runtime-DbCLD8Ih.js +11 -0
  198. package/dist/client/assets/mindmap-definition-YRQLILUH-DaMULsE9.js +68 -0
  199. package/dist/client/assets/mirc-DStbUCmv.js +1 -0
  200. package/dist/client/assets/mllike-BmhQglqS.js +1 -0
  201. package/dist/client/assets/modelica-ZElxtbqD.js +1 -0
  202. package/dist/client/assets/mr-IN-IXVLDMEQ-C5i5R9H5.js +9 -0
  203. package/dist/client/assets/mscgen-f-YxHPr0.js +1 -0
  204. package/dist/client/assets/mumps-B79RJJhR.js +1 -0
  205. package/dist/client/assets/my-MM-YG6MYTTD-DvwceqO-.js +1 -0
  206. package/dist/client/assets/nb-NO-XGWJISD2-BUhX8hX0.js +8 -0
  207. package/dist/client/assets/nginx-c--axfuP.js +1 -0
  208. package/dist/client/assets/nl-NL-XVDVCPNC-BV6Y0-Q0.js +13 -0
  209. package/dist/client/assets/nn-NO-EMX5MJX5-CF_bB9Jq.js +4 -0
  210. package/dist/client/assets/nsis-42hkxqLx.js +1 -0
  211. package/dist/client/assets/ntriples-CgD4YZZC.js +1 -0
  212. package/dist/client/assets/oc-FR-ROEINTVO-CiNI8fg8.js +4 -0
  213. package/dist/client/assets/octave-BQk-bCrp.js +1 -0
  214. package/dist/client/assets/ordinal-fW5lWpNM.js +1 -0
  215. package/dist/client/assets/oz-DPCSPrx5.js +1 -0
  216. package/dist/client/assets/pa-IN-ZYN6SUDY-CsbIU150.js +4 -0
  217. package/dist/client/assets/packet-RMMSAZCW-B7lnOkip.js +1 -0
  218. package/dist/client/assets/pascal-C1iGzZ53.js +1 -0
  219. package/dist/client/assets/path-CDSE7Nw0.js +1 -0
  220. package/dist/client/assets/percentages-5DKR754L-Dp1vwDEq.js +1 -0
  221. package/dist/client/assets/perl-DQ3L8ffg.js +1 -0
  222. package/dist/client/assets/pica-BbcTjVoI.js +2 -0
  223. package/dist/client/assets/pie-UPGHQEXC-D0gHdMgb.js +1 -0
  224. package/dist/client/assets/pieDiagram-SKSYHLDU-BPFp1WBd.js +30 -0
  225. package/dist/client/assets/pig-B4S8acys.js +1 -0
  226. package/dist/client/assets/pl-PL-6VTG7PHC-D1Nnx7R3.js +12 -0
  227. package/dist/client/assets/powershell-BhSVdaeY.js +1 -0
  228. package/dist/client/assets/preload-helper-I1wKxk_B.js +1 -0
  229. package/dist/client/assets/preview-render-compiler-BYiRMsPq.js +1 -0
  230. package/dist/client/assets/preview-render-profile-DQsam_Ol.js +23 -0
  231. package/dist/client/assets/preview-render-worker-CcASh3y3.js +23 -0
  232. package/dist/client/assets/properties-B2nfdtxE.js +1 -0
  233. package/dist/client/assets/protobuf-BFW_iwVN.js +1 -0
  234. package/dist/client/assets/pt-BR-5YFKRR5G-DEDTeWEP.js +6 -0
  235. package/dist/client/assets/pt-PT-GEIXXZ67-BpqPVZom.js +8 -0
  236. package/dist/client/assets/pug-BANqyQJ9.js +1 -0
  237. package/dist/client/assets/puppet-C1-CkyhQ.js +1 -0
  238. package/dist/client/assets/python-CYXPDD4I.js +1 -0
  239. package/dist/client/assets/q-Bub5Xmxm.js +1 -0
  240. package/dist/client/assets/quadrantDiagram-337W2JSQ-DjPGrcJM.js +7 -0
  241. package/dist/client/assets/quick-switcher-controller-n6Jhu3Z9.js +5 -0
  242. package/dist/client/assets/r-C59ONZO2.js +1 -0
  243. package/dist/client/assets/radar-KQ55EAFF-D48du2CB.js +1 -0
  244. package/dist/client/assets/requirementDiagram-Z7DCOOCP-BmiYAMKV.js +73 -0
  245. package/dist/client/assets/ro-RO-E2P6TFZI-4vRM1jVT.js +12 -0
  246. package/dist/client/assets/room-DyhEnogt.js +4 -0
  247. package/dist/client/assets/rough.esm-xhKrnp4d.js +1 -0
  248. package/dist/client/assets/roundRect-CTz-kxJH.js +1 -0
  249. package/dist/client/assets/rpm-DiM-R-wd.js +1 -0
  250. package/dist/client/assets/ru-RU-YBIIY43T-Cfbhz4Ew.js +10 -0
  251. package/dist/client/assets/ruby-DTqG95KX.js +1 -0
  252. package/dist/client/assets/runtime-config-loader-DwWsKc1-.js +1 -0
  253. package/dist/client/assets/sankeyDiagram-WA2Y5GQK-BEoPAlcC.js +10 -0
  254. package/dist/client/assets/sas-BjdhmGHX.js +1 -0
  255. package/dist/client/assets/scheme-CWNdoI17.js +1 -0
  256. package/dist/client/assets/sequenceDiagram-2WXFIKYE-BXqojuDS.js +145 -0
  257. package/dist/client/assets/shell-iaorleRB.js +1 -0
  258. package/dist/client/assets/si-LK-673C2CI2-0muNkOEn.js +1 -0
  259. package/dist/client/assets/sieve-D8m9Etmd.js +1 -0
  260. package/dist/client/assets/simple-mode-kdHrpFjq.js +1 -0
  261. package/dist/client/assets/sk-SK-CKZHQ4AP-EnLgxyJL.js +7 -0
  262. package/dist/client/assets/sl-SI-557H2GWM-BN6npqVj.js +6 -0
  263. package/dist/client/assets/smalltalk-28WS1mUj.js +1 -0
  264. package/dist/client/assets/solr-x8qQ6eAP.js +1 -0
  265. package/dist/client/assets/sparql-BvLmi7B6.js +1 -0
  266. package/dist/client/assets/spreadsheet-BuqSwScP.js +1 -0
  267. package/dist/client/assets/sql-B8tBavZM.js +1 -0
  268. package/dist/client/assets/src-DUDi_GeV.js +1 -0
  269. package/dist/client/assets/stateDiagram-RAJIS63D-DTR2sQs8.js +1 -0
  270. package/dist/client/assets/stateDiagram-v2-FVOUBMTO-BwVII-kJ.js +1 -0
  271. package/dist/client/assets/stex-Bx4bLPxI.js +1 -0
  272. package/dist/client/assets/stylus-CMEhEjuV.js +1 -0
  273. package/dist/client/assets/subset-shared.chunk-C6pUl_Oh.js +1 -0
  274. package/dist/client/assets/subset-worker.chunk-1FoL7eL0.js +1 -0
  275. package/dist/client/assets/sv-SE-XOPKKDWS-D3VSs2SQ.js +8 -0
  276. package/dist/client/assets/swift-wY9II8hY.js +1 -0
  277. package/dist/client/assets/ta-IN-XBH7DQI3-BKR1mqfo.js +6 -0
  278. package/dist/client/assets/tcl-BGywDEsi.js +1 -0
  279. package/dist/client/assets/textile-K_mvsehZ.js +1 -0
  280. package/dist/client/assets/th-TH-TOCWH3R4-Bek1dQcW.js +1 -0
  281. package/dist/client/assets/tiddlywiki-BrpeQ34q.js +1 -0
  282. package/dist/client/assets/tiki-z2eQQPgI.js +1 -0
  283. package/dist/client/assets/timeline-definition-YZTLITO2-BP09qqIh.js +61 -0
  284. package/dist/client/assets/toml-Dcu7S7XA.js +1 -0
  285. package/dist/client/assets/tr-TR-GXW6CYY5-xdLb7Dgi.js +4 -0
  286. package/dist/client/assets/treemap-KZPCXAKY-BBRObSiT.js +1 -0
  287. package/dist/client/assets/troff-Djlumm7T.js +1 -0
  288. package/dist/client/assets/ttcn-XqU6tthJ.js +1 -0
  289. package/dist/client/assets/ttcn-cfg-BzD0wr3i.js +1 -0
  290. package/dist/client/assets/turtle-DcjXkx6M.js +1 -0
  291. package/dist/client/assets/uk-UA-IJKTNUDG-Cd0AhTti.js +6 -0
  292. package/dist/client/assets/uz-UZ-TBZZEA4V-DQH4e-QC.js +1 -0
  293. package/dist/client/assets/vault-api-client-fFJfUVXM.js +188 -0
  294. package/dist/client/assets/vault-utils-BM4i-Ofm.js +1 -0
  295. package/dist/client/assets/vb-DV4y2QrD.js +1 -0
  296. package/dist/client/assets/vbscript-BS8DsYJ_.js +1 -0
  297. package/dist/client/assets/velocity-CS6Ly2yV.js +1 -0
  298. package/dist/client/assets/vennDiagram-LZ73GAT5-BvSlhnT0.js +34 -0
  299. package/dist/client/assets/verilog-DbEC7ose.js +1 -0
  300. package/dist/client/assets/vhdl-DBLrW9bF.js +1 -0
  301. package/dist/client/assets/vi-VN-MULSGNVB-BYDcPrAo.js +7 -0
  302. package/dist/client/assets/webidl-CnE8KY-y.js +1 -0
  303. package/dist/client/assets/xquery--K5Za5EW.js +1 -0
  304. package/dist/client/assets/xychartDiagram-JWTSCODW-BvZ78F0j.js +7 -0
  305. package/dist/client/assets/yacas-ClQfYBmX.js +1 -0
  306. package/dist/client/assets/yjs-provider-reset-guard-Cj00kgyM.js +4 -0
  307. package/dist/client/assets/z80-Dr2oR3X2.js +1 -0
  308. package/dist/client/assets/zh-CN-MVX3E32U-BqZQ-18-.js +11 -0
  309. package/dist/client/assets/zh-HK-JNU5RLIE-CbF8Agwa.js +1 -0
  310. package/dist/client/assets/zh-TW-LENVCA6T-CepoVycx.js +9 -0
  311. package/dist/client/drawio-editor.html +38 -0
  312. package/dist/client/excalidraw-editor.html +31 -0
  313. package/{public → dist/client}/index.html +75 -188
  314. package/package.json +13 -7
  315. package/src/client/app/drawio-editor-entry.js +4 -0
  316. package/src/client/app/drawio-editor.html +36 -0
  317. package/src/client/app/excalidraw-editor-entry.js +4 -0
  318. package/{public → src/client/app}/excalidraw-editor.html +1 -3
  319. package/src/client/app/index.html +463 -0
  320. package/src/client/app/main-entry.js +24 -0
  321. package/src/client/application/app-shell/git-feature.js +21 -23
  322. package/src/client/application/app-shell/ui-feature-identity.js +173 -0
  323. package/src/client/application/app-shell/ui-feature-shell.js +445 -0
  324. package/src/client/application/app-shell/ui-feature-sidebar.js +98 -0
  325. package/src/client/application/app-shell/ui-feature-tab-activity.js +128 -0
  326. package/src/client/application/app-shell/ui-feature-toolbar.js +520 -0
  327. package/src/client/application/app-shell/ui-feature.js +10 -706
  328. package/src/client/application/app-shell/workspace-feature.js +9 -0
  329. package/src/client/application/app-shell-elements.js +2 -0
  330. package/src/client/application/preview-render-compiler.js +18 -1
  331. package/src/client/application/preview-render-profile.js +5 -1
  332. package/src/client/application/workspace-chrome-controller.js +6 -0
  333. package/src/client/application/workspace-coordinator.js +12 -4
  334. package/src/client/application/workspace-preview-controller.js +65 -3
  335. package/src/client/application/workspace-route-controller.js +6 -3
  336. package/src/client/bootstrap/collabmd-app-shell.js +29 -0
  337. package/src/client/domain/markdown-formatting.js +197 -52
  338. package/src/client/domain/markdown-toolbar-actions.js +191 -0
  339. package/src/client/domain/runtime-paths.js +11 -0
  340. package/src/client/domain/vault-paths.js +24 -0
  341. package/src/client/domain/workspace-request-id.js +7 -0
  342. package/src/client/drawio-editor.js +479 -0
  343. package/src/client/excalidraw-editor.js +0 -2
  344. package/src/client/infrastructure/app-version-monitor.js +114 -0
  345. package/src/client/infrastructure/browser-navigation-port.js +2 -2
  346. package/src/client/infrastructure/drawio-lease-client.js +345 -0
  347. package/src/client/infrastructure/runtime-config-loader.js +56 -0
  348. package/src/client/infrastructure/runtime-config.js +5 -1
  349. package/src/client/infrastructure/vault-api-client.js +50 -7
  350. package/src/client/presentation/backlinks-panel.js +42 -9
  351. package/src/client/presentation/comment-ui/comment-ui-card.js +632 -0
  352. package/src/client/presentation/comment-ui/comment-ui-layout.js +452 -0
  353. package/src/client/presentation/comment-ui/comment-ui-render.js +149 -0
  354. package/src/client/presentation/comment-ui/comment-ui-shared.js +297 -0
  355. package/src/client/presentation/comment-ui/comment-ui-state.js +268 -0
  356. package/src/client/presentation/comment-ui-controller.js +13 -1585
  357. package/src/client/presentation/comments-panel.js +2 -2
  358. package/src/client/presentation/create-menu-presenter.js +274 -0
  359. package/src/client/presentation/drawio-embed-controller.js +500 -0
  360. package/src/client/presentation/file-action-controller.js +321 -48
  361. package/src/client/presentation/file-explorer-controller.js +17 -2
  362. package/src/client/presentation/file-explorer-view.js +258 -9
  363. package/src/client/presentation/file-tree-state.js +101 -5
  364. package/src/client/presentation/theme-controller.js +21 -4
  365. package/src/client/presentation/toast-controller.js +49 -6
  366. package/src/client/styles/components/feedback.css +28 -0
  367. package/src/client/styles/components/navigation.css +24 -0
  368. package/src/client/styles/features/backlinks.css +5 -0
  369. package/src/client/styles/features/diagram-preview.css +119 -1
  370. package/src/client/styles/layout/editor-page.css +108 -8
  371. package/src/client/styles/layout/responsive.css +158 -9
  372. package/src/client/styles/layout/shell.css +41 -0
  373. package/src/client/styles/layout/sidebar.css +224 -0
  374. package/src/client/styles/layout/view-modes.css +1 -0
  375. package/src/client/styles/primitives/controls.css +3 -2
  376. package/src/domain/drawio-room.js +47 -0
  377. package/src/domain/file-kind.js +13 -2
  378. package/src/server/config/build-info.js +76 -0
  379. package/src/server/config/env.js +14 -1
  380. package/src/server/create-app-server.js +4 -2
  381. package/src/server/domain/collaboration/collaboration-document-store.js +11 -0
  382. package/src/server/domain/collaboration/collaboration-room.js +5 -0
  383. package/src/server/infrastructure/http/create-static-handler.js +13 -2
  384. package/src/server/infrastructure/http/create-vault-api-command-handler.js +72 -0
  385. package/src/server/infrastructure/http/create-vault-api-query-handler.js +5 -0
  386. package/src/server/infrastructure/persistence/path-utils.js +12 -1
  387. package/src/server/infrastructure/persistence/vault-content-adapter.js +6 -0
  388. package/src/server/infrastructure/persistence/vault-file-store.js +166 -3
  389. package/src/server/infrastructure/workspace/workspace-mutation-coordinator.js +84 -3
  390. package/public/assets/css/base.css +0 -1
  391. package/public/assets/css/style.css +0 -1
  392. package/public/assets/js/chunks/CodeMirrorEditor-UCMRAMCV-MAKZFDBE.js +0 -12
  393. package/public/assets/js/chunks/apl-C5P5JBDI.js +0 -1
  394. package/public/assets/js/chunks/ar-SA-NXDWD63E-MF6HMEA4.js +0 -8
  395. package/public/assets/js/chunks/architecture-PBZL5I3N-55LDZ5WS.js +0 -1
  396. package/public/assets/js/chunks/architectureDiagram-2XIMDMQ5-2VP562X7.js +0 -36
  397. package/public/assets/js/chunks/asciiarmor-3NCLLELT.js +0 -1
  398. package/public/assets/js/chunks/asn1-KF4WXU3M.js +0 -1
  399. package/public/assets/js/chunks/asterisk-EA3VIN65.js +0 -1
  400. package/public/assets/js/chunks/az-AZ-MXSORGZV-AIGO4TNU.js +0 -1
  401. package/public/assets/js/chunks/bg-BG-O6MV2KSF-X6AVO2AF.js +0 -5
  402. package/public/assets/js/chunks/blockDiagram-WCTKOSBZ-KM56WWDE.js +0 -132
  403. package/public/assets/js/chunks/bn-BD-T2VJNT7N-7OMHRIGC.js +0 -3
  404. package/public/assets/js/chunks/bn-IN-MMW2ORAC-EPKMNKG7.js +0 -3
  405. package/public/assets/js/chunks/brainfuck-A3CTQVFD.js +0 -1
  406. package/public/assets/js/chunks/c4Diagram-IC4MRINW-KX6UEGQZ.js +0 -10
  407. package/public/assets/js/chunks/ca-ES-MKBCGNOG-U44SUUTN.js +0 -8
  408. package/public/assets/js/chunks/chunk-2NTQWLZD.js +0 -25
  409. package/public/assets/js/chunks/chunk-2YRP2AWD.js +0 -1
  410. package/public/assets/js/chunks/chunk-3BUCGSSJ.js +0 -1
  411. package/public/assets/js/chunks/chunk-47L7JGE3.js +0 -1
  412. package/public/assets/js/chunks/chunk-4BCHPULB.js +0 -1
  413. package/public/assets/js/chunks/chunk-4NKM6YFO.js +0 -161
  414. package/public/assets/js/chunks/chunk-4WGMPBK5.js +0 -1
  415. package/public/assets/js/chunks/chunk-55WF6Y2Q.js +0 -1
  416. package/public/assets/js/chunks/chunk-5QRWYPYT.js +0 -25
  417. package/public/assets/js/chunks/chunk-775E65SU.js +0 -1
  418. package/public/assets/js/chunks/chunk-AJRGTECU.js +0 -70
  419. package/public/assets/js/chunks/chunk-B2J3PHGY.js +0 -1
  420. package/public/assets/js/chunks/chunk-B4JKB3BC.js +0 -1
  421. package/public/assets/js/chunks/chunk-CGVY4PKT.js +0 -13
  422. package/public/assets/js/chunks/chunk-CVTRX3TE.js +0 -220
  423. package/public/assets/js/chunks/chunk-CYK7KO7W.js +0 -9
  424. package/public/assets/js/chunks/chunk-DW6KK6VF.js +0 -1
  425. package/public/assets/js/chunks/chunk-E2HMNOQL.js +0 -189
  426. package/public/assets/js/chunks/chunk-EPTJZP5H.js +0 -7
  427. package/public/assets/js/chunks/chunk-G7NUGGE7.js +0 -13
  428. package/public/assets/js/chunks/chunk-GFDM7YCF.js +0 -1
  429. package/public/assets/js/chunks/chunk-GI7LBIBP.js +0 -1
  430. package/public/assets/js/chunks/chunk-GXRL27M7.js +0 -1
  431. package/public/assets/js/chunks/chunk-H6EYDHRW.js +0 -1
  432. package/public/assets/js/chunks/chunk-HOCBCDA5.js +0 -1
  433. package/public/assets/js/chunks/chunk-HS2CUOC6.js +0 -1
  434. package/public/assets/js/chunks/chunk-HUAS4BYI.js +0 -12
  435. package/public/assets/js/chunks/chunk-HVNNEPP5.js +0 -2
  436. package/public/assets/js/chunks/chunk-I2GVZI7W.js +0 -38
  437. package/public/assets/js/chunks/chunk-I6PVWGBN.js +0 -14
  438. package/public/assets/js/chunks/chunk-IZ3V3F2A.js +0 -1
  439. package/public/assets/js/chunks/chunk-KPAQHIOI.js +0 -1
  440. package/public/assets/js/chunks/chunk-M3EW4V74.js +0 -1
  441. package/public/assets/js/chunks/chunk-MK3AFU3C.js +0 -90
  442. package/public/assets/js/chunks/chunk-NM6J3ND7.js +0 -1
  443. package/public/assets/js/chunks/chunk-NO7UPWTU.js +0 -1
  444. package/public/assets/js/chunks/chunk-OHGDMMWM.js +0 -1
  445. package/public/assets/js/chunks/chunk-OOT2HALX.js +0 -1
  446. package/public/assets/js/chunks/chunk-OQLLZFFN.js +0 -1
  447. package/public/assets/js/chunks/chunk-PF6TP4EI.js +0 -1
  448. package/public/assets/js/chunks/chunk-PMOZMECZ.js +0 -85
  449. package/public/assets/js/chunks/chunk-QBGS6DJR.js +0 -1
  450. package/public/assets/js/chunks/chunk-QF3ZQ6UQ.js +0 -1
  451. package/public/assets/js/chunks/chunk-QFXMAUW4.js +0 -1
  452. package/public/assets/js/chunks/chunk-QYKIT2IH.js +0 -41
  453. package/public/assets/js/chunks/chunk-S75BI2UQ.js +0 -1
  454. package/public/assets/js/chunks/chunk-SKEZZ3H6.js +0 -1
  455. package/public/assets/js/chunks/chunk-SO6QBCB6.js +0 -1
  456. package/public/assets/js/chunks/chunk-TFP6LRYJ.js +0 -53
  457. package/public/assets/js/chunks/chunk-VOODXHXA.js +0 -1
  458. package/public/assets/js/chunks/chunk-W7WJUTSA.js +0 -3
  459. package/public/assets/js/chunks/chunk-WNXFO2F2.js +0 -1
  460. package/public/assets/js/chunks/chunk-X6EEYWV4.js +0 -6
  461. package/public/assets/js/chunks/chunk-YVW3ZETS.js +0 -1
  462. package/public/assets/js/chunks/chunk-ZR2QRTBG.js +0 -339
  463. package/public/assets/js/chunks/chunk-ZZJX4LQ2.js +0 -1
  464. package/public/assets/js/chunks/classDiagram-VBA2DB6C-IYW4O2RM.js +0 -1
  465. package/public/assets/js/chunks/classDiagram-v2-RAHNMMFH-DNKVN2WD.js +0 -1
  466. package/public/assets/js/chunks/clike-RTBH33GE.js +0 -1
  467. package/public/assets/js/chunks/clojure-BR2VJ2JI.js +0 -1
  468. package/public/assets/js/chunks/cmake-2HEWVFEE.js +0 -1
  469. package/public/assets/js/chunks/cobol-V6EIK6DN.js +0 -1
  470. package/public/assets/js/chunks/coffeescript-JW3ZOGMD.js +0 -1
  471. package/public/assets/js/chunks/commonlisp-UCWSIHYK.js +0 -1
  472. package/public/assets/js/chunks/cose-bilkent-S5V4N54A-QVYRFFNC.js +0 -1
  473. package/public/assets/js/chunks/crystal-GR4VLC3M.js +0 -1
  474. package/public/assets/js/chunks/cs-CZ-V77HGUP7-OLBAKFG5.js +0 -7
  475. package/public/assets/js/chunks/css-C5DVWGB4.js +0 -1
  476. package/public/assets/js/chunks/cypher-K7FZM5GC.js +0 -1
  477. package/public/assets/js/chunks/d-CF3QNNH5.js +0 -1
  478. package/public/assets/js/chunks/da-DK-I5RFNTM4-QJIG2SEZ.js +0 -2
  479. package/public/assets/js/chunks/dagre-KLK3FWXG-KVNBUDOY.js +0 -4
  480. package/public/assets/js/chunks/de-CH-WLRDEVBV-4MMJDMVD.js +0 -7
  481. package/public/assets/js/chunks/de-DE-DTI4WUSC-ML7C46TT.js +0 -7
  482. package/public/assets/js/chunks/diagram-E7M64L7V-ZP33VRUC.js +0 -24
  483. package/public/assets/js/chunks/diagram-IFDJBPK2-ZG35YWOD.js +0 -43
  484. package/public/assets/js/chunks/diagram-P4PSJMXO-ZGIGM7D2.js +0 -24
  485. package/public/assets/js/chunks/diff-KOMSZU7O.js +0 -1
  486. package/public/assets/js/chunks/dist-7RQKSOUX.js +0 -7
  487. package/public/assets/js/chunks/dist-ARWGZ6MN.js +0 -1
  488. package/public/assets/js/chunks/dist-DPBSGC3Y.js +0 -2
  489. package/public/assets/js/chunks/dist-E36PJE5M.js +0 -1
  490. package/public/assets/js/chunks/dist-E5NM7OBW.js +0 -1
  491. package/public/assets/js/chunks/dist-ERADYPEK.js +0 -1
  492. package/public/assets/js/chunks/dist-F43RIHBZ.js +0 -1
  493. package/public/assets/js/chunks/dist-HAB5NIXI.js +0 -1
  494. package/public/assets/js/chunks/dist-HG23OLRA.js +0 -1
  495. package/public/assets/js/chunks/dist-IEJXBSDJ.js +0 -1
  496. package/public/assets/js/chunks/dist-IQA4KVJK.js +0 -1
  497. package/public/assets/js/chunks/dist-OIQTNVT2.js +0 -3
  498. package/public/assets/js/chunks/dist-PMZJ734S.js +0 -1
  499. package/public/assets/js/chunks/dist-RCQFQRLD.js +0 -1
  500. package/public/assets/js/chunks/dist-RQLC4GVI.js +0 -1
  501. package/public/assets/js/chunks/dist-RSJGLSKC.js +0 -1
  502. package/public/assets/js/chunks/dist-SGNQZVVX.js +0 -1
  503. package/public/assets/js/chunks/dist-VCFTF7Z6.js +0 -1
  504. package/public/assets/js/chunks/dist-VTO23SHH.js +0 -1
  505. package/public/assets/js/chunks/dist-XOODBV4L.js +0 -1
  506. package/public/assets/js/chunks/dist-ZFZNCRZY.js +0 -1
  507. package/public/assets/js/chunks/dockerfile-XCIKYOSI.js +0 -1
  508. package/public/assets/js/chunks/dtd-3XFH7W6Z.js +0 -1
  509. package/public/assets/js/chunks/dylan-3UWPKVOR.js +0 -1
  510. package/public/assets/js/chunks/ebnf-OLHTL3VN.js +0 -1
  511. package/public/assets/js/chunks/ecl-43LZ3ZRM.js +0 -1
  512. package/public/assets/js/chunks/editor-session-S5AT7BMV.js +0 -22
  513. package/public/assets/js/chunks/eiffel-ISPO2UJF.js +0 -1
  514. package/public/assets/js/chunks/el-GR-ZXDJ2OS4-WSCEIO6J.js +0 -7
  515. package/public/assets/js/chunks/elm-CLK576PK.js +0 -1
  516. package/public/assets/js/chunks/en-CTDJDZ6K-IC3QAUOI.js +0 -1
  517. package/public/assets/js/chunks/erDiagram-INFDFZHY-ZMS6H2TH.js +0 -70
  518. package/public/assets/js/chunks/erlang-AVQXQFOT.js +0 -1
  519. package/public/assets/js/chunks/es-ES-DYQHAD43-XGB5X5IM.js +0 -7
  520. package/public/assets/js/chunks/eu-ES-QDSYU5Y3-LA3JTIJ2.js +0 -7
  521. package/public/assets/js/chunks/excalidraw-mermaid-stub-NYXTOJ4H.js +0 -1
  522. package/public/assets/js/chunks/fa-IR-26LZG4PM-PFALMEDX.js +0 -9
  523. package/public/assets/js/chunks/factor-CRTVBD6Q.js +0 -1
  524. package/public/assets/js/chunks/fcl-FX24LKTH.js +0 -1
  525. package/public/assets/js/chunks/fi-FI-6YS4KDE4-ES5MV6P4.js +0 -6
  526. package/public/assets/js/chunks/flowDiagram-PKNHOUZH-QD4L5IE5.js +0 -162
  527. package/public/assets/js/chunks/forth-YKDKCTVS.js +0 -1
  528. package/public/assets/js/chunks/fortran-UJWC6SLU.js +0 -1
  529. package/public/assets/js/chunks/fr-FR-BRLLPTZC-VMFE22YV.js +0 -12
  530. package/public/assets/js/chunks/ganttDiagram-A5KZAMGK-VTMTQESP.js +0 -292
  531. package/public/assets/js/chunks/gas-MYEMWGRE.js +0 -1
  532. package/public/assets/js/chunks/gherkin-JWHAU2YG.js +0 -1
  533. package/public/assets/js/chunks/gitGraph-HDMCJU4V-YPHS74XX.js +0 -1
  534. package/public/assets/js/chunks/gitGraphDiagram-K3NZZRJ6-Z3EZ634T.js +0 -65
  535. package/public/assets/js/chunks/gl-ES-OKUZTLYG-GPT42ZHV.js +0 -6
  536. package/public/assets/js/chunks/groovy-QZIZQIAK.js +0 -1
  537. package/public/assets/js/chunks/haskell-JR3G7YNW.js +0 -1
  538. package/public/assets/js/chunks/haxe-TVLAIYEN.js +0 -1
  539. package/public/assets/js/chunks/he-IL-26MGYIU7-VQ5XQYYY.js +0 -8
  540. package/public/assets/js/chunks/hi-IN-Q4ZOGTP2-2Z766MXA.js +0 -3
  541. package/public/assets/js/chunks/http-YXQRE77G.js +0 -1
  542. package/public/assets/js/chunks/hu-HU-P2OXPSN5-6XDVPGTE.js +0 -3
  543. package/public/assets/js/chunks/id-ID-2EIKXYN6-J5GWSY2S.js +0 -8
  544. package/public/assets/js/chunks/idl-RAQGJ6LJ.js +0 -1
  545. package/public/assets/js/chunks/image-32MOCVDX-JN2EUMQG.js +0 -1
  546. package/public/assets/js/chunks/image-blob-reduce.esm-K5OWL55S.js +0 -13
  547. package/public/assets/js/chunks/info-3K5VOQVL-CXJSPNNP.js +0 -1
  548. package/public/assets/js/chunks/infoDiagram-LFFYTUFH-WQ34MUJA.js +0 -2
  549. package/public/assets/js/chunks/ishikawaDiagram-PHBUUO56-4IARWKJK.js +0 -70
  550. package/public/assets/js/chunks/it-IT-4CFKVXI2-NMBWUWFF.js +0 -12
  551. package/public/assets/js/chunks/ja-JP-MAND2Z4V-GQZYXXOC.js +0 -7
  552. package/public/assets/js/chunks/javascript-NM7KDJUE.js +0 -1
  553. package/public/assets/js/chunks/journeyDiagram-4ABVD52K-FJ4LF4SX.js +0 -139
  554. package/public/assets/js/chunks/julia-LG3BH25B.js +0 -1
  555. package/public/assets/js/chunks/kaa-HQRTCXTJ-7D6PAKDJ.js +0 -1
  556. package/public/assets/js/chunks/kab-KAB-JKIKKTGH-TNKFXNAX.js +0 -4
  557. package/public/assets/js/chunks/kanban-definition-K7BYSVSG-TY4EVYI3.js +0 -89
  558. package/public/assets/js/chunks/katex-5YJCUCFD.js +0 -261
  559. package/public/assets/js/chunks/kk-KZ-HXQ63ZFC-T4HCMWED.js +0 -1
  560. package/public/assets/js/chunks/km-KH-PKL3LSGX-HTLHEJV6.js +0 -7
  561. package/public/assets/js/chunks/ko-KR-KXLREZX3-QMR52QVI.js +0 -5
  562. package/public/assets/js/chunks/ku-TR-MJ4IER3X-K5CNY4UO.js +0 -6
  563. package/public/assets/js/chunks/livescript-4CVWVI4M.js +0 -1
  564. package/public/assets/js/chunks/lt-LT-H6WFQ6FJ-IW25FAGX.js +0 -3
  565. package/public/assets/js/chunks/lua-VWGE7DQ7.js +0 -1
  566. package/public/assets/js/chunks/lv-LV-GOCK6SJW-KTDFW5OH.js +0 -4
  567. package/public/assets/js/chunks/mathematica-D7APQSEU.js +0 -1
  568. package/public/assets/js/chunks/mbox-BN3XQBYX.js +0 -1
  569. package/public/assets/js/chunks/mermaid-runtime-BIFNJ2CT.js +0 -18
  570. package/public/assets/js/chunks/mindmap-definition-YRQLILUH-5B565RNP.js +0 -68
  571. package/public/assets/js/chunks/mirc-565WBI76.js +0 -1
  572. package/public/assets/js/chunks/mllike-VV3KS46B.js +0 -1
  573. package/public/assets/js/chunks/modelica-EGX44FZV.js +0 -1
  574. package/public/assets/js/chunks/mr-IN-IXVLDMEQ-PHM5DT7Q.js +0 -9
  575. package/public/assets/js/chunks/mscgen-GFGTHENT.js +0 -1
  576. package/public/assets/js/chunks/mumps-POZYWSMI.js +0 -1
  577. package/public/assets/js/chunks/my-MM-YG6MYTTD-ZHLCMEVA.js +0 -1
  578. package/public/assets/js/chunks/nb-NO-XGWJISD2-KSDFG6YU.js +0 -8
  579. package/public/assets/js/chunks/nginx-JUBX55EU.js +0 -1
  580. package/public/assets/js/chunks/nl-NL-XVDVCPNC-KVF3ZO2R.js +0 -13
  581. package/public/assets/js/chunks/nn-NO-EMX5MJX5-34QKSHNR.js +0 -4
  582. package/public/assets/js/chunks/nsis-RC4CREGM.js +0 -1
  583. package/public/assets/js/chunks/ntriples-4WK6CNVE.js +0 -1
  584. package/public/assets/js/chunks/oc-FR-ROEINTVO-5GP4AOYO.js +0 -4
  585. package/public/assets/js/chunks/octave-GOKFN2V7.js +0 -1
  586. package/public/assets/js/chunks/oz-OQUMNC63.js +0 -1
  587. package/public/assets/js/chunks/pa-IN-ZYN6SUDY-MVL7O44W.js +0 -4
  588. package/public/assets/js/chunks/packet-RMMSAZCW-D7XTR5TT.js +0 -1
  589. package/public/assets/js/chunks/pascal-BBWQWWWD.js +0 -1
  590. package/public/assets/js/chunks/percentages-5DKR754L-DG7W23CV.js +0 -1
  591. package/public/assets/js/chunks/perl-KTPJTTAM.js +0 -1
  592. package/public/assets/js/chunks/pica-6G3NROWT.js +0 -17
  593. package/public/assets/js/chunks/pie-UPGHQEXC-KGC3O6LN.js +0 -1
  594. package/public/assets/js/chunks/pieDiagram-SKSYHLDU-KWKRDEZS.js +0 -30
  595. package/public/assets/js/chunks/pig-IJMBS4FZ.js +0 -1
  596. package/public/assets/js/chunks/pl-PL-6VTG7PHC-VADRWSX4.js +0 -12
  597. package/public/assets/js/chunks/powershell-6YGCBHDP.js +0 -1
  598. package/public/assets/js/chunks/preview-render-compiler-6Y7TKXFJ.js +0 -1
  599. package/public/assets/js/chunks/properties-5QTD3364.js +0 -1
  600. package/public/assets/js/chunks/protobuf-LTRWBIK3.js +0 -1
  601. package/public/assets/js/chunks/pt-BR-5YFKRR5G-HHF4UPO4.js +0 -6
  602. package/public/assets/js/chunks/pt-PT-GEIXXZ67-TUTAUZJK.js +0 -8
  603. package/public/assets/js/chunks/pug-U4PV3WLG.js +0 -1
  604. package/public/assets/js/chunks/puppet-WGYJPR3Y.js +0 -1
  605. package/public/assets/js/chunks/python-6YGH4S47.js +0 -1
  606. package/public/assets/js/chunks/q-VIG4IJLI.js +0 -1
  607. package/public/assets/js/chunks/quadrantDiagram-337W2JSQ-GWQRUFHQ.js +0 -7
  608. package/public/assets/js/chunks/quick-switcher-controller-A6SKH5HI.js +0 -5
  609. package/public/assets/js/chunks/r-NVPCXGTR.js +0 -1
  610. package/public/assets/js/chunks/radar-KQ55EAFF-OPO64DRI.js +0 -1
  611. package/public/assets/js/chunks/requirementDiagram-Z7DCOOCP-ASW7IPJL.js +0 -73
  612. package/public/assets/js/chunks/ro-RO-E2P6TFZI-RJFCULYF.js +0 -12
  613. package/public/assets/js/chunks/roundRect-Z3DX3W5S.js +0 -1
  614. package/public/assets/js/chunks/rpm-UEA257HD.js +0 -1
  615. package/public/assets/js/chunks/ru-RU-YBIIY43T-BF27TNVK.js +0 -10
  616. package/public/assets/js/chunks/ruby-KPQRAJGE.js +0 -1
  617. package/public/assets/js/chunks/sankeyDiagram-WA2Y5GQK-W6BBWCLW.js +0 -10
  618. package/public/assets/js/chunks/sas-L7VATVH5.js +0 -1
  619. package/public/assets/js/chunks/scheme-T2NOWR3P.js +0 -1
  620. package/public/assets/js/chunks/sequenceDiagram-2WXFIKYE-H4G3ISLN.js +0 -145
  621. package/public/assets/js/chunks/shell-DLVDUNFA.js +0 -1
  622. package/public/assets/js/chunks/si-LK-673C2CI2-IOFGU4U2.js +0 -1
  623. package/public/assets/js/chunks/sieve-BKBZYDBU.js +0 -1
  624. package/public/assets/js/chunks/sk-SK-CKZHQ4AP-6O5JGN26.js +0 -7
  625. package/public/assets/js/chunks/sl-SI-557H2GWM-2NEHLV7W.js +0 -6
  626. package/public/assets/js/chunks/smalltalk-WRJQKJSD.js +0 -1
  627. package/public/assets/js/chunks/solr-66B3BIDL.js +0 -1
  628. package/public/assets/js/chunks/sparql-S25Z47JG.js +0 -1
  629. package/public/assets/js/chunks/spreadsheet-B272EF7Y.js +0 -1
  630. package/public/assets/js/chunks/sql-BPLIIUYC.js +0 -1
  631. package/public/assets/js/chunks/stateDiagram-RAJIS63D-OF5XXRUS.js +0 -1
  632. package/public/assets/js/chunks/stateDiagram-v2-FVOUBMTO-IV2CSQSQ.js +0 -1
  633. package/public/assets/js/chunks/stex-4IJY64QX.js +0 -1
  634. package/public/assets/js/chunks/stylus-PJUHLGPT.js +0 -1
  635. package/public/assets/js/chunks/subset-shared.chunk-4NMWHS4D.js +0 -1
  636. package/public/assets/js/chunks/subset-worker.chunk-NTLP7Y66.js +0 -1
  637. package/public/assets/js/chunks/sv-SE-XOPKKDWS-Q2L6KGFV.js +0 -8
  638. package/public/assets/js/chunks/swift-UYHTO4SX.js +0 -1
  639. package/public/assets/js/chunks/ta-IN-XBH7DQI3-ISSUGZAK.js +0 -6
  640. package/public/assets/js/chunks/tcl-OQ5J3VO2.js +0 -1
  641. package/public/assets/js/chunks/textile-NOGVBEYF.js +0 -1
  642. package/public/assets/js/chunks/th-TH-TOCWH3R4-TABEAMJA.js +0 -1
  643. package/public/assets/js/chunks/tiddlywiki-SYTK4QUE.js +0 -1
  644. package/public/assets/js/chunks/tiki-P7K4ZLOM.js +0 -1
  645. package/public/assets/js/chunks/timeline-definition-YZTLITO2-HBCANIUC.js +0 -61
  646. package/public/assets/js/chunks/toml-AUZYRP36.js +0 -1
  647. package/public/assets/js/chunks/tr-TR-GXW6CYY5-5NQRN52Y.js +0 -4
  648. package/public/assets/js/chunks/treemap-KZPCXAKY-WYMCT5F7.js +0 -1
  649. package/public/assets/js/chunks/troff-XFYJNQOJ.js +0 -1
  650. package/public/assets/js/chunks/ttcn-AK2IXWU6.js +0 -1
  651. package/public/assets/js/chunks/ttcn-cfg-3IDPIYPU.js +0 -1
  652. package/public/assets/js/chunks/turtle-OIDMF46P.js +0 -1
  653. package/public/assets/js/chunks/uk-UA-IJKTNUDG-2IIL3TO5.js +0 -6
  654. package/public/assets/js/chunks/uz-UZ-TBZZEA4V-X22KVKBP.js +0 -1
  655. package/public/assets/js/chunks/vb-J6K4XVA2.js +0 -1
  656. package/public/assets/js/chunks/vbscript-FM7DDZZE.js +0 -1
  657. package/public/assets/js/chunks/velocity-6KZFEOFD.js +0 -1
  658. package/public/assets/js/chunks/vennDiagram-LZ73GAT5-EBRF3MZR.js +0 -34
  659. package/public/assets/js/chunks/verilog-EWWQPMNN.js +0 -1
  660. package/public/assets/js/chunks/vhdl-CJ3M4IHI.js +0 -1
  661. package/public/assets/js/chunks/vi-VN-MULSGNVB-TENM65C7.js +0 -7
  662. package/public/assets/js/chunks/webidl-XVBHXCRV.js +0 -1
  663. package/public/assets/js/chunks/xquery-7WZOZ4UK.js +0 -1
  664. package/public/assets/js/chunks/xychartDiagram-JWTSCODW-WIFVRQPR.js +0 -7
  665. package/public/assets/js/chunks/yacas-MZ2ZZPF3.js +0 -1
  666. package/public/assets/js/chunks/z80-I447CBF7.js +0 -1
  667. package/public/assets/js/chunks/zh-CN-MVX3E32U-S5VA2BA5.js +0 -11
  668. package/public/assets/js/chunks/zh-HK-JNU5RLIE-A4VUKZFV.js +0 -1
  669. package/public/assets/js/chunks/zh-TW-LENVCA6T-KFB6KHMM.js +0 -9
  670. package/public/assets/js/excalidraw-editor-5YWMGLKF.js +0 -430
  671. package/public/assets/js/excalidraw-editor-7ORML5YA.css +0 -1
  672. package/public/assets/js/excalidraw-editor.css +0 -1
  673. package/public/assets/js/excalidraw-editor.js +0 -1
  674. package/public/assets/js/main.js +0 -702
  675. package/public/assets/js/preview-render-worker.js +0 -30
  676. /package/{public/assets/js/assets/Assistant-Bold-ZDZZ6JHA.woff2 → dist/client/assets/Assistant-Bold-gm-uSS1B.woff2} +0 -0
  677. /package/{public/assets/js/assets/Assistant-Medium-DZ25RZU3.woff2 → dist/client/assets/Assistant-Medium-DrcxCXg3.woff2} +0 -0
  678. /package/{public/assets/js/assets/Assistant-Regular-PLF2XOGW.woff2 → dist/client/assets/Assistant-Regular-DVxZuzxb.woff2} +0 -0
  679. /package/{public/assets/js/assets/Assistant-SemiBold-CZ5MX6FK.woff2 → dist/client/assets/Assistant-SemiBold-SCI4bEL9.woff2} +0 -0
  680. /package/{public → src/client}/assets/vendor/highlight/github-dark.min.css +0 -0
  681. /package/{public → src/client}/assets/vendor/highlight/github.min.css +0 -0
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  getVaultFileKind,
3
+ isDrawioFilePath,
3
4
  isExcalidrawFilePath,
4
5
  isImageAttachmentFilePath,
5
6
  isMermaidFilePath,
@@ -12,6 +13,10 @@ export const workspaceFeature = {
12
13
  return isExcalidrawFilePath(filePath);
13
14
  },
14
15
 
16
+ isDrawioFile(filePath) {
17
+ return isDrawioFilePath(filePath);
18
+ },
19
+
15
20
  isImageFile(filePath) {
16
21
  return isImageAttachmentFilePath(filePath);
17
22
  },
@@ -91,6 +96,10 @@ export const workspaceFeature = {
91
96
  this.workspacePreviewController.renderExcalidrawFilePreview(filePath);
92
97
  },
93
98
 
99
+ renderDrawioFilePreview(filePath) {
100
+ this.workspacePreviewController.renderDrawioFilePreview(filePath);
101
+ },
102
+
94
103
  renderImageFilePreview(filePath) {
95
104
  this.workspacePreviewController.renderImageFilePreview(filePath);
96
105
  },
@@ -76,6 +76,8 @@ export function bindAppShellElements(doc = document) {
76
76
  tabLockTitle: doc.getElementById('tabLockTitle'),
77
77
  toolbarCenter: doc.getElementById('toolbarCenter'),
78
78
  toolbarDiffBadge: doc.getElementById('toolbarDiffBadge'),
79
+ toolbarOverflowMenu: doc.getElementById('toolbarOverflowMenu'),
80
+ toolbarOverflowToggle: doc.getElementById('toolbarOverflowToggle'),
79
81
  sidebarTabs: doc.getElementById('sidebarTabs'),
80
82
  };
81
83
  }
@@ -79,6 +79,10 @@ function createExcalidrawPlaceholder({ embedKey, label, target }) {
79
79
  return `<span class="excalidraw-embed-placeholder diagram-preview-shell" data-embed-key="${escapeHtml(embedKey)}" data-embed-target="${escapeHtml(target)}" data-embed-label="${escapeHtml(label)}"><span class="excalidraw-embed-placeholder-card diagram-preview-placeholder-card"><span class="excalidraw-embed-placeholder-copy diagram-preview-placeholder-copy"><strong>${escapeHtml(label)}</strong><span>Loads when visible</span></span><button type="button" class="excalidraw-embed-placeholder-btn diagram-preview-placeholder-btn" data-embed-key="${escapeHtml(embedKey)}">Load diagram</button></span></span>`;
80
80
  }
81
81
 
82
+ function createDrawioPlaceholder({ embedKey, label, target }) {
83
+ return `<span class="drawio-embed-placeholder diagram-preview-shell" data-drawio-key="${escapeHtml(embedKey)}" data-drawio-target="${escapeHtml(target)}" data-drawio-label="${escapeHtml(label)}" data-drawio-mode="view"><span class="drawio-embed-placeholder-card diagram-preview-placeholder-card"><span class="drawio-embed-placeholder-copy diagram-preview-placeholder-copy"><strong>${escapeHtml(label)}</strong><span>Loads when visible</span></span><button type="button" class="drawio-embed-placeholder-btn diagram-preview-placeholder-btn" data-drawio-key="${escapeHtml(embedKey)}">Load diagram</button></span></span>`;
84
+ }
85
+
82
86
  function getDirectVideoMimeType(pathname = '') {
83
87
  const match = pathname.toLowerCase().match(/\.(mp4|ogg|webm)$/i);
84
88
  if (!match) {
@@ -220,12 +224,13 @@ function resolveLocalAttachmentUrl(source = '', {
220
224
  }
221
225
 
222
226
  function renderInlineWikiText(content, {
227
+ drawioEmbedCounts,
223
228
  excalidrawEmbedCounts,
224
229
  fileList,
225
230
  mermaidEmbedCounts,
226
231
  plantUmlEmbedCounts,
227
232
  }) {
228
- const regex = /!\[\[([^\]|]+\.(?:excalidraw|mmd|mermaid|puml|plantuml))(?:\|([^\]]+))?\]\]|\[\[([^\]|]+)(?:\|([^\]]+))?\]\]/gi;
233
+ const regex = /!\[\[([^\]|]+\.(?:excalidraw|drawio|mmd|mermaid|puml|plantuml))(?:\|([^\]]+))?\]\]|\[\[([^\]|]+)(?:\|([^\]]+))?\]\]/gi;
229
234
  let lastIndex = 0;
230
235
  let html = '';
231
236
  let match;
@@ -247,6 +252,14 @@ function renderInlineWikiText(content, {
247
252
  label: normalizePreviewTypography(label.replace(/\.excalidraw$/i, '')),
248
253
  target,
249
254
  });
255
+ } else if (/\.drawio$/i.test(target)) {
256
+ const occurrenceIndex = drawioEmbedCounts.get(target) ?? 0;
257
+ drawioEmbedCounts.set(target, occurrenceIndex + 1);
258
+ html += createDrawioPlaceholder({
259
+ embedKey: `${target}#${occurrenceIndex}`,
260
+ label: normalizePreviewTypography(label.replace(/\.drawio$/i, '')),
261
+ target,
262
+ });
250
263
  } else if (/\.(?:mmd|mermaid)$/i.test(target)) {
251
264
  const occurrenceIndex = mermaidEmbedCounts.get(target) ?? 0;
252
265
  mermaidEmbedCounts.set(target, occurrenceIndex + 1);
@@ -325,6 +338,7 @@ function createMarkdownRenderer(fileList = [], {
325
338
  });
326
339
  });
327
340
 
341
+ const drawioEmbedCounts = new Map();
328
342
  const excalidrawEmbedCounts = new Map();
329
343
  const mermaidCounts = new Map();
330
344
  const mermaidEmbedCounts = new Map();
@@ -398,6 +412,7 @@ function createMarkdownRenderer(fileList = [], {
398
412
 
399
413
  if (content.startsWith('[x] ') || content.startsWith('[X] ')) {
400
414
  return `<input type="checkbox" checked disabled> ${renderInlineWikiText(content.slice(4), {
415
+ drawioEmbedCounts,
401
416
  excalidrawEmbedCounts,
402
417
  fileList,
403
418
  mermaidEmbedCounts,
@@ -407,6 +422,7 @@ function createMarkdownRenderer(fileList = [], {
407
422
 
408
423
  if (content.startsWith('[ ] ')) {
409
424
  return `<input type="checkbox" disabled> ${renderInlineWikiText(content.slice(4), {
425
+ drawioEmbedCounts,
410
426
  excalidrawEmbedCounts,
411
427
  fileList,
412
428
  mermaidEmbedCounts,
@@ -415,6 +431,7 @@ function createMarkdownRenderer(fileList = [], {
415
431
  }
416
432
 
417
433
  return renderInlineWikiText(content, {
434
+ drawioEmbedCounts,
418
435
  excalidrawEmbedCounts,
419
436
  fileList,
420
437
  mermaidEmbedCounts,
@@ -1,6 +1,7 @@
1
1
  export const LARGE_DOCUMENT_CHAR_THRESHOLD = 150000;
2
2
  export const LARGE_DOCUMENT_MERMAID_THRESHOLD = 20;
3
3
  export const LARGE_DOCUMENT_EXCALIDRAW_THRESHOLD = 8;
4
+ export const LARGE_DOCUMENT_DRAWIO_THRESHOLD = 8;
4
5
  export const LARGE_DOCUMENT_PLANTUML_THRESHOLD = 12;
5
6
 
6
7
  function countMatches(source, pattern) {
@@ -15,6 +16,7 @@ export function analyzeMarkdownComplexity(markdownText = '') {
15
16
 
16
17
  return {
17
18
  chars: source.length,
19
+ drawioEmbeds: countMatches(source, /!\[\[[^\]]+\.drawio(?:\|[^\]]+)?\]\]/gi),
18
20
  excalidrawEmbeds: countMatches(source, /!\[\[[^\]]+\.excalidraw(?:\|[^\]]+)?\]\]/gi),
19
21
  mermaidBlocks: countMatches(source, /(^|\n)```mermaid\b/gi) + mermaidEmbeds,
20
22
  plantumlBlocks: plantUmlFences + plantUmlEmbeds,
@@ -27,6 +29,7 @@ export function isLargeDocumentStats(stats) {
27
29
  && (
28
30
  stats.chars >= LARGE_DOCUMENT_CHAR_THRESHOLD
29
31
  || stats.mermaidBlocks >= LARGE_DOCUMENT_MERMAID_THRESHOLD
32
+ || stats.drawioEmbeds >= LARGE_DOCUMENT_DRAWIO_THRESHOLD
30
33
  || stats.excalidrawEmbeds >= LARGE_DOCUMENT_EXCALIDRAW_THRESHOLD
31
34
  || stats.plantumlBlocks >= LARGE_DOCUMENT_PLANTUML_THRESHOLD
32
35
  )
@@ -37,6 +40,7 @@ export function getRenderProfile(markdownText = '') {
37
40
  const source = String(markdownText);
38
41
  const hasMermaid = /(^|\n)```mermaid\b/i.test(source)
39
42
  || /!\[\[[^\]]+\.(?:mmd|mermaid)(?:\|[^\]]+)?\]\]/i.test(source);
43
+ const hasDrawioEmbed = /!\[\[[^\]]+\.drawio(?:\|[^\]]+)?\]\]/i.test(source);
40
44
  const hasExcalidrawEmbed = /!\[\[[^\]]+\.excalidraw(?:\|[^\]]+)?\]\]/i.test(source);
41
45
  const hasPlantUml = /(^|\n)```(?:plantuml|puml)\b/i.test(source)
42
46
  || /!\[\[[^\]]+\.(?:puml|plantuml)(?:\|[^\]]+)?\]\]/i.test(source);
@@ -49,7 +53,7 @@ export function getRenderProfile(markdownText = '') {
49
53
  };
50
54
  }
51
55
 
52
- if (hasMermaid || hasExcalidrawEmbed || hasPlantUml) {
56
+ if (hasMermaid || hasDrawioEmbed || hasExcalidrawEmbed || hasPlantUml) {
53
57
  return {
54
58
  debounceMs: 0,
55
59
  deferUntilIdle: false,
@@ -9,6 +9,7 @@ export class WorkspaceChromeController {
9
9
  getDisplayName,
10
10
  loadBacklinks,
11
11
  onBeforeFileOpen,
12
+ onRenderDrawioPreview,
12
13
  onFileOpenError,
13
14
  onFileOpenReady,
14
15
  onRenderExcalidrawPreview,
@@ -27,6 +28,7 @@ export class WorkspaceChromeController {
27
28
  this.getDisplayName = getDisplayName;
28
29
  this.loadBacklinks = loadBacklinks;
29
30
  this.onBeforeFileOpen = onBeforeFileOpen;
31
+ this.onRenderDrawioPreview = onRenderDrawioPreview;
30
32
  this.onFileOpenError = onFileOpenError;
31
33
  this.onFileOpenReady = onFileOpenReady;
32
34
  this.onRenderExcalidrawPreview = onRenderExcalidrawPreview;
@@ -71,6 +73,7 @@ export class WorkspaceChromeController {
71
73
  }
72
74
 
73
75
  finalizeFileOpen({
76
+ isDrawio = false,
74
77
  filePath,
75
78
  isExcalidraw = false,
76
79
  isImage = false,
@@ -80,6 +83,9 @@ export class WorkspaceChromeController {
80
83
  if (isExcalidraw) {
81
84
  this.onRenderExcalidrawPreview(filePath);
82
85
  }
86
+ if (isDrawio) {
87
+ this.onRenderDrawioPreview(filePath);
88
+ }
83
89
  if (isImage) {
84
90
  this.onRenderImagePreview(filePath);
85
91
  }
@@ -21,6 +21,7 @@ export class WorkspaceCoordinator {
21
21
  getLocalUser,
22
22
  getStoredUserName,
23
23
  getTheme,
24
+ isDrawioFile,
24
25
  isExcalidrawFile,
25
26
  isImageFile,
26
27
  isMermaidFile,
@@ -41,6 +42,7 @@ export class WorkspaceCoordinator {
41
42
  onSessionAssigned = null,
42
43
  onFileOpenMetric = null,
43
44
  onRenderExcalidrawPreview,
45
+ onRenderDrawioPreview,
44
46
  onRenderImagePreview,
45
47
  onSyncWrapToggle,
46
48
  onUpdateActiveFile,
@@ -50,6 +52,7 @@ export class WorkspaceCoordinator {
50
52
  onViewModeReset,
51
53
  renderPresence,
52
54
  scrollContainerForSession,
55
+ shouldUseDrawioPreview = null,
53
56
  showEditorLoading,
54
57
  stateStore,
55
58
  }) {
@@ -63,6 +66,7 @@ export class WorkspaceCoordinator {
63
66
  this.getLocalUser = getLocalUser;
64
67
  this.getStoredUserName = getStoredUserName;
65
68
  this.getTheme = getTheme;
69
+ this.isDrawioFile = isDrawioFile ?? (() => false);
66
70
  this.isExcalidrawFile = isExcalidrawFile ?? (() => false);
67
71
  this.isImageFile = isImageFile ?? (() => false);
68
72
  this.isMermaidFile = isMermaidFile ?? (() => false);
@@ -89,6 +93,7 @@ export class WorkspaceCoordinator {
89
93
  this.onUpdateLobbyCurrentFile = onUpdateLobbyCurrentFile;
90
94
  this.onUpdateVisibleChrome = onUpdateVisibleChrome;
91
95
  this.renderPresence = renderPresence;
96
+ this.shouldUseDrawioPreview = shouldUseDrawioPreview ?? (() => true);
92
97
  this.stateStore = stateStore;
93
98
  this.session = null;
94
99
  this.lifecycle = new FileOpenLifecycle({
@@ -102,6 +107,7 @@ export class WorkspaceCoordinator {
102
107
  getDisplayName,
103
108
  loadBacklinks,
104
109
  onBeforeFileOpen,
110
+ onRenderDrawioPreview,
105
111
  onFileOpenError,
106
112
  onFileOpenReady,
107
113
  onRenderExcalidrawPreview,
@@ -149,17 +155,18 @@ export class WorkspaceCoordinator {
149
155
  this.cleanupAfterSessionDestroy();
150
156
  }
151
157
 
152
- async openFile(filePath) {
158
+ async openFile(filePath, { drawioMode = null } = {}) {
153
159
  if (!this.isTabActive()) {
154
160
  return;
155
161
  }
156
162
 
163
+ const isDrawio = this.isDrawioFile(filePath) && drawioMode !== 'text' && this.shouldUseDrawioPreview(filePath);
157
164
  const isExcalidraw = this.isExcalidrawFile(filePath);
158
165
  const isImage = this.isImageFile(filePath);
159
166
  const isMermaid = this.isMermaidFile(filePath);
160
167
  const isPlantUml = this.isPlantUmlFile(filePath);
161
168
 
162
- if (filePath === this.stateStore.get('currentFilePath') && (this.session || isExcalidraw || isImage)) {
169
+ if (filePath === this.stateStore.get('currentFilePath') && (this.session || isDrawio || isExcalidraw || isImage)) {
163
170
  this.onUpdateActiveFile(filePath);
164
171
  this.onUpdateLobbyCurrentFile(filePath);
165
172
  return;
@@ -170,11 +177,11 @@ export class WorkspaceCoordinator {
170
177
 
171
178
  this.cleanupSession();
172
179
  const chromeState = this.chromeController.prepareForFileOpen(filePath, {
173
- resetConnectionState: !isExcalidraw && !isImage,
180
+ resetConnectionState: !isDrawio && !isExcalidraw && !isImage,
174
181
  });
175
182
  this.reportFileOpenMetric('open_started', loadToken, { filePath });
176
183
 
177
- if (isExcalidraw || isImage) {
184
+ if (isDrawio || isExcalidraw || isImage) {
178
185
  this.onSessionAssigned?.(null);
179
186
 
180
187
  if (loadToken !== this.stateStore.get('sessionLoadToken')) {
@@ -184,6 +191,7 @@ export class WorkspaceCoordinator {
184
191
  this.chromeController.markFileOpenReady(null);
185
192
  this.chromeController.finalizeFileOpen({
186
193
  filePath,
194
+ isDrawio,
187
195
  isExcalidraw,
188
196
  isImage,
189
197
  session: null,
@@ -7,10 +7,12 @@ import { resolveApiUrl } from '../domain/runtime-paths.js';
7
7
  export class WorkspacePreviewController {
8
8
  constructor({
9
9
  backlinksPanel,
10
+ drawioEmbed,
10
11
  elements,
11
12
  excalidrawEmbed,
12
13
  getDisplayName,
13
14
  getSession,
15
+ isDrawioFile,
14
16
  isExcalidrawFile,
15
17
  isImageFile,
16
18
  isMermaidFile,
@@ -23,10 +25,20 @@ export class WorkspacePreviewController {
23
25
  videoEmbed,
24
26
  }) {
25
27
  this.backlinksPanel = backlinksPanel;
28
+ this.drawioEmbed = drawioEmbed ?? {
29
+ detachForCommit() {},
30
+ hydrateVisibleEmbeds() {},
31
+ reconcileEmbeds() {},
32
+ setHydrationPaused() {},
33
+ syncLayout() {},
34
+ updateLocalUser() {},
35
+ updateTheme() {},
36
+ };
26
37
  this.elements = elements;
27
38
  this.excalidrawEmbed = excalidrawEmbed;
28
39
  this.getDisplayName = getDisplayName;
29
40
  this.getSession = getSession;
41
+ this.isDrawioFile = isDrawioFile ?? (() => false);
30
42
  this.isExcalidrawFile = isExcalidrawFile ?? (() => false);
31
43
  this.isImageFile = isImageFile ?? (() => false);
32
44
  this.isMermaidFile = isMermaidFile ?? (() => false);
@@ -60,6 +72,7 @@ export class WorkspacePreviewController {
60
72
  }
61
73
 
62
74
  resetPreviewMode() {
75
+ this.elements.previewContent?.classList.remove('is-drawio-file-preview');
63
76
  this.elements.previewContent?.classList.remove('is-excalidraw-file-preview');
64
77
  this.elements.previewContent?.classList.remove('is-image-file-preview');
65
78
  this.elements.previewContent?.classList.remove('is-mermaid-file-preview');
@@ -67,6 +80,7 @@ export class WorkspacePreviewController {
67
80
  }
68
81
 
69
82
  syncFileChrome(filePath) {
83
+ const isDrawio = this.isDrawioFile(filePath);
70
84
  const isExcalidraw = this.isExcalidrawFile(filePath);
71
85
  const isImage = this.isImageFile(filePath);
72
86
  const isMarkdown = isMarkdownFilePath(filePath);
@@ -79,7 +93,7 @@ export class WorkspacePreviewController {
79
93
  this.elements.previewContent?.classList.toggle('is-mermaid-file-preview', isMermaid);
80
94
  this.elements.previewContent?.classList.toggle('is-plantuml-file-preview', isPlantUml);
81
95
 
82
- if (isExcalidraw || isImage) {
96
+ if (isDrawio || isExcalidraw || isImage) {
83
97
  this.layoutController.setView('preview', { persist: false });
84
98
  this.outlineController.close();
85
99
  this.backlinksPanel.clear();
@@ -99,6 +113,7 @@ export class WorkspacePreviewController {
99
113
  }
100
114
 
101
115
  this.videoEmbed?.detachForCommit();
116
+ this.drawioEmbed.detachForCommit();
102
117
  this.excalidrawEmbed.detachForCommit();
103
118
  this.resetPreviewMode();
104
119
  previewElement.classList.add('is-excalidraw-file-preview');
@@ -124,11 +139,53 @@ export class WorkspacePreviewController {
124
139
  this.scrollSyncController.setLargeDocumentMode(false);
125
140
  this.scrollSyncController.invalidatePreviewBlocks();
126
141
  this.videoEmbed?.reconcileEmbeds(previewElement);
142
+ this.drawioEmbed.reconcileEmbeds(previewElement);
127
143
  this.excalidrawEmbed.reconcileEmbeds(previewElement, { isLargeDocument: false });
144
+ this.drawioEmbed.hydrateVisibleEmbeds();
128
145
  this.excalidrawEmbed.hydrateVisibleEmbeds();
129
146
  this.schedulePreviewLayoutSyncCallback({ delayMs: 0 });
130
147
  }
131
148
 
149
+ renderDrawioFilePreview(filePath) {
150
+ const previewElement = this.elements.previewContent;
151
+ if (!previewElement) {
152
+ return;
153
+ }
154
+
155
+ this.videoEmbed?.detachForCommit();
156
+ this.drawioEmbed.detachForCommit();
157
+ this.excalidrawEmbed.detachForCommit();
158
+ this.resetPreviewMode();
159
+ previewElement.classList.add('is-drawio-file-preview');
160
+ const renderHost = this.previewRenderer.ensureRenderHost();
161
+ this.previewRenderer.normalizePreviewChildren(renderHost);
162
+
163
+ const placeholder = document.createElement('div');
164
+ placeholder.className = 'drawio-embed-placeholder';
165
+ placeholder.dataset.drawioKey = `${filePath}#file-preview`;
166
+ placeholder.dataset.drawioLabel = this.getDisplayName(filePath);
167
+ placeholder.dataset.drawioMode = 'edit';
168
+ placeholder.dataset.drawioTarget = filePath;
169
+ const loadingShell = document.createElement('div');
170
+ loadingShell.className = 'preview-shell';
171
+ loadingShell.textContent = 'Loading draw.io preview…';
172
+ placeholder.appendChild(loadingShell);
173
+
174
+ if (renderHost) {
175
+ renderHost.replaceChildren(placeholder);
176
+ renderHost.style.minHeight = '';
177
+ }
178
+
179
+ previewElement.dataset.renderPhase = 'ready';
180
+ this.outlineController.refresh();
181
+ this.scrollSyncController.setLargeDocumentMode(false);
182
+ this.scrollSyncController.invalidatePreviewBlocks();
183
+ this.videoEmbed?.reconcileEmbeds(previewElement);
184
+ this.drawioEmbed.reconcileEmbeds(previewElement);
185
+ this.drawioEmbed.hydrateVisibleEmbeds();
186
+ this.schedulePreviewLayoutSyncCallback({ delayMs: 0 });
187
+ }
188
+
132
189
  renderImageFilePreview(filePath) {
133
190
  const previewElement = this.elements.previewContent;
134
191
  if (!previewElement) {
@@ -136,6 +193,7 @@ export class WorkspacePreviewController {
136
193
  }
137
194
 
138
195
  this.videoEmbed?.detachForCommit();
196
+ this.drawioEmbed.detachForCommit();
139
197
  this.excalidrawEmbed.detachForCommit();
140
198
  this.resetPreviewMode();
141
199
  previewElement.classList.add('is-image-file-preview');
@@ -171,6 +229,7 @@ export class WorkspacePreviewController {
171
229
  }
172
230
 
173
231
  this.videoEmbed?.detachForCommit();
232
+ this.drawioEmbed.detachForCommit();
174
233
  this.excalidrawEmbed.detachForCommit();
175
234
  this.resetPreviewMode();
176
235
  const renderHost = this.previewRenderer.ensureRenderHost();
@@ -239,8 +298,9 @@ export class WorkspacePreviewController {
239
298
  setPreviewLayoutSyncTimer(null);
240
299
 
241
300
  const hasSession = Boolean(this.getSession());
301
+ const isDrawioPreview = this.elements.previewContent?.classList?.contains?.('is-drawio-file-preview') ?? false;
242
302
  const isExcalidrawPreview = this.elements.previewContent?.classList?.contains?.('is-excalidraw-file-preview') ?? false;
243
- if ((!hasSession && !isExcalidrawPreview) || !this.elements.previewContent) {
303
+ if ((!hasSession && !isDrawioPreview && !isExcalidrawPreview) || !this.elements.previewContent) {
244
304
  return;
245
305
  }
246
306
 
@@ -256,8 +316,9 @@ export class WorkspacePreviewController {
256
316
  this.previewRenderer.scheduleActiveMermaidRefit();
257
317
  this.previewRenderer.scheduleActivePlantUmlRefit();
258
318
  this.videoEmbed?.syncLayout();
319
+ this.drawioEmbed.syncLayout();
259
320
  this.excalidrawEmbed.syncLayout();
260
- if (isExcalidrawPreview && !hasSession) {
321
+ if ((isDrawioPreview || isExcalidrawPreview) && !hasSession) {
261
322
  return;
262
323
  }
263
324
 
@@ -288,6 +349,7 @@ export class WorkspacePreviewController {
288
349
  const nextPaused = Boolean(isActive);
289
350
  setHydrationPaused(nextPaused);
290
351
  this.previewRenderer.setHydrationPaused(nextPaused);
352
+ this.drawioEmbed.setHydrationPaused(nextPaused);
291
353
  this.excalidrawEmbed.setHydrationPaused(nextPaused);
292
354
 
293
355
  if (nextPaused) {
@@ -4,6 +4,7 @@ export class WorkspaceRouteController {
4
4
  clearInitialFileBootstrap,
5
5
  clearStaticPreviewDocument = null,
6
6
  closeSidebarOnMobile,
7
+ drawioEmbed,
7
8
  elements,
8
9
  excalidrawEmbed,
9
10
  fileHistoryView = null,
@@ -38,6 +39,7 @@ export class WorkspaceRouteController {
38
39
  this.clearInitialFileBootstrap = clearInitialFileBootstrap;
39
40
  this.clearStaticPreviewDocument = clearStaticPreviewDocument;
40
41
  this.closeSidebarOnMobile = closeSidebarOnMobile;
42
+ this.drawioEmbed = drawioEmbed ?? { setHydrationPaused() {} };
41
43
  this.elements = elements;
42
44
  this.excalidrawEmbed = excalidrawEmbed;
43
45
  this.fileHistoryView = fileHistoryView;
@@ -113,7 +115,7 @@ export class WorkspaceRouteController {
113
115
  }
114
116
 
115
117
  this.setSidebarTab('files');
116
- await this.openFile(route.filePath);
118
+ await this.openFile(route.filePath, { drawioMode: route.drawioMode || null });
117
119
  }
118
120
 
119
121
  showEmptyState() {
@@ -243,14 +245,14 @@ export class WorkspaceRouteController {
243
245
  this.backlinksPanel.clear();
244
246
  }
245
247
 
246
- async openFile(filePath) {
248
+ async openFile(filePath, options = {}) {
247
249
  this.imageLightbox?.close?.();
248
250
  this.gitPanel.setSelection();
249
251
  this.gitDiffView.hide();
250
252
  this.fileHistoryView?.hide?.();
251
253
  this.clearStaticPreviewDocument?.();
252
254
  this.syncMainChrome({ mode: 'editor' });
253
- await this.workspaceCoordinator.openFile(filePath);
255
+ await this.workspaceCoordinator.openFile(filePath, options);
254
256
  this.setSession(this.workspaceCoordinator.getSession());
255
257
  }
256
258
 
@@ -270,6 +272,7 @@ export class WorkspaceRouteController {
270
272
  resetPreviewSurface() {
271
273
  this.imageLightbox?.close?.();
272
274
  this.previewRenderer.setHydrationPaused(false);
275
+ this.drawioEmbed.setHydrationPaused(false);
273
276
  this.excalidrawEmbed.setHydrationPaused(false);
274
277
  this.videoEmbed?.detachForCommit();
275
278
  this.scrollSyncController.setLargeDocumentMode(false);
@@ -15,12 +15,14 @@ import { LOBBY_CHAT_MESSAGE_MAX_LENGTH, LobbyPresence } from '../infrastructure/
15
15
  import { BrowserNavigationPort } from '../infrastructure/browser-navigation-port.js';
16
16
  import { BrowserNotificationPort } from '../infrastructure/browser-notification-port.js';
17
17
  import { BrowserPreferencesPort } from '../infrastructure/browser-preferences-port.js';
18
+ import { AppVersionMonitor } from '../infrastructure/app-version-monitor.js';
18
19
  import { getRuntimeConfig } from '../infrastructure/runtime-config.js';
19
20
  import { TabActivityLock } from '../infrastructure/tab-activity-lock.js';
20
21
  import { vaultApiClient } from '../infrastructure/vault-api-client.js';
21
22
  import { WorkspaceSyncClient } from '../infrastructure/workspace-sync-client.js';
22
23
  import { BacklinksPanel } from '../presentation/backlinks-panel.js';
23
24
  import { CommentUiController } from '../presentation/comment-ui-controller.js';
25
+ import { DrawioEmbedController } from '../presentation/drawio-embed-controller.js';
24
26
  import { ExcalidrawEmbedController } from '../presentation/excalidraw-embed-controller.js';
25
27
  import { FileExplorerController } from '../presentation/file-explorer-controller.js';
26
28
  import { FileHistoryViewController } from '../presentation/file-history-view-controller.js';
@@ -104,6 +106,7 @@ export class CollabMdAppShell {
104
106
  this._previewHydrationPaused = false;
105
107
  this._previewLayoutResizeObserver = null;
106
108
  this._previewLayoutSyncTimer = null;
109
+ this._reloadPromptShown = false;
107
110
  this._staticPreviewDocument = null;
108
111
  this.pendingGitResetPath = null;
109
112
  this.chatTimeFormatter = new Intl.DateTimeFormat(undefined, { hour: 'numeric', minute: '2-digit' });
@@ -116,6 +119,11 @@ export class CollabMdAppShell {
116
119
  this.mobileBreakpointQuery = window.matchMedia('(max-width: 768px)');
117
120
  this.pendingWorkspaceRequestIds = new Set();
118
121
  this._fileOpenPerf = null;
122
+ this.versionMonitor = new AppVersionMonitor({
123
+ currentBuildId: this.runtimeConfig.build?.id,
124
+ onUpdateAvailable: (payload) => this.promptForVersionReload(payload),
125
+ runtimeConfig: this.runtimeConfig,
126
+ });
119
127
 
120
128
  this.lobby = new LobbyPresence({
121
129
  preferredUserName: this.getStoredUserName(),
@@ -139,8 +147,10 @@ export class CollabMdAppShell {
139
147
  this.toastController = new ToastController(this.elements.toastContainer);
140
148
  this.chatToastController = new ToastController(this.elements.chatToastContainer);
141
149
  this.fileExplorer = new FileExplorerController({
150
+ mobileBreakpointQuery: this.mobileBreakpointQuery,
142
151
  onFileDelete: () => this.navigation.navigateToFile(null),
143
152
  onFileSelect: (filePath) => this.handleFileSelection(filePath, { closeSidebarOnMobile: true }),
153
+ pendingWorkspaceRequestIds: this.pendingWorkspaceRequestIds,
144
154
  toastController: this.toastController,
145
155
  });
146
156
  this.gitPanel = new GitPanelController({
@@ -185,6 +195,8 @@ export class CollabMdAppShell {
185
195
  });
186
196
  this.videoEmbed.reconcileEmbeds(this.elements.previewContent);
187
197
  this.videoEmbed.syncLayout();
198
+ this.drawioEmbed.reconcileEmbeds(this.elements.previewContent);
199
+ this.drawioEmbed.syncLayout();
188
200
  this.excalidrawEmbed.reconcileEmbeds(this.elements.previewContent, { isLargeDocument: stats.isLargeDocument });
189
201
  this.excalidrawEmbed.syncLayout();
190
202
  this.scrollSyncController.setLargeDocumentMode(stats.isLargeDocument);
@@ -193,10 +205,12 @@ export class CollabMdAppShell {
193
205
  },
194
206
  onBeforeRenderCommit: () => {
195
207
  this.videoEmbed.detachForCommit();
208
+ this.drawioEmbed.detachForCommit();
196
209
  this.excalidrawEmbed.detachForCommit();
197
210
  },
198
211
  onRenderComplete: () => {
199
212
  this.videoEmbed.syncLayout();
213
+ this.drawioEmbed.syncLayout();
200
214
  this.excalidrawEmbed.syncLayout();
201
215
  this.schedulePreviewLayoutSync({ delayMs: 0 });
202
216
  this.refreshCommentUiLayout();
@@ -230,6 +244,15 @@ export class CollabMdAppShell {
230
244
  previewElement: this.elements.previewContent,
231
245
  toastController: this.toastController,
232
246
  });
247
+ this.drawioEmbed = new DrawioEmbedController({
248
+ getLocalUser: () => this.lobby.getLocalUser(),
249
+ getTheme: () => this.themeController.getTheme(),
250
+ onOpenFile: (filePath) => filePath && this.navigation.navigateToFile(filePath),
251
+ onOpenTextFile: (filePath) => filePath && this.navigation.navigateToFile(filePath, { drawioMode: 'text' }),
252
+ previewContainer: this.elements.previewContainer,
253
+ previewElement: this.elements.previewContent,
254
+ toastController: this.toastController,
255
+ });
233
256
  this.commentUi = new CommentUiController({
234
257
  commentSelectionButton: this.elements.commentSelectionButton,
235
258
  commentsDrawer: this.elements.commentsDrawer,
@@ -251,10 +274,12 @@ export class CollabMdAppShell {
251
274
  });
252
275
  this.workspacePreviewController = new WorkspacePreviewController({
253
276
  backlinksPanel: this.backlinksPanel,
277
+ drawioEmbed: this.drawioEmbed,
254
278
  elements: this.elements,
255
279
  excalidrawEmbed: this.excalidrawEmbed,
256
280
  getDisplayName: (filePath) => this.getDisplayName(filePath),
257
281
  getSession: () => this.session,
282
+ isDrawioFile: (filePath) => this.isDrawioFile(filePath),
258
283
  isExcalidrawFile: (filePath) => this.isExcalidrawFile(filePath),
259
284
  isImageFile: (filePath) => this.isImageFile(filePath),
260
285
  isMermaidFile: (filePath) => this.isMermaidFile(filePath),
@@ -339,6 +364,7 @@ export class CollabMdAppShell {
339
364
  getLocalUser: () => this.lobby.getLocalUser(),
340
365
  getStoredUserName: () => this.getStoredUserName(),
341
366
  getTheme: () => this.themeController.getTheme(),
367
+ isDrawioFile: (filePath) => this.isDrawioFile(filePath),
342
368
  isExcalidrawFile: (filePath) => this.isExcalidrawFile(filePath),
343
369
  isImageFile: (filePath) => this.isImageFile(filePath),
344
370
  isMermaidFile: (filePath) => this.isMermaidFile(filePath),
@@ -385,6 +411,7 @@ export class CollabMdAppShell {
385
411
  this.session = session;
386
412
  this.commentUi.attachSession(session);
387
413
  },
414
+ onRenderDrawioPreview: (filePath) => this.renderDrawioFilePreview(filePath),
388
415
  onRenderExcalidrawPreview: (filePath) => this.renderExcalidrawFilePreview(filePath),
389
416
  onRenderImagePreview: (filePath) => this.renderImageFilePreview(filePath),
390
417
  onSyncWrapToggle: () => this.syncWrapToggle(),
@@ -404,6 +431,7 @@ export class CollabMdAppShell {
404
431
  onViewModeReset: () => this.resetPreviewMode(),
405
432
  renderPresence: () => this.renderPresence(),
406
433
  scrollContainerForSession: (session) => session.getScrollContainer(),
434
+ shouldUseDrawioPreview: () => Boolean(this.runtimeConfig.drawioBaseUrl),
407
435
  showEditorLoading: () => this.showEditorLoading(),
408
436
  stateStore: this.stateStore,
409
437
  });
@@ -412,6 +440,7 @@ export class CollabMdAppShell {
412
440
  clearInitialFileBootstrap: () => this.clearInitialFileBootstrap(),
413
441
  clearStaticPreviewDocument: () => this.clearStaticPreviewDocument(),
414
442
  closeSidebarOnMobile: () => this.closeSidebarOnMobile(),
443
+ drawioEmbed: this.drawioEmbed,
415
444
  elements: this.elements,
416
445
  excalidrawEmbed: this.excalidrawEmbed,
417
446
  fileHistoryView: this.fileHistoryView,