collabmd 0.1.55 → 0.1.56
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 +1 -1
- package/dist/client/assets/{CodeMirrorEditor-UCMRAMCV-cMeDxAEL.js → CodeMirrorEditor-UCMRAMCV-CW5HP9uy.js} +1 -1
- package/dist/client/assets/{Middleware-DUgFSleI.js → Middleware-DbxtuTyG.js} +1 -1
- package/dist/client/assets/{abnfDiagram-VCTEODGH-D2UdmYvj.js → abnfDiagram-VCTEODGH-DY5tILUg.js} +1 -1
- package/dist/client/assets/{abnfDiagram-YUKMZFIV-DbmU4Q-X.js → abnfDiagram-WEYOIA3C-BqtDVimc.js} +1 -1
- package/dist/client/assets/api-client-utils-DkW9xiiw.js +1 -0
- package/dist/client/assets/{ar-SA-5WIASEJP-Di7OimCN.js → ar-SA-5WIASEJP-DbGUC-Fx.js} +1 -1
- package/dist/client/assets/{arc-DgcGdgmL.js → arc-Y1ARJVZ4.js} +1 -1
- package/dist/client/assets/architecture-7GRP2DOG-DndzY1Hb.js +1 -0
- package/dist/client/assets/architecture-WOLXFQ4H-tER6YKVA.js +1 -0
- package/dist/client/assets/{architectureDiagram-5GKGNRK7-CSiUzzeN.js → architectureDiagram-5GKGNRK7-D_ZiDWLO.js} +2 -2
- package/dist/client/assets/{architectureDiagram-47P4ROYG-C7OjXK9S.js → architectureDiagram-ZHVYKT53-CCmYbVDm.js} +2 -2
- package/dist/client/assets/{az-AZ-V5EUQD6C-C19OGTT_.js → az-AZ-V5EUQD6C-qK0euR1T.js} +1 -1
- package/dist/client/assets/babel-BaOs8qJH.js +16 -0
- package/dist/client/assets/{bg-BG-EXASCMTR-BIt0xWyb.js → bg-BG-EXASCMTR-DHvN8nO_.js} +1 -1
- package/dist/client/assets/{blockDiagram-I7D4REHJ-sXfAgK2w.js → blockDiagram-I7D4REHJ-CeN7xDSG.js} +2 -2
- package/dist/client/assets/{blockDiagram-E7TT5TSB-DMG-YlZw.js → blockDiagram-RJAE7QA3-CsHpm8AL.js} +2 -2
- package/dist/client/assets/{bn-BD-U4SYNFCO-CdNaPy4Q.js → bn-BD-U4SYNFCO-BKKqqvJ1.js} +1 -1
- package/dist/client/assets/{bn-IN-HKDJIITE-CdNaPy4Q.js → bn-IN-HKDJIITE-BKKqqvJ1.js} +1 -1
- package/dist/client/assets/{browser-BKLM0ThC-BCLQGPD6-CcMAHZXi.js → browser-BKLM0ThC-BCLQGPD6-B6uxmOe1.js} +1 -1
- package/dist/client/assets/{c4Diagram-7LVT6UL2-C88V_K-8.js → c4Diagram-7LVT6UL2-Bezmsa8k.js} +1 -1
- package/dist/client/assets/{c4Diagram-CRA5TL53-D3F9ElJv.js → c4Diagram-XDPPPE54-COKPOr_O.js} +1 -1
- package/dist/client/assets/{ca-ES-2KGUU5XB-C9t-c0cH.js → ca-ES-2KGUU5XB-CYClUOgC.js} +1 -1
- package/dist/client/assets/canvasEditor-CWbY0cMf.js +1 -0
- package/dist/client/assets/channel-COwKkfba.js +1 -0
- package/dist/client/assets/{chunk-24IY7LWP-flnn6SWX.js → chunk-24IY7LWP-DUl0BbtV.js} +1 -1
- package/dist/client/assets/chunk-2E4U76K2-CPmbCsOa.js +1 -0
- package/dist/client/assets/{chunk-AW2ZBBNX-DL0KGAdi.js → chunk-2E7WHVMD-CnfGYKwC.js} +1 -1
- package/dist/client/assets/chunk-2ZTRR5NV-CowhtTwB.js +2 -0
- package/dist/client/assets/{chunk-3M4EKCLJ-D-sZGCtO.js → chunk-3M4EKCLJ-BeG5ZU4c.js} +1 -1
- package/dist/client/assets/{chunk-3Z5EZCMW-Yx4Q5AcN.js → chunk-3Z5EZCMW-DQ1fwqmG.js} +1 -1
- package/dist/client/assets/{chunk-HTAEGDNF-C0PA_N-c.js → chunk-4EMNKR2T-B97vb0rp.js} +1 -1
- package/dist/client/assets/{chunk-4HAMMTFA-CQy6Skzw.js → chunk-4HAMMTFA-B3s0XvP_.js} +1 -1
- package/dist/client/assets/{chunk-4S7OKTRW-BpUW13a3.js → chunk-4S7OKTRW-DIpJGzf1.js} +1 -1
- package/dist/client/assets/{chunk-53FOQ5SW-5lPdGYP4.js → chunk-53FOQ5SW-C3TQxbLr.js} +1 -1
- package/dist/client/assets/{chunk-7TKQ45FW-rA2u-WUl.js → chunk-55XCU76K-CZBj2eVM.js} +1 -1
- package/dist/client/assets/{chunk-5V3GS4D5-BR7kgIgJ.js → chunk-5V3GS4D5-CD51GF-u.js} +1 -1
- package/dist/client/assets/{chunk-6AZGARVD-CnZDr4Cj.js → chunk-6AZGARVD-BD9EvFmU.js} +1 -1
- package/dist/client/assets/{chunk-6EIED4P4-Bp8dpTvX.js → chunk-6EIED4P4-CZFyd-Ct.js} +1 -1
- package/dist/client/assets/{chunk-6K3QC6MW-DGVRzL6v.js → chunk-6K3QC6MW-BJWmnHdF.js} +1 -1
- package/dist/client/assets/{chunk-6TQVIW2G-DgBX-Pv0.js → chunk-6TQVIW2G-DaBcb454.js} +1 -1
- package/dist/client/assets/chunk-747NJXEK-D08Z0c6r.js +2 -0
- package/dist/client/assets/{chunk-75Z2AOVW-BRdhvVTZ.js → chunk-75Z2AOVW-DLVzmKuL.js} +1 -1
- package/dist/client/assets/{chunk-3YJQHVM4-Ctp__8EK.js → chunk-7S6XSTFO-CXBGoJ7Z.js} +1 -1
- package/dist/client/assets/{chunk-E2ZNV5FY-D_07zfWd.js → chunk-AQDTSKZB-BpOOnFv4.js} +1 -1
- package/dist/client/assets/chunk-BP2KR52E-yBDJ_0ib.js +2 -0
- package/dist/client/assets/{chunk-CLGD4ZFX-DJiSE0gD.js → chunk-CLGD4ZFX-BBNA_mHW.js} +1 -1
- package/dist/client/assets/{chunk-VPRB5NB3-BqaJfj_v.js → chunk-DSNLSHJZ-DkAaVKkN.js} +2 -2
- package/dist/client/assets/{chunk-DU6HZSFF-C-18UZkS.js → chunk-DU6HZSFF-Dz0Q7VKE.js} +2 -2
- package/dist/client/assets/{chunk-SVEVUXB4-BnM-LXop.js → chunk-EJLWFMJV-CxNRZ5Ez.js} +1 -1
- package/dist/client/assets/{chunk-F27PBJKO-_beIJos4.js → chunk-F27PBJKO-BziR3pku.js} +1 -1
- package/dist/client/assets/chunk-F6S3BTY2-Dw9FK6Vq.js +2 -0
- package/dist/client/assets/chunk-FBWCRPUE-PUG6Mjdg.js +12 -0
- package/dist/client/assets/{chunk-FOHPRMQF-DzxwRta7.js → chunk-FOHPRMQF-COOliuUh.js} +8 -8
- package/dist/client/assets/{chunk-GMAD6QVW-DnZH7DxV.js → chunk-GMAD6QVW-B6zS4VJx.js} +1 -1
- package/dist/client/assets/{chunk-GVQU2GXP-B0Vm415C.js → chunk-GVQU2GXP-BA8Vt-19.js} +1 -1
- package/dist/client/assets/chunk-HAGFOTED-miSk6HXc.js +62 -0
- package/dist/client/assets/chunk-HNE4Q36P-BTbX-t8_.js +1 -0
- package/dist/client/assets/{chunk-I5DQTOEV-B98XA8VK.js → chunk-I5DQTOEV-qgbr-MbI.js} +1 -1
- package/dist/client/assets/{chunk-ICYGCRZG-D97UeqJs.js → chunk-ICYGCRZG-Dv6Hl9ds.js} +1 -1
- package/dist/client/assets/{chunk-IH6LHLGP-CvXe34hB.js → chunk-IH6LHLGP-DCTJcBuf.js} +1 -1
- package/dist/client/assets/{chunk-IMKFNOWR-DoO8IHzF.js → chunk-IMKFNOWR-DN2Mwt1n.js} +1 -1
- package/dist/client/assets/{chunk-KI3K4JFJ-D5XCPRZv.js → chunk-KI3K4JFJ-Hb_e7W2X.js} +1 -1
- package/dist/client/assets/{chunk-KPI5JJXK-B2ld5-w4.js → chunk-KPI5JJXK-BoDlpdVM.js} +1 -1
- package/dist/client/assets/{chunk-L3NEJ4N5-CvHossEU.js → chunk-L3NEJ4N5-M6XySblQ.js} +1 -1
- package/dist/client/assets/{chunk-LNGE3PJU-5nWSl6jJ.js → chunk-LNGE3PJU-CxdyKuxt.js} +4 -4
- package/dist/client/assets/{chunk-LNGE3PJU-5-SxdO55.js → chunk-LNGE3PJU-DRjopGY8.js} +4 -4
- package/dist/client/assets/{chunk-NGNAAXSQ-DqoPQk1a.js → chunk-NGNAAXSQ-Bw6tHVuc.js} +6 -6
- package/dist/client/assets/{chunk-EU5HNXII-CETVNUXF.js → chunk-NQOKRVIF-B_sOt25u.js} +1 -1
- package/dist/client/assets/chunk-NZIJZ2A6-CmC5bqJr.js +42 -0
- package/dist/client/assets/{chunk-OD3NTWWA-Dz9nCUGX.js → chunk-OD3NTWWA-D7wmrqo1.js} +1 -1
- package/dist/client/assets/{chunk-OSK3NFVY-C3JOcBao.js → chunk-OSK3NFVY-DJyrXrea.js} +1 -1
- package/dist/client/assets/chunk-OUJLGHUK-DIWqBvm0.js +2 -0
- package/dist/client/assets/chunk-OYAV6JZA-kXOh375k.js +1 -0
- package/dist/client/assets/{chunk-P2QGCYS3-Bfo8qS8r.js → chunk-P2QGCYS3-DejntbnV.js} +1 -1
- package/dist/client/assets/{chunk-POPQ4Y6H-sv6rCftH.js → chunk-POPQ4Y6H-D3VayDzJ.js} +1 -1
- package/dist/client/assets/{chunk-PWAF6VOD-B-AT-L2H.js → chunk-PWAF6VOD-CmxcnYFJ.js} +1 -1
- package/dist/client/assets/{chunk-QNH66VMT-Cb9xxTwQ.js → chunk-QNH66VMT-De2vWRUE.js} +1 -1
- package/dist/client/assets/{chunk-SHT3W25Y-C1lu518T.js → chunk-SHT3W25Y-SAi_Zk5G.js} +1 -1
- package/dist/client/assets/{chunk-SRAX5OIU-KFQikY-4.js → chunk-SRAX5OIU-wzfotNc-.js} +1 -1
- package/dist/client/assets/{chunk-SVP7TREG-CKqt0syj.js → chunk-SVP7TREG-BtK2J628.js} +1 -1
- package/dist/client/assets/{chunk-TICWLB2K-D2ZnWAfF.js → chunk-TICWLB2K-wmAorf_a.js} +1 -1
- package/dist/client/assets/{chunk-TLUHSLCS-BMIhqv1X.js → chunk-TLUHSLCS-DA3Sq1kc.js} +1 -1
- package/dist/client/assets/{chunk-TPMEZKFX-DIPHIqGb.js → chunk-TPMEZKFX-CarinQak.js} +1 -1
- package/dist/client/assets/{chunk-4EA7E6EY-bU4wRJot.js → chunk-UHW7PFBP-ClLfHtva.js} +1 -1
- package/dist/client/assets/{chunk-UY3FDG6J-DqSM_0FB.js → chunk-UY3FDG6J-BT57Gakr.js} +1 -1
- package/dist/client/assets/{chunk-VPELOWWC-DXayM28-.js → chunk-VPELOWWC-Dk0xIrB-.js} +1 -1
- package/dist/client/assets/{chunk-KQW6MTUR-OQ4MyMr_.js → chunk-VQ5W62QI-CxUPWJRX.js} +1 -1
- package/dist/client/assets/{chunk-VTWWFHGB-SZnJiyWY.js → chunk-VTWWFHGB-BZsdnDPL.js} +1 -1
- package/dist/client/assets/{chunk-VZTHESGH-eHyXmK8W.js → chunk-VZTHESGH-D6CHzqGr.js} +1 -1
- package/dist/client/assets/chunk-WQQL4CDK-BiuwKtd-.js +10 -0
- package/dist/client/assets/{chunk-X3CZISLH-DwWpRaN8.js → chunk-X3CZISLH-Bwnh_YJ7.js} +1 -1
- package/dist/client/assets/{chunk-X3CZISLH-BixgQztF.js → chunk-X3CZISLH-DayjKu55.js} +1 -1
- package/dist/client/assets/{chunk-YK26KJH5-DVy3MGMd.js → chunk-XHIXRSVI-C0fC7dJN.js} +1 -1
- package/dist/client/assets/{chunk-XXDRQBXY-C7hQHDmQ.js → chunk-XXDRQBXY-BxVnmMBx.js} +1 -1
- package/dist/client/assets/{chunk-XXDRQBXY-CdRN9Akd.js → chunk-XXDRQBXY-DBb3y0NH.js} +1 -1
- package/dist/client/assets/{chunk-XHIXRSVI-BSN7JlfK.js → chunk-YK26KJH5-ywVSJDLS.js} +1 -1
- package/dist/client/assets/{chunk-HJ2JQQFS-DQX7RePR.js → chunk-YZO67HFG-Bg5cZX5R.js} +1 -1
- package/dist/client/assets/{chunk-Z5NKEFVG-q6fHH75m.js → chunk-Z5NKEFVG-BPqw37Lj.js} +3 -3
- package/dist/client/assets/{chunk-DBDB3WZW-CXleNlok.js → chunk-ZAUX2LTX-Yte1ozQc.js} +1 -1
- package/dist/client/assets/chunk-ZCHMQSOR-B3FSat8d.js +1 -0
- package/dist/client/assets/chunk-ZO67DCNQ-DnpDWW4I.js +2 -0
- package/dist/client/assets/classDiagram-ZZMXUADV-CLl-Ahxw.js +1 -0
- package/dist/client/assets/{classDiagram-v2-K4WV4PDN-eaadfJDB.js → classDiagram-v2-4MYWR3UA-rPd2Vhml.js} +1 -1
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-CLl-Ahxw.js +1 -0
- package/dist/client/assets/{clike-D_6L3tnO.js → clike-xvONpD0Z.js} +1 -1
- package/dist/client/assets/{clone-C1hp9FUh.js → clone-BoYpPplK.js} +1 -1
- package/dist/client/assets/{comment-markdown-renderer-CpBKaj7H.js → comment-markdown-renderer-a1B3HT_T.js} +1 -1
- package/dist/client/assets/{comment-thread-store-DUQsWtnu.js → comment-thread-store-da3_1rfw.js} +1 -1
- package/dist/client/assets/{comment-threads-DnfkLVJA.js → comment-threads-mG1CkBKO.js} +1 -1
- package/dist/client/assets/{comment-ui-shared-D_pgPUti.js → comment-ui-shared-4bhpJQpv.js} +2 -2
- package/dist/client/assets/{cose-bilkent-JH36ORCC-Czr0rwGr.js → cose-bilkent-JH36ORCC-BMHIGaXC.js} +1 -1
- package/dist/client/assets/{cose-bilkent-JH36ORCC-DLmEf9HS.js → cose-bilkent-JH36ORCC-Chlyw-Nt.js} +1 -1
- package/dist/client/assets/crystal-Bl6YKCG_.js +1 -0
- package/dist/client/assets/{cs-CZ-VUCGPRML-BfCoYAgj.js → cs-CZ-VUCGPRML-KFMLw537.js} +1 -1
- package/dist/client/assets/cynefin-EF2NZ3EQ-CwzF3ccb.js +1 -0
- package/dist/client/assets/cynefin-OW5HDTMX-CeLVR4kL.js +1 -0
- package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-D2rFQG67.js → cynefinDiagram-5FMLGOSQ-No5A0--Q.js} +1 -1
- package/dist/client/assets/{cynefinDiagram-3GCD6N5R-DjpAsBHC.js → cynefinDiagram-WF24UDRP-BvwG2vI4.js} +1 -1
- package/dist/client/assets/cytoscape-cose-bilkent-iiiP-uiT.js +1 -0
- package/dist/client/assets/cytoscape-fcose-CiCTciSr.js +1 -0
- package/dist/client/assets/cytoscape.esm-CCmQRb78.js +321 -0
- package/dist/client/assets/{da-DK-NNDP2IVP-DBw9ZNTR.js → da-DK-NNDP2IVP-BpM-jMGR.js} +1 -1
- package/dist/client/assets/dagre-D7JM2Yhv.js +1 -0
- package/dist/client/assets/dagre-GXQ25YYZ-B0VZWLr5.js +4 -0
- package/dist/client/assets/dagre-NK4GIZVX-DoXdmyVb.js +4 -0
- package/dist/client/assets/{de-DE-WBQ3DQLR-DYW18Vsr.js → de-CH-I7RAVIZN-BNkaUG5V.js} +1 -1
- package/dist/client/assets/{de-CH-I7RAVIZN-DYW18Vsr.js → de-DE-WBQ3DQLR-BNkaUG5V.js} +1 -1
- package/dist/client/assets/{diagram-OVF4WLC6-D8_escYE.js → diagram-CBK3MWTC-hfExzGJR.js} +1 -1
- package/dist/client/assets/{diagram-UMYRVEAY-Djf7WDjZ.js → diagram-I5XIIV2D-Diz84D6I.js} +1 -1
- package/dist/client/assets/{diagram-PFPMY2P6-B1izZfrN.js → diagram-ODIL2UCW-lVgTk1r8.js} +2 -2
- package/dist/client/assets/{diagram-ZIFT7M5P-BUUK0oNw.js → diagram-PFBEJUXE-Dm-wXUUU.js} +1 -1
- package/dist/client/assets/{diagram-YEKJPTXX-B40bP3Yr.js → diagram-RJA3I4VV-Bv4ZAy4v.js} +1 -1
- package/dist/client/assets/{diagram-S7CK7UJ4-BzicH2t-.js → diagram-S7CK7UJ4-ClAT_J6s.js} +2 -2
- package/dist/client/assets/diagram-TYUNFSNR-CN-Xc6z9.js +200 -0
- package/dist/client/assets/{diagram-UQ7AKVKN-DqX4zTtr.js → diagram-UQ7AKVKN-DJ6uTWCE.js} +1 -1
- package/dist/client/assets/{diagram-VSXAHHWV-DnVbfI4Y.js → diagram-VSXAHHWV-C2k4OYGw.js} +1 -1
- package/dist/client/assets/{diagram-VX7I27RA-D-Dj0TQC.js → diagram-VX7I27RA-CLX2KoMs.js} +1 -1
- package/dist/client/assets/{diagram-Z3DM3KII-_iT7Uz5p.js → diagram-Z3DM3KII-BZcZUF57.js} +1 -1
- package/dist/client/assets/{direct-engine-DVLMOJWp-DWtWIifK.js → direct-engine-DVLMOJWp-C_tInsJx.js} +1 -1
- package/dist/client/assets/dist-7kwQLW_E.js +1 -0
- package/dist/client/assets/dist-B-G-pifG.js +11 -0
- package/dist/client/assets/dist-B0vhBQTT.js +13 -0
- package/dist/client/assets/dist-BBVAlyPS.js +1 -0
- package/dist/client/assets/dist-BGDa8poZ.js +1 -0
- package/dist/client/assets/{dist-CqkAY6Ot.js → dist-BJ93nZVx.js} +2 -2
- package/dist/client/assets/dist-BS271jN_.js +1 -0
- package/dist/client/assets/{dist-DRYFMufe.js → dist-BUgvZKJ6.js} +13 -13
- package/dist/client/assets/{dist-CSHJthAI.js → dist-BXomWIuA.js} +1 -1
- package/dist/client/assets/dist-BbrmdpPb.js +1 -0
- package/dist/client/assets/dist-BfvzS-2t.js +1 -0
- package/dist/client/assets/dist-Bt7Xaqyp.js +1 -0
- package/dist/client/assets/dist-BtOSkvqt.js +1 -0
- package/dist/client/assets/{dist-CKxETpSC.js → dist-C150LLfi.js} +6 -6
- package/dist/client/assets/dist-C6YYSeP1.js +9 -0
- package/dist/client/assets/{dist-FUFeH5Cx.js → dist-CFzMlwAz.js} +1 -1
- package/dist/client/assets/dist-CH86sVcz.js +1 -0
- package/dist/client/assets/dist-CP97HJ4M.js +1 -0
- package/dist/client/assets/dist-CVDt4G0T.js +1 -0
- package/dist/client/assets/{dist-C2niyEh0.js → dist-CbwTIhZ4.js} +1 -1
- package/dist/client/assets/dist-CfwwN8_Y.js +1 -0
- package/dist/client/assets/{dist-B_J_HbC0.js → dist-CumnGVmJ.js} +1 -1
- package/dist/client/assets/dist-CvwwJhwr.js +1 -0
- package/dist/client/assets/{dist-It70ktCU.js → dist-D-detfUV.js} +1 -1
- package/dist/client/assets/dist-DCaysCNp.js +1 -0
- package/dist/client/assets/{dist-CHUI56fT.js → dist-DCgncsfc.js} +3 -3
- package/dist/client/assets/dist-DFWn8cbH.js +1 -0
- package/dist/client/assets/dist-DKBDZ7Fw.js +1 -0
- package/dist/client/assets/{dist-BXXPaoUV.js → dist-DUrzEppq.js} +1 -1
- package/dist/client/assets/dist-Db2OLA3a.js +1 -0
- package/dist/client/assets/dist-Dd0BffVR.js +1 -0
- package/dist/client/assets/dist-X-11q-Vc.js +1 -0
- package/dist/client/assets/dist-aNZ025fx.js +23 -0
- package/dist/client/assets/{dist-Amm5Pr1C.js → dist-ftwTHAfS.js} +1 -1
- package/dist/client/assets/{dist-Bl4yuUS9.js → dist-hiG7zUCa.js} +1 -1
- package/dist/client/assets/{document-formatter-DtXmKZcy.js → document-formatter-B_jrdFGJ.js} +1 -1
- package/dist/client/assets/{drawioEditor-DO6IOaJ1.js → drawioEditor-DhRXvyRT.js} +2 -2
- package/dist/client/assets/{duration-BiuFXtXd.js → duration-DPNtiFfE.js} +1 -1
- package/dist/client/assets/{dylan-BCDoL_-p.js → dylan-S7ucR4pR.js} +1 -1
- package/dist/client/assets/{ebnfDiagram-PWID7BFC-IemGPf9X.js → ebnfDiagram-PWID7BFC-B8zzvt1e.js} +1 -1
- package/dist/client/assets/{ebnfDiagram-VR2GEFS7-9fXqy1DI.js → ebnfDiagram-V4P3TTPT-PjRB23H_.js} +1 -1
- package/dist/client/assets/{editor-session-CPsqXY_A.js → editor-session-BnTvcvzz.js} +2 -2
- package/dist/client/assets/{el-GR-TYQHVGXW-Dx82YYAS.js → el-GR-TYQHVGXW-BHUJHVd3.js} +1 -1
- package/dist/client/assets/elk-QONTBCTQ-DknSb2FG.js +27 -0
- package/dist/client/assets/embedpdf-VVX-wFIh.js +1 -0
- package/dist/client/assets/{embedpdf-cl9qiF45-CLMxJTMP.js → embedpdf-cl9qiF45-Cv92w6Wn.js} +6 -6
- package/dist/client/assets/en-AUO4QW63-CgjNrgHv.js +1 -0
- package/dist/client/assets/{erDiagram-O2IAPWRE-Cdadm-HN.js → erDiagram-KYQIGQAA-BHguakEd.js} +1 -1
- package/dist/client/assets/{erDiagram-RLTQ6QDP-CGGmjm8t.js → erDiagram-RLTQ6QDP-YPD0-iRc.js} +1 -1
- package/dist/client/assets/{es-ES-JEUOREKJ-Rx0NUQDl.js → es-ES-JEUOREKJ-CeuoqqTN.js} +1 -1
- package/dist/client/assets/{esm-BzZ1JFVo.js → esm-nC3n5xMZ.js} +5 -5
- package/dist/client/assets/{estree-DGmLqopC.js → estree-Cw-tQG5d.js} +4 -4
- package/dist/client/assets/{eu-ES-SO5DEEAN-CDYm-BcK.js → eu-ES-SO5DEEAN-D_7bAcKh.js} +1 -1
- package/dist/client/assets/eventmodeling-K75KTNOO-BsPoof5R.js +1 -0
- package/dist/client/assets/eventmodeling-NTZA5JFV-Bwo1LIKP.js +1 -0
- package/dist/client/assets/{excalidraw-element-link-NQnskRkm.js → excalidraw-element-link-BduFAMXS.js} +1 -1
- package/dist/client/assets/{excalidraw-scene-DLlw4jyc.js → excalidraw-scene-DzfbvjqT.js} +1 -1
- package/dist/client/assets/excalidrawEditor-3jfVRVmE.js +9 -0
- package/dist/client/assets/export-page-BiB1AeMg.js +46 -0
- package/dist/client/assets/exportDocument-BwukVyB9.js +2 -0
- package/dist/client/assets/{fa-IR-I4JNTJHK-CFtHZqoT.js → fa-IR-I4JNTJHK-BeoSOVqB.js} +1 -1
- package/dist/client/assets/{fi-FI-REAEF6HQ-BIpjJqIb.js → fi-FI-REAEF6HQ-BqIp6GiK.js} +1 -1
- package/dist/client/assets/file-search-D2UfqaRv.js +1 -0
- package/dist/client/assets/flowDiagram-HODETNUW-CVKOAnD7.js +1 -0
- package/dist/client/assets/flowDiagram-IUGLLWBU-BjEyR0dW.js +1 -0
- package/dist/client/assets/{fr-FR-SUCL7J6B-DGAKE8jH.js → fr-FR-SUCL7J6B-Dl3EFjA3.js} +1 -1
- package/dist/client/assets/{ganttDiagram-EL5Y4UJY-Duu4KnsU.js → ganttDiagram-EL5Y4UJY-CCUwTKb4.js} +1 -1
- package/dist/client/assets/{ganttDiagram-R7TSEDQI-BWy52pjn.js → ganttDiagram-R7GPNTJY-CXLqT-aU.js} +2 -2
- package/dist/client/assets/gitGraph-4MIJSDKK-CWZptYrG.js +1 -0
- package/dist/client/assets/gitGraph-VSP46ZUC-x2Q42NFN.js +1 -0
- package/dist/client/assets/{gitGraphDiagram-XJZIOB7I-DJwp9ilx.js → gitGraphDiagram-PDYL7XHY-BJ9CsrRo.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-WWUBYQGX-CaJ0vC1a.js → gitGraphDiagram-WWUBYQGX-OqdVjcEn.js} +1 -1
- package/dist/client/assets/{gl-ES-KHCSOGVH-DWKh0CMu.js → gl-ES-KHCSOGVH-DGHdzXnJ.js} +1 -1
- package/dist/client/assets/groovy-CUrWKPia.js +1 -0
- package/dist/client/assets/{he-IL-JYXVXV2Q-zqbcM-4g.js → he-IL-JYXVXV2Q-DP8F40TD.js} +1 -1
- package/dist/client/assets/{hi-IN-BU52H3BO-CY8v6eG9.js → hi-IN-BU52H3BO-B1huAT2Y.js} +1 -1
- package/dist/client/assets/{html-BryNQ_yx.js → html-Drt7kOJE.js} +2 -2
- package/dist/client/assets/{hu-HU-OWADXDQ3-CEl6Udfh.js → hu-HU-OWADXDQ3-87zhVnWy.js} +1 -1
- package/dist/client/assets/{id-ID-2WY7E4VX-CCAeQpPr.js → id-ID-2WY7E4VX-BdFs5w71.js} +1 -1
- package/dist/client/assets/image-V6E7PHAZ-DSZxKLH0.js +1 -0
- package/dist/client/assets/image-blob-reduce.esm-ZiL83eII.js +2 -0
- package/dist/client/assets/image-lightbox-controller-DH39QMBp.js +184 -0
- package/dist/client/assets/index-BebSD0ym.js +960 -0
- package/dist/client/assets/info-A6RAGUB7-D_xaPiSc.js +1 -0
- package/dist/client/assets/info-OHQRW6UA-CBi78irM.js +1 -0
- package/dist/client/assets/{infoDiagram-27XIBGKW-DBJh7QOu.js → infoDiagram-27XIBGKW-Ck9hyDJb.js} +1 -1
- package/dist/client/assets/{infoDiagram-5W2HQ5XZ-DmWsqJ0w.js → infoDiagram-MVDRKAX5-DcpftzUS.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-5VMMS53U-CeEbSJem.js → ishikawaDiagram-5VMMS53U-CazBMMkQ.js} +2 -2
- package/dist/client/assets/{ishikawaDiagram-K3B6WC7H-DH1NI35G.js → ishikawaDiagram-HPEHV2GE-BG5PpI0A.js} +2 -2
- package/dist/client/assets/{it-IT-INVHSAJF-DytAgndh.js → it-IT-INVHSAJF-DnUnri32.js} +1 -1
- package/dist/client/assets/{ja-JP-JBNTKYP4-BflWlGhw.js → ja-JP-JBNTKYP4-DIs2dSob.js} +1 -1
- package/dist/client/assets/javascript-DZ4Qsoqy.js +1 -0
- package/dist/client/assets/javascript-lj9EKOz0.js +1 -0
- package/dist/client/assets/{journeyDiagram-3NMN7TZE-BoIEEr6U.js → journeyDiagram-3NMN7TZE-DJFGpA3F.js} +1 -1
- package/dist/client/assets/{journeyDiagram-COXZFDF6-CnHV2f9V.js → journeyDiagram-BOSHW7O7-CAdC3Sr9.js} +1 -1
- package/dist/client/assets/{jsx-runtime-DKj5X9O4.js → jsx-runtime-CldxteV5.js} +1 -1
- package/dist/client/assets/{kaa-TC3VIB7V-B-xtZfy0.js → kaa-TC3VIB7V-wP2hxPDI.js} +1 -1
- package/dist/client/assets/{kab-KAB-UOUDSQKM-BmO0O4Y4.js → kab-KAB-UOUDSQKM-CwUZUlMm.js} +1 -1
- package/dist/client/assets/{kanban-definition-P3RFRI5V-Cxvn5ZAG.js → kanban-definition-FNSA4HC5-DLzqpQsC.js} +1 -1
- package/dist/client/assets/{kanban-definition-UXKFOSKX-BY16Tgbr.js → kanban-definition-UXKFOSKX-R91H_Ua5.js} +1 -1
- package/dist/client/assets/katex-B_JcIwqj.js +257 -0
- package/dist/client/assets/{katex-ZlcWpGUi.js → katex-DJhrJSbw.js} +1 -1
- package/dist/client/assets/{kk-KZ-P5H2X7YS-CSQFB8IN.js → kk-KZ-P5H2X7YS-Q3XzFKqf.js} +1 -1
- package/dist/client/assets/{km-KH-IHMV2US7-BxrjuEzr.js → km-KH-IHMV2US7-CxtoNVOY.js} +1 -1
- package/dist/client/assets/{ko-KR-ZTMANIDF-BnNRXd5J.js → ko-KR-ZTMANIDF-CJeG69_5.js} +1 -1
- package/dist/client/assets/{ku-TR-GPJTRB5G-BZM7f2aT.js → ku-TR-GPJTRB5G-D4gY4ec8.js} +1 -1
- package/dist/client/assets/{line-DEbP8Ok6.js → line-CttJWsP1.js} +1 -1
- package/dist/client/assets/linear-DGppY5mt.js +1 -0
- package/dist/client/assets/{lobby-presence-DNNXcuwR.js → lobby-presence-DWGiwZgG.js} +1 -1
- package/dist/client/assets/{lt-LT-V3XDOK3P-MVQBOHmF.js → lt-LT-V3XDOK3P-DTiFqRKt.js} +1 -1
- package/dist/client/assets/{lv-LV-DVQ3FADO-CrenwAhS.js → lv-LV-DVQ3FADO-BDx0eM98.js} +1 -1
- package/dist/client/assets/{markdown-DU84620G.js → markdown-C7cnJl_Q.js} +11 -11
- package/dist/client/assets/markdown-headings-CHNl_tgP.js +41 -0
- package/dist/client/assets/markdown-it-DWMS_G3H.js +13 -0
- package/dist/client/assets/{markdown-math-B96cnrz1.js → markdown-math-CBhbNj1w.js} +8 -8
- package/dist/client/assets/{merge-CALoRt3l.js → merge-5Ig019a6.js} +1 -1
- package/dist/client/assets/{mermaid-parser.core-R-uwU5kf.js → mermaid-parser.core-B89UfKha.js} +1 -1
- package/dist/client/assets/{mermaid-parser.core-mE6t1qEO.js → mermaid-parser.core-Dns-W-xX.js} +1 -1
- package/dist/client/assets/{mermaid.core-D8Z6LN7O.js → mermaid.core-8OvaaBlM.js} +3 -3
- package/dist/client/assets/{mindmap-definition-LZFPQGKD-DVfFenfJ.js → mindmap-definition-6OY57UG3-0aQEcLTH.js} +11 -9
- package/dist/client/assets/{mindmap-definition-YA3MSWOX-DtiE80UJ.js → mindmap-definition-YA3MSWOX-CCSfi8SE.js} +1 -1
- package/dist/client/assets/{mr-IN-VZ6HH5FE-B-PHPglH.js → mr-IN-VZ6HH5FE-Cofn25fc.js} +1 -1
- package/dist/client/assets/{my-MM-XYKWHRK6-Be5sYp5q.js → my-MM-XYKWHRK6-lMTCoeax.js} +1 -1
- package/dist/client/assets/{nb-NO-UNO2GGZJ-BvSKGdja.js → nb-NO-UNO2GGZJ-CEFDplVi.js} +1 -1
- package/dist/client/assets/{nginx-8H7HVH4w.js → nginx-C-ORUuei.js} +1 -1
- package/dist/client/assets/{nl-NL-76EFHT4P-C2yNx1Cj.js → nl-NL-76EFHT4P-2WbCYdRT.js} +1 -1
- package/dist/client/assets/{nn-NO-CFKD7ABE-4NsqlDRP.js → nn-NO-CFKD7ABE-DfK-9yuu.js} +1 -1
- package/dist/client/assets/{ntriples-B9h1VB_g.js → ntriples-CzMBulkp.js} +1 -1
- package/dist/client/assets/{oc-FR-YBJTCJ3J-B4OTQsWW.js → oc-FR-YBJTCJ3J-BSWusGxV.js} +1 -1
- package/dist/client/assets/{pa-IN-SNOXSMRV-CKj_sOG7.js → pa-IN-SNOXSMRV-BYkNTWiO.js} +1 -1
- package/dist/client/assets/packet-AYTQ26CC-D6Y_lKZt.js +1 -0
- package/dist/client/assets/packet-JDAUHWVQ-DAR0r-Im.js +1 -0
- package/dist/client/assets/{pegDiagram-BGZESJAR-DxfvEcwv.js → pegDiagram-ECIUJNBX-VujrKWCK.js} +1 -1
- package/dist/client/assets/{pegDiagram-XKGWAZYB-CyozY-Kt.js → pegDiagram-XKGWAZYB-DTA3EjtF.js} +1 -1
- package/dist/client/assets/percentages-LWOC67ZH-BO-ZFv57.js +1 -0
- package/dist/client/assets/pica-CXv_OHDX.js +2 -0
- package/dist/client/assets/{pie-DzWLGKAD.js → pie-Ba_4rf3r.js} +1 -1
- package/dist/client/assets/pie-WAS4IAKB-DLhltotv.js +1 -0
- package/dist/client/assets/pie-XZMESJXO-5MOdYfI0.js +1 -0
- package/dist/client/assets/{pieDiagram-E7YTZNPT-BRdmTkDq.js → pieDiagram-E7YTZNPT-DBz-eVG3.js} +1 -1
- package/dist/client/assets/{pieDiagram-CAPJLFHJ-CRlMcrv3.js → pieDiagram-GNMPY74T-CjRzeDCN.js} +1 -1
- package/dist/client/assets/{pl-PL-BSY6YFZ3-CFuzA6L0.js → pl-PL-BSY6YFZ3-DQTYFenp.js} +1 -1
- package/dist/client/assets/{powershell-BcIto6Sf.js → powershell-D8WpQPaX.js} +1 -1
- package/dist/client/assets/preload-helper-khBccGFq.js +1 -0
- package/dist/client/assets/preview-diagram-utils-ByzpiwPu.js +3 -0
- package/dist/client/assets/preview-render-compiler-B_gyVIfk.js +3 -0
- package/dist/client/assets/preview-render-worker-DYGDgbKA.js +579 -0
- package/dist/client/assets/prod-BTPZlnru.js +1 -0
- package/dist/client/assets/prod-CUXkwl3E.js +144 -0
- package/dist/client/assets/{pt-BR-CZDV62R3-CkPMtyNx.js → pt-BR-CZDV62R3-qKOF4THL.js} +1 -1
- package/dist/client/assets/{pt-PT-JO57XJJW-CBSnfGtF.js → pt-PT-JO57XJJW-CVFFmqez.js} +1 -1
- package/dist/client/assets/pug-CGoiHVBP.js +1 -0
- package/dist/client/assets/purify.es-BP9p1Dbb.js +3 -0
- package/dist/client/assets/{quadrantDiagram-AXDQQJYC-7QyPIXkF.js → quadrantDiagram-AXDQQJYC-DaTj4J-B.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-GDMTTRAM-DE30uqTl.js → quadrantDiagram-D57K4MC3-Bvy8uMKb.js} +1 -1
- package/dist/client/assets/quick-switcher-controller-m2gikuD-.js +1 -0
- package/dist/client/assets/radar-ABXABTNO-hhs6i-b1.js +1 -0
- package/dist/client/assets/radar-RG4KPBEZ-B-2eETsZ.js +1 -0
- package/dist/client/assets/railroad-74A4TZTK-B18ef5-Z.js +1 -0
- package/dist/client/assets/railroad-I3PHUGI6-v8Mk380c.js +1 -0
- package/dist/client/assets/railroad-abnf-HS5TGJTU-CTQaqjqj.js +1 -0
- package/dist/client/assets/railroad-abnf-LNEFI6M7-C3t6jbSY.js +1 -0
- package/dist/client/assets/railroad-ebnf-DWYD2UWJ-BvF5fO2B.js +1 -0
- package/dist/client/assets/railroad-ebnf-LZEXJU2U-BU_P5mpS.js +1 -0
- package/dist/client/assets/railroad-peg-JR7BVNR7-B90veE1n.js +1 -0
- package/dist/client/assets/railroad-peg-WCYAUIDC-CQCPL33M.js +1 -0
- package/dist/client/assets/{railroadDiagram-O6MQD6OU-BPk3RS2D.js → railroadDiagram-O6MQD6OU-DJRswcTS.js} +1 -1
- package/dist/client/assets/{railroadDiagram-SM67HX2B-CZRXJ647.js → railroadDiagram-Y72NRBL7-BNjzJfAu.js} +1 -1
- package/dist/client/assets/{requirementDiagram-BXWQKSXE-BRwfym6z.js → requirementDiagram-BXWQKSXE-DsljP03a.js} +1 -1
- package/dist/client/assets/{requirementDiagram-X7JNWC4A-BofCuLJA.js → requirementDiagram-EQYSW5RA-BKm3hJ3g.js} +1 -1
- package/dist/client/assets/{ro-RO-UZ5ICYYN-BOuntc_r.js → ro-RO-UZ5ICYYN-BgFoGyRb.js} +1 -1
- package/dist/client/assets/rolldown-runtime-COiEfhsA.js +1 -0
- package/dist/client/assets/{ru-RU-AN7JPREC-D-ow3SNR.js → ru-RU-AN7JPREC-C1Q9hhMw.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-P5KCCOFB-D4LcrKpW.js → sankeyDiagram-P5KCCOFB-7e3snR42.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-UM26HJRW-CLKMDbej.js → sankeyDiagram-SY24JHO5-X6282wPp.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-ZO4K6R2Y-CDP_m6ma.js → sequenceDiagram-BLEHNHQU-BytEbBel.js} +4 -4
- package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-DQjtv-Bs.js → sequenceDiagram-WJ2MYXX4-Fy1RHQht.js} +2 -2
- package/dist/client/assets/{si-LK-7CBLD6QQ-c91EepX0.js → si-LK-7CBLD6QQ-B0AJbYON.js} +1 -1
- package/dist/client/assets/{sk-SK-SWR6DKBI-D5vFMIL6.js → sk-SK-SWR6DKBI-BSd-r0Zi.js} +1 -1
- package/dist/client/assets/{sl-SI-QY5KCFGA-RZhwMpQL.js → sl-SI-QY5KCFGA-Dzrhm7-L.js} +1 -1
- package/dist/client/assets/src-C2pSFGeK.js +1 -0
- package/dist/client/assets/{src-D5mvpivG.js → src-GGgGZJfE.js} +2 -2
- package/dist/client/assets/{standalone-D_lg5NC9.js → standalone-YobQElH8.js} +3 -3
- package/dist/client/assets/{stateDiagram-D77RDMKH-DSMvV-kF.js → stateDiagram-D77RDMKH-CW2cSnDj.js} +1 -1
- package/dist/client/assets/{stateDiagram-v2-TBUQTH76-Dc5-FKzd.js → stateDiagram-v2-A6IESKWZ-DZU6pVog.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-iqEUZMAD.js +1 -0
- package/dist/client/assets/subset-shared.chunk-CL3Oizwd.js +1 -0
- package/dist/client/assets/{subset-worker.chunk-CoaGye2U.js → subset-worker.chunk-BdPjfgp2.js} +1 -1
- package/dist/client/assets/{sv-SE-O3OFCY3J-DnS86_7q.js → sv-SE-O3OFCY3J-6NoVnLTE.js} +1 -1
- package/dist/client/assets/swimlanes-42K2YHIH-8FngRMNT.js +1 -0
- package/dist/client/assets/swimlanes-B3ENRKFQ-D6BYdY9J.js +1 -0
- package/dist/client/assets/swimlanesDiagram-AYQRV4AK-hRw-7uL-.js +8 -0
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-DvDPHOsc.js +8 -0
- package/dist/client/assets/{ta-IN-V6NHHU6Z-D5jy7_AE.js → ta-IN-V6NHHU6Z-MAwuBBtS.js} +1 -1
- package/dist/client/assets/{th-TH-WLSZUSBX-DHehoYR2.js → th-TH-WLSZUSBX-D--o8vzw.js} +1 -1
- package/dist/client/assets/{tiki-AK6FwT8q.js → tiki-CvUEFusT.js} +1 -1
- package/dist/client/assets/{timeline-definition-24CTP7MA-BvqCvSjy.js → timeline-definition-24CTP7MA-C_Q-Br6X.js} +1 -1
- package/dist/client/assets/{timeline-definition-YOQAKGHF-D2XWPSLs.js → timeline-definition-JXYKGLGB-7HLQ94MK.js} +1 -1
- package/dist/client/assets/{tr-TR-GUFYG22B-ClVaf8h1.js → tr-TR-GUFYG22B-Bd-NNmz1.js} +1 -1
- package/dist/client/assets/treeView-D4JQ5SDB-BR1FV1TU.js +1 -0
- package/dist/client/assets/treeView-Q6P3EWNA-3N1U2hq1.js +1 -0
- package/dist/client/assets/treemap-SAJKECNS-yO7fe4dH.js +1 -0
- package/dist/client/assets/treemap-WGGIJYW6-BFO1obBW.js +1 -0
- package/dist/client/assets/{uk-UA-K6SV5NFQ-BLTTtyNB.js → uk-UA-K6SV5NFQ-_OJVmMT9.js} +1 -1
- package/dist/client/assets/{usecaseDiagram-VIAY4XPW-CDe-IMjS.js → usecaseDiagram-WPOLBNNX-uIlXI205.js} +6 -6
- package/dist/client/assets/{uz-UZ-TVKTZO2G-Bm02Eg3D.js → uz-UZ-TVKTZO2G-BPXzC1bJ.js} +1 -1
- package/dist/client/assets/{vault-api-client-DrRW0QwO.js → vault-api-client-DORNT49K.js} +24 -6
- package/dist/client/assets/{vault-paths-BT-6nztu.js → vault-paths-R2qcfmE0.js} +1 -1
- package/dist/client/assets/{venn.esm-C5rDfA9t.js → venn.esm-BxwF8YNp.js} +1 -1
- package/dist/client/assets/{vennDiagram-4TSXK5OY-BW6Qp12d.js → vennDiagram-4TSXK5OY-Cl6f16-U.js} +1 -1
- package/dist/client/assets/{vennDiagram-BLWOH2XV-KxIPKpHi.js → vennDiagram-Q3Y3IDCW-DZFF_ntk.js} +1 -1
- package/dist/client/assets/{vi-VN-7FKFXJNO-CL3WPhmG.js → vi-VN-7FKFXJNO-CjP0avHF.js} +1 -1
- package/dist/client/assets/wardley-7MLQ67FV-CCVlnR9Q.js +1 -0
- package/dist/client/assets/wardley-WFR3VGLG-BuSMKsul.js +1 -0
- package/dist/client/assets/{wardleyDiagram-YMQ3BMBF-BNYqEy7M.js → wardleyDiagram-IVAIDKWA-bwMSFCgK.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-VM6X3IG4-BoCETVsK.js → wardleyDiagram-VM6X3IG4-BbU7rAxb.js} +1 -1
- package/dist/client/assets/{worker-engine-BCCrxWYm-1fphds7O.js → worker-engine-BCCrxWYm-BU5lrbSm.js} +1 -1
- package/dist/client/assets/workspace-sync-client-B7dmdJGR.js +1 -0
- package/dist/client/assets/{xychartDiagram-TAQBALBS-Sv6aaptV.js → xychartDiagram-4URNHDU4-AjWzA402.js} +1 -1
- package/dist/client/assets/{xychartDiagram-S5SC5T6Z-eB5Fu9P7.js → xychartDiagram-S5SC5T6Z-C5L6jReS.js} +1 -1
- package/dist/client/assets/{yaml-BcZaqAz8.js → yaml-Breo7DWT.js} +4 -4
- package/dist/client/assets/{yjs-Jd9fna_Y.js → yjs-ZDLwhBUu.js} +1 -1
- package/dist/client/assets/{yjs-provider-reset-guard-Cqu0Z6xH.js → yjs-provider-reset-guard-D5pm5yx8.js} +1 -1
- package/dist/client/assets/{zh-CN-AOKVLNNK-DGidDH2b.js → zh-CN-AOKVLNNK-CU0vKHKs.js} +1 -1
- package/dist/client/assets/{zh-HK-CDKPF5DC-CRcNR3rk.js → zh-HK-CDKPF5DC-BBhn88ei.js} +1 -1
- package/dist/client/assets/{zh-TW-ZVGYESGW-C7Qji1y6.js → zh-TW-ZVGYESGW-od6h3pTc.js} +1 -1
- package/dist/client/canvas-editor.html +1 -1
- package/dist/client/drawio-editor.html +4 -4
- package/dist/client/excalidraw-editor.html +37 -37
- package/dist/client/export-document.html +2 -2
- package/dist/client/index.html +1 -1
- package/package.json +22 -22
- package/src/client/application/diagram-preview-export.js +2 -1
- package/src/client/application/mermaid-preview-hydrator.js +2 -1
- package/src/client/domain/excalidraw-scene.js +13 -11
- package/src/client/domain/mermaid-source.js +44 -0
- package/src/client/export/export-pipeline.js +7 -6
- package/src/client/infrastructure/webmcp-tool-registry.js +5 -8
- package/src/client/presentation/git-diff-view-controller.js +3 -3
- package/src/domain/excalidraw-room-codec.js +11 -10
- package/src/server/domain/collaboration/collaboration-room.js +92 -61
- package/src/server/infrastructure/persistence/sidecar-store.js +5 -1
- package/dist/client/assets/api-client-utils-C5ESDKMG.js +0 -1
- package/dist/client/assets/architecture-7GRP2DOG-BBwRXFv3.js +0 -1
- package/dist/client/assets/architecture-WOLXFQ4H-C0NxYiG7.js +0 -1
- package/dist/client/assets/babel-Bi_28hhi.js +0 -16
- package/dist/client/assets/canvasEditor-sBK7KfrD.js +0 -1
- package/dist/client/assets/channel-CgcHBnmr.js +0 -1
- package/dist/client/assets/chunk-2BW5OAIV-CNFO1U_e.js +0 -10
- package/dist/client/assets/chunk-2E4U76K2-DEnS5IbF.js +0 -1
- package/dist/client/assets/chunk-2ZTRR5NV-CnDP55cn.js +0 -2
- package/dist/client/assets/chunk-747NJXEK-Cur1aosP.js +0 -2
- package/dist/client/assets/chunk-BP2KR52E-DAQ1pzDV.js +0 -2
- package/dist/client/assets/chunk-F6S3BTY2-DVWKCAHp.js +0 -2
- package/dist/client/assets/chunk-FLFP27SU-CydzbSsY.js +0 -12
- package/dist/client/assets/chunk-FVRAUYC3-C7b9SJ81.js +0 -1
- package/dist/client/assets/chunk-H5A3YXKD-ChP7mNJq.js +0 -41
- package/dist/client/assets/chunk-NTY3LDVX-CVWLK_fh.js +0 -1
- package/dist/client/assets/chunk-OUJLGHUK-DA95-S9B.js +0 -2
- package/dist/client/assets/chunk-XC4XBNZT-D9oehSn8.js +0 -62
- package/dist/client/assets/chunk-Z6ETV63D-DOcrnz-P.js +0 -1
- package/dist/client/assets/chunk-ZO67DCNQ-BAOMIkLF.js +0 -2
- package/dist/client/assets/classDiagram-ZZMXUADV-BmETdFmC.js +0 -1
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-BmETdFmC.js +0 -1
- package/dist/client/assets/crystal-Bsdphhtm.js +0 -1
- package/dist/client/assets/cynefin-EF2NZ3EQ-DVkJeZ8i.js +0 -1
- package/dist/client/assets/cynefin-OW5HDTMX-CF3N9j1_.js +0 -1
- package/dist/client/assets/cytoscape-cose-bilkent-NdTYBUiT.js +0 -1
- package/dist/client/assets/cytoscape-fcose-DE9_QRG_.js +0 -1
- package/dist/client/assets/cytoscape.esm-EK2DW5Qr.js +0 -321
- package/dist/client/assets/dagre-C-rnJpZF.js +0 -1
- package/dist/client/assets/dagre-GXQ25YYZ-Cku9eia9.js +0 -4
- package/dist/client/assets/dagre-W4DXFKR2-DOMOIsPd.js +0 -4
- package/dist/client/assets/diagram-2UJZ2QOL-D8WvnEyx.js +0 -200
- package/dist/client/assets/dist-26Ce-5t4.js +0 -1
- package/dist/client/assets/dist-8MLNn-I6.js +0 -1
- package/dist/client/assets/dist-Bkb-_VdB.js +0 -1
- package/dist/client/assets/dist-C2CGvCPd.js +0 -1
- package/dist/client/assets/dist-CFCSUmJk.js +0 -1
- package/dist/client/assets/dist-CJh3Qrid.js +0 -13
- package/dist/client/assets/dist-CbKnZGN4.js +0 -1
- package/dist/client/assets/dist-Cik4RJXj.js +0 -1
- package/dist/client/assets/dist-D2ql2LCd.js +0 -1
- package/dist/client/assets/dist-D47MOYFN.js +0 -1
- package/dist/client/assets/dist-DBhUaexM.js +0 -1
- package/dist/client/assets/dist-DJux6Vc5.js +0 -1
- package/dist/client/assets/dist-DLNdMWPH.js +0 -1
- package/dist/client/assets/dist-DPJj-Y3l.js +0 -1
- package/dist/client/assets/dist-DTGcVSU8.js +0 -1
- package/dist/client/assets/dist-DlOxjzWi.js +0 -9
- package/dist/client/assets/dist-DogjjM_B.js +0 -1
- package/dist/client/assets/dist-Dyv_RvyB.js +0 -23
- package/dist/client/assets/dist-QMvcnJHf.js +0 -1
- package/dist/client/assets/dist-QN1K2czv.js +0 -11
- package/dist/client/assets/dist-W8ilOKl3.js +0 -1
- package/dist/client/assets/dist-_17-t9qP.js +0 -1
- package/dist/client/assets/dist-uE774WWs.js +0 -1
- package/dist/client/assets/elk-IJKZMXRS-DsbrbBYg.js +0 -27
- package/dist/client/assets/embedpdf-BfUI-3pv.js +0 -1
- package/dist/client/assets/en-7ZVUCEYH-C_VXKxxb.js +0 -1
- package/dist/client/assets/eventmodeling-K75KTNOO-BWBlZ5cR.js +0 -1
- package/dist/client/assets/eventmodeling-NTZA5JFV-CDy1bN6j.js +0 -1
- package/dist/client/assets/excalidrawEditor-W2lZ5Mej.js +0 -9
- package/dist/client/assets/export-page-Bomh9oEr.js +0 -46
- package/dist/client/assets/exportDocument-BFIOECJ3.js +0 -2
- package/dist/client/assets/file-search-Dk2O14Vw.js +0 -1
- package/dist/client/assets/flowDiagram-HODETNUW-DcVVYJUZ.js +0 -1
- package/dist/client/assets/flowDiagram-OXPTDLAJ-Dy6y46oF.js +0 -1
- package/dist/client/assets/gitGraph-4MIJSDKK-B-rpDYbz.js +0 -1
- package/dist/client/assets/gitGraph-VSP46ZUC-1499lQAI.js +0 -1
- package/dist/client/assets/groovy-CUpZ7dEl.js +0 -1
- package/dist/client/assets/image-6XY3GD3F-DCWbu6d4.js +0 -1
- package/dist/client/assets/image-blob-reduce.esm-BFq-Mx5V.js +0 -2
- package/dist/client/assets/image-lightbox-controller-DAcXEXxT.js +0 -184
- package/dist/client/assets/index-D3WGkxfI.js +0 -960
- package/dist/client/assets/info-A6RAGUB7-BlutK7BT.js +0 -1
- package/dist/client/assets/info-OHQRW6UA-BDFQOo4H.js +0 -1
- package/dist/client/assets/javascript-B9I2pbsP.js +0 -1
- package/dist/client/assets/javascript-DctB8BJo.js +0 -1
- package/dist/client/assets/katex-9NBMfU68.js +0 -257
- package/dist/client/assets/linear-DExL6ILt.js +0 -1
- package/dist/client/assets/markdown-headings-zYEUahfW.js +0 -41
- package/dist/client/assets/markdown-it-DpvIRaVq.js +0 -13
- package/dist/client/assets/packet-AYTQ26CC-DvbY8dI6.js +0 -1
- package/dist/client/assets/packet-JDAUHWVQ-DJ9K2MA4.js +0 -1
- package/dist/client/assets/percentages-LWOC67ZH-VhvllE7L.js +0 -1
- package/dist/client/assets/pica-BPrp-GK1.js +0 -2
- package/dist/client/assets/pie-WAS4IAKB-DWSm9SSD.js +0 -1
- package/dist/client/assets/pie-XZMESJXO-CQIQasY-.js +0 -1
- package/dist/client/assets/preload-helper-CYtfOYgs.js +0 -1
- package/dist/client/assets/preview-diagram-utils-txBCoW8d.js +0 -1
- package/dist/client/assets/preview-render-compiler-D_aJv7Ew.js +0 -3
- package/dist/client/assets/preview-render-worker-dFNyrVyB.js +0 -579
- package/dist/client/assets/prod-ItolaHmf.js +0 -145
- package/dist/client/assets/prod-rdly4JJQ.js +0 -1
- package/dist/client/assets/pug-CqqUmdG7.js +0 -1
- package/dist/client/assets/purify.es-go7v6Te-.js +0 -3
- package/dist/client/assets/quick-switcher-controller-DsK70I7K.js +0 -1
- package/dist/client/assets/radar-ABXABTNO-ByfpCXh9.js +0 -1
- package/dist/client/assets/radar-RG4KPBEZ-BfNQUEQy.js +0 -1
- package/dist/client/assets/railroad-74A4TZTK-BaQ6U6eJ.js +0 -1
- package/dist/client/assets/railroad-I3PHUGI6-CTUn9HhI.js +0 -1
- package/dist/client/assets/railroad-abnf-HS5TGJTU-BJ3KZw7J.js +0 -1
- package/dist/client/assets/railroad-abnf-LNEFI6M7-Ct-b-y0F.js +0 -1
- package/dist/client/assets/railroad-ebnf-DWYD2UWJ-BZMYMWOe.js +0 -1
- package/dist/client/assets/railroad-ebnf-LZEXJU2U-DA0sEq7w.js +0 -1
- package/dist/client/assets/railroad-peg-JR7BVNR7-Dj23PxYc.js +0 -1
- package/dist/client/assets/railroad-peg-WCYAUIDC-DCmlICzO.js +0 -1
- package/dist/client/assets/rolldown-runtime-Dd_uD5pT.js +0 -1
- package/dist/client/assets/src-XiVvaevx.js +0 -1
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-ClmOOUsT.js +0 -1
- package/dist/client/assets/subset-shared.chunk-BXlA-9CO.js +0 -1
- package/dist/client/assets/swimlanes-42K2YHIH-BUz31lO3.js +0 -1
- package/dist/client/assets/swimlanes-N4OXWK64-Dd3dFdPD.js +0 -1
- package/dist/client/assets/swimlanesDiagram-K3J5GTZL-Bz9gFdls.js +0 -8
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-DoDs3zod.js +0 -8
- package/dist/client/assets/treeView-D4JQ5SDB-DcX7Bx0H.js +0 -1
- package/dist/client/assets/treeView-Q6P3EWNA-BvHOzbu9.js +0 -1
- package/dist/client/assets/treemap-SAJKECNS-BcCHmcAX.js +0 -1
- package/dist/client/assets/treemap-WGGIJYW6-oety7paS.js +0 -1
- package/dist/client/assets/wardley-7MLQ67FV-DOahSwbZ.js +0 -1
- package/dist/client/assets/wardley-WFR3VGLG-BdwDpX_I.js +0 -1
- package/dist/client/assets/workspace-sync-client-C_P9wtjf.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{F as e,N as t,O as n,P as r,a as i,i as a,j as o,n as s,t as c}from"./yjs-Jd9fna_Y.js";import{t as l}from"./room-DX7lIfnu.js";import{t as u}from"./vault-paths-BT-6nztu.js";import{n as d}from"./wiki-link-resolver-BCdGUpdu.js";import{n as f,t as p}from"./vault-api-client-DrRW0QwO.js";import{a as m,c as h,i as g,o as _,p as ee,r as v,t as y}from"./image-lightbox-controller-DAcXEXxT.js";import{n as b,o as x,r as te,t as ne}from"./runtime-paths-qQGhzNx4.js";import"./runtime-config-CvrkHb0n.js";import{n as re,t as ie}from"./yjs-provider-reset-guard-Cqu0Z6xH.js";import{St as ae,X as S,ct as oe,wt as se}from"./dist-CJh3Qrid.js";import{a as ce}from"./dist-8MLNn-I6.js";import{a as le}from"./dist-CHUI56fT.js";import{n as ue,t as de}from"./src-D5mvpivG.js";import{r as fe}from"./markdown-headings-zYEUahfW.js";import{n as pe,t as me}from"./file-search-Dk2O14Vw.js";/* empty css *//* empty css */var he=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`;function C(e,t,n){let r=n[0];if(t!=null&&e>=t)throw Error(`${e} >= ${t}`);if(e.slice(-1)===r||t&&t.slice(-1)===r)throw Error(`trailing zero`);if(t){let i=0;for(;(e[i]||r)===t[i];)i++;if(i>0)return t.slice(0,i)+C(e.slice(i),t.slice(i),n)}let i=e?n.indexOf(e[0]):0,a=t==null?n.length:n.indexOf(t[0]);return a-i>1?n[Math.round(.5*(i+a))]:t&&t.length>1?t.slice(0,1):n[i]+C(e.slice(1),null,n)}function ge(e){if(e.length!==_e(e[0]))throw Error(`invalid integer part of order key: ${e}`)}function _e(e){if(e>=`a`&&e<=`z`)return e.charCodeAt(0)-97+2;if(e>=`A`&&e<=`Z`)return 90-e.charCodeAt(0)+2;throw Error(`invalid order key head: ${e}`)}function w(e){let t=_e(e[0]);if(t>e.length)throw Error(`invalid order key: ${e}`);return e.slice(0,t)}function ve(e,t=he){let n=e.split(``).every(e=>t.includes(e));if(e===`A${t[0].repeat(26)}`||!n)throw Error(`invalid order key: ${e}`);let r=w(e);if(e.slice(r.length).slice(-1)===t[0])throw Error(`invalid order key: ${e}`)}function ye(e,t){ge(e);let[n,...r]=e.split(``),i=!0;for(let e=r.length-1;i&&e>=0;e--){let n=t.indexOf(r[e])+1;n===t.length?r[e]=t[0]:(r[e]=t[n],i=!1)}if(i){if(n===`Z`)return`a${t[0]}`;if(n===`z`)return null;let e=String.fromCharCode(n.charCodeAt(0)+1);return e>`a`?r.push(t[0]):r.pop(),e+r.join(``)}return n+r.join(``)}function be(e,t){ge(e);let[n,...r]=e.split(``),i=!0;for(let e=r.length-1;i&&e>=0;e--){let n=t.indexOf(r[e])-1;n===-1?r[e]=t.slice(-1):(r[e]=t[n],i=!1)}if(i){if(n===`a`)return`Z${t.slice(-1)}`;if(n===`A`)return null;let e=String.fromCharCode(n.charCodeAt(0)-1);return e<`Z`?r.push(t.slice(-1)):r.pop(),e+r.join(``)}return n+r.join(``)}function T(e,t,n=he){if(e!=null&&ve(e,n),t!=null&&ve(t,n),e!=null&&t!=null&&e>=t)throw Error(`${e} >= ${t}`);if(e==null){if(t==null)return`a${n[0]}`;let e=w(t),r=t.slice(e.length);if(e===`A${n[0].repeat(26)}`)return e+C(``,r,n);if(e<t)return e;let i=be(e,n);if(i==null)throw Error(`cannot decrement any more`);return i}if(t==null){let t=w(e),r=e.slice(t.length);return ye(t,n)??t+C(r,null,n)}let r=w(e),i=e.slice(r.length),a=w(t),o=t.slice(a.length);if(r===a)return r+C(i,o,n);let s=ye(r,n);if(s==null)throw Error(`cannot increment any more`);return s<t?s:r+C(i,null,n)}function E(e,t,n,r=he){if(n===0)return[];if(n===1)return[T(e,t,r)];if(t==null){let i=T(e,t,r),a=[i];for(let e=0;e<n-1;e++)i=T(i,t,r),a.push(i);return a}if(e==null){let i=T(e,t,r),a=[i];for(let t=0;t<n-1;t++)i=T(e,i,r),a.push(i);return a.reverse(),a}let i=Math.floor(n/2),a=T(e,t,r);return[...E(e,a,i,r),a,...E(a,t,n-i-1,r)]}var xe=/[\uD800-\uDBFF]/,Se=/[\uDC00-\uDFFF]/,Ce=(e,t)=>{let n=0,r=0;for(;n<e.length&&n<t.length&&e[n]===t[n];)n++;for(n>0&&xe.test(e[n-1])&&n--;r+n<e.length&&r+n<t.length&&e[e.length-r-1]===t[t.length-r-1];)r++;return r>0&&Se.test(e[e.length-r])&&r--,{index:n,remove:e.length-n-r,insert:t.slice(n,t.length-r)}},D=`canvas-nodes`,O=`canvas-edges`,k=`canvas-meta`,A=`canvas-node-order`,j=`canvas-edge-order`;function M(){let e=Error(`Invalid JSON Canvas 1.0 document`);return e.code=`CANVAS_INVALID`,e}function N(e){if(!e||typeof e!=`object`||Array.isArray(e))throw M()}function P(e){if(typeof e!=`string`)throw M()}function F(e,t,n=null){if(Object.hasOwn(e,t)&&(P(e[t]),n&&!n.includes(e[t])))throw M()}function we(e){if(Object.hasOwn(e,`color`)&&!/^(?:[1-6]|#[\da-f]{6})$/i.test(e.color))throw M();F(e,`color`)}function I(e){if(N(e),P(e.id),![`text`,`file`,`link`,`group`].includes(e.type))throw M();for(let t of[`x`,`y`,`width`,`height`])if(!Number.isInteger(e[t]))throw M();if(we(e),e.type===`text`&&P(e.text),e.type===`file`&&(P(e.file),F(e,`subpath`),Object.hasOwn(e,`subpath`)&&!e.subpath.startsWith(`#`)))throw M();e.type===`link`&&P(e.url),e.type===`group`&&(F(e,`label`),F(e,`background`),F(e,`backgroundStyle`,[`cover`,`ratio`,`repeat`]))}function L(e){N(e);for(let t of[`id`,`fromNode`,`toNode`])P(e[t]);for(let t of[`fromSide`,`toSide`])F(e,t,[`top`,`right`,`bottom`,`left`]);for(let t of[`fromEnd`,`toEnd`])F(e,t,[`none`,`arrow`]);F(e,`label`),we(e)}function R(e){N(e);for(let t of[`nodes`,`edges`]){if(Object.hasOwn(e,t)&&!Array.isArray(e[t]))throw M();let n=new Set;for(let r of e[t]??[]){if((t===`nodes`?I:L)(r),n.has(r.id))throw M();n.add(r.id)}}let t=new Set((e.nodes??[]).map(e=>e.id));if((e.edges??[]).some(e=>!t.has(e.fromNode)||!t.has(e.toNode)))throw M();return e}function Te(e){try{if(typeof e!=`string`)throw M();return R(JSON.parse(e,(e,t)=>{if(typeof t==`number`&&!Number.isFinite(t))throw M();return t}))}catch{throw M()}}function Ee(e,t){return JSON.stringify(e)===JSON.stringify(t)}function De(e){if(!(e instanceof a))throw M();return Object.fromEntries(Array.from(e,([e,t])=>[e,t instanceof i?t.toString():structuredClone(t)]))}function Oe(e,t){let{index:n,remove:r,insert:i}=Ce(e.toString(),t);r&&e.delete(n,r),i&&e.insert(n,i)}function z(e,t,{textNode:n=!1,replace:r=!1}={}){if(r)for(let n of e.keys())Object.hasOwn(t,n)||e.delete(n);for(let[r,a]of Object.entries(t)){let t=e.get(r);a===void 0?e.delete(r):n&&r===`text`?t instanceof i?Oe(t,a):e.set(r,new i(a)):Ee(t,a)||e.set(r,structuredClone(a))}}function B(e,t,n){let r=e.getMap(n);return Array.from(e.getMap(t),([e,t])=>{let n=De(t);if(n.id!==e)throw M();return n}).sort((e,t)=>{let n=String(r.get(e.id)??``),i=String(r.get(t.id)??``);return n===i?e.id<t.id?-1:+(e.id>t.id):n<i?-1:1})}function ke(e){return e?.getMap(k).get(`schemaVersion`)===1}function Ae(e){if(!ke(e))throw M();let t=e.getMap(k),n=t.get(`properties`),r=n instanceof a?De(n):{},i=B(e,D,A),o=new Set(i.map(e=>e.id)),s=B(e,O,j).filter(e=>(L(e),o.has(e.fromNode)&&o.has(e.toNode)));return(t.get(`nodesPresent`)||i.length)&&(r.nodes=i),(t.get(`edgesPresent`)||s.length)&&(r.edges=s),R(r)}function je(e,t){R(t);let n=e.getMap(k);n.get(`schemaVersion`)!==1&&n.set(`schemaVersion`,1);let r=n.get(`properties`);r instanceof a||(r=new a,n.set(`properties`,r)),z(r,Object.fromEntries(Object.entries(t).filter(([e])=>![`nodes`,`edges`].includes(e))),{replace:!0});for(let[r,i,o]of[[`nodes`,D,A],[`edges`,O,j]]){let s=t[r]??[],c=e.getMap(i),l=e.getMap(o),u=new Set(s.map(e=>e.id));for(let e of c.keys())u.has(e)||c.delete(e);for(let e of l.keys())u.has(e)||l.delete(e);let d=E(null,null,s.length);s.forEach((e,t)=>{let n=c.get(e.id);n instanceof a||(n=new a,c.set(e.id,n)),z(n,e,{replace:!0,textNode:r===`nodes`&&e.type===`text`}),l.get(e.id)!==d[t]&&l.set(e.id,d[t])});let f=Object.hasOwn(t,r);n.get(`${r}Present`)!==f&&n.set(`${r}Present`,f)}return t}function Me(e,t,n,r){let i=e.getMap(n);if(i.has(t.id))throw M();let o=e.getMap(r),s=B(e,n,r),c=E((s.length?o.get(s.at(-1).id):null)??null,null,1)[0],l=new a;return i.set(t.id,l),z(l,t,{textNode:n===`canvas-nodes`&&t.type===`text`}),o.set(t.id,c),!0}function Ne(e,t){return I(t),Me(e,t,D,A)}function Pe(e,t){L(t);let n=e.getMap(D);if(!n.has(t.fromNode)||!n.has(t.toNode))throw M();return Me(e,t,O,j)}function Fe(e,t,n,r,i){let o=e.getMap(r).get(t);if(!(o instanceof a))return!1;N(n);let s=De(o),c=Object.fromEntries(Object.entries({...s,...n}).filter(([,e])=>e!==void 0));if(c.id!==t)throw M();return i(c),!Ee(s,c)&&(z(o,n,{textNode:r===`canvas-nodes`&&c.type===`text`}),!0)}function Ie(e,t,n){return Fe(e,t,n,D,I)}function Le(e,t,n){return Fe(e,t,n,O,t=>{L(t);let n=e.getMap(D);if(!n.has(t.fromNode)||!n.has(t.toNode))throw M()})}function Re(e,t){let n=!1;for(let r of t)e.getMap(`canvas-edges`).has(r)&&(e.getMap(O).delete(r),e.getMap(j).delete(r),n=!0);return n}function ze(e,t){let n=!1,r=new Set(t);for(let t of r)e.getMap(`canvas-nodes`).has(t)&&(e.getMap(D).delete(t),e.getMap(A).delete(t),n=!0);return Re(e,Array.from(e.getMap(`canvas-edges`),([e,t])=>r.has(t.get(`fromNode`))||r.has(t.get(`toNode`))?e:null).filter(e=>e!==null))||n}function Be(e,t,n){if(![`front`,`back`].includes(n))throw M();let r=B(e,D,A);if(!r.some(e=>e.id===t)||r.length<2)return!1;let i=n===`front`?r.at(-1):r[0];if(i.id===t)return!1;let a=e.getMap(A),o=a.get(i.id),s=n===`front`?E(o,null,1)[0]:E(null,o,1)[0];return a.set(t,s),!0}function Ve(e,t){let n=e.getMap(k),r=n.get(`externalConflict`);if(!r)return!1;if(![`local`,`external`].includes(t))throw M();return t===`external`&&je(e,Te(r.content)),n.delete(`externalConflict`),!0}function V(e){return/^[1-6]$/.test(e)?`var(--canvas-color-${e})`:/^#[\da-f]{6}$/i.test(e)?e:`var(--color-border)`}function H(e){let t=String(e??``).replace(/\\/g,`/`);return!t||t.length>4096||/^[/]|[\0?#]|^[a-z][a-z\d+.-]*:/i.test(t)||t.split(`/`).some(e=>!e||e.startsWith(`.`))?null:t}function He(e){try{let t=new URL(e);return[`https:`,`http:`,`mailto:`].includes(t.protocol)?t.href:null}catch{return null}}function Ue(e,t){let n={x:e.x+e.width/2,y:e.y+e.height/2},[r,i]={top:[0,-1],right:[1,0],bottom:[0,1],left:[-1,0]}[t];return{x:n.x+r*e.width/2,y:n.y+i*e.height/2,dx:r,dy:i}}function We(e,t){return[[`left`,Math.abs(t.x-e.x)],[`right`,Math.abs(t.x-e.x-e.width)],[`top`,Math.abs(t.y-e.y)],[`bottom`,Math.abs(t.y-e.y-e.height)]].sort((e,t)=>e[1]-t[1])[0][0]}function Ge(e,t){let n=t.get(e.fromNode),r=t.get(e.toNode);if(!n||!r)return null;let i=r.x+r.width/2-n.x-n.width/2,a=r.y+r.height/2-n.y-n.height/2,o=Math.abs(i)>=Math.abs(a),s=Ue(n,e.fromSide||(o?i>=0?`right`:`left`:a>=0?`bottom`:`top`)),c=Ue(r,e.toSide||(o?i>=0?`left`:`right`:a>=0?`top`:`bottom`)),l=Math.max(40,Math.hypot(c.x-s.x,c.y-s.y)/3);return{path:`M ${s.x} ${s.y} C ${s.x+s.dx*l} ${s.y+s.dy*l}, ${c.x+c.dx*l} ${c.y+c.dy*l}, ${c.x} ${c.y}`,x:(s.x+c.x)/2,y:(s.y+c.y)/2}}function Ke({container:e,markdownText:t,sourceFilePath:n,subpath:r=``,getFileList:i,getLocalUser:a,getTheme:o,onOpenFile:s,vaultApiClient:c}){let l=document.createElement(`div`);l.className=`preview-content canvas-markdown-preview`,e.append(l);let f={getActiveFilePath:()=>n,getLocalUser:a,getTheme:o,onOpenFile:s,previewContainer:e.closest(`.canvas-card-content`),previewElement:l,vaultApiClient:c},p=[new g(f),new h(f),new _(f),new m(f)],v=()=>p.forEach(e=>e.syncLayout?.()),y=new ee({...f,getContent:()=>t,getFileList:i,getSourceFilePath:()=>n,getSubpath:()=>r,getWikiLinkAutoCreate:()=>!1,loadFileSource:async e=>String((await c.readFile(e)).content??``),plantUmlRenderClient:c,onBeforeRenderCommit:()=>p.forEach(e=>e.detachForCommit?.()),onAfterRenderCommit:(e,t)=>{p.forEach(e=>e.reconcileEmbeds(l,t)),l.querySelectorAll(`[data-task-checkbox]`).forEach(e=>{e.disabled=!0})},onPreviewLayoutChange:v}),b=new ResizeObserver(v);b.observe(l);let x=e=>{let t=e.target.closest(`a[href]`);if(!t)return;let r=t.getAttribute(`href`)||``,a=t.dataset.wikiTarget;if(a){e.preventDefault();let[t,n]=a.split(`#`),r=d(t,i());r&&s(r,n?`#${n}`:``)}else if(r.startsWith(`#`)){e.preventDefault();let t;try{t=decodeURIComponent(r.slice(1))}catch{return}let i=[...l.querySelectorAll(`[id]`)].find(e=>e.id===t);i?i.scrollIntoView({block:`nearest`}):!t||t===`top`?f.previewContainer.scrollTo({top:0}):s(n,r)}else if(!/^(?:[a-z][a-z\d+.-]*:|\/\/)/i.test(r)){e.preventDefault();let[t,i]=r.split(`#`),a;try{a=H(u(n,decodeURIComponent(t)))}catch{return}a&&s(a,i?`#${i}`:``)}};return l.addEventListener(`click`,x),y.queueRender(),{applyTheme(e){y.applyTheme(e),p.forEach(t=>t.updateTheme?.(e))},destroy(){b.disconnect(),l.removeEventListener(`click`,x),y.destroy(),p.forEach(e=>e.destroy()),l.remove()}}}var qe=class{constructor({filePath:e,user:t,readFile:n,onChange:r,onAwareness:i,onConnection:a,providerFactory:o=(...e)=>new re(...e),wsBaseUrl:l=x()}){Object.assign(this,{filePath:e,user:t,readFile:n,onChange:r,onAwareness:i,onConnection:a,providerFactory:o,wsBaseUrl:l}),this.doc=new c,this.localOrigin=Symbol(`canvas-edit`),this.meta=this.doc.getMap(k),this.undoManager=new s([this.doc.getMap(D),this.doc.getMap(O),this.doc.getMap(A),this.doc.getMap(j)],{trackedOrigins:new Set([this.localOrigin]),captureTimeout:500}),this.pendingFlushes=new Map,this.localVersion=0,this.acknowledgedVersion=0,this.hasEverConnected=!1,this.destroyed=!1,this.fallback=null,this.error=``,this.offline=globalThis.navigator?.onLine===!1,this.handleOffline=()=>{this.offline=!0,this.provider?.disconnect(),this.publish()},this.handleOnline=()=>{this.offline&&(this.offline=!1,this.provider?.connect(),this.publish())}}get canEdit(){return!(!this.provider?.synced||!ke(this.doc)||this.error||this.meta.get(`externalConflict`)||this.disconnecting||this.offline)}get hasPendingWrites(){return this.localVersion>this.acknowledgedVersion}async connect(){this.doc.on(`update`,(e,t)=>{t!==this.provider&&(this.localVersion+=1,clearTimeout(this.flushTimer),this.flushTimer=setTimeout(()=>{this.flush()},400)),this.publish()}),this.provider=this.providerFactory(this.wsBaseUrl,this.filePath,this.doc,{disableBc:!0,maxBackoffTime:5e3}),ie(this.provider),this.provider.messageHandlers[5]=(e,t)=>{let r=n(t);this.pendingFlushes.get(r)?.(!0)},this.awareness=this.provider.awareness,this.setUser(this.user),this.awareness.on(`change`,()=>this.publishAwareness()),this.provider.on(`status`,({status:e})=>{let t=e===`connected`&&!this.hasEverConnected;e===`connected`&&(this.hasEverConnected=!0),this.onConnection?.({status:e,firstConnection:t,hasEverConnected:this.hasEverConnected,attempts:0}),this.publish()}),this.provider.on(`sync`,()=>{this.publish(),this.provider.synced&&this.hasPendingWrites&&this.flush()}),globalThis.window?.addEventListener(`offline`,this.handleOffline),globalThis.window?.addEventListener(`online`,this.handleOnline),this.offline&&this.provider.disconnect(),this.publish();try{let e=await this.readFile(this.filePath);if(this.destroyed)return;this.fallback=Te(e.content)}catch(e){if(this.destroyed)return;this.error=e.message||`Unable to open canvas`}this.publish()}publish(){if(this.destroyed)return;let e=this.fallback;if(ke(this.doc))try{e=Ae(this.doc),this.error=``}catch{this.error=`Canvas data is invalid. Editing is paused to protect the file.`}else this.meta.get(`invalidContent`)&&(this.error=`Invalid JSON Canvas file. The original file has been preserved.`);this.onChange?.({document:e,canEdit:this.canEdit,synced:!!this.provider?.synced,conflict:this.meta.get(`externalConflict`),error:this.error,undoAvailable:this.undoManager.canUndo(),redoAvailable:this.undoManager.canRedo()})}mutate(e,{separateUndo:t=!0}={}){return this.canEdit?(t&&this.undoManager.stopCapturing(),this.doc.transact(()=>e(this.doc),this.localOrigin),t&&this.undoManager.stopCapturing(),!0):!1}undo(){this.canEdit&&(this.undoManager.undo(),this.publish())}redo(){this.canEdit&&(this.undoManager.redo(),this.publish())}setUser(e){this.user=e,this.awareness?.setLocalStateField(`user`,e)}setPresence(e,t){this.awareness?.setLocalStateField(e,t)}publishAwareness(){let e=[];this.awareness?.getStates().forEach((t,n)=>{t.user&&e.push({...t.user,clientId:n,isLocal:n===this.doc.clientID,pointer:t.pointer,selectedNodeIds:t.selectedNodeIds})}),this.onAwareness?.(e)}flush(n=5e3){if(!this.hasPendingWrites)return Promise.resolve(!0);let i=this.provider?.ws;if(!this.provider?.synced||i?.readyState!==1)return Promise.resolve(!1);let a=this.localVersion,s=`canvas-${this.doc.clientID}-${crypto.randomUUID()}`;return new Promise(c=>{let l=e=>{clearTimeout(u),this.pendingFlushes.delete(s),e&&(this.acknowledgedVersion=Math.max(this.acknowledgedVersion,a)),c(e&&!this.hasPendingWrites)},u=setTimeout(()=>l(!1),n);this.pendingFlushes.set(s,l);try{let n=o();e(n,4),r(n,s),i.send(t(n))}catch{l(!1)}})}async prepareDisconnect(){this.disconnecting=!0,this.publish();let e=await this.flush();return this.disconnecting=!1,this.publish(),e}destroy(){this.destroyed=!0,globalThis.window?.removeEventListener(`offline`,this.handleOffline),globalThis.window?.removeEventListener(`online`,this.handleOnline),clearTimeout(this.flushTimer),[...this.pendingFlushes.values()].forEach(e=>e(!1)),this.provider?.destroy(),this.undoManager.destroy(),this.doc.destroy()}};function Je({parent:e,text:t,awareness:n,undoManager:r,onClose:i}){let a=new ae,o=!1,s=new S({parent:e,state:se.create({doc:t.toString(),extensions:[le(),S.lineWrapping,S.contentAttributes.of({"aria-label":`Edit canvas text`}),a.of(S.editable.of(!0)),de(t,n,{undoManager:r}),oe.of([{key:`Escape`,run:()=>(i(),!0)},...ue,...ce])]})});return s.focus(),{text:t,destroy:()=>s.destroy(),setReadOnly:e=>{o!==e&&(o=e,s.dispatch({effects:a.reconfigure(S.editable.of(!o))}))}}}function Ye({root:e,title:t,loadChoices:n,onChoose:r,canChoose:i}){let a=document.activeElement,o=document.createElement(`dialog`);o.className=`canvas-picker`;let s=document.createElement(`h2`);s.id=`canvas-picker-${crypto.randomUUID()}`,s.textContent=t,o.setAttribute(`aria-labelledby`,s.id);let c=document.createElement(`button`);c.type=`button`,c.className=`canvas-button`,c.textContent=`Close`;let l=document.createElement(`header`);l.append(s,c);let u=document.createElement(`input`);u.type=`search`,u.placeholder=t,u.setAttribute(`aria-label`,t),u.setAttribute(`role`,`combobox`),u.setAttribute(`aria-autocomplete`,`list`),u.setAttribute(`aria-expanded`,`true`),u.autocomplete=`off`;let d=document.createElement(`div`);d.id=`${s.id}-results`,d.className=`canvas-picker-results`,d.setAttribute(`role`,`listbox`),d.setAttribute(`aria-label`,`Suggestions`),u.setAttribute(`aria-controls`,d.id);let f=document.createElement(`p`);f.className=`canvas-picker-status`,f.setAttribute(`role`,`status`),f.textContent=`Loading…`,o.append(l,u,d,f),e.append(o);let p=[],m=[],h=0,g=!1,_=()=>{g||(g=!0,o.close(),o.remove(),a?.isConnected&&a.focus({preventScroll:!0}))},ee=e=>{if(e){if(!i()){f.textContent=`This selection is no longer available. Close and try again.`;return}_(),r(e.value)}},v=e=>{h=Math.max(0,Math.min(m.length-1,e)),[...d.children].forEach((e,t)=>e.setAttribute(`aria-selected`,String(t===h)));let t=d.children[h];t?(u.setAttribute(`aria-activedescendant`,t.id),t.scrollIntoView({block:`nearest`})):u.removeAttribute(`aria-activedescendant`)},y=()=>{let e=u.value.trim().toLowerCase(),t=p.map(t=>({choice:t,score:e?pe(t.search,e)?.score:1})).filter(({score:e})=>e!==void 0).sort((e,t)=>t.score-e.score);m=t.slice(0,100).map(({choice:e})=>e),d.replaceChildren(...m.map((e,t)=>{let n=document.createElement(`button`);n.type=`button`,n.tabIndex=-1,n.id=`${d.id}-${t}`,n.setAttribute(`role`,`option`);let r=document.createElement(`span`);r.textContent=e.label;let i=document.createElement(`small`);return i.textContent=e.detail||``,n.append(r,i),n.addEventListener(`click`,()=>ee(e)),n})),f.textContent=t.length>100?`Showing the first 100 matches. Type to narrow the list.`:t.length?`↑ ↓ to navigate · Enter to choose · Esc to close`:`No matches.`,v(0)};return c.addEventListener(`click`,_),o.addEventListener(`cancel`,e=>{e.preventDefault(),_()}),o.addEventListener(`click`,e=>{let t=o.getBoundingClientRect();e.target===o&&(e.clientX<t.left||e.clientX>t.right||e.clientY<t.top||e.clientY>t.bottom)&&_()}),o.addEventListener(`keydown`,e=>{if(e.stopPropagation(),e.key===`Escape`){e.preventDefault(),_();return}e.target===u&&([`ArrowDown`,`ArrowUp`,`Enter`].includes(e.key)&&e.preventDefault(),e.key===`ArrowDown`&&v(h+1),e.key===`ArrowUp`&&v(h-1),e.key===`Enter`&&ee(m[h]))}),u.addEventListener(`input`,y),o.showModal(),u.focus(),Promise.resolve().then(n).then(e=>{g||(p=e.map(e=>({...e,search:me(e.searchText||`${e.label} ${e.detail||``}`)})),y())}).catch(()=>{g||(f.textContent=`Suggestions unavailable. Close and try again.`)}),{close:_}}var Xe=`http://www.w3.org/2000/svg`,U={text:`Text card`,file:`File card`,link:`Link card`,group:`Group`},Ze={text:`M14 3H5v18h14V8Z M14 3v5h5`,file:`M14 3H5v18h14V8Z M14 3v5h5 M8 12h8 M8 16h6`,link:`M10 13a5 5 0 0 0 7 0l3-3a5 5 0 0 0-7-7l-2 2 M14 11a5 5 0 0 0-7 0l-3 3a5 5 0 0 0 7 7l2-2`,group:`M8 3H3v5 M16 3h5v5 M21 16v5h-5 M8 21H3v-5 M11 3h2 M21 11v2 M11 21h2 M3 11v2`,edit:`m16 3 5 5-12 12-6 1 1-6Z M13 6l5 5`,color:`M12 3a9 9 0 1 0 0 18h1a2 2 0 0 0 0-4 2 2 0 0 1 0-4h4a4 4 0 0 0 4-4c0-3-4-6-9-6Z M7 10h.01 M10 7h.01 M15 7h.01`,section:`M9 3 7 21 M17 3l-2 18 M4 8h16 M3 16h16`,properties:`M4 6h6 M14 6h6 M4 12h10 M18 12h2 M4 18h2 M10 18h10 M10 3v6 M14 9v6 M6 15v6`,delete:`M3 6h18 M9 6V3h6v3 M5 6l1 15h12l1-15 M10 10v7 M14 10v7`,undo:`M3 10h10a7 7 0 0 1 7 7 M3 10l5-5 M3 10l5 5`,redo:`M21 10H11a7 7 0 0 0-7 7 M21 10l-5-5 M21 10l-5 5`,plus:`M12 5v14 M5 12h14`,minus:`M5 12h14`,fit:`M8 3H3v5 M16 3h5v5 M21 16v5h-5 M8 21H3v-5`,open:`M14 3h7v7 M21 3 10 14 M10 3H3v18h18v-7`,close:`m6 6 12 12 M18 6 6 18`,resize:`m9 20 11-11 M15 20l5-5`,help:`M21 12a9 9 0 1 0-18 0 9 9 0 0 0 18 0 M9 9a3 3 0 0 1 6 0c0 2-3 2-3 4 M12 17h.01`};function W(e){let t=q(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":1.6,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`});return t.append(q(`path`,{d:Ze[e]})),t}function G(e,t,n){let r=document.createElement(e);return t&&(r.className=t),n!==void 0&&(r.textContent=n),r}function K(e,t,n){let r=G(`button`,`canvas-button`);return r.type=`button`,r.title=e,r.setAttribute(`aria-label`,e),n?(r.classList.add(`canvas-icon-button`),r.append(W(n))):r.textContent=e,r.addEventListener(`click`,t),r}function q(e,t={}){let n=document.createElementNS(Xe,e);return Object.entries(t).forEach(([e,t])=>n.setAttribute(e,t)),n}var Qe=class{constructor({root:e,actions:t,createTextEditor:n,createMarkdownPreview:r,getText:i,readFile:a,readTree:o,attachmentUrl:s,onOpenFile:c,vaultId:l=``}){Object.assign(this,{root:e,actions:t,createTextEditor:n,createMarkdownPreview:r,getText:i,readFile:a,readTree:o,attachmentUrl:s,onOpenFile:c,vaultId:l}),this.nodes=new Map,this.selection=new Set,this.document={nodes:[],edges:[]},this.viewport={x:80,y:80,zoom:1},this.lastWheelPan=-1/0,this.canEdit=!1,this.selectedEdge=null,this.activeEditor=null,this.users=[],this.inspectorOpen=!1,this.abort=new AbortController,this.mount()}mount(){this.root.replaceChildren(),this.root.classList.add(`canvas-editor`),this.toolbar=G(`div`,`canvas-toolbar`),this.toolbar.setAttribute(`role`,`toolbar`),this.toolbar.setAttribute(`aria-label`,`Canvas tools`),this.editButtons=[],Object.entries(U).forEach(([e,t])=>{let n=K(`+ ${t}`,()=>this.addNode(e),e);n.title=`Add ${t.toLowerCase()}`,this.toolbar.append(n),this.editButtons.push(n)}),this.connectButton=K(`Connect`,()=>this.beginConnection(),`link`),this.deleteButton=K(`Delete`,()=>this.removeSelection(),`delete`),this.undoButton=K(`Undo`,()=>this.actions.undo(),`undo`),this.redoButton=K(`Redo`,()=>this.actions.redo(),`redo`),this.status=G(`span`,`canvas-status`,`Connecting…`),this.status.setAttribute(`role`,`status`),this.banner=G(`div`,`canvas-banner`),this.banner.hidden=!0,this.banner.setAttribute(`role`,`alert`),this.body=G(`div`,`canvas-body`),this.stage=G(`div`,`canvas-stage`),this.stage.tabIndex=0,this.stage.setAttribute(`aria-label`,`Canvas. Drag to select. Space-drag to pan. Use arrow keys to move selected cards.`),this.world=G(`div`,`canvas-world`),this.edges=q(`svg`,{class:`canvas-edges`,"aria-label":`Connections`}),this.world.append(this.edges),this.cursors=G(`div`,`canvas-cursors`),this.world.append(this.cursors),this.stage.append(this.world),this.emptyState=G(`div`,`canvas-empty-state`),this.emptyState.hidden=!0,this.emptyState.append(G(`strong`,``,`Start your canvas`),G(`span`,``,`Double-click to add text, or choose a card below.`)),this.mountSelectionToolbar(),this.inspector=G(`aside`,`canvas-inspector`),this.inspector.setAttribute(`aria-label`,`Canvas selection`),this.inspector.id=`canvas-properties`,this.inspector.hidden=!0,this.body.append(this.stage,this.inspector),this.navigation=G(`div`,`canvas-navigation`),this.navigation.setAttribute(`role`,`toolbar`),this.navigation.setAttribute(`aria-label`,`Canvas navigation`);let e=G(`div`,`canvas-tool-group`);this.zoomLabel=K(`Reset zoom`,()=>this.zoomBy(1/this.viewport.zoom)),this.zoomLabel.classList.add(`canvas-zoom-label`),e.append(K(`Zoom in`,()=>this.zoomBy(1.25),`plus`),this.zoomLabel,K(`Fit canvas`,()=>this.fit(),`fit`),K(`Zoom out`,()=>this.zoomBy(.8),`minus`));let t=G(`div`,`canvas-tool-group`);t.append(this.undoButton,this.redoButton),this.helpMenu=G(`details`,`canvas-help-menu canvas-tool-group`);let n=G(`summary`,`canvas-button canvas-icon-button`);n.title=`Canvas help`,n.setAttribute(`aria-label`,`Canvas help`),n.append(W(`help`));let r=G(`div`,`canvas-help-content`);r.append(G(`strong`,``,`Canvas shortcuts`));for(let[e,t]of[[`Double-click`,`Add or edit text`],[`Drag a card`,`Move it`],[`Drag background`,`Select cards`],[`Drag a group`,`Move its enclosed cards`],[`Shift-drag`,`Select inside a group`],[`Space / middle-drag`,`Pan canvas`],[`Ctrl / ⌘ + scroll`,`Zoom`],[`Shift + 1 / 2`,`Fit canvas / selection`],[`Drag a dot`,`Connect cards`],[`Choose section`,`Show a Markdown heading`]]){let n=G(`div`);n.append(G(`span`,``,e),G(`span`,``,t)),r.append(n)}this.helpMenu.append(n,r),this.navigation.append(e,t,this.helpMenu),this.help=G(`span`,`canvas-help`),this.help.setAttribute(`role`,`status`),this.stage.append(this.emptyState,this.toolbar,this.navigation,this.status,this.help),this.root.append(this.banner,this.body);let i=this.abort.signal;this.stage.addEventListener(`pointerdown`,e=>this.startPan(e),{signal:i}),this.stage.addEventListener(`dblclick`,e=>{if(e.target===this.stage){let t=this.stage.getBoundingClientRect();this.addNode(`text`,this.toWorld(e.clientX-t.left,e.clientY-t.top))}},{signal:i}),this.stage.addEventListener(`pointermove`,e=>this.publishPointer(e),{signal:i}),this.stage.addEventListener(`pointerleave`,()=>this.actions.presence(`pointer`,null),{signal:i}),this.stage.addEventListener(`dragover`,e=>{this.canEdit&&e.dataTransfer?.types.includes(`application/x-collabmd-vault-file`)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`)},{signal:i}),this.stage.addEventListener(`drop`,e=>{this.dropFile(e)},{signal:i}),this.stage.addEventListener(`wheel`,e=>{if(e.defaultPrevented||e.target.closest(`.canvas-selection-toolbar, .canvas-navigation, .canvas-toolbar`))return;let t=e.ctrlKey||e.metaKey||this.spaceHeld,n=e.target.closest(`.canvas-card-content`);if(!t&&n&&e.timeStamp-this.lastWheelPan>200){let t=e.shiftKey||Math.abs(e.deltaX)>Math.abs(e.deltaY),r=t&&!e.shiftKey?e.deltaX:e.deltaY;for(let i=e.target;n.contains(i);i=i.parentElement){let e=getComputedStyle(i);if(!/(auto|scroll)/.test(e[t?`overflowX`:`overflowY`]))continue;let n=t?i.scrollLeft:i.scrollTop,a=t?i.scrollWidth-i.clientWidth:i.scrollHeight-i.clientHeight;if(r<0?n>0:r>0&&n<a-1)return;if(e[t?`overscrollBehaviorX`:`overscrollBehaviorY`]!==`auto`)break}}e.preventDefault(),t?this.zoomBy(Math.exp(-e.deltaY*.005),e.clientX,e.clientY):(this.lastWheelPan=e.timeStamp,this.viewport.x-=e.shiftKey?e.deltaY:e.deltaX,this.viewport.y-=e.shiftKey?0:e.deltaY,this.applyViewport())},{signal:i,passive:!1}),this.root.addEventListener(`keydown`,e=>this.onKeyDown(e),{signal:i}),this.root.addEventListener(`pointerdown`,e=>{this.lastWheelPan=-1/0,[this.colorMenu,this.helpMenu].forEach(t=>{t.contains(e.target)||(t.open=!1)})},{signal:i,capture:!0}),window.addEventListener(`keyup`,e=>{e.code===`Space`&&(this.spaceHeld=!1)},{signal:i}),window.addEventListener(`blur`,()=>{this.spaceHeld=!1,this.cancelGesture?.()},{signal:i}),this.resizeObserver=new ResizeObserver(()=>this.positionSelectionToolbar()),this.resizeObserver.observe(this.stage),this.renderInspector(),this.applyViewport()}mountSelectionToolbar(){this.selectionToolbar=G(`div`,`canvas-selection-toolbar`),this.selectionToolbar.setAttribute(`role`,`toolbar`),this.selectionToolbar.setAttribute(`aria-label`,`Selection actions`),this.selectionToolbar.hidden=!0,this.editTextButton=K(`Edit text`,()=>this.openTextEditor([...this.selection][0]),`edit`),this.fileButton=K(`Change file`,()=>this.openFilePicker([...this.selection][0]),`file`),this.headingButton=K(`Choose section`,()=>this.openHeadingPicker([...this.selection][0])),this.headingButton.prepend(W(`section`)),this.labelInput=G(`input`,`canvas-connection-label`),this.labelInput.placeholder=`Connection label`,this.labelInput.setAttribute(`aria-label`,`Connection label`),this.labelInput.addEventListener(`change`,()=>{this.canEdit&&this.selectedEdge&&this.actions.updateEdge(this.selectedEdge,{label:this.labelInput.value||void 0})}),this.labelInput.addEventListener(`keydown`,e=>{e.key===`Enter`&&(e.preventDefault(),this.labelInput.blur()),e.key===`Escape`&&(this.labelInput.value=(this.document.edges??[]).find(e=>e.id===this.selectedEdge)?.label||``,this.labelInput.blur())}),this.colorMenu=G(`details`,`canvas-color-menu`);let e=G(`summary`,`canvas-button canvas-icon-button`);e.title=`Set color`,e.setAttribute(`aria-label`,`Set color`),e.append(W(`color`)),this.colorMenu.append(e);let t=G(`div`,`canvas-colors`);[``,`1`,`2`,`3`,`4`,`5`,`6`].forEach(e=>{let n=K(``,()=>{this.setSelectionColor(e||void 0),this.colorMenu.open=!1});n.setAttribute(`aria-label`,e?`Color ${e}`:`Default color`),n.title=e?`Color ${e}`:`Default color`,n.style.setProperty(`--canvas-color`,V(e)),t.append(n)});let n=G(`input`);n.type=`color`,n.setAttribute(`aria-label`,`Custom color`),n.addEventListener(`change`,()=>this.setSelectionColor(n.value)),t.append(n),this.colorMenu.append(t),this.propertiesButton=K(`Properties`,()=>{this.inspectorOpen=!this.inspectorOpen,this.renderInspector(),this.positionSelectionToolbar()},`properties`),this.propertiesButton.setAttribute(`aria-controls`,`canvas-properties`),this.fitSelectionButton=K(`Fit selection`,()=>this.fit([...this.selection]),`fit`),this.selectionToolbar.append(this.editTextButton,this.fileButton,this.headingButton,this.labelInput,this.colorMenu,this.connectButton,this.fitSelectionButton,this.propertiesButton,this.deleteButton),this.stage.append(this.selectionToolbar)}updateSelectionToolbar(){let e=this.selection.size===1?this.getNode([...this.selection][0]):null,t=(this.document.edges??[]).find(e=>e.id===this.selectedEdge);this.selectionToolbar.hidden=!e&&!t&&!this.selection.size,this.editTextButton.hidden=e?.type!==`text`,this.fileButton.hidden=e?.type!==`file`,this.headingButton.hidden=e?.type!==`file`||!/\.(md|markdown|mdx)$/i.test(e.file),this.labelInput.hidden=!t,this.connectButton.hidden=!this.selection.size,this.fitSelectionButton.hidden=!this.selection.size,document.activeElement!==this.labelInput&&(this.labelInput.value=t?.label||``),[this.editTextButton,this.fileButton,this.headingButton,this.labelInput].forEach(e=>{e.disabled=!this.canEdit}),this.colorMenu.querySelectorAll(`button, input`).forEach(e=>{e.disabled=!this.canEdit}),this.propertiesButton.setAttribute(`aria-expanded`,String(!this.inspector.hidden)),this.positionSelectionToolbar()}positionSelectionToolbar(){if(this.selectionToolbar.hidden)return;let e=this.stage.getBoundingClientRect(),t=[...this.selection].map(e=>this.nodes.get(e)?.card.getBoundingClientRect()).filter(Boolean);if(!t.length){let e=[...this.edges.querySelectorAll(`[data-edge-id]`)].find(e=>e.dataset.edgeId===this.selectedEdge);e&&t.push(e.getBoundingClientRect())}if(!t.length)return;let n=Math.min(...t.map(e=>e.left)),r=Math.max(...t.map(e=>e.right)),i=[...this.selection].some(e=>this.getNode(e)?.type!==`text`)?28:0,a=Math.min(...t.map(e=>e.top))-i,o=this.selectionToolbar.offsetWidth;this.selectionToolbar.style.left=`${Math.max(8,Math.min(e.width-o-64,(n+r)/2-e.left-o/2))}px`,this.selectionToolbar.style.top=`${Math.max(8,Math.min(e.height-this.selectionToolbar.offsetHeight-8,a-e.top-this.selectionToolbar.offsetHeight-10))}px`}setSelectionColor(e){this.canEdit&&(this.selectedEdge?this.actions.updateEdge(this.selectedEdge,{color:e}):this.actions.updateNodes([...this.selection].map(t=>({id:t,patch:{color:e}}))))}openFilePicker(e=null,t=null){this.canEdit&&(this.picker?.close(),this.picker=Ye({root:this.root,title:`Choose a Vault file`,canChoose:()=>this.canEdit&&(!e||this.getNode(e)?.type===`file`),loadChoices:async()=>v((await this.readTree()).tree??[]).files.filter(H).sort().map(e=>({value:e,label:e.split(`/`).pop(),detail:e,searchText:e})),onChoose:n=>{e?this.getNode(e)?.file!==n&&this.actions.updateNode(e,{file:n,subpath:void 0}):this.addNode(`file`,t,{file:n})}}))}openHeadingPicker(e){let t=this.getNode(e);if(!this.canEdit||t?.type!==`file`)return;let n=t.file;this.picker?.close(),this.picker=Ye({root:this.root,title:`Choose a heading`,canChoose:()=>this.canEdit&&this.getNode(e)?.type===`file`&&this.getNode(e).file===n,loadChoices:async()=>{let{content:e}=await this.readFile(n);return[{value:``,label:`Whole file`,detail:n},...fe(e).map(({id:e,text:t})=>({value:`#${e}`,label:t,detail:`#${e}`}))]},onChoose:t=>this.actions.updateNode(e,{subpath:t||void 0})})}async dropFile(e){if(e.preventDefault(),this.canEdit)try{let t=JSON.parse(e.dataTransfer?.getData(`application/x-collabmd-vault-file`)||`null`);if(!t||t.vaultId!==this.vaultId||!H(t.path))return;let n=this.stage.getBoundingClientRect(),r=this.toWorld(e.clientX-n.left,e.clientY-n.top),i=v((await this.readTree()).tree??[]).files;!this.abort.signal.aborted&&this.canEdit&&i.includes(t.path)&&this.addNode(`file`,r,{file:t.path})}catch{this.status.textContent=`Unable to add this file. Choose a file from this Vault.`}}update({document:e,canEdit:t,synced:n,conflict:r,error:i,undoAvailable:a,redoAvailable:o}){if(this.canEdit=t,this.status.textContent=i||(r?`External file conflict`:t?`Live`:n?`Read only`:`Reconnecting…`),this.status.dataset.state=t?`live`:`readonly`,this.root.dataset.ready=String(!!e),this.root.dataset.editable=String(t),this.editButtons.forEach(e=>{e.disabled=!t}),this.connectButton.disabled=!t||this.selection.size===0,this.deleteButton.disabled=!t||!this.selection.size&&!this.selectedEdge,this.undoButton.disabled=!t||!a,this.redoButton.disabled=!t||!o,this.activeEditor?.editor.setReadOnly(!t),t||this.cancelGesture?.(),this.inspector.querySelectorAll(`input, select, .canvas-order button`).forEach(e=>{e.disabled=!t}),this.renderConflict(r,n),!e)return;this.document=e,this.emptyState.hidden=!!e.nodes?.length,this.activeEditor&&(this.getNode(this.activeEditor.id)?.type!==`text`||this.getText(this.activeEditor.id)!==this.activeEditor.editor.text)&&this.closeTextEditor();let s=new Set((e.nodes??[]).map(e=>e.id));for(let[e,t]of this.nodes)s.has(e)||(this.activeEditor?.id===e&&this.closeTextEditor(),t.preview?.destroy(),t.card.remove(),this.nodes.delete(e),this.selection.delete(e));(e.nodes??[]).forEach((e,t)=>this.renderNode(e,t)),this.selectedEdge&&!(e.edges??[]).some(e=>e.id===this.selectedEdge)&&(this.selectedEdge=null),this.renderEdges(),this.inspector.contains(document.activeElement)?this.syncInspectorFields?.():this.renderInspector(),this.updateSelectionToolbar(),this.renderPresence(this.users),!this.didFit&&this.stage.clientWidth&&(this.fit(),this.didFit=!0)}renderConflict(e,t){let n=JSON.stringify([e,t]);if(n===this.conflictSignature||(this.conflictSignature=n,this.banner.replaceChildren(),this.banner.hidden=!e,!e))return;this.banner.append(G(`span`,``,e.invalid?`The file changed outside CollabMD and is invalid. Your canvas edits are preserved.`:`The file changed outside CollabMD. Choose which version to keep.`));let r=K(`Keep canvas edits`,()=>this.actions.resolveConflict(`local`));r.disabled=!t,this.banner.append(r);let i=K(`Use external version`,()=>this.actions.resolveConflict(`external`));i.disabled=!t||e.invalid,this.banner.append(i)}renderNode(e,t){let n=this.nodes.get(e.id);if(!n){let t=G(`article`,`canvas-card`);t.dataset.nodeId=e.id,t.tabIndex=0;let r=G(`div`,`canvas-card-header`),i=G(`span`,`canvas-card-title`),a=K(`Open file`,()=>{let t=this.getNode(e.id);t?.type===`file`&&this.onOpenFile(t.file,t.subpath)},`open`);a.classList.add(`canvas-open-file`),r.append(i,a);let o=G(`div`,`canvas-card-content`),s=K(`Resize`,()=>{},`resize`);s.classList.add(`canvas-resize`),t.append(r,o,s),this.world.append(t),n={card:t,header:r,title:i,content:o,resize:s,openFile:a},this.nodes.set(e.id,n),t.addEventListener(`pointerdown`,t=>this.startNodeDrag(t,e.id)),t.addEventListener(`dblclick`,t=>{t.target.closest(`a, button, input, textarea, select, .diagram-preview-shell`)||this.getNode(e.id)?.type===`text`&&this.openTextEditor(e.id)}),t.addEventListener(`keydown`,n=>{n.target===t&&[`Enter`,` `].includes(n.key)&&(n.preventDefault(),n.stopPropagation(),n.key===` `&&(this.spaceHeld=!0),this.select(e.id,n.shiftKey),n.key===`Enter`&&this.getNode(e.id)?.type===`text`&&this.openTextEditor(e.id))}),s.addEventListener(`pointerdown`,t=>this.startNodeDrag(t,e.id,!0));for(let n of[`top`,`right`,`bottom`,`left`]){let r=K(``,t=>{t.detail===0&&this.beginConnection(e.id,n)});r.classList.add(`canvas-connection-handle`),r.dataset.side=n,r.setAttribute(`aria-label`,`Connect from ${n}`),r.title=`Drag to connect from ${n}`,r.addEventListener(`pointerdown`,t=>this.startConnection(t,e.id,n)),t.append(r)}}let r=JSON.stringify([e.type,e.text,e.file,e.subpath,e.url,e.background,e.backgroundStyle]);if(n.signature!==r&&(n.headingLabel=``),n.card.dataset.type=e.type,n.card.style.left=`${e.x}px`,n.card.style.top=`${e.y}px`,n.card.style.width=`${Math.max(1,e.width)}px`,n.card.style.height=`${Math.max(1,e.height)}px`,n.card.style.zIndex=String(t+1),n.card.style.setProperty(`--canvas-color`,V(e.color)),n.header.hidden=e.type===`text`,n.title.textContent=e.type===`group`?e.label||`Group`:e.type===`file`?`${e.file.split(`/`).pop()||`Choose a file`}${e.subpath?` › ${n.headingLabel||e.subpath.slice(1)}`:``}`:e.url,n.title.title=e.type===`file`?`${e.file}${e.subpath||``}`:n.title.textContent,n.openFile.hidden=e.type!==`file`||!H(e.file),n.openFile.setAttribute(`aria-label`,`Open ${e.file||``}${e.subpath||``}`),n.openFile.title=`Open ${e.file||``}${e.subpath||``}`,n.card.setAttribute(`aria-label`,`${U[e.type]}: ${e.text?.slice(0,80)||e.label||e.file||e.url||``}`),n.card.classList.toggle(`is-selected`,this.selection.has(e.id)),n.resize.disabled=!this.canEdit,n.card.querySelectorAll(`.canvas-connection-handle`).forEach(e=>{e.disabled=!this.canEdit}),this.activeEditor?.id!==e.id&&n.signature!==r){if(n.signature=r,n.preview?.destroy(),n.preview=null,n.content.replaceChildren(),n.content.style.backgroundImage=``,e.type===`text`&&(n.preview=this.createMarkdownPreview(n.content,e.text)),e.type===`link`){let t=He(e.url),r=G(t?`a`:`span`,`canvas-card-link`,e.url);t&&Object.assign(r,{href:t,target:`_blank`,rel:`noopener noreferrer`}),n.content.append(r)}if(e.type===`file`&&this.renderFile(n,e,r),e.type===`group`&&e.background){let t=H(e.background);t&&(n.content.style.backgroundImage=`url("${this.attachmentUrl(t)}")`),n.content.dataset.backgroundStyle=e.backgroundStyle||`cover`}}}async renderFile(e,t,n){let r=H(t.file);if(!r){e.content.append(G(`span`,``,`This file path is unavailable in the Vault.`));return}if(/\.(png|jpe?g|gif|webp|svg)$/i.test(r)){let t=G(`img`,`canvas-file-image`);t.src=this.attachmentUrl(r),t.alt=r,t.loading=`lazy`,t.addEventListener(`error`,()=>{t.replaceWith(G(`p`,``,`Image unavailable`))}),e.content.append(t)}else if(/\.(md|markdown|mdx)$/i.test(r)){let i=G(`div`,`canvas-file-markdown`);e.content.append(i);try{let a=await this.readFile(r);e.signature===n&&i.isConnected&&(e.headingLabel=fe(a.content).find(({id:e})=>`#${e}`===t.subpath)?.text||``,e.title.textContent=`${r.split(`/`).pop()}${t.subpath?` › ${e.headingLabel||t.subpath.slice(1)}`:``}`,e.preview=this.createMarkdownPreview(i,a.content,r,t.subpath),e.content.scrollTop=0)}catch{e.signature===n&&(i.textContent=`File unavailable`)}}else e.content.append(G(`p`,``,`Open this file in the workspace.`))}getNode(e){return(this.document.nodes??[]).find(t=>t.id===e)}select(e,t=!1){this.connectFrom&&e!==this.connectFrom.id&&this.canEdit&&(this.actions.addEdge({fromNode:this.connectFrom.id,toNode:e,...this.connectFrom.side?{fromSide:this.connectFrom.side}:{}}),this.connectFrom=null,this.help.textContent=`Connection added`),this.closeTextEditor(),this.selectedEdge=null,t?this.selection.has(e)?this.selection.delete(e):this.selection.add(e):this.selection=new Set([e]),this.syncSelection()}syncSelection(){this.nodes.forEach(({card:e},t)=>e.classList.toggle(`is-selected`,this.selection.has(t))),this.actions.presence(`selectedNodeIds`,[...this.selection]),this.connectButton.disabled=!this.canEdit||!this.selection.size,this.deleteButton.disabled=!this.canEdit||!this.selection.size&&!this.selectedEdge,this.renderInspector(),this.edges.querySelectorAll(`[data-edge-id]`).forEach(e=>e.classList.toggle(`is-selected`,e.dataset.edgeId===this.selectedEdge)),this.updateSelectionToolbar()}openTextEditor(e){if(!this.canEdit||this.activeEditor?.id===e)return;this.select(e);let t=this.nodes.get(e);t.preview?.destroy(),t.preview=null,t.content.replaceChildren(),t.content.classList.add(`canvas-text-editor`);let n=this.createTextEditor(e,t.content,()=>this.closeTextEditor());n&&(this.activeEditor={id:e,editor:n})}closeTextEditor(){if(!this.activeEditor)return;let{id:e,editor:t}=this.activeEditor;this.activeEditor=null,t.destroy();let n=this.nodes.get(e);if(n){n.signature=null,n.content.classList.remove(`canvas-text-editor`);let t=this.getNode(e);t&&this.renderNode(t,(this.document.nodes??[]).indexOf(t)),n.card.focus({preventScroll:!0})}}beginConnection(e=null,t=null){if(this.canEdit){if(e&&this.select(e),!e&&this.selection.size>=2){let[e,t]=this.selection;this.actions.addEdge({fromNode:e,toNode:t})}else this.connectFrom={id:e||[...this.selection][0],side:t},this.help.textContent=`Select another card to connect. Escape cancels.`}}addNode(e,t=null,n=null){if(!this.canEdit)return;if(e===`file`&&!n){this.openFilePicker(null,t);return}let r=t||this.toWorld(this.stage.clientWidth/2,this.stage.clientHeight/2),i=e===`group`?480:280,a=e===`group`?360:200,o=this.actions.addNode({type:e,x:Math.round(r.x-i/2),y:Math.round(r.y-a/2),width:i,height:a,...{text:{text:``},file:{file:``},link:{url:`https://`},group:{label:`Group`}}[e],...n});o&&(this.select(o),e===`text`?this.openTextEditor(o):e!==`file`&&(this.inspectorOpen=!0,this.renderInspector(),this.inspector.querySelector(`input`)?.focus()))}removeSelection(){this.canEdit&&(this.closeTextEditor(),this.selectedEdge?this.actions.deleteEdges([this.selectedEdge]):this.actions.deleteNodes([...this.selection]),this.selection.clear(),this.selectedEdge=null,this.syncSelection())}renderEdges(){this.edges.replaceChildren();let e=q(`defs`),t=q(`marker`,{id:`canvas-arrow`,markerWidth:10,markerHeight:10,refX:9,refY:5,orient:`auto-start-reverse`,markerUnits:`userSpaceOnUse`});t.append(q(`path`,{d:`M 0 0 L 10 5 L 0 10 Z`,fill:`context-stroke`})),e.append(t),this.edges.append(e);let n=new Map((this.document.nodes??[]).map(e=>[e.id,e]));(this.document.edges??[]).forEach(e=>{let t=Ge(e,n);if(!t)return;let r=q(`g`,{class:`canvas-edge${this.selectedEdge===e.id?` is-selected`:``}`,"data-edge-id":e.id,tabindex:0,role:`button`,"aria-label":`Connection ${e.label||e.id}`});e.color&&r.style.setProperty(`--canvas-color`,V(e.color));let i=q(`path`,{d:t.path,class:`canvas-edge-line`});e.fromEnd===`arrow`&&i.setAttribute(`marker-start`,`url(#canvas-arrow)`),e.toEnd!==`none`&&i.setAttribute(`marker-end`,`url(#canvas-arrow)`);let a=q(`path`,{d:t.path,class:`canvas-edge-hit`});if(r.append(i,a),e.label){let n=q(`text`,{x:t.x,y:t.y-10,"text-anchor":`middle`});n.textContent=e.label,r.append(n)}let o=()=>{this.closeTextEditor(),this.selection.clear(),this.selectedEdge=e.id,this.syncSelection()};r.addEventListener(`click`,o),r.addEventListener(`dblclick`,e=>{e.stopPropagation(),o(),this.labelInput.focus(),this.labelInput.select()}),r.addEventListener(`keydown`,e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),o())}),this.edges.append(r)})}renderInspector(){this.inspector.hidden=!this.inspectorOpen||!this.selection.size&&!this.selectedEdge,this.propertiesButton.setAttribute(`aria-expanded`,String(!this.inspector.hidden)),this.inspector.replaceChildren(),this.syncInspectorFields=null;let e=this.selection.size===1?this.getNode([...this.selection][0]):null,t=(this.document.edges??[]).find(e=>e.id===this.selectedEdge),n=e||t,r=G(`div`,`canvas-inspector-header`);if(r.append(G(`h2`,``,e?U[e.type]:t?`Connection`:`Canvas`),K(`Close properties`,()=>{this.propertiesButton.click(),this.propertiesButton.focus()},`close`)),this.inspector.append(r),!n){this.inspector.append(G(`p`,``,this.selection.size?`${this.selection.size} cards selected`:`Select a card or connection to edit its properties.`));return}let i=()=>e?this.getNode(e.id):(this.document.edges??[]).find(e=>e.id===t.id),a=[];this.syncInspectorFields=()=>{let e=i();if(!e||e.type!==n.type){this.renderInspector();return}a.forEach(({input:t,key:n})=>{if(t===document.activeElement&&t.value!==t.dataset.savedValue)return;let r=String(e[n]??``);t.value!==r&&(t.value=r),t.dataset.savedValue=t.value})};let o=(n,r)=>{this.canEdit&&(e?this.actions.updateNode(e.id,{[n]:r}):this.actions.updateEdge(t.id,{[n]:r}))},s=(e,t,{options:r,numeric:s=!1,optional:c=!1}={})=>{let l=G(`label`,`canvas-field`);l.append(G(`span`,``,e));let u=G(r?`select`:`input`);u.setAttribute(`aria-label`,e),r?r.forEach(([e,t])=>u.append(new Option(t,e))):(u.type=s?`number`:`text`,s&&(u.step=`1`)),u.value=n[t]??``,u.dataset.savedValue=u.value,a.push({input:u,key:t}),u.disabled=!this.canEdit,u.addEventListener(`change`,()=>{let e=s?Number(u.value):u.value;if(s&&(!Number.isSafeInteger(e)||(t===`width`||t===`height`)&&e<1)){u.value=i()?.[t]??``,u.dataset.savedValue=u.value;return}try{o(t,c&&e===``?void 0:e)}catch(e){this.status.textContent=e.message,u.value=i()?.[t]??``}u.dataset.savedValue=u.value}),l.append(u),this.inspector.append(l)};if(e){e.type===`file`&&(s(`Vault file`,`file`),s(`Heading or block (#...)`,`subpath`,{optional:!0})),e.type===`link`&&s(`URL`,`url`),e.type===`group`&&(s(`Label`,`label`,{optional:!0}),s(`Background image`,`background`,{optional:!0}),s(`Background style`,`backgroundStyle`,{optional:!0,options:[[``,`Default`],[`cover`,`Cover`],[`ratio`,`Keep ratio`],[`repeat`,`Repeat`]]})),[`x`,`y`,`width`,`height`].forEach(e=>s(e[0].toUpperCase()+e.slice(1),e,{numeric:!0}));let t=G(`div`,`canvas-order`);[`back`,`front`].forEach(n=>{let r=K(`Send to ${n}`,()=>this.actions.reorderNode(e.id,n));r.disabled=!this.canEdit,t.append(r)}),this.inspector.append(t)}else{s(`Label`,`label`,{optional:!0});let e=(this.document.nodes??[]).map(e=>[e.id,`${U[e.type]}: ${(e.text||e.label||e.file||e.url||e.id).slice(0,40)}`]);s(`From card`,`fromNode`,{options:e}),s(`To card`,`toNode`,{options:e}),[`from`,`to`].forEach(e=>{s(`${e===`from`?`Start`:`End`} side`,`${e}Side`,{optional:!0,options:[[``,`Automatic`],...[`top`,`right`,`bottom`,`left`].map(e=>[e,e])]}),s(`${e===`from`?`Start`:`End`} marker`,`${e}End`,{optional:!0,options:[[``,`Default`],[`none`,`None`],[`arrow`,`Arrow`]]})})}s(`Color (1–6 or #RRGGBB)`,`color`,{optional:!0})}startNodeDrag(e,t,n=!1){if(e.button!==0||this.spaceHeld||!n&&e.target.closest(`a, button, input, textarea, select, summary, img, audio, video, [contenteditable="true"], .canvas-text-editor, .diagram-preview-shell, .drawio-embed, .excalidraw-embed`)||(e.preventDefault(),e.stopPropagation(),(e.shiftKey||!this.selection.has(t))&&this.select(t,e.shiftKey),!this.canEdit||!this.selection.has(t)))return;this.closeTextEditor();let r={x:e.clientX,y:e.clientY},i=[...this.selection].map(e=>this.getNode(e)).filter(Boolean),a=n?[this.getNode(t)]:[...i];n||(this.document.nodes??[]).forEach(e=>{a.some(t=>t.id===e.id)||i.some(t=>t.type===`group`&&e.x>=t.x&&e.y>=t.y&&e.x+e.width<=t.x+t.width&&e.y+e.height<=t.y+t.height)&&a.push(e)});let o=!1;this.actions.stopUndoCapture(),this.trackPointer(e,e=>{if(!o&&Math.hypot(e.clientX-r.x,e.clientY-r.y)<4)return;o=!0;let t=Math.round((e.clientX-r.x)/this.viewport.zoom),i=Math.round((e.clientY-r.y)/this.viewport.zoom),s=a.map(e=>({id:e.id,patch:n?{width:Math.max(80,e.width+t),height:Math.max(64,e.height+i)}:{x:e.x+t,y:e.y+i}}));this.actions.updateNodes(s.filter(({id:e})=>this.getNode(e)),!1)},()=>{!o&&!e.shiftKey&&this.select(t),this.actions.stopUndoCapture()})}trackPointer(e,t,n){this.cancelGesture?.(),this.stage.focus({preventScroll:!0});let r=e.currentTarget,i=(o,s=!1)=>{r.removeEventListener(`pointermove`,t),r.removeEventListener(`pointerup`,i),r.removeEventListener(`pointercancel`,a),r.removeEventListener(`lostpointercapture`,a),this.cancelGesture=null,r.hasPointerCapture(e.pointerId)&&r.releasePointerCapture(e.pointerId),n(o,s)},a=(t=e)=>i(t,!0);this.cancelGesture=a,r.setPointerCapture(e.pointerId),r.addEventListener(`pointermove`,t),r.addEventListener(`pointerup`,i),r.addEventListener(`pointercancel`,a),r.addEventListener(`lostpointercapture`,a)}startConnection(e,t,n){if(e.button!==0||!this.canEdit||this.spaceHeld)return;e.preventDefault(),e.stopPropagation(),this.select(t),this.connectFrom=null;let r=q(`svg`,{class:`canvas-connection-preview`}),i=q(`path`,{class:`canvas-edge-line`});r.append(i),this.world.append(r);let a=Symbol(),o=e=>{let t=this.stage.getBoundingClientRect();return this.toWorld(e.clientX-t.left,e.clientY-t.top)},s=e=>document.elementsFromPoint(e.clientX,e.clientY).map(e=>e.closest(`.canvas-card`)).find(e=>e&&e.dataset.nodeId!==t);this.trackPointer(e,e=>{let r=this.getNode(t);if(!r){this.cancelGesture?.();return}let c=o(e),l=this.getNode(s(e)?.dataset.nodeId)||{...c,width:0,height:0},u=Ge({fromNode:t,fromSide:n,toNode:a,toSide:We(l,c)},new Map([[t,r],[a,l]]));i.setAttribute(`d`,u.path)},(e,i)=>{r.remove();let a=this.getNode(s(e)?.dataset.nodeId);!i&&this.canEdit&&this.getNode(t)&&a&&this.actions.addEdge({fromNode:t,fromSide:n,toNode:a.id,toSide:We(a,o(e))})})}startPan(e){if(e.defaultPrevented||e.target.closest(`.canvas-selection-toolbar, .canvas-navigation, .canvas-toolbar, .canvas-text-editor`))return;let t=e.target.closest(`.canvas-card, .canvas-edge`),n=this.stage.getBoundingClientRect(),r=!t&&this.groupAtPoint(this.toWorld(e.clientX-n.left,e.clientY-n.top)),i=this.spaceHeld||e.button===1||e.pointerType===`touch`&&!t&&(!r||!this.canEdit);if(!i&&t||e.button!==0&&e.button!==1)return;if(r&&!i&&!e.shiftKey){this.startNodeDrag(e,r.id);return}e.preventDefault(),this.closeTextEditor(),this.stage.focus();let a={...this.viewport},o={x:e.clientX,y:e.clientY},s=new Set(e.shiftKey||i?this.selection:[]),c=G(`div`,`canvas-marquee`);i||(this.selection=new Set(s),this.selectedEdge=null,this.syncSelection(),this.stage.append(c)),this.trackPointer(e,e=>{if(i){this.viewport.x=a.x+e.clientX-o.x,this.viewport.y=a.y+e.clientY-o.y,this.applyViewport();return}let t=this.stage.getBoundingClientRect(),n=Math.min(o.x,e.clientX)-t.left,r=Math.min(o.y,e.clientY)-t.top,l=Math.abs(e.clientX-o.x),u=Math.abs(e.clientY-o.y);Object.assign(c.style,{left:`${n}px`,top:`${r}px`,width:`${l}px`,height:`${u}px`});let d=this.toWorld(n,r),f=this.toWorld(n+l,r+u);this.selection=new Set(s);for(let e of this.document.nodes??[])e.type===`group`&&(e.x<d.x||e.y<d.y||e.x+e.width>f.x||e.y+e.height>f.y)||e.x<f.x&&e.x+e.width>d.x&&e.y<f.y&&e.y+e.height>d.y&&this.selection.add(e.id);this.syncSelection()},()=>c.remove())}toWorld(e,t){return{x:(e-this.viewport.x)/this.viewport.zoom,y:(t-this.viewport.y)/this.viewport.zoom}}groupAtPoint(e){return(this.document.nodes??[]).findLast(t=>t.type===`group`&&e.x>=t.x&&e.x<=t.x+t.width&&e.y>=t.y&&e.y<=t.y+t.height)}zoomBy(e,t,n){let r=this.stage.getBoundingClientRect(),i=t===void 0?r.width/2:t-r.left,a=n===void 0?r.height/2:n-r.top,o=this.toWorld(i,a);this.viewport.zoom=Math.max(.1,Math.min(3,this.viewport.zoom*e)),this.viewport.x=i-o.x*this.viewport.zoom,this.viewport.y=a-o.y*this.viewport.zoom,this.applyViewport()}fit(e=null){let t=(this.document.nodes??[]).filter(t=>!e||e.includes(t.id));if(!t.length){this.viewport={x:80,y:80,zoom:1},this.applyViewport();return}let n=Math.min(...t.map(e=>e.x)),r=Math.min(...t.map(e=>e.y)),i=Math.max(...t.map(e=>e.x+e.width))-n,a=Math.max(...t.map(e=>e.y+e.height))-r,o=Math.max(.1,Math.min(1,(this.stage.clientWidth-100)/Math.max(1,i),(this.stage.clientHeight-100)/Math.max(1,a)));this.viewport={zoom:o,x:(this.stage.clientWidth-i*o)/2-n*o,y:(this.stage.clientHeight-a*o)/2-r*o},this.applyViewport()}applyViewport(){this.world.style.transform=`translate(${this.viewport.x}px, ${this.viewport.y}px) scale(${this.viewport.zoom})`,this.stage.style.backgroundPosition=`${this.viewport.x}px ${this.viewport.y}px`,this.stage.style.backgroundSize=`${24*this.viewport.zoom}px ${24*this.viewport.zoom}px`,this.stage.style.setProperty(`--canvas-grid-dot`,`${.8*this.viewport.zoom}px`),this.zoomLabel.textContent=`${Math.round(this.viewport.zoom*100)}%`,this.positionSelectionToolbar()}publishPointer(e){let t=performance.now();if(t-(this.lastPointerAt||0)<50)return;this.lastPointerAt=t;let n=this.stage.getBoundingClientRect(),r=this.toWorld(e.clientX-n.left,e.clientY-n.top);this.stage.classList.toggle(`is-over-group`,e.target===this.stage&&!this.spaceHeld&&!e.shiftKey&&!!this.groupAtPoint(r)),this.actions.presence(`pointer`,r)}renderPresence(e){this.users=e,this.cursors.replaceChildren(),this.nodes.forEach(({card:e})=>{e.classList.remove(`is-remote-selected`)}),e.filter(e=>!e.isLocal).forEach(e=>{(Array.isArray(e.selectedNodeIds)?e.selectedNodeIds:[]).forEach(e=>this.nodes.get(e)?.card.classList.add(`is-remote-selected`));let{x:t,y:n}=e.pointer??{};if(!Number.isFinite(t)||!Number.isFinite(n))return;let r=G(`span`,`canvas-cursor`,`↖ ${String(e.name||`Collaborator`).slice(0,32)}`);r.style.left=`${t}px`,r.style.top=`${n}px`,r.style.setProperty(`--canvas-color`,V(e.color)),this.cursors.append(r)})}onKeyDown(e){if(e.key===`Escape`){let t=[this.colorMenu,this.helpMenu].find(e=>e.open);if(t){e.preventDefault(),t.open=!1,t.querySelector(`summary`).focus();return}}if(e.defaultPrevented||e.target.closest(`input, textarea, select, .diagram-preview-shell, [contenteditable="true"]`))return;if(e.key===`Escape`){this.cancelGesture?.(),this.connectFrom=null,this.help.textContent=``,this.closeTextEditor(),this.selection.clear(),this.selectedEdge=null,this.syncSelection(),this.colorMenu.open=!1;return}if(e.target.closest(`a, button, summary, .canvas-help-menu`)||(e.code===`Space`&&e.target===this.stage&&(e.preventDefault(),this.spaceHeld=!0),(e.ctrlKey||e.metaKey)&&e.key.toLowerCase()===`a`&&(e.preventDefault(),this.selection=new Set((this.document.nodes??[]).map(e=>e.id)),this.selectedEdge=null,this.syncSelection()),e.shiftKey&&e.code===`Digit1`&&(e.preventDefault(),this.fit()),e.shiftKey&&e.code===`Digit2`&&(e.preventDefault(),this.fit([...this.selection])),(e.ctrlKey||e.metaKey)&&e.key.toLowerCase()===`z`&&(e.preventDefault(),e.shiftKey?this.actions.redo():this.actions.undo()),(e.key===`Delete`||e.key===`Backspace`)&&(e.preventDefault(),this.removeSelection()),!this.canEdit))return;let t={ArrowLeft:[-1,0],ArrowRight:[1,0],ArrowUp:[0,-1],ArrowDown:[0,1]}[e.key];if(t&&this.selection.size){e.preventDefault();let n=e.shiftKey?10:1;this.actions.updateNodes([...this.selection].map(e=>{let r=this.getNode(e);return{id:e,patch:{x:r.x+t[0]*n,y:r.y+t[1]*n}}}))}if(e.key===`Enter`&&this.selection.size===1){let t=[...this.selection][0];this.getNode(t)?.type===`text`&&(e.preventDefault(),this.openTextEditor(t))}}applyTheme(e){this.nodes.forEach(t=>t.preview?.applyTheme(e))}destroy(){this.cancelGesture?.(),this.picker?.close(),this.resizeObserver.disconnect(),this.abort.abort(),this.closeTextEditor(),this.nodes.forEach(e=>e.preview?.destroy()),this.root.replaceChildren()}},J=new URLSearchParams(window.location.search),Y=H(J.get(`file`)),X=document.getElementById(`root`),Z=(e,t={})=>window.parent.postMessage({type:e,filePath:Y,...t},window.location.origin),Q,$;function $e(e){document.body.dataset.theme=e===`light`?`light`:`dark`,document.documentElement.dataset.theme=document.body.dataset.theme,document.documentElement.style.colorScheme=e===`light`?`light`:`dark`,$?.applyTheme(document.body.dataset.theme)}async function et(){if($e(J.get(`theme`)),await f(),!Y||!/\.canvas$/i.test(Y))throw Error(`Choose a valid Canvas file from the Vault.`);let e=b(),t=J.get(`vaultId`)||ne(e);if(t){let n=e.vaults?.find(e=>e.id===t);if(!n)throw Error(`Vault unavailable`);e.vaults=[n],e.activeVault=t}window.__COLLABMD_CONFIG__=e;let n=t=>p.readFile(t,e),r=[],i=async()=>{let t=await p.readTree(e);return r=v(t.tree??[]).files,t};await i();let a=(e,t)=>Z(`canvas-open-file`,{filePath:e,subpath:t}),o=l(J.get(`userName`)||localStorage.getItem(`collabmd-user-name`));for(let[e,t]of[[`color`,`userColor`],[`colorLight`,`userColorLight`],[`peerId`,`userPeerId`]])J.get(t)&&(o[e]=J.get(t));Q=new qe({filePath:Y,user:o,readFile:n,wsBaseUrl:x(e),onChange:e=>$?.update(e),onAwareness:e=>{$?.renderPresence(e),Z(`canvas-awareness`,{users:e})},onConnection:e=>Z(`canvas-connection`,{state:e})});let s=e=>Q.mutate(e);$=new Qe({root:X,actions:{addNode:e=>{let t=crypto.randomUUID();return s(n=>{Ne(n,{...e,id:t}),e.type===`group`&&Be(n,t,`back`)})?t:null},addEdge:e=>s(t=>Pe(t,{...e,id:crypto.randomUUID()})),updateNode:(e,t)=>s(n=>Ie(n,e,t)),updateEdge:(e,t)=>s(n=>Le(n,e,t)),updateNodes:(e,t=!0)=>Q.mutate(t=>{e.forEach(({id:e,patch:n})=>Ie(t,e,n))},{separateUndo:t}),deleteNodes:e=>s(t=>ze(t,e)),deleteEdges:e=>s(t=>Re(t,e)),reorderNode:(e,t)=>s(n=>Be(n,e,t)),presence:(e,t)=>Q.setPresence(e,t),undo:()=>Q.undo(),redo:()=>Q.redo(),stopUndoCapture:()=>Q.undoManager.stopCapturing(),resolveConflict:e=>{Q.provider?.synced&&($.closeTextEditor(),Q.doc.transact(()=>Ve(Q.doc,e),Q.localOrigin),Q.undoManager.clear())}},readFile:n,readTree:i,vaultId:t||``,createMarkdownPreview:(e,t,n=Y,i)=>Ke({container:e,markdownText:t,sourceFilePath:n,subpath:i,getFileList:()=>r,getLocalUser:()=>Q.awareness.getLocalState()?.user??o,getTheme:()=>document.body.dataset.theme,onOpenFile:a,vaultApiClient:p}),getText:e=>Q.doc.getMap(D).get(e)?.get(`text`),attachmentUrl:t=>te(`/attachment?path=${encodeURIComponent(t)}`,e),onOpenFile:a,createTextEditor:(e,t,n)=>{let r=Q.doc.getMap(D).get(e)?.get(`text`);return!r||!Q.canEdit?null:Je({parent:t,text:r,onClose:n,awareness:Q.awareness,undoManager:Q.undoManager})}});let c=new y({previewElement:X});[`stack-item-added`,`stack-item-popped`,`stack-cleared`].forEach(e=>Q.undoManager.on(e,()=>Q.publish())),window.addEventListener(`message`,async e=>{if(e.origin!==window.location.origin||e.source!==window.parent)return;let t=e.data;t&&typeof t==`object`&&(t.type===`canvas-theme`&&$e(t.theme),t.type===`canvas-user`&&t.user&&Q.setUser(t.user),t.type===`canvas-prepare-disconnect`&&t.filePath===Y&&typeof t.requestId==`string`&&($.closeTextEditor(),Z(await Q.prepareDisconnect()?`canvas-disconnect-ready`:`canvas-disconnect-blocked`,{requestId:t.requestId})))}),window.addEventListener(`beforeunload`,e=>{Q.hasPendingWrites&&(e.preventDefault(),e.returnValue=``)}),window.addEventListener(`pagehide`,()=>{c.destroy(),$.destroy(),Q.destroy()}),Z(`canvas-ready`),await Q.connect()}et().catch(()=>{X.textContent=`Unable to open this canvas. The file has not been changed.`,X.setAttribute(`role`,`alert`)});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{l as e,u as t}from"./purify.es-go7v6Te-.js";var n=(n,r)=>t.lang.round(e.parse(n)[r]);export{n as t};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import{p as e}from"./src-XiVvaevx.js";import{B as t,F as n,I as r,J as i,M as a,N as o,P as s,U as c,X as l,Y as u,j as d,q as f}from"./merge-CALoRt3l.js";import{t as p}from"./line-DEbP8Ok6.js";import{t as m}from"./rough.esm-Dy-Kn_BL.js";import{n as h}from"./chunk-Y2CYZVJY-BbRBGnmc.js";import{t as g}from"./chunk-X3CZISLH-DwWpRaN8.js";import{b as _,w as v,y}from"./chunk-VPRB5NB3-BqaJfj_v.js";import{_ as b,d as x}from"./chunk-3YJQHVM4-Ctp__8EK.js";import{n as S,r as C}from"./chunk-E2ZNV5FY-D_07zfWd.js";import{i as w,n as ee}from"./chunk-4EA7E6EY-bU4wRJot.js";import{t as T}from"./chunk-XC4XBNZT-D9oehSn8.js";import{n as E}from"./chunk-DBDB3WZW-CXleNlok.js";var D=h((e,t)=>{if(t)return`translate(`+-e.width/2+`, `+-e.height/2+`)`;let n=e.x??0,r=e.y??0;return`translate(`+-(n+e.width/2)+`, `+-(r+e.height/2)+`)`},`computeLabelTransform`),O={aggregation:17.25,extension:17.25,composition:17.25,dependency:6,lollipop:13.5,arrow_point:4,arrow_barb:0,arrow_barb_neo:5.5},k={arrow_point:4,arrow_cross:12.5,arrow_circle:12.5};function A(e,t){if(e===void 0||t===void 0)return{angle:0,deltaX:0,deltaY:0};e=j(e),t=j(t);let[n,r]=[e.x,e.y],[i,a]=[t.x,t.y],o=i-n,s=a-r;return{angle:Math.atan(s/o),deltaX:o,deltaY:s}}h(A,`calculateDeltaAndAngle`);var j=h(e=>Array.isArray(e)?{x:e[0],y:e[1]}:e,`pointTransformer`),te=h(e=>({x:h(function(t,n,r){let i=0,a=j(r[0]).x<j(r[r.length-1]).x?`left`:`right`;if(n===0&&Object.hasOwn(O,e.arrowTypeStart)){let{angle:t,deltaX:n}=A(r[0],r[1]);i=O[e.arrowTypeStart]*Math.cos(t)*(n>=0?1:-1)}else if(n===r.length-1&&Object.hasOwn(O,e.arrowTypeEnd)){let{angle:t,deltaX:n}=A(r[r.length-1],r[r.length-2]);i=O[e.arrowTypeEnd]*Math.cos(t)*(n>=0?1:-1)}let o=Math.abs(j(t).x-j(r[r.length-1]).x),s=Math.abs(j(t).y-j(r[r.length-1]).y),c=Math.abs(j(t).x-j(r[0]).x),l=Math.abs(j(t).y-j(r[0]).y),u=O[e.arrowTypeStart],d=O[e.arrowTypeEnd];if(o<d&&o>0&&s<d){let e=d+1-o;e*=a===`right`?-1:1,i-=e}if(c<u&&c>0&&l<u){let e=u+1-c;e*=a===`right`?-1:1,i+=e}return j(t).x+i},`x`),y:h(function(t,n,r){let i=0,a=j(r[0]).y<j(r[r.length-1]).y?`down`:`up`;if(n===0&&Object.hasOwn(O,e.arrowTypeStart)){let{angle:t,deltaY:n}=A(r[0],r[1]);i=O[e.arrowTypeStart]*Math.abs(Math.sin(t))*(n>=0?1:-1)}else if(n===r.length-1&&Object.hasOwn(O,e.arrowTypeEnd)){let{angle:t,deltaY:n}=A(r[r.length-1],r[r.length-2]);i=O[e.arrowTypeEnd]*Math.abs(Math.sin(t))*(n>=0?1:-1)}let o=Math.abs(j(t).y-j(r[r.length-1]).y),s=Math.abs(j(t).x-j(r[r.length-1]).x),c=Math.abs(j(t).y-j(r[0]).y),l=Math.abs(j(t).x-j(r[0]).x),u=O[e.arrowTypeStart],d=O[e.arrowTypeEnd];if(o<d&&o>0&&s<d){let e=d+1-o;e*=a===`up`?-1:1,i-=e}if(c<u&&c>0&&l<u){let e=u+1-c;e*=a===`up`?-1:1,i+=e}return j(t).y+i},`y`)}),`getLineFunctionsWithOffset`),ne=h((e,t,n,r,i,a=!1,o)=>{t.arrowTypeStart&&P(e,`start`,t.arrowTypeStart,n,r,i,a,o),t.arrowTypeEnd&&P(e,`end`,t.arrowTypeEnd,n,r,i,a,o)},`addEdgeMarkers`),M={arrow_cross:{type:`cross`,fill:!1},arrow_point:{type:`point`,fill:!0},arrow_barb:{type:`barb`,fill:!0},arrow_barb_neo:{type:`barb`,fill:!0},arrow_circle:{type:`circle`,fill:!1},arrow_hierarchy:{type:`hierarchy`,fill:!1},aggregation:{type:`aggregation`,fill:!1},extension:{type:`extension`,fill:!1},composition:{type:`composition`,fill:!0},dependency:{type:`dependency`,fill:!0},lollipop:{type:`lollipop`,fill:!1},only_one:{type:`onlyOne`,fill:!1},zero_or_one:{type:`zeroOrOne`,fill:!1},one_or_more:{type:`oneOrMore`,fill:!1},zero_or_more:{type:`zeroOrMore`,fill:!1},requirement_arrow:{type:`requirement_arrow`,fill:!1},requirement_contains:{type:`requirement_contains`,fill:!1}},N=[`cross`,`point`,`circle`,`lollipop`,`aggregation`,`extension`,`composition`,`dependency`,`barb`],P=h((e,t,n,r,i,a,o=!1,s)=>{if(!n||n===`none`)return;let c=M[n],l=c&&N.includes(c.type);if(!c){g.warn(`Unknown arrow type: ${n}`);return}let u=`${i}_${a}-${c.type}${t===`start`?`Start`:`End`}${o&&l?`-margin`:``}`;if(s&&s.trim()!==``){let n=`${u}_${s.replace(/[^\dA-Za-z]/g,`_`)}`;if(!document.getElementById(n)){let e=document.getElementById(u);if(e){let t=e.cloneNode(!0);t.id=n,t.querySelectorAll(`path, circle, line`).forEach(e=>{e.setAttribute(`stroke`,s),c.fill&&e.setAttribute(`fill`,s)}),e.parentNode?.appendChild(t)}}e.attr(`marker-${t}`,`url(${r}#${n})`)}else e.attr(`marker-${t}`,`url(${r}#${u})`)},`addEdgeMarker`),re=h(e=>typeof e==`string`?e:_()?.flowchart?.curve,`resolveEdgeCurveType`),F=new Map,I=new Map,L=h(()=>{F.clear(),I.clear()},`clear`),R=h(e=>!!(e.label||e.startLabelLeft||e.startLabelRight||e.endLabelLeft||e.endLabelRight),`hasEdgeLabel`),z=h(e=>e?typeof e==`string`?e:e.reduce((e,t)=>e+`;`+t,``):``,`getLabelStyles`),B=h(async(t,n)=>{let r=_(),i=v(r),{labelStyles:a}=w(n);n.labelStyle=a;let o=t.insert(`g`).attr(`class`,`edgeLabel`),s=o.insert(`g`).attr(`class`,`label`).attr(`data-id`,n.id),c=n.labelType===`markdown`,l=await S(t,n.label,{style:z(n.labelStyle),useHtmlLabels:i,addSvgBackground:!0,isNode:!1,markdown:c,width:void 0},r);s.node().appendChild(l),g.info(`abc82`,n,n.labelType);let u,d;if(i){let t=l.children[0],n=e(l);u=await C.measure(()=>t.getBoundingClientRect()),d=u,n.attr(`width`,u.width),n.attr(`height`,u.height)}else{let t=e(l).select(`text`).node();await C.measure(()=>{u=l.getBBox(),d=t&&typeof t.getBBox==`function`?t.getBBox():u})}s.attr(`transform`,D(d,i)),F.set(n.id,o),n.width=u.width,n.height=u.height;let f;if(n.startLabelLeft){let r=t.insert(`g`).attr(`class`,`edgeTerminals`),a=r.insert(`g`).attr(`class`,`inner`),o=await T(a,n.startLabelLeft,z(n.labelStyle)||``,!1,!1);f=o;let s=o.getBBox();if(i){let t=o.children[0],n=e(o);s=t.getBoundingClientRect(),n.attr(`width`,s.width),n.attr(`height`,s.height)}a.attr(`transform`,D(s,i)),I.get(n.id)||I.set(n.id,{}),I.get(n.id).startLeft=r,H(f,n.startLabelLeft,s),V(n,`startLeft`,s)}if(n.startLabelRight){let r=t.insert(`g`).attr(`class`,`edgeTerminals`),a=r.insert(`g`).attr(`class`,`inner`),o=await T(a,n.startLabelRight,z(n.labelStyle)||``,!1,!1);f=o;let s=o.getBBox();if(i){let t=o.children[0],n=e(o);s=t.getBoundingClientRect(),n.attr(`width`,s.width),n.attr(`height`,s.height)}a.attr(`transform`,D(s,i)),I.get(n.id)||I.set(n.id,{}),I.get(n.id).startRight=r,H(f,n.startLabelRight,s),V(n,`startRight`,s)}if(n.endLabelLeft){let r=t.insert(`g`).attr(`class`,`edgeTerminals`),a=r.insert(`g`).attr(`class`,`inner`),o=await T(a,n.endLabelLeft,z(n.labelStyle)||``,!1,!1);f=o;let s=o.getBBox();if(i){let t=o.children[0],n=e(o);s=t.getBoundingClientRect(),n.attr(`width`,s.width),n.attr(`height`,s.height)}a.attr(`transform`,D(s,i)),I.get(n.id)||I.set(n.id,{}),I.get(n.id).endLeft=r,H(f,n.endLabelLeft,s),V(n,`endLeft`,s)}if(n.endLabelRight){let r=t.insert(`g`).attr(`class`,`edgeTerminals`),a=r.insert(`g`).attr(`class`,`inner`),o=await T(a,n.endLabelRight,z(n.labelStyle)||``,!1,!1);f=o;let s=o.getBBox();if(i){let t=o.children[0],n=e(o);s=t.getBoundingClientRect(),n.attr(`width`,s.width),n.attr(`height`,s.height)}a.attr(`transform`,D(s,i)),I.get(n.id)||I.set(n.id,{}),I.get(n.id).endRight=r,H(f,n.endLabelRight,s),V(n,`endRight`,s)}return l},`insertEdgeLabel`);function V(e,t,n){e.terminalLabelSizes??={},e.terminalLabelSizes[t]={width:n.width,height:n.height}}h(V,`recordTerminalLabelSize`);function H(e,t,n){v(_())&&e&&(e.style.width=Math.max(t.length*9,n.width)+`px`,e.style.height=n.height+`px`)}h(H,`setTerminalWidth`);var U=h((e,t)=>{let n=e.x,r=e.y;if(t?.updatedPath){let i=b.calcLabelPosition(t.updatedPath);if(t.originalPath){let a=b.calcLabelPosition(t.originalPath);n=e.x+(i.x-a.x),r=e.y+(i.y-a.y)}else n=i.x,r=i.y}return{x:n,y:r}},`resolveEdgeLabelPosition`),W=h((e,t)=>{g.debug(`Moving label abc88 `,e.id,e.label,F.get(e.id),t);let n=_(),{subGraphTitleTotalMargin:r}=E(n);if(e.label){let n=F.get(e.id),{x:i,y:a}=U(e,t);g.debug(`Moving label `+e.label+` from (`,e.x,`,`,e.y,`) to (`,i,`,`,a,`) abc88`),n.attr(`transform`,`translate(${i}, ${a+r/2})`)}let i=t.updatedPath?t.updatedPath:t.originalPath;if(e.startLabelLeft){let t=I.get(e.id).startLeft,n=e.x,r=e.y;if(i){let t=b.calcTerminalLabelPosition(e.arrowTypeStart?10:0,`start_left`,i);n=t.x,r=t.y}t.attr(`transform`,`translate(${n}, ${r})`)}if(e.startLabelRight){let t=I.get(e.id).startRight,n=e.x,r=e.y;if(i){let t=b.calcTerminalLabelPosition(e.arrowTypeStart?10:0,`start_right`,i);n=t.x,r=t.y}t.attr(`transform`,`translate(${n}, ${r})`)}if(e.endLabelLeft){let t=I.get(e.id).endLeft,n=e.x,r=e.y;if(i){let t=b.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,`end_left`,i);n=t.x,r=t.y}t.attr(`transform`,`translate(${n}, ${r})`)}if(e.endLabelRight){let t=I.get(e.id).endRight,n=e.x,r=e.y;if(i){let t=b.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,`end_right`,i);n=t.x,r=t.y}t.attr(`transform`,`translate(${n}, ${r})`)}},`positionEdgeLabel`),ie=h((e,t)=>{if(!e?.isLabelEdge||!e?.id?.endsWith(`-to-label`)||!Array.isArray(t)||t.length!==2)return t;let[n,r]=t,i=Math.abs(r.x-n.x),a=Math.abs(r.y-n.y);return i<.001||a<.001?t:a>=i?[n,{x:n.x,y:r.y},r]:[n,{x:r.x,y:n.y},r]},`orthogonalizeToLabelClippedPoints`),G=h((e,t)=>{let n=e.x,r=e.y,i=Math.abs(t.x-n),a=Math.abs(t.y-r),o=e.width/2,s=e.height/2;return i>=o||a>=s},`outsideNode`),K=h((e,t,n)=>{g.debug(`intersection calc abc89:
|
|
2
|
-
outsidePoint: ${JSON.stringify(t)}
|
|
3
|
-
insidePoint : ${JSON.stringify(n)}
|
|
4
|
-
node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);let r=e.x,i=e.y,a=Math.abs(r-n.x),o=e.width/2,s=n.x<t.x?o-a:o+a,c=e.height/2,l=Math.abs(t.y-n.y),u=Math.abs(t.x-n.x);if(Math.abs(i-t.y)*o>Math.abs(r-t.x)*c){let e=n.y<t.y?t.y-c-i:i-c-t.y;s=u*e/l;let r={x:n.x<t.x?n.x+s:n.x-u+s,y:n.y<t.y?n.y+l-e:n.y-l+e};return s===0&&(r.x=t.x,r.y=t.y),u===0&&(r.x=t.x),l===0&&(r.y=t.y),g.debug(`abc89 top/bottom calc, Q ${l}, q ${e}, R ${u}, r ${s}`,r),r}{s=n.x<t.x?t.x-o-r:r-o-t.x;let e=l*s/u,i=n.x<t.x?n.x+u-s:n.x-u+s,a=n.y<t.y?n.y+e:n.y-e;return g.debug(`sides calc abc89, Q ${l}, q ${e}, R ${u}, r ${s}`,{_x:i,_y:a}),s===0&&(i=t.x,a=t.y),u===0&&(i=t.x),l===0&&(a=t.y),{x:i,y:a}}},`intersection`),q=h((e,t)=>{g.warn(`abc88 cutPathAtIntersect`,e,t);let n=[],r=e[0],i=!1;return e.forEach(e=>{if(g.info(`abc88 checking point`,e,t),!G(t,e)&&!i){let a=K(t,r,e);g.debug(`abc88 inside`,e,r,a),g.debug(`abc88 intersection`,a,t);let o=!1;n.forEach(e=>{o||=e.x===a.x&&e.y===a.y}),n.some(e=>e.x===a.x&&e.y===a.y)?g.warn(`abc88 no intersect`,a,n):n.push(a),i=!0}else g.warn(`abc88 outside`,e,r),r=e,i||n.push(e)}),g.debug(`returning points`,n),n},`cutPathAtIntersect`);function J(e){let t=[],n=[];for(let r=1;r<e.length-1;r++){let i=e[r-1],a=e[r],o=e[r+1];(i.x===a.x&&a.y===o.y&&Math.abs(a.x-o.x)>5&&Math.abs(a.y-i.y)>5||i.y===a.y&&a.x===o.x&&Math.abs(a.x-i.x)>5&&Math.abs(a.y-o.y)>5)&&(t.push(a),n.push(r))}return{cornerPoints:t,cornerPointPositions:n}}h(J,`extractCornerPoints`);var Y=h(function(e,t,n){let r=t.x-e.x,i=t.y-e.y,a=n/Math.sqrt(r*r+i*i);return{x:t.x-a*r,y:t.y-a*i}},`findAdjacentPoint`),ae=h(function(e){let{cornerPointPositions:t}=J(e),n=[];for(let r=0;r<e.length;r++)if(t.includes(r)){let t=e[r-1],i=e[r+1],a=e[r],o=Y(t,a,5),s=Y(i,a,5),c=s.x-o.x,l=s.y-o.y;n.push(o);let u=Math.sqrt(2)*2,d={x:a.x,y:a.y};Math.abs(i.x-t.x)>10&&Math.abs(i.y-t.y)>=10?(g.debug(`Corner point fixing`,Math.abs(i.x-t.x),Math.abs(i.y-t.y)),d=a.x===o.x?{x:c<0?o.x-5+u:o.x+5-u,y:l<0?o.y-u:o.y+u}:{x:c<0?o.x-u:o.x+u,y:l<0?o.y-5+u:o.y+5-u}):g.debug(`Corner point skipping fixing`,Math.abs(i.x-t.x),Math.abs(i.y-t.y)),n.push(d,s)}else n.push(e[r]);return n},`fixCorners`),oe=h((e,t,n)=>{let r=e-t-n,i=Math.floor(r/4);return`0 ${t} ${Array(Number.isFinite(i)?Math.max(0,i):0).fill(`2 2`).join(` `)} ${n}`},`generateDashArray`),X=h(function(h,v,y,S,C,w,T,E=!1){if(!T)throw Error(`insertEdge: missing diagramId for edge "${v.id}" \u2014 edge IDs require a diagram prefix for uniqueness`);let{handDrawnSeed:D,layout:O}=_(),A=v.points,j=!1,M=C;var N=w;let P=[];for(let e in v.cssCompiledStyles)ee(e)||P.push(v.cssCompiledStyles[e]);if(O===`swimlane`){if(N.intersect&&M.intersect&&Array.isArray(A)&&A.length>=2){if(A.length===2)A=[M.intersect(A[0]),N.intersect(A[1])];else{let e=A.slice(1,-1),t=e[0],n=e[e.length-1],r=.5,i=Math.abs(A[A.length-1].x-n.x)<r&&Math.abs(A[A.length-1].y-n.y)<r,a=M.intersect(t),o=i?n:N.intersect(n),s=Math.abs(o.x-n.x)<r&&Math.abs(o.y-n.y)<r,c=Math.abs(a.x-t.x)<r&&Math.abs(a.y-t.y)<r?[]:[a],l=s?[]:[o];A=[...c,...e,...l]}}A=ie(v,A)}else N.intersect&&M.intersect&&!E&&(A=A.slice(1,v.points.length-1),A.unshift(M.intersect(A[0])),A.push(N.intersect(A[A.length-1])));let F=btoa(JSON.stringify(A));v.toCluster&&(g.info(`to cluster abc88`,y.get(v.toCluster)),A=q(v.points,y.get(v.toCluster).node),j=!0),v.fromCluster&&(g.debug(`from cluster abc88`,y.get(v.fromCluster),JSON.stringify(A,null,2)),A=q(A.reverse(),y.get(v.fromCluster).node).reverse(),j=!0);let I=A.filter(e=>!Number.isNaN(e.y)),L=re(v.curve);L!==`rounded`&&(I=ae(I));let R=l;switch(L){case`linear`:R=l;break;case`basis`:R=f;break;case`cardinal`:R=c;break;case`bumpX`:R=i;break;case`bumpY`:R=u;break;case`catmullRom`:R=t;break;case`monotoneX`:R=n;break;case`monotoneY`:R=r;break;case`natural`:R=s;break;case`step`:R=o;break;case`stepAfter`:R=d;break;case`stepBefore`:R=a;break;case`rounded`:R=l;break;default:R=f}let{x:z,y:B}=te(v),V=p().x(z).y(B).curve(R),H;switch(v.thickness){case`normal`:H=`edge-thickness-normal`;break;case`thick`:H=`edge-thickness-thick`;break;case`invisible`:H=`edge-thickness-invisible`;break;default:H=`edge-thickness-normal`}switch(v.pattern){case`solid`:H+=` edge-pattern-solid`;break;case`dotted`:H+=` edge-pattern-dotted`;break;case`dashed`:H+=` edge-pattern-dashed`;break;default:H+=` edge-pattern-solid`}let U,W=L===`rounded`?Z(se(I,v),5):V(I),G=Array.isArray(v.style)?v.style:[v.style],K=G.find(e=>e?.startsWith(`stroke:`)),J=``;v.animate&&(J=`edge-animation-fast`),v.animation&&(J=`edge-animation-`+v.animation);let Y=!1;if(v.look===`handDrawn`){let t=m.svg(h);Object.assign([],I);let n=t.path(W,{roughness:.3,seed:D});H+=` transition`,U=e(n).select(`path`).attr(`id`,`${T}-${v.id}`).attr(`class`,` `+H+(v.classes?` `+v.classes:``)+(J?` `+J:``)).attr(`style`,G?G.reduce((e,t)=>e+`;`+t,``):``);let r=U.attr(`d`);U.attr(`d`,r),h.node().appendChild(U.node())}else{let e=P.join(`;`),t=G?G.reduce((e,t)=>e+t+`;`,``):``,n=(e?e+`;`+t+`;`:t)+`;`+(G?G.reduce((e,t)=>e+`;`+t,``):``);U=h.append(`path`).attr(`d`,W).attr(`id`,`${T}-${v.id}`).attr(`class`,` `+H+(v.classes?` `+v.classes:``)+(J?` `+J:``)).attr(`style`,n),K=n.match(/stroke:([^;]+)/)?.[1],Y=v.animate===!0||!!v.animation||e.includes(`animation`);let r=U.node(),i=typeof r.getTotalLength==`function`?r.getTotalLength():0,a=k[v.arrowTypeStart]||0,o=k[v.arrowTypeEnd]||0;if(v.look===`neo`&&!Y){let e=`stroke-dasharray: ${v.pattern===`dotted`||v.pattern===`dashed`?oe(i,a,o):`0 ${a} ${i-a-o} ${o}`}; stroke-dashoffset: 0;`;U.attr(`style`,e+U.attr(`style`))}}U.attr(`data-edge`,!0),U.attr(`data-et`,`edge`),U.attr(`data-id`,v.id),U.attr(`data-points`,F),U.attr(`data-look`,x(v.look)),v.showPoints&&I.forEach(e=>{h.append(`circle`).style(`stroke`,`red`).style(`fill`,`red`).attr(`r`,1).attr(`cx`,e.x).attr(`cy`,e.y)});let X=``;(_().flowchart.arrowMarkerAbsolute||_().state.arrowMarkerAbsolute)&&(X=window.location.protocol+`//`+window.location.host+window.location.pathname+window.location.search,X=X.replace(/\(/g,`\\(`).replace(/\)/g,`\\)`)),g.info(`arrowTypeStart`,v.arrowTypeStart),g.info(`arrowTypeEnd`,v.arrowTypeEnd);let Q=!Y&&v?.look===`neo`;ne(U,v,X,T,S,Q,K);let ce=Math.floor(A.length/2),le=A[ce];b.isLabelCoordinateInPath(le,U.attr(`d`))||(j=!0);let $={};return j&&($.updatedPath=A),$.originalPath=v.points,$},`insertEdge`);function Z(e,t){if(e.length<2)return``;let n=``,r=e.length,i=1e-5;for(let a=0;a<r;a++){let o=e[a],s=e[a-1],c=e[a+1];if(a===0)n+=`M${o.x},${o.y}`;else if(a===r-1)n+=`L${o.x},${o.y}`;else{let e=o.x-s.x,r=o.y-s.y,a=c.x-o.x,l=c.y-o.y,u=Math.hypot(e,r),d=Math.hypot(a,l);if(u<i||d<i){n+=`L${o.x},${o.y}`;continue}let f=e/u,p=r/u,m=a/d,h=l/d,g=f*m+p*h,_=Math.acos(Math.max(-1,Math.min(1,g)));if(_<i||Math.abs(Math.PI-_)<i){n+=`L${o.x},${o.y}`;continue}let v=Math.min(t/Math.sin(_/2),u/2,d/2),y=o.x-f*v,b=o.y-p*v,x=o.x+m*v,S=o.y+h*v;n+=`L${y},${b}`,n+=`Q${o.x},${o.y} ${x},${S}`}}return n}h(Z,`generateRoundedPath`);function Q(e,t){if(!e||!t)return{angle:0,deltaX:0,deltaY:0};let n=t.x-e.x,r=t.y-e.y;return{angle:Math.atan2(r,n),deltaX:n,deltaY:r}}h(Q,`calculateDeltaAndAngle`);function se(e,t){let n=e.map(e=>({...e}));if(e.length>=2&&O[t.arrowTypeStart]){let r=O[t.arrowTypeStart],i=e[0],a=e[1],{angle:o}=Q(i,a),s=r*Math.cos(o),c=r*Math.sin(o);n[0].x=i.x+s,n[0].y=i.y+c}let r=e.length;if(r>=2&&O[t.arrowTypeEnd]){let i=O[t.arrowTypeEnd],a=e[r-1],o=e[r-2],{angle:s}=Q(o,a),c=i*Math.cos(s),l=i*Math.sin(s);n[r-1].x=a.x-c,n[r-1].y=a.y-l}return n}h(se,`applyMarkerOffsetsToPoints`);var ce=h((e,t,n,r)=>{t.forEach(t=>{le[t](e,n,r)})},`insertMarkers`),le={extension:h((e,t,n)=>{g.trace(`Making markers for `,n),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-extensionStart`).attr(`class`,`marker extension `+t).attr(`refX`,18).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).append(`path`).attr(`d`,`M 1,7 L18,13 V 1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-extensionEnd`).attr(`class`,`marker extension `+t).attr(`refX`,1).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).append(`path`).attr(`d`,`M 1,1 V 13 L18,7 Z`),e.append(`marker`).attr(`id`,n+`_`+t+`-extensionStart-margin`).attr(`class`,`marker extension `+t).attr(`refX`,18).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).attr(`viewBox`,`0 0 20 14`).append(`polygon`).attr(`points`,`10,7 18,13 18,1`).style(`stroke-width`,2).style(`stroke-dasharray`,`0`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-extensionEnd-margin`).attr(`class`,`marker extension `+t).attr(`refX`,9).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).attr(`viewBox`,`0 0 20 14`).append(`polygon`).attr(`points`,`10,1 10,13 18,7`).style(`stroke-width`,2).style(`stroke-dasharray`,`0`)},`extension`),composition:h((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-compositionStart`).attr(`class`,`marker composition `+t).attr(`refX`,18).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).append(`path`).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-compositionEnd`).attr(`class`,`marker composition `+t).attr(`refX`,1).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).append(`path`).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-compositionStart-margin`).attr(`class`,`marker composition `+t).attr(`refX`,15).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).append(`path`).style(`stroke-width`,0).attr(`viewBox`,`0 0 15 15`).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-compositionEnd-margin`).attr(`class`,`marker composition `+t).attr(`refX`,3.5).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).append(`path`).style(`stroke-width`,0).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`)},`composition`),aggregation:h((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-aggregationStart`).attr(`class`,`marker aggregation `+t).attr(`refX`,18).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).append(`path`).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-aggregationEnd`).attr(`class`,`marker aggregation `+t).attr(`refX`,1).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).append(`path`).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-aggregationStart-margin`).attr(`class`,`marker aggregation `+t).attr(`refX`,15).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).append(`path`).style(`stroke-width`,2).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-aggregationEnd-margin`).attr(`class`,`marker aggregation `+t).attr(`refX`,1).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).append(`path`).style(`stroke-width`,2).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`)},`aggregation`),dependency:h((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-dependencyStart`).attr(`class`,`marker dependency `+t).attr(`refX`,6).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).append(`path`).attr(`d`,`M 5,7 L9,13 L1,7 L9,1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-dependencyEnd`).attr(`class`,`marker dependency `+t).attr(`refX`,13).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).append(`path`).attr(`d`,`M 18,7 L9,13 L14,7 L9,1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-dependencyStart-margin`).attr(`class`,`marker dependency `+t).attr(`refX`,4).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).append(`path`).style(`stroke-width`,0).attr(`d`,`M 5,7 L9,13 L1,7 L9,1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-dependencyEnd-margin`).attr(`class`,`marker dependency `+t).attr(`refX`,16).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).append(`path`).style(`stroke-width`,0).attr(`d`,`M 18,7 L9,13 L14,7 L9,1 Z`)},`dependency`),lollipop:h((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-lollipopStart`).attr(`class`,`marker lollipop `+t).attr(`refX`,13).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).append(`circle`).attr(`fill`,`transparent`).attr(`cx`,7).attr(`cy`,7).attr(`r`,6),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-lollipopEnd`).attr(`class`,`marker lollipop `+t).attr(`refX`,1).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).append(`circle`).attr(`fill`,`transparent`).attr(`cx`,7).attr(`cy`,7).attr(`r`,6),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-lollipopStart-margin`).attr(`class`,`marker lollipop `+t).attr(`refX`,13).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).append(`circle`).attr(`fill`,`transparent`).attr(`cx`,7).attr(`cy`,7).attr(`r`,6).attr(`stroke-width`,2),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-lollipopEnd-margin`).attr(`class`,`marker lollipop `+t).attr(`refX`,1).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).append(`circle`).attr(`fill`,`transparent`).attr(`cx`,7).attr(`cy`,7).attr(`r`,6).attr(`stroke-width`,2)},`lollipop`),point:h((e,t,n)=>{e.append(`marker`).attr(`id`,n+`_`+t+`-pointEnd`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 10 10`).attr(`refX`,5).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,8).attr(`markerHeight`,8).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 0 0 L 10 5 L 0 10 z`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,1).style(`stroke-dasharray`,`1,0`),e.append(`marker`).attr(`id`,n+`_`+t+`-pointStart`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 10 10`).attr(`refX`,4.5).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,8).attr(`markerHeight`,8).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 0 5 L 10 10 L 10 0 z`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,1).style(`stroke-dasharray`,`1,0`),e.append(`marker`).attr(`id`,n+`_`+t+`-pointEnd-margin`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 11.5 14`).attr(`refX`,11.5).attr(`refY`,7).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,10.5).attr(`markerHeight`,14).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 0 0 L 11.5 7 L 0 14 z`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,0).style(`stroke-dasharray`,`1,0`),e.append(`marker`).attr(`id`,n+`_`+t+`-pointStart-margin`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 11.5 14`).attr(`refX`,1).attr(`refY`,7).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,11.5).attr(`markerHeight`,14).attr(`orient`,`auto`).append(`polygon`).attr(`points`,`0,7 11.5,14 11.5,0`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,0).style(`stroke-dasharray`,`1,0`)},`point`),circle:h((e,t,n)=>{e.append(`marker`).attr(`id`,n+`_`+t+`-circleEnd`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 10 10`).attr(`refX`,11).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,11).attr(`markerHeight`,11).attr(`orient`,`auto`).append(`circle`).attr(`cx`,`5`).attr(`cy`,`5`).attr(`r`,`5`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,1).style(`stroke-dasharray`,`1,0`),e.append(`marker`).attr(`id`,n+`_`+t+`-circleStart`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 10 10`).attr(`refX`,-1).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,11).attr(`markerHeight`,11).attr(`orient`,`auto`).append(`circle`).attr(`cx`,`5`).attr(`cy`,`5`).attr(`r`,`5`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,1).style(`stroke-dasharray`,`1,0`),e.append(`marker`).attr(`id`,n+`_`+t+`-circleEnd-margin`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 10 10`).attr(`refY`,5).attr(`refX`,12.25).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,14).attr(`markerHeight`,14).attr(`orient`,`auto`).append(`circle`).attr(`cx`,`5`).attr(`cy`,`5`).attr(`r`,`5`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,0).style(`stroke-dasharray`,`1,0`),e.append(`marker`).attr(`id`,n+`_`+t+`-circleStart-margin`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 10 10`).attr(`refX`,-2).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,14).attr(`markerHeight`,14).attr(`orient`,`auto`).append(`circle`).attr(`cx`,`5`).attr(`cy`,`5`).attr(`r`,`5`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,0).style(`stroke-dasharray`,`1,0`)},`circle`),cross:h((e,t,n)=>{e.append(`marker`).attr(`id`,n+`_`+t+`-crossEnd`).attr(`class`,`marker cross `+t).attr(`viewBox`,`0 0 11 11`).attr(`refX`,12).attr(`refY`,5.2).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,11).attr(`markerHeight`,11).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 1,1 l 9,9 M 10,1 l -9,9`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,2).style(`stroke-dasharray`,`1,0`),e.append(`marker`).attr(`id`,n+`_`+t+`-crossStart`).attr(`class`,`marker cross `+t).attr(`viewBox`,`0 0 11 11`).attr(`refX`,-1).attr(`refY`,5.2).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,11).attr(`markerHeight`,11).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 1,1 l 9,9 M 10,1 l -9,9`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,2).style(`stroke-dasharray`,`1,0`),e.append(`marker`).attr(`id`,n+`_`+t+`-crossEnd-margin`).attr(`class`,`marker cross `+t).attr(`viewBox`,`0 0 15 15`).attr(`refX`,17.7).attr(`refY`,7.5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,12).attr(`markerHeight`,12).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 1,1 L 14,14 M 1,14 L 14,1`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,2.5),e.append(`marker`).attr(`id`,n+`_`+t+`-crossStart-margin`).attr(`class`,`marker cross `+t).attr(`viewBox`,`0 0 15 15`).attr(`refX`,-3.5).attr(`refY`,7.5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,12).attr(`markerHeight`,12).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 1,1 L 14,14 M 1,14 L 14,1`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,2.5).style(`stroke-dasharray`,`1,0`)},`cross`),barb:h((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-barbEnd`).attr(`refX`,19).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,14).attr(`markerUnits`,`userSpaceOnUse`).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 19,7 L9,13 L14,7 L9,1 Z`)},`barb`),barbNeo:h((e,t,n)=>{let{themeVariables:r}=y(),{transitionColor:i}=r;e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-barbEnd`).attr(`refX`,19).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,14).attr(`markerUnits`,`strokeWidth`).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 19,7 L11,14 L13,7 L11,0 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-barbEnd-margin`).attr(`refX`,17).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,14).attr(`markerUnits`,`userSpaceOnUse`).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 19,7 L11,14 L13,7 L11,0 Z`).attr(`fill`,`${i}`)},`barbNeo`),hierarchy:h((e,t,n)=>{e.append(`marker`).attr(`id`,n+`_`+t+`-hierarchyEnd`).attr(`class`,`marker hierarchy `+t).attr(`viewBox`,`0 0 12 10`).attr(`refX`,10).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,12).attr(`markerHeight`,10).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 0 0 L 6 5 L 0 10 M 4 0 L 10 5 L 4 10`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,1).style(`stroke-dasharray`,`1,0`).style(`fill`,`none`),e.append(`marker`).attr(`id`,n+`_`+t+`-hierarchyStart`).attr(`class`,`marker hierarchy `+t).attr(`viewBox`,`0 0 12 10`).attr(`refX`,2).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,12).attr(`markerHeight`,10).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 12 0 L 6 5 L 12 10 M 8 0 L 2 5 L 8 10`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,1).style(`stroke-dasharray`,`1,0`).style(`fill`,`none`)},`hierarchy`),only_one:h((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-onlyOneStart`).attr(`class`,`marker onlyOne `+t).attr(`refX`,0).attr(`refY`,9).attr(`markerWidth`,18).attr(`markerHeight`,18).attr(`orient`,`auto`).append(`path`).attr(`d`,`M9,0 L9,18 M15,0 L15,18`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-onlyOneEnd`).attr(`class`,`marker onlyOne `+t).attr(`refX`,18).attr(`refY`,9).attr(`markerWidth`,18).attr(`markerHeight`,18).attr(`orient`,`auto`).append(`path`).attr(`d`,`M3,0 L3,18 M9,0 L9,18`)},`only_one`),zero_or_one:h((e,t,n)=>{let r=e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-zeroOrOneStart`).attr(`class`,`marker zeroOrOne `+t).attr(`refX`,0).attr(`refY`,9).attr(`markerWidth`,30).attr(`markerHeight`,18).attr(`orient`,`auto`);r.append(`circle`).attr(`fill`,`white`).attr(`cx`,21).attr(`cy`,9).attr(`r`,6),r.append(`path`).attr(`d`,`M9,0 L9,18`);let i=e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-zeroOrOneEnd`).attr(`class`,`marker zeroOrOne `+t).attr(`refX`,30).attr(`refY`,9).attr(`markerWidth`,30).attr(`markerHeight`,18).attr(`orient`,`auto`);i.append(`circle`).attr(`fill`,`white`).attr(`cx`,9).attr(`cy`,9).attr(`r`,6),i.append(`path`).attr(`d`,`M21,0 L21,18`)},`zero_or_one`),one_or_more:h((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-oneOrMoreStart`).attr(`class`,`marker oneOrMore `+t).attr(`refX`,18).attr(`refY`,18).attr(`markerWidth`,45).attr(`markerHeight`,36).attr(`orient`,`auto`).append(`path`).attr(`d`,`M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-oneOrMoreEnd`).attr(`class`,`marker oneOrMore `+t).attr(`refX`,27).attr(`refY`,18).attr(`markerWidth`,45).attr(`markerHeight`,36).attr(`orient`,`auto`).append(`path`).attr(`d`,`M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18`)},`one_or_more`),zero_or_more:h((e,t,n)=>{let r=e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-zeroOrMoreStart`).attr(`class`,`marker zeroOrMore `+t).attr(`refX`,18).attr(`refY`,18).attr(`markerWidth`,57).attr(`markerHeight`,36).attr(`orient`,`auto`);r.append(`circle`).attr(`fill`,`white`).attr(`cx`,48).attr(`cy`,18).attr(`r`,6),r.append(`path`).attr(`d`,`M0,18 Q18,0 36,18 Q18,36 0,18`);let i=e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-zeroOrMoreEnd`).attr(`class`,`marker zeroOrMore `+t).attr(`refX`,39).attr(`refY`,18).attr(`markerWidth`,57).attr(`markerHeight`,36).attr(`orient`,`auto`);i.append(`circle`).attr(`fill`,`white`).attr(`cx`,9).attr(`cy`,18).attr(`r`,6),i.append(`path`).attr(`d`,`M21,18 Q39,0 57,18 Q39,36 21,18`)},`zero_or_more`),only_one_neo:h((e,t,n)=>{let{themeVariables:r}=y(),{strokeWidth:i}=r;e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-onlyOneStart`).attr(`class`,`marker onlyOne `+t).attr(`refX`,0).attr(`refY`,9).attr(`markerWidth`,18).attr(`markerHeight`,18).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).append(`path`).attr(`d`,`M9,0 L9,18 M15,0 L15,18`).attr(`stroke-width`,`${i}`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-onlyOneEnd`).attr(`class`,`marker onlyOne `+t).attr(`refX`,18).attr(`refY`,9).attr(`markerWidth`,18).attr(`markerHeight`,18).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).append(`path`).attr(`d`,`M3,0 L3,18 M9,0 L9,18`).attr(`stroke-width`,`${i}`)},`only_one_neo`),zero_or_one_neo:h((e,t,n)=>{let{themeVariables:r}=y(),{strokeWidth:i,mainBkg:a}=r,o=e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-zeroOrOneStart`).attr(`class`,`marker zeroOrOne `+t).attr(`refX`,0).attr(`refY`,9).attr(`markerWidth`,30).attr(`markerHeight`,18).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`);o.append(`circle`).attr(`fill`,a??`white`).attr(`cx`,21).attr(`cy`,9).attr(`stroke-width`,`${i}`).attr(`r`,6),o.append(`path`).attr(`d`,`M9,0 L9,18`).attr(`stroke-width`,`${i}`);let s=e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-zeroOrOneEnd`).attr(`class`,`marker zeroOrOne `+t).attr(`refX`,30).attr(`refY`,9).attr(`markerWidth`,30).attr(`markerHeight`,18).attr(`markerUnits`,`userSpaceOnUse`).attr(`orient`,`auto`);s.append(`circle`).attr(`fill`,a??`white`).attr(`cx`,9).attr(`cy`,9).attr(`stroke-width`,`${i}`).attr(`r`,6),s.append(`path`).attr(`d`,`M21,0 L21,18`).attr(`stroke-width`,`${i}`)},`zero_or_one_neo`),one_or_more_neo:h((e,t,n)=>{let{themeVariables:r}=y(),{strokeWidth:i}=r;e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-oneOrMoreStart`).attr(`class`,`marker oneOrMore `+t).attr(`refX`,18).attr(`refY`,18).attr(`markerWidth`,45).attr(`markerHeight`,36).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).append(`path`).attr(`d`,`M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27`).attr(`stroke-width`,`${i}`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-oneOrMoreEnd`).attr(`class`,`marker oneOrMore `+t).attr(`refX`,27).attr(`refY`,18).attr(`markerWidth`,45).attr(`markerHeight`,36).attr(`markerUnits`,`userSpaceOnUse`).attr(`orient`,`auto`).append(`path`).attr(`d`,`M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18`).attr(`stroke-width`,`${i}`)},`one_or_more_neo`),zero_or_more_neo:h((e,t,n)=>{let{themeVariables:r}=y(),{strokeWidth:i,mainBkg:a}=r,o=e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-zeroOrMoreStart`).attr(`class`,`marker zeroOrMore `+t).attr(`refX`,18).attr(`refY`,18).attr(`markerWidth`,57).attr(`markerHeight`,36).attr(`markerUnits`,`userSpaceOnUse`).attr(`orient`,`auto`);o.append(`circle`).attr(`fill`,a??`white`).attr(`cx`,45.5).attr(`cy`,18).attr(`r`,6).attr(`stroke-width`,`${i}`),o.append(`path`).attr(`d`,`M0,18 Q18,0 36,18 Q18,36 0,18`).attr(`stroke-width`,`${i}`);let s=e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-zeroOrMoreEnd`).attr(`class`,`marker zeroOrMore `+t).attr(`refX`,39).attr(`refY`,18).attr(`markerWidth`,57).attr(`markerHeight`,36).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`);s.append(`circle`).attr(`fill`,a??`white`).attr(`cx`,11).attr(`cy`,18).attr(`r`,6).attr(`stroke-width`,`${i}`),s.append(`path`).attr(`d`,`M21,18 Q39,0 57,18 Q39,36 21,18`).attr(`stroke-width`,`${i}`)},`zero_or_more_neo`),requirement_arrow:h((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-requirement_arrowEnd`).attr(`refX`,20).attr(`refY`,10).attr(`markerWidth`,20).attr(`markerHeight`,20).attr(`orient`,`auto`).append(`path`).attr(`d`,`M0,0
|
|
5
|
-
L20,10
|
|
6
|
-
M20,10
|
|
7
|
-
L0,20`)},`requirement_arrow`),requirement_contains:h((e,t,n)=>{let r=e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-requirement_containsStart`).attr(`refX`,0).attr(`refY`,10).attr(`markerWidth`,20).attr(`markerHeight`,20).attr(`orient`,`auto`).append(`g`);r.append(`circle`).attr(`cx`,10).attr(`cy`,10).attr(`r`,9).attr(`fill`,`none`),r.append(`line`).attr(`x1`,1).attr(`x2`,19).attr(`y1`,10).attr(`y2`,10),r.append(`line`).attr(`y1`,1).attr(`y2`,19).attr(`x1`,10).attr(`x2`,10)},`requirement_contains`),requirement_arrow_neo:h((e,t,n)=>{let{themeVariables:r}=y(),{strokeWidth:i}=r;e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-requirement_arrowEnd`).attr(`refX`,20).attr(`refY`,10).attr(`markerWidth`,20).attr(`markerHeight`,20).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).attr(`stroke-width`,`${i}`).attr(`viewBox`,`0 0 25 20`).append(`path`).attr(`d`,`M0,0
|
|
8
|
-
L20,10
|
|
9
|
-
M20,10
|
|
10
|
-
L0,20`).attr(`stroke-linejoin`,`miter`)},`requirement_arrow_neo`),requirement_contains_neo:h((e,t,n)=>{let{themeVariables:r}=y(),{strokeWidth:i}=r,a=e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-requirement_containsStart`).attr(`refX`,0).attr(`refY`,10).attr(`markerWidth`,20).attr(`markerHeight`,20).attr(`orient`,`auto`).attr(`markerUnits`,`userSpaceOnUse`).append(`g`);a.append(`circle`).attr(`cx`,10).attr(`cy`,10).attr(`r`,9).attr(`fill`,`none`),a.append(`line`).attr(`x1`,1).attr(`x2`,19).attr(`y1`,10).attr(`y2`,10),a.append(`line`).attr(`y1`,1).attr(`y2`,19).attr(`x1`,10).attr(`x2`,10),a.selectAll(`*`).attr(`stroke-width`,`${i}`)},`requirement_contains_neo`)},$=ce;export{B as a,$ as c,I as d,X as i,W as l,F as n,O as o,R as r,k as s,L as t,U as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./preload-helper-CYtfOYgs.js";import{n as t}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{t as n}from"./chunk-X3CZISLH-BixgQztF.js";import{b as r,x as i}from"./chunk-DU6HZSFF-C-18UZkS.js";import{g as a}from"./chunk-75Z2AOVW-BRdhvVTZ.js";import{a as o}from"./chunk-4HAMMTFA-CQy6Skzw.js";import{i as s,n as c,r as l,t as u}from"./chunk-GVQU2GXP-B0Vm415C.js";import{n as d,t as f}from"./chunk-L3NEJ4N5-CvHossEU.js";import{a as p,i as m,l as h,n as g,r as _,s as v,t as y}from"./chunk-OSK3NFVY-C3JOcBao.js";import{t as b}from"./graphlib-DS17s2tU.js";function x(e,{edgePathsClass:t=`edges edgePaths`}={}){let n=e.insert(`g`).attr(`class`,`root`);return{clusters:n.insert(`g`).attr(`class`,`clusters`),edgePaths:n.insert(`g`).attr(`class`,t),edgeLabels:n.insert(`g`).attr(`class`,`edgeLabels`),nodes:n.insert(`g`).attr(`class`,`nodes`),rootGroups:n}}t(x,`createLayoutElementGroups`);async function S(e,t){if(t.label){let{shapeSvg:n,bbox:r}=await o(e,t);t.labelBBox={width:r.width,height:r.height},n.remove()}else t.labelBBox={width:0,height:0}}t(S,`measureGroupLabel`);async function C(e,t,n){let r=await l(e,t,n),i=r.node()?.getBBox()??{width:0,height:0};return t.width=i.width,t.height=i.height,r}t(C,`insertMeasuredNode`);async function w(t,n){let r=new b({multigraph:!0,compound:!0}),a=[...n.edges],o=i(),s=x(t),{edgeLabels:c,nodes:l}=s,u=new Map,d=t.node()!=null;await Promise.all(n.nodes.map(async e=>{if(e.isGroup)d&&await S(l,e),r.setNode(e.id,{...e});else{if(d){let t=await C(l,e,{config:o,dir:e.dir});u.set(e.id,t)}r.setNode(e.id,{...e})}}));for(let e of a)d&&_(e)&&await p(c,e),r.setEdge(e.start,e.end,{...e},e.id),n.edges.some(t=>t.id===e.id)||n.edges.push(e);if(globalThis.mermaidCaptureSizes){let{captureNodeSizes:r}=await e(async()=>{let{captureNodeSizes:e}=await import(`./sizeCapture-INFHLROL-BMR1ovSU.js`);return{captureNodeSizes:e}},[],import.meta.url);r(t,n)}return{graph:r,groups:s,nodeElements:u}}t(w,`createGraphWithElements`);var T=new Map,E=new Map,D=new Map,O=t(()=>{E.clear(),D.clear(),T.clear()},`clear`),k=t((e,t)=>{let r=E.get(t)||[];return n.trace(`In isDescendant`,t,` `,e,` = `,r.includes(e)),r.includes(e)},`isDescendant`),A=t((e,t)=>{let r=E.get(t)||[];return n.info(`Descendants of `,t,` is `,r),n.info(`Edge is `,e),e.v===t||e.w===t?!1:r?r.includes(e.v)||k(e.v,t)||k(e.w,t)||r.includes(e.w):(n.debug(`Tilt, `,t,`,not in descendants`),!1)},`edgeInCluster`),j=t((e,t,r,i)=>{n.debug(`Copying children of `,e,`root`,i,`data`,t.node(e),i);let a=t.children(e)||[];e!==i&&a.push(e),n.debug(`Copying (nodes) clusterId`,e,`nodes`,a),a.forEach(a=>{if(t.children(a).length>0)j(a,t,r,i);else{let o=t.node(a);n.info(`cp `,a,` to `,i,` with parent `,e),r.setNode(a,o),i!==t.parent(a)&&(n.debug(`Setting parent`,a,t.parent(a)),r.setParent(a,t.parent(a))),e!==i&&a!==e?(n.debug(`Setting parent`,a,e),r.setParent(a,e)):(n.info(`In copy `,e,`root`,i,`data`,t.node(e),i),n.debug(`Not Setting parent for node=`,a,`cluster!==rootId`,e!==i,`node!==clusterId`,a!==e));let s=t.edges(a);n.debug(`Copying Edges`,s),s.forEach(a=>{n.info(`Edge`,a);let o=t.edge(a.v,a.w,a.name);n.info(`Edge data`,o,i);try{A(a,i)?(n.info(`Copying as `,a.v,a.w,o,a.name),r.setEdge(a.v,a.w,o,a.name),n.info(`newGraph edges `,r.edges(),r.edge(r.edges()[0]))):n.info(`Skipping copy of edge `,a.v,`-->`,a.w,` rootId: `,i,` clusterId:`,e)}catch(e){n.error(e)}})}n.debug(`Removing node`,a),t.removeNode(a)})},`copy`),M=t((e,t)=>{let n=t.children(e),r=[...n];for(let i of n)D.set(i,e),r=[...r,...M(i,t)];return r},`extractDescendants`),N=t((e,t,n)=>{let r=e.edges().filter(e=>e.v===t||e.w===t),i=e.edges().filter(e=>e.v===n||e.w===n),a=r.map(e=>({v:e.v===t?n:e.v,w:e.w===t?t:e.w})),o=i.map(e=>({v:e.v,w:e.w}));return a.filter(e=>o.some(t=>e.v===t.v&&e.w===t.w))},`findCommonEdges`),P=t((e,t,r)=>{let i=t.children(e);if(n.trace(`Searching children of id `,e,i),i.length<1)return e;let a;for(let e of i){let n=P(e,t,r),i=N(t,r,n);if(n){if(i.length>0)a=n;else return n}}return a},`findNonClusterChild`),F=t(e=>!T.has(e)||!T.get(e).externalConnections?e:T.has(e)?T.get(e).id:e,`getAnchorId`),I=t((e,t)=>{if(!e||t>10){n.debug(`Opting out, no graph `);return}n.debug(`Opting in, graph `),e.nodes().forEach(function(t){e.children(t).length>0&&(n.debug(`Cluster identified`,t,` Replacement id in edges: `,P(t,e,t)),E.set(t,M(t,e)),T.set(t,{id:P(t,e,t),clusterData:e.node(t)}))}),e.nodes().forEach(function(t){let r=e.children(t),i=e.edges();r.length>0?(n.debug(`Cluster identified`,t,E),i.forEach(e=>{k(e.v,t)^k(e.w,t)&&(n.debug(`Edge: `,e,` leaves cluster `,t),n.debug(`Descendants of XXX `,t,`: `,E.get(t)),T.get(t).externalConnections=!0)})):n.debug(`Not a cluster `,t,E)});for(let t of T.keys()){let n=T.get(t).id,r=e.parent(n);r!==t&&T.has(r)&&!T.get(r).externalConnections&&(T.get(t).id=r);let i=e.edges().some(e=>e.v===t);if(n&&T.get(t)?.externalConnections&&i&&B(e,n,t)){let r=V(e,t,e.parent(n));r&&(T.get(t).id=r)}}e.edges().forEach(function(t){let r=e.edge(t);n.debug(`Edge `+t.v+` -> `+t.w+`: `+JSON.stringify(t)),n.debug(`Edge `+t.v+` -> `+t.w+`: `+JSON.stringify(e.edge(t)));let i=t.v,a=t.w;if(n.debug(`Fix XXX`,T,`ids:`,t.v,t.w,`Translating: `,T.get(t.v),` --- `,T.get(t.w)),T.get(t.v)||T.get(t.w)){if(n.debug(`Fixing and trying - removing XXX`,t.v,t.w,t.name),i=F(t.v),a=F(t.w),e.removeEdge(t.v,t.w,t.name),i!==t.v){let n=e.parent(i);T.get(n).externalConnections=!0,r.fromCluster=t.v}if(a!==t.w){let n=e.parent(a);T.get(n).externalConnections=!0,r.toCluster=t.w}n.debug(`Fix Replacing with XXX`,i,a,t.name),e.setEdge(i,a,r,t.name)}}),L(e,0),n.trace(T)},`adjustClustersAndEdges`),L=t((e,t)=>{if(t>10){n.error(`Bailing out`);return}let r=e.nodes(),i=!1;for(let t of r){let n=e.children(t);i||=n.length>0}if(!i){n.debug(`Done, no node has children`,e.nodes());return}n.debug(`Nodes = `,r,t);for(let i of r)if(n.debug(`Extracting node`,i,T,T.has(i)&&!T.get(i).externalConnections,!e.parent(i),e.node(i),e.children(`D`),` Depth `,t),!T.has(i))n.debug(`Not a cluster`,i,t);else if(!T.get(i).externalConnections&&e.children(i)&&e.children(i).length>0){n.debug(`Cluster without external connections, without a parent and with children`,i,t);let r=e.graph().rankdir===`TB`?`LR`:`TB`;T.get(i)?.clusterData?.dir&&(r=T.get(i).clusterData.dir,n.debug(`Fixing dir`,T.get(i).clusterData.dir,r));let a=new b({multigraph:!0,compound:!0}).setGraph({rankdir:r,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});j(i,e,a,i),e.setNode(i,{clusterNode:!0,id:i,clusterData:T.get(i).clusterData,label:T.get(i).label,graph:a})}else n.debug(`Cluster ** `,i,` **not meeting the criteria !externalConnections:`,!T.get(i).externalConnections,` no parent: `,!e.parent(i),` children `,e.children(i)&&e.children(i).length>0,e.children(`D`),t),n.debug(T);r=e.nodes(),n.debug(`New list of nodes`,r);for(let i of r){let r=e.node(i);n.debug(` Now next level`,i,r),r?.clusterNode&&L(r.graph,t+1)}},`extractor`),R=t((e,t)=>{if(t.length===0)return[];let n=Object.assign([],t);return t.forEach(t=>{let r=R(e,e.children(t));n=[...n,...r]}),n},`sorter`),z=t(e=>R(e,e.children()),`sortNodesByHierarchy`),B=t((e,t,n)=>{let r=e.parent(t);for(;r&&r!==n;){let t=T.get(r);if(t&&!t.externalConnections)return!0;r=e.parent(r)}return!1},`isNodeInExtractableCluster`),V=t((e,t,n)=>{let r=e.children(t)??[];for(let i of r){if(i===n||k(i,n))continue;let r=P(i,e,t);if(r&&!B(e,r,t))return r}return null},`findSafeAnchorNode`);function H({prepareLayout:e,measureLayout:n,runLayoutCore:r,paintLayout:i,afterPaint:a,paintOptions:o}){let s=n??W;return t(async function(t,n,c,l){let u=n.select(`g`);(c?.insertMarkers??v)(u,t.markers,t.type,t.diagramId),U();let d={element:u,helpers:c,options:l};d.preparedLayout=await e?.(t,d);let f=await s(t,d),p=await r(t,d),m={...d,measure:f};i?await i(t,m,p):await G(t,m,o),await a?.(t,m,p)},`render`)}t(H,`createCommonLayoutRenderer`);function U(){u(),y(),f(),O()}t(U,`clearLayoutRenderState`);async function W(e,{element:t}){return await w(t,e)}t(W,`defaultMeasureLayout`);async function G(e,t,n={}){let{measure:r}=t,{groups:i}=r;for(let r of n.getNodes?.(e,t)??e.nodes)n.skipNode?.(r,t)||await K(i,r,t,n);let a=J(e.nodes);for(let r of e.edges)Y(r,n)||await X(i,r,a,e,n,t)}t(G,`paintLayoutData`);async function K(e,t,n,r){t.clusterNode?s(t):q(t,n,r)?await d(e.clusters,t):s(t)}t(K,`paintLayoutNode`);function q(e,t,n){return e.isGroup===!0&&(n.isCluster?.(e,t)??!0)}t(q,`shouldPaintAsCluster`);function J(e){let t=new Map;for(let n of e)n?.id&&t.set(n.id,n);return t}t(J,`buildNodeLookup`);function Y(e,t){return e.isLayoutOnly||!!t.skipEdge?.(e)}t(Y,`shouldSkipPaintEdge`);async function X(e,t,n,r,i,a){let o=m(e.edgePaths,{...t},i.clusterDb??new Map,r.type,Z(t.start,t,n,a,i),Z(t.end,t,n,a,i),r.diagramId,Q(t,i));_(t)&&(g.has(t.id)||await p(e.edgeLabels,t),$(t,o))}t(X,`paintLayoutEdge`);function Z(e,t,n,r,i){return i.getEdgeNode?.(e,t,r)??(e?n.get(e)??{}:{})}t(Z,`getRenderedNode`);function Q(e,t){return typeof t.skipIntersect==`function`?t.skipIntersect(e):t.skipIntersect??!1}t(Q,`shouldSkipIntersect`);function $(e,t){let i=t?.updatedPath??t?.originalPath,o=r(),{subGraphTitleTotalMargin:s}=c({flowchart:o.flowchart??{}});if(e.label){let r=g.get(e.id),o=e.x,c=e.y;if(i){let r=a.calcLabelPosition(i);n.debug(`Moving label `+e.label+` from (`,o,`,`,c,`) to (`,r.x,`,`,r.y,`) abc88`),t?.updatedPath&&(o=r.x,c=r.y)}r.attr(`transform`,`translate(${o}, ${c+s/2})`)}if(e?.startLabelLeft){let t=h.get(e.id).startLeft,n=e?.x,r=e?.y;if(i){let t=a.calcTerminalLabelPosition(e.arrowTypeStart?10:0,`start_left`,i);n=t.x,r=t.y}t.attr(`transform`,`translate(${n}, ${r})`)}if(e.startLabelRight){let t=h.get(e.id).startRight,n=e.x,r=e.y;if(i){let t=a.calcTerminalLabelPosition(e.arrowTypeStart?10:0,`start_right`,i);n=t.x,r=t.y}t.attr(`transform`,`translate(${n}, ${r})`)}if(e.endLabelLeft){let t=h.get(e.id).endLeft,n=e.x,r=e.y;if(i){let t=a.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,`end_left`,i);n=t.x,r=t.y}t.attr(`transform`,`translate(${n}, ${r})`)}if(e.endLabelRight){let t=h.get(e.id).endRight,n=e.x,r=e.y;if(i){let t=a.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,`end_right`,i);n=t.x,r=t.y}t.attr(`transform`,`translate(${n}, ${r})`)}}t($,`positionRenderedEdgeLabel`);export{P as a,x as i,T as n,C as o,H as r,z as s,I as t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{C as e,S as t,h as n,n as r,o as i,t as a,u as o,w as s,x as c}from"./chunk-FOHPRMQF-DzxwRta7.js";var l=class extends a{static{c(this,`RailroadEbnfTokenBuilder`)}constructor(){super([`railroad-ebnf-beta`])}},u=c(e=>{let t=e.slice(1,-1),n=``;for(let e=0;e<t.length;e++){let r=t[e];if(r===`\\`&&e+1<t.length){e++;let r=t[e];switch(r){case`n`:n+=`
|
|
2
|
-
`;break;case`r`:n+=`\r`;break;case`t`:n+=` `;break;default:n+=r}continue}n+=r}return n},`decodeEscapedString`),d=class extends r{static{c(this,`RailroadEbnfValueConverter`)}runConverter(e,t,n){let r=super.runConverter(e,t,n);if(e.name===`TITLE`&&typeof r==`string`){let e=r.trim();if(e.startsWith(`"`)&&e.endsWith(`"`)||e.startsWith(`'`)&&e.endsWith(`'`))return u(e)}return r}runCustomConverter(e,t,n){if(e.name===`EBNF_STRING`)return u(t);if(e.name===`EBNF_SPECIAL_SEQUENCE`)return t.slice(1,-1).trim()}},f={parser:{TokenBuilder:c(()=>new l,`TokenBuilder`),ValueConverter:c(()=>new d,`ValueConverter`)}};function p(r=i){let a=s(e(r),o),c=s(t({shared:a}),n,f);return a.ServiceRegistry.register(c),{shared:a,RailroadEbnf:c}}c(p,`createRailroadEbnfServices`);export{p as n,f as t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{C as e,S as t,_ as n,n as r,o as i,t as a,u as o,w as s,x as c}from"./chunk-FOHPRMQF-DzxwRta7.js";var l=class extends a{static{c(this,`RailroadPegTokenBuilder`)}constructor(){super([`railroad-peg-beta`])}},u=c(e=>{let t=e.slice(1,-1),n=``;for(let e=0;e<t.length;e++){let r=t[e];if(r===`\\`&&e+1<t.length){e++;let r=t[e];switch(r){case`n`:n+=`
|
|
2
|
-
`;break;case`r`:n+=`\r`;break;case`t`:n+=` `;break;default:n+=r}continue}n+=r}return n},`decodeEscapedString`),d=class extends r{static{c(this,`RailroadPegValueConverter`)}runConverter(e,t,n){let r=super.runConverter(e,t,n);if(e.name===`TITLE`&&typeof r==`string`){let e=r.trim();if(e.startsWith(`"`)&&e.endsWith(`"`)||e.startsWith(`'`)&&e.endsWith(`'`))return u(e)}return r}runCustomConverter(e,t,n){if(e.name===`PEG_STRING`)return u(t)}},f={parser:{TokenBuilder:c(()=>new l,`TokenBuilder`),ValueConverter:c(()=>new d,`ValueConverter`)}};function p(r=i){let a=s(e(r),o),c=s(t({shared:a}),n,f);return a.ServiceRegistry.register(c),{shared:a,RailroadPeg:c}}c(p,`createRailroadPegServices`);export{p as n,f as t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{C as e,S as t,_ as n,n as r,o as i,t as a,u as o,w as s,x as c}from"./chunk-NGNAAXSQ-DqoPQk1a.js";var l=class extends a{static{c(this,`RailroadPegTokenBuilder`)}constructor(){super([`railroad-peg-beta`])}},u=c(e=>{let t=e.slice(1,-1),n=``;for(let e=0;e<t.length;e++){let r=t[e];if(r===`\\`&&e+1<t.length){e++;let r=t[e];switch(r){case`n`:n+=`
|
|
2
|
-
`;break;case`r`:n+=`\r`;break;case`t`:n+=` `;break;default:n+=r}continue}n+=r}return n},`decodeEscapedString`),d=class extends r{static{c(this,`RailroadPegValueConverter`)}runConverter(e,t,n){let r=super.runConverter(e,t,n);if(e.name===`TITLE`&&typeof r==`string`){let e=r.trim();if(e.startsWith(`"`)&&e.endsWith(`"`)||e.startsWith(`'`)&&e.endsWith(`'`))return u(e)}return r}runCustomConverter(e,t,n){if(e.name===`PEG_STRING`)return u(t)}},f={parser:{TokenBuilder:c(()=>new l,`TokenBuilder`),ValueConverter:c(()=>new d,`ValueConverter`)}};function p(r=i){let a=s(e(r),o),c=s(t({shared:a}),n,f);return a.ServiceRegistry.register(c),{shared:a,RailroadPeg:c}}c(p,`createRailroadPegServices`);export{p as n,f as t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{C as e,S as t,h as n,n as r,o as i,t as a,u as o,w as s,x as c}from"./chunk-NGNAAXSQ-DqoPQk1a.js";var l=class extends a{static{c(this,`RailroadEbnfTokenBuilder`)}constructor(){super([`railroad-ebnf-beta`])}},u=c(e=>{let t=e.slice(1,-1),n=``;for(let e=0;e<t.length;e++){let r=t[e];if(r===`\\`&&e+1<t.length){e++;let r=t[e];switch(r){case`n`:n+=`
|
|
2
|
-
`;break;case`r`:n+=`\r`;break;case`t`:n+=` `;break;default:n+=r}continue}n+=r}return n},`decodeEscapedString`),d=class extends r{static{c(this,`RailroadEbnfValueConverter`)}runConverter(e,t,n){let r=super.runConverter(e,t,n);if(e.name===`TITLE`&&typeof r==`string`){let e=r.trim();if(e.startsWith(`"`)&&e.endsWith(`"`)||e.startsWith(`'`)&&e.endsWith(`'`))return u(e)}return r}runCustomConverter(e,t,n){if(e.name===`EBNF_STRING`)return u(t);if(e.name===`EBNF_SPECIAL_SEQUENCE`)return t.slice(1,-1).trim()}},f={parser:{TokenBuilder:c(()=>new l,`TokenBuilder`),ValueConverter:c(()=>new d,`ValueConverter`)}};function p(r=i){let a=s(e(r),o),c=s(t({shared:a}),n,f);return a.ServiceRegistry.register(c),{shared:a,RailroadEbnf:c}}c(p,`createRailroadEbnfServices`);export{p as n,f as t};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
var e={signUp:`Sign up`,signIn:`Sign in`,upgrade:`Upgrade`,paste:`Paste`,pasteAsPlaintext:`Paste as plaintext`,pasteCharts:`Paste charts`,chartType_bar:`Bar chart`,chartType_line:`Line chart`,chartType_radar:`Radar chart`,chartType_plaintext:`Plain text`,selectAll:`Select all`,multiSelect:`Add element to selection`,moveCanvas:`Move canvas`,cut:`Cut`,copy:`Copy`,copyAsPng:`Copy to clipboard as PNG`,copyAsSvg:`Copy to clipboard as SVG`,copyText:`Copy to clipboard as text`,copySource:`Copy source to clipboard`,convertToCode:`Convert to code`,bringForward:`Bring forward`,sendToBack:`Send to back`,bringToFront:`Bring to front`,sendBackward:`Send backward`,delete:`Delete`,copyStyles:`Copy styles`,pasteStyles:`Paste styles`,stroke:`Stroke`,textColor:`Text color`,changeStroke:`Change stroke color`,background:`Background`,changeBackground:`Change background color`,fill:`Fill`,strokeWidth:`Stroke width`,strokeStyle:`Stroke style`,strokeStyle_solid:`Solid`,strokeStyle_dashed:`Dashed`,strokeStyle_dotted:`Dotted`,sloppiness:`Sloppiness`,pressure:`Pressure`,pressure_constant:`Constant`,pressure_variable:`Variable`,opacity:`Opacity`,textAlign:`Text align`,edges:`Edges`,sharp:`Sharp`,round:`Round`,arrowheads:`Arrowheads`,arrowhead_none:`None`,arrowhead_arrow:`Arrow`,arrowhead_bar:`Bar`,arrowhead_circle:`Circle`,arrowhead_circle_outline:`Circle (outline)`,arrowhead_triangle:`Triangle`,arrowhead_triangle_outline:`Triangle (outline)`,arrowhead_diamond:`Diamond`,arrowhead_diamond_outline:`Diamond (outline)`,arrowhead_crowfoot_many:`Crow's foot (many)`,arrowhead_crowfoot_one:`Crow's foot (one)`,arrowhead_crowfoot_one_or_many:`Crow's foot (one or many)`,arrowhead_cardinality_one:`Cardinality (one)`,arrowhead_cardinality_many:`Cardinality (many)`,arrowhead_cardinality_one_or_many:`Cardinality (one or many)`,arrowhead_cardinality_exactly_one:`Cardinality (exactly one)`,arrowhead_cardinality_zero_or_one:`Cardinality (zero or one)`,arrowhead_cardinality_zero_or_many:`Cardinality (zero or many)`,more_options:`More options`,cardinality:`Cardinality`,arrowtypes:`Arrow type`,arrowtype_sharp:`Sharp arrow`,arrowtype_round:`Curved arrow`,arrowtype_elbowed:`Elbow arrow`,fontSize:`Font size`,fontFamily:`Font family`,addWatermark:`Add "Made with Excalidraw"`,handDrawn:`Hand-drawn`,normal:`Normal`,code:`Code`,small:`Small`,medium:`Medium`,large:`Large`,veryLarge:`Very large`,solid:`Solid`,hachure:`Hachure`,zigzag:`Zigzag`,crossHatch:`Cross-hatch`,thin:`Thin`,bold:`Bold`,left:`Left`,center:`Center`,right:`Right`,extraBold:`Extra bold`,architect:`Architect`,artist:`Artist`,cartoonist:`Cartoonist`,fileTitle:`File name`,colorPicker:`Color picker`,canvasColors:`Used on canvas`,canvasBackground:`Canvas background`,drawingCanvas:`Drawing canvas`,clearCanvas:`Clear canvas`,layers:`Layers`,actions:`Actions`,language:`Language`,liveCollaboration:`Live collaboration...`,duplicateSelection:`Duplicate`,untitled:`Untitled`,name:`Name`,yourName:`Your name`,madeWithExcalidraw:`Made with Excalidraw`,group:`Group selection`,ungroup:`Ungroup selection`,collaborators:`Collaborators`,you:`You`,toggleGrid:`Toggle grid`,addToLibrary:`Add to library`,removeFromLibrary:`Remove from library`,libraryLoadingMessage:`Loading library…`,libraries:`Browse libraries`,loadingScene:`Loading scene…`,loadScene:`Load scene from file`,align:`Align`,alignTop:`Align top`,alignBottom:`Align bottom`,alignLeft:`Align left`,alignRight:`Align right`,centerVertically:`Center vertically`,centerHorizontally:`Center horizontally`,distributeHorizontally:`Distribute horizontally`,distributeVertically:`Distribute vertically`,flipHorizontal:`Flip horizontal`,flipVertical:`Flip vertical`,viewMode:`View mode`,share:`Share`,showStroke:`Show stroke color picker`,showBackground:`Show background color picker`,showFonts:`Show font picker`,toggleTheme:`Toggle light/dark theme`,theme:`Theme`,personalLib:`Personal Library`,excalidrawLib:`Excalidraw Library`,decreaseFontSize:`Decrease font size`,increaseFontSize:`Increase font size`,unbindText:`Unbind text`,bindText:`Bind text to the container`,createContainerFromText:`Wrap text in a container`,link:{edit:`Edit link`,editEmbed:`Edit embeddable link`,create:`Add link`,label:`Link`,labelEmbed:`Link & embed`,empty:`No link is set`,hint:`Type or paste your link here`,goToElement:`Go to target element`},lineEditor:{edit:`Edit line`,editArrow:`Edit arrow`},polygon:{breakPolygon:`Break polygon`,convertToPolygon:`Convert to polygon`},elementLock:{lock:`Lock`,unlock:`Unlock`,lockAll:`Lock all`,unlockAll:`Unlock all`},statusPublished:`Published`,sidebarLock:`Keep sidebar open`,selectAllElementsInFrame:`Select all elements in frame`,removeAllElementsFromFrame:`Remove all elements from frame`,eyeDropper:`Pick color from canvas`,textToDiagram:`Text to diagram`,prompt:`Prompt`,followUs:`Follow us`,discordChat:`Discord chat`,zoomToFitViewport:`Zoom to fit in viewport`,zoomToFitSelection:`Zoom to fit selection`,zoomToFit:`Zoom to fit all elements`,installPWA:`Install Excalidraw locally (PWA)`,autoResize:`Enable text auto-resizing`,imageCropping:`Image cropping`,unCroppedDimension:`Uncropped dimension`,copyElementLink:`Copy link to object`,linkToElement:`Link to object`,wrapSelectionInFrame:`Wrap selection in frame`,tab:`Tab`,shapeSwitch:`Switch shape`,preferences:`Preferences`,preferences_toolLock:`Tool lock`,boxSelectionMode:`Select on`,boxSelectionContain:`Wrap`,boxSelectionOverlap:`Overlap`,arrowBinding:`Arrow binding`,midpointSnapping:`Snap to midpoints`,showHints:`Show hints`,inputDevice:`Input`,inputDeviceTrackpad:`Trackpad`,inputDeviceMouse:`Mouse`},t={title:`Link to object`,desc:`Click on a shape on canvas or paste a link.`,notFound:`Linked object wasn't found on canvas.`},n={noItems:`No items added yet...`,hint_emptyLibrary:`Select an item on canvas to add it here, or install a library from the public repository, below.`,hint_emptyPrivateLibrary:`Select an item on canvas to add it here.`,search:{inputPlaceholder:`Search library`,heading:`Library matches`,noResults:`No matching items found...`,clearSearch:`Clear search`}},r={title:`Find on canvas`,noMatch:`No matches found...`,singleResult:`result`,multipleResults:`results`,placeholder:`Find text on canvas...`,frames:`Frames`,texts:`Texts`},i={clearReset:`Reset the canvas`,exportJSON:`Export to file`,exportImage:`Export image...`,export:`Save to...`,copyToClipboard:`Copy to clipboard`,copyLink:`Copy link`,save:`Save to current file`,saveAs:`Save as`,load:`Open`,getShareableLink:`Get shareable link`,close:`Close`,selectLanguage:`Select language`,scrollBackToContent:`Scroll back to content`,zoomIn:`Zoom in`,zoomOut:`Zoom out`,resetZoom:`Reset zoom`,menu:`Menu`,done:`Done`,edit:`Edit`,undo:`Undo`,redo:`Redo`,resetLibrary:`Reset library`,reset:`Reset`,createNewRoom:`Create new room`,fullScreen:`Full screen`,darkMode:`Dark mode`,lightMode:`Light mode`,systemMode:`System mode`,zenMode:`Zen mode`,objectsSnapMode:`Snap to objects`,exitZenMode:`Exit zen mode`,cancel:`Cancel`,saveLibNames:`Save name(s) and exit`,clear:`Clear`,remove:`Remove`,embed:`Toggle embedding`,publishLibrary:`Rename or publish`,submit:`Submit`,confirm:`Confirm`,embeddableInteractionButton:`Click to interact`},a={clearReset:`This will clear the whole canvas. Are you sure?`,couldNotCreateShareableLink:`Couldn't create shareable link.`,couldNotCreateShareableLinkTooBig:`Couldn't create shareable link: the scene is too big`,couldNotLoadInvalidFile:`Couldn't load invalid file`,importBackendFailed:`Importing from backend failed.`,cannotExportEmptyCanvas:`Cannot export empty canvas.`,couldNotCopyToClipboard:`Couldn't copy to clipboard.`,decryptFailed:`Couldn't decrypt data.`,uploadedSecurly:`The upload has been secured with end-to-end encryption, which means that Excalidraw server and third parties can't read the content.`,loadSceneOverridePrompt:`Loading external drawing will replace your existing content. Do you wish to continue?`,collabStopOverridePrompt:`Stopping the session will overwrite your previous, locally stored drawing. Are you sure?
|
|
2
|
-
|
|
3
|
-
(If you want to keep your local drawing, simply close the browser tab instead.)`,errorAddingToLibrary:`Couldn't add item to the library`,errorRemovingFromLibrary:`Couldn't remove item from the library`,confirmAddLibrary:`This will add {{numShapes}} shape(s) to your library. Are you sure?`,imageDoesNotContainScene:`This image does not seem to contain any scene data. Have you enabled scene embedding during export?`,cannotRestoreFromImage:`Scene couldn't be restored from this image file`,invalidSceneUrl:`Couldn't import scene from the supplied URL. It's either malformed, or doesn't contain valid Excalidraw JSON data.`,resetLibrary:`This will clear your library. Are you sure?`,removeItemsFromsLibrary:`Delete {{count}} item(s) from library?`,invalidEncryptionKey:`Encryption key must be of 22 characters. Live collaboration is disabled.`,collabOfflineWarning:`No internet connection available.
|
|
4
|
-
Your changes will not be saved!`,localStorageQuotaExceeded:`Browser storage quota exceeded. Changes will not be saved.`},o={unsupportedFileType:`Unsupported file type.`,imageInsertError:`Couldn't insert image. Try again later...`,fileTooBig:`File is too big. Maximum allowed size is {{maxSize}}.`,svgImageInsertError:`Couldn't insert SVG image. The SVG markup looks invalid.`,failedToFetchImage:`Failed to fetch image.`,cannotResolveCollabServer:`Couldn't connect to the collab server. Please reload the page and try again.`,importLibraryError:`Couldn't load library`,saveLibraryError:`Couldn't save library to storage. Please save your library to a file locally to make sure you don't lose changes.`,collabSaveFailed:`Couldn't save to the backend database. If problems persist, you should save your file locally to ensure you don't lose your work.`,collabSaveFailed_sizeExceeded:`Couldn't save to the backend database, the canvas seems to be too big. You should save the file locally to ensure you don't lose your work.`,imageToolNotSupported:`Images are disabled.`,brave_measure_text_error:{line1:`Looks like you are using Brave browser with the <bold>Aggressively Block Fingerprinting</bold> setting enabled.`,line2:`This could result in breaking the <bold>Text Elements</bold> in your drawings.`,line3:`We strongly recommend disabling this setting. You can follow <link>these steps</link> on how to do so.`,line4:`If disabling this setting doesn't fix the display of text elements, please open an <issueLink>issue</issueLink> on our GitHub, or write us on <discordLink>Discord</discordLink>`},libraryElementTypeError:{embeddable:`Embeddable elements cannot be added to the library.`,iframe:`IFrame elements cannot be added to the library.`,image:`Support for adding images to the library coming soon!`},asyncPasteFailedOnRead:`Couldn't paste (couldn't read from system clipboard).`,asyncPasteFailedOnParse:`Couldn't paste.`,copyToSystemClipboardFailed:`Couldn't copy to clipboard.`},s={selection:`Selection`,lasso:`Lasso selection`,image:`Insert image`,rectangle:`Rectangle`,diamond:`Diamond`,ellipse:`Ellipse`,arrow:`Arrow`,line:`Line`,freedraw:`Draw`,text:`Text`,library:`Library`,lock:`Keep selected tool active after drawing`,penMode:`Pen mode - prevent touch`,link:`Add / Update link for a selected shape`,eraser:`Eraser`,frame:`Frame tool`,magicframe:`Wireframe to code`,stickynote:`Sticky note`,embeddable:`Web Embed`,laser:`Laser pointer`,autoshape:`Draw to shape`,bucketfill:`Bucket fill`,hand:`Hand (panning tool)`,extraTools:`More tools`,mermaidToExcalidraw:`Mermaid to Excalidraw`,convertElementType:`Toggle shape type`},c={noRegion:`Couldn't find an enclosed region to fill here.`,tooComplex:`This region is too complex to fill.`},l={rectangle:`Rectangle`,diamond:`Diamond`,ellipse:`Ellipse`,arrow:`Arrow`,line:`Line`,freedraw:`Freedraw`,text:`Text`,image:`Image`,group:`Group`,frame:`Frame`,magicframe:`Wireframe to code`,stickynote:`Sticky note`,embeddable:`Web Embed`,selection:`Selection`,iframe:`IFrame`},u={canvasActions:`Canvas actions`,selectedShapeActions:`Selected shape actions`,shapes:`Shapes`},d={dismissSearch:`{{shortcut}} to dismiss search`,canvasPanning:`To move canvas, hold {{shortcut_1}} or {{shortcut_2}} while dragging, or use the hand tool`,linearElement:`Click to start multiple points, drag for single line`,arrowTool:`Click to start multiple points, drag for single line. Press {{shortcut}} again to change arrow type.`,arrowBindModifiers:`Hold {{shortcut_1}} to disable binding, or {{shortcut_2}} to bind at a fixed point`,freeDraw:`Click and drag, release when you're finished`,text:`Tip: you can also add text by double-clicking anywhere with the selection tool`,embeddable:`Click-drag to create a website embed`,stickynote:`Click to place a note, or drag to size it`,autoshape:`Draw rectangles, circles, diamonds, lines and arrows`,text_selected:`Double-click or press {{shortcut}} to edit text`,text_editing:`Press {{shortcut_1}} or {{shortcut_2}} to finish editing`,linearElementMulti:`Click on last point or press {{shortcut_1}} or {{shortcut_2}} to finish`,lockAngle:`You can constrain angle by holding {{shortcut}}`,resize:`You can constrain proportions by holding {{shortcut_1}} while resizing,
|
|
5
|
-
hold {{shortcut_2}} to resize from the center`,resizeImage:`You can resize freely by holding {{shortcut_1}},
|
|
6
|
-
hold {{shortcut_2}} to resize from the center`,resizeStickyNote:`hold {{shortcut_1}} to resize freely, {{shortcut_2}} to resize from the center`,rotate:`You can constrain angles by holding {{shortcut}} while rotating`,toggleArrowhead:`Double-click to toggle the arrowhead`,lineEditor_info:`Hold {{shortcut_1}} and Double-click or press {{shortcut_2}} to edit points`,lineEditor_line_info:`Double-click or press {{shortcut}} to edit points`,lineEditor_pointSelected:`Press {{shortcut_1}} to remove point(s),
|
|
7
|
-
{{shortcut_2}} to duplicate, or drag to move`,lineEditor_nothingSelected:`Select a point to edit (hold {{shortcut_1}} to select multiple),
|
|
8
|
-
or hold {{shortcut_2}} and click to add new points`,publishLibrary:`Publish your own library`,bindTextToElement:`{{shortcut}} to add text`,createFlowchart:`{{shortcut}} to create a flowchart`,deepBoxSelect:`Hold {{shortcut}} to deep select, and to prevent dragging`,eraserRevert:`Hold {{shortcut}} to revert the elements marked for deletion`,firefox_clipboard_write:`This feature can likely be enabled by setting the "dom.events.asyncClipboard.clipboardItem" flag to "true". To change the browser flags in Firefox, visit the "about:config" page.`,disableSnapping:`Hold {{shortcut}} to disable snapping`,enterCropEditor:`Double click the image or press {{shortcut}} to crop the image`,leaveCropEditor:`Click outside the image or press {{shortcut_1}} or {{shortcut_2}} to finish cropping`},f={cannotShowPreview:`Cannot show preview`,canvasTooBig:`The canvas may be too big.`,canvasTooBigTip:`Tip: try moving the farthest elements a bit closer together.`},p={headingMain:`Encountered an error. Try <button>reloading the page</button>.`,clearCanvasMessage:`If reloading doesn't work, try <button>clearing the canvas</button>.`,clearCanvasCaveat:` This will result in loss of work `,trackedToSentry:`The error with identifier {{eventId}} was tracked on our system.`,openIssueMessage:`We were very cautious not to include your scene information on the error. If your scene is not private, please consider following up on our <button>bug tracker</button>. Please include information below by copying and pasting into the GitHub issue.`,sceneContent:`Scene content:`},m={or:`Or`},h={desc_intro:`Invite people to collaborate on your drawing.`,desc_privacy:`Don't worry, the session is end-to-end encrypted, and fully private. Not even our server can see what you draw.`,button_startSession:`Start session`,button_stopSession:`Stop session`,desc_inProgressIntro:`Live-collaboration session is now in progress.`,desc_shareLink:`Share this link with anyone you want to collaborate with:`,desc_exitSession:`Stopping the session will disconnect you from the room, but you'll be able to continue working with the scene, locally. Note that this won't affect other people, and they'll still be able to collaborate on their version.`,shareTitle:`Join a live collaboration session on Excalidraw`},g={title:`Error`},_={title:`Saving`,defaultMessage:`Preparing to save...`},v={disk_title:`Save to disk`,disk_details:`Export the scene data to a file from which you can import later.`,disk_button:`Save to file`,link_title:`Shareable link`,link_details:`Export as a read-only link.`,link_button:`Export to Link`,excalidrawplus_description:`Save the scene to your Excalidraw+ workspace.`,excalidrawplus_button:`Export`,excalidrawplus_exportError:`Couldn't export to Excalidraw+ at this moment...`},y={blog:`Read our blog`,click:`click`,deepSelect:`Deep select`,deepBoxSelect:`Deep select within box, and prevent dragging`,createFlowchart:`Create a flowchart from a generic element`,navigateFlowchart:`Navigate a flowchart`,curvedArrow:`Curved arrow`,curvedLine:`Curved line`,documentation:`Documentation`,doubleClick:`double-click`,drag:`drag`,editor:`Editor`,editLineArrowPoints:`Edit line/arrow points`,editText:`Edit text / add label`,github:`Found an issue? Submit`,howto:`Follow our guides`,or:`or`,preventBinding:`Prevent arrow binding`,tools:`Tools`,shortcuts:`Keyboard shortcuts`,textFinish:`Finish editing (text editor)`,textNewLine:`Add new line (text editor)`,title:`Help`,view:`View`,zoomToFit:`Zoom to fit all elements`,zoomToSelection:`Zoom to selection`,toggleElementLock:`Lock/unlock selection`,movePageUpDown:`Move page up/down`,movePageLeftRight:`Move page left/right`,cropStart:`Crop image`,cropFinish:`Finish image cropping`},b={title:`Clear canvas`},x={title:`Publish library`,itemName:`Item name`,authorName:`Author name`,githubUsername:`GitHub username`,twitterUsername:`Twitter username`,libraryName:`Library name`,libraryDesc:`Library description`,website:`Website`,placeholder:{authorName:`Your name or username`,libraryName:`Name of your library`,libraryDesc:`Description of your library to help people understand its usage`,githubHandle:`GitHub handle (optional), so you can edit the library once submitted for review`,twitterHandle:`Twitter username (optional), so we know who to credit when promoting over Twitter`,website:`Link to your personal website or elsewhere (optional)`},errors:{required:`Required`,website:`Enter a valid URL`},noteDescription:`Submit your library to be included in the <link>public library repository</link> for other people to use in their drawings.`,noteGuidelines:`The library needs to be manually approved first. Please read the <link>guidelines</link> before submitting. You will need a GitHub account to communicate and make changes if requested, but it is not strictly required.`,noteLicense:`By submitting, you agree the library will be published under the <link>MIT License</link>, which in short means anyone can use them without restrictions.`,noteItems:`Each library item must have its own name so it's filterable. The following library items will be included:`,atleastOneLibItem:`Please select at least one library item to get started`,republishWarning:`Note: some of the selected items are marked as already published/submitted. You should only resubmit items when updating an existing library or submission.`},S={title:`Library submitted`,content:`Thank you {{authorName}}. Your library has been submitted for review. You can track the status <link>here</link>`},C={resetLibrary:`Reset library`,removeItemsFromLib:`Remove selected items from library`},w={header:`Export image`,label:{withBackground:`Background`,onlySelected:`Only selected`,darkMode:`Dark mode`,embedScene:`Embed scene`,scale:`Scale`,padding:`Padding`},tooltip:{embedScene:`Scene data will be saved into the exported PNG/SVG file so that the scene can be restored from it.
|
|
9
|
-
Will increase exported file size.`},title:{exportToPng:`Export to PNG`,exportToSvg:`Export to SVG`,copyPngToClipboard:`Copy PNG to clipboard`},button:{exportToPng:`PNG`,exportToSvg:`SVG`,copyPngToClipboard:`Copy to clipboard`}},T={tooltip:`Your drawings are end-to-end encrypted so Excalidraw's servers will never see them.`,link:`Blog post on end-to-end encryption in Excalidraw`},E={angle:`Angle`,shapes:`Shapes`,height:`Height`,scene:`Scene`,selected:`Selected`,storage:`Storage`,fullTitle:`Canvas & Shape properties`,title:`Properties`,generalStats:`General`,elementProperties:`Shape properties`,total:`Total`,version:`Version`,versionCopy:`Click to copy`,versionNotAvailable:`Version not available`,width:`Width`},D={addedToLibrary:`Added to library`,copyStyles:`Copied styles.`,copyToClipboard:`Copied to clipboard.`,copyToClipboardAsPng:`Copied {{exportSelection}} to clipboard as PNG
|
|
10
|
-
({{exportColorScheme}})`,copyToClipboardAsSvg:`Copied {{exportSelection}} to clipboard as SVG
|
|
11
|
-
({{exportColorScheme}})`,fileSaved:`File saved.`,fileSavedToFilename:`Saved to {filename}`,canvas:`canvas`,selection:`selection`,pasteAsSingleElement:`Use {{shortcut}} to paste as a single element,
|
|
12
|
-
or paste into an existing text editor`,unableToEmbed:`Embedding this url is currently not allowed. Raise an issue on GitHub to request the url whitelisted`,unrecognizedLinkFormat:`The link you embedded does not match the expected format. Please try to paste the 'embed' string provided by the source site`,elementLinkCopied:`Link copied to clipboard`},O={transparent:`Transparent`,black:`Black`,white:`White`,red:`Red`,pink:`Pink`,grape:`Grape`,violet:`Violet`,gray:`Gray`,blue:`Blue`,cyan:`Cyan`,teal:`Teal`,green:`Green`,yellow:`Yellow`,orange:`Orange`,bronze:`Bronze`},k={app:{center_heading:`Your drawings are saved in your browser's storage.`,center_heading_line2:`Browser storage can be cleared unexpectedly.`,center_heading_line3:`Save your work to a file regularly to avoid losing it.`,center_heading_plus:`Did you want to go to the Excalidraw+ instead?`,menuHint:`Export, preferences, languages, ...`},defaults:{menuHint:`Export, preferences, and more...`,center_heading:`Diagrams. Made. Simple.`,toolbarHint:`Pick a tool & Start drawing!`,helpHint:`Shortcuts & help`}},A={color:`Color`,mostUsedCustomColors:`Most used custom colors`,colors:`Colors`,shades:`Shades`,hexCode:`Hex code`,noShades:`No shades available for this color`,invalidColor:`Not a valid color`,invalidHexLength:`Hex code must be 3, 4, 6, or 8 characters`,topPicksTip:`Tip: drag any color onto your top picks to pin it`,resetTopPicks:`Reset to default top picks`},j={action:{exportToImage:{title:`Export as image`,button:`Export as image`,description:`Export the scene data as an image from which you can import later.`},saveToDisk:{title:`Save to disk`,button:`Save to disk`,description:`Export the scene data to a file from which you can import later.`},excalidrawPlus:{title:`Excalidraw+`,button:`Export to Excalidraw+`,description:`Save the scene to your Excalidraw+ workspace.`}},modal:{loadFromFile:{title:`Load from file`,button:`Load from file`,description:`Loading from a file will <bold>replace your existing content</bold>.<br></br>You can back up your drawing first using one of the options below.`},shareableLink:{title:`Load from link`,button:`Replace my content`,description:`Loading external drawing will <bold>replace your existing content</bold>.<br></br>You can back up your drawing first by using one of the options below.`}}},M={replace:`Drop to replace content`,add:`Drop to add to canvas`,importLibrary:`Drop to import library`,replaceHint:`Hold <shift>Shift</shift> to keep existing content`,keepHint:`Your existing content will be kept`,libraryHint:`Library files will append`,replacedToast:`Content replaced. {{shortcut}} to undo`},N={title:`Mermaid to Excalidraw`,button:`Insert`,description:`Currently only <flowchartLink>Flowchart</flowchartLink>, <sequenceLink>Sequence</sequenceLink>, <classLink>Class</classLink>, and <erdLink>Entity Relationship</erdLink> Diagrams are supported. The other types will be rendered as image in Excalidraw.`,syntax:`Mermaid Syntax`,preview:`Preview`,label:`Mermaid`,inputPlaceholder:`Write Mermaid diagram definition here...`,autoFixAvailable:`Auto-fix is available`},P={error:`Error!`},F={inputPlaceholder:`Start typing your diagram idea here... ({{shortcut}} for new line)`,inputPlaceholderWithMessages:`Continue refining your diagram...`,generating:`Generating...`,rateLimitRemaining:`{{count}} requests left today`,role:{user:`You`,assistant:`AI Assistant`,system:`System`},aiBeta:`AI Beta`,label:`Chat`,menu:`Menu`,newChat:`New Chat`,deleteChat:`Delete chat`,deleteMessage:`Delete message`,viewAsMermaid:`View as Mermaid`,placeholder:{title:`Let's design your diagram`,description:`Describe the diagram you want to create, and we'll generate it for you.`,hint:`At the moment we know Flowchart, Sequence, Class, State, and Entity Relationship diagrams.`},preview:`Preview`,insert:`Insert`,retry:`Retry`,errors:{promptTooShort:`Prompt is too short (min {{min}} characters)`,promptTooLong:`Prompt is too long (max {{max}} characters)`,generationFailed:`Generation failed`,invalidDiagram:`Generated an invalid diagram :(. You may edit manually, retry with auto-fix, or try a different prompt.`,fixInMermaid:`Edit Mermaid manually →`,aiRepair:`Regenerate (auto-fix) →`,requestAborted:`Request aborted`,requestFailed:`Request failed`,mermaidParseError:`Mermaid syntax error`},rateLimit:{messageLimit:`You've hit your AI limit on the free plan. Try out Excalidraw+ for more or come back tomorrow.`,generalRateLimit:`Hold your horses, you're too fast for us! Please wait a moment before trying again.`,messageLimitInputPlaceholder:`You've reached your message limit`},upsellBtnLabel:`Upgrade to Plus`},I={placeholder:`Quick search`},L={badge:{old:`old`},sceneFonts:`In this scene`,availableFonts:`Available fonts`,empty:`No fonts found`,topPicksTip:`Tip: drag any font onto your top picks to pin it`,resetTopPicks:`Reset to default top picks`},R={empty:`No users found`,hint:{text:`Click on user to follow`,followStatus:`You're currently following this user`,inCall:`User is in a voice call`,micMuted:`User's microphone is muted`,isSpeaking:`User is speaking`}},z={title:`Command palette`,shortcuts:{select:`Select`,confirm:`Confirm`,close:`Close`},recents:`Recently used`,search:{placeholder:`Search menus, commands, and discover hidden gems`,noMatch:`No matching commands...`},itemNotAvailable:`Command is not available...`,shortcutHint:`For Command palette, use {{shortcut}}`},B={ctrl:`Ctrl`,option:`Option`,cmd:`Cmd`,alt:`Alt`,escape:`Esc`,enter:`Enter`,shift:`Shift`,spacebar:`Space`,delete:`Delete`,mmb:`Scroll wheel`},V={labels:e,elementLink:t,library:n,search:r,buttons:i,alerts:a,errors:o,toolBar:s,bucketfill:c,element:l,headings:u,hints:d,canvasError:f,errorSplash:p,shareDialog:m,roomDialog:h,errorDialog:g,progressDialog:_,exportDialog:v,helpDialog:y,clearCanvasDialog:b,publishDialog:x,publishSuccessDialog:S,confirmDialog:C,imageExportDialog:w,encrypted:T,stats:E,toast:D,colors:O,welcomeScreen:k,colorPicker:A,overwriteConfirm:j,fileDrop:M,mermaid:N,ttd:P,chat:F,quickSearch:I,fontList:L,userList:R,commandPalette:z,keys:B};export{a as A,x as B,c as C,f as D,p as E,o as F,N as H,e as I,u as L,i as M,l as N,r as O,t as P,y as R,m as S,_ as T,h as V,z as _,E as a,T as b,L as c,P as d,F as f,C as g,b as h,k as i,d as j,v as k,j as l,M as m,I as n,O as o,D as p,S as r,R as s,A as t,w as u,V as v,s as w,n as x,B as y,g as z};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./preload-helper-CYtfOYgs.js";import{t}from"./graphlib-DS17s2tU.js";import{n}from"./chunk-Y2CYZVJY-BbRBGnmc.js";import{t as r}from"./chunk-X3CZISLH-DwWpRaN8.js";import{b as i,y as a}from"./chunk-VPRB5NB3-BqaJfj_v.js";import{_ as o}from"./chunk-3YJQHVM4-Ctp__8EK.js";import{o as s}from"./chunk-XC4XBNZT-D9oehSn8.js";import{i as c,n as l,r as u,t as d}from"./chunk-DBDB3WZW-CXleNlok.js";import{a as f,c as p,d as m,i as h,n as g,r as _,t as ee,u as v}from"./chunk-2BW5OAIV-CNFO1U_e.js";import{r as y,t as b}from"./chunk-NTY3LDVX-CVWLK_fh.js";function x(e,{edgePathsClass:t=`edges edgePaths`}={}){let n=e.insert(`g`).attr(`class`,`root`);return{clusters:n.insert(`g`).attr(`class`,`clusters`),edgePaths:n.insert(`g`).attr(`class`,t),edgeLabels:n.insert(`g`).attr(`class`,`edgeLabels`),nodes:n.insert(`g`).attr(`class`,`nodes`),rootGroups:n}}n(x,`createLayoutElementGroups`);async function S(e,t,n){if(t.label){let{shapeSvg:r,bbox:i}=await s(e,n===void 0?t:{...t,width:n});t.labelBBox={width:i.width,height:i.height},r.remove()}else t.labelBBox={width:0,height:0}}n(S,`measureGroupLabel`);async function C(e,t,n){let r=await u(e,t,n),i=r.node()?.getBBox()??{width:0,height:0};return t.width=i.width,t.height=i.height,r}n(C,`insertMeasuredNode`);function w(e,t,n){let r=e,i=new Set;for(;r;){if(r.dir)return r.dir;if(!r.parentId||i.has(r.parentId))break;i.add(r.parentId),r=t.get(r.parentId)}return n}n(w,`resolveNodeDir`);async function T(n,r,a={}){let o=new t({multigraph:!0,compound:!0}),s=[...r.edges],c=i(),l=x(n),{edgeLabels:u,nodes:d}=l,p=new Map,m=new Map(r.nodes.map(e=>[e.id,e])),h=r.direction,g=n.node()!=null;await Promise.all(r.nodes.map(async e=>{if(e.isGroup){if(g){let t=a.unwrapGroupLabels&&e.labelType!==`markdown`;await S(d,e,t?1/0:void 0)}o.setNode(e.id,{...e})}else{if(g){let t=await C(d,e,{config:c,dir:w(e,m,h)});p.set(e.id,t)}o.setNode(e.id,{...e})}}));for(let e of s)g&&_(e)&&await f(u,e),o.setEdge(e.start,e.end,{...e},e.id),r.edges.some(t=>t.id===e.id)||r.edges.push(e);if(globalThis.mermaidCaptureSizes){let{captureNodeSizes:t}=await e(async()=>{let{captureNodeSizes:e}=await import(`./sizeCapture-INFHLROL-3uHXrFqA.js`);return{captureNodeSizes:e}},[],import.meta.url);t(n,r)}return{graph:o,groups:l,nodeElements:p}}n(T,`createGraphWithElements`);var E=new Map,D=new Map,O=new Map,k=n(()=>{D.clear(),O.clear(),E.clear()},`clear`),A=n((e,t)=>{let n=D.get(t)||[];return r.trace(`In isDescendant`,t,` `,e,` = `,n.includes(e)),n.includes(e)},`isDescendant`),j=n((e,t)=>{let n=D.get(t)||[];return r.info(`Descendants of `,t,` is `,n),r.info(`Edge is `,e),e.v===t||e.w===t?!1:n?n.includes(e.v)||A(e.v,t)||A(e.w,t)||n.includes(e.w):(r.debug(`Tilt, `,t,`,not in descendants`),!1)},`edgeInCluster`),M=n((e,t,n,i)=>{r.debug(`Copying children of `,e,`root`,i,`data`,t.node(e),i);let a=t.children(e)||[];e!==i&&a.push(e),r.debug(`Copying (nodes) clusterId`,e,`nodes`,a),a.forEach(a=>{if(t.children(a).length>0)M(a,t,n,i);else{let o=t.node(a);r.info(`cp `,a,` to `,i,` with parent `,e),n.setNode(a,o),i!==t.parent(a)&&(r.debug(`Setting parent`,a,t.parent(a)),n.setParent(a,t.parent(a))),e!==i&&a!==e?(r.debug(`Setting parent`,a,e),n.setParent(a,e)):(r.info(`In copy `,e,`root`,i,`data`,t.node(e),i),r.debug(`Not Setting parent for node=`,a,`cluster!==rootId`,e!==i,`node!==clusterId`,a!==e));let s=t.edges(a);r.debug(`Copying Edges`,s),s.forEach(a=>{r.info(`Edge`,a);let o=t.edge(a.v,a.w,a.name);r.info(`Edge data`,o,i);try{j(a,i)?(r.info(`Copying as `,a.v,a.w,o,a.name),n.setEdge(a.v,a.w,o,a.name),r.info(`newGraph edges `,n.edges(),n.edge(n.edges()[0]))):r.info(`Skipping copy of edge `,a.v,`-->`,a.w,` rootId: `,i,` clusterId:`,e)}catch(e){r.error(e)}})}r.debug(`Removing node`,a),t.removeNode(a)})},`copy`),N=n((e,t)=>{let n=t.children(e),r=[...n];for(let i of n)O.set(i,e),r=[...r,...N(i,t)];return r},`extractDescendants`),P=n((e,t,n)=>{let r=e.edges().filter(e=>e.v===t||e.w===t),i=e.edges().filter(e=>e.v===n||e.w===n),a=r.map(e=>({v:e.v===t?n:e.v,w:e.w===t?t:e.w})),o=i.map(e=>({v:e.v,w:e.w}));return a.filter(e=>o.some(t=>e.v===t.v&&e.w===t.w))},`findCommonEdges`),F=n((e,t,n)=>{let i=t.children(e);if(r.trace(`Searching children of id `,e,i),i.length<1)return e;let a;for(let e of i){let r=F(e,t,n),i=P(t,n,r);if(r){if(i.length>0)a=r;else return r}}return a},`findNonClusterChild`),I=n(e=>!E.has(e)||!E.get(e).externalConnections?e:E.has(e)?E.get(e).id:e,`getAnchorId`),L=n((e,t)=>{if(!e||t>10){r.debug(`Opting out, no graph `);return}r.debug(`Opting in, graph `),e.nodes().forEach(function(t){e.children(t).length>0&&(r.debug(`Cluster identified`,t,` Replacement id in edges: `,F(t,e,t)),D.set(t,N(t,e)),E.set(t,{id:F(t,e,t),clusterData:e.node(t)}))}),e.nodes().forEach(function(t){let n=e.children(t),i=e.edges();n.length>0?(r.debug(`Cluster identified`,t,D),i.forEach(e=>{A(e.v,t)^A(e.w,t)&&(r.debug(`Edge: `,e,` leaves cluster `,t),r.debug(`Descendants of XXX `,t,`: `,D.get(t)),E.get(t).externalConnections=!0)})):r.debug(`Not a cluster `,t,D)});for(let t of E.keys()){let n=E.get(t).id,r=e.parent(n);r!==t&&E.has(r)&&!E.get(r).externalConnections&&(E.get(t).id=r);let i=e.edges().some(e=>e.v===t);if(n&&E.get(t)?.externalConnections&&i&&B(e,n,t)){let r=ne(e,t,e.parent(n));r&&(E.get(t).id=r)}}e.edges().forEach(function(t){let n=e.edge(t);r.debug(`Edge `+t.v+` -> `+t.w+`: `+JSON.stringify(t)),r.debug(`Edge `+t.v+` -> `+t.w+`: `+JSON.stringify(e.edge(t)));let i=t.v,a=t.w;if(r.debug(`Fix XXX`,E,`ids:`,t.v,t.w,`Translating: `,E.get(t.v),` --- `,E.get(t.w)),E.get(t.v)||E.get(t.w)){if(r.debug(`Fixing and trying - removing XXX`,t.v,t.w,t.name),i=I(t.v),a=I(t.w),e.removeEdge(t.v,t.w,t.name),i!==t.v){let r=e.parent(i);E.get(r).externalConnections=!0,n.fromCluster=t.v}if(a!==t.w){let r=e.parent(a);E.get(r).externalConnections=!0,n.toCluster=t.w}r.debug(`Fix Replacing with XXX`,i,a,t.name),e.setEdge(i,a,n,t.name)}}),R(e,0),r.trace(E)},`adjustClustersAndEdges`),R=n((e,n)=>{if(n>10){r.error(`Bailing out`);return}let i=e.nodes(),a=!1;for(let t of i){let n=e.children(t);a||=n.length>0}if(!a){r.debug(`Done, no node has children`,e.nodes());return}r.debug(`Nodes = `,i,n);for(let a of i)if(r.debug(`Extracting node`,a,E,E.has(a)&&!E.get(a).externalConnections,!e.parent(a),e.node(a),e.children(`D`),` Depth `,n),!E.has(a))r.debug(`Not a cluster`,a,n);else if(!E.get(a).externalConnections&&e.children(a)&&e.children(a).length>0){r.debug(`Cluster without external connections, without a parent and with children`,a,n);let i=e.graph().rankdir===`TB`?`LR`:`TB`;E.get(a)?.clusterData?.dir&&(i=E.get(a).clusterData.dir,r.debug(`Fixing dir`,E.get(a).clusterData.dir,i));let o=new t({multigraph:!0,compound:!0}).setGraph({rankdir:i,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});M(a,e,o,a),e.setNode(a,{clusterNode:!0,id:a,clusterData:E.get(a).clusterData,label:E.get(a).label,graph:o})}else r.debug(`Cluster ** `,a,` **not meeting the criteria !externalConnections:`,!E.get(a).externalConnections,` no parent: `,!e.parent(a),` children `,e.children(a)&&e.children(a).length>0,e.children(`D`),n),r.debug(E);i=e.nodes(),r.debug(`New list of nodes`,i);for(let t of i){let i=e.node(t);r.debug(` Now next level`,t,i),i?.clusterNode&&R(i.graph,n+1)}},`extractor`),z=n((e,t)=>{if(t.length===0)return[];let n=Object.assign([],t);return t.forEach(t=>{let r=z(e,e.children(t));n=[...n,...r]}),n},`sorter`),te=n(e=>z(e,e.children()),`sortNodesByHierarchy`),B=n((e,t,n)=>{let r=e.parent(t);for(;r&&r!==n;){let t=E.get(r);if(t&&!t.externalConnections)return!0;r=e.parent(r)}return!1},`isNodeInExtractableCluster`),ne=n((e,t,n)=>{let r=e.children(t)??[];for(let i of r){if(i===n||A(i,n))continue;let r=F(i,e,t);if(r&&!B(e,r,t))return r}return null},`findSafeAnchorNode`);function V({prepareLayout:e,measureLayout:t,runLayoutCore:r,paintLayout:i,afterPaint:a,paintOptions:o}){let s=t??U;return n(async function(t,n,c,l){let u=n.select(`g`);(c?.insertMarkers??p)(u,t.markers,t.type,t.diagramId),H();let d={element:u,helpers:c,options:l};d.preparedLayout=await e?.(t,d);let f=await s(t,d),m=await r(t,d),h={...d,measure:f};i?await i(t,h,m):await W(t,h,o),await a?.(t,h,m)},`render`)}n(V,`createCommonLayoutRenderer`);function H(){d(),ee(),b(),k()}n(H,`clearLayoutRenderState`);async function U(e,{element:t},n){return await T(t,e,n)}n(U,`defaultMeasureLayout`);async function W(e,t,n={}){let{measure:r}=t,{groups:i}=r;for(let r of n.getNodes?.(e,t)??e.nodes)n.skipNode?.(r,t)||await G(i,r,t,n);let a=q(e.nodes);for(let r of e.edges)J(r,n)||await Y(i,r,a,e,n,t)}n(W,`paintLayoutData`);async function G(e,t,n,r){t.clusterNode?c(t):K(t,n,r)?await y(e.clusters,t):c(t)}n(G,`paintLayoutNode`);function K(e,t,n){return e.isGroup===!0&&(n.isCluster?.(e,t)??!0)}n(K,`shouldPaintAsCluster`);function q(e){let t=new Map;for(let n of e)n?.id&&t.set(n.id,n);return t}n(q,`buildNodeLookup`);function J(e,t){return e.isLayoutOnly||!!t.skipEdge?.(e)}n(J,`shouldSkipPaintEdge`);async function Y(e,t,n,r,i,a){let o=h(e.edgePaths,{...t},i.clusterDb??new Map,r.type,X(t.start,t,n,a,i),X(t.end,t,n,a,i),r.diagramId,Z(t,i));_(t)&&(g.has(t.id)||await f(e.edgeLabels,t),Q(t,o))}n(Y,`paintLayoutEdge`);function X(e,t,n,r,i){return i.getEdgeNode?.(e,t,r)??(e?n.get(e)??{}:{})}n(X,`getRenderedNode`);function Z(e,t){return typeof t.skipIntersect==`function`?t.skipIntersect(e):t.skipIntersect??!1}n(Z,`shouldSkipIntersect`);function Q(e,t){let n=t?.updatedPath??t?.originalPath,r=a(),{subGraphTitleTotalMargin:i}=l({flowchart:r.flowchart??{}});if(e.label){let n=g.get(e.id),{x:r,y:a}=v(e,t);n.attr(`transform`,`translate(${r}, ${a+i/2})`)}for(let[t,r]of[[`startLeft`,e.startLabelLeft],[`startRight`,e.startLabelRight],[`endLeft`,e.endLabelLeft],[`endRight`,e.endLabelRight]])if(r){let{x:r,y:i}=$(e,t,n);m.get(e.id)[t].attr(`transform`,`translate(${r}, ${i})`)}}n(Q,`positionRenderedEdgeLabel`);var re={startLeft:`start_left`,startRight:`start_right`,endLeft:`end_left`,endRight:`end_right`};function $(e,t,n){let r=e.terminalLabelCenters?.[t];if(r)return{...r};if(!n)return{x:e.x,y:e.y};let i=t.startsWith(`start`)?e.arrowTypeStart:e.arrowTypeEnd;return o.calcTerminalLabelPosition(i?10:0,re[t],n)}n($,`terminalLabelTranslate`);export{U as a,te as c,x as i,E as n,F as o,V as r,C as s,L as t};
|