ryugi-artifacts 1.62.0 → 1.62.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (314) hide show
  1. package/dist/cli.cjs +3 -3
  2. package/dist/server.cjs +166454 -87100
  3. package/dist/viewer/AgentStatusPill-CwEGGYdv.js +1 -0
  4. package/dist/viewer/{ArtboardLayout-DNEnGzZE.js → ArtboardLayout-0C938p1A.js} +1 -1
  5. package/dist/viewer/{ArtifactList-DL6BYjYq.js → ArtifactList-DfiX6VRM.js} +1 -1
  6. package/dist/viewer/{AutoPublishPrompt-BeDrSjvO.js → AutoPublishPrompt-nJ8cdRk1.js} +1 -1
  7. package/dist/viewer/{Avatar-C1qMVHNH.js → Avatar-C0F7pe-e.js} +1 -1
  8. package/dist/viewer/{Avatar-CaNBCS-D.js → Avatar-C4aIAVqY.js} +1 -1
  9. package/dist/viewer/{BottomSheet-CebyxnEs.js → BottomSheet-B307KRK7.js} +1 -1
  10. package/dist/viewer/{Canvas-CdoBA8TP.js → Canvas-CdykCVEn.js} +1 -1
  11. package/dist/viewer/DocumentLayout-NOYAyffm.js +2 -0
  12. package/dist/viewer/{DocumentPage-DaPgnxMA.js → DocumentPage-BnOdSxZW.js} +2 -2
  13. package/dist/viewer/{HtmlLayout-Fcar9mCp.js → HtmlLayout-BZUHuQr3.js} +1 -1
  14. package/dist/viewer/{PhoneSheet-M2-3Thyf.js → PhoneSheet-DF6lSlcn.js} +1 -1
  15. package/dist/viewer/{Popover-BrbRGtu0.js → Popover-BP5AXaMJ.js} +1 -1
  16. package/dist/viewer/{PreviewLayout-Bn2upRjo.js → PreviewLayout-CBUVgt6Y.js} +2 -2
  17. package/dist/viewer/{Select-DRGXbKgj.js → Select-DNP7d63w.js} +1 -1
  18. package/dist/viewer/{SelectScrollUpArrow-BmTLWkDb.js → SelectScrollUpArrow-sbeMK4cK.js} +1 -1
  19. package/dist/viewer/{SettingsDialog-BuOQmbVq.js → SettingsDialog-C5wky3Bj.js} +1 -1
  20. package/dist/viewer/{SnapshotDocument-CcK83Kab.js → SnapshotDocument-D87vJVrp.js} +1 -1
  21. package/dist/viewer/{SplitShell-D3nypYRJ.js → SplitShell-D3yp4HxQ.js} +1 -1
  22. package/dist/viewer/{ThreadView-B-8R22hW.js → ThreadView-BAZoIpHC.js} +1 -1
  23. package/dist/viewer/{TooltipPopup-BZsFMdLy.js → TooltipPopup-DfQaFUOW.js} +1 -1
  24. package/dist/viewer/{VirtualizedEditor-D9Ivycdp-B9mkWAlB.js → VirtualizedEditor-D9Ivycdp-BSm5ONw6.js} +1 -1
  25. package/dist/viewer/{VirtualizedRenderer-C_d95FXi-CBwqc3D9.js → VirtualizedRenderer-C_d95FXi-kBRtazXq.js} +1 -1
  26. package/dist/viewer/{WarningsBadge-DfCv-zCc.js → WarningsBadge-BNiqxTlt.js} +1 -1
  27. package/dist/viewer/{WhiteboardLayout-DlDxRDeC.js → WhiteboardLayout-CoqUG3JF.js} +1 -1
  28. package/dist/viewer/{WritingCursor-6XjLzlq3.js → WritingCursor-CXJXWz4V.js} +1 -1
  29. package/dist/viewer/{abnfDiagram-VCTEODGH-u9DWEkCZ.js → abnfDiagram-VCTEODGH-Bed0DQeq.js} +1 -1
  30. package/dist/viewer/{agentLook-DChk-5JQ.js → agentLook-BN9H4tT0.js} +1 -1
  31. package/dist/viewer/{anchor-BUz43RKZ.js → anchor-Ddb2IWkq.js} +1 -1
  32. package/dist/viewer/{ar-SA-G6X2FPQ2-DlssrCYh.js → ar-SA-G6X2FPQ2-C38vP2Vn.js} +1 -1
  33. package/dist/viewer/{architecture-7GRP2DOG-HqsIevRd.js → architecture-7GRP2DOG-DyI7LHiK.js} +1 -1
  34. package/dist/viewer/{architectureDiagram-5GKGNRK7-0rzqJrtz.js → architectureDiagram-5GKGNRK7-Dwb5S0tN.js} +1 -1
  35. package/dist/viewer/{az-AZ-76LH7QW2-CQ7OjFx3.js → az-AZ-76LH7QW2-DBbL5eMD.js} +1 -1
  36. package/dist/viewer/{bg-BG-XCXSNQG7-jtcmlYdY.js → bg-BG-XCXSNQG7-CknnI1kf.js} +1 -1
  37. package/dist/viewer/{blockDiagram-I7D4REHJ-DR8lxQFk.js → blockDiagram-I7D4REHJ-CxEEafN3.js} +1 -1
  38. package/dist/viewer/{bn-BD-2XOGV67Q-CfBvihS2.js → bn-BD-2XOGV67Q-Clcz4d2T.js} +1 -1
  39. package/dist/viewer/{c4Diagram-7LVT6UL2-WatDfcNf.js → c4Diagram-7LVT6UL2-BbrhQfZM.js} +1 -1
  40. package/dist/viewer/{ca-ES-6MX7JW3Y-CtLDu9i0.js → ca-ES-6MX7JW3Y-rotwnTvt.js} +1 -1
  41. package/dist/viewer/channel-BmNdQ2rk.js +1 -0
  42. package/dist/viewer/{channel-DDH61e3T.js → channel-BvCX9HOf.js} +5 -5
  43. package/dist/viewer/{chunk-4HAMMTFA-jDVq48j-.js → chunk-4HAMMTFA-B_IggRQt.js} +1 -1
  44. package/dist/viewer/{chunk-75Z2AOVW-DHKai-FQ.js → chunk-75Z2AOVW-64ZvgJMQ.js} +1 -1
  45. package/dist/viewer/{chunk-DU6HZSFF-C0xYyjET.js → chunk-DU6HZSFF-DoPGL8bE.js} +1 -1
  46. package/dist/viewer/{chunk-EIO257PC-BNd--Ieg.js → chunk-EIO257PC-C-bl-rLg.js} +1 -1
  47. package/dist/viewer/{chunk-F27PBJKO-BnjkkdIa.js → chunk-F27PBJKO-BJxDw3sf.js} +1 -1
  48. package/dist/viewer/{chunk-GMAD6QVW-DN49oB2T.js → chunk-GMAD6QVW-Bn2d64Jg.js} +1 -1
  49. package/dist/viewer/{chunk-GVQU2GXP-Cw1h2PEX.js → chunk-GVQU2GXP-DVx5kGHM.js} +1 -1
  50. package/dist/viewer/{chunk-IMKFNOWR-Buy3Kl57.js → chunk-IMKFNOWR-_mbNB2V4.js} +1 -1
  51. package/dist/viewer/{chunk-L3NEJ4N5-CVy8XM6a.js → chunk-L3NEJ4N5-C3OIoL8M.js} +1 -1
  52. package/dist/viewer/{chunk-OSK3NFVY-G7f_ICg5.js → chunk-OSK3NFVY-B_O0Uaxm.js} +1 -1
  53. package/dist/viewer/{chunk-P2QGCYS3-DWRKLyKz.js → chunk-P2QGCYS3-Cpc0EgRo.js} +1 -1
  54. package/dist/viewer/{chunk-POPQ4Y6H-C8zuJvsm.js → chunk-POPQ4Y6H-BKKPVD9I.js} +1 -1
  55. package/dist/viewer/{chunk-PWAF6VOD-CNjs6K1D.js → chunk-PWAF6VOD-CsumZ3UQ.js} +1 -1
  56. package/dist/viewer/{chunk-SHT3W25Y-DQMzR0DF.js → chunk-SHT3W25Y-2sIuyKEz.js} +1 -1
  57. package/dist/viewer/{chunk-SVP7TREG-Czn1xiek.js → chunk-SVP7TREG-P5YP-c3S.js} +1 -1
  58. package/dist/viewer/{chunk-TICWLB2K-DfvNxDSe.js → chunk-TICWLB2K-LIXkbQQd.js} +1 -1
  59. package/dist/viewer/classDiagram-ZZMXUADV-CKqu7MGg.js +1 -0
  60. package/dist/viewer/classDiagram-v2-VYDZK3BY-CKqu7MGg.js +1 -0
  61. package/dist/viewer/{common-BCtgXey4.js → common-DslG7o4E.js} +1 -1
  62. package/dist/viewer/{cs-CZ-2BRQDIVT-BujzQwzt.js → cs-CZ-2BRQDIVT-DINvPRWQ.js} +1 -1
  63. package/dist/viewer/{cynefin-OW5HDTMX-BKywwG2S.js → cynefin-OW5HDTMX-Dsg1aa7m.js} +1 -1
  64. package/dist/viewer/{cynefinDiagram-5FMLGOSQ-Cn6ev_WP.js → cynefinDiagram-5FMLGOSQ-DSXkJ6uX.js} +1 -1
  65. package/dist/viewer/{da-DK-5WZEPLOC-CXr-BmgK.js → da-DK-5WZEPLOC-Be_9Afdx.js} +1 -1
  66. package/dist/viewer/{dagre-GXQ25YYZ-v-gy5OKy.js → dagre-GXQ25YYZ-CliFKo5m.js} +1 -1
  67. package/dist/viewer/{de-DE-XR44H4JA-DGP12Pou.js → de-DE-XR44H4JA-O5nH9SLi.js} +1 -1
  68. package/dist/viewer/{diagram-S7CK7UJ4-Cnl5zmTH.js → diagram-S7CK7UJ4-C-pIJovA.js} +1 -1
  69. package/dist/viewer/{diagram-UQ7AKVKN-7KyynpIZ.js → diagram-UQ7AKVKN-DWIUCLNE.js} +1 -1
  70. package/dist/viewer/{diagram-VSXAHHWV-DUyjZT_f.js → diagram-VSXAHHWV-DWwEFDvl.js} +1 -1
  71. package/dist/viewer/{diagram-VX7I27RA-BEh5IzlU.js → diagram-VX7I27RA-DpCjl4JZ.js} +1 -1
  72. package/dist/viewer/{diagram-Z3DM3KII-DapCT7JY.js → diagram-Z3DM3KII-B_3FYwfD.js} +1 -1
  73. package/dist/viewer/{dist-CasPB9kH.js → dist-4P-64F1_.js} +4 -4
  74. package/dist/viewer/{dist-BsxkOvGs.js → dist-BAOAUuta.js} +1 -1
  75. package/dist/viewer/{dist-fKkchFO-.js → dist-BJCcuOhc.js} +1 -1
  76. package/dist/viewer/{dist-nZOcY4Bs.js → dist-BUoVIKEc.js} +1 -1
  77. package/dist/viewer/{dist-x0b4YBQs.js → dist-BaQ9Naju.js} +1 -1
  78. package/dist/viewer/{dist-uKY8k3CP.js → dist-BcaapJYv.js} +1 -1
  79. package/dist/viewer/{dist-BH94NJNz.js → dist-BfgbIJFv.js} +1 -1
  80. package/dist/viewer/{dist-D_otEzaP.js → dist-CDhXqd7o.js} +1 -1
  81. package/dist/viewer/{dist-SDpfdJjm.js → dist-CINFrbRc.js} +1 -1
  82. package/dist/viewer/{dist-DAT3wtDc.js → dist-CogJqbVN.js} +1 -1
  83. package/dist/viewer/{dist-CAWTNWzu.js → dist-Cu-1bPVY.js} +1 -1
  84. package/dist/viewer/{dist-DD_oC0l8.js → dist-D-b7d2vQ.js} +1 -1
  85. package/dist/viewer/{dist-B4-cyyKi.js → dist-D4qS41IA.js} +1 -1
  86. package/dist/viewer/{dist-DMIDCOod.js → dist-D5azTvu5.js} +1 -1
  87. package/dist/viewer/{dist-J6yaO9yW.js → dist-DKKoB6U_.js} +1 -1
  88. package/dist/viewer/{dist-C4LSyPyh.js → dist-DQvo7ciP.js} +1 -1
  89. package/dist/viewer/{dist-BpJ6Pkqk.js → dist-DUyOVvCp.js} +1 -1
  90. package/dist/viewer/{dist-DhNegkdc.js → dist-DhOrS9M6.js} +1 -1
  91. package/dist/viewer/{dist-M9D8qUWH.js → dist-DiZ3YGTA.js} +1 -1
  92. package/dist/viewer/{dist-B5CtV8co.js → dist-Dk4GfnnJ.js} +1 -1
  93. package/dist/viewer/{dist-B_j8Wkys.js → dist-DrsUPcez.js} +1 -1
  94. package/dist/viewer/{dist-EDi7VgYM.js → dist-DwjwMhcb.js} +1 -1
  95. package/dist/viewer/{dist-DVmrE8Ma.js → dist-Nm-QAh0D.js} +1 -1
  96. package/dist/viewer/{dist-DVi0Wux1.js → dist-QEdzcdpi.js} +1 -1
  97. package/dist/viewer/{ebnfDiagram-PWID7BFC-CtyViZ4D.js → ebnfDiagram-PWID7BFC-BKEBA24i.js} +1 -1
  98. package/dist/viewer/{el-GR-BZB4AONW-B2ntj-_6.js → el-GR-BZB4AONW-BXckOCpJ.js} +1 -1
  99. package/dist/viewer/{en-B4ZKOASM-8qQgYaG5.js → en-B4ZKOASM-Cl9f4FVO.js} +1 -1
  100. package/dist/viewer/{erDiagram-RLTQ6QDP-D2g-9vXC.js → erDiagram-RLTQ6QDP-BWHZZSMU.js} +1 -1
  101. package/dist/viewer/{es-ES-U4NZUMDT-DE1JJbDS.js → es-ES-U4NZUMDT-ChEdKr7I.js} +1 -1
  102. package/dist/viewer/{eu-ES-A7QVB2H4-n14S3jBy.js → eu-ES-A7QVB2H4-B-itCjBT.js} +1 -1
  103. package/dist/viewer/{eventmodeling-NTZA5JFV-CpaX7QU0.js → eventmodeling-NTZA5JFV-CPl14_yQ.js} +1 -1
  104. package/dist/viewer/{fa-IR-HGAKTJCU-DSbTqh0a.js → fa-IR-HGAKTJCU-7E7aJa_D.js} +1 -1
  105. package/dist/viewer/{fi-FI-Z5N7JZ37-BvmTGdBD.js → fi-FI-Z5N7JZ37-C36rjCe2.js} +1 -1
  106. package/dist/viewer/flowDiagram-HODETNUW-DSR_gKN7.js +1 -0
  107. package/dist/viewer/{fr-FR-RHASNOE6-DDjVMxX1.js → fr-FR-RHASNOE6-Df_38118.js} +1 -1
  108. package/dist/viewer/{ganttDiagram-EL5Y4UJY-Bag6QrMh.js → ganttDiagram-EL5Y4UJY-D06_pDPV.js} +1 -1
  109. package/dist/viewer/{gitGraph-4MIJSDKK-tUvp4IrF.js → gitGraph-4MIJSDKK-XnSnTW1v.js} +1 -1
  110. package/dist/viewer/{gitGraphDiagram-WWUBYQGX-C7Y3eIIN.js → gitGraphDiagram-WWUBYQGX-CqAlSBu4.js} +1 -1
  111. package/dist/viewer/{gl-ES-HMX3MZ6V-CQPOS7iE.js → gl-ES-HMX3MZ6V-CNg8AMaM.js} +1 -1
  112. package/dist/viewer/{he-IL-6SHJWFNN-CpgrhXf4.js → he-IL-6SHJWFNN-iybqqgPy.js} +1 -1
  113. package/dist/viewer/{hi-IN-IWLTKZ5I-CKeG1UtL.js → hi-IN-IWLTKZ5I-BeSxiFt7.js} +1 -1
  114. package/dist/viewer/{hu-HU-A5ZG7DT2-BK_GvMz5.js → hu-HU-A5ZG7DT2-DDNWmplK.js} +1 -1
  115. package/dist/viewer/{id-ID-SAP4L64H-BJa7D0Yc.js → id-ID-SAP4L64H-BdvvotGL.js} +1 -1
  116. package/dist/viewer/{image-GAAHSSAO-CLTAsEN6.js → image-GAAHSSAO-Do5fcdd5.js} +1 -1
  117. package/dist/viewer/{imperative-Rqka2C6w.js → imperative-xHGzr9Qu.js} +1 -1
  118. package/dist/viewer/index.html +5 -5
  119. package/dist/viewer/index.js +2 -2
  120. package/dist/viewer/{info-A6RAGUB7-BoR7WAgV.js → info-A6RAGUB7-Zxr50OGe.js} +1 -1
  121. package/dist/viewer/{infoDiagram-27XIBGKW-CAARl5ky.js → infoDiagram-27XIBGKW-ChyinIPU.js} +1 -1
  122. package/dist/viewer/{isElementDisabled-Ac9yXTBO.js → isElementDisabled-By9z76_-.js} +1 -1
  123. package/dist/viewer/{ishikawaDiagram-5VMMS53U-CMetia5k.js → ishikawaDiagram-5VMMS53U-CJ6jE-sm.js} +1 -1
  124. package/dist/viewer/{it-IT-JPQ66NNP-DLq2DGWm.js → it-IT-JPQ66NNP-Dmj3-loc.js} +1 -1
  125. package/dist/viewer/{ja-JP-DBVTYXUO-CA2gqic5.js → ja-JP-DBVTYXUO-2ZJSMFyq.js} +1 -1
  126. package/dist/viewer/{journeyDiagram-3NMN7TZE-C1uZUFRL.js → journeyDiagram-3NMN7TZE-BMb0f7gE.js} +1 -1
  127. package/dist/viewer/{kaa-6HZHGXH3-9n2wbPOS.js → kaa-6HZHGXH3-DCuC32IU.js} +1 -1
  128. package/dist/viewer/{kab-KAB-ZGHBKWFO-Bh5je2I3.js → kab-KAB-ZGHBKWFO-D3Fa0OLw.js} +1 -1
  129. package/dist/viewer/{kanban-definition-UXKFOSKX-CuN7CgtW.js → kanban-definition-UXKFOSKX-DouFELN5.js} +1 -1
  130. package/dist/viewer/{kk-KZ-P5N5QNE5-DlzriMNo.js → kk-KZ-P5N5QNE5-CYJfrX99.js} +1 -1
  131. package/dist/viewer/{km-KH-HSX4SM5Z-BnXPN2ec.js → km-KH-HSX4SM5Z-B9zXwfiC.js} +1 -1
  132. package/dist/viewer/{ko-KR-MTYHY66A-BRzapVKN.js → ko-KR-MTYHY66A-DqpkDIIG.js} +1 -1
  133. package/dist/viewer/{ku-TR-6OUDTVRD-CYsTYHMd.js → ku-TR-6OUDTVRD-DIpx78LK.js} +1 -1
  134. package/dist/viewer/{lt-LT-XHIRWOB4-CvXagWhI.js → lt-LT-XHIRWOB4-DEo76HsQ.js} +1 -1
  135. package/dist/viewer/{lv-LV-5QDEKY6T-BsxDdByt.js → lv-LV-5QDEKY6T-D_Gwp2y7.js} +1 -1
  136. package/dist/viewer/{mermaid-parser.core-mEgLZmeQ.js → mermaid-parser.core-BzFGDqQA.js} +3 -3
  137. package/dist/viewer/{mindmap-definition-YA3MSWOX-CN46q3ez.js → mindmap-definition-YA3MSWOX-DCCCou6T.js} +1 -1
  138. package/dist/viewer/{mr-IN-CRQNXWMA-CCA0Drcf.js → mr-IN-CRQNXWMA-BXlU74-y.js} +1 -1
  139. package/dist/viewer/{my-MM-5M5IBNSE-DmvuKbd-.js → my-MM-5M5IBNSE-yq_uVh_K.js} +1 -1
  140. package/dist/viewer/{nb-NO-T6EIAALU-C2iEjtQw.js → nb-NO-T6EIAALU-1MyXW4IK.js} +1 -1
  141. package/dist/viewer/{nl-NL-IS3SIHDZ-CkXzhKH7.js → nl-NL-IS3SIHDZ-Gdsio2xM.js} +1 -1
  142. package/dist/viewer/{nn-NO-6E72VCQL-DmEj2PJK.js → nn-NO-6E72VCQL-kJNthVNT.js} +1 -1
  143. package/dist/viewer/{oc-FR-POXYY2M6-Bxte9tIp.js → oc-FR-POXYY2M6-lqBfgyIL.js} +1 -1
  144. package/dist/viewer/{pa-IN-N4M65BXN-DRmLghVo.js → pa-IN-N4M65BXN-BDWSkk7N.js} +1 -1
  145. package/dist/viewer/{packet-AYTQ26CC-D3DZ-MLR.js → packet-AYTQ26CC-zROjJ7r3.js} +1 -1
  146. package/dist/viewer/{pegDiagram-XKGWAZYB-DZMNAa6P.js → pegDiagram-XKGWAZYB-diYFgOfF.js} +1 -1
  147. package/dist/viewer/percentages-BXMCSKIN-C-PLOH5L.js +1 -0
  148. package/dist/viewer/{pie-WAS4IAKB-Y2Um1SnR.js → pie-WAS4IAKB-DMcLLFU5.js} +1 -1
  149. package/dist/viewer/{pieDiagram-E7YTZNPT-Dk6Y7ZQU.js → pieDiagram-E7YTZNPT-CFp71qYh.js} +1 -1
  150. package/dist/viewer/{pl-PL-T2D74RX3-D4yktab7.js → pl-PL-T2D74RX3-D2NvdDEl.js} +1 -1
  151. package/dist/viewer/preview.html +4 -4
  152. package/dist/viewer/preview.js +1 -1
  153. package/dist/viewer/{prod-BsP4uqih.js → prod-BYTFa_g3.js} +8 -8
  154. package/dist/viewer/{pt-BR-5N22H2LF-NAOVqP5B.js → pt-BR-5N22H2LF-ByjPZCyr.js} +1 -1
  155. package/dist/viewer/{pt-PT-UZXXM6DQ-BoWoAu_9.js → pt-PT-UZXXM6DQ-C7-NSSJu.js} +1 -1
  156. package/dist/viewer/{quadrantDiagram-AXDQQJYC-5sg9pGC4.js → quadrantDiagram-AXDQQJYC-CLeF8qJi.js} +1 -1
  157. package/dist/viewer/{radar-RG4KPBEZ-tTNxA8wU.js → radar-RG4KPBEZ-Dk9VTVoW.js} +1 -1
  158. package/dist/viewer/{railroad-74A4TZTK-8GEf0LIS.js → railroad-74A4TZTK-Bi0afkTk.js} +1 -1
  159. package/dist/viewer/{railroad-abnf-HS5TGJTU-Dg9Cj-aO.js → railroad-abnf-HS5TGJTU-1SfHp4W2.js} +1 -1
  160. package/dist/viewer/{railroad-ebnf-LZEXJU2U-j-j8ogEP.js → railroad-ebnf-LZEXJU2U-BUDisjU1.js} +1 -1
  161. package/dist/viewer/{railroad-peg-WCYAUIDC-BYztvpL0.js → railroad-peg-WCYAUIDC-B2y6OQ5U.js} +1 -1
  162. package/dist/viewer/{railroadDiagram-O6MQD6OU-CmvSDR-m.js → railroadDiagram-O6MQD6OU-CYXNoSBo.js} +1 -1
  163. package/dist/viewer/{requirementDiagram-BXWQKSXE-DW6mKiw6.js → requirementDiagram-BXWQKSXE-Dd6kTeVP.js} +1 -1
  164. package/dist/viewer/{ro-RO-JPDTUUEW-DukDxn0-.js → ro-RO-JPDTUUEW-Ds69SX9l.js} +1 -1
  165. package/dist/viewer/{route-BVyQT-QL.js → route-BxZwMyYd.js} +2 -2
  166. package/dist/viewer/{route-messages-DH_WFbsq.js → route-messages-CwON6jYG.js} +1 -1
  167. package/dist/viewer/{ru-RU-B4JR7IUQ-DOQXhGsE.js → ru-RU-B4JR7IUQ-Bp8g_puU.js} +1 -1
  168. package/dist/viewer/{sankeyDiagram-P5KCCOFB-BojWoO8J.js → sankeyDiagram-P5KCCOFB-b5LtpeqZ.js} +1 -1
  169. package/dist/viewer/{selection-CCt_2pT0.js → selection-T4StNaqv.js} +1 -1
  170. package/dist/viewer/{sequenceDiagram-WJ2MYXX4-DcyEA75v.js → sequenceDiagram-WJ2MYXX4-fx7-5EoF.js} +1 -1
  171. package/dist/viewer/{settings-dialog-DSO8sfZx.js → settings-dialog-BZ6KS-9R.js} +1 -1
  172. package/dist/viewer/{si-LK-N5RQ5JYF-D1tcAzAP.js → si-LK-N5RQ5JYF-kJaqY4RN.js} +1 -1
  173. package/dist/viewer/{sk-SK-C5VTKIMK-BkIFPand.js → sk-SK-C5VTKIMK-CrX75RwK.js} +1 -1
  174. package/dist/viewer/{sl-SI-NN7IZMDC-D2gkdKWc.js → sl-SI-NN7IZMDC-BTtPy-KZ.js} +1 -1
  175. package/dist/viewer/{split-url-DoreXlb8.js → split-url-C6I0KeXL.js} +1 -1
  176. package/dist/viewer/{stateDiagram-D77RDMKH-RqhTsVy-.js → stateDiagram-D77RDMKH-DVGu7KGn.js} +1 -1
  177. package/dist/viewer/stateDiagram-v2-MP3YSRHH-XN84-zWO.js +1 -0
  178. package/dist/viewer/subset-shared.chunk-Crc1HkHB.js +1 -0
  179. package/dist/viewer/{subset-worker.chunk-CFqbJqZ6.js → subset-worker.chunk-plJo16_t.js} +1 -1
  180. package/dist/viewer/{sv-SE-XGPEYMSR-INk98QZg.js → sv-SE-XGPEYMSR-Ck0t1bzS.js} +1 -1
  181. package/dist/viewer/{swimlanes-42K2YHIH-C4Ct_hvJ.js → swimlanes-42K2YHIH-CS-fa4lJ.js} +1 -1
  182. package/dist/viewer/swimlanesDiagram-VR7AAH4N-C-blZpTV.js +8 -0
  183. package/dist/viewer/{ta-IN-2NMHFXQM-DOASwUTr.js → ta-IN-2NMHFXQM-oYlPlwK_.js} +1 -1
  184. package/dist/viewer/{th-TH-HPSO5L25-kHWQisQu.js → th-TH-HPSO5L25-BDs-VMKI.js} +1 -1
  185. package/dist/viewer/{timeline-definition-24CTP7MA-C0C4hONr.js → timeline-definition-24CTP7MA-CLC3Jq-G.js} +1 -1
  186. package/dist/viewer/{tr-TR-DEFEU3FU-DF-JZQAL.js → tr-TR-DEFEU3FU-HGPuYg7m.js} +1 -1
  187. package/dist/viewer/{treeView-Q6P3EWNA-BOu5HNch.js → treeView-Q6P3EWNA-DzL4kPmz.js} +1 -1
  188. package/dist/viewer/{treemap-WGGIJYW6-CW30YpJc.js → treemap-WGGIJYW6-D58-Qk7M.js} +1 -1
  189. package/dist/viewer/{uk-UA-QMV73CPH-BKSm_Rld.js → uk-UA-QMV73CPH-CHuUG7Bm.js} +1 -1
  190. package/dist/viewer/{useOpenInteractionType-DdpX-exO.js → useOpenInteractionType-DzlZVE_8.js} +1 -1
  191. package/dist/viewer/{useTranslation-PAO_ZCTF.js → useTranslation-DcfIt98A.js} +1 -1
  192. package/dist/viewer/{useTypeFavicon-CsiiNPfa.js → useTypeFavicon-Bk3zNt_v.js} +1 -1
  193. package/dist/viewer/{vennDiagram-4TSXK5OY-D1amPhKR.js → vennDiagram-4TSXK5OY-BqAEo0mk.js} +1 -1
  194. package/dist/viewer/{vi-VN-M7AON7JQ-DxFQvclP.js → vi-VN-M7AON7JQ-DInTJat2.js} +1 -1
  195. package/dist/viewer/{view-CI_WFZfu.js → view-C2HhCdEq.js} +1 -1
  196. package/dist/viewer/{viewport-CFJHn_Y6-Dqr35Vzj.js → viewport-CFJHn_Y6-Cc1k0LVw.js} +1 -1
  197. package/dist/viewer/{wardley-WFR3VGLG-BayzcQf0.js → wardley-WFR3VGLG-CLcQ1fc1.js} +1 -1
  198. package/dist/viewer/{wardleyDiagram-VM6X3IG4-xiv2-SzM.js → wardleyDiagram-VM6X3IG4-CNoeLzZb.js} +1 -1
  199. package/dist/viewer/{xychartDiagram-S5SC5T6Z-jTN7Tui-.js → xychartDiagram-S5SC5T6Z-BQceVEsN.js} +1 -1
  200. package/dist/viewer/{zh-CN-LNUGB5OW-MzcF29-Z.js → zh-CN-LNUGB5OW-BodKZKRE.js} +1 -1
  201. package/dist/viewer/{zh-HK-E62DVLB3-nyXR4DHN.js → zh-HK-E62DVLB3-iJztPk7d.js} +1 -1
  202. package/dist/viewer/{zh-TW-RAJ6MFWO-Hu2ZgtVb.js → zh-TW-RAJ6MFWO-eTW97In_.js} +1 -1
  203. package/dist/viewer-lib/{Canvas-gu_TGUc0.js → Canvas-D__62j2d.js} +3 -3
  204. package/dist/viewer-lib/{PreviewView-DsbPjFdh.js → PreviewView-D3692CdU.js} +2 -2
  205. package/dist/viewer-lib/{ReadOnlyWhiteboard-iM5ltE9-.js → ReadOnlyWhiteboard-MXxjFdHf.js} +2 -2
  206. package/dist/viewer-lib/{SnapshotDocument-CjZYbxhc.js → SnapshotDocument-D76t5ZXI.js} +32 -32
  207. package/dist/viewer-lib/{VirtualizedEditor-D9Ivycdp-CeagYgqM.js → VirtualizedEditor-D9Ivycdp-5GWBLJSp.js} +2 -2
  208. package/dist/viewer-lib/{VirtualizedRenderer-C_d95FXi-DQs-_ije.js → VirtualizedRenderer-C_d95FXi-CGYGaNnb.js} +3 -3
  209. package/dist/viewer-lib/{WarningsBadge-DakB_qSx.js → WarningsBadge-Ahw6Aqqj.js} +1 -1
  210. package/dist/viewer-lib/{agentLook-Bh9UJl-S.js → agentLook-BTwa-9JZ.js} +1 -1
  211. package/dist/viewer-lib/{ar-SA-G6X2FPQ2-C3Ig1f0t.js → ar-SA-G6X2FPQ2-BVMFEYZM.js} +1 -1
  212. package/dist/viewer-lib/{az-AZ-76LH7QW2-DW4sSq8q.js → az-AZ-76LH7QW2-BwB1KVi0.js} +1 -1
  213. package/dist/viewer-lib/{bg-BG-XCXSNQG7-DpIZlskS.js → bg-BG-XCXSNQG7-t-a7kAcX.js} +1 -1
  214. package/dist/viewer-lib/{bn-BD-2XOGV67Q-DGtui92g.js → bn-BD-2XOGV67Q-BCImWw42.js} +1 -1
  215. package/dist/viewer-lib/{ca-ES-6MX7JW3Y-wtED6Qdn.js → ca-ES-6MX7JW3Y-DVsDADng.js} +1 -1
  216. package/dist/viewer-lib/{chunk-EIO257PC-CkArCymY.js → chunk-EIO257PC-B1gdKKQR.js} +1 -1
  217. package/dist/viewer-lib/core.js +2 -2
  218. package/dist/viewer-lib/{cs-CZ-2BRQDIVT-DZsVgTwZ.js → cs-CZ-2BRQDIVT-CbvgIT-l.js} +1 -1
  219. package/dist/viewer-lib/{da-DK-5WZEPLOC-CA4YnJVh.js → da-DK-5WZEPLOC-dfM1KlPL.js} +1 -1
  220. package/dist/viewer-lib/{de-DE-XR44H4JA-CxYRfyWA.js → de-DE-XR44H4JA-Bfg7NTda.js} +1 -1
  221. package/dist/viewer-lib/{dist-BS6AKMlP.js → dist-BHarOBCz.js} +4 -4
  222. package/dist/viewer-lib/{dist-Bki3HoNF.js → dist-BISed4-i.js} +3 -3
  223. package/dist/viewer-lib/{dist-DwPVl70F.js → dist-BJaqLdDg.js} +3 -3
  224. package/dist/viewer-lib/{dist-BPC1D4FC.js → dist-BRifo2yR.js} +1 -1
  225. package/dist/viewer-lib/{dist-BeTcPpVZ.js → dist-BpGMcSJq.js} +2 -2
  226. package/dist/viewer-lib/{dist-CwZZJqV8.js → dist-C092u92x.js} +2 -2
  227. package/dist/viewer-lib/{dist-C0J1iYzF.js → dist-CNIU27W-.js} +3 -3
  228. package/dist/viewer-lib/{dist-BwUP9JI8.js → dist-CRTEanb4.js} +2 -2
  229. package/dist/viewer-lib/{dist-BRPzoHBQ.js → dist-CTV2lPeM.js} +3 -3
  230. package/dist/viewer-lib/{dist-JQ4XCIP4.js → dist-CkNhwUgS.js} +2 -2
  231. package/dist/viewer-lib/{dist-GvImUa00.js → dist-D-9_0a9j.js} +2 -2
  232. package/dist/viewer-lib/{dist-B2SkEtCG.js → dist-D4XSKnrM.js} +1 -1
  233. package/dist/viewer-lib/{dist-JgPWy59W.js → dist-DKEFUMi6.js} +2 -2
  234. package/dist/viewer-lib/{dist-B2LFJ-sn.js → dist-DR0-s3yZ.js} +4 -4
  235. package/dist/viewer-lib/{dist-Yv1hwO7F.js → dist-DYBwUiTP.js} +2 -2
  236. package/dist/viewer-lib/{dist-QDeinGTw.js → dist-Drk-CxTx.js} +3 -3
  237. package/dist/viewer-lib/{dist-JSsAw8lW.js → dist-DsqzksHc.js} +3 -3
  238. package/dist/viewer-lib/{dist-6dSggeqx.js → dist-IRxyBf67.js} +4 -4
  239. package/dist/viewer-lib/{dist-B8FpyZMu.js → dist-TtTjVtc9.js} +3 -3
  240. package/dist/viewer-lib/{dist-dmsnfUHz.js → dist-e8O_sT4L.js} +3 -3
  241. package/dist/viewer-lib/{dist-dC8iHYpd.js → dist-gKP178bL.js} +3 -3
  242. package/dist/viewer-lib/{dist-CJvk1RpA.js → dist-rSZiE_-G.js} +2 -2
  243. package/dist/viewer-lib/{dist-DlJsOr7Q.js → dist-uuRAlP6g.js} +3 -3
  244. package/dist/viewer-lib/document.js +6 -6
  245. package/dist/viewer-lib/{el-GR-BZB4AONW-BUV8o4TU.js → el-GR-BZB4AONW-CSW8IqSb.js} +1 -1
  246. package/dist/viewer-lib/{en-B4ZKOASM-mLPc0gyO.js → en-B4ZKOASM-BDhnK8Gx.js} +1 -1
  247. package/dist/viewer-lib/{es-ES-U4NZUMDT-DCQcDggJ.js → es-ES-U4NZUMDT-DFt8Zqm9.js} +1 -1
  248. package/dist/viewer-lib/{eu-ES-A7QVB2H4-J48fUe5S.js → eu-ES-A7QVB2H4-JL7bFT6p.js} +1 -1
  249. package/dist/viewer-lib/{fa-IR-HGAKTJCU-VImcSXLw.js → fa-IR-HGAKTJCU-Bk3MOZ5H.js} +1 -1
  250. package/dist/viewer-lib/{fi-FI-Z5N7JZ37-B6YLOkdh.js → fi-FI-Z5N7JZ37-eyT8g1e6.js} +1 -1
  251. package/dist/viewer-lib/{fr-FR-RHASNOE6-BRADWThT.js → fr-FR-RHASNOE6-BRQ2afhu.js} +1 -1
  252. package/dist/viewer-lib/{gl-ES-HMX3MZ6V-DrwrMC-u.js → gl-ES-HMX3MZ6V-DjKQfOfC.js} +1 -1
  253. package/dist/viewer-lib/{he-IL-6SHJWFNN-CkmtB3hk.js → he-IL-6SHJWFNN-vBpQBuJF.js} +1 -1
  254. package/dist/viewer-lib/{hi-IN-IWLTKZ5I-BeQ4sBYj.js → hi-IN-IWLTKZ5I-pH49oyMW.js} +1 -1
  255. package/dist/viewer-lib/{hu-HU-A5ZG7DT2-B1F55iax.js → hu-HU-A5ZG7DT2-6jJhgzmX.js} +1 -1
  256. package/dist/viewer-lib/{i18n-BtfFr_ja.js → i18n-Clsq4eJ4.js} +0 -2
  257. package/dist/viewer-lib/{id-ID-SAP4L64H-BqpUAv2N.js → id-ID-SAP4L64H-D7rx1BkL.js} +1 -1
  258. package/dist/viewer-lib/{image-GAAHSSAO-BDV4BdQt.js → image-GAAHSSAO-tpPKq0aq.js} +1 -1
  259. package/dist/viewer-lib/index.js +8 -8
  260. package/dist/viewer-lib/{it-IT-JPQ66NNP-7XXIa_2F.js → it-IT-JPQ66NNP-DwYrIeZB.js} +1 -1
  261. package/dist/viewer-lib/{ja-JP-DBVTYXUO-DEsJM14j.js → ja-JP-DBVTYXUO-8OHRGJwc.js} +1 -1
  262. package/dist/viewer-lib/{kaa-6HZHGXH3-8o8QG3e4.js → kaa-6HZHGXH3-CjbHLo8t.js} +1 -1
  263. package/dist/viewer-lib/{kab-KAB-ZGHBKWFO-kk31E-KK.js → kab-KAB-ZGHBKWFO-CsSlP1Yi.js} +1 -1
  264. package/dist/viewer-lib/{kk-KZ-P5N5QNE5-B42QN5VW.js → kk-KZ-P5N5QNE5-DgEhj1eu.js} +1 -1
  265. package/dist/viewer-lib/{km-KH-HSX4SM5Z-DbiWgw4e.js → km-KH-HSX4SM5Z-BRupsGMF.js} +1 -1
  266. package/dist/viewer-lib/{ko-KR-MTYHY66A-BSgpJCZc.js → ko-KR-MTYHY66A-D-yCJkDB.js} +1 -1
  267. package/dist/viewer-lib/{ku-TR-6OUDTVRD-CVa_bBta.js → ku-TR-6OUDTVRD-otMJtTW4.js} +1 -1
  268. package/dist/viewer-lib/{lib-DPAAV_CH.js → lib-BmpvGcmf.js} +1 -1
  269. package/dist/viewer-lib/{lt-LT-XHIRWOB4-FHcHkhz7.js → lt-LT-XHIRWOB4-BEW7cKUG.js} +1 -1
  270. package/dist/viewer-lib/{lv-LV-5QDEKY6T-BYMvTOMJ.js → lv-LV-5QDEKY6T-DmI2Cr22.js} +1 -1
  271. package/dist/viewer-lib/{mr-IN-CRQNXWMA-B6k0iX8_.js → mr-IN-CRQNXWMA-CSGViw7F.js} +1 -1
  272. package/dist/viewer-lib/{my-MM-5M5IBNSE-CzhSvJwV.js → my-MM-5M5IBNSE-CStHLsEI.js} +1 -1
  273. package/dist/viewer-lib/{nb-NO-T6EIAALU-CEAKHiCn.js → nb-NO-T6EIAALU-233kh4l5.js} +1 -1
  274. package/dist/viewer-lib/{nl-NL-IS3SIHDZ-7Umvt6LG.js → nl-NL-IS3SIHDZ-dhOkbN8n.js} +1 -1
  275. package/dist/viewer-lib/{nn-NO-6E72VCQL-CNkgv0gM.js → nn-NO-6E72VCQL-yYPeIHbP.js} +1 -1
  276. package/dist/viewer-lib/{oc-FR-POXYY2M6-l2jDIGL1.js → oc-FR-POXYY2M6-BO1vgCby.js} +1 -1
  277. package/dist/viewer-lib/{pa-IN-N4M65BXN-CpNfAWlG.js → pa-IN-N4M65BXN-Bhwy6iqZ.js} +1 -1
  278. package/dist/viewer-lib/percentages-BXMCSKIN-DKUELHJP.js +1 -0
  279. package/dist/viewer-lib/{pl-PL-T2D74RX3-By1fdtaa.js → pl-PL-T2D74RX3-82L0l-fI.js} +1 -1
  280. package/dist/viewer-lib/{plugin-_bGVeqI0-Dp_qBcTY.js → plugin-_bGVeqI0-DfrkxZoy.js} +1 -1
  281. package/dist/viewer-lib/{prod-D0qYqQz2.js → prod-Pm_7zmiG.js} +59 -59
  282. package/dist/viewer-lib/{pt-BR-5N22H2LF-Bj9bunsz.js → pt-BR-5N22H2LF-CMjc6Sma.js} +1 -1
  283. package/dist/viewer-lib/{pt-PT-UZXXM6DQ-CkX_czif.js → pt-PT-UZXXM6DQ-CSB3zM0b.js} +1 -1
  284. package/dist/viewer-lib/{ro-RO-JPDTUUEW-Ba_K71gR.js → ro-RO-JPDTUUEW-Dm96wL88.js} +1 -1
  285. package/dist/viewer-lib/{route-messages-C05Lhz_9.js → route-messages-COP258tC.js} +2 -2
  286. package/dist/viewer-lib/{ru-RU-B4JR7IUQ-Bxv4jPiR.js → ru-RU-B4JR7IUQ-DM6fn76Z.js} +1 -1
  287. package/dist/viewer-lib/{si-LK-N5RQ5JYF-CuYYRDiT.js → si-LK-N5RQ5JYF-BJK4rETK.js} +1 -1
  288. package/dist/viewer-lib/{sk-SK-C5VTKIMK-Bb77mczw.js → sk-SK-C5VTKIMK-DQAVkY-j.js} +1 -1
  289. package/dist/viewer-lib/{sl-SI-NN7IZMDC-Dp4fmsL0.js → sl-SI-NN7IZMDC-DWVf0xhg.js} +1 -1
  290. package/dist/viewer-lib/subset-shared.chunk-DuE6G6yB.js +2 -0
  291. package/dist/viewer-lib/{subset-worker.chunk-B-aFLrip.js → subset-worker.chunk-DYtUx5LO.js} +2 -2
  292. package/dist/viewer-lib/{sv-SE-XGPEYMSR-CRzIws2M.js → sv-SE-XGPEYMSR-B08Zj4qy.js} +1 -1
  293. package/dist/viewer-lib/{ta-IN-2NMHFXQM-aPMZaslk.js → ta-IN-2NMHFXQM-qmDM05jl.js} +1 -1
  294. package/dist/viewer-lib/{th-TH-HPSO5L25-DQizlcBs.js → th-TH-HPSO5L25-Cf36sr2_.js} +1 -1
  295. package/dist/viewer-lib/{tr-TR-DEFEU3FU-Dr7JEMK-.js → tr-TR-DEFEU3FU-Bd2Eyjk4.js} +1 -1
  296. package/dist/viewer-lib/{uk-UA-QMV73CPH-CgwedBqm.js → uk-UA-QMV73CPH-CcEmO6pY.js} +1 -1
  297. package/dist/viewer-lib/{vi-VN-M7AON7JQ-B46aQclV.js → vi-VN-M7AON7JQ-BgFYVya8.js} +1 -1
  298. package/dist/viewer-lib/{viewport-CFJHn_Y6-BuJ1NgZC.js → viewport-CFJHn_Y6-2vzK3rBK.js} +1 -1
  299. package/dist/viewer-lib/{zh-CN-LNUGB5OW-BtM5rXp9.js → zh-CN-LNUGB5OW-CP7Z7DGG.js} +1 -1
  300. package/dist/viewer-lib/{zh-HK-E62DVLB3-BWUjKU5p.js → zh-HK-E62DVLB3-B8PTEdW-.js} +1 -1
  301. package/dist/viewer-lib/{zh-TW-RAJ6MFWO-B2sTFTES.js → zh-TW-RAJ6MFWO-XBLy3xW0.js} +1 -1
  302. package/package.json +1 -1
  303. package/dist/viewer/AgentStatusPill-Bn8u7Fok.js +0 -1
  304. package/dist/viewer/DocumentLayout-Dkzj2QUr.js +0 -2
  305. package/dist/viewer/channel-KjyihPD6.js +0 -1
  306. package/dist/viewer/classDiagram-ZZMXUADV-DIsZSVD4.js +0 -1
  307. package/dist/viewer/classDiagram-v2-VYDZK3BY-DIsZSVD4.js +0 -1
  308. package/dist/viewer/flowDiagram-HODETNUW-D7Khd6TT.js +0 -1
  309. package/dist/viewer/percentages-BXMCSKIN-BuJwqt7G.js +0 -1
  310. package/dist/viewer/stateDiagram-v2-MP3YSRHH-diNCZv-u.js +0 -1
  311. package/dist/viewer/subset-shared.chunk-hShwFFQo.js +0 -1
  312. package/dist/viewer/swimlanesDiagram-VR7AAH4N-DYWFk8Wp.js +0 -8
  313. package/dist/viewer-lib/percentages-BXMCSKIN-DaDLdQjs.js +0 -1
  314. package/dist/viewer-lib/subset-shared.chunk-Cfo8o-6z.js +0 -2
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{g as t}from"./route-BVyQT-QL.js";import{t as n}from"./react-B8SKf8RM.js";import{t as r}from"./jsx-runtime-DePvh3-m.js";import{At as i,Bt as a,Ct as o,Dt as s,Et as c,Ft as l,Gt as u,Ht as d,It as f,Jt as p,Kt as m,Lt as h,Nt as g,Ot as _,Pt as v,Qt as y,Rt as b,St as ee,Tt as x,Ut as S,Vt as C,Wt as w,Xt as T,Yt as E,Zt as D,_t as O,bt as k,jt as A,kt as j,qt as M,vt as N,wt as P,xt as F,yt as te,zt as I}from"./channel-DDH61e3T.js";import{c as L,i as R,l as z,n as B,o as V,r as H,s as U,t as W}from"./viewport-CFJHn_Y6-Dqr35Vzj.js";var G=e(n(),1),K=e(t(),1),q=r(),J=class{constructor(e){D(this,`host`,void 0),D(this,`range`,void 0),D(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()))}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=i();if(!l(e))return null;let t=e.anchor.getNode(),n=t.getTopLevelElement()??t,r=(w(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 Y(e){let t=h(e);w(e)&&(t.children=e.getChildren().map(Y));for(let n of b(e))t.$slots??={},t.$slots[n]=Y(a(e,n));return t}var X=class{constructor(e){D(this,`editor`,void 0),D(this,`rows`,[]),D(this,`onChange`,void 0),D(this,`unsubscribe`,void 0),D(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=Y(n);return{data:a,key:r,node:n,id:v(n,o)||r,pool:`${a.type}:${a.url??a.tag??a.listType??``}`}}))}replace(e,t,n){let r=this.rows.findIndex(t=>t.id===e[0]);if(r<0||e.some((e,t)=>this.rows[r+t]?.id!==e))throw Error(`Virtual editor island is stale or noncontiguous`);let i=this.rows.slice(r,r+e.length).map(e=>e.key),a=Date.now(),o=this.lastEdit?.source===n&&this.lastEdit.ids===e.join(`,`)&&this.lastEdit.count===t.length&&t.length===e.length&&a-this.lastEdit.time<600;this.editor.update(()=>{let e=i.map(e=>x(e));if(e.some(e=>!e))throw Error(`Virtual editor block was removed`);let n;for(let r of t){let t=A(r);n?n.insertAfter(t):e[0].insertBefore(t),n=t}for(let t of e)t.remove()},{discrete:!0,tag:[o?`history-merge`:`history-push`,`virtual-island:${n}`]}),this.lastEdit={source:n,ids:e.join(`,`),time:a,count:t.length}}dispose(){this.unsubscribe()}},Z=new Set([`paragraph`,`text`,`heading`,`quote`,`list`,`listitem`,`details`,`dynamic`]);function Q(e,t){let n=e.getChildren();t.forEach((t,r)=>{let i=n[r];if(i?.getType()===t.type&&Z.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)}w(i)&&Q(i,t.children??[])}else{let n=A(t);i?i.replace(n):e.append(n)}});for(let e of n.slice(t.length))e.remove()}function $(e){for(;e?.getParent()&&e.getParent().getType()!==`root`;)e=e.getParent();return e?.getParent()?e:null}function ne(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(D(this,`master`,void 0),D(this,`canvas`,void 0),D(this,`options`,void 0),D(this,`document`,void 0),D(this,`pool`,new H),D(this,`islands`,new Map),D(this,`states`,new Map),D(this,`viewport`,void 0),D(this,`preserve`,void 0),D(this,`documentBlocks`,new J(this)),D(this,`heights`,void 0),D(this,`revision`,0),D(this,`indices`,new Map),D(this,`listeners`,new Set),D(this,`observer`,void 0),D(this,`frame`,0),D(this,`dead`,!1),D(this,`width`,void 0),D(this,`metrics`,new Map),D(this,`firstParagraph`,-1),D(this,`selectionOwner`,void 0),D(this,`splitting`,new Set),D(this,`drag`,void 0),D(this,`previousRows`,[]),D(this,`onScroll`,()=>{this.refresh(),this.drag&&this.dragTo(this.drag.y)}),D(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)}}),D(this,`onPointerMove`,e=>{if(this.drag){if(!(e.buttons&1))return this.endDrag();this.drag.y=e.clientY,this.dragTo(e.clientY)}}),D(this,`endDrag`,()=>{this.drag=void 0,document.removeEventListener(`pointermove`,this.onPointerMove),document.removeEventListener(`pointerup`,this.endDrag),document.removeEventListener(`pointercancel`,this.endDrag)}),D(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=L(t,n.scrollContainer),this.preserve=new B(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 X(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 W(this.rows.map(e=>this.estimate(e.data)))}estimate(e){let t=this.options.estimateBlockHeight?.(e,this.width)??V(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 W(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,K.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=ne(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(()=>i()!==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(()=>u());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:s})=>{if(t.ids.length>1&&this.queueSplit(e),t.loading||!t.ids.length||s.has(`virtual-bind`)||!i.size&&!a.size)return;let l=r.toJSON().root.children;if(JSON.stringify(l)===t.data)return;let u=new Set;l.forEach((e,n)=>{let r=e.$?.blockId,i=this.indices.has(r)&&!t.ids.includes(r);(!r||u.has(r)||i)&&(r=n===0?t.ids[0]:P(8)),e.$={...e.$,blockId:r},u.add(r)});let d=[...t.ids];t.ids=l.map(e=>e.$.blockId),t.data=JSON.stringify(l),n.update(()=>c().getChildren().forEach((e,n)=>p(e,o,t.ids[n])),{tag:`virtual-bind`}),this.document.replace(d,l,String(e.id))}),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(()=>{Q(c(),i),n&&f(null)},{discrete:!0,tag:n?[`virtual-bind`,s]:`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?x(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()})}w(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,U(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:j})}))}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 l=o<i,u=l?this.rows.slice(o,i):this.rows.slice(a+1,o+1);if(r.ids.length+u.length>(this.options.selectionMergeLimit??200))return!1;let d=new Set(u.map(e=>e.id)),f=this.pool.slots.filter(t=>t!==e&&this.islands.get(t.id)?.ids.some(e=>d.has(e)));if(f.some(e=>{let t=this.islands.get(e.id);return t.retained>0||t.editor.isComposing()}))return!1;for(let e of f)e.beforeRelease?.(),e.active=!1,this.islands.get(e.id).generation=-1;return r.ids=l?[...d,...r.ids]:[...r.ids,...d],l&&(e.index=o),r.data=JSON.stringify(r.ids.map(e=>this.rows[this.indices.get(e)].data)),r.editor.update(()=>{let e=u.map(e=>A(e.data)),t=c().getFirstChild();l&&t?e.forEach(e=>t.insertBefore(e)):c().append(...e)},{discrete:!0,tag:[`virtual-bind`,s]}),this.refresh(!1),this.publish(n),this.queueMeasure(),!0}extendForKey(e,t){let n=this.island(e),r=t===`down`||t===`right`,a=n.editor.getEditorState().read(()=>{let e=i();if(!l(e))return!1;let n=c(),a=e.focus.getNode();if(t===`up`||t===`down`)return $(a)?.is(r?n.getLastChild():n.getFirstChild())??!1;let o=r?n.getLastDescendant():n.getFirstDescendant();return!!o&&a.is(o)&&e.focus.offset===(r?o.getTextContentSize():0)}),o=r?e.index+n.ids.length:e.index-1;return!a||o<0||o>=this.rows.length?!1:this.extendIsland(e,o)}splitIsland(e){let t=this.islands.get(e.id);if(!t||t.ids.length<2)return;let n=t.editor.getEditorState().read(()=>{let e=i();return $(l(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=i();return e===null||l(e)&&e.isCollapsed()})&&this.splitIsland(e)}))}joinNeighbor(e,t){let n=this.island(e),r=t?e.index-1:e.index+n.ids.length,a=this.rows[r];if(!a)return!1;for(let t of this.pool.slots)t!==e&&this.islands.get(t.id)?.ids.includes(a.id)&&(t.beforeRelease?.(),t.active=!1);return n.ids=t?[a.id,...n.ids]:[...n.ids,a.id],t&&(e.index=r),n.editor.update(()=>{let e=A(a.data);t?c().getFirstChild().insertBefore(e):c().append(e);let n=i();l(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]=E();return(0,G.useEffect)(()=>{let r=e=>{let t=i();if(!l(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)},a=n=>(e.extendForKey(t,n),!1),o=[n.registerCommand(C,()=>(e.master.dispatchCommand(C,void 0),!0),4),n.registerCommand(I,()=>(e.master.dispatchCommand(I,void 0),!0),4),n.registerCommand(d,n=>!r(!1)||!e.joinNeighbor(t,!0)?!1:(n?.preventDefault(),!0),4),n.registerCommand(_,n=>!r(!0)||!e.joinNeighbor(t,!1)?!1:(n?.preventDefault(),!0),4),n.registerCommand(M,n=>n?.shiftKey?a(`up`):!r(!1)||t.index===0?!1:(n?.preventDefault(),e.focusBlock(t.index-1,!0),!0),4),n.registerCommand(g,n=>{if(n?.shiftKey)return a(`down`);if(!r(!0))return!1;let i=t.index+e.island(t).ids.length;return i>=e.rows.length?!1:(n?.preventDefault(),e.focusBlock(i),!0)},4),n.registerCommand(S,e=>!!e.shiftKey&&a(`left`),4),n.registerCommand(m,e=>!!e.shiftKey&&a(`right`),4)];return()=>o.forEach(e=>e())},[e,n,t]),null}function ae({controller:e,slot:t,plugins:n,onActiveEditorChange:r,onRelease:i,retainSurface:a,placeholder:o}){let s=e.island(t),c=e.rows[t.index],l=`${t.generation}:${t.active}`,[u,d]=(0,G.useState)(``),[f]=(0,G.useState)(()=>{let e=document.createElement(`div`);return e.style.display=`contents`,e}),p=t.active||e.preserve.has(t.id),m=T(),h=(0,G.useMemo)(()=>({blockId:c.id,active:t.active,editor:s.editor,documentBlocks:e.documentBlocks,nodeState:n=>e.nodeState(t,n,c.id),retain:()=>{s.retained++;let t=a(),n=!1;return()=>{n||(n=!0,s.retained--,t(),e.refresh(!1))}}}),[e,s.editor,a,c.id,t,t.active,t.generation]),g=(0,G.useCallback)(n=>e.attach(t,n),[e,t]);return(0,G.useLayoutEffect)(()=>{e.mount(t,f),p?e.bind(t):s.generation=-1,t.beforeRelease=()=>{e.capturePanels(t),i(s.editor)}}),(0,G.useLayoutEffect)(()=>()=>f.remove(),[f]),(0,G.useLayoutEffect)(()=>{let e=requestAnimationFrame(()=>{e=requestAnimationFrame(()=>d(l))});return()=>cancelAnimationFrame(e)},[l]),(0,K.createPortal)((0,q.jsx)(`div`,{className:z,"data-pool":t.pool,"data-restoring":u===l?void 0:``,"data-virtual-editor-block":t.active?c.id:void 0,"data-virtual-editor-slot":t.id,ref:g,style:{display:t.active?void 0:`none`,transform:`translateY(${e.slotOffset(t)}px)`},onFocusCapture:()=>r(s.editor),children:(0,q.jsx)(y,{value:h,children:p&&(0,q.jsxs)(N,{skipCollabChecks:!0,initialEditor:s.editor,children:[(0,q.jsx)(O,{ErrorBoundary:te,contentEditable:(0,q.jsx)(k,{"aria-label":`Document block`,"aria-placeholder":o??``,className:`rich-editor__content qi8t62`,"data-virtual-editor-content":``,placeholder:(0,q.jsx)(`div`,{className:`b94s952`,style:{top:0,left:0,display:o?void 0:`none`},children:o})})}),t.active&&n,(0,q.jsx)(ie,{controller:e,slot:t}),t.active&&m]})})}),f,String(t.id))}function oe({controller:e,plugins:t,onActiveEditorChange:n,onRelease:r,retainSurface:i,placeholder:a}){let[,o]=(0,G.useState)(0);return(0,G.useLayoutEffect)(()=>e.subscribe(()=>o(e=>e+1)),[e]),(0,G.useLayoutEffect)(()=>e.commitLayout()),(0,q.jsx)(q.Fragment,{children:e.pool.slots.map(o=>(0,q.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:s}){let[c]=E(),{scrollContainer:l,overscan:u,estimateBlockHeight:d,preserveCapacity:f,selectionMergeLimit:p}=e,m=(0,G.useMemo)(()=>({scrollContainer:l,overscan:u,estimateBlockHeight:d,preserveCapacity:f,selectionMergeLimit:p}),[l,u,d,f,p]),h=(0,G.useRef)(null),g=(0,G.useCallback)(e=>{h.current=e,a(e)},[a]),_=(0,G.useCallback)(e=>{h.current===e&&g(null)},[g]),v=(0,G.useRef)(null),[y,b]=(0,G.useState)(null),[x,S]=(0,G.useState)(``);return(0,G.useEffect)(()=>{b(null),S(``);let e=v.current,t;try{t=new re(c,e,m),b(t),Object.assign(e,{virtualEditor:t})}catch(e){S(String(e));return}return()=>{g(null),t.dispose(),Reflect.deleteProperty(e,`virtualEditor`)}},[c,g,m]),(0,G.useEffect)(()=>{y&&r&&y.focusBlock(0,!1,!1)},[r,y]),(0,q.jsxs)(`div`,{className:`rich-editor__content-wrapper ${ee}`,style:{"--ce-padding-top":`${i?40:12}px`},children:[x&&(0,q.jsx)(`p`,{role:`alert`,children:x}),(0,q.jsx)(`div`,{className:`${F} ${t??``}`,children:(0,q.jsx)(`div`,{className:R,"data-virtual-editor":``,ref:v,children:y&&(0,q.jsx)(oe,{controller:y,placeholder:s,plugins:n,retainSurface:o,onActiveEditorChange:g,onRelease:_})})})]})}export{se as VirtualizedEditor};
1
+ import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{g as t}from"./route-BxZwMyYd.js";import{t as n}from"./react-B8SKf8RM.js";import{t as r}from"./jsx-runtime-DePvh3-m.js";import{At as i,Bt as a,Ct as o,Dt as s,Et as c,Ft as l,Gt as u,Ht as d,It as f,Jt as p,Kt as m,Lt as h,Nt as g,Ot as _,Pt as v,Qt as y,Rt as b,St as ee,Tt as x,Ut as S,Vt as C,Wt as w,Xt as T,Yt as E,Zt as D,_t as O,bt as k,jt as A,kt as j,qt as M,vt as N,wt as P,xt as F,yt as te,zt as I}from"./channel-BvCX9HOf.js";import{c as L,i as R,l as z,n as B,o as V,r as H,s as U,t as W}from"./viewport-CFJHn_Y6-Cc1k0LVw.js";var G=e(n(),1),K=e(t(),1),q=r(),J=class{constructor(e){D(this,`host`,void 0),D(this,`range`,void 0),D(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()))}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=i();if(!l(e))return null;let t=e.anchor.getNode(),n=t.getTopLevelElement()??t,r=(w(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 Y(e){let t=h(e);w(e)&&(t.children=e.getChildren().map(Y));for(let n of b(e))t.$slots??={},t.$slots[n]=Y(a(e,n));return t}var X=class{constructor(e){D(this,`editor`,void 0),D(this,`rows`,[]),D(this,`onChange`,void 0),D(this,`unsubscribe`,void 0),D(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=Y(n);return{data:a,key:r,node:n,id:v(n,o)||r,pool:`${a.type}:${a.url??a.tag??a.listType??``}`}}))}replace(e,t,n){let r=this.rows.findIndex(t=>t.id===e[0]);if(r<0||e.some((e,t)=>this.rows[r+t]?.id!==e))throw Error(`Virtual editor island is stale or noncontiguous`);let i=this.rows.slice(r,r+e.length).map(e=>e.key),a=Date.now(),o=this.lastEdit?.source===n&&this.lastEdit.ids===e.join(`,`)&&this.lastEdit.count===t.length&&t.length===e.length&&a-this.lastEdit.time<600;this.editor.update(()=>{let e=i.map(e=>x(e));if(e.some(e=>!e))throw Error(`Virtual editor block was removed`);let n;for(let r of t){let t=A(r);n?n.insertAfter(t):e[0].insertBefore(t),n=t}for(let t of e)t.remove()},{discrete:!0,tag:[o?`history-merge`:`history-push`,`virtual-island:${n}`]}),this.lastEdit={source:n,ids:e.join(`,`),time:a,count:t.length}}dispose(){this.unsubscribe()}},Z=new Set([`paragraph`,`text`,`heading`,`quote`,`list`,`listitem`,`details`,`dynamic`]);function Q(e,t){let n=e.getChildren();t.forEach((t,r)=>{let i=n[r];if(i?.getType()===t.type&&Z.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)}w(i)&&Q(i,t.children??[])}else{let n=A(t);i?i.replace(n):e.append(n)}});for(let e of n.slice(t.length))e.remove()}function $(e){for(;e?.getParent()&&e.getParent().getType()!==`root`;)e=e.getParent();return e?.getParent()?e:null}function ne(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(D(this,`master`,void 0),D(this,`canvas`,void 0),D(this,`options`,void 0),D(this,`document`,void 0),D(this,`pool`,new H),D(this,`islands`,new Map),D(this,`states`,new Map),D(this,`viewport`,void 0),D(this,`preserve`,void 0),D(this,`documentBlocks`,new J(this)),D(this,`heights`,void 0),D(this,`revision`,0),D(this,`indices`,new Map),D(this,`listeners`,new Set),D(this,`observer`,void 0),D(this,`frame`,0),D(this,`dead`,!1),D(this,`width`,void 0),D(this,`metrics`,new Map),D(this,`firstParagraph`,-1),D(this,`selectionOwner`,void 0),D(this,`splitting`,new Set),D(this,`drag`,void 0),D(this,`previousRows`,[]),D(this,`onScroll`,()=>{this.refresh(),this.drag&&this.dragTo(this.drag.y)}),D(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)}}),D(this,`onPointerMove`,e=>{if(this.drag){if(!(e.buttons&1))return this.endDrag();this.drag.y=e.clientY,this.dragTo(e.clientY)}}),D(this,`endDrag`,()=>{this.drag=void 0,document.removeEventListener(`pointermove`,this.onPointerMove),document.removeEventListener(`pointerup`,this.endDrag),document.removeEventListener(`pointercancel`,this.endDrag)}),D(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=L(t,n.scrollContainer),this.preserve=new B(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 X(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 W(this.rows.map(e=>this.estimate(e.data)))}estimate(e){let t=this.options.estimateBlockHeight?.(e,this.width)??V(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 W(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,K.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=ne(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(()=>i()!==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(()=>u());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:s})=>{if(t.ids.length>1&&this.queueSplit(e),t.loading||!t.ids.length||s.has(`virtual-bind`)||!i.size&&!a.size)return;let l=r.toJSON().root.children;if(JSON.stringify(l)===t.data)return;let u=new Set;l.forEach((e,n)=>{let r=e.$?.blockId,i=this.indices.has(r)&&!t.ids.includes(r);(!r||u.has(r)||i)&&(r=n===0?t.ids[0]:P(8)),e.$={...e.$,blockId:r},u.add(r)});let d=[...t.ids];t.ids=l.map(e=>e.$.blockId),t.data=JSON.stringify(l),n.update(()=>c().getChildren().forEach((e,n)=>p(e,o,t.ids[n])),{tag:`virtual-bind`}),this.document.replace(d,l,String(e.id))}),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(()=>{Q(c(),i),n&&f(null)},{discrete:!0,tag:n?[`virtual-bind`,s]:`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?x(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()})}w(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,U(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:j})}))}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 l=o<i,u=l?this.rows.slice(o,i):this.rows.slice(a+1,o+1);if(r.ids.length+u.length>(this.options.selectionMergeLimit??200))return!1;let d=new Set(u.map(e=>e.id)),f=this.pool.slots.filter(t=>t!==e&&this.islands.get(t.id)?.ids.some(e=>d.has(e)));if(f.some(e=>{let t=this.islands.get(e.id);return t.retained>0||t.editor.isComposing()}))return!1;for(let e of f)e.beforeRelease?.(),e.active=!1,this.islands.get(e.id).generation=-1;return r.ids=l?[...d,...r.ids]:[...r.ids,...d],l&&(e.index=o),r.data=JSON.stringify(r.ids.map(e=>this.rows[this.indices.get(e)].data)),r.editor.update(()=>{let e=u.map(e=>A(e.data)),t=c().getFirstChild();l&&t?e.forEach(e=>t.insertBefore(e)):c().append(...e)},{discrete:!0,tag:[`virtual-bind`,s]}),this.refresh(!1),this.publish(n),this.queueMeasure(),!0}extendForKey(e,t){let n=this.island(e),r=t===`down`||t===`right`,a=n.editor.getEditorState().read(()=>{let e=i();if(!l(e))return!1;let n=c(),a=e.focus.getNode();if(t===`up`||t===`down`)return $(a)?.is(r?n.getLastChild():n.getFirstChild())??!1;let o=r?n.getLastDescendant():n.getFirstDescendant();return!!o&&a.is(o)&&e.focus.offset===(r?o.getTextContentSize():0)}),o=r?e.index+n.ids.length:e.index-1;return!a||o<0||o>=this.rows.length?!1:this.extendIsland(e,o)}splitIsland(e){let t=this.islands.get(e.id);if(!t||t.ids.length<2)return;let n=t.editor.getEditorState().read(()=>{let e=i();return $(l(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=i();return e===null||l(e)&&e.isCollapsed()})&&this.splitIsland(e)}))}joinNeighbor(e,t){let n=this.island(e),r=t?e.index-1:e.index+n.ids.length,a=this.rows[r];if(!a)return!1;for(let t of this.pool.slots)t!==e&&this.islands.get(t.id)?.ids.includes(a.id)&&(t.beforeRelease?.(),t.active=!1);return n.ids=t?[a.id,...n.ids]:[...n.ids,a.id],t&&(e.index=r),n.editor.update(()=>{let e=A(a.data);t?c().getFirstChild().insertBefore(e):c().append(e);let n=i();l(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]=E();return(0,G.useEffect)(()=>{let r=e=>{let t=i();if(!l(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)},a=n=>(e.extendForKey(t,n),!1),o=[n.registerCommand(C,()=>(e.master.dispatchCommand(C,void 0),!0),4),n.registerCommand(I,()=>(e.master.dispatchCommand(I,void 0),!0),4),n.registerCommand(d,n=>!r(!1)||!e.joinNeighbor(t,!0)?!1:(n?.preventDefault(),!0),4),n.registerCommand(_,n=>!r(!0)||!e.joinNeighbor(t,!1)?!1:(n?.preventDefault(),!0),4),n.registerCommand(M,n=>n?.shiftKey?a(`up`):!r(!1)||t.index===0?!1:(n?.preventDefault(),e.focusBlock(t.index-1,!0),!0),4),n.registerCommand(g,n=>{if(n?.shiftKey)return a(`down`);if(!r(!0))return!1;let i=t.index+e.island(t).ids.length;return i>=e.rows.length?!1:(n?.preventDefault(),e.focusBlock(i),!0)},4),n.registerCommand(S,e=>!!e.shiftKey&&a(`left`),4),n.registerCommand(m,e=>!!e.shiftKey&&a(`right`),4)];return()=>o.forEach(e=>e())},[e,n,t]),null}function ae({controller:e,slot:t,plugins:n,onActiveEditorChange:r,onRelease:i,retainSurface:a,placeholder:o}){let s=e.island(t),c=e.rows[t.index],l=`${t.generation}:${t.active}`,[u,d]=(0,G.useState)(``),[f]=(0,G.useState)(()=>{let e=document.createElement(`div`);return e.style.display=`contents`,e}),p=t.active||e.preserve.has(t.id),m=T(),h=(0,G.useMemo)(()=>({blockId:c.id,active:t.active,editor:s.editor,documentBlocks:e.documentBlocks,nodeState:n=>e.nodeState(t,n,c.id),retain:()=>{s.retained++;let t=a(),n=!1;return()=>{n||(n=!0,s.retained--,t(),e.refresh(!1))}}}),[e,s.editor,a,c.id,t,t.active,t.generation]),g=(0,G.useCallback)(n=>e.attach(t,n),[e,t]);return(0,G.useLayoutEffect)(()=>{e.mount(t,f),p?e.bind(t):s.generation=-1,t.beforeRelease=()=>{e.capturePanels(t),i(s.editor)}}),(0,G.useLayoutEffect)(()=>()=>f.remove(),[f]),(0,G.useLayoutEffect)(()=>{let e=requestAnimationFrame(()=>{e=requestAnimationFrame(()=>d(l))});return()=>cancelAnimationFrame(e)},[l]),(0,K.createPortal)((0,q.jsx)(`div`,{className:z,"data-pool":t.pool,"data-restoring":u===l?void 0:``,"data-virtual-editor-block":t.active?c.id:void 0,"data-virtual-editor-slot":t.id,ref:g,style:{display:t.active?void 0:`none`,transform:`translateY(${e.slotOffset(t)}px)`},onFocusCapture:()=>r(s.editor),children:(0,q.jsx)(y,{value:h,children:p&&(0,q.jsxs)(N,{skipCollabChecks:!0,initialEditor:s.editor,children:[(0,q.jsx)(O,{ErrorBoundary:te,contentEditable:(0,q.jsx)(k,{"aria-label":`Document block`,"aria-placeholder":o??``,className:`rich-editor__content qi8t62`,"data-virtual-editor-content":``,placeholder:(0,q.jsx)(`div`,{className:`b94s952`,style:{top:0,left:0,display:o?void 0:`none`},children:o})})}),t.active&&n,(0,q.jsx)(ie,{controller:e,slot:t}),t.active&&m]})})}),f,String(t.id))}function oe({controller:e,plugins:t,onActiveEditorChange:n,onRelease:r,retainSurface:i,placeholder:a}){let[,o]=(0,G.useState)(0);return(0,G.useLayoutEffect)(()=>e.subscribe(()=>o(e=>e+1)),[e]),(0,G.useLayoutEffect)(()=>e.commitLayout()),(0,q.jsx)(q.Fragment,{children:e.pool.slots.map(o=>(0,q.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:s}){let[c]=E(),{scrollContainer:l,overscan:u,estimateBlockHeight:d,preserveCapacity:f,selectionMergeLimit:p}=e,m=(0,G.useMemo)(()=>({scrollContainer:l,overscan:u,estimateBlockHeight:d,preserveCapacity:f,selectionMergeLimit:p}),[l,u,d,f,p]),h=(0,G.useRef)(null),g=(0,G.useCallback)(e=>{h.current=e,a(e)},[a]),_=(0,G.useCallback)(e=>{h.current===e&&g(null)},[g]),v=(0,G.useRef)(null),[y,b]=(0,G.useState)(null),[x,S]=(0,G.useState)(``);return(0,G.useEffect)(()=>{b(null),S(``);let e=v.current,t;try{t=new re(c,e,m),b(t),Object.assign(e,{virtualEditor:t})}catch(e){S(String(e));return}return()=>{g(null),t.dispose(),Reflect.deleteProperty(e,`virtualEditor`)}},[c,g,m]),(0,G.useEffect)(()=>{y&&r&&y.focusBlock(0,!1,!1)},[r,y]),(0,q.jsxs)(`div`,{className:`rich-editor__content-wrapper ${ee}`,style:{"--ce-padding-top":`${i?40:12}px`},children:[x&&(0,q.jsx)(`p`,{role:`alert`,children:x}),(0,q.jsx)(`div`,{className:`${F} ${t??``}`,children:(0,q.jsx)(`div`,{className:R,"data-virtual-editor":``,ref:v,children:y&&(0,q.jsx)(oe,{controller:y,placeholder:s,plugins:n,retainSurface:o,onActiveEditorChange:g,onRelease:_})})})]})}export{se as VirtualizedEditor};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{g as t}from"./route-BVyQT-QL.js";import{t as n}from"./react-B8SKf8RM.js";import{t as r}from"./jsx-runtime-DePvh3-m.js";import{Qt as i}from"./channel-DDH61e3T.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-Dqr35Vzj.js";import{n as m}from"./DocumentPage-DaPgnxMA.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{g as t}from"./route-BxZwMyYd.js";import{t as n}from"./react-B8SKf8RM.js";import{t as r}from"./jsx-runtime-DePvh3-m.js";import{Qt as i}from"./channel-BvCX9HOf.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-Cc1k0LVw.js";import{n as m}from"./DocumentPage-BnOdSxZW.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-BrbRGtu0.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
+ import{t as e}from"./jsx-runtime-DePvh3-m.js";import{t}from"./Popover-BP5AXaMJ.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 +1 @@
1
- import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{_ as t,a as n}from"./route-BVyQT-QL.js";import{t as r}from"./react-B8SKf8RM.js";import{t as i}from"./jsx-runtime-DePvh3-m.js";import{q as a}from"./MotionConfigContext-DBHtopYR.js";import{i as o,n as s,r as c,t as l}from"./mouse-pointer-2-_JnEyutJ.js";import{i as u,n as d,o as f,s as p}from"./ThreadView-B-8R22hW.js";import{c as m,l as h,u as g}from"./lib-BXS-WP3g.js";import{n as _,t as v}from"./index.js";/* empty css */import{Excalidraw as y,convertToExcalidrawElements as b,exportToBlob as x,reconcileElements as S,restoreElements as C}from"./prod-BsP4uqih.js";import{n as w}from"./Avatar-CaNBCS-D.js";import{n as T}from"./useMedia-CWOjvrMw.js";import{s as E,t as ee}from"./WritingCursor-6XjLzlq3.js";import{a as D,n as te,r as ne,t as re}from"./messages-D-DLzi0K.js";import{t as O}from"./page-api-D8JklgWH.js";import"./shims-DAMrW7mQ.js";var ie={name:`move-up-right`,size:24,node:[[`path`,{d:`M13 5H19V11`,key:`1n1gyv`}],[`path`,{d:`M19 5L5 19`,key:`72u4yj`}]]};ie.node;var ae=a(ie),k={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`]};k.node;var oe=a(k),se={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`}]]};se.node;var ce=a(se),A=e(r(),1),j=8,M=10,N=64,le=190,P=(e,t)=>({x:(e.x+t.scrollX)*t.zoom,y:(e.y+t.scrollY)*t.zoom}),ue=(e,t)=>({x:e.x/t.zoom-t.scrollX,y:e.y/t.zoom-t.scrollY});function F(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 I=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n));function de(e,t,n=420){let r=e.y-40-j,i=r<N,a={x:I(e.x,M,t.width-n-M),y:i?e.y+e.h+j:r,flipped:i},o=a.y+5,s=a.x-118-j,c=a.x+n+j,l={x:a.x,y:i?a.y+40+j:a.y-30-j},u=s>=M?{x:s,y:o}:c+118<=t.width-M?{x:c,y:o}:l,d=e.x+e.w+12;return{props:a,chip:u,composer:{x:d+320<=t.width-M?d:Math.max(M,e.x-320-12),y:I(e.y,N,t.height-le)}}}function fe(e,t,n){let r=F(e,e.map(e=>e.id))??{x:0,y:0,w:0,h:0};return{op:`create`,anchor:{x:r.x+r.w/2,y:r.y+r.h/2,elements:e.map(e=>e.id)},text:t.trim()||n}}var L={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}},R=i();function pe({count:e}){return e?(0,R.jsxs)(`span`,{"data-agent-pill":!0,...t(L.agentPill),children:[(0,R.jsx)(`i`,{...t(L.pillDot)}),n(`whiteboard.agentChanged`,{count:e})]}):null}function me({agent:e,glow:t,cursor:n,elements:r,view:i}){let a=new Map(r.map(e=>[e.id,e])),o=e=>({...P({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,R.jsxs)(R.Fragment,{children:[t.flatMap(e=>{let t=a.get(e);if(!t)return[];let n=o(t);return[(0,R.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,R.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,R.jsx)(ee,{agent:e,title:s.id,zoom:i.zoom,...E({x:s.x??0,y:s.y??0,w:s.width??0,h:s.height??0},!0)})})]})}function he({compact:e=!1,onClick:t}){return(0,R.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,R.jsx)(oe,{size:14}),!e&&n(`whiteboard.ask`)]})}function ge({composer:e,count:t,onSend:r,onClose:i}){let[a,o]=(0,A.useState)(``),[s,c]=(0,A.useState)(!1),l=async()=>{c(!0);let e=await r(a);c(!1),e&&(o(``),i())};return(0,R.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,R.jsxs)(`p`,{className:`x78zum5 x6s0dn4 x17d4w8g x1ghz6dp x4z9k3i x1s688f`,children:[(0,R.jsx)(oe,{size:14}),n(`whiteboard.askTitle`)]}),(0,R.jsx)(`p`,{className:`xg9jes1 xyorhqc xfifm61 xddlp02`,children:n(`whiteboard.askSelected`,{count:t})}),(0,R.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,R.jsxs)(`div`,{className:`x78zum5 x13a6bvl x17d4w8g x1anpbxc`,children:[(0,R.jsx)(`button`,{type:`button`,onClick:i,className:`x1fgtraw xaope02 xc342km x1kogg8i xahzvm9 x1bo0w0s x1ypdohk`,children:n(`whiteboard.cancel`)}),(0,R.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 z={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}},_e=(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 B({comments:e,commenting:r,elements:i,onDone:a,onOp:o,view:s}){let[c,l]=(0,A.useState)(null),[u,f]=(0,A.useState)(null),p=e.file.threads.filter(e=>e.status===`open`&&!e.messages.every(e=>e.deleted)),m=p.find(e=>e.id===c),h=e=>void o(e),g=t=>[z.pin,t.messages[0]?.author===`agent`&&z.agentPin,e.stale.includes(t.id)&&z.stalePin,e.orphans.includes(t.id)&&z.orphanPin];return(0,R.jsxs)(R.Fragment,{children:[r&&(0,R.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=ue(n,s);f({screen:n,scene:r,element:_e(i(),r)?.id})},className:`x10l6tqk x10a8y8t xsid9ct x1q8xho0`}),p.map((e,n)=>{let r=P(e.anchor,s);return(0,R.jsx)(`button`,{"data-pin":e.id,style:{left:`${r.x}px`,top:`${r.y}px`},type:`button`,onClick:()=>l(c===e.id?null:e.id),...t(...g(e)),children:n+1},e.id)}),m&&(0,R.jsx)(`div`,{style:{...V(P(m.anchor,s))},className:`x10l6tqk x1m258z3 x12ilycc xmkeg23 x1y0btm7 x12xov25 x4pepcl x1d5q07e xb3r6kr x1x85hfe`,children:(0,R.jsx)(d,{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:()=>l(null)})}),u&&(0,R.jsx)(`div`,{style:V(u.screen),className:`x10l6tqk x1m258z3 x12ilycc xmkeg23 x1y0btm7 x12xov25 x4pepcl x1d5q07e xb3r6kr x1x85hfe x7z7khe`,children:(0,R.jsx)(w,{autoFocus:!0,placeholder:n(`comments.addPlaceholder`),onCancel:()=>{f(null),a()},onSubmit:async e=>{let t=await o({op:`create`,anchor:{x:u.scene.x,y:u.scene.y,...u.element?{elements:[u.element]}:{}},text:e});return t&&(f(null),a()),t}})})]})}var V=e=>({left:e.x+18,top:Math.max(56,e.y-14)});function ve({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=P({x:a.x??0,y:a.y??0},i);return(0,R.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,R.jsx)(`span`,{className:`x10l6tqk x12p4g1f x1bkpikb xf4egzd x1q4txso x1ctf4ec x7grq7f x8r4el6 xfifm61 x1s688f xuxw1ft`,children:n(`whiteboard.docRefs`,{count:t})})})}function H(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 U=()=>typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`);function W(){let[e,t]=(0,A.useState)(()=>U()?.matches??!1);return(0,A.useEffect)(()=>{let e=U();if(!e)return;let n=()=>t(e.matches);return e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}var ye={path:{kUk6DE:`x98rzlu`,k7Eaqz:`xeuugli`,kVQacm:`xb3r6kr`,kg5iWk:`xlyipyv`,khDVqt:`xuxw1ft`,$$css:!0}},be={fitToViewport:!0,viewportZoomFactor:.9};function xe({id:e,scene:r,threads:i,setApi:a,onView:o,children:s}){let c=W(),l=(0,A.useRef)(null),[u,d]=(0,A.useState)(null),f=(0,A.useRef)(!1),[p,m]=(0,A.useState)(null),h=()=>{let e=l.current?.getSceneElements();return e?.length?e:r?.elements??[]},_=(e,t=!0)=>{let n=l.current,r=h(),i=e?r.filter(t=>t.id===e):r;return!n||!i.length?!1:(n.scrollToContent(i,{...be,animate:t}),d(e),!0)},v=()=>{if(f.current)return;let e=H(h())[1]?.id??null;f.current=_(e,!1)},b=(0,A.useRef)(v);(0,A.useLayoutEffect)(()=>{b.current=v}),(0,A.useEffect)(()=>{r&&b.current()},[r]);let x=(e,t)=>{v();let n=H(e);JSON.stringify(n)!==JSON.stringify(p)&&m(n),o?.({scrollX:t.scrollX,scrollY:t.scrollY,zoom:t.zoom.value})};return(0,R.jsxs)(`div`,{...t(L.root),children:[r?(0,R.jsx)(`div`,{"data-whiteboard-canvas":!0,"data-hide-native":`true`,...t(L.canvas),children:(0,R.jsx)(y,{viewModeEnabled:!0,theme:c?`dark`:`light`,excalidrawAPI:e=>{l.current=e,a?.(e)},initialData:{elements:r.elements,appState:{...r.appState,viewBackgroundColor:`#ffffff`},files:r.files},onChange:x})}):(0,R.jsx)(`div`,{...t(L.loading),children:n(`whiteboard.loading`)}),(0,R.jsxs)(`header`,{className:`x10l6tqk x13vifvy x17y0mx6 x78zum5 x6s0dn4 x167g77z xsdox4t xqin4a2 x12ilycc xso031l x1q0q8m5 xtrfj0v x4z9k3i x1n327nk`,children:[(0,R.jsxs)(`span`,{...t(ye.path,L.crumb),children:[`whiteboard / `,(0,R.jsx)(`span`,{...t(L.crumbId),children:e})]}),(0,R.jsx)(`span`,{className:`xj8oexa xlkn9b3 x1sxf85j xahzvm9 x1bo0w0s x1j6dyjg`,children:n(`whiteboard.readOnly`)}),i!==void 0&&(0,R.jsxs)(`span`,{className:`x3nfvp2 x6s0dn4 x1jnr06f x1bo0w0s`,children:[(0,R.jsx)(g,{size:14}),i]})]}),s,(0,R.jsx)(`nav`,{className:`x10l6tqk x191j7n5 xpnmzw7 x1s76y0k x78zum5 x17d4w8g xw2csxc x1n327nk`,children:(p??H(r?.elements??[])).map(e=>(0,R.jsx)(`button`,{"aria-pressed":u===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`}}[u===e.id|0],children:e.label??n(`whiteboard.all`)},e.id??``))})]})}var G=e=>typeof e.version!=`number`||typeof e.seed!=`number`,K=e=>e===`human`||e===`agent`;function Se(e){let t=e.customData??{},n={};return K(t.ryugiAuthor)&&(n.author=t.ryugiAuthor),typeof t.ryugiRev==`number`&&(n.rev=t.ryugiRev),K(t.ryugiLastBy)&&(n.lastBy=t.ryugiLastBy),n}function q(e,t){for(let n of t)e.set(n.id,n.version??0)}function Ce(e,t){let n=t.filter(t=>e.get(t.id)!==(t.version??0));return q(e,n),n}var J=e=>({x:e.x??0,y:e.y??0,w:e.width??0,h:e.height??0});function we(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=J(e),i=e.containerId?n.get(e.containerId):void 0;if(e.type===`text`&&i&&![`arrow`,`line`].includes(i.type)){let e=J(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 Te=new Set([`arrow`,`line`]),Ee=new Set([`rectangle`,`ellipse`,`diamond`]),Y=[`x`,`y`,`width`,`height`,`text`],De=e=>[e.start,e.end].map(e=>e?.id).filter(e=>typeof e==`string`),X=(e,t)=>({...e,...t,version:(e.version??0)+1,versionNonce:Math.floor(Math.random()*2**31),updated:Date.now()}),Oe=e=>Te.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,ke=(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 Ae(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 De(t)){let t=r.get(e);!t||n.has(e)||i.has(e)||i.set(e,{id:e,type:Ee.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=>ke(Oe(e),a)),...i.values()],standIns:new Set(i.keys()),frames:a}}var je=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)]},Z=10,Me=e=>{let t=e.map(je),n=Math.min(...t.map(([e])=>e))-Z,r=Math.min(...t.map(([,e])=>e))-Z,i=Math.max(...t.map(([,,e])=>e))+Z,a=Math.max(...t.map(([,,,e])=>e))+Z;return{x:n,y:r,width:i-n,height:a-r}};function Ne(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}:X(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?Me(c):null);u&&(e[l]={...e[l],...u})}}function Pe(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(X(t,{boundElements:[...i,...o]}))}return Ne(i,a,n,r),{created:i,touched:a}}function Fe(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||Y.every(n=>e[n]===t[n])?[]:[X(t,Object.fromEntries(Y.map(t=>[t,e[t]])))]})}var Ie=e=>e.map(e=>e.type===`text`&&e.containerId&&typeof e.originalText==`string`?{...e,text:e.originalText}:e),Le=200,Re=1e3,Q=e=>e,ze=Math.random().toString(36).slice(2),Be={file:{version:1,threads:[]},stale:[],orphans:[]},Ve=(e,t)=>{let{batch:n,standIns:r,frames:i}=Ae(e,t),{created:a,touched:o}=Pe(Q(b(n,{regenerateIds:!1})).map(t=>({...t,customData:e.find(e=>e.id===t.id)?.customData??t.customData})),r,t,i);return[...a,...o]};function $(e,t){let n=`whiteboard/${e}`,[r,i]=(0,A.useState)(null),[a,o]=(0,A.useState)(null),[s,c]=(0,A.useState)(Be),l=(0,A.useRef)(null),u=(0,A.useRef)(new Map),d=(0,A.useRef)([]),f=(0,A.useRef)(new Set),p=(0,A.useRef)(``),m=(0,A.useRef)({}),h=(0,A.useRef)(t);h.current=t;let g=(0,A.useRef)(()=>void 0),v=(0,A.useCallback)(()=>{let e=l.current;if(!e)return;let t=Q(e.getSceneElementsIncludingDeleted()),r=Fe(t,Q(C(Ie(t),null,{repairBindings:!0,refreshDimensions:!0})));if(!r.length)return;q(u.current,r);let i=new Map(r.map(e=>[e.id,e]));e.updateScene({elements:t.map(e=>i.get(e.id)??e)}),g.current({type:`whiteboard-update`,artifact:n,elements:r,completion:!0})},[n]),y=(0,A.useCallback)(e=>{let t=Ve(e,Q(l.current?.getSceneElementsIncludingDeleted()??d.current));q(u.current,t);let r=l.current;r&&r.updateScene({elements:S(r.getSceneElementsIncludingDeleted(),t,r.getAppState())}),g.current({type:`whiteboard-update`,artifact:n,elements:t,completion:!0}),v()},[n,v]),b=(0,A.useCallback)(e=>{let t=e.filter(G),n=e.filter(e=>!G(e));q(u.current,n);let r=l.current;r&&n.length&&r.updateScene({elements:S(r.getSceneElementsIncludingDeleted(),n,r.getAppState())}),t.length?y(t):n.length&&v()},[y,v]),{live:w,send:T}=_(e=>{if(e.type===`whiteboard-comments`&&e.artifact===n)c({file:e.comments,stale:e.stale,orphans:e.orphans});else if(e.type===`whiteboard-update`&&e.artifact===n){if(e.files){for(let t of Object.keys(e.files))f.current.add(t);l.current?.addFiles(Object.values(e.files))}b(e.elements),e.agent&&h.current?.(e.agent,e.elements)}});g.current=T,(0,A.useEffect)(()=>{let t=!1;return fetch(O(`/api/whiteboard/${e}/scene`),{cache:`no-store`}).then(e=>e.ok?e.json():null).then(e=>{if(t||!e)return;let r=e.scene.elements.filter(G),a=e.scene.elements.filter(e=>!G(e)),s=r.length?Ve(r,a):[],l=new Map(s.map(e=>[e.id,e])),d=[...a.map(e=>l.get(e.id)??e),...s.filter(e=>!a.some(t=>t.id===e.id))];q(u.current,d),f.current=new Set(Object.keys(e.scene.files??{})),i({...e.scene,elements:d}),s.length&&g.current({type:`whiteboard-update`,artifact:n,elements:s,completion:!0}),o(e.problem),e.comments&&c({file:e.comments,stale:e.stale??[],orphans:e.orphans??[]})}),()=>{t=!0,clearTimeout(m.current.send),clearTimeout(m.current.report)}},[e]);let E=(0,A.useCallback)(async()=>{let t=l.current,n=d.current,r=we(n);if(await fetch(O(`/api/whiteboard/${e}/geometry`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(r)}),!t)return;let i=await x({elements:n.filter(e=>!e.isDeleted),appState:t.getAppState(),files:t.getFiles(),mimeType:`image/png`});await fetch(O(`/api/whiteboard/${e}/render?version=${r.sceneVersion}`),{method:`POST`,headers:{"Content-Type":`image/png`},body:i})},[e]),ee=(0,A.useCallback)((e,t)=>{d.current=Q(e),clearTimeout(m.current.send),m.current.send=setTimeout(()=>{let e=Ce(u.current,d.current);if(!e.length)return;let t=l.current?.getFiles()??{},r=Object.fromEntries(e.map(e=>e.fileId).filter(e=>typeof e==`string`&&!f.current.has(e)&&e in t).map(e=>[e,t[e]]));for(let e of Object.keys(r))f.current.add(e);T({type:`whiteboard-update`,artifact:n,elements:e,...Object.keys(r).length?{files:r}:{}})},Le),clearTimeout(m.current.report),m.current.report=setTimeout(()=>void E(),Re);let r=Object.keys(t.selectedElementIds??{}).filter(e=>t.selectedElementIds[e]),i=r.join(`,`);if(i===p.current)return;p.current=i;let a=new Map(d.current.map(e=>[e.id,e])),o=new Map(d.current.filter(e=>e.containerId&&typeof e.text==`string`).map(e=>[e.containerId,e.text]));T({type:`selection`,artifact:n,tab:ze,human:!0,selected:r.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:Se(t).author??null}]:[]})})},[n,E,T]),D=(0,A.useCallback)(e=>{l.current=e;let t=Q(e.getSceneElementsIncludingDeleted()).filter(G);t.length&&y(t),document.fonts?.ready.then(v)},[y,v]);return(0,A.useEffect)(()=>{let e=document.fonts;if(e)return e.addEventListener(`loadingdone`,v),()=>e.removeEventListener(`loadingdone`,v)},[v]),{scene:r,problem:a,live:w,onChange:ee,setApi:D,api:l,report:E,send:T,comments:s,comment:(0,A.useCallback)(async t=>{let n=await fetch(O(`/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&&c({file:r.comments,stale:r.stale??[],orphans:r.orphans??[]}),!0},[e]),elements:(0,A.useCallback)(()=>d.current,[])}}var He=(e,t)=>e.scrollX===t.scrollX&&e.scrollY===t.scrollY&&e.zoom===t.zoom;function Ue({id:e}){let t=$(e,()=>{}),[r,i]=(0,A.useState)(!1),[a,o]=(0,A.useState)({scrollX:0,scrollY:0,zoom:1}),s=t.comments.file.threads.filter(e=>e.status===`open`).length;return(0,R.jsxs)(xe,{id:e,scene:t.scene,setApi:t.setApi,threads:s,onView:e=>{He(e,a)||o(e)},children:[r&&(0,R.jsx)(B,{commenting:!1,comments:t.comments,elements:t.elements,view:a,onDone:()=>{},onOp:t.comment}),(0,R.jsx)(`button`,{"data-phone-comments":!0,"aria-label":n(`whiteboard.tools.comment`),"aria-pressed":r,type:`button`,onClick:()=>i(e=>!e),className:`x10l6tqk xn5hqff xn0vg7t xrvj5dj x1ku5rj1 x187nhsf xn3w4p2 xc342km x13pz1uv x7grq7f x8r4el6 x1fptykp x1n327nk`,children:(0,R.jsx)(g,{size:18})})]})}var We=[`#1e1e1e`,`#e03131`,`#2f9e44`,`#1971c2`,`#f08c00`],Ge=[`#ffec99`,`#ffc9c9`,`#b2f2bb`,`#a5d8ff`,`transparent`],Ke=[[`S`,16],[`M`,20],[`L`,28]],qe=[1,2,4],Je=[100,60,30];function Ye({x:e,y:t,selected:r,onApply:i,onWidth:a,trailing:o,compact:s=!1}){let[c,l]=(0,A.useState)(!1),u=r[0],d=u?.strokeColor,f=u?.backgroundColor,m=r.find(e=>typeof e.fontSize==`number`)?.fontSize;return(0,R.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,R.jsx)(`span`,{className:`x1xijbu4 x1j6dyjg xddlp02`,children:n(`whiteboard.stroke`)}),We.map(e=>(0,R.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,R.jsx)(`span`,{className:`x1i1rx1s xmix8c7 xjgtzcg xh6qj2i`}),!s&&(0,R.jsx)(`span`,{className:`x1xijbu4 x1j6dyjg xddlp02`,children:n(`whiteboard.fill`)}),Ge.map(e=>(0,R.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,R.jsx)(`span`,{className:`x1i1rx1s xmix8c7 xjgtzcg xh6qj2i`}),Ke.map(([e,t])=>(0,R.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`}}[m===t|0],children:e},e)),(0,R.jsx)(`span`,{className:`x1i1rx1s xmix8c7 xjgtzcg xh6qj2i`}),(0,R.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,R.jsx)(p,{size:16})}),c&&(0,R.jsxs)(`div`,{className:`x10l6tqk xtirvkn x3m8u43 x78zum5 x6s0dn4 x195vfkc x1ruevkc x12ilycc xmkeg23 x1y0btm7 x12xov25 x1q4ynmn x1cqdj14`,children:[(0,R.jsx)(`span`,{className:`x1xijbu4 x1j6dyjg xddlp02`,children:n(`whiteboard.strokeWidth`)}),qe.map(e=>(0,R.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,R.jsx)(`span`,{className:`x1i1rx1s xmix8c7 xjgtzcg xh6qj2i`}),(0,R.jsx)(`span`,{className:`x1xijbu4 x1j6dyjg xddlp02`,children:n(`whiteboard.opacity`)}),Je.map(e=>(0,R.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 Xe=`#ffec99`,Ze=[{key:`selection`,icon:l,shortcut:`V`,group:`move`},{key:`hand`,icon:c,shortcut:`H`,group:`move`},{key:`rectangle`,icon:m,shortcut:`R`,group:`draw`},{key:`ellipse`,icon:o,shortcut:`O`,group:`draw`},{key:`arrow`,icon:ae,shortcut:`A`,group:`draw`},{key:`text`,icon:u,shortcut:`T`,group:`draw`},{key:`sticky`,icon:ce,shortcut:`S`,group:`draw`},{key:`freedraw`,icon:h,shortcut:`P`,group:`draw`},{key:`frame`,icon:f,shortcut:`F`,group:`draw`},{key:`comment`,icon:s,shortcut:`C`,group:`talk`}],Qe=(e,t,n)=>({type:`rectangle`,x:e,y:t,width:240,height:120,backgroundColor:Xe,fillStyle:`solid`,strokeColor:`#1e1e1e`,label:{text:n}}),$e=2e3,et=1e4,tt={at:0,event:null},nt=(e,t,n)=>({at:n,event:t});function rt(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 it(){let[e,t]=(0,A.useState)(tt),[n,r]=(0,A.useState)(()=>Date.now());return(0,A.useEffect)(()=>{if(!e.event)return;let t=()=>r(Date.now()),n=setTimeout(t,Math.max(0,e.at+$e-Date.now())),i=setTimeout(t,Math.max(0,e.at+et-Date.now()));return()=>{clearTimeout(n),clearTimeout(i)}},[e]),{visible:rt(e,n),record:e=>{let n=Date.now();t(t=>nt(t,e,n)),r(n)}}}var at=.8;function ot(e,t){let n=(0,A.useMemo)(()=>te(),[]),[r,i]=(0,A.useState)({}),[a,o]=(0,A.useState)(`Agent`),[s,c]=(0,A.useState)(null),[l,u]=(0,A.useState)(!1),d=(0,A.useRef)(null),f=(0,A.useRef)(null);(0,A.useEffect)(()=>{let t=!1,n=()=>fetch(O(`/api/artifacts/whiteboard/${e}`),{cache:`no-store`}).then(async e=>e.ok?await e.json():null).catch(()=>null).then(e=>{!t&&e&&(e.backlinks&&i(e.backlinks),typeof e.agent==`string`&&e.agent&&o(e.agent))});n();let r=v(t=>{t.type===`change`&&t.artifact===`whiteboard/${e}`&&n()});return()=>{t=!0,r()}},[e]);let p=()=>{let e=t.current,n=d.current;if(!n||!e)return;let r=e.getSceneElements();if(!r.length)return;d.current=null;let i=n.frame?r.filter(e=>e.id===n.frame):r;i.length&&(e.scrollToContent(i,{fitToViewport:!0,viewportZoomFactor:at,animate:!0}),c(n.frame))},m=(0,A.useRef)(p);return m.current=p,(0,A.useEffect)(()=>{if(!n)return;let e=ne(e=>{e.kind===`chrome`&&u(e.hosted),e.kind===`focus`&&(d.current={frame:e.frame??null},m.current())});return D({kind:`ready`}),e},[n]),{split:n,agent:a,docked:l,focus:s,flush:p,count:s?r[s]?.length??0:0,onSelect:e=>{if(!n)return;let t=e.length===1&&e[0].type===`frame`?e[0].id:null;e.length&&t!==s&&c(null),t!==f.current&&(f.current=t,t&&D({kind:`select`,key:t}))}}}function st({id:e,active:r,onTool:i,zoom:a,comments:o,agentNotice:s,trailing:c,docked:l=!1,readOnly:u=!1}){let d=u?Ze.filter(e=>e.group!==`draw`):Ze;return(0,R.jsxs)(R.Fragment,{children:[!l&&(0,R.jsxs)(`div`,{"data-chrome":!0,...t(L.bar,L.left),children:[(0,R.jsxs)(`span`,{...t(L.crumb),children:[`whiteboard / `,(0,R.jsx)(`span`,{...t(L.crumbId),children:e})]}),s,d.map((e,a)=>{let o=e.icon,s=n(`whiteboard.tools.${e.key}`),c=a===0||e.group!==d[a-1].group;return(0,R.jsxs)(`span`,{style:{display:`contents`},children:[c&&(0,R.jsx)(`span`,{...t(L.divider)}),(0,R.jsx)(`button`,{"aria-label":s,"aria-pressed":r===e.key,"data-tool":e.key,title:s,type:`button`,onClick:()=>i(e.key),...t(L.tool,r===e.key&&L.toolOn),children:(0,R.jsx)(o,{size:18,strokeWidth:1.75})})]},e.key)})]}),(0,R.jsxs)(`div`,{"data-chrome":!0,...t(L.bar,L.right),children:[l&&s,(0,R.jsxs)(`span`,{...t(L.zoom),children:[Math.round(a*100),`%`]}),(0,R.jsx)(`span`,{...t(L.divider)}),(0,R.jsxs)(`span`,{...t(L.count),children:[(0,R.jsx)(g,{size:15}),o]}),c]})]})}window.EXCALIDRAW_ASSET_PATH=`/`;var ct={canvasActions:{changeViewBackgroundColor:!1,clearCanvas:!1,export:!1,loadScene:!1,saveAsImage:!1,saveToActiveFile:!1,toggleTheme:!1},tools:{image:!1}},lt=700,ut=e=>e.map(e=>`${e.id}:${e.version??0}`).join(`,`);function dt({id:e}){return re(T(`(max-width: 640px)`))?(0,R.jsx)(Ue,{id:e}):(0,R.jsx)(ft,{id:e})}function ft({id:e}){let r=it(),i=$(e,r.record),a=ot(e,i.api),o=W(),[s,c]=(0,A.useState)(`selection`),[l,u]=(0,A.useState)({scrollX:0,scrollY:0,zoom:1}),[d,f]=(0,A.useState)({width:1280,height:800}),[p,m]=(0,A.useState)([]),[h,g]=(0,A.useState)(void 0),[_,v]=(0,A.useState)(!1),x=e=>{let t=i.api.current;if(c(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=b([Qe(r,i,n(`whiteboard.sticky`))]);t.updateScene({elements:[...t.getSceneElementsIncludingDeleted(),...a],appState:{selectedElementIds:{[a[0].id]:!0}}}),c(`selection`)}else t.setActiveTool({type:e})}},S=(e,t)=>{i.onChange(e,t),a.flush();let n={scrollX:t.scrollX,scrollY:t.scrollY,zoom:t.zoom.value};(n.scrollX!==l.scrollX||n.scrollY!==l.scrollY||n.zoom!==l.zoom)&&u(n),(t.width!==d.width||t.height!==d.height)&&f({width:t.width,height:t.height});let r=Object.keys(t.selectedElementIds??{}).filter(e=>t.selectedElementIds[e]),o=e.filter(e=>r.includes(e.id));ut(o)!==ut(p)&&(m(o),o.length||v(!1),a.onSelect(o))},C=e=>{let t=i.api.current;if(!t)return;let n=new Set(p.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=F(p,p.map(e=>e.id)),T=w&&{...P(w,l),w:w.w*l.zoom,h:w.h*l.zoom},E=T&&de(T,d,h);return(0,R.jsxs)(`div`,{...t(L.root),children:[i.scene?(0,R.jsx)(`div`,{"data-whiteboard-canvas":!0,"data-hide-native":`true`,...t(L.canvas),children:(0,R.jsx)(y,{UIOptions:ct,excalidrawAPI:i.setApi,theme:o?`dark`:`light`,initialData:{elements:i.scene.elements,appState:{...i.scene.appState,viewBackgroundColor:`#ffffff`},files:i.scene.files,scrollToContent:!0},onChange:S})}):(0,R.jsx)(`div`,{...t(L.loading),children:n(`whiteboard.loading`)}),i.problem&&(0,R.jsx)(`div`,{role:`alert`,...t(L.problem),children:n(`whiteboard.problem`,{problem:i.problem})}),E&&s!==`comment`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(Ye,{compact:d.width<lt,selected:p,x:E.props.x,y:E.props.y,trailing:(0,R.jsx)(he,{compact:d.width<lt,onClick:()=>v(!0)}),onApply:C,onWidth:e=>{e&&e!==h&&g(e)}}),_&&(0,R.jsx)(ge,{composer:E.composer,count:p.length,onClose:()=>v(!1),onSend:async e=>(await i.report(),i.comment(fe(p,e,n(`whiteboard.askDefault`))))})]}),(0,R.jsx)(B,{commenting:s===`comment`,comments:i.comments,elements:i.elements,view:l,onDone:()=>c(`selection`),onOp:i.comment}),(0,R.jsx)(ve,{count:a.count,elements:i.api.current?.getSceneElements()??[],frame:a.focus,view:l}),(0,R.jsx)(me,{agent:a.agent,cursor:r.visible.cursor,elements:i.api.current?.getSceneElements()??[],glow:r.visible.glow,view:l}),(0,R.jsx)(st,{active:s,agentNotice:(0,R.jsx)(pe,{count:r.visible.count}),comments:i.comments.file.threads.filter(e=>e.status===`open`).length,docked:a.docked,id:e,zoom:l.zoom,onTool:x})]})}export{dt as WhiteboardLayout};
1
+ import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{_ as t,a as n}from"./route-BxZwMyYd.js";import{t as r}from"./react-B8SKf8RM.js";import{t as i}from"./jsx-runtime-DePvh3-m.js";import{q as a}from"./MotionConfigContext-DBHtopYR.js";import{i as o,n as s,r as c,t as l}from"./mouse-pointer-2-_JnEyutJ.js";import{i as u,n as d,o as f,s as p}from"./ThreadView-BAZoIpHC.js";import{c as m,l as h,u as g}from"./lib-BXS-WP3g.js";import{n as _,t as v}from"./index.js";/* empty css */import{Excalidraw as y,convertToExcalidrawElements as b,exportToBlob as x,reconcileElements as S,restoreElements as C}from"./prod-BYTFa_g3.js";import{n as w}from"./Avatar-C4aIAVqY.js";import{n as T}from"./useMedia-CWOjvrMw.js";import{s as E,t as ee}from"./WritingCursor-CXJXWz4V.js";import{a as D,n as te,r as ne,t as re}from"./messages-D-DLzi0K.js";import{t as O}from"./page-api-D8JklgWH.js";import"./shims-DAMrW7mQ.js";var ie={name:`move-up-right`,size:24,node:[[`path`,{d:`M13 5H19V11`,key:`1n1gyv`}],[`path`,{d:`M19 5L5 19`,key:`72u4yj`}]]};ie.node;var ae=a(ie),k={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`]};k.node;var oe=a(k),se={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`}]]};se.node;var ce=a(se),A=e(r(),1),j=8,M=10,N=64,le=190,P=(e,t)=>({x:(e.x+t.scrollX)*t.zoom,y:(e.y+t.scrollY)*t.zoom}),ue=(e,t)=>({x:e.x/t.zoom-t.scrollX,y:e.y/t.zoom-t.scrollY});function F(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 I=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n));function de(e,t,n=420){let r=e.y-40-j,i=r<N,a={x:I(e.x,M,t.width-n-M),y:i?e.y+e.h+j:r,flipped:i},o=a.y+5,s=a.x-118-j,c=a.x+n+j,l={x:a.x,y:i?a.y+40+j:a.y-30-j},u=s>=M?{x:s,y:o}:c+118<=t.width-M?{x:c,y:o}:l,d=e.x+e.w+12;return{props:a,chip:u,composer:{x:d+320<=t.width-M?d:Math.max(M,e.x-320-12),y:I(e.y,N,t.height-le)}}}function fe(e,t,n){let r=F(e,e.map(e=>e.id))??{x:0,y:0,w:0,h:0};return{op:`create`,anchor:{x:r.x+r.w/2,y:r.y+r.h/2,elements:e.map(e=>e.id)},text:t.trim()||n}}var L={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}},R=i();function pe({count:e}){return e?(0,R.jsxs)(`span`,{"data-agent-pill":!0,...t(L.agentPill),children:[(0,R.jsx)(`i`,{...t(L.pillDot)}),n(`whiteboard.agentChanged`,{count:e})]}):null}function me({agent:e,glow:t,cursor:n,elements:r,view:i}){let a=new Map(r.map(e=>[e.id,e])),o=e=>({...P({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,R.jsxs)(R.Fragment,{children:[t.flatMap(e=>{let t=a.get(e);if(!t)return[];let n=o(t);return[(0,R.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,R.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,R.jsx)(ee,{agent:e,title:s.id,zoom:i.zoom,...E({x:s.x??0,y:s.y??0,w:s.width??0,h:s.height??0},!0)})})]})}function he({compact:e=!1,onClick:t}){return(0,R.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,R.jsx)(oe,{size:14}),!e&&n(`whiteboard.ask`)]})}function ge({composer:e,count:t,onSend:r,onClose:i}){let[a,o]=(0,A.useState)(``),[s,c]=(0,A.useState)(!1),l=async()=>{c(!0);let e=await r(a);c(!1),e&&(o(``),i())};return(0,R.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,R.jsxs)(`p`,{className:`x78zum5 x6s0dn4 x17d4w8g x1ghz6dp x4z9k3i x1s688f`,children:[(0,R.jsx)(oe,{size:14}),n(`whiteboard.askTitle`)]}),(0,R.jsx)(`p`,{className:`xg9jes1 xyorhqc xfifm61 xddlp02`,children:n(`whiteboard.askSelected`,{count:t})}),(0,R.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,R.jsxs)(`div`,{className:`x78zum5 x13a6bvl x17d4w8g x1anpbxc`,children:[(0,R.jsx)(`button`,{type:`button`,onClick:i,className:`x1fgtraw xaope02 xc342km x1kogg8i xahzvm9 x1bo0w0s x1ypdohk`,children:n(`whiteboard.cancel`)}),(0,R.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 z={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}},_e=(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 B({comments:e,commenting:r,elements:i,onDone:a,onOp:o,view:s}){let[c,l]=(0,A.useState)(null),[u,f]=(0,A.useState)(null),p=e.file.threads.filter(e=>e.status===`open`&&!e.messages.every(e=>e.deleted)),m=p.find(e=>e.id===c),h=e=>void o(e),g=t=>[z.pin,t.messages[0]?.author===`agent`&&z.agentPin,e.stale.includes(t.id)&&z.stalePin,e.orphans.includes(t.id)&&z.orphanPin];return(0,R.jsxs)(R.Fragment,{children:[r&&(0,R.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=ue(n,s);f({screen:n,scene:r,element:_e(i(),r)?.id})},className:`x10l6tqk x10a8y8t xsid9ct x1q8xho0`}),p.map((e,n)=>{let r=P(e.anchor,s);return(0,R.jsx)(`button`,{"data-pin":e.id,style:{left:`${r.x}px`,top:`${r.y}px`},type:`button`,onClick:()=>l(c===e.id?null:e.id),...t(...g(e)),children:n+1},e.id)}),m&&(0,R.jsx)(`div`,{style:{...V(P(m.anchor,s))},className:`x10l6tqk x1m258z3 x12ilycc xmkeg23 x1y0btm7 x12xov25 x4pepcl x1d5q07e xb3r6kr x1x85hfe`,children:(0,R.jsx)(d,{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:()=>l(null)})}),u&&(0,R.jsx)(`div`,{style:V(u.screen),className:`x10l6tqk x1m258z3 x12ilycc xmkeg23 x1y0btm7 x12xov25 x4pepcl x1d5q07e xb3r6kr x1x85hfe x7z7khe`,children:(0,R.jsx)(w,{autoFocus:!0,placeholder:n(`comments.addPlaceholder`),onCancel:()=>{f(null),a()},onSubmit:async e=>{let t=await o({op:`create`,anchor:{x:u.scene.x,y:u.scene.y,...u.element?{elements:[u.element]}:{}},text:e});return t&&(f(null),a()),t}})})]})}var V=e=>({left:e.x+18,top:Math.max(56,e.y-14)});function ve({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=P({x:a.x??0,y:a.y??0},i);return(0,R.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,R.jsx)(`span`,{className:`x10l6tqk x12p4g1f x1bkpikb xf4egzd x1q4txso x1ctf4ec x7grq7f x8r4el6 xfifm61 x1s688f xuxw1ft`,children:n(`whiteboard.docRefs`,{count:t})})})}function H(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 U=()=>typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`);function W(){let[e,t]=(0,A.useState)(()=>U()?.matches??!1);return(0,A.useEffect)(()=>{let e=U();if(!e)return;let n=()=>t(e.matches);return e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}var ye={path:{kUk6DE:`x98rzlu`,k7Eaqz:`xeuugli`,kVQacm:`xb3r6kr`,kg5iWk:`xlyipyv`,khDVqt:`xuxw1ft`,$$css:!0}},be={fitToViewport:!0,viewportZoomFactor:.9};function xe({id:e,scene:r,threads:i,setApi:a,onView:o,children:s}){let c=W(),l=(0,A.useRef)(null),[u,d]=(0,A.useState)(null),f=(0,A.useRef)(!1),[p,m]=(0,A.useState)(null),h=()=>{let e=l.current?.getSceneElements();return e?.length?e:r?.elements??[]},_=(e,t=!0)=>{let n=l.current,r=h(),i=e?r.filter(t=>t.id===e):r;return!n||!i.length?!1:(n.scrollToContent(i,{...be,animate:t}),d(e),!0)},v=()=>{if(f.current)return;let e=H(h())[1]?.id??null;f.current=_(e,!1)},b=(0,A.useRef)(v);(0,A.useLayoutEffect)(()=>{b.current=v}),(0,A.useEffect)(()=>{r&&b.current()},[r]);let x=(e,t)=>{v();let n=H(e);JSON.stringify(n)!==JSON.stringify(p)&&m(n),o?.({scrollX:t.scrollX,scrollY:t.scrollY,zoom:t.zoom.value})};return(0,R.jsxs)(`div`,{...t(L.root),children:[r?(0,R.jsx)(`div`,{"data-whiteboard-canvas":!0,"data-hide-native":`true`,...t(L.canvas),children:(0,R.jsx)(y,{viewModeEnabled:!0,theme:c?`dark`:`light`,excalidrawAPI:e=>{l.current=e,a?.(e)},initialData:{elements:r.elements,appState:{...r.appState,viewBackgroundColor:`#ffffff`},files:r.files},onChange:x})}):(0,R.jsx)(`div`,{...t(L.loading),children:n(`whiteboard.loading`)}),(0,R.jsxs)(`header`,{className:`x10l6tqk x13vifvy x17y0mx6 x78zum5 x6s0dn4 x167g77z xsdox4t xqin4a2 x12ilycc xso031l x1q0q8m5 xtrfj0v x4z9k3i x1n327nk`,children:[(0,R.jsxs)(`span`,{...t(ye.path,L.crumb),children:[`whiteboard / `,(0,R.jsx)(`span`,{...t(L.crumbId),children:e})]}),(0,R.jsx)(`span`,{className:`xj8oexa xlkn9b3 x1sxf85j xahzvm9 x1bo0w0s x1j6dyjg`,children:n(`whiteboard.readOnly`)}),i!==void 0&&(0,R.jsxs)(`span`,{className:`x3nfvp2 x6s0dn4 x1jnr06f x1bo0w0s`,children:[(0,R.jsx)(g,{size:14}),i]})]}),s,(0,R.jsx)(`nav`,{className:`x10l6tqk x191j7n5 xpnmzw7 x1s76y0k x78zum5 x17d4w8g xw2csxc x1n327nk`,children:(p??H(r?.elements??[])).map(e=>(0,R.jsx)(`button`,{"aria-pressed":u===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`}}[u===e.id|0],children:e.label??n(`whiteboard.all`)},e.id??``))})]})}var G=e=>typeof e.version!=`number`||typeof e.seed!=`number`,K=e=>e===`human`||e===`agent`;function Se(e){let t=e.customData??{},n={};return K(t.ryugiAuthor)&&(n.author=t.ryugiAuthor),typeof t.ryugiRev==`number`&&(n.rev=t.ryugiRev),K(t.ryugiLastBy)&&(n.lastBy=t.ryugiLastBy),n}function q(e,t){for(let n of t)e.set(n.id,n.version??0)}function Ce(e,t){let n=t.filter(t=>e.get(t.id)!==(t.version??0));return q(e,n),n}var J=e=>({x:e.x??0,y:e.y??0,w:e.width??0,h:e.height??0});function we(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=J(e),i=e.containerId?n.get(e.containerId):void 0;if(e.type===`text`&&i&&![`arrow`,`line`].includes(i.type)){let e=J(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 Te=new Set([`arrow`,`line`]),Ee=new Set([`rectangle`,`ellipse`,`diamond`]),Y=[`x`,`y`,`width`,`height`,`text`],De=e=>[e.start,e.end].map(e=>e?.id).filter(e=>typeof e==`string`),X=(e,t)=>({...e,...t,version:(e.version??0)+1,versionNonce:Math.floor(Math.random()*2**31),updated:Date.now()}),Oe=e=>Te.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,ke=(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 Ae(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 De(t)){let t=r.get(e);!t||n.has(e)||i.has(e)||i.set(e,{id:e,type:Ee.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=>ke(Oe(e),a)),...i.values()],standIns:new Set(i.keys()),frames:a}}var je=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)]},Z=10,Me=e=>{let t=e.map(je),n=Math.min(...t.map(([e])=>e))-Z,r=Math.min(...t.map(([,e])=>e))-Z,i=Math.max(...t.map(([,,e])=>e))+Z,a=Math.max(...t.map(([,,,e])=>e))+Z;return{x:n,y:r,width:i-n,height:a-r}};function Ne(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}:X(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?Me(c):null);u&&(e[l]={...e[l],...u})}}function Pe(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(X(t,{boundElements:[...i,...o]}))}return Ne(i,a,n,r),{created:i,touched:a}}function Fe(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||Y.every(n=>e[n]===t[n])?[]:[X(t,Object.fromEntries(Y.map(t=>[t,e[t]])))]})}var Ie=e=>e.map(e=>e.type===`text`&&e.containerId&&typeof e.originalText==`string`?{...e,text:e.originalText}:e),Le=200,Re=1e3,Q=e=>e,ze=Math.random().toString(36).slice(2),Be={file:{version:1,threads:[]},stale:[],orphans:[]},Ve=(e,t)=>{let{batch:n,standIns:r,frames:i}=Ae(e,t),{created:a,touched:o}=Pe(Q(b(n,{regenerateIds:!1})).map(t=>({...t,customData:e.find(e=>e.id===t.id)?.customData??t.customData})),r,t,i);return[...a,...o]};function $(e,t){let n=`whiteboard/${e}`,[r,i]=(0,A.useState)(null),[a,o]=(0,A.useState)(null),[s,c]=(0,A.useState)(Be),l=(0,A.useRef)(null),u=(0,A.useRef)(new Map),d=(0,A.useRef)([]),f=(0,A.useRef)(new Set),p=(0,A.useRef)(``),m=(0,A.useRef)({}),h=(0,A.useRef)(t);h.current=t;let g=(0,A.useRef)(()=>void 0),v=(0,A.useCallback)(()=>{let e=l.current;if(!e)return;let t=Q(e.getSceneElementsIncludingDeleted()),r=Fe(t,Q(C(Ie(t),null,{repairBindings:!0,refreshDimensions:!0})));if(!r.length)return;q(u.current,r);let i=new Map(r.map(e=>[e.id,e]));e.updateScene({elements:t.map(e=>i.get(e.id)??e)}),g.current({type:`whiteboard-update`,artifact:n,elements:r,completion:!0})},[n]),y=(0,A.useCallback)(e=>{let t=Ve(e,Q(l.current?.getSceneElementsIncludingDeleted()??d.current));q(u.current,t);let r=l.current;r&&r.updateScene({elements:S(r.getSceneElementsIncludingDeleted(),t,r.getAppState())}),g.current({type:`whiteboard-update`,artifact:n,elements:t,completion:!0}),v()},[n,v]),b=(0,A.useCallback)(e=>{let t=e.filter(G),n=e.filter(e=>!G(e));q(u.current,n);let r=l.current;r&&n.length&&r.updateScene({elements:S(r.getSceneElementsIncludingDeleted(),n,r.getAppState())}),t.length?y(t):n.length&&v()},[y,v]),{live:w,send:T}=_(e=>{if(e.type===`whiteboard-comments`&&e.artifact===n)c({file:e.comments,stale:e.stale,orphans:e.orphans});else if(e.type===`whiteboard-update`&&e.artifact===n){if(e.files){for(let t of Object.keys(e.files))f.current.add(t);l.current?.addFiles(Object.values(e.files))}b(e.elements),e.agent&&h.current?.(e.agent,e.elements)}});g.current=T,(0,A.useEffect)(()=>{let t=!1;return fetch(O(`/api/whiteboard/${e}/scene`),{cache:`no-store`}).then(e=>e.ok?e.json():null).then(e=>{if(t||!e)return;let r=e.scene.elements.filter(G),a=e.scene.elements.filter(e=>!G(e)),s=r.length?Ve(r,a):[],l=new Map(s.map(e=>[e.id,e])),d=[...a.map(e=>l.get(e.id)??e),...s.filter(e=>!a.some(t=>t.id===e.id))];q(u.current,d),f.current=new Set(Object.keys(e.scene.files??{})),i({...e.scene,elements:d}),s.length&&g.current({type:`whiteboard-update`,artifact:n,elements:s,completion:!0}),o(e.problem),e.comments&&c({file:e.comments,stale:e.stale??[],orphans:e.orphans??[]})}),()=>{t=!0,clearTimeout(m.current.send),clearTimeout(m.current.report)}},[e]);let E=(0,A.useCallback)(async()=>{let t=l.current,n=d.current,r=we(n);if(await fetch(O(`/api/whiteboard/${e}/geometry`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(r)}),!t)return;let i=await x({elements:n.filter(e=>!e.isDeleted),appState:t.getAppState(),files:t.getFiles(),mimeType:`image/png`});await fetch(O(`/api/whiteboard/${e}/render?version=${r.sceneVersion}`),{method:`POST`,headers:{"Content-Type":`image/png`},body:i})},[e]),ee=(0,A.useCallback)((e,t)=>{d.current=Q(e),clearTimeout(m.current.send),m.current.send=setTimeout(()=>{let e=Ce(u.current,d.current);if(!e.length)return;let t=l.current?.getFiles()??{},r=Object.fromEntries(e.map(e=>e.fileId).filter(e=>typeof e==`string`&&!f.current.has(e)&&e in t).map(e=>[e,t[e]]));for(let e of Object.keys(r))f.current.add(e);T({type:`whiteboard-update`,artifact:n,elements:e,...Object.keys(r).length?{files:r}:{}})},Le),clearTimeout(m.current.report),m.current.report=setTimeout(()=>void E(),Re);let r=Object.keys(t.selectedElementIds??{}).filter(e=>t.selectedElementIds[e]),i=r.join(`,`);if(i===p.current)return;p.current=i;let a=new Map(d.current.map(e=>[e.id,e])),o=new Map(d.current.filter(e=>e.containerId&&typeof e.text==`string`).map(e=>[e.containerId,e.text]));T({type:`selection`,artifact:n,tab:ze,human:!0,selected:r.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:Se(t).author??null}]:[]})})},[n,E,T]),D=(0,A.useCallback)(e=>{l.current=e;let t=Q(e.getSceneElementsIncludingDeleted()).filter(G);t.length&&y(t),document.fonts?.ready.then(v)},[y,v]);return(0,A.useEffect)(()=>{let e=document.fonts;if(e)return e.addEventListener(`loadingdone`,v),()=>e.removeEventListener(`loadingdone`,v)},[v]),{scene:r,problem:a,live:w,onChange:ee,setApi:D,api:l,report:E,send:T,comments:s,comment:(0,A.useCallback)(async t=>{let n=await fetch(O(`/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&&c({file:r.comments,stale:r.stale??[],orphans:r.orphans??[]}),!0},[e]),elements:(0,A.useCallback)(()=>d.current,[])}}var He=(e,t)=>e.scrollX===t.scrollX&&e.scrollY===t.scrollY&&e.zoom===t.zoom;function Ue({id:e}){let t=$(e,()=>{}),[r,i]=(0,A.useState)(!1),[a,o]=(0,A.useState)({scrollX:0,scrollY:0,zoom:1}),s=t.comments.file.threads.filter(e=>e.status===`open`).length;return(0,R.jsxs)(xe,{id:e,scene:t.scene,setApi:t.setApi,threads:s,onView:e=>{He(e,a)||o(e)},children:[r&&(0,R.jsx)(B,{commenting:!1,comments:t.comments,elements:t.elements,view:a,onDone:()=>{},onOp:t.comment}),(0,R.jsx)(`button`,{"data-phone-comments":!0,"aria-label":n(`whiteboard.tools.comment`),"aria-pressed":r,type:`button`,onClick:()=>i(e=>!e),className:`x10l6tqk xn5hqff xn0vg7t xrvj5dj x1ku5rj1 x187nhsf xn3w4p2 xc342km x13pz1uv x7grq7f x8r4el6 x1fptykp x1n327nk`,children:(0,R.jsx)(g,{size:18})})]})}var We=[`#1e1e1e`,`#e03131`,`#2f9e44`,`#1971c2`,`#f08c00`],Ge=[`#ffec99`,`#ffc9c9`,`#b2f2bb`,`#a5d8ff`,`transparent`],Ke=[[`S`,16],[`M`,20],[`L`,28]],qe=[1,2,4],Je=[100,60,30];function Ye({x:e,y:t,selected:r,onApply:i,onWidth:a,trailing:o,compact:s=!1}){let[c,l]=(0,A.useState)(!1),u=r[0],d=u?.strokeColor,f=u?.backgroundColor,m=r.find(e=>typeof e.fontSize==`number`)?.fontSize;return(0,R.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,R.jsx)(`span`,{className:`x1xijbu4 x1j6dyjg xddlp02`,children:n(`whiteboard.stroke`)}),We.map(e=>(0,R.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,R.jsx)(`span`,{className:`x1i1rx1s xmix8c7 xjgtzcg xh6qj2i`}),!s&&(0,R.jsx)(`span`,{className:`x1xijbu4 x1j6dyjg xddlp02`,children:n(`whiteboard.fill`)}),Ge.map(e=>(0,R.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,R.jsx)(`span`,{className:`x1i1rx1s xmix8c7 xjgtzcg xh6qj2i`}),Ke.map(([e,t])=>(0,R.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`}}[m===t|0],children:e},e)),(0,R.jsx)(`span`,{className:`x1i1rx1s xmix8c7 xjgtzcg xh6qj2i`}),(0,R.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,R.jsx)(p,{size:16})}),c&&(0,R.jsxs)(`div`,{className:`x10l6tqk xtirvkn x3m8u43 x78zum5 x6s0dn4 x195vfkc x1ruevkc x12ilycc xmkeg23 x1y0btm7 x12xov25 x1q4ynmn x1cqdj14`,children:[(0,R.jsx)(`span`,{className:`x1xijbu4 x1j6dyjg xddlp02`,children:n(`whiteboard.strokeWidth`)}),qe.map(e=>(0,R.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,R.jsx)(`span`,{className:`x1i1rx1s xmix8c7 xjgtzcg xh6qj2i`}),(0,R.jsx)(`span`,{className:`x1xijbu4 x1j6dyjg xddlp02`,children:n(`whiteboard.opacity`)}),Je.map(e=>(0,R.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 Xe=`#ffec99`,Ze=[{key:`selection`,icon:l,shortcut:`V`,group:`move`},{key:`hand`,icon:c,shortcut:`H`,group:`move`},{key:`rectangle`,icon:m,shortcut:`R`,group:`draw`},{key:`ellipse`,icon:o,shortcut:`O`,group:`draw`},{key:`arrow`,icon:ae,shortcut:`A`,group:`draw`},{key:`text`,icon:u,shortcut:`T`,group:`draw`},{key:`sticky`,icon:ce,shortcut:`S`,group:`draw`},{key:`freedraw`,icon:h,shortcut:`P`,group:`draw`},{key:`frame`,icon:f,shortcut:`F`,group:`draw`},{key:`comment`,icon:s,shortcut:`C`,group:`talk`}],Qe=(e,t,n)=>({type:`rectangle`,x:e,y:t,width:240,height:120,backgroundColor:Xe,fillStyle:`solid`,strokeColor:`#1e1e1e`,label:{text:n}}),$e=2e3,et=1e4,tt={at:0,event:null},nt=(e,t,n)=>({at:n,event:t});function rt(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 it(){let[e,t]=(0,A.useState)(tt),[n,r]=(0,A.useState)(()=>Date.now());return(0,A.useEffect)(()=>{if(!e.event)return;let t=()=>r(Date.now()),n=setTimeout(t,Math.max(0,e.at+$e-Date.now())),i=setTimeout(t,Math.max(0,e.at+et-Date.now()));return()=>{clearTimeout(n),clearTimeout(i)}},[e]),{visible:rt(e,n),record:e=>{let n=Date.now();t(t=>nt(t,e,n)),r(n)}}}var at=.8;function ot(e,t){let n=(0,A.useMemo)(()=>te(),[]),[r,i]=(0,A.useState)({}),[a,o]=(0,A.useState)(`Agent`),[s,c]=(0,A.useState)(null),[l,u]=(0,A.useState)(!1),d=(0,A.useRef)(null),f=(0,A.useRef)(null);(0,A.useEffect)(()=>{let t=!1,n=()=>fetch(O(`/api/artifacts/whiteboard/${e}`),{cache:`no-store`}).then(async e=>e.ok?await e.json():null).catch(()=>null).then(e=>{!t&&e&&(e.backlinks&&i(e.backlinks),typeof e.agent==`string`&&e.agent&&o(e.agent))});n();let r=v(t=>{t.type===`change`&&t.artifact===`whiteboard/${e}`&&n()});return()=>{t=!0,r()}},[e]);let p=()=>{let e=t.current,n=d.current;if(!n||!e)return;let r=e.getSceneElements();if(!r.length)return;d.current=null;let i=n.frame?r.filter(e=>e.id===n.frame):r;i.length&&(e.scrollToContent(i,{fitToViewport:!0,viewportZoomFactor:at,animate:!0}),c(n.frame))},m=(0,A.useRef)(p);return m.current=p,(0,A.useEffect)(()=>{if(!n)return;let e=ne(e=>{e.kind===`chrome`&&u(e.hosted),e.kind===`focus`&&(d.current={frame:e.frame??null},m.current())});return D({kind:`ready`}),e},[n]),{split:n,agent:a,docked:l,focus:s,flush:p,count:s?r[s]?.length??0:0,onSelect:e=>{if(!n)return;let t=e.length===1&&e[0].type===`frame`?e[0].id:null;e.length&&t!==s&&c(null),t!==f.current&&(f.current=t,t&&D({kind:`select`,key:t}))}}}function st({id:e,active:r,onTool:i,zoom:a,comments:o,agentNotice:s,trailing:c,docked:l=!1,readOnly:u=!1}){let d=u?Ze.filter(e=>e.group!==`draw`):Ze;return(0,R.jsxs)(R.Fragment,{children:[!l&&(0,R.jsxs)(`div`,{"data-chrome":!0,...t(L.bar,L.left),children:[(0,R.jsxs)(`span`,{...t(L.crumb),children:[`whiteboard / `,(0,R.jsx)(`span`,{...t(L.crumbId),children:e})]}),s,d.map((e,a)=>{let o=e.icon,s=n(`whiteboard.tools.${e.key}`),c=a===0||e.group!==d[a-1].group;return(0,R.jsxs)(`span`,{style:{display:`contents`},children:[c&&(0,R.jsx)(`span`,{...t(L.divider)}),(0,R.jsx)(`button`,{"aria-label":s,"aria-pressed":r===e.key,"data-tool":e.key,title:s,type:`button`,onClick:()=>i(e.key),...t(L.tool,r===e.key&&L.toolOn),children:(0,R.jsx)(o,{size:18,strokeWidth:1.75})})]},e.key)})]}),(0,R.jsxs)(`div`,{"data-chrome":!0,...t(L.bar,L.right),children:[l&&s,(0,R.jsxs)(`span`,{...t(L.zoom),children:[Math.round(a*100),`%`]}),(0,R.jsx)(`span`,{...t(L.divider)}),(0,R.jsxs)(`span`,{...t(L.count),children:[(0,R.jsx)(g,{size:15}),o]}),c]})]})}window.EXCALIDRAW_ASSET_PATH=`/`;var ct={canvasActions:{changeViewBackgroundColor:!1,clearCanvas:!1,export:!1,loadScene:!1,saveAsImage:!1,saveToActiveFile:!1,toggleTheme:!1},tools:{image:!1}},lt=700,ut=e=>e.map(e=>`${e.id}:${e.version??0}`).join(`,`);function dt({id:e}){return re(T(`(max-width: 640px)`))?(0,R.jsx)(Ue,{id:e}):(0,R.jsx)(ft,{id:e})}function ft({id:e}){let r=it(),i=$(e,r.record),a=ot(e,i.api),o=W(),[s,c]=(0,A.useState)(`selection`),[l,u]=(0,A.useState)({scrollX:0,scrollY:0,zoom:1}),[d,f]=(0,A.useState)({width:1280,height:800}),[p,m]=(0,A.useState)([]),[h,g]=(0,A.useState)(void 0),[_,v]=(0,A.useState)(!1),x=e=>{let t=i.api.current;if(c(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=b([Qe(r,i,n(`whiteboard.sticky`))]);t.updateScene({elements:[...t.getSceneElementsIncludingDeleted(),...a],appState:{selectedElementIds:{[a[0].id]:!0}}}),c(`selection`)}else t.setActiveTool({type:e})}},S=(e,t)=>{i.onChange(e,t),a.flush();let n={scrollX:t.scrollX,scrollY:t.scrollY,zoom:t.zoom.value};(n.scrollX!==l.scrollX||n.scrollY!==l.scrollY||n.zoom!==l.zoom)&&u(n),(t.width!==d.width||t.height!==d.height)&&f({width:t.width,height:t.height});let r=Object.keys(t.selectedElementIds??{}).filter(e=>t.selectedElementIds[e]),o=e.filter(e=>r.includes(e.id));ut(o)!==ut(p)&&(m(o),o.length||v(!1),a.onSelect(o))},C=e=>{let t=i.api.current;if(!t)return;let n=new Set(p.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=F(p,p.map(e=>e.id)),T=w&&{...P(w,l),w:w.w*l.zoom,h:w.h*l.zoom},E=T&&de(T,d,h);return(0,R.jsxs)(`div`,{...t(L.root),children:[i.scene?(0,R.jsx)(`div`,{"data-whiteboard-canvas":!0,"data-hide-native":`true`,...t(L.canvas),children:(0,R.jsx)(y,{UIOptions:ct,excalidrawAPI:i.setApi,theme:o?`dark`:`light`,initialData:{elements:i.scene.elements,appState:{...i.scene.appState,viewBackgroundColor:`#ffffff`},files:i.scene.files,scrollToContent:!0},onChange:S})}):(0,R.jsx)(`div`,{...t(L.loading),children:n(`whiteboard.loading`)}),i.problem&&(0,R.jsx)(`div`,{role:`alert`,...t(L.problem),children:n(`whiteboard.problem`,{problem:i.problem})}),E&&s!==`comment`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(Ye,{compact:d.width<lt,selected:p,x:E.props.x,y:E.props.y,trailing:(0,R.jsx)(he,{compact:d.width<lt,onClick:()=>v(!0)}),onApply:C,onWidth:e=>{e&&e!==h&&g(e)}}),_&&(0,R.jsx)(ge,{composer:E.composer,count:p.length,onClose:()=>v(!1),onSend:async e=>(await i.report(),i.comment(fe(p,e,n(`whiteboard.askDefault`))))})]}),(0,R.jsx)(B,{commenting:s===`comment`,comments:i.comments,elements:i.elements,view:l,onDone:()=>c(`selection`),onOp:i.comment}),(0,R.jsx)(ve,{count:a.count,elements:i.api.current?.getSceneElements()??[],frame:a.focus,view:l}),(0,R.jsx)(me,{agent:a.agent,cursor:r.visible.cursor,elements:i.api.current?.getSceneElements()??[],glow:r.visible.glow,view:l}),(0,R.jsx)(st,{active:s,agentNotice:(0,R.jsx)(pe,{count:r.visible.count}),comments:i.comments.file.threads.filter(e=>e.status===`open`).length,docked:a.docked,id:e,zoom:l.zoom,onTool:x})]})}export{dt as WhiteboardLayout};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{t}from"./react-B8SKf8RM.js";import{t as n}from"./jsx-runtime-DePvh3-m.js";import{a as r,i,t as a}from"./agentLook-DChk-5JQ.js";var o=2e4,s=16,c=24;function l(e,t){return t-e>=o}function u(e,t,n=s){return t?{x:e.x+Math.max(0,e.w-n),y:e.y+e.h+c}:{x:e.x+Math.min(64,e.w*.15),y:e.y+Math.min(80,e.h*.2)}}var d=e(t(),1),f=[`width`,`height`,`position`,`flex-grow`,`display`,`flex-direction`,`align-items`,`gap`,`padding`,`background-color`,`opacity`,`border-radius`,`border-style`,`font-size`,`color`,`box-shadow`],p=`#0D99FF`,m=`M6.2 3.6C5 2.7 3.4 3.6 3.6 5.1L6 22.7C6.2 24.3 8.2 24.8 9.1 23.5L13 18.3C13.4 17.8 14 17.5 14.6 17.5L21.1 17.3C22.7 17.2 23.4 15.2 22.2 14.3Z`,h=`M13 3a9 9 0 0 1 0 18H4.5A1.5 1.5 0 0 1 3 19.5V13A10 10 0 0 1 13 3z`,g=(e,t,n)=>`url("data:image/svg+xml,${encodeURIComponent(e)}") ${t}, ${n}`,_=g(`<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 28 28'><path d='${m}' fill='none' stroke='white' stroke-width='4' stroke-linejoin='round'/><path d='${m}' fill='${p}'/></svg>`,`3 3`,`default`),v=g(`<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path d='${h}' fill='none' stroke='white' stroke-width='3' stroke-linejoin='round'/><path d='${h}' fill='${p}'/><path d='M13 8.2v7.6M9.2 12h7.6' stroke='white' stroke-width='2.2' stroke-linecap='round'/></svg>`,`3 21`,`crosshair`);function y(e,t){let n=e;for(;n.length>1;)n=n.slice(0,-1).map((e,r)=>({x:e.x+(n[r+1].x-e.x)*t,y:e.y+(n[r+1].y-e.y)*t}));return n[0]}function b(e,t,n){let r=t.x-e.x,i=t.y-e.y,a=-i,o=r;a<0&&(a=-a,o=-o);let s=(t,n)=>({x:e.x+r*t+a*n,y:e.y+i*t+o*n}),c=[e,s(.2,0),s(.3,-.5),s(1.55,1.25),s(1.35,.1),t];if(n!==void 0){let t=(n-135)*Math.PI/180,a=Math.hypot(r,i)*.2;c[1]={x:e.x+Math.cos(t)*a,y:e.y+Math.sin(t)*a}}let l=c.slice(0,-1).map((e,t)=>({x:5*(c[t+1].x-e.x),y:5*(c[t+1].y-e.y)})),u=[0],d=e;for(let e=1;e<=600;e++){let t=y(c,e/600);u.push(u[e-1]+Math.hypot(t.x-d.x,t.y-d.y)),d=t}let f=u[600];return{length:f,at(e){let t=Math.max(0,Math.min(1,e))*f,n=0,r=600;for(;r-n>1;){let e=n+r>>1;u[e]<t?n=e:r=e}let i=u[r]-u[n],a=(n+(i?(t-u[n])/i:0))/600,o=y(l,a);return{...y(c,a),angle:Math.atan2(o.y,o.x)*180/Math.PI+135}}}}var x=e=>Math.max(0,Math.min(1,e)),S=e=>e*e*(3-2*e);function C(e,t,n,r,i){let a=x(n),o=t.x-e.x,s=t.y-e.y,c=S(a),l=S(x((a-.11)/.89)),u=o*r*(c-l),d=s*r*(c-l),f=Math.min(1,12/(Math.hypot(u,d)||1)),p=1-S(x(a*4)),m=u*f+(i?.pullX??0)*p,h=d*f+(i?.pullY??0)*p,g=Math.min(1,12/(Math.hypot(m,h)||1)),_=a*Math.max(2,Math.ceil(Math.hypot(o,s)*r/36))%1;return{x:e.x+o*c-u*f/r,y:e.y+s*c-d*f/r,angle:0,pullX:m*g,pullY:h*g,lift:a<1?Math.sin(_*Math.PI)*1.8+(i?.lift??0)*p:0,lean:-Math.sign(o)*Math.sin(a*Math.PI)*8+(i?.lean??0)*p,step:_,moving:a>0&&a<1}}var w=n(),T=`M2 0h12v2h-12zM2 2h2v2h-2zM5 2h6v2h-6zM12 2h2v2h-2zM0 4h16v2h-16zM2 6h12v2h-12z`,E=`M4 2h1v2h-1zM11 2h1v2h-1z`,D=`M3 8h1v2h-1zM5 8h1v2h-1zM10 8h1v2h-1zM12 8h1v2h-1z`;function O({fill:e,legs:t}){return(0,w.jsxs)(`svg`,{"aria-hidden":`true`,height:`20`,viewBox:`0 0 16 10`,width:`32`,className:`x1lliihq x1rea2x4 xqlk7fu x1so62im x1gh0xk6 x1pao9z2 x1vtvzbl x4hg4is xa4qsjk x1aquc0h`,children:[(0,w.jsx)(`path`,{d:T,fill:e}),(0,w.jsx)(`path`,{d:D,fill:e,ref:t}),(0,w.jsx)(`path`,{d:E,fill:i.black,className:`x1764fhq x1g0ag68 x7w6qa3 x176w33q xa4qsjk x1aquc0h`})]})}var k=`M2 8h1v2h-1zM5 8h1v1h-1zM10 8h1v2h-1zM13 8h1v1h-1z`,A=`M3 8h1v1h-1zM6 8h1v2h-1zM9 8h1v1h-1zM12 8h1v2h-1z`;function j({fill:e,ref:t}){let n=(0,d.useRef)(null),r=(0,d.useRef)(null),i=(0,d.useRef)(null),a=(0,d.useRef)(null),o=(0,d.useRef)(null);return(0,d.useImperativeHandle)(t,()=>({paint({pullX:e,pullY:t,lift:s,lean:c,step:l,moving:u}){n.current&&(n.current.style.transform=`translate(${e}px, ${t-s}px) skewX(${c}deg)`);let d=31+e,f=8+t-s,p=`M12.5 14.5 Q${d-7} ${f+8} ${d} ${f}`;i.current?.setAttribute(`d`,p),a.current?.setAttribute(`d`,p),r.current?.setAttribute(`d`,u?l<.5?k:A:D),o.current&&(o.current.style.transform=`translate(${e}px, ${t}px)`)}}),[]),(0,w.jsxs)(`div`,{"aria-hidden":`true`,style:{color:e},children:[(0,w.jsxs)(`svg`,{viewBox:`-40 -40 140 120`,className:`x10l6tqk xar8odu x1toy1gi xifkd7f x1wkxgih x1rea2x4`,children:[(0,w.jsx)(`path`,{d:`M12.5 14.5 Q24 16 31 8`,ref:a,className:`xbh8q5q x1nvyj2c x1q82h7f x1owpc8m x1f6yumg`}),(0,w.jsx)(`path`,{d:`M12.5 14.5 Q24 16 31 8`,ref:i,className:`xbh8q5q x73je2i x1ebhgje x1owpc8m x1f6yumg`}),(0,w.jsx)(`rect`,{height:`4`,rx:`.6`,width:`4`,x:`10.5`,y:`12.5`,className:`x117rol3 x1nvyj2c x17z8gs`})]}),(0,w.jsx)(`div`,{ref:o,className:`x10l6tqk x1l0fap9 xmhk92p xvy4d1p xuoj239 x16rqkct xf6rkd6`}),(0,w.jsx)(`div`,{"data-mascot":`clawd`,ref:n,className:`x10l6tqk xbnrxzc x1pdr0v7 xqlk7fu x1so62im`,children:(0,w.jsx)(O,{fill:e,legs:r})})]})}function M({x:e,y:t,zoom:n,agent:o,title:s}){let c=a(o),l=c.mascot===`clawd`,u=c.icon?r[c.icon]:null,f=(0,d.useRef)(null),p=(0,d.useRef)(null),h=(0,d.useRef)(null),g=(0,d.useRef)(null),_=(0,d.useRef)(null),v=(0,d.useRef)(!1),y=(0,d.useRef)(n),x=e=>`translate(${e.x}px, ${e.y}px) scale(${1/y.current})`,S=e=>`translate(-3.43px, -3.43px) rotate(${e}deg)`,T=e=>{_.current=e,f.current&&(f.current.style.transform=x(e)),p.current&&(p.current.style.transform=S(e.angle))},E=e=>{g.current=e,h.current?.paint(e)};return(0,d.useLayoutEffect)(()=>{y.current=n,_.current&&T(_.current)}),(0,d.useLayoutEffect)(()=>{let n=matchMedia(`(prefers-reduced-motion: reduce)`),r=_.current,i=0,a=()=>{cancelAnimationFrame(i),i=0,v.current=!1,T({x:e,y:t,angle:l?0:_.current?.angle??0}),E({pullX:0,pullY:0,lift:0,lean:0,step:0,moving:!1})};!r||n.matches||Math.hypot(e-r.x,t-r.y)*y.current<2?a():(v.current=!0,i=requestAnimationFrame(l?(n=>{let r=Math.hypot(e-n.x,t-n.y)*y.current,a=Math.max(500,Math.min(1200,r*3.3)),o=g.current??void 0,s=performance.now(),c=r=>{let l=Math.min(1,Math.max(0,(r-s)/a)),u=C(n,{x:e,y:t},l,y.current,o);v.current=l<1,T({x:u.x,y:u.y,angle:0}),E(u),i=l<1?requestAnimationFrame(c):0};return c})(r):(n=>{let r=b(n,{x:e,y:t},v.current?n.angle:void 0),a=Math.min(1800,900+r.length*y.current*1.2),o=performance.now(),s=o,c=e=>{let t=Math.min(1,Math.max(0,(e-o)/a)),n=r.at(t**3*(t*(t*6-15)+10)),l=_.current.angle;n.angle=l+(((n.angle-l)%360+540)%360-180)*(1-Math.exp(-(e-s)/80)),s=e,v.current=t<1,T(n),i=t<1?requestAnimationFrame(c):0};return c})(r)));let o=()=>{n.matches&&a()};return n.addEventListener(`change`,o),()=>{cancelAnimationFrame(i),n.removeEventListener(`change`,o)}},[e,t,l]),(0,w.jsxs)(`div`,{"aria-label":`${o} last worked on ${s}`,ref:f,role:`status`,className:`x10l6tqk xu96u03 x13vifvy x1u8a7rm x47corl x1hj3fc7`,style:{transform:`translate(${e}px, ${t}px) scale(${1/n})`},children:[(0,w.jsxs)(`svg`,{"aria-hidden":`true`,"data-agent-arrow":``,height:`24`,ref:p,viewBox:`0 0 28 28`,width:`24`,className:`x1lliihq xqqlr9g x1gtfylx`,style:{transform:S(0)},children:[(0,w.jsx)(`path`,{d:m,fill:`none`,stroke:c.pale?i.ink:i.white,strokeLinejoin:`round`,strokeWidth:`4`}),(0,w.jsx)(`path`,{d:m,fill:c.color})]}),l&&(0,w.jsx)(j,{fill:c.color,ref:h}),!l&&(0,w.jsxs)(`div`,{...{0:{className:`x10l6tqk x1trqr8e xv4lvxq x78zum5 x6s0dn4 x1jnr06f x1w2h69v xaso8d8 x1bjonze xdocmp1 xgs1500 x828b17 x1bqy6mi x1j6dyjg x1s688f x152skdk xuxw1ft xmj57et`},1:{className:`x10l6tqk x1trqr8e xv4lvxq x78zum5 x6s0dn4 x1jnr06f x1w2h69v xaso8d8 x1bjonze xdocmp1 xgs1500 x828b17 x1bqy6mi x1j6dyjg x1s688f x152skdk xuxw1ft xpm4iv0`}}[!!c.pale|0],style:{backgroundColor:c.color,color:c.darkInk?i.ink:i.white},children:[u&&(0,w.jsx)(u,{"aria-hidden":`true`,size:12}),(0,w.jsx)(`span`,{children:o})]})]})}export{o as a,_ as i,v as n,l as o,f as r,u as s,M as t};
1
+ import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{t}from"./react-B8SKf8RM.js";import{t as n}from"./jsx-runtime-DePvh3-m.js";import{a as r,i,t as a}from"./agentLook-BN9H4tT0.js";var o=2e4,s=16,c=24;function l(e,t){return t-e>=o}function u(e,t,n=s){return t?{x:e.x+Math.max(0,e.w-n),y:e.y+e.h+c}:{x:e.x+Math.min(64,e.w*.15),y:e.y+Math.min(80,e.h*.2)}}var d=e(t(),1),f=[`width`,`height`,`position`,`flex-grow`,`display`,`flex-direction`,`align-items`,`gap`,`padding`,`background-color`,`opacity`,`border-radius`,`border-style`,`font-size`,`color`,`box-shadow`],p=`#0D99FF`,m=`M6.2 3.6C5 2.7 3.4 3.6 3.6 5.1L6 22.7C6.2 24.3 8.2 24.8 9.1 23.5L13 18.3C13.4 17.8 14 17.5 14.6 17.5L21.1 17.3C22.7 17.2 23.4 15.2 22.2 14.3Z`,h=`M13 3a9 9 0 0 1 0 18H4.5A1.5 1.5 0 0 1 3 19.5V13A10 10 0 0 1 13 3z`,g=(e,t,n)=>`url("data:image/svg+xml,${encodeURIComponent(e)}") ${t}, ${n}`,_=g(`<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 28 28'><path d='${m}' fill='none' stroke='white' stroke-width='4' stroke-linejoin='round'/><path d='${m}' fill='${p}'/></svg>`,`3 3`,`default`),v=g(`<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><path d='${h}' fill='none' stroke='white' stroke-width='3' stroke-linejoin='round'/><path d='${h}' fill='${p}'/><path d='M13 8.2v7.6M9.2 12h7.6' stroke='white' stroke-width='2.2' stroke-linecap='round'/></svg>`,`3 21`,`crosshair`);function y(e,t){let n=e;for(;n.length>1;)n=n.slice(0,-1).map((e,r)=>({x:e.x+(n[r+1].x-e.x)*t,y:e.y+(n[r+1].y-e.y)*t}));return n[0]}function b(e,t,n){let r=t.x-e.x,i=t.y-e.y,a=-i,o=r;a<0&&(a=-a,o=-o);let s=(t,n)=>({x:e.x+r*t+a*n,y:e.y+i*t+o*n}),c=[e,s(.2,0),s(.3,-.5),s(1.55,1.25),s(1.35,.1),t];if(n!==void 0){let t=(n-135)*Math.PI/180,a=Math.hypot(r,i)*.2;c[1]={x:e.x+Math.cos(t)*a,y:e.y+Math.sin(t)*a}}let l=c.slice(0,-1).map((e,t)=>({x:5*(c[t+1].x-e.x),y:5*(c[t+1].y-e.y)})),u=[0],d=e;for(let e=1;e<=600;e++){let t=y(c,e/600);u.push(u[e-1]+Math.hypot(t.x-d.x,t.y-d.y)),d=t}let f=u[600];return{length:f,at(e){let t=Math.max(0,Math.min(1,e))*f,n=0,r=600;for(;r-n>1;){let e=n+r>>1;u[e]<t?n=e:r=e}let i=u[r]-u[n],a=(n+(i?(t-u[n])/i:0))/600,o=y(l,a);return{...y(c,a),angle:Math.atan2(o.y,o.x)*180/Math.PI+135}}}}var x=e=>Math.max(0,Math.min(1,e)),S=e=>e*e*(3-2*e);function C(e,t,n,r,i){let a=x(n),o=t.x-e.x,s=t.y-e.y,c=S(a),l=S(x((a-.11)/.89)),u=o*r*(c-l),d=s*r*(c-l),f=Math.min(1,12/(Math.hypot(u,d)||1)),p=1-S(x(a*4)),m=u*f+(i?.pullX??0)*p,h=d*f+(i?.pullY??0)*p,g=Math.min(1,12/(Math.hypot(m,h)||1)),_=a*Math.max(2,Math.ceil(Math.hypot(o,s)*r/36))%1;return{x:e.x+o*c-u*f/r,y:e.y+s*c-d*f/r,angle:0,pullX:m*g,pullY:h*g,lift:a<1?Math.sin(_*Math.PI)*1.8+(i?.lift??0)*p:0,lean:-Math.sign(o)*Math.sin(a*Math.PI)*8+(i?.lean??0)*p,step:_,moving:a>0&&a<1}}var w=n(),T=`M2 0h12v2h-12zM2 2h2v2h-2zM5 2h6v2h-6zM12 2h2v2h-2zM0 4h16v2h-16zM2 6h12v2h-12z`,E=`M4 2h1v2h-1zM11 2h1v2h-1z`,D=`M3 8h1v2h-1zM5 8h1v2h-1zM10 8h1v2h-1zM12 8h1v2h-1z`;function O({fill:e,legs:t}){return(0,w.jsxs)(`svg`,{"aria-hidden":`true`,height:`20`,viewBox:`0 0 16 10`,width:`32`,className:`x1lliihq x1rea2x4 xqlk7fu x1so62im x1gh0xk6 x1pao9z2 x1vtvzbl x4hg4is xa4qsjk x1aquc0h`,children:[(0,w.jsx)(`path`,{d:T,fill:e}),(0,w.jsx)(`path`,{d:D,fill:e,ref:t}),(0,w.jsx)(`path`,{d:E,fill:i.black,className:`x1764fhq x1g0ag68 x7w6qa3 x176w33q xa4qsjk x1aquc0h`})]})}var k=`M2 8h1v2h-1zM5 8h1v1h-1zM10 8h1v2h-1zM13 8h1v1h-1z`,A=`M3 8h1v1h-1zM6 8h1v2h-1zM9 8h1v1h-1zM12 8h1v2h-1z`;function j({fill:e,ref:t}){let n=(0,d.useRef)(null),r=(0,d.useRef)(null),i=(0,d.useRef)(null),a=(0,d.useRef)(null),o=(0,d.useRef)(null);return(0,d.useImperativeHandle)(t,()=>({paint({pullX:e,pullY:t,lift:s,lean:c,step:l,moving:u}){n.current&&(n.current.style.transform=`translate(${e}px, ${t-s}px) skewX(${c}deg)`);let d=31+e,f=8+t-s,p=`M12.5 14.5 Q${d-7} ${f+8} ${d} ${f}`;i.current?.setAttribute(`d`,p),a.current?.setAttribute(`d`,p),r.current?.setAttribute(`d`,u?l<.5?k:A:D),o.current&&(o.current.style.transform=`translate(${e}px, ${t}px)`)}}),[]),(0,w.jsxs)(`div`,{"aria-hidden":`true`,style:{color:e},children:[(0,w.jsxs)(`svg`,{viewBox:`-40 -40 140 120`,className:`x10l6tqk xar8odu x1toy1gi xifkd7f x1wkxgih x1rea2x4`,children:[(0,w.jsx)(`path`,{d:`M12.5 14.5 Q24 16 31 8`,ref:a,className:`xbh8q5q x1nvyj2c x1q82h7f x1owpc8m x1f6yumg`}),(0,w.jsx)(`path`,{d:`M12.5 14.5 Q24 16 31 8`,ref:i,className:`xbh8q5q x73je2i x1ebhgje x1owpc8m x1f6yumg`}),(0,w.jsx)(`rect`,{height:`4`,rx:`.6`,width:`4`,x:`10.5`,y:`12.5`,className:`x117rol3 x1nvyj2c x17z8gs`})]}),(0,w.jsx)(`div`,{ref:o,className:`x10l6tqk x1l0fap9 xmhk92p xvy4d1p xuoj239 x16rqkct xf6rkd6`}),(0,w.jsx)(`div`,{"data-mascot":`clawd`,ref:n,className:`x10l6tqk xbnrxzc x1pdr0v7 xqlk7fu x1so62im`,children:(0,w.jsx)(O,{fill:e,legs:r})})]})}function M({x:e,y:t,zoom:n,agent:o,title:s}){let c=a(o),l=c.mascot===`clawd`,u=c.icon?r[c.icon]:null,f=(0,d.useRef)(null),p=(0,d.useRef)(null),h=(0,d.useRef)(null),g=(0,d.useRef)(null),_=(0,d.useRef)(null),v=(0,d.useRef)(!1),y=(0,d.useRef)(n),x=e=>`translate(${e.x}px, ${e.y}px) scale(${1/y.current})`,S=e=>`translate(-3.43px, -3.43px) rotate(${e}deg)`,T=e=>{_.current=e,f.current&&(f.current.style.transform=x(e)),p.current&&(p.current.style.transform=S(e.angle))},E=e=>{g.current=e,h.current?.paint(e)};return(0,d.useLayoutEffect)(()=>{y.current=n,_.current&&T(_.current)}),(0,d.useLayoutEffect)(()=>{let n=matchMedia(`(prefers-reduced-motion: reduce)`),r=_.current,i=0,a=()=>{cancelAnimationFrame(i),i=0,v.current=!1,T({x:e,y:t,angle:l?0:_.current?.angle??0}),E({pullX:0,pullY:0,lift:0,lean:0,step:0,moving:!1})};!r||n.matches||Math.hypot(e-r.x,t-r.y)*y.current<2?a():(v.current=!0,i=requestAnimationFrame(l?(n=>{let r=Math.hypot(e-n.x,t-n.y)*y.current,a=Math.max(500,Math.min(1200,r*3.3)),o=g.current??void 0,s=performance.now(),c=r=>{let l=Math.min(1,Math.max(0,(r-s)/a)),u=C(n,{x:e,y:t},l,y.current,o);v.current=l<1,T({x:u.x,y:u.y,angle:0}),E(u),i=l<1?requestAnimationFrame(c):0};return c})(r):(n=>{let r=b(n,{x:e,y:t},v.current?n.angle:void 0),a=Math.min(1800,900+r.length*y.current*1.2),o=performance.now(),s=o,c=e=>{let t=Math.min(1,Math.max(0,(e-o)/a)),n=r.at(t**3*(t*(t*6-15)+10)),l=_.current.angle;n.angle=l+(((n.angle-l)%360+540)%360-180)*(1-Math.exp(-(e-s)/80)),s=e,v.current=t<1,T(n),i=t<1?requestAnimationFrame(c):0};return c})(r)));let o=()=>{n.matches&&a()};return n.addEventListener(`change`,o),()=>{cancelAnimationFrame(i),n.removeEventListener(`change`,o)}},[e,t,l]),(0,w.jsxs)(`div`,{"aria-label":`${o} last worked on ${s}`,ref:f,role:`status`,className:`x10l6tqk xu96u03 x13vifvy x1u8a7rm x47corl x1hj3fc7`,style:{transform:`translate(${e}px, ${t}px) scale(${1/n})`},children:[(0,w.jsxs)(`svg`,{"aria-hidden":`true`,"data-agent-arrow":``,height:`24`,ref:p,viewBox:`0 0 28 28`,width:`24`,className:`x1lliihq xqqlr9g x1gtfylx`,style:{transform:S(0)},children:[(0,w.jsx)(`path`,{d:m,fill:`none`,stroke:c.pale?i.ink:i.white,strokeLinejoin:`round`,strokeWidth:`4`}),(0,w.jsx)(`path`,{d:m,fill:c.color})]}),l&&(0,w.jsx)(j,{fill:c.color,ref:h}),!l&&(0,w.jsxs)(`div`,{...{0:{className:`x10l6tqk x1trqr8e xv4lvxq x78zum5 x6s0dn4 x1jnr06f x1w2h69v xaso8d8 x1bjonze xdocmp1 xgs1500 x828b17 x1bqy6mi x1j6dyjg x1s688f x152skdk xuxw1ft xmj57et`},1:{className:`x10l6tqk x1trqr8e xv4lvxq x78zum5 x6s0dn4 x1jnr06f x1w2h69v xaso8d8 x1bjonze xdocmp1 xgs1500 x828b17 x1bqy6mi x1j6dyjg x1s688f x152skdk xuxw1ft xpm4iv0`}}[!!c.pale|0],style:{backgroundColor:c.color,color:c.darkInk?i.ink:i.white},children:[u&&(0,w.jsx)(u,{"aria-hidden":`true`,size:12}),(0,w.jsx)(`span`,{children:o})]})]})}export{o as a,_ as i,v as n,l as o,f as r,u as s,M as t};
@@ -1 +1 @@
1
- import{n as e}from"./src-KUZZYZBk.js";import{n as t}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import"./chunk-DU6HZSFF-C0xYyjET.js";import"./dist-CasPB9kH.js";import{m as n,t as r}from"./mermaid-parser.core-mEgLZmeQ.js";import{n as i,r as a,t as o}from"./chunk-SVP7TREG-Czn1xiek.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
+ import{n as e}from"./src-KUZZYZBk.js";import{n as t}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import"./chunk-DU6HZSFF-DoPGL8bE.js";import"./dist-4P-64F1_.js";import{m as n,t as r}from"./mermaid-parser.core-BzFGDqQA.js";import{n as i,r as a,t as o}from"./chunk-SVP7TREG-P5YP-c3S.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};