ryugi-artifacts 1.71.0 → 1.71.1
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/dist/cli.cjs +2 -2
- package/dist/server.cjs +1 -1
- package/dist/viewer/ArtboardLayout-D9vW142o.js +12 -0
- package/dist/viewer/{ArtifactList-DV4G_qK2.js → ArtifactList-BaaDdeyG.js} +2 -2
- package/dist/viewer/{Avatar-DGMPym4p.js → Avatar-BRabEIqd.js} +1 -1
- package/dist/viewer/CompositeItem-CnLoBKgZ.js +1 -0
- package/dist/viewer/{DocumentLayout-BXegH0sF.js → DocumentLayout-CUpZEyW7.js} +2 -2
- package/dist/viewer/DocumentPage-xNNNq2h-.js +4 -0
- package/dist/viewer/{DropdownMenu-C4feb-Mq.js → DropdownMenu-D7hUzUyn.js} +1 -1
- package/dist/viewer/{HtmlLayout-DltXJryH.js → HtmlLayout-mCyTlMnl.js} +1 -1
- package/dist/viewer/MenuSubmenuTrigger-CLH7yclO.js +1 -0
- package/dist/viewer/MenuTrigger-CGvPp0uG.js +1 -0
- package/dist/viewer/{PhoneArtboardBar-BUlgF3vS.js → PhoneArtboardBar-CQHPMPTZ.js} +1 -1
- package/dist/viewer/Popover-BKx9uy8c.js +1 -0
- package/dist/viewer/{PreviewLayout-CMYzEEL_.js → PreviewLayout-Bg9AZ91J.js} +2 -2
- package/dist/viewer/{Segmented-CRw0XP1f.js → Segmented-CilJn7c1.js} +1 -1
- package/dist/viewer/Select-BsKM3yA4.js +1 -0
- package/dist/viewer/SelectScrollUpArrow-ByDfz8M9.js +1 -0
- package/dist/viewer/SettingsDialog-cLAMjprj.js +1 -0
- package/dist/viewer/{SnapshotDocument-DK5PtxZf.js → SnapshotDocument-Dmb9xl0_.js} +1 -1
- package/dist/viewer/{SplitShell-BXL8Wrt6.js → SplitShell-DjZU0qzt.js} +1 -1
- package/dist/viewer/{ThreadView-BB278JlB.js → ThreadView-9YdOYaZS.js} +1 -1
- package/dist/viewer/TooltipPopup-CZJRZOwb.js +1 -0
- package/dist/viewer/{VirtualizedEditor-uWe43zaI-CU144P8N.js → VirtualizedEditor-uWe43zaI-BrB88Dlu.js} +1 -1
- package/dist/viewer/{VirtualizedRenderer-C_d95FXi-F9BGUjW7.js → VirtualizedRenderer-C_d95FXi-3s0DYFB9.js} +1 -1
- package/dist/viewer/{WarningsBadge-8P8HTqhj.js → WarningsBadge-DrpIotPt.js} +1 -1
- package/dist/viewer/{WhiteboardLayout-CvpcOBD0.js → WhiteboardLayout-BxqvWOOl.js} +1 -1
- package/dist/viewer/{abnfDiagram-VCTEODGH-B0LKfCdw.js → abnfDiagram-VCTEODGH-Bc35SdtA.js} +1 -1
- package/dist/viewer/{ar-SA-G6X2FPQ2-B5ymZ6-7.js → ar-SA-G6X2FPQ2-DpKAPqx2.js} +1 -1
- package/dist/viewer/{architectureDiagram-5GKGNRK7-CTIIuGJC.js → architectureDiagram-5GKGNRK7-BXdkr_7B.js} +1 -1
- package/dist/viewer/{az-AZ-76LH7QW2-0e4OEoQn.js → az-AZ-76LH7QW2-BU_FX3A9.js} +1 -1
- package/dist/viewer/{bg-BG-XCXSNQG7-BK4Yfu0v.js → bg-BG-XCXSNQG7-mmCthvru.js} +1 -1
- package/dist/viewer/{blockDiagram-I7D4REHJ-BCY39CK-.js → blockDiagram-I7D4REHJ-CthtWmpx.js} +1 -1
- package/dist/viewer/{bn-BD-2XOGV67Q-DY0dhZri.js → bn-BD-2XOGV67Q-C-7hyuN5.js} +1 -1
- package/dist/viewer/{c4Diagram-7LVT6UL2-C4bAGSRF.js → c4Diagram-7LVT6UL2-AjKurpqZ.js} +1 -1
- package/dist/viewer/{ca-ES-6MX7JW3Y-DYeaKAAZ.js → ca-ES-6MX7JW3Y-DwkjxPm1.js} +1 -1
- package/dist/viewer/{channel-CMKOAKFL.js → channel-N_XGshwu.js} +149 -149
- package/dist/viewer/{chunk-4HAMMTFA-DKKrCtt5.js → chunk-4HAMMTFA-Cz1ytWvC.js} +1 -1
- package/dist/viewer/{chunk-75Z2AOVW-CxnIcYMY.js → chunk-75Z2AOVW-CISHRYJO.js} +1 -1
- package/dist/viewer/{chunk-EIO257PC-qXGHvKXr.js → chunk-EIO257PC-B7UvTySU.js} +1 -1
- package/dist/viewer/{chunk-GMAD6QVW-BbSqVE_3.js → chunk-GMAD6QVW-Dt3OZ5hF.js} +1 -1
- package/dist/viewer/{chunk-GVQU2GXP-CybTk49_.js → chunk-GVQU2GXP-C1CWLRAj.js} +1 -1
- package/dist/viewer/{chunk-IMKFNOWR-jCedT_zr.js → chunk-IMKFNOWR-Jdp7qrnE.js} +1 -1
- package/dist/viewer/{chunk-L3NEJ4N5-CdvkCIkZ.js → chunk-L3NEJ4N5-Bdf4aC2p.js} +1 -1
- package/dist/viewer/{chunk-OSK3NFVY-9vAyeFw7.js → chunk-OSK3NFVY-3EsGMoPL.js} +1 -1
- package/dist/viewer/{chunk-SHT3W25Y-DYrFyqoc.js → chunk-SHT3W25Y-BUOHurMx.js} +1 -1
- package/dist/viewer/{chunk-SVP7TREG-dMNx_CcY.js → chunk-SVP7TREG-CED6GZRt.js} +1 -1
- package/dist/viewer/{chunk-TICWLB2K-BGQtf-K3.js → chunk-TICWLB2K-Bdccqr5F.js} +1 -1
- package/dist/viewer/classDiagram-ZZMXUADV-BzkuHWSi.js +1 -0
- package/dist/viewer/classDiagram-v2-VYDZK3BY-BzkuHWSi.js +1 -0
- package/dist/viewer/{cs-CZ-2BRQDIVT-DjaDntjh.js → cs-CZ-2BRQDIVT-dNYvE-kq.js} +1 -1
- package/dist/viewer/{cynefinDiagram-5FMLGOSQ-Y54wafYF.js → cynefinDiagram-5FMLGOSQ-ZgH60Wlu.js} +1 -1
- package/dist/viewer/{da-DK-5WZEPLOC-Tqj9zEgt.js → da-DK-5WZEPLOC-CPit3wEX.js} +1 -1
- package/dist/viewer/{dagre-GXQ25YYZ-BehPXdKF.js → dagre-GXQ25YYZ-Cx8-Ku-w.js} +1 -1
- package/dist/viewer/{de-DE-XR44H4JA-B7Ys3_AN.js → de-DE-XR44H4JA-BgST5hxN.js} +1 -1
- package/dist/viewer/{diagram-S7CK7UJ4-CUPMHvHL.js → diagram-S7CK7UJ4-iah0F5hM.js} +1 -1
- package/dist/viewer/{diagram-UQ7AKVKN-Cnsotkkq.js → diagram-UQ7AKVKN-BFKg0a1r.js} +1 -1
- package/dist/viewer/{diagram-VSXAHHWV-_Gb0p4Xt.js → diagram-VSXAHHWV-cOb8lp6F.js} +1 -1
- package/dist/viewer/{diagram-VX7I27RA-6b_DdSPn.js → diagram-VX7I27RA-B9eWRveB.js} +1 -1
- package/dist/viewer/{diagram-Z3DM3KII-C3auC1O2.js → diagram-Z3DM3KII-BkYL5iCF.js} +1 -1
- package/dist/viewer/{dist-B2Pz6jKV.js → dist-7JCFiE75.js} +1 -1
- package/dist/viewer/{dist-CivKp_88.js → dist-B22SvRqe.js} +1 -1
- package/dist/viewer/{dist-Bpc6MjnN.js → dist-BAf-9lY0.js} +1 -1
- package/dist/viewer/{dist-xaJ7cT-p.js → dist-BDpeSiox.js} +1 -1
- package/dist/viewer/{dist-BNqLQbx8.js → dist-BdOAwIlj.js} +1 -1
- package/dist/viewer/{dist-C30QaZlo.js → dist-Bvxg-KAL.js} +1 -1
- package/dist/viewer/{dist-D1ltcskn.js → dist-C4FEemnI.js} +1 -1
- package/dist/viewer/{dist-CLMpMvW8.js → dist-CEQRYr8z.js} +1 -1
- package/dist/viewer/{dist-pOfDFOb4.js → dist-CIdd9Ct_.js} +1 -1
- package/dist/viewer/{dist-C54IWjMq.js → dist-CPz_Tn45.js} +1 -1
- package/dist/viewer/{dist-DmX9cG26.js → dist-CfKVG2Ej.js} +1 -1
- package/dist/viewer/{dist-D0jfqsk3.js → dist-CgFeUoj2.js} +1 -1
- package/dist/viewer/{dist-SjMB3ORD.js → dist-CgW32RMd.js} +1 -1
- package/dist/viewer/{dist-D8yTrHOe.js → dist-Cjwzo1C4.js} +1 -1
- package/dist/viewer/{dist-Dvpwh6aN.js → dist-CpNmMuMi.js} +1 -1
- package/dist/viewer/{dist-ujkFdcwL.js → dist-CvUVJeYy.js} +4 -4
- package/dist/viewer/{dist-DKC2CFz3.js → dist-D2yHk53d.js} +1 -1
- package/dist/viewer/{dist-7UQnJyoY.js → dist-DG5iRaEk.js} +1 -1
- package/dist/viewer/{dist-DYYos7aA.js → dist-DO4dZIR6.js} +1 -1
- package/dist/viewer/{dist-Q62YQ6Tz.js → dist-DT8NF295.js} +1 -1
- package/dist/viewer/{dist-DjX-jLyv.js → dist-DYPSN_M0.js} +1 -1
- package/dist/viewer/{dist-BKIoajE3.js → dist-DnCCztsa.js} +1 -1
- package/dist/viewer/{dist-CAlOKecF.js → dist-VUIHn7Nh.js} +1 -1
- package/dist/viewer/{dist-DJD7Rxl_.js → dist-u1JQCEhv.js} +1 -1
- package/dist/viewer/{ebnfDiagram-PWID7BFC-CE0BLrbg.js → ebnfDiagram-PWID7BFC-B3GyFqUI.js} +1 -1
- package/dist/viewer/{el-GR-BZB4AONW-D1iu3D-5.js → el-GR-BZB4AONW-DKbd5-qY.js} +1 -1
- package/dist/viewer/{en-B4ZKOASM-q9ZI4jM7.js → en-B4ZKOASM-BCMkizin.js} +1 -1
- package/dist/viewer/{erDiagram-RLTQ6QDP-gRel-NWS.js → erDiagram-RLTQ6QDP-Clgs0Z4Z.js} +1 -1
- package/dist/viewer/{es-ES-U4NZUMDT-C2iEjmwQ.js → es-ES-U4NZUMDT-Dba65Czl.js} +1 -1
- package/dist/viewer/{eu-ES-A7QVB2H4-BT6Rltb3.js → eu-ES-A7QVB2H4-CsjR6Siq.js} +1 -1
- package/dist/viewer/{fa-IR-HGAKTJCU-CqwuajY6.js → fa-IR-HGAKTJCU-DOoo7RWO.js} +1 -1
- package/dist/viewer/{fi-FI-Z5N7JZ37-B5eOrZnB.js → fi-FI-Z5N7JZ37-uFQf8h3n.js} +1 -1
- package/dist/viewer/flowDiagram-HODETNUW-BasE-zlm.js +1 -0
- package/dist/viewer/{fr-FR-RHASNOE6-CuAP0ov3.js → fr-FR-RHASNOE6-C77ZGKbL.js} +1 -1
- package/dist/viewer/{ganttDiagram-EL5Y4UJY-A51eLNzS.js → ganttDiagram-EL5Y4UJY-peAiSDl5.js} +1 -1
- package/dist/viewer/{gitGraphDiagram-WWUBYQGX-CpflpsWN.js → gitGraphDiagram-WWUBYQGX-DoCbQiRs.js} +1 -1
- package/dist/viewer/{gl-ES-HMX3MZ6V-DNzL8ZLj.js → gl-ES-HMX3MZ6V-CtZ1R4UJ.js} +1 -1
- package/dist/viewer/{he-IL-6SHJWFNN-BL2IqUA2.js → he-IL-6SHJWFNN-8iDk2Cj9.js} +1 -1
- package/dist/viewer/{hi-IN-IWLTKZ5I-Cc_Z6cIK.js → hi-IN-IWLTKZ5I-Dkheq-4c.js} +1 -1
- package/dist/viewer/{hu-HU-A5ZG7DT2-BpJys7hD.js → hu-HU-A5ZG7DT2-CAkdx9va.js} +1 -1
- package/dist/viewer/{id-ID-SAP4L64H-D4zLMff9.js → id-ID-SAP4L64H-AgmEmoWZ.js} +1 -1
- package/dist/viewer/{image-GAAHSSAO-BKQeWnXf.js → image-GAAHSSAO-Drde0Cu5.js} +1 -1
- package/dist/viewer/index.html +4 -4
- package/dist/viewer/index.js +2 -2
- package/dist/viewer/{infoDiagram-27XIBGKW-Cb6BEK3u.js → infoDiagram-27XIBGKW-GnjUjFHj.js} +1 -1
- package/dist/viewer/{ishikawaDiagram-5VMMS53U-wRvUis49.js → ishikawaDiagram-5VMMS53U-1MxSfjTh.js} +1 -1
- package/dist/viewer/{it-IT-JPQ66NNP-DQMNMOSZ.js → it-IT-JPQ66NNP-C3OkbwQe.js} +1 -1
- package/dist/viewer/{ja-JP-DBVTYXUO-CyTOe7Y8.js → ja-JP-DBVTYXUO-B1vxIH8D.js} +1 -1
- package/dist/viewer/{kaa-6HZHGXH3-Bid3n_YF.js → kaa-6HZHGXH3-K4DVCpsJ.js} +1 -1
- package/dist/viewer/{kab-KAB-ZGHBKWFO-BYjsuHFe.js → kab-KAB-ZGHBKWFO-BLSOrGEs.js} +1 -1
- package/dist/viewer/{kanban-definition-UXKFOSKX-DWK9G9rt.js → kanban-definition-UXKFOSKX-WS8PEvLu.js} +1 -1
- package/dist/viewer/{kk-KZ-P5N5QNE5-DP8c-ogr.js → kk-KZ-P5N5QNE5-Cy9nbuqq.js} +1 -1
- package/dist/viewer/{km-KH-HSX4SM5Z-xmnFjfoK.js → km-KH-HSX4SM5Z-Dmzrc51V.js} +1 -1
- package/dist/viewer/{ko-KR-MTYHY66A-DBXzp-hP.js → ko-KR-MTYHY66A-ZYlhHg_q.js} +1 -1
- package/dist/viewer/{ku-TR-6OUDTVRD-DjqLLQgd.js → ku-TR-6OUDTVRD-D085fxQI.js} +1 -1
- package/dist/viewer/{local-split-host-D5XeWHs2.js → local-split-host-eo64M6MH.js} +1 -1
- package/dist/viewer/{lt-LT-XHIRWOB4-CiXIbBlP.js → lt-LT-XHIRWOB4-THLmEcof.js} +1 -1
- package/dist/viewer/{lv-LV-5QDEKY6T-BBg2ICUg.js → lv-LV-5QDEKY6T-BVkHnyu-.js} +1 -1
- package/dist/viewer/{mindmap-definition-YA3MSWOX-D-RKw5yH.js → mindmap-definition-YA3MSWOX-CTOVCiY3.js} +1 -1
- package/dist/viewer/{mr-IN-CRQNXWMA-BvFZO2Ww.js → mr-IN-CRQNXWMA-BZc1Fr4Y.js} +1 -1
- package/dist/viewer/{my-MM-5M5IBNSE-B2vH-znI.js → my-MM-5M5IBNSE-DN7swKPn.js} +1 -1
- package/dist/viewer/{nb-NO-T6EIAALU-BbKLi7pg.js → nb-NO-T6EIAALU-CXrn-L5C.js} +1 -1
- package/dist/viewer/{nl-NL-IS3SIHDZ-Djj6TAo1.js → nl-NL-IS3SIHDZ-CN_y-E71.js} +1 -1
- package/dist/viewer/{nn-NO-6E72VCQL-C9FENQ04.js → nn-NO-6E72VCQL--d0l9Nub.js} +1 -1
- package/dist/viewer/{oc-FR-POXYY2M6-Bb9oRGl0.js → oc-FR-POXYY2M6-UcoZ6zgZ.js} +1 -1
- package/dist/viewer/{pa-IN-N4M65BXN-GiTIcI0J.js → pa-IN-N4M65BXN-Cxa1pvd8.js} +1 -1
- package/dist/viewer/{parseTrigger-G_dEUQ-S.js → parseTrigger-CDKivKrD.js} +1 -1
- package/dist/viewer/{pegDiagram-XKGWAZYB-DoKug0Ul.js → pegDiagram-XKGWAZYB-DllevYMi.js} +1 -1
- package/dist/viewer/percentages-BXMCSKIN-XV2ztRnw.js +1 -0
- package/dist/viewer/{pieDiagram-E7YTZNPT-cjr6q7MN.js → pieDiagram-E7YTZNPT-VZHNvIpn.js} +1 -1
- package/dist/viewer/{pl-PL-T2D74RX3-Bn1NSuWG.js → pl-PL-T2D74RX3-Gdale6hY.js} +1 -1
- package/dist/viewer/preview.html +1 -1
- package/dist/viewer/preview.js +1 -1
- package/dist/viewer/{prod-CaFKRNhp.js → prod-DO1G2WEh.js} +9 -9
- package/dist/viewer/{pt-BR-5N22H2LF-BI-zbYLr.js → pt-BR-5N22H2LF-BxE6VyHB.js} +1 -1
- package/dist/viewer/{pt-PT-UZXXM6DQ-319Tw5BW.js → pt-PT-UZXXM6DQ-CL9Y5MlX.js} +1 -1
- package/dist/viewer/{railroadDiagram-O6MQD6OU-DbEnsKie.js → railroadDiagram-O6MQD6OU-Cjb5aHlF.js} +1 -1
- package/dist/viewer/{ref-BwCMEjB3.js → ref-BCmtKUu8.js} +1 -1
- package/dist/viewer/{requirementDiagram-BXWQKSXE-D92sYU7y.js → requirementDiagram-BXWQKSXE-B_NeP8_P.js} +1 -1
- package/dist/viewer/{ro-RO-JPDTUUEW-VijYgS5D.js → ro-RO-JPDTUUEW-eUjxUc3w.js} +1 -1
- package/dist/viewer/{route-messages-CJ5JptAX.js → route-messages-pcZcPdUb.js} +1 -1
- package/dist/viewer/{ru-RU-B4JR7IUQ-HPA0KGMP.js → ru-RU-B4JR7IUQ-DCvMZJIS.js} +1 -1
- package/dist/viewer/{sequenceDiagram-WJ2MYXX4-lImr5uIr.js → sequenceDiagram-WJ2MYXX4-Cg6wzcic.js} +1 -1
- package/dist/viewer/{si-LK-N5RQ5JYF-D3xEcphZ.js → si-LK-N5RQ5JYF-CbTYgtex.js} +1 -1
- package/dist/viewer/{sk-SK-C5VTKIMK-Db8aZYTC.js → sk-SK-C5VTKIMK-FQopkhlI.js} +1 -1
- package/dist/viewer/{sl-SI-NN7IZMDC-eFJNBgsb.js → sl-SI-NN7IZMDC-D4WFci-O.js} +1 -1
- package/dist/viewer/{split-url-DL2J8T-a.js → split-url-DDv_DQdJ.js} +1 -1
- package/dist/viewer/{stateDiagram-D77RDMKH-DlBhDgXR.js → stateDiagram-D77RDMKH-DjJ1bO50.js} +1 -1
- package/dist/viewer/stateDiagram-v2-MP3YSRHH-Dmdejofr.js +1 -0
- package/dist/viewer/subset-shared.chunk-DR1g3zEi.js +1 -0
- package/dist/viewer/{subset-worker.chunk-7eRPBTIK.js → subset-worker.chunk-BvgdjbxH.js} +1 -1
- package/dist/viewer/{sv-SE-XGPEYMSR-1ooAaIdn.js → sv-SE-XGPEYMSR-D_VjGxQN.js} +1 -1
- package/dist/viewer/{swimlanes-42K2YHIH-Dk9L2F9U.js → swimlanes-42K2YHIH-QftDj785.js} +1 -1
- package/dist/viewer/swimlanesDiagram-VR7AAH4N-DbyqL88Q.js +8 -0
- package/dist/viewer/{ta-IN-2NMHFXQM-r-PlEE_o.js → ta-IN-2NMHFXQM-CbIk9sKC.js} +1 -1
- package/dist/viewer/{th-TH-HPSO5L25-DCSuXNKm.js → th-TH-HPSO5L25-C2GDyix8.js} +1 -1
- package/dist/viewer/{timeline-definition-24CTP7MA-CuLHXBb9.js → timeline-definition-24CTP7MA-CY9vFTWf.js} +1 -1
- package/dist/viewer/{tr-TR-DEFEU3FU-DmRbSHuX.js → tr-TR-DEFEU3FU-DQ_4wb7D.js} +1 -1
- package/dist/viewer/{uk-UA-QMV73CPH-CcDh2WkS.js → uk-UA-QMV73CPH-BhV6yPhs.js} +1 -1
- package/dist/viewer/{useAriaLabelledBy-Cu8JrnAw.js → useAriaLabelledBy-fHDdTRK0.js} +1 -1
- package/dist/viewer/useOpenInteractionType-BK_FRxTI.js +1 -0
- package/dist/viewer/useTypeFavicon-BX7a9gHJ.js +1 -0
- package/dist/viewer/{vennDiagram-4TSXK5OY-Dm5qhhY3.js → vennDiagram-4TSXK5OY-DTS-F2mG.js} +1 -1
- package/dist/viewer/{vi-VN-M7AON7JQ-DWAX0NEb.js → vi-VN-M7AON7JQ-Bj22Jpmu.js} +1 -1
- package/dist/viewer/{viewport-CFJHn_Y6-B-kdQ7xr.js → viewport-CFJHn_Y6-DoDATgb9.js} +1 -1
- package/dist/viewer/{wardleyDiagram-VM6X3IG4-DTCi6DmX.js → wardleyDiagram-VM6X3IG4-BGSn8C9A.js} +1 -1
- package/dist/viewer/{xychartDiagram-S5SC5T6Z-DxA0cQ3A.js → xychartDiagram-S5SC5T6Z-xLCsGqTC.js} +1 -1
- package/dist/viewer/{zh-CN-LNUGB5OW-C0GKmW1G.js → zh-CN-LNUGB5OW-C7oz2qIW.js} +1 -1
- package/dist/viewer/{zh-HK-E62DVLB3-CnrjNkY6.js → zh-HK-E62DVLB3-BJDaInsT.js} +1 -1
- package/dist/viewer/{zh-TW-RAJ6MFWO-CzT4lffH.js → zh-TW-RAJ6MFWO-BNVa6Qkx.js} +1 -1
- package/dist/viewer-lib/{Canvas-Czt9ltgM.js → Canvas-BYynUnDw.js} +1 -1
- package/dist/viewer-lib/{PhoneArtboardBar-KVFmaCba.js → PhoneArtboardBar-CLfao6kr.js} +1 -1
- package/dist/viewer-lib/{PreviewView-BWt3dX8d.js → PreviewView-CSw_F2_D.js} +1 -1
- package/dist/viewer-lib/{ReadOnlyWhiteboard-DkN-iQ5e.js → ReadOnlyWhiteboard-mIG3KcnM.js} +1 -1
- package/dist/viewer-lib/{SnapshotDocument-CbuCIqIZ.js → SnapshotDocument-DgvoMt60.js} +43 -35
- package/dist/viewer-lib/{VirtualizedEditor-uWe43zaI-XBNVQjy2.js → VirtualizedEditor-uWe43zaI-FwG433XJ.js} +2 -2
- package/dist/viewer-lib/{VirtualizedRenderer-C_d95FXi-8iSF4rXx.js → VirtualizedRenderer-C_d95FXi-MJi54PZt.js} +3 -3
- package/dist/viewer-lib/core.js +1 -1
- package/dist/viewer-lib/{dist-Csam7y04.js → dist-B4pJnLZf.js} +1 -1
- package/dist/viewer-lib/{dist-zUHol6rl.js → dist-BE-dZoek.js} +2 -2
- package/dist/viewer-lib/{dist-jwZIUB0I.js → dist-BL5CFTvj.js} +4 -4
- package/dist/viewer-lib/{dist-DVGe9QEo.js → dist-BnoMOjLj.js} +3 -3
- package/dist/viewer-lib/{dist-DQDlkYqz.js → dist-BsrD-y9h.js} +3 -3
- package/dist/viewer-lib/{dist-80gN5MDf.js → dist-C2lCObag.js} +3 -3
- package/dist/viewer-lib/{dist-D01J0hzJ.js → dist-CECBnb7n.js} +2 -2
- package/dist/viewer-lib/{dist-C05yE_u3.js → dist-CnlV8nO0.js} +3 -3
- package/dist/viewer-lib/{dist-TYFSuN0R.js → dist-CoLudW7r.js} +3 -3
- package/dist/viewer-lib/{dist-CLixy726.js → dist-Cyom2LY9.js} +4 -4
- package/dist/viewer-lib/{dist-Dug8w68g.js → dist-D1GOMPbd.js} +4 -4
- package/dist/viewer-lib/{dist-DczdJ0Ss.js → dist-D9dZ-mn3.js} +3 -3
- package/dist/viewer-lib/{dist-Cl-thFU5.js → dist-DBowVBGn.js} +3 -3
- package/dist/viewer-lib/{dist-B8C9-q9r.js → dist-DCjJphk5.js} +2 -2
- package/dist/viewer-lib/{dist-lWjeTWd-.js → dist-DIg-JAYd.js} +2 -2
- package/dist/viewer-lib/{dist-CXXXkgsH.js → dist-DKunk6l6.js} +1 -1
- package/dist/viewer-lib/{dist-V1Zz1gd6.js → dist-DUJwwi8d.js} +3 -3
- package/dist/viewer-lib/{dist-B1eQ7mh1.js → dist-DdKqqpsH.js} +2 -2
- package/dist/viewer-lib/{dist-DHj3-Pp5.js → dist-DeSsn41-.js} +2 -2
- package/dist/viewer-lib/{dist-CG3jaold.js → dist-a_keh4GI.js} +2 -2
- package/dist/viewer-lib/{dist-BAFLptZH.js → dist-dVPJOpRx.js} +3 -3
- package/dist/viewer-lib/{dist-BGKw9XQy.js → dist-ecmDeQtW.js} +2 -2
- package/dist/viewer-lib/{dist-D33Sd5z1.js → dist-o8reI3_C.js} +3 -3
- package/dist/viewer-lib/document.js +803 -773
- package/dist/viewer-lib/index.js +5 -5
- package/dist/viewer-lib/{plugin-_bGVeqI0-BuoZIQw-.js → plugin-_bGVeqI0-mNQAAi1o.js} +1 -1
- package/dist/viewer-lib/types/src/viewer/document/crossfade.d.ts +3 -0
- package/dist/viewer-lib/{viewport-CFJHn_Y6-C1O9ia_N.js → viewport-CFJHn_Y6-CqN5AlP3.js} +1 -1
- package/package.json +1 -1
- package/dist/viewer/ArtboardLayout-eR_sC6MB.js +0 -12
- package/dist/viewer/CompositeItem-DA-WyEr7.js +0 -1
- package/dist/viewer/DocumentPage-Dw7m0Oxi.js +0 -4
- package/dist/viewer/MenuSubmenuTrigger-B_Ya87it.js +0 -1
- package/dist/viewer/MenuTrigger-C421vH74.js +0 -1
- package/dist/viewer/Popover-C23mZ93A.js +0 -1
- package/dist/viewer/Select-BCfJ7Dw_.js +0 -1
- package/dist/viewer/SelectScrollUpArrow-CTtHJLxk.js +0 -1
- package/dist/viewer/SettingsDialog-DXraxvYr.js +0 -1
- package/dist/viewer/TooltipPopup-CfrIPB9r.js +0 -1
- package/dist/viewer/classDiagram-ZZMXUADV-I3gtgBTd.js +0 -1
- package/dist/viewer/classDiagram-v2-VYDZK3BY-I3gtgBTd.js +0 -1
- package/dist/viewer/flowDiagram-HODETNUW-yZn6O744.js +0 -1
- package/dist/viewer/percentages-BXMCSKIN-D095tJfv.js +0 -1
- package/dist/viewer/stateDiagram-v2-MP3YSRHH-Byaeiehp.js +0 -1
- package/dist/viewer/subset-shared.chunk-BNAGyqG3.js +0 -1
- package/dist/viewer/swimlanesDiagram-VR7AAH4N-DNI8atPj.js +0 -8
- package/dist/viewer/useOpenInteractionType-LXvb6AtX.js +0 -1
- package/dist/viewer/useTypeFavicon-DIU-6w2G.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{y as t}from"./route-IxDJQ-oO.js";import{t as n}from"./react-B8SKf8RM.js";import{Kr as r,Wr as i,d as a,i as o,n as s,t as c,u as l}from"./split-url-DL2J8T-a.js";import{t as u}from"./jsx-runtime-DePvh3-m.js";import{q as d}from"./MotionConfigContext-DBHtopYR.js";import{t as f}from"./chevron-down-MyXUwHqO.js";import{t as p}from"./chevron-left-B7WJAO5q.js";import{t as m}from"./chevron-up-BLztg0Iv.js";import{a as ee,c as h,d as g,i as _,l as v,n as te,o as ne,r as y,s as b,t as x,u as S}from"./route-messages-CJ5JptAX.js";import{t as C}from"./file-text-BwtMWDOY.js";import{t as w}from"./useTranslation-DGPvUY4J.js";import{a as T,i as E,n as D,t as O}from"./motion-Cy65kd7X.js";import{n as re,t as ie}from"./useMedia-B_wouzHa.js";import{r as ae}from"./type-icons-BugaK-eL.js";import{n as k}from"./ref-BwCMEjB3.js";var A={name:`arrow-left-right`,size:24,node:[[`path`,{d:`M8 3 4 7l4 4`,key:`9rb6wj`}],[`path`,{d:`M4 7h16`,key:`6tx8e3`}],[`path`,{d:`m16 21 4-4-4-4`,key:`siv7j2`}],[`path`,{d:`M20 17H4`,key:`h6l3hr`}]]};A.node;var oe=d(A),j=e(n(),1),M=u();function se({bar:e,onStep:t}){let{t:n}=w();return e?e.kind===`notice`?(0,M.jsxs)(`div`,{"data-split-notice":!0,role:`status`,className:`x10l6tqk xkpr539 x1nrll8i xuuh30 x1u8a7rm x78zum5 x6s0dn4 x17d4w8g x10w6t97 x1awh872 xur7f20 x12ilycc x1d5q07e xqfszdh xfifm61 x1bo0w0s xuxw1ft`,children:[(0,M.jsx)(r,{size:14}),(0,M.jsx)(`span`,{className:`x1fao0z8 xo2rkog`,children:e.key}),e.elsewhere?n(`split.elsewhere`,{document:e.elsewhere}):n(`split.unreferenced`)]}):(0,M.jsxs)(`div`,{"data-split-stepper":!0,className:`x10l6tqk xkpr539 x1nrll8i xuuh30 x1u8a7rm x78zum5 x6s0dn4 x17d4w8g x10w6t97 x1awh872 xur7f20 x12ilycc x1d5q07e xqfszdh xfifm61 x1bo0w0s xuxw1ft`,children:[(0,M.jsx)(`span`,{className:`x1fao0z8 xo2rkog`,children:e.key}),n(`split.position`,{index:e.index+1,total:e.total}),(0,M.jsx)(`button`,{"aria-label":n(`split.previous`),type:`button`,onClick:()=>t(-1),className:`xrvj5dj x1ku5rj1 x17z2i9w x17rw0jw x1717udv xc342km x1sxf85j xjbqb8w x1bo0w0s x1ypdohk xj0l527`,children:(0,M.jsx)(m,{size:14})}),(0,M.jsx)(`button`,{"aria-label":n(`split.next`),type:`button`,onClick:()=>t(1),className:`xrvj5dj x1ku5rj1 x17z2i9w x17rw0jw x1717udv xc342km x1sxf85j xjbqb8w x1bo0w0s x1ypdohk xj0l527`,children:(0,M.jsx)(f,{size:14})})]}):null}function ce(e){let[t,n]=(0,j.useState)(null),r=(0,j.useRef)(null),i=(0,j.useRef)(e);return i.current=e,(0,j.useEffect)(()=>l((e,t)=>{let o=i.current();if(e.kind!==`header`||!o||t!==o)return;let{activity:s,comments:c,history:l,historyOpen:u}=e;n({activity:s,comments:c,history:l,historyOpen:u}),a(o,{kind:`chrome`,hosted:!!r.current})}),[]),{header:t,history:e=>a(i.current(),{kind:`history`,action:e}),host:e=>{r.current!==e&&(r.current=e,a(i.current(),{kind:`chrome`,hosted:e}))}}}var N=e(t(),1),P=280,F=2500,I=5e3,le=e=>requestAnimationFrame(()=>requestAnimationFrame(e));function L(e,t){let n=document.documentElement,r={duration:P,fill:`both`};n.animate([{opacity:0,transform:`translateX(${48*t}px)`},{opacity:1,transform:`none`}],{...r,easing:O,pseudoElement:`::view-transition-new(${e})`}),n.animate([{opacity:1,transform:`none`},{opacity:0,transform:`translateX(${-24*t}px)`}],{...r,easing:D,pseudoElement:`::view-transition-old(${e})`}),n.animate([{clipPath:`inset(0)`},{clipPath:`inset(0)`}],{...r,pseudoElement:`::view-transition-group(${e})`})}function ue({apply:e,section:t,animate:n}){let[r,i]=(0,j.useState)(null),a=(0,j.useRef)(r),o=(0,j.useRef)(null),s=(0,j.useRef)(void 0),c=(0,j.useRef)({apply:e,section:t,animate:n});c.current={apply:e,section:t,animate:n};let u=e=>{if(a.current!==e)return;a.current=null,clearTimeout(s.current);let t=()=>(0,N.flushSync)(()=>{i(null),c.current.apply(e)});if(!document.startViewTransition||!c.current.animate()||T())return t();let n=c.current.section(e.slot),r=`split-${e.slot}`;n&&(n.style.viewTransitionName=r);let o=document.startViewTransition(t),l=()=>{n&&(n.style.viewTransitionName=``)};o.ready.then(()=>L(r,e.enter),l),o.finished.then(l,l)},d=(0,j.useRef)(u);return d.current=u,(0,j.useEffect)(()=>{if(!r)return;let e=setTimeout(()=>d.current(r),I),t=l((e,t)=>{e.kind===`painted`&&t&&t===o.current?.contentWindow&&d.current(r)});return()=>{clearTimeout(e),clearTimeout(s.current),t()}},[r]),{incoming:r,stage:e=>{let t=a.current;t&&t.slot!==e.slot&&c.current.apply(t),a.current=e,i(e)},frame:e=>{o.current=e},loaded:()=>{let e=a.current;e&&(e.pane.type===`html`?le(()=>d.current(e)):s.current=setTimeout(()=>d.current(e),F))}}}var R=[`main`,`side`],z=e=>e===`main`?`side`:`main`,B=({type:e,id:t})=>({type:e,id:t});function de(e,t){let n=(0,j.useRef)(null),r=(0,j.useRef)(new WeakSet),i=(0,j.useRef)(``),o=(0,j.useRef)(t);o.current=t;let s=(0,j.useRef)(e);s.current=e;let c=e=>{let t=n.current,i=s.current(e);if(!t||!i||!r.current.has(i))return;let o=t.panes[z(e)];a(i,{kind:`split-role`,role:e===t.primary?`primary`:`beside`,other:t.open&&o.id?B(o):null})};return(0,j.useEffect)(()=>l((e,t)=>{if(e.kind!==`want-role`)return;let n=R.find(e=>s.current(e)===t);n&&t&&(r.current.add(t),c(n))}),[]),(e,t,r)=>{n.current={panes:e,primary:t,open:r};for(let e of R)(r||e===t)&&c(e);let a=e[z(t)],s={primary:B(e[t]),beside:r&&a.id?B(a):null},l=JSON.stringify(s);l!==i.current&&(i.current=l,o.current?.(s))}}var V=[`main`,`side`],H=e=>e===`main`?`side`:`main`;function fe({artboard:e,side:t,document:n,panes:r,slotOfType:i,focus:o,host:s,show:u,navigate:d,replace:f}){let p=(0,j.useRef)({main:null,side:null}),m=(0,j.useRef)(r);m.current=r;let h=(0,j.useRef)(i);h.current=i;let g=(0,j.useRef)({artboard:e,side:t,document:n,backlinks:null,cursor:null,groups:[]}),[_,v]=(0,j.useState)(null),b=(0,j.useRef)(u);b.current=u;let S=(0,j.useRef)(d);S.current=d;let C=(0,j.useRef)(f);C.current=f;let[w,T]=(0,j.useState)(0),E=(0,j.useRef)(null);(0,j.useEffect)(()=>{(g.current.artboard!==e||g.current.side!==t)&&(E.current=null),g.current.artboard=e,g.current.side=t,g.current.document=n},[e,t,n]),(0,j.useEffect)(()=>{if(e&&s.onArtboardChange)return s.onArtboardChange(e,()=>T(e=>e+1),t)},[e,t,s]),(0,j.useEffect)(()=>{if(g.current.backlinks=null,g.current.groups=[],!e)return;let n=!1;return s.loadLinks(e,t).then(e=>{!n&&e&&(g.current.backlinks=e.backlinks,g.current.groups=e.groups)}),()=>{n=!0}},[e,t,s,w]);let D=({cursor:e,effects:t},n=!1)=>{g.current.cursor=e;for(let e of t)if(`to`in e){let t=h.current(e.to);if(!t)continue;let{message:r}=e,i=n&&r.kind===`scroll-to`;if(i&&!p.current[t]){let e=r.key.slice(g.current.artboard.length+1);Object.assign(o,{group:void 0,board:void 0,frame:void 0,page:void 0},x(g.current,e))}(r.kind===`focus`||i)&&b.current(t),a(p.current[t]?.contentWindow,e.message)}else if(`navigate`in e)v(null),S.current(e.navigate);else if(`notice`in e)v({kind:`notice`,...e.notice});else if(`stepper`in e)v(e.stepper.total>1?{kind:`stepper`,...e.stepper}:null);else if(`url`in e){Object.assign(o,{group:e.url.group,board:e.url.board,frame:e.url.frame,page:e.url.page});let t=new URLSearchParams(location.search);for(let e of[`group`,`board`,`frame`,`wbpage`])t.delete(e);e.url.frame?t.set(`frame`,e.url.frame):e.url.page?t.set(`wbpage`,e.url.page):e.url.group?t.set(`group`,e.url.group):e.url.board&&t.set(`board`,e.url.board);let n=t.toString();history.replaceState(history.state,``,`${location.pathname}${n?`?${n}`:``}`),v(null)}};return(0,j.useEffect)(()=>l((e,t)=>{let n=V.find(e=>p.current[e]?.contentWindow===t);if(!n)return;let r=m.current,i=r[n].type,l=!!g.current.artboard&&!!g.current.document;if(e.kind===`ref-open`){let t=r[H(n)],a=s.refId(e.target),o=k(e.target);if(!a)return;let u=r[n];if(u.id===a&&u.type===o)return;let d=t.id===a&&t.type===o;if(!(l&&i===`document`&&c(o)&&(n===`main`||d))){if(d)return;v(null),C.current(H(n),{type:o,id:a},ne(e.target));return}}if(l||e.kind===`open-doc`){if(e.kind===`ready`){if(!g.current.artboard||!g.current.document)return;let e=p.current[n]?.contentWindow;for(let t of te(i,g.current.artboard,o))a(e,t);i===`document`&&E.current&&a(e,{kind:`board`,artboard:g.current.artboard,board:E.current})}else e.kind===`board-state`&&(E.current=e.board),D(y(i,e,g.current,s),e.kind===`open-doc`)}}),[]),{bar:_,frame:e=>t=>{p.current[e]=t},step:e=>D(ee(g.current,e)),window:e=>p.current[e]?.contentWindow}}var U=[`main`,`side`],W=`ryugiSplitPanes`,pe=(e,t)=>e.type===t.type&&e.id===t.id,me=e=>{let t=U.find(t=>c(e[t].type)&&e[G(t)].type===`document`);return{boardSlot:t,docSlot:t?G(t):U.find(t=>e[t].type===`document`)??null,slotOfType:t=>U.find(n=>e[n].type===t)}},G=e=>e===`main`?`side`:`main`,he={document:C,artboard:v,whiteboard:h,html:g},K=(e,t)=>{let n=t?.kind;return e===`document`?n??`artboard`:n===`document`||n===`html`?n:`document`},ge=.25,_e=.75,ve={position:`absolute`,visibility:`hidden`},ye=240,be=180,xe=320,Se=[{opacity:0,transform:`translateX(48px)`},{opacity:1,transform:`none`}],Ce=[{opacity:1,transform:`none`},{opacity:0,transform:`translateX(48px)`}],we=[{transform:`translateX(100%)`},{transform:`none`}],Te=[{transform:`none`},{transform:`translateX(100%)`}];function Ee(e,t){let[n,r]=(0,j.useState)(null);return(0,j.useEffect)(()=>{if(!t||!e.title)return;let n=!1;return e.title(t).then(e=>{!n&&e&&r({id:t,text:e})}),()=>{n=!0}},[e,t]),n?.id===t?n.text:t}function De({type:e,id:t,split:n,host:r,fill:c=!1,onPanes:u}){let{t:d}=w(),f=re(ie),[m,ee]=(0,j.useState)(n?.with??``),[h]=(0,j.useState)(()=>({type:e,id:t})),[g,v]=(0,j.useState)(h),[te,ne]=(0,j.useState)(()=>K(g.type,n)),y={main:g,side:{type:te,id:m}},x=(0,j.useRef)(y);x.current=y;let{docSlot:C}=me(y),k=(0,j.useRef)(f);k.current=f;let A=(0,j.useRef)({main:null,side:null}),N=ue({animate:()=>!k.current,section:e=>A.current[e],apply:e=>{Z({...x.current,[e.slot]:e.pane}),q(e.slot)}}),P=N.incoming?{...y,[N.incoming.slot]:N.incoming.pane}:y,{boardSlot:F,slotOfType:I}=me(P),le=(0,j.useRef)(I);le.current=I;let L=(0,j.useRef)({group:n?.group,board:n?.board,frame:n?.frame,page:n?.page}).current,R=(0,j.useRef)(`main`),[z,B]=(0,j.useState)(`main`),[V,H]=(0,j.useState)(!!n),[De,q]=(0,j.useState)(`side`),[Oe,ke]=(0,j.useState)(.58),[Ae,je]=(0,j.useState)(!1),Me=(0,j.useRef)(null),J=(0,j.useRef)(0),Y=(0,j.useRef)(0),Ne=(0,j.useRef)(null),Pe=(0,j.useRef)(V),Fe=(0,j.useRef)([]),Ie=(0,j.useRef)({}),Le=(0,j.useRef)(null),Re=(0,j.useRef)(!1),ze=(0,j.useRef)(null),X=fe({artboard:F?P[F].id:``,side:F?P[F].type:`artboard`,document:F?P[G(F)].id:``,panes:P,slotOfType:I,focus:L,host:r,show:e=>{q(e),!V&&(H(!0),$(R.current,!0))},navigate:e=>{let t=new URL(e,location.href),n=s(t.search),i=y[R.current],a=r.path(i.type,i.id);t.pathname!==a||!n||R.current!==`main`?location.assign(e):(We(),Ke(n),Ge({...y,side:{type:K(g.type,n),id:n.with}},Be(`side`)))},replace:(e,t,n)=>{We();let r=e!==R.current;Object.assign(L,{group:r?n.group:void 0,board:r?n.board:void 0,frame:r?n.frame:void 0,page:r?n.page:void 0}),Ge({...P,[e]:t},Be(e)),Ve(e,t,Be(e))}}),Be=e=>e===R.current?1:-1,Ve=(e,t,n)=>{V&&y[e].id&&!pe(y[e],t)?N.stage({slot:e,pane:t,enter:n}):(Z({...y,[e]:t}),q(e))},He=(0,j.useRef)(Ve);He.current=Ve;let Z=e=>{v(e.main),ne(e.side.type),ee(e.side.id),H(!0)},Ue=(e,t,n,r)=>({...e,focus:{...L},open:t,seq:n,enter:r}),We=()=>{let e=history.state;e?.[W]||(J.current=0,Y.current=0,history.replaceState({...e,[W]:Ue(y,V,0,0)},``))},Ge=(e,t)=>{J.current+=1,Y.current=t;let n=e[R.current],i=e[G(R.current)],a=y[R.current],s=n.type===a.type&&n.id===a.id?location.pathname:r.path(n.type,n.id);history.pushState({...history.state,[W]:Ue(e,!0,J.current,t)},``,`${s}${o(location.search,_(i.id,i.type,L,n.type))}`)},Ke=e=>{Object.assign(L,{group:e.group,board:e.board,frame:e.frame,page:e.page}),ne(K(g.type,e)),ee(e.with),H(!0),q(`side`)},qe=(0,j.useRef)(Ke);qe.current=Ke;let Je=(0,j.useRef)(()=>{});Je.current=()=>{R.current=`main`,B(`main`),H(!1)};let Ye=(0,j.useRef)(Z);Ye.current=Z,(0,j.useEffect)(()=>{let e=()=>{let e=history.state?.[W];if(e){let t=e.seq<J.current?-Y.current:e.enter;J.current=e.seq,Y.current=e.enter,Object.assign(L,e.focus);let n=U.filter(t=>!pe(e[t],x.current[t]));if(e.open&&n.length===1){He.current(n[0],e[n[0]],t||1);return}Ye.current(e),e.open||Je.current();return}if(location.pathname!==r.path(h.type,h.id))return;v(h);let t=s(location.search);t?qe.current(t):Je.current()};return window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)},[r,h,L]);let Xe=Ee(r,m),Q=ce(()=>C?X.window(C):null),Ze=de(e=>X.window(e),u),Qe=()=>{let e=R.current,t=V?f?De:null:e;for(let n of U){let r=A.current[n];if(!r)continue;let i=n===e?`primary`:`secondary`;r.dataset.role=i,r.style.order=i===`primary`?`0`:`2`;let a=ze.current,o=a?.slot===n;r.style.flex=!V||f||a?`1 1 auto`:i===`primary`?`0 0 ${Oe*100}%`:`1 1 0`;let s=t!==null&&t!==n;r.style.position=s||o?ve.position:``,r.style.inset=s?`0`:o?`0 0 0 auto`:``,r.style.width=o?`${a.width}px`:``,r.style.zIndex=o?`1`:``,r.style.visibility=s?ve.visibility:``;let c=r.querySelector(`:scope > header`);c&&(c.style.display=i===`primary`?`none`:``)}let n=Ie.current[e];n&&(document.title=n);let r=document.querySelector(`link[rel="icon"]`);r&&(r.href=ae(y[e].type));let i=V&&!f&&y[e].type!==`document`;Re.current=V&&!f&&y[e].type===`document`;let o=I(`whiteboard`);return o&&a(X.window(o),{kind:`chrome`,hosted:Re.current}),C&&A.current[C]?.style.setProperty(`--split-notice-top`,i?`49px`:``),Q.host(i),Ze(y,e,V),t};(0,j.useEffect)(()=>l((e,t)=>{let n=le.current(`whiteboard`);if(e.kind===`ready`&&t&&n&&t===X.window(n)&&a(X.window(n),{kind:`chrome`,hosted:Re.current}),e.kind!==`title`)return;let r=U.find(e=>X.window(e)===t);r&&(Ie.current[r]=e.title,r===R.current&&(document.title=e.title))}),[]);let $e=()=>void Me.current?.offsetWidth;(0,j.useLayoutEffect)(()=>{for(let e of Fe.current.splice(0))e.cancel();let e=Qe(),t=Pe.current,n=Ne.current;if(Pe.current=V,Ne.current=e,T())return;let r=A.current[G(R.current)];if(V&&!t&&!f)$e(),E(r,Se,{duration:ye,easing:O});else if(f&&e&&n&&e!==n&&e!==R.current){let t=A.current[n];t&&(t.style.visibility=``),E(A.current[e],we,{duration:ye,easing:O}).then(()=>{t&&Ne.current!==n&&(t.style.visibility=`hidden`)})}});let $=(e,t)=>{let n=y[G(e)],i=o(location.search,t?_(n.id,n.type,L,y[e].type):null);history.replaceState(history.state,``,`${r.path(y[e].type,y[e].id)}${i}`)},et=async(e,t,n)=>{if(!e||T())return n();let r=e.animate(t,{duration:be,easing:D,fill:`forwards`});await r.finished.catch(()=>void 0),Fe.current.push(r),n()},tt=()=>{let e=U.map(e=>A.current[e]?.getBoundingClientRect().left??0);R.current=G(R.current),Qe(),$(R.current,!0),!T()&&U.forEach((t,n)=>{let r=A.current[t],i=e[n]-(r?.getBoundingClientRect().left??0);r&&i&&E(r,[{transform:`translateX(${i}px)`},{transform:`none`}],{duration:xe,easing:O})})},nt=()=>{let e=R.current;$(e,!1);let t=A.current[e],n=A.current[G(e)],r=()=>{ze.current=null,B(e),H(!1)};if(!t||!n||f||T())return r();ze.current={slot:G(e),width:n.getBoundingClientRect().width},Le.current&&(Le.current.style.display=`none`),Qe(),$e(),n.animate(Ce,{duration:be,easing:D,fill:`forwards`}).finished.catch(()=>void 0).then(r)},rt=()=>{let e=A.current[De],t=A.current[R.current];t&&e&&!T()&&(t.style.visibility=``,e.style.zIndex=`1`),et(e,Te,()=>{e&&(e.style.zIndex=``),q(R.current)})},it=e=>{let t=Me.current?.getBoundingClientRect();if(!t?.width)return;let n=(e.clientX-t.left)/t.width;ke(Math.min(_e,Math.max(ge,n)))};return(0,M.jsxs)(`div`,{ref:Me,...{0:{className:`x1n2onr6 x78zum5 xn9wirt xtdtrs8 xb3r6kr`},1:{className:`x1n2onr6 x78zum5 xb3r6kr xh8yej3 x5yr21d`}}[!!c|0],children:[U.map(e=>{let{type:t,id:n}=y[e];if(!n||!V&&e!==z)return null;let a=he[t];return(0,M.jsxs)(`section`,{"data-split-pane":t,"data-split-slot":e,ref:t=>{A.current[e]=t},className:`x1n2onr6 x78zum5 xdt5ytf xeuugli x5yr21d`,children:[V&&(0,M.jsxs)(`header`,{className:`x78zum5 x6s0dn4 x167g77z xn3w4p2 x2lah0s x1c5z90z xso031l x1q0q8m5 xtrfj0v xqfszdh x4z9k3i xo2rkog`,children:[f&&(0,M.jsx)(`button`,{"aria-label":d(`split.back`),"data-split-action":`back`,type:`button`,onClick:rt,className:`xrvj5dj x1ku5rj1 xgd8bvy x1fgtraw x1717udv xc342km x1kogg8i xjbqb8w x1bo0w0s x1ypdohk xj0l527 xytdrwj`,children:(0,M.jsx)(p,{size:18})}),(0,M.jsx)(a,{size:15}),(0,M.jsx)(`span`,{className:`x1s688f xeuugli xb3r6kr xlyipyv xuxw1ft`,children:e===`main`?n:Xe}),(0,M.jsx)(`span`,{className:`x1j6dyjg xddlp02`,children:d(`split.${t}`)}),e===C&&Q.header?.activity?(0,M.jsx)(`span`,{className:`xeuugli xb3r6kr xlyipyv xuxw1ft x1qt5hsa x1bo0w0s`,children:Q.header.activity}):null,(0,M.jsx)(`span`,{className:`x98rzlu`}),e===C&&Q.header?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(b,{available:Q.header.history,comments:Q.header.comments,open:Q.header.historyOpen,onComments:()=>Q.history(`close`),onHistory:()=>Q.history(`toggle`)}),(0,M.jsx)(`span`,{className:`x1i1rx1s xlup9mm xh6qj2i`})]}):null,!f&&(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(`button`,{"aria-label":d(`split.swap`),"data-split-action":`swap`,title:d(`split.swap`),type:`button`,onClick:tt,className:`xrvj5dj x1ku5rj1 xgd8bvy x1fgtraw x1717udv xc342km x1kogg8i xjbqb8w x1bo0w0s x1ypdohk xj0l527 xytdrwj`,children:(0,M.jsx)(oe,{size:15})}),(0,M.jsx)(`button`,{"aria-label":d(`split.openAlone`),"data-split-action":`open-alone`,title:d(`split.openAlone`),type:`button`,onClick:()=>window.open(r.aloneHref(t,n),`_blank`,`noopener`),className:`xrvj5dj x1ku5rj1 xgd8bvy x1fgtraw x1717udv xc342km x1kogg8i xjbqb8w x1bo0w0s x1ypdohk xj0l527 xytdrwj`,children:(0,M.jsx)(S,{size:15})}),(0,M.jsx)(`button`,{"aria-label":d(`split.close`),"data-split-action":`close`,title:d(`split.close`),type:`button`,onClick:nt,className:`xrvj5dj x1ku5rj1 xgd8bvy x1fgtraw x1717udv xc342km x1kogg8i xjbqb8w x1bo0w0s x1ypdohk xj0l527 xytdrwj`,children:(0,M.jsx)(i,{size:15})})]})]}),(0,M.jsxs)(`div`,{className:`x1n2onr6 x98rzlu x2lwn1j`,children:[e===C&&(0,M.jsx)(se,{bar:X.bar,onStep:X.step}),(N.incoming?.slot===e?[y[e],N.incoming.pane]:[y[e]]).map((t,n,i)=>{let a=n>0,o=X.frame(e);return(0,M.jsx)(`iframe`,{allow:r.frameAllow,"data-split-frame":t.type,"data-split-pending":a?``:void 0,"data-split-slot":e,src:r.frameSrc(t.type,t.id),title:t.id,ref:n===i.length-1?e=>{o(e),a&&N.frame(e)}:void 0,onLoad:a?N.loaded:void 0,...{0:{className:`xh8yej3 x5yr21d xc342km x1lliihq`},2:{className:`xh8yej3 x5yr21d xc342km x1lliihq x47corl`},1:{className:`xh8yej3 x5yr21d xc342km x1lliihq x10l6tqk x10a8y8t xg01cxk x47corl`},3:{className:`xh8yej3 x5yr21d xc342km x1lliihq x10l6tqk x10a8y8t xg01cxk x47corl`}}[!!Ae<<1|!!a]},`${t.type}/${t.id}`)})]})]},e)}),V&&m&&!f&&(0,M.jsx)(`div`,{"aria-orientation":`vertical`,ref:Le,role:`separator`,onPointerMove:e=>Ae&&it(e),onPointerUp:()=>je(!1),onPointerDown:e=>{e.currentTarget.setPointerCapture(e.pointerId),je(!0)},className:`x9ek82g xrsdxou x1n2onr6 xh6qj2i xicojor x5ve5x3`,children:(0,M.jsx)(`span`,{className:`x10l6tqk x10no89f x1jsbkzl`})})]})}export{De as SplitShell};
|
|
1
|
+
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{y as t}from"./route-IxDJQ-oO.js";import{t as n}from"./react-B8SKf8RM.js";import{Jr as r,Kr as i,d as a,i as o,n as s,t as c,u as l}from"./split-url-DDv_DQdJ.js";import{t as u}from"./jsx-runtime-DePvh3-m.js";import{q as d}from"./MotionConfigContext-DBHtopYR.js";import{t as f}from"./chevron-down-MyXUwHqO.js";import{t as p}from"./chevron-left-B7WJAO5q.js";import{t as m}from"./chevron-up-BLztg0Iv.js";import{a as ee,c as h,d as g,i as _,l as v,n as te,o as ne,r as y,s as b,t as x,u as S}from"./route-messages-pcZcPdUb.js";import{t as C}from"./file-text-BwtMWDOY.js";import{t as w}from"./useTranslation-DGPvUY4J.js";import{a as T,i as E,n as D,t as O}from"./motion-Cy65kd7X.js";import{n as re,t as ie}from"./useMedia-B_wouzHa.js";import{r as ae}from"./type-icons-BugaK-eL.js";import{n as k}from"./ref-BCmtKUu8.js";var A={name:`arrow-left-right`,size:24,node:[[`path`,{d:`M8 3 4 7l4 4`,key:`9rb6wj`}],[`path`,{d:`M4 7h16`,key:`6tx8e3`}],[`path`,{d:`m16 21 4-4-4-4`,key:`siv7j2`}],[`path`,{d:`M20 17H4`,key:`h6l3hr`}]]};A.node;var oe=d(A),j=e(n(),1),M=u();function se({bar:e,onStep:t}){let{t:n}=w();return e?e.kind===`notice`?(0,M.jsxs)(`div`,{"data-split-notice":!0,role:`status`,className:`x10l6tqk xkpr539 x1nrll8i xuuh30 x1u8a7rm x78zum5 x6s0dn4 x17d4w8g x10w6t97 x1awh872 xur7f20 x12ilycc x1d5q07e xqfszdh xfifm61 x1bo0w0s xuxw1ft`,children:[(0,M.jsx)(r,{size:14}),(0,M.jsx)(`span`,{className:`x1fao0z8 xo2rkog`,children:e.key}),e.elsewhere?n(`split.elsewhere`,{document:e.elsewhere}):n(`split.unreferenced`)]}):(0,M.jsxs)(`div`,{"data-split-stepper":!0,className:`x10l6tqk xkpr539 x1nrll8i xuuh30 x1u8a7rm x78zum5 x6s0dn4 x17d4w8g x10w6t97 x1awh872 xur7f20 x12ilycc x1d5q07e xqfszdh xfifm61 x1bo0w0s xuxw1ft`,children:[(0,M.jsx)(`span`,{className:`x1fao0z8 xo2rkog`,children:e.key}),n(`split.position`,{index:e.index+1,total:e.total}),(0,M.jsx)(`button`,{"aria-label":n(`split.previous`),type:`button`,onClick:()=>t(-1),className:`xrvj5dj x1ku5rj1 x17z2i9w x17rw0jw x1717udv xc342km x1sxf85j xjbqb8w x1bo0w0s x1ypdohk xj0l527`,children:(0,M.jsx)(m,{size:14})}),(0,M.jsx)(`button`,{"aria-label":n(`split.next`),type:`button`,onClick:()=>t(1),className:`xrvj5dj x1ku5rj1 x17z2i9w x17rw0jw x1717udv xc342km x1sxf85j xjbqb8w x1bo0w0s x1ypdohk xj0l527`,children:(0,M.jsx)(f,{size:14})})]}):null}function ce(e){let[t,n]=(0,j.useState)(null),r=(0,j.useRef)(null),i=(0,j.useRef)(e);return i.current=e,(0,j.useEffect)(()=>l((e,t)=>{let o=i.current();if(e.kind!==`header`||!o||t!==o)return;let{activity:s,comments:c,history:l,historyOpen:u}=e;n({activity:s,comments:c,history:l,historyOpen:u}),a(o,{kind:`chrome`,hosted:!!r.current})}),[]),{header:t,history:e=>a(i.current(),{kind:`history`,action:e}),host:e=>{r.current!==e&&(r.current=e,a(i.current(),{kind:`chrome`,hosted:e}))}}}var N=e(t(),1),P=280,F=2500,I=5e3,le=e=>requestAnimationFrame(()=>requestAnimationFrame(e));function L(e,t){let n=document.documentElement,r={duration:P,fill:`both`};n.animate([{opacity:0,transform:`translateX(${48*t}px)`},{opacity:1,transform:`none`}],{...r,easing:O,pseudoElement:`::view-transition-new(${e})`}),n.animate([{opacity:1,transform:`none`},{opacity:0,transform:`translateX(${-24*t}px)`}],{...r,easing:D,pseudoElement:`::view-transition-old(${e})`}),n.animate([{clipPath:`inset(0)`},{clipPath:`inset(0)`}],{...r,pseudoElement:`::view-transition-group(${e})`})}function ue({apply:e,section:t,animate:n}){let[r,i]=(0,j.useState)(null),a=(0,j.useRef)(r),o=(0,j.useRef)(null),s=(0,j.useRef)(void 0),c=(0,j.useRef)({apply:e,section:t,animate:n});c.current={apply:e,section:t,animate:n};let u=e=>{if(a.current!==e)return;a.current=null,clearTimeout(s.current);let t=()=>(0,N.flushSync)(()=>{i(null),c.current.apply(e)});if(!document.startViewTransition||!c.current.animate()||T())return t();let n=c.current.section(e.slot),r=`split-${e.slot}`;n&&(n.style.viewTransitionName=r);let o=document.startViewTransition(t),l=()=>{n&&(n.style.viewTransitionName=``)};o.ready.then(()=>L(r,e.enter),l),o.finished.then(l,l)},d=(0,j.useRef)(u);return d.current=u,(0,j.useEffect)(()=>{if(!r)return;let e=setTimeout(()=>d.current(r),I),t=l((e,t)=>{e.kind===`painted`&&t&&t===o.current?.contentWindow&&d.current(r)});return()=>{clearTimeout(e),clearTimeout(s.current),t()}},[r]),{incoming:r,stage:e=>{let t=a.current;t&&t.slot!==e.slot&&c.current.apply(t),a.current=e,i(e)},frame:e=>{o.current=e},loaded:()=>{let e=a.current;e&&(e.pane.type===`html`?le(()=>d.current(e)):s.current=setTimeout(()=>d.current(e),F))}}}var R=[`main`,`side`],z=e=>e===`main`?`side`:`main`,B=({type:e,id:t})=>({type:e,id:t});function de(e,t){let n=(0,j.useRef)(null),r=(0,j.useRef)(new WeakSet),i=(0,j.useRef)(``),o=(0,j.useRef)(t);o.current=t;let s=(0,j.useRef)(e);s.current=e;let c=e=>{let t=n.current,i=s.current(e);if(!t||!i||!r.current.has(i))return;let o=t.panes[z(e)];a(i,{kind:`split-role`,role:e===t.primary?`primary`:`beside`,other:t.open&&o.id?B(o):null})};return(0,j.useEffect)(()=>l((e,t)=>{if(e.kind!==`want-role`)return;let n=R.find(e=>s.current(e)===t);n&&t&&(r.current.add(t),c(n))}),[]),(e,t,r)=>{n.current={panes:e,primary:t,open:r};for(let e of R)(r||e===t)&&c(e);let a=e[z(t)],s={primary:B(e[t]),beside:r&&a.id?B(a):null},l=JSON.stringify(s);l!==i.current&&(i.current=l,o.current?.(s))}}var V=[`main`,`side`],H=e=>e===`main`?`side`:`main`;function fe({artboard:e,side:t,document:n,panes:r,slotOfType:i,focus:o,host:s,show:u,navigate:d,replace:f}){let p=(0,j.useRef)({main:null,side:null}),m=(0,j.useRef)(r);m.current=r;let h=(0,j.useRef)(i);h.current=i;let g=(0,j.useRef)({artboard:e,side:t,document:n,backlinks:null,cursor:null,groups:[]}),[_,v]=(0,j.useState)(null),b=(0,j.useRef)(u);b.current=u;let S=(0,j.useRef)(d);S.current=d;let C=(0,j.useRef)(f);C.current=f;let[w,T]=(0,j.useState)(0),E=(0,j.useRef)(null);(0,j.useEffect)(()=>{(g.current.artboard!==e||g.current.side!==t)&&(E.current=null),g.current.artboard=e,g.current.side=t,g.current.document=n},[e,t,n]),(0,j.useEffect)(()=>{if(e&&s.onArtboardChange)return s.onArtboardChange(e,()=>T(e=>e+1),t)},[e,t,s]),(0,j.useEffect)(()=>{if(g.current.backlinks=null,g.current.groups=[],!e)return;let n=!1;return s.loadLinks(e,t).then(e=>{!n&&e&&(g.current.backlinks=e.backlinks,g.current.groups=e.groups)}),()=>{n=!0}},[e,t,s,w]);let D=({cursor:e,effects:t},n=!1)=>{g.current.cursor=e;for(let e of t)if(`to`in e){let t=h.current(e.to);if(!t)continue;let{message:r}=e,i=n&&r.kind===`scroll-to`;if(i&&!p.current[t]){let e=r.key.slice(g.current.artboard.length+1);Object.assign(o,{group:void 0,board:void 0,frame:void 0,page:void 0},x(g.current,e))}(r.kind===`focus`||i)&&b.current(t),a(p.current[t]?.contentWindow,e.message)}else if(`navigate`in e)v(null),S.current(e.navigate);else if(`notice`in e)v({kind:`notice`,...e.notice});else if(`stepper`in e)v(e.stepper.total>1?{kind:`stepper`,...e.stepper}:null);else if(`url`in e){Object.assign(o,{group:e.url.group,board:e.url.board,frame:e.url.frame,page:e.url.page});let t=new URLSearchParams(location.search);for(let e of[`group`,`board`,`frame`,`wbpage`])t.delete(e);e.url.frame?t.set(`frame`,e.url.frame):e.url.page?t.set(`wbpage`,e.url.page):e.url.group?t.set(`group`,e.url.group):e.url.board&&t.set(`board`,e.url.board);let n=t.toString();history.replaceState(history.state,``,`${location.pathname}${n?`?${n}`:``}`),v(null)}};return(0,j.useEffect)(()=>l((e,t)=>{let n=V.find(e=>p.current[e]?.contentWindow===t);if(!n)return;let r=m.current,i=r[n].type,l=!!g.current.artboard&&!!g.current.document;if(e.kind===`ref-open`){let t=r[H(n)],a=s.refId(e.target),o=k(e.target);if(!a)return;let u=r[n];if(u.id===a&&u.type===o)return;let d=t.id===a&&t.type===o;if(!(l&&i===`document`&&c(o)&&(n===`main`||d))){if(d)return;v(null),C.current(H(n),{type:o,id:a},ne(e.target));return}}if(l||e.kind===`open-doc`){if(e.kind===`ready`){if(!g.current.artboard||!g.current.document)return;let e=p.current[n]?.contentWindow;for(let t of te(i,g.current.artboard,o))a(e,t);i===`document`&&E.current&&a(e,{kind:`board`,artboard:g.current.artboard,board:E.current})}else e.kind===`board-state`&&(E.current=e.board),D(y(i,e,g.current,s),e.kind===`open-doc`)}}),[]),{bar:_,frame:e=>t=>{p.current[e]=t},step:e=>D(ee(g.current,e)),window:e=>p.current[e]?.contentWindow}}var U=[`main`,`side`],W=`ryugiSplitPanes`,pe=(e,t)=>e.type===t.type&&e.id===t.id,me=e=>{let t=U.find(t=>c(e[t].type)&&e[G(t)].type===`document`);return{boardSlot:t,docSlot:t?G(t):U.find(t=>e[t].type===`document`)??null,slotOfType:t=>U.find(n=>e[n].type===t)}},G=e=>e===`main`?`side`:`main`,he={document:C,artboard:v,whiteboard:h,html:g},K=(e,t)=>{let n=t?.kind;return e===`document`?n??`artboard`:n===`document`||n===`html`?n:`document`},ge=.25,_e=.75,ve={position:`absolute`,visibility:`hidden`},ye=240,be=180,xe=320,Se=[{opacity:0,transform:`translateX(48px)`},{opacity:1,transform:`none`}],Ce=[{opacity:1,transform:`none`},{opacity:0,transform:`translateX(48px)`}],we=[{transform:`translateX(100%)`},{transform:`none`}],Te=[{transform:`none`},{transform:`translateX(100%)`}];function Ee(e,t){let[n,r]=(0,j.useState)(null);return(0,j.useEffect)(()=>{if(!t||!e.title)return;let n=!1;return e.title(t).then(e=>{!n&&e&&r({id:t,text:e})}),()=>{n=!0}},[e,t]),n?.id===t?n.text:t}function De({type:e,id:t,split:n,host:r,fill:c=!1,onPanes:u}){let{t:d}=w(),f=re(ie),[m,ee]=(0,j.useState)(n?.with??``),[h]=(0,j.useState)(()=>({type:e,id:t})),[g,v]=(0,j.useState)(h),[te,ne]=(0,j.useState)(()=>K(g.type,n)),y={main:g,side:{type:te,id:m}},x=(0,j.useRef)(y);x.current=y;let{docSlot:C}=me(y),k=(0,j.useRef)(f);k.current=f;let A=(0,j.useRef)({main:null,side:null}),N=ue({animate:()=>!k.current,section:e=>A.current[e],apply:e=>{Z({...x.current,[e.slot]:e.pane}),q(e.slot)}}),P=N.incoming?{...y,[N.incoming.slot]:N.incoming.pane}:y,{boardSlot:F,slotOfType:I}=me(P),le=(0,j.useRef)(I);le.current=I;let L=(0,j.useRef)({group:n?.group,board:n?.board,frame:n?.frame,page:n?.page}).current,R=(0,j.useRef)(`main`),[z,B]=(0,j.useState)(`main`),[V,H]=(0,j.useState)(!!n),[De,q]=(0,j.useState)(`side`),[Oe,ke]=(0,j.useState)(.58),[Ae,je]=(0,j.useState)(!1),Me=(0,j.useRef)(null),J=(0,j.useRef)(0),Y=(0,j.useRef)(0),Ne=(0,j.useRef)(null),Pe=(0,j.useRef)(V),Fe=(0,j.useRef)([]),Ie=(0,j.useRef)({}),Le=(0,j.useRef)(null),Re=(0,j.useRef)(!1),ze=(0,j.useRef)(null),X=fe({artboard:F?P[F].id:``,side:F?P[F].type:`artboard`,document:F?P[G(F)].id:``,panes:P,slotOfType:I,focus:L,host:r,show:e=>{q(e),!V&&(H(!0),$(R.current,!0))},navigate:e=>{let t=new URL(e,location.href),n=s(t.search),i=y[R.current],a=r.path(i.type,i.id);t.pathname!==a||!n||R.current!==`main`?location.assign(e):(We(),Ke(n),Ge({...y,side:{type:K(g.type,n),id:n.with}},Be(`side`)))},replace:(e,t,n)=>{We();let r=e!==R.current;Object.assign(L,{group:r?n.group:void 0,board:r?n.board:void 0,frame:r?n.frame:void 0,page:r?n.page:void 0}),Ge({...P,[e]:t},Be(e)),Ve(e,t,Be(e))}}),Be=e=>e===R.current?1:-1,Ve=(e,t,n)=>{V&&y[e].id&&!pe(y[e],t)?N.stage({slot:e,pane:t,enter:n}):(Z({...y,[e]:t}),q(e))},He=(0,j.useRef)(Ve);He.current=Ve;let Z=e=>{v(e.main),ne(e.side.type),ee(e.side.id),H(!0)},Ue=(e,t,n,r)=>({...e,focus:{...L},open:t,seq:n,enter:r}),We=()=>{let e=history.state;e?.[W]||(J.current=0,Y.current=0,history.replaceState({...e,[W]:Ue(y,V,0,0)},``))},Ge=(e,t)=>{J.current+=1,Y.current=t;let n=e[R.current],i=e[G(R.current)],a=y[R.current],s=n.type===a.type&&n.id===a.id?location.pathname:r.path(n.type,n.id);history.pushState({...history.state,[W]:Ue(e,!0,J.current,t)},``,`${s}${o(location.search,_(i.id,i.type,L,n.type))}`)},Ke=e=>{Object.assign(L,{group:e.group,board:e.board,frame:e.frame,page:e.page}),ne(K(g.type,e)),ee(e.with),H(!0),q(`side`)},qe=(0,j.useRef)(Ke);qe.current=Ke;let Je=(0,j.useRef)(()=>{});Je.current=()=>{R.current=`main`,B(`main`),H(!1)};let Ye=(0,j.useRef)(Z);Ye.current=Z,(0,j.useEffect)(()=>{let e=()=>{let e=history.state?.[W];if(e){let t=e.seq<J.current?-Y.current:e.enter;J.current=e.seq,Y.current=e.enter,Object.assign(L,e.focus);let n=U.filter(t=>!pe(e[t],x.current[t]));if(e.open&&n.length===1){He.current(n[0],e[n[0]],t||1);return}Ye.current(e),e.open||Je.current();return}if(location.pathname!==r.path(h.type,h.id))return;v(h);let t=s(location.search);t?qe.current(t):Je.current()};return window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)},[r,h,L]);let Xe=Ee(r,m),Q=ce(()=>C?X.window(C):null),Ze=de(e=>X.window(e),u),Qe=()=>{let e=R.current,t=V?f?De:null:e;for(let n of U){let r=A.current[n];if(!r)continue;let i=n===e?`primary`:`secondary`;r.dataset.role=i,r.style.order=i===`primary`?`0`:`2`;let a=ze.current,o=a?.slot===n;r.style.flex=!V||f||a?`1 1 auto`:i===`primary`?`0 0 ${Oe*100}%`:`1 1 0`;let s=t!==null&&t!==n;r.style.position=s||o?ve.position:``,r.style.inset=s?`0`:o?`0 0 0 auto`:``,r.style.width=o?`${a.width}px`:``,r.style.zIndex=o?`1`:``,r.style.visibility=s?ve.visibility:``;let c=r.querySelector(`:scope > header`);c&&(c.style.display=i===`primary`?`none`:``)}let n=Ie.current[e];n&&(document.title=n);let r=document.querySelector(`link[rel="icon"]`);r&&(r.href=ae(y[e].type));let i=V&&!f&&y[e].type!==`document`;Re.current=V&&!f&&y[e].type===`document`;let o=I(`whiteboard`);return o&&a(X.window(o),{kind:`chrome`,hosted:Re.current}),C&&A.current[C]?.style.setProperty(`--split-notice-top`,i?`49px`:``),Q.host(i),Ze(y,e,V),t};(0,j.useEffect)(()=>l((e,t)=>{let n=le.current(`whiteboard`);if(e.kind===`ready`&&t&&n&&t===X.window(n)&&a(X.window(n),{kind:`chrome`,hosted:Re.current}),e.kind!==`title`)return;let r=U.find(e=>X.window(e)===t);r&&(Ie.current[r]=e.title,r===R.current&&(document.title=e.title))}),[]);let $e=()=>void Me.current?.offsetWidth;(0,j.useLayoutEffect)(()=>{for(let e of Fe.current.splice(0))e.cancel();let e=Qe(),t=Pe.current,n=Ne.current;if(Pe.current=V,Ne.current=e,T())return;let r=A.current[G(R.current)];if(V&&!t&&!f)$e(),E(r,Se,{duration:ye,easing:O});else if(f&&e&&n&&e!==n&&e!==R.current){let t=A.current[n];t&&(t.style.visibility=``),E(A.current[e],we,{duration:ye,easing:O}).then(()=>{t&&Ne.current!==n&&(t.style.visibility=`hidden`)})}});let $=(e,t)=>{let n=y[G(e)],i=o(location.search,t?_(n.id,n.type,L,y[e].type):null);history.replaceState(history.state,``,`${r.path(y[e].type,y[e].id)}${i}`)},et=async(e,t,n)=>{if(!e||T())return n();let r=e.animate(t,{duration:be,easing:D,fill:`forwards`});await r.finished.catch(()=>void 0),Fe.current.push(r),n()},tt=()=>{let e=U.map(e=>A.current[e]?.getBoundingClientRect().left??0);R.current=G(R.current),Qe(),$(R.current,!0),!T()&&U.forEach((t,n)=>{let r=A.current[t],i=e[n]-(r?.getBoundingClientRect().left??0);r&&i&&E(r,[{transform:`translateX(${i}px)`},{transform:`none`}],{duration:xe,easing:O})})},nt=()=>{let e=R.current;$(e,!1);let t=A.current[e],n=A.current[G(e)],r=()=>{ze.current=null,B(e),H(!1)};if(!t||!n||f||T())return r();ze.current={slot:G(e),width:n.getBoundingClientRect().width},Le.current&&(Le.current.style.display=`none`),Qe(),$e(),n.animate(Ce,{duration:be,easing:D,fill:`forwards`}).finished.catch(()=>void 0).then(r)},rt=()=>{let e=A.current[De],t=A.current[R.current];t&&e&&!T()&&(t.style.visibility=``,e.style.zIndex=`1`),et(e,Te,()=>{e&&(e.style.zIndex=``),q(R.current)})},it=e=>{let t=Me.current?.getBoundingClientRect();if(!t?.width)return;let n=(e.clientX-t.left)/t.width;ke(Math.min(_e,Math.max(ge,n)))};return(0,M.jsxs)(`div`,{ref:Me,...{0:{className:`x1n2onr6 x78zum5 xn9wirt xtdtrs8 xb3r6kr`},1:{className:`x1n2onr6 x78zum5 xb3r6kr xh8yej3 x5yr21d`}}[!!c|0],children:[U.map(e=>{let{type:t,id:n}=y[e];if(!n||!V&&e!==z)return null;let a=he[t];return(0,M.jsxs)(`section`,{"data-split-pane":t,"data-split-slot":e,ref:t=>{A.current[e]=t},className:`x1n2onr6 x78zum5 xdt5ytf xeuugli x5yr21d`,children:[V&&(0,M.jsxs)(`header`,{className:`x78zum5 x6s0dn4 x167g77z xn3w4p2 x2lah0s x1c5z90z xso031l x1q0q8m5 xtrfj0v xqfszdh x4z9k3i xo2rkog`,children:[f&&(0,M.jsx)(`button`,{"aria-label":d(`split.back`),"data-split-action":`back`,type:`button`,onClick:rt,className:`xrvj5dj x1ku5rj1 xgd8bvy x1fgtraw x1717udv xc342km x1kogg8i xjbqb8w x1bo0w0s x1ypdohk xj0l527 xytdrwj`,children:(0,M.jsx)(p,{size:18})}),(0,M.jsx)(a,{size:15}),(0,M.jsx)(`span`,{className:`x1s688f xeuugli xb3r6kr xlyipyv xuxw1ft`,children:e===`main`?n:Xe}),(0,M.jsx)(`span`,{className:`x1j6dyjg xddlp02`,children:d(`split.${t}`)}),e===C&&Q.header?.activity?(0,M.jsx)(`span`,{className:`xeuugli xb3r6kr xlyipyv xuxw1ft x1qt5hsa x1bo0w0s`,children:Q.header.activity}):null,(0,M.jsx)(`span`,{className:`x98rzlu`}),e===C&&Q.header?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(b,{available:Q.header.history,comments:Q.header.comments,open:Q.header.historyOpen,onComments:()=>Q.history(`close`),onHistory:()=>Q.history(`toggle`)}),(0,M.jsx)(`span`,{className:`x1i1rx1s xlup9mm xh6qj2i`})]}):null,!f&&(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(`button`,{"aria-label":d(`split.swap`),"data-split-action":`swap`,title:d(`split.swap`),type:`button`,onClick:tt,className:`xrvj5dj x1ku5rj1 xgd8bvy x1fgtraw x1717udv xc342km x1kogg8i xjbqb8w x1bo0w0s x1ypdohk xj0l527 xytdrwj`,children:(0,M.jsx)(oe,{size:15})}),(0,M.jsx)(`button`,{"aria-label":d(`split.openAlone`),"data-split-action":`open-alone`,title:d(`split.openAlone`),type:`button`,onClick:()=>window.open(r.aloneHref(t,n),`_blank`,`noopener`),className:`xrvj5dj x1ku5rj1 xgd8bvy x1fgtraw x1717udv xc342km x1kogg8i xjbqb8w x1bo0w0s x1ypdohk xj0l527 xytdrwj`,children:(0,M.jsx)(S,{size:15})}),(0,M.jsx)(`button`,{"aria-label":d(`split.close`),"data-split-action":`close`,title:d(`split.close`),type:`button`,onClick:nt,className:`xrvj5dj x1ku5rj1 xgd8bvy x1fgtraw x1717udv xc342km x1kogg8i xjbqb8w x1bo0w0s x1ypdohk xj0l527 xytdrwj`,children:(0,M.jsx)(i,{size:15})})]})]}),(0,M.jsxs)(`div`,{className:`x1n2onr6 x98rzlu x2lwn1j`,children:[e===C&&(0,M.jsx)(se,{bar:X.bar,onStep:X.step}),(N.incoming?.slot===e?[y[e],N.incoming.pane]:[y[e]]).map((t,n,i)=>{let a=n>0,o=X.frame(e);return(0,M.jsx)(`iframe`,{allow:r.frameAllow,"data-split-frame":t.type,"data-split-pending":a?``:void 0,"data-split-slot":e,src:r.frameSrc(t.type,t.id),title:t.id,ref:n===i.length-1?e=>{o(e),a&&N.frame(e)}:void 0,onLoad:a?N.loaded:void 0,...{0:{className:`xh8yej3 x5yr21d xc342km x1lliihq`},2:{className:`xh8yej3 x5yr21d xc342km x1lliihq x47corl`},1:{className:`xh8yej3 x5yr21d xc342km x1lliihq x10l6tqk x10a8y8t xg01cxk x47corl`},3:{className:`xh8yej3 x5yr21d xc342km x1lliihq x10l6tqk x10a8y8t xg01cxk x47corl`}}[!!Ae<<1|!!a]},`${t.type}/${t.id}`)})]})]},e)}),V&&m&&!f&&(0,M.jsx)(`div`,{"aria-orientation":`vertical`,ref:Le,role:`separator`,onPointerMove:e=>Ae&&it(e),onPointerUp:()=>je(!1),onPointerDown:e=>{e.currentTarget.setPointerCapture(e.pointerId),je(!0)},className:`x9ek82g xrsdxou x1n2onr6 xh6qj2i xicojor x5ve5x3`,children:(0,M.jsx)(`span`,{className:`x10l6tqk x10no89f x1jsbkzl`})})]})}export{De as SplitShell};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{s as t}from"./route-IxDJQ-oO.js";import{t as n}from"./react-B8SKf8RM.js";import{
|
|
1
|
+
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{s as t}from"./route-IxDJQ-oO.js";import{t as n}from"./react-B8SKf8RM.js";import{Kr as r}from"./split-url-DDv_DQdJ.js";import{t as i}from"./jsx-runtime-DePvh3-m.js";import{q as a}from"./MotionConfigContext-DBHtopYR.js";import{b as o}from"./useOpenInteractionType-BK_FRxTI.js";import{t as s}from"./useTranslation-DGPvUY4J.js";import{r as c}from"./agentLook-nPOaN-2B.js";import{n as l,o as u,t as d}from"./Avatar-oPUFOoVq.js";var f={name:`ellipsis`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`19`,cy:`12`,r:`1`,key:`1wjl8i`}],[`circle`,{cx:`5`,cy:`12`,r:`1`,key:`1pcz8c`}]],aliases:[`more-horizontal`]};f.node;var p=a(f),m={name:`frame`,size:24,node:[[`line`,{x1:`22`,x2:`2`,y1:`6`,y2:`6`,key:`15w7dq`}],[`line`,{x1:`22`,x2:`2`,y1:`18`,y2:`18`,key:`1ip48p`}],[`line`,{x1:`6`,x2:`6`,y1:`2`,y2:`22`,key:`a2lnyx`}],[`line`,{x1:`18`,x2:`18`,y1:`2`,y2:`22`,key:`8vb6jd`}]]};m.node;var h=a(m),g={name:`layers`,size:24,node:[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]],aliases:[`layers-3`]};g.node;var _=a(g),v={name:`rotate-ccw`,size:24,node:[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]};v.node;var y=a(v),b={name:`type`,size:24,node:[[`path`,{d:`M12 4v16`,key:`1654pz`}],[`path`,{d:`M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2`,key:`e0r10z`}],[`path`,{d:`M9 20h6`,key:`s66wpe`}]]};b.node;var x=a(b),S=e(n(),1),C=i(),w=e=>new Date(e).toLocaleTimeString(t.language,{hour:`2-digit`,minute:`2-digit`});function T({message:e,onEdit:t,onDelete:n}){let{t:r}=s(),[i,a]=(0,S.useState)(!1),o=e.author===`human`,{label:u,initial:f}=c(e);return(0,C.jsxs)(`div`,{className:`x14vqqas x14l7nz5`,children:[(0,C.jsxs)(`div`,{className:`x78zum5 x6s0dn4 x1j9xkj6 x1j6dyjg x1s688f xjpr12u`,children:[(0,C.jsx)(d,{human:o,initial:f,name:e.name,src:e.avatar}),u,` `,(0,C.jsx)(`span`,{className:`xc7n51q xo1l8bm`,children:w(e.editedAt??e.at)}),o&&t&&n&&!e.deleted&&!i?(0,C.jsxs)(`span`,{className:`xvc5jky x78zum5 x17d4w8g`,children:[(0,C.jsx)(`button`,{type:`button`,onClick:()=>a(!0),className:`x1717udv xc342km xjbqb8w xddlp02 xytdrwj x1j6dyjg x1ypdohk`,children:r(`common.edit`)}),(0,C.jsx)(`button`,{type:`button`,onClick:n,className:`x1717udv xc342km xjbqb8w xddlp02 xytdrwj x1j6dyjg x1ypdohk`,children:r(`common.delete`)})]}):null]}),e.deleted?(0,C.jsx)(`div`,{className:`xc7n51q x1k4tb9n`,children:r(`common.deleted`)}):i?(0,C.jsx)(l,{autoFocus:!0,initial:e.text,placeholder:``,onCancel:()=>a(!1),onSubmit:e=>(t?.(e),a(!1))}):(0,C.jsx)(`div`,{className:`x126k92a xj0a0fe`,children:e.text})]})}function E({thread:e,agent:n=`Agent`}){let r=u(e);return r===`human`?(0,C.jsx)(`span`,{className:`x2lah0s xsplgde xdqyycr x1e6avla x1k6wstc xqdcvd7 x7zghnd`,children:t.t(`comments.waitingYou`)}):r===`agent`?(0,C.jsx)(`span`,{title:t.t(`comments.agentReadsNext`,{agent:n}),className:`x2lah0s xsplgde xdqyycr x1e6avla x1k6wstc xlssvyo x19ay2w6`,children:t.t(`comments.waitingAgent`,{agent:n})}):null}function D({thread:e,actions:t}){return(0,C.jsx)(`div`,{className:`xp59q4u xqin4a2`,children:e.messages.map(n=>(0,C.jsx)(T,{message:n,onDelete:t&&(()=>t.remove(e.id,n.id)),onEdit:t&&(r=>t.edit(e.id,n.id,r))},n.id))})}function O({thread:e,label:t,actions:n,agent:i,onClose:a}){let{t:c}=s(),u=e.status===`resolved`;return(0,C.jsxs)(`div`,{className:`xqfszdh xfifm61 x1dbl2gt xo2rkog xt0e3qv`,children:[(0,C.jsxs)(`div`,{className:`x78zum5 x6s0dn4 x167g77z x889kno xqin4a2 x1j6dyjg`,children:[(0,C.jsx)(`span`,{className:`x98rzlu xeuugli xb3r6kr xuxw1ft xlyipyv xddlp02`,children:t}),n?(0,C.jsx)(E,{agent:i,thread:e}):null,n?u?(0,C.jsx)(`button`,{title:c(`common.reopen`),type:`button`,onClick:()=>n.reopen(e.id),className:`x2lah0s x17z2i9w x17rw0jw xrvj5dj x1ku5rj1 x1717udv xc342km x1kogg8i xjbqb8w xj0l527 xddlp02 xytdrwj xfifm61 x1ypdohk`,children:(0,C.jsx)(y,{size:13,strokeWidth:2.2})}):(0,C.jsx)(`button`,{title:c(`common.markResolved`),type:`button`,onClick:()=>n.resolve(e.id),className:`x2lah0s x17z2i9w x17rw0jw xrvj5dj x1ku5rj1 x1717udv xc342km x1kogg8i xjbqb8w xj0l527 xddlp02 xytdrwj xfifm61 x1ypdohk`,children:(0,C.jsx)(o,{size:14,strokeWidth:2.4})}):null,a?(0,C.jsx)(`button`,{title:c(`common.close`),type:`button`,onClick:a,className:`x2lah0s x17z2i9w x17rw0jw xrvj5dj x1ku5rj1 x1717udv xc342km x1kogg8i xjbqb8w xj0l527 xddlp02 xytdrwj xfifm61 x1ypdohk`,children:(0,C.jsx)(r,{size:13,strokeWidth:2.2})}):null]}),(0,C.jsx)(D,{actions:n,thread:e}),n&&!u?(0,C.jsx)(l,{placeholder:c(`common.reply`),onCancel:a,onSubmit:t=>n.reply(e.id,t)}):null]})}export{y as a,p as c,x as i,O as n,_ as o,E as r,h as s,D as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{t}from"./react-B8SKf8RM.js";import{$r as n,$t as r,Ai as i,Cr as a,Ei as o,Fr as s,Hi as c,Ir as l,Ji as u,Jt as d,Lt as f,Qi as p,Qr as m,Sr as h,Yi as g,Yr as _,Yt as v,Zt as y,aa as b,cn as x,da as S,di as C,dn as w,dr as T,ea as E,ei as D,en as O,ha as k,hn as A,ia as j,kn as M,la as N,ln as ee,lr as te,ma as P,nn as F,on as I,pa as ne,pr as re,sn as L,ti as R,tn as z,ui as ie,wr as ae,xr as oe}from"./split-url-DDv_DQdJ.js";import{t as B}from"./jsx-runtime-DePvh3-m.js";import{q as V}from"./MotionConfigContext-DBHtopYR.js";import{a as H,g as se,h as U,m as ce,o as W,p as le,s as G,v as K}from"./useOpenInteractionType-BK_FRxTI.js";import{g as ue}from"./Popover-BKx9uy8c.js";import{a as de,o as fe}from"./parseTrigger-CDKivKrD.js";var q={name:`arrow-left`,size:24,node:[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]};q.node;var pe=V(q),J={name:`arrow-right-to-line`,size:24,node:[[`path`,{d:`M17 12H3`,key:`8awo09`}],[`path`,{d:`m11 18 6-6-6-6`,key:`8c2y43`}],[`path`,{d:`M21 5v14`,key:`nzette`}]]};J.node;var me=V(J),he={name:`arrow-right`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]};he.node;var ge=V(he),_e={name:`copy`,size:24,node:[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]};_e.node;var ve=V(_e),ye={name:`delete`,size:24,node:[[`path`,{d:`M10 5a2 2 0 0 0-1.344.519l-6.328 5.74a1 1 0 0 0 0 1.481l6.328 5.741A2 2 0 0 0 10 19h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2z`,key:`1yo7s0`}],[`path`,{d:`m12 9 6 6`,key:`anjzzh`}],[`path`,{d:`m18 9-6 6`,key:`1fp51s`}]]};ye.node;var be=V(ye),xe={name:`globe`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]};xe.node;var Se=V(xe),Ce={name:`link-2`,size:24,node:[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]};Ce.node;var we=V(Ce),Te={name:`link`,size:24,node:[[`path`,{d:`M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71`,key:`1cjeqo`}],[`path`,{d:`M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71`,key:`19qd67`}]]};Te.node;var Ee=V(Te),De={name:`lock`,size:24,node:[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`,key:`1w4ew1`}],[`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`,key:`fwvmzm`}]]};De.node;var Oe=V(De),ke={name:`minus`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]};ke.node;var Ae=V(ke),Y=B(),X=e(t(),1),je=X.createContext(void 0);function Z(e){let t=X.useContext(je);if(t===void 0&&!e)throw Error(N(72));return t}var Me=X.createContext({hasProvider:!1,timeoutMs:0,delayRef:{current:0},initialDelayRef:{current:0},timeout:new n,currentIdRef:{current:null},currentContextRef:{current:null}});function Ne(e,t){e.current=t.current}function Pe(e){let{children:t,delay:n,timeoutMs:r=0}=e,i=X.useRef(n),a=X.useRef(n),o=X.useRef(null),s=X.useRef(null),c=D();return S(()=>{a.current=n,o.current?i.current={open:K(i.current,`open`),close:K(n,`close`)}:i.current=n},[n,o,i,a]),(0,Y.jsx)(Me.Provider,{value:X.useMemo(()=>({hasProvider:!0,delayRef:i,initialDelayRef:a,currentIdRef:o,timeoutMs:r,currentContextRef:s,timeout:c}),[r,c]),children:t})}function Fe(e,t={open:!1}){let{open:n}=t,r=e.useState(`floatingId`),{currentIdRef:i,delayRef:a,timeoutMs:o,initialDelayRef:s,currentContextRef:l,hasProvider:u,timeout:d}=X.useContext(Me),[f,m]=X.useState(!1),h=X.useRef(n);return S(()=>{h.current=n},[n]),S(()=>{function t(){l.current?.setIsInstantPhase(!1),i.current=null,l.current=null,a.current=s.current,d.clear()}if(i.current&&!n&&i.current===r){if(m(!1),o){let n=r;return d.start(o,()=>{e.select(`open`)||i.current&&i.current!==n||t()}),()=>{(h.current||i.current!==n)&&d.clear()}}t()}},[n,r,i,a,o,s,l,d,e]),S(()=>{if(!n)return;let t=l.current,o=i.current;d.clear(),l.current={onOpenChange:e.setOpen,setIsInstantPhase:m},i.current=r,a.current={open:0,close:K(s.current,`close`)},o!==null&&o!==r?(m(!0),t?.setIsInstantPhase(!0),t?.onOpenChange(!1,p(c))):(m(!1),t?.setIsInstantPhase(!1))},[n,r,e,i,a,s,l,d]),S(()=>()=>{if(i.current===r){if(l.current=null,!h.current)return;i.current=null,Ne(a,s),d.clear()}},[l,i,a,r,s,d]),X.useMemo(()=>({activeIdRef:i,hasProvider:u,delayRef:a,isInstantPhase:f}),[i,u,a,f])}function Ie(e,t){let n=null,r=null,i=!1;return{contextElement:e||void 0,getBoundingClientRect(){let a=e?.getBoundingClientRect()||{width:0,height:0,x:0,y:0},o=t.axis===`x`||t.axis===`both`,s=t.axis===`y`||t.axis===`both`,c=[`mouseenter`,`mousemove`].includes(t.dataRef.current.openEvent?.type||``)&&t.pointerType!==`touch`,l=t.axis===`y`?a.width:0,u=t.axis===`x`?a.height:0,d=a.x,f=a.y;return n==null&&t.x&&o&&(n=a.x-t.x),r==null&&t.y&&s&&(r=a.y-t.y),d-=n||0,f-=r||0,(!i||c)&&(d=o&&t.x!=null?t.x:d,f=s&&t.y!=null?t.y:f),i=!0,{width:l,height:u,x:d,y:f,top:f,right:d+l,bottom:f+u,left:d}}}}function Le(e){return e!=null&&e.clientX!=null}function Re(e,t={}){let{enabled:n=!0,axis:r=`both`}=t,i=e.useState(`open`),o=e.useState(`floatingElement`),s=e.useState(`domReferenceElement`),c=e.context.dataRef,l=X.useRef(!1),u=X.useRef(null),[d,f]=X.useState(),[p,m]=X.useState([]),g=k(t=>{e.set(`positionReference`,t)}),_=k((t,n,i)=>{l.current||(!c.current.openEvent||Le(c.current.openEvent))&&e.set(`positionReference`,Ie(i??s,{x:t,y:n,axis:r,dataRef:c,pointerType:d}))}),v=k(e=>{i?u.current||(_(e.clientX,e.clientY,e.currentTarget),m([])):_(e.clientX,e.clientY,e.currentTarget)}),y=ae(d)?o:i;X.useEffect(()=>{if(!n){g(s);return}if(!y)return;function e(){u.current?.(),u.current=null}let t=ie(o);function r(t){let n=a(t);h(o,n)?e():_(t.clientX,t.clientY)}return!c.current.openEvent||Le(c.current.openEvent)?u.current=R(t,`mousemove`,r):g(s),e},[y,n,o,c,s,e,_,g,p]),X.useEffect(()=>()=>{e.set(`positionReference`,null)},[e]),X.useEffect(()=>{n&&!o&&(l.current=!1)},[n,o]),X.useEffect(()=>{!n&&i&&(l.current=!0)},[n,i]);let b=X.useMemo(()=>{function e(e){f(e.pointerType)}return{onPointerDown:e,onPointerEnter:e,onMouseMove:v,onMouseEnter:v}},[v]);return X.useMemo(()=>n?{reference:b,trigger:b}:{},[n,b])}var ze={...v,disabled:e=>e.disabled,instantType:e=>e.instantType,isInstantPhase:e=>e.isInstantPhase,trackCursorAxis:e=>e.trackCursorAxis,disableHoverablePopup:e=>e.disableHoverablePopup,lastOpenChangeReason:e=>e.openChangeReason,closeOnClick:e=>e.closeOnClick,appliedTriggerProps:(e,t)=>t?e.activeTriggerProps:void 0,closeDelay:e=>e.closeDelay,adaptiveOrigin:e=>e.adaptiveOrigin},Be=class extends y{constructor(e,t,n){let i=new r;super(He(e,i,t,n),Q(i),ze)}setOpen=(e,t)=>{F(this,e,t,{extraState:{openChangeReason:t.reason}})};cancelPendingOpen(e){this.state.floatingRootContext.dispatchOpenChange(!1,p(g,e))}};function Ve(){let e=new r,t=new ue(Object.freeze(He(void 0,e)),Object.freeze(Q(e)),ze);return Object.assign(t,{setOpen:P,cancelPendingOpen:P})}function He(e,t,n,r=!1){return{...d(t,n,r),disabled:!1,instantType:void 0,isInstantPhase:!1,trackCursorAxis:`none`,disableHoverablePopup:!1,openChangeReason:null,closeOnClick:!0,closeDelay:0,adaptiveOrigin:void 0,...e}}function Q(e){return{popupRef:X.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerElements:e}}var Ue=s(function(e){let{disabled:t=!1,defaultOpen:n=!1,open:r,disableHoverablePopup:a=!1,trackCursorAxis:s=`none`,actionsRef:c,onOpenChange:l,onOpenChangeComplete:u,handle:d,triggerId:f,defaultTriggerId:m=null,children:h}=e,g=ee((e,t)=>new Be({open:n,openProp:r,activeTriggerId:m,triggerIdProp:f},e,t));g.useControlledProp(`openProp`,r),g.useControlledProp(`triggerIdProp`,f),g.useContextCallback(`onOpenChange`,l),g.useContextCallback(`onOpenChangeComplete`,u);let _=g.useState(`open`),v=!t&&_,y=g.useState(`activeTriggerId`),b=g.useState(`mounted`),x=g.useState(`payload`);g.useSyncedValues({trackCursorAxis:s,disableHoverablePopup:a,disabled:t}),I(g,{closeOnActiveTriggerUnmount:!0});let{forceUnmount:C,transitionStatus:w}=L(v,g),T=g.useState(`isInstantPhase`),E=g.useState(`instantType`),D=g.useState(`lastOpenChangeReason`),O=X.useRef(null);S(()=>{_&&t&&g.setOpen(!1,p(o))},[_,t,g]),S(()=>{w===`ending`&&D===`none`||w!==`ending`&&T?(E!==`delay`&&(O.current=E),g.set(`instantType`,`delay`)):O.current!==null&&(g.set(`instantType`,O.current),O.current=null)},[w,T,D,E,g]),S(()=>{v&&(y??g.set(`payload`,void 0))},[g,y,v]),X.useImperativeHandle(c,()=>({unmount:C,close:()=>g.setOpen(!1,p(i))}),[C,g]);let k=v||b||!t&&s!==`none`;return(0,Y.jsxs)(je.Provider,{value:g,children:[d&&(0,Y.jsx)(z,{handle:d,store:g}),k&&(0,Y.jsx)(We,{store:g,disabled:t,trackCursorAxis:s}),typeof h==`function`?h({payload:x}):h]})});function We({store:e,disabled:t,trackCursorAxis:n}){let r=e.useState(`floatingRootContext`),i=A(r,{enabled:!t,referencePress:()=>e.select(`closeOnClick`)}),a=Re(r,{enabled:!t&&n!==`none`,axis:n===`none`?void 0:n}),o=X.useMemo(()=>b(a.reference,i.reference),[a.reference,i.reference]);return x(e,{activeTriggerProps:o,inactiveTriggerProps:o,popupProps:i.floating??ne}),null}var Ge=X.createContext(void 0);function Ke(){return X.useContext(Ge)}var qe=`data-base-ui-tooltip-trigger`;function Je(e){let t=a(e);return C(t)?t:null}var Ye=l(function(e,t){let{render:n,className:r,style:i,handle:a,payload:o,disabled:s,delay:c,closeOnClick:l=!0,closeDelay:d,id:f,...g}=e,_=Z(!0),v=fe(a)??_;if(!v)throw Error(N(82));let y=E(f),b=v.useState(`isTriggerActive`,y),x=v.useState(`isOpenedByTrigger`,y),S=v.useState(`floatingRootContext`),C=X.useRef(null),T=d??0,{registerTrigger:O,isMountedByThisTrigger:k}=w(y,C,v,{payload:o,closeOnClick:l,closeDelay:T}),A=Ke(),{activeIdRef:M,delayRef:ee,isInstantPhase:P,hasProvider:F}=Fe(S,{open:x}),I=se(S);v.useSyncedValue(`isInstantPhase`,P);let ne=v.useState(`disabled`),L=s??ne,R=m(L),z=v.useState(`trackCursorAxis`),ie=v.useState(`disableHoverablePopup`),B=X.useRef(!1),V=D(),H=X.useRef(void 0);function U(){return F&&M.current!=null?0:c??A??600}function W(e){let t=C.current;if(!t||!e)return!1;let n=oe(e,`[${qe}]`);return n!==null&&n!==t&&h(t,n)}function G(e){let t=W(e);return B.current=t,t&&(I.openChangeTimeout.clear(),I.restTimeout.clear(),I.restTimeoutPending=!1,V.clear()),t}let ue=ce(S,{enabled:!L,mouseOnly:!0,move:!1,handleClose:!ie&&z!==`both`?le():null,restMs:U,delay(){return d==null&&F?{close:K(ee.current,`close`)}:{close:T}},triggerElementRef:C,isActiveTrigger:b,isClosing:()=>v.select(`transitionStatus`)===`ending`,shouldOpen(){return!B.current}}),q=de(S,{enabled:!L}).reference,pe=e=>{let t=B.current,n=Je(e),r=G(n),i=C.current,a=i&&n&&h(i,n);if(r&&v.select(`open`)&&v.select(`lastOpenChangeReason`)===`trigger-hover`)v.setOpen(!1,p(u,e));else if(t&&!r&&a&&!R.current&&!v.select(`open`)&&i&&ae(H.current)){let t=()=>{B.current||R.current||v.select(`open`)||v.setOpen(!0,p(u,e,i))},n=U();n===0?(V.clear(),t()):V.start(n,t)}},J=v.useState(`appliedTriggerProps`,k||z!==`none`);return j(`button`,e,{state:{open:x},ref:[t,O,C],props:[ue,q,J,{onMouseOver(e){pe(e.nativeEvent)},onFocus(e){W(Je(e.nativeEvent))&&e.preventBaseUIHandler()},onMouseLeave(){B.current=!1,V.clear(),H.current=void 0},onPointerEnter(e){H.current=e.pointerType},onPointerDown(e){H.current=e.pointerType,v.set(`closeOnClick`,l),l&&!v.select(`open`)&&v.cancelPendingOpen(e.nativeEvent)},onClick(e){l&&!v.select(`open`)&&v.cancelPendingOpen(e.nativeEvent)},id:y,[te]:L?``:void 0,[qe]:L?void 0:``},g],stateAttributesMapping:re})}),Xe=X.createContext(void 0);function Ze(){let e=X.useContext(Xe);if(e===void 0)throw Error(N(70));return e}var Qe=X.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e;return Z().useState(`mounted`)||n?(0,Y.jsx)(Xe.Provider,{value:n,children:(0,Y.jsx)(f,{ref:t,...r})}):null}),$e=X.createContext(void 0);function $(){let e=X.useContext($e);if(e===void 0)throw Error(N(71));return e}var et=X.forwardRef(function(e,t){let{render:n,className:r,anchor:i,positionMethod:a=`absolute`,side:o=`top`,align:s=`center`,sideOffset:c=0,alignOffset:l=0,collisionBoundary:u=`clipping-ancestors`,collisionPadding:d=5,arrowPadding:f=5,sticky:p=!1,disableAnchorTracking:m=!1,collisionAvoidance:h=M,style:g,..._}=e,v=Z(),y=Ze(),b=v.useState(`open`),x=v.useState(`mounted`),S=v.useState(`trackCursorAxis`),C=v.useState(`disableHoverablePopup`),w=v.useState(`floatingRootContext`),T=v.useState(`instantType`),E=v.useState(`transitionStatus`),D=v.useState(`adaptiveOrigin`),O=G({anchor:i,positionMethod:a,floatingRootContext:w,mounted:x,side:o,sideOffset:c,align:s,alignOffset:l,collisionBoundary:u,collisionPadding:d,sticky:p,arrowPadding:f,disableAnchorTracking:m,keepMounted:y,collisionAvoidance:h,adaptiveOrigin:D}),k=X.useMemo(()=>({open:b,side:O.side,align:O.align,anchorHidden:O.anchorHidden,instant:S===`none`?T:`tracking-cursor`}),[b,O.side,O.align,O.anchorHidden,S,T]),A=H(e,k,{styles:O.positionerStyles,transitionStatus:E,props:_,refs:[t,v.useStateSetter(`positionerElement`)],hidden:!x,inert:!b||S===`both`||C});return(0,Y.jsx)($e.Provider,{value:O,children:A})}),tt=X.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,o=Z(),{side:s,align:c}=$(),l=o.useState(`open`),u=o.useState(`instantType`),d=o.useState(`transitionStatus`),f=o.useState(`popupProps`),p=o.useState(`floatingRootContext`),m=o.useState(`disabled`),h=o.useState(`closeDelay`);_({open:l,ref:o.context.popupRef,onComplete(){l&&o.context.onOpenChangeComplete?.(!0)}}),U(p,{enabled:!m,closeDelay:h});let g=o.useStateSetter(`popupElement`);return j(`div`,e,{state:{open:l,side:s,align:c,instant:u,transitionStatus:d},ref:[t,o.context.popupRef,g],props:[O,f,W(d),a],stateAttributesMapping:T})});export{ve as _,Ye as a,pe as b,Ve as c,Ae as d,Oe as f,be as g,Se as h,Qe as i,Pe as l,we as m,et as n,Ge as o,Ee as p,$ as r,Ue as s,tt as t,Z as u,ge as v,me as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{y as t}from"./route-IxDJQ-oO.js";import{t as n}from"./react-B8SKf8RM.js";import{t as r}from"./jsx-runtime-DePvh3-m.js";import{$t as i,At as a,Bt as o,Ct as s,Dt as c,Et as l,Ft as u,Gt as d,Ht as f,It as p,Jt as m,Kt as h,Lt as g,Mt as _,Ot as v,Pt as y,Qt as b,Rt as x,St as S,Tt as C,Ut as w,Vt as T,Wt as E,Xt as D,Yt as O,Zt as k,bt as A,jt as j,kt as ee,qt as te,vt as ne,wt as M,xt as N,yt as P,zt as F}from"./channel-CMKOAKFL.js";import{c as I,i as L,l as R,n as z,o as B,r as V,s as H,t as U}from"./viewport-CFJHn_Y6-B-kdQ7xr.js";var W=e(n(),1),G=e(t(),1),K=r(),q=class{constructor(e){b(this,`host`,void 0),b(this,`range`,void 0),b(this,`listeners`,new Set),this.host=e}get editor(){return this.host.master}keys(){let e=this.bounds();return e?this.host.rows.slice(e[0],e[1]+1).map(e=>e.key):[]}islandKeys(e){let t=this.bounds(),n=this.host.islandIds(e);return!t||!n?[]:e.getEditorState().read(()=>c().getChildren().filter((e,r)=>{let i=n[r]===void 0?void 0:this.host.indexOf(n[r]);return i!==void 0&&i>=t[0]&&i<=t[1]}).map(e=>e.getKey()))}documentKeys(e,t){let n=this.host.islandIds(e);if(!n)return[];let r=e.getEditorState().read(()=>c().getChildren().map(e=>e.getKey()));return t.flatMap(e=>{let t=n[r.indexOf(e)],i=t===void 0?void 0:this.host.indexOf(t);return i===void 0?[]:[this.host.rows[i].key]})}select(e,t,n){let r=this.host.islandIds(e);if(!r)return;let[i,a]=e.getEditorState().read(()=>{let e=c().getChildren().map(e=>e.getKey());return[r[e.indexOf(t)],r[e.indexOf(n)]]});i&&a&&this.set({anchorId:i,focusId:a})}selectAll(){let{rows:e}=this.host;e.length&&this.set({anchorId:e[0].id,focusId:e.at(-1).id})}extend(e){let t=this.range&&this.host.indexOf(this.range.focusId),n=t===void 0?void 0:this.host.rows[t+e];return!this.range||!n?!1:(this.set({anchorId:this.range.anchorId,focusId:n.id}),!0)}clear(){this.range&&this.set(void 0)}prune(){this.range&&(this.host.indexOf(this.range.anchorId)===void 0||this.host.indexOf(this.range.focusId)===void 0)&&this.set(void 0)}focusSelection(){let e=this.host.master.getEditorState().read(()=>{let e=j();if(!p(e))return null;let t=e.anchor.getNode(),n=t.getTopLevelElement()??t,r=(d(n)?n.getLastDescendant():null)??n;return{key:n.getKey(),end:t.is(r)&&e.anchor.offset===t.getTextContentSize()}}),t=e?this.host.rows.findIndex(t=>t.key===e.key):-1;t>=0&&this.host.focusBlock(t,e.end)}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}bounds(){if(!this.range)return null;let e=this.host.indexOf(this.range.anchorId),t=this.host.indexOf(this.range.focusId);return e===void 0||t===void 0?null:[Math.min(e,t),Math.max(e,t)]}set(e){this.range=e,this.listeners.forEach(e=>e())}};function J(e){let t=x(e);d(e)&&(t.children=e.getChildren().map(J));for(let n of F(e))t.$slots??={},t.$slots[n]=J(T(e,n));return t}var Y=class{constructor(e){b(this,`editor`,void 0),b(this,`rows`,[]),b(this,`onChange`,void 0),b(this,`unsubscribe`,void 0),b(this,`lastEdit`,void 0),this.editor=e,this.read(),this.unsubscribe=e.registerUpdateListener(({dirtyElements:e,dirtyLeaves:t,tags:n})=>{if(!e.size&&!t.size)return;this.read(new Set([...e.keys(),...t]));let r=[...n].find(e=>e.startsWith(`virtual-island:`));r||(this.lastEdit=void 0),this.onChange?.(r)})}read(e){let t=new Map(this.rows.map(e=>[e.key,e]));this.rows=this.editor.getEditorState().read(()=>c().getChildren().map(n=>{let r=n.getKey(),i=t.get(r);if(i?.node===n&&!e?.has(r))return i;let a=J(n);return{data:a,key:r,node:n,id:u(n,M)||r,pool:`${a.type}:${a.url??a.tag??a.listType??``}`}}))}replace(e,t,n,r=!1){let i=this.rows.findIndex(t=>t.id===e[0]);if(i<0||e.some((e,t)=>this.rows[i+t]?.id!==e))throw Error(`Virtual editor island is stale or noncontiguous`);let a=this.rows.slice(i,i+e.length).map(e=>e.key),o=Date.now(),s=r||this.lastEdit?.source===n&&this.lastEdit.ids===e.join(`,`)&&this.lastEdit.count===t.length&&t.length===e.length&&o-this.lastEdit.time<600;this.editor.update(()=>{let e=a.map(e=>l(e));if(e.some(e=>!e))throw Error(`Virtual editor block was removed`);let n;for(let r of t){let t=_(r);n?n.insertAfter(t):e[0].insertBefore(t),n=t}for(let t of e)t.remove()},{discrete:!0,tag:[s?`history-merge`:`history-push`,`virtual-island:${n}`]}),this.lastEdit={source:n,ids:e.join(`,`),time:o,count:t.length}}dispose(){this.unsubscribe()}},X=new Set([`paragraph`,`text`,`heading`,`quote`,`list`,`listitem`,`details`,`dynamic`]);function Z(e,t){let n=e.getChildren();t.forEach((t,r)=>{let i=n[r];if(i?.getType()===t.type&&X.has(t.type)){if(i.updateFromJSON(t),t.type===`details`){let e=i;e.setOpen(!!t.open),e.setSummary(t.summary)}else if(t.type===`dynamic`){let e=i;e.setUrl(t.url),e.setProps(t.props),e.setInitialHeight(t.initialHeight)}d(i)&&Z(i,t.children??[])}else{let n=_(t);i?i.replace(n):e.append(n)}});for(let e of n.slice(t.length))e.remove()}function Q(e){for(;e?.getParent()&&e.getParent().getType()!==`root`;)e=e.getParent();return e?.getParent()?e:null}function $(e,t){let n=document.caretPositionFromPoint?.(e,t);if(n)return{node:n.offsetNode,offset:n.offset};let r=document.caretRangeFromPoint?.(e,t);return r?{node:r.startContainer,offset:r.startOffset}:null}var re=class{constructor(e,t,n){if(b(this,`master`,void 0),b(this,`canvas`,void 0),b(this,`options`,void 0),b(this,`document`,void 0),b(this,`pool`,new V),b(this,`islands`,new Map),b(this,`states`,new Map),b(this,`viewport`,void 0),b(this,`preserve`,void 0),b(this,`documentBlocks`,new q(this)),b(this,`heights`,void 0),b(this,`revision`,0),b(this,`indices`,new Map),b(this,`listeners`,new Set),b(this,`observer`,void 0),b(this,`frame`,0),b(this,`dead`,!1),b(this,`width`,void 0),b(this,`metrics`,new Map),b(this,`firstParagraph`,-1),b(this,`selectionOwner`,void 0),b(this,`splitting`,new Set),b(this,`drag`,void 0),b(this,`previousRows`,[]),b(this,`onScroll`,()=>{this.refresh(),this.drag&&this.dragTo(this.drag.y)}),b(this,`onPointerDown`,e=>{if(e.button!==0)return;this.documentBlocks.clear();let t=this.pool.slots.find(t=>t.active&&t.element?.contains(e.target));if(!t)return;let n=this.pool.slots.find(e=>e.active&&e.id===this.selectionOwner),r=e.shiftKey&&n&&n!==t?n:t,i=this.island(r).editor.getRootElement();if(i){if(r!==t)e.preventDefault(),this.extendToPoint(r,i,e.clientX,e.clientY);else if(e.target.closest?.(`[contenteditable]`)!==i)return;this.drag={slot:r,y:e.clientY},document.addEventListener(`pointermove`,this.onPointerMove),document.addEventListener(`pointerup`,this.endDrag),document.addEventListener(`pointercancel`,this.endDrag)}}),b(this,`onPointerMove`,e=>{if(this.drag){if(!(e.buttons&1))return this.endDrag();this.drag.y=e.clientY,this.dragTo(e.clientY)}}),b(this,`endDrag`,()=>{this.drag=void 0,document.removeEventListener(`pointermove`,this.onPointerMove),document.removeEventListener(`pointerup`,this.endDrag),document.removeEventListener(`pointercancel`,this.endDrag)}),b(this,`onFocusIn`,e=>{let t=this.pool.slots.find(t=>t.element?.contains(e.target));t&&(this.selectionOwner=t.id)}),this.master=e,this.canvas=t,this.options=n,this.viewport=I(t,n.scrollContainer),this.preserve=new z(n.preserveCapacity??32,e=>{this.pool.slots.find(t=>t.id===e)?.beforeRelease?.()}),n.overscan!==void 0&&(!Number.isFinite(n.overscan)||n.overscan<0))throw Error(`Virtual editor overscan must be a nonnegative number`);this.document=new Y(e),this.indices=new Map(this.rows.map((e,t)=>[e.id,t])),this.firstParagraph=this.rows.findIndex(e=>e.data.type===`paragraph`),e.update(()=>c().markDirty(),{discrete:!0,tag:`history-merge`}),this.width=t.clientWidth;try{this.heights=this.buildHeights()}catch(e){throw this.document.dispose(),e}t.style.height=`${this.heights.total}px`,this.document.onChange=e=>{this.reconcileDocument(e)},this.previousRows=this.rows.map(e=>({id:e.id,data:e.data})),this.observer=new ResizeObserver(()=>this.queueMeasure()),this.observer.observe(t),this.viewport instanceof HTMLElement&&this.observer.observe(this.viewport),this.viewport.addEventListener(`scroll`,this.onScroll,{passive:!0}),window.addEventListener(`resize`,this.onScroll),t.addEventListener(`focusin`,this.onFocusIn),t.addEventListener(`pointerdown`,this.onPointerDown),this.refresh(!1)}get rows(){return this.document.rows}get scrollTop(){return this.viewport instanceof HTMLElement?this.viewport.scrollTop:window.scrollY}setScrollTop(e){this.viewport instanceof HTMLElement?this.viewport.scrollTop=e:window.scrollTo(window.scrollX,e)}viewportTop(){return this.viewport instanceof HTMLElement?this.viewport.getBoundingClientRect().top+this.viewport.clientTop:0}viewportHeight(){return this.viewport instanceof HTMLElement?this.viewport.clientHeight:window.innerHeight}canvasTop(){return this.canvas.getBoundingClientRect().top-this.viewportTop()+this.scrollTop}buildHeights(){return new U(this.rows.map(e=>this.estimate(e.data)))}estimate(e){let t=this.options.estimateBlockHeight?.(e,this.width)??B(e,this.width);if(!Number.isFinite(t)||t<=0)throw Error(`Virtual editor estimated height must be positive and finite`);return Math.max(24,t)}reconcileDocument(e){let t=this.anchor(),n=new Map(this.previousRows.map((e,t)=>[e.id,{...e,height:this.heights.values[t]}]));(this.rows.length!==this.previousRows.length||this.rows.some((e,t)=>e.id!==this.previousRows[t].id))&&(this.heights=new U(this.rows.map(e=>n.get(e.id)?.height??this.estimate(e.data))));let r=new Map(this.rows.map((e,t)=>[e.id,t]));this.indices=r,this.documentBlocks.prune(),this.firstParagraph=this.rows.findIndex(e=>e.data.type===`paragraph`);for(let e of this.metrics.keys())r.has(e)||this.metrics.delete(e);for(let t of this.pool.slots){let n=this.islands.get(t.id);if(!n)continue;let i=n.ids.flatMap(e=>r.get(e)??[]);n.ids=i.length>1?this.rows.slice(Math.min(...i),Math.max(...i)+1).map(e=>e.id):i.map(e=>this.rows[e].id),n.source=e===`virtual-island:${t.id}`,n.ids.length?(t.index=r.get(n.ids[0]),t.pool=this.rows[t.index].pool):(t.beforeRelease?.(),t.active=!1)}this.pool.slots=this.pool.slots.filter(e=>{let t=this.islands.get(e.id);return!t||t.ids.length?!0:(t.unsubscribe(),this.preserve.forget(e.id),this.islands.delete(e.id),this.pool.disposed++,!1)}),this.previousRows=this.rows.map(e=>({id:e.id,data:e.data})),this.restore(t),this.refresh(!1),this.publish(),this.queueMeasure()}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}publish(e=!0){if(this.dead||!this.listeners.size)return;this.revision++;let t=()=>this.listeners.forEach(e=>e());e?(0,G.flushSync)(t):t()}indexOf(e){return this.indices.get(e)}islandIds(e){for(let t of this.islands.values())if(t.editor===e)return t.ids}rowAt(e){let t=e-this.canvas.getBoundingClientRect().top-this.leadingMargin;return this.heights.find(Math.max(0,t))}dragTo(e){let t=this.drag?.slot;if(!t?.active)return;let n=this.rowAt(e);(n<t.index||n>=t.index+this.island(t).ids.length)&&this.extendIsland(t,n,!0)}extendToPoint(e,t,n,r){if(!this.extendIsland(e,this.rowAt(r),!0))return;let i=window.getSelection(),a=$(n,r);i?.anchorNode&&t.contains(i.anchorNode)&&a&&t.contains(a.node)&&i.extend(a.node,a.offset)}holdsSelection(e,t){return e.id===this.selectionOwner&&t.editor.getEditorState().read(()=>j()!==null)}refresh(e=!0){if(this.dead||!this.rows.length)return;let t=Math.max(0,this.scrollTop-this.canvasTop()),n=this.options.overscan??this.viewportHeight()*1.5,r=this.heights.find(Math.max(0,t-n)),i=this.heights.find(t+this.viewportHeight()+n),a=new Set,o=[],s=new Set;for(let e of this.pool.slots){let t=this.islands.get(e.id);if(t&&(e.active||this.preserve.has(e.id))){(t.retained||t.editor.isComposing()||e.element?.contains(document.activeElement)||this.holdsSelection(e,t))&&s.add(e.id);for(let n=1;n<t.ids.length;n++)a.add(e.index+n);t.ids.length>1&&e.index<r&&e.index+t.ids.length>r&&o.push(e.index)}}let c=[...o,...Array.from({length:i-r+1},(e,t)=>r+t)].filter(e=>!a.has(e)),l=new Set(c),u=new Set;for(let e of this.pool.slots)(l.has(e.index)||s.has(e.id))&&this.preserve.activate(e.id)&&u.add(e.id);for(let e of this.pool.slots)e.active&&!l.has(e.index)&&!s.has(e.id)&&this.preserve.park(e.id,this.islands.get(e.id)?.ids.join(`,`)??``);let d=new Set([...this.preserve.ids(),...u]),f=this.pool.update(c,e=>this.rows[e].pool,s,d);for(let[e,t]of this.islands)this.pool.slots.some(t=>t.id===e)||(t.unsubscribe(),t.editor.setRootElement(null),this.preserve.forget(e),this.islands.delete(e));f&&this.publish(e)}island(e){let t=this.islands.get(e.id);if(t)return t;let n=this.master.read(()=>h());return t={editor:n,ids:[],generation:-1,loading:!1,source:!1,data:``,unsubscribe:()=>{},retained:0},this.islands.set(e.id,t),t.unsubscribe=n.registerUpdateListener(({editorState:r,dirtyElements:i,dirtyLeaves:a,tags:o})=>{if(t.ids.length>1&&this.queueSplit(e),t.loading||!t.ids.length||o.has(`virtual-bind`)||!i.size&&!a.size)return;let s=r.toJSON().root.children;if(JSON.stringify(s)===t.data)return;let l=new Set;s.forEach((e,n)=>{let r=e.$?.blockId,i=this.indices.has(r)&&!t.ids.includes(r);(!r||l.has(r)||i)&&(r=n===0?t.ids[0]:C(8)),e.$={...e.$,blockId:r},l.add(r)});let u=[...t.ids];t.ids=s.map(e=>e.$.blockId),t.data=JSON.stringify(s),n.update(()=>c().getChildren().forEach((e,n)=>O(e,M,t.ids[n])),{tag:`virtual-bind`}),this.document.replace(u,s,String(e.id),o.has(`history-merge`))}),t}bind(e){let t=this.island(e),n=t.generation!==e.generation;n&&(t.ids=[this.rows[e.index].id]);let r=t.ids.map(e=>this.rows[this.indices.get(e)??-1]).filter(e=>!!e);if(!r.length)return;let i=r.map(e=>e.data),a=JSON.stringify(i);if(!n&&(t.source||a===t.data))t.source=!1,t.data=a;else{t.generation=e.generation,t.data=a,t.loading=!0;try{t.editor.update(()=>{Z(c(),i),n&&g(null)},{discrete:!0,tag:n?[`virtual-bind`,v]:`virtual-bind`})}finally{t.loading=!1}this.restorePanels(e),this.queueMeasure()}}attach(e,t){e.element&&this.observer.unobserve(e.element),e.element=t??void 0,t&&this.observer.observe(t)}mount(e,t){let n=this.pool.slots.filter(t=>t.active&&t.index>e.index).sort((e,t)=>e.index-t.index).map(e=>this.preserve.host(e.id)).find(e=>e?.parentElement===this.canvas);this.preserve.mount(e.id,t,e.active?this.canvas:null,n??null)}state(e){let t=this.states.get(e);return t||(t=new Map,this.states.set(e,t)),t}nodeState(e,t,n){let r=this.island(e),i=r.editor.getEditorState().read(()=>{let e=t?l(t):c().getFirstChild(),i=[];for(;e?.getParent()&&e.getParent().getType()!==`root`;)i.unshift(e.getIndexWithinParent()),e=e.getParent();let a=e?.getIndexWithinParent()??0;return`${a===0?n:r.ids[a]??n}:${i.join(`.`)}`});return this.state(i)}capturePanels(e){let t=this.islands.get(e.id)?.ids[0];t&&this.state(t).set(`details`,this.panels(e).map(({panel:e})=>e.open))}restorePanels(e){let t=this.state(this.island(e).ids[0]).get(`details`);this.panels(e).forEach(({panel:e,initialOpen:n},r)=>{e.open=t?.[r]??n})}panels(e){let t=this.island(e).editor;return t.getEditorState().read(()=>{let e=[],n=r=>{if(r.getType()===`details`){let n=t.getElementByKey(r.getKey());n instanceof HTMLDetailsElement&&e.push({panel:n,initialOpen:r.getOpen()})}d(r)&&r.getChildren().forEach(n)};return n(c()),e})}anchor(){let e=this.canvas.getBoundingClientRect(),t=document.elementFromPoint(e.left+e.width/2,Math.max(this.viewportTop()+8,e.top+1))?.closest(`[data-virtual-editor-slot]`),n=this.pool.slots.find(e=>e.active&&e.element===t)?.index??this.heights.find(Math.max(0,this.scrollTop-this.canvasTop()));return{id:this.previousRows[n]?.id??this.rows[n]?.id,offset:this.scrollTop-this.canvasTop()-this.blockOffset(n)}}restore(e){this.canvas.style.height=`${this.heights.total+this.leadingMargin}px`;let t=e.id?this.indices.get(e.id)??-1:-1;t>=0&&this.setScrollTop(this.canvasTop()+this.blockOffset(t)+e.offset)}queueMeasure(){!this.dead&&!this.frame&&(this.frame=requestAnimationFrame(()=>this.measure()))}slotOffset(e){return this.blockOffset(e.index)-(this.metrics.get(this.rows[e.index]?.id)?.top??0)}get leadingMargin(){return this.metrics.get(this.rows[0]?.id)?.top??0}blockOffset(e){return this.heights.offset(e)+this.leadingMargin}commitLayout(){cancelAnimationFrame(this.frame),this.measure(!1)}measure(e=!0){if(this.frame=0,this.dead)return;let t=this.anchor(),n=!1;Math.abs(this.canvas.clientWidth-this.width)>.5&&(this.width=this.canvas.clientWidth,this.metrics.clear(),this.heights=this.buildHeights(),n=!0);let r=new Set;for(let e of this.pool.slots){if(!e.active)continue;let t=this.islands.get(e.id),i=t?.editor.getRootElement();if(!i||!t?.ids.length)continue;let a=t.editor.getEditorState().read(()=>c().getChildren().map(e=>t.editor.getElementByKey(e.getKey())));a.forEach((e,n)=>{if(!e)return;let r=this.indices.get(t.ids[n])??-1,a=this.rows[r-1]?.data;e.toggleAttribute(`data-document-first`,r===0&&e===i.firstElementChild),e.toggleAttribute(`data-document-last`,r===this.rows.length-1&&e===i.lastElementChild),e.toggleAttribute(`data-document-first-paragraph`,r===this.firstParagraph),e.dataset.documentPrevTag=a?.type===`heading`?a.tag:a?.type===`horizontalrule`?`hr`:``});let o=i.getBoundingClientRect(),s=a.map(e=>e?.getBoundingClientRect());t.ids.forEach((e,i)=>{let c=this.indices.get(e)??-1,l=a[i];if(c<0||!l)return;l.dataset.blockId=e;let u=s[i],d=getComputedStyle(l),f=i===0?u.top-o.top:parseFloat(d.marginTop)||0,p=i===t.ids.length-1?o.bottom-u.bottom:parseFloat(d.marginBottom)||0;Math.abs(f-(this.metrics.get(e)?.top??0))>.1&&(n=!0),this.metrics.set(e,{height:u.height,top:f,bottom:p,gap:s[i+1]?s[i+1].top-u.bottom:void 0}),r.add(c),c>0&&r.add(c-1)})}for(let e of r){let t=this.metrics.get(this.rows[e].id);if(!t)continue;let r=Math.max(1,H(t,this.metrics.get(this.rows[e+1]?.id)));Math.abs(r-this.heights.values[e])>.1&&(this.heights.update(e,r),n=!0)}n&&(this.restore(t),this.refresh(!1),this.publish(e))}scrollTo(e){this.setScrollTop(this.canvasTop()+this.blockOffset(Math.max(0,Math.min(e,this.rows.length-1)))),this.refresh()}focusBlock(e,t=!1,n=!0){e<0||e>=this.rows.length||(n&&this.scrollTo(e),requestAnimationFrame(()=>{let r=this.pool.slots.find(t=>t.active&&this.islands.get(t.id)?.ids.includes(this.rows[e]?.id));if(!r)return;let{editor:i}=this.island(r);i.getRootElement()?.focus({preventScroll:!0}),i.update(()=>{t?c().selectEnd():c().selectStart()},{tag:n?void 0:a})}))}extendIsland(e,t,n=!1){let r=this.island(e),i=e.index,a=i+r.ids.length-1,o=Math.max(0,Math.min(t,this.rows.length-1));if(o>=i&&o<=a)return!0;let s=o<i,l=s?this.rows.slice(o,i):this.rows.slice(a+1,o+1);if(r.ids.length+l.length>(this.options.selectionMergeLimit??200))return!1;let u=new Set(l.map(e=>e.id)),d=this.pool.slots.filter(t=>t!==e&&this.islands.get(t.id)?.ids.some(e=>u.has(e)));if(d.some(e=>{let t=this.islands.get(e.id);return t.retained>0||t.editor.isComposing()}))return!1;for(let e of d)e.beforeRelease?.(),e.active=!1,this.islands.get(e.id).generation=-1;return r.ids=s?[...u,...r.ids]:[...r.ids,...u],s&&(e.index=o),r.data=JSON.stringify(r.ids.map(e=>this.rows[this.indices.get(e)].data)),r.editor.update(()=>{let e=l.map(e=>_(e.data)),t=c().getFirstChild();s&&t?e.forEach(e=>t.insertBefore(e)):c().append(...e)},{discrete:!0,tag:[`virtual-bind`,v]}),this.refresh(!1),this.publish(n),this.queueMeasure(),!0}extendForKey(e,t){let n=this.island(e),r=t===`down`||t===`right`,i=n.editor.getEditorState().read(()=>{let e=j();if(!p(e))return!1;let n=c(),i=e.focus.getNode();if(t===`up`||t===`down`)return Q(i)?.is(r?n.getLastChild():n.getFirstChild())??!1;let a=r?n.getLastDescendant():n.getFirstDescendant();return!!a&&i.is(a)&&e.focus.offset===(r?a.getTextContentSize():0)}),a=r?e.index+n.ids.length:e.index-1;return!i||a<0||a>=this.rows.length?!1:this.extendIsland(e,a)}splitIsland(e){let t=this.islands.get(e.id);if(!t||t.ids.length<2)return;let n=t.editor.getEditorState().read(()=>{let e=j();return Q(p(e)?e.focus.getNode():null)?.getIndexWithinParent()??0}),r=t.ids[n]??t.ids[0];t.ids=[r],e.index=this.indices.get(r),t.data=JSON.stringify([this.rows[e.index].data]),t.editor.update(()=>c().getChildren().forEach((e,t)=>{t!==n&&e.remove()}),{discrete:!0,tag:`virtual-bind`}),this.refresh(!1),this.publish(),this.queueMeasure()}queueSplit(e){this.splitting.has(e.id)||(this.splitting.add(e.id),requestAnimationFrame(()=>{this.splitting.delete(e.id);let t=this.islands.get(e.id);if(this.dead||!e.active||!t||t.editor.isComposing())return;let n=window.getSelection(),r=t.editor.getRootElement();n&&!n.isCollapsed&&n.anchorNode&&r?.contains(n.anchorNode)||t.editor.getEditorState().read(()=>{let e=j();return e===null||p(e)&&e.isCollapsed()})&&this.splitIsland(e)}))}joinNeighbor(e,t){let n=this.island(e),r=t?e.index-1:e.index+n.ids.length,i=this.rows[r];if(!i)return!1;for(let t of this.pool.slots)t!==e&&this.islands.get(t.id)?.ids.includes(i.id)&&(t.beforeRelease?.(),t.active=!1);return n.ids=t?[i.id,...n.ids]:[...n.ids,i.id],t&&(e.index=r),n.editor.update(()=>{let e=_(i.data);t?c().getFirstChild().insertBefore(e):c().append(e);let n=j();p(n)&&n.deleteCharacter(t)},{discrete:!0}),!0}dispose(){this.dead=!0,this.document.dispose(),this.observer.disconnect(),cancelAnimationFrame(this.frame),this.viewport.removeEventListener(`scroll`,this.onScroll),window.removeEventListener(`resize`,this.onScroll),this.canvas.removeEventListener(`focusin`,this.onFocusIn),this.canvas.removeEventListener(`pointerdown`,this.onPointerDown),this.endDrag();for(let e of this.islands.values())e.unsubscribe();this.listeners.clear(),this.preserve.clear()}};function ie({controller:e,slot:t}){let[n]=D();return(0,W.useEffect)(()=>{let r=e=>{let t=j();if(!p(t)||!t.isCollapsed())return!1;let n=e?c().getLastDescendant():c().getFirstDescendant();return!!n&&t.anchor.key===n.getKey()&&t.anchor.offset===(e?n.getTextContentSize():0)},i=n=>(e.extendForKey(t,n),!1),a=[n.registerCommand(f,()=>(e.master.dispatchCommand(f,void 0),!0),4),n.registerCommand(o,()=>(e.master.dispatchCommand(o,void 0),!0),4),n.registerCommand(w,n=>!r(!1)||!e.joinNeighbor(t,!0)?!1:(n?.preventDefault(),!0),4),n.registerCommand(ee,n=>!r(!0)||!e.joinNeighbor(t,!1)?!1:(n?.preventDefault(),!0),4),n.registerCommand(m,n=>n?.shiftKey?i(`up`):!r(!1)||t.index===0?!1:(n?.preventDefault(),e.focusBlock(t.index-1,!0),!0),4),n.registerCommand(y,n=>{if(n?.shiftKey)return i(`down`);if(!r(!0))return!1;let a=t.index+e.island(t).ids.length;return a>=e.rows.length?!1:(n?.preventDefault(),e.focusBlock(a),!0)},4),n.registerCommand(E,e=>!!e.shiftKey&&i(`left`),4),n.registerCommand(te,e=>!!e.shiftKey&&i(`right`),4)];return()=>a.forEach(e=>e())},[e,n,t]),null}function ae({controller:e,slot:t,plugins:n,onActiveEditorChange:r,onRelease:a,retainSurface:o,placeholder:s}){let c=e.island(t),l=e.rows[t.index],u=`${t.generation}:${t.active}`,[d,f]=(0,W.useState)(``),[p]=(0,W.useState)(()=>{let e=document.createElement(`div`);return e.style.display=`contents`,e}),m=t.active||e.preserve.has(t.id),h=k(),g=(0,W.useMemo)(()=>({blockId:l.id,active:t.active,editor:c.editor,documentBlocks:e.documentBlocks,nodeState:n=>e.nodeState(t,n,l.id),retain:()=>{c.retained++;let t=o(),n=!1;return()=>{n||(n=!0,c.retained--,t(),e.refresh(!1))}}}),[e,c.editor,o,l.id,t,t.active,t.generation]),_=(0,W.useCallback)(n=>e.attach(t,n),[e,t]);return(0,W.useLayoutEffect)(()=>{e.mount(t,p),m?e.bind(t):c.generation=-1,t.beforeRelease=()=>{e.capturePanels(t),a(c.editor)}}),(0,W.useLayoutEffect)(()=>()=>p.remove(),[p]),(0,W.useLayoutEffect)(()=>{let e=requestAnimationFrame(()=>{e=requestAnimationFrame(()=>f(u))});return()=>cancelAnimationFrame(e)},[u]),(0,G.createPortal)((0,K.jsx)(`div`,{className:R,"data-pool":t.pool,"data-restoring":d===u?void 0:``,"data-virtual-editor-block":t.active?l.id:void 0,"data-virtual-editor-slot":t.id,ref:_,style:{display:t.active?void 0:`none`,transform:`translateY(${e.slotOffset(t)}px)`},onFocusCapture:()=>r(c.editor),children:(0,K.jsx)(i,{value:g,children:m&&(0,K.jsxs)(P,{skipCollabChecks:!0,initialEditor:c.editor,children:[(0,K.jsx)(ne,{ErrorBoundary:A,contentEditable:(0,K.jsx)(N,{"aria-label":`Document block`,"aria-placeholder":s??``,className:`rich-editor__content qi8t62`,"data-virtual-editor-content":``,placeholder:(0,K.jsx)(`div`,{className:`b94s952`,style:{top:0,left:0,display:s?void 0:`none`},children:s})})}),t.active&&n,(0,K.jsx)(ie,{controller:e,slot:t}),t.active&&h]})})}),p,String(t.id))}function oe({controller:e,plugins:t,onActiveEditorChange:n,onRelease:r,retainSurface:i,placeholder:a}){let[,o]=(0,W.useState)(0);return(0,W.useLayoutEffect)(()=>e.subscribe(()=>o(e=>e+1)),[e]),(0,W.useLayoutEffect)(()=>e.commitLayout()),(0,K.jsx)(K.Fragment,{children:e.pool.slots.map(o=>(0,K.jsx)(ae,{controller:e,plugins:t,retainSurface:i,slot:o,placeholder:e.rows.length===1&&e.rows[0].data.type===`paragraph`&&!(e.rows[0].data.children??[]).some(e=>e.type!==`text`||e.text)?a:void 0,onActiveEditorChange:n,onRelease:r},o.id))})}function se({options:e,className:t,plugins:n,autoFocus:r,hasHeader:i,onActiveEditorChange:a,retainSurface:o,placeholder:c}){let[l]=D(),{scrollContainer:u,overscan:d,estimateBlockHeight:f,preserveCapacity:p,selectionMergeLimit:m}=e,h=(0,W.useMemo)(()=>({scrollContainer:u,overscan:d,estimateBlockHeight:f,preserveCapacity:p,selectionMergeLimit:m}),[u,d,f,p,m]),g=(0,W.useRef)(null),_=(0,W.useCallback)(e=>{g.current=e,a(e)},[a]),v=(0,W.useCallback)(e=>{g.current===e&&_(null)},[_]),y=(0,W.useRef)(null),[b,x]=(0,W.useState)(null),[C,w]=(0,W.useState)(``);return(0,W.useEffect)(()=>{x(null),w(``);let e=y.current,t;try{t=new re(l,e,h),x(t),Object.assign(e,{virtualEditor:t})}catch(e){w(String(e));return}return()=>{_(null),t.dispose(),Reflect.deleteProperty(e,`virtualEditor`)}},[l,_,h]),(0,W.useEffect)(()=>{b&&r&&b.focusBlock(0,!1,!1)},[r,b]),(0,K.jsxs)(`div`,{className:`rich-editor__content-wrapper ${s}`,style:{"--ce-padding-top":`${i?40:12}px`},children:[C&&(0,K.jsx)(`p`,{role:`alert`,children:C}),(0,K.jsx)(`div`,{className:`${S} ${t??``}`,children:(0,K.jsx)(`div`,{className:L,"data-virtual-editor":``,ref:y,children:b&&(0,K.jsx)(oe,{controller:b,placeholder:c,plugins:n,retainSurface:o,onActiveEditorChange:_,onRelease:v})})})]})}export{se as VirtualizedEditor};
|
|
1
|
+
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{y as t}from"./route-IxDJQ-oO.js";import{t as n}from"./react-B8SKf8RM.js";import{t as r}from"./jsx-runtime-DePvh3-m.js";import{$t as i,At as a,Bt as o,Ct as s,Dt as c,Et as l,Ft as u,Gt as d,Ht as f,It as p,Jt as m,Kt as h,Lt as g,Mt as _,Ot as v,Pt as y,Qt as b,Rt as x,St as S,Tt as C,Ut as w,Vt as T,Wt as E,Xt as D,Yt as O,Zt as k,bt as A,jt as j,kt as ee,qt as te,vt as ne,wt as M,xt as N,yt as P,zt as F}from"./channel-N_XGshwu.js";import{c as I,i as L,l as R,n as z,o as B,r as V,s as H,t as U}from"./viewport-CFJHn_Y6-DoDATgb9.js";var W=e(n(),1),G=e(t(),1),K=r(),q=class{constructor(e){b(this,`host`,void 0),b(this,`range`,void 0),b(this,`listeners`,new Set),this.host=e}get editor(){return this.host.master}keys(){let e=this.bounds();return e?this.host.rows.slice(e[0],e[1]+1).map(e=>e.key):[]}islandKeys(e){let t=this.bounds(),n=this.host.islandIds(e);return!t||!n?[]:e.getEditorState().read(()=>c().getChildren().filter((e,r)=>{let i=n[r]===void 0?void 0:this.host.indexOf(n[r]);return i!==void 0&&i>=t[0]&&i<=t[1]}).map(e=>e.getKey()))}documentKeys(e,t){let n=this.host.islandIds(e);if(!n)return[];let r=e.getEditorState().read(()=>c().getChildren().map(e=>e.getKey()));return t.flatMap(e=>{let t=n[r.indexOf(e)],i=t===void 0?void 0:this.host.indexOf(t);return i===void 0?[]:[this.host.rows[i].key]})}select(e,t,n){let r=this.host.islandIds(e);if(!r)return;let[i,a]=e.getEditorState().read(()=>{let e=c().getChildren().map(e=>e.getKey());return[r[e.indexOf(t)],r[e.indexOf(n)]]});i&&a&&this.set({anchorId:i,focusId:a})}selectAll(){let{rows:e}=this.host;e.length&&this.set({anchorId:e[0].id,focusId:e.at(-1).id})}extend(e){let t=this.range&&this.host.indexOf(this.range.focusId),n=t===void 0?void 0:this.host.rows[t+e];return!this.range||!n?!1:(this.set({anchorId:this.range.anchorId,focusId:n.id}),!0)}clear(){this.range&&this.set(void 0)}prune(){this.range&&(this.host.indexOf(this.range.anchorId)===void 0||this.host.indexOf(this.range.focusId)===void 0)&&this.set(void 0)}focusSelection(){let e=this.host.master.getEditorState().read(()=>{let e=j();if(!p(e))return null;let t=e.anchor.getNode(),n=t.getTopLevelElement()??t,r=(d(n)?n.getLastDescendant():null)??n;return{key:n.getKey(),end:t.is(r)&&e.anchor.offset===t.getTextContentSize()}}),t=e?this.host.rows.findIndex(t=>t.key===e.key):-1;t>=0&&this.host.focusBlock(t,e.end)}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}bounds(){if(!this.range)return null;let e=this.host.indexOf(this.range.anchorId),t=this.host.indexOf(this.range.focusId);return e===void 0||t===void 0?null:[Math.min(e,t),Math.max(e,t)]}set(e){this.range=e,this.listeners.forEach(e=>e())}};function J(e){let t=x(e);d(e)&&(t.children=e.getChildren().map(J));for(let n of F(e))t.$slots??={},t.$slots[n]=J(T(e,n));return t}var Y=class{constructor(e){b(this,`editor`,void 0),b(this,`rows`,[]),b(this,`onChange`,void 0),b(this,`unsubscribe`,void 0),b(this,`lastEdit`,void 0),this.editor=e,this.read(),this.unsubscribe=e.registerUpdateListener(({dirtyElements:e,dirtyLeaves:t,tags:n})=>{if(!e.size&&!t.size)return;this.read(new Set([...e.keys(),...t]));let r=[...n].find(e=>e.startsWith(`virtual-island:`));r||(this.lastEdit=void 0),this.onChange?.(r)})}read(e){let t=new Map(this.rows.map(e=>[e.key,e]));this.rows=this.editor.getEditorState().read(()=>c().getChildren().map(n=>{let r=n.getKey(),i=t.get(r);if(i?.node===n&&!e?.has(r))return i;let a=J(n);return{data:a,key:r,node:n,id:u(n,M)||r,pool:`${a.type}:${a.url??a.tag??a.listType??``}`}}))}replace(e,t,n,r=!1){let i=this.rows.findIndex(t=>t.id===e[0]);if(i<0||e.some((e,t)=>this.rows[i+t]?.id!==e))throw Error(`Virtual editor island is stale or noncontiguous`);let a=this.rows.slice(i,i+e.length).map(e=>e.key),o=Date.now(),s=r||this.lastEdit?.source===n&&this.lastEdit.ids===e.join(`,`)&&this.lastEdit.count===t.length&&t.length===e.length&&o-this.lastEdit.time<600;this.editor.update(()=>{let e=a.map(e=>l(e));if(e.some(e=>!e))throw Error(`Virtual editor block was removed`);let n;for(let r of t){let t=_(r);n?n.insertAfter(t):e[0].insertBefore(t),n=t}for(let t of e)t.remove()},{discrete:!0,tag:[s?`history-merge`:`history-push`,`virtual-island:${n}`]}),this.lastEdit={source:n,ids:e.join(`,`),time:o,count:t.length}}dispose(){this.unsubscribe()}},X=new Set([`paragraph`,`text`,`heading`,`quote`,`list`,`listitem`,`details`,`dynamic`]);function Z(e,t){let n=e.getChildren();t.forEach((t,r)=>{let i=n[r];if(i?.getType()===t.type&&X.has(t.type)){if(i.updateFromJSON(t),t.type===`details`){let e=i;e.setOpen(!!t.open),e.setSummary(t.summary)}else if(t.type===`dynamic`){let e=i;e.setUrl(t.url),e.setProps(t.props),e.setInitialHeight(t.initialHeight)}d(i)&&Z(i,t.children??[])}else{let n=_(t);i?i.replace(n):e.append(n)}});for(let e of n.slice(t.length))e.remove()}function Q(e){for(;e?.getParent()&&e.getParent().getType()!==`root`;)e=e.getParent();return e?.getParent()?e:null}function $(e,t){let n=document.caretPositionFromPoint?.(e,t);if(n)return{node:n.offsetNode,offset:n.offset};let r=document.caretRangeFromPoint?.(e,t);return r?{node:r.startContainer,offset:r.startOffset}:null}var re=class{constructor(e,t,n){if(b(this,`master`,void 0),b(this,`canvas`,void 0),b(this,`options`,void 0),b(this,`document`,void 0),b(this,`pool`,new V),b(this,`islands`,new Map),b(this,`states`,new Map),b(this,`viewport`,void 0),b(this,`preserve`,void 0),b(this,`documentBlocks`,new q(this)),b(this,`heights`,void 0),b(this,`revision`,0),b(this,`indices`,new Map),b(this,`listeners`,new Set),b(this,`observer`,void 0),b(this,`frame`,0),b(this,`dead`,!1),b(this,`width`,void 0),b(this,`metrics`,new Map),b(this,`firstParagraph`,-1),b(this,`selectionOwner`,void 0),b(this,`splitting`,new Set),b(this,`drag`,void 0),b(this,`previousRows`,[]),b(this,`onScroll`,()=>{this.refresh(),this.drag&&this.dragTo(this.drag.y)}),b(this,`onPointerDown`,e=>{if(e.button!==0)return;this.documentBlocks.clear();let t=this.pool.slots.find(t=>t.active&&t.element?.contains(e.target));if(!t)return;let n=this.pool.slots.find(e=>e.active&&e.id===this.selectionOwner),r=e.shiftKey&&n&&n!==t?n:t,i=this.island(r).editor.getRootElement();if(i){if(r!==t)e.preventDefault(),this.extendToPoint(r,i,e.clientX,e.clientY);else if(e.target.closest?.(`[contenteditable]`)!==i)return;this.drag={slot:r,y:e.clientY},document.addEventListener(`pointermove`,this.onPointerMove),document.addEventListener(`pointerup`,this.endDrag),document.addEventListener(`pointercancel`,this.endDrag)}}),b(this,`onPointerMove`,e=>{if(this.drag){if(!(e.buttons&1))return this.endDrag();this.drag.y=e.clientY,this.dragTo(e.clientY)}}),b(this,`endDrag`,()=>{this.drag=void 0,document.removeEventListener(`pointermove`,this.onPointerMove),document.removeEventListener(`pointerup`,this.endDrag),document.removeEventListener(`pointercancel`,this.endDrag)}),b(this,`onFocusIn`,e=>{let t=this.pool.slots.find(t=>t.element?.contains(e.target));t&&(this.selectionOwner=t.id)}),this.master=e,this.canvas=t,this.options=n,this.viewport=I(t,n.scrollContainer),this.preserve=new z(n.preserveCapacity??32,e=>{this.pool.slots.find(t=>t.id===e)?.beforeRelease?.()}),n.overscan!==void 0&&(!Number.isFinite(n.overscan)||n.overscan<0))throw Error(`Virtual editor overscan must be a nonnegative number`);this.document=new Y(e),this.indices=new Map(this.rows.map((e,t)=>[e.id,t])),this.firstParagraph=this.rows.findIndex(e=>e.data.type===`paragraph`),e.update(()=>c().markDirty(),{discrete:!0,tag:`history-merge`}),this.width=t.clientWidth;try{this.heights=this.buildHeights()}catch(e){throw this.document.dispose(),e}t.style.height=`${this.heights.total}px`,this.document.onChange=e=>{this.reconcileDocument(e)},this.previousRows=this.rows.map(e=>({id:e.id,data:e.data})),this.observer=new ResizeObserver(()=>this.queueMeasure()),this.observer.observe(t),this.viewport instanceof HTMLElement&&this.observer.observe(this.viewport),this.viewport.addEventListener(`scroll`,this.onScroll,{passive:!0}),window.addEventListener(`resize`,this.onScroll),t.addEventListener(`focusin`,this.onFocusIn),t.addEventListener(`pointerdown`,this.onPointerDown),this.refresh(!1)}get rows(){return this.document.rows}get scrollTop(){return this.viewport instanceof HTMLElement?this.viewport.scrollTop:window.scrollY}setScrollTop(e){this.viewport instanceof HTMLElement?this.viewport.scrollTop=e:window.scrollTo(window.scrollX,e)}viewportTop(){return this.viewport instanceof HTMLElement?this.viewport.getBoundingClientRect().top+this.viewport.clientTop:0}viewportHeight(){return this.viewport instanceof HTMLElement?this.viewport.clientHeight:window.innerHeight}canvasTop(){return this.canvas.getBoundingClientRect().top-this.viewportTop()+this.scrollTop}buildHeights(){return new U(this.rows.map(e=>this.estimate(e.data)))}estimate(e){let t=this.options.estimateBlockHeight?.(e,this.width)??B(e,this.width);if(!Number.isFinite(t)||t<=0)throw Error(`Virtual editor estimated height must be positive and finite`);return Math.max(24,t)}reconcileDocument(e){let t=this.anchor(),n=new Map(this.previousRows.map((e,t)=>[e.id,{...e,height:this.heights.values[t]}]));(this.rows.length!==this.previousRows.length||this.rows.some((e,t)=>e.id!==this.previousRows[t].id))&&(this.heights=new U(this.rows.map(e=>n.get(e.id)?.height??this.estimate(e.data))));let r=new Map(this.rows.map((e,t)=>[e.id,t]));this.indices=r,this.documentBlocks.prune(),this.firstParagraph=this.rows.findIndex(e=>e.data.type===`paragraph`);for(let e of this.metrics.keys())r.has(e)||this.metrics.delete(e);for(let t of this.pool.slots){let n=this.islands.get(t.id);if(!n)continue;let i=n.ids.flatMap(e=>r.get(e)??[]);n.ids=i.length>1?this.rows.slice(Math.min(...i),Math.max(...i)+1).map(e=>e.id):i.map(e=>this.rows[e].id),n.source=e===`virtual-island:${t.id}`,n.ids.length?(t.index=r.get(n.ids[0]),t.pool=this.rows[t.index].pool):(t.beforeRelease?.(),t.active=!1)}this.pool.slots=this.pool.slots.filter(e=>{let t=this.islands.get(e.id);return!t||t.ids.length?!0:(t.unsubscribe(),this.preserve.forget(e.id),this.islands.delete(e.id),this.pool.disposed++,!1)}),this.previousRows=this.rows.map(e=>({id:e.id,data:e.data})),this.restore(t),this.refresh(!1),this.publish(),this.queueMeasure()}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}publish(e=!0){if(this.dead||!this.listeners.size)return;this.revision++;let t=()=>this.listeners.forEach(e=>e());e?(0,G.flushSync)(t):t()}indexOf(e){return this.indices.get(e)}islandIds(e){for(let t of this.islands.values())if(t.editor===e)return t.ids}rowAt(e){let t=e-this.canvas.getBoundingClientRect().top-this.leadingMargin;return this.heights.find(Math.max(0,t))}dragTo(e){let t=this.drag?.slot;if(!t?.active)return;let n=this.rowAt(e);(n<t.index||n>=t.index+this.island(t).ids.length)&&this.extendIsland(t,n,!0)}extendToPoint(e,t,n,r){if(!this.extendIsland(e,this.rowAt(r),!0))return;let i=window.getSelection(),a=$(n,r);i?.anchorNode&&t.contains(i.anchorNode)&&a&&t.contains(a.node)&&i.extend(a.node,a.offset)}holdsSelection(e,t){return e.id===this.selectionOwner&&t.editor.getEditorState().read(()=>j()!==null)}refresh(e=!0){if(this.dead||!this.rows.length)return;let t=Math.max(0,this.scrollTop-this.canvasTop()),n=this.options.overscan??this.viewportHeight()*1.5,r=this.heights.find(Math.max(0,t-n)),i=this.heights.find(t+this.viewportHeight()+n),a=new Set,o=[],s=new Set;for(let e of this.pool.slots){let t=this.islands.get(e.id);if(t&&(e.active||this.preserve.has(e.id))){(t.retained||t.editor.isComposing()||e.element?.contains(document.activeElement)||this.holdsSelection(e,t))&&s.add(e.id);for(let n=1;n<t.ids.length;n++)a.add(e.index+n);t.ids.length>1&&e.index<r&&e.index+t.ids.length>r&&o.push(e.index)}}let c=[...o,...Array.from({length:i-r+1},(e,t)=>r+t)].filter(e=>!a.has(e)),l=new Set(c),u=new Set;for(let e of this.pool.slots)(l.has(e.index)||s.has(e.id))&&this.preserve.activate(e.id)&&u.add(e.id);for(let e of this.pool.slots)e.active&&!l.has(e.index)&&!s.has(e.id)&&this.preserve.park(e.id,this.islands.get(e.id)?.ids.join(`,`)??``);let d=new Set([...this.preserve.ids(),...u]),f=this.pool.update(c,e=>this.rows[e].pool,s,d);for(let[e,t]of this.islands)this.pool.slots.some(t=>t.id===e)||(t.unsubscribe(),t.editor.setRootElement(null),this.preserve.forget(e),this.islands.delete(e));f&&this.publish(e)}island(e){let t=this.islands.get(e.id);if(t)return t;let n=this.master.read(()=>h());return t={editor:n,ids:[],generation:-1,loading:!1,source:!1,data:``,unsubscribe:()=>{},retained:0},this.islands.set(e.id,t),t.unsubscribe=n.registerUpdateListener(({editorState:r,dirtyElements:i,dirtyLeaves:a,tags:o})=>{if(t.ids.length>1&&this.queueSplit(e),t.loading||!t.ids.length||o.has(`virtual-bind`)||!i.size&&!a.size)return;let s=r.toJSON().root.children;if(JSON.stringify(s)===t.data)return;let l=new Set;s.forEach((e,n)=>{let r=e.$?.blockId,i=this.indices.has(r)&&!t.ids.includes(r);(!r||l.has(r)||i)&&(r=n===0?t.ids[0]:C(8)),e.$={...e.$,blockId:r},l.add(r)});let u=[...t.ids];t.ids=s.map(e=>e.$.blockId),t.data=JSON.stringify(s),n.update(()=>c().getChildren().forEach((e,n)=>O(e,M,t.ids[n])),{tag:`virtual-bind`}),this.document.replace(u,s,String(e.id),o.has(`history-merge`))}),t}bind(e){let t=this.island(e),n=t.generation!==e.generation;n&&(t.ids=[this.rows[e.index].id]);let r=t.ids.map(e=>this.rows[this.indices.get(e)??-1]).filter(e=>!!e);if(!r.length)return;let i=r.map(e=>e.data),a=JSON.stringify(i);if(!n&&(t.source||a===t.data))t.source=!1,t.data=a;else{t.generation=e.generation,t.data=a,t.loading=!0;try{t.editor.update(()=>{Z(c(),i),n&&g(null)},{discrete:!0,tag:n?[`virtual-bind`,v]:`virtual-bind`})}finally{t.loading=!1}this.restorePanels(e),this.queueMeasure()}}attach(e,t){e.element&&this.observer.unobserve(e.element),e.element=t??void 0,t&&this.observer.observe(t)}mount(e,t){let n=this.pool.slots.filter(t=>t.active&&t.index>e.index).sort((e,t)=>e.index-t.index).map(e=>this.preserve.host(e.id)).find(e=>e?.parentElement===this.canvas);this.preserve.mount(e.id,t,e.active?this.canvas:null,n??null)}state(e){let t=this.states.get(e);return t||(t=new Map,this.states.set(e,t)),t}nodeState(e,t,n){let r=this.island(e),i=r.editor.getEditorState().read(()=>{let e=t?l(t):c().getFirstChild(),i=[];for(;e?.getParent()&&e.getParent().getType()!==`root`;)i.unshift(e.getIndexWithinParent()),e=e.getParent();let a=e?.getIndexWithinParent()??0;return`${a===0?n:r.ids[a]??n}:${i.join(`.`)}`});return this.state(i)}capturePanels(e){let t=this.islands.get(e.id)?.ids[0];t&&this.state(t).set(`details`,this.panels(e).map(({panel:e})=>e.open))}restorePanels(e){let t=this.state(this.island(e).ids[0]).get(`details`);this.panels(e).forEach(({panel:e,initialOpen:n},r)=>{e.open=t?.[r]??n})}panels(e){let t=this.island(e).editor;return t.getEditorState().read(()=>{let e=[],n=r=>{if(r.getType()===`details`){let n=t.getElementByKey(r.getKey());n instanceof HTMLDetailsElement&&e.push({panel:n,initialOpen:r.getOpen()})}d(r)&&r.getChildren().forEach(n)};return n(c()),e})}anchor(){let e=this.canvas.getBoundingClientRect(),t=document.elementFromPoint(e.left+e.width/2,Math.max(this.viewportTop()+8,e.top+1))?.closest(`[data-virtual-editor-slot]`),n=this.pool.slots.find(e=>e.active&&e.element===t)?.index??this.heights.find(Math.max(0,this.scrollTop-this.canvasTop()));return{id:this.previousRows[n]?.id??this.rows[n]?.id,offset:this.scrollTop-this.canvasTop()-this.blockOffset(n)}}restore(e){this.canvas.style.height=`${this.heights.total+this.leadingMargin}px`;let t=e.id?this.indices.get(e.id)??-1:-1;t>=0&&this.setScrollTop(this.canvasTop()+this.blockOffset(t)+e.offset)}queueMeasure(){!this.dead&&!this.frame&&(this.frame=requestAnimationFrame(()=>this.measure()))}slotOffset(e){return this.blockOffset(e.index)-(this.metrics.get(this.rows[e.index]?.id)?.top??0)}get leadingMargin(){return this.metrics.get(this.rows[0]?.id)?.top??0}blockOffset(e){return this.heights.offset(e)+this.leadingMargin}commitLayout(){cancelAnimationFrame(this.frame),this.measure(!1)}measure(e=!0){if(this.frame=0,this.dead)return;let t=this.anchor(),n=!1;Math.abs(this.canvas.clientWidth-this.width)>.5&&(this.width=this.canvas.clientWidth,this.metrics.clear(),this.heights=this.buildHeights(),n=!0);let r=new Set;for(let e of this.pool.slots){if(!e.active)continue;let t=this.islands.get(e.id),i=t?.editor.getRootElement();if(!i||!t?.ids.length)continue;let a=t.editor.getEditorState().read(()=>c().getChildren().map(e=>t.editor.getElementByKey(e.getKey())));a.forEach((e,n)=>{if(!e)return;let r=this.indices.get(t.ids[n])??-1,a=this.rows[r-1]?.data;e.toggleAttribute(`data-document-first`,r===0&&e===i.firstElementChild),e.toggleAttribute(`data-document-last`,r===this.rows.length-1&&e===i.lastElementChild),e.toggleAttribute(`data-document-first-paragraph`,r===this.firstParagraph),e.dataset.documentPrevTag=a?.type===`heading`?a.tag:a?.type===`horizontalrule`?`hr`:``});let o=i.getBoundingClientRect(),s=a.map(e=>e?.getBoundingClientRect());t.ids.forEach((e,i)=>{let c=this.indices.get(e)??-1,l=a[i];if(c<0||!l)return;l.dataset.blockId=e;let u=s[i],d=getComputedStyle(l),f=i===0?u.top-o.top:parseFloat(d.marginTop)||0,p=i===t.ids.length-1?o.bottom-u.bottom:parseFloat(d.marginBottom)||0;Math.abs(f-(this.metrics.get(e)?.top??0))>.1&&(n=!0),this.metrics.set(e,{height:u.height,top:f,bottom:p,gap:s[i+1]?s[i+1].top-u.bottom:void 0}),r.add(c),c>0&&r.add(c-1)})}for(let e of r){let t=this.metrics.get(this.rows[e].id);if(!t)continue;let r=Math.max(1,H(t,this.metrics.get(this.rows[e+1]?.id)));Math.abs(r-this.heights.values[e])>.1&&(this.heights.update(e,r),n=!0)}n&&(this.restore(t),this.refresh(!1),this.publish(e))}scrollTo(e){this.setScrollTop(this.canvasTop()+this.blockOffset(Math.max(0,Math.min(e,this.rows.length-1)))),this.refresh()}focusBlock(e,t=!1,n=!0){e<0||e>=this.rows.length||(n&&this.scrollTo(e),requestAnimationFrame(()=>{let r=this.pool.slots.find(t=>t.active&&this.islands.get(t.id)?.ids.includes(this.rows[e]?.id));if(!r)return;let{editor:i}=this.island(r);i.getRootElement()?.focus({preventScroll:!0}),i.update(()=>{t?c().selectEnd():c().selectStart()},{tag:n?void 0:a})}))}extendIsland(e,t,n=!1){let r=this.island(e),i=e.index,a=i+r.ids.length-1,o=Math.max(0,Math.min(t,this.rows.length-1));if(o>=i&&o<=a)return!0;let s=o<i,l=s?this.rows.slice(o,i):this.rows.slice(a+1,o+1);if(r.ids.length+l.length>(this.options.selectionMergeLimit??200))return!1;let u=new Set(l.map(e=>e.id)),d=this.pool.slots.filter(t=>t!==e&&this.islands.get(t.id)?.ids.some(e=>u.has(e)));if(d.some(e=>{let t=this.islands.get(e.id);return t.retained>0||t.editor.isComposing()}))return!1;for(let e of d)e.beforeRelease?.(),e.active=!1,this.islands.get(e.id).generation=-1;return r.ids=s?[...u,...r.ids]:[...r.ids,...u],s&&(e.index=o),r.data=JSON.stringify(r.ids.map(e=>this.rows[this.indices.get(e)].data)),r.editor.update(()=>{let e=l.map(e=>_(e.data)),t=c().getFirstChild();s&&t?e.forEach(e=>t.insertBefore(e)):c().append(...e)},{discrete:!0,tag:[`virtual-bind`,v]}),this.refresh(!1),this.publish(n),this.queueMeasure(),!0}extendForKey(e,t){let n=this.island(e),r=t===`down`||t===`right`,i=n.editor.getEditorState().read(()=>{let e=j();if(!p(e))return!1;let n=c(),i=e.focus.getNode();if(t===`up`||t===`down`)return Q(i)?.is(r?n.getLastChild():n.getFirstChild())??!1;let a=r?n.getLastDescendant():n.getFirstDescendant();return!!a&&i.is(a)&&e.focus.offset===(r?a.getTextContentSize():0)}),a=r?e.index+n.ids.length:e.index-1;return!i||a<0||a>=this.rows.length?!1:this.extendIsland(e,a)}splitIsland(e){let t=this.islands.get(e.id);if(!t||t.ids.length<2)return;let n=t.editor.getEditorState().read(()=>{let e=j();return Q(p(e)?e.focus.getNode():null)?.getIndexWithinParent()??0}),r=t.ids[n]??t.ids[0];t.ids=[r],e.index=this.indices.get(r),t.data=JSON.stringify([this.rows[e.index].data]),t.editor.update(()=>c().getChildren().forEach((e,t)=>{t!==n&&e.remove()}),{discrete:!0,tag:`virtual-bind`}),this.refresh(!1),this.publish(),this.queueMeasure()}queueSplit(e){this.splitting.has(e.id)||(this.splitting.add(e.id),requestAnimationFrame(()=>{this.splitting.delete(e.id);let t=this.islands.get(e.id);if(this.dead||!e.active||!t||t.editor.isComposing())return;let n=window.getSelection(),r=t.editor.getRootElement();n&&!n.isCollapsed&&n.anchorNode&&r?.contains(n.anchorNode)||t.editor.getEditorState().read(()=>{let e=j();return e===null||p(e)&&e.isCollapsed()})&&this.splitIsland(e)}))}joinNeighbor(e,t){let n=this.island(e),r=t?e.index-1:e.index+n.ids.length,i=this.rows[r];if(!i)return!1;for(let t of this.pool.slots)t!==e&&this.islands.get(t.id)?.ids.includes(i.id)&&(t.beforeRelease?.(),t.active=!1);return n.ids=t?[i.id,...n.ids]:[...n.ids,i.id],t&&(e.index=r),n.editor.update(()=>{let e=_(i.data);t?c().getFirstChild().insertBefore(e):c().append(e);let n=j();p(n)&&n.deleteCharacter(t)},{discrete:!0}),!0}dispose(){this.dead=!0,this.document.dispose(),this.observer.disconnect(),cancelAnimationFrame(this.frame),this.viewport.removeEventListener(`scroll`,this.onScroll),window.removeEventListener(`resize`,this.onScroll),this.canvas.removeEventListener(`focusin`,this.onFocusIn),this.canvas.removeEventListener(`pointerdown`,this.onPointerDown),this.endDrag();for(let e of this.islands.values())e.unsubscribe();this.listeners.clear(),this.preserve.clear()}};function ie({controller:e,slot:t}){let[n]=D();return(0,W.useEffect)(()=>{let r=e=>{let t=j();if(!p(t)||!t.isCollapsed())return!1;let n=e?c().getLastDescendant():c().getFirstDescendant();return!!n&&t.anchor.key===n.getKey()&&t.anchor.offset===(e?n.getTextContentSize():0)},i=n=>(e.extendForKey(t,n),!1),a=[n.registerCommand(f,()=>(e.master.dispatchCommand(f,void 0),!0),4),n.registerCommand(o,()=>(e.master.dispatchCommand(o,void 0),!0),4),n.registerCommand(w,n=>!r(!1)||!e.joinNeighbor(t,!0)?!1:(n?.preventDefault(),!0),4),n.registerCommand(ee,n=>!r(!0)||!e.joinNeighbor(t,!1)?!1:(n?.preventDefault(),!0),4),n.registerCommand(m,n=>n?.shiftKey?i(`up`):!r(!1)||t.index===0?!1:(n?.preventDefault(),e.focusBlock(t.index-1,!0),!0),4),n.registerCommand(y,n=>{if(n?.shiftKey)return i(`down`);if(!r(!0))return!1;let a=t.index+e.island(t).ids.length;return a>=e.rows.length?!1:(n?.preventDefault(),e.focusBlock(a),!0)},4),n.registerCommand(E,e=>!!e.shiftKey&&i(`left`),4),n.registerCommand(te,e=>!!e.shiftKey&&i(`right`),4)];return()=>a.forEach(e=>e())},[e,n,t]),null}function ae({controller:e,slot:t,plugins:n,onActiveEditorChange:r,onRelease:a,retainSurface:o,placeholder:s}){let c=e.island(t),l=e.rows[t.index],u=`${t.generation}:${t.active}`,[d,f]=(0,W.useState)(``),[p]=(0,W.useState)(()=>{let e=document.createElement(`div`);return e.style.display=`contents`,e}),m=t.active||e.preserve.has(t.id),h=k(),g=(0,W.useMemo)(()=>({blockId:l.id,active:t.active,editor:c.editor,documentBlocks:e.documentBlocks,nodeState:n=>e.nodeState(t,n,l.id),retain:()=>{c.retained++;let t=o(),n=!1;return()=>{n||(n=!0,c.retained--,t(),e.refresh(!1))}}}),[e,c.editor,o,l.id,t,t.active,t.generation]),_=(0,W.useCallback)(n=>e.attach(t,n),[e,t]);return(0,W.useLayoutEffect)(()=>{e.mount(t,p),m?e.bind(t):c.generation=-1,t.beforeRelease=()=>{e.capturePanels(t),a(c.editor)}}),(0,W.useLayoutEffect)(()=>()=>p.remove(),[p]),(0,W.useLayoutEffect)(()=>{let e=requestAnimationFrame(()=>{e=requestAnimationFrame(()=>f(u))});return()=>cancelAnimationFrame(e)},[u]),(0,G.createPortal)((0,K.jsx)(`div`,{className:R,"data-pool":t.pool,"data-restoring":d===u?void 0:``,"data-virtual-editor-block":t.active?l.id:void 0,"data-virtual-editor-slot":t.id,ref:_,style:{display:t.active?void 0:`none`,transform:`translateY(${e.slotOffset(t)}px)`},onFocusCapture:()=>r(c.editor),children:(0,K.jsx)(i,{value:g,children:m&&(0,K.jsxs)(P,{skipCollabChecks:!0,initialEditor:c.editor,children:[(0,K.jsx)(ne,{ErrorBoundary:A,contentEditable:(0,K.jsx)(N,{"aria-label":`Document block`,"aria-placeholder":s??``,className:`rich-editor__content qi8t62`,"data-virtual-editor-content":``,placeholder:(0,K.jsx)(`div`,{className:`b94s952`,style:{top:0,left:0,display:s?void 0:`none`},children:s})})}),t.active&&n,(0,K.jsx)(ie,{controller:e,slot:t}),t.active&&h]})})}),p,String(t.id))}function oe({controller:e,plugins:t,onActiveEditorChange:n,onRelease:r,retainSurface:i,placeholder:a}){let[,o]=(0,W.useState)(0);return(0,W.useLayoutEffect)(()=>e.subscribe(()=>o(e=>e+1)),[e]),(0,W.useLayoutEffect)(()=>e.commitLayout()),(0,K.jsx)(K.Fragment,{children:e.pool.slots.map(o=>(0,K.jsx)(ae,{controller:e,plugins:t,retainSurface:i,slot:o,placeholder:e.rows.length===1&&e.rows[0].data.type===`paragraph`&&!(e.rows[0].data.children??[]).some(e=>e.type!==`text`||e.text)?a:void 0,onActiveEditorChange:n,onRelease:r},o.id))})}function se({options:e,className:t,plugins:n,autoFocus:r,hasHeader:i,onActiveEditorChange:a,retainSurface:o,placeholder:c}){let[l]=D(),{scrollContainer:u,overscan:d,estimateBlockHeight:f,preserveCapacity:p,selectionMergeLimit:m}=e,h=(0,W.useMemo)(()=>({scrollContainer:u,overscan:d,estimateBlockHeight:f,preserveCapacity:p,selectionMergeLimit:m}),[u,d,f,p,m]),g=(0,W.useRef)(null),_=(0,W.useCallback)(e=>{g.current=e,a(e)},[a]),v=(0,W.useCallback)(e=>{g.current===e&&_(null)},[_]),y=(0,W.useRef)(null),[b,x]=(0,W.useState)(null),[C,w]=(0,W.useState)(``);return(0,W.useEffect)(()=>{x(null),w(``);let e=y.current,t;try{t=new re(l,e,h),x(t),Object.assign(e,{virtualEditor:t})}catch(e){w(String(e));return}return()=>{_(null),t.dispose(),Reflect.deleteProperty(e,`virtualEditor`)}},[l,_,h]),(0,W.useEffect)(()=>{b&&r&&b.focusBlock(0,!1,!1)},[r,b]),(0,K.jsxs)(`div`,{className:`rich-editor__content-wrapper ${s}`,style:{"--ce-padding-top":`${i?40:12}px`},children:[C&&(0,K.jsx)(`p`,{role:`alert`,children:C}),(0,K.jsx)(`div`,{className:`${S} ${t??``}`,children:(0,K.jsx)(`div`,{className:L,"data-virtual-editor":``,ref:y,children:b&&(0,K.jsx)(oe,{controller:b,placeholder:c,plugins:n,retainSurface:o,onActiveEditorChange:_,onRelease:v})})})]})}export{se as VirtualizedEditor};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{y as t}from"./route-IxDJQ-oO.js";import{t as n}from"./react-B8SKf8RM.js";import{t as r}from"./jsx-runtime-DePvh3-m.js";import{$t as i}from"./channel-CMKOAKFL.js";import{a,c as o,i as s,l as c,n as l,o as u,r as d,s as f,t as p}from"./viewport-CFJHn_Y6-B-kdQ7xr.js";import{n as m}from"./DocumentPage-Dw7m0Oxi.js";var h=e(n(),1),g=r(),_=e(t(),1);function v(e){"@babel/helpers - typeof";return v=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},v(e)}function y(e,t){if(v(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(v(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function b(e){var t=y(e,`string`);return v(t)==`symbol`?t:t+``}function x(e,t,n){return(t=b(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var S=class{constructor(e,t,n){if(x(this,`document`,void 0),x(this,`canvas`,void 0),x(this,`options`,void 0),x(this,`pool`,new d),x(this,`preserve`,void 0),x(this,`viewport`,void 0),x(this,`states`,new Map),x(this,`retained`,new Map),x(this,`heights`,void 0),x(this,`metrics`,new Map),x(this,`listeners`,new Set),x(this,`observer`,void 0),x(this,`width`,void 0),x(this,`frame`,0),x(this,`dead`,!1),x(this,`firstParagraph`,void 0),x(this,`onScroll`,()=>this.refresh()),x(this,`onFocusOut`,()=>queueMicrotask(()=>{this.dead||this.refresh()})),x(this,`queueMeasure`,()=>{!this.dead&&!this.frame&&(this.frame=requestAnimationFrame(()=>this.measure()))}),x(this,`onHash`,()=>{let e;try{e=decodeURIComponent(window.location.hash.slice(1))}catch{return}let t=this.document.headingRows.get(e);if(t!==void 0){this.scrollTo(t);let n=this.canvas.querySelector(`#${CSS.escape(e)}`);n&&this.setScrollTop(this.scrollTop+n.getBoundingClientRect().top-this.viewportTop())}}),this.document=e,this.canvas=t,this.options=n,n.overscan!==void 0&&(!Number.isFinite(n.overscan)||n.overscan<0))throw Error(`Renderer overscan must be a nonnegative number`);this.viewport=o(t,n.scrollContainer),this.preserve=new l(n.preserveCapacity??32,e=>{let t=this.pool.slots.find(t=>t.id===e);t?.beforeRelease?.(),t&&(t.committed=-1)}),this.width=t.clientWidth,this.heights=this.buildHeights(),this.firstParagraph=this.rows.flatMap(e=>e.blocks).find(e=>e.data.type===`paragraph`)?.index??-1,this.canvas.style.height=`${this.heights.total}px`,this.observer=new ResizeObserver(this.queueMeasure),this.observer.observe(t),this.viewport instanceof HTMLElement&&this.observer.observe(this.viewport),this.viewport.addEventListener(`scroll`,this.onScroll,{passive:!0}),this.canvas.addEventListener(`focusout`,this.onFocusOut),window.addEventListener(`resize`,this.onScroll),window.addEventListener(`hashchange`,this.onHash),this.refresh(!1),queueMicrotask(()=>{this.dead||this.onHash()})}get rows(){return this.document.rows}get scrollTop(){return this.viewport instanceof HTMLElement?this.viewport.scrollTop:window.scrollY}setScrollTop(e){this.viewport instanceof HTMLElement?this.viewport.scrollTop=e:window.scrollTo(window.scrollX,e)}viewportTop(){return this.viewport instanceof HTMLElement?this.viewport.getBoundingClientRect().top+this.viewport.clientTop:0}viewportHeight(){return this.viewport instanceof HTMLElement?this.viewport.clientHeight:window.innerHeight}canvasTop(){return this.canvas.getBoundingClientRect().top-this.viewportTop()+this.scrollTop}buildHeights(){return new p(this.rows.map(e=>e.blocks.reduce((e,t)=>{let n=this.options.estimateBlockHeight?.(t.data,this.width)??u(t.data,this.width);if(!Number.isFinite(n)||n<=0)throw Error(`Renderer estimated height must be positive and finite`);return e+n},0)))}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}publish(e=!0){if(this.dead||!this.listeners.size)return;let t=()=>this.listeners.forEach(e=>e());e?(0,_.flushSync)(t):t()}refresh(e=!0){if(this.dead||!this.rows.length)return;let t=Math.max(0,this.scrollTop-this.canvasTop()),n=this.options.overscan??this.viewportHeight()*1.5,r=this.heights.find(Math.max(0,t-n)),i=this.heights.find(t+this.viewportHeight()+n),a=Array.from({length:i-r+1},(e,t)=>r+t),o=new Set(a),s=new Set(this.pool.slots.filter(e=>e.active&&(this.retained.get(e.id)||e.element?.contains(globalThis.document.activeElement))).map(e=>e.id)),c=new Set;for(let e of this.pool.slots)(o.has(e.index)||s.has(e.id))&&this.preserve.activate(e.id)&&c.add(e.id);for(let e of this.pool.slots)e.active&&!o.has(e.index)&&!s.has(e.id)&&this.preserve.park(e.id,this.rows[e.index].id);let l=this.pool.slots.map(e=>e.id),u=this.pool.update(a,e=>this.rows[e].pool,s,new Set([...this.preserve.ids(),...c]));for(let e of l)this.pool.slots.some(t=>t.id===e)||this.preserve.forget(e);u&&this.publish(e)}mount(e,t){let n=this.pool.slots.filter(t=>t.active&&t.index>e.index).sort((e,t)=>e.index-t.index).map(e=>this.preserve.host(e.id)).find(e=>e?.parentElement===this.canvas);this.preserve.mount(e.id,t,e.active?this.canvas:null,n??null)}attach(e,t){e.element&&this.observer.unobserve(e.element),e.element=t??void 0,t&&this.observer.observe(t)}nodeState(e,t){let n=`${e}:${this.document.nodePath(t)}`,r=this.states.get(n);return r||(r=new Map,this.states.set(n,r)),r}capturePanels(e){this.nodeState(this.rows[e.index].id).set(`details`,[...e.element?.querySelectorAll(`details`)??[]].map(e=>e.open))}bind(e){if(e.committed===e.generation)return;e.committed=e.generation;let t=this.nodeState(this.rows[e.index].id).get(`details`),n=[],r=e=>{e.type===`details`&&n.push(!!e.open),e.children?.forEach(r)};r(this.rows[e.index].data),e.element?.querySelectorAll(`details`).forEach((e,r)=>e.open=t?.[r]??n[r]??!1)}get leadingMargin(){return this.metrics.get(this.rows[0]?.id)?.top??0}blockOffset(e){return this.heights.offset(e)+this.leadingMargin}slotOffset(e){return this.blockOffset(e.index)-(this.metrics.get(this.rows[e.index]?.id)?.top??0)}anchor(){let e=this.canvas.getBoundingClientRect(),t=globalThis.document.elementFromPoint(e.left+e.width/2,Math.max(this.viewportTop()+8,e.top+1))?.closest(`[data-virtual-renderer-slot]`),n=this.pool.slots.find(e=>e.active&&e.element===t)?.index??this.heights.find(Math.max(0,this.scrollTop-this.canvasTop()));return{index:n,offset:this.scrollTop-this.canvasTop()-this.blockOffset(n)}}commitLayout(){cancelAnimationFrame(this.frame),this.measure(!1)}measure(e=!0){if(this.frame=0,this.dead)return;let t=this.anchor(),n=!1;Math.abs(this.canvas.clientWidth-this.width)>.5&&(this.width=this.canvas.clientWidth,this.metrics.clear(),this.heights=this.buildHeights(),n=!0);let r=new Set;for(let e of this.pool.slots){if(!e.active)continue;let t=e.element?.firstElementChild;if(!t)continue;t.setAttribute(`data-rich-nested`,this.canvas.closest(`.rich-content`)?.getAttribute(`data-rich-nested`)??`false`);let i=[...t.children],a=this.rows[e.index].blocks;i.forEach((t,n)=>{let r=a[n];if(!r)return;t.dataset.blockId=r.id,t.dataset.rendererBlockIndex=String(r.index),t.toggleAttribute(`data-document-first`,e.index===0&&n===0),t.toggleAttribute(`data-document-last`,e.index===this.rows.length-1&&n===i.length-1),t.toggleAttribute(`data-document-first-paragraph`,r.index===this.firstParagraph);let o=a[n-1]?.data??this.rows[e.index-1]?.blocks.at(-1)?.data;t.dataset.documentPrevTag=o?.type===`heading`?o.tag:o?.type===`horizontalrule`?`hr`:``});let o=t.getBoundingClientRect(),s=i.filter(e=>getComputedStyle(e).display!==`none`).map(e=>e.getBoundingClientRect()),c=s.length?Math.min(...s.map(e=>e.top)):o.top,l=s.length?Math.max(...s.map(e=>e.bottom)):o.bottom,u=c-o.top;Math.abs(u-(this.metrics.get(this.rows[e.index].id)?.top??0))>.1&&(n=!0),this.metrics.set(this.rows[e.index].id,{height:l-c,top:u,bottom:o.bottom-l}),r.add(e.index),e.index>0&&r.add(e.index-1)}for(let e of r){let t=this.metrics.get(this.rows[e].id);if(!t)continue;let r=Math.max(0,f(t,this.metrics.get(this.rows[e+1]?.id)));Math.abs(r-this.heights.values[e])>.1&&(this.heights.update(e,r),n=!0)}n&&(this.canvas.style.height=`${this.heights.total+this.leadingMargin}px`,this.setScrollTop(this.canvasTop()+this.blockOffset(t.index)+t.offset),this.refresh(!1),this.publish(e))}scrollTo(e){this.rows.length&&(this.setScrollTop(this.canvasTop()+this.blockOffset(Math.max(0,Math.min(e,this.rows.length-1)))),this.refresh())}dispose(){this.dead=!0,this.observer.disconnect(),cancelAnimationFrame(this.frame),this.viewport.removeEventListener(`scroll`,this.onScroll),this.canvas.removeEventListener(`focusout`,this.onFocusOut),window.removeEventListener(`resize`,this.onScroll),window.removeEventListener(`hashchange`,this.onHash),this.preserve.clear(),this.listeners.clear()}};function C({controller:e,slot:t}){let n=e.rows[t.index],[r]=(0,h.useState)(()=>{let e=document.createElement(`div`);return e.style.display=`contents`,e}),o=t.active||e.preserve.has(t.id),s=`${t.generation}:${t.active}`,[l,u]=(0,h.useState)(``),d=(0,h.useMemo)(()=>e.document.render(t.index,t.id),[e,t.generation,t.id]),f=(0,h.useMemo)(()=>({active:t.active,blockId:n.id,editor:e.document.editor,nodeState:t=>e.nodeState(n.id,t),retain:()=>{e.retained.set(t.id,(e.retained.get(t.id)??0)+1);let n=!1;return()=>{if(n)return;n=!0;let r=(e.retained.get(t.id)??1)-1;r?e.retained.set(t.id,r):e.retained.delete(t.id),e.refresh(!1)}}}),[e,n.id,t.active,t.generation,t.id]),p=(0,h.useCallback)(n=>e.attach(t,n),[e,t]);return(0,h.useLayoutEffect)(()=>{e.mount(t,r),o?e.bind(t):t.committed=-1,t.beforeRelease=()=>e.capturePanels(t)}),(0,h.useLayoutEffect)(()=>()=>r.remove(),[r]),(0,h.useEffect)(()=>{let e=requestAnimationFrame(()=>{e=requestAnimationFrame(()=>u(s))});return()=>cancelAnimationFrame(e)},[s]),(0,_.createPortal)((0,g.jsx)(`div`,{className:c,"data-pool":n.pool,"data-restoring":s===l?void 0:``,"data-virtual-renderer-block":t.active?n.id:void 0,"data-virtual-renderer-slot":t.id,ref:p,style:{display:t.active?void 0:`none`,transform:`translateY(${e.slotOffset(t)}px)`},children:(0,g.jsx)(`div`,{className:a,"data-virtual-renderer-content":``,children:(0,g.jsx)(i,{value:f,children:o&&d})})}),r,String(t.id))}function w({controller:e}){let[,t]=(0,h.useState)(0);return(0,h.useLayoutEffect)(()=>e.subscribe(()=>t(e=>e+1)),[e]),(0,h.useLayoutEffect)(()=>e.commitLayout()),(0,g.jsx)(g.Fragment,{children:e.pool.slots.map(t=>(0,g.jsx)(C,{controller:e,slot:t},t.id))})}function T({document:e,options:t}){let n=(0,h.useRef)(null),[r,i]=(0,h.useState)(null),[a,o]=(0,h.useState)(``);return(0,h.useEffect)(()=>{let r=n.current,a;try{a=new S(e,r,t),o(``),i(a),Object.assign(r,{virtualRenderer:a})}catch(e){o(String(e)),i(null);return}return()=>{a.dispose(),Reflect.deleteProperty(r,`virtualRenderer`)}},[e,t]),(0,g.jsxs)(g.Fragment,{children:[a&&(0,g.jsx)(`p`,{role:`alert`,children:a}),(0,g.jsx)(`div`,{className:s,"data-virtual-renderer":``,ref:n,children:r?(0,g.jsx)(w,{controller:r}):(0,g.jsx)(m,{document:e})})]})}export{T as VirtualizedRenderer};
|
|
1
|
+
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{y as t}from"./route-IxDJQ-oO.js";import{t as n}from"./react-B8SKf8RM.js";import{t as r}from"./jsx-runtime-DePvh3-m.js";import{$t as i}from"./channel-N_XGshwu.js";import{a,c as o,i as s,l as c,n as l,o as u,r as d,s as f,t as p}from"./viewport-CFJHn_Y6-DoDATgb9.js";import{n as m}from"./DocumentPage-xNNNq2h-.js";var h=e(n(),1),g=r(),_=e(t(),1);function v(e){"@babel/helpers - typeof";return v=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},v(e)}function y(e,t){if(v(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(v(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function b(e){var t=y(e,`string`);return v(t)==`symbol`?t:t+``}function x(e,t,n){return(t=b(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var S=class{constructor(e,t,n){if(x(this,`document`,void 0),x(this,`canvas`,void 0),x(this,`options`,void 0),x(this,`pool`,new d),x(this,`preserve`,void 0),x(this,`viewport`,void 0),x(this,`states`,new Map),x(this,`retained`,new Map),x(this,`heights`,void 0),x(this,`metrics`,new Map),x(this,`listeners`,new Set),x(this,`observer`,void 0),x(this,`width`,void 0),x(this,`frame`,0),x(this,`dead`,!1),x(this,`firstParagraph`,void 0),x(this,`onScroll`,()=>this.refresh()),x(this,`onFocusOut`,()=>queueMicrotask(()=>{this.dead||this.refresh()})),x(this,`queueMeasure`,()=>{!this.dead&&!this.frame&&(this.frame=requestAnimationFrame(()=>this.measure()))}),x(this,`onHash`,()=>{let e;try{e=decodeURIComponent(window.location.hash.slice(1))}catch{return}let t=this.document.headingRows.get(e);if(t!==void 0){this.scrollTo(t);let n=this.canvas.querySelector(`#${CSS.escape(e)}`);n&&this.setScrollTop(this.scrollTop+n.getBoundingClientRect().top-this.viewportTop())}}),this.document=e,this.canvas=t,this.options=n,n.overscan!==void 0&&(!Number.isFinite(n.overscan)||n.overscan<0))throw Error(`Renderer overscan must be a nonnegative number`);this.viewport=o(t,n.scrollContainer),this.preserve=new l(n.preserveCapacity??32,e=>{let t=this.pool.slots.find(t=>t.id===e);t?.beforeRelease?.(),t&&(t.committed=-1)}),this.width=t.clientWidth,this.heights=this.buildHeights(),this.firstParagraph=this.rows.flatMap(e=>e.blocks).find(e=>e.data.type===`paragraph`)?.index??-1,this.canvas.style.height=`${this.heights.total}px`,this.observer=new ResizeObserver(this.queueMeasure),this.observer.observe(t),this.viewport instanceof HTMLElement&&this.observer.observe(this.viewport),this.viewport.addEventListener(`scroll`,this.onScroll,{passive:!0}),this.canvas.addEventListener(`focusout`,this.onFocusOut),window.addEventListener(`resize`,this.onScroll),window.addEventListener(`hashchange`,this.onHash),this.refresh(!1),queueMicrotask(()=>{this.dead||this.onHash()})}get rows(){return this.document.rows}get scrollTop(){return this.viewport instanceof HTMLElement?this.viewport.scrollTop:window.scrollY}setScrollTop(e){this.viewport instanceof HTMLElement?this.viewport.scrollTop=e:window.scrollTo(window.scrollX,e)}viewportTop(){return this.viewport instanceof HTMLElement?this.viewport.getBoundingClientRect().top+this.viewport.clientTop:0}viewportHeight(){return this.viewport instanceof HTMLElement?this.viewport.clientHeight:window.innerHeight}canvasTop(){return this.canvas.getBoundingClientRect().top-this.viewportTop()+this.scrollTop}buildHeights(){return new p(this.rows.map(e=>e.blocks.reduce((e,t)=>{let n=this.options.estimateBlockHeight?.(t.data,this.width)??u(t.data,this.width);if(!Number.isFinite(n)||n<=0)throw Error(`Renderer estimated height must be positive and finite`);return e+n},0)))}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}publish(e=!0){if(this.dead||!this.listeners.size)return;let t=()=>this.listeners.forEach(e=>e());e?(0,_.flushSync)(t):t()}refresh(e=!0){if(this.dead||!this.rows.length)return;let t=Math.max(0,this.scrollTop-this.canvasTop()),n=this.options.overscan??this.viewportHeight()*1.5,r=this.heights.find(Math.max(0,t-n)),i=this.heights.find(t+this.viewportHeight()+n),a=Array.from({length:i-r+1},(e,t)=>r+t),o=new Set(a),s=new Set(this.pool.slots.filter(e=>e.active&&(this.retained.get(e.id)||e.element?.contains(globalThis.document.activeElement))).map(e=>e.id)),c=new Set;for(let e of this.pool.slots)(o.has(e.index)||s.has(e.id))&&this.preserve.activate(e.id)&&c.add(e.id);for(let e of this.pool.slots)e.active&&!o.has(e.index)&&!s.has(e.id)&&this.preserve.park(e.id,this.rows[e.index].id);let l=this.pool.slots.map(e=>e.id),u=this.pool.update(a,e=>this.rows[e].pool,s,new Set([...this.preserve.ids(),...c]));for(let e of l)this.pool.slots.some(t=>t.id===e)||this.preserve.forget(e);u&&this.publish(e)}mount(e,t){let n=this.pool.slots.filter(t=>t.active&&t.index>e.index).sort((e,t)=>e.index-t.index).map(e=>this.preserve.host(e.id)).find(e=>e?.parentElement===this.canvas);this.preserve.mount(e.id,t,e.active?this.canvas:null,n??null)}attach(e,t){e.element&&this.observer.unobserve(e.element),e.element=t??void 0,t&&this.observer.observe(t)}nodeState(e,t){let n=`${e}:${this.document.nodePath(t)}`,r=this.states.get(n);return r||(r=new Map,this.states.set(n,r)),r}capturePanels(e){this.nodeState(this.rows[e.index].id).set(`details`,[...e.element?.querySelectorAll(`details`)??[]].map(e=>e.open))}bind(e){if(e.committed===e.generation)return;e.committed=e.generation;let t=this.nodeState(this.rows[e.index].id).get(`details`),n=[],r=e=>{e.type===`details`&&n.push(!!e.open),e.children?.forEach(r)};r(this.rows[e.index].data),e.element?.querySelectorAll(`details`).forEach((e,r)=>e.open=t?.[r]??n[r]??!1)}get leadingMargin(){return this.metrics.get(this.rows[0]?.id)?.top??0}blockOffset(e){return this.heights.offset(e)+this.leadingMargin}slotOffset(e){return this.blockOffset(e.index)-(this.metrics.get(this.rows[e.index]?.id)?.top??0)}anchor(){let e=this.canvas.getBoundingClientRect(),t=globalThis.document.elementFromPoint(e.left+e.width/2,Math.max(this.viewportTop()+8,e.top+1))?.closest(`[data-virtual-renderer-slot]`),n=this.pool.slots.find(e=>e.active&&e.element===t)?.index??this.heights.find(Math.max(0,this.scrollTop-this.canvasTop()));return{index:n,offset:this.scrollTop-this.canvasTop()-this.blockOffset(n)}}commitLayout(){cancelAnimationFrame(this.frame),this.measure(!1)}measure(e=!0){if(this.frame=0,this.dead)return;let t=this.anchor(),n=!1;Math.abs(this.canvas.clientWidth-this.width)>.5&&(this.width=this.canvas.clientWidth,this.metrics.clear(),this.heights=this.buildHeights(),n=!0);let r=new Set;for(let e of this.pool.slots){if(!e.active)continue;let t=e.element?.firstElementChild;if(!t)continue;t.setAttribute(`data-rich-nested`,this.canvas.closest(`.rich-content`)?.getAttribute(`data-rich-nested`)??`false`);let i=[...t.children],a=this.rows[e.index].blocks;i.forEach((t,n)=>{let r=a[n];if(!r)return;t.dataset.blockId=r.id,t.dataset.rendererBlockIndex=String(r.index),t.toggleAttribute(`data-document-first`,e.index===0&&n===0),t.toggleAttribute(`data-document-last`,e.index===this.rows.length-1&&n===i.length-1),t.toggleAttribute(`data-document-first-paragraph`,r.index===this.firstParagraph);let o=a[n-1]?.data??this.rows[e.index-1]?.blocks.at(-1)?.data;t.dataset.documentPrevTag=o?.type===`heading`?o.tag:o?.type===`horizontalrule`?`hr`:``});let o=t.getBoundingClientRect(),s=i.filter(e=>getComputedStyle(e).display!==`none`).map(e=>e.getBoundingClientRect()),c=s.length?Math.min(...s.map(e=>e.top)):o.top,l=s.length?Math.max(...s.map(e=>e.bottom)):o.bottom,u=c-o.top;Math.abs(u-(this.metrics.get(this.rows[e.index].id)?.top??0))>.1&&(n=!0),this.metrics.set(this.rows[e.index].id,{height:l-c,top:u,bottom:o.bottom-l}),r.add(e.index),e.index>0&&r.add(e.index-1)}for(let e of r){let t=this.metrics.get(this.rows[e].id);if(!t)continue;let r=Math.max(0,f(t,this.metrics.get(this.rows[e+1]?.id)));Math.abs(r-this.heights.values[e])>.1&&(this.heights.update(e,r),n=!0)}n&&(this.canvas.style.height=`${this.heights.total+this.leadingMargin}px`,this.setScrollTop(this.canvasTop()+this.blockOffset(t.index)+t.offset),this.refresh(!1),this.publish(e))}scrollTo(e){this.rows.length&&(this.setScrollTop(this.canvasTop()+this.blockOffset(Math.max(0,Math.min(e,this.rows.length-1)))),this.refresh())}dispose(){this.dead=!0,this.observer.disconnect(),cancelAnimationFrame(this.frame),this.viewport.removeEventListener(`scroll`,this.onScroll),this.canvas.removeEventListener(`focusout`,this.onFocusOut),window.removeEventListener(`resize`,this.onScroll),window.removeEventListener(`hashchange`,this.onHash),this.preserve.clear(),this.listeners.clear()}};function C({controller:e,slot:t}){let n=e.rows[t.index],[r]=(0,h.useState)(()=>{let e=document.createElement(`div`);return e.style.display=`contents`,e}),o=t.active||e.preserve.has(t.id),s=`${t.generation}:${t.active}`,[l,u]=(0,h.useState)(``),d=(0,h.useMemo)(()=>e.document.render(t.index,t.id),[e,t.generation,t.id]),f=(0,h.useMemo)(()=>({active:t.active,blockId:n.id,editor:e.document.editor,nodeState:t=>e.nodeState(n.id,t),retain:()=>{e.retained.set(t.id,(e.retained.get(t.id)??0)+1);let n=!1;return()=>{if(n)return;n=!0;let r=(e.retained.get(t.id)??1)-1;r?e.retained.set(t.id,r):e.retained.delete(t.id),e.refresh(!1)}}}),[e,n.id,t.active,t.generation,t.id]),p=(0,h.useCallback)(n=>e.attach(t,n),[e,t]);return(0,h.useLayoutEffect)(()=>{e.mount(t,r),o?e.bind(t):t.committed=-1,t.beforeRelease=()=>e.capturePanels(t)}),(0,h.useLayoutEffect)(()=>()=>r.remove(),[r]),(0,h.useEffect)(()=>{let e=requestAnimationFrame(()=>{e=requestAnimationFrame(()=>u(s))});return()=>cancelAnimationFrame(e)},[s]),(0,_.createPortal)((0,g.jsx)(`div`,{className:c,"data-pool":n.pool,"data-restoring":s===l?void 0:``,"data-virtual-renderer-block":t.active?n.id:void 0,"data-virtual-renderer-slot":t.id,ref:p,style:{display:t.active?void 0:`none`,transform:`translateY(${e.slotOffset(t)}px)`},children:(0,g.jsx)(`div`,{className:a,"data-virtual-renderer-content":``,children:(0,g.jsx)(i,{value:f,children:o&&d})})}),r,String(t.id))}function w({controller:e}){let[,t]=(0,h.useState)(0);return(0,h.useLayoutEffect)(()=>e.subscribe(()=>t(e=>e+1)),[e]),(0,h.useLayoutEffect)(()=>e.commitLayout()),(0,g.jsx)(g.Fragment,{children:e.pool.slots.map(t=>(0,g.jsx)(C,{controller:e,slot:t},t.id))})}function T({document:e,options:t}){let n=(0,h.useRef)(null),[r,i]=(0,h.useState)(null),[a,o]=(0,h.useState)(``);return(0,h.useEffect)(()=>{let r=n.current,a;try{a=new S(e,r,t),o(``),i(a),Object.assign(r,{virtualRenderer:a})}catch(e){o(String(e)),i(null);return}return()=>{a.dispose(),Reflect.deleteProperty(r,`virtualRenderer`)}},[e,t]),(0,g.jsxs)(g.Fragment,{children:[a&&(0,g.jsx)(`p`,{role:`alert`,children:a}),(0,g.jsx)(`div`,{className:s,"data-virtual-renderer":``,ref:n,children:r?(0,g.jsx)(w,{controller:r}):(0,g.jsx)(m,{document:e})})]})}export{T as VirtualizedRenderer};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-DePvh3-m.js";import{t}from"./Popover-
|
|
1
|
+
import{t as e}from"./jsx-runtime-DePvh3-m.js";import{t}from"./Popover-BKx9uy8c.js";var n=e();function r({warnings:e}){return e.length===0?null:(0,n.jsx)(t,{placement:`topRight`,content:(0,n.jsx)(`ul`,{className:`x1ghz6dp x12ulsxz xwn43p0 x1lr1uin x4z9k3i x1dbl2gt`,children:e.map((e,t)=>(0,n.jsx)(`li`,{children:e},t))}),children:(0,n.jsxs)(`button`,{type:`button`,className:`xixxii4 xlftelb xn0vg7t x1fgtraw x1awh872 xc342km xur7f20 xqdcvd7 x7zghnd xqfszdh x4z9k3i xk50ysn x1cqdj14 x1ypdohk x1n327nk`,children:[e.length,` `,e.length===1?`warning`:`warnings`]})})}export{r as t};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{b as t,c as n}from"./route-IxDJQ-oO.js";import{t as r}from"./react-B8SKf8RM.js";import{c as i,f as a,l as o,u as s}from"./split-url-DL2J8T-a.js";import{t as c}from"./jsx-runtime-DePvh3-m.js";import{q as l}from"./MotionConfigContext-DBHtopYR.js";import{t as u}from"./arrow-down-DnWGNayx.js";import{t as d}from"./arrow-up-BjP7sXQi.js";import{b as f}from"./useOpenInteractionType-LXvb6AtX.js";import{a as p,i as m,o as h,r as g,s as _,t as v}from"./PhoneArtboardBar-BUlgF3vS.js";import{a as y,c as b,i as x,n as S,o as C,s as w}from"./ThreadView-BB278JlB.js";import{c as T,d as E,f as D,l as ee,u as O}from"./lib-DABSWeJy.js";import{i as te,n as k,r as A,t as ne}from"./index.js";/* empty css */import{Excalidraw as j,convertToExcalidrawElements as M,exportToBlob as re,reconcileElements as ie,restoreElements as ae}from"./prod-CaFKRNhp.js";import{n as oe}from"./Avatar-oPUFOoVq.js";import{n as se}from"./useMedia-B_wouzHa.js";import{s as ce,t as le}from"./WritingCursor-D5F8GgYm.js";import{n as ue}from"./usePageQuery-BLapKgc-.js";import{t as N}from"./page-api-D8JklgWH.js";import"./shims-DAMrW7mQ.js";var de={name:`move-up-right`,size:24,node:[[`path`,{d:`M13 5H19V11`,key:`1n1gyv`}],[`path`,{d:`M19 5L5 19`,key:`72u4yj`}]]};de.node;var fe=l(de),pe={name:`sparkles`,size:24,node:[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]],aliases:[`stars`]};pe.node;var me=l(pe),he={name:`sticky-note`,size:24,node:[[`path`,{d:`M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z`,key:`1dfntj`}],[`path`,{d:`M15 3v5a1 1 0 0 0 1 1h5`,key:`6s6qgf`}]]};he.node;var ge=l(he),P=e(r(),1),F=`main`,I=e=>e.filter(e=>!e.deleted);function _e(e){for(;;){let t=`p-${Math.random().toString(36).slice(2,6).padEnd(4,`0`)}`;if(!e.has(t))return t}}var L=8,R=10,ve=64,ye=190,z=(e,t)=>({x:(e.x+t.scrollX)*t.zoom,y:(e.y+t.scrollY)*t.zoom}),be=(e,t)=>({x:e.x/t.zoom-t.scrollX,y:e.y/t.zoom-t.scrollY});function xe(e,t){let n=new Set(t),r=e.filter(e=>n.has(e.id)&&!e.isDeleted);if(!r.length)return null;let i=Math.min(...r.map(e=>e.x??0)),a=Math.min(...r.map(e=>e.y??0)),o=Math.max(...r.map(e=>(e.x??0)+(e.width??0))),s=Math.max(...r.map(e=>(e.y??0)+(e.height??0)));return{x:i,y:a,w:o-i,h:s-a}}var Se=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n));function Ce(e,t,n=420){let r=e.y-40-L,i=r<ve,a={x:Se(e.x,R,t.width-n-R),y:i?e.y+e.h+L:r,flipped:i},o=a.y+5,s=a.x-118-L,c=a.x+n+L,l={x:a.x,y:i?a.y+40+L:a.y-30-L},u=s>=R?{x:s,y:o}:c+118<=t.width-R?{x:c,y:o}:l,d=e.x+e.w+12;return{props:a,chip:u,composer:{x:d+320<=t.width-R?d:Math.max(R,e.x-320-12),y:Se(e.y,ve,t.height-ye)}}}function we(e,t,n,r=F){let i=xe(e,e.map(e=>e.id))??{x:0,y:0,w:0,h:0};return{op:`create`,anchor:{x:i.x+i.w/2,y:i.y+i.h/2,elements:e.map(e=>e.id),...r===`main`?{}:{page:r}},text:t.trim()||n}}var B={root:{kVAEAm:`xixxii4`,kpwlN0:`x10a8y8t`,kWkggS:`x1rozbrz`,kMv6JI:`xqfszdh`,$$css:!0},canvas:{kVAEAm:`x10l6tqk`,kpwlN0:`x10a8y8t`,$$css:!0},bar:{kVAEAm:`x10l6tqk`,k87sOh:`x1eu8d0j`,k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kOIVth:`x195vfkc`,kZKoxP:`xn3w4p2`,kg3NbH:`xfn1xvj`,kWkggS:`x12ilycc`,kMzoRj:`xmkeg23`,ksu8eU:`x1y0btm7`,kVAM5u:`x12xov25`,kaIpWk:`x4pepcl`,kGVxlE:`x1cqdj14`,kGuDYH:`x4z9k3i`,kMwMTN:`xo2rkog`,kY2c9j:`x1n327nk`,$$css:!0},left:{kbCHJM:`x12lbrt0`,$$css:!0},right:{kCIrl2:`x131sewu`,$$css:!0},divider:{kzqmXN:`x1i1rx1s`,kZKoxP:`xmix8c7`,kUOVxO:`xjgtzcg`,kWkggS:`xh6qj2i`,$$css:!0},crumb:{kZCmMZ:`xe2zdcy`,kwRFfy:`xf159sx`,kMwMTN:`xddlp02`,kGuDYH:`xfifm61`,khDVqt:`xuxw1ft`,$$css:!0},crumbId:{kMwMTN:`xo2rkog`,k63SB2:`x1s688f`,$$css:!0},tool:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,kzqmXN:`x1691je0`,kZKoxP:`x90ne7k`,kmVPX3:`x1717udv`,kMzoRj:`xc342km`,kaIpWk:`xur7f20`,kWkggS:`xjbqb8w xj0l527`,kMwMTN:`xo2rkog`,kkrTdU:`x1ypdohk`,$$css:!0},toolOn:{kWkggS:`x15dg6x3`,$$css:!0},zoom:{k7Eaqz:`x1fns5xo`,kg3NbH:`xdqyycr`,kMwMTN:`x1bo0w0s`,kcqcaj:`xss6m8b`,k9WMMc:`x1hr2gdg`,$$css:!0},count:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kOIVth:`x1jnr06f`,kZKoxP:`x1gnnpzl`,kg3NbH:`xdqyycr`,kMwMTN:`x1bo0w0s`,kcqcaj:`xss6m8b`,$$css:!0},agentPill:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kOIVth:`x17d4w8g`,kZKoxP:`xxk0z11`,kUOVxO:`xjgtzcg`,kg3NbH:`x1awh872`,kaIpWk:`x1e6avla`,kWkggS:`x118mg9o`,kMwMTN:`xgs9y6l`,kGuDYH:`xfifm61`,khDVqt:`xuxw1ft`,$$css:!0},pillDot:{kzqmXN:`x1v4s8kt`,kZKoxP:`xols6we`,kaIpWk:`x16rqkct`,kWkggS:`xtwfq29`,$$css:!0},problem:{kVAEAm:`x10l6tqk`,k87sOh:`x1imwcls`,kbCHJM:`x1nrll8i`,k3aq6I:`xuuh30`,ks0D6T:`x27kpxv`,k8WAf4:`x1vvogim`,kg3NbH:`xaope02`,kaIpWk:`xur7f20`,kWkggS:`xqdcvd7`,kMwMTN:`x7zghnd`,kGuDYH:`x4z9k3i`,kY2c9j:`x1n327nk`,$$css:!0},loading:{kVAEAm:`x10l6tqk`,kpwlN0:`x10a8y8t`,k1xSpc:`xrvj5dj`,kgQiWS:`x1ku5rj1`,kMwMTN:`xddlp02`,$$css:!0}},V=c();function Te({count:e}){return e?(0,V.jsxs)(`span`,{"data-agent-pill":!0,...t(B.agentPill),children:[(0,V.jsx)(`i`,{...t(B.pillDot)}),n(`whiteboard.agentChanged`,{count:e})]}):null}function Ee({agent:e,glow:t,cursor:n,elements:r,view:i}){let a=new Map(r.map(e=>[e.id,e])),o=e=>({...z({x:e.x??0,y:e.y??0},i),w:(e.width??0)*i.zoom,h:(e.height??0)*i.zoom}),s=n?a.get(n):void 0;return(0,V.jsxs)(V.Fragment,{children:[t.flatMap(e=>{let t=a.get(e);if(!t)return[];let n=o(t);return[(0,V.jsx)(`div`,{"data-agent-glow":e,style:{left:n.x-7,top:n.y-7,width:n.w+14,height:n.h+14},className:`x10l6tqk xdh2fpr x1y0btm7 xr03jrs xur7f20 xempue3 x47corl x16tb26j`},e)]}),s&&(0,V.jsx)(`div`,{"data-agent-cursor":!0,style:{transform:`scale(${i.zoom}) translate(${i.scrollX}px, ${i.scrollY}px)`},className:`x10l6tqk xu96u03 x13vifvy x1hj3fc7 x47corl x16tb26j`,children:(0,V.jsx)(le,{agent:e,title:s.id,zoom:i.zoom,...ce({x:s.x??0,y:s.y??0,w:s.width??0,h:s.height??0},!0)})})]})}function De({compact:e=!1,onClick:t}){return(0,V.jsxs)(`button`,{"data-ask-chip":!0,"aria-label":n(`whiteboard.ask`),title:n(`whiteboard.ask`),type:`button`,onClick:t,className:`x3nfvp2 x6s0dn4 x17d4w8g x1fgtraw xdwrcjd x1awh872 xc342km xu4hgxq x19ckca5 xs0jrwl xqfszdh xfifm61 x1s688f x1ypdohk xuxw1ft`,children:[(0,V.jsx)(me,{size:14}),!e&&n(`whiteboard.ask`)]})}function Oe({composer:e,count:t,onSend:r,onClose:i}){let[a,o]=(0,P.useState)(``),[s,c]=(0,P.useState)(!1),l=async()=>{c(!0);let e=await r(a);c(!1),e&&(o(``),i())};return(0,V.jsxs)(`div`,{"data-ask-composer":!0,role:`dialog`,style:{left:e.x,top:e.y},className:`x10l6tqk x1m258z3 x1gnqi22 x9f619 x12ilycc xmkeg23 x1y0btm7 x12xov25 x4pepcl x1qdtr29 x1x85hfe`,children:[(0,V.jsxs)(`p`,{className:`x78zum5 x6s0dn4 x17d4w8g x1ghz6dp x4z9k3i x1s688f`,children:[(0,V.jsx)(me,{size:14}),n(`whiteboard.askTitle`)]}),(0,V.jsx)(`p`,{className:`xg9jes1 xyorhqc xfifm61 xddlp02`,children:n(`whiteboard.askSelected`,{count:t})}),(0,V.jsx)(`textarea`,{autoFocus:!0,placeholder:n(`whiteboard.askPlaceholder`),value:a,onChange:e=>o(e.target.value),className:`xh8yej3 x1peatla x9f619 x1vvogim x1awh872 xmkeg23 x1y0btm7 x12xov25 xur7f20 xqfszdh x4z9k3i xtt52l0`}),(0,V.jsxs)(`div`,{className:`x78zum5 x13a6bvl x17d4w8g x1anpbxc`,children:[(0,V.jsx)(`button`,{type:`button`,onClick:i,className:`x1fgtraw xaope02 xc342km x1kogg8i xahzvm9 x1bo0w0s x1ypdohk`,children:n(`whiteboard.cancel`)}),(0,V.jsx)(`button`,{"data-ask-send":!0,disabled:s,type:`button`,onClick:()=>void l(),className:`x1fgtraw xaope02 xc342km x1kogg8i x19ckca5 xs0jrwl x1s688f x1ypdohk xtgyt42 x1hc1fzr xijokvz`,children:n(`whiteboard.send`)})]})]})}var H={pin:{kVAEAm:`x10l6tqk`,kzqmXN:`xgd8bvy`,kZKoxP:`x1fgtraw`,kmVPX3:`x1717udv`,kMzoRj:`xc342km`,kaIpWk:`xqgj3pk`,kWkggS:`x1o91uai`,kMwMTN:`x8r4el6`,kGuDYH:`xfifm61`,k63SB2:`x1s688f`,kGVxlE:`xx1f5d8`,k3aq6I:`x105ttfm`,kkrTdU:`x1ypdohk`,kY2c9j:`xk3oba8`,$$css:!0},agentPin:{kWkggS:`xm2cizz`,$$css:!0},stalePin:{kWkggS:`xakccsc`,$$css:!0},orphanPin:{kWkggS:`xgeep88`,$$css:!0}},ke=(e,t)=>e.filter(e=>!e.isDeleted&&e.type!==`frame`&&t.x>=(e.x??0)&&t.x<=(e.x??0)+(e.width??0)&&t.y>=(e.y??0)&&t.y<=(e.y??0)+(e.height??0)).at(-1);function Ae({comments:e,commenting:r,elements:i,onDone:a,onOp:o,view:s,page:c=F}){let[l,u]=(0,P.useState)(null),[d,f]=(0,P.useState)(null),p=e.file.threads.filter(t=>t.status===`open`&&!t.messages.every(e=>e.deleted)&&(e.placed[t.id]??t.anchor.page??`main`)===c),m=p.find(e=>e.id===l),h=e=>void o(e),g=t=>[H.pin,t.messages[0]?.author===`agent`&&H.agentPin,e.stale.includes(t.id)&&H.stalePin,e.orphans.includes(t.id)&&H.orphanPin];return(0,V.jsxs)(V.Fragment,{children:[r&&(0,V.jsx)(`div`,{"data-comment-capture":!0,onClick:e=>{let t=e.currentTarget.getBoundingClientRect(),n={x:e.clientX-t.left,y:e.clientY-t.top},r=be(n,s);f({screen:n,scene:r,element:ke(i(),r)?.id})},className:`x10l6tqk x10a8y8t xsid9ct x1q8xho0`}),p.map((e,n)=>{let r=z(e.anchor,s);return(0,V.jsx)(`button`,{"data-pin":e.id,style:{left:`${r.x}px`,top:`${r.y}px`},type:`button`,onClick:()=>u(l===e.id?null:e.id),...t(...g(e)),children:n+1},e.id)}),m&&(0,V.jsx)(`div`,{style:{...je(z(m.anchor,s))},className:`x10l6tqk x1m258z3 x12ilycc xmkeg23 x1y0btm7 x12xov25 x4pepcl x1d5q07e xb3r6kr x1x85hfe`,children:(0,V.jsx)(S,{label:`#${p.indexOf(m)+1}`,thread:m,actions:{reply:(e,t)=>o({op:`reply`,threadId:e,text:t}),resolve:e=>h({op:`resolve`,threadId:e}),reopen:e=>h({op:`reopen`,threadId:e}),edit:(e,t,n)=>h({op:`edit`,threadId:e,messageId:t,text:n}),remove:(e,t)=>h({op:`delete`,threadId:e,messageId:t})},onClose:()=>u(null)})}),d&&(0,V.jsx)(`div`,{style:je(d.screen),className:`x10l6tqk x1m258z3 x12ilycc xmkeg23 x1y0btm7 x12xov25 x4pepcl x1d5q07e xb3r6kr x1x85hfe x7z7khe`,children:(0,V.jsx)(oe,{autoFocus:!0,placeholder:n(`comments.addPlaceholder`),onCancel:()=>{f(null),a()},onSubmit:async e=>{let t=await o({op:`create`,anchor:{x:d.scene.x,y:d.scene.y,...d.element?{elements:[d.element]}:{},...c===`main`?{}:{page:c}},text:e});return t&&(f(null),a()),t}})})]})}var je=e=>({left:e.x+18,top:Math.max(56,e.y-14)});function Me({frame:e,count:t,elements:r,view:i}){let a=e?r.find(t=>t.id===e):void 0;if(!a)return null;let o=z({x:a.x??0,y:a.y??0},i);return(0,V.jsx)(`div`,{"data-frame-focus":a.id,style:{left:o.x,top:o.y,width:(a.width??0)*i.zoom,height:(a.height??0)*i.zoom},className:`x10l6tqk x1eovdha x1y0btm7 x5kefyr x12oqio5 x9f619 x47corl x1w0boku`,children:t>0&&(0,V.jsx)(`span`,{className:`x10l6tqk x12p4g1f x1bkpikb xf4egzd x1q4txso x1ctf4ec x7grq7f x8r4el6 xfifm61 x1s688f xuxw1ft`,children:n(`whiteboard.docRefs`,{count:t})})})}var U={menu:{kVAEAm:`x1n2onr6`,k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,$$css:!0},trigger:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kOIVth:`x17d4w8g`,kZKoxP:`x10w6t97`,ks0D6T:`x1ncir08`,kg3NbH:`xdqyycr`,kMzoRj:`xc342km`,kaIpWk:`xur7f20`,kWkggS:`xjbqb8w xj0l527`,kMwMTN:`xo2rkog`,kGuDYH:`x4z9k3i`,kkrTdU:`x1ypdohk`,$$css:!0},name:{kVQacm:`xb3r6kr`,kg5iWk:`xlyipyv`,khDVqt:`xuxw1ft`,$$css:!0},muted:{kMwMTN:`xddlp02`,kmuXW:`x2lah0s`,$$css:!0},list:{kVAEAm:`x10l6tqk`,k87sOh:`x9ri80z`,kbCHJM:`xu96u03`,k7Eaqz:`xlm99nl`,k8WAf4:`x12ulsxz`,kWkggS:`x12ilycc`,kMzoRj:`xmkeg23`,ksu8eU:`x1y0btm7`,kVAM5u:`x12xov25`,kaIpWk:`x1q4ynmn`,kGVxlE:`x1d5q07e`,kY2c9j:`x1355qak`,$$css:!0},row:{k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kOIVth:`x195vfkc`,kg3NbH:`xfn1xvj`,$$css:!0},item:{k1xSpc:`x78zum5`,kUk6DE:`x98rzlu`,kGNEyG:`x6s0dn4`,kOIVth:`x167g77z`,k7Eaqz:`xeuugli`,kZKoxP:`x10w6t97`,kg3NbH:`xdqyycr`,kMzoRj:`xc342km`,kaIpWk:`x1kogg8i`,kWkggS:`xjbqb8w xj0l527`,kMwMTN:`xo2rkog`,kGuDYH:`x4z9k3i`,k9WMMc:`xdpxx8g`,kkrTdU:`x1ypdohk`,$$css:!0},check:{kzqmXN:`x6jxa94`,kmuXW:`x2lah0s`,$$css:!0},dot:{kzqmXN:`x1v4s8kt`,kZKoxP:`xols6we`,kaIpWk:`x16rqkct`,kWkggS:`xm2cizz`,kmuXW:`x2lah0s`,$$css:!0},action:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,kzqmXN:`x23j0i4`,kZKoxP:`xd7y6wv`,kmVPX3:`x1717udv`,kMzoRj:`xc342km`,kaIpWk:`x1kogg8i`,kWkggS:`xjbqb8w xj0l527`,kMwMTN:`x1bo0w0s`,kkrTdU:`x1ypdohk`,$$css:!0},separator:{kZKoxP:`xjm9jq1`,kqGvvJ:`xg9jes1`,kWkggS:`xh6qj2i`,$$css:!0},heading:{kg3NbH:`xaope02`,k8WAf4:`x12ulsxz`,kMwMTN:`xddlp02`,kGuDYH:`xfifm61`,$$css:!0},input:{kzqmXN:`xzjbwwf`,kZKoxP:`x1fgtraw`,kUOVxO:`x18kdvx8`,kg3NbH:`xdqyycr`,kMzoRj:`xmkeg23`,ksu8eU:`x1y0btm7`,kVAM5u:`xgcsv5v`,kaIpWk:`x1kogg8i`,kWkggS:`x1rozbrz`,kMwMTN:`xo2rkog`,kGuDYH:`x4z9k3i`,kI3sdo:`x1a2a7pz`,$$css:!0}},W=e=>e.name??(e.id===`main`?n(`whiteboard.pages.first`):e.id);function Ne({pages:e,page:r,changed:i,onPick:a,onOp:o}){let[s,c]=(0,P.useState)(!1),[l,p]=(0,P.useState)(null),m=I(e),h=e.filter(e=>e.deleted),g=m.find(e=>e.id===r)??m[0],v=()=>p({mode:`add`,id:_e(new Set(e.map(e=>e.id))),value:``}),b=()=>{if(!l)return;let e=l.value.trim();l.mode===`add`?(o({op:`add`,id:l.id,name:e||n(`whiteboard.pages.untitled`)}),a(l.id),c(!1)):e&&o({op:`rename`,id:l.id,name:e}),p(null)},x=l&&(0,V.jsx)(`input`,{"data-page-name":!0,"aria-label":n(`whiteboard.pages.name`),placeholder:n(`whiteboard.pages.name`),ref:e=>e?.focus(),value:l.value,onBlur:()=>p(null),onChange:e=>p({...l,value:e.target.value}),onKeyDown:e=>{e.key===`Enter`&&b(),e.key===`Escape`&&p(null)},...t(U.input)}),S=(0,V.jsxs)(`button`,{"data-page-add":!0,"aria-label":n(`whiteboard.pages.add`),title:n(`whiteboard.pages.add`),type:`button`,onClick:v,...t(s?U.item:U.action),children:[(0,V.jsx)(O,{size:15}),s&&n(`whiteboard.pages.add`)]});return m.length<=1&&h.length===0?(0,V.jsx)(`span`,{"data-page-menu":!0,...t(U.menu),children:(0,V.jsx)(`span`,{style:{display:`contents`},children:x??S})}):(0,V.jsxs)(`span`,{"data-page-menu":!0,...t(U.menu),children:[(0,V.jsxs)(`button`,{"aria-expanded":s,"aria-label":n(`whiteboard.pages.switch`),type:`button`,onClick:()=>c(!s),...t(U.trigger),children:[(0,V.jsx)(C,{size:15,...t(U.muted)}),(0,V.jsx)(`span`,{...t(U.name),children:g?W(g):``}),[...i].some(e=>e!==r&&m.some(t=>t.id===e))&&(0,V.jsx)(`span`,{...t(U.dot)}),(0,V.jsx)(_,{size:14,...t(U.muted)})]}),s&&(0,V.jsxs)(`div`,{role:`menu`,...t(U.list),children:[m.map((e,s)=>(0,V.jsxs)(`div`,{"data-page-row":e.id,...t(U.row),children:[l?.mode===`rename`&&l.id===e.id?x:(0,V.jsxs)(`button`,{"data-changed":i.has(e.id)?`true`:void 0,"data-page-item":e.id,role:`menuitem`,type:`button`,onClick:()=>{a(e.id),c(!1)},...t(U.item),children:[(0,V.jsx)(`span`,{...t(U.check),children:e.id===r&&(0,V.jsx)(f,{size:14})}),(0,V.jsx)(`span`,{...t(U.name),children:W(e)}),i.has(e.id)&&(0,V.jsx)(`span`,{"aria-label":n(`whiteboard.pages.changed`),...t(U.dot)})]}),(0,V.jsx)(`button`,{"data-page-rename":!0,"aria-label":n(`whiteboard.pages.rename`),title:n(`whiteboard.pages.rename`),type:`button`,onClick:()=>p({mode:`rename`,id:e.id,value:W(e)}),...t(U.action),children:(0,V.jsx)(E,{size:13})}),e.id!==`main`&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{"data-page-up":!0,"aria-label":n(`whiteboard.pages.up`),disabled:s<=1,title:n(`whiteboard.pages.up`),type:`button`,onClick:()=>o({op:`move`,id:e.id,to:s-1}),...t(U.action),children:(0,V.jsx)(d,{size:13})}),(0,V.jsx)(`button`,{"data-page-down":!0,"aria-label":n(`whiteboard.pages.down`),disabled:s===m.length-1,title:n(`whiteboard.pages.down`),type:`button`,onClick:()=>o({op:`move`,id:e.id,to:s+1}),...t(U.action),children:(0,V.jsx)(u,{size:13})}),(0,V.jsx)(`button`,{"data-page-delete":!0,"aria-label":n(`whiteboard.pages.delete`),title:n(`whiteboard.pages.delete`),type:`button`,onClick:()=>{o({op:`delete`,id:e.id}),e.id===r&&a(`main`)},...t(U.action),children:(0,V.jsx)(T,{size:13})})]})]},e.id)),(0,V.jsx)(`div`,{...t(U.separator)}),(0,V.jsx)(`div`,{...t(U.row),children:l?.mode===`add`?x:S}),h.length>0&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`div`,{...t(U.separator)}),(0,V.jsx)(`div`,{...t(U.heading),children:n(`whiteboard.pages.deleted`)}),h.map(e=>(0,V.jsxs)(`div`,{...t(U.row),children:[(0,V.jsxs)(`span`,{...t(U.item),children:[(0,V.jsx)(`span`,{...t(U.check)}),(0,V.jsx)(`span`,{...t(U.name),children:W(e)})]}),(0,V.jsx)(`button`,{"aria-label":n(`whiteboard.pages.restore`),"data-page-restore":e.id,title:n(`whiteboard.pages.restore`),type:`button`,onClick:()=>o({op:`restore`,id:e.id}),...t(U.action),children:(0,V.jsx)(y,{size:13})})]},e.id))]})]})]})}function G(e){return[{id:null,label:null},...e.filter(e=>e.type===`frame`&&!e.isDeleted).map(e=>({id:e.id,label:typeof e.name==`string`&&e.name?e.name:e.id}))]}var Pe=()=>typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`);function Fe(){let[e,t]=(0,P.useState)(()=>Pe()?.matches??!1);return(0,P.useEffect)(()=>{let e=Pe();if(!e)return;let n=()=>t(e.matches);return e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}var Ie={path:{kUk6DE:`x98rzlu`,k7Eaqz:`xeuugli`,kVQacm:`xb3r6kr`,kg5iWk:`xlyipyv`,khDVqt:`xuxw1ft`,$$css:!0}},Le={fitToViewport:!0,viewportZoomFactor:.9};function Re({id:e,scene:r,threads:i,setApi:a,onView:o,header:s,children:c}){let l=Fe(),u=(0,P.useRef)(null),[d,f]=(0,P.useState)(null),p=(0,P.useRef)(!1),[m,h]=(0,P.useState)(null),g=()=>{let e=u.current?.getSceneElements();return e?.length?e:r?.elements??[]},_=(e,t=!0)=>{let n=u.current,r=g(),i=e?r.filter(t=>t.id===e):r;return!n||!i.length?!1:(n.scrollToContent(i,{...Le,animate:t}),f(e),!0)},v=()=>{if(p.current)return;let e=G(g())[1]?.id??null;p.current=_(e,!1)},y=(0,P.useRef)(v);(0,P.useLayoutEffect)(()=>{y.current=v}),(0,P.useEffect)(()=>{r&&y.current()},[r]);let b=(e,t)=>{v();let n=G(e);JSON.stringify(n)!==JSON.stringify(m)&&h(n),o?.({scrollX:t.scrollX,scrollY:t.scrollY,zoom:t.zoom.value})};return(0,V.jsxs)(`div`,{...t(B.root),children:[r?(0,V.jsx)(`div`,{"data-whiteboard-canvas":!0,"data-hide-native":`true`,...t(B.canvas),children:(0,V.jsx)(j,{viewModeEnabled:!0,theme:l?`dark`:`light`,excalidrawAPI:e=>{u.current=e,a?.(e)},initialData:{elements:r.elements,appState:{...r.appState,viewBackgroundColor:`#ffffff`},files:r.files},onChange:b})}):(0,V.jsx)(`div`,{...t(B.loading),children:(0,V.jsx)(k,{label:n(`whiteboard.loading`)})}),(0,V.jsxs)(`header`,{className:`x10l6tqk x13vifvy x17y0mx6 x78zum5 x6s0dn4 x167g77z xsdox4t xqin4a2 x12ilycc xso031l x1q0q8m5 xtrfj0v x4z9k3i x1n327nk`,children:[(0,V.jsxs)(`span`,{...t(Ie.path,B.crumb),children:[n(`type.whiteboard`),` / `,(0,V.jsx)(`span`,{...t(B.crumbId),children:e})]}),s,(0,V.jsx)(`span`,{className:`xj8oexa xlkn9b3 x1sxf85j xahzvm9 x1bo0w0s x1j6dyjg`,children:n(`whiteboard.readOnly`)}),i!==void 0&&(0,V.jsxs)(`span`,{className:`x3nfvp2 x6s0dn4 x1jnr06f x1bo0w0s`,children:[(0,V.jsx)(D,{size:14}),i]})]}),c,(0,V.jsx)(`nav`,{className:`x10l6tqk x191j7n5 xpnmzw7 x1s76y0k x78zum5 x17d4w8g xw2csxc x1n327nk`,children:(m??G(r?.elements??[])).map(e=>(0,V.jsx)(`button`,{"aria-pressed":d===e.id,"data-frame-chip":e.id??``,type:`button`,onClick:()=>_(e.id),...{0:{className:`x2lah0s x10w6t97 xqin4a2 xmkeg23 x1y0btm7 x12xov25 xgqmno8 x12ilycc xo2rkog xjb2p0i x4z9k3i xuxw1ft`},1:{className:`x2lah0s x10w6t97 xqin4a2 xmkeg23 x1y0btm7 xgqmno8 xjb2p0i x4z9k3i xuxw1ft x19ckca5 x1rqon0r xs0jrwl`}}[d===e.id|0],children:e.label??n(`whiteboard.all`)},e.id??``))})]})}var K=e=>typeof e.version!=`number`||typeof e.seed!=`number`,ze=e=>e===`human`||e===`agent`;function Be(e){let t=e.customData??{},n={};return ze(t.ryugiAuthor)&&(n.author=t.ryugiAuthor),typeof t.ryugiRev==`number`&&(n.rev=t.ryugiRev),ze(t.ryugiLastBy)&&(n.lastBy=t.ryugiLastBy),n}function q(e,t){for(let n of t)e.set(n.id,n.version??0)}function Ve(e,t){let n=t.filter(t=>e.get(t.id)!==(t.version??0));return q(e,n),n}var He=e=>({x:e.x??0,y:e.y??0,w:e.width??0,h:e.height??0});function Ue(e){let t=e.filter(e=>!e.isDeleted),n=new Map(t.map(e=>[e.id,e])),r={};for(let e of t){let t=He(e),i=e.containerId?n.get(e.containerId):void 0;if(e.type===`text`&&i&&![`arrow`,`line`].includes(i.type)){let e=He(i);(t.x+t.w>e.x+e.w||t.x<e.x||t.y+t.h>e.y+e.h)&&(t.overflow=!0)}r[e.id]=t}return{sceneVersion:e.reduce((e,t)=>e+(t.version??0),0),elements:r}}var We=new Set([`arrow`,`line`]),Ge=new Set([`rectangle`,`ellipse`,`diamond`]),Ke=[`x`,`y`,`width`,`height`,`text`],qe=e=>[e.start,e.end].map(e=>e?.id).filter(e=>typeof e==`string`),J=(e,t)=>({...e,...t,version:(e.version??0)+1,versionNonce:Math.floor(Math.random()*2**31),updated:Date.now()}),Je=e=>We.has(e.type)&&!e.points&&(e.width===0||e.height===0)&&(e.width||e.height)?{...e,points:[[0,0],[e.width??0,e.height??0]]}:e,Ye=(e,t)=>e.type!==`frame`||!Array.isArray(e.children)?e:(t.set(e.id,{children:e.children,box:e.width&&e.height?{x:e.x??0,y:e.y??0,width:e.width,height:e.height}:null}),{...e,children:[]});function Xe(e,t){let n=new Set(e.map(e=>e.id)),r=new Map(t.filter(e=>!e.isDeleted).map(e=>[e.id,e])),i=new Map;for(let t of e)for(let e of qe(t)){let t=r.get(e);!t||n.has(e)||i.has(e)||i.set(e,{id:e,type:Ge.has(t.type)?t.type:`rectangle`,x:t.x??0,y:t.y??0,width:t.width??0,height:t.height??0})}let a=new Map;return{batch:[...e.map(e=>Ye(Je(e),a)),...i.values()],standIns:new Set(i.keys()),frames:a}}var Ze=e=>{let t=e.x??0,n=e.y??0,r=Array.isArray(e.points)?e.points:null;if(!r?.length)return[t,n,t+(e.width??0),n+(e.height??0)];let i=r.map(([e])=>t+e),a=r.map(([,e])=>n+e);return[Math.min(...i),Math.min(...a),Math.max(...i),Math.max(...a)]},Y=10,Qe=e=>{let t=e.map(Ze),n=Math.min(...t.map(([e])=>e))-Y,r=Math.min(...t.map(([,e])=>e))-Y,i=Math.max(...t.map(([,,e])=>e))+Y,a=Math.max(...t.map(([,,,e])=>e))+Y;return{x:n,y:r,width:i-n,height:a-r}};function $e(e,t,n,r){for(let[i,{children:a,box:o}]of r){let r=new Set(a),s=e=>r.has(e.id)||!!(e.containerId&&r.has(e.containerId)),c=[];for(let[t,n]of e.entries())s(n)&&c.push(e[t]={...n,frameId:i});for(let r of n){if(!s(r)||e.some(e=>e.id===r.id))continue;let n=t.findIndex(e=>e.id===r.id),a=n>=0?{...t[n],frameId:i}:J(r,{frameId:i});n>=0?t[n]=a:t.push(a),c.push(a)}let l=e.findIndex(e=>e.id===i);if(l<0)continue;let u=o??(c.length?Qe(c):null);u&&(e[l]={...e[l],...u})}}function et(e,t,n,r=new Map){let i=e.filter(e=>!t.has(e.id)),a=[];for(let r of t){let t=n.find(e=>e.id===r);if(!t)continue;let i=t.boundElements??[],o=(e.find(e=>e.id===r)?.boundElements??[]).filter(e=>!i.some(t=>t.id===e.id));o.length&&a.push(J(t,{boundElements:[...i,...o]}))}return $e(i,a,n,r),{created:i,touched:a}}function tt(e,t){let n=new Map(e.map(e=>[e.id,e]));return t.flatMap(e=>{let t=n.get(e.id);return e.type!==`text`||!t||e.isDeleted||Ke.every(n=>e[n]===t[n])?[]:[J(t,Object.fromEntries(Ke.map(t=>[t,e[t]])))]})}var nt=e=>e.map(e=>e.type===`text`&&e.containerId&&typeof e.originalText==`string`?{...e,text:e.originalText}:e),rt=1e3,X=(e,t)=>{let n=new Map(t.map(e=>[e.id,e])),r=e.map(e=>n.get(e.id)??e),i=new Set(e.map(e=>e.id));return[...r,...t.filter(e=>!i.has(e.id))]};function it({id:e,pages:t,current:n,send:r,convert:i}){let a=(0,P.useRef)(new Map),o=(0,P.useRef)({send:r,convert:i});o.current={send:r,convert:i};let s=(0,P.useCallback)(async t=>{let n=a.current.get(t);if(!n)return;let r=n.elements.filter(K);if(r.length){let i=n.elements.filter(e=>!K(e)),a=o.current.convert(r,i);n.elements=X(i,a),o.current.send({type:`whiteboard-update`,artifact:`whiteboard/${e}`,page:t,elements:a,completion:!0})}let i=Ue(n.elements);if(i.sceneVersion===n.reported)return;n.reported=i.sceneVersion;let s=`page=${encodeURIComponent(t)}`;await fetch(N(`/api/whiteboard/${e}/geometry?${s}`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(i)});let c=await re({elements:n.elements.filter(e=>!e.isDeleted),appState:{viewBackgroundColor:`#ffffff`,exportBackground:!0},files:n.files,mimeType:`image/png`});await fetch(N(`/api/whiteboard/${e}/render?version=${i.sceneVersion}&${s}`),{method:`POST`,headers:{"Content-Type":`image/png`},body:c})},[e]),c=(0,P.useCallback)(e=>{let t=a.current.get(e);t&&(clearTimeout(t.timer),t.timer=setTimeout(()=>void s(e),rt))},[s]),l=(t?I(t).map(e=>e.id).filter(e=>e!==n):[]).join(`
|
|
1
|
+
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{b as t,c as n}from"./route-IxDJQ-oO.js";import{t as r}from"./react-B8SKf8RM.js";import{c as i,f as a,l as o,u as s}from"./split-url-DDv_DQdJ.js";import{t as c}from"./jsx-runtime-DePvh3-m.js";import{q as l}from"./MotionConfigContext-DBHtopYR.js";import{t as u}from"./arrow-down-DnWGNayx.js";import{t as d}from"./arrow-up-BjP7sXQi.js";import{b as f}from"./useOpenInteractionType-BK_FRxTI.js";import{a as p,i as m,o as h,r as g,s as _,t as v}from"./PhoneArtboardBar-CQHPMPTZ.js";import{a as y,c as b,i as x,n as S,o as C,s as w}from"./ThreadView-9YdOYaZS.js";import{c as T,d as E,f as D,l as ee,u as O}from"./lib-DABSWeJy.js";import{i as te,n as k,r as A,t as ne}from"./index.js";/* empty css */import{Excalidraw as j,convertToExcalidrawElements as M,exportToBlob as re,reconcileElements as ie,restoreElements as ae}from"./prod-DO1G2WEh.js";import{n as oe}from"./Avatar-oPUFOoVq.js";import{n as se}from"./useMedia-B_wouzHa.js";import{s as ce,t as le}from"./WritingCursor-D5F8GgYm.js";import{n as ue}from"./usePageQuery-BLapKgc-.js";import{t as N}from"./page-api-D8JklgWH.js";import"./shims-DAMrW7mQ.js";var de={name:`move-up-right`,size:24,node:[[`path`,{d:`M13 5H19V11`,key:`1n1gyv`}],[`path`,{d:`M19 5L5 19`,key:`72u4yj`}]]};de.node;var fe=l(de),pe={name:`sparkles`,size:24,node:[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]],aliases:[`stars`]};pe.node;var me=l(pe),he={name:`sticky-note`,size:24,node:[[`path`,{d:`M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z`,key:`1dfntj`}],[`path`,{d:`M15 3v5a1 1 0 0 0 1 1h5`,key:`6s6qgf`}]]};he.node;var ge=l(he),P=e(r(),1),F=`main`,I=e=>e.filter(e=>!e.deleted);function _e(e){for(;;){let t=`p-${Math.random().toString(36).slice(2,6).padEnd(4,`0`)}`;if(!e.has(t))return t}}var L=8,R=10,ve=64,ye=190,z=(e,t)=>({x:(e.x+t.scrollX)*t.zoom,y:(e.y+t.scrollY)*t.zoom}),be=(e,t)=>({x:e.x/t.zoom-t.scrollX,y:e.y/t.zoom-t.scrollY});function xe(e,t){let n=new Set(t),r=e.filter(e=>n.has(e.id)&&!e.isDeleted);if(!r.length)return null;let i=Math.min(...r.map(e=>e.x??0)),a=Math.min(...r.map(e=>e.y??0)),o=Math.max(...r.map(e=>(e.x??0)+(e.width??0))),s=Math.max(...r.map(e=>(e.y??0)+(e.height??0)));return{x:i,y:a,w:o-i,h:s-a}}var Se=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n));function Ce(e,t,n=420){let r=e.y-40-L,i=r<ve,a={x:Se(e.x,R,t.width-n-R),y:i?e.y+e.h+L:r,flipped:i},o=a.y+5,s=a.x-118-L,c=a.x+n+L,l={x:a.x,y:i?a.y+40+L:a.y-30-L},u=s>=R?{x:s,y:o}:c+118<=t.width-R?{x:c,y:o}:l,d=e.x+e.w+12;return{props:a,chip:u,composer:{x:d+320<=t.width-R?d:Math.max(R,e.x-320-12),y:Se(e.y,ve,t.height-ye)}}}function we(e,t,n,r=F){let i=xe(e,e.map(e=>e.id))??{x:0,y:0,w:0,h:0};return{op:`create`,anchor:{x:i.x+i.w/2,y:i.y+i.h/2,elements:e.map(e=>e.id),...r===`main`?{}:{page:r}},text:t.trim()||n}}var B={root:{kVAEAm:`xixxii4`,kpwlN0:`x10a8y8t`,kWkggS:`x1rozbrz`,kMv6JI:`xqfszdh`,$$css:!0},canvas:{kVAEAm:`x10l6tqk`,kpwlN0:`x10a8y8t`,$$css:!0},bar:{kVAEAm:`x10l6tqk`,k87sOh:`x1eu8d0j`,k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kOIVth:`x195vfkc`,kZKoxP:`xn3w4p2`,kg3NbH:`xfn1xvj`,kWkggS:`x12ilycc`,kMzoRj:`xmkeg23`,ksu8eU:`x1y0btm7`,kVAM5u:`x12xov25`,kaIpWk:`x4pepcl`,kGVxlE:`x1cqdj14`,kGuDYH:`x4z9k3i`,kMwMTN:`xo2rkog`,kY2c9j:`x1n327nk`,$$css:!0},left:{kbCHJM:`x12lbrt0`,$$css:!0},right:{kCIrl2:`x131sewu`,$$css:!0},divider:{kzqmXN:`x1i1rx1s`,kZKoxP:`xmix8c7`,kUOVxO:`xjgtzcg`,kWkggS:`xh6qj2i`,$$css:!0},crumb:{kZCmMZ:`xe2zdcy`,kwRFfy:`xf159sx`,kMwMTN:`xddlp02`,kGuDYH:`xfifm61`,khDVqt:`xuxw1ft`,$$css:!0},crumbId:{kMwMTN:`xo2rkog`,k63SB2:`x1s688f`,$$css:!0},tool:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,kzqmXN:`x1691je0`,kZKoxP:`x90ne7k`,kmVPX3:`x1717udv`,kMzoRj:`xc342km`,kaIpWk:`xur7f20`,kWkggS:`xjbqb8w xj0l527`,kMwMTN:`xo2rkog`,kkrTdU:`x1ypdohk`,$$css:!0},toolOn:{kWkggS:`x15dg6x3`,$$css:!0},zoom:{k7Eaqz:`x1fns5xo`,kg3NbH:`xdqyycr`,kMwMTN:`x1bo0w0s`,kcqcaj:`xss6m8b`,k9WMMc:`x1hr2gdg`,$$css:!0},count:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kOIVth:`x1jnr06f`,kZKoxP:`x1gnnpzl`,kg3NbH:`xdqyycr`,kMwMTN:`x1bo0w0s`,kcqcaj:`xss6m8b`,$$css:!0},agentPill:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kOIVth:`x17d4w8g`,kZKoxP:`xxk0z11`,kUOVxO:`xjgtzcg`,kg3NbH:`x1awh872`,kaIpWk:`x1e6avla`,kWkggS:`x118mg9o`,kMwMTN:`xgs9y6l`,kGuDYH:`xfifm61`,khDVqt:`xuxw1ft`,$$css:!0},pillDot:{kzqmXN:`x1v4s8kt`,kZKoxP:`xols6we`,kaIpWk:`x16rqkct`,kWkggS:`xtwfq29`,$$css:!0},problem:{kVAEAm:`x10l6tqk`,k87sOh:`x1imwcls`,kbCHJM:`x1nrll8i`,k3aq6I:`xuuh30`,ks0D6T:`x27kpxv`,k8WAf4:`x1vvogim`,kg3NbH:`xaope02`,kaIpWk:`xur7f20`,kWkggS:`xqdcvd7`,kMwMTN:`x7zghnd`,kGuDYH:`x4z9k3i`,kY2c9j:`x1n327nk`,$$css:!0},loading:{kVAEAm:`x10l6tqk`,kpwlN0:`x10a8y8t`,k1xSpc:`xrvj5dj`,kgQiWS:`x1ku5rj1`,kMwMTN:`xddlp02`,$$css:!0}},V=c();function Te({count:e}){return e?(0,V.jsxs)(`span`,{"data-agent-pill":!0,...t(B.agentPill),children:[(0,V.jsx)(`i`,{...t(B.pillDot)}),n(`whiteboard.agentChanged`,{count:e})]}):null}function Ee({agent:e,glow:t,cursor:n,elements:r,view:i}){let a=new Map(r.map(e=>[e.id,e])),o=e=>({...z({x:e.x??0,y:e.y??0},i),w:(e.width??0)*i.zoom,h:(e.height??0)*i.zoom}),s=n?a.get(n):void 0;return(0,V.jsxs)(V.Fragment,{children:[t.flatMap(e=>{let t=a.get(e);if(!t)return[];let n=o(t);return[(0,V.jsx)(`div`,{"data-agent-glow":e,style:{left:n.x-7,top:n.y-7,width:n.w+14,height:n.h+14},className:`x10l6tqk xdh2fpr x1y0btm7 xr03jrs xur7f20 xempue3 x47corl x16tb26j`},e)]}),s&&(0,V.jsx)(`div`,{"data-agent-cursor":!0,style:{transform:`scale(${i.zoom}) translate(${i.scrollX}px, ${i.scrollY}px)`},className:`x10l6tqk xu96u03 x13vifvy x1hj3fc7 x47corl x16tb26j`,children:(0,V.jsx)(le,{agent:e,title:s.id,zoom:i.zoom,...ce({x:s.x??0,y:s.y??0,w:s.width??0,h:s.height??0},!0)})})]})}function De({compact:e=!1,onClick:t}){return(0,V.jsxs)(`button`,{"data-ask-chip":!0,"aria-label":n(`whiteboard.ask`),title:n(`whiteboard.ask`),type:`button`,onClick:t,className:`x3nfvp2 x6s0dn4 x17d4w8g x1fgtraw xdwrcjd x1awh872 xc342km xu4hgxq x19ckca5 xs0jrwl xqfszdh xfifm61 x1s688f x1ypdohk xuxw1ft`,children:[(0,V.jsx)(me,{size:14}),!e&&n(`whiteboard.ask`)]})}function Oe({composer:e,count:t,onSend:r,onClose:i}){let[a,o]=(0,P.useState)(``),[s,c]=(0,P.useState)(!1),l=async()=>{c(!0);let e=await r(a);c(!1),e&&(o(``),i())};return(0,V.jsxs)(`div`,{"data-ask-composer":!0,role:`dialog`,style:{left:e.x,top:e.y},className:`x10l6tqk x1m258z3 x1gnqi22 x9f619 x12ilycc xmkeg23 x1y0btm7 x12xov25 x4pepcl x1qdtr29 x1x85hfe`,children:[(0,V.jsxs)(`p`,{className:`x78zum5 x6s0dn4 x17d4w8g x1ghz6dp x4z9k3i x1s688f`,children:[(0,V.jsx)(me,{size:14}),n(`whiteboard.askTitle`)]}),(0,V.jsx)(`p`,{className:`xg9jes1 xyorhqc xfifm61 xddlp02`,children:n(`whiteboard.askSelected`,{count:t})}),(0,V.jsx)(`textarea`,{autoFocus:!0,placeholder:n(`whiteboard.askPlaceholder`),value:a,onChange:e=>o(e.target.value),className:`xh8yej3 x1peatla x9f619 x1vvogim x1awh872 xmkeg23 x1y0btm7 x12xov25 xur7f20 xqfszdh x4z9k3i xtt52l0`}),(0,V.jsxs)(`div`,{className:`x78zum5 x13a6bvl x17d4w8g x1anpbxc`,children:[(0,V.jsx)(`button`,{type:`button`,onClick:i,className:`x1fgtraw xaope02 xc342km x1kogg8i xahzvm9 x1bo0w0s x1ypdohk`,children:n(`whiteboard.cancel`)}),(0,V.jsx)(`button`,{"data-ask-send":!0,disabled:s,type:`button`,onClick:()=>void l(),className:`x1fgtraw xaope02 xc342km x1kogg8i x19ckca5 xs0jrwl x1s688f x1ypdohk xtgyt42 x1hc1fzr xijokvz`,children:n(`whiteboard.send`)})]})]})}var H={pin:{kVAEAm:`x10l6tqk`,kzqmXN:`xgd8bvy`,kZKoxP:`x1fgtraw`,kmVPX3:`x1717udv`,kMzoRj:`xc342km`,kaIpWk:`xqgj3pk`,kWkggS:`x1o91uai`,kMwMTN:`x8r4el6`,kGuDYH:`xfifm61`,k63SB2:`x1s688f`,kGVxlE:`xx1f5d8`,k3aq6I:`x105ttfm`,kkrTdU:`x1ypdohk`,kY2c9j:`xk3oba8`,$$css:!0},agentPin:{kWkggS:`xm2cizz`,$$css:!0},stalePin:{kWkggS:`xakccsc`,$$css:!0},orphanPin:{kWkggS:`xgeep88`,$$css:!0}},ke=(e,t)=>e.filter(e=>!e.isDeleted&&e.type!==`frame`&&t.x>=(e.x??0)&&t.x<=(e.x??0)+(e.width??0)&&t.y>=(e.y??0)&&t.y<=(e.y??0)+(e.height??0)).at(-1);function Ae({comments:e,commenting:r,elements:i,onDone:a,onOp:o,view:s,page:c=F}){let[l,u]=(0,P.useState)(null),[d,f]=(0,P.useState)(null),p=e.file.threads.filter(t=>t.status===`open`&&!t.messages.every(e=>e.deleted)&&(e.placed[t.id]??t.anchor.page??`main`)===c),m=p.find(e=>e.id===l),h=e=>void o(e),g=t=>[H.pin,t.messages[0]?.author===`agent`&&H.agentPin,e.stale.includes(t.id)&&H.stalePin,e.orphans.includes(t.id)&&H.orphanPin];return(0,V.jsxs)(V.Fragment,{children:[r&&(0,V.jsx)(`div`,{"data-comment-capture":!0,onClick:e=>{let t=e.currentTarget.getBoundingClientRect(),n={x:e.clientX-t.left,y:e.clientY-t.top},r=be(n,s);f({screen:n,scene:r,element:ke(i(),r)?.id})},className:`x10l6tqk x10a8y8t xsid9ct x1q8xho0`}),p.map((e,n)=>{let r=z(e.anchor,s);return(0,V.jsx)(`button`,{"data-pin":e.id,style:{left:`${r.x}px`,top:`${r.y}px`},type:`button`,onClick:()=>u(l===e.id?null:e.id),...t(...g(e)),children:n+1},e.id)}),m&&(0,V.jsx)(`div`,{style:{...je(z(m.anchor,s))},className:`x10l6tqk x1m258z3 x12ilycc xmkeg23 x1y0btm7 x12xov25 x4pepcl x1d5q07e xb3r6kr x1x85hfe`,children:(0,V.jsx)(S,{label:`#${p.indexOf(m)+1}`,thread:m,actions:{reply:(e,t)=>o({op:`reply`,threadId:e,text:t}),resolve:e=>h({op:`resolve`,threadId:e}),reopen:e=>h({op:`reopen`,threadId:e}),edit:(e,t,n)=>h({op:`edit`,threadId:e,messageId:t,text:n}),remove:(e,t)=>h({op:`delete`,threadId:e,messageId:t})},onClose:()=>u(null)})}),d&&(0,V.jsx)(`div`,{style:je(d.screen),className:`x10l6tqk x1m258z3 x12ilycc xmkeg23 x1y0btm7 x12xov25 x4pepcl x1d5q07e xb3r6kr x1x85hfe x7z7khe`,children:(0,V.jsx)(oe,{autoFocus:!0,placeholder:n(`comments.addPlaceholder`),onCancel:()=>{f(null),a()},onSubmit:async e=>{let t=await o({op:`create`,anchor:{x:d.scene.x,y:d.scene.y,...d.element?{elements:[d.element]}:{},...c===`main`?{}:{page:c}},text:e});return t&&(f(null),a()),t}})})]})}var je=e=>({left:e.x+18,top:Math.max(56,e.y-14)});function Me({frame:e,count:t,elements:r,view:i}){let a=e?r.find(t=>t.id===e):void 0;if(!a)return null;let o=z({x:a.x??0,y:a.y??0},i);return(0,V.jsx)(`div`,{"data-frame-focus":a.id,style:{left:o.x,top:o.y,width:(a.width??0)*i.zoom,height:(a.height??0)*i.zoom},className:`x10l6tqk x1eovdha x1y0btm7 x5kefyr x12oqio5 x9f619 x47corl x1w0boku`,children:t>0&&(0,V.jsx)(`span`,{className:`x10l6tqk x12p4g1f x1bkpikb xf4egzd x1q4txso x1ctf4ec x7grq7f x8r4el6 xfifm61 x1s688f xuxw1ft`,children:n(`whiteboard.docRefs`,{count:t})})})}var U={menu:{kVAEAm:`x1n2onr6`,k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,$$css:!0},trigger:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kOIVth:`x17d4w8g`,kZKoxP:`x10w6t97`,ks0D6T:`x1ncir08`,kg3NbH:`xdqyycr`,kMzoRj:`xc342km`,kaIpWk:`xur7f20`,kWkggS:`xjbqb8w xj0l527`,kMwMTN:`xo2rkog`,kGuDYH:`x4z9k3i`,kkrTdU:`x1ypdohk`,$$css:!0},name:{kVQacm:`xb3r6kr`,kg5iWk:`xlyipyv`,khDVqt:`xuxw1ft`,$$css:!0},muted:{kMwMTN:`xddlp02`,kmuXW:`x2lah0s`,$$css:!0},list:{kVAEAm:`x10l6tqk`,k87sOh:`x9ri80z`,kbCHJM:`xu96u03`,k7Eaqz:`xlm99nl`,k8WAf4:`x12ulsxz`,kWkggS:`x12ilycc`,kMzoRj:`xmkeg23`,ksu8eU:`x1y0btm7`,kVAM5u:`x12xov25`,kaIpWk:`x1q4ynmn`,kGVxlE:`x1d5q07e`,kY2c9j:`x1355qak`,$$css:!0},row:{k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kOIVth:`x195vfkc`,kg3NbH:`xfn1xvj`,$$css:!0},item:{k1xSpc:`x78zum5`,kUk6DE:`x98rzlu`,kGNEyG:`x6s0dn4`,kOIVth:`x167g77z`,k7Eaqz:`xeuugli`,kZKoxP:`x10w6t97`,kg3NbH:`xdqyycr`,kMzoRj:`xc342km`,kaIpWk:`x1kogg8i`,kWkggS:`xjbqb8w xj0l527`,kMwMTN:`xo2rkog`,kGuDYH:`x4z9k3i`,k9WMMc:`xdpxx8g`,kkrTdU:`x1ypdohk`,$$css:!0},check:{kzqmXN:`x6jxa94`,kmuXW:`x2lah0s`,$$css:!0},dot:{kzqmXN:`x1v4s8kt`,kZKoxP:`xols6we`,kaIpWk:`x16rqkct`,kWkggS:`xm2cizz`,kmuXW:`x2lah0s`,$$css:!0},action:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,kzqmXN:`x23j0i4`,kZKoxP:`xd7y6wv`,kmVPX3:`x1717udv`,kMzoRj:`xc342km`,kaIpWk:`x1kogg8i`,kWkggS:`xjbqb8w xj0l527`,kMwMTN:`x1bo0w0s`,kkrTdU:`x1ypdohk`,$$css:!0},separator:{kZKoxP:`xjm9jq1`,kqGvvJ:`xg9jes1`,kWkggS:`xh6qj2i`,$$css:!0},heading:{kg3NbH:`xaope02`,k8WAf4:`x12ulsxz`,kMwMTN:`xddlp02`,kGuDYH:`xfifm61`,$$css:!0},input:{kzqmXN:`xzjbwwf`,kZKoxP:`x1fgtraw`,kUOVxO:`x18kdvx8`,kg3NbH:`xdqyycr`,kMzoRj:`xmkeg23`,ksu8eU:`x1y0btm7`,kVAM5u:`xgcsv5v`,kaIpWk:`x1kogg8i`,kWkggS:`x1rozbrz`,kMwMTN:`xo2rkog`,kGuDYH:`x4z9k3i`,kI3sdo:`x1a2a7pz`,$$css:!0}},W=e=>e.name??(e.id===`main`?n(`whiteboard.pages.first`):e.id);function Ne({pages:e,page:r,changed:i,onPick:a,onOp:o}){let[s,c]=(0,P.useState)(!1),[l,p]=(0,P.useState)(null),m=I(e),h=e.filter(e=>e.deleted),g=m.find(e=>e.id===r)??m[0],v=()=>p({mode:`add`,id:_e(new Set(e.map(e=>e.id))),value:``}),b=()=>{if(!l)return;let e=l.value.trim();l.mode===`add`?(o({op:`add`,id:l.id,name:e||n(`whiteboard.pages.untitled`)}),a(l.id),c(!1)):e&&o({op:`rename`,id:l.id,name:e}),p(null)},x=l&&(0,V.jsx)(`input`,{"data-page-name":!0,"aria-label":n(`whiteboard.pages.name`),placeholder:n(`whiteboard.pages.name`),ref:e=>e?.focus(),value:l.value,onBlur:()=>p(null),onChange:e=>p({...l,value:e.target.value}),onKeyDown:e=>{e.key===`Enter`&&b(),e.key===`Escape`&&p(null)},...t(U.input)}),S=(0,V.jsxs)(`button`,{"data-page-add":!0,"aria-label":n(`whiteboard.pages.add`),title:n(`whiteboard.pages.add`),type:`button`,onClick:v,...t(s?U.item:U.action),children:[(0,V.jsx)(O,{size:15}),s&&n(`whiteboard.pages.add`)]});return m.length<=1&&h.length===0?(0,V.jsx)(`span`,{"data-page-menu":!0,...t(U.menu),children:(0,V.jsx)(`span`,{style:{display:`contents`},children:x??S})}):(0,V.jsxs)(`span`,{"data-page-menu":!0,...t(U.menu),children:[(0,V.jsxs)(`button`,{"aria-expanded":s,"aria-label":n(`whiteboard.pages.switch`),type:`button`,onClick:()=>c(!s),...t(U.trigger),children:[(0,V.jsx)(C,{size:15,...t(U.muted)}),(0,V.jsx)(`span`,{...t(U.name),children:g?W(g):``}),[...i].some(e=>e!==r&&m.some(t=>t.id===e))&&(0,V.jsx)(`span`,{...t(U.dot)}),(0,V.jsx)(_,{size:14,...t(U.muted)})]}),s&&(0,V.jsxs)(`div`,{role:`menu`,...t(U.list),children:[m.map((e,s)=>(0,V.jsxs)(`div`,{"data-page-row":e.id,...t(U.row),children:[l?.mode===`rename`&&l.id===e.id?x:(0,V.jsxs)(`button`,{"data-changed":i.has(e.id)?`true`:void 0,"data-page-item":e.id,role:`menuitem`,type:`button`,onClick:()=>{a(e.id),c(!1)},...t(U.item),children:[(0,V.jsx)(`span`,{...t(U.check),children:e.id===r&&(0,V.jsx)(f,{size:14})}),(0,V.jsx)(`span`,{...t(U.name),children:W(e)}),i.has(e.id)&&(0,V.jsx)(`span`,{"aria-label":n(`whiteboard.pages.changed`),...t(U.dot)})]}),(0,V.jsx)(`button`,{"data-page-rename":!0,"aria-label":n(`whiteboard.pages.rename`),title:n(`whiteboard.pages.rename`),type:`button`,onClick:()=>p({mode:`rename`,id:e.id,value:W(e)}),...t(U.action),children:(0,V.jsx)(E,{size:13})}),e.id!==`main`&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{"data-page-up":!0,"aria-label":n(`whiteboard.pages.up`),disabled:s<=1,title:n(`whiteboard.pages.up`),type:`button`,onClick:()=>o({op:`move`,id:e.id,to:s-1}),...t(U.action),children:(0,V.jsx)(d,{size:13})}),(0,V.jsx)(`button`,{"data-page-down":!0,"aria-label":n(`whiteboard.pages.down`),disabled:s===m.length-1,title:n(`whiteboard.pages.down`),type:`button`,onClick:()=>o({op:`move`,id:e.id,to:s+1}),...t(U.action),children:(0,V.jsx)(u,{size:13})}),(0,V.jsx)(`button`,{"data-page-delete":!0,"aria-label":n(`whiteboard.pages.delete`),title:n(`whiteboard.pages.delete`),type:`button`,onClick:()=>{o({op:`delete`,id:e.id}),e.id===r&&a(`main`)},...t(U.action),children:(0,V.jsx)(T,{size:13})})]})]},e.id)),(0,V.jsx)(`div`,{...t(U.separator)}),(0,V.jsx)(`div`,{...t(U.row),children:l?.mode===`add`?x:S}),h.length>0&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`div`,{...t(U.separator)}),(0,V.jsx)(`div`,{...t(U.heading),children:n(`whiteboard.pages.deleted`)}),h.map(e=>(0,V.jsxs)(`div`,{...t(U.row),children:[(0,V.jsxs)(`span`,{...t(U.item),children:[(0,V.jsx)(`span`,{...t(U.check)}),(0,V.jsx)(`span`,{...t(U.name),children:W(e)})]}),(0,V.jsx)(`button`,{"aria-label":n(`whiteboard.pages.restore`),"data-page-restore":e.id,title:n(`whiteboard.pages.restore`),type:`button`,onClick:()=>o({op:`restore`,id:e.id}),...t(U.action),children:(0,V.jsx)(y,{size:13})})]},e.id))]})]})]})}function G(e){return[{id:null,label:null},...e.filter(e=>e.type===`frame`&&!e.isDeleted).map(e=>({id:e.id,label:typeof e.name==`string`&&e.name?e.name:e.id}))]}var Pe=()=>typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`);function Fe(){let[e,t]=(0,P.useState)(()=>Pe()?.matches??!1);return(0,P.useEffect)(()=>{let e=Pe();if(!e)return;let n=()=>t(e.matches);return e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}var Ie={path:{kUk6DE:`x98rzlu`,k7Eaqz:`xeuugli`,kVQacm:`xb3r6kr`,kg5iWk:`xlyipyv`,khDVqt:`xuxw1ft`,$$css:!0}},Le={fitToViewport:!0,viewportZoomFactor:.9};function Re({id:e,scene:r,threads:i,setApi:a,onView:o,header:s,children:c}){let l=Fe(),u=(0,P.useRef)(null),[d,f]=(0,P.useState)(null),p=(0,P.useRef)(!1),[m,h]=(0,P.useState)(null),g=()=>{let e=u.current?.getSceneElements();return e?.length?e:r?.elements??[]},_=(e,t=!0)=>{let n=u.current,r=g(),i=e?r.filter(t=>t.id===e):r;return!n||!i.length?!1:(n.scrollToContent(i,{...Le,animate:t}),f(e),!0)},v=()=>{if(p.current)return;let e=G(g())[1]?.id??null;p.current=_(e,!1)},y=(0,P.useRef)(v);(0,P.useLayoutEffect)(()=>{y.current=v}),(0,P.useEffect)(()=>{r&&y.current()},[r]);let b=(e,t)=>{v();let n=G(e);JSON.stringify(n)!==JSON.stringify(m)&&h(n),o?.({scrollX:t.scrollX,scrollY:t.scrollY,zoom:t.zoom.value})};return(0,V.jsxs)(`div`,{...t(B.root),children:[r?(0,V.jsx)(`div`,{"data-whiteboard-canvas":!0,"data-hide-native":`true`,...t(B.canvas),children:(0,V.jsx)(j,{viewModeEnabled:!0,theme:l?`dark`:`light`,excalidrawAPI:e=>{u.current=e,a?.(e)},initialData:{elements:r.elements,appState:{...r.appState,viewBackgroundColor:`#ffffff`},files:r.files},onChange:b})}):(0,V.jsx)(`div`,{...t(B.loading),children:(0,V.jsx)(k,{label:n(`whiteboard.loading`)})}),(0,V.jsxs)(`header`,{className:`x10l6tqk x13vifvy x17y0mx6 x78zum5 x6s0dn4 x167g77z xsdox4t xqin4a2 x12ilycc xso031l x1q0q8m5 xtrfj0v x4z9k3i x1n327nk`,children:[(0,V.jsxs)(`span`,{...t(Ie.path,B.crumb),children:[n(`type.whiteboard`),` / `,(0,V.jsx)(`span`,{...t(B.crumbId),children:e})]}),s,(0,V.jsx)(`span`,{className:`xj8oexa xlkn9b3 x1sxf85j xahzvm9 x1bo0w0s x1j6dyjg`,children:n(`whiteboard.readOnly`)}),i!==void 0&&(0,V.jsxs)(`span`,{className:`x3nfvp2 x6s0dn4 x1jnr06f x1bo0w0s`,children:[(0,V.jsx)(D,{size:14}),i]})]}),c,(0,V.jsx)(`nav`,{className:`x10l6tqk x191j7n5 xpnmzw7 x1s76y0k x78zum5 x17d4w8g xw2csxc x1n327nk`,children:(m??G(r?.elements??[])).map(e=>(0,V.jsx)(`button`,{"aria-pressed":d===e.id,"data-frame-chip":e.id??``,type:`button`,onClick:()=>_(e.id),...{0:{className:`x2lah0s x10w6t97 xqin4a2 xmkeg23 x1y0btm7 x12xov25 xgqmno8 x12ilycc xo2rkog xjb2p0i x4z9k3i xuxw1ft`},1:{className:`x2lah0s x10w6t97 xqin4a2 xmkeg23 x1y0btm7 xgqmno8 xjb2p0i x4z9k3i xuxw1ft x19ckca5 x1rqon0r xs0jrwl`}}[d===e.id|0],children:e.label??n(`whiteboard.all`)},e.id??``))})]})}var K=e=>typeof e.version!=`number`||typeof e.seed!=`number`,ze=e=>e===`human`||e===`agent`;function Be(e){let t=e.customData??{},n={};return ze(t.ryugiAuthor)&&(n.author=t.ryugiAuthor),typeof t.ryugiRev==`number`&&(n.rev=t.ryugiRev),ze(t.ryugiLastBy)&&(n.lastBy=t.ryugiLastBy),n}function q(e,t){for(let n of t)e.set(n.id,n.version??0)}function Ve(e,t){let n=t.filter(t=>e.get(t.id)!==(t.version??0));return q(e,n),n}var He=e=>({x:e.x??0,y:e.y??0,w:e.width??0,h:e.height??0});function Ue(e){let t=e.filter(e=>!e.isDeleted),n=new Map(t.map(e=>[e.id,e])),r={};for(let e of t){let t=He(e),i=e.containerId?n.get(e.containerId):void 0;if(e.type===`text`&&i&&![`arrow`,`line`].includes(i.type)){let e=He(i);(t.x+t.w>e.x+e.w||t.x<e.x||t.y+t.h>e.y+e.h)&&(t.overflow=!0)}r[e.id]=t}return{sceneVersion:e.reduce((e,t)=>e+(t.version??0),0),elements:r}}var We=new Set([`arrow`,`line`]),Ge=new Set([`rectangle`,`ellipse`,`diamond`]),Ke=[`x`,`y`,`width`,`height`,`text`],qe=e=>[e.start,e.end].map(e=>e?.id).filter(e=>typeof e==`string`),J=(e,t)=>({...e,...t,version:(e.version??0)+1,versionNonce:Math.floor(Math.random()*2**31),updated:Date.now()}),Je=e=>We.has(e.type)&&!e.points&&(e.width===0||e.height===0)&&(e.width||e.height)?{...e,points:[[0,0],[e.width??0,e.height??0]]}:e,Ye=(e,t)=>e.type!==`frame`||!Array.isArray(e.children)?e:(t.set(e.id,{children:e.children,box:e.width&&e.height?{x:e.x??0,y:e.y??0,width:e.width,height:e.height}:null}),{...e,children:[]});function Xe(e,t){let n=new Set(e.map(e=>e.id)),r=new Map(t.filter(e=>!e.isDeleted).map(e=>[e.id,e])),i=new Map;for(let t of e)for(let e of qe(t)){let t=r.get(e);!t||n.has(e)||i.has(e)||i.set(e,{id:e,type:Ge.has(t.type)?t.type:`rectangle`,x:t.x??0,y:t.y??0,width:t.width??0,height:t.height??0})}let a=new Map;return{batch:[...e.map(e=>Ye(Je(e),a)),...i.values()],standIns:new Set(i.keys()),frames:a}}var Ze=e=>{let t=e.x??0,n=e.y??0,r=Array.isArray(e.points)?e.points:null;if(!r?.length)return[t,n,t+(e.width??0),n+(e.height??0)];let i=r.map(([e])=>t+e),a=r.map(([,e])=>n+e);return[Math.min(...i),Math.min(...a),Math.max(...i),Math.max(...a)]},Y=10,Qe=e=>{let t=e.map(Ze),n=Math.min(...t.map(([e])=>e))-Y,r=Math.min(...t.map(([,e])=>e))-Y,i=Math.max(...t.map(([,,e])=>e))+Y,a=Math.max(...t.map(([,,,e])=>e))+Y;return{x:n,y:r,width:i-n,height:a-r}};function $e(e,t,n,r){for(let[i,{children:a,box:o}]of r){let r=new Set(a),s=e=>r.has(e.id)||!!(e.containerId&&r.has(e.containerId)),c=[];for(let[t,n]of e.entries())s(n)&&c.push(e[t]={...n,frameId:i});for(let r of n){if(!s(r)||e.some(e=>e.id===r.id))continue;let n=t.findIndex(e=>e.id===r.id),a=n>=0?{...t[n],frameId:i}:J(r,{frameId:i});n>=0?t[n]=a:t.push(a),c.push(a)}let l=e.findIndex(e=>e.id===i);if(l<0)continue;let u=o??(c.length?Qe(c):null);u&&(e[l]={...e[l],...u})}}function et(e,t,n,r=new Map){let i=e.filter(e=>!t.has(e.id)),a=[];for(let r of t){let t=n.find(e=>e.id===r);if(!t)continue;let i=t.boundElements??[],o=(e.find(e=>e.id===r)?.boundElements??[]).filter(e=>!i.some(t=>t.id===e.id));o.length&&a.push(J(t,{boundElements:[...i,...o]}))}return $e(i,a,n,r),{created:i,touched:a}}function tt(e,t){let n=new Map(e.map(e=>[e.id,e]));return t.flatMap(e=>{let t=n.get(e.id);return e.type!==`text`||!t||e.isDeleted||Ke.every(n=>e[n]===t[n])?[]:[J(t,Object.fromEntries(Ke.map(t=>[t,e[t]])))]})}var nt=e=>e.map(e=>e.type===`text`&&e.containerId&&typeof e.originalText==`string`?{...e,text:e.originalText}:e),rt=1e3,X=(e,t)=>{let n=new Map(t.map(e=>[e.id,e])),r=e.map(e=>n.get(e.id)??e),i=new Set(e.map(e=>e.id));return[...r,...t.filter(e=>!i.has(e.id))]};function it({id:e,pages:t,current:n,send:r,convert:i}){let a=(0,P.useRef)(new Map),o=(0,P.useRef)({send:r,convert:i});o.current={send:r,convert:i};let s=(0,P.useCallback)(async t=>{let n=a.current.get(t);if(!n)return;let r=n.elements.filter(K);if(r.length){let i=n.elements.filter(e=>!K(e)),a=o.current.convert(r,i);n.elements=X(i,a),o.current.send({type:`whiteboard-update`,artifact:`whiteboard/${e}`,page:t,elements:a,completion:!0})}let i=Ue(n.elements);if(i.sceneVersion===n.reported)return;n.reported=i.sceneVersion;let s=`page=${encodeURIComponent(t)}`;await fetch(N(`/api/whiteboard/${e}/geometry?${s}`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(i)});let c=await re({elements:n.elements.filter(e=>!e.isDeleted),appState:{viewBackgroundColor:`#ffffff`,exportBackground:!0},files:n.files,mimeType:`image/png`});await fetch(N(`/api/whiteboard/${e}/render?version=${i.sceneVersion}&${s}`),{method:`POST`,headers:{"Content-Type":`image/png`},body:c})},[e]),c=(0,P.useCallback)(e=>{let t=a.current.get(e);t&&(clearTimeout(t.timer),t.timer=setTimeout(()=>void s(e),rt))},[s]),l=(t?I(t).map(e=>e.id).filter(e=>e!==n):[]).join(`
|
|
2
2
|
`);return(0,P.useEffect)(()=>{let t=new Set(l?l.split(`
|
|
3
3
|
`):[]);for(let[e,n]of a.current)t.has(e)||(clearTimeout(n.timer),a.current.delete(e));for(let n of t){if(a.current.has(n))continue;let t={elements:[],files:{},reported:null};a.current.set(n,t),fetch(N(`/api/whiteboard/${e}/scene?page=${encodeURIComponent(n)}`),{cache:`no-store`}).then(e=>e.ok?e.json():null).catch(()=>null).then(e=>{e?.scene&&a.current.get(n)===t&&(t.elements=X(e.scene.elements,t.elements),t.files={...e.scene.files,...t.files},c(n))})}},[e,l,c]),(0,P.useEffect)(()=>{let e=a.current;return()=>{for(let t of e.values())clearTimeout(t.timer);e.clear()}},[e]),(0,P.useCallback)((e,t,n)=>{let r=a.current.get(e);r&&(r.elements=X(r.elements,t),n&&(r.files={...r.files,...n}),c(e))},[c])}var at=200,ot=1e3,Z=e=>e,st=Math.random().toString(36).slice(2),ct={file:{version:1,threads:[]},stale:[],orphans:[],placed:{}},Q=e=>({file:e.comments,stale:e.stale??[],orphans:e.orphans??[],placed:e.placed??{}}),lt=(e,t)=>!e||t&&!I(t).some(t=>t.id===e)?F:e,$=(e,t)=>{let{batch:n,standIns:r,frames:i}=Xe(e,t),{created:a,touched:o}=et(Z(M(n,{regenerateIds:!1})).map(t=>({...t,customData:e.find(e=>e.id===t.id)?.customData??t.customData})),r,t,i);return[...a,...o]};function ut(e,t,n=null){let r=`whiteboard/${e}`,[i,a]=(0,P.useState)(null),[o,s]=(0,P.useState)(null),c=lt(n,o),[l,u]=(0,P.useState)(new Set),d=(0,P.useRef)(c),[f,p]=(0,P.useState)(null),[m,h]=(0,P.useState)(ct),g=(0,P.useRef)(null),_=(0,P.useRef)(new Map),v=(0,P.useRef)([]),y=(0,P.useRef)(new Set),b=(0,P.useRef)(``),x=(0,P.useRef)({}),S=(0,P.useRef)(t);S.current=t;let C=(0,P.useRef)(()=>void 0),w=(0,P.useRef)(()=>void 0),T=(0,P.useCallback)(()=>{let e=g.current;if(!e)return;let t=Z(e.getSceneElementsIncludingDeleted()),n=tt(t,Z(ae(nt(t),null,{repairBindings:!0,refreshDimensions:!0})));if(!n.length)return;q(_.current,n);let i=new Map(n.map(e=>[e.id,e]));e.updateScene({elements:t.map(e=>i.get(e.id)??e)}),w.current({type:`whiteboard-update`,artifact:r,page:d.current,elements:n,completion:!0})},[r]),E=(0,P.useCallback)(e=>{let t=$(e,Z(g.current?.getSceneElementsIncludingDeleted()??v.current));q(_.current,t);let n=g.current;n&&n.updateScene({elements:ie(n.getSceneElementsIncludingDeleted(),t,n.getAppState())}),w.current({type:`whiteboard-update`,artifact:r,page:d.current,elements:t,completion:!0}),T()},[r,T]),D=(0,P.useCallback)(e=>{let t=e.filter(K),n=e.filter(e=>!K(e));q(_.current,n);let r=g.current;r&&n.length&&r.updateScene({elements:ie(r.getSceneElementsIncludingDeleted(),n,r.getAppState())}),t.length?E(t):n.length&&T()},[E,T]),{live:ee,send:O}=te(e=>{if(e.type===`whiteboard-comments`&&e.artifact===r){h(Q(e));return}if(e.type===`whiteboard-pages`&&e.artifact===r){s(e.pages);return}if(e.type!==`whiteboard-update`||e.artifact!==r)return;let t=e.page??`main`;if(t!==d.current)e.agent&&u(e=>new Set([...e,t])),C.current?.(t,e.elements,e.files);else{if(e.files){for(let t of Object.keys(e.files))y.current.add(t);g.current?.addFiles(Object.values(e.files))}D(e.elements),e.agent&&S.current?.(e.agent,e.elements)}});w.current=O,C.current=it({id:e,pages:o,current:c,send:O,convert:$}),(0,P.useEffect)(()=>{let t=!1;return fetch(N(`/api/whiteboard/${e}/pages`),{cache:`no-store`}).then(e=>e.ok?e.json():null).catch(()=>null).then(e=>{!t&&e?.pages&&s(e.pages)}),()=>{t=!0}},[e]),(0,P.useEffect)(()=>{let t=!1;d.current=c,u(e=>{if(!e.has(c))return e;let t=new Set(e);return t.delete(c),t});let n=c===`main`?``:`?page=${encodeURIComponent(c)}`;return fetch(N(`/api/whiteboard/${e}/scene${n}`),{cache:`no-store`}).then(e=>e.ok?e.json():null).then(e=>{if(t||!e)return;let n=e.scene.elements.filter(K),i=e.scene.elements.filter(e=>!K(e)),o=n.length?$(n,i):[],s=new Map(o.map(e=>[e.id,e])),l=[...i.map(e=>s.get(e.id)??e),...o.filter(e=>!i.some(t=>t.id===e.id))];q(_.current,l),y.current=new Set(Object.keys(e.scene.files??{})),v.current=l,a({page:c,scene:{...e.scene,elements:l}}),o.length&&w.current({type:`whiteboard-update`,artifact:r,page:c,elements:o,completion:!0}),p(e.problem),e.comments&&h(Q({...e,comments:e.comments}))}),()=>{t=!0,x.current.send&&(clearTimeout(x.current.send),x.current.send=void 0,A.current(c)),clearTimeout(x.current.report),_.current=new Map,v.current=[],b.current=``,g.current=null}},[e,c]);let k=(0,P.useCallback)(async()=>{let t=g.current,n=v.current,r=Ue(n),i=d.current,a=i===`main`?``:`page=${encodeURIComponent(i)}`;if(await fetch(N(`/api/whiteboard/${e}/geometry${a?`?${a}`:``}`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(r)}),!t)return;let o=await re({elements:n.filter(e=>!e.isDeleted),appState:t.getAppState(),files:t.getFiles(),mimeType:`image/png`});await fetch(N(`/api/whiteboard/${e}/render?version=${r.sceneVersion}${a?`&${a}`:``}`),{method:`POST`,headers:{"Content-Type":`image/png`},body:o})},[e]),A=(0,P.useRef)(()=>void 0);A.current=e=>{let t=Ve(_.current,v.current);if(!t.length)return;let n=g.current?.getFiles()??{},i=Object.fromEntries(t.map(e=>e.fileId).filter(e=>typeof e==`string`&&!y.current.has(e)&&e in n).map(e=>[e,n[e]]));for(let e of Object.keys(i))y.current.add(e);O({type:`whiteboard-update`,artifact:r,page:e,elements:t,...Object.keys(i).length?{files:i}:{}})};let ne=(0,P.useCallback)((e,t)=>{v.current=Z(e),clearTimeout(x.current.send),x.current.send=setTimeout(()=>{x.current.send=void 0,A.current(d.current)},at),clearTimeout(x.current.report),x.current.report=setTimeout(()=>void k(),ot);let n=Object.keys(t.selectedElementIds??{}).filter(e=>t.selectedElementIds[e]),i=n.join(`,`);if(i===b.current)return;b.current=i;let a=new Map(v.current.map(e=>[e.id,e])),o=new Map(v.current.filter(e=>e.containerId&&typeof e.text==`string`).map(e=>[e.containerId,e.text]));O({type:`selection`,artifact:r,tab:st,human:!0,page:d.current,selected:n.flatMap(e=>{let t=a.get(e);return t?[{id:t.id,type:t.type,text:o.get(t.id)??(typeof t.text==`string`?t.text:null),frameId:t.frameId??null,author:Be(t).author??null}]:[]})})},[r,k,O]),j=(0,P.useCallback)(e=>{g.current=e;let t=Z(e.getSceneElementsIncludingDeleted()).filter(K);t.length&&E(t),document.fonts?.ready.then(T)},[E,T]);(0,P.useEffect)(()=>{let e=document.fonts;if(e)return e.addEventListener(`loadingdone`,T),()=>e.removeEventListener(`loadingdone`,T)},[T]);let M=(0,P.useCallback)(async t=>{let n=await fetch(N(`/api/whiteboard/${e}/comments`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!n.ok)return!1;let r=await n.json();return r.comments&&h(Q({...r,comments:r.comments})),!0},[e]),oe=(0,P.useCallback)(()=>v.current,[]),se=(0,P.useCallback)(e=>O({type:`whiteboard-pages`,artifact:r,op:e}),[r,O]);return{scene:i?.page===c?i.scene:null,page:c,problem:f,live:ee,onChange:ne,setApi:j,api:g,report:k,send:O,comments:m,comment:M,elements:oe,pages:o,changedPages:l,pageOp:se}}var dt=(e,t)=>e.scrollX===t.scrollX&&e.scrollY===t.scrollY&&e.zoom===t.zoom;function ft({id:e}){let[t,r]=ue(),i=ut(e,()=>{},t),a=I(i.pages??[]).map(e=>({id:e.id,name:W(e)})),[o,s]=(0,P.useState)(!1),[c,l]=(0,P.useState)({scrollX:0,scrollY:0,zoom:1}),u=i.comments.file.threads.filter(e=>e.status===`open`).length;return(0,V.jsxs)(Re,{id:e,scene:i.scene,setApi:i.setApi,threads:u,header:(0,V.jsx)(v,{page:i.page,pages:a,onPageChange:e=>r(e===`main`?null:e,!1)}),onView:e=>{dt(e,c)||l(e)},children:[o&&(0,V.jsx)(Ae,{commenting:!1,comments:i.comments,elements:i.elements,page:i.page,view:c,onDone:()=>{},onOp:i.comment}),(0,V.jsx)(`button`,{"data-phone-comments":!0,"aria-label":n(`whiteboard.tools.comment`),"aria-pressed":o,type:`button`,onClick:()=>s(e=>!e),className:`x10l6tqk xn5hqff xn0vg7t xrvj5dj x1ku5rj1 x187nhsf xn3w4p2 xc342km x13pz1uv x7grq7f x8r4el6 x1fptykp x1n327nk`,children:(0,V.jsx)(D,{size:18})})]},i.page)}var pt=[`#1e1e1e`,`#e03131`,`#2f9e44`,`#1971c2`,`#f08c00`],mt=[`#ffec99`,`#ffc9c9`,`#b2f2bb`,`#a5d8ff`,`transparent`],ht=[[`S`,16],[`M`,20],[`L`,28]],gt=[1,2,4],_t=[100,60,30];function vt({x:e,y:t,selected:r,onApply:i,onWidth:a,trailing:o,compact:s=!1}){let[c,l]=(0,P.useState)(!1),u=r[0],d=u?.strokeColor,f=u?.backgroundColor,p=r.find(e=>typeof e.fontSize==`number`)?.fontSize;return(0,V.jsxs)(`div`,{"data-property-bar":!0,"data-compact":s||void 0,style:{left:e,top:t},ref:e=>{e&&a?.(e.offsetWidth)},className:`x10l6tqk x78zum5 x6s0dn4 x195vfkc x1vqgdyp x1xijbu4 x12ilycc xmkeg23 x1y0btm7 x12xov25 x1q4ynmn x1cqdj14 x1of6sz5`,children:[!s&&(0,V.jsx)(`span`,{className:`x1xijbu4 x1j6dyjg xddlp02`,children:n(`whiteboard.stroke`)}),pt.map(e=>(0,V.jsx)(`button`,{"aria-label":e,"data-stroke":e,style:{backgroundColor:e},type:`button`,onClick:()=>i({strokeColor:e}),...{0:{className:`x1xp8n7a xmix8c7 xj3msbq x1717udv xc342km x16rqkct x1scgrc6 x1ypdohk`},1:{className:`x1xp8n7a xmix8c7 xj3msbq x1717udv xc342km x16rqkct x1ypdohk x1cisi93`}}[d===e|0]},e)),(0,V.jsx)(`span`,{className:`x1i1rx1s xmix8c7 xjgtzcg xh6qj2i`}),!s&&(0,V.jsx)(`span`,{className:`x1xijbu4 x1j6dyjg xddlp02`,children:n(`whiteboard.fill`)}),mt.map(e=>(0,V.jsx)(`button`,{"aria-label":e,"data-fill":e,style:{backgroundColor:e===`transparent`?`#fff`:e},type:`button`,onClick:()=>i({backgroundColor:e,fillStyle:`solid`}),...{0:{className:`x1xp8n7a xmix8c7 xj3msbq x1717udv xc342km x1scgrc6 x1ypdohk x1sxf85j`},1:{className:`x1xp8n7a xmix8c7 xj3msbq x1717udv xc342km x1ypdohk x1sxf85j x1cisi93`}}[f===e|0]},e)),(0,V.jsx)(`span`,{className:`x1i1rx1s xmix8c7 xjgtzcg xh6qj2i`}),ht.map(([e,t])=>(0,V.jsx)(`button`,{"aria-label":`${n(`whiteboard.fontSize`)} ${e}`,"data-font-size":t,type:`button`,onClick:()=>i({fontSize:t}),...{0:{className:`xlrd64x xd7y6wv xfn1xvj xc342km x1kogg8i xjbqb8w x1bo0w0s x1j6dyjg x1s688f x1ypdohk`},1:{className:`xlrd64x xd7y6wv xfn1xvj xc342km x1kogg8i x1j6dyjg x1s688f x1ypdohk x15dg6x3 xo2rkog`}}[p===t|0],children:e},e)),(0,V.jsx)(`span`,{className:`x1i1rx1s xmix8c7 xjgtzcg xh6qj2i`}),(0,V.jsx)(`button`,{"aria-expanded":c,"aria-label":n(`whiteboard.more`),type:`button`,onClick:()=>l(e=>!e),className:`xlrd64x xd7y6wv xfn1xvj xc342km x1kogg8i xjbqb8w x1bo0w0s x1j6dyjg x1s688f x1ypdohk`,children:(0,V.jsx)(b,{size:16})}),c&&(0,V.jsxs)(`div`,{className:`x10l6tqk xtirvkn x3m8u43 x78zum5 x6s0dn4 x195vfkc x1ruevkc x12ilycc xmkeg23 x1y0btm7 x12xov25 x1q4ynmn x1cqdj14`,children:[(0,V.jsx)(`span`,{className:`x1xijbu4 x1j6dyjg xddlp02`,children:n(`whiteboard.strokeWidth`)}),gt.map(e=>(0,V.jsx)(`button`,{"data-stroke-width":e,type:`button`,onClick:()=>i({strokeWidth:e}),...{0:{className:`xlrd64x xd7y6wv xfn1xvj xc342km x1kogg8i xjbqb8w x1bo0w0s x1j6dyjg x1s688f x1ypdohk`},1:{className:`xlrd64x xd7y6wv xfn1xvj xc342km x1kogg8i x1j6dyjg x1s688f x1ypdohk x15dg6x3 xo2rkog`}}[u?.strokeWidth===e|0],children:e},e)),(0,V.jsx)(`span`,{className:`x1i1rx1s xmix8c7 xjgtzcg xh6qj2i`}),(0,V.jsx)(`span`,{className:`x1xijbu4 x1j6dyjg xddlp02`,children:n(`whiteboard.opacity`)}),_t.map(e=>(0,V.jsx)(`button`,{"data-opacity":e,type:`button`,onClick:()=>i({opacity:e}),...{0:{className:`xlrd64x xd7y6wv xfn1xvj xc342km x1kogg8i xjbqb8w x1bo0w0s x1j6dyjg x1s688f x1ypdohk`},1:{className:`xlrd64x xd7y6wv xfn1xvj xc342km x1kogg8i x1j6dyjg x1s688f x1ypdohk x15dg6x3 xo2rkog`}}[u?.opacity===e|0],children:e},e))]}),o]})}var yt=`#ffec99`,bt=[{key:`selection`,icon:g,shortcut:`V`,group:`move`},{key:`hand`,icon:p,shortcut:`H`,group:`move`},{key:`rectangle`,icon:ee,shortcut:`R`,group:`draw`},{key:`ellipse`,icon:h,shortcut:`O`,group:`draw`},{key:`arrow`,icon:fe,shortcut:`A`,group:`draw`},{key:`text`,icon:x,shortcut:`T`,group:`draw`},{key:`sticky`,icon:ge,shortcut:`S`,group:`draw`},{key:`freedraw`,icon:E,shortcut:`P`,group:`draw`},{key:`frame`,icon:w,shortcut:`F`,group:`draw`},{key:`comment`,icon:m,shortcut:`C`,group:`talk`}],xt=(e,t,n)=>({type:`rectangle`,x:e,y:t,width:240,height:120,backgroundColor:yt,fillStyle:`solid`,strokeColor:`#1e1e1e`,label:{text:n}}),St=2e3,Ct=1e4,wt={at:0,event:null},Tt=(e,t,n)=>({at:n,event:t});function Et(e,t){let n=t-e.at,r=e.event;return!r||n>=1e4?{glow:[],cursor:null,count:0}:{glow:n<2e3?r.changed:[],cursor:r.last,count:r.changed.length+r.deleted}}function Dt(){let[e,t]=(0,P.useState)(wt),[n,r]=(0,P.useState)(()=>Date.now());return(0,P.useEffect)(()=>{if(!e.event)return;let t=()=>r(Date.now()),n=setTimeout(t,Math.max(0,e.at+St-Date.now())),i=setTimeout(t,Math.max(0,e.at+Ct-Date.now()));return()=>{clearTimeout(n),clearTimeout(i)}},[e]),{visible:Et(e,n),record:e=>{let n=Date.now();t(t=>Tt(t,e,n)),r(n)}}}var Ot=.8;function kt(e,t,n,r,i=!1){if(e.frame){let a=n.filter(t=>t.id===e.frame);if(a.length)return{target:a,frame:e.frame};let o=r[e.frame];return!o&&i?{wait:!0}:o&&o!==t?{switchTo:o}:{drop:!0}}return e.page&&e.page!==t?{switchTo:e.page}:{target:n}}function At(e,t,n={current:F,switchTo:()=>void 0}){let r=(0,P.useMemo)(()=>o(),[]),[i,c]=(0,P.useState)({}),[l,u]=(0,P.useState)(`Agent`),[d,f]=(0,P.useState)(null),[p,m]=(0,P.useState)(!1),h=(0,P.useRef)(null),g=(0,P.useRef)({}),_=(0,P.useRef)(!1),v=(0,P.useRef)(null);(0,P.useEffect)(()=>{let t=!1,n=()=>fetch(N(`/api/artifacts/whiteboard/${e}`),{cache:`no-store`}).then(async e=>e.ok?await e.json():null).catch(()=>null).then(e=>{!t&&e&&(e.backlinks&&c(e.backlinks),typeof e.agent==`string`&&e.agent&&u(e.agent))});n();let r=A(t=>{t.type===`change`&&t.artifact===`whiteboard/${e}`&&n()});return()=>{t=!0,r()}},[e]);let y=()=>{let e=t.current,r=h.current;if(!r||!e)return;let i=e.getSceneElements();if(!i.length&&!r.page&&!r.frame)return;let a=kt(r,n.current,i,g.current,_.current);`wait`in a||(`switchTo`in a?(h.current={frame:r.frame??null},n.switchTo(a.switchTo)):i.length&&(h.current=null,!(`drop`in a||!a.target.length)&&(e.scrollToContent(a.target,{fitToViewport:!0,viewportZoomFactor:Ot,animate:!0}),f(a.frame??null))))},b=(0,P.useRef)(y);return b.current=y,(0,P.useEffect)(()=>{if(!r)return;let t=s(t=>{t.kind===`chrome`&&m(t.hosted),t.kind===`focus`&&(h.current={frame:t.frame??null,page:t.page},t.frame&&!g.current[t.frame]&&(_.current=!0,fetch(N(`/api/whiteboard/${e}/pages`),{cache:`no-store`}).then(e=>e.ok?e.json():null).catch(()=>null).then(e=>{g.current=Object.fromEntries(Object.entries(e?.frames??{}).map(([e,t])=>[e,t.page])),_.current=!1,b.current()})),b.current())});return a({kind:`ready`}),t},[r,e]),{split:r,agent:l,docked:p,focus:d,flush:y,count:d?i[d]?.length??0:0,onSelect:e=>{if(!r)return;let t=e.length===1&&e[0].type===`frame`?e[0].id:null;e.length&&t!==d&&f(null),t!==v.current&&(v.current=t,t&&a({kind:`select`,key:t}))}}}function jt({id:e,active:r,onTool:i,zoom:a,comments:o,agentNotice:s,trailing:c,pageMenu:l,docked:u=!1,readOnly:d=!1}){let f=d?bt.filter(e=>e.group!==`draw`):bt;return(0,V.jsxs)(V.Fragment,{children:[!u&&(0,V.jsxs)(`div`,{"data-chrome":!0,...t(B.bar,B.left),children:[(0,V.jsxs)(`span`,{...t(B.crumb),children:[n(`type.whiteboard`),` / `,(0,V.jsx)(`span`,{...t(B.crumbId),children:e})]}),l,s,f.map((e,a)=>{let o=e.icon,s=n(`whiteboard.tools.${e.key}`),c=a===0||e.group!==f[a-1].group;return(0,V.jsxs)(`span`,{style:{display:`contents`},children:[c&&(0,V.jsx)(`span`,{...t(B.divider)}),(0,V.jsx)(`button`,{"aria-label":s,"aria-pressed":r===e.key,"data-tool":e.key,title:s,type:`button`,onClick:()=>i(e.key),...t(B.tool,r===e.key&&B.toolOn),children:(0,V.jsx)(o,{size:18,strokeWidth:1.75})})]},e.key)})]}),(0,V.jsxs)(`div`,{"data-chrome":!0,...t(B.bar,B.right),children:[u&&s,(0,V.jsxs)(`span`,{...t(B.zoom),children:[Math.round(a*100),`%`]}),(0,V.jsx)(`span`,{...t(B.divider)}),(0,V.jsxs)(`span`,{...t(B.count),children:[(0,V.jsx)(D,{size:15}),o]}),c]})]})}window.EXCALIDRAW_ASSET_PATH=`/`;var Mt={canvasActions:{changeViewBackgroundColor:!1,clearCanvas:!1,export:!1,loadScene:!1,saveAsImage:!1,saveToActiveFile:!1,toggleTheme:!1},tools:{image:!1}},Nt=700,Pt=e=>e.map(e=>`${e.id}:${e.version??0}`).join(`,`);function Ft({id:e}){return i(se(`(max-width: 640px)`))?(0,V.jsx)(ft,{id:e}):(0,V.jsx)(It,{id:e})}function It({id:e}){let r=Dt(),[i,a]=ue(),o=ut(e,r.record,i);ne(o.scene!==null||o.problem!==null);let s=At(e,o.api,{current:o.page,switchTo:e=>a(e===`main`?null:e,!0)}),c=Fe(),[l,u]=(0,P.useState)(`selection`),[d,f]=(0,P.useState)({scrollX:0,scrollY:0,zoom:1}),[p,m]=(0,P.useState)({width:1280,height:800}),[h,g]=(0,P.useState)([]),[_,v]=(0,P.useState)(void 0),[y,b]=(0,P.useState)(!1),x=e=>{let t=o.api.current;if(u(e),t&&e!==`comment`){if(e===`sticky`){let e=t.getAppState(),r=-e.scrollX+e.width/(2*e.zoom.value)-120,i=-e.scrollY+e.height/(2*e.zoom.value)-60,a=M([xt(r,i,n(`whiteboard.sticky`))]);t.updateScene({elements:[...t.getSceneElementsIncludingDeleted(),...a],appState:{selectedElementIds:{[a[0].id]:!0}}}),u(`selection`)}else t.setActiveTool({type:e})}},S=(e,t)=>{o.onChange(e,t),s.flush();let n={scrollX:t.scrollX,scrollY:t.scrollY,zoom:t.zoom.value};(n.scrollX!==d.scrollX||n.scrollY!==d.scrollY||n.zoom!==d.zoom)&&f(n),(t.width!==p.width||t.height!==p.height)&&m({width:t.width,height:t.height});let r=Object.keys(t.selectedElementIds??{}).filter(e=>t.selectedElementIds[e]),i=e.filter(e=>r.includes(e.id));Pt(i)!==Pt(h)&&(g(i),i.length||b(!1),s.onSelect(i))},C=e=>{let t=o.api.current;if(!t)return;let n=new Set(h.map(e=>e.id));t.updateScene({elements:t.getSceneElementsIncludingDeleted().map(t=>{let r=t;if(!(n.has(r.id)||r.containerId&&n.has(r.containerId)))return t;let i=Object.fromEntries(Object.entries(e).filter(([e])=>e===`fontSize`?r.type===`text`:e===`backgroundColor`||e===`fillStyle`?r.type!==`text`:!0));return{...t,...i,version:(r.version??0)+1,versionNonce:Math.floor(Math.random()*2**31),updated:Date.now()}})})},w=xe(h,h.map(e=>e.id)),T=w&&{...z(w,d),w:w.w*d.zoom,h:w.h*d.zoom},E=T&&Ce(T,p,_);return(0,V.jsxs)(`div`,{...t(B.root),children:[o.scene?(0,V.jsx)(`div`,{"data-whiteboard-canvas":!0,"data-hide-native":`true`,...t(B.canvas),children:(0,V.jsx)(j,{UIOptions:Mt,excalidrawAPI:o.setApi,theme:c?`dark`:`light`,initialData:{elements:o.scene.elements,appState:{...o.scene.appState,viewBackgroundColor:`#ffffff`},files:o.scene.files,scrollToContent:!0},onChange:S},o.page)}):(0,V.jsx)(`div`,{...t(B.loading),children:(0,V.jsx)(k,{label:n(`whiteboard.loading`)})}),o.problem&&(0,V.jsx)(`div`,{role:`alert`,...t(B.problem),children:n(`whiteboard.problem`,{problem:o.problem})}),E&&l!==`comment`&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(vt,{compact:p.width<Nt,selected:h,x:E.props.x,y:E.props.y,trailing:(0,V.jsx)(De,{compact:p.width<Nt,onClick:()=>b(!0)}),onApply:C,onWidth:e=>{e&&e!==_&&v(e)}}),y&&(0,V.jsx)(Oe,{composer:E.composer,count:h.length,onClose:()=>b(!1),onSend:async e=>(await o.report(),o.comment(we(h,e,n(`whiteboard.askDefault`),o.page)))})]}),(0,V.jsx)(Ae,{commenting:l===`comment`,comments:o.comments,elements:o.elements,page:o.page,view:d,onDone:()=>u(`selection`),onOp:o.comment}),(0,V.jsx)(Me,{count:s.count,elements:o.api.current?.getSceneElements()??[],frame:s.focus,view:d}),(0,V.jsx)(Ee,{agent:s.agent,cursor:r.visible.cursor,elements:o.api.current?.getSceneElements()??[],glow:r.visible.glow,view:d}),(0,V.jsx)(jt,{active:l,agentNotice:(0,V.jsx)(Te,{count:r.visible.count}),comments:o.comments.file.threads.filter(e=>e.status===`open`).length,docked:s.docked,id:e,zoom:d.zoom,pageMenu:o.pages&&(0,V.jsx)(Ne,{changed:o.changedPages,page:o.page,pages:o.pages,onOp:o.pageOp,onPick:e=>a(e===`main`?null:e,!1)}),onTool:x})]})}export{Ft as WhiteboardLayout};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./src-KUZZYZBk.js";import{n as t}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import"./chunk-DU6HZSFF-CO07tHJW.js";import"./dist-
|
|
1
|
+
import{n as e}from"./src-KUZZYZBk.js";import{n as t}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import"./chunk-DU6HZSFF-CO07tHJW.js";import"./dist-CvUVJeYy.js";import{m as n,t as r}from"./mermaid-parser.core-DIrH0vIS.js";import{n as i,r as a,t as o}from"./chunk-SVP7TREG-CED6GZRt.js";import{t as s}from"./chunk-JWPE2WC7-DVXcaiue.js";var c=n().RailroadAbnf.parser.LangiumParser,l=t(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=t(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=t(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=t(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=t(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=t(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=t(e=>{s(e,o),e.title&&o.setTitle(e.title),e.rules.map(e=>o.addRule(m(e)))},`populateDb`),g={parser:{parse:t(t=>{o.clear(),e.debug(`[ABNF Parser] Starting Langium parse`);let n=c.parse(t);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new r(n);let i=n.value;e.debug(`[ABNF Parser] Parsed rules:`,i.rules.length),h(i),e.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:o}},db:o,renderer:a,styles:i};export{g as diagram};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"./prod-
|
|
1
|
+
import"./prod-DO1G2WEh.js";var e={paste:`لصق`,pasteAsPlaintext:`اللصق كنص عادي`,pasteCharts:`لصق الرسوم البيانية`,selectAll:`تحديد الكل`,multiSelect:`إضافة عنصر للتحديد`,moveCanvas:`نقل لوح الرسم`,cut:`قص`,copy:`نسخ`,copyAsPng:`نسخ إلى الحافظة بصيغة PNG`,copyAsSvg:`نسخ إلى الحافظة بصيغة SVG`,copyText:`نسخ إلى الحافظة كنص`,copySource:``,convertToCode:``,bringForward:`جلب للأمام`,sendToBack:`أرسل للخلف`,bringToFront:`أحضر للأمام`,sendBackward:`أرسل للخلف`,delete:`حذف`,copyStyles:`نسخ الأنماط`,pasteStyles:`لصق الأنماط`,stroke:`الخط`,background:`الخلفية`,fill:`التعبئة`,strokeWidth:`سُمك الخط`,strokeStyle:`نمط الخط`,strokeStyle_solid:`متصل`,strokeStyle_dashed:`متقطع`,strokeStyle_dotted:`منقط`,sloppiness:`الإمالة`,opacity:`الشفافية`,textAlign:`محاذاة النص`,edges:`الحواف`,sharp:`حادة`,round:`دائرية`,arrowheads:`رؤوس الأسهم`,arrowhead_none:`لا شيء`,arrowhead_arrow:`سهم`,arrowhead_bar:`شريط`,arrowhead_circle:``,arrowhead_circle_outline:``,arrowhead_triangle:`مثلث`,arrowhead_triangle_outline:``,arrowhead_diamond:``,arrowhead_diamond_outline:``,fontSize:`حجم الخط`,fontFamily:`نوع الخط`,addWatermark:`إضافة "مصنوعة بواسطة Excalidraw"`,handDrawn:`رسم باليد`,normal:`عادي`,code:`رمز`,small:`صغير`,medium:`متوسط`,large:`كبير`,veryLarge:`كبير جدا`,solid:`كامل`,hachure:`خطوط`,zigzag:`متعرج`,crossHatch:`خطوط متقطعة`,thin:`نحيف`,bold:`داكن`,left:`الـيسار`,center:`وسط`,right:`يمين`,extraBold:`عريض`,architect:`معماري`,artist:`رسام`,cartoonist:`كرتوني`,fileTitle:`إسم الملف`,colorPicker:`منتقي اللون`,canvasColors:`تستخدم على القماش`,canvasBackground:`خلفية اللوحة`,drawingCanvas:`لوحة الرسم`,layers:`الطبقات`,actions:`الإجراءات`,language:`اللغة`,liveCollaboration:`التعاون المباشر...`,duplicateSelection:`تكرار`,untitled:`غير معنون`,name:`الاسم`,yourName:`اسمك`,madeWithExcalidraw:`مصنوعة بواسطة Excalidraw`,group:`تحديد مجموعة`,ungroup:`إلغاء تحديد مجموعة`,collaborators:`المتعاونون`,showGrid:`إظهار الشبكة`,addToLibrary:`أضف إلى المكتبة`,removeFromLibrary:`حذف من المكتبة`,libraryLoadingMessage:`جارٍ تحميل المكتبة…`,libraries:`تصفح المكتبات`,loadingScene:`جاري تحميل المشهد…`,align:`محاذاة`,alignTop:`محاذاة إلى اﻷعلى`,alignBottom:`محاذاة إلى اﻷسفل`,alignLeft:`محاذاة إلى اليسار`,alignRight:`محاذاة إلى اليمين`,centerVertically:`توسيط عمودي`,centerHorizontally:`توسيط أفقي`,distributeHorizontally:`التوزيع الأفقي`,distributeVertically:`التوزيع عمودياً`,flipHorizontal:`قلب عامودي`,flipVertical:`قلب أفقي`,viewMode:`نمط العرض`,share:`مشاركة`,showStroke:`إظهار منتقي لون الخط`,showBackground:`إظهار منتقي لون الخلفية`,toggleTheme:`غير النمط`,personalLib:`المكتبة الشخصية`,excalidrawLib:`مكتبتنا`,decreaseFontSize:`تصغير حجم الخط`,increaseFontSize:`تكبير حجم الخط`,unbindText:`فك ربط النص`,bindText:`ربط النص بالحاوية`,createContainerFromText:`نص مغلف في حاوية`,link:{edit:`تعديل الرابط`,editEmbed:`تحرير الرابط وإدراجه`,create:`إنشاء رابط`,createEmbed:`إنشاء رابط و إدراجه`,label:`رابط`,labelEmbed:`رابط و إدراج`,empty:`لم يتم تعيين رابط`},lineEditor:{edit:`تحرير السطر`,exit:`الخروج من المُحرر`},elementLock:{lock:`قفل`,unlock:`فتح`,lockAll:`قفل الكل`,unlockAll:`فتح الكل`},statusPublished:`نُشر`,sidebarLock:`إبقاء الشريط الجانبي مفتوح`,selectAllElementsInFrame:`تحديد جميع العناصر في الإطار`,removeAllElementsFromFrame:`إزالة جميع العناصر من الإطار`,eyeDropper:`اختيار اللون من القماش`,textToDiagram:``,prompt:``},t={noItems:`لا توجد عناصر أضيفت بعد...`,hint_emptyLibrary:`حدد عنصر على القماش لإضافته هنا، أو تثبيت مكتبة من المستودع العام أدناه.`,hint_emptyPrivateLibrary:`حدد عنصر على القماش لإضافته هنا.`},n={clearReset:`إعادة تعيين اللوحة`,exportJSON:`صدر الملف`,exportImage:`تصدير الصورة...`,export:`حفظ إلى...`,copyToClipboard:`نسخ إلى الحافظة`,save:`احفظ للملف الحالي`,saveAs:`حفظ كـ`,load:`فتح`,getShareableLink:`احصل على رابط المشاركة`,close:`غلق`,selectLanguage:`اختر اللغة`,scrollBackToContent:`الرجوع إلى المحتوى`,zoomIn:`تكبير`,zoomOut:`تصغير`,resetZoom:`إعادة تعيين الشاشة`,menu:`القائمة`,done:`تم`,edit:`تعديل`,undo:`تراجع`,redo:`إعادة تنفيذ`,resetLibrary:`إعادة ضبط المكتبة`,createNewRoom:`إنشاء غرفة جديدة`,fullScreen:`شاشة كاملة`,darkMode:`الوضع المظلم`,lightMode:`الوضع المضيء`,zenMode:`وضع التأمل`,objectsSnapMode:`التقط إلى العناصر`,exitZenMode:`إلغاء الوضع الليلى`,cancel:`إلغاء`,clear:`مسح`,remove:`إزالة`,embed:`تبديل الإدراج`,publishLibrary:`انشر`,submit:`أرسل`,confirm:`تأكيد`,embeddableInteractionButton:`اضغط للتفاعل`},r={clearReset:`هذا سيُزيل كامل اللوحة. هل أنت متأكد؟`,couldNotCreateShareableLink:`تعذر إنشاء رابطة المشاركة.`,couldNotCreateShareableLinkTooBig:`تعذر إنشاء رابط قابل للمشاركة: المشهد كبير جدًا`,couldNotLoadInvalidFile:`تعذر التحميل، الملف غير صالح`,importBackendFailed:`فشل الاستيراد من الخادوم.`,cannotExportEmptyCanvas:`لا يمكن تصدير لوحة فارغة.`,couldNotCopyToClipboard:`تعذر النسخ إلى الحافظة.`,decryptFailed:`تعذر فك تشفير البيانات.`,uploadedSecurly:`تم تأمين التحميل بتشفير النهاية إلى النهاية، مما يعني أن خادوم Excalidraw والأطراف الثالثة لا يمكنها قراءة المحتوى.`,loadSceneOverridePrompt:`تحميل الرسم الخارجي سيحل محل المحتوى الموجود لديك. هل ترغب في المتابعة؟`,collabStopOverridePrompt:`إيقاف الجلسة سيؤدي إلى الكتابة فوق رسومك السابقة المخزنة داخليا. هل أنت متأكد؟
|
|
2
2
|
|
|
3
3
|
(إذا كنت ترغب في الاحتفاظ برسمك المخزن داخليا، ببساطة أغلق علامة تبويب المتصفح بدلاً من ذلك.)`,errorAddingToLibrary:`تعذر إضافة العنصر للمكتبة`,errorRemovingFromLibrary:`تعذر إزالة العنصر من المكتبة`,confirmAddLibrary:`هذا سيضيف {{numShapes}} شكل إلى مكتبتك. هل أنت متأكد؟`,imageDoesNotContainScene:`يبدو أن هذه الصورة لا تحتوي على أي بيانات مشهد. هل قمت بتمكين تضمين المشهد أثناء التصدير؟`,cannotRestoreFromImage:`تعذر استعادة المشهد من ملف الصورة`,invalidSceneUrl:`تعذر استيراد المشهد من عنوان URL المتوفر. إما أنها مشوهة، أو لا تحتوي على بيانات Excalidraw JSON صالحة.`,resetLibrary:`هذا سوف يمسح مكتبتك. هل أنت متأكد؟`,removeItemsFromsLibrary:`حذف {{count}} عنصر (عناصر) من المكتبة؟`,invalidEncryptionKey:`مفتاح التشفير يجب أن يكون من 22 حرفاً. التعاون المباشر معطل.`,collabOfflineWarning:`لا يوجد اتصال بالانترنت.
|
|
4
4
|
لن يتم حفظ التغييرات التي قمت بها!`},i={unsupportedFileType:`نوع الملف غير مدعوم.`,imageInsertError:`تعذر إدراج الصورة. حاول مرة أخرى لاحقاً...`,fileTooBig:`الملف كبير جداً. الحد الأقصى المسموح به للحجم هو {{maxSize}}.`,svgImageInsertError:`تعذر إدراج صورة SVG. يبدو أن ترميز SVG غير صحيح.`,failedToFetchImage:``,invalidSVGString:`SVG غير صالح.`,cannotResolveCollabServer:`تعذر الاتصال بخادم التعاون. الرجاء إعادة تحميل الصفحة والمحاولة مرة أخرى.`,importLibraryError:`تعذر تحميل المكتبة`,collabSaveFailed:`تعذر الحفظ في قاعدة البيانات. إذا استمرت المشاكل، يفضل أن تحفظ ملفك محليا كي لا تفقد عملك.`,collabSaveFailed_sizeExceeded:`تعذر الحفظ في قاعدة البيانات، يبدو أن القماش كبير للغاية، يفضّل حفظ الملف محليا كي لا تفقد عملك.`,imageToolNotSupported:``,brave_measure_text_error:{line1:`يبدو أنك تستخدم متصفح Brave مع إعداد <bold>حظر صارم لتتبع البصمة</bold>.`,line2:`قد يؤدي هذا إلى كسر <bold>عناصر النص</bold> في الرسومات الخاصة بك.`,line3:`من المستحسن إلغاء تفعيل هذا الإعداد. يمكنك اتباع <link>هذه الخطوات</link> لفعل ذلك.`,line4:`إذا لم يصلح تعطيل هذا الإعداد طريقة عرض النصوص، الرجاء كتابة <issueLink>بلاغ</issueLink> على حسابنا في GitHub، أو راسلنا على <discordLink>Discord</discordLink>`},libraryElementTypeError:{embeddable:`لا يمكن إضافة العناصر القابلة للتضمين في المكتبة.`,iframe:``,image:`سوف يتم دعم إضافة صور إلى المكتبة قريباً!`},asyncPasteFailedOnRead:``,asyncPasteFailedOnParse:``,copyToSystemClipboardFailed:``},a={selection:`تحديد`,image:`إدراج صورة`,rectangle:`مستطيل`,diamond:`مضلع`,ellipse:`دائرة`,arrow:`سهم`,line:`خط`,freedraw:`رسم`,text:`نص`,library:`مكتبة`,lock:`الحفاظ على أداة التحديد نشطة بعد الرسم`,penMode:`وضع القلم - امنع اللمس`,link:`إضافة/تحديث الرابط للشكل المحدد`,eraser:`ممحاة`,frame:`أداة الإطار`,magicframe:``,embeddable:`تضمين ويب`,laser:`مؤشر ليزر`,hand:`يد (أداة الإزاحة)`,extraTools:`المزيد من أﻷدوات`,mermaidToExcalidraw:``,magicSettings:``},o={canvasActions:`إجراءات اللوحة`,selectedShapeActions:`إجراءات الشكل المحدد`,shapes:`الأشكال`},s={canvasPanning:`لتحريك القماش، اضغط على عجلة الفأرة أو مفتاح المسافة أثناء السحب، أو استخدم أداة اليد`,linearElement:`انقر لبدء نقاط متعددة، اسحب لخط واحد`,freeDraw:`انقر واسحب، افرج عند الانتهاء`,text:`نصيحة: يمكنك أيضًا إضافة نص بالنقر المزدوج في أي مكان بأداة الاختيار`,embeddable:`اضغط مع السحب لإنشاء موقع ويب مضمّن`,text_selected:`انقر نقراً مزدوجاً أو اضغط ادخال لتعديل النص`,text_editing:`اضغط على Esc أو (Ctrl أو Cmd) + Enter لإنهاء التعديل`,linearElementMulti:`انقر فوق النقطة الأخيرة أو اضغط على Esc أو Enter للإنهاء`,lockAngle:`يمكنك تقييد الزاوية بالضغط على SHIFT`,resize:`يمكنك تقييد النسب بالضغط على SHIFT أثناء تغيير الحجم،
|