collabmd 0.1.39 → 0.1.40

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 (324) hide show
  1. package/README.md +7 -1
  2. package/dist/client/assets/{CodeMirrorEditor-UCMRAMCV-75Zi8U_A.js → CodeMirrorEditor-UCMRAMCV-CjJV4GGp.js} +1 -1
  3. package/dist/client/assets/{ar-SA-NXDWD63E-CTf_wpt3.js → ar-SA-NXDWD63E-BfWwfLiP.js} +1 -1
  4. package/dist/client/assets/{arc-DD8jaAGl.js → arc-B59iLcOr.js} +1 -1
  5. package/dist/client/assets/architecture-7EHR7CIX-M1SFnuBJ.js +1 -0
  6. package/dist/client/assets/{architectureDiagram-Q4EWVU46-BftXiJA8.js → architectureDiagram-3BPJPVTR-Cs4u0ty-.js} +3 -3
  7. package/dist/client/assets/{az-AZ-MXSORGZV-C_C9i9u3.js → az-AZ-MXSORGZV-D3w9H6nC.js} +1 -1
  8. package/dist/client/assets/{bg-BG-O6MV2KSF-YmfvQf63.js → bg-BG-O6MV2KSF-CqITeIE6.js} +1 -1
  9. package/dist/client/assets/blockDiagram-GPEHLZMM-C4RLg7wo.js +132 -0
  10. package/dist/client/assets/{bn-IN-MMW2ORAC-BTEFR4Ed.js → bn-BD-T2VJNT7N-DRxwOMG_.js} +1 -1
  11. package/dist/client/assets/{bn-BD-T2VJNT7N-BD0ob0JE.js → bn-IN-MMW2ORAC-BZcsVFhS.js} +1 -1
  12. package/dist/client/assets/{c4Diagram-AHTNJAMY-Gz7ZAK0d.js → c4Diagram-AAUBKEIU-DMK9WIWS.js} +2 -2
  13. package/dist/client/assets/{ca-ES-MKBCGNOG-aLX_cjA0.js → ca-ES-MKBCGNOG-D2cujUJ7.js} +1 -1
  14. package/dist/client/assets/channel-E9SBQ9z6.js +1 -0
  15. package/dist/client/assets/{chunk-EDXVE4YY-M4QxyGNt.js → chunk-2J33WTMH-Beqll06X.js} +1 -1
  16. package/dist/client/assets/chunk-3OPIFGDE-Kf30X6bZ.js +62 -0
  17. package/dist/client/assets/{chunk-4BX2VUAB-D5YiFdu1.js → chunk-4BX2VUAB-BVNkn9EH.js} +1 -1
  18. package/dist/client/assets/chunk-4EGX6M5U-6L36_8q8.js +1 -0
  19. package/dist/client/assets/{chunk-55IACEB6-VHgZjidg.js → chunk-55IACEB6-CaPPZbdp.js} +1 -1
  20. package/dist/client/assets/chunk-5DO6E6H7-BpgUf0HE.js +1 -0
  21. package/dist/client/assets/chunk-5ZQYHXKU-BJyABJSy.js +2 -0
  22. package/dist/client/assets/chunk-727SXJPM-DNANnyAn.js +206 -0
  23. package/dist/client/assets/chunk-AQP2D5EJ-D-ou9vaq.js +231 -0
  24. package/dist/client/assets/{chunk-LIHQZDEY-DtYrHuCi.js → chunk-BR22UD5L-CHoFxkAQ.js} +1 -1
  25. package/dist/client/assets/{chunk-BSJP7CBP-D2KkrA_B.js → chunk-BSJP7CBP-AmT6zI00.js} +1 -1
  26. package/dist/client/assets/chunk-CSCIHK7Q-BIoF4mTy.js +123 -0
  27. package/dist/client/assets/chunk-FHYWG6QK-qLbgayZT.js +1 -0
  28. package/dist/client/assets/{chunk-FMBD7UC4-qQT7MtX2.js → chunk-FMBD7UC4-DD6CIukb.js} +1 -1
  29. package/dist/client/assets/chunk-KSCS5N6A-DSHzBB4H.js +10 -0
  30. package/dist/client/assets/{chunk-ZZ45TVLE-DGIhE_ST.js → chunk-L5ZTLDWV-Ca0loQr2.js} +1 -1
  31. package/dist/client/assets/chunk-LZXEDZCA-D4QboL2E.js +2 -0
  32. package/dist/client/assets/chunk-MPE355IW-BGGMthoR.js +1 -0
  33. package/dist/client/assets/chunk-MZUSXYTE-CXyCvcyW.js +1 -0
  34. package/dist/client/assets/chunk-N66VUXT2-CZ58QOjk.js +1 -0
  35. package/dist/client/assets/{chunk-YZCP3GAM-D1jf1WUI.js → chunk-ND2GUHAM-3Xs0Awks.js} +1 -1
  36. package/dist/client/assets/chunk-NNHCCRGN--8l6bbR-.js +159 -0
  37. package/dist/client/assets/{chunk-X2U36JSP-D3OEPG7k.js → chunk-NZK2D7GU-w2jXiKa6.js} +1 -1
  38. package/dist/client/assets/{chunk-U2HBQHQK-BBXgsocS.js → chunk-O5CBEL6O-BFgstMja.js} +4 -4
  39. package/dist/client/assets/chunk-PUPMXCY4-JvkUXyIj.js +1 -0
  40. package/dist/client/assets/chunk-QZHKN3VN-9NMPSwDX.js +1 -0
  41. package/dist/client/assets/{chunk-SRAX5OIU-yDw8XRsi.js → chunk-SRAX5OIU-C_UPA-vt.js} +1 -1
  42. package/dist/client/assets/chunk-UIBZB4QT-B4OybPy_.js +1 -0
  43. package/dist/client/assets/chunk-WCWK7LTN-BOL8a2ua.js +1 -0
  44. package/dist/client/assets/chunk-WMDFGAFD-EzVSth95.js +35 -0
  45. package/dist/client/assets/chunk-WU5MYG2G-Bl8VQmZH.js +1 -0
  46. package/dist/client/assets/{chunk-XPW4576I-BUfyrOtN.js → chunk-XPW4576I-D5FnFhOk.js} +1 -1
  47. package/dist/client/assets/{chunk-Z5NKEFVG-Vu8zBV4H.js → chunk-Z5NKEFVG-GcpeeLo6.js} +1 -1
  48. package/dist/client/assets/chunk-tBc3Ke6Z.js +1 -0
  49. package/dist/client/assets/classDiagram-4FO5ZUOK-D7YhYDLZ.js +1 -0
  50. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-COI4atGv.js +1 -0
  51. package/dist/client/assets/{cose-bilkent-S5V4N54A-A8ssRFyt.js → cose-bilkent-S5V4N54A-Cx3Qt7pR.js} +1 -1
  52. package/dist/client/assets/{cs-CZ-V77HGUP7-Du3y53BB.js → cs-CZ-V77HGUP7-BXqhmWZb.js} +1 -1
  53. package/dist/client/assets/{da-DK-I5RFNTM4-CDJtjf5s.js → da-DK-I5RFNTM4-raD_lQnT.js} +1 -1
  54. package/dist/client/assets/dagre-BM42HDAG-BpURvxT4.js +4 -0
  55. package/dist/client/assets/dagre-BcZLxzJJ.js +1 -0
  56. package/dist/client/assets/{de-CH-WLRDEVBV-CLV2tVw6.js → de-CH-WLRDEVBV-CyNG_YAO.js} +1 -1
  57. package/dist/client/assets/{de-DE-DTI4WUSC-B53J0BQ8.js → de-DE-DTI4WUSC-BAnqlByT.js} +1 -1
  58. package/dist/client/assets/diagram-2AECGRRQ-DJH0JVlq.js +43 -0
  59. package/dist/client/assets/{diagram-5BDNPKRD-BuK-UBuN.js → diagram-5GNKFQAL-DQG4Q1eS.js} +2 -2
  60. package/dist/client/assets/diagram-KO2AKTUF-hx21Lv-5.js +3 -0
  61. package/dist/client/assets/{diagram-TYMM5635-CT8BdT4s.js → diagram-LMA3HP47--QODJMa9.js} +1 -1
  62. package/dist/client/assets/diagram-OG6HWLK6-CB30hX1a.js +24 -0
  63. package/dist/client/assets/{dist-Bz-8_JmE.js → dist-6oqNX0NJ.js} +1 -1
  64. package/dist/client/assets/dist-B0U2pnHE.js +1 -0
  65. package/dist/client/assets/{dist-tRNsnttY.js → dist-B1BRR2vO.js} +1 -1
  66. package/dist/client/assets/{dist-BEk5kTf_.js → dist-B48_21rM.js} +1 -1
  67. package/dist/client/assets/{dist-CRyP6okk.js → dist-BBsYBvEp.js} +1 -1
  68. package/dist/client/assets/{dist-ZuMKSK7c.js → dist-BNDWUlMx.js} +1 -1
  69. package/dist/client/assets/{dist-CQZDuOJ9.js → dist-BOA6xeuH.js} +1 -1
  70. package/dist/client/assets/{dist-wkd-N1L5.js → dist-BQuic6-d.js} +1 -1
  71. package/dist/client/assets/{dist-NcJIpTJ8.js → dist-Bhn_Fiol.js} +1 -1
  72. package/dist/client/assets/dist-BoCYrsTA.js +1 -0
  73. package/dist/client/assets/{dist-_THc9HiJ.js → dist-BsTc7qjG.js} +1 -1
  74. package/dist/client/assets/dist-C-W89K9S.js +1 -0
  75. package/dist/client/assets/{dist-QktK6LIH.js → dist-CAlqrzaF.js} +1 -1
  76. package/dist/client/assets/dist-CBTadfRi2.js +1 -0
  77. package/dist/client/assets/{dist-8EAyH6_p.js → dist-CDsAhnoa.js} +1 -1
  78. package/dist/client/assets/{dist-fpFkgu34.js → dist-CJMPm6rd.js} +1 -1
  79. package/dist/client/assets/{dist-bkoMCmF7.js → dist-CtHMYO6t.js} +1 -1
  80. package/dist/client/assets/dist-D4DGyOvV.js +1 -0
  81. package/dist/client/assets/{dist-Das5WX49.js → dist-D5BVeoD4.js} +1 -1
  82. package/dist/client/assets/{dist-D8d0IGSI.js → dist-D5hPoFa5.js} +1 -1
  83. package/dist/client/assets/{dist-BXiFOexW.js → dist-DCqHC6ts.js} +1 -1
  84. package/dist/client/assets/{dist-yy8SO13g.js → dist-DFzJ8okV.js} +1 -1
  85. package/dist/client/assets/{dist-Bp_j2hKC.js → dist-DSehUDUA.js} +1 -1
  86. package/dist/client/assets/{dist-eAgBpkKv.js → dist-Dv_PLWtE.js} +1 -1
  87. package/dist/client/assets/{dist-B7XQNod9.js → dist-Dx8yU-RA.js} +1 -1
  88. package/dist/client/assets/{dist-CH3l6nVf.js → dist-U35xPXYU.js} +1 -1
  89. package/dist/client/assets/{dist-DplP0BiK.js → dist-UnjH15yg.js} +2 -2
  90. package/dist/client/assets/{dist-DwgKARew.js → dist-ihRjPW1T.js} +1 -1
  91. package/dist/client/assets/{dist-CIt_ogHO.js → dist-q3smPWAL.js} +1 -1
  92. package/dist/client/assets/{dist-uyVGTnZh.js → dist-wA96SVn6.js} +1 -1
  93. package/dist/client/assets/{dist-1SMeCZhf.js → dist-x4M0Qd0y.js} +1 -1
  94. package/dist/client/assets/drawio-editor-BHYoSlR7.js +9 -0
  95. package/dist/client/assets/{drawioEditor-DBSyP3_d.js → drawioEditor-B-Ssnq_p.js} +2 -2
  96. package/dist/client/assets/{editor-session-C1scHGLl.js → editor-session-BTPe8PEu.js} +3 -3
  97. package/dist/client/assets/{el-GR-ZXDJ2OS4-DFmRQv0o.js → el-GR-ZXDJ2OS4-De6xlnXD.js} +1 -1
  98. package/dist/client/assets/{en-CMP6EMR6-D9x8hVSu.js → en-CMP6EMR6-Bfz_MnNa.js} +1 -1
  99. package/dist/client/assets/{erDiagram-SMLLAGMA-6VFZA3Qb.js → erDiagram-TEJ5UH35-BvMeaml9.js} +2 -2
  100. package/dist/client/assets/{es-ES-DYQHAD43-BiGWIrBG.js → es-ES-DYQHAD43-EVQAeFTZ.js} +1 -1
  101. package/dist/client/assets/{eu-ES-QDSYU5Y3-BjwS0kZi.js → eu-ES-QDSYU5Y3-O5XEQp0x.js} +1 -1
  102. package/dist/client/assets/eventmodeling-FCH6USID-DKkN-EFL.js +1 -0
  103. package/dist/client/assets/excalidraw-editor-DzL1T9D9.js +9 -0
  104. package/dist/client/assets/{excalidraw-editor-BZCE9ydu.css → excalidraw-editor-mKBCIvNR.css} +1 -1
  105. package/dist/client/assets/{excalidraw-mermaid-stub-Df0Q2qkW.js → excalidraw-mermaid-stub-B5sWezsO.js} +1 -1
  106. package/dist/client/assets/excalidraw-scene-i7oBzgH8.js +176 -0
  107. package/dist/client/assets/excalidrawEditor-DRxzpbJ-.js +2 -0
  108. package/dist/client/assets/{export-page-Bnk-YQp-.js → export-page-BkCqT_2s.js} +2 -2
  109. package/dist/client/assets/exportDocument-Dj7w1hDJ.js +2 -0
  110. package/dist/client/assets/{fa-IR-26LZG4PM-BgANg2TD.js → fa-IR-26LZG4PM-BlqI3v_N.js} +1 -1
  111. package/dist/client/assets/{fi-FI-6YS4KDE4-CBL5f3oN.js → fi-FI-6YS4KDE4-af5Lkv-j.js} +1 -1
  112. package/dist/client/assets/{flowDiagram-DWJPFMVM-DO9RH8YQ.js → flowDiagram-I6XJVG4X-DgXXcK8y.js} +6 -6
  113. package/dist/client/assets/{fr-FR-BRLLPTZC-CRibNSLG.js → fr-FR-BRLLPTZC-CwQyur9E.js} +1 -1
  114. package/dist/client/assets/ganttDiagram-6RSMTGT7-BMpbo3vT.js +292 -0
  115. package/dist/client/assets/gitGraph-WXDBUCRP-BIQYiPEj.js +1 -0
  116. package/dist/client/assets/gitGraphDiagram-PVQCEYII-CCdpTNJZ.js +106 -0
  117. package/dist/client/assets/{gl-ES-OKUZTLYG-DEDwa_xt.js → gl-ES-OKUZTLYG-BNEoLCI4.js} +1 -1
  118. package/dist/client/assets/graphlib-Dduz6oB8.js +1 -0
  119. package/dist/client/assets/{he-IL-26MGYIU7-47wxy70N.js → he-IL-26MGYIU7-WnVF9HP3.js} +1 -1
  120. package/dist/client/assets/{hi-IN-Q4ZOGTP2-bhV7c3dK.js → hi-IN-Q4ZOGTP2-DcU7ec07.js} +1 -1
  121. package/dist/client/assets/{hu-HU-P2OXPSN5-xG-gBMzE.js → hu-HU-P2OXPSN5-wmJyK1Wq.js} +1 -1
  122. package/dist/client/assets/{id-ID-2EIKXYN6-MQuYaNHo.js → id-ID-2EIKXYN6-BTvn0aFf.js} +1 -1
  123. package/dist/client/assets/image-KGGK4BDN-BtStV6c9.js +1 -0
  124. package/dist/client/assets/index-Cnyy977t.css +1 -0
  125. package/dist/client/assets/{index-BoKmcqkH.js → index-DxQmPZ_f.js} +2 -2
  126. package/dist/client/assets/info-J43DQDTF-CO2Z2J7J.js +1 -0
  127. package/dist/client/assets/{infoDiagram-42DDH7IO-C77Pt7T1.js → infoDiagram-5YYISTIA-oYw2qnNY.js} +1 -1
  128. package/dist/client/assets/{ishikawaDiagram-UXIWVN3A-Cy1fwvvg.js → ishikawaDiagram-YF4QCWOH-BPqURwBR.js} +2 -2
  129. package/dist/client/assets/{it-IT-4CFKVXI2-v2kj-y7j.js → it-IT-4CFKVXI2-CC_iQxXu.js} +1 -1
  130. package/dist/client/assets/{ja-JP-MAND2Z4V-BahXSQz-.js → ja-JP-MAND2Z4V-ConJI8GA.js} +1 -1
  131. package/dist/client/assets/{journeyDiagram-VCZTEJTY-CYWaI6re.js → journeyDiagram-JHISSGLW-CvxY2Fte.js} +3 -3
  132. package/dist/client/assets/{jsx-runtime-1KUJVfx8.js → jsx-runtime-IB1e1gmy.js} +1 -1
  133. package/dist/client/assets/{kaa-HQRTCXTJ-BF26ydFa.js → kaa-HQRTCXTJ-Caqwh_Qr.js} +1 -1
  134. package/dist/client/assets/{kab-KAB-JKIKKTGH-CEIH0F80.js → kab-KAB-JKIKKTGH-DQBmYNc9.js} +1 -1
  135. package/dist/client/assets/{kanban-definition-6JOO6SKY-DY1xE7tm.js → kanban-definition-UN3LZRKU-Ex7702dO.js} +6 -6
  136. package/dist/client/assets/{kk-KZ-HXQ63ZFC-CxWjc9Sf.js → kk-KZ-HXQ63ZFC-O5qp74q-.js} +1 -1
  137. package/dist/client/assets/{km-KH-PKL3LSGX-DJlCteEp.js → km-KH-PKL3LSGX-2wUYTyyo.js} +1 -1
  138. package/dist/client/assets/{ko-KR-KXLREZX3-B1gtI_ci.js → ko-KR-KXLREZX3-CYtUnW5t.js} +1 -1
  139. package/dist/client/assets/{ku-TR-MJ4IER3X-Bf41y2v2.js → ku-TR-MJ4IER3X-DtEKOAU3.js} +1 -1
  140. package/dist/client/assets/line-DRJILpPI.js +1 -0
  141. package/dist/client/assets/{linear-dsIQT_iU.js → linear-rFRiXd2u.js} +1 -1
  142. package/dist/client/assets/{lt-LT-H6WFQ6FJ-DA1or-Eo.js → lt-LT-H6WFQ6FJ-Cs17Ppdf.js} +1 -1
  143. package/dist/client/assets/{lv-LV-GOCK6SJW-qa0BoYMm.js → lv-LV-GOCK6SJW-DYuTyosz.js} +1 -1
  144. package/dist/client/assets/{main-BKumyd95.js → main-iuYcGt-A.js} +11 -7
  145. package/dist/client/assets/mermaid-parser.core-BD_OCbyj.js +4 -0
  146. package/dist/client/assets/mermaid-runtime-CEgpdpwB.js +9 -0
  147. package/dist/client/assets/{mindmap-definition-QFDTVHPH-DB_M5r-j.js → mindmap-definition-RKZ34NQL-D4pwLdMH.js} +23 -23
  148. package/dist/client/assets/{mr-IN-IXVLDMEQ-DXFRgvgb.js → mr-IN-IXVLDMEQ-CIJFnklt.js} +1 -1
  149. package/dist/client/assets/{my-MM-YG6MYTTD-BKDIfalJ.js → my-MM-YG6MYTTD-em_7TGWX.js} +1 -1
  150. package/dist/client/assets/{nb-NO-XGWJISD2-DbwbopH8.js → nb-NO-XGWJISD2-BLNgPVDj.js} +1 -1
  151. package/dist/client/assets/{nl-NL-XVDVCPNC-ChSneTSU.js → nl-NL-XVDVCPNC-CComxzvg.js} +1 -1
  152. package/dist/client/assets/{nn-NO-EMX5MJX5-Cf7ZWKWZ.js → nn-NO-EMX5MJX5-Cekj8s_-.js} +1 -1
  153. package/dist/client/assets/{oc-FR-ROEINTVO-lM7Nl7hD.js → oc-FR-ROEINTVO-DW-kHJ81.js} +1 -1
  154. package/dist/client/assets/{ordinal-Dz3y_j0K.js → ordinal-De-qfORd.js} +1 -1
  155. package/dist/client/assets/{pa-IN-ZYN6SUDY-C9WNUTeR.js → pa-IN-ZYN6SUDY-CnhULOGp.js} +1 -1
  156. package/dist/client/assets/packet-YPE3B663-VxGcYggl.js +1 -0
  157. package/dist/client/assets/percentages-5DKR754L-Ug3UfchV.js +1 -0
  158. package/dist/client/assets/{pica-CgGaIJly.js → pica-DcQ1xKp1.js} +1 -1
  159. package/dist/client/assets/pie-LRSECV5Y-7RrvmmEk.js +1 -0
  160. package/dist/client/assets/pieDiagram-4H26LBE5-C6MCExtR.js +30 -0
  161. package/dist/client/assets/{pl-PL-6VTG7PHC-DqRVepnC.js → pl-PL-6VTG7PHC-C9rBsz9v.js} +1 -1
  162. package/dist/client/assets/{preview-render-compiler-IUtgIlOM.js → preview-render-compiler-CSggyCbw.js} +1 -1
  163. package/dist/client/assets/preview-render-compiler-TPMesM_L.js +1 -0
  164. package/dist/client/assets/{preview-render-profile-Bf6R7v4w.js → preview-render-profile-CQR0o67h.js} +5 -5
  165. package/dist/client/assets/{preview-render-worker-BwQ5sPy9.js → preview-render-worker-CifbXdlx.js} +2 -2
  166. package/dist/client/assets/{pt-BR-5YFKRR5G-CopLYEA6.js → pt-BR-5YFKRR5G-BVyxOCjg.js} +1 -1
  167. package/dist/client/assets/{pt-PT-GEIXXZ67-BjZ_Lphg.js → pt-PT-GEIXXZ67-5CbVaVay.js} +1 -1
  168. package/dist/client/assets/quadrantDiagram-W4KKPZXB-CD77Rny0.js +7 -0
  169. package/dist/client/assets/quick-switcher-controller-CVJBt6V9.js +12 -0
  170. package/dist/client/assets/radar-GUYGQ44K-2SBnfFng.js +1 -0
  171. package/dist/client/assets/{requirementDiagram-MS252O5E-CtUIQnWa.js → requirementDiagram-4Y6WPE33-DdKM6ZWI.js} +4 -4
  172. package/dist/client/assets/{ro-RO-E2P6TFZI-DakDz5Xu.js → ro-RO-E2P6TFZI-DANwkfep.js} +1 -1
  173. package/dist/client/assets/{room-z2w9b96b.js → room-Cha55fQg.js} +1 -1
  174. package/dist/client/assets/{ru-RU-YBIIY43T-BMvCT-XT.js → ru-RU-YBIIY43T-BWZSxhA5.js} +1 -1
  175. package/dist/client/assets/runtime-config-CM_2pVYD.js +1 -0
  176. package/dist/client/assets/{sankeyDiagram-XADWPNL6-tcSeuifE.js → sankeyDiagram-5OEKKPKP-BH3_LNkI.js} +36 -6
  177. package/dist/client/assets/sequenceDiagram-3UESZ5HK-CCGL7FMW.js +162 -0
  178. package/dist/client/assets/{si-LK-673C2CI2-hGdH1S9E.js → si-LK-673C2CI2-Bqr808AJ.js} +1 -1
  179. package/dist/client/assets/{sk-SK-CKZHQ4AP-DiRA-fj8.js → sk-SK-CKZHQ4AP-B2PvXXeU.js} +1 -1
  180. package/dist/client/assets/{sl-SI-557H2GWM-DN94n_1-.js → sl-SI-557H2GWM-IPVDhzgb.js} +1 -1
  181. package/dist/client/assets/{src-BuiVcSz-.js → src-BshjqEL2.js} +1 -1
  182. package/dist/client/assets/stateDiagram-AJRCARHV-ljJcYRX4.js +1 -0
  183. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-DXm0ynOB.js +1 -0
  184. package/dist/client/assets/subset-shared.chunk-C9mEHUfV.js +1 -0
  185. package/dist/client/assets/{subset-worker.chunk-kj1e3wjW.js → subset-worker.chunk-BW_EF59g.js} +1 -1
  186. package/dist/client/assets/{sv-SE-XOPKKDWS-CkHUNABj.js → sv-SE-XOPKKDWS-CQipq9Nf.js} +1 -1
  187. package/dist/client/assets/{ta-IN-XBH7DQI3-W-157oVK.js → ta-IN-XBH7DQI3-Cj2o89vS.js} +1 -1
  188. package/dist/client/assets/{th-TH-TOCWH3R4-BsU-Pydr.js → th-TH-TOCWH3R4-IOX-l13w.js} +1 -1
  189. package/dist/client/assets/{timeline-definition-GMOUNBTQ-Bs6U53Mo.js → timeline-definition-PNZ67QCA-CUVPem2o.js} +5 -5
  190. package/dist/client/assets/{tr-TR-GXW6CYY5-CTddyq89.js → tr-TR-GXW6CYY5-DBVLEsZg.js} +1 -1
  191. package/dist/client/assets/treeView-BLDUP644-DItqHrxu.js +1 -0
  192. package/dist/client/assets/treemap-LRROVOQU-DD1ESKp7.js +1 -0
  193. package/dist/client/assets/{uk-UA-IJKTNUDG-1LzXkII3.js → uk-UA-IJKTNUDG-C5kaymku.js} +1 -1
  194. package/dist/client/assets/{uz-UZ-TBZZEA4V-kqm-qcUj.js → uz-UZ-TBZZEA4V-lMna4tx1.js} +1 -1
  195. package/dist/client/assets/{vault-api-client-BDKKvtOF.js → vault-api-client-Fa51l2lE.js} +1 -1
  196. package/dist/client/assets/{vault-utils-CRpy8MQz.js → vault-utils-BbJUHPCf.js} +1 -1
  197. package/dist/client/assets/vennDiagram-CIIHVFJN-Bb1KSPKA.js +34 -0
  198. package/dist/client/assets/{vi-VN-MULSGNVB-C3H2AUhm.js → vi-VN-MULSGNVB-BAcoCjsz.js} +1 -1
  199. package/dist/client/assets/wardley-L42UT6IY-BoSI-SvR.js +1 -0
  200. package/dist/client/assets/{wardleyDiagram-NUSXRM2D-C-scJfPY.js → wardleyDiagram-YWT4CUSO-EdTzLQiR.js} +61 -3
  201. package/dist/client/assets/{xychartDiagram-5P7HB3ND-D3nQoxhz.js → xychartDiagram-2RQKCTM6-BoQFrGlt.js} +3 -3
  202. package/dist/client/assets/{zh-CN-MVX3E32U-BULPbsyl.js → zh-CN-MVX3E32U-sW-DCFHP.js} +1 -1
  203. package/dist/client/assets/{zh-HK-JNU5RLIE-bNGmeSaW.js → zh-HK-JNU5RLIE-Duqu8EG_.js} +1 -1
  204. package/dist/client/assets/{zh-TW-LENVCA6T-CQDp064P.js → zh-TW-LENVCA6T-BHC0OLnd.js} +1 -1
  205. package/dist/client/drawio-editor.html +1 -1
  206. package/dist/client/excalidraw-editor.html +1 -1
  207. package/dist/client/export-document.html +1 -1
  208. package/dist/client/index.html +2 -2
  209. package/package.json +14 -14
  210. package/src/client/application/mermaid-preview-hydrator.js +26 -8
  211. package/src/client/application/preview-renderer.js +6 -1
  212. package/src/client/application/quick-switcher-loader.js +14 -0
  213. package/src/client/application/workspace-route-controller.js +14 -0
  214. package/src/client/domain/drawio-frame-load.js +28 -0
  215. package/src/client/domain/hash-routes.js +16 -1
  216. package/src/client/domain/runtime-paths.js +7 -0
  217. package/src/client/drawio-editor.js +23 -10
  218. package/src/client/excalidraw-editor.js +66 -13
  219. package/src/client/infrastructure/editor-session.js +4 -0
  220. package/src/client/infrastructure/editor-view-adapter.js +30 -0
  221. package/src/client/infrastructure/runtime-config.js +17 -2
  222. package/src/client/infrastructure/vault-api-client.js +11 -0
  223. package/src/client/presentation/app-shell-template.js +4 -0
  224. package/src/client/presentation/drawio-embed-controller.js +230 -64
  225. package/src/client/presentation/excalidraw-embed-controller.js +51 -60
  226. package/src/client/presentation/quick-switcher-controller.js +217 -21
  227. package/src/client/presentation/quick-switcher-text-search.js +125 -0
  228. package/src/client/styles/features/diagram-preview.css +43 -23
  229. package/src/client/styles/features/quick-switcher.css +153 -15
  230. package/src/client/styles/layout/shell.css +6 -3
  231. package/src/client/styles/surfaces/excalidraw-editor.css +4 -0
  232. package/src/server/config/env.js +1 -0
  233. package/src/server/create-app-server.js +29 -6
  234. package/src/server/domain/ripgrep-search-service.js +365 -0
  235. package/src/server/infrastructure/http/create-request-handler.js +3 -1
  236. package/src/server/infrastructure/http/create-static-handler.js +10 -1
  237. package/src/server/infrastructure/http/create-vault-api-handler.js +2 -0
  238. package/src/server/infrastructure/http/create-vault-api-query-handler.js +38 -2
  239. package/src/server/infrastructure/workspace/file-system-sync-service.js +4 -0
  240. package/dist/client/assets/_baseFor-BSErPbF2.js +0 -1
  241. package/dist/client/assets/architecture-YZFGNWBL-DWWrde02.js +0 -1
  242. package/dist/client/assets/blockDiagram-DXYQGD6D-6UN-nR8-.js +0 -132
  243. package/dist/client/assets/channel-XGCkuPi6.js +0 -1
  244. package/dist/client/assets/chunk-2KRD3SAO-CFcF2aNP.js +0 -1
  245. package/dist/client/assets/chunk-336JU56O-DvrrHsJT.js +0 -2
  246. package/dist/client/assets/chunk-426QAEUC-CEbmCgux.js +0 -1
  247. package/dist/client/assets/chunk-4TB4RGXK-CoouNThi.js +0 -206
  248. package/dist/client/assets/chunk-5FUZZQ4R-CxIIxXPy.js +0 -62
  249. package/dist/client/assets/chunk-5PVQY5BW-ciE7eHID.js +0 -2
  250. package/dist/client/assets/chunk-67CJDMHE-CW-fbgQB.js +0 -1
  251. package/dist/client/assets/chunk-7N4EOEYR-DbAW6XnF.js +0 -1
  252. package/dist/client/assets/chunk-AA7GKIK3-ClDHDAza.js +0 -1
  253. package/dist/client/assets/chunk-CIAEETIT-BnB8a6HR.js +0 -1
  254. package/dist/client/assets/chunk-ENJZ2VHE-BQj_1YA_.js +0 -10
  255. package/dist/client/assets/chunk-FOC6F5B3-Bw6XfKDP.js +0 -1
  256. package/dist/client/assets/chunk-ICPOFSXX-DqJi89rc.js +0 -122
  257. package/dist/client/assets/chunk-K5T4RW27-CQtjKF2g.js +0 -94
  258. package/dist/client/assets/chunk-KGLVRYIC-BWSPiKjp.js +0 -1
  259. package/dist/client/assets/chunk-ORNJ4GCN-Csga44e5.js +0 -1
  260. package/dist/client/assets/chunk-OYMX7WX6-DvtmCasj.js +0 -231
  261. package/dist/client/assets/chunk-QZHKN3VN-CHVH9_3S.js +0 -1
  262. package/dist/client/assets/chunk-YHkbxXgt.js +0 -1
  263. package/dist/client/assets/chunk-YKPWT25G-GISHuloq.js +0 -35
  264. package/dist/client/assets/classDiagram-6PBFFD2Q-D1KhAUL3.js +0 -1
  265. package/dist/client/assets/classDiagram-v2-HSJHXN6E-BSyyJpnR.js +0 -1
  266. package/dist/client/assets/clone-DI0bYZ1L.js +0 -1
  267. package/dist/client/assets/dagre-Dn6rkrte.js +0 -1
  268. package/dist/client/assets/dagre-KV5264BT-COzej2en.js +0 -4
  269. package/dist/client/assets/diagram-G4DWMVQ6-CbswIU9X.js +0 -24
  270. package/dist/client/assets/diagram-MMDJMWI5-BE-yOVGX.js +0 -43
  271. package/dist/client/assets/dist-BCzW2jDH.js +0 -1
  272. package/dist/client/assets/dist-BOn786F3.js +0 -1
  273. package/dist/client/assets/dist-BwUX6zpo.js +0 -1
  274. package/dist/client/assets/dist-D-ixVAsS2.js +0 -1
  275. package/dist/client/assets/dist-GgGgSSbl.js +0 -1
  276. package/dist/client/assets/drawio-editor-B_Sr8Z_Z.js +0 -9
  277. package/dist/client/assets/excalidraw-editor-B0XXVLHd.js +0 -9
  278. package/dist/client/assets/excalidraw-scene-wAbVSY1L.js +0 -176
  279. package/dist/client/assets/excalidrawEditor-37sk03H8.js +0 -2
  280. package/dist/client/assets/exportDocument-WQNApAbg.js +0 -2
  281. package/dist/client/assets/flatten-DjXjUsvv.js +0 -1
  282. package/dist/client/assets/ganttDiagram-T4ZO3ILL-B-NMvHWN.js +0 -292
  283. package/dist/client/assets/gitGraph-7Q5UKJZL-DWNinXu4.js +0 -1
  284. package/dist/client/assets/gitGraphDiagram-UUTBAWPF-B95qkCUx.js +0 -106
  285. package/dist/client/assets/graphlib-CAwOVCJc.js +0 -1
  286. package/dist/client/assets/image-J2CAS7OM-DD4DaQTs.js +0 -1
  287. package/dist/client/assets/index-maPm_Kvk.css +0 -1
  288. package/dist/client/assets/info-OMHHGYJF-DtYG_rX0.js +0 -1
  289. package/dist/client/assets/isEmpty-CpfhGGBo.js +0 -1
  290. package/dist/client/assets/line-BCItEgq3.js +0 -1
  291. package/dist/client/assets/mermaid-parser.core-CsTVsPcD.js +0 -4
  292. package/dist/client/assets/mermaid-runtime-BGlnoUXY.js +0 -11
  293. package/dist/client/assets/packet-4T2RLAQJ-CUVefhAv.js +0 -1
  294. package/dist/client/assets/percentages-5DKR754L-DuhOjTM2.js +0 -1
  295. package/dist/client/assets/pie-ZZUOXDRM-BHBJ1dLX.js +0 -1
  296. package/dist/client/assets/pieDiagram-DEJITSTG-BOo-WzjZ.js +0 -30
  297. package/dist/client/assets/preview-render-compiler-9SmLUP5V.js +0 -1
  298. package/dist/client/assets/quadrantDiagram-34T5L4WZ-2vfo0l5S.js +0 -7
  299. package/dist/client/assets/quick-switcher-controller-B1erSgJ1.js +0 -5
  300. package/dist/client/assets/radar-PYXPWWZC-2jR4qZNU.js +0 -1
  301. package/dist/client/assets/reduce-ChpYjEUB.js +0 -1
  302. package/dist/client/assets/runtime-config-BcUbZKho.js +0 -1
  303. package/dist/client/assets/sequenceDiagram-FGHM5R23-DtF-1Kt2.js +0 -157
  304. package/dist/client/assets/stateDiagram-FHFEXIEX-DKk7Sb0f.js +0 -1
  305. package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-DJUaiADr.js +0 -1
  306. package/dist/client/assets/subset-shared.chunk-CWNYNLru.js +0 -1
  307. package/dist/client/assets/treeView-SZITEDCU-DN5dP2ol.js +0 -1
  308. package/dist/client/assets/treemap-W4RFUUIX-Dva7DBJR.js +0 -1
  309. package/dist/client/assets/vennDiagram-DHZGUBPP-DNnIjRae.js +0 -34
  310. package/dist/client/assets/wardley-RL74JXVD-CDZW5uzY.js +0 -1
  311. /package/dist/client/assets/{array-B3agRrCs.js → array-7rJMcyYQ.js} +0 -0
  312. /package/dist/client/assets/{cytoscape.esm-BurByw8X.js → cytoscape.esm-B_ygTtvl.js} +0 -0
  313. /package/dist/client/assets/{defaultLocale-B_FbTTbl.js → defaultLocale-DKHHE2Ij.js} +0 -0
  314. /package/dist/client/assets/{drawio-room-1i6Nn0_Z.js → drawio-room-DrZ-gy4N.js} +0 -0
  315. /package/dist/client/assets/{excalidraw-mermaid-stub-DzxtBcQW.js → excalidraw-mermaid-stub-Co4Okjfg.js} +0 -0
  316. /package/dist/client/assets/{file-kind-DmKq2MvD.js → file-kind-DLz-bCzA.js} +0 -0
  317. /package/dist/client/assets/{image-blob-reduce.esm-D8JQdTFk.js → image-blob-reduce.esm-CRyv8pnU.js} +0 -0
  318. /package/dist/client/assets/{init-DtLQcSuO.js → init-EmgYNkpL.js} +0 -0
  319. /package/dist/client/assets/{katex-CXYULLWy.js → katex-Beiidjxi.js} +0 -0
  320. /package/dist/client/assets/{path-DIlZIGue.js → path-vqW-z8T-.js} +0 -0
  321. /package/dist/client/assets/{preview-diagram-utils-Nqpp4FNV.js → preview-diagram-utils-D94KrSQH.js} +0 -0
  322. /package/dist/client/assets/{rough.esm-BU2knLt9.js → rough.esm-DE_lJ5Ge.js} +0 -0
  323. /package/dist/client/assets/{roundRect-BzEouiv_.js → roundRect-BMsJLtvm.js} +0 -0
  324. /package/dist/client/assets/{yjs-provider-reset-guard-DSPzcvAO.js → yjs-provider-reset-guard-CNmMf4Qd.js} +0 -0
