collabmd 0.1.18
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/LICENSE +21 -0
- package/README.md +453 -0
- package/bin/collabmd.js +241 -0
- package/docker-compose.yml +43 -0
- package/package.json +93 -0
- package/public/assets/css/base.css +1 -0
- package/public/assets/css/style.css +1 -0
- package/public/assets/js/assets/Assistant-Bold-ZDZZ6JHA.woff2 +0 -0
- package/public/assets/js/assets/Assistant-Medium-DZ25RZU3.woff2 +0 -0
- package/public/assets/js/assets/Assistant-Regular-PLF2XOGW.woff2 +0 -0
- package/public/assets/js/assets/Assistant-SemiBold-CZ5MX6FK.woff2 +0 -0
- package/public/assets/js/chunks/CodeMirrorEditor-UCMRAMCV-MAKZFDBE.js +12 -0
- package/public/assets/js/chunks/apl-C5P5JBDI.js +1 -0
- package/public/assets/js/chunks/ar-SA-NXDWD63E-MF6HMEA4.js +8 -0
- package/public/assets/js/chunks/architecture-PBZL5I3N-55LDZ5WS.js +1 -0
- package/public/assets/js/chunks/architectureDiagram-2XIMDMQ5-2VP562X7.js +36 -0
- package/public/assets/js/chunks/asciiarmor-3NCLLELT.js +1 -0
- package/public/assets/js/chunks/asn1-KF4WXU3M.js +1 -0
- package/public/assets/js/chunks/asterisk-EA3VIN65.js +1 -0
- package/public/assets/js/chunks/az-AZ-MXSORGZV-AIGO4TNU.js +1 -0
- package/public/assets/js/chunks/bg-BG-O6MV2KSF-X6AVO2AF.js +5 -0
- package/public/assets/js/chunks/blockDiagram-WCTKOSBZ-KM56WWDE.js +132 -0
- package/public/assets/js/chunks/bn-BD-T2VJNT7N-7OMHRIGC.js +3 -0
- package/public/assets/js/chunks/bn-IN-MMW2ORAC-EPKMNKG7.js +3 -0
- package/public/assets/js/chunks/brainfuck-A3CTQVFD.js +1 -0
- package/public/assets/js/chunks/c4Diagram-IC4MRINW-KX6UEGQZ.js +10 -0
- package/public/assets/js/chunks/ca-ES-MKBCGNOG-U44SUUTN.js +8 -0
- package/public/assets/js/chunks/chunk-2NTQWLZD.js +25 -0
- package/public/assets/js/chunks/chunk-2YRP2AWD.js +1 -0
- package/public/assets/js/chunks/chunk-3BUCGSSJ.js +1 -0
- package/public/assets/js/chunks/chunk-47L7JGE3.js +1 -0
- package/public/assets/js/chunks/chunk-4BCHPULB.js +1 -0
- package/public/assets/js/chunks/chunk-4NKM6YFO.js +161 -0
- package/public/assets/js/chunks/chunk-4WGMPBK5.js +1 -0
- package/public/assets/js/chunks/chunk-55WF6Y2Q.js +1 -0
- package/public/assets/js/chunks/chunk-775E65SU.js +1 -0
- package/public/assets/js/chunks/chunk-AJRGTECU.js +70 -0
- package/public/assets/js/chunks/chunk-B2J3PHGY.js +1 -0
- package/public/assets/js/chunks/chunk-B4JKB3BC.js +1 -0
- package/public/assets/js/chunks/chunk-BBHPYU2R.js +1 -0
- package/public/assets/js/chunks/chunk-CGVY4PKT.js +13 -0
- package/public/assets/js/chunks/chunk-CVTRX3TE.js +220 -0
- package/public/assets/js/chunks/chunk-DW6KK6VF.js +1 -0
- package/public/assets/js/chunks/chunk-E2HMNOQL.js +189 -0
- package/public/assets/js/chunks/chunk-EPTJZP5H.js +7 -0
- package/public/assets/js/chunks/chunk-G7NUGGE7.js +13 -0
- package/public/assets/js/chunks/chunk-GI7LBIBP.js +1 -0
- package/public/assets/js/chunks/chunk-GXRL27M7.js +1 -0
- package/public/assets/js/chunks/chunk-H6EYDHRW.js +1 -0
- package/public/assets/js/chunks/chunk-HOCBCDA5.js +1 -0
- package/public/assets/js/chunks/chunk-HS2CUOC6.js +1 -0
- package/public/assets/js/chunks/chunk-HUAS4BYI.js +12 -0
- package/public/assets/js/chunks/chunk-HVNNEPP5.js +2 -0
- package/public/assets/js/chunks/chunk-I2GVZI7W.js +38 -0
- package/public/assets/js/chunks/chunk-I6PVWGBN.js +14 -0
- package/public/assets/js/chunks/chunk-IR2DOYV4.js +7 -0
- package/public/assets/js/chunks/chunk-IZ3V3F2A.js +1 -0
- package/public/assets/js/chunks/chunk-KPAQHIOI.js +1 -0
- package/public/assets/js/chunks/chunk-M3EW4V74.js +1 -0
- package/public/assets/js/chunks/chunk-MK3AFU3C.js +90 -0
- package/public/assets/js/chunks/chunk-NM6J3ND7.js +1 -0
- package/public/assets/js/chunks/chunk-NO7UPWTU.js +1 -0
- package/public/assets/js/chunks/chunk-OG2TNZEU.js +9 -0
- package/public/assets/js/chunks/chunk-OHGDMMWM.js +1 -0
- package/public/assets/js/chunks/chunk-OOT2HALX.js +1 -0
- package/public/assets/js/chunks/chunk-OQLLZFFN.js +1 -0
- package/public/assets/js/chunks/chunk-PF6TP4EI.js +1 -0
- package/public/assets/js/chunks/chunk-PMOZMECZ.js +85 -0
- package/public/assets/js/chunks/chunk-QBGS6DJR.js +1 -0
- package/public/assets/js/chunks/chunk-QF3ZQ6UQ.js +1 -0
- package/public/assets/js/chunks/chunk-QFXMAUW4.js +1 -0
- package/public/assets/js/chunks/chunk-QSTBGTWJ.js +1 -0
- package/public/assets/js/chunks/chunk-QYKIT2IH.js +41 -0
- package/public/assets/js/chunks/chunk-S75BI2UQ.js +1 -0
- package/public/assets/js/chunks/chunk-SKEZZ3H6.js +1 -0
- package/public/assets/js/chunks/chunk-SO6QBCB6.js +1 -0
- package/public/assets/js/chunks/chunk-SR3U53EQ.js +1 -0
- package/public/assets/js/chunks/chunk-TFP6LRYJ.js +53 -0
- package/public/assets/js/chunks/chunk-U6APNHAF.js +15 -0
- package/public/assets/js/chunks/chunk-VOODXHXA.js +1 -0
- package/public/assets/js/chunks/chunk-W7WJUTSA.js +3 -0
- package/public/assets/js/chunks/chunk-WNXFO2F2.js +1 -0
- package/public/assets/js/chunks/chunk-X6EEYWV4.js +6 -0
- package/public/assets/js/chunks/chunk-YVW3ZETS.js +1 -0
- package/public/assets/js/chunks/chunk-ZR2QRTBG.js +339 -0
- package/public/assets/js/chunks/chunk-ZZJX4LQ2.js +1 -0
- package/public/assets/js/chunks/classDiagram-VBA2DB6C-IYW4O2RM.js +1 -0
- package/public/assets/js/chunks/classDiagram-v2-RAHNMMFH-DNKVN2WD.js +1 -0
- package/public/assets/js/chunks/clike-RTBH33GE.js +1 -0
- package/public/assets/js/chunks/clojure-BR2VJ2JI.js +1 -0
- package/public/assets/js/chunks/cmake-2HEWVFEE.js +1 -0
- package/public/assets/js/chunks/cobol-V6EIK6DN.js +1 -0
- package/public/assets/js/chunks/coffeescript-JW3ZOGMD.js +1 -0
- package/public/assets/js/chunks/commonlisp-UCWSIHYK.js +1 -0
- package/public/assets/js/chunks/cose-bilkent-S5V4N54A-QVYRFFNC.js +1 -0
- package/public/assets/js/chunks/crystal-GR4VLC3M.js +1 -0
- package/public/assets/js/chunks/cs-CZ-V77HGUP7-OLBAKFG5.js +7 -0
- package/public/assets/js/chunks/css-C5DVWGB4.js +1 -0
- package/public/assets/js/chunks/cypher-K7FZM5GC.js +1 -0
- package/public/assets/js/chunks/d-CF3QNNH5.js +1 -0
- package/public/assets/js/chunks/da-DK-I5RFNTM4-QJIG2SEZ.js +2 -0
- package/public/assets/js/chunks/dagre-KLK3FWXG-KVNBUDOY.js +4 -0
- package/public/assets/js/chunks/de-CH-WLRDEVBV-4MMJDMVD.js +7 -0
- package/public/assets/js/chunks/de-DE-DTI4WUSC-ML7C46TT.js +7 -0
- package/public/assets/js/chunks/diagram-E7M64L7V-ZP33VRUC.js +24 -0
- package/public/assets/js/chunks/diagram-IFDJBPK2-ZG35YWOD.js +43 -0
- package/public/assets/js/chunks/diagram-P4PSJMXO-ZGIGM7D2.js +24 -0
- package/public/assets/js/chunks/diff-KOMSZU7O.js +1 -0
- package/public/assets/js/chunks/dist-7RQKSOUX.js +7 -0
- package/public/assets/js/chunks/dist-ARWGZ6MN.js +1 -0
- package/public/assets/js/chunks/dist-DPBSGC3Y.js +2 -0
- package/public/assets/js/chunks/dist-E36PJE5M.js +1 -0
- package/public/assets/js/chunks/dist-E5NM7OBW.js +1 -0
- package/public/assets/js/chunks/dist-ERADYPEK.js +1 -0
- package/public/assets/js/chunks/dist-F43RIHBZ.js +1 -0
- package/public/assets/js/chunks/dist-HAB5NIXI.js +1 -0
- package/public/assets/js/chunks/dist-HG23OLRA.js +1 -0
- package/public/assets/js/chunks/dist-IEJXBSDJ.js +1 -0
- package/public/assets/js/chunks/dist-IQA4KVJK.js +1 -0
- package/public/assets/js/chunks/dist-OIQTNVT2.js +3 -0
- package/public/assets/js/chunks/dist-PMZJ734S.js +1 -0
- package/public/assets/js/chunks/dist-RCQFQRLD.js +1 -0
- package/public/assets/js/chunks/dist-RQLC4GVI.js +1 -0
- package/public/assets/js/chunks/dist-RSJGLSKC.js +1 -0
- package/public/assets/js/chunks/dist-SGNQZVVX.js +1 -0
- package/public/assets/js/chunks/dist-VCFTF7Z6.js +1 -0
- package/public/assets/js/chunks/dist-VTO23SHH.js +1 -0
- package/public/assets/js/chunks/dist-XOODBV4L.js +1 -0
- package/public/assets/js/chunks/dist-ZFZNCRZY.js +1 -0
- package/public/assets/js/chunks/dockerfile-XCIKYOSI.js +1 -0
- package/public/assets/js/chunks/dtd-3XFH7W6Z.js +1 -0
- package/public/assets/js/chunks/dylan-3UWPKVOR.js +1 -0
- package/public/assets/js/chunks/ebnf-OLHTL3VN.js +1 -0
- package/public/assets/js/chunks/ecl-43LZ3ZRM.js +1 -0
- package/public/assets/js/chunks/editor-session-IHFTYG5D.js +22 -0
- package/public/assets/js/chunks/eiffel-ISPO2UJF.js +1 -0
- package/public/assets/js/chunks/el-GR-ZXDJ2OS4-WSCEIO6J.js +7 -0
- package/public/assets/js/chunks/elm-CLK576PK.js +1 -0
- package/public/assets/js/chunks/en-CTDJDZ6K-IC3QAUOI.js +1 -0
- package/public/assets/js/chunks/erDiagram-INFDFZHY-ZMS6H2TH.js +70 -0
- package/public/assets/js/chunks/erlang-AVQXQFOT.js +1 -0
- package/public/assets/js/chunks/es-ES-DYQHAD43-XGB5X5IM.js +7 -0
- package/public/assets/js/chunks/eu-ES-QDSYU5Y3-LA3JTIJ2.js +7 -0
- package/public/assets/js/chunks/excalidraw-mermaid-stub-NYXTOJ4H.js +1 -0
- package/public/assets/js/chunks/fa-IR-26LZG4PM-PFALMEDX.js +9 -0
- package/public/assets/js/chunks/factor-CRTVBD6Q.js +1 -0
- package/public/assets/js/chunks/fcl-FX24LKTH.js +1 -0
- package/public/assets/js/chunks/fi-FI-6YS4KDE4-ES5MV6P4.js +6 -0
- package/public/assets/js/chunks/flowDiagram-PKNHOUZH-QD4L5IE5.js +162 -0
- package/public/assets/js/chunks/forth-YKDKCTVS.js +1 -0
- package/public/assets/js/chunks/fortran-UJWC6SLU.js +1 -0
- package/public/assets/js/chunks/fr-FR-BRLLPTZC-VMFE22YV.js +12 -0
- package/public/assets/js/chunks/ganttDiagram-A5KZAMGK-VTMTQESP.js +292 -0
- package/public/assets/js/chunks/gas-MYEMWGRE.js +1 -0
- package/public/assets/js/chunks/gherkin-JWHAU2YG.js +1 -0
- package/public/assets/js/chunks/gitGraph-HDMCJU4V-YPHS74XX.js +1 -0
- package/public/assets/js/chunks/gitGraphDiagram-K3NZZRJ6-Z3EZ634T.js +65 -0
- package/public/assets/js/chunks/gl-ES-OKUZTLYG-GPT42ZHV.js +6 -0
- package/public/assets/js/chunks/groovy-QZIZQIAK.js +1 -0
- package/public/assets/js/chunks/haskell-JR3G7YNW.js +1 -0
- package/public/assets/js/chunks/haxe-TVLAIYEN.js +1 -0
- package/public/assets/js/chunks/he-IL-26MGYIU7-VQ5XQYYY.js +8 -0
- package/public/assets/js/chunks/hi-IN-Q4ZOGTP2-2Z766MXA.js +3 -0
- package/public/assets/js/chunks/http-YXQRE77G.js +1 -0
- package/public/assets/js/chunks/hu-HU-P2OXPSN5-6XDVPGTE.js +3 -0
- package/public/assets/js/chunks/id-ID-2EIKXYN6-J5GWSY2S.js +8 -0
- package/public/assets/js/chunks/idl-RAQGJ6LJ.js +1 -0
- package/public/assets/js/chunks/image-32MOCVDX-JN2EUMQG.js +1 -0
- package/public/assets/js/chunks/image-blob-reduce.esm-K5OWL55S.js +13 -0
- package/public/assets/js/chunks/info-3K5VOQVL-CXJSPNNP.js +1 -0
- package/public/assets/js/chunks/infoDiagram-LFFYTUFH-WQ34MUJA.js +2 -0
- package/public/assets/js/chunks/ishikawaDiagram-PHBUUO56-4IARWKJK.js +70 -0
- package/public/assets/js/chunks/it-IT-4CFKVXI2-NMBWUWFF.js +12 -0
- package/public/assets/js/chunks/ja-JP-MAND2Z4V-GQZYXXOC.js +7 -0
- package/public/assets/js/chunks/javascript-NM7KDJUE.js +1 -0
- package/public/assets/js/chunks/journeyDiagram-4ABVD52K-FJ4LF4SX.js +139 -0
- package/public/assets/js/chunks/julia-LG3BH25B.js +1 -0
- package/public/assets/js/chunks/kaa-HQRTCXTJ-7D6PAKDJ.js +1 -0
- package/public/assets/js/chunks/kab-KAB-JKIKKTGH-TNKFXNAX.js +4 -0
- package/public/assets/js/chunks/kanban-definition-K7BYSVSG-TY4EVYI3.js +89 -0
- package/public/assets/js/chunks/katex-5YJCUCFD.js +261 -0
- package/public/assets/js/chunks/kk-KZ-HXQ63ZFC-T4HCMWED.js +1 -0
- package/public/assets/js/chunks/km-KH-PKL3LSGX-HTLHEJV6.js +7 -0
- package/public/assets/js/chunks/ko-KR-KXLREZX3-QMR52QVI.js +5 -0
- package/public/assets/js/chunks/ku-TR-MJ4IER3X-K5CNY4UO.js +6 -0
- package/public/assets/js/chunks/livescript-4CVWVI4M.js +1 -0
- package/public/assets/js/chunks/lt-LT-H6WFQ6FJ-IW25FAGX.js +3 -0
- package/public/assets/js/chunks/lua-VWGE7DQ7.js +1 -0
- package/public/assets/js/chunks/lv-LV-GOCK6SJW-KTDFW5OH.js +4 -0
- package/public/assets/js/chunks/mathematica-D7APQSEU.js +1 -0
- package/public/assets/js/chunks/mbox-BN3XQBYX.js +1 -0
- package/public/assets/js/chunks/mermaid-runtime-BIFNJ2CT.js +18 -0
- package/public/assets/js/chunks/mindmap-definition-YRQLILUH-5B565RNP.js +68 -0
- package/public/assets/js/chunks/mirc-565WBI76.js +1 -0
- package/public/assets/js/chunks/mllike-VV3KS46B.js +1 -0
- package/public/assets/js/chunks/modelica-EGX44FZV.js +1 -0
- package/public/assets/js/chunks/mr-IN-IXVLDMEQ-PHM5DT7Q.js +9 -0
- package/public/assets/js/chunks/mscgen-GFGTHENT.js +1 -0
- package/public/assets/js/chunks/mumps-POZYWSMI.js +1 -0
- package/public/assets/js/chunks/my-MM-YG6MYTTD-ZHLCMEVA.js +1 -0
- package/public/assets/js/chunks/nb-NO-XGWJISD2-KSDFG6YU.js +8 -0
- package/public/assets/js/chunks/nginx-JUBX55EU.js +1 -0
- package/public/assets/js/chunks/nl-NL-XVDVCPNC-KVF3ZO2R.js +13 -0
- package/public/assets/js/chunks/nn-NO-EMX5MJX5-34QKSHNR.js +4 -0
- package/public/assets/js/chunks/nsis-RC4CREGM.js +1 -0
- package/public/assets/js/chunks/ntriples-4WK6CNVE.js +1 -0
- package/public/assets/js/chunks/oc-FR-ROEINTVO-5GP4AOYO.js +4 -0
- package/public/assets/js/chunks/octave-GOKFN2V7.js +1 -0
- package/public/assets/js/chunks/oz-OQUMNC63.js +1 -0
- package/public/assets/js/chunks/pa-IN-ZYN6SUDY-MVL7O44W.js +4 -0
- package/public/assets/js/chunks/packet-RMMSAZCW-D7XTR5TT.js +1 -0
- package/public/assets/js/chunks/pascal-BBWQWWWD.js +1 -0
- package/public/assets/js/chunks/percentages-5DKR754L-DG7W23CV.js +1 -0
- package/public/assets/js/chunks/perl-KTPJTTAM.js +1 -0
- package/public/assets/js/chunks/pica-6G3NROWT.js +17 -0
- package/public/assets/js/chunks/pie-UPGHQEXC-KGC3O6LN.js +1 -0
- package/public/assets/js/chunks/pieDiagram-SKSYHLDU-KWKRDEZS.js +30 -0
- package/public/assets/js/chunks/pig-IJMBS4FZ.js +1 -0
- package/public/assets/js/chunks/pl-PL-6VTG7PHC-VADRWSX4.js +12 -0
- package/public/assets/js/chunks/powershell-6YGCBHDP.js +1 -0
- package/public/assets/js/chunks/preview-render-compiler-WD3A76I6.js +25 -0
- package/public/assets/js/chunks/properties-5QTD3364.js +1 -0
- package/public/assets/js/chunks/protobuf-LTRWBIK3.js +1 -0
- package/public/assets/js/chunks/pt-BR-5YFKRR5G-HHF4UPO4.js +6 -0
- package/public/assets/js/chunks/pt-PT-GEIXXZ67-TUTAUZJK.js +8 -0
- package/public/assets/js/chunks/pug-U4PV3WLG.js +1 -0
- package/public/assets/js/chunks/puppet-WGYJPR3Y.js +1 -0
- package/public/assets/js/chunks/python-6YGH4S47.js +1 -0
- package/public/assets/js/chunks/q-VIG4IJLI.js +1 -0
- package/public/assets/js/chunks/quadrantDiagram-337W2JSQ-GWQRUFHQ.js +7 -0
- package/public/assets/js/chunks/quick-switcher-controller-JYDIJVAJ.js +5 -0
- package/public/assets/js/chunks/r-NVPCXGTR.js +1 -0
- package/public/assets/js/chunks/radar-KQ55EAFF-OPO64DRI.js +1 -0
- package/public/assets/js/chunks/requirementDiagram-Z7DCOOCP-ASW7IPJL.js +73 -0
- package/public/assets/js/chunks/ro-RO-E2P6TFZI-RJFCULYF.js +12 -0
- package/public/assets/js/chunks/roundRect-Z3DX3W5S.js +1 -0
- package/public/assets/js/chunks/rpm-UEA257HD.js +1 -0
- package/public/assets/js/chunks/ru-RU-YBIIY43T-BF27TNVK.js +10 -0
- package/public/assets/js/chunks/ruby-KPQRAJGE.js +1 -0
- package/public/assets/js/chunks/sankeyDiagram-WA2Y5GQK-W6BBWCLW.js +10 -0
- package/public/assets/js/chunks/sas-L7VATVH5.js +1 -0
- package/public/assets/js/chunks/scheme-T2NOWR3P.js +1 -0
- package/public/assets/js/chunks/sequenceDiagram-2WXFIKYE-H4G3ISLN.js +145 -0
- package/public/assets/js/chunks/shell-DLVDUNFA.js +1 -0
- package/public/assets/js/chunks/si-LK-673C2CI2-IOFGU4U2.js +1 -0
- package/public/assets/js/chunks/sieve-BKBZYDBU.js +1 -0
- package/public/assets/js/chunks/sk-SK-CKZHQ4AP-6O5JGN26.js +7 -0
- package/public/assets/js/chunks/sl-SI-557H2GWM-2NEHLV7W.js +6 -0
- package/public/assets/js/chunks/smalltalk-WRJQKJSD.js +1 -0
- package/public/assets/js/chunks/solr-66B3BIDL.js +1 -0
- package/public/assets/js/chunks/sparql-S25Z47JG.js +1 -0
- package/public/assets/js/chunks/spreadsheet-B272EF7Y.js +1 -0
- package/public/assets/js/chunks/sql-BPLIIUYC.js +1 -0
- package/public/assets/js/chunks/stateDiagram-RAJIS63D-OF5XXRUS.js +1 -0
- package/public/assets/js/chunks/stateDiagram-v2-FVOUBMTO-IV2CSQSQ.js +1 -0
- package/public/assets/js/chunks/stex-4IJY64QX.js +1 -0
- package/public/assets/js/chunks/stylus-PJUHLGPT.js +1 -0
- package/public/assets/js/chunks/subset-shared.chunk-4NMWHS4D.js +1 -0
- package/public/assets/js/chunks/subset-worker.chunk-NTLP7Y66.js +1 -0
- package/public/assets/js/chunks/sv-SE-XOPKKDWS-Q2L6KGFV.js +8 -0
- package/public/assets/js/chunks/swift-UYHTO4SX.js +1 -0
- package/public/assets/js/chunks/ta-IN-XBH7DQI3-ISSUGZAK.js +6 -0
- package/public/assets/js/chunks/tcl-OQ5J3VO2.js +1 -0
- package/public/assets/js/chunks/textile-NOGVBEYF.js +1 -0
- package/public/assets/js/chunks/th-TH-TOCWH3R4-TABEAMJA.js +1 -0
- package/public/assets/js/chunks/tiddlywiki-SYTK4QUE.js +1 -0
- package/public/assets/js/chunks/tiki-P7K4ZLOM.js +1 -0
- package/public/assets/js/chunks/timeline-definition-YZTLITO2-HBCANIUC.js +61 -0
- package/public/assets/js/chunks/toml-AUZYRP36.js +1 -0
- package/public/assets/js/chunks/tr-TR-GXW6CYY5-5NQRN52Y.js +4 -0
- package/public/assets/js/chunks/treemap-KZPCXAKY-WYMCT5F7.js +1 -0
- package/public/assets/js/chunks/troff-XFYJNQOJ.js +1 -0
- package/public/assets/js/chunks/ttcn-AK2IXWU6.js +1 -0
- package/public/assets/js/chunks/ttcn-cfg-3IDPIYPU.js +1 -0
- package/public/assets/js/chunks/turtle-OIDMF46P.js +1 -0
- package/public/assets/js/chunks/uk-UA-IJKTNUDG-2IIL3TO5.js +6 -0
- package/public/assets/js/chunks/uz-UZ-TBZZEA4V-X22KVKBP.js +1 -0
- package/public/assets/js/chunks/vb-J6K4XVA2.js +1 -0
- package/public/assets/js/chunks/vbscript-FM7DDZZE.js +1 -0
- package/public/assets/js/chunks/velocity-6KZFEOFD.js +1 -0
- package/public/assets/js/chunks/vennDiagram-LZ73GAT5-EBRF3MZR.js +34 -0
- package/public/assets/js/chunks/verilog-EWWQPMNN.js +1 -0
- package/public/assets/js/chunks/vhdl-CJ3M4IHI.js +1 -0
- package/public/assets/js/chunks/vi-VN-MULSGNVB-TENM65C7.js +7 -0
- package/public/assets/js/chunks/webidl-XVBHXCRV.js +1 -0
- package/public/assets/js/chunks/xquery-7WZOZ4UK.js +1 -0
- package/public/assets/js/chunks/xychartDiagram-JWTSCODW-WIFVRQPR.js +7 -0
- package/public/assets/js/chunks/yacas-MZ2ZZPF3.js +1 -0
- package/public/assets/js/chunks/z80-I447CBF7.js +1 -0
- package/public/assets/js/chunks/zh-CN-MVX3E32U-S5VA2BA5.js +11 -0
- package/public/assets/js/chunks/zh-HK-JNU5RLIE-A4VUKZFV.js +1 -0
- package/public/assets/js/chunks/zh-TW-LENVCA6T-KFB6KHMM.js +9 -0
- package/public/assets/js/excalidraw-editor-7ORML5YA.css +1 -0
- package/public/assets/js/excalidraw-editor-LKW2AZBU.js +347 -0
- package/public/assets/js/excalidraw-editor.css +1 -0
- package/public/assets/js/excalidraw-editor.js +1 -0
- package/public/assets/js/main.js +354 -0
- package/public/assets/js/preview-render-worker.js +30 -0
- package/public/assets/vendor/highlight/github-dark.min.css +10 -0
- package/public/assets/vendor/highlight/github.min.css +10 -0
- package/public/excalidraw-editor.html +31 -0
- package/public/index.html +549 -0
- package/scripts/cloudflare-tunnel.mjs +145 -0
- package/scripts/local-plantuml-compose.mjs +92 -0
- package/server.js +1 -0
- package/src/client/application/app-shell/chat-feature.js +363 -0
- package/src/client/application/app-shell/comments-feature.js +33 -0
- package/src/client/application/app-shell/git-feature.js +394 -0
- package/src/client/application/app-shell/presence-feature.js +229 -0
- package/src/client/application/app-shell/ui-feature.js +535 -0
- package/src/client/application/app-shell/workspace-feature.js +132 -0
- package/src/client/application/app-shell-elements.js +78 -0
- package/src/client/application/diagram-preview-hydrator.js +382 -0
- package/src/client/application/file-open-lifecycle.js +26 -0
- package/src/client/application/mermaid-preview-hydrator.js +570 -0
- package/src/client/application/plantuml-preview-hydrator.js +563 -0
- package/src/client/application/preview-diagram-utils.js +223 -0
- package/src/client/application/preview-render-compiler.js +426 -0
- package/src/client/application/preview-render-executor.js +153 -0
- package/src/client/application/preview-render-profile.js +63 -0
- package/src/client/application/preview-render-scheduler.js +73 -0
- package/src/client/application/preview-render-worker.js +19 -0
- package/src/client/application/preview-renderer.js +452 -0
- package/src/client/application/wiki-link-file-controller.js +58 -0
- package/src/client/application/workspace-chrome-controller.js +84 -0
- package/src/client/application/workspace-coordinator.js +238 -0
- package/src/client/application/workspace-preview-controller.js +237 -0
- package/src/client/application/workspace-route-controller.js +170 -0
- package/src/client/application/workspace-state-store.js +46 -0
- package/src/client/bootstrap/collabmd-app-shell.js +479 -0
- package/src/client/domain/diagram-action-icons.js +41 -0
- package/src/client/domain/excalidraw-collaboration.js +153 -0
- package/src/client/domain/excalidraw-scene.js +87 -0
- package/src/client/domain/markdown-formatting.js +370 -0
- package/src/client/domain/plantuml-language.js +226 -0
- package/src/client/domain/room.js +49 -0
- package/src/client/domain/runtime-paths.js +136 -0
- package/src/client/domain/vault-api-client.js +1 -0
- package/src/client/domain/vault-paths.js +80 -0
- package/src/client/domain/vault-utils.js +49 -0
- package/src/client/domain/wiki-link-completions.js +78 -0
- package/src/client/excalidraw-editor.js +630 -0
- package/src/client/excalidraw-mermaid-stub.js +7 -0
- package/src/client/infrastructure/auth-client.js +383 -0
- package/src/client/infrastructure/browser-navigation-port.js +19 -0
- package/src/client/infrastructure/browser-notification-port.js +40 -0
- package/src/client/infrastructure/browser-preferences-port.js +79 -0
- package/src/client/infrastructure/comment-thread-store.js +293 -0
- package/src/client/infrastructure/editor-collaboration-client.js +240 -0
- package/src/client/infrastructure/editor-session.js +255 -0
- package/src/client/infrastructure/editor-view-adapter.js +578 -0
- package/src/client/infrastructure/excalidraw-room-client.js +651 -0
- package/src/client/infrastructure/lobby-presence.js +304 -0
- package/src/client/infrastructure/runtime-config.js +65 -0
- package/src/client/infrastructure/tab-activity-lock.js +193 -0
- package/src/client/infrastructure/vault-api-client.js +61 -0
- package/src/client/infrastructure/yjs-provider-reset-guard.js +19 -0
- package/src/client/main.js +16 -0
- package/src/client/mermaid-runtime.js +3 -0
- package/src/client/presentation/backlinks-panel.js +188 -0
- package/src/client/presentation/comment-ui-controller.js +1235 -0
- package/src/client/presentation/comments-panel.js +531 -0
- package/src/client/presentation/excalidraw-embed-controller.js +968 -0
- package/src/client/presentation/excalidraw-embed-reconciler.js +37 -0
- package/src/client/presentation/file-action-controller.js +596 -0
- package/src/client/presentation/file-explorer-controller.js +81 -0
- package/src/client/presentation/file-explorer-view.js +256 -0
- package/src/client/presentation/file-tree-state.js +77 -0
- package/src/client/presentation/git-diff-view-controller.js +656 -0
- package/src/client/presentation/git-panel-controller.js +516 -0
- package/src/client/presentation/layout-controller.js +222 -0
- package/src/client/presentation/outline-controller.js +239 -0
- package/src/client/presentation/quick-switcher-controller.js +300 -0
- package/src/client/presentation/scroll-sync-controller.js +500 -0
- package/src/client/presentation/theme-controller.js +64 -0
- package/src/client/presentation/toast-controller.js +21 -0
- package/src/client/presentation/video-embed-controller.js +264 -0
- package/src/client/styles/base.css +58 -0
- package/src/client/styles/style.css +4245 -0
- package/src/domain/comment-threads.js +233 -0
- package/src/domain/excalidraw-room-codec.js +427 -0
- package/src/domain/file-kind.js +104 -0
- package/src/domain/wiki-link-resolver.js +75 -0
- package/src/server/auth/create-auth-service.js +272 -0
- package/src/server/auth/session-cookie.js +125 -0
- package/src/server/config/env.js +186 -0
- package/src/server/create-app-server.js +143 -0
- package/src/server/domain/backlink-index.js +291 -0
- package/src/server/domain/collaboration/collaboration-document-store.js +155 -0
- package/src/server/domain/collaboration/collaboration-room.js +603 -0
- package/src/server/domain/collaboration/protocol.js +2 -0
- package/src/server/domain/collaboration/room-client-state-store.js +28 -0
- package/src/server/domain/collaboration/room-persistence-controller.js +80 -0
- package/src/server/domain/collaboration/room-registry.js +94 -0
- package/src/server/domain/git-service.js +1 -0
- package/src/server/domain/plantuml-encoder.js +49 -0
- package/src/server/domain/plantuml-renderer.js +1 -0
- package/src/server/index.js +72 -0
- package/src/server/infrastructure/git/command-runner.js +48 -0
- package/src/server/infrastructure/git/concurrency.js +19 -0
- package/src/server/infrastructure/git/diff-service.js +389 -0
- package/src/server/infrastructure/git/errors.js +5 -0
- package/src/server/infrastructure/git/git-service.js +216 -0
- package/src/server/infrastructure/git/parsers.js +401 -0
- package/src/server/infrastructure/git/path-utils.js +65 -0
- package/src/server/infrastructure/git/responses.js +108 -0
- package/src/server/infrastructure/git/status-service.js +99 -0
- package/src/server/infrastructure/git/untracked-files.js +101 -0
- package/src/server/infrastructure/http/create-auth-api-handler.js +48 -0
- package/src/server/infrastructure/http/create-esm-proxy-handler.js +130 -0
- package/src/server/infrastructure/http/create-git-api-command-handler.js +170 -0
- package/src/server/infrastructure/http/create-git-api-handler.js +40 -0
- package/src/server/infrastructure/http/create-git-api-query-handler.js +62 -0
- package/src/server/infrastructure/http/create-plantuml-api-handler.js +43 -0
- package/src/server/infrastructure/http/create-request-handler.js +138 -0
- package/src/server/infrastructure/http/create-static-handler.js +167 -0
- package/src/server/infrastructure/http/create-vault-api-command-handler.js +161 -0
- package/src/server/infrastructure/http/create-vault-api-handler.js +43 -0
- package/src/server/infrastructure/http/create-vault-api-query-handler.js +82 -0
- package/src/server/infrastructure/http/http-errors.js +13 -0
- package/src/server/infrastructure/http/http-response.js +167 -0
- package/src/server/infrastructure/http/request-body.js +56 -0
- package/src/server/infrastructure/persistence/path-utils.js +90 -0
- package/src/server/infrastructure/persistence/sidecar-store.js +150 -0
- package/src/server/infrastructure/persistence/vault-content-adapter.js +49 -0
- package/src/server/infrastructure/persistence/vault-file-store.js +435 -0
- package/src/server/infrastructure/plantuml/plantuml-renderer.js +56 -0
- package/src/server/infrastructure/websocket/attach-collaboration-gateway.js +194 -0
- package/src/server/infrastructure/websocket/client-socket-session.js +151 -0
- package/src/server/startup/git-remote-bootstrap.js +435 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
|
|
2
|
+
Theme: GitHub Dark
|
|
3
|
+
Description: Dark theme as seen on github.com
|
|
4
|
+
Author: github.com
|
|
5
|
+
Maintainer: @Hirse
|
|
6
|
+
Updated: 2021-05-15
|
|
7
|
+
|
|
8
|
+
Outdated base version: https://github.com/primer/github-syntax-dark
|
|
9
|
+
Current colors taken from GitHub's CSS
|
|
10
|
+
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#79c0ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-code,.hljs-comment,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
|
|
2
|
+
Theme: GitHub
|
|
3
|
+
Description: Light theme as seen on github.com
|
|
4
|
+
Author: github.com
|
|
5
|
+
Maintainer: @Hirse
|
|
6
|
+
Updated: 2021-05-15
|
|
7
|
+
|
|
8
|
+
Outdated base version: https://github.com/primer/github-syntax-light
|
|
9
|
+
Current colors taken from GitHub's CSS
|
|
10
|
+
*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Excalidraw — CollabMD</title>
|
|
7
|
+
<link rel="stylesheet" href="./assets/js/excalidraw-editor.css">
|
|
8
|
+
<style>
|
|
9
|
+
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
10
|
+
html, body { width: 100%; height: 100%; overflow: hidden; background: transparent; }
|
|
11
|
+
#root { width: 100%; height: 100%; }
|
|
12
|
+
.loading-state {
|
|
13
|
+
display: flex;
|
|
14
|
+
align-items: center;
|
|
15
|
+
justify-content: center;
|
|
16
|
+
height: 100%;
|
|
17
|
+
font-family: system-ui, -apple-system, sans-serif;
|
|
18
|
+
color: #888;
|
|
19
|
+
font-size: 14px;
|
|
20
|
+
}
|
|
21
|
+
.loading-state.error { color: #e55; }
|
|
22
|
+
</style>
|
|
23
|
+
<script src="./app-config.js"></script>
|
|
24
|
+
</head>
|
|
25
|
+
<body>
|
|
26
|
+
<div id="root">
|
|
27
|
+
<div class="loading-state" id="loadingState">Loading Excalidraw...</div>
|
|
28
|
+
</div>
|
|
29
|
+
<script type="module" src="./assets/js/excalidraw-editor.js"></script>
|
|
30
|
+
</body>
|
|
31
|
+
</html>
|
|
@@ -0,0 +1,549 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en" data-theme="dark">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<meta name="description" content="CollabMD — collaborative markdown vault. Edit markdown files together in realtime.">
|
|
7
|
+
<title>CollabMD — Collaborative Markdown Vault</title>
|
|
8
|
+
<link rel="stylesheet" href="./assets/css/base.css">
|
|
9
|
+
<link rel="stylesheet" href="./assets/css/style.css">
|
|
10
|
+
<link
|
|
11
|
+
rel="stylesheet"
|
|
12
|
+
href="./assets/vendor/highlight/github-dark.min.css"
|
|
13
|
+
id="hljs-theme"
|
|
14
|
+
data-dark-href="./assets/vendor/highlight/github-dark.min.css"
|
|
15
|
+
data-light-href="./assets/vendor/highlight/github.min.css"
|
|
16
|
+
>
|
|
17
|
+
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><rect x='2' y='4' width='18' height='24' rx='3' fill='%23818cf8'/><rect x='12' y='4' width='18' height='24' rx='3' fill='%234f46e5' opacity='0.8'/><path d='M18 12h6M18 16h6M18 20h4' stroke='white' stroke-width='1.5' stroke-linecap='round'/></svg>">
|
|
18
|
+
<script>
|
|
19
|
+
if (window.location.hash.includes('file=') || window.location.hash.includes('git-diff=')) {
|
|
20
|
+
document.documentElement.setAttribute('data-initial-file-requested', 'true');
|
|
21
|
+
}
|
|
22
|
+
</script>
|
|
23
|
+
</head>
|
|
24
|
+
<body>
|
|
25
|
+
<a href="#editorContainer" class="sr-only" style="position:absolute;top:8px;left:8px;z-index:1000;background:var(--color-primary);color:var(--color-text-inverse);padding:8px 16px;border-radius:6px;" onfocus="this.style.position='fixed';this.style.clip='auto';this.style.width='auto';this.style.height='auto'" onblur="this.style.position='absolute';this.className='sr-only'">Skip to editor</a>
|
|
26
|
+
|
|
27
|
+
<div class="app-shell">
|
|
28
|
+
<!-- ========== SIDEBAR ========== -->
|
|
29
|
+
<aside id="sidebar" class="sidebar">
|
|
30
|
+
<div class="sidebar-header">
|
|
31
|
+
<div class="sidebar-brand">
|
|
32
|
+
<svg width="20" height="20" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
|
|
33
|
+
<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"/>
|
|
34
|
+
<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"/>
|
|
35
|
+
<path d="M14 20l4 10 1.5-4 4-1.5L14 20z" fill="var(--color-primary)" opacity="0.7"/>
|
|
36
|
+
<path d="M38 28l-4-10-1.5 4-4 1.5L38 28z" fill="var(--color-primary)"/>
|
|
37
|
+
</svg>
|
|
38
|
+
<span class="sidebar-title">CollabMD</span>
|
|
39
|
+
</div>
|
|
40
|
+
<div class="sidebar-actions">
|
|
41
|
+
<button class="sidebar-action-btn sidebar-close-btn" id="sidebarClose" aria-label="Close sidebar" title="Close sidebar">
|
|
42
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">
|
|
43
|
+
<line x1="18" y1="6" x2="6" y2="18"/>
|
|
44
|
+
<line x1="6" y1="6" x2="18" y2="18"/>
|
|
45
|
+
</svg>
|
|
46
|
+
</button>
|
|
47
|
+
<button class="sidebar-action-btn" id="newFileBtn" aria-label="New file" title="New file">
|
|
48
|
+
<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>
|
|
49
|
+
</button>
|
|
50
|
+
<button class="sidebar-action-btn" id="newDrawingBtn" aria-label="New drawing" title="New Excalidraw drawing">
|
|
51
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19l7-7 3 3-7 7-3-3z"/><path d="M18 13l-1.5-7.5L2 2l3.5 14.5L13 18l5-5z"/><path d="M2 2l7.586 7.586"/><circle cx="11" cy="11" r="2"/></svg>
|
|
52
|
+
</button>
|
|
53
|
+
<button class="sidebar-action-btn" id="newMermaidBtn" aria-label="New Mermaid diagram" title="New Mermaid diagram">
|
|
54
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 7.5c0-1.38 1.12-2.5 2.5-2.5 1.04 0 1.93.64 2.3 1.56A2.5 2.5 0 0 1 14 8.5v1"/><path d="M19 16.5c0 1.38-1.12 2.5-2.5 2.5-1.04 0-1.93-.64-2.3-1.56A2.5 2.5 0 0 1 10 15.5v-1"/><path d="M8 10.5h8"/><path d="M8 13.5h8"/><path d="M10 8.5v7"/><path d="M14 8.5v7"/></svg>
|
|
55
|
+
</button>
|
|
56
|
+
<button class="sidebar-action-btn" id="newPlantumlBtn" aria-label="New PlantUML diagram" title="New PlantUML diagram">
|
|
57
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="7" height="6" rx="1"/><rect x="14" y="4" width="7" height="6" rx="1"/><rect x="8.5" y="14" width="7" height="6" rx="1"/><path d="M10 7h4"/><path d="M17.5 10v2.5"/><path d="M6.5 10v2.5"/><path d="M6.5 12.5h11"/></svg>
|
|
58
|
+
</button>
|
|
59
|
+
<button class="sidebar-action-btn" id="newFolderBtn" aria-label="New folder" title="New folder">
|
|
60
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><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"/><line x1="12" y1="11" x2="12" y2="17"/><line x1="9" y1="14" x2="15" y2="14"/></svg>
|
|
61
|
+
</button>
|
|
62
|
+
<button class="sidebar-action-btn" id="refreshFilesBtn" aria-label="Refresh" title="Refresh file list">
|
|
63
|
+
<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>
|
|
64
|
+
</button>
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
<div class="sidebar-tabs hidden" id="sidebarTabs">
|
|
68
|
+
<button class="sidebar-tab active" id="filesSidebarTab" type="button">
|
|
69
|
+
<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>
|
|
70
|
+
Files
|
|
71
|
+
</button>
|
|
72
|
+
<button class="sidebar-tab hidden" id="gitSidebarTab" type="button">
|
|
73
|
+
<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>
|
|
74
|
+
Git
|
|
75
|
+
</button>
|
|
76
|
+
</div>
|
|
77
|
+
<div class="sidebar-search" id="fileSearch">
|
|
78
|
+
<input type="text" class="sidebar-search-input" id="fileSearchInput" placeholder="Search files..." autocomplete="off" spellcheck="false" aria-label="Search files">
|
|
79
|
+
</div>
|
|
80
|
+
<div class="sidebar-search hidden" id="gitSearch">
|
|
81
|
+
<input type="text" class="sidebar-search-input" id="gitSearchInput" placeholder="Search changes..." autocomplete="off" spellcheck="false" aria-label="Search changed files">
|
|
82
|
+
</div>
|
|
83
|
+
<nav id="fileTree" class="file-tree" aria-label="File explorer"></nav>
|
|
84
|
+
<div id="gitPanel" class="git-panel hidden" aria-label="Git changes"></div>
|
|
85
|
+
</aside>
|
|
86
|
+
|
|
87
|
+
<!-- ========== MAIN AREA ========== -->
|
|
88
|
+
<main class="main-area" id="mainContent">
|
|
89
|
+
<!-- Toolbar -->
|
|
90
|
+
<header class="toolbar" role="banner">
|
|
91
|
+
<div class="toolbar-left">
|
|
92
|
+
<button class="btn btn-ghost toolbar-btn" id="sidebarToggle" aria-label="Toggle sidebar" title="Toggle sidebar">
|
|
93
|
+
<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>
|
|
94
|
+
</button>
|
|
95
|
+
<div class="toolbar-room-info">
|
|
96
|
+
<span class="toolbar-room-name" id="activeFileName">CollabMD</span>
|
|
97
|
+
<span class="toolbar-badge" id="userCount"></span>
|
|
98
|
+
<span class="toolbar-badge hidden" id="toolbarDiffBadge">Diff</span>
|
|
99
|
+
<span class="toolbar-badge hidden" id="gitOperationStatus" aria-live="polite" aria-atomic="true"></span>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
|
|
103
|
+
<div class="toolbar-center" id="toolbarCenter">
|
|
104
|
+
<div class="view-toggle" role="group" aria-label="View mode">
|
|
105
|
+
<button class="view-btn active" data-view="split" aria-label="Split view" aria-pressed="true" title="Split view">
|
|
106
|
+
<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>
|
|
107
|
+
</button>
|
|
108
|
+
<button class="view-btn" data-view="editor" aria-label="Editor only" aria-pressed="false" title="Editor only">
|
|
109
|
+
<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>
|
|
110
|
+
</button>
|
|
111
|
+
<button class="view-btn" data-view="preview" aria-label="Preview only" aria-pressed="false" title="Preview only">
|
|
112
|
+
<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>
|
|
113
|
+
</button>
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
|
|
117
|
+
<div class="toolbar-right">
|
|
118
|
+
<button class="btn btn-ghost toolbar-btn mobile-view-toggle" id="mobileViewToggle" aria-label="Toggle editor/preview" title="Toggle view">
|
|
119
|
+
<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>
|
|
120
|
+
<span class="toolbar-btn-label">Preview</span>
|
|
121
|
+
</button>
|
|
122
|
+
|
|
123
|
+
<button class="btn btn-ghost toolbar-btn toolbar-name-btn" id="editNameBtn" aria-label="Set name. Change display name" title="Change display name">
|
|
124
|
+
<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>
|
|
125
|
+
<span class="toolbar-btn-label toolbar-user-name" id="currentUserName">Set name</span>
|
|
126
|
+
</button>
|
|
127
|
+
<div class="user-avatars" id="userAvatars"></div>
|
|
128
|
+
<div class="chat-container" id="chatContainer">
|
|
129
|
+
<button class="btn btn-ghost toolbar-btn chat-toggle-btn" id="chatToggleBtn" aria-label="Open team chat" aria-expanded="false" title="Team chat">
|
|
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="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>
|
|
131
|
+
<span class="toolbar-btn-label">Chat</span>
|
|
132
|
+
<span class="chat-toggle-badge hidden" id="chatToggleBadge">0</span>
|
|
133
|
+
</button>
|
|
134
|
+
<div class="toast-container chat-toast-container" id="chatToastContainer" aria-live="polite" aria-atomic="true"></div>
|
|
135
|
+
|
|
136
|
+
<section class="chat-panel hidden" id="chatPanel" aria-label="Team chat">
|
|
137
|
+
<div class="chat-panel-header">
|
|
138
|
+
<div>
|
|
139
|
+
<h2 class="chat-panel-title">Team chat</h2>
|
|
140
|
+
<p class="chat-panel-status" id="chatStatus">Syncing...</p>
|
|
141
|
+
</div>
|
|
142
|
+
<button class="btn btn-secondary chat-alert-btn" id="chatNotificationBtn" type="button">Enable alerts</button>
|
|
143
|
+
</div>
|
|
144
|
+
|
|
145
|
+
<div class="chat-empty-state" id="chatEmptyState">
|
|
146
|
+
Temporary room chat for whoever is online right now.
|
|
147
|
+
</div>
|
|
148
|
+
<div class="chat-messages hidden" id="chatMessages" role="log" aria-live="polite" aria-relevant="additions text"></div>
|
|
149
|
+
|
|
150
|
+
<form class="chat-form" id="chatForm">
|
|
151
|
+
<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">
|
|
152
|
+
<button type="submit" class="btn btn-primary chat-send-btn">Send</button>
|
|
153
|
+
</form>
|
|
154
|
+
</section>
|
|
155
|
+
</div>
|
|
156
|
+
<button class="btn btn-ghost toolbar-btn" id="shareBtn" aria-label="Share. Copy link" title="Share link">
|
|
157
|
+
<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>
|
|
158
|
+
<span class="toolbar-btn-label">Share</span>
|
|
159
|
+
</button>
|
|
160
|
+
<button class="btn btn-ghost toolbar-btn" data-theme-toggle aria-label="Toggle theme" title="Toggle theme">
|
|
161
|
+
<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>
|
|
162
|
+
</button>
|
|
163
|
+
</div>
|
|
164
|
+
</header>
|
|
165
|
+
|
|
166
|
+
<!-- Empty state (no file selected) -->
|
|
167
|
+
<div id="emptyState" class="empty-state">
|
|
168
|
+
<div class="empty-state-content">
|
|
169
|
+
<div class="empty-state-logo" aria-hidden="true">
|
|
170
|
+
<svg width="48" height="48" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
171
|
+
<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"/>
|
|
172
|
+
<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"/>
|
|
173
|
+
<path d="M14 20l4 10 1.5-4 4-1.5L14 20z" fill="var(--color-primary)" opacity="0.7"/>
|
|
174
|
+
<path d="M38 28l-4-10-1.5 4-4 1.5L38 28z" fill="var(--color-primary)"/>
|
|
175
|
+
</svg>
|
|
176
|
+
</div>
|
|
177
|
+
<h2 class="empty-state-title">Welcome to CollabMD</h2>
|
|
178
|
+
<p class="empty-state-desc">Open a file from the sidebar, or get started quickly:</p>
|
|
179
|
+
<div class="empty-state-actions">
|
|
180
|
+
<button class="btn btn-secondary empty-state-btn" id="emptyStateNewFileBtn">
|
|
181
|
+
<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>
|
|
182
|
+
New File
|
|
183
|
+
</button>
|
|
184
|
+
<button class="btn btn-secondary empty-state-btn" id="emptyStateSearchBtn">
|
|
185
|
+
<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>
|
|
186
|
+
Search Everything
|
|
187
|
+
<kbd class="empty-state-kbd">⌘K</kbd>
|
|
188
|
+
</button>
|
|
189
|
+
</div>
|
|
190
|
+
</div>
|
|
191
|
+
</div>
|
|
192
|
+
|
|
193
|
+
<!-- Editor page (shown when a file is open) -->
|
|
194
|
+
<div id="editor-page" class="editor-page hidden">
|
|
195
|
+
<div class="editor-layout" id="editorLayout" data-view="split">
|
|
196
|
+
<div class="editor-pane" id="editorPane">
|
|
197
|
+
<div class="pane-header">
|
|
198
|
+
<div class="pane-header-meta">
|
|
199
|
+
<span class="pane-label">Editor</span>
|
|
200
|
+
<span class="pane-label-meta" id="lineInfo">Ln 1, Col 1</span>
|
|
201
|
+
</div>
|
|
202
|
+
<div class="pane-header-actions">
|
|
203
|
+
<button class="btn btn-ghost pane-header-btn hidden" id="commentSelectionBtn" aria-label="Comment current line or selection" title="Comment current line or selection">
|
|
204
|
+
<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">
|
|
205
|
+
<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>
|
|
206
|
+
</svg>
|
|
207
|
+
<span class="pane-header-btn-label">Comment</span>
|
|
208
|
+
</button>
|
|
209
|
+
<button class="btn btn-ghost pane-header-btn" id="toggleWrapBtn" aria-label="Disable line wrap" title="Disable line wrap">
|
|
210
|
+
<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">
|
|
211
|
+
<path d="M3 6h14a4 4 0 1 1 0 8H9"/>
|
|
212
|
+
<path d="m9 10-4 4 4 4"/>
|
|
213
|
+
<path d="M3 18h7"/>
|
|
214
|
+
</svg>
|
|
215
|
+
<span id="wrapToggleLabel">Wrap on</span>
|
|
216
|
+
</button>
|
|
217
|
+
</div>
|
|
218
|
+
</div>
|
|
219
|
+
<div id="markdownToolbar" class="markdown-toolbar hidden" role="toolbar" aria-label="Markdown formatting">
|
|
220
|
+
<button type="button" class="btn btn-ghost markdown-toolbar-btn" data-markdown-action="heading" aria-label="Toggle heading" title="Toggle heading">
|
|
221
|
+
<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">
|
|
222
|
+
<path d="M4 6v12"/>
|
|
223
|
+
<path d="M14 6v12"/>
|
|
224
|
+
<path d="M4 12h10"/>
|
|
225
|
+
<path d="M18 18h3"/>
|
|
226
|
+
<path d="M19.5 6v12"/>
|
|
227
|
+
</svg>
|
|
228
|
+
</button>
|
|
229
|
+
<button type="button" class="btn btn-ghost markdown-toolbar-btn" data-markdown-action="bold" aria-label="Bold" title="Bold">
|
|
230
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
231
|
+
<path d="M7 5h6a4 4 0 0 1 0 8H7z"/>
|
|
232
|
+
<path d="M7 13h7a4 4 0 0 1 0 8H7z"/>
|
|
233
|
+
</svg>
|
|
234
|
+
</button>
|
|
235
|
+
<button type="button" class="btn btn-ghost markdown-toolbar-btn" data-markdown-action="italic" aria-label="Italic" title="Italic">
|
|
236
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
237
|
+
<path d="M14 4h6"/>
|
|
238
|
+
<path d="M4 20h6"/>
|
|
239
|
+
<path d="M14 4 10 20"/>
|
|
240
|
+
</svg>
|
|
241
|
+
</button>
|
|
242
|
+
<button type="button" class="btn btn-ghost markdown-toolbar-btn" data-markdown-action="strikethrough" aria-label="Strikethrough" title="Strikethrough">
|
|
243
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.1" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
244
|
+
<path d="M6 6.5c1.4-1.2 3.2-1.9 5.4-1.9 3.1 0 5.6 1.4 5.6 3.9 0 2.1-1.7 3-4.3 3.5l-2.4.5c-2.7.5-4.3 1.6-4.3 3.6 0 2.7 2.7 4.2 6 4.2 2.1 0 4.2-.6 5.7-1.8"/>
|
|
245
|
+
<path d="M3 12h18"/>
|
|
246
|
+
</svg>
|
|
247
|
+
</button>
|
|
248
|
+
<button type="button" class="btn btn-ghost markdown-toolbar-btn" data-markdown-action="link" aria-label="Insert link" title="Insert link">
|
|
249
|
+
<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">
|
|
250
|
+
<path d="M10 13a5 5 0 0 0 7.54.54l2.92-2.92a5 5 0 0 0-7.07-7.07L11.5 5.4"/>
|
|
251
|
+
<path d="M14 11a5 5 0 0 0-7.54-.54L3.54 13.38a5 5 0 1 0 7.07 7.07L12.5 18.6"/>
|
|
252
|
+
</svg>
|
|
253
|
+
</button>
|
|
254
|
+
<button type="button" class="btn btn-ghost markdown-toolbar-btn" data-markdown-action="image" aria-label="Insert image" title="Insert image">
|
|
255
|
+
<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">
|
|
256
|
+
<rect x="3" y="5" width="18" height="14" rx="2"/>
|
|
257
|
+
<circle cx="9" cy="10" r="1.5"/>
|
|
258
|
+
<path d="m21 16-5.5-5.5L7 19"/>
|
|
259
|
+
</svg>
|
|
260
|
+
</button>
|
|
261
|
+
<button type="button" class="btn btn-ghost markdown-toolbar-btn" data-markdown-action="video" aria-label="Insert video" title="Insert video">
|
|
262
|
+
<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">
|
|
263
|
+
<rect x="3" y="5" width="18" height="14" rx="2"/>
|
|
264
|
+
<path d="m10 9 5 3-5 3z" fill="currentColor" stroke="none"/>
|
|
265
|
+
</svg>
|
|
266
|
+
</button>
|
|
267
|
+
<span class="markdown-toolbar-separator" aria-hidden="true"></span>
|
|
268
|
+
<button type="button" class="btn btn-ghost markdown-toolbar-btn" data-markdown-action="quote" aria-label="Toggle quote" title="Toggle quote">
|
|
269
|
+
<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">
|
|
270
|
+
<path d="M8 17H5a2 2 0 0 1-2-2v-3a6 6 0 0 1 6-6"/>
|
|
271
|
+
<path d="M19 17h-3a2 2 0 0 1-2-2v-3a6 6 0 0 1 6-6"/>
|
|
272
|
+
</svg>
|
|
273
|
+
</button>
|
|
274
|
+
<button type="button" class="btn btn-ghost markdown-toolbar-btn" data-markdown-action="bullet-list" aria-label="Toggle bullet list" title="Toggle bullet list">
|
|
275
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true">
|
|
276
|
+
<circle cx="5" cy="7" r="1.25" fill="currentColor" stroke="none"/>
|
|
277
|
+
<circle cx="5" cy="12" r="1.25" fill="currentColor" stroke="none"/>
|
|
278
|
+
<circle cx="5" cy="17" r="1.25" fill="currentColor" stroke="none"/>
|
|
279
|
+
<path d="M9 7h10"/>
|
|
280
|
+
<path d="M9 12h10"/>
|
|
281
|
+
<path d="M9 17h10"/>
|
|
282
|
+
</svg>
|
|
283
|
+
</button>
|
|
284
|
+
<button type="button" class="btn btn-ghost markdown-toolbar-btn" data-markdown-action="numbered-list" aria-label="Toggle numbered list" title="Toggle numbered list">
|
|
285
|
+
<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">
|
|
286
|
+
<path d="M10 7h10"/>
|
|
287
|
+
<path d="M10 12h10"/>
|
|
288
|
+
<path d="M10 17h10"/>
|
|
289
|
+
<path d="M4 6h2v4"/>
|
|
290
|
+
<path d="M4 14c0-1 2-2 2-3s-.45-1-1-1-1 .45-1 1"/>
|
|
291
|
+
<path d="M4 17h2"/>
|
|
292
|
+
</svg>
|
|
293
|
+
</button>
|
|
294
|
+
<button type="button" class="btn btn-ghost markdown-toolbar-btn" data-markdown-action="task-list" aria-label="Toggle task list" title="Toggle task list">
|
|
295
|
+
<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">
|
|
296
|
+
<rect x="3.5" y="4.5" width="4" height="4" rx="1"/>
|
|
297
|
+
<rect x="3.5" y="10.5" width="4" height="4" rx="1"/>
|
|
298
|
+
<path d="M10 6.5h10"/>
|
|
299
|
+
<path d="M10 12.5h10"/>
|
|
300
|
+
<path d="m4.5 19 1.5 1.5L9.5 17"/>
|
|
301
|
+
<path d="M10 18.5h10"/>
|
|
302
|
+
</svg>
|
|
303
|
+
</button>
|
|
304
|
+
<button type="button" class="btn btn-ghost markdown-toolbar-btn" data-markdown-action="table" aria-label="Insert table" title="Insert table">
|
|
305
|
+
<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">
|
|
306
|
+
<rect x="3" y="5" width="18" height="14" rx="1"/>
|
|
307
|
+
<path d="M3 10h18"/>
|
|
308
|
+
<path d="M9 5v14"/>
|
|
309
|
+
<path d="M15 5v14"/>
|
|
310
|
+
</svg>
|
|
311
|
+
</button>
|
|
312
|
+
<span class="markdown-toolbar-separator" aria-hidden="true"></span>
|
|
313
|
+
<button type="button" class="btn btn-ghost markdown-toolbar-btn" data-markdown-action="code" aria-label="Inline code" title="Inline code">
|
|
314
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.1" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
315
|
+
<path d="m8 9-4 3 4 3"/>
|
|
316
|
+
<path d="m16 9 4 3-4 3"/>
|
|
317
|
+
<path d="m13 6-2 12"/>
|
|
318
|
+
</svg>
|
|
319
|
+
</button>
|
|
320
|
+
<button type="button" class="btn btn-ghost markdown-toolbar-btn" data-markdown-action="code-block" aria-label="Code block" title="Code block">
|
|
321
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.1" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
322
|
+
<path d="m9 18-6-6 6-6"/>
|
|
323
|
+
<path d="m15 6 6 6-6 6"/>
|
|
324
|
+
</svg>
|
|
325
|
+
</button>
|
|
326
|
+
<button type="button" class="btn btn-ghost markdown-toolbar-btn" data-markdown-action="horizontal-rule" aria-label="Insert horizontal rule" title="Insert horizontal rule">
|
|
327
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
328
|
+
<path d="M4 12h16"/>
|
|
329
|
+
<path d="M9 8h6"/>
|
|
330
|
+
<path d="M9 16h6"/>
|
|
331
|
+
</svg>
|
|
332
|
+
</button>
|
|
333
|
+
</div>
|
|
334
|
+
<div id="editorContainer" class="editor-container">
|
|
335
|
+
<div class="editor-loading" id="editorLoading">
|
|
336
|
+
<div class="skeleton-line" style="width: 40%; height: 32px; margin-bottom: 24px;"></div>
|
|
337
|
+
<div class="skeleton-line" style="width: 100%;"></div>
|
|
338
|
+
<div class="skeleton-line" style="width: 90%;"></div>
|
|
339
|
+
<div class="skeleton-line" style="width: 95%;"></div>
|
|
340
|
+
<div class="skeleton-line" style="width: 80%; margin-bottom: 24px;"></div>
|
|
341
|
+
<div class="skeleton-line" style="width: 100%;"></div>
|
|
342
|
+
<div class="skeleton-line" style="width: 85%;"></div>
|
|
343
|
+
</div>
|
|
344
|
+
</div>
|
|
345
|
+
</div>
|
|
346
|
+
|
|
347
|
+
<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>
|
|
348
|
+
|
|
349
|
+
<div class="preview-pane" id="previewPane">
|
|
350
|
+
<div class="pane-header">
|
|
351
|
+
<span class="pane-label">Preview</span>
|
|
352
|
+
<div class="pane-header-actions">
|
|
353
|
+
<button class="btn btn-ghost pane-header-btn hidden" id="commentsToggle" aria-label="Toggle comments" title="Toggle comments">
|
|
354
|
+
<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">
|
|
355
|
+
<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>
|
|
356
|
+
</svg>
|
|
357
|
+
<span class="pane-header-btn-label">Comments</span>
|
|
358
|
+
</button>
|
|
359
|
+
<button class="btn btn-ghost pane-header-btn" id="outlineToggle" aria-label="Toggle outline" title="Toggle outline">
|
|
360
|
+
<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>
|
|
361
|
+
</button>
|
|
362
|
+
</div>
|
|
363
|
+
</div>
|
|
364
|
+
<div class="preview-body">
|
|
365
|
+
<div id="previewContainer" class="preview-container">
|
|
366
|
+
<div id="previewContent" class="preview-content"></div>
|
|
367
|
+
|
|
368
|
+
<!-- Backlinks (Linked Mentions) -->
|
|
369
|
+
<div id="backlinksPanel" class="backlinks-panel hidden">
|
|
370
|
+
<div class="backlinks-header" role="button" tabindex="0" aria-expanded="false">
|
|
371
|
+
<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>
|
|
372
|
+
<span class="backlinks-toggle">0 Linked Mentions</span>
|
|
373
|
+
<span class="backlinks-count"></span>
|
|
374
|
+
</div>
|
|
375
|
+
<div class="backlinks-body" aria-hidden="true" inert>
|
|
376
|
+
<div class="backlinks-list" id="backlinksList"></div>
|
|
377
|
+
</div>
|
|
378
|
+
</div>
|
|
379
|
+
</div>
|
|
380
|
+
<aside id="commentsDrawer" class="comments-drawer hidden" aria-label="Comments">
|
|
381
|
+
<div class="comments-drawer-header">
|
|
382
|
+
<span class="comments-drawer-title">Comments</span>
|
|
383
|
+
</div>
|
|
384
|
+
<div id="commentsDrawerEmpty" class="comments-drawer-empty">
|
|
385
|
+
Add a comment from the editor or the preview bubbles.
|
|
386
|
+
</div>
|
|
387
|
+
<div id="commentsDrawerList" class="comments-drawer-list"></div>
|
|
388
|
+
</aside>
|
|
389
|
+
<aside id="outlinePanel" class="outline-panel hidden" aria-label="Document outline">
|
|
390
|
+
<div class="outline-header">
|
|
391
|
+
<span class="outline-title">Outline</span>
|
|
392
|
+
</div>
|
|
393
|
+
<nav id="outlineNav" class="outline-nav"></nav>
|
|
394
|
+
</aside>
|
|
395
|
+
</div>
|
|
396
|
+
</div>
|
|
397
|
+
</div>
|
|
398
|
+
</div>
|
|
399
|
+
|
|
400
|
+
<div id="diff-page" class="diff-page hidden">
|
|
401
|
+
<div class="diff-toolbar">
|
|
402
|
+
<div class="diff-toolbar-left">
|
|
403
|
+
<div class="diff-file-nav">
|
|
404
|
+
<button class="diff-nav-btn" id="diffPrevBtn" type="button" disabled aria-label="Previous changed file">
|
|
405
|
+
<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>
|
|
406
|
+
</button>
|
|
407
|
+
<span class="diff-file-indicator" id="diffFileIndicator">0 / 0 files</span>
|
|
408
|
+
<button class="diff-nav-btn" id="diffNextBtn" type="button" disabled aria-label="Next changed file">
|
|
409
|
+
<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>
|
|
410
|
+
</button>
|
|
411
|
+
</div>
|
|
412
|
+
<div class="diff-toolbar-actions">
|
|
413
|
+
<div class="diff-toolbar-actions-group diff-toolbar-actions-group-git" role="group" aria-label="Git file actions">
|
|
414
|
+
<button class="btn btn-secondary diff-action-btn" id="diffPrimaryActionBtn" type="button" disabled>
|
|
415
|
+
Stage
|
|
416
|
+
</button>
|
|
417
|
+
<button class="btn btn-primary diff-action-btn" id="diffCommitBtn" type="button" disabled>
|
|
418
|
+
Commit Staged
|
|
419
|
+
</button>
|
|
420
|
+
</div>
|
|
421
|
+
<span class="diff-toolbar-actions-divider" aria-hidden="true"></span>
|
|
422
|
+
<div class="diff-toolbar-actions-group" role="group" aria-label="Navigation actions">
|
|
423
|
+
<button class="btn btn-secondary diff-open-editor-btn" id="diffOpenEditorBtn" type="button" disabled>
|
|
424
|
+
Open in Editor
|
|
425
|
+
</button>
|
|
426
|
+
</div>
|
|
427
|
+
</div>
|
|
428
|
+
</div>
|
|
429
|
+
<div class="diff-toolbar-right">
|
|
430
|
+
<div class="diff-stats" id="diffStats">
|
|
431
|
+
<span class="diff-stats-add">+0</span>
|
|
432
|
+
<span class="diff-stats-del">-0</span>
|
|
433
|
+
</div>
|
|
434
|
+
<div class="view-toggle diff-mode-toggle" role="group" aria-label="Diff view mode">
|
|
435
|
+
<button class="view-btn diff-mode-btn active" data-diff-mode="unified" type="button">Unified</button>
|
|
436
|
+
<button class="view-btn diff-mode-btn" data-diff-mode="split" type="button">Split</button>
|
|
437
|
+
</div>
|
|
438
|
+
</div>
|
|
439
|
+
</div>
|
|
440
|
+
<div class="diff-scroll" id="diffScroll">
|
|
441
|
+
<div class="diff-content" id="diffContent"></div>
|
|
442
|
+
</div>
|
|
443
|
+
</div>
|
|
444
|
+
</main>
|
|
445
|
+
</div>
|
|
446
|
+
|
|
447
|
+
<dialog class="app-dialog" id="displayNameDialog">
|
|
448
|
+
<form class="app-dialog-form" id="displayNameForm" method="dialog">
|
|
449
|
+
<div class="app-dialog-header">
|
|
450
|
+
<h2 class="app-dialog-title" id="displayNameTitle">Update display name</h2>
|
|
451
|
+
<p class="app-dialog-copy" id="displayNameCopy">Your name will be visible to everyone editing this vault.</p>
|
|
452
|
+
</div>
|
|
453
|
+
<label class="app-dialog-field" for="displayNameInput">
|
|
454
|
+
<span class="app-dialog-label">Name</span>
|
|
455
|
+
<input type="text" class="input" id="displayNameInput" name="displayName" maxlength="24" autocomplete="nickname" spellcheck="false" required>
|
|
456
|
+
</label>
|
|
457
|
+
<div class="app-dialog-actions">
|
|
458
|
+
<button type="button" class="btn btn-secondary" id="displayNameCancel">Cancel</button>
|
|
459
|
+
<button type="submit" class="btn btn-primary" id="displayNameSubmit">Save name</button>
|
|
460
|
+
</div>
|
|
461
|
+
</form>
|
|
462
|
+
</dialog>
|
|
463
|
+
|
|
464
|
+
<dialog class="app-dialog" id="fileActionDialog">
|
|
465
|
+
<form class="app-dialog-form" id="fileActionForm" method="dialog">
|
|
466
|
+
<div class="app-dialog-header">
|
|
467
|
+
<h2 class="app-dialog-title" id="fileActionTitle">Create file</h2>
|
|
468
|
+
<p class="app-dialog-copy" id="fileActionCopy">Add a new file to the vault.</p>
|
|
469
|
+
</div>
|
|
470
|
+
<label class="app-dialog-field" id="fileActionField" for="fileActionInput">
|
|
471
|
+
<span class="app-dialog-label" id="fileActionLabel">Path</span>
|
|
472
|
+
<input type="text" class="input" id="fileActionInput" name="fileActionValue" autocomplete="off" spellcheck="false" required>
|
|
473
|
+
<span class="app-dialog-hint" id="fileActionHint" hidden></span>
|
|
474
|
+
</label>
|
|
475
|
+
<p class="app-dialog-note" id="fileActionNote" hidden></p>
|
|
476
|
+
<div class="app-dialog-actions">
|
|
477
|
+
<button type="button" class="btn btn-secondary" id="fileActionCancel">Cancel</button>
|
|
478
|
+
<button type="submit" class="btn btn-primary" id="fileActionSubmit">Create</button>
|
|
479
|
+
</div>
|
|
480
|
+
</form>
|
|
481
|
+
</dialog>
|
|
482
|
+
|
|
483
|
+
<dialog class="app-dialog" id="gitCommitDialog">
|
|
484
|
+
<form class="app-dialog-form" id="gitCommitForm" method="dialog">
|
|
485
|
+
<div class="app-dialog-header">
|
|
486
|
+
<h2 class="app-dialog-title" id="gitCommitTitle">Commit staged changes</h2>
|
|
487
|
+
<p class="app-dialog-copy" id="gitCommitCopy">All staged changes will be included.</p>
|
|
488
|
+
</div>
|
|
489
|
+
<label class="app-dialog-field" for="gitCommitInput">
|
|
490
|
+
<span class="app-dialog-label">Commit message</span>
|
|
491
|
+
<input type="text" class="input" id="gitCommitInput" name="gitCommitMessage" autocomplete="off" spellcheck="true" required>
|
|
492
|
+
</label>
|
|
493
|
+
<div class="app-dialog-actions">
|
|
494
|
+
<button type="button" class="btn btn-secondary" id="gitCommitCancel">Cancel</button>
|
|
495
|
+
<button type="submit" class="btn btn-primary" id="gitCommitSubmit">Commit staged changes</button>
|
|
496
|
+
</div>
|
|
497
|
+
</form>
|
|
498
|
+
</dialog>
|
|
499
|
+
|
|
500
|
+
<dialog class="app-dialog" id="gitResetDialog">
|
|
501
|
+
<form class="app-dialog-form" method="dialog">
|
|
502
|
+
<div class="app-dialog-header">
|
|
503
|
+
<h2 class="app-dialog-title" id="gitResetTitle">Reset file</h2>
|
|
504
|
+
<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>
|
|
505
|
+
</div>
|
|
506
|
+
<div class="app-dialog-field">
|
|
507
|
+
<label class="app-dialog-label" for="gitResetFileName">File</label>
|
|
508
|
+
<input class="input app-dialog-input" id="gitResetFileName" type="text" readonly>
|
|
509
|
+
</div>
|
|
510
|
+
<div class="app-dialog-note is-danger">
|
|
511
|
+
Local file content and staged changes for this path will be discarded.
|
|
512
|
+
</div>
|
|
513
|
+
<div class="app-dialog-actions">
|
|
514
|
+
<button class="btn btn-secondary" id="gitResetCancel" type="button">Cancel</button>
|
|
515
|
+
<button class="btn btn-danger" id="gitResetSubmit" type="button">Reset File</button>
|
|
516
|
+
</div>
|
|
517
|
+
</form>
|
|
518
|
+
</dialog>
|
|
519
|
+
|
|
520
|
+
<div class="tab-lock-overlay hidden" id="tabLockOverlay" role="dialog" aria-modal="true" aria-labelledby="tabLockTitle">
|
|
521
|
+
<div class="tab-lock-card">
|
|
522
|
+
<span class="tab-lock-kicker">Single active tab</span>
|
|
523
|
+
<h2 class="tab-lock-title" id="tabLockTitle">This vault is active in another tab</h2>
|
|
524
|
+
<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>
|
|
525
|
+
<div class="tab-lock-actions">
|
|
526
|
+
<button type="button" class="btn btn-primary btn-lg" id="tabLockTakeoverBtn">Take over here</button>
|
|
527
|
+
</div>
|
|
528
|
+
</div>
|
|
529
|
+
</div>
|
|
530
|
+
|
|
531
|
+
<!-- Toast notifications -->
|
|
532
|
+
<div class="toast-container" id="toastContainer"></div>
|
|
533
|
+
|
|
534
|
+
<!-- Quick Switcher (Cmd+K) -->
|
|
535
|
+
<div class="qs-overlay" id="quickSwitcher">
|
|
536
|
+
<div class="qs-modal">
|
|
537
|
+
<div class="qs-input-wrap">
|
|
538
|
+
<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>
|
|
539
|
+
<input type="text" class="qs-input" id="quickSwitcherInput" placeholder="Search files..." autocomplete="off" spellcheck="false">
|
|
540
|
+
<kbd class="qs-kbd">esc</kbd>
|
|
541
|
+
</div>
|
|
542
|
+
<div class="qs-results" id="quickSwitcherResults"></div>
|
|
543
|
+
<div class="qs-hint" id="quickSwitcherHint">Type to search files</div>
|
|
544
|
+
</div>
|
|
545
|
+
</div>
|
|
546
|
+
<script src="./app-config.js"></script>
|
|
547
|
+
<script type="module" src="./assets/js/main.js"></script>
|
|
548
|
+
</body>
|
|
549
|
+
</html>
|