collabmd 0.1.42 → 0.1.44

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 (603) hide show
  1. package/bin/collabmd.js +1 -2
  2. package/dist/client/assets/CodeMirrorEditor-UCMRAMCV-CbSISC1w.js +1 -0
  3. package/dist/client/assets/{abnfDiagram-VRR7QNED-C-CM0mGi.js → abnfDiagram-N423BO3Z-CUMTFJhI.js} +1 -1
  4. package/dist/client/assets/ar-SA-PQUY64WN-xjXgbW6d.js +10 -0
  5. package/dist/client/assets/arc-DgcGdgmL.js +1 -0
  6. package/dist/client/assets/architecture-TIHT7OUA-CsHfPErM.js +1 -0
  7. package/dist/client/assets/architectureDiagram-T3A2C74G-w25m71oV.js +36 -0
  8. package/dist/client/assets/asciiarmor-C_eisQCp.js +1 -0
  9. package/dist/client/assets/{asn1-Dr8qZg38.js → asn1-DCl_8MCW.js} +1 -1
  10. package/dist/client/assets/{asterisk-Bja0s6e1.js → asterisk-BEn0Cwpx.js} +1 -1
  11. package/dist/client/assets/az-AZ-OXJXL76K-4JkO4Pca.js +1 -0
  12. package/dist/client/assets/bases-preview-controller-2pLHk0uk.js +143 -0
  13. package/dist/client/assets/bg-BG-W2GKIJDF-DnkH_o81.js +5 -0
  14. package/dist/client/assets/{blockDiagram-677ZJIJ3-BLomrZyt.js → blockDiagram-VBNYF7ZC-CipJt9Jl.js} +5 -5
  15. package/dist/client/assets/bn-BD-TGL7M4PJ-CG4JkmtP.js +3 -0
  16. package/dist/client/assets/bn-IN-BKETKYEH-CG4JkmtP.js +3 -0
  17. package/dist/client/assets/browser-utils-CKtI_rZl.js +1 -0
  18. package/dist/client/assets/button-BCEiw4Rw.js +1 -0
  19. package/dist/client/assets/c4Diagram-5PPSVZJV-B5ktVx6g.js +10 -0
  20. package/dist/client/assets/ca-ES-LD5SCRVV-U6_TVMX9.js +8 -0
  21. package/dist/client/assets/channel-4Jkmq93I.js +1 -0
  22. package/dist/client/assets/{chunk-32BRIVSS-BD6LQmvI.js → chunk-2GRJ4B5K-DhnlUv3F.js} +1 -1
  23. package/dist/client/assets/chunk-3NCLNEKW-Y2Jf_LI-.js +1 -0
  24. package/dist/client/assets/{chunk-HOUHSVGY-DX1huN9x.js → chunk-4I5QYGJK-CCB2YcIH.js} +1 -1
  25. package/dist/client/assets/{chunk-5FCAYU7R-DNtJmW0j.js → chunk-5FCAYU7R-Dh5nylU8.js} +1 -1
  26. package/dist/client/assets/{chunk-5HE753X5-o8-OCfIL.js → chunk-5HE753X5-Bw-yg4kO.js} +1 -1
  27. package/dist/client/assets/{chunk-5JV3BV7I-DKfYBAeY.js → chunk-5JV3BV7I-Cy5pj3QY.js} +1 -1
  28. package/dist/client/assets/{chunk-EX3LRPZG-DNVm3Wj1.js → chunk-5RXB4S5H-BWrwFqMI.js} +3 -3
  29. package/dist/client/assets/{chunk-5TONJI2A-DOX2waSJ.js → chunk-5TONJI2A-DQOY3q1H.js} +1 -1
  30. package/dist/client/assets/{chunk-MOJQB5TN-BEEcDvmL.js → chunk-6Q2QTUOP-CPlWzBtc.js} +1 -1
  31. package/dist/client/assets/chunk-7XWMRXBY-CfMzEq80.js +1 -0
  32. package/dist/client/assets/chunk-7Z6QIM7H-BP9Pdsm9.js +10 -0
  33. package/dist/client/assets/chunk-AXR3VHVW-0GTk_evH.js +41 -0
  34. package/dist/client/assets/{chunk-BIQX33UG-CuPbkyWp.js → chunk-BIQX33UG-DZEsGuSn.js} +1 -1
  35. package/dist/client/assets/{chunk-CQNSW5MT-BbEh_krl.js → chunk-CQNSW5MT-B8S09OIh.js} +1 -1
  36. package/dist/client/assets/{chunk-CYSBUYHQ-CbOq7Rc1.js → chunk-CYSBUYHQ-C1Rf4art.js} +1 -1
  37. package/dist/client/assets/{chunk-Z24UKHUO-BQ6-bK37.js → chunk-CZQZEIFA-DT3N9fo7.js} +4 -4
  38. package/dist/client/assets/{chunk-EMLP6XTP-BoneA0Uo.js → chunk-EMLP6XTP-RLD4nXpI.js} +1 -1
  39. package/dist/client/assets/{chunk-V7JOEXUC-Bo_5WqHt.js → chunk-GF5L2VYU-DkJpO7ff.js} +3 -3
  40. package/dist/client/assets/chunk-I66GZJ75-CVFiiffQ.js +127 -0
  41. package/dist/client/assets/{chunk-FWX5IMBZ-Ch9_j2qF.js → chunk-J7OUQ5F2-4CEb7pvH.js} +2 -2
  42. package/dist/client/assets/{chunk-JG7HCLWE-Dk4_aECj.js → chunk-JG7HCLWE-BYfiSaVt.js} +1 -1
  43. package/dist/client/assets/{chunk-PUDLZKDR-C-JwZaMh.js → chunk-JQJVKLGR-cx8X_24v.js} +5 -5
  44. package/dist/client/assets/{chunk-VR4S4FIN-uXjSaaA7.js → chunk-KBJHAD2P-CB_3zWUf.js} +1 -1
  45. package/dist/client/assets/{chunk-KEIR6QF5-Dj-OpFgW.js → chunk-KEIR6QF5-BICK3FdT.js} +31 -31
  46. package/dist/client/assets/{chunk-MOZMSUNE-BgA8jCvb.js → chunk-MOZMSUNE-XVucA-n6.js} +1 -1
  47. package/dist/client/assets/chunk-NSK5VX7P-TLH37VXI.js +2 -0
  48. package/dist/client/assets/{chunk-OSBZ3O6U-CX9EQ5t2.js → chunk-OSBZ3O6U-CrKZOUOr.js} +1 -1
  49. package/dist/client/assets/{chunk-QBLGF6JB-C9zGMqvP.js → chunk-QBLGF6JB-CxAyS2mW.js} +1 -1
  50. package/dist/client/assets/{chunk-ZGVPDNZ5-Bmet6b46.js → chunk-QR6OTTB3-CDAA_5Ib.js} +3 -3
  51. package/dist/client/assets/{chunk-R7FJI6CG-BpBhcF6R.js → chunk-R7FJI6CG-Cnn3gE-Y.js} +1 -1
  52. package/dist/client/assets/chunk-RYQCIY6F-D-a0zH8K.js +1 -0
  53. package/dist/client/assets/{chunk-SRAX5OIU-Bpn6XoyU.js → chunk-SRAX5OIU-KFQikY-4.js} +1 -1
  54. package/dist/client/assets/{chunk-U6XO7XAA-CR0BSRFR.js → chunk-U6XO7XAA-BFxjP5U3.js} +1 -1
  55. package/dist/client/assets/chunk-UBXNYLIW-Bhk-PbFK.js +1 -0
  56. package/dist/client/assets/{chunk-C7G6YPKG-C97QUAKv.js → chunk-W5SLKNZC-BdNSCxZ9.js} +1 -1
  57. package/dist/client/assets/{chunk-Q4XR5HBZ-Dyewsidf.js → chunk-WRU74C26-h6_XkD3_.js} +7 -7
  58. package/dist/client/assets/{chunk-XXDRQBXY-Bq6zMMOx.js → chunk-XXDRQBXY-BvKO0v-W.js} +1 -1
  59. package/dist/client/assets/{chunk-YOTPTUD7-CjHV8V6f.js → chunk-YOTPTUD7-D0vRKqYp.js} +1 -1
  60. package/dist/client/assets/{chunk-Z5NKEFVG-DC2Lcs-4.js → chunk-Z5NKEFVG-q6fHH75m.js} +2 -2
  61. package/dist/client/assets/{chunk-ZIRB5QZD-C6fEPe3t.js → chunk-ZIRB5QZD-O39ZBUk3.js} +5 -5
  62. package/dist/client/assets/classDiagram-JCYQIIEL-L7lsyW_w.js +1 -0
  63. package/dist/client/assets/classDiagram-v2-OCEON4UE-L7lsyW_w.js +1 -0
  64. package/dist/client/assets/clike-D_6L3tnO.js +1 -0
  65. package/dist/client/assets/cmake-84nbDH0I.js +1 -0
  66. package/dist/client/assets/coffeescript-De_zI4J0.js +1 -0
  67. package/dist/client/assets/{room-BhC-3iml.js → comment-threads-D-iKphIp.js} +2 -2
  68. package/dist/client/assets/commonlisp-DgAKBe0r.js +1 -0
  69. package/dist/client/assets/cose-bilkent-JH36ORCC-Cm_QF_yb.js +1 -0
  70. package/dist/client/assets/crystal-Bsdphhtm.js +1 -0
  71. package/dist/client/assets/cs-CZ-OFPU5DBV-BmFAIhqX.js +7 -0
  72. package/dist/client/assets/css-CnaYoQib.js +1 -0
  73. package/dist/client/assets/cynefin-VYW2F7L2-Ds2Fw2Y0.js +1 -0
  74. package/dist/client/assets/cynefinDiagram-MW4NZA55-CJxXfJek.js +62 -0
  75. package/dist/client/assets/cytoscape.esm-B-NFISlW.js +321 -0
  76. package/dist/client/assets/{d-BhMjBjQP.js → d-DWkQyNnU.js} +1 -1
  77. package/dist/client/assets/da-DK-FRDJFYWF-H387Jw8B.js +2 -0
  78. package/dist/client/assets/dagre-Buvkdvvj.js +1 -0
  79. package/dist/client/assets/{dagre-VKFMJZFB-CSQjHsP2.js → dagre-VZM6K2ZE-L1xArOGs.js} +2 -2
  80. package/dist/client/assets/de-CH-ZG7H3QK3-C_groygo.js +11 -0
  81. package/dist/client/assets/de-DE-SIJYH4IH-C_groygo.js +11 -0
  82. package/dist/client/assets/defaultLocale-BFoDCU3G.js +1 -0
  83. package/dist/client/assets/{diagram-OA4YK3LP-ruJmRhl8.js → diagram-7IWD3JNH-B2d2Bm15.js} +1 -1
  84. package/dist/client/assets/{diagram-FQU43EPY-D0RPbiE5.js → diagram-B4RE2ZJO-NP4UAwjR.js} +1 -1
  85. package/dist/client/assets/{diagram-NH7WQ7WH-CaTayrXM.js → diagram-LBJQPF4R-D1FJQV8t.js} +1 -1
  86. package/dist/client/assets/{diagram-G47NLZAW-XriksZQN.js → diagram-Q27KOJAE-DylDuwor.js} +13 -13
  87. package/dist/client/assets/diagram-UB23O5K3-DJcKCwv9.js +41 -0
  88. package/dist/client/assets/dist-3bgCp7iY.js +1 -0
  89. package/dist/client/assets/dist-BH87JoHx.js +11 -0
  90. package/dist/client/assets/{dist-BUxzPC-Q.js → dist-BIkPRZO7.js} +3 -3
  91. package/dist/client/assets/{dist-qx0Iv9vM.js → dist-B_J_HbC0.js} +1 -1
  92. package/dist/client/assets/dist-BqCsFpx4.js +1 -0
  93. package/dist/client/assets/dist-C11hHqv_.js +13 -0
  94. package/dist/client/assets/{dist-YCtFk_v0.js → dist-C2JHCt8U.js} +1 -1
  95. package/dist/client/assets/{dist-D3Tmtejd.js → dist-CYZmbokb.js} +2 -2
  96. package/dist/client/assets/dist-CZjTtmTu.js +1 -0
  97. package/dist/client/assets/{dist-C__bPRpd.js → dist-Cig4Ov_X.js} +1 -1
  98. package/dist/client/assets/{dist-DXTgEdvE.js → dist-CnL7Y2sM.js} +1 -1
  99. package/dist/client/assets/dist-CqQEC8gR.js +1 -0
  100. package/dist/client/assets/{dist-CQTo4Y46.js → dist-D2AQ-76g.js} +1 -1
  101. package/dist/client/assets/dist-D4Rzqod1.js +1 -0
  102. package/dist/client/assets/dist-D5sn-mwk.js +9 -0
  103. package/dist/client/assets/dist-D7G-n87v.js +1 -0
  104. package/dist/client/assets/dist-DCzuX1AF.js +1 -0
  105. package/dist/client/assets/dist-DGb27Dl6.js +1 -0
  106. package/dist/client/assets/{dist-CHJCI2AN.js → dist-DK5Gs2wa.js} +1 -1
  107. package/dist/client/assets/dist-DRqOrNgN.js +1 -0
  108. package/dist/client/assets/{dist-B0NFuQC3.js → dist-DetkMS_4.js} +1 -1
  109. package/dist/client/assets/dist-DhLvC8DS.js +2 -0
  110. package/dist/client/assets/{dist-D1W8XQvM.js → dist-Dp6FVkQ1.js} +1 -1
  111. package/dist/client/assets/{dist-D4MWz_rC.js → dist-Drp8uu5J.js} +1 -1
  112. package/dist/client/assets/dist-DtbjNB28.js +1 -0
  113. package/dist/client/assets/dist-DyrYcvpo2.js +1 -0
  114. package/dist/client/assets/dist-GrygD2zE.js +1 -0
  115. package/dist/client/assets/{dist-CzNyYE-S.js → dist-HmEpWUow.js} +1 -1
  116. package/dist/client/assets/{dist-D7-13adP.js → dist-JYEDRrPT.js} +1 -1
  117. package/dist/client/assets/dist-MvcV4190.js +1 -0
  118. package/dist/client/assets/{dist-gGmuzNio.js → dist-RTa81Km7.js} +1 -1
  119. package/dist/client/assets/{dockerfile-BLkNEvjs.js → dockerfile-DJkHQgkl.js} +1 -1
  120. package/dist/client/assets/drawio-editor-DDvFoarP.js +9 -0
  121. package/dist/client/assets/drawio-embed-controller-BD1GTRwn.js +1 -0
  122. package/dist/client/assets/drawioEditor-Bu5grlH5.js +2 -0
  123. package/dist/client/assets/{dylan-C6jEEEk-.js → dylan-BCDoL_-p.js} +1 -1
  124. package/dist/client/assets/{ebnfDiagram-CCIWWBDH-exNgBUy6.js → ebnfDiagram-BXEA7PRR-nw0wmA6y.js} +1 -1
  125. package/dist/client/assets/{ecl-BSZaIHnp.js → ecl-BVIeWmwY.js} +1 -1
  126. package/dist/client/assets/editor-session-DGlpiAsK.js +16 -0
  127. package/dist/client/assets/el-GR-IEE2CGI2-BkT6YT54.js +7 -0
  128. package/dist/client/assets/embedded-editor-base-C9roKYpW.css +1 -0
  129. package/dist/client/assets/en-GADW4C6J-DQ6zyCEM.js +1 -0
  130. package/dist/client/assets/{erDiagram-Q63AITRT-CoYS49kY.js → erDiagram-JOGREHBK-cYUpEKpf.js} +3 -3
  131. package/dist/client/assets/{erlang-DaB2Rkuy.js → erlang-BV0c4Hdn.js} +1 -1
  132. package/dist/client/assets/es-ES-TVVPWKV5-CpPKJXTM.js +12 -0
  133. package/dist/client/assets/eu-ES-CGBMFQDT-Bu3N2493.js +8 -0
  134. package/dist/client/assets/eventmodeling-45OFAUF4-CLEiVx5s.js +1 -0
  135. package/dist/client/assets/excalidraw-editor-BHu6k8d4.js +9 -0
  136. package/dist/client/assets/excalidraw-editor-Cr_184EF.css +1 -0
  137. package/dist/client/assets/excalidraw-embed-controller-y2fenN_g.js +1 -0
  138. package/dist/client/assets/excalidraw-scene-BvsQ6mLP.js +176 -0
  139. package/dist/client/assets/excalidrawEditor-4vFE--Uw.js +2 -0
  140. package/dist/client/assets/export-page-Cby8JzPO.js +39 -0
  141. package/dist/client/assets/exportDocument-C9v-bc7I.css +1 -0
  142. package/dist/client/assets/exportDocument-CRHCfsdo.js +2 -0
  143. package/dist/client/assets/fa-IR-IE6XAPR4-BEvLCORD.js +9 -0
  144. package/dist/client/assets/{factor-D7LVTn2l.js → factor-LKH5gN8L.js} +1 -1
  145. package/dist/client/assets/fi-FI-P7TKNHRM-DI0q8iSX.js +6 -0
  146. package/dist/client/assets/{file-history-view-controller-CK3oHDCT.js → file-history-view-controller-BDjEV9xJ.js} +11 -11
  147. package/dist/client/assets/flowDiagram-UKHOOZJN-D0ypP0Ez.js +1 -0
  148. package/dist/client/assets/fr-FR-QI2XZNT7-y8kXd8LA.js +12 -0
  149. package/dist/client/assets/ganttDiagram-PKOTCBZU-BnM97BCT.js +292 -0
  150. package/dist/client/assets/{git-diff-view-controller-qorJ_Quo.js → git-diff-view-controller-DgdM1aqb.js} +24 -24
  151. package/dist/client/assets/git-panel-controller-BDTR2HVp.js +207 -0
  152. package/dist/client/assets/gitGraph-TEB2WS4Q-CZFBqwW-.js +1 -0
  153. package/dist/client/assets/{gitGraphDiagram-IHSO6WYX-x3NetpXU.js → gitGraphDiagram-DS77QQ5N-BQpQhjuN.js} +3 -3
  154. package/dist/client/assets/gl-ES-TLYCNOZZ-Br-Fhff-.js +6 -0
  155. package/dist/client/assets/groovy-CUpZ7dEl.js +1 -0
  156. package/dist/client/assets/he-IL-ZX43XLGP-qKQq6V9X.js +9 -0
  157. package/dist/client/assets/hi-IN-UTYRMTUF-DOUcwrDO.js +3 -0
  158. package/dist/client/assets/hu-HU-AJOSEBW6-FqTyvHlD.js +3 -0
  159. package/dist/client/assets/id-ID-ETLTVG6C-CQqh3CLS.js +8 -0
  160. package/dist/client/assets/image-XGD7JQR6-XDUWHRpO.js +1 -0
  161. package/dist/client/assets/image-blob-reduce.esm-Dj7YBvMv.js +2 -0
  162. package/dist/client/assets/index-7xOyXDhP.css +1 -0
  163. package/dist/client/assets/index-Bz1KuQ6y.js +2 -0
  164. package/dist/client/assets/info-DKCQHKI2--1InqQeT.js +1 -0
  165. package/dist/client/assets/{infoDiagram-FWYZ7A6U-DyfGrH8z.js → infoDiagram-6WML65LV-DYB8HCDQ.js} +1 -1
  166. package/dist/client/assets/init-C-OQMol4.js +1 -0
  167. package/dist/client/assets/{ishikawaDiagram-FXEZZL3T-BOts527_.js → ishikawaDiagram-WSZJBQD7-Coz_P3t6.js} +2 -2
  168. package/dist/client/assets/it-IT-B4B6TP6L-V-yK3SZz.js +12 -0
  169. package/dist/client/assets/ja-JP-IYKVURR5-BQKBXRpX.js +12 -0
  170. package/dist/client/assets/javascript-BWjar7HY.js +1 -0
  171. package/dist/client/assets/javascript-D-FtdkNC.js +1 -0
  172. package/dist/client/assets/{journeyDiagram-5HDEW3XC-DF37OVrZ.js → journeyDiagram-NVQOT4AX-B6edChce.js} +3 -3
  173. package/dist/client/assets/{react-lCSYwAWP.js → jsx-runtime-BpzPEenQ.js} +1 -1
  174. package/dist/client/assets/kaa-SE2BUIKX-CZ5kfwPg.js +1 -0
  175. package/dist/client/assets/kab-KAB-Y3GLKXLR-Do7GWfuN.js +4 -0
  176. package/dist/client/assets/{kanban-definition-HUTT4EX6-nCjbm1T6.js → kanban-definition-27J2QSJJ-BFd9-cLc.js} +3 -3
  177. package/dist/client/assets/{katex-B7rAX3Vi.js → katex-CXMH3UgJ.js} +3 -3
  178. package/dist/client/assets/kk-KZ-ABWUFVOH-BpqVciQz.js +1 -0
  179. package/dist/client/assets/{km-KH-PBSJLZ2M-Bh1DsarT.js → km-KH-PCWDKPHP-DSmy5shj.js} +3 -3
  180. package/dist/client/assets/ko-KR-7JQDXKGM-N42lep78.js +5 -0
  181. package/dist/client/assets/ku-TR-NAH2Q5B7-K8LLl9fk.js +6 -0
  182. package/dist/client/assets/{line-h44YiLOQ.js → line-B_S_S8kV.js} +1 -1
  183. package/dist/client/assets/linear-n-3HSMUF.js +1 -0
  184. package/dist/client/assets/lt-LT-VQFYRSNQ-BmOd0ALn.js +3 -0
  185. package/dist/client/assets/lv-LV-T62VSYUM-B22WdPhp.js +4 -0
  186. package/dist/client/assets/main-Ci07m9oP.js +152 -0
  187. package/dist/client/assets/{mermaid-parser.core-ygm3cZ_w.js → mermaid-parser.core-CUVdebAV.js} +2 -2
  188. package/dist/client/assets/mermaid.core-DN-lF51U.js +11 -0
  189. package/dist/client/assets/{mindmap-definition-LN4V7U3C-CTpHMYFE.js → mindmap-definition-FAOFIHXS-C9PQ38Al.js} +3 -3
  190. package/dist/client/assets/mr-IN-V4FHLCJE-XX069tpm.js +9 -0
  191. package/dist/client/assets/{mumps-CW_TBmxz.js → mumps-BSzj6Xyz.js} +1 -1
  192. package/dist/client/assets/my-MM-E3SQ6E54-cst_-5SB.js +1 -0
  193. package/dist/client/assets/nb-NO-MLNOFN5H-Bu2URWko.js +8 -0
  194. package/dist/client/assets/nl-NL-D5L3ZV4M-BqrV0btt.js +13 -0
  195. package/dist/client/assets/nn-NO-NNHDGPKB-DK-xZaWM.js +4 -0
  196. package/dist/client/assets/{nsis-AQ_alPln.js → nsis-CfSuhXs5.js} +1 -1
  197. package/dist/client/assets/{ntriples-d28e9m0E.js → ntriples-B9h1VB_g.js} +1 -1
  198. package/dist/client/assets/oc-FR-DWCRF55G-BZ5Po5R6.js +4 -0
  199. package/dist/client/assets/{ordinal-hYBb2elL.js → ordinal-BDEzSJ7C.js} +1 -1
  200. package/dist/client/assets/pa-IN-3JSAY44M-BZQSjKrS.js +4 -0
  201. package/dist/client/assets/packet-7NZHBO7P-BGMXB0XL.js +1 -0
  202. package/dist/client/assets/path-fybaL0A-.js +1 -0
  203. package/dist/client/assets/{pegDiagram-2B236MQR-Bq9qITsk.js → pegDiagram-VL7TDLO6-BMZUrSaU.js} +1 -1
  204. package/dist/client/assets/percentages-ETZPVQEE-DFxFqXgH.js +1 -0
  205. package/dist/client/assets/perl-BkSkiI9m.js +1 -0
  206. package/dist/client/assets/{pica-D0pwGKw7.js → pica-xkWDouSg.js} +2 -2
  207. package/dist/client/assets/pie-RZYD4A2V-DgYg3tCt.js +1 -0
  208. package/dist/client/assets/{pieDiagram-ENE6RG2P--ax2FUc8.js → pieDiagram-7S7Q4E2Y-h8kbCL9o.js} +2 -2
  209. package/dist/client/assets/{pl-PL-EERMMCTN-dIzrbxJt.js → pl-PL-ACURYKP3-qcEOSfCk.js} +4 -4
  210. package/dist/client/assets/{powershell-CzG71I4L.js → powershell-BcIto6Sf.js} +1 -1
  211. package/dist/client/assets/preview-diagram-utils-n_bbJA9V.js +1 -0
  212. package/dist/client/assets/preview-render-compiler-BSaQO_p3.js +35 -0
  213. package/dist/client/assets/preview-render-compiler-csGM5ZFz.js +1 -0
  214. package/dist/client/assets/preview-render-profile-BZzGSg6K.js +22 -0
  215. package/dist/client/assets/preview-render-worker-B42LWvrD.js +60 -0
  216. package/dist/client/assets/pt-BR-LOX7MLGD-DLueHSyZ.js +10 -0
  217. package/dist/client/assets/pt-PT-CZ2U2RFQ-BJ-GAEm6.js +12 -0
  218. package/dist/client/assets/{pug-Ck0YjsGM.js → pug-Wky5Dnfy.js} +1 -1
  219. package/dist/client/assets/puppet-BZyAS7I4.js +1 -0
  220. package/dist/client/assets/python-B_1Jd8HM.js +1 -0
  221. package/dist/client/assets/{quadrantDiagram-ABIIQ3AL-f0PUv7DH.js → quadrantDiagram-CIZ2JOQS-CkElyfMi.js} +2 -2
  222. package/dist/client/assets/{quick-switcher-controller-CVRUPEKp.js → quick-switcher-controller-CoiYvllm.js} +4 -4
  223. package/dist/client/assets/r-CxDmU1I4.js +1 -0
  224. package/dist/client/assets/radar-I7S5WNFK-Ag-zp_Rq.js +1 -0
  225. package/dist/client/assets/railroad-3IZDKUUU-aibJDIDV.js +1 -0
  226. package/dist/client/assets/railroad-abnf-AHOZXSZD-BBMEuvIl.js +1 -0
  227. package/dist/client/assets/railroad-ebnf-EBAXGLYW-Be1nseej.js +1 -0
  228. package/dist/client/assets/railroad-peg-LSFZ7HO6-DIvD-Eyb.js +1 -0
  229. package/dist/client/assets/{railroadDiagram-RFXS5EU6-CZD_9g-4.js → railroadDiagram-AXF67PYL-c75gnikD.js} +1 -1
  230. package/dist/client/assets/{requirementDiagram-TGXJPOKE-C4Jwr3TE.js → requirementDiagram-LRYGKXZP-mNxKLuHS.js} +2 -2
  231. package/dist/client/assets/ro-RO-2HECL2X6-CJUvKAf0.js +12 -0
  232. package/dist/client/assets/rolldown-runtime-Dd_uD5pT.js +1 -0
  233. package/dist/client/assets/room-CDrmIdDt.js +1 -0
  234. package/dist/client/assets/{rough.esm-CSKSodPl.js → rough.esm-Dy-Kn_BL.js} +1 -1
  235. package/dist/client/assets/ru-RU-HAYNXO46-BWSlvTrt.js +10 -0
  236. package/dist/client/assets/ruby-BjXV7-Qa.js +1 -0
  237. package/dist/client/assets/runtime-config-loader-BHGniHP5.js +1 -0
  238. package/dist/client/assets/{sankeyDiagram-HTMAVEWB-B2B2mdB6.js → sankeyDiagram-W5VNT64P-0OhplksI.js} +2 -2
  239. package/dist/client/assets/{scheme-tChLYBuY.js → scheme-D9qYN0V5.js} +1 -1
  240. package/dist/client/assets/{segmented-control-DhUkW6ro.js → segmented-control-DJrHSz8M.js} +1 -1
  241. package/dist/client/assets/sequenceDiagram-SI44F4Z6-BJ_yAocC.js +162 -0
  242. package/dist/client/assets/{shell-Du5Qg9im.js → shell-DwuoZtxw.js} +1 -1
  243. package/dist/client/assets/si-LK-W5KNS4H6-DGGCsn7k.js +1 -0
  244. package/dist/client/assets/{simple-mode-DRpGK0lJ.js → simple-mode-DXiLM1-G.js} +1 -1
  245. package/dist/client/assets/sk-SK-7K2CFGDV-CY4uTYgQ.js +7 -0
  246. package/dist/client/assets/sl-SI-OXV2QZWW-2-weqaBY.js +6 -0
  247. package/dist/client/assets/sql-DuQMFDvy.js +1 -0
  248. package/dist/client/assets/src-oBChb5qS.js +1 -0
  249. package/dist/client/assets/{stateDiagram-2N3HPSRC-B1niwAq-.js → stateDiagram-OKZ733FA-Cc83O86s.js} +1 -1
  250. package/dist/client/assets/stateDiagram-v2-UEYNNEHI-B1-BufUk.js +1 -0
  251. package/dist/client/assets/{stex-sDrdk2BW.js → stex-DNzd62Q_.js} +1 -1
  252. package/dist/client/assets/{stylus-DLLZ8dgm.js → stylus-BOVgKnng.js} +1 -1
  253. package/dist/client/assets/subset-shared.chunk-BXlA-9CO.js +1 -0
  254. package/dist/client/assets/{subset-worker.chunk-Cuw2UvhD.js → subset-worker.chunk-CoaGye2U.js} +1 -1
  255. package/dist/client/assets/sv-SE-JTOBZRGL-9-IUtVkO.js +12 -0
  256. package/dist/client/assets/swimlanes-SLNWSIFB-oVTWEJIj.js +2 -0
  257. package/dist/client/assets/swimlanesDiagram-ULZ7WXOC-C5OTVwEu.js +8 -0
  258. package/dist/client/assets/ta-IN-KFAVKXGT-gHO6Q_DH.js +6 -0
  259. package/dist/client/assets/{textile-CyzeGT9J.js → textile-C4jVoHG1.js} +1 -1
  260. package/dist/client/assets/th-TH-VDMSCPDL-BvJuw6PJ.js +1 -0
  261. package/dist/client/assets/tiki-AK6FwT8q.js +1 -0
  262. package/dist/client/assets/timeline-definition-Z64GVDOM-BWDAGTHz.js +120 -0
  263. package/dist/client/assets/toml-BPTmHmyx.js +1 -0
  264. package/dist/client/assets/tr-TR-CEZ6GX45-CG6UU3Su.js +4 -0
  265. package/dist/client/assets/treeView-QDETBFTQ-uHZ-3Fz8.js +1 -0
  266. package/dist/client/assets/treemap-6X3UGDF4-BnUKyy3l.js +1 -0
  267. package/dist/client/assets/{ttcn-BePYh-hG.js → ttcn-PPSTk1ow.js} +1 -1
  268. package/dist/client/assets/{ttcn-cfg-CY0aot7Q.js → ttcn-cfg-2b4Gb5sE.js} +1 -1
  269. package/dist/client/assets/uk-UA-Q3H3OXQC-CSuIg_DY.js +6 -0
  270. package/dist/client/assets/uz-UZ-NGCSWWPX-mom7rxSP.js +1 -0
  271. package/dist/client/assets/vault-api-client-C3mlS_4N.css +1 -0
  272. package/dist/client/assets/vault-api-client-sLB2bo56.js +1 -0
  273. package/dist/client/assets/vault-paths-CVkuh0j-.js +5 -0
  274. package/dist/client/assets/vault-utils-wdQ0RNR9.js +1 -0
  275. package/dist/client/assets/{vennDiagram-L72KCM5P-DPQ9kbN2.js → vennDiagram-T6HMQDX7-LOSsnlMB.js} +3 -3
  276. package/dist/client/assets/{verilog-BKSQ5RMB.js → verilog-7LoJAqYT.js} +1 -1
  277. package/dist/client/assets/{vhdl-CBDDcIJ_.js → vhdl-kS471soi.js} +1 -1
  278. package/dist/client/assets/vi-VN-P3NDEVPS-BB0Fu9ck.js +7 -0
  279. package/dist/client/assets/wardley-OPB4EBWU-Da7TLC2F.js +1 -0
  280. package/dist/client/assets/{wardleyDiagram-EHGQE667-5VW6_Csg.js → wardleyDiagram-T6FBY63Y-BxII3foY.js} +35 -35
  281. package/dist/client/assets/{xquery-Cda5K8Gy.js → xquery-BKJx4mf9.js} +1 -1
  282. package/dist/client/assets/{xychartDiagram-FW5EYKEG-Bj0UwltS.js → xychartDiagram-ELKLHX3M-B-pTEjju.js} +4 -4
  283. package/dist/client/assets/yjs-provider-reset-guard-Cox4nxwu.js +4 -0
  284. package/dist/client/assets/z80-Co3PbHdE.js +1 -0
  285. package/dist/client/assets/zh-CN-SS3O57GA-Bj8wsiMe.js +11 -0
  286. package/dist/client/assets/zh-HK-LWJT3VCF-DOTquTCh.js +1 -0
  287. package/dist/client/assets/zh-TW-VJXC72RT-B48PRo-l.js +13 -0
  288. package/dist/client/drawio-editor.html +2 -2
  289. package/dist/client/excalidraw-editor.html +2 -2
  290. package/dist/client/export-document.html +3 -3
  291. package/dist/client/index.html +655 -4
  292. package/package.json +19 -20
  293. package/src/client/app/index.html +652 -1
  294. package/src/client/app/main-entry.js +0 -2
  295. package/src/client/application/app-shell/git-feature.js +3 -8
  296. package/src/client/application/app-shell/ui-feature-shell.js +13 -0
  297. package/src/client/application/app-shell/ui-feature-toolbar.js +1 -8
  298. package/src/client/application/diagram-chrome.js +126 -8
  299. package/src/client/application/diagram-preview-export.js +6 -24
  300. package/src/client/application/diagram-preview-hydrator.js +217 -22
  301. package/src/client/application/mermaid-preview-hydrator.js +46 -14
  302. package/src/client/application/plantuml-preview-hydrator.js +34 -10
  303. package/src/client/application/preview-diagram-utils.js +71 -62
  304. package/src/client/application/preview-render-compiler.js +4 -2
  305. package/src/client/application/preview-render-profile.js +9 -1
  306. package/src/client/application/preview-renderer.js +30 -164
  307. package/src/client/application/wiki-link-file-controller.js +2 -2
  308. package/src/client/application/workspace-coordinator.js +76 -54
  309. package/src/client/application/workspace-route-controller.js +31 -1
  310. package/src/client/bootstrap/collabmd-app-shell.js +180 -149
  311. package/src/client/bootstrap/lazy-controller-feature.js +4 -5
  312. package/src/client/browser-utils.js +77 -0
  313. package/src/client/domain/excalidraw-api-scene-sync.js +7 -3
  314. package/src/client/domain/excalidraw-collaboration.js +3 -7
  315. package/src/client/domain/excalidraw-diagnostics.js +111 -0
  316. package/src/client/domain/excalidraw-scene.js +2 -3
  317. package/src/client/domain/room.js +2 -2
  318. package/src/client/domain/vault-paths.js +14 -0
  319. package/src/client/domain/vault-utils.js +0 -64
  320. package/src/client/excalidraw-editor.js +250 -44
  321. package/src/client/export/export-pipeline.js +6 -9
  322. package/src/client/infrastructure/api-client-utils.js +23 -0
  323. package/src/client/infrastructure/app-version-monitor.js +0 -1
  324. package/src/client/infrastructure/backlinks-api-client.js +3 -5
  325. package/src/client/infrastructure/browser-notification-port.js +6 -10
  326. package/src/client/infrastructure/browser-preferences-port.js +25 -40
  327. package/src/client/infrastructure/excalidraw-room-client.js +115 -16
  328. package/src/client/infrastructure/git-api-client.js +9 -32
  329. package/src/client/infrastructure/plantuml-api-client.js +3 -5
  330. package/src/client/infrastructure/vault-api-client.js +6 -56
  331. package/src/client/presentation/bases-preview-controller.js +6 -22
  332. package/src/client/presentation/comment-overview-controller.js +3 -15
  333. package/src/client/presentation/comment-ui/comment-ui-card.js +31 -25
  334. package/src/client/presentation/comment-ui/comment-ui-layout.js +54 -0
  335. package/src/client/presentation/comment-ui/comment-ui-render.js +1 -0
  336. package/src/client/presentation/comment-ui/comment-ui-shared.js +86 -5
  337. package/src/client/presentation/comment-ui/comment-ui-state.js +3 -0
  338. package/src/client/presentation/comment-ui-controller.js +17 -1
  339. package/src/client/presentation/components/ui/button.js +0 -25
  340. package/src/client/presentation/components/ui/class-names.js +8 -27
  341. package/src/client/presentation/drawio-embed-controller.js +8 -33
  342. package/src/client/presentation/excalidraw-embed-controller.js +50 -43
  343. package/src/client/presentation/file-action-controller.js +8 -27
  344. package/src/client/presentation/file-explorer-controller.js +1 -2
  345. package/src/client/presentation/file-explorer-view.js +4 -17
  346. package/src/client/presentation/file-history-view-controller.js +3 -12
  347. package/src/client/presentation/git-diff-view-controller.js +8 -17
  348. package/src/client/presentation/git-panel-controller.js +3 -12
  349. package/src/client/presentation/quick-switcher-controller.js +4 -7
  350. package/src/client/presentation/scroll-sync-controller.js +5 -30
  351. package/src/client/styles/components/navigation.css +1 -1
  352. package/src/client/styles/features/auth-gate.css +4 -13
  353. package/src/client/styles/features/backlinks.css +0 -1
  354. package/src/client/styles/features/collaboration-dialogs.css +2 -2
  355. package/src/client/styles/features/comment-card.css +31 -18
  356. package/src/client/styles/features/comment-overlays.css +15 -0
  357. package/src/client/styles/features/comment-overview.css +9 -4
  358. package/src/client/styles/features/comments-drawer.css +0 -1
  359. package/src/client/styles/features/diagram-preview.css +20 -0
  360. package/src/client/styles/features/diff-commit.css +0 -2
  361. package/src/client/styles/features/git-history.css +0 -2
  362. package/src/client/styles/features/quick-switcher.css +0 -8
  363. package/src/client/styles/foundation/themes.css +9 -18
  364. package/src/client/styles/layout/responsive.css +1 -1
  365. package/src/client/styles/layout/sidebar.css +17 -21
  366. package/src/client/styles/style.css +25 -7
  367. package/src/client/styles/surfaces/excalidraw-editor.css +25 -0
  368. package/src/domain/excalidraw-room-codec.js +1 -9
  369. package/src/domain/vault-paths.js +41 -0
  370. package/src/server/config/env.js +1 -5
  371. package/src/server/domain/bases/base-expression-runtime.js +1 -46
  372. package/src/server/domain/collaboration/collaboration-document-store.js +12 -115
  373. package/src/server/domain/collaboration/collaboration-room.js +21 -10
  374. package/src/server/domain/markdown-reference-extractor.js +1 -46
  375. package/src/server/domain/workspace-state.js +0 -8
  376. package/src/server/infrastructure/git/git-service.js +10 -34
  377. package/src/server/infrastructure/git/history-service.js +51 -56
  378. package/src/server/infrastructure/git/parsers.js +42 -24
  379. package/src/server/infrastructure/git/responses.js +0 -23
  380. package/src/server/infrastructure/git/untracked-files.js +1 -1
  381. package/src/server/infrastructure/http/create-git-api-command-handler.js +7 -28
  382. package/src/server/infrastructure/http/create-git-api-query-handler.js +8 -24
  383. package/src/server/infrastructure/http/create-request-handler.js +37 -12
  384. package/src/server/infrastructure/http/create-vault-api-command-handler.js +17 -41
  385. package/src/server/infrastructure/http/create-vault-api-query-handler.js +7 -14
  386. package/src/server/infrastructure/http/http-request-helpers.js +23 -0
  387. package/src/server/infrastructure/http/http-response.js +13 -0
  388. package/src/server/infrastructure/persistence/vault-file-store.js +22 -60
  389. package/src/server/infrastructure/workspace/file-system-sync-service.js +3 -3
  390. package/dist/client/assets/CodeMirrorEditor-UCMRAMCV-Fb3TgxXK.js +0 -1
  391. package/dist/client/assets/actions-XO29hEzr.css +0 -1
  392. package/dist/client/assets/ar-SA-YLAB6A27-B9ogj_Jh.js +0 -8
  393. package/dist/client/assets/arc-DqK6O3qL.js +0 -1
  394. package/dist/client/assets/architecture-TIHT7OUA-BWqzHezU.js +0 -1
  395. package/dist/client/assets/architectureDiagram-ZJ3FMSHR-DL35gHTu.js +0 -36
  396. package/dist/client/assets/asciiarmor-qTkVPQu6.js +0 -1
  397. package/dist/client/assets/az-AZ-5JXPK2I2-C6Se5-4R.js +0 -1
  398. package/dist/client/assets/bases-preview-controller-CBHDzzot.js +0 -143
  399. package/dist/client/assets/bg-BG-NIQ2RVNG-xrf33IaO.js +0 -5
  400. package/dist/client/assets/bn-BD-BN65R3DE-YVZWNN-c.js +0 -3
  401. package/dist/client/assets/bn-IN-2YT4KVKB-YVZWNN-c.js +0 -3
  402. package/dist/client/assets/button-2ZnWQkWV.js +0 -1
  403. package/dist/client/assets/c4Diagram-LMCZKHZV-al3Umu1D.js +0 -10
  404. package/dist/client/assets/ca-ES-KSERGC3M-CoMtV4dM.js +0 -8
  405. package/dist/client/assets/channel-XzBGGMWh.js +0 -1
  406. package/dist/client/assets/chunk-52WLFC77-BjzXVnqm.js +0 -10
  407. package/dist/client/assets/chunk-6GK3VUBP-ChzWImvX.js +0 -41
  408. package/dist/client/assets/chunk-CJTDIR4C-DvUbqeGR.js +0 -1
  409. package/dist/client/assets/chunk-ICXQ74PX-DGYhuP6g.js +0 -2
  410. package/dist/client/assets/chunk-OGEWGWER-Xh5bvoYs.js +0 -1
  411. package/dist/client/assets/chunk-RYQCIY6F-Dtr3kkSR.js +0 -1
  412. package/dist/client/assets/chunk-VAUOI2AC-EcvKeBKU.js +0 -1
  413. package/dist/client/assets/chunk-WYO6CB5R-HgTPu1OL.js +0 -127
  414. package/dist/client/assets/classDiagram-OUVF2IWQ-vy5bnN3c.js +0 -1
  415. package/dist/client/assets/classDiagram-v2-EOCWNBFH-vy5bnN3c.js +0 -1
  416. package/dist/client/assets/clike-CVjTFI47.js +0 -1
  417. package/dist/client/assets/cmake-CyVbuzPu.js +0 -1
  418. package/dist/client/assets/coffeescript-B2pKbFk8.js +0 -1
  419. package/dist/client/assets/commonlisp-CcllspGY.js +0 -1
  420. package/dist/client/assets/controls-LYQrRFSF.css +0 -1
  421. package/dist/client/assets/cose-bilkent-JH36ORCC-ClqQrHIF.js +0 -1
  422. package/dist/client/assets/crystal-M5-qzICs.js +0 -1
  423. package/dist/client/assets/cs-CZ-EOMS3IHD-Bo0hDCLX.js +0 -7
  424. package/dist/client/assets/css-CYpP4FRV.js +0 -1
  425. package/dist/client/assets/cynefin-VYW2F7L2-4m18BxUG.js +0 -1
  426. package/dist/client/assets/cynefinDiagram-TSTJHNR4-BNlZcGFF.js +0 -62
  427. package/dist/client/assets/cytoscape.esm-CQFVGiJu.js +0 -321
  428. package/dist/client/assets/da-DK-AVL3DJQK-s5-TpkxN.js +0 -2
  429. package/dist/client/assets/dagre-dpRSp0QF.js +0 -1
  430. package/dist/client/assets/de-CH-M25HCZK4-B0r4rx6B.js +0 -7
  431. package/dist/client/assets/de-DE-BEN6XGXY-B0r4rx6B.js +0 -7
  432. package/dist/client/assets/defaultLocale-C8Fc0cco.js +0 -1
  433. package/dist/client/assets/diagram-WEI45ONY-C18MNAQv.js +0 -41
  434. package/dist/client/assets/dist-0x9D2TFD.js +0 -1
  435. package/dist/client/assets/dist-BA633xb4.js +0 -11
  436. package/dist/client/assets/dist-Bx-T__Lj.js +0 -1
  437. package/dist/client/assets/dist-ByYtm-FJ.js +0 -1
  438. package/dist/client/assets/dist-CCrwHjeP.js +0 -1
  439. package/dist/client/assets/dist-CHokDUN_.js +0 -1
  440. package/dist/client/assets/dist-CI1X-CJ2.js +0 -9
  441. package/dist/client/assets/dist-CPim1xdZ.js +0 -1
  442. package/dist/client/assets/dist-CZG184W2.js +0 -1
  443. package/dist/client/assets/dist-Cd1BXkVC.js +0 -1
  444. package/dist/client/assets/dist-CeEU6QwA.js +0 -2
  445. package/dist/client/assets/dist-DG2HpWvu.js +0 -1
  446. package/dist/client/assets/dist-DUj7Xwud.js +0 -13
  447. package/dist/client/assets/dist-DnbVQL2z.js +0 -1
  448. package/dist/client/assets/dist-QiKOmE2-.js +0 -1
  449. package/dist/client/assets/dist-du6QqIs42.js +0 -1
  450. package/dist/client/assets/dist-snK6kYA_.js +0 -1
  451. package/dist/client/assets/drawio-editor-Z2u5UkLg.js +0 -9
  452. package/dist/client/assets/drawio-embed-controller-BtzURctK.js +0 -1
  453. package/dist/client/assets/drawioEditor-B_kenUdu.js +0 -2
  454. package/dist/client/assets/editor-session-MbnP-AVK.js +0 -16
  455. package/dist/client/assets/el-GR-UBGIF2NW-DRoYAN8w.js +0 -7
  456. package/dist/client/assets/embedded-editor-base-DziW8fkY.css +0 -1
  457. package/dist/client/assets/en-PCJ7LJZ2-1SKiH5y3.js +0 -1
  458. package/dist/client/assets/es-ES-SQEM5MNY-D5EtY06q.js +0 -7
  459. package/dist/client/assets/eu-ES-YG5N2JAG-CZ0xKIU4.js +0 -7
  460. package/dist/client/assets/eventmodeling-45OFAUF4-Dp0gpjhg.js +0 -1
  461. package/dist/client/assets/excalidraw-editor-CN3Wpa0D.css +0 -1
  462. package/dist/client/assets/excalidraw-editor-kQEbzoXi.js +0 -9
  463. package/dist/client/assets/excalidraw-embed-controller-BKx05cjZ.js +0 -1
  464. package/dist/client/assets/excalidraw-scene-qiXFUZvq.js +0 -176
  465. package/dist/client/assets/excalidrawEditor-fUB8lhQG.js +0 -2
  466. package/dist/client/assets/export-page-CbIrJ_oK.js +0 -39
  467. package/dist/client/assets/exportDocument-DdfKM4AY.js +0 -2
  468. package/dist/client/assets/exportDocument-cl8dlTx1.css +0 -1
  469. package/dist/client/assets/fa-IR-EVNM7MAJ-olht-LEH.js +0 -9
  470. package/dist/client/assets/fi-FI-MW7ZEZ64-D1PIXbLy.js +0 -6
  471. package/dist/client/assets/flowDiagram-23GEKE2U-DgaZtMXJ.js +0 -1
  472. package/dist/client/assets/fr-FR-Q7ZPXBDE-B0DjjyfT.js +0 -12
  473. package/dist/client/assets/ganttDiagram-NO4QXBWP-DaBgmYw5.js +0 -292
  474. package/dist/client/assets/git-panel-controller-CzgJWqbB.js +0 -207
  475. package/dist/client/assets/gitGraph-TEB2WS4Q-Do0SQOtM.js +0 -1
  476. package/dist/client/assets/gl-ES-O5B74VQL-DH5u_ADp.js +0 -6
  477. package/dist/client/assets/groovy-BC3IOsC8.js +0 -1
  478. package/dist/client/assets/he-IL-QGC2WXJA-BSBR1RcG.js +0 -8
  479. package/dist/client/assets/hi-IN-DEZ33NMQ-CorD0_d0.js +0 -3
  480. package/dist/client/assets/hu-HU-2ZPNVYSC-BlqNXhNG.js +0 -3
  481. package/dist/client/assets/id-ID-W65WM5EO-SkLgeJLx.js +0 -8
  482. package/dist/client/assets/image-QEDDDPDB-DtzL4Wgr.js +0 -1
  483. package/dist/client/assets/image-blob-reduce.esm-DLFdRAwc.js +0 -2
  484. package/dist/client/assets/index-Burthu48.js +0 -2
  485. package/dist/client/assets/index-CYVmRVJX.css +0 -1
  486. package/dist/client/assets/info-DKCQHKI2-DIc7uC4I.js +0 -1
  487. package/dist/client/assets/init-D6jRqBbL.js +0 -1
  488. package/dist/client/assets/input-CXk9Zxz9.js +0 -1
  489. package/dist/client/assets/it-IT-GAWJM2XW-CDZugsE0.js +0 -12
  490. package/dist/client/assets/ja-JP-FOAUPTH5-DkKXnwj8.js +0 -12
  491. package/dist/client/assets/javascript-B9TABJff.js +0 -1
  492. package/dist/client/assets/javascript-BRzqD9BA.js +0 -1
  493. package/dist/client/assets/jsx-runtime-DKdBMi_L.js +0 -1
  494. package/dist/client/assets/kaa-UEDB54S7-C0Sv0drM.js +0 -1
  495. package/dist/client/assets/kab-KAB-CTLMBVE3-QfxUgzL5.js +0 -4
  496. package/dist/client/assets/keyboard-shortcuts-CLixkZxp.css +0 -1
  497. package/dist/client/assets/keyboard-shortcuts-CLyuDeFZ.js +0 -1
  498. package/dist/client/assets/kk-KZ-XZK63ADD-CMZObxxP.js +0 -1
  499. package/dist/client/assets/ko-KR-YNTPN6WQ-DPBaHnwT.js +0 -5
  500. package/dist/client/assets/ku-TR-XUD5BUEU-75pMUQoD.js +0 -6
  501. package/dist/client/assets/linear-DhAcoVP9.js +0 -1
  502. package/dist/client/assets/lt-LT-LYCDYH7O-BeKUsKuy.js +0 -3
  503. package/dist/client/assets/lv-LV-7ROPDEEI-CrA6QOtq.js +0 -4
  504. package/dist/client/assets/main-DdqVKzQ4.js +0 -813
  505. package/dist/client/assets/mermaid-runtime-2fJoRo49.js +0 -11
  506. package/dist/client/assets/mr-IN-TU6BXRKP-mIvXG0bt.js +0 -9
  507. package/dist/client/assets/my-MM-SJ3RWIEQ-CeEN5n4z.js +0 -1
  508. package/dist/client/assets/navigation-ChYBdSlq.css +0 -1
  509. package/dist/client/assets/nb-NO-GONF2AKR-IChp6OiI.js +0 -8
  510. package/dist/client/assets/nl-NL-UZF6UEKB-DfPPXXjo.js +0 -13
  511. package/dist/client/assets/nn-NO-ZVFRXEEO-BtpjNSGp.js +0 -4
  512. package/dist/client/assets/oc-FR-MBF2Z56W-CBl14QBM.js +0 -4
  513. package/dist/client/assets/pa-IN-3JCDVKKL-D95A1XFb.js +0 -4
  514. package/dist/client/assets/packet-7NZHBO7P-D2duWGIK.js +0 -1
  515. package/dist/client/assets/path-BWPyau1x.js +0 -1
  516. package/dist/client/assets/percentages-WBIPKLEE-bhlTAhiB.js +0 -1
  517. package/dist/client/assets/perl-CdEHsPfU.js +0 -1
  518. package/dist/client/assets/pie-RZYD4A2V-CynqTUkZ.js +0 -1
  519. package/dist/client/assets/preview-diagram-utils-BPaXsmlV.js +0 -1
  520. package/dist/client/assets/preview-render-compiler-C8wbmTyE.js +0 -1
  521. package/dist/client/assets/preview-render-compiler-CrQBxqqa.js +0 -35
  522. package/dist/client/assets/preview-render-profile-C89_PyT3.js +0 -23
  523. package/dist/client/assets/preview-render-worker-D84F1vpn.js +0 -59
  524. package/dist/client/assets/pt-BR-W4AF5QMX-DIJs8D4M.js +0 -6
  525. package/dist/client/assets/pt-PT-GNPUWAHX-BopN284Y.js +0 -8
  526. package/dist/client/assets/puppet-B4hC2X4m.js +0 -1
  527. package/dist/client/assets/python-2zlmcyof.js +0 -1
  528. package/dist/client/assets/r-DADKenSm.js +0 -1
  529. package/dist/client/assets/radar-I7S5WNFK-fIKE12aT.js +0 -1
  530. package/dist/client/assets/railroad-3IZDKUUU-Bgx8HJTj.js +0 -1
  531. package/dist/client/assets/railroad-abnf-AHOZXSZD-Nh6k60mH.js +0 -1
  532. package/dist/client/assets/railroad-ebnf-EBAXGLYW-C74h3s_I.js +0 -1
  533. package/dist/client/assets/railroad-peg-LSFZ7HO6-0hT-lN-u.js +0 -1
  534. package/dist/client/assets/ro-RO-DXHP33S5-PGxfl-ng.js +0 -12
  535. package/dist/client/assets/rolldown-runtime-aKtaBQYM.js +0 -1
  536. package/dist/client/assets/ru-RU-TTW2P7NF-Dwnn0sc5.js +0 -10
  537. package/dist/client/assets/ruby-DsYpTuWg.js +0 -1
  538. package/dist/client/assets/runtime-config-loader-BUK56BZz.js +0 -1
  539. package/dist/client/assets/sequenceDiagram-DBY2YBRQ-DonUqDnp.js +0 -162
  540. package/dist/client/assets/si-LK-BE6O7LVF-QO9nybVB.js +0 -1
  541. package/dist/client/assets/sk-SK-OI3KJLWQ-BAKIEIig.js +0 -7
  542. package/dist/client/assets/sl-SI-HF74RBGV-CnS5z7V_.js +0 -6
  543. package/dist/client/assets/sql-DcCJ9jop.js +0 -1
  544. package/dist/client/assets/src-UMNXGZaF.js +0 -1
  545. package/dist/client/assets/stateDiagram-v2-6OUMAXLB-C4YrlXQg.js +0 -1
  546. package/dist/client/assets/states-DYMshUe2.css +0 -1
  547. package/dist/client/assets/subset-shared.chunk-D3olxosN.js +0 -1
  548. package/dist/client/assets/sv-SE-TXR2SQGA-CNgv7xeJ.js +0 -8
  549. package/dist/client/assets/swimlanes-5IMT3BWC-DP1GREXh.js +0 -2
  550. package/dist/client/assets/swimlanesDiagram-G3AALYLV-CN_iOXin.js +0 -8
  551. package/dist/client/assets/ta-IN-Y2DOZGBR-DYzsfax7.js +0 -6
  552. package/dist/client/assets/th-TH-JUAISFQR-BAZHUCM7.js +0 -1
  553. package/dist/client/assets/tiki-CxVlf5KZ.js +0 -1
  554. package/dist/client/assets/timeline-definition-FHXFAJF6-C-QK9sME.js +0 -120
  555. package/dist/client/assets/toml-LvoKBwCs.js +0 -1
  556. package/dist/client/assets/tr-TR-U3HGKQXH-DTYupb_4.js +0 -4
  557. package/dist/client/assets/treeView-QDETBFTQ-CygwzEgj.js +0 -1
  558. package/dist/client/assets/treemap-6X3UGDF4-BbCXbaXr.js +0 -1
  559. package/dist/client/assets/uk-UA-FP2TKAFK-Bcxd6wgd.js +0 -6
  560. package/dist/client/assets/uz-UZ-WY5QKWXJ-B5N6xPud.js +0 -1
  561. package/dist/client/assets/vault-api-client-BPVNCJZC.js +0 -1
  562. package/dist/client/assets/vault-api-client-VAfZ8okg.js +0 -1
  563. package/dist/client/assets/vault-utils-kIbqyWPm.js +0 -1
  564. package/dist/client/assets/vi-VN-DE5I4H6K-BdlcTH5l.js +0 -7
  565. package/dist/client/assets/wardley-OPB4EBWU-BjXxCRf_.js +0 -1
  566. package/dist/client/assets/yjs-provider-reset-guard-DSfwdXS9.js +0 -4
  567. package/dist/client/assets/z80-CL1naaMV.js +0 -1
  568. package/dist/client/assets/zh-CN-VWHOHS7G-b12eD2L4.js +0 -11
  569. package/dist/client/assets/zh-HK-KQF7FW7H-Bvr6xExo.js +0 -1
  570. package/dist/client/assets/zh-TW-6VHVWZKW-B-KCOPyt.js +0 -13
  571. package/server.js +0 -1
  572. package/src/client/application/app-shell/ui-feature.js +0 -13
  573. package/src/client/application/file-open-lifecycle.js +0 -26
  574. package/src/client/application/workspace-chrome-controller.js +0 -109
  575. package/src/client/application/workspace-state-store.js +0 -48
  576. package/src/client/bootstrap/app-shell-feature-surface.js +0 -67
  577. package/src/client/domain/excalidraw-document-switch.js +0 -3
  578. package/src/client/domain/vault-api-client.js +0 -1
  579. package/src/client/domain/workspace-request-id.js +0 -7
  580. package/src/client/infrastructure/browser-navigation-port.js +0 -39
  581. package/src/client/mermaid-runtime.js +0 -3
  582. package/src/client/presentation/app-shell-renderer.js +0 -13
  583. package/src/client/presentation/app-shell-template.js +0 -675
  584. package/src/client/presentation/comments-panel.js +0 -578
  585. package/src/client/presentation/components/ui/badge.js +0 -24
  586. package/src/client/presentation/components/ui/ensure-ui-component-styles.js +0 -18
  587. package/src/client/presentation/components/ui/input.js +0 -9
  588. package/src/client/styles/features/collaboration-ui.css +0 -3
  589. package/src/client/styles/features/comments.css +0 -5
  590. package/src/client/styles/features/diff.css +0 -3
  591. package/src/client/styles/features/git.css +0 -3
  592. package/src/client/styles/features/preview-content.css +0 -3
  593. package/src/client/styles/features/preview-sidebars.css +0 -2
  594. package/src/client/styles/overrides/vendor.css +0 -2
  595. package/src/server/domain/collaboration/room-client-state-store.js +0 -29
  596. package/src/server/domain/git-service.js +0 -1
  597. package/src/server/domain/plantuml-renderer.js +0 -1
  598. package/src/server/index.js +0 -74
  599. package/src/server/infrastructure/git/concurrency.js +0 -19
  600. package/src/server/infrastructure/http/create-git-api-handler.js +0 -44
  601. package/src/server/infrastructure/http/create-vault-api-handler.js +0 -54
  602. package/src/server/infrastructure/persistence/vault-content-adapter.js +0 -61
  603. package/src/server/infrastructure/workspace/workspace-mutation-coordinator.js +0 -20
