collabmd 0.1.26 → 0.1.29
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.
- package/README.md +27 -6
- package/dist/client/assets/{CodeMirrorEditor-UCMRAMCV-C5yVpm45.js → CodeMirrorEditor-UCMRAMCV-9k1Shd4H.js} +1 -1
- package/dist/client/assets/{_basePickBy-Dr0N-hVE.js → _basePickBy-B6kIfhzj.js} +1 -1
- package/dist/client/assets/{_baseUniq-BddJc3B1.js → _baseUniq-Bbn0_sHS.js} +1 -1
- package/dist/client/assets/actions-XO29hEzr.css +1 -0
- package/dist/client/assets/{ar-SA-NXDWD63E-C3GLfrYV.js → ar-SA-NXDWD63E-BWO5oYxe.js} +1 -1
- package/dist/client/assets/{arc-fx_D7wYg.js → arc-BIqum3oD.js} +1 -1
- package/dist/client/assets/architecture-PBZL5I3N-iRyVT2GQ.js +1 -0
- package/dist/client/assets/{architectureDiagram-2XIMDMQ5-T__yxKk2.js → architectureDiagram-2XIMDMQ5-Bhh8YQHn.js} +1 -1
- package/dist/client/assets/{az-AZ-MXSORGZV-BJ2t-y-C.js → az-AZ-MXSORGZV-Cfw6Z5oY.js} +1 -1
- package/dist/client/assets/base-B5gONpJK.css +1 -0
- package/dist/client/assets/base-r5Zg2n3k.js +1 -0
- package/dist/client/assets/{bg-BG-O6MV2KSF-Cd3kEZI-.js → bg-BG-O6MV2KSF-CQmG3YpD.js} +1 -1
- package/dist/client/assets/{blockDiagram-WCTKOSBZ-BivLpsk_.js → blockDiagram-WCTKOSBZ-0rR9ivwb.js} +1 -1
- package/dist/client/assets/{bn-IN-MMW2ORAC-Dn9W9dUT.js → bn-BD-T2VJNT7N-C4S6DZ6o.js} +1 -1
- package/dist/client/assets/{bn-BD-T2VJNT7N-BFCx9nbZ.js → bn-IN-MMW2ORAC-DZKVshfk.js} +1 -1
- package/dist/client/assets/{c4Diagram-IC4MRINW-nVzPTZmV.js → c4Diagram-IC4MRINW-DHwxcDlQ.js} +1 -1
- package/dist/client/assets/{ca-ES-MKBCGNOG-D_BNlrmg.js → ca-ES-MKBCGNOG-Do3aMgyu.js} +1 -1
- package/dist/client/assets/channel-s0w88EQN.js +1 -0
- package/dist/client/assets/{chunk-27N2SPOM-CyIruM79.js → chunk-27N2SPOM-DbHKsQ_j.js} +4 -4
- package/dist/client/assets/{chunk-4BX2VUAB-n_yl-toC.js → chunk-4BX2VUAB-BqEY6cCE.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-CJ9i_5Da.js → chunk-55IACEB6-039iVf6v.js} +1 -1
- package/dist/client/assets/{chunk-7E7YKBS2-CebEBDsj.js → chunk-7E7YKBS2-BreG0gYL.js} +1 -1
- package/dist/client/assets/{chunk-7R4GIKGN-BXNhzFkP.js → chunk-7R4GIKGN-BMrp52Pk.js} +2 -2
- package/dist/client/assets/{chunk-C72U2L5F-Cck8MvGP.js → chunk-C72U2L5F-BLB26v5d.js} +1 -1
- package/dist/client/assets/{chunk-EGIJ26TM-BDQ7tRV-.js → chunk-EGIJ26TM-fG-0Yh0k.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-DAcjCJR-.js → chunk-FMBD7UC4-EWK5Pt4D.js} +1 -1
- package/dist/client/assets/{chunk-GEFDOKGD-CYSNVsp-.js → chunk-GEFDOKGD-DYHmaq-c.js} +1 -1
- package/dist/client/assets/chunk-GLR3WWYH-ZnuaBvXp.js +2 -0
- package/dist/client/assets/chunk-HHEYEP7N-DOQ0PCdH.js +1 -0
- package/dist/client/assets/{chunk-JSJVCQXG-CLgStmEI.js → chunk-JSJVCQXG-B69YGtcQ.js} +1 -1
- package/dist/client/assets/{chunk-KX2RTZJC-B__vUl1o.js → chunk-KX2RTZJC-tuEC7hg1.js} +1 -1
- package/dist/client/assets/{chunk-KYZI473N-BpfobHkp.js → chunk-KYZI473N-D4r5eMJZ.js} +1 -1
- package/dist/client/assets/{chunk-L3YUKLVL-B7jdwbRL.js → chunk-L3YUKLVL-CD9nJYL8.js} +1 -1
- package/dist/client/assets/{chunk-MX3YWQON-DNcuP5dS.js → chunk-MX3YWQON-DqN0TF5Q.js} +1 -1
- package/dist/client/assets/{chunk-NQ4KR5QH-oaq5iS2W.js → chunk-NQ4KR5QH-BCjGNd0g.js} +1 -1
- package/dist/client/assets/{chunk-O4XLMI2P-NI4OcSZ6.js → chunk-O4XLMI2P-DaS3COAu.js} +1 -1
- package/dist/client/assets/{chunk-OZEHJAEY-BevHLeQ0.js → chunk-OZEHJAEY-BaBXI-8x.js} +1 -1
- package/dist/client/assets/{chunk-PQ6SQG4A-fQ_Oml5n.js → chunk-PQ6SQG4A-BY9_Srs_.js} +1 -1
- package/dist/client/assets/{chunk-PU5JKC2W-Bp4H-mwZ.js → chunk-PU5JKC2W-t0zUh6E3.js} +1 -1
- package/dist/client/assets/chunk-QZHKN3VN-B0v4d-CS.js +1 -0
- package/dist/client/assets/{chunk-R5LLSJPH-CZzZlfdI.js → chunk-R5LLSJPH-BjSMFnTi.js} +1 -1
- package/dist/client/assets/{chunk-SRAX5OIU-CtUYAya6.js → chunk-SRAX5OIU-CC2mobFL.js} +1 -1
- package/dist/client/assets/{chunk-WL4C6EOR-DnV9nMco.js → chunk-WL4C6EOR-OuH0lN6M.js} +1 -1
- package/dist/client/assets/{chunk-XIRO2GV7-BnkmoLpc.js → chunk-XIRO2GV7-2tirYN5A.js} +1 -1
- package/dist/client/assets/{chunk-XPW4576I-DOk6pMat.js → chunk-XPW4576I-C0GpOUHf.js} +1 -1
- package/dist/client/assets/{chunk-XZSTWKYB-DZzfqgVn.js → chunk-XZSTWKYB-DDkpyNVE.js} +1 -1
- package/dist/client/assets/{chunk-YBOYWFTD-CrI5WFnC.js → chunk-YBOYWFTD-CzyyfGQX.js} +1 -1
- package/dist/client/assets/{chunk-Z5NKEFVG-EGvolisB.js → chunk-Z5NKEFVG-Dgem5v98.js} +1 -1
- package/dist/client/assets/classDiagram-VBA2DB6C-Bpdym3dj.js +1 -0
- package/dist/client/assets/classDiagram-v2-RAHNMMFH-CRAsdVDB.js +1 -0
- package/dist/client/assets/clone-C-n46MFF.js +1 -0
- package/dist/client/assets/controls-CLpueX2m.css +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-PcMOD_rX.js → cose-bilkent-S5V4N54A-jZzFUguD.js} +1 -1
- package/dist/client/assets/{cs-CZ-V77HGUP7-gpioT6mv.js → cs-CZ-V77HGUP7-DmZRJ2UO.js} +1 -1
- package/dist/client/assets/{da-DK-I5RFNTM4-CVv-_qu9.js → da-DK-I5RFNTM4-CRIiLQ-G.js} +1 -1
- package/dist/client/assets/{dagre-KLK3FWXG-Ct1xwvCC.js → dagre-KLK3FWXG-CXSnjrX-.js} +1 -1
- package/dist/client/assets/{dagre-BD9xHP_z.js → dagre-fvYjRtTE.js} +1 -1
- package/dist/client/assets/{de-CH-WLRDEVBV-CL0gsFEp.js → de-CH-WLRDEVBV-k728UA4j.js} +1 -1
- package/dist/client/assets/{de-DE-DTI4WUSC-BQO1SHIK.js → de-DE-DTI4WUSC-MFge9MC3.js} +1 -1
- package/dist/client/assets/{diagram-E7M64L7V-DkHzt94k.js → diagram-E7M64L7V-De0StFef.js} +1 -1
- package/dist/client/assets/{diagram-IFDJBPK2-D4g8afpU.js → diagram-IFDJBPK2-B2m6AJbU.js} +1 -1
- package/dist/client/assets/{diagram-P4PSJMXO-DVwwx6ED.js → diagram-P4PSJMXO-YBWLVENw.js} +1 -1
- package/dist/client/assets/{dist-DzArd_Bk.js → dist-A0eSMIyy.js} +1 -1
- package/dist/client/assets/{dist-lbtQBzLu.js → dist-BNcU46Ik.js} +1 -1
- package/dist/client/assets/{dist-B2pRSR5A.js → dist-BOrlJDrR.js} +1 -1
- package/dist/client/assets/dist-BUEzOS23.js +1 -0
- package/dist/client/assets/{dist-BQhICHxD.js → dist-Bay3vk5z.js} +1 -1
- package/dist/client/assets/{dist-DhzldYic.js → dist-BbKpzsTB.js} +1 -1
- package/dist/client/assets/{dist-60g3bzYH.js → dist-BchrxlnW.js} +1 -1
- package/dist/client/assets/dist-BflL-_8D.js +1 -0
- package/dist/client/assets/{dist-Ciw3BJA2.js → dist-CEYpWxod.js} +1 -1
- package/dist/client/assets/{dist-CvMToPSN.js → dist-CEtbxXlI.js} +1 -1
- package/dist/client/assets/{dist-_L_gn5XE.js → dist-CI_qEj5K.js} +1 -1
- package/dist/client/assets/{dist-D2m8lD1h.js → dist-CMHIjMVe.js} +1 -1
- package/dist/client/assets/{dist-2HWwyMLA.js → dist-Cdzvi8cf.js} +1 -1
- package/dist/client/assets/{dist-BiFbHWxc.js → dist-CsYRf4AV.js} +1 -1
- package/dist/client/assets/{dist-fkQ6urpt.js → dist-Ct1bmQnL.js} +1 -1
- package/dist/client/assets/{dist-BlhsMbAl.js → dist-CtFNDttZ.js} +1 -1
- package/dist/client/assets/{dist-EPRNBXHp.js → dist-D-gRgZ6e.js} +1 -1
- package/dist/client/assets/{dist-WrbPKwPQ.js → dist-D0e6Qsad.js} +1 -1
- package/dist/client/assets/{dist-Q6uG0wie.js → dist-D9c0A4Uh.js} +1 -1
- package/dist/client/assets/{dist-BZc5d15t.js → dist-DS6mEQYy.js} +1 -1
- package/dist/client/assets/dist-DS_4VpEd.js +1 -0
- package/dist/client/assets/{dist-DAwSRqIJ.js → dist-DbhQ5ANS.js} +1 -1
- package/dist/client/assets/{dist-U9MIFRLF.js → dist-DnrO-JZd.js} +1 -1
- package/dist/client/assets/{dist-DrNF924C.js → dist-DveOCUUJ.js} +1 -1
- package/dist/client/assets/{dist-CLsz2DCg.js → dist-DwsFUbuB.js} +1 -1
- package/dist/client/assets/dist-VCYAp958.js +1 -0
- package/dist/client/assets/{dist-DZD5y4h6.js → dist-Yxt8txtM.js} +1 -1
- package/dist/client/assets/{dist-BdtPRC1F.js → dist-npxgF_6V.js} +1 -1
- package/dist/client/assets/{dist-a6bFAbQd.js → dist-u0zDRMQt.js} +1 -1
- package/dist/client/assets/{dockerfile-Ci0-ApQC.js → dockerfile-C0qQqxf9.js} +1 -1
- package/dist/client/assets/drawio-editor-CgbaOvpF.js +9 -0
- package/dist/client/assets/drawio-editor-UQQ8XHou.css +1 -0
- package/dist/client/assets/drawioEditor-Eb2yYhjE.js +2 -0
- package/dist/client/assets/editor-session-DFzBn4RY.js +16 -0
- package/dist/client/assets/{el-GR-ZXDJ2OS4-DGa9DqWI.js → el-GR-ZXDJ2OS4-Bbz93mrG.js} +1 -1
- package/dist/client/assets/embedded-editor-base-DXRHYz6R.css +1 -0
- package/dist/client/assets/{en-CTDJDZ6K-DC-4I8h8.js → en-CTDJDZ6K-BHbXrqU0.js} +1 -1
- package/dist/client/assets/{erDiagram-INFDFZHY-Dnub3poK.js → erDiagram-INFDFZHY-DP3f20BF.js} +1 -1
- package/dist/client/assets/{es-ES-DYQHAD43-Cox3GUnj.js → es-ES-DYQHAD43-CReXU-Nn.js} +1 -1
- package/dist/client/assets/{eu-ES-QDSYU5Y3-DrPM2uSX.js → eu-ES-QDSYU5Y3-jRpcaWwz.js} +1 -1
- package/dist/client/assets/{excalidraw-editor-D8O7A69r.css → excalidraw-editor-Bat1FRoT.css} +1 -1
- package/dist/client/assets/excalidraw-editor-Dj0c0PO6.js +9 -0
- package/dist/client/assets/{excalidraw-mermaid-stub-LpuTrLnr.js → excalidraw-mermaid-stub-efoh2lJm.js} +1 -1
- package/dist/client/assets/excalidraw-scene-CixfM-jL.js +174 -0
- package/dist/client/assets/excalidrawEditor-diK4VITg.js +2 -0
- package/dist/client/assets/export-page-CUOMczdp.js +39 -0
- package/dist/client/assets/exportDocument-BM4_f2n8.js +2 -0
- package/dist/client/assets/exportDocument-CLPYN_gg.css +1 -0
- package/dist/client/assets/{fa-IR-26LZG4PM-ViTdxAWX.js → fa-IR-26LZG4PM-DP8pJ8e3.js} +1 -1
- package/dist/client/assets/{factor-DMvifS-k.js → factor-2uy-lXe_.js} +1 -1
- package/dist/client/assets/{fi-FI-6YS4KDE4-BTBRGd69.js → fi-FI-6YS4KDE4-BLUDpNOj.js} +1 -1
- package/dist/client/assets/{flowDiagram-PKNHOUZH-DF4dDV_8.js → flowDiagram-PKNHOUZH-CRbK5_5h.js} +1 -1
- package/dist/client/assets/{fr-FR-BRLLPTZC-z-POHcHJ.js → fr-FR-BRLLPTZC-BoZz3Pi8.js} +1 -1
- package/dist/client/assets/{ganttDiagram-A5KZAMGK-CwrN53Gu.js → ganttDiagram-A5KZAMGK-R-AMIgxR.js} +1 -1
- package/dist/client/assets/gitGraph-HDMCJU4V-kkuqHGSM.js +1 -0
- package/dist/client/assets/{gitGraphDiagram-K3NZZRJ6-BV9w0K-N.js → gitGraphDiagram-K3NZZRJ6-CIPit_Sh.js} +1 -1
- package/dist/client/assets/{gl-ES-OKUZTLYG-BQtfDFNk.js → gl-ES-OKUZTLYG-CaEvhjDi.js} +1 -1
- package/dist/client/assets/{graphlib-B7v-yqry.js → graphlib-DSzYgMXB.js} +1 -1
- package/dist/client/assets/{he-IL-26MGYIU7-Dyw-xS4W.js → he-IL-26MGYIU7-DYOchgy9.js} +1 -1
- package/dist/client/assets/{hi-IN-Q4ZOGTP2-BqENUkZA.js → hi-IN-Q4ZOGTP2-yRs8g46n.js} +1 -1
- package/dist/client/assets/{hu-HU-P2OXPSN5-D1HGK0_M.js → hu-HU-P2OXPSN5-1skPmtgc.js} +1 -1
- package/dist/client/assets/{id-ID-2EIKXYN6-BEjyfllL.js → id-ID-2EIKXYN6-iUugQJd9.js} +1 -1
- package/dist/client/assets/image-32MOCVDX-BB6utPzr.js +1 -0
- package/dist/client/assets/index-BOOhEiLo.css +1 -0
- package/dist/client/assets/index-CVgVzuh6.js +2 -0
- package/dist/client/assets/info-3K5VOQVL-DPN78whf.js +1 -0
- package/dist/client/assets/infoDiagram-LFFYTUFH-CF8jXFTm.js +2 -0
- package/dist/client/assets/{isEmpty-CLDc0Kt_.js → isEmpty-C7iPDOO3.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-PHBUUO56-CmO_FyHY.js → ishikawaDiagram-PHBUUO56-BDVPgkv4.js} +1 -1
- package/dist/client/assets/{it-IT-4CFKVXI2-C24G-VcQ.js → it-IT-4CFKVXI2-a5DFhzuI.js} +1 -1
- package/dist/client/assets/{ja-JP-MAND2Z4V-DLhvsdYk.js → ja-JP-MAND2Z4V-DwogHVKd.js} +1 -1
- package/dist/client/assets/javascript-8DvdgifH.js +1 -0
- package/dist/client/assets/{journeyDiagram-4ABVD52K-DF4HAYLk.js → journeyDiagram-4ABVD52K-DtNnwL48.js} +1 -1
- package/dist/client/assets/{jsx-runtime-DJkgQklN.js → jsx-runtime-B8dyIONw.js} +1 -1
- package/dist/client/assets/{kaa-HQRTCXTJ-DC8l3BuJ.js → kaa-HQRTCXTJ-p81XNRfH.js} +1 -1
- package/dist/client/assets/{kab-KAB-JKIKKTGH-DVFog4hd.js → kab-KAB-JKIKKTGH-mV5VzQZc.js} +1 -1
- package/dist/client/assets/{kanban-definition-K7BYSVSG-nQoJJABn.js → kanban-definition-K7BYSVSG-C565sUNo.js} +1 -1
- package/dist/client/assets/{kk-KZ-HXQ63ZFC-CULUfwMg.js → kk-KZ-HXQ63ZFC-IIPX0GQv.js} +1 -1
- package/dist/client/assets/{km-KH-PKL3LSGX-CnLlEv7i.js → km-KH-PKL3LSGX-D7WQFJuZ.js} +1 -1
- package/dist/client/assets/{ko-KR-KXLREZX3-DNKXAYCx.js → ko-KR-KXLREZX3-Bs1oLtJs.js} +1 -1
- package/dist/client/assets/{ku-TR-MJ4IER3X-DLUiMa4h.js → ku-TR-MJ4IER3X-DlxOs6aZ.js} +1 -1
- package/dist/client/assets/{line-DvLjT0Gv.js → line-D57TbKb7.js} +1 -1
- package/dist/client/assets/{linear-CEb8O7zv.js → linear-BIf852wI.js} +1 -1
- package/dist/client/assets/{lt-LT-H6WFQ6FJ-CoFiurzb.js → lt-LT-H6WFQ6FJ-xuo-3zKH.js} +1 -1
- package/dist/client/assets/{lv-LV-GOCK6SJW-DzeEvHxX.js → lv-LV-GOCK6SJW-C7S3M1nr.js} +1 -1
- package/dist/client/assets/main-C8adLQnt.js +1174 -0
- package/dist/client/assets/{mermaid-parser.core-DllATXd7.js → mermaid-parser.core-By_5k2SF.js} +2 -2
- package/dist/client/assets/{mermaid-runtime-DbCLD8Ih.js → mermaid-runtime-DqncQoYK.js} +3 -3
- package/dist/client/assets/{mindmap-definition-YRQLILUH-DaMULsE9.js → mindmap-definition-YRQLILUH-BbYzGfTD.js} +1 -1
- package/dist/client/assets/{mr-IN-IXVLDMEQ-C5i5R9H5.js → mr-IN-IXVLDMEQ-BsoowyZT.js} +1 -1
- package/dist/client/assets/{my-MM-YG6MYTTD-DvwceqO-.js → my-MM-YG6MYTTD-DCqwN_K_.js} +1 -1
- package/dist/client/assets/navigation-Du6CLhvs.css +1 -0
- package/dist/client/assets/{nb-NO-XGWJISD2-BUhX8hX0.js → nb-NO-XGWJISD2-CZ5ytLgj.js} +1 -1
- package/dist/client/assets/{nl-NL-XVDVCPNC-BV6Y0-Q0.js → nl-NL-XVDVCPNC-wADsdb-h.js} +1 -1
- package/dist/client/assets/{nn-NO-EMX5MJX5-CF_bB9Jq.js → nn-NO-EMX5MJX5-D9zIKTL2.js} +1 -1
- package/dist/client/assets/{nsis-42hkxqLx.js → nsis-CUd4RnvJ.js} +1 -1
- package/dist/client/assets/{oc-FR-ROEINTVO-CiNI8fg8.js → oc-FR-ROEINTVO-BSbBugJB.js} +1 -1
- package/dist/client/assets/{ordinal-fW5lWpNM.js → ordinal-B0PAtOQ6.js} +1 -1
- package/dist/client/assets/{pa-IN-ZYN6SUDY-CsbIU150.js → pa-IN-ZYN6SUDY-1pFA_3Pb.js} +1 -1
- package/dist/client/assets/packet-RMMSAZCW-BymvQ5cQ.js +1 -0
- package/dist/client/assets/percentages-5DKR754L-CiI2D7zA.js +1 -0
- package/dist/client/assets/{pica-BbcTjVoI.js → pica-By-YDy_B.js} +1 -1
- package/dist/client/assets/pie-UPGHQEXC-MmzJzWOE.js +1 -0
- package/dist/client/assets/{pieDiagram-SKSYHLDU-BPFp1WBd.js → pieDiagram-SKSYHLDU-CAU_gC7U.js} +1 -1
- package/dist/client/assets/{pl-PL-6VTG7PHC-D1Nnx7R3.js → pl-PL-6VTG7PHC-DyYw0u_z.js} +1 -1
- package/dist/client/assets/preview-diagram-utils-Dc83ucbv.js +1 -0
- package/dist/client/assets/preview-render-compiler-CVfDHnqM.js +1 -0
- package/dist/client/assets/preview-render-compiler-CapHJDHT.js +1 -0
- package/dist/client/assets/{preview-render-profile-DQsam_Ol.js → preview-render-profile-DPzmho7I.js} +1 -1
- package/dist/client/assets/{preview-render-worker-CcASh3y3.js → preview-render-worker-wMS710Bv.js} +1 -1
- package/dist/client/assets/{pt-BR-5YFKRR5G-DEDTeWEP.js → pt-BR-5YFKRR5G-DJCCBBDl.js} +1 -1
- package/dist/client/assets/{pt-PT-GEIXXZ67-BpqPVZom.js → pt-PT-GEIXXZ67-BPJd09Ax.js} +1 -1
- package/dist/client/assets/{pug-BANqyQJ9.js → pug-BqBF8qF7.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-337W2JSQ-DjPGrcJM.js → quadrantDiagram-337W2JSQ-DhlKLozd.js} +1 -1
- package/dist/client/assets/{quick-switcher-controller-n6Jhu3Z9.js → quick-switcher-controller-DplOTsT3.js} +1 -1
- package/dist/client/assets/radar-KQ55EAFF-CCohASSY.js +1 -0
- package/dist/client/assets/{requirementDiagram-Z7DCOOCP-BmiYAMKV.js → requirementDiagram-Z7DCOOCP-B7ZOMsIb.js} +1 -1
- package/dist/client/assets/{ro-RO-E2P6TFZI-4vRM1jVT.js → ro-RO-E2P6TFZI-DWVyTV7V.js} +1 -1
- package/dist/client/assets/{room-DyhEnogt.js → room-B0UGbzQj.js} +1 -1
- package/dist/client/assets/{ru-RU-YBIIY43T-Cfbhz4Ew.js → ru-RU-YBIIY43T-Dyar7CYM.js} +1 -1
- package/dist/client/assets/runtime-config-CqX_f_Q4.js +1 -0
- package/dist/client/assets/{sankeyDiagram-WA2Y5GQK-BEoPAlcC.js → sankeyDiagram-WA2Y5GQK-CXRga6Op.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-2WXFIKYE-BXqojuDS.js → sequenceDiagram-2WXFIKYE-CeSFlFx5.js} +1 -1
- package/dist/client/assets/{si-LK-673C2CI2-0muNkOEn.js → si-LK-673C2CI2-C61aLrIy.js} +1 -1
- package/dist/client/assets/{sk-SK-CKZHQ4AP-EnLgxyJL.js → sk-SK-CKZHQ4AP-BlFwOxRD.js} +1 -1
- package/dist/client/assets/{sl-SI-557H2GWM-BN6npqVj.js → sl-SI-557H2GWM-DcAVW-_t.js} +1 -1
- package/dist/client/assets/{src-DUDi_GeV.js → src-E3c2cohN.js} +1 -1
- package/dist/client/assets/{stateDiagram-RAJIS63D-DTR2sQs8.js → stateDiagram-RAJIS63D-CPoSrNwn.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-FVOUBMTO-5GW0Y21a.js +1 -0
- package/dist/client/assets/states-P2LsGDDn.css +1 -0
- package/dist/client/assets/subset-shared.chunk-CC_u8ICU.js +1 -0
- package/dist/client/assets/{subset-worker.chunk-1FoL7eL0.js → subset-worker.chunk-DVGT6bvR.js} +1 -1
- package/dist/client/assets/{sv-SE-XOPKKDWS-D3VSs2SQ.js → sv-SE-XOPKKDWS-BkhfOHzh.js} +1 -1
- package/dist/client/assets/{ta-IN-XBH7DQI3-BKR1mqfo.js → ta-IN-XBH7DQI3-BIfwglZa.js} +1 -1
- package/dist/client/assets/{th-TH-TOCWH3R4-Bek1dQcW.js → th-TH-TOCWH3R4-CkrxqVkf.js} +1 -1
- package/dist/client/assets/{timeline-definition-YZTLITO2-BP09qqIh.js → timeline-definition-YZTLITO2-BXBHNWLQ.js} +1 -1
- package/dist/client/assets/{tr-TR-GXW6CYY5-xdLb7Dgi.js → tr-TR-GXW6CYY5-CDdvG9rD.js} +1 -1
- package/dist/client/assets/treemap-KZPCXAKY-9kxB0uNY.js +1 -0
- package/dist/client/assets/{uk-UA-IJKTNUDG-Cd0AhTti.js → uk-UA-IJKTNUDG-DRHp0lWp.js} +1 -1
- package/dist/client/assets/{uz-UZ-TBZZEA4V-DQH4e-QC.js → uz-UZ-TBZZEA4V-BIn-VE3Y.js} +1 -1
- package/dist/client/assets/vault-api-client-DIaCC56H.js +1 -0
- package/dist/client/assets/vault-api-client-De7kMvrE.css +1 -0
- package/dist/client/assets/{vennDiagram-LZ73GAT5-BvSlhnT0.js → vennDiagram-LZ73GAT5-Cs9aQmVM.js} +1 -1
- package/dist/client/assets/{vi-VN-MULSGNVB-BYDcPrAo.js → vi-VN-MULSGNVB-Du7t5I0v.js} +1 -1
- package/dist/client/assets/{xychartDiagram-JWTSCODW-BvZ78F0j.js → xychartDiagram-JWTSCODW-B40ybbzC.js} +1 -1
- package/dist/client/assets/yjs-provider-reset-guard-DUP9XupO.js +4 -0
- package/dist/client/assets/{zh-CN-MVX3E32U-BqZQ-18-.js → zh-CN-MVX3E32U-RcjS3rjt.js} +1 -1
- package/dist/client/assets/{zh-HK-JNU5RLIE-CbF8Agwa.js → zh-HK-JNU5RLIE-g8UeEw5v.js} +1 -1
- package/dist/client/assets/{zh-TW-LENVCA6T-CepoVycx.js → zh-TW-LENVCA6T-DwV25BqC.js} +1 -1
- package/dist/client/drawio-editor.html +4 -26
- package/dist/client/excalidraw-editor.html +4 -19
- package/dist/client/export-document.html +29 -0
- package/dist/client/index.html +7 -445
- package/package.json +4 -2
- package/src/client/app/drawio-editor.html +1 -23
- package/src/client/app/excalidraw-editor.html +1 -16
- package/src/client/app/export-document-entry.js +25 -0
- package/src/client/app/export-document.html +24 -0
- package/src/client/app/index.html +1 -441
- package/src/client/app/main-entry.js +2 -0
- package/src/client/application/app-shell/export-feature.js +39 -0
- package/src/client/application/app-shell/ui-feature-shell.js +65 -16
- package/src/client/application/app-shell/ui-feature-toolbar.js +1 -1
- package/src/client/application/app-shell/workspace-feature.js +31 -3
- package/src/client/application/app-shell-elements.js +3 -0
- package/src/client/application/preview-render-compiler.js +6 -3
- package/src/client/application/workspace-chrome-controller.js +3 -1
- package/src/client/application/workspace-coordinator.js +8 -1
- package/src/client/application/workspace-preview-controller.js +8 -3
- package/src/client/application/workspace-state-store.js +1 -0
- package/src/client/bootstrap/collabmd-app-shell.js +8 -1
- package/src/client/drawio-editor.js +4 -1
- package/src/client/excalidraw-editor.js +8 -0
- package/src/client/export/export-host.js +193 -0
- package/src/client/export/export-page.js +60 -0
- package/src/client/export/export-pipeline.js +1410 -0
- package/src/client/export/export-print-layout.js +50 -0
- package/src/client/infrastructure/auth-client.js +2 -203
- package/src/client/infrastructure/editor-session.js +8 -0
- package/src/client/infrastructure/editor-view-adapter.js +34 -0
- package/src/client/presentation/app-shell-renderer.js +13 -0
- package/src/client/presentation/app-shell-template.js +590 -0
- package/src/client/presentation/comment-ui/comment-ui-card.js +32 -10
- package/src/client/presentation/comments-panel.js +5 -3
- package/src/client/presentation/components/ui/badge.js +24 -0
- package/src/client/presentation/components/ui/button.js +78 -0
- package/src/client/presentation/components/ui/class-names.js +30 -0
- package/src/client/presentation/components/ui/ensure-ui-component-styles.js +18 -0
- package/src/client/presentation/components/ui/input.js +9 -0
- package/src/client/presentation/components/ui/segmented-control.js +31 -0
- package/src/client/presentation/create-menu-presenter.js +10 -2
- package/src/client/presentation/drawio-embed-controller.js +190 -31
- package/src/client/presentation/file-action-controller.js +4 -4
- package/src/client/presentation/file-explorer-view.js +9 -2
- package/src/client/presentation/file-history-view-controller.js +4 -3
- package/src/client/presentation/git-diff-view-controller.js +2 -1
- package/src/client/presentation/git-panel-controller.js +10 -8
- package/src/client/presentation/layout-controller.js +34 -4
- package/src/client/styles/components/actions.css +6 -0
- package/src/client/styles/components/navigation.css +1 -0
- package/src/client/styles/export-document.css +250 -0
- package/src/client/styles/features/auth-gate.css +182 -0
- package/src/client/styles/features/diagram-preview.css +66 -9
- package/src/client/styles/features/git-branch.css +30 -2
- package/src/client/styles/features/preview-markdown.css +7 -4
- package/src/client/styles/layout/editor-page.css +95 -3
- package/src/client/styles/layout/responsive.css +17 -7
- package/src/client/styles/layout/sidebar.css +1 -1
- package/src/client/styles/primitives/controls.css +22 -31
- package/src/client/styles/style.css +0 -4
- package/src/client/styles/surfaces/drawio-editor.css +104 -0
- package/src/client/styles/surfaces/embedded-editor-base.css +23 -0
- package/src/client/styles/surfaces/excalidraw-editor.css +16 -0
- package/src/server/create-app-server.js +3 -0
- package/src/server/domain/docx-exporter.js +62 -0
- package/src/server/infrastructure/http/create-request-handler.js +2 -0
- package/src/server/infrastructure/http/create-vault-api-command-handler.js +59 -1
- package/src/server/infrastructure/http/create-vault-api-handler.js +2 -0
- package/src/server/infrastructure/http/request-body.js +2 -2
- package/dist/client/assets/architecture-PBZL5I3N-C1Yv7agI.js +0 -1
- package/dist/client/assets/channel-DBZin7O0.js +0 -1
- package/dist/client/assets/chunk-GLR3WWYH-FplqAopN.js +0 -2
- package/dist/client/assets/chunk-HHEYEP7N-Bv_FKHmu.js +0 -1
- package/dist/client/assets/chunk-QZHKN3VN-Blawx8vd.js +0 -1
- package/dist/client/assets/classDiagram-VBA2DB6C-CreQafQu.js +0 -1
- package/dist/client/assets/classDiagram-v2-RAHNMMFH-BIYHzbiv.js +0 -1
- package/dist/client/assets/clone-C3ajWNce.js +0 -1
- package/dist/client/assets/dist-BS6yAJ9F.js +0 -1
- package/dist/client/assets/dist-BUnp4fHW.js +0 -1
- package/dist/client/assets/dist-BWEDjv8G.js +0 -1
- package/dist/client/assets/dist-naAaVPPS.js +0 -1
- package/dist/client/assets/drawio-editor-BW2z4NH2.js +0 -9
- package/dist/client/assets/drawioEditor-DgoA4Zqi.js +0 -2
- package/dist/client/assets/editor-session-xPvmulmt.js +0 -16
- package/dist/client/assets/excalidraw-editor-BAYca95w.js +0 -182
- package/dist/client/assets/excalidrawEditor-BY5rq_Bn.js +0 -2
- package/dist/client/assets/gitGraph-HDMCJU4V-DbS2XnWK.js +0 -1
- package/dist/client/assets/image-32MOCVDX-BBXPyAeU.js +0 -1
- package/dist/client/assets/index-C95nV7Tl.css +0 -1
- package/dist/client/assets/index-GE56R5t4.js +0 -2
- package/dist/client/assets/info-3K5VOQVL-Bre4VStM.js +0 -1
- package/dist/client/assets/infoDiagram-LFFYTUFH-CuUbZqrG.js +0 -2
- package/dist/client/assets/javascript-DdEc60Aj.js +0 -1
- package/dist/client/assets/main-AejRWvom.js +0 -600
- package/dist/client/assets/packet-RMMSAZCW-B7lnOkip.js +0 -1
- package/dist/client/assets/percentages-5DKR754L-Dp1vwDEq.js +0 -1
- package/dist/client/assets/pie-UPGHQEXC-D0gHdMgb.js +0 -1
- package/dist/client/assets/preview-render-compiler-BYiRMsPq.js +0 -1
- package/dist/client/assets/radar-KQ55EAFF-D48du2CB.js +0 -1
- package/dist/client/assets/stateDiagram-v2-FVOUBMTO-BwVII-kJ.js +0 -1
- package/dist/client/assets/subset-shared.chunk-C6pUl_Oh.js +0 -1
- package/dist/client/assets/treemap-KZPCXAKY-BBRObSiT.js +0 -1
- package/dist/client/assets/vault-api-client-fFJfUVXM.js +0 -188
- package/dist/client/assets/yjs-provider-reset-guard-Cj00kgyM.js +0 -4
- /package/dist/client/assets/{apl-CJPt5sW7.js → apl-QJCYYBkj.js} +0 -0
- /package/dist/client/assets/{array-e43ctQmx.js → array-DwdVlTkF.js} +0 -0
- /package/dist/client/assets/{asciiarmor-D0oCypDs.js → asciiarmor-DNy0UPqh.js} +0 -0
- /package/dist/client/assets/{asn1-8xgVfRoq.js → asn1-CNPXj-s7.js} +0 -0
- /package/dist/client/assets/{asterisk-B5kv5AQp.js → asterisk-BwMdLpT2.js} +0 -0
- /package/dist/client/assets/{brainfuck-Dh7M1Ucz.js → brainfuck-C2gHT8aA.js} +0 -0
- /package/dist/client/assets/{chunk-3PELD44J-D4qJ8fq7.js → chunk-3PELD44J-CL87tpFo.js} +0 -0
- /package/dist/client/assets/{chunk-A66AFZZU-CJuwmF1m.js → chunk-A66AFZZU-DuceaGnc.js} +0 -0
- /package/dist/client/assets/{chunk-D-fkvfCP.js → chunk-DpHwWhuW.js} +0 -0
- /package/dist/client/assets/{chunk-ETSVUAFD-C8C1JDu2.js → chunk-ETSVUAFD-CN-gPl_j.js} +0 -0
- /package/dist/client/assets/{clike-zYz_LEkw.js → clike-D5X7HJpo.js} +0 -0
- /package/dist/client/assets/{clojure-CdWlIeQh.js → clojure-BEDKZv_5.js} +0 -0
- /package/dist/client/assets/{cmake-wWuF5ifR.js → cmake-Y3shE7av.js} +0 -0
- /package/dist/client/assets/{cobol-D3WLbLVy.js → cobol-f-3TLk62.js} +0 -0
- /package/dist/client/assets/{coffeescript-DRtt-5a2.js → coffeescript-C0XA9-xa.js} +0 -0
- /package/dist/client/assets/{commonlisp-DJV75lsU.js → commonlisp-BOB6sIEu.js} +0 -0
- /package/dist/client/assets/{crystal-C7mEw92C.js → crystal-ByNgE_My.js} +0 -0
- /package/dist/client/assets/{css-_6KgQwpu.js → css-eaI-ENiR.js} +0 -0
- /package/dist/client/assets/{cypher-B3uWx7jm.js → cypher-CQ-dGGSi.js} +0 -0
- /package/dist/client/assets/{cytoscape.esm-BbbuX1pV.js → cytoscape.esm-DBDRhUia.js} +0 -0
- /package/dist/client/assets/{d-D3kOh3JF.js → d-D9pnu4Cr.js} +0 -0
- /package/dist/client/assets/{defaultLocale-DTn6RiRA.js → defaultLocale-BWgun1yJ.js} +0 -0
- /package/dist/client/assets/{diff-CoamybWh.js → diff-z9q33Lo6.js} +0 -0
- /package/dist/client/assets/{dist-yRVuIDKu.js → dist-DnxPQ0-w.js} +0 -0
- /package/dist/client/assets/{drawio-room-D6352KkV.js → drawio-room-C592VDk7.js} +0 -0
- /package/dist/client/assets/{dtd-BjGQwMWL.js → dtd-BDizf_te.js} +0 -0
- /package/dist/client/assets/{dylan-B9W3X2GI.js → dylan-Bk__XCKW.js} +0 -0
- /package/dist/client/assets/{ebnf-d5D0otVn.js → ebnf-SzN4Kxtp.js} +0 -0
- /package/dist/client/assets/{ecl-C5Q_IBPt.js → ecl-5ulxiKbt.js} +0 -0
- /package/dist/client/assets/{eiffel-BQA_6I3b.js → eiffel-Bhoaqbb6.js} +0 -0
- /package/dist/client/assets/{elm-unPS17vB.js → elm-C3je846J.js} +0 -0
- /package/dist/client/assets/{erlang-R8nOsUTx.js → erlang-Cgk9SIAz.js} +0 -0
- /package/dist/client/assets/{excalidraw-mermaid-stub-BJq3n7pR.js → excalidraw-mermaid-stub-B_2dv3Ll.js} +0 -0
- /package/dist/client/assets/{fcl-CVAfW9wK.js → fcl-dvkZwp9p.js} +0 -0
- /package/dist/client/assets/{forth-DHbsK8X8.js → forth-DmfSa3jN.js} +0 -0
- /package/dist/client/assets/{fortran-4jMwxW9-.js → fortran-BsZAiNnN.js} +0 -0
- /package/dist/client/assets/{gas-zC_XGrQT.js → gas-DBpKE9ut.js} +0 -0
- /package/dist/client/assets/{gherkin-CPBQou3u.js → gherkin-CceEbBs7.js} +0 -0
- /package/dist/client/assets/{groovy-Cqopym0q.js → groovy-CxJnDvES.js} +0 -0
- /package/dist/client/assets/{haskell-imzbNPgF.js → haskell-CUSb34Xy.js} +0 -0
- /package/dist/client/assets/{haxe-Doh225Ku.js → haxe-6EHO_h-N.js} +0 -0
- /package/dist/client/assets/{http-j4R5uEso.js → http-C3qcBpvG.js} +0 -0
- /package/dist/client/assets/{idl-l9d1__Hj.js → idl-C95wIO2I.js} +0 -0
- /package/dist/client/assets/{image-blob-reduce.esm-CQfEe3_g.js → image-blob-reduce.esm-BaW4gpT9.js} +0 -0
- /package/dist/client/assets/{init-207s1ipc.js → init-Bjj5fg68.js} +0 -0
- /package/dist/client/assets/{isArrayLikeObject-ZCMZRndo.js → isArrayLikeObject-Cmt1CYnI.js} +0 -0
- /package/dist/client/assets/{javascript-9dQYqEHJ.js → javascript-aWB87b1w.js} +0 -0
- /package/dist/client/assets/{julia-ByGjwiLn.js → julia-DF9PPAXG.js} +0 -0
- /package/dist/client/assets/{katex-XOVNa2d9.js → katex-BPsFnA3D.js} +0 -0
- /package/dist/client/assets/{livescript-B8l2m7xO.js → livescript-CnOyWwUY.js} +0 -0
- /package/dist/client/assets/{lua-DrfAKnQQ.js → lua-a0rEq19C.js} +0 -0
- /package/dist/client/assets/{math-BlD6rf4Z.js → math-BaavbII8.js} +0 -0
- /package/dist/client/assets/{mathematica-DYk_2Ik_.js → mathematica-CKUq0Ojc.js} +0 -0
- /package/dist/client/assets/{mbox-BOzVHzVt.js → mbox-a-u2PLog.js} +0 -0
- /package/dist/client/assets/{mirc-DStbUCmv.js → mirc-BOd43sOX.js} +0 -0
- /package/dist/client/assets/{mllike-BmhQglqS.js → mllike-fHruGivh.js} +0 -0
- /package/dist/client/assets/{modelica-ZElxtbqD.js → modelica-B0NJqf1C.js} +0 -0
- /package/dist/client/assets/{mscgen-f-YxHPr0.js → mscgen-DJZ33SrF.js} +0 -0
- /package/dist/client/assets/{mumps-B79RJJhR.js → mumps-DvMvHTxU.js} +0 -0
- /package/dist/client/assets/{nginx-c--axfuP.js → nginx-BVAs8laz.js} +0 -0
- /package/dist/client/assets/{ntriples-CgD4YZZC.js → ntriples-DrdyAZU1.js} +0 -0
- /package/dist/client/assets/{octave-BQk-bCrp.js → octave-_YqJ0g7E.js} +0 -0
- /package/dist/client/assets/{oz-DPCSPrx5.js → oz-k7T3LoMr.js} +0 -0
- /package/dist/client/assets/{pascal-C1iGzZ53.js → pascal-CftsTvte.js} +0 -0
- /package/dist/client/assets/{path-CDSE7Nw0.js → path-BUmMWM1-.js} +0 -0
- /package/dist/client/assets/{perl-DQ3L8ffg.js → perl-CbsLFc7A.js} +0 -0
- /package/dist/client/assets/{pig-B4S8acys.js → pig-C-jTwMS-.js} +0 -0
- /package/dist/client/assets/{powershell-BhSVdaeY.js → powershell-DqXLgSHX.js} +0 -0
- /package/dist/client/assets/{preload-helper-I1wKxk_B.js → preload-helper-Bo9GmnuQ.js} +0 -0
- /package/dist/client/assets/{properties-B2nfdtxE.js → properties-05jaw55P.js} +0 -0
- /package/dist/client/assets/{protobuf-BFW_iwVN.js → protobuf-DThTsZQN.js} +0 -0
- /package/dist/client/assets/{puppet-C1-CkyhQ.js → puppet-DuHxMpoj.js} +0 -0
- /package/dist/client/assets/{python-CYXPDD4I.js → python-BiE2VHJI.js} +0 -0
- /package/dist/client/assets/{q-Bub5Xmxm.js → q-DH46YfNw.js} +0 -0
- /package/dist/client/assets/{r-C59ONZO2.js → r-DmEm46kJ.js} +0 -0
- /package/dist/client/assets/{rough.esm-xhKrnp4d.js → rough.esm-jZQkcmER.js} +0 -0
- /package/dist/client/assets/{roundRect-CTz-kxJH.js → roundRect-CI6UmGg6.js} +0 -0
- /package/dist/client/assets/{rpm-DiM-R-wd.js → rpm-DILIIbRB.js} +0 -0
- /package/dist/client/assets/{ruby-DTqG95KX.js → ruby-2LcnHEMS.js} +0 -0
- /package/dist/client/assets/{runtime-config-loader-DwWsKc1-.js → runtime-config-loader-_D2KZKn-.js} +0 -0
- /package/dist/client/assets/{sas-BjdhmGHX.js → sas-Bn81MKuB.js} +0 -0
- /package/dist/client/assets/{scheme-CWNdoI17.js → scheme-B8kPNbgd.js} +0 -0
- /package/dist/client/assets/{shell-iaorleRB.js → shell-CGj6v8kb.js} +0 -0
- /package/dist/client/assets/{sieve-D8m9Etmd.js → sieve-CfVNFN1K.js} +0 -0
- /package/dist/client/assets/{simple-mode-kdHrpFjq.js → simple-mode-_FSHdiXs.js} +0 -0
- /package/dist/client/assets/{smalltalk-28WS1mUj.js → smalltalk-BpIFyCPt.js} +0 -0
- /package/dist/client/assets/{solr-x8qQ6eAP.js → solr-B7iFaetn.js} +0 -0
- /package/dist/client/assets/{sparql-BvLmi7B6.js → sparql-COhgMTFK.js} +0 -0
- /package/dist/client/assets/{spreadsheet-BuqSwScP.js → spreadsheet-BzuffEeg.js} +0 -0
- /package/dist/client/assets/{sql-B8tBavZM.js → sql-13lT5zDl.js} +0 -0
- /package/dist/client/assets/{stex-Bx4bLPxI.js → stex-BRSfZZYG.js} +0 -0
- /package/dist/client/assets/{stylus-CMEhEjuV.js → stylus-fFo0QRk_.js} +0 -0
- /package/dist/client/assets/{swift-wY9II8hY.js → swift-wb5gyb6a.js} +0 -0
- /package/dist/client/assets/{tcl-BGywDEsi.js → tcl-BJA7GgWY.js} +0 -0
- /package/dist/client/assets/{textile-K_mvsehZ.js → textile-BQjiYu-x.js} +0 -0
- /package/dist/client/assets/{tiddlywiki-BrpeQ34q.js → tiddlywiki-D2vUXB6n.js} +0 -0
- /package/dist/client/assets/{tiki-z2eQQPgI.js → tiki-BFhpdznG.js} +0 -0
- /package/dist/client/assets/{toml-Dcu7S7XA.js → toml-DN06iQUw.js} +0 -0
- /package/dist/client/assets/{troff-Djlumm7T.js → troff-DuQfjhPH.js} +0 -0
- /package/dist/client/assets/{ttcn-XqU6tthJ.js → ttcn-BCTy6d50.js} +0 -0
- /package/dist/client/assets/{ttcn-cfg-BzD0wr3i.js → ttcn-cfg-BYnZQqGa.js} +0 -0
- /package/dist/client/assets/{turtle-DcjXkx6M.js → turtle-BvN-Me9x.js} +0 -0
- /package/dist/client/assets/{vault-utils-BM4i-Ofm.js → vault-utils-BW53lKl1.js} +0 -0
- /package/dist/client/assets/{vb-DV4y2QrD.js → vb-DYk3wW9u.js} +0 -0
- /package/dist/client/assets/{vbscript-BS8DsYJ_.js → vbscript-BKI61VS6.js} +0 -0
- /package/dist/client/assets/{velocity-CS6Ly2yV.js → velocity-BrtitHHA.js} +0 -0
- /package/dist/client/assets/{verilog-DbEC7ose.js → verilog-CjUx3yiL.js} +0 -0
- /package/dist/client/assets/{vhdl-DBLrW9bF.js → vhdl-CPWwYF4V.js} +0 -0
- /package/dist/client/assets/{webidl-CnE8KY-y.js → webidl-PiVOzma8.js} +0 -0
- /package/dist/client/assets/{xquery--K5Za5EW.js → xquery-CiTzM_oK.js} +0 -0
- /package/dist/client/assets/{yacas-ClQfYBmX.js → yacas-4QS9CntY.js} +0 -0
- /package/dist/client/assets/{z80-Dr2oR3X2.js → z80-BxidrTKR.js} +0 -0
|
@@ -17,447 +17,7 @@
|
|
|
17
17
|
</script>
|
|
18
18
|
</head>
|
|
19
19
|
<body>
|
|
20
|
-
<
|
|
21
|
-
|
|
22
|
-
<div class="app-shell">
|
|
23
|
-
<!-- ========== SIDEBAR ========== -->
|
|
24
|
-
<aside id="sidebar" class="sidebar">
|
|
25
|
-
<div class="sidebar-header">
|
|
26
|
-
<div class="sidebar-brand">
|
|
27
|
-
<svg width="20" height="20" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
|
|
28
|
-
<rect x="6" y="8" width="28" height="38" rx="4" stroke="var(--color-primary)" stroke-width="2" fill="var(--color-primary)" fill-opacity="0.12"/>
|
|
29
|
-
<rect x="22" y="10" width="28" height="38" rx="4" stroke="var(--color-primary)" stroke-width="2" fill="var(--color-primary)" fill-opacity="0.25"/>
|
|
30
|
-
<path d="M14 20l4 10 1.5-4 4-1.5L14 20z" fill="var(--color-primary)" opacity="0.7"/>
|
|
31
|
-
<path d="M38 28l-4-10-1.5 4-4 1.5L38 28z" fill="var(--color-primary)"/>
|
|
32
|
-
</svg>
|
|
33
|
-
<span class="sidebar-title">CollabMD</span>
|
|
34
|
-
</div>
|
|
35
|
-
<div class="sidebar-actions">
|
|
36
|
-
<button class="ui-icon-button sidebar-close-btn" id="sidebarClose" aria-label="Close sidebar" title="Close sidebar">
|
|
37
|
-
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
|
|
38
|
-
<line x1="18" y1="6" x2="6" y2="18"/>
|
|
39
|
-
<line x1="6" y1="6" x2="18" y2="18"/>
|
|
40
|
-
</svg>
|
|
41
|
-
</button>
|
|
42
|
-
<div class="sidebar-create-shell">
|
|
43
|
-
<button class="ui-button btn btn-secondary btn-compact sidebar-create-btn" id="sidebarCreateBtn" aria-label="Create" aria-expanded="false" aria-haspopup="menu" title="Create file or folder">
|
|
44
|
-
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
|
|
45
|
-
<span class="sidebar-create-btn-label">Create</span>
|
|
46
|
-
</button>
|
|
47
|
-
</div>
|
|
48
|
-
<button class="ui-icon-button" id="refreshFilesBtn" aria-label="Refresh" title="Refresh file list">
|
|
49
|
-
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="23 4 23 10 17 10"/><path d="M20.49 15a9 9 0 1 1-2.12-9.36L23 10"/></svg>
|
|
50
|
-
</button>
|
|
51
|
-
</div>
|
|
52
|
-
</div>
|
|
53
|
-
<div class="ui-nav-tabs hidden" id="sidebarTabs">
|
|
54
|
-
<button class="ui-nav-tab active" id="filesSidebarTab" type="button">
|
|
55
|
-
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><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>
|
|
56
|
-
Files
|
|
57
|
-
</button>
|
|
58
|
-
<button class="ui-nav-tab hidden" id="gitSidebarTab" type="button">
|
|
59
|
-
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="18" cy="18" r="3"/><circle cx="6" cy="6" r="3"/><path d="M13 6h3a2 2 0 0 1 2 2v7"/><path d="M6 9v12"/></svg>
|
|
60
|
-
Git
|
|
61
|
-
</button>
|
|
62
|
-
</div>
|
|
63
|
-
<div class="sidebar-search" id="fileSearch">
|
|
64
|
-
<input type="text" class="sidebar-search-input" id="fileSearchInput" placeholder="Search files..." autocomplete="off" spellcheck="false" aria-label="Search files">
|
|
65
|
-
</div>
|
|
66
|
-
<div class="sidebar-search hidden" id="gitSearch">
|
|
67
|
-
<input type="text" class="sidebar-search-input" id="gitSearchInput" placeholder="Search changes..." autocomplete="off" spellcheck="false" aria-label="Search changed files">
|
|
68
|
-
</div>
|
|
69
|
-
<nav id="fileTree" class="file-tree" aria-label="File explorer"></nav>
|
|
70
|
-
<div id="gitPanel" class="git-panel hidden" aria-label="Git changes"></div>
|
|
71
|
-
</aside>
|
|
72
|
-
|
|
73
|
-
<!-- ========== MAIN AREA ========== -->
|
|
74
|
-
<main class="main-area" id="mainContent">
|
|
75
|
-
<!-- Toolbar -->
|
|
76
|
-
<header class="toolbar" role="banner">
|
|
77
|
-
<div class="toolbar-left">
|
|
78
|
-
<button class="ui-button btn btn-ghost ui-toolbar-button" id="sidebarToggle" aria-label="Toggle sidebar" title="Toggle sidebar">
|
|
79
|
-
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
|
|
80
|
-
</button>
|
|
81
|
-
<div class="toolbar-room-info">
|
|
82
|
-
<span class="toolbar-room-name" id="activeFileName">CollabMD</span>
|
|
83
|
-
<span class="ui-pill-badge ui-pill-badge--accent toolbar-badge" id="userCount"></span>
|
|
84
|
-
<span class="ui-pill-badge ui-pill-badge--accent toolbar-badge hidden" id="toolbarDiffBadge">Diff</span>
|
|
85
|
-
<span class="ui-pill-badge ui-pill-badge--accent toolbar-badge hidden" id="gitOperationStatus" aria-live="polite" aria-atomic="true"></span>
|
|
86
|
-
</div>
|
|
87
|
-
</div>
|
|
88
|
-
|
|
89
|
-
<div class="toolbar-center" id="toolbarCenter">
|
|
90
|
-
<div class="ui-segmented-control view-toggle" role="group" aria-label="View mode">
|
|
91
|
-
<button class="ui-segmented-btn view-btn active" data-view="split" aria-label="Split view" aria-pressed="true" title="Split view">
|
|
92
|
-
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2"/><line x1="12" y1="3" x2="12" y2="21"/></svg>
|
|
93
|
-
</button>
|
|
94
|
-
<button class="ui-segmented-btn view-btn" data-view="editor" aria-label="Editor only" aria-pressed="false" title="Editor only">
|
|
95
|
-
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2"/><line x1="8" y1="8" x2="16" y2="8"/><line x1="8" y1="12" x2="14" y2="12"/><line x1="8" y1="16" x2="12" y2="16"/></svg>
|
|
96
|
-
</button>
|
|
97
|
-
<button class="ui-segmented-btn view-btn" data-view="preview" aria-label="Preview only" aria-pressed="false" title="Preview only">
|
|
98
|
-
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></svg>
|
|
99
|
-
</button>
|
|
100
|
-
</div>
|
|
101
|
-
</div>
|
|
102
|
-
|
|
103
|
-
<div class="toolbar-right">
|
|
104
|
-
<button class="ui-button btn btn-ghost ui-toolbar-button mobile-view-toggle" id="mobileViewToggle" aria-label="Toggle editor/preview" title="Toggle view">
|
|
105
|
-
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></svg>
|
|
106
|
-
<span class="ui-toolbar-button-label">Preview</span>
|
|
107
|
-
</button>
|
|
108
|
-
|
|
109
|
-
<div class="user-avatars toolbar-presence-cluster" id="userAvatars"></div>
|
|
110
|
-
|
|
111
|
-
<button class="ui-button btn btn-ghost ui-toolbar-button toolbar-overflow-toggle" id="toolbarOverflowToggle" aria-label="Open more actions" aria-expanded="false" title="More actions">
|
|
112
|
-
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true">
|
|
113
|
-
<circle cx="12" cy="12" r="1"/>
|
|
114
|
-
<circle cx="19" cy="12" r="1"/>
|
|
115
|
-
<circle cx="5" cy="12" r="1"/>
|
|
116
|
-
</svg>
|
|
117
|
-
</button>
|
|
118
|
-
|
|
119
|
-
<div class="toolbar-overflow-menu" id="toolbarOverflowMenu">
|
|
120
|
-
<button class="ui-button btn btn-ghost ui-toolbar-button hidden" id="fileHistoryBtn" aria-label="Open file history" title="View file history">
|
|
121
|
-
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
122
|
-
<path d="M3 12a9 9 0 1 0 3-6.7"/>
|
|
123
|
-
<path d="M3 4v5h5"/>
|
|
124
|
-
<path d="M12 7v5l3 3"/>
|
|
125
|
-
</svg>
|
|
126
|
-
<span class="ui-toolbar-button-label" id="fileHistoryBtnLabel">History</span>
|
|
127
|
-
</button>
|
|
128
|
-
|
|
129
|
-
<button class="ui-button btn btn-ghost ui-toolbar-button ui-toolbar-button--name" id="editNameBtn" aria-label="Set name. Change display name" title="Change display name">
|
|
130
|
-
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 20h9"/><path d="M16.5 3.5a2.12 2.12 0 1 1 3 3L7 19l-4 1 1-4Z"/></svg>
|
|
131
|
-
<span class="ui-toolbar-button-label ui-toolbar-button-text" id="currentUserName">Set name</span>
|
|
132
|
-
</button>
|
|
133
|
-
|
|
134
|
-
<div class="chat-container" id="chatContainer">
|
|
135
|
-
<button class="ui-button btn btn-ghost ui-toolbar-button chat-toggle-btn" id="chatToggleBtn" aria-label="Open team chat" aria-expanded="false" title="Team chat">
|
|
136
|
-
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>
|
|
137
|
-
<span class="ui-toolbar-button-label">Chat</span>
|
|
138
|
-
<span class="ui-pill-badge ui-pill-badge--solid ui-pill-badge--count chat-toggle-badge hidden" id="chatToggleBadge">0</span>
|
|
139
|
-
</button>
|
|
140
|
-
<div class="toast-container chat-toast-container" id="chatToastContainer" aria-live="polite" aria-atomic="true"></div>
|
|
141
|
-
|
|
142
|
-
<section class="chat-panel hidden" id="chatPanel" aria-label="Team chat">
|
|
143
|
-
<div class="chat-panel-header">
|
|
144
|
-
<div>
|
|
145
|
-
<h2 class="chat-panel-title">Team chat</h2>
|
|
146
|
-
<p class="chat-panel-status" id="chatStatus">Syncing...</p>
|
|
147
|
-
</div>
|
|
148
|
-
<button class="ui-button ui-button--compact ui-pill-button ui-action-pill ui-action-pill--surface btn btn-secondary chat-notification-action" id="chatNotificationBtn" type="button">Enable alerts</button>
|
|
149
|
-
</div>
|
|
150
|
-
|
|
151
|
-
<div class="chat-empty-state" id="chatEmptyState">
|
|
152
|
-
Temporary room chat for whoever is online right now.
|
|
153
|
-
</div>
|
|
154
|
-
<div class="chat-messages hidden" id="chatMessages" role="log" aria-live="polite" aria-relevant="additions text"></div>
|
|
155
|
-
|
|
156
|
-
<form class="chat-form" id="chatForm">
|
|
157
|
-
<input type="text" class="input chat-input" id="chatInput" placeholder="Send a quick update..." autocomplete="off" spellcheck="true" maxlength="280" aria-label="Team chat message">
|
|
158
|
-
<button type="submit" class="ui-button btn btn-primary chat-send-btn">Send</button>
|
|
159
|
-
</form>
|
|
160
|
-
</section>
|
|
161
|
-
</div>
|
|
162
|
-
|
|
163
|
-
<button class="ui-button btn btn-ghost ui-toolbar-button" id="shareBtn" aria-label="Share. Copy link" title="Share link">
|
|
164
|
-
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg>
|
|
165
|
-
<span class="ui-toolbar-button-label">Share</span>
|
|
166
|
-
</button>
|
|
167
|
-
<button class="ui-button btn btn-ghost ui-toolbar-button toolbar-theme-button" id="themeToggleBtn" data-theme-toggle aria-label="Toggle theme" title="Toggle theme">
|
|
168
|
-
<span class="toolbar-theme-icon" data-theme-toggle-icon aria-hidden="true">
|
|
169
|
-
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="5"/><path d="M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42"/></svg>
|
|
170
|
-
</span>
|
|
171
|
-
<span class="ui-toolbar-button-label">Theme</span>
|
|
172
|
-
<span class="ui-pill-badge ui-pill-badge--muted toolbar-theme-state" data-theme-toggle-state>Dark</span>
|
|
173
|
-
</button>
|
|
174
|
-
</div>
|
|
175
|
-
</div>
|
|
176
|
-
</header>
|
|
177
|
-
|
|
178
|
-
<!-- Empty state (no file selected) -->
|
|
179
|
-
<div id="emptyState" class="empty-state">
|
|
180
|
-
<div class="empty-state-content">
|
|
181
|
-
<div class="empty-state-logo" aria-hidden="true">
|
|
182
|
-
<svg width="48" height="48" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
183
|
-
<rect x="6" y="8" width="28" height="38" rx="4" stroke="var(--color-primary)" stroke-width="2" fill="var(--color-primary)" fill-opacity="0.12"/>
|
|
184
|
-
<rect x="22" y="10" width="28" height="38" rx="4" stroke="var(--color-primary)" stroke-width="2" fill="var(--color-primary)" fill-opacity="0.25"/>
|
|
185
|
-
<path d="M14 20l4 10 1.5-4 4-1.5L14 20z" fill="var(--color-primary)" opacity="0.7"/>
|
|
186
|
-
<path d="M38 28l-4-10-1.5 4-4 1.5L38 28z" fill="var(--color-primary)"/>
|
|
187
|
-
</svg>
|
|
188
|
-
</div>
|
|
189
|
-
<h2 class="empty-state-title">Welcome to CollabMD</h2>
|
|
190
|
-
<p class="empty-state-desc">Open a file from the sidebar, or get started quickly:</p>
|
|
191
|
-
<div class="empty-state-actions">
|
|
192
|
-
<button class="ui-button btn btn-secondary empty-state-btn" id="emptyStateNewFileBtn">
|
|
193
|
-
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
|
|
194
|
-
Create
|
|
195
|
-
</button>
|
|
196
|
-
<button class="ui-button btn btn-secondary empty-state-btn" id="emptyStateSearchBtn">
|
|
197
|
-
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>
|
|
198
|
-
Search Everything
|
|
199
|
-
<kbd class="empty-state-kbd">⌘K</kbd>
|
|
200
|
-
</button>
|
|
201
|
-
</div>
|
|
202
|
-
</div>
|
|
203
|
-
</div>
|
|
204
|
-
|
|
205
|
-
<!-- Editor page (shown when a file is open) -->
|
|
206
|
-
<div id="editor-page" class="editor-page hidden">
|
|
207
|
-
<div class="editor-layout" id="editorLayout" data-view="split">
|
|
208
|
-
<div class="editor-pane" id="editorPane">
|
|
209
|
-
<div class="pane-header">
|
|
210
|
-
<div class="pane-header-meta">
|
|
211
|
-
<span class="pane-label">Editor</span>
|
|
212
|
-
<span class="pane-label-meta" id="lineInfo">Ln 1, Col 1</span>
|
|
213
|
-
</div>
|
|
214
|
-
<div class="pane-header-actions">
|
|
215
|
-
<button class="ui-button ui-button--compact ui-button--toggle btn btn-ghost hidden" id="commentSelectionBtn" aria-label="Comment current line or selection" title="Comment current line or selection">
|
|
216
|
-
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
217
|
-
<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>
|
|
218
|
-
</svg>
|
|
219
|
-
<span class="ui-action-label">Comment</span>
|
|
220
|
-
</button>
|
|
221
|
-
<button class="ui-button ui-button--compact ui-button--toggle btn btn-ghost" id="toggleWrapBtn" aria-label="Disable line wrap" title="Disable line wrap">
|
|
222
|
-
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
223
|
-
<path d="M3 6h14a4 4 0 1 1 0 8H9"/>
|
|
224
|
-
<path d="m9 10-4 4 4 4"/>
|
|
225
|
-
<path d="M3 18h7"/>
|
|
226
|
-
</svg>
|
|
227
|
-
<span id="wrapToggleLabel">Wrap on</span>
|
|
228
|
-
</button>
|
|
229
|
-
</div>
|
|
230
|
-
</div>
|
|
231
|
-
<div id="markdownToolbar" class="markdown-toolbar hidden" role="toolbar" aria-label="Markdown formatting"></div>
|
|
232
|
-
<div id="editorContainer" class="editor-container">
|
|
233
|
-
<div class="editor-loading" id="editorLoading">
|
|
234
|
-
<div class="skeleton-line skeleton-line--title skeleton-line--break"></div>
|
|
235
|
-
<div class="skeleton-line skeleton-line--full"></div>
|
|
236
|
-
<div class="skeleton-line skeleton-line--ninety"></div>
|
|
237
|
-
<div class="skeleton-line skeleton-line--ninety-five"></div>
|
|
238
|
-
<div class="skeleton-line skeleton-line--eighty skeleton-line--break"></div>
|
|
239
|
-
<div class="skeleton-line skeleton-line--full"></div>
|
|
240
|
-
<div class="skeleton-line skeleton-line--eighty-five"></div>
|
|
241
|
-
</div>
|
|
242
|
-
</div>
|
|
243
|
-
</div>
|
|
244
|
-
|
|
245
|
-
<div class="resizer" id="resizer" role="separator" aria-orientation="vertical" tabindex="0" aria-label="Resize editor and preview" aria-controls="editorPane previewPane" aria-valuemin="20" aria-valuemax="80" aria-valuenow="50"></div>
|
|
246
|
-
|
|
247
|
-
<div class="preview-pane" id="previewPane">
|
|
248
|
-
<div class="pane-header">
|
|
249
|
-
<span class="pane-label">Preview</span>
|
|
250
|
-
<div class="pane-header-actions">
|
|
251
|
-
<button class="ui-button ui-button--compact ui-button--toggle btn btn-ghost hidden" id="commentsToggle" aria-label="Toggle comments" title="Toggle comments">
|
|
252
|
-
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
253
|
-
<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>
|
|
254
|
-
</svg>
|
|
255
|
-
<span class="ui-action-label">Comments</span>
|
|
256
|
-
</button>
|
|
257
|
-
<button class="ui-button ui-button--compact ui-button--toggle btn btn-ghost" id="outlineToggle" aria-label="Toggle outline" title="Toggle outline">
|
|
258
|
-
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="15" y2="12"/><line x1="3" y1="18" x2="18" y2="18"/></svg>
|
|
259
|
-
</button>
|
|
260
|
-
</div>
|
|
261
|
-
</div>
|
|
262
|
-
<div class="preview-body">
|
|
263
|
-
<div id="previewContainer" class="preview-container">
|
|
264
|
-
<div id="previewContent" class="preview-content"></div>
|
|
265
|
-
<div id="backlinksInlinePanel" class="backlinks-panel backlinks-panel-inline hidden">
|
|
266
|
-
<button type="button" class="backlinks-header" aria-expanded="false">
|
|
267
|
-
<svg class="backlinks-chevron" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"/></svg>
|
|
268
|
-
<span class="backlinks-toggle">0 Linked Mentions</span>
|
|
269
|
-
<span class="backlinks-count"></span>
|
|
270
|
-
</button>
|
|
271
|
-
<div class="backlinks-body" aria-hidden="true" inert>
|
|
272
|
-
<div class="backlinks-list"></div>
|
|
273
|
-
</div>
|
|
274
|
-
</div>
|
|
275
|
-
</div>
|
|
276
|
-
<div id="backlinksPanel" class="backlinks-panel-layer hidden">
|
|
277
|
-
<div class="backlinks-panel backlinks-panel-dock" data-backlinks-variant="dock">
|
|
278
|
-
<button type="button" class="backlinks-header" aria-expanded="false">
|
|
279
|
-
<svg class="backlinks-chevron" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"/></svg>
|
|
280
|
-
<span class="backlinks-toggle">0 Linked Mentions</span>
|
|
281
|
-
<span class="backlinks-count"></span>
|
|
282
|
-
</button>
|
|
283
|
-
<div class="backlinks-body" aria-hidden="true" inert>
|
|
284
|
-
<div class="backlinks-list"></div>
|
|
285
|
-
</div>
|
|
286
|
-
</div>
|
|
287
|
-
</div>
|
|
288
|
-
<aside id="commentsDrawer" class="comments-drawer hidden" aria-label="Comments">
|
|
289
|
-
<div class="comments-drawer-header">
|
|
290
|
-
<span class="comments-drawer-title">Comments</span>
|
|
291
|
-
</div>
|
|
292
|
-
<div id="commentsDrawerEmpty" class="comments-drawer-empty">
|
|
293
|
-
Add a comment from the editor or the preview bubbles.
|
|
294
|
-
</div>
|
|
295
|
-
<div id="commentsDrawerList" class="comments-drawer-list"></div>
|
|
296
|
-
</aside>
|
|
297
|
-
<aside id="outlinePanel" class="outline-panel hidden" aria-label="Document outline">
|
|
298
|
-
<div class="outline-header">
|
|
299
|
-
<span class="outline-title">Outline</span>
|
|
300
|
-
</div>
|
|
301
|
-
<nav id="outlineNav" class="outline-nav"></nav>
|
|
302
|
-
</aside>
|
|
303
|
-
</div>
|
|
304
|
-
</div>
|
|
305
|
-
</div>
|
|
306
|
-
</div>
|
|
307
|
-
|
|
308
|
-
<div id="diff-page" class="diff-page hidden">
|
|
309
|
-
<div class="diff-toolbar">
|
|
310
|
-
<div class="diff-toolbar-left">
|
|
311
|
-
<div class="diff-file-nav">
|
|
312
|
-
<button class="ui-icon-button ui-action-icon" id="diffPrevBtn" type="button" disabled aria-label="Previous changed file">
|
|
313
|
-
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><polyline points="15 18 9 12 15 6"/></svg>
|
|
314
|
-
</button>
|
|
315
|
-
<span class="diff-file-indicator" id="diffFileIndicator">0 / 0 files</span>
|
|
316
|
-
<button class="ui-icon-button ui-action-icon" id="diffNextBtn" type="button" disabled aria-label="Next changed file">
|
|
317
|
-
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><polyline points="9 18 15 12 9 6"/></svg>
|
|
318
|
-
</button>
|
|
319
|
-
</div>
|
|
320
|
-
<div class="diff-toolbar-actions">
|
|
321
|
-
<button class="ui-button ui-action-button ui-action-button--surface ui-action-button--wide btn btn-secondary diff-back-btn hidden" id="diffBackToHistoryBtn" type="button">
|
|
322
|
-
Back to History
|
|
323
|
-
</button>
|
|
324
|
-
<div class="diff-toolbar-actions-group diff-toolbar-actions-group-git" id="diffGitActionsGroup" role="group" aria-label="Git file actions">
|
|
325
|
-
<button class="ui-button ui-action-button ui-action-button--surface ui-action-button--wide btn btn-secondary" id="diffPrimaryActionBtn" type="button" disabled>
|
|
326
|
-
Stage
|
|
327
|
-
</button>
|
|
328
|
-
<button class="ui-button ui-action-button ui-action-button--wide btn btn-primary" id="diffCommitBtn" type="button" disabled>
|
|
329
|
-
Commit Staged
|
|
330
|
-
</button>
|
|
331
|
-
</div>
|
|
332
|
-
<span class="diff-toolbar-actions-divider" id="diffToolbarDivider" aria-hidden="true"></span>
|
|
333
|
-
<div class="diff-toolbar-actions-group" id="diffEditorActionsGroup" role="group" aria-label="Navigation actions">
|
|
334
|
-
<button class="ui-button ui-action-button ui-action-button--surface ui-action-button--wide btn btn-secondary diff-open-editor-btn" id="diffOpenEditorBtn" type="button" disabled>
|
|
335
|
-
Open in Editor
|
|
336
|
-
</button>
|
|
337
|
-
</div>
|
|
338
|
-
</div>
|
|
339
|
-
</div>
|
|
340
|
-
<div class="diff-toolbar-right">
|
|
341
|
-
<div class="diff-stats" id="diffStats">
|
|
342
|
-
<span class="ui-stat-token ui-stat-token--add diff-stats-add">+0</span>
|
|
343
|
-
<span class="ui-stat-token ui-stat-token--del diff-stats-del">-0</span>
|
|
344
|
-
</div>
|
|
345
|
-
<div class="ui-segmented-control diff-layout-toggle hidden" id="diffLayoutToggle" role="group" aria-label="Commit diff layout">
|
|
346
|
-
<button class="ui-segmented-btn view-btn diff-layout-btn" data-diff-layout="stacked" type="button">Stacked</button>
|
|
347
|
-
<button class="ui-segmented-btn view-btn diff-layout-btn active" data-diff-layout="focused" type="button">Focused</button>
|
|
348
|
-
</div>
|
|
349
|
-
<div class="ui-segmented-control diff-mode-toggle" role="group" aria-label="Diff view mode">
|
|
350
|
-
<button class="ui-segmented-btn view-btn diff-mode-btn active" data-diff-mode="unified" type="button">Unified</button>
|
|
351
|
-
<button class="ui-segmented-btn view-btn diff-mode-btn" data-diff-mode="split" type="button">Split</button>
|
|
352
|
-
</div>
|
|
353
|
-
</div>
|
|
354
|
-
</div>
|
|
355
|
-
<div class="diff-scroll" id="diffScroll">
|
|
356
|
-
<div class="diff-content" id="diffContent"></div>
|
|
357
|
-
</div>
|
|
358
|
-
</div>
|
|
359
|
-
</main>
|
|
360
|
-
</div>
|
|
361
|
-
|
|
362
|
-
<dialog class="app-dialog" id="displayNameDialog">
|
|
363
|
-
<form class="app-dialog-form" id="displayNameForm" method="dialog">
|
|
364
|
-
<div class="app-dialog-header">
|
|
365
|
-
<h2 class="app-dialog-title" id="displayNameTitle">Update display name</h2>
|
|
366
|
-
<p class="app-dialog-copy" id="displayNameCopy">Your name will be visible to everyone editing this vault.</p>
|
|
367
|
-
</div>
|
|
368
|
-
<label class="app-dialog-field" for="displayNameInput">
|
|
369
|
-
<span class="app-dialog-label">Name</span>
|
|
370
|
-
<input type="text" class="input" id="displayNameInput" name="displayName" maxlength="24" autocomplete="nickname" spellcheck="false" required>
|
|
371
|
-
</label>
|
|
372
|
-
<div class="app-dialog-actions">
|
|
373
|
-
<button type="button" class="ui-button btn btn-secondary" id="displayNameCancel">Cancel</button>
|
|
374
|
-
<button type="submit" class="ui-button btn btn-primary" id="displayNameSubmit">Save name</button>
|
|
375
|
-
</div>
|
|
376
|
-
</form>
|
|
377
|
-
</dialog>
|
|
378
|
-
|
|
379
|
-
<dialog class="app-dialog" id="fileActionDialog">
|
|
380
|
-
<form class="app-dialog-form" id="fileActionForm" method="dialog">
|
|
381
|
-
<div class="app-dialog-header">
|
|
382
|
-
<h2 class="app-dialog-title" id="fileActionTitle">Create file</h2>
|
|
383
|
-
<p class="app-dialog-copy" id="fileActionCopy">Add a new file to the vault.</p>
|
|
384
|
-
</div>
|
|
385
|
-
<label class="app-dialog-field" id="fileActionField" for="fileActionInput">
|
|
386
|
-
<span class="app-dialog-label" id="fileActionLabel">Path</span>
|
|
387
|
-
<input type="text" class="input" id="fileActionInput" name="fileActionValue" autocomplete="off" spellcheck="false" required>
|
|
388
|
-
<span class="app-dialog-hint" id="fileActionHint" hidden></span>
|
|
389
|
-
</label>
|
|
390
|
-
<p class="app-dialog-note" id="fileActionNote" hidden></p>
|
|
391
|
-
<div class="app-dialog-actions">
|
|
392
|
-
<button type="button" class="ui-button btn btn-secondary" id="fileActionCancel">Cancel</button>
|
|
393
|
-
<button type="submit" class="ui-button btn btn-primary" id="fileActionSubmit">Create</button>
|
|
394
|
-
</div>
|
|
395
|
-
</form>
|
|
396
|
-
</dialog>
|
|
397
|
-
|
|
398
|
-
<dialog class="app-dialog" id="gitCommitDialog">
|
|
399
|
-
<form class="app-dialog-form" id="gitCommitForm" method="dialog">
|
|
400
|
-
<div class="app-dialog-header">
|
|
401
|
-
<h2 class="app-dialog-title" id="gitCommitTitle">Commit staged changes</h2>
|
|
402
|
-
<p class="app-dialog-copy" id="gitCommitCopy">All staged changes will be included.</p>
|
|
403
|
-
</div>
|
|
404
|
-
<label class="app-dialog-field" for="gitCommitInput">
|
|
405
|
-
<span class="app-dialog-label">Commit message</span>
|
|
406
|
-
<input type="text" class="input" id="gitCommitInput" name="gitCommitMessage" autocomplete="off" spellcheck="true" required>
|
|
407
|
-
</label>
|
|
408
|
-
<div class="app-dialog-actions">
|
|
409
|
-
<button type="button" class="ui-button btn btn-secondary" id="gitCommitCancel">Cancel</button>
|
|
410
|
-
<button type="submit" class="ui-button btn btn-primary" id="gitCommitSubmit">Commit staged changes</button>
|
|
411
|
-
</div>
|
|
412
|
-
</form>
|
|
413
|
-
</dialog>
|
|
414
|
-
|
|
415
|
-
<dialog class="app-dialog" id="gitResetDialog">
|
|
416
|
-
<form class="app-dialog-form" method="dialog">
|
|
417
|
-
<div class="app-dialog-header">
|
|
418
|
-
<h2 class="app-dialog-title" id="gitResetTitle">Reset file</h2>
|
|
419
|
-
<p class="app-dialog-copy" id="gitResetCopy">Restore this file from the current checked-out branch. If that branch does not contain the file, it will be deleted locally.</p>
|
|
420
|
-
</div>
|
|
421
|
-
<div class="app-dialog-field">
|
|
422
|
-
<label class="app-dialog-label" for="gitResetFileName">File</label>
|
|
423
|
-
<input class="input app-dialog-input" id="gitResetFileName" type="text" readonly>
|
|
424
|
-
</div>
|
|
425
|
-
<div class="app-dialog-note is-danger">
|
|
426
|
-
Local file content and staged changes for this path will be discarded.
|
|
427
|
-
</div>
|
|
428
|
-
<div class="app-dialog-actions">
|
|
429
|
-
<button class="ui-button btn btn-secondary" id="gitResetCancel" type="button">Cancel</button>
|
|
430
|
-
<button class="ui-button btn btn-danger" id="gitResetSubmit" type="button">Reset File</button>
|
|
431
|
-
</div>
|
|
432
|
-
</form>
|
|
433
|
-
</dialog>
|
|
434
|
-
|
|
435
|
-
<div class="tab-lock-overlay hidden" id="tabLockOverlay" role="dialog" aria-modal="true" aria-labelledby="tabLockTitle">
|
|
436
|
-
<div class="tab-lock-card">
|
|
437
|
-
<span class="tab-lock-kicker">Single active tab</span>
|
|
438
|
-
<h2 class="tab-lock-title" id="tabLockTitle">This vault is active in another tab</h2>
|
|
439
|
-
<p class="tab-lock-copy" id="tabLockCopy">To avoid duplicate presence and chat, only one tab can stay connected at a time. Use the other tab, or take over the session here.</p>
|
|
440
|
-
<div class="tab-lock-actions">
|
|
441
|
-
<button type="button" class="ui-button btn btn-primary btn-lg" id="tabLockTakeoverBtn">Take over here</button>
|
|
442
|
-
</div>
|
|
443
|
-
</div>
|
|
444
|
-
</div>
|
|
445
|
-
|
|
446
|
-
<!-- Toast notifications -->
|
|
447
|
-
<div class="toast-container" id="toastContainer"></div>
|
|
448
|
-
|
|
449
|
-
<!-- Quick Switcher (Cmd+K) -->
|
|
450
|
-
<div class="qs-overlay" id="quickSwitcher">
|
|
451
|
-
<div class="qs-modal">
|
|
452
|
-
<div class="qs-input-wrap">
|
|
453
|
-
<svg class="qs-search-icon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>
|
|
454
|
-
<input type="text" class="qs-input" id="quickSwitcherInput" placeholder="Search files..." autocomplete="off" spellcheck="false">
|
|
455
|
-
<kbd class="qs-kbd">esc</kbd>
|
|
456
|
-
</div>
|
|
457
|
-
<div class="qs-results" id="quickSwitcherResults"></div>
|
|
458
|
-
<div class="qs-hint" id="quickSwitcherHint">Type to search files</div>
|
|
459
|
-
</div>
|
|
460
|
-
</div>
|
|
20
|
+
<div id="appRoot"></div>
|
|
461
21
|
<script type="module" src="./main-entry.js"></script>
|
|
462
22
|
</body>
|
|
463
23
|
</html>
|
|
@@ -4,6 +4,7 @@ import '../styles/base.css';
|
|
|
4
4
|
import '../styles/style.css';
|
|
5
5
|
|
|
6
6
|
import { ensureRuntimeConfigLoaded } from '../infrastructure/runtime-config-loader.js';
|
|
7
|
+
import { ensureUiComponentStyles } from '../presentation/components/ui/ensure-ui-component-styles.js';
|
|
7
8
|
|
|
8
9
|
function ensureHighlightThemeStylesheet() {
|
|
9
10
|
let themeStylesheet = document.getElementById('hljs-theme');
|
|
@@ -21,4 +22,5 @@ function ensureHighlightThemeStylesheet() {
|
|
|
21
22
|
|
|
22
23
|
await ensureRuntimeConfigLoaded();
|
|
23
24
|
ensureHighlightThemeStylesheet();
|
|
25
|
+
await ensureUiComponentStyles();
|
|
24
26
|
await import('../main.js');
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { isMarkdownFilePath } from '../../../domain/file-kind.js';
|
|
2
|
+
import { exportDocument, initializeExportBridge } from '../../export/export-host.js';
|
|
3
|
+
|
|
4
|
+
export const exportFeature = {
|
|
5
|
+
initializeExportBridge() {
|
|
6
|
+
if (this._exportBridgeInitialized) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
initializeExportBridge({
|
|
11
|
+
onError: (message) => {
|
|
12
|
+
this.toastController?.show(message);
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
this._exportBridgeInitialized = true;
|
|
16
|
+
},
|
|
17
|
+
|
|
18
|
+
async handleExportRequest(format) {
|
|
19
|
+
const filePath = String(this.currentFilePath ?? '').trim();
|
|
20
|
+
if (!isMarkdownFilePath(filePath)) {
|
|
21
|
+
this.toastController?.show('Export is available for markdown notes only');
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
try {
|
|
26
|
+
await exportDocument({
|
|
27
|
+
fileList: this.fileExplorer?.flatDocumentFiles ?? [],
|
|
28
|
+
filePath,
|
|
29
|
+
format,
|
|
30
|
+
markdownText: this.session?.getText?.() ?? '',
|
|
31
|
+
title: this.getDisplayName(filePath),
|
|
32
|
+
});
|
|
33
|
+
return true;
|
|
34
|
+
} catch (error) {
|
|
35
|
+
this.toastController?.show(error instanceof Error ? error.message : 'Failed to start export');
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
};
|
|
@@ -30,6 +30,7 @@ const VERSION_RELOAD_TOAST_DURATION_MS = 0;
|
|
|
30
30
|
|
|
31
31
|
/** @this {UiShellContext} */
|
|
32
32
|
function initialize() {
|
|
33
|
+
this.initializeExportBridge?.();
|
|
33
34
|
this.renderMarkdownToolbar?.();
|
|
34
35
|
this.themeController.initialize();
|
|
35
36
|
this.previewRenderer.applyTheme(this.themeController.getTheme());
|
|
@@ -130,6 +131,16 @@ function bindEvents() {
|
|
|
130
131
|
this.closeToolbarOverflowMenu?.();
|
|
131
132
|
});
|
|
132
133
|
|
|
134
|
+
this.elements.exportDocxButton?.addEventListener('click', () => {
|
|
135
|
+
void this.handleExportRequest?.('docx');
|
|
136
|
+
this.closeToolbarOverflowMenu?.();
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
this.elements.exportPdfButton?.addEventListener('click', () => {
|
|
140
|
+
void this.handleExportRequest?.('pdf');
|
|
141
|
+
this.closeToolbarOverflowMenu?.();
|
|
142
|
+
});
|
|
143
|
+
|
|
133
144
|
this.elements.fileHistoryButton?.addEventListener('click', () => {
|
|
134
145
|
const route = this.navigation.getHashRoute();
|
|
135
146
|
if (route.type === 'git-file-preview') {
|
|
@@ -220,13 +231,7 @@ function bindEvents() {
|
|
|
220
231
|
});
|
|
221
232
|
|
|
222
233
|
this.elements.previewContent?.addEventListener('click', (event) => {
|
|
223
|
-
|
|
224
|
-
if (!wikiLink) {
|
|
225
|
-
return;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
event.preventDefault();
|
|
229
|
-
this.handleWikiLinkClick(wikiLink.dataset.wikiTarget);
|
|
234
|
+
this.handlePreviewContentClick?.(event);
|
|
230
235
|
});
|
|
231
236
|
|
|
232
237
|
this.elements.sidebarToggle?.addEventListener('click', () => {
|
|
@@ -289,12 +294,60 @@ function bindEvents() {
|
|
|
289
294
|
});
|
|
290
295
|
}
|
|
291
296
|
|
|
297
|
+
function isNestedTaskListClickTarget(target, taskItem) {
|
|
298
|
+
const nestedList = target.closest('ul, ol');
|
|
299
|
+
return nestedList instanceof Element && nestedList.parentElement === taskItem;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
function isInteractiveTaskListDescendant(target) {
|
|
303
|
+
const taskCheckbox = target.closest('input[data-task-checkbox="true"]');
|
|
304
|
+
if (taskCheckbox) {
|
|
305
|
+
return false;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
return Boolean(target.closest('a, button, input, select, textarea, summary, [contenteditable="true"], [role="button"], [role="link"]'));
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
/** @this {UiShellContext} */
|
|
312
|
+
function handlePreviewContentClick(event) {
|
|
313
|
+
if (!(event.target instanceof Element)) {
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
const wikiLink = event.target.closest('a.wiki-link[data-wiki-target]');
|
|
318
|
+
if (wikiLink) {
|
|
319
|
+
event.preventDefault();
|
|
320
|
+
this.handleWikiLinkClick(wikiLink.dataset.wikiTarget);
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
const taskItem = event.target.closest('.task-list-item[data-source-line]');
|
|
325
|
+
if (!taskItem || isNestedTaskListClickTarget(event.target, taskItem) || isInteractiveTaskListDescendant(event.target)) {
|
|
326
|
+
return;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
event.preventDefault();
|
|
330
|
+
|
|
331
|
+
const sourceLine = Number.parseInt(taskItem.getAttribute('data-source-line') || '', 10);
|
|
332
|
+
if (!Number.isFinite(sourceLine)) {
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
this.session?.toggleTaskListItem?.(sourceLine);
|
|
337
|
+
}
|
|
338
|
+
|
|
292
339
|
/** @this {UiShellContext} */
|
|
293
340
|
function setToolbarOverflowOpen(nextState) {
|
|
294
|
-
this.toolbarOverflowOpen = Boolean(nextState)
|
|
341
|
+
this.toolbarOverflowOpen = Boolean(nextState);
|
|
295
342
|
this.elements.toolbarOverflowToggle?.setAttribute('aria-expanded', String(this.toolbarOverflowOpen));
|
|
296
343
|
this.elements.toolbarOverflowToggle?.classList.toggle('active', this.toolbarOverflowOpen);
|
|
297
344
|
this.elements.toolbarOverflowToggle?.closest('.toolbar-right')?.classList.toggle('is-overflow-open', this.toolbarOverflowOpen);
|
|
345
|
+
|
|
346
|
+
if (!this.toolbarOverflowOpen) {
|
|
347
|
+
this.elements.toolbarOverflowMenu?.querySelectorAll('details[open]').forEach((detail) => {
|
|
348
|
+
detail.removeAttribute('open');
|
|
349
|
+
});
|
|
350
|
+
}
|
|
298
351
|
}
|
|
299
352
|
|
|
300
353
|
/** @this {UiShellContext} */
|
|
@@ -304,14 +357,9 @@ function syncToolbarOverflowVisibility() {
|
|
|
304
357
|
return;
|
|
305
358
|
}
|
|
306
359
|
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
toggle.classList.toggle('hidden', !isMobile);
|
|
313
|
-
toggle.hidden = !isMobile;
|
|
314
|
-
toggle.setAttribute('aria-hidden', String(!isMobile));
|
|
360
|
+
toggle.classList.remove('hidden');
|
|
361
|
+
toggle.hidden = false;
|
|
362
|
+
toggle.setAttribute('aria-hidden', 'false');
|
|
315
363
|
}
|
|
316
364
|
|
|
317
365
|
/** @this {UiShellContext} */
|
|
@@ -429,6 +477,7 @@ export const uiFeatureShellMethods = {
|
|
|
429
477
|
closeToolbarOverflowMenu,
|
|
430
478
|
getStoredLineWrapping,
|
|
431
479
|
handleConnectionChange,
|
|
480
|
+
handlePreviewContentClick,
|
|
432
481
|
handleThemeChange,
|
|
433
482
|
hideEditorLoading,
|
|
434
483
|
initialize,
|