@@ -117,7 +117,7 @@ export class DrawioEmbedController {
117
117
  this.hydrationPaused = false;
118
118
  this.instanceCounter = 0;
119
119
  this.maximizedEntry = null;
120
- this.maximizedRoot = null;
120
+ this.overlayRoot = null;
121
121
 
122
122
  this._onMessage = this._onMessage.bind(this);
123
123
  this._onKeyDown = this._onKeyDown.bind(this);
@@ -139,15 +139,20 @@ export class DrawioEmbedController {
139
139
  document.body.classList.remove('drawio-maximized-open');
140
140
  this.embedEntries.forEach((entry) => entry.wrapper?.remove());
141
141
  this.embedEntries.clear();
142
- this.maximizedRoot?.remove();
143
- this.maximizedRoot = null;
142
+ this.overlayRoot?.remove();
143
+ this.overlayRoot = null;
144
144
  }
145
145
 
146
146
  detachForCommit() {
147
147
  cancelIdleRender(this.hydrationIdleId);
148
148
  this.hydrationIdleId = null;
149
149
  this.hydrationQueue = [];
150
+ this._exitMaximizedEntry();
151
+ if (this.overlayRoot) {
152
+ this.overlayRoot.hidden = true;
153
+ }
150
154
  this.embedEntries.forEach((entry) => {
155
+ entry.queued = false;
151
156
  entry.placeholder = null;
152
157
  });
153
158
  }
@@ -173,23 +178,25 @@ export class DrawioEmbedController {
173
178
  const nextEntries = new Map();
174
179
  descriptors.forEach((descriptor) => {
175
180
  const existingEntry = this.embedEntries.get(descriptor.key) || null;
176
- const nextEntry = existingEntry
177
- ? { ...existingEntry, ...descriptor }
178
- : {
179
- ...descriptor,
180
- iframe: null,
181
- imageElement: null,
182
- instanceId: '',
183
- queued: false,
184
- viewerElement: null,
185
- wrapper: null,
186
- };
181
+ const nextEntry = existingEntry && this.entryMatchesDescriptor(existingEntry, descriptor)
182
+ ? existingEntry
183
+ : this.createEntry(descriptor);
184
+
185
+ if (existingEntry && existingEntry !== nextEntry) {
186
+ this.destroyEntry(existingEntry);
187
+ }
188
+
189
+ nextEntry.filePath = descriptor.filePath;
190
+ nextEntry.key = descriptor.key;
191
+ nextEntry.label = descriptor.label;
192
+ nextEntry.mode = descriptor.mode;
193
+ nextEntry.placeholder = descriptor.placeholder;
187
194
  nextEntries.set(descriptor.key, nextEntry);
188
195
  });
189
196
 
190
197
  this.embedEntries.forEach((entry, key) => {
191
198
  if (!nextEntries.has(key)) {
192
- entry.wrapper?.remove();
199
+ this.destroyEntry(entry);
193
200
  }
194
201
  });
195
202
 
@@ -197,7 +204,7 @@ export class DrawioEmbedController {
197
204
 
198
205
  this.embedEntries.forEach((entry) => {
199
206
  if (entry.wrapper) {
200
- entry.placeholder?.replaceWith(entry.wrapper);
207
+ this.attachWrapper(entry);
201
208
  } else {
202
209
  entry.queued = false;
203
210
  }
@@ -206,6 +213,29 @@ export class DrawioEmbedController {
206
213
  if (!this.hydrationPaused) {
207
214
  this.hydrateVisibleEmbeds();
208
215
  }
216
+
217
+ this.syncLayout();
218
+ }
219
+
220
+ createEntry(descriptor) {
221
+ return {
222
+ ...descriptor,
223
+ iframe: null,
224
+ imageElement: null,
225
+ inlineHeightPx: null,
226
+ instanceId: '',
227
+ queued: false,
228
+ viewerElement: null,
229
+ wrapper: null,
230
+ };
231
+ }
232
+
233
+ entryMatchesDescriptor(entry, descriptor) {
234
+ return Boolean(
235
+ entry
236
+ && entry.filePath === descriptor.filePath
237
+ && entry.mode === descriptor.mode
238
+ );
209
239
  }
210
240
 
211
241
  hydrateVisibleEmbeds() {
@@ -293,7 +323,7 @@ export class DrawioEmbedController {
293
323
  wrapper.append(header, iframe);
294
324
  entry.iframe = iframe;
295
325
  entry.wrapper = wrapper;
296
- entry.placeholder.replaceWith(wrapper);
326
+ this.attachWrapper(entry);
297
327
  }
298
328
 
299
329
  async hydrateViewerEntry(entry) {
@@ -333,12 +363,14 @@ export class DrawioEmbedController {
333
363
  entry.iframe = null;
334
364
  entry.wrapper = wrapper;
335
365
  entry.viewerElement = viewerShell;
336
- entry.placeholder.replaceWith(wrapper);
366
+ this.attachWrapper(entry);
337
367
 
338
368
  try {
339
369
  await this.renderViewerEntry(entry);
370
+ this.syncEntryLayout(entry);
340
371
  } catch (error) {
341
372
  this.renderViewerFallback(entry, error instanceof Error ? error.message : 'Failed to render draw.io preview');
373
+ this.syncEntryLayout(entry);
342
374
  }
343
375
  }
344
376
 
@@ -382,13 +414,19 @@ export class DrawioEmbedController {
382
414
  lightbox: false,
383
415
  nav: false,
384
416
  resize: false,
385
- toolbar: '',
386
417
  tooltips: false,
387
418
  xml: String(content ?? ''),
388
419
  });
389
420
 
390
- entry.viewerElement.replaceChildren(graphElement);
421
+ const viewerHost = entry.wrapper.querySelector('.drawio-viewer-shell') ?? entry.viewerElement;
422
+ viewerHost.replaceChildren(graphElement);
391
423
  entry.viewerElement = graphElement;
424
+
425
+ if (typeof viewer.createViewerForElement === 'function') {
426
+ viewer.createViewerForElement(graphElement);
427
+ return;
428
+ }
429
+
392
430
  viewer.processElements();
393
431
  }
394
432
 
@@ -435,7 +473,158 @@ export class DrawioEmbedController {
435
473
 
436
474
  updateLocalUser() {}
437
475
 
438
- syncLayout() {}
476
+ syncLayout() {
477
+ this.embedEntries.forEach((entry) => {
478
+ if (entry.wrapper && !this.shouldInlineEntry(entry)) {
479
+ this.syncEntryLayout(entry);
480
+ }
481
+ });
482
+ }
483
+
484
+ attachWrapper(entry) {
485
+ const placeholder = entry.placeholder?.isConnected
486
+ ? entry.placeholder
487
+ : this.findPlaceholder(entry);
488
+
489
+ if (!placeholder) {
490
+ return;
491
+ }
492
+
493
+ entry.placeholder = placeholder;
494
+ this.syncMountedEntryMetadata(entry);
495
+
496
+ if (this.shouldInlineEntry(entry)) {
497
+ entry.wrapper.style.position = '';
498
+ entry.wrapper.style.top = '';
499
+ entry.wrapper.style.left = '';
500
+ entry.wrapper.style.width = '';
501
+ entry.wrapper.style.margin = '';
502
+ entry.wrapper.style.pointerEvents = 'auto';
503
+ placeholder.replaceWith(entry.wrapper);
504
+ entry.placeholder = null;
505
+ return;
506
+ }
507
+
508
+ const overlayRoot = this.ensureOverlayRoot();
509
+ overlayRoot.hidden = false;
510
+ if (entry.wrapper?.parentElement !== overlayRoot) {
511
+ overlayRoot.appendChild(entry.wrapper);
512
+ }
513
+
514
+ this.syncEntryLayout(entry);
515
+ }
516
+
517
+ destroyEntry(entry) {
518
+ if (this.maximizedEntry?.key === entry?.key) {
519
+ this._exitMaximizedEntry();
520
+ }
521
+
522
+ this.resetPlaceholderLayout(entry);
523
+ entry?.wrapper?.remove();
524
+ if (entry) {
525
+ entry.placeholder = null;
526
+ entry.wrapper = null;
527
+ entry.iframe = null;
528
+ entry.viewerElement = null;
529
+ }
530
+ }
531
+
532
+ findPlaceholder(entry) {
533
+ return this.previewElement?.querySelector?.(`.drawio-embed-placeholder[data-drawio-key="${entry.key}"]`) ?? null;
534
+ }
535
+
536
+ ensureOverlayRoot() {
537
+ if (this.overlayRoot?.isConnected && this.overlayRoot.parentElement === this.previewElement) {
538
+ return this.overlayRoot;
539
+ }
540
+
541
+ let overlayRoot = this.previewElement?.querySelector?.('[data-drawio-overlay-root="true"]');
542
+ if (!overlayRoot) {
543
+ overlayRoot = document.createElement('div');
544
+ overlayRoot.dataset.drawioOverlayRoot = 'true';
545
+ overlayRoot.className = 'drawio-embed-overlay-root';
546
+ this.previewElement?.appendChild(overlayRoot);
547
+ }
548
+
549
+ this.overlayRoot = overlayRoot;
550
+ return overlayRoot;
551
+ }
552
+
553
+ shouldInlineEntry(entry) {
554
+ return entry?.key === `${entry?.filePath}#file-preview`;
555
+ }
556
+
557
+ syncMountedEntryMetadata(entry) {
558
+ if (entry.wrapper) {
559
+ entry.wrapper.dataset.drawioKey = entry.key;
560
+ entry.wrapper.dataset.file = entry.filePath;
561
+ entry.wrapper.classList.toggle('is-direct-file', this.shouldInlineEntry(entry));
562
+ }
563
+
564
+ if (entry.iframe) {
565
+ entry.iframe.title = `draw.io: ${entry.filePath}`;
566
+ }
567
+ }
568
+
569
+ resetPlaceholderLayout(entry) {
570
+ if (!entry?.placeholder?.isConnected || this.shouldInlineEntry(entry)) {
571
+ return;
572
+ }
573
+
574
+ entry.placeholder.classList.remove('is-hydrated');
575
+ entry.placeholder.removeAttribute('data-drawio-hydrated');
576
+ entry.placeholder.style.height = '';
577
+ entry.placeholder.style.pointerEvents = '';
578
+ }
579
+
580
+ syncEntryLayout(entry) {
581
+ if (!entry?.wrapper || this.shouldInlineEntry(entry)) {
582
+ return;
583
+ }
584
+
585
+ const placeholder = entry.placeholder?.isConnected
586
+ ? entry.placeholder
587
+ : this.findPlaceholder(entry);
588
+
589
+ if (!placeholder) {
590
+ return;
591
+ }
592
+
593
+ entry.placeholder = placeholder;
594
+ placeholder.classList.add('is-hydrated');
595
+ placeholder.dataset.drawioHydrated = 'true';
596
+ placeholder.style.pointerEvents = 'none';
597
+
598
+ const isMaximized = entry.wrapper.classList.contains('is-maximized');
599
+ const wrapperHeight = entry.wrapper.offsetHeight
600
+ || Math.ceil(entry.wrapper.getBoundingClientRect?.().height || 0)
601
+ || entry.inlineHeightPx
602
+ || 420;
603
+
604
+ if (!isMaximized) {
605
+ entry.inlineHeightPx = wrapperHeight;
606
+ }
607
+
608
+ placeholder.style.height = `${Math.ceil(entry.inlineHeightPx || wrapperHeight)}px`;
609
+ entry.wrapper.style.pointerEvents = 'auto';
610
+
611
+ if (isMaximized) {
612
+ entry.wrapper.style.position = '';
613
+ entry.wrapper.style.top = '';
614
+ entry.wrapper.style.left = '';
615
+ entry.wrapper.style.width = 'auto';
616
+ entry.wrapper.style.height = 'auto';
617
+ entry.wrapper.style.minHeight = '0';
618
+ entry.wrapper.style.margin = '';
619
+ return;
620
+ }
621
+
622
+ entry.wrapper.style.position = 'absolute';
623
+ entry.wrapper.style.top = `${placeholder.offsetTop}px`;
624
+ entry.wrapper.style.left = `${placeholder.offsetLeft}px`;
625
+ entry.wrapper.style.width = `${placeholder.offsetWidth}px`;
626
+ entry.wrapper.style.margin = '0';
627
+ }
439
628
 
440
629
  createOpenButton(entry) {
441
630
  const button = document.createElement('button');
@@ -482,23 +671,6 @@ export class DrawioEmbedController {
482
671
  return button;
483
672
  }
484
673
 
485
- _ensureMaximizedRoot() {
486
- if (this.maximizedRoot?.isConnected && this.maximizedRoot.parentElement === document.body) {
487
- return this.maximizedRoot;
488
- }
489
-
490
- let maximizedRoot = document.body.querySelector('[data-drawio-maximized-root="true"]');
491
- if (!maximizedRoot) {
492
- maximizedRoot = document.createElement('div');
493
- maximizedRoot.dataset.drawioMaximizedRoot = 'true';
494
- maximizedRoot.className = 'drawio-maximized-root';
495
- document.body.appendChild(maximizedRoot);
496
- }
497
-
498
- this.maximizedRoot = maximizedRoot;
499
- return maximizedRoot;
500
- }
501
-
502
674
  _enterMaximizedEntry(entry, wrapper = entry?.wrapper) {
503
675
  if (!entry?.wrapper || entry.wrapper !== wrapper) {
504
676
  return;
@@ -510,26 +682,23 @@ export class DrawioEmbedController {
510
682
 
511
683
  this._exitMaximizedEntry();
512
684
 
513
- const maximizedRoot = this._ensureMaximizedRoot();
514
- const parent = entry.wrapper.parentElement;
515
- if (!parent) {
516
- return;
685
+ if (entry.wrapper.parentElement) {
686
+ const spacer = document.createElement('div');
687
+ spacer.className = 'drawio-maximize-spacer';
688
+ spacer.style.height = `${Math.ceil(entry.wrapper.getBoundingClientRect().height)}px`;
689
+ entry.maximizeSpacer = spacer;
690
+ entry.wrapper.parentElement.insertBefore(spacer, entry.wrapper);
517
691
  }
518
692
 
519
- const spacer = document.createElement('div');
520
- spacer.className = 'drawio-maximize-spacer';
521
- spacer.style.height = `${Math.ceil(entry.wrapper.getBoundingClientRect().height)}px`;
522
-
523
- entry.maximizeSpacer = spacer;
524
- entry.restoreParent = parent;
525
- entry.restoreNextSibling = entry.wrapper.nextSibling || null;
526
- parent.insertBefore(spacer, entry.wrapper);
527
-
528
- maximizedRoot.hidden = false;
529
- maximizedRoot.appendChild(entry.wrapper);
530
693
  entry.wrapper.classList.add('is-maximized');
694
+ entry.wrapper.dataset.drawioMaximized = 'true';
695
+ entry.wrapper.style.width = 'auto';
696
+ entry.wrapper.style.height = 'auto';
697
+ entry.wrapper.style.minHeight = '0';
531
698
  document.body.classList.add('drawio-maximized-open');
532
699
  this.maximizedEntry = entry;
700
+ this.overlayRoot?.classList.add('has-maximized-entry');
701
+ this.syncEntryLayout(entry);
533
702
  }
534
703
 
535
704
  _exitMaximizedEntry() {
@@ -540,17 +709,15 @@ export class DrawioEmbedController {
540
709
  return;
541
710
  }
542
711
 
543
- const { maximizeSpacer, restoreNextSibling, restoreParent } = entry;
712
+ const { maximizeSpacer } = entry;
544
713
  entry.wrapper.classList.remove('is-maximized');
714
+ delete entry.wrapper.dataset.drawioMaximized;
715
+ entry.wrapper.style.width = '';
716
+ entry.wrapper.style.height = '';
717
+ entry.wrapper.style.minHeight = '';
545
718
 
546
719
  if (maximizeSpacer?.parentElement) {
547
- maximizeSpacer.replaceWith(entry.wrapper);
548
- } else if (restoreParent?.isConnected) {
549
- if (restoreNextSibling?.parentElement === restoreParent) {
550
- restoreParent.insertBefore(entry.wrapper, restoreNextSibling);
551
- } else {
552
- restoreParent.appendChild(entry.wrapper);
553
- }
720
+ maximizeSpacer.remove();
554
721
  }
555
722
 
556
723
  entry.maximizeSpacer = null;
@@ -558,9 +725,8 @@ export class DrawioEmbedController {
558
725
  entry.restoreNextSibling = null;
559
726
  this.maximizedEntry = null;
560
727
  document.body.classList.remove('drawio-maximized-open');
561
- if (this.maximizedRoot && this.maximizedRoot.childElementCount === 0) {
562
- this.maximizedRoot.hidden = true;
563
- }
728
+ this.overlayRoot?.classList.remove('has-maximized-entry');
729
+ this.syncEntryLayout(entry);
564
730
  }
565
731
 
566
732
  _syncMaximizeButtons() {
@@ -76,7 +76,6 @@ export class ExcalidrawEmbedController {
76
76
  this.isLargeDocument = false;
77
77
  this.maximizedEmbed = null;
78
78
  this.overlayRoot = null;
79
- this.maximizedRoot = null;
80
79
  this.warmCacheRoot = null;
81
80
  this.warmEntry = null;
82
81
  this.placeholderObserver = null;
@@ -122,8 +121,6 @@ export class ExcalidrawEmbedController {
122
121
  this.followedPeerIdsByFilePath.clear();
123
122
  this.overlayRoot?.remove();
124
123
  this.overlayRoot = null;
125
- this.maximizedRoot?.remove();
126
- this.maximizedRoot = null;
127
124
  this.warmCacheRoot?.remove();
128
125
  this.warmCacheRoot = null;
129
126
  }
@@ -159,9 +156,6 @@ export class ExcalidrawEmbedController {
159
156
  if (this.overlayRoot) {
160
157
  this.overlayRoot.hidden = true;
161
158
  }
162
- if (this.maximizedRoot) {
163
- this.maximizedRoot.hidden = true;
164
- }
165
159
 
166
160
  this.embedEntries.forEach((entry) => {
167
161
  entry.queued = false;
@@ -718,7 +712,10 @@ export class ExcalidrawEmbedController {
718
712
  const resizer = document.createElement('div');
719
713
  resizer.className = 'excalidraw-embed-resizer';
720
714
  resizer.title = 'Drag to resize';
721
- this._setupResizer(resizer, iframe, () => this._syncEntryLayout(entry));
715
+ this._setupResizer(resizer, iframe, () => {
716
+ this._syncEntryLayout(entry);
717
+ this._requestPreviewViewportFit(entry);
718
+ });
722
719
 
723
720
  wrapper.append(header, iframe, resizer);
724
721
 
@@ -737,12 +734,13 @@ export class ExcalidrawEmbedController {
737
734
  wrapper.classList.remove('is-maximized');
738
735
  syncMaximizeButtonState();
739
736
  document.body.classList.remove('excalidraw-maximized-open');
740
- this._restoreWrapperMount(entry);
737
+ this._restoreMaximizedEntryLayout(entry);
741
738
  iframe.style.height = restoreHeight;
742
739
  if (this.maximizedEmbed?.wrapper === wrapper) {
743
740
  this.maximizedEmbed = null;
744
741
  }
745
742
  this._syncEntryLayout(entry);
743
+ this._requestPreviewViewportFit(entry);
746
744
  };
747
745
 
748
746
  const enterMaximize = () => {
@@ -750,12 +748,13 @@ export class ExcalidrawEmbedController {
750
748
  this._exitMaximizedEmbed();
751
749
  isMaximized = true;
752
750
  restoreHeight = iframe.style.height || `${DEFAULT_HEIGHT}px`;
753
- this._mountWrapperInMaximizedRoot(entry);
751
+ this._enterMaximizedEntryLayout(entry);
754
752
  wrapper.classList.add('is-maximized');
755
753
  syncMaximizeButtonState();
756
754
  document.body.classList.add('excalidraw-maximized-open');
757
755
  this.maximizedEmbed = { wrapper, exit: exitMaximize };
758
756
  this._syncEntryLayout(entry);
757
+ this._requestPreviewViewportFit(entry);
759
758
  };
760
759
 
761
760
  maxBtn.addEventListener('click', () => {
@@ -845,23 +844,6 @@ export class ExcalidrawEmbedController {
845
844
  return overlayRoot;
846
845
  }
847
846
 
848
- _ensureMaximizedRoot() {
849
- if (this.maximizedRoot?.isConnected && this.maximizedRoot.parentElement === document.body) {
850
- return this.maximizedRoot;
851
- }
852
-
853
- let maximizedRoot = document.body.querySelector('[data-excalidraw-maximized-root="true"]');
854
- if (!maximizedRoot) {
855
- maximizedRoot = document.createElement('div');
856
- maximizedRoot.dataset.excalidrawMaximizedRoot = 'true';
857
- maximizedRoot.className = 'excalidraw-maximized-root';
858
- document.body.appendChild(maximizedRoot);
859
- }
860
-
861
- this.maximizedRoot = maximizedRoot;
862
- return maximizedRoot;
863
- }
864
-
865
847
  _isFilePreviewEntry(entry) {
866
848
  return entry?.key === `${entry?.filePath}#file-preview`;
867
849
  }
@@ -1042,53 +1024,47 @@ export class ExcalidrawEmbedController {
1042
1024
  entry.placeholder.style.pointerEvents = '';
1043
1025
  }
1044
1026
 
1045
- _mountWrapperInMaximizedRoot(entry) {
1027
+ _enterMaximizedEntryLayout(entry) {
1046
1028
  if (!entry?.wrapper) {
1047
1029
  return;
1048
1030
  }
1049
1031
 
1050
- const maximizedRoot = this._ensureMaximizedRoot();
1051
- maximizedRoot.hidden = false;
1052
- entry.restoreParent = entry.wrapper.parentElement || null;
1053
- entry.restoreNextSibling = entry.wrapper.nextSibling || null;
1032
+ if (this._shouldInlineFilePreview(entry) && entry.wrapper.parentElement && !entry.maximizeSpacer) {
1033
+ const spacer = document.createElement('div');
1034
+ spacer.className = 'excalidraw-maximize-spacer';
1035
+ spacer.style.height = `${Math.ceil(entry.wrapper.getBoundingClientRect().height)}px`;
1036
+ entry.maximizeSpacer = spacer;
1037
+ entry.wrapper.parentElement.insertBefore(spacer, entry.wrapper);
1038
+ }
1039
+
1040
+ entry.wrapper.dataset.excalidrawMaximized = 'true';
1054
1041
  entry.wrapper.style.position = '';
1055
1042
  entry.wrapper.style.top = '';
1056
1043
  entry.wrapper.style.left = '';
1057
- entry.wrapper.style.width = '';
1058
- entry.wrapper.style.margin = '';
1059
- if (entry.wrapper.parentElement !== maximizedRoot) {
1060
- maximizedRoot.appendChild(entry.wrapper);
1061
- }
1044
+ entry.wrapper.style.width = 'auto';
1045
+ entry.wrapper.style.height = 'auto';
1046
+ entry.wrapper.style.minHeight = '0';
1047
+ entry.wrapper.style.margin = '0';
1048
+ this.overlayRoot?.classList.add('has-maximized-entry');
1062
1049
  }
1063
1050
 
1064
- _restoreWrapperMount(entry) {
1051
+ _restoreMaximizedEntryLayout(entry) {
1065
1052
  if (!entry?.wrapper) {
1066
1053
  return;
1067
1054
  }
1068
1055
 
1069
- if (this._shouldInlineFilePreview(entry)) {
1070
- const { restoreParent, restoreNextSibling } = entry;
1071
- if (restoreParent?.isConnected) {
1072
- if (restoreNextSibling?.parentElement === restoreParent) {
1073
- restoreParent.insertBefore(entry.wrapper, restoreNextSibling);
1074
- } else {
1075
- restoreParent.appendChild(entry.wrapper);
1076
- }
1077
- }
1078
- } else {
1079
- const overlayRoot = this._ensureOverlayRoot();
1080
- overlayRoot.hidden = false;
1081
- if (entry.wrapper.parentElement !== overlayRoot) {
1082
- overlayRoot.appendChild(entry.wrapper);
1083
- }
1084
- }
1085
-
1086
- entry.restoreParent = null;
1087
- entry.restoreNextSibling = null;
1056
+ const { maximizeSpacer } = entry;
1057
+ delete entry.wrapper.dataset.excalidrawMaximized;
1058
+ entry.wrapper.style.width = '';
1059
+ entry.wrapper.style.height = '';
1060
+ entry.wrapper.style.minHeight = '';
1088
1061
 
1089
- if (this.maximizedRoot && this.maximizedRoot.childElementCount === 0) {
1090
- this.maximizedRoot.hidden = true;
1062
+ if (maximizeSpacer?.parentElement) {
1063
+ maximizeSpacer.remove();
1091
1064
  }
1065
+
1066
+ entry.maximizeSpacer = null;
1067
+ this.overlayRoot?.classList.remove('has-maximized-entry');
1092
1068
  }
1093
1069
 
1094
1070
  _syncEntryLayout(entry) {
@@ -1133,8 +1109,10 @@ export class ExcalidrawEmbedController {
1133
1109
  entry.wrapper.style.position = '';
1134
1110
  entry.wrapper.style.top = '';
1135
1111
  entry.wrapper.style.left = '';
1136
- entry.wrapper.style.width = '';
1137
- entry.wrapper.style.margin = '';
1112
+ entry.wrapper.style.width = 'auto';
1113
+ entry.wrapper.style.height = 'auto';
1114
+ entry.wrapper.style.minHeight = '0';
1115
+ entry.wrapper.style.margin = '0';
1138
1116
  return;
1139
1117
  }
1140
1118
 
@@ -1142,6 +1120,8 @@ export class ExcalidrawEmbedController {
1142
1120
  entry.wrapper.style.top = `${placeholder.offsetTop}px`;
1143
1121
  entry.wrapper.style.left = `${placeholder.offsetLeft}px`;
1144
1122
  entry.wrapper.style.width = `${placeholder.offsetWidth}px`;
1123
+ entry.wrapper.style.height = '';
1124
+ entry.wrapper.style.minHeight = '';
1145
1125
  entry.wrapper.style.margin = '0';
1146
1126
  }
1147
1127
 
@@ -1240,6 +1220,17 @@ export class ExcalidrawEmbedController {
1240
1220
  entry?.iframe?.contentWindow?.postMessage(payload, window.location.origin);
1241
1221
  }
1242
1222
 
1223
+ _requestPreviewViewportFit(entry) {
1224
+ if (this._isFilePreviewEntry(entry)) {
1225
+ return;
1226
+ }
1227
+
1228
+ this._postMessageToEntry(entry, {
1229
+ source: 'collabmd-host',
1230
+ type: 'fit-preview-viewport',
1231
+ });
1232
+ }
1233
+
1243
1234
  _syncEntryUser(entry, overrideUser = null) {
1244
1235
  const localUser = overrideUser || this.getLocalUser?.();
1245
1236
  if (!localUser) {