@@ -1,6 +1,11 @@
1
1
  import { setDiagramActionButtonIcon } from '../domain/diagram-action-icons.js';
2
2
  import { reconcileEmbedEntries } from './excalidraw-embed-reconciler.js';
3
3
  import { resolveAppUrl } from '../domain/runtime-paths.js';
4
+ import {
5
+ cancelIdleRender,
6
+ isNearViewport,
7
+ requestIdleRender,
8
+ } from '../browser-utils.js';
4
9
 
5
10
  const DEFAULT_HEIGHT = 420;
6
11
  const HYDRATE_TIMEOUT_MS = 500;
@@ -10,46 +15,6 @@ const MAX_IFRAME_BOOT_ATTEMPTS = 3;
10
15
  const MIN_HEIGHT = 200;
11
16
  const EDITOR_IFRAME_PATH = '/excalidraw-editor.html';
12
17
 
13
- function requestIdleRender(callback, timeout) {
14
- if (typeof window.requestIdleCallback === 'function') {
15
- return window.requestIdleCallback(callback, { timeout });
16
- }
17
-
18
- return window.setTimeout(() => {
19
- callback({
20
- didTimeout: false,
21
- timeRemaining: () => 0,
22
- });
23
- }, 1);
24
- }
25
-
26
- function cancelIdleRender(id) {
27
- if (id === null) {
28
- return;
29
- }
30
-
31
- if (typeof window.cancelIdleCallback === 'function') {
32
- window.cancelIdleCallback(id);
33
- return;
34
- }
35
-
36
- window.clearTimeout(id);
37
- }
38
-
39
- function isNearViewport(element, root, marginPx) {
40
- if (!element || !root) {
41
- return false;
42
- }
43
-
44
- const rootRect = root.getBoundingClientRect();
45
- const elementRect = element.getBoundingClientRect();
46
-
47
- return (
48
- elementRect.bottom >= (rootRect.top - marginPx)
49
- && elementRect.top <= (rootRect.bottom + marginPx)
50
- );
51
- }
52
-
53
18
  export class ExcalidrawEmbedController {
54
19
  constructor({
55
20
  getTheme,
@@ -254,10 +219,10 @@ export class ExcalidrawEmbedController {
254
219
  });
255
220
  }
256
221
 
257
- prepareFileDisconnect(filePath, { timeoutMs = 250 } = {}) {
222
+ prepareFileDisconnect(filePath, { timeoutMs = 10000 } = {}) {
258
223
  const entry = this._findEntryByFilePath(filePath);
259
224
  if (!entry?.iframe?.contentWindow) {
260
- return Promise.resolve(false);
225
+ return Promise.resolve(true);
261
226
  }
262
227
 
263
228
  const requestId = `disconnect-${++this.disconnectRequestCounter}`;
@@ -274,7 +239,29 @@ export class ExcalidrawEmbedController {
274
239
  };
275
240
 
276
241
  const timeoutId = window.setTimeout(() => {
277
- finish(false);
242
+ const shouldDiscard = window.confirm(
243
+ 'This diagram has not reconnected, so its latest queued changes may not be saved. Discard pending changes and leave?',
244
+ );
245
+ if (!shouldDiscard) {
246
+ this._postMessageToEntry(entry, {
247
+ source: 'collabmd-host',
248
+ type: 'cancel-disconnect',
249
+ requestId,
250
+ });
251
+ this.toastController?.show?.('Stayed on the diagram while it reconnects');
252
+ finish(false);
253
+ return;
254
+ }
255
+
256
+ this._postMessageToEntry(entry, {
257
+ source: 'collabmd-host',
258
+ type: 'discard-and-disconnect',
259
+ requestId,
260
+ });
261
+ const request = this.pendingDisconnectRequests.get(requestId);
262
+ if (request) {
263
+ request.timeoutId = window.setTimeout(() => finish(true), 1000);
264
+ }
278
265
  }, timeoutMs);
279
266
 
280
267
  this.pendingDisconnectRequests.set(requestId, {
@@ -657,6 +644,9 @@ export class ExcalidrawEmbedController {
657
644
  if (hostSearchParams.has('syncTimeoutMs')) {
658
645
  iframeUrl.searchParams.set('syncTimeoutMs', hostSearchParams.get('syncTimeoutMs'));
659
646
  }
647
+ if (hostSearchParams.get('excalidrawDebug') === '1') {
648
+ iframeUrl.searchParams.set('excalidrawDebug', '1');
649
+ }
660
650
 
661
651
  return iframeUrl;
662
652
  }
@@ -1199,6 +1189,23 @@ export class ExcalidrawEmbedController {
1199
1189
  if (request?.entry === entry) {
1200
1190
  request.resolve(true);
1201
1191
  }
1192
+ return;
1193
+ }
1194
+
1195
+ if (msg.type === 'disconnect-blocked') {
1196
+ entry.authorityState = msg.state || 'reconnecting-readonly';
1197
+ this.toastController?.show?.('Waiting for the diagram to reconnect before leaving');
1198
+ return;
1199
+ }
1200
+
1201
+ if (msg.type === 'excalidraw-authority-state') {
1202
+ entry.authorityState = msg.state || 'closed';
1203
+ entry.hasPendingWrites = Boolean(msg.hasPendingWrites);
1204
+ return;
1205
+ }
1206
+
1207
+ if (msg.type === 'park-blocked') {
1208
+ entry.authorityState = msg.state || 'reconnecting-readonly';
1202
1209
  }
1203
1210
  }
1204
1211
 
@@ -9,26 +9,13 @@ import {
9
9
  createMermaidStarter,
10
10
  createPlantUmlStarter,
11
11
  ensureVaultExtension,
12
+ getVaultPathLeaf,
13
+ getVaultPathParent,
12
14
  normalizeVaultPathInput,
13
15
  } from '../domain/vault-paths.js';
14
- import { createWorkspaceRequestId } from '../domain/workspace-request-id.js';
15
16
  import { buttonClassNames } from './components/ui/button.js';
16
17
  import { CreateMenuPresenter } from './create-menu-presenter.js';
17
18
 
18
- function getPathLeaf(path) {
19
- return String(path ?? '')
20
- .replace(/\/+$/u, '')
21
- .split('/')
22
- .filter(Boolean)
23
- .pop() || '';
24
- }
25
-
26
- function getParentPath(pathValue) {
27
- const normalized = String(pathValue ?? '').replace(/\/+$/u, '');
28
- const separatorIndex = normalized.lastIndexOf('/');
29
- return separatorIndex >= 0 ? normalized.slice(0, separatorIndex) : '';
30
- }
31
-
32
19
  function replacePathPrefix(pathValue, oldPrefix, newPrefix) {
33
20
  if (pathValue === oldPrefix) {
34
21
  return newPrefix;
@@ -86,7 +73,6 @@ export class FileActionController {
86
73
  this.view = view;
87
74
  this.refresh = refresh;
88
75
  this.createButton = document.getElementById('sidebarCreateBtn');
89
- this.refreshButton = document.getElementById('refreshFilesBtn');
90
76
  this.actionDialog = document.getElementById('fileActionDialog');
91
77
  this.actionForm = document.getElementById('fileActionForm');
92
78
  this.actionTitle = document.getElementById('fileActionTitle');
@@ -109,7 +95,6 @@ export class FileActionController {
109
95
  this.createButton?.addEventListener('click', () => {
110
96
  this.openRootCreateMenu({ anchor: this.createButton });
111
97
  });
112
- this.refreshButton?.addEventListener('click', () => this.refresh());
113
98
  this.actionCancelButton?.addEventListener('click', () => this.closeActionDialog());
114
99
  this.actionForm?.addEventListener('submit', (event) => {
115
100
  event.preventDefault();
@@ -266,16 +251,12 @@ export class FileActionController {
266
251
  this.showToast(error?.message ? `${message}: ${error.message}` : message);
267
252
  }
268
253
 
269
- ensureExtension(pathValue, extension) {
270
- return ensureVaultExtension(pathValue, extension);
271
- }
272
-
273
254
  createPendingWorkspaceRequestId() {
274
255
  if (!this.pendingWorkspaceRequestIds) {
275
256
  return null;
276
257
  }
277
258
 
278
- const requestId = createWorkspaceRequestId();
259
+ const requestId = crypto.randomUUID();
279
260
  this.pendingWorkspaceRequestIds.add(requestId);
280
261
  return requestId;
281
262
  }
@@ -540,7 +521,7 @@ export class FileActionController {
540
521
  const finalPath = requestedExtension
541
522
  ? normalizedPath
542
523
  : `${normalizedPath}${extension}`;
543
- if (!getPathLeaf(finalPath)) {
524
+ if (!getVaultPathLeaf(finalPath)) {
544
525
  this.showToast('File path is required');
545
526
  return false;
546
527
  }
@@ -644,8 +625,8 @@ export class FileActionController {
644
625
  planMoveEntryByDrop({ destinationDirectory = '', sourcePath = '', sourceType = 'file' } = {}) {
645
626
  const normalizedSourcePath = normalizeVaultPathInput(sourcePath);
646
627
  const normalizedDestinationDirectory = normalizeVaultPathInput(destinationDirectory);
647
- const currentParentPath = getParentPath(normalizedSourcePath);
648
- const entryName = getPathLeaf(normalizedSourcePath);
628
+ const currentParentPath = getVaultPathParent(normalizedSourcePath);
629
+ const entryName = getVaultPathLeaf(normalizedSourcePath);
649
630
 
650
631
  if (!normalizedSourcePath || !entryName) {
651
632
  return { ok: false, reason: 'Invalid item to move' };
@@ -763,7 +744,7 @@ export class FileActionController {
763
744
  return false;
764
745
  }
765
746
 
766
- const filePath = this.ensureExtension(composeVaultChildPath(context.normalizedParentDir, normalizedPath), '.md');
747
+ const filePath = ensureVaultExtension(composeVaultChildPath(context.normalizedParentDir, normalizedPath), '.md');
767
748
  return this.createVaultFile(filePath, createMarkdownStarter(filePath), {
768
749
  errorMessage: 'Failed to create file',
769
750
  openAfterCreate: true,
@@ -841,7 +822,7 @@ export class FileActionController {
841
822
  return false;
842
823
  }
843
824
 
844
- const filePath = this.ensureExtension(composeVaultChildPath(context.normalizedParentDir, normalizedPath), '.excalidraw');
825
+ const filePath = ensureVaultExtension(composeVaultChildPath(context.normalizedParentDir, normalizedPath), '.excalidraw');
845
826
  return this.createVaultFile(filePath, createEmptyExcalidrawScene(), {
846
827
  errorMessage: 'Failed to create drawing',
847
828
  openAfterCreate: true,
@@ -1,5 +1,4 @@
1
1
  import { isImageAttachmentFilePath } from '../../domain/file-kind.js';
2
- import { vaultApiClient } from '../domain/vault-api-client.js';
3
2
  import { FileActionController } from './file-action-controller.js';
4
3
  import { FileTreeState } from './file-tree-state.js';
5
4
  import { FileExplorerView } from './file-explorer-view.js';
@@ -11,7 +10,7 @@ export class FileExplorerController {
11
10
  onFileDelete,
12
11
  pendingWorkspaceRequestIds = null,
13
12
  toastController,
14
- vaultClient = vaultApiClient,
13
+ vaultClient,
15
14
  }) {
16
15
  this.onFileSelect = onFileSelect;
17
16
  this.onFileDelete = onFileDelete;
@@ -3,22 +3,9 @@ import {
3
3
  stripVaultFileExtension,
4
4
  } from '../../domain/file-kind.js';
5
5
  import { escapeHtml } from '../domain/vault-utils.js';
6
+ import { getVaultPathLeaf, getVaultPathParent } from '../domain/vault-paths.js';
6
7
  import { buttonClassNames } from './components/ui/button.js';
7
8
 
8
- function getPathLeaf(path) {
9
- return String(path ?? '')
10
- .replace(/\/+$/u, '')
11
- .split('/')
12
- .filter(Boolean)
13
- .pop() || '';
14
- }
15
-
16
- function getParentPath(pathValue) {
17
- const normalized = String(pathValue ?? '').replace(/\/+$/u, '');
18
- const separatorIndex = normalized.lastIndexOf('/');
19
- return separatorIndex >= 0 ? normalized.slice(0, separatorIndex) : '';
20
- }
21
-
22
9
  function findNodeByPath(nodes = [], pathValue = '') {
23
10
  for (const node of nodes) {
24
11
  if (node.path === pathValue) {
@@ -174,7 +161,7 @@ export class FileExplorerView {
174
161
  }
175
162
 
176
163
  const affectedParentPaths = Array.from(new Set(
177
- changedPaths.map((pathValue) => getParentPath(pathValue)),
164
+ changedPaths.map((pathValue) => getVaultPathParent(pathValue)),
178
165
  ))
179
166
  .sort((left, right) => left.split('/').length - right.split('/').length)
180
167
  .filter((pathValue, index, values) => (
@@ -232,7 +219,7 @@ export class FileExplorerView {
232
219
  depth: 0,
233
220
  filePath: match.path,
234
221
  fileType: match.type || (getVaultTreeNodeType(match.path) ?? 'file'),
235
- name: match.name || getPathLeaf(match.path),
222
+ name: match.name || getVaultPathLeaf(match.path),
236
223
  }));
237
224
  }
238
225
  this.treeContainer.appendChild(fragment);
@@ -348,7 +335,7 @@ export class FileExplorerView {
348
335
  button.dataset.entryType = 'directory';
349
336
  button.innerHTML = `
350
337
  <svg class="file-tree-icon" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"/></svg>
351
- <span class="file-tree-name">${escapeHtml(node.name || getPathLeaf(node.path))}</span>
338
+ <span class="file-tree-name">${escapeHtml(node.name || getVaultPathLeaf(node.path))}</span>
352
339
  `;
353
340
 
354
341
  button.addEventListener('click', (event) => {
@@ -1,21 +1,12 @@
1
1
  import { escapeHtml } from '../domain/vault-utils.js';
2
+ import { getVaultPathLeaf, getVaultPathParent } from '../domain/vault-paths.js';
2
3
  import { buttonClassNames } from './components/ui/button.js';
3
4
 
4
5
  const HISTORY_PAGE_SIZE = 30;
5
6
 
6
- function getPathLeaf(pathValue) {
7
- return String(pathValue ?? '').split('/').pop() || '';
8
- }
9
-
10
- function getPathDir(pathValue) {
11
- const parts = String(pathValue ?? '').split('/');
12
- parts.pop();
13
- return parts.join('/');
14
- }
15
-
16
7
  function renderHistoryTitle(filePath = '') {
17
- const fileName = getPathLeaf(filePath);
18
- const dirPath = getPathDir(filePath);
8
+ const fileName = getVaultPathLeaf(filePath);
9
+ const dirPath = getVaultPathParent(filePath);
19
10
  if (!dirPath) {
20
11
  return `<span class="file-history-path">${escapeHtml(fileName)}</span>`;
21
12
  }
@@ -1,16 +1,7 @@
1
1
  import { escapeHtml } from '../domain/vault-utils.js';
2
+ import { getVaultPathLeaf, getVaultPathParent } from '../domain/vault-paths.js';
2
3
  import { buttonClassNames } from './components/ui/button.js';
3
4
 
4
- function getPathLeaf(pathValue) {
5
- return String(pathValue ?? '').split('/').pop() || '';
6
- }
7
-
8
- function getPathDir(pathValue) {
9
- const parts = String(pathValue ?? '').split('/');
10
- parts.pop();
11
- return parts.join('/');
12
- }
13
-
14
5
  function createSectionId(pathValue) {
15
6
  return `diff-section-${encodeURIComponent(String(pathValue ?? '')).replace(/%/g, '_')}`;
16
7
  }
@@ -687,7 +678,7 @@ export class GitDiffViewController {
687
678
  const files = this.data?.files ?? [];
688
679
  const items = files.map((file, index) => {
689
680
  const isActive = this.activeFilePath === file.path;
690
- const dirPath = getPathDir(file.path);
681
+ const dirPath = getVaultPathParent(file.path);
691
682
  return `
692
683
  <button
693
684
  class="ui-record-surface diff-index-item${isActive ? ' active' : ''}"
@@ -696,7 +687,7 @@ export class GitDiffViewController {
696
687
  aria-current="${isActive ? 'true' : 'false'}"
697
688
  >
698
689
  <span class="ui-record-header diff-index-item-top">
699
- <span class="ui-record-title diff-index-item-name">${escapeHtml(getPathLeaf(file.path))}</span>
690
+ <span class="ui-record-title diff-index-item-name">${escapeHtml(getVaultPathLeaf(file.path))}</span>
700
691
  <span class="ui-status-badge ${badgeClass(file.status)}">${escapeHtml(file.status)}</span>
701
692
  </span>
702
693
  ${dirPath ? `<span class="ui-record-subtitle diff-index-item-path">${escapeHtml(dirPath)}</span>` : ''}
@@ -748,8 +739,8 @@ export class GitDiffViewController {
748
739
  <span class="diff-commit-section-main">
749
740
  ${chevronSvg(isCollapsed)}
750
741
  <span class="diff-commit-section-copy">
751
- <span class="diff-commit-section-name">${escapeHtml(getPathLeaf(file.path))}</span>
752
- ${getPathDir(file.path) ? `<span class="diff-commit-section-path">${escapeHtml(getPathDir(file.path))}</span>` : ''}
742
+ <span class="diff-commit-section-name">${escapeHtml(getVaultPathLeaf(file.path))}</span>
743
+ ${getVaultPathParent(file.path) ? `<span class="diff-commit-section-path">${escapeHtml(getVaultPathParent(file.path))}</span>` : ''}
753
744
  </span>
754
745
  </span>
755
746
  <span class="diff-commit-section-meta">
@@ -1237,10 +1228,10 @@ export class GitDiffViewController {
1237
1228
  }
1238
1229
 
1239
1230
  if (path) {
1240
- return getPathLeaf(path);
1231
+ return getVaultPathLeaf(path);
1241
1232
  }
1242
1233
  if (this.activeFilePath) {
1243
- return getPathLeaf(this.activeFilePath);
1234
+ return getVaultPathLeaf(this.activeFilePath);
1244
1235
  }
1245
1236
  if (this.commitMeta?.shortHash) {
1246
1237
  return `Commit ${this.commitMeta.shortHash}`;
@@ -1252,7 +1243,7 @@ export class GitDiffViewController {
1252
1243
  }
1253
1244
 
1254
1245
  if (filePath) {
1255
- return getPathLeaf(filePath);
1246
+ return getVaultPathLeaf(filePath);
1256
1247
  }
1257
1248
 
1258
1249
  if (scope === 'staged') {
@@ -1,20 +1,11 @@
1
1
  import { escapeHtml } from '../domain/vault-utils.js';
2
+ import { getVaultPathLeaf, getVaultPathParent } from '../domain/vault-paths.js';
2
3
  import { buttonClassNames } from './components/ui/button.js';
3
4
  import { segmentedButtonClassNames, segmentedControlClassNames } from './components/ui/segmented-control.js';
4
5
 
5
6
  const HISTORY_PAGE_SIZE = 30;
6
7
  const REFRESH_INTERVAL_MS = 10_000;
7
8
 
8
- function getPathDir(pathValue) {
9
- const parts = String(pathValue ?? '').split('/');
10
- parts.pop();
11
- return parts.join('/');
12
- }
13
-
14
- function getPathLeaf(pathValue) {
15
- return String(pathValue ?? '').split('/').pop() || '';
16
- }
17
-
18
9
  function fileIconSvg() {
19
10
  return '<svg class="git-file-icon" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/></svg>';
20
11
  }
@@ -728,8 +719,8 @@ export class GitPanelController {
728
719
  const isActive = this.selection.source === 'workspace'
729
720
  && this.selection.path === file.path
730
721
  && this.selection.scope === file.scope;
731
- const dirPath = getPathDir(file.path);
732
- const displayName = getPathLeaf(file.path);
722
+ const dirPath = getVaultPathParent(file.path);
723
+ const displayName = getVaultPathLeaf(file.path);
733
724
  const fullPath = String(file.path || '');
734
725
  const statusClass = badgeClass(file.status);
735
726
  const stageAction = file.scope === 'staged'
@@ -9,12 +9,8 @@ import {
9
9
 
10
10
  const MAX_VISIBLE_RESULTS = 12;
11
11
 
12
- function stripDisplayExtension(filePath) {
13
- return stripVaultFileExtension(filePath);
14
- }
15
-
16
12
  function createCorpusEntry(filePath) {
17
- const displayName = stripDisplayExtension(filePath);
13
+ const displayName = stripVaultFileExtension(filePath);
18
14
  const fileName = displayName.split('/').pop() || displayName;
19
15
 
20
16
  return {
@@ -28,11 +24,12 @@ function createCorpusEntry(filePath) {
28
24
  }
29
25
 
30
26
  function getFileName(filePath) {
31
- return stripDisplayExtension(filePath).split('/').pop() || stripDisplayExtension(filePath);
27
+ const displayName = stripVaultFileExtension(filePath);
28
+ return displayName.split('/').pop() || displayName;
32
29
  }
33
30
 
34
31
  function getDirPath(filePath) {
35
- const displayName = stripDisplayExtension(filePath);
32
+ const displayName = stripVaultFileExtension(filePath);
36
33
  return displayName.includes('/') ? displayName.substring(0, displayName.lastIndexOf('/')) : '';
37
34
  }
38
35
 
@@ -1,4 +1,5 @@
1
1
  import { clamp } from '../domain/vault-utils.js';
2
+ import { cancelIdleRender, requestIdleRender } from '../browser-utils.js';
2
3
 
3
4
  const VIEWPORT_FOCUS_RATIO = 0.35;
4
5
  const LARGE_DOCUMENT_EDITOR_IDLE_MS = 120;
@@ -31,32 +32,6 @@ function isLeafSourceBlock(element) {
31
32
  return !element.querySelector('[data-source-line]');
32
33
  }
33
34
 
34
- function requestIdleWork(callback) {
35
- if (typeof window.requestIdleCallback === 'function') {
36
- return window.requestIdleCallback(callback, { timeout: 500 });
37
- }
38
-
39
- return window.setTimeout(() => {
40
- callback({
41
- didTimeout: false,
42
- timeRemaining: () => 0,
43
- });
44
- }, 1);
45
- }
46
-
47
- function cancelIdleWork(id) {
48
- if (id === null) {
49
- return;
50
- }
51
-
52
- if (typeof window.cancelIdleCallback === 'function') {
53
- window.cancelIdleCallback(id);
54
- return;
55
- }
56
-
57
- window.clearTimeout(id);
58
- }
59
-
60
35
  export class ScrollSyncController {
61
36
  constructor({
62
37
  getEditorLineNumber,
@@ -143,7 +118,7 @@ export class ScrollSyncController {
143
118
  this.editorScrollIdleTimer = null;
144
119
  this.pendingSync = null;
145
120
  this.previewBlocks = null;
146
- cancelIdleWork(this.previewBlocksWarmId);
121
+ cancelIdleRender(this.previewBlocksWarmId);
147
122
  this.previewBlocksWarmId = null;
148
123
  this.previewBlocksReadyCallbacks = [];
149
124
  this.lockedElements.clear();
@@ -188,7 +163,7 @@ export class ScrollSyncController {
188
163
 
189
164
  invalidatePreviewBlocks() {
190
165
  this.previewBlocks = null;
191
- cancelIdleWork(this.previewBlocksWarmId);
166
+ cancelIdleRender(this.previewBlocksWarmId);
192
167
  this.previewBlocksWarmId = null;
193
168
  this.previewBlocksReadyCallbacks = [];
194
169
  }
@@ -224,11 +199,11 @@ export class ScrollSyncController {
224
199
  return;
225
200
  }
226
201
 
227
- this.previewBlocksWarmId = requestIdleWork(() => {
202
+ this.previewBlocksWarmId = requestIdleRender(() => {
228
203
  this.previewBlocksWarmId = null;
229
204
  this.previewBlocks = this.buildPreviewBlocks();
230
205
  this.flushPreviewBlocksReadyCallbacks();
231
- });
206
+ }, 500);
232
207
  }
233
208
 
234
209
  realignAfterLayoutChange() {
@@ -53,7 +53,7 @@
53
53
  display: flex;
54
54
  justify-content: center;
55
55
  gap: var(--space-1);
56
- padding: var(--space-2) var(--space-2) 0;
56
+ padding: var(--space-1) var(--space-2) 0;
57
57
  border-bottom: 1px solid var(--color-divider);
58
58
  }
59
59
 
@@ -6,15 +6,8 @@
6
6
  align-items: center;
7
7
  justify-content: center;
8
8
  padding: var(--space-6);
9
- background:
10
- radial-gradient(circle at 50% 8%, oklch(from var(--color-primary) l c h / 0.18), transparent 28%),
11
- radial-gradient(circle at 60% 45%, oklch(from var(--color-primary) l c h / 0.08), transparent 18%),
12
- linear-gradient(
13
- 180deg,
14
- oklch(from var(--color-bg) calc(l - 0.06) c h / 0.9),
15
- oklch(from var(--color-bg) calc(l - 0.08) c h / 0.96)
16
- );
17
- backdrop-filter: blur(18px);
9
+ background: oklch(from var(--color-bg) l c h / 0.94);
10
+ backdrop-filter: blur(12px);
18
11
  }
19
12
 
20
13
  .auth-gate-card {
@@ -22,11 +15,9 @@
22
15
  padding: var(--space-8);
23
16
  border: 1px solid var(--border-accent-soft);
24
17
  border-radius: var(--radius-xl);
25
- background: linear-gradient(180deg, var(--color-surface), var(--color-surface-2));
18
+ background: var(--color-surface);
26
19
  color: var(--color-text);
27
- box-shadow:
28
- var(--shadow-card-strong),
29
- var(--shadow-sheet-inset);
20
+ box-shadow: var(--shadow-card-strong);
30
21
  font-family: var(--font-body);
31
22
  }
32
23
 
@@ -222,7 +222,6 @@
222
222
  .backlink-item:hover {
223
223
  border-color: transparent;
224
224
  background: var(--color-surface-offset);
225
- box-shadow: inset 3px 0 0 var(--color-primary);
226
225
  }
227
226
 
228
227
  .backlink-item:focus-visible {
@@ -115,7 +115,7 @@
115
115
  display: grid;
116
116
  place-items: center;
117
117
  padding: var(--space-6);
118
- background: radial-gradient(circle at top, oklch(from var(--color-primary) l c h / 0.16), transparent 38%), oklch(from var(--color-bg) l c h / 0.82);
118
+ background: oklch(from var(--color-bg) l c h / 0.86);
119
119
  backdrop-filter: blur(10px);
120
120
  }
121
121
 
@@ -126,7 +126,7 @@
126
126
  padding: var(--space-6);
127
127
  border: 1px solid oklch(from var(--color-primary) l c h / 0.25);
128
128
  border-radius: var(--radius-xl);
129
- background: linear-gradient(180deg, var(--color-surface), var(--color-surface-2));
129
+ background: var(--color-surface);
130
130
  box-shadow: var(--shadow-lg);
131
131
  }
132
132
 
@@ -48,6 +48,14 @@
48
48
  text-transform: uppercase;
49
49
  }
50
50
 
51
+ .comment-card-anchor-note {
52
+ padding: var(--space-2) var(--space-3);
53
+ border-radius: var(--radius-md);
54
+ background: var(--surface-comment-offset-soft);
55
+ color: var(--color-text-muted);
56
+ font-size: var(--text-label);
57
+ }
58
+
51
59
  .comment-card-close,
52
60
  .comment-thread-card-action {
53
61
  border: 1px solid transparent;
@@ -107,12 +115,27 @@
107
115
  justify-content: flex-end;
108
116
  }
109
117
 
110
- .comment-card-input,
111
- .comment-reply-input {
112
- padding: var(--space-3) var(--space-4);
118
+ .ui-input.comment-card-input,
119
+ .ui-input.comment-reply-input {
120
+ padding: var(--space-2) var(--space-3);
121
+ border-color: var(--border-comment-strong);
122
+ background: var(--surface-comment-subtle);
123
+ caret-color: var(--color-comment);
113
124
  line-height: 1.5;
114
125
  }
115
126
 
127
+ .ui-input.comment-card-input:hover:not(:focus),
128
+ .ui-input.comment-reply-input:hover:not(:focus) {
129
+ border-color: var(--border-comment-active);
130
+ }
131
+
132
+ .ui-input.comment-card-input:focus,
133
+ .ui-input.comment-reply-input:focus {
134
+ border-color: var(--color-comment);
135
+ background: var(--surface-comment-elevated);
136
+ box-shadow: var(--shadow-comment-outline), 0 0 0 3px var(--color-comment-soft);
137
+ }
138
+
116
139
  .comment-card-input {
117
140
  resize: vertical;
118
141
  min-height: 88px;
@@ -126,26 +149,11 @@
126
149
  border-top: 1px solid var(--color-divider);
127
150
  }
128
151
 
129
- .comment-thread-card-header {
130
- align-items: flex-start;
131
- flex-wrap: wrap;
132
- }
133
-
134
- .comment-thread-card-heading {
135
- display: flex;
136
- flex: 1 1 160px;
137
- flex-wrap: wrap;
138
- gap: var(--space-1) var(--space-2);
139
- min-width: 0;
140
- }
141
-
142
- .comment-thread-card-author,
143
152
  .comment-message-card-author {
144
153
  font-size: var(--text-label);
145
154
  font-weight: 700;
146
155
  }
147
156
 
148
- .comment-thread-card-time,
149
157
  .comment-message-card-time {
150
158
  color: var(--color-text-faint);
151
159
  font-size: var(--text-meta);
@@ -164,6 +172,11 @@
164
172
  background: transparent;
165
173
  }
166
174
 
175
+ .comment-message-card.is-thread-start {
176
+ padding-top: 0;
177
+ border-top: 0;
178
+ }
179
+
167
180
  .comment-message-card-body {
168
181
  margin-top: var(--space-1);
169
182
  font-size: var(--text-label);