collabmd 0.1.29 → 0.1.31

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 (445) hide show
  1. package/README.md +5 -0
  2. package/dist/client/assets/{CodeMirrorEditor-UCMRAMCV-9k1Shd4H.js → CodeMirrorEditor-UCMRAMCV-Bg0dawOb.js} +1 -1
  3. package/dist/client/assets/{_basePickBy-B6kIfhzj.js → _basePickBy-Dv0sK1l7.js} +1 -1
  4. package/dist/client/assets/{_baseUniq-Bbn0_sHS.js → _baseUniq-DKYX57ji.js} +1 -1
  5. package/dist/client/assets/{ar-SA-NXDWD63E-BWO5oYxe.js → ar-SA-NXDWD63E-WivLHHDW.js} +1 -1
  6. package/dist/client/assets/{arc-BIqum3oD.js → arc-DrfYGhWk.js} +1 -1
  7. package/dist/client/assets/architecture-PBZL5I3N-DiglIZi9.js +1 -0
  8. package/dist/client/assets/architectureDiagram-2XIMDMQ5-kYbOThe4.js +36 -0
  9. package/dist/client/assets/{az-AZ-MXSORGZV-Cfw6Z5oY.js → az-AZ-MXSORGZV-DOdq1TKC.js} +1 -1
  10. package/dist/client/assets/base-CaIEJUF9.css +1 -0
  11. package/dist/client/assets/{bg-BG-O6MV2KSF-CQmG3YpD.js → bg-BG-O6MV2KSF-CYucKuDS.js} +1 -1
  12. package/dist/client/assets/{blockDiagram-WCTKOSBZ-0rR9ivwb.js → blockDiagram-WCTKOSBZ-GIgTqnhk.js} +1 -1
  13. package/dist/client/assets/{bn-IN-MMW2ORAC-DZKVshfk.js → bn-BD-T2VJNT7N-2OKWLCYa.js} +1 -1
  14. package/dist/client/assets/{bn-BD-T2VJNT7N-C4S6DZ6o.js → bn-IN-MMW2ORAC-DYr8kqNL.js} +1 -1
  15. package/dist/client/assets/{c4Diagram-IC4MRINW-DHwxcDlQ.js → c4Diagram-IC4MRINW-CkHO1i_L.js} +1 -1
  16. package/dist/client/assets/{ca-ES-MKBCGNOG-Do3aMgyu.js → ca-ES-MKBCGNOG-B9Aeb43I.js} +1 -1
  17. package/dist/client/assets/channel-CgsU9TSN.js +1 -0
  18. package/dist/client/assets/{chunk-4BX2VUAB-BqEY6cCE.js → chunk-4BX2VUAB-2e7V-uuE.js} +1 -1
  19. package/dist/client/assets/{chunk-55IACEB6-039iVf6v.js → chunk-55IACEB6-CpncB3ru.js} +1 -1
  20. package/dist/client/assets/{chunk-7E7YKBS2-BreG0gYL.js → chunk-7E7YKBS2-TdU92i9i.js} +1 -1
  21. package/dist/client/assets/{chunk-7R4GIKGN-BMrp52Pk.js → chunk-7R4GIKGN-mqd2GwMg.js} +2 -2
  22. package/dist/client/assets/{chunk-ETSVUAFD-CN-gPl_j.js → chunk-AXZTUZBK-DuMiJYO9.js} +1 -1
  23. package/dist/client/assets/{chunk-C72U2L5F-BLB26v5d.js → chunk-C72U2L5F-CJKQWBtz.js} +1 -1
  24. package/dist/client/assets/{chunk-EGIJ26TM-fG-0Yh0k.js → chunk-EGIJ26TM-C4nq20om.js} +1 -1
  25. package/dist/client/assets/{chunk-FMBD7UC4-EWK5Pt4D.js → chunk-FMBD7UC4-CMahlBa_.js} +1 -1
  26. package/dist/client/assets/{chunk-GEFDOKGD-DYHmaq-c.js → chunk-GEFDOKGD-Bs7FmFox.js} +1 -1
  27. package/dist/client/assets/chunk-GLR3WWYH-qQe2O5VQ.js +2 -0
  28. package/dist/client/assets/chunk-HHEYEP7N-DlevL8bq.js +1 -0
  29. package/dist/client/assets/{chunk-JSJVCQXG-B69YGtcQ.js → chunk-JSJVCQXG-DPQ9cPJt.js} +1 -1
  30. package/dist/client/assets/{chunk-KX2RTZJC-tuEC7hg1.js → chunk-KX2RTZJC-BTiOJb7N.js} +1 -1
  31. package/dist/client/assets/{chunk-KYZI473N-D4r5eMJZ.js → chunk-KYZI473N-CTSCuqRb.js} +1 -1
  32. package/dist/client/assets/{chunk-L3YUKLVL-CD9nJYL8.js → chunk-L3YUKLVL-CJZMBtKF.js} +1 -1
  33. package/dist/client/assets/{chunk-MX3YWQON-DqN0TF5Q.js → chunk-MX3YWQON-DQpSwRf6.js} +1 -1
  34. package/dist/client/assets/{chunk-NQ4KR5QH-BCjGNd0g.js → chunk-NQ4KR5QH-CMJKI6Oj.js} +1 -1
  35. package/dist/client/assets/chunk-NU2UP6EN-DlUENSHU.js +35 -0
  36. package/dist/client/assets/{chunk-O4XLMI2P-DaS3COAu.js → chunk-O4XLMI2P-CcVxZh41.js} +1 -1
  37. package/dist/client/assets/{chunk-OZEHJAEY-BaBXI-8x.js → chunk-OZEHJAEY-DjBZbgu0.js} +1 -1
  38. package/dist/client/assets/{chunk-PQ6SQG4A-BY9_Srs_.js → chunk-PQ6SQG4A-D1AbThjy.js} +1 -1
  39. package/dist/client/assets/{chunk-PU5JKC2W-t0zUh6E3.js → chunk-PU5JKC2W-D_6N6t8f.js} +1 -1
  40. package/dist/client/assets/chunk-QZHKN3VN-CgLPFSk5.js +1 -0
  41. package/dist/client/assets/{chunk-R5LLSJPH-BjSMFnTi.js → chunk-R5LLSJPH-CkjKXM73.js} +1 -1
  42. package/dist/client/assets/{chunk-WL4C6EOR-OuH0lN6M.js → chunk-WL4C6EOR-axcuKSup.js} +1 -1
  43. package/dist/client/assets/{chunk-XIRO2GV7-2tirYN5A.js → chunk-XIRO2GV7-4wqVHjs_.js} +1 -1
  44. package/dist/client/assets/{chunk-XPW4576I-C0GpOUHf.js → chunk-XPW4576I-DJr4_4Yy.js} +1 -1
  45. package/dist/client/assets/{chunk-XZSTWKYB-DDkpyNVE.js → chunk-XZSTWKYB-C8Y_hIKZ.js} +1 -1
  46. package/dist/client/assets/{chunk-YBOYWFTD-CzyyfGQX.js → chunk-YBOYWFTD-CKg4ymFF.js} +1 -1
  47. package/dist/client/assets/{chunk-Z5NKEFVG-Dgem5v98.js → chunk-Z5NKEFVG-HOkYqaKa.js} +1 -1
  48. package/dist/client/assets/classDiagram-VBA2DB6C-BHZpvOxK.js +1 -0
  49. package/dist/client/assets/classDiagram-v2-RAHNMMFH-DA7HMUUs.js +1 -0
  50. package/dist/client/assets/clone-Dgi8Z4IL.js +1 -0
  51. package/dist/client/assets/{cose-bilkent-S5V4N54A-jZzFUguD.js → cose-bilkent-S5V4N54A-DASO2hrk.js} +1 -1
  52. package/dist/client/assets/{cs-CZ-V77HGUP7-DmZRJ2UO.js → cs-CZ-V77HGUP7-BDg-F0CJ.js} +1 -1
  53. package/dist/client/assets/{da-DK-I5RFNTM4-CRIiLQ-G.js → da-DK-I5RFNTM4-wtSQ0Jxa.js} +1 -1
  54. package/dist/client/assets/{dagre-fvYjRtTE.js → dagre-CfB3Fw33.js} +1 -1
  55. package/dist/client/assets/dagre-KLK3FWXG-CC7tq2Ky.js +4 -0
  56. package/dist/client/assets/{de-DE-DTI4WUSC-MFge9MC3.js → de-CH-WLRDEVBV-C1swvmZy.js} +1 -1
  57. package/dist/client/assets/{de-CH-WLRDEVBV-k728UA4j.js → de-DE-DTI4WUSC-C0L6Nz8X.js} +1 -1
  58. package/dist/client/assets/diagram-E7M64L7V-CMt7BN5M.js +24 -0
  59. package/dist/client/assets/diagram-IFDJBPK2-BFMBUGpd.js +43 -0
  60. package/dist/client/assets/diagram-P4PSJMXO-CviA1xXr.js +24 -0
  61. package/dist/client/assets/dist-3bQB_we3.js +1 -0
  62. package/dist/client/assets/dist-3uAMa5w5.js +1 -0
  63. package/dist/client/assets/dist-8Igu3Ee_2.js +1 -0
  64. package/dist/client/assets/{dist-D9c0A4Uh.js → dist-B-02vKOA.js} +1 -1
  65. package/dist/client/assets/dist-B4uQVR_X.js +1 -0
  66. package/dist/client/assets/{dist-A0eSMIyy.js → dist-BLAlZer_.js} +1 -1
  67. package/dist/client/assets/dist-BU8uusJX.js +1 -0
  68. package/dist/client/assets/dist-BVB8rn7o.js +1 -0
  69. package/dist/client/assets/{dist-DveOCUUJ.js → dist-Bc2ND6i3.js} +1 -1
  70. package/dist/client/assets/{dist-Bay3vk5z.js → dist-BtnXjRx0.js} +1 -1
  71. package/dist/client/assets/{dist-CEYpWxod.js → dist-BzbYwa8m.js} +1 -1
  72. package/dist/client/assets/{dist-Ct1bmQnL.js → dist-BzpfHRaE.js} +1 -1
  73. package/dist/client/assets/{dist-BbKpzsTB.js → dist-CGV1S_as.js} +1 -1
  74. package/dist/client/assets/dist-CL-jjdvG.js +1 -0
  75. package/dist/client/assets/{dist-D0e6Qsad.js → dist-CXpKYW9s.js} +1 -1
  76. package/dist/client/assets/{dist-BchrxlnW.js → dist-CjII8VDS.js} +1 -1
  77. package/dist/client/assets/{dist-DnrO-JZd.js → dist-CxfohGIV.js} +1 -1
  78. package/dist/client/assets/{dist-CMHIjMVe.js → dist-D5QOYy7y.js} +1 -1
  79. package/dist/client/assets/{dist-CEtbxXlI.js → dist-DIi0uqLJ.js} +1 -1
  80. package/dist/client/assets/dist-DJ16N7ol.js +1 -0
  81. package/dist/client/assets/dist-DUvaQ-Bj.js +1 -0
  82. package/dist/client/assets/{dist-DnxPQ0-w.js → dist-DWJL3_bF.js} +6 -6
  83. package/dist/client/assets/dist-DsL7sqZR.js +1 -0
  84. package/dist/client/assets/{dist-DbhQ5ANS.js → dist-Dyt7n5Ui.js} +1 -1
  85. package/dist/client/assets/{dist-BOrlJDrR.js → dist-E_jPb93e.js} +1 -1
  86. package/dist/client/assets/{dist-D-gRgZ6e.js → dist-O1z0Ayg0.js} +1 -1
  87. package/dist/client/assets/dist-OQE68wIX.js +1 -0
  88. package/dist/client/assets/dist-k47-Io7D.js +1 -0
  89. package/dist/client/assets/{dist-Cdzvi8cf.js → dist-lDhnP-K1.js} +1 -1
  90. package/dist/client/assets/{dist-DS6mEQYy.js → dist-rMhng5DK.js} +1 -1
  91. package/dist/client/assets/{dockerfile-C0qQqxf9.js → dockerfile-D8_6_FRV.js} +1 -1
  92. package/dist/client/assets/{drawio-editor-CgbaOvpF.js → drawio-editor-B4sHHwWJ.js} +1 -1
  93. package/dist/client/assets/drawioEditor-DGpo2hcx.js +2 -0
  94. package/dist/client/assets/editor-session-BKHEYkbY.js +16 -0
  95. package/dist/client/assets/{el-GR-ZXDJ2OS4-Bbz93mrG.js → el-GR-ZXDJ2OS4-BH0saXds.js} +1 -1
  96. package/dist/client/assets/{embedded-editor-base-DXRHYz6R.css → embedded-editor-base-DgmRcsR8.css} +1 -1
  97. package/dist/client/assets/{en-CTDJDZ6K-BHbXrqU0.js → en-IQZW2TQM-CzlcEpq3.js} +1 -1
  98. package/dist/client/assets/{erDiagram-INFDFZHY-DP3f20BF.js → erDiagram-INFDFZHY-DlIf-fb7.js} +1 -1
  99. package/dist/client/assets/{es-ES-DYQHAD43-CReXU-Nn.js → es-ES-DYQHAD43-CyzL9Mni.js} +1 -1
  100. package/dist/client/assets/{eu-ES-QDSYU5Y3-jRpcaWwz.js → eu-ES-QDSYU5Y3-D2-x316S.js} +1 -1
  101. package/dist/client/assets/{excalidraw-editor-Dj0c0PO6.js → excalidraw-editor-CHbeNZu6.js} +2 -2
  102. package/dist/client/assets/excalidraw-editor-Dj3i59LW.css +1 -0
  103. package/dist/client/assets/{excalidraw-mermaid-stub-efoh2lJm.js → excalidraw-mermaid-stub-Bwe-bKcT.js} +1 -1
  104. package/dist/client/assets/excalidraw-scene-BF_bT1OL.js +176 -0
  105. package/dist/client/assets/excalidrawEditor-BhaTX2Ko.js +2 -0
  106. package/dist/client/assets/export-page-PeexH2QK.js +39 -0
  107. package/dist/client/assets/exportDocument-CtZKWE2c.js +2 -0
  108. package/dist/client/assets/{exportDocument-CLPYN_gg.css → exportDocument-DmV7Gngb.css} +1 -1
  109. package/dist/client/assets/{fa-IR-26LZG4PM-DP8pJ8e3.js → fa-IR-26LZG4PM-D8-trU2x.js} +1 -1
  110. package/dist/client/assets/{factor-2uy-lXe_.js → factor-Cz-hzBGH.js} +1 -1
  111. package/dist/client/assets/{fi-FI-6YS4KDE4-BLUDpNOj.js → fi-FI-6YS4KDE4-CCdRVFDQ.js} +1 -1
  112. package/dist/client/assets/file-kind-DBptLlF_.js +1 -0
  113. package/dist/client/assets/{flowDiagram-PKNHOUZH-CRbK5_5h.js → flowDiagram-PKNHOUZH-C_t-mkwb.js} +1 -1
  114. package/dist/client/assets/{fr-FR-BRLLPTZC-BoZz3Pi8.js → fr-FR-BRLLPTZC-Dqq-O5T_.js} +1 -1
  115. package/dist/client/assets/ganttDiagram-A5KZAMGK-BtK9Tb--.js +292 -0
  116. package/dist/client/assets/gitGraph-HDMCJU4V-CT7YfbD3.js +1 -0
  117. package/dist/client/assets/gitGraphDiagram-K3NZZRJ6-DULDLGiJ.js +65 -0
  118. package/dist/client/assets/{gl-ES-OKUZTLYG-CaEvhjDi.js → gl-ES-OKUZTLYG-BK7pbLbm.js} +1 -1
  119. package/dist/client/assets/{graphlib-DSzYgMXB.js → graphlib-BgRST-Qg.js} +1 -1
  120. package/dist/client/assets/{he-IL-26MGYIU7-DYOchgy9.js → he-IL-26MGYIU7-C3BuYKyY.js} +1 -1
  121. package/dist/client/assets/{hi-IN-Q4ZOGTP2-yRs8g46n.js → hi-IN-Q4ZOGTP2-BEvXWXnH.js} +1 -1
  122. package/dist/client/assets/{hu-HU-P2OXPSN5-1skPmtgc.js → hu-HU-P2OXPSN5-BWWZeJNp.js} +1 -1
  123. package/dist/client/assets/{id-ID-2EIKXYN6-iUugQJd9.js → id-ID-2EIKXYN6-DxSKi_aJ.js} +1 -1
  124. package/dist/client/assets/image-XLNPCCAD-CFiKwiWK.js +1 -0
  125. package/dist/client/assets/index-D69HOZHr.css +1 -0
  126. package/dist/client/assets/{index-CVgVzuh6.js → index-kPgEYvEX.js} +2 -2
  127. package/dist/client/assets/info-3K5VOQVL-DUpNyDC-.js +1 -0
  128. package/dist/client/assets/infoDiagram-LFFYTUFH-DFTI0nfs.js +2 -0
  129. package/dist/client/assets/{isEmpty-C7iPDOO3.js → isEmpty-CVvRj8fj.js} +1 -1
  130. package/dist/client/assets/{ishikawaDiagram-PHBUUO56-BDVPgkv4.js → ishikawaDiagram-PHBUUO56-DpBuDpC6.js} +1 -1
  131. package/dist/client/assets/{it-IT-4CFKVXI2-a5DFhzuI.js → it-IT-4CFKVXI2-BmA8wW6q.js} +1 -1
  132. package/dist/client/assets/{ja-JP-MAND2Z4V-DwogHVKd.js → ja-JP-MAND2Z4V-CLS1jI9o.js} +1 -1
  133. package/dist/client/assets/javascript-UJe68_xi.js +1 -0
  134. package/dist/client/assets/{journeyDiagram-4ABVD52K-DtNnwL48.js → journeyDiagram-4ABVD52K-DDur6iHm.js} +1 -1
  135. package/dist/client/assets/{jsx-runtime-B8dyIONw.js → jsx-runtime-C2p7wRmT.js} +1 -1
  136. package/dist/client/assets/{kaa-HQRTCXTJ-p81XNRfH.js → kaa-HQRTCXTJ-W15DEDPz.js} +1 -1
  137. package/dist/client/assets/{kab-KAB-JKIKKTGH-mV5VzQZc.js → kab-KAB-JKIKKTGH-MLh1inqS.js} +1 -1
  138. package/dist/client/assets/{kanban-definition-K7BYSVSG-C565sUNo.js → kanban-definition-K7BYSVSG-dA6NPLsg.js} +1 -1
  139. package/dist/client/assets/{kk-KZ-HXQ63ZFC-IIPX0GQv.js → kk-KZ-HXQ63ZFC-BtFrPeLs.js} +1 -1
  140. package/dist/client/assets/{km-KH-PKL3LSGX-D7WQFJuZ.js → km-KH-PKL3LSGX-xO5FyM9T.js} +1 -1
  141. package/dist/client/assets/{ko-KR-KXLREZX3-Bs1oLtJs.js → ko-KR-KXLREZX3-NZFoRybS.js} +1 -1
  142. package/dist/client/assets/{ku-TR-MJ4IER3X-DlxOs6aZ.js → ku-TR-MJ4IER3X-B5eVPIpK.js} +1 -1
  143. package/dist/client/assets/{line-D57TbKb7.js → line-B2GMovaI.js} +1 -1
  144. package/dist/client/assets/{linear-BIf852wI.js → linear-B2dOdA24.js} +1 -1
  145. package/dist/client/assets/{lt-LT-H6WFQ6FJ-xuo-3zKH.js → lt-LT-H6WFQ6FJ-D_7_OeJD.js} +1 -1
  146. package/dist/client/assets/{lv-LV-GOCK6SJW-C7S3M1nr.js → lv-LV-GOCK6SJW-CnpKr0oQ.js} +1 -1
  147. package/dist/client/assets/main-DSxNTtD-.js +1243 -0
  148. package/dist/client/assets/mermaid-parser.core-B1ogGcR8.js +4 -0
  149. package/dist/client/assets/{mermaid-runtime-DqncQoYK.js → mermaid-runtime-Bn8A6DGx.js} +3 -3
  150. package/dist/client/assets/{mindmap-definition-YRQLILUH-BbYzGfTD.js → mindmap-definition-YRQLILUH-DjQcsPoe.js} +1 -1
  151. package/dist/client/assets/{mr-IN-IXVLDMEQ-BsoowyZT.js → mr-IN-IXVLDMEQ-Pht2X_GK.js} +1 -1
  152. package/dist/client/assets/{my-MM-YG6MYTTD-DCqwN_K_.js → my-MM-YG6MYTTD-Cgq4HhPO.js} +1 -1
  153. package/dist/client/assets/{nb-NO-XGWJISD2-CZ5ytLgj.js → nb-NO-XGWJISD2-Bn_Bk2un.js} +1 -1
  154. package/dist/client/assets/{nl-NL-XVDVCPNC-wADsdb-h.js → nl-NL-XVDVCPNC-YkWSJS94.js} +1 -1
  155. package/dist/client/assets/{nn-NO-EMX5MJX5-D9zIKTL2.js → nn-NO-EMX5MJX5-DhP5eZJ7.js} +1 -1
  156. package/dist/client/assets/{nsis-CUd4RnvJ.js → nsis-QPGhLAeY.js} +1 -1
  157. package/dist/client/assets/{oc-FR-ROEINTVO-BSbBugJB.js → oc-FR-ROEINTVO-D3udMPnr.js} +1 -1
  158. package/dist/client/assets/{ordinal-B0PAtOQ6.js → ordinal-Dz3y_j0K.js} +1 -1
  159. package/dist/client/assets/{pa-IN-ZYN6SUDY-1pFA_3Pb.js → pa-IN-ZYN6SUDY-CR5YzFig.js} +1 -1
  160. package/dist/client/assets/packet-RMMSAZCW-DEwNbIrA.js +1 -0
  161. package/dist/client/assets/percentages-5DKR754L-D7n4T776.js +1 -0
  162. package/dist/client/assets/pie-UPGHQEXC-D5M_lSjo.js +1 -0
  163. package/dist/client/assets/pieDiagram-SKSYHLDU-jhHouFpk.js +30 -0
  164. package/dist/client/assets/{pl-PL-6VTG7PHC-DyYw0u_z.js → pl-PL-6VTG7PHC-_wZuoIDM.js} +1 -1
  165. package/dist/client/assets/preview-render-compiler-BjLlHmiQ.js +35 -0
  166. package/dist/client/assets/preview-render-compiler-Duy_3IcP.js +1 -0
  167. package/dist/client/assets/preview-render-worker-B4dH2yxj.js +59 -0
  168. package/dist/client/assets/{pt-BR-5YFKRR5G-DJCCBBDl.js → pt-BR-5YFKRR5G-M7gIm2Hi.js} +1 -1
  169. package/dist/client/assets/{pt-PT-GEIXXZ67-BPJd09Ax.js → pt-PT-GEIXXZ67-CcxWpkGj.js} +1 -1
  170. package/dist/client/assets/{pug-BqBF8qF7.js → pug-DkUcLYWt.js} +1 -1
  171. package/dist/client/assets/{quadrantDiagram-337W2JSQ-DhlKLozd.js → quadrantDiagram-337W2JSQ-CYKgdx7K.js} +1 -1
  172. package/dist/client/assets/quick-switcher-controller-DcyllYpm.js +5 -0
  173. package/dist/client/assets/radar-KQ55EAFF-AU1qh3Bw.js +1 -0
  174. package/dist/client/assets/{requirementDiagram-Z7DCOOCP-B7ZOMsIb.js → requirementDiagram-Z7DCOOCP-D9SHxoW7.js} +1 -1
  175. package/dist/client/assets/{ro-RO-E2P6TFZI-DWVyTV7V.js → ro-RO-E2P6TFZI-qR9noVzP.js} +1 -1
  176. package/dist/client/assets/{room-B0UGbzQj.js → room-yJaBAoEU.js} +1 -1
  177. package/dist/client/assets/{ru-RU-YBIIY43T-Dyar7CYM.js → ru-RU-YBIIY43T-CE4S_RX8.js} +1 -1
  178. package/dist/client/assets/{sankeyDiagram-WA2Y5GQK-CXRga6Op.js → sankeyDiagram-WA2Y5GQK-CfHe3D6R.js} +1 -1
  179. package/dist/client/assets/{sequenceDiagram-2WXFIKYE-CeSFlFx5.js → sequenceDiagram-2WXFIKYE-CZsMMqAJ.js} +1 -1
  180. package/dist/client/assets/{si-LK-673C2CI2-C61aLrIy.js → si-LK-673C2CI2-Bv6Avh3z.js} +1 -1
  181. package/dist/client/assets/{sk-SK-CKZHQ4AP-BlFwOxRD.js → sk-SK-CKZHQ4AP-Cnlpp55z.js} +1 -1
  182. package/dist/client/assets/{sl-SI-557H2GWM-DcAVW-_t.js → sl-SI-557H2GWM-BfGq7AQF.js} +1 -1
  183. package/dist/client/assets/stateDiagram-RAJIS63D-CoNZjTYV.js +1 -0
  184. package/dist/client/assets/stateDiagram-v2-FVOUBMTO-1zOw6NmQ.js +1 -0
  185. package/dist/client/assets/subset-shared.chunk-C9HjwTXy.js +1 -0
  186. package/dist/client/assets/{subset-worker.chunk-DVGT6bvR.js → subset-worker.chunk-BSCP6IiC.js} +1 -1
  187. package/dist/client/assets/{sv-SE-XOPKKDWS-BkhfOHzh.js → sv-SE-XOPKKDWS-B2_Vk-sp.js} +1 -1
  188. package/dist/client/assets/{ta-IN-XBH7DQI3-BIfwglZa.js → ta-IN-XBH7DQI3-BXQMZZIx.js} +1 -1
  189. package/dist/client/assets/{th-TH-TOCWH3R4-CkrxqVkf.js → th-TH-TOCWH3R4-C-ZIYMfH.js} +1 -1
  190. package/dist/client/assets/{timeline-definition-YZTLITO2-BXBHNWLQ.js → timeline-definition-YZTLITO2-DSe2mrG8.js} +1 -1
  191. package/dist/client/assets/{tr-TR-GXW6CYY5-CDdvG9rD.js → tr-TR-GXW6CYY5-dl702PMA.js} +1 -1
  192. package/dist/client/assets/treemap-KZPCXAKY-C9UI2fwP.js +1 -0
  193. package/dist/client/assets/{uk-UA-IJKTNUDG-DRHp0lWp.js → uk-UA-IJKTNUDG-CUYQvSSF.js} +1 -1
  194. package/dist/client/assets/{uz-UZ-TBZZEA4V-BIn-VE3Y.js → uz-UZ-TBZZEA4V-B9qw0PXX.js} +1 -1
  195. package/dist/client/assets/{vault-api-client-DIaCC56H.js → vault-api-client-BzHQseMN.js} +1 -1
  196. package/dist/client/assets/vault-utils-5Xr0MXCb.js +1 -0
  197. package/dist/client/assets/{vennDiagram-LZ73GAT5-Cs9aQmVM.js → vennDiagram-LZ73GAT5-xSzaIpy1.js} +1 -1
  198. package/dist/client/assets/{vi-VN-MULSGNVB-Du7t5I0v.js → vi-VN-MULSGNVB-DqxZ_sVc.js} +1 -1
  199. package/dist/client/assets/{xychartDiagram-JWTSCODW-B40ybbzC.js → xychartDiagram-JWTSCODW-C3vA70iJ.js} +1 -1
  200. package/dist/client/assets/{yjs-provider-reset-guard-DUP9XupO.js → yjs-provider-reset-guard-CtERLBID.js} +1 -1
  201. package/dist/client/assets/{zh-CN-MVX3E32U-RcjS3rjt.js → zh-CN-MVX3E32U-BM0aLuGc.js} +1 -1
  202. package/dist/client/assets/{zh-HK-JNU5RLIE-g8UeEw5v.js → zh-HK-JNU5RLIE-dmG_YD0d.js} +1 -1
  203. package/dist/client/assets/{zh-TW-LENVCA6T-DwV25BqC.js → zh-TW-LENVCA6T-LFgbiOi3.js} +1 -1
  204. package/dist/client/drawio-editor.html +1 -1
  205. package/dist/client/excalidraw-editor.html +1 -1
  206. package/dist/client/export-document.html +5 -5
  207. package/dist/client/index.html +4 -4
  208. package/docker-compose.yml +1 -0
  209. package/package.json +24 -21
  210. package/src/client/app/export-document.html +1 -1
  211. package/src/client/application/app-shell/ui-feature-shell.js +47 -1
  212. package/src/client/application/app-shell/ui-feature-toolbar.js +25 -3
  213. package/src/client/application/app-shell/workspace-feature.js +9 -0
  214. package/src/client/application/app-shell-elements.js +3 -0
  215. package/src/client/application/diagram-preview-hydrator.js +1 -1
  216. package/src/client/application/markdown-frontmatter.js +97 -0
  217. package/src/client/application/preview-render-compiler.js +60 -7
  218. package/src/client/application/preview-render-executor.js +8 -1
  219. package/src/client/application/preview-render-worker.js +4 -0
  220. package/src/client/application/preview-renderer.js +51 -1
  221. package/src/client/application/workspace-chrome-controller.js +25 -19
  222. package/src/client/application/workspace-coordinator.js +9 -0
  223. package/src/client/application/workspace-preview-controller.js +49 -3
  224. package/src/client/bootstrap/collabmd-app-shell.js +31 -2
  225. package/src/client/domain/markdown-formatting.js +1 -1
  226. package/src/client/domain/markdown-toolbar-actions.js +36 -0
  227. package/src/client/domain/vault-paths.js +19 -0
  228. package/src/client/export/export-page.js +11 -3
  229. package/src/client/export/export-pipeline.js +80 -3
  230. package/src/client/infrastructure/editor-session.js +4 -0
  231. package/src/client/infrastructure/editor-view-adapter.js +44 -7
  232. package/src/client/infrastructure/excalidraw-room-client.js +12 -4
  233. package/src/client/infrastructure/vault-api-client.js +54 -0
  234. package/src/client/presentation/app-shell-template.js +27 -0
  235. package/src/client/presentation/backlinks-panel.js +37 -11
  236. package/src/client/presentation/bases-preview-controller.js +444 -0
  237. package/src/client/presentation/file-action-controller.js +44 -2
  238. package/src/client/presentation/file-explorer-view.js +10 -2
  239. package/src/client/presentation/file-tree-state.js +9 -1
  240. package/src/client/presentation/git-diff-view-controller.js +7 -10
  241. package/src/client/presentation/quick-switcher-controller.js +54 -13
  242. package/src/client/styles/base.css +5 -0
  243. package/src/client/styles/export-document.css +12 -0
  244. package/src/client/styles/features/backlinks.css +65 -3
  245. package/src/client/styles/features/preview-markdown.css +347 -0
  246. package/src/client/styles/layout/editor-page.css +6 -0
  247. package/src/client/styles/layout/responsive.css +89 -0
  248. package/src/client/styles/layout/shell.css +14 -1
  249. package/src/client/styles/layout/view-modes.css +5 -0
  250. package/src/client/styles/overrides/codemirror.css +74 -0
  251. package/src/domain/file-kind.js +17 -2
  252. package/src/domain/wiki-link-resolver.js +41 -23
  253. package/src/domain/yaml-frontmatter.js +59 -0
  254. package/src/server/auth/create-auth-service.js +32 -6
  255. package/src/server/config/env.js +27 -0
  256. package/src/server/config/perf-logging.js +39 -0
  257. package/src/server/create-app-server.js +113 -7
  258. package/src/server/domain/backlink-index.js +129 -19
  259. package/src/server/domain/bases/base-query-service.js +2101 -0
  260. package/src/server/domain/collaboration/collaboration-document-store.js +13 -2
  261. package/src/server/domain/collaboration/collaboration-room.js +28 -5
  262. package/src/server/domain/workspace-state.js +52 -0
  263. package/src/server/infrastructure/git/history-service.js +1 -1
  264. package/src/server/infrastructure/http/create-request-handler.js +2 -0
  265. package/src/server/infrastructure/http/create-vault-api-command-handler.js +5 -0
  266. package/src/server/infrastructure/http/create-vault-api-handler.js +2 -0
  267. package/src/server/infrastructure/http/create-vault-api-query-handler.js +66 -0
  268. package/src/server/infrastructure/persistence/path-utils.js +1 -1
  269. package/src/server/infrastructure/persistence/pull-backup-store.js +1 -1
  270. package/src/server/infrastructure/persistence/vault-content-adapter.js +6 -0
  271. package/src/server/infrastructure/persistence/vault-file-store.js +88 -31
  272. package/src/server/infrastructure/workspace/file-system-sync-service.js +156 -31
  273. package/src/server/infrastructure/workspace/workspace-mutation-coordinator.js +47 -51
  274. package/src/server/shared/async-utils.js +25 -0
  275. package/dist/client/assets/architecture-PBZL5I3N-iRyVT2GQ.js +0 -1
  276. package/dist/client/assets/architectureDiagram-2XIMDMQ5-Bhh8YQHn.js +0 -36
  277. package/dist/client/assets/base-B5gONpJK.css +0 -1
  278. package/dist/client/assets/channel-s0w88EQN.js +0 -1
  279. package/dist/client/assets/chunk-27N2SPOM-DbHKsQ_j.js +0 -34
  280. package/dist/client/assets/chunk-GLR3WWYH-ZnuaBvXp.js +0 -2
  281. package/dist/client/assets/chunk-HHEYEP7N-DOQ0PCdH.js +0 -1
  282. package/dist/client/assets/chunk-QZHKN3VN-B0v4d-CS.js +0 -1
  283. package/dist/client/assets/classDiagram-VBA2DB6C-Bpdym3dj.js +0 -1
  284. package/dist/client/assets/classDiagram-v2-RAHNMMFH-CRAsdVDB.js +0 -1
  285. package/dist/client/assets/clone-C-n46MFF.js +0 -1
  286. package/dist/client/assets/dagre-KLK3FWXG-CXSnjrX-.js +0 -4
  287. package/dist/client/assets/diagram-E7M64L7V-De0StFef.js +0 -24
  288. package/dist/client/assets/diagram-IFDJBPK2-B2m6AJbU.js +0 -43
  289. package/dist/client/assets/diagram-P4PSJMXO-YBWLVENw.js +0 -24
  290. package/dist/client/assets/dist-BNcU46Ik.js +0 -1
  291. package/dist/client/assets/dist-BUEzOS23.js +0 -1
  292. package/dist/client/assets/dist-BflL-_8D.js +0 -1
  293. package/dist/client/assets/dist-CI_qEj5K.js +0 -1
  294. package/dist/client/assets/dist-CtFNDttZ.js +0 -1
  295. package/dist/client/assets/dist-DS_4VpEd.js +0 -1
  296. package/dist/client/assets/dist-DwsFUbuB.js +0 -1
  297. package/dist/client/assets/dist-VCYAp958.js +0 -1
  298. package/dist/client/assets/dist-Yxt8txtM.js +0 -1
  299. package/dist/client/assets/dist-npxgF_6V.js +0 -1
  300. package/dist/client/assets/dist-u0zDRMQt.js +0 -1
  301. package/dist/client/assets/drawioEditor-Eb2yYhjE.js +0 -2
  302. package/dist/client/assets/editor-session-DFzBn4RY.js +0 -16
  303. package/dist/client/assets/excalidraw-editor-Bat1FRoT.css +0 -1
  304. package/dist/client/assets/excalidraw-scene-CixfM-jL.js +0 -174
  305. package/dist/client/assets/excalidrawEditor-diK4VITg.js +0 -2
  306. package/dist/client/assets/export-page-CUOMczdp.js +0 -39
  307. package/dist/client/assets/exportDocument-BM4_f2n8.js +0 -2
  308. package/dist/client/assets/ganttDiagram-A5KZAMGK-R-AMIgxR.js +0 -292
  309. package/dist/client/assets/gitGraph-HDMCJU4V-kkuqHGSM.js +0 -1
  310. package/dist/client/assets/gitGraphDiagram-K3NZZRJ6-CIPit_Sh.js +0 -65
  311. package/dist/client/assets/image-32MOCVDX-BB6utPzr.js +0 -1
  312. package/dist/client/assets/index-BOOhEiLo.css +0 -1
  313. package/dist/client/assets/info-3K5VOQVL-DPN78whf.js +0 -1
  314. package/dist/client/assets/infoDiagram-LFFYTUFH-CF8jXFTm.js +0 -2
  315. package/dist/client/assets/javascript-8DvdgifH.js +0 -1
  316. package/dist/client/assets/main-C8adLQnt.js +0 -1174
  317. package/dist/client/assets/mermaid-parser.core-By_5k2SF.js +0 -4
  318. package/dist/client/assets/packet-RMMSAZCW-BymvQ5cQ.js +0 -1
  319. package/dist/client/assets/percentages-5DKR754L-CiI2D7zA.js +0 -1
  320. package/dist/client/assets/pie-UPGHQEXC-MmzJzWOE.js +0 -1
  321. package/dist/client/assets/pieDiagram-SKSYHLDU-CAU_gC7U.js +0 -30
  322. package/dist/client/assets/preview-render-compiler-CVfDHnqM.js +0 -1
  323. package/dist/client/assets/preview-render-compiler-CapHJDHT.js +0 -1
  324. package/dist/client/assets/preview-render-worker-wMS710Bv.js +0 -23
  325. package/dist/client/assets/quick-switcher-controller-DplOTsT3.js +0 -5
  326. package/dist/client/assets/radar-KQ55EAFF-CCohASSY.js +0 -1
  327. package/dist/client/assets/stateDiagram-RAJIS63D-CPoSrNwn.js +0 -1
  328. package/dist/client/assets/stateDiagram-v2-FVOUBMTO-5GW0Y21a.js +0 -1
  329. package/dist/client/assets/subset-shared.chunk-CC_u8ICU.js +0 -1
  330. package/dist/client/assets/treemap-KZPCXAKY-9kxB0uNY.js +0 -1
  331. package/dist/client/assets/vault-utils-BW53lKl1.js +0 -1
  332. /package/dist/client/assets/{apl-QJCYYBkj.js → apl-C1JYSI8J.js} +0 -0
  333. /package/dist/client/assets/{array-DwdVlTkF.js → array-B3agRrCs.js} +0 -0
  334. /package/dist/client/assets/{asciiarmor-DNy0UPqh.js → asciiarmor-DHW75j1s.js} +0 -0
  335. /package/dist/client/assets/{asn1-CNPXj-s7.js → asn1-CQiG40kG.js} +0 -0
  336. /package/dist/client/assets/{asterisk-BwMdLpT2.js → asterisk-BWExh0n4.js} +0 -0
  337. /package/dist/client/assets/{base-r5Zg2n3k.js → base-h1uscjTi.js} +0 -0
  338. /package/dist/client/assets/{brainfuck-C2gHT8aA.js → brainfuck-CTNFyOLg.js} +0 -0
  339. /package/dist/client/assets/{chunk-3PELD44J-CL87tpFo.js → chunk-3PELD44J-DymL2rGq.js} +0 -0
  340. /package/dist/client/assets/{chunk-A66AFZZU-DuceaGnc.js → chunk-A66AFZZU-BFHL744F.js} +0 -0
  341. /package/dist/client/assets/{chunk-SRAX5OIU-CC2mobFL.js → chunk-SRAX5OIU-CLVBQRWC.js} +0 -0
  342. /package/dist/client/assets/{clike-D5X7HJpo.js → clike-1_ZsiVV8.js} +0 -0
  343. /package/dist/client/assets/{clojure-BEDKZv_5.js → clojure-D-DYVqu7.js} +0 -0
  344. /package/dist/client/assets/{cmake-Y3shE7av.js → cmake-DtGL-Unu.js} +0 -0
  345. /package/dist/client/assets/{cobol-f-3TLk62.js → cobol-DP4QggbL.js} +0 -0
  346. /package/dist/client/assets/{coffeescript-C0XA9-xa.js → coffeescript-B_7eyHAa.js} +0 -0
  347. /package/dist/client/assets/{commonlisp-BOB6sIEu.js → commonlisp-COlJYiQT.js} +0 -0
  348. /package/dist/client/assets/{crystal-ByNgE_My.js → crystal-I_dE9xG-.js} +0 -0
  349. /package/dist/client/assets/{css-eaI-ENiR.js → css-CmhPNxBE.js} +0 -0
  350. /package/dist/client/assets/{cypher-CQ-dGGSi.js → cypher-DE6I2lIA.js} +0 -0
  351. /package/dist/client/assets/{cytoscape.esm-DBDRhUia.js → cytoscape.esm-Czjc507F.js} +0 -0
  352. /package/dist/client/assets/{d-D9pnu4Cr.js → d-BNkKjn0o.js} +0 -0
  353. /package/dist/client/assets/{defaultLocale-BWgun1yJ.js → defaultLocale-B_FbTTbl.js} +0 -0
  354. /package/dist/client/assets/{diff-z9q33Lo6.js → diff-BWuPUsEo.js} +0 -0
  355. /package/dist/client/assets/{dist-CsYRf4AV.js → dist-x7PIEmJu.js} +0 -0
  356. /package/dist/client/assets/{drawio-room-C592VDk7.js → drawio-room-DEivFyNV.js} +0 -0
  357. /package/dist/client/assets/{dtd-BDizf_te.js → dtd-C6brJFPg.js} +0 -0
  358. /package/dist/client/assets/{dylan-Bk__XCKW.js → dylan-Bft86ZSB.js} +0 -0
  359. /package/dist/client/assets/{ebnf-SzN4Kxtp.js → ebnf-D6ifG44A.js} +0 -0
  360. /package/dist/client/assets/{ecl-5ulxiKbt.js → ecl-M7Iek4lq.js} +0 -0
  361. /package/dist/client/assets/{eiffel-Bhoaqbb6.js → eiffel-DwxtewZF.js} +0 -0
  362. /package/dist/client/assets/{elm-C3je846J.js → elm-B1TncobV.js} +0 -0
  363. /package/dist/client/assets/{erlang-Cgk9SIAz.js → erlang-BDJZNtt8.js} +0 -0
  364. /package/dist/client/assets/{excalidraw-mermaid-stub-B_2dv3Ll.js → excalidraw-mermaid-stub-BZPU4ZhU.js} +0 -0
  365. /package/dist/client/assets/{fcl-dvkZwp9p.js → fcl-BWKK0S4-.js} +0 -0
  366. /package/dist/client/assets/{forth-DmfSa3jN.js → forth-nvhcMz63.js} +0 -0
  367. /package/dist/client/assets/{fortran-BsZAiNnN.js → fortran-BZID-z10.js} +0 -0
  368. /package/dist/client/assets/{gas-DBpKE9ut.js → gas-DjQsZDGE.js} +0 -0
  369. /package/dist/client/assets/{gherkin-CceEbBs7.js → gherkin-S0kHlzux.js} +0 -0
  370. /package/dist/client/assets/{groovy-CxJnDvES.js → groovy-BEKazBrO.js} +0 -0
  371. /package/dist/client/assets/{haskell-CUSb34Xy.js → haskell-C6qH3-aI.js} +0 -0
  372. /package/dist/client/assets/{haxe-6EHO_h-N.js → haxe-BY9d_5nB.js} +0 -0
  373. /package/dist/client/assets/{http-C3qcBpvG.js → http-DG1Y9fpK.js} +0 -0
  374. /package/dist/client/assets/{idl-C95wIO2I.js → idl-B64p3NTJ.js} +0 -0
  375. /package/dist/client/assets/{image-blob-reduce.esm-BaW4gpT9.js → image-blob-reduce.esm-DriR2zT9.js} +0 -0
  376. /package/dist/client/assets/{init-Bjj5fg68.js → init-DtLQcSuO.js} +0 -0
  377. /package/dist/client/assets/{isArrayLikeObject-Cmt1CYnI.js → isArrayLikeObject-BId_dPHM.js} +0 -0
  378. /package/dist/client/assets/{javascript-aWB87b1w.js → javascript-CdiVhQeA.js} +0 -0
  379. /package/dist/client/assets/{julia-DF9PPAXG.js → julia-B22G9Bym.js} +0 -0
  380. /package/dist/client/assets/{katex-BPsFnA3D.js → katex-CXYULLWy.js} +0 -0
  381. /package/dist/client/assets/{livescript-CnOyWwUY.js → livescript-CkcuHqeS.js} +0 -0
  382. /package/dist/client/assets/{lua-a0rEq19C.js → lua-kutgyRGY.js} +0 -0
  383. /package/dist/client/assets/{math-BaavbII8.js → math-B-LMBwub.js} +0 -0
  384. /package/dist/client/assets/{mathematica-CKUq0Ojc.js → mathematica-CKVhKnoY.js} +0 -0
  385. /package/dist/client/assets/{mbox-a-u2PLog.js → mbox-DANyzFJ2.js} +0 -0
  386. /package/dist/client/assets/{mirc-BOd43sOX.js → mirc-BVG2S5rO.js} +0 -0
  387. /package/dist/client/assets/{mllike-fHruGivh.js → mllike-C0p7lv48.js} +0 -0
  388. /package/dist/client/assets/{modelica-B0NJqf1C.js → modelica-vJ-Qa9jV.js} +0 -0
  389. /package/dist/client/assets/{mscgen-DJZ33SrF.js → mscgen-vUD-SWGJ.js} +0 -0
  390. /package/dist/client/assets/{mumps-DvMvHTxU.js → mumps-D0KfUTSd.js} +0 -0
  391. /package/dist/client/assets/{nginx-BVAs8laz.js → nginx-DkVceJrH.js} +0 -0
  392. /package/dist/client/assets/{ntriples-DrdyAZU1.js → ntriples-BBuCIfS0.js} +0 -0
  393. /package/dist/client/assets/{octave-_YqJ0g7E.js → octave-BTv2CqSQ.js} +0 -0
  394. /package/dist/client/assets/{oz-k7T3LoMr.js → oz-D8SjVDNU.js} +0 -0
  395. /package/dist/client/assets/{pascal-CftsTvte.js → pascal-T-tfhVyx.js} +0 -0
  396. /package/dist/client/assets/{path-BUmMWM1-.js → path-DIlZIGue.js} +0 -0
  397. /package/dist/client/assets/{perl-CbsLFc7A.js → perl-BDrCkHRd.js} +0 -0
  398. /package/dist/client/assets/{pica-By-YDy_B.js → pica-C1TdTz-C.js} +0 -0
  399. /package/dist/client/assets/{pig-C-jTwMS-.js → pig-BEyI4fPq.js} +0 -0
  400. /package/dist/client/assets/{powershell-DqXLgSHX.js → powershell-DtnFc6GG.js} +0 -0
  401. /package/dist/client/assets/{preview-diagram-utils-Dc83ucbv.js → preview-diagram-utils-COt-IYMD.js} +0 -0
  402. /package/dist/client/assets/{preview-render-profile-DPzmho7I.js → preview-render-profile-CR4dJZrp.js} +0 -0
  403. /package/dist/client/assets/{properties-05jaw55P.js → properties-DWUvbxV9.js} +0 -0
  404. /package/dist/client/assets/{protobuf-DThTsZQN.js → protobuf-CQGoYyfE.js} +0 -0
  405. /package/dist/client/assets/{puppet-DuHxMpoj.js → puppet-Dd-qWO3p.js} +0 -0
  406. /package/dist/client/assets/{python-BiE2VHJI.js → python-CZtTmYkS.js} +0 -0
  407. /package/dist/client/assets/{q-DH46YfNw.js → q-I27iQntV.js} +0 -0
  408. /package/dist/client/assets/{r-DmEm46kJ.js → r-DN_EydfL.js} +0 -0
  409. /package/dist/client/assets/{rough.esm-jZQkcmER.js → rough.esm-DE_lJ5Ge.js} +0 -0
  410. /package/dist/client/assets/{roundRect-CI6UmGg6.js → roundRect-BzEouiv_.js} +0 -0
  411. /package/dist/client/assets/{rpm-DILIIbRB.js → rpm-CjWxLM68.js} +0 -0
  412. /package/dist/client/assets/{ruby-2LcnHEMS.js → ruby-CB34f2Gf.js} +0 -0
  413. /package/dist/client/assets/{runtime-config-CqX_f_Q4.js → runtime-config-CqhchMC4.js} +0 -0
  414. /package/dist/client/assets/{sas-Bn81MKuB.js → sas-Bji4HDQq.js} +0 -0
  415. /package/dist/client/assets/{scheme-B8kPNbgd.js → scheme-C3elI80V.js} +0 -0
  416. /package/dist/client/assets/{shell-CGj6v8kb.js → shell-DUveK2Hb.js} +0 -0
  417. /package/dist/client/assets/{sieve-CfVNFN1K.js → sieve-2ogwMVx4.js} +0 -0
  418. /package/dist/client/assets/{simple-mode-_FSHdiXs.js → simple-mode-pOKc0mfx.js} +0 -0
  419. /package/dist/client/assets/{smalltalk-BpIFyCPt.js → smalltalk-BuGhc6lW.js} +0 -0
  420. /package/dist/client/assets/{solr-B7iFaetn.js → solr-DTxshpm8.js} +0 -0
  421. /package/dist/client/assets/{sparql-COhgMTFK.js → sparql-BOvq0dv7.js} +0 -0
  422. /package/dist/client/assets/{spreadsheet-BzuffEeg.js → spreadsheet-C6Vbtl9-.js} +0 -0
  423. /package/dist/client/assets/{sql-13lT5zDl.js → sql-DDFeQNTK.js} +0 -0
  424. /package/dist/client/assets/{src-E3c2cohN.js → src-Pgt9Gp65.js} +0 -0
  425. /package/dist/client/assets/{stex-BRSfZZYG.js → stex-CEwW0Q_0.js} +0 -0
  426. /package/dist/client/assets/{stylus-fFo0QRk_.js → stylus-D1SZIMDs.js} +0 -0
  427. /package/dist/client/assets/{swift-wb5gyb6a.js → swift-BCxe4-cw.js} +0 -0
  428. /package/dist/client/assets/{tcl-BJA7GgWY.js → tcl-SPk7uiDB.js} +0 -0
  429. /package/dist/client/assets/{textile-BQjiYu-x.js → textile-C48beRus.js} +0 -0
  430. /package/dist/client/assets/{tiddlywiki-D2vUXB6n.js → tiddlywiki-CiImjFLN.js} +0 -0
  431. /package/dist/client/assets/{tiki-BFhpdznG.js → tiki-HkXZ4BIW.js} +0 -0
  432. /package/dist/client/assets/{toml-DN06iQUw.js → toml-BmfpMy1_.js} +0 -0
  433. /package/dist/client/assets/{troff-DuQfjhPH.js → troff-BjbEOT5E.js} +0 -0
  434. /package/dist/client/assets/{ttcn-BCTy6d50.js → ttcn-NA-V4KnY.js} +0 -0
  435. /package/dist/client/assets/{ttcn-cfg-BYnZQqGa.js → ttcn-cfg-TPHncdGN.js} +0 -0
  436. /package/dist/client/assets/{turtle-BvN-Me9x.js → turtle-GBz_E4RG.js} +0 -0
  437. /package/dist/client/assets/{vb-DYk3wW9u.js → vb-C19AQWqO.js} +0 -0
  438. /package/dist/client/assets/{vbscript-BKI61VS6.js → vbscript-CHJk3s95.js} +0 -0
  439. /package/dist/client/assets/{velocity-BrtitHHA.js → velocity-Ya0P4sQU.js} +0 -0
  440. /package/dist/client/assets/{verilog-CjUx3yiL.js → verilog-C4wTycyo.js} +0 -0
  441. /package/dist/client/assets/{vhdl-CPWwYF4V.js → vhdl-Bwndeg44.js} +0 -0
  442. /package/dist/client/assets/{webidl-PiVOzma8.js → webidl-DttrYZRT.js} +0 -0
  443. /package/dist/client/assets/{xquery-CiTzM_oK.js → xquery-CEDTd8qs.js} +0 -0
  444. /package/dist/client/assets/{yacas-4QS9CntY.js → yacas-C7dxlPB0.js} +0 -0
  445. /package/dist/client/assets/{z80-BxidrTKR.js → z80-BqEfFSnA.js} +0 -0
@@ -1,4 +1,4 @@
1
- import"./chunk-SRAX5OIU-CC2mobFL.js";var e={paste:`貼上`,pasteAsPlaintext:`以純文字貼上`,pasteCharts:`貼上圖表`,selectAll:`全選`,multiSelect:`將物件加入選取範圍`,moveCanvas:`移動畫布`,cut:`剪下`,copy:`複製`,copyAsPng:`以 PNG 格式儲存到剪貼簿`,copyAsSvg:`以 SVG 格式複製到剪貼簿`,copyText:`以文字格式複製至剪貼簿`,copySource:`複製來源至剪貼簿`,convertToCode:`轉換為程式碼`,bringForward:`上移一層`,sendToBack:`移到最底層`,bringToFront:`置於最頂層`,sendBackward:`往後移一層`,delete:`刪除`,copyStyles:`複製樣式`,pasteStyles:`貼上樣式`,stroke:`筆畫`,changeStroke:`變更筆畫顏色`,background:`背景`,changeBackground:`變更背景顏色`,fill:`填滿`,strokeWidth:`筆跡寬度`,strokeStyle:`筆畫樣式`,strokeStyle_solid:`實線`,strokeStyle_dashed:`虛線`,strokeStyle_dotted:`點線`,sloppiness:`線條風格`,opacity:`透明度`,textAlign:`文字對齊`,edges:`邊緣`,sharp:`尖銳`,round:`平滑`,arrowheads:`箭頭`,arrowhead_none:`無`,arrowhead_arrow:`箭頭`,arrowhead_bar:`條狀箭頭`,arrowhead_circle:`圓形`,arrowhead_circle_outline:`圓形(外框)`,arrowhead_triangle:`三角形`,arrowhead_triangle_outline:`三角形(外框)`,arrowhead_diamond:`菱形`,arrowhead_diamond_outline:`菱形(外框)`,arrowhead_crowfoot_many:`雞爪符號(多)`,arrowhead_crowfoot_one:`雞爪符號(一)`,arrowhead_crowfoot_one_or_many:`雞爪符號(一或多)`,more_options:`更多選項`,arrowtypes:`箭頭類型`,arrowtype_sharp:`尖銳箭頭`,arrowtype_round:`彎角箭頭`,arrowtype_elbowed:`直角箭頭`,fontSize:`字型大小`,fontFamily:`字型系列`,addWatermark:`加上「以 Excalidraw 製作」浮水印`,handDrawn:`手寫`,normal:`一般`,code:`代碼`,small:`小`,medium:`中`,large:`大`,veryLarge:`特大`,solid:`實心`,hachure:`斜線筆觸`,zigzag:`Z字形`,crossHatch:`交叉筆觸`,thin:`細`,bold:`粗`,left:`左側`,center:`置中`,right:`右側`,extraBold:`極粗`,architect:`精確`,artist:`藝術`,cartoonist:`卡通`,fileTitle:`檔案名稱`,colorPicker:`色彩選擇工具`,canvasColors:`使用於畫布`,canvasBackground:`Canvas 背景`,drawingCanvas:`繪圖 canvas`,clearCanvas:`清除畫布`,layers:`圖層`,actions:`動作`,language:`語言`,liveCollaboration:`即時協作...`,duplicateSelection:`複製`,untitled:`無標題`,name:`名稱`,yourName:`你的名稱`,madeWithExcalidraw:`以 Excalidraw 製作`,group:`建立群組`,ungroup:`取消群組`,collaborators:`協作者`,toggleGrid:`切換網格`,addToLibrary:`加入資料庫`,removeFromLibrary:`從資料庫中移除`,libraryLoadingMessage:`資料庫讀取中…`,libraries:`瀏覽資料庫`,loadingScene:`場景讀取中…`,loadScene:`從檔案載入場景`,align:`對齊`,alignTop:`對齊頂部`,alignBottom:`對齊底部`,alignLeft:`對齊左側`,alignRight:`對齊右側`,centerVertically:`垂直置中`,centerHorizontally:`水平置中`,distributeHorizontally:`水平分布`,distributeVertically:`垂直分布`,flipHorizontal:`水平翻轉`,flipVertical:`垂直翻轉`,viewMode:`檢視模式`,share:`分享`,showStroke:`顯示線條檢色器`,showBackground:`顯示背景檢色器`,showFonts:`顯示字型選單`,toggleTheme:`切換淺色/深色主題`,theme:`主題`,personalLib:`個人資料庫`,excalidrawLib:`Excalidraw 資料庫`,decreaseFontSize:`縮小文字`,increaseFontSize:`放大文字`,unbindText:`取消綁定文字`,bindText:`結合文字至容器`,createContainerFromText:`將文字包於容器中`,link:{edit:`編輯連結`,editEmbed:`編輯可嵌入連結`,create:`新增連結`,label:`連結`,labelEmbed:`連結與嵌入`,empty:`未設定連結`,hint:`在此輸入或貼上連結`,goToElement:`移至目標元素`},lineEditor:{edit:`編輯線條`,editArrow:`編輯箭頭`},polygon:{breakPolygon:``,convertToPolygon:``},elementLock:{lock:`鎖定`,unlock:`解鎖`,lockAll:`全部鎖定`,unlockAll:`全部解鎖`},statusPublished:`已發布`,sidebarLock:`側欄維持開啟`,selectAllElementsInFrame:`選取框架內的所有元素`,removeAllElementsFromFrame:`從框架內移除所有元素`,eyeDropper:`從畫布中選取顏色`,textToDiagram:`文字轉圖表`,prompt:`提示詞`,followUs:`追蹤我們`,discordChat:`Discord 聊天室`,zoomToFitViewport:`縮放至符合 viewport`,zoomToFitSelection:`縮放至符合選取區`,zoomToFit:`縮放至顯示所有元素`,installPWA:`於本機安裝 Excalidraw (PWA)`,autoResize:`啟用文字自動縮放`,imageCropping:`圖片剪裁`,unCroppedDimension:`未剪裁尺寸`,copyElementLink:`複製此物件的連結`,linkToElement:`連結至物件`,wrapSelectionInFrame:`將選取內容放入框架`,tab:``,shapeSwitch:``},t={title:`連結至物件`,desc:`點擊畫布上的形狀或貼上連結`,notFound:`無法在畫布上找到連結的物件`},n={noItems:`尚未加入任何物件...`,hint_emptyLibrary:`選取畫布上的物件以加入,或從下方的公開儲存庫中安裝資料庫。`,hint_emptyPrivateLibrary:`選擇畫布上的物件以在此加入。`,search:{inputPlaceholder:``,heading:``,noResults:``,clearSearch:``}},r={title:`在畫布上尋找`,noMatch:`未找到符合項目…`,singleResult:`結果`,multipleResults:`結果`,placeholder:`在畫布上尋找文字…`,frames:``,texts:``},i={clearReset:`重設畫布`,exportJSON:`匯出至檔案`,exportImage:`匯出圖片`,export:`儲存至...`,copyToClipboard:`複製至剪貼簿`,copyLink:`複製連結`,save:`儲存目前檔案`,saveAs:`儲存為`,load:`開啟`,getShareableLink:`取得共享連結`,close:`關閉`,selectLanguage:`選擇語言`,scrollBackToContent:`捲動回到內容`,zoomIn:`放大`,zoomOut:`縮小`,resetZoom:`重設縮放`,menu:`選單`,done:`完成`,edit:`編輯`,undo:`復原`,redo:`重做`,resetLibrary:`重設資料庫`,createNewRoom:`建立新協作會議室`,fullScreen:`全螢幕`,darkMode:`深色模式`,lightMode:`淺色模式`,systemMode:`系統模式`,zenMode:`專注模式`,objectsSnapMode:`吸附至物件`,exitZenMode:`離開專注模式`,cancel:`取消`,saveLibNames:``,clear:`清除`,remove:`刪除`,embed:`切換嵌入`,publishLibrary:``,submit:`送出`,confirm:`確認`,embeddableInteractionButton:`點擊以互動`},a={clearReset:`這將會清除整個 canvas。你確定嗎?`,couldNotCreateShareableLink:`無法建立共享連結。`,couldNotCreateShareableLinkTooBig:`無法建立共享連結:場景太大`,couldNotLoadInvalidFile:`無法讀取失效的檔案。`,importBackendFailed:`後端讀取失敗。`,cannotExportEmptyCanvas:`無法輸出空白的 canvas。`,couldNotCopyToClipboard:`無法複製到剪貼簿`,decryptFailed:`無法解密資料。`,uploadedSecurly:`上傳已通過 end-to-end 加密,Excalidraw 伺服器和第三方無法皆讀取其內容。`,loadSceneOverridePrompt:`讀取外部圖樣將取代目前的內容。是否要繼續?`,collabStopOverridePrompt:`停止連線將覆蓋您先前於本機儲存的繪圖進度,是否確認?
1
+ import"./chunk-SRAX5OIU-CLVBQRWC.js";var e={paste:`貼上`,pasteAsPlaintext:`以純文字貼上`,pasteCharts:`貼上圖表`,selectAll:`全選`,multiSelect:`將物件加入選取範圍`,moveCanvas:`移動畫布`,cut:`剪下`,copy:`複製`,copyAsPng:`以 PNG 格式儲存到剪貼簿`,copyAsSvg:`以 SVG 格式複製到剪貼簿`,copyText:`以文字格式複製至剪貼簿`,copySource:`複製來源至剪貼簿`,convertToCode:`轉換為程式碼`,bringForward:`上移一層`,sendToBack:`移到最底層`,bringToFront:`置於最頂層`,sendBackward:`往後移一層`,delete:`刪除`,copyStyles:`複製樣式`,pasteStyles:`貼上樣式`,stroke:`筆畫`,changeStroke:`變更筆畫顏色`,background:`背景`,changeBackground:`變更背景顏色`,fill:`填滿`,strokeWidth:`筆跡寬度`,strokeStyle:`筆畫樣式`,strokeStyle_solid:`實線`,strokeStyle_dashed:`虛線`,strokeStyle_dotted:`點線`,sloppiness:`線條風格`,opacity:`透明度`,textAlign:`文字對齊`,edges:`邊緣`,sharp:`尖銳`,round:`平滑`,arrowheads:`箭頭`,arrowhead_none:`無`,arrowhead_arrow:`箭頭`,arrowhead_bar:`條狀箭頭`,arrowhead_circle:`圓形`,arrowhead_circle_outline:`圓形(外框)`,arrowhead_triangle:`三角形`,arrowhead_triangle_outline:`三角形(外框)`,arrowhead_diamond:`菱形`,arrowhead_diamond_outline:`菱形(外框)`,arrowhead_crowfoot_many:`雞爪符號(多)`,arrowhead_crowfoot_one:`雞爪符號(一)`,arrowhead_crowfoot_one_or_many:`雞爪符號(一或多)`,more_options:`更多選項`,arrowtypes:`箭頭類型`,arrowtype_sharp:`尖銳箭頭`,arrowtype_round:`彎角箭頭`,arrowtype_elbowed:`直角箭頭`,fontSize:`字型大小`,fontFamily:`字型系列`,addWatermark:`加上「以 Excalidraw 製作」浮水印`,handDrawn:`手寫`,normal:`一般`,code:`代碼`,small:`小`,medium:`中`,large:`大`,veryLarge:`特大`,solid:`實心`,hachure:`斜線筆觸`,zigzag:`Z字形`,crossHatch:`交叉筆觸`,thin:`細`,bold:`粗`,left:`左側`,center:`置中`,right:`右側`,extraBold:`極粗`,architect:`精確`,artist:`藝術`,cartoonist:`卡通`,fileTitle:`檔案名稱`,colorPicker:`色彩選擇工具`,canvasColors:`使用於畫布`,canvasBackground:`Canvas 背景`,drawingCanvas:`繪圖 canvas`,clearCanvas:`清除畫布`,layers:`圖層`,actions:`動作`,language:`語言`,liveCollaboration:`即時協作...`,duplicateSelection:`複製`,untitled:`無標題`,name:`名稱`,yourName:`你的名稱`,madeWithExcalidraw:`以 Excalidraw 製作`,group:`建立群組`,ungroup:`取消群組`,collaborators:`協作者`,toggleGrid:`切換網格`,addToLibrary:`加入資料庫`,removeFromLibrary:`從資料庫中移除`,libraryLoadingMessage:`資料庫讀取中…`,libraries:`瀏覽資料庫`,loadingScene:`場景讀取中…`,loadScene:`從檔案載入場景`,align:`對齊`,alignTop:`對齊頂部`,alignBottom:`對齊底部`,alignLeft:`對齊左側`,alignRight:`對齊右側`,centerVertically:`垂直置中`,centerHorizontally:`水平置中`,distributeHorizontally:`水平分布`,distributeVertically:`垂直分布`,flipHorizontal:`水平翻轉`,flipVertical:`垂直翻轉`,viewMode:`檢視模式`,share:`分享`,showStroke:`顯示線條檢色器`,showBackground:`顯示背景檢色器`,showFonts:`顯示字型選單`,toggleTheme:`切換淺色/深色主題`,theme:`主題`,personalLib:`個人資料庫`,excalidrawLib:`Excalidraw 資料庫`,decreaseFontSize:`縮小文字`,increaseFontSize:`放大文字`,unbindText:`取消綁定文字`,bindText:`結合文字至容器`,createContainerFromText:`將文字包於容器中`,link:{edit:`編輯連結`,editEmbed:`編輯可嵌入連結`,create:`新增連結`,label:`連結`,labelEmbed:`連結與嵌入`,empty:`未設定連結`,hint:`在此輸入或貼上連結`,goToElement:`移至目標元素`},lineEditor:{edit:`編輯線條`,editArrow:`編輯箭頭`},polygon:{breakPolygon:``,convertToPolygon:``},elementLock:{lock:`鎖定`,unlock:`解鎖`,lockAll:`全部鎖定`,unlockAll:`全部解鎖`},statusPublished:`已發布`,sidebarLock:`側欄維持開啟`,selectAllElementsInFrame:`選取框架內的所有元素`,removeAllElementsFromFrame:`從框架內移除所有元素`,eyeDropper:`從畫布中選取顏色`,textToDiagram:`文字轉圖表`,prompt:`提示詞`,followUs:`追蹤我們`,discordChat:`Discord 聊天室`,zoomToFitViewport:`縮放至符合 viewport`,zoomToFitSelection:`縮放至符合選取區`,zoomToFit:`縮放至顯示所有元素`,installPWA:`於本機安裝 Excalidraw (PWA)`,autoResize:`啟用文字自動縮放`,imageCropping:`圖片剪裁`,unCroppedDimension:`未剪裁尺寸`,copyElementLink:`複製此物件的連結`,linkToElement:`連結至物件`,wrapSelectionInFrame:`將選取內容放入框架`,tab:``,shapeSwitch:``},t={title:`連結至物件`,desc:`點擊畫布上的形狀或貼上連結`,notFound:`無法在畫布上找到連結的物件`},n={noItems:`尚未加入任何物件...`,hint_emptyLibrary:`選取畫布上的物件以加入,或從下方的公開儲存庫中安裝資料庫。`,hint_emptyPrivateLibrary:`選擇畫布上的物件以在此加入。`,search:{inputPlaceholder:``,heading:``,noResults:``,clearSearch:``}},r={title:`在畫布上尋找`,noMatch:`未找到符合項目…`,singleResult:`結果`,multipleResults:`結果`,placeholder:`在畫布上尋找文字…`,frames:``,texts:``},i={clearReset:`重設畫布`,exportJSON:`匯出至檔案`,exportImage:`匯出圖片`,export:`儲存至...`,copyToClipboard:`複製至剪貼簿`,copyLink:`複製連結`,save:`儲存目前檔案`,saveAs:`儲存為`,load:`開啟`,getShareableLink:`取得共享連結`,close:`關閉`,selectLanguage:`選擇語言`,scrollBackToContent:`捲動回到內容`,zoomIn:`放大`,zoomOut:`縮小`,resetZoom:`重設縮放`,menu:`選單`,done:`完成`,edit:`編輯`,undo:`復原`,redo:`重做`,resetLibrary:`重設資料庫`,createNewRoom:`建立新協作會議室`,fullScreen:`全螢幕`,darkMode:`深色模式`,lightMode:`淺色模式`,systemMode:`系統模式`,zenMode:`專注模式`,objectsSnapMode:`吸附至物件`,exitZenMode:`離開專注模式`,cancel:`取消`,saveLibNames:``,clear:`清除`,remove:`刪除`,embed:`切換嵌入`,publishLibrary:``,submit:`送出`,confirm:`確認`,embeddableInteractionButton:`點擊以互動`},a={clearReset:`這將會清除整個 canvas。你確定嗎?`,couldNotCreateShareableLink:`無法建立共享連結。`,couldNotCreateShareableLinkTooBig:`無法建立共享連結:場景太大`,couldNotLoadInvalidFile:`無法讀取失效的檔案。`,importBackendFailed:`後端讀取失敗。`,cannotExportEmptyCanvas:`無法輸出空白的 canvas。`,couldNotCopyToClipboard:`無法複製到剪貼簿`,decryptFailed:`無法解密資料。`,uploadedSecurly:`上傳已通過 end-to-end 加密,Excalidraw 伺服器和第三方無法皆讀取其內容。`,loadSceneOverridePrompt:`讀取外部圖樣將取代目前的內容。是否要繼續?`,collabStopOverridePrompt:`停止連線將覆蓋您先前於本機儲存的繪圖進度,是否確認?
2
2
 
3
3
  (如要保留原有的本機繪圖進度,直接關閉瀏覽器分頁即可。)`,errorAddingToLibrary:`無法於此資料庫加入項目`,errorRemovingFromLibrary:`無法由此資料庫移除項目`,confirmAddLibrary:`這將會將 {{numShapes}} 個圖形加入你的資料庫,你確定嗎?`,imageDoesNotContainScene:`此圖檔中未包含場景資料。輸出檔案時是否有包含場景資料?`,cannotRestoreFromImage:`無法由此檔案回復場景。`,invalidSceneUrl:`無法由提供的 URL 匯入場景。可能是發生異常,或未包含有效的 Excalidraw JSON 資料。`,resetLibrary:`這會清除您的資料庫,是否確定?`,removeItemsFromsLibrary:`從資料庫刪除 {{count}} 項?`,invalidEncryptionKey:`加密鍵必須為22字元。即時協作已停用。`,collabOfflineWarning:`沒有可用的網路連線。
4
4
  變更無法儲存!`,localStorageQuotaExceeded:``},o={unsupportedFileType:`不支援的檔案類型。`,imageInsertError:`無法插入圖片。請稍後再試…`,fileTooBig:`檔案過大。可接受的最大尺寸為 {{maxSize}} 。`,svgImageInsertError:`無法插入 SVG 圖片。此 SVG 檔案有問題。`,failedToFetchImage:`無法獲取圖片。`,cannotResolveCollabServer:`無法連結至 collab 伺服器。請重新整理後再試一次。`,importLibraryError:`無法載入資料庫`,saveLibraryError:`無法將資料庫存至儲存區。請將資料庫存至本機檔案以確保不會失去已變更的部分。`,collabSaveFailed:`無法儲存至後端資料庫。若此問題持續發生,請將檔案儲存於本機以確保資料不會遺失。`,collabSaveFailed_sizeExceeded:`無法儲存至後端資料庫,可能的原因為畫布尺寸過大。請將檔案儲存於本機以確保資料不會遺失。`,imageToolNotSupported:`圖片已停用`,brave_measure_text_error:{line1:`看起來您開啟了 Brave 瀏覽器的 <bold>Aggressively Block Fingerprinting</bold> 設定。`,line2:`這可能造成您畫布中 <bold>文字元素</bold> 的異常。`,line3:`我們強烈建議您關閉此設定。您可以依照 <link>這些步驟</link> 來進行。`,line4:`若關閉此設定並未修復文字元素的顯示問題,請回報於我們 GitHub 上的 <issueLink>issue</issueLink>,或在 <discordLink>Discord</discordLink> 上告訴我們。`},libraryElementTypeError:{embeddable:`可嵌入元素無法加入資料庫`,iframe:`IFrame 元素無法加入資料庫`,image:`即將支援加入圖片至資料庫!`},asyncPasteFailedOnRead:`無法貼上(無法由系統剪貼簿讀入)`,asyncPasteFailedOnParse:`無法貼上`,copyToSystemClipboardFailed:`無法複製至剪貼簿`},s={selection:`選取`,lasso:``,image:`插入圖片`,rectangle:`長方形`,diamond:`菱形`,ellipse:`橢圓`,arrow:`箭頭`,line:`線條`,freedraw:`繪圖`,text:`文字`,library:`資料庫`,lock:`可連續使用選取的工具`,penMode:`筆模式 - 避免觸摸`,link:`為所選的形狀增加\b/更新連結`,eraser:`橡皮擦`,frame:`框架工具`,magicframe:`線框稿轉為程式碼`,embeddable:`嵌入網站`,laser:`雷射筆`,hand:`手形(平移工具)`,extraTools:`更多工具`,mermaidToExcalidraw:`Mermaid 至 Excalidraw`,convertElementType:``},c={rectangle:`矩形`,diamond:`菱形`,ellipse:`橢圓形`,arrow:`箭頭`,line:`線條`,freedraw:`自由繪圖`,text:`文字`,image:`圖片`,group:`群組`,frame:`框架`,magicframe:`線框稿轉為程式碼`,embeddable:`嵌入網站`,selection:`已選項目`,iframe:`IFrame框架`},l={canvasActions:`canvas 動作`,selectedShapeActions:`選取圖形動作`,shapes:`形狀`},u={dismissSearch:``,canvasPanning:``,linearElement:`點擊以繪製多點曲線;或拖曳以繪製直線`,arrowTool:``,arrowBindModifiers:``,freeDraw:`點擊並拖曳來繪圖,放開即結束`,text:`提示:亦可使用選取工具在任何地方雙擊來加入文字`,embeddable:`點擊並拖移以建立嵌入網站`,text_selected:``,text_editing:``,linearElementMulti:``,lockAngle:``,resize:``,resizeImage:``,rotate:``,lineEditor_info:``,lineEditor_line_info:``,lineEditor_pointSelected:``,lineEditor_nothingSelected:``,publishLibrary:`發布個人資料庫`,bindTextToElement:``,createFlowchart:``,deepBoxSelect:``,eraserRevert:``,firefox_clipboard_write:`此功能有機會透過將 "dom.events.asyncClipboard.clipboardItem" 設定為 "true" 來開啟。
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>draw.io — CollabMD</title>
7
- <script type="module" crossorigin src="./assets/drawioEditor-Eb2yYhjE.js"></script>
7
+ <script type="module" crossorigin src="./assets/drawioEditor-DGpo2hcx.js"></script>
8
8
  <link rel="modulepreload" crossorigin href="./assets/runtime-config-loader-_D2KZKn-.js">
9
9
  <link rel="modulepreload" crossorigin href="./assets/preload-helper-Bo9GmnuQ.js">
10
10
  </head>
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Excalidraw — CollabMD</title>
7
- <script type="module" crossorigin src="./assets/excalidrawEditor-diK4VITg.js"></script>
7
+ <script type="module" crossorigin src="./assets/excalidrawEditor-BhaTX2Ko.js"></script>
8
8
  <link rel="modulepreload" crossorigin href="./assets/runtime-config-loader-_D2KZKn-.js">
9
9
  <link rel="modulepreload" crossorigin href="./assets/preload-helper-Bo9GmnuQ.js">
10
10
  </head>
@@ -1,15 +1,15 @@
1
1
  <!DOCTYPE html>
2
- <html lang="en" data-theme="light">
2
+ <html lang="en" data-theme="light" data-surface="export-document">
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>CollabMD Export</title>
7
- <script type="module" crossorigin src="./assets/exportDocument-BM4_f2n8.js"></script>
7
+ <script type="module" crossorigin src="./assets/exportDocument-CtZKWE2c.js"></script>
8
8
  <link rel="modulepreload" crossorigin href="./assets/runtime-config-loader-_D2KZKn-.js">
9
9
  <link rel="modulepreload" crossorigin href="./assets/preload-helper-Bo9GmnuQ.js">
10
- <link rel="modulepreload" crossorigin href="./assets/base-r5Zg2n3k.js">
11
- <link rel="stylesheet" crossorigin href="./assets/base-B5gONpJK.css">
12
- <link rel="stylesheet" crossorigin href="./assets/exportDocument-CLPYN_gg.css">
10
+ <link rel="modulepreload" crossorigin href="./assets/base-h1uscjTi.js">
11
+ <link rel="stylesheet" crossorigin href="./assets/base-CaIEJUF9.css">
12
+ <link rel="stylesheet" crossorigin href="./assets/exportDocument-DmV7Gngb.css">
13
13
  </head>
14
14
  <body data-theme="light" data-surface="export-document">
15
15
  <main class="export-page-shell">
@@ -15,12 +15,12 @@
15
15
  document.documentElement.setAttribute('data-initial-file-requested', 'true');
16
16
  }
17
17
  </script>
18
- <script type="module" crossorigin src="./assets/index-CVgVzuh6.js"></script>
18
+ <script type="module" crossorigin src="./assets/index-kPgEYvEX.js"></script>
19
19
  <link rel="modulepreload" crossorigin href="./assets/runtime-config-loader-_D2KZKn-.js">
20
20
  <link rel="modulepreload" crossorigin href="./assets/preload-helper-Bo9GmnuQ.js">
21
- <link rel="modulepreload" crossorigin href="./assets/base-r5Zg2n3k.js">
22
- <link rel="stylesheet" crossorigin href="./assets/base-B5gONpJK.css">
23
- <link rel="stylesheet" crossorigin href="./assets/index-BOOhEiLo.css">
21
+ <link rel="modulepreload" crossorigin href="./assets/base-h1uscjTi.js">
22
+ <link rel="stylesheet" crossorigin href="./assets/base-CaIEJUF9.css">
23
+ <link rel="stylesheet" crossorigin href="./assets/index-D69HOZHr.css">
24
24
  </head>
25
25
  <body>
26
26
  <div id="appRoot"></div>
@@ -10,6 +10,7 @@ services:
10
10
  AUTH_PASSWORD: ${AUTH_PASSWORD:-}
11
11
  AUTH_SESSION_COOKIE_NAME: ${AUTH_SESSION_COOKIE_NAME:-collabmd_auth}
12
12
  AUTH_SESSION_SECRET: ${AUTH_SESSION_SECRET:-}
13
+ AUTH_SESSION_MAX_AGE_MS: ${AUTH_SESSION_MAX_AGE_MS:-}
13
14
  PUBLIC_BASE_URL: ${PUBLIC_BASE_URL:-http://localhost:1234}
14
15
  AUTH_OIDC_CLIENT_ID: ${AUTH_OIDC_CLIENT_ID:-}
15
16
  AUTH_OIDC_CLIENT_SECRET: ${AUTH_OIDC_CLIENT_SECRET:-}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "collabmd",
3
- "version": "0.1.29",
3
+ "version": "0.1.31",
4
4
  "type": "module",
5
5
  "description": "Collaborative markdown vault — like Obsidian, but online. Serve any directory of markdown files for realtime collaborative editing.",
6
6
  "repository": {
@@ -60,30 +60,32 @@
60
60
  },
61
61
  "license": "MIT",
62
62
  "dependencies": {
63
- "@codemirror/autocomplete": "^6.20.0",
64
- "@codemirror/commands": "^6.10.0",
63
+ "@codemirror/autocomplete": "^6.20.1",
64
+ "@codemirror/commands": "^6.10.3",
65
65
  "@codemirror/lang-markdown": "^6.5.0",
66
- "@codemirror/language": "^6.11.0",
67
- "@codemirror/language-data": "^6.5.0",
66
+ "@codemirror/lang-yaml": "^6.1.3",
67
+ "@codemirror/language": "^6.12.3",
68
+ "@codemirror/language-data": "^6.5.2",
68
69
  "@codemirror/search": "^6.6.0",
69
- "@codemirror/state": "^6.5.0",
70
+ "@codemirror/state": "^6.6.0",
70
71
  "@codemirror/theme-one-dark": "^6.1.3",
71
- "@codemirror/view": "^6.38.0",
72
- "@excalidraw/excalidraw": "0.18.0-816c81c",
72
+ "@codemirror/view": "^6.40.0",
73
+ "@excalidraw/excalidraw": "0.18.0-4a5c9e9",
73
74
  "@turbodocx/html-to-docx": "^1.20.1",
74
75
  "highlight.js": "^11.11.1",
75
- "lib0": "^0.2.0",
76
+ "js-yaml": "^4.1.1",
77
+ "lib0": "^0.2.117",
76
78
  "lit-html": "^3.3.2",
77
- "markdown-it": "^14.1.0",
79
+ "markdown-it": "^14.1.1",
78
80
  "mermaid": "^11.13.0",
79
81
  "openid-client": "^6.8.2",
80
- "react": "^19.2.0",
81
- "react-dom": "^19.2.0",
82
- "ws": "^8.0.0",
82
+ "react": "^19.2.4",
83
+ "react-dom": "^19.2.4",
84
+ "ws": "^8.20.0",
83
85
  "y-codemirror.next": "^0.3.5",
84
- "y-protocols": "^1.0.0",
86
+ "y-protocols": "^1.0.7",
85
87
  "y-websocket": "^3.0.0",
86
- "yjs": "^13.0.0"
88
+ "yjs": "^13.6.30"
87
89
  },
88
90
  "overrides": {
89
91
  "@excalidraw/excalidraw": {
@@ -91,12 +93,13 @@
91
93
  }
92
94
  },
93
95
  "devDependencies": {
96
+ "@eslint/js": "^10.0.1",
94
97
  "@playwright/test": "^1.58.2",
95
- "@vitest/browser": "^4.1.0",
96
- "@vitest/browser-playwright": "^4.1.0",
97
- "eslint": "^9.22.0",
98
- "globals": "^16.0.0",
99
- "vite": "^8.0.1",
100
- "vitest": "^4.1.0"
98
+ "@vitest/browser": "^4.1.1",
99
+ "@vitest/browser-playwright": "^4.1.1",
100
+ "eslint": "^10.1.0",
101
+ "globals": "^17.4.0",
102
+ "vite": "^8.0.2",
103
+ "vitest": "^4.1.1"
101
104
  }
102
105
  }
@@ -1,5 +1,5 @@
1
1
  <!DOCTYPE html>
2
- <html lang="en" data-theme="light">
2
+ <html lang="en" data-theme="light" data-surface="export-document">
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
@@ -32,6 +32,7 @@ const VERSION_RELOAD_TOAST_DURATION_MS = 0;
32
32
  function initialize() {
33
33
  this.initializeExportBridge?.();
34
34
  this.renderMarkdownToolbar?.();
35
+ this.initializeVisualViewportBinding?.();
35
36
  this.themeController.initialize();
36
37
  this.previewRenderer.applyTheme(this.themeController.getTheme());
37
38
  this.previewRenderer.scheduleWorkerPrewarm();
@@ -80,6 +81,40 @@ function initializeVersionMonitoring() {
80
81
  this.versionMonitor?.start();
81
82
  }
82
83
 
84
+ /** @this {UiShellContext} */
85
+ function syncVisualViewportBounds() {
86
+ const root = document.documentElement;
87
+ const viewport = window.visualViewport;
88
+
89
+ if (!root) {
90
+ return;
91
+ }
92
+
93
+ if (!viewport) {
94
+ root.style.setProperty('--app-viewport-height', '100dvh');
95
+ root.style.setProperty('--app-viewport-offset-top', '0px');
96
+ return;
97
+ }
98
+
99
+ root.style.setProperty('--app-viewport-height', `${Math.round(viewport.height)}px`);
100
+ root.style.setProperty('--app-viewport-offset-top', `${Math.round(viewport.offsetTop)}px`);
101
+ }
102
+
103
+ /** @this {UiShellContext} */
104
+ function initializeVisualViewportBinding() {
105
+ this.syncVisualViewportBounds?.();
106
+
107
+ const viewport = window.visualViewport;
108
+ if (!viewport) {
109
+ return;
110
+ }
111
+
112
+ const handler = () => this.syncVisualViewportBounds?.();
113
+ viewport.addEventListener('resize', handler, { passive: true });
114
+ viewport.addEventListener('scroll', handler, { passive: true });
115
+ window.addEventListener('orientationchange', handler);
116
+ }
117
+
83
118
  /** @this {UiShellContext} */
84
119
  function promptForVersionReload(payload = null) {
85
120
  if (this._reloadPromptShown) {
@@ -131,6 +166,11 @@ function bindEvents() {
131
166
  this.closeToolbarOverflowMenu?.();
132
167
  });
133
168
 
169
+ this.elements.searchFilesButton?.addEventListener('click', () => {
170
+ void this.toggleQuickSwitcher();
171
+ this.closeToolbarOverflowMenu?.();
172
+ });
173
+
134
174
  this.elements.exportDocxButton?.addEventListener('click', () => {
135
175
  void this.handleExportRequest?.('docx');
136
176
  this.closeToolbarOverflowMenu?.();
@@ -219,6 +259,10 @@ function bindEvents() {
219
259
  this.toggleLineWrapping();
220
260
  });
221
261
 
262
+ this.elements.editorFindButton?.addEventListener('click', () => {
263
+ this.runEditorCommand?.('openSearch');
264
+ });
265
+
222
266
  this.elements.toolbarOverflowToggle?.addEventListener('click', (event) => {
223
267
  event.preventDefault();
224
268
  this.toggleToolbarOverflowMenu();
@@ -481,12 +525,14 @@ export const uiFeatureShellMethods = {
481
525
  handleThemeChange,
482
526
  hideEditorLoading,
483
527
  initialize,
528
+ initializeVisualViewportBinding,
484
529
  initializeVersionMonitoring,
485
- setToolbarOverflowOpen,
486
530
  promptForVersionReload,
487
531
  scheduleBacklinkRefresh,
532
+ setToolbarOverflowOpen,
488
533
  showEditorLoadError,
489
534
  showEditorLoading,
535
+ syncVisualViewportBounds,
490
536
  syncToolbarOverflowVisibility,
491
537
  syncWrapToggle,
492
538
  toggleToolbarOverflowMenu,
@@ -29,7 +29,9 @@ function normalizeToolbarAction(action) {
29
29
 
30
30
  function renderToolbarButtons(actions) {
31
31
  return actions.map((item) => (
32
- `<button type="button" class="ui-icon-button ui-icon-button--toolbar ui-toolbar-action" data-markdown-action="${escapeHtml(item.action)}" aria-label="${escapeHtml(item.label)}" title="${escapeHtml(item.title)}">${item.icon}</button>`
32
+ `<button type="button" class="ui-icon-button ui-icon-button--toolbar ui-toolbar-action" ${item.commandId
33
+ ? `data-editor-command="${escapeHtml(item.commandId)}"`
34
+ : `data-markdown-action="${escapeHtml(item.action)}"`} aria-label="${escapeHtml(item.label)}" title="${escapeHtml(item.title)}">${item.icon}</button>`
33
35
  )).join('');
34
36
  }
35
37
 
@@ -80,7 +82,7 @@ function renderMarkdownToolbarMarkup(activeAction) {
80
82
  }
81
83
 
82
84
  return `
83
- <div class="markdown-toolbar-group" role="group" aria-label="${escapeHtml(group.groupLabel)}">
85
+ <div class="markdown-toolbar-group${group.mobileOnly ? ' markdown-toolbar-group--mobile-only' : ''}" role="group" aria-label="${escapeHtml(group.groupLabel)}">
84
86
  ${renderToolbarButtons(group.actions)}
85
87
  </div>
86
88
  `;
@@ -95,7 +97,7 @@ function renderMarkdownToolbarMarkup(activeAction) {
95
97
  * @property {{ refresh(): Promise<void> }} fileExplorer
96
98
  * @property {{ show(message: string): void }} toastController
97
99
  * @property {{ uploadImageAttachment(payload: { file: File, fileName: string, sourcePath: string }): Promise<{ markdown?: string, path?: string }>} } vaultApiClient
98
- * @property {{ applyMarkdownToolbarAction(action: string): boolean, insertText(text: string): void } | null} session
100
+ * @property {{ applyMarkdownToolbarAction(action: string): boolean, insertText(text: string): void, runEditorCommand?(commandId: string): boolean } | null} session
99
101
  * @property {() => Promise<File | null>} pickImageFile
100
102
  * @property {(file: File) => Promise<boolean>} handleEditorImageInsert
101
103
  * @property {() => Promise<void>} handleToolbarImageInsert
@@ -273,6 +275,14 @@ function handleMarkdownToolbarClick(event) {
273
275
  return;
274
276
  }
275
277
 
278
+ const editorCommandButton = target.closest('[data-editor-command]');
279
+ const editorCommandId = editorCommandButton?.getAttribute('data-editor-command');
280
+ if (editorCommandId) {
281
+ event.preventDefault();
282
+ this.runEditorCommand(editorCommandId);
283
+ return;
284
+ }
285
+
276
286
  const blockMenuToggle = target.closest('[data-markdown-block-menu-toggle]');
277
287
  if (blockMenuToggle) {
278
288
  event.preventDefault();
@@ -379,6 +389,17 @@ function applyMarkdownToolbarAction(action) {
379
389
  }
380
390
  }
381
391
 
392
+ /** @this {UiToolbarContext} */
393
+ function runEditorCommand(commandId) {
394
+ const ran = this.session?.runEditorCommand?.(commandId);
395
+ if (!ran) {
396
+ this.toastController.show('Editor action is unavailable');
397
+ return false;
398
+ }
399
+
400
+ return true;
401
+ }
402
+
382
403
  /** @this {UiToolbarContext} */
383
404
  async function handleToolbarImageInsert() {
384
405
  const file = await this.pickImageFile();
@@ -514,6 +535,7 @@ export const uiFeatureToolbarMethods = {
514
535
  renderMarkdownBlockMenuPopover,
515
536
  pickImageFile,
516
537
  renderMarkdownToolbar,
538
+ runEditorCommand,
517
539
  setActiveMarkdownBlockAction,
518
540
  syncMarkdownToolbarBlockUi,
519
541
  toggleMarkdownBlockMenu,
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  getVaultFileKind,
3
+ isBaseFilePath,
3
4
  isDrawioFilePath,
4
5
  isExcalidrawFilePath,
5
6
  isImageAttachmentFilePath,
@@ -13,6 +14,10 @@ export const workspaceFeature = {
13
14
  return isExcalidrawFilePath(filePath);
14
15
  },
15
16
 
17
+ isBaseFile(filePath) {
18
+ return isBaseFilePath(filePath);
19
+ },
20
+
16
21
  isDrawioFile(filePath) {
17
22
  return isDrawioFilePath(filePath);
18
23
  },
@@ -132,6 +137,10 @@ export const workspaceFeature = {
132
137
  this.workspacePreviewController.renderImageFilePreview(filePath);
133
138
  },
134
139
 
140
+ renderBaseFilePreview(filePath) {
141
+ return this.workspacePreviewController.renderBaseFilePreview(filePath);
142
+ },
143
+
135
144
  renderTextFilePreview(payload) {
136
145
  this.workspacePreviewController.renderTextFilePreview(payload);
137
146
  },
@@ -33,6 +33,7 @@ export function bindAppShellElements(doc = document) {
33
33
  displayNameSubmit: doc.getElementById('displayNameSubmit'),
34
34
  displayNameTitle: doc.getElementById('displayNameTitle'),
35
35
  editNameButton: doc.getElementById('editNameBtn'),
36
+ editorFindButton: doc.getElementById('editorFindBtn'),
36
37
  editorContainer: doc.getElementById('editorContainer'),
37
38
  exportDocxButton: doc.getElementById('exportDocxBtn'),
38
39
  exportMenuGroup: doc.getElementById('exportMenuGroup'),
@@ -52,6 +53,7 @@ export function bindAppShellElements(doc = document) {
52
53
  mobileViewToggle: doc.getElementById('mobileViewToggle'),
53
54
  previewContent: doc.getElementById('previewContent'),
54
55
  previewContainer: doc.getElementById('previewContainer'),
56
+ searchFilesButton: doc.getElementById('searchFilesBtn'),
55
57
  shareButton: doc.getElementById('shareBtn'),
56
58
  toastContainer: doc.getElementById('toastContainer'),
57
59
  toggleWrapButton: doc.getElementById('toggleWrapBtn'),
@@ -66,6 +68,7 @@ export function bindAppShellElements(doc = document) {
66
68
  emptyStateNewFileBtn: doc.getElementById('emptyStateNewFileBtn'),
67
69
  emptyStateSearchBtn: doc.getElementById('emptyStateSearchBtn'),
68
70
  backlinksPanel: doc.getElementById('backlinksPanel'),
71
+ backlinksHeaderPanel: doc.getElementById('backlinksHeaderPanel'),
69
72
  backlinksInlinePanel: doc.getElementById('backlinksInlinePanel'),
70
73
  commentSelectionButton: doc.getElementById('commentSelectionBtn'),
71
74
  commentsDrawer: doc.getElementById('commentsDrawer'),
@@ -291,7 +291,7 @@ export class DiagramPreviewHydrator {
291
291
  this.hydrationInProgress = true;
292
292
  this.renderer.setPhase('hydrating');
293
293
 
294
- let batchContext = null;
294
+ let batchContext;
295
295
  try {
296
296
  batchContext = await this.prepareHydrationBatch(shells);
297
297
  } catch (error) {
@@ -0,0 +1,97 @@
1
+ import yaml from 'js-yaml';
2
+
3
+ import { escapeHtml } from '../domain/vault-utils.js';
4
+
5
+ export { extractYamlFrontmatter } from '../../domain/yaml-frontmatter.js';
6
+
7
+ function isPlainObject(value) {
8
+ return Object.prototype.toString.call(value) === '[object Object]';
9
+ }
10
+
11
+ function isScalarValue(value) {
12
+ return (
13
+ value == null
14
+ || typeof value === 'string'
15
+ || typeof value === 'number'
16
+ || typeof value === 'boolean'
17
+ || value instanceof Date
18
+ );
19
+ }
20
+
21
+ function formatScalarValue(value) {
22
+ if (value instanceof Date) {
23
+ return value.toISOString();
24
+ }
25
+
26
+ if (value == null) {
27
+ return 'null';
28
+ }
29
+
30
+ return String(value);
31
+ }
32
+
33
+ function serializeComplexValue(value) {
34
+ return yaml.dump(value, {
35
+ lineWidth: -1,
36
+ noRefs: true,
37
+ }).trim();
38
+ }
39
+
40
+ function createFrontmatterValueMarkup(value) {
41
+ if (isScalarValue(value)) {
42
+ return `<span class="frontmatter-value-text">${escapeHtml(formatScalarValue(value))}</span>`;
43
+ }
44
+
45
+ if (Array.isArray(value) && value.every((item) => isScalarValue(item))) {
46
+ return `<div class="frontmatter-value-list">${value
47
+ .map((item) => `<span class="frontmatter-value-pill">${escapeHtml(formatScalarValue(item))}</span>`)
48
+ .join('')}</div>`;
49
+ }
50
+
51
+ return `<pre class="frontmatter-value-code"><code>${escapeHtml(serializeComplexValue(value))}</code></pre>`;
52
+ }
53
+
54
+ function createFrontmatterEntries(data) {
55
+ if (isPlainObject(data)) {
56
+ return Object.entries(data);
57
+ }
58
+
59
+ return [['value', data]];
60
+ }
61
+
62
+ function createHiddenSummary(entries) {
63
+ if (entries.length === 0) {
64
+ return 'No properties';
65
+ }
66
+
67
+ return `${entries.length} propert${entries.length === 1 ? 'y' : 'ies'} hidden`;
68
+ }
69
+
70
+ export function renderFrontmatterBlock(frontmatter, {
71
+ collapsed = false,
72
+ interactive = false,
73
+ } = {}) {
74
+ if (!frontmatter) {
75
+ return '';
76
+ }
77
+
78
+ const entries = createFrontmatterEntries(frontmatter.data);
79
+ const collapsedState = interactive && collapsed;
80
+ const sourceAttributes = ` data-source-line="${frontmatter.startLine}" data-source-line-end="${frontmatter.endLine}"${interactive ? ` data-collapsed="${collapsedState ? 'true' : 'false'}"` : ''}`;
81
+ const bodyId = `frontmatter-body-${frontmatter.startLine}-${frontmatter.endLine}`;
82
+ const emptyState = entries.length === 0
83
+ ? '<div class="frontmatter-empty">No properties</div>'
84
+ : '';
85
+ const items = entries.map(([key, value]) => (
86
+ `<div class="frontmatter-property"><dt class="frontmatter-key">${escapeHtml(key)}</dt><dd class="frontmatter-value">${createFrontmatterValueMarkup(value)}</dd></div>`
87
+ )).join('');
88
+ const header = interactive
89
+ ? `<div class="frontmatter-header"><div class="frontmatter-label">Properties</div><button type="button" class="frontmatter-toggle" aria-controls="${bodyId}" aria-expanded="${collapsedState ? 'false' : 'true'}">${collapsedState ? 'Show' : 'Hide'}</button></div>`
90
+ : '<div class="frontmatter-label">Properties</div>';
91
+ const summary = interactive
92
+ ? `<div class="frontmatter-summary"${collapsedState ? '' : ' hidden'}>${escapeHtml(createHiddenSummary(entries))}</div>`
93
+ : '';
94
+ const bodyAttributes = ` class="frontmatter-content"${interactive ? ` id="${bodyId}"` : ''}${collapsedState ? ' hidden' : ''}`;
95
+
96
+ return `<section class="frontmatter-block"${sourceAttributes}>${header}${summary}<div${bodyAttributes}><dl class="frontmatter-properties">${items}</dl>${emptyState}</div></section>`;
97
+ }