ryugi-artifacts 1.67.0 → 1.68.0

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 (336) hide show
  1. package/dist/cli.cjs +4 -4
  2. package/dist/server.cjs +311 -152
  3. package/dist/viewer/{AgentStatusPill-CkFOocLp.js → AgentStatusPill-BnKps9Zr.js} +1 -1
  4. package/dist/viewer/{ArtboardLayout-c2tN7qmA.js → ArtboardLayout-Cz1MWCu8.js} +4 -4
  5. package/dist/viewer/{ArtifactList-Ba_vsFps.js → ArtifactList-CCxCNWid.js} +1 -1
  6. package/dist/viewer/{AutoPublishPrompt-DBjUFJp0.js → AutoPublishPrompt-BrUfQWmW.js} +1 -1
  7. package/dist/viewer/{Avatar-CiprmZa8.js → Avatar-CBcHKq6_.js} +1 -1
  8. package/dist/viewer/{Avatar-C76h25SW.js → Avatar-ChKkUO4F.js} +1 -1
  9. package/dist/viewer/{BottomSheet-BN94WJR-.js → BottomSheet-ZdnjIGxe.js} +1 -1
  10. package/dist/viewer/{Canvas-BycJwc4p.js → Canvas-CqxEk0B7.js} +1 -1
  11. package/dist/viewer/{CompositeItem-DP4e-Lcw.js → CompositeItem-Dc1pE-Dd.js} +1 -1
  12. package/dist/viewer/DocumentLayout-B1bQT74s.js +2 -0
  13. package/dist/viewer/DocumentPage-DFTrEydU.js +4 -0
  14. package/dist/viewer/{DropdownMenu-4Ouduev6.js → DropdownMenu-MN8aSs-T.js} +1 -1
  15. package/dist/viewer/{HtmlLayout-Dwd8Iy0b.js → HtmlLayout-DhjuMVfU.js} +1 -1
  16. package/dist/viewer/{MenuSubmenuTrigger-BFgGHPek.js → MenuSubmenuTrigger-6b5C_OEY.js} +1 -1
  17. package/dist/viewer/{MenuTrigger-Dp816lqx.js → MenuTrigger-C80SSxV1.js} +1 -1
  18. package/dist/viewer/{PhoneArtboardBar-D1Ohbjxv.js → PhoneArtboardBar-Bzeyu7RL.js} +1 -1
  19. package/dist/viewer/{PhoneSheet-u7ImxAef.js → PhoneSheet-BqNn1A8k.js} +1 -1
  20. package/dist/viewer/{Popover-pOLZvL-K.js → Popover-Mq50eaGz.js} +1 -1
  21. package/dist/viewer/{PreviewLayout-CQyYo3HQ.js → PreviewLayout-CBXgXFHd.js} +2 -2
  22. package/dist/viewer/{Segmented-jrL3VjDO.js → Segmented-Dn3tMkJ1.js} +1 -1
  23. package/dist/viewer/{Select-YHMVx9FX.js → Select-B3iVUwhL.js} +1 -1
  24. package/dist/viewer/{SelectScrollUpArrow-xXX8JHOC.js → SelectScrollUpArrow-PZIGiE5i.js} +1 -1
  25. package/dist/viewer/{SettingsDialog-Dk2pmarN.js → SettingsDialog-Di1DIjuU.js} +1 -1
  26. package/dist/viewer/{SnapshotDocument-ve5bKPKM.js → SnapshotDocument-CZ9_zlbN.js} +1 -1
  27. package/dist/viewer/SplitShell-1kQWIUbB.js +1 -0
  28. package/dist/viewer/{ThreadView-B4kNB_AB.js → ThreadView-DhKDuMXE.js} +1 -1
  29. package/dist/viewer/TooltipPopup-DIfQd51a.js +1 -0
  30. package/dist/viewer/{VirtualizedEditor-D9Ivycdp-D8_HtwY3.js → VirtualizedEditor-D9Ivycdp-BS6qVQKi.js} +1 -1
  31. package/dist/viewer/{VirtualizedRenderer-C_d95FXi-DV00RbUh.js → VirtualizedRenderer-C_d95FXi-Cgx30lJW.js} +1 -1
  32. package/dist/viewer/{WarningsBadge-CaAGWi0B.js → WarningsBadge-BhvEtIPf.js} +1 -1
  33. package/dist/viewer/{WhiteboardLayout-C9yzQzlb.js → WhiteboardLayout-BLUnPC_j.js} +1 -1
  34. package/dist/viewer/{WritingCursor-DElcFC08.js → WritingCursor-D8-ImQmN.js} +1 -1
  35. package/dist/viewer/{abnfDiagram-VCTEODGH-BHNSlgBN.js → abnfDiagram-VCTEODGH-CAaQSsKr.js} +1 -1
  36. package/dist/viewer/{agentLook-BkD9GF0y.js → agentLook-GSv6M_4b.js} +1 -1
  37. package/dist/viewer/{anchor-C6f5HUUc.js → anchor-cpflnjH6.js} +1 -1
  38. package/dist/viewer/{ar-SA-G6X2FPQ2-kYFjvsjA.js → ar-SA-G6X2FPQ2-CRJustU_.js} +1 -1
  39. package/dist/viewer/{architecture-7GRP2DOG-Do0w0Nkr.js → architecture-7GRP2DOG-Df-BWMMn.js} +1 -1
  40. package/dist/viewer/{architectureDiagram-5GKGNRK7-Du27ms23.js → architectureDiagram-5GKGNRK7-slFJ5pNz.js} +1 -1
  41. package/dist/viewer/{az-AZ-76LH7QW2-BjFBhSZJ.js → az-AZ-76LH7QW2-BZXNMAjr.js} +1 -1
  42. package/dist/viewer/{bg-BG-XCXSNQG7-Ck_hluXV.js → bg-BG-XCXSNQG7-D942OHJ1.js} +1 -1
  43. package/dist/viewer/{blockDiagram-I7D4REHJ-ZAPqzK7M.js → blockDiagram-I7D4REHJ-D7tnOUmG.js} +1 -1
  44. package/dist/viewer/{bn-BD-2XOGV67Q-D8RL--QF.js → bn-BD-2XOGV67Q-CnUziB-N.js} +1 -1
  45. package/dist/viewer/{c4Diagram-7LVT6UL2-CpZ4wCIe.js → c4Diagram-7LVT6UL2-A90PS1Zn.js} +1 -1
  46. package/dist/viewer/{ca-ES-6MX7JW3Y-CmU7_qfi.js → ca-ES-6MX7JW3Y-fV3kI3by.js} +1 -1
  47. package/dist/viewer/channel-DpF2FNj7.js +1 -0
  48. package/dist/viewer/{channel-B15uf_mz.js → channel-Y8cPWVH2.js} +150 -150
  49. package/dist/viewer/{chunk-4HAMMTFA-4oEiNUVg.js → chunk-4HAMMTFA-Dtev5uNX.js} +1 -1
  50. package/dist/viewer/{chunk-75Z2AOVW-DG3lmbGz.js → chunk-75Z2AOVW-Br59Z0N6.js} +1 -1
  51. package/dist/viewer/{chunk-DU6HZSFF-Dv3KmGY3.js → chunk-DU6HZSFF-DTVWCdhx.js} +1 -1
  52. package/dist/viewer/{chunk-EIO257PC-DC6UJx10.js → chunk-EIO257PC-BJo1mhGf.js} +1 -1
  53. package/dist/viewer/{chunk-F27PBJKO-DtFqk0w0.js → chunk-F27PBJKO-CqXtkDh_.js} +1 -1
  54. package/dist/viewer/{chunk-GMAD6QVW-BK3CBpHU.js → chunk-GMAD6QVW-C_mtYAsp.js} +1 -1
  55. package/dist/viewer/{chunk-GVQU2GXP-CpsL6KWe.js → chunk-GVQU2GXP-Dnn5H2Ee.js} +1 -1
  56. package/dist/viewer/{chunk-IMKFNOWR-DqRCtwcS.js → chunk-IMKFNOWR-CBTdwY_-.js} +1 -1
  57. package/dist/viewer/{chunk-L3NEJ4N5-bcRPIfs5.js → chunk-L3NEJ4N5-RIzLHntK.js} +1 -1
  58. package/dist/viewer/{chunk-OSK3NFVY-BF2pXgrt.js → chunk-OSK3NFVY-CK41dOkH.js} +1 -1
  59. package/dist/viewer/{chunk-P2QGCYS3-qI3BJZiV.js → chunk-P2QGCYS3-BL4CYLWw.js} +1 -1
  60. package/dist/viewer/{chunk-POPQ4Y6H-D7_l0PbI.js → chunk-POPQ4Y6H-CJsQjBoH.js} +1 -1
  61. package/dist/viewer/{chunk-PWAF6VOD-aeOMJQRL.js → chunk-PWAF6VOD-DeuKxCvN.js} +1 -1
  62. package/dist/viewer/{chunk-SHT3W25Y-BT5Wvvpu.js → chunk-SHT3W25Y-1ctnl-w3.js} +1 -1
  63. package/dist/viewer/{chunk-SVP7TREG-HG6La_wJ.js → chunk-SVP7TREG-0tebC1pj.js} +1 -1
  64. package/dist/viewer/{chunk-TICWLB2K-DQpzLhAV.js → chunk-TICWLB2K-BxhvtMAu.js} +1 -1
  65. package/dist/viewer/classDiagram-ZZMXUADV-BCUwkMkD.js +1 -0
  66. package/dist/viewer/classDiagram-v2-VYDZK3BY-BCUwkMkD.js +1 -0
  67. package/dist/viewer/{cs-CZ-2BRQDIVT-ahJk7hMM.js → cs-CZ-2BRQDIVT-DKXyGqNH.js} +1 -1
  68. package/dist/viewer/{cynefin-OW5HDTMX-nLOUGSf6.js → cynefin-OW5HDTMX-BUe484ye.js} +1 -1
  69. package/dist/viewer/{cynefinDiagram-5FMLGOSQ-BO8dTCaE.js → cynefinDiagram-5FMLGOSQ-CWdVGsBk.js} +1 -1
  70. package/dist/viewer/{da-DK-5WZEPLOC-ClRScj-s.js → da-DK-5WZEPLOC-b4IEozFV.js} +1 -1
  71. package/dist/viewer/{dagre-GXQ25YYZ-DTS_PRYI.js → dagre-GXQ25YYZ-DCuEklTp.js} +1 -1
  72. package/dist/viewer/{de-DE-XR44H4JA-D7v9Ws-w.js → de-DE-XR44H4JA-C7sc34_X.js} +1 -1
  73. package/dist/viewer/{diagram-S7CK7UJ4-5ytAW4Ck.js → diagram-S7CK7UJ4-CsxaHH4I.js} +1 -1
  74. package/dist/viewer/{diagram-UQ7AKVKN-DYUYBUBB.js → diagram-UQ7AKVKN-Ct8242ZE.js} +1 -1
  75. package/dist/viewer/{diagram-VSXAHHWV-DeK669yc.js → diagram-VSXAHHWV-C1nroriz.js} +1 -1
  76. package/dist/viewer/{diagram-VX7I27RA-pvfOXaeo.js → diagram-VX7I27RA-DEWRSmDx.js} +1 -1
  77. package/dist/viewer/{diagram-Z3DM3KII-D1tl_QsD.js → diagram-Z3DM3KII-B1SxmMm9.js} +1 -1
  78. package/dist/viewer/{dist-BPIXPagN.js → dist-1xzhgjrK.js} +1 -1
  79. package/dist/viewer/{dist-CouAAeQX.js → dist-B0ahrRmN.js} +1 -1
  80. package/dist/viewer/{dist-1bnd_vgl.js → dist-B3kJb0_U.js} +1 -1
  81. package/dist/viewer/{dist-Bw9MgUwF.js → dist-B4M9sgR9.js} +1 -1
  82. package/dist/viewer/{dist-BFwe-f96.js → dist-B6-aAGQA.js} +1 -1
  83. package/dist/viewer/{dist-Ly85CnCY.js → dist-B9Rn0Zrs.js} +1 -1
  84. package/dist/viewer/{dist-DVSSZHwn.js → dist-C4zEBXjK.js} +1 -1
  85. package/dist/viewer/{dist-CDJ30uU2.js → dist-C8JtF2VW.js} +1 -1
  86. package/dist/viewer/{dist-CAsi2KZK.js → dist-CA2_d8WP.js} +1 -1
  87. package/dist/viewer/{dist-C_3pdJsj.js → dist-CBB6_G5_.js} +1 -1
  88. package/dist/viewer/{dist-xg9TzjpP.js → dist-CUWoav31.js} +1 -1
  89. package/dist/viewer/{dist-Ck5orTzJ.js → dist-CXasQug3.js} +1 -1
  90. package/dist/viewer/{dist-BYp2eXKg.js → dist-Cse2aOfa.js} +1 -1
  91. package/dist/viewer/{dist-BZ5zojGQ.js → dist-Cy8NldSx.js} +4 -4
  92. package/dist/viewer/{dist-ClgG_XeE.js → dist-D2yfyCbT.js} +1 -1
  93. package/dist/viewer/{dist-BYMCet81.js → dist-DKLouXV5.js} +1 -1
  94. package/dist/viewer/{dist-02K6bLL5.js → dist-DKkW9dU5.js} +1 -1
  95. package/dist/viewer/{dist-BsqIZGjl.js → dist-Ds6VFWTz.js} +1 -1
  96. package/dist/viewer/{dist-Qc2dX3vA.js → dist-VAycv_3i.js} +1 -1
  97. package/dist/viewer/{dist-IUX27npr.js → dist-fyPnRLSz.js} +1 -1
  98. package/dist/viewer/{dist-7B7d5HYf.js → dist-kyCI0GjD.js} +1 -1
  99. package/dist/viewer/{dist-hlfvil5J.js → dist-lH8EGddX.js} +1 -1
  100. package/dist/viewer/{dist-Jn92mbUg.js → dist-rHgXqZ3U.js} +1 -1
  101. package/dist/viewer/{dist-u7ism1gK.js → dist-xKtvXW_M.js} +1 -1
  102. package/dist/viewer/{ebnfDiagram-PWID7BFC-CL1U6Bgh.js → ebnfDiagram-PWID7BFC-BwAXcSMu.js} +1 -1
  103. package/dist/viewer/{el-GR-BZB4AONW-qfDNQt0F.js → el-GR-BZB4AONW-DO8FKq0o.js} +1 -1
  104. package/dist/viewer/{en-B4ZKOASM-DjB7bdQE.js → en-B4ZKOASM-BGb9Jd7F.js} +1 -1
  105. package/dist/viewer/{erDiagram-RLTQ6QDP-C_lYUtOw.js → erDiagram-RLTQ6QDP-BU0oilOu.js} +1 -1
  106. package/dist/viewer/{es-ES-U4NZUMDT-CFw9usvE.js → es-ES-U4NZUMDT-C8my4jC1.js} +1 -1
  107. package/dist/viewer/{eu-ES-A7QVB2H4-4BNzkAsh.js → eu-ES-A7QVB2H4-7y6iA3PQ.js} +1 -1
  108. package/dist/viewer/{eventmodeling-NTZA5JFV-CQBUT8Rf.js → eventmodeling-NTZA5JFV-soHgkZ82.js} +1 -1
  109. package/dist/viewer/{fa-IR-HGAKTJCU-C9i2Nfz_.js → fa-IR-HGAKTJCU-oCdmxr1e.js} +1 -1
  110. package/dist/viewer/{fi-FI-Z5N7JZ37-C8UDB8bk.js → fi-FI-Z5N7JZ37-X3VK0x3c.js} +1 -1
  111. package/dist/viewer/flowDiagram-HODETNUW-A3kbYb0D.js +1 -0
  112. package/dist/viewer/{fr-FR-RHASNOE6-Mc-SCvoh.js → fr-FR-RHASNOE6-zrXrM79-.js} +1 -1
  113. package/dist/viewer/{ganttDiagram-EL5Y4UJY-N-oOcKbq.js → ganttDiagram-EL5Y4UJY-bHjB1qlT.js} +1 -1
  114. package/dist/viewer/{gitGraph-4MIJSDKK-Z6v79k7p.js → gitGraph-4MIJSDKK-CjGC-mW6.js} +1 -1
  115. package/dist/viewer/{gitGraphDiagram-WWUBYQGX-CORAtQJ3.js → gitGraphDiagram-WWUBYQGX-DUqXPpCq.js} +1 -1
  116. package/dist/viewer/{gl-ES-HMX3MZ6V-OfRSBrho.js → gl-ES-HMX3MZ6V-BUnj3HlN.js} +1 -1
  117. package/dist/viewer/{he-IL-6SHJWFNN-CjhadtGW.js → he-IL-6SHJWFNN-281kRBUf.js} +1 -1
  118. package/dist/viewer/{hi-IN-IWLTKZ5I-CYYvph9P.js → hi-IN-IWLTKZ5I-DIuMdRpK.js} +1 -1
  119. package/dist/viewer/{hu-HU-A5ZG7DT2-B6NTEmIC.js → hu-HU-A5ZG7DT2-nmQyfjlR.js} +1 -1
  120. package/dist/viewer/{id-ID-SAP4L64H-B8Xf9sUo.js → id-ID-SAP4L64H-BiViI6m_.js} +1 -1
  121. package/dist/viewer/{image-GAAHSSAO-hDM8yXwe.js → image-GAAHSSAO-yI0Lg6gi.js} +1 -1
  122. package/dist/viewer/index.html +5 -5
  123. package/dist/viewer/index.js +2 -2
  124. package/dist/viewer/index3.css +4 -0
  125. package/dist/viewer/{info-A6RAGUB7-CE-QPkyy.js → info-A6RAGUB7-B0l9mAY4.js} +1 -1
  126. package/dist/viewer/{infoDiagram-27XIBGKW-DrHsUoxu.js → infoDiagram-27XIBGKW-BTxMqmhS.js} +1 -1
  127. package/dist/viewer/{ishikawaDiagram-5VMMS53U-nWj2IsTY.js → ishikawaDiagram-5VMMS53U-BunWcUgG.js} +1 -1
  128. package/dist/viewer/{it-IT-JPQ66NNP-C810Op7y.js → it-IT-JPQ66NNP-DpwQuK5q.js} +1 -1
  129. package/dist/viewer/{ja-JP-DBVTYXUO-DIbcYoJP.js → ja-JP-DBVTYXUO-Dg0jZ4Fr.js} +1 -1
  130. package/dist/viewer/{journeyDiagram-3NMN7TZE-CuKomypa.js → journeyDiagram-3NMN7TZE-CH0mNNME.js} +1 -1
  131. package/dist/viewer/{kaa-6HZHGXH3-cCX5zN8B.js → kaa-6HZHGXH3-Byd9GDLK.js} +1 -1
  132. package/dist/viewer/{kab-KAB-ZGHBKWFO-B-RTmCXO.js → kab-KAB-ZGHBKWFO-a6r59Esz.js} +1 -1
  133. package/dist/viewer/{kanban-definition-UXKFOSKX-CKVuo3k4.js → kanban-definition-UXKFOSKX-Dlxx1p8m.js} +1 -1
  134. package/dist/viewer/{kk-KZ-P5N5QNE5-DYBkhmQl.js → kk-KZ-P5N5QNE5-zq8glNLW.js} +1 -1
  135. package/dist/viewer/{km-KH-HSX4SM5Z-CCxaEuqg.js → km-KH-HSX4SM5Z-BTq35Fiu.js} +1 -1
  136. package/dist/viewer/{ko-KR-MTYHY66A-3m7U3iBI.js → ko-KR-MTYHY66A-DlgDzRH_.js} +1 -1
  137. package/dist/viewer/{ku-TR-6OUDTVRD-X3ikgsVo.js → ku-TR-6OUDTVRD-BVLk13SV.js} +1 -1
  138. package/dist/viewer/{local-split-host-BMRFYq_O.js → local-split-host-xSgjCeui.js} +1 -1
  139. package/dist/viewer/{lt-LT-XHIRWOB4-vvKpbejg.js → lt-LT-XHIRWOB4-6q0TFRDx.js} +1 -1
  140. package/dist/viewer/{lv-LV-5QDEKY6T-BSM4MzKc.js → lv-LV-5QDEKY6T-DxyqknhI.js} +1 -1
  141. package/dist/viewer/{mermaid-parser.core-Bj6JAkmh.js → mermaid-parser.core-Gvb8dIz1.js} +3 -3
  142. package/dist/viewer/{mindmap-definition-YA3MSWOX-CCiNFisT.js → mindmap-definition-YA3MSWOX-DCPYU-48.js} +1 -1
  143. package/dist/viewer/{mr-IN-CRQNXWMA-DXzOwWpa.js → mr-IN-CRQNXWMA-D2tHgrn-.js} +1 -1
  144. package/dist/viewer/{my-MM-5M5IBNSE-Dn_OAz2K.js → my-MM-5M5IBNSE-BYWw8v9n.js} +1 -1
  145. package/dist/viewer/{nb-NO-T6EIAALU-fMPessoz.js → nb-NO-T6EIAALU-K3IdDtSM.js} +1 -1
  146. package/dist/viewer/{nl-NL-IS3SIHDZ-DnTNhgqn.js → nl-NL-IS3SIHDZ-O5S6GhQJ.js} +1 -1
  147. package/dist/viewer/{nn-NO-6E72VCQL-8Yii387T.js → nn-NO-6E72VCQL-CG7rDNE2.js} +1 -1
  148. package/dist/viewer/{oc-FR-POXYY2M6-3ioiiCNK.js → oc-FR-POXYY2M6-DVAwA1YG.js} +1 -1
  149. package/dist/viewer/{pa-IN-N4M65BXN-B4yi3y3p.js → pa-IN-N4M65BXN-BfskjU3c.js} +1 -1
  150. package/dist/viewer/{packet-AYTQ26CC-4dovYoGN.js → packet-AYTQ26CC-V9JOIpxu.js} +1 -1
  151. package/dist/viewer/{parseTrigger-BgQHa_Nx.js → parseTrigger-Bl4n5XXS.js} +1 -1
  152. package/dist/viewer/{pegDiagram-XKGWAZYB-CVV6hVF8.js → pegDiagram-XKGWAZYB-CRwdoRdU.js} +1 -1
  153. package/dist/viewer/percentages-BXMCSKIN-BDV0ZRBe.js +1 -0
  154. package/dist/viewer/{pie-WAS4IAKB-BuHK79R3.js → pie-WAS4IAKB-DD4VdSya.js} +1 -1
  155. package/dist/viewer/{pieDiagram-E7YTZNPT-CEhHpuzY.js → pieDiagram-E7YTZNPT-DtxXj_uG.js} +1 -1
  156. package/dist/viewer/{pl-PL-T2D74RX3-OpiYmyBs.js → pl-PL-T2D74RX3-aSM3OymY.js} +1 -1
  157. package/dist/viewer/preview.html +4 -4
  158. package/dist/viewer/preview.js +1 -1
  159. package/dist/viewer/{prod-D0vYYRO1.js → prod-DT6gDrhK.js} +8 -8
  160. package/dist/viewer/{pt-BR-5N22H2LF-D8F6ooYC.js → pt-BR-5N22H2LF-CoE1Brmo.js} +1 -1
  161. package/dist/viewer/{pt-PT-UZXXM6DQ-D3mGarXo.js → pt-PT-UZXXM6DQ-N4cE4HWd.js} +1 -1
  162. package/dist/viewer/{quadrantDiagram-AXDQQJYC-BeTd5Owh.js → quadrantDiagram-AXDQQJYC-Bp9CaPDI.js} +1 -1
  163. package/dist/viewer/{radar-RG4KPBEZ-Bs5JYSqQ.js → radar-RG4KPBEZ-DjIgW5TK.js} +1 -1
  164. package/dist/viewer/{railroad-74A4TZTK-60ZhIRvO.js → railroad-74A4TZTK-DJXF4Ntz.js} +1 -1
  165. package/dist/viewer/{railroad-abnf-HS5TGJTU-crN_5FSb.js → railroad-abnf-HS5TGJTU-D2uor4gn.js} +1 -1
  166. package/dist/viewer/{railroad-ebnf-LZEXJU2U-Cq5MpEFr.js → railroad-ebnf-LZEXJU2U-d-1EQm0I.js} +1 -1
  167. package/dist/viewer/{railroad-peg-WCYAUIDC-3_b7NLcX.js → railroad-peg-WCYAUIDC-VVFlD8Wt.js} +1 -1
  168. package/dist/viewer/{railroadDiagram-O6MQD6OU-Vy-0n1VR.js → railroadDiagram-O6MQD6OU-DIYzZs3X.js} +1 -1
  169. package/dist/viewer/{ref-DBHRFrMN.js → ref-DeJSmII1.js} +1 -1
  170. package/dist/viewer/{requirementDiagram-BXWQKSXE-3UTyJ8ZV.js → requirementDiagram-BXWQKSXE-BFAS1s1U.js} +1 -1
  171. package/dist/viewer/{ro-RO-JPDTUUEW-ukAakPc_.js → ro-RO-JPDTUUEW-CXL_OLY6.js} +1 -1
  172. package/dist/viewer/{route-Cvbs0pMv.js → route-B-3a8kXR.js} +2 -2
  173. package/dist/viewer/{route-messages-9SZM1864.js → route-messages-D6nsn-yO.js} +1 -1
  174. package/dist/viewer/{ru-RU-B4JR7IUQ-DsKKiTcC.js → ru-RU-B4JR7IUQ-DK0raNaa.js} +1 -1
  175. package/dist/viewer/{sankeyDiagram-P5KCCOFB-DS3TrrxP.js → sankeyDiagram-P5KCCOFB-XkkNzFLA.js} +1 -1
  176. package/dist/viewer/{selection-DuzBGS_K.js → selection-A2L_U7cp.js} +1 -1
  177. package/dist/viewer/{sequenceDiagram-WJ2MYXX4-C-MQ1r66.js → sequenceDiagram-WJ2MYXX4-u1vCwsJu.js} +1 -1
  178. package/dist/viewer/{si-LK-N5RQ5JYF-fd9skMWt.js → si-LK-N5RQ5JYF-C2C_capt.js} +1 -1
  179. package/dist/viewer/{sk-SK-C5VTKIMK-94yPrt-v.js → sk-SK-C5VTKIMK-CAZ_jqda.js} +1 -1
  180. package/dist/viewer/{sl-SI-NN7IZMDC-CXyf9Y_h.js → sl-SI-NN7IZMDC-w4mPw9Qr.js} +1 -1
  181. package/dist/viewer/{split-url-DCXSi810.js → split-url-Ds_SbiRI.js} +1 -1
  182. package/dist/viewer/{stateDiagram-D77RDMKH-uLNLMbA4.js → stateDiagram-D77RDMKH-CNdAB9GQ.js} +1 -1
  183. package/dist/viewer/stateDiagram-v2-MP3YSRHH-LXrhvJQE.js +1 -0
  184. package/dist/viewer/subset-shared.chunk-DR4HOb1q.js +1 -0
  185. package/dist/viewer/{subset-worker.chunk-CCjlZvyE.js → subset-worker.chunk-DWr778aR.js} +1 -1
  186. package/dist/viewer/{sv-SE-XGPEYMSR-DPbLSv0c.js → sv-SE-XGPEYMSR-Cvj4W126.js} +1 -1
  187. package/dist/viewer/{swimlanes-42K2YHIH-y-2hdIuq.js → swimlanes-42K2YHIH-CRWoFAkx.js} +1 -1
  188. package/dist/viewer/swimlanesDiagram-VR7AAH4N-F15yPPv-.js +8 -0
  189. package/dist/viewer/{ta-IN-2NMHFXQM-BK3L3kDX.js → ta-IN-2NMHFXQM-pCSxo0O4.js} +1 -1
  190. package/dist/viewer/{th-TH-HPSO5L25-CFBmFkzs.js → th-TH-HPSO5L25-DA2yXkLO.js} +1 -1
  191. package/dist/viewer/{timeline-definition-24CTP7MA-erBEzv25.js → timeline-definition-24CTP7MA-C7cLrh2M.js} +1 -1
  192. package/dist/viewer/{tr-TR-DEFEU3FU-Cy9-JU8k.js → tr-TR-DEFEU3FU-DSUJUHLi.js} +1 -1
  193. package/dist/viewer/{treeView-Q6P3EWNA-1tNBreej.js → treeView-Q6P3EWNA-CYMsee9z.js} +1 -1
  194. package/dist/viewer/{treemap-WGGIJYW6-DbqYBKFh.js → treemap-WGGIJYW6-BeYAJy3I.js} +1 -1
  195. package/dist/viewer/{uk-UA-QMV73CPH-DwAQPx1c.js → uk-UA-QMV73CPH-CpavbdpO.js} +1 -1
  196. package/dist/viewer/{useAriaLabelledBy-1TFrbqTT.js → useAriaLabelledBy-Ai3baFaJ.js} +1 -1
  197. package/dist/viewer/{useOpenInteractionType-B7ZAWZlS.js → useOpenInteractionType-CFrlkl-M.js} +1 -1
  198. package/dist/viewer/{useTranslation-DczhMFuq.js → useTranslation-BCUMbI5g.js} +1 -1
  199. package/dist/viewer/useTypeFavicon-B4j5zCC6.js +1 -0
  200. package/dist/viewer/{vennDiagram-4TSXK5OY-gxGufpuC.js → vennDiagram-4TSXK5OY-D-TvgzEs.js} +1 -1
  201. package/dist/viewer/{vi-VN-M7AON7JQ-C8FCmKmt.js → vi-VN-M7AON7JQ-149ovaXw.js} +1 -1
  202. package/dist/viewer/{view-CX7yv-Pv.js → view-tN_gu_ot.js} +1 -1
  203. package/dist/viewer/{viewport-CFJHn_Y6-C1jXsfyM.js → viewport-CFJHn_Y6-gOi1FTqq.js} +1 -1
  204. package/dist/viewer/{wardley-WFR3VGLG-BeUHBiNR.js → wardley-WFR3VGLG-Bxei-rkR.js} +1 -1
  205. package/dist/viewer/{wardleyDiagram-VM6X3IG4-BEH6ZNYM.js → wardleyDiagram-VM6X3IG4-Behq92Qv.js} +1 -1
  206. package/dist/viewer/{xychartDiagram-S5SC5T6Z-Sb2wN887.js → xychartDiagram-S5SC5T6Z-WvqgiYkm.js} +1 -1
  207. package/dist/viewer/{zh-CN-LNUGB5OW-CjcOJMLB.js → zh-CN-LNUGB5OW-Bh3vP78p.js} +1 -1
  208. package/dist/viewer/{zh-HK-E62DVLB3-C2ghlkfZ.js → zh-HK-E62DVLB3-DyLx4WST.js} +1 -1
  209. package/dist/viewer/{zh-TW-RAJ6MFWO-CDfhTlX4.js → zh-TW-RAJ6MFWO-CzGpQq8F.js} +1 -1
  210. package/dist/viewer-lib/{Canvas-BSA0o7dK.js → Canvas-D1GKtdWi.js} +3 -3
  211. package/dist/viewer-lib/{PhoneArtboardBar-BAYT7ihY.js → PhoneArtboardBar-Wif7mAXi.js} +2 -2
  212. package/dist/viewer-lib/{PreviewView-C7t7ZIzk.js → PreviewView-96hXi1zy.js} +2 -2
  213. package/dist/viewer-lib/{ReadOnlyWhiteboard-CWflWeSo.js → ReadOnlyWhiteboard-ByJSgs6y.js} +3 -3
  214. package/dist/viewer-lib/{SnapshotDocument-CgnqSKkP.js → SnapshotDocument-boYf3Unu.js} +32 -32
  215. package/dist/viewer-lib/{VirtualizedEditor-D9Ivycdp-CRIrE_5w.js → VirtualizedEditor-D9Ivycdp-C1r2x0pX.js} +2 -2
  216. package/dist/viewer-lib/{VirtualizedRenderer-C_d95FXi-Zicvc4ph.js → VirtualizedRenderer-C_d95FXi-lZgY7VI5.js} +3 -3
  217. package/dist/viewer-lib/{WarningsBadge-D5jWxCxT.js → WarningsBadge-B8dxGKka.js} +1 -1
  218. package/dist/viewer-lib/{agentLook-B23cR9K4.js → agentLook-0GsgKSL-.js} +1 -1
  219. package/dist/viewer-lib/{ar-SA-G6X2FPQ2-Duv5zla_.js → ar-SA-G6X2FPQ2-D01gdPpr.js} +1 -1
  220. package/dist/viewer-lib/{az-AZ-76LH7QW2-BlP0W-O3.js → az-AZ-76LH7QW2-C7w5r7bD.js} +1 -1
  221. package/dist/viewer-lib/{bg-BG-XCXSNQG7-8U63f6nC.js → bg-BG-XCXSNQG7-p2Qatdni.js} +1 -1
  222. package/dist/viewer-lib/{bn-BD-2XOGV67Q-C-NXsQHr.js → bn-BD-2XOGV67Q-DtnIWXwT.js} +1 -1
  223. package/dist/viewer-lib/{ca-ES-6MX7JW3Y-CRMSXAX-.js → ca-ES-6MX7JW3Y-BY9zZN7o.js} +1 -1
  224. package/dist/viewer-lib/{chunk-EIO257PC-Bn-GD-Zt.js → chunk-EIO257PC-Dn7JUPD8.js} +1 -1
  225. package/dist/viewer-lib/core.js +3 -3
  226. package/dist/viewer-lib/{cs-CZ-2BRQDIVT-Dz9S_d4x.js → cs-CZ-2BRQDIVT-BzjoZdth.js} +1 -1
  227. package/dist/viewer-lib/{da-DK-5WZEPLOC-CHcNiE6q.js → da-DK-5WZEPLOC-TDV970j5.js} +1 -1
  228. package/dist/viewer-lib/{de-DE-XR44H4JA-NcoEL-P8.js → de-DE-XR44H4JA-BjyTyKoM.js} +1 -1
  229. package/dist/viewer-lib/{dist-DADVpqjr.js → dist-BEz688xk.js} +3 -3
  230. package/dist/viewer-lib/{dist-C773LAGa.js → dist-BSFDUw8i.js} +2 -2
  231. package/dist/viewer-lib/{dist-Bs3YnXsj.js → dist-BTCqhvAf.js} +4 -4
  232. package/dist/viewer-lib/{dist-DQ73SSla.js → dist-C38vNQIH.js} +1 -1
  233. package/dist/viewer-lib/{dist-CQMnJ128.js → dist-C60FpC9e.js} +1 -1
  234. package/dist/viewer-lib/{dist-DaIYYQw6.js → dist-CBjyw6zC.js} +2 -2
  235. package/dist/viewer-lib/{dist-CjjfbMFL.js → dist-CMWQEa97.js} +3 -3
  236. package/dist/viewer-lib/{dist-DyGv52rq.js → dist-CPnB9yKQ.js} +3 -3
  237. package/dist/viewer-lib/{dist-BmR1ILj9.js → dist-Cfk5Y4QC.js} +2 -2
  238. package/dist/viewer-lib/{dist-BUAaHyRl.js → dist-CgQmu9ki.js} +3 -3
  239. package/dist/viewer-lib/{dist-BTwBk5SA.js → dist-Cr_rgBD9.js} +3 -3
  240. package/dist/viewer-lib/{dist-BQdzYH0T.js → dist-D36o7D7T.js} +2 -2
  241. package/dist/viewer-lib/{dist-DthLTMm5.js → dist-D778PgeW.js} +2 -2
  242. package/dist/viewer-lib/{dist-CkvV3vBQ.js → dist-D9IzrveE.js} +2 -2
  243. package/dist/viewer-lib/{dist-BeRdUOTO.js → dist-DHEOl2TN.js} +2 -2
  244. package/dist/viewer-lib/{dist-PFn-QQ_s.js → dist-DK1Yi8I4.js} +4 -4
  245. package/dist/viewer-lib/{dist-5GpEJ-bH.js → dist-DULdzKdC.js} +3 -3
  246. package/dist/viewer-lib/{dist-BUPma0-6.js → dist-DYd0_e2w.js} +2 -2
  247. package/dist/viewer-lib/{dist-CpOPVqpt.js → dist-FVtL0y1F.js} +3 -3
  248. package/dist/viewer-lib/{dist-Dh-J-Rgq.js → dist-bPGj_tUd.js} +4 -4
  249. package/dist/viewer-lib/{dist-DjolX4i2.js → dist-qS7iA2eX.js} +3 -3
  250. package/dist/viewer-lib/{dist-lX8KxHAX.js → dist-vd2-brQn.js} +3 -3
  251. package/dist/viewer-lib/{dist-Bnu-2VVl.js → dist-xJDwc_X3.js} +3 -3
  252. package/dist/viewer-lib/document.js +7 -7
  253. package/dist/viewer-lib/{el-GR-BZB4AONW-Ckitl9ll.js → el-GR-BZB4AONW-Be_WFnxM.js} +1 -1
  254. package/dist/viewer-lib/{en-B4ZKOASM-DDOXe6SM.js → en-B4ZKOASM-CqCyVRMQ.js} +1 -1
  255. package/dist/viewer-lib/{es-ES-U4NZUMDT-D5Il9sGa.js → es-ES-U4NZUMDT-BbunaFz5.js} +1 -1
  256. package/dist/viewer-lib/{eu-ES-A7QVB2H4-DzVr94jH.js → eu-ES-A7QVB2H4-CiDfJl0F.js} +1 -1
  257. package/dist/viewer-lib/{fa-IR-HGAKTJCU-j4IP_Edo.js → fa-IR-HGAKTJCU-CLdHVNrd.js} +1 -1
  258. package/dist/viewer-lib/{fi-FI-Z5N7JZ37-B0DDhQ1Z.js → fi-FI-Z5N7JZ37-AInwUM2B.js} +1 -1
  259. package/dist/viewer-lib/{fr-FR-RHASNOE6-DWknbOF7.js → fr-FR-RHASNOE6-5qcE-nn9.js} +1 -1
  260. package/dist/viewer-lib/{gl-ES-HMX3MZ6V-shg10h_v.js → gl-ES-HMX3MZ6V-C_hmLe5L.js} +1 -1
  261. package/dist/viewer-lib/{he-IL-6SHJWFNN-Ed04ekIs.js → he-IL-6SHJWFNN-Bs4SMN5Y.js} +1 -1
  262. package/dist/viewer-lib/{hi-IN-IWLTKZ5I-DjdOFRmR.js → hi-IN-IWLTKZ5I-CHsG_prh.js} +1 -1
  263. package/dist/viewer-lib/{hu-HU-A5ZG7DT2-n8QpqZ4Z.js → hu-HU-A5ZG7DT2-BpNCnfmz.js} +1 -1
  264. package/dist/viewer-lib/{i18n-CqqLJ6Bn.js → i18n-Bl255uFG.js} +48 -0
  265. package/dist/viewer-lib/{id-ID-SAP4L64H-s-M00021.js → id-ID-SAP4L64H-B18MP3TV.js} +1 -1
  266. package/dist/viewer-lib/{image-GAAHSSAO-BJML0bqE.js → image-GAAHSSAO-DVKnh1wc.js} +1 -1
  267. package/dist/viewer-lib/index.js +3376 -2926
  268. package/dist/viewer-lib/{it-IT-JPQ66NNP-CDsG32dJ.js → it-IT-JPQ66NNP-BH98nLgr.js} +1 -1
  269. package/dist/viewer-lib/{ja-JP-DBVTYXUO-DbxhxSyk.js → ja-JP-DBVTYXUO-DA2fExJg.js} +1 -1
  270. package/dist/viewer-lib/{kaa-6HZHGXH3-DJomTlzL.js → kaa-6HZHGXH3-C-82oNQ2.js} +1 -1
  271. package/dist/viewer-lib/{kab-KAB-ZGHBKWFO-CI0oP3Bj.js → kab-KAB-ZGHBKWFO-CsOeYyyg.js} +1 -1
  272. package/dist/viewer-lib/{kk-KZ-P5N5QNE5-7CjRJsra.js → kk-KZ-P5N5QNE5-C5vZz2mB.js} +1 -1
  273. package/dist/viewer-lib/{km-KH-HSX4SM5Z-CoNkwzsI.js → km-KH-HSX4SM5Z-Ds8sNL7U.js} +1 -1
  274. package/dist/viewer-lib/{ko-KR-MTYHY66A-DFQinSan.js → ko-KR-MTYHY66A-BgSaRncC.js} +1 -1
  275. package/dist/viewer-lib/{ku-TR-6OUDTVRD-bVcYOoDk.js → ku-TR-6OUDTVRD-DahxJWf5.js} +1 -1
  276. package/dist/viewer-lib/{lib-CoXZilpj.js → lib-HJ5naU7F.js} +1 -1
  277. package/dist/viewer-lib/{lt-LT-XHIRWOB4-BIsiqKj8.js → lt-LT-XHIRWOB4-BvJ2fjcP.js} +1 -1
  278. package/dist/viewer-lib/{lv-LV-5QDEKY6T-CPC7ylaV.js → lv-LV-5QDEKY6T-CfcDbPw2.js} +1 -1
  279. package/dist/viewer-lib/{mr-IN-CRQNXWMA-CiY-592d.js → mr-IN-CRQNXWMA-C8OfBL2I.js} +1 -1
  280. package/dist/viewer-lib/{my-MM-5M5IBNSE-CqJsVoJu.js → my-MM-5M5IBNSE-BUCYgqBD.js} +1 -1
  281. package/dist/viewer-lib/{nb-NO-T6EIAALU-BBLgzHfY.js → nb-NO-T6EIAALU-BhVURg4a.js} +1 -1
  282. package/dist/viewer-lib/{nl-NL-IS3SIHDZ-vencjWhM.js → nl-NL-IS3SIHDZ-C5NGTrjU.js} +1 -1
  283. package/dist/viewer-lib/{nn-NO-6E72VCQL-BWHOGPEl.js → nn-NO-6E72VCQL-CIOwp8RU.js} +1 -1
  284. package/dist/viewer-lib/{oc-FR-POXYY2M6-BYL_PQLS.js → oc-FR-POXYY2M6-Da6SyINm.js} +1 -1
  285. package/dist/viewer-lib/{pa-IN-N4M65BXN-Cv4ZB-QP.js → pa-IN-N4M65BXN-tDTX0nfg.js} +1 -1
  286. package/dist/viewer-lib/percentages-BXMCSKIN-Cvdo4-KV.js +1 -0
  287. package/dist/viewer-lib/{pl-PL-T2D74RX3-2YdY7WUN.js → pl-PL-T2D74RX3-dj1Dwz0C.js} +1 -1
  288. package/dist/viewer-lib/{plugin-_bGVeqI0-DaWymUTi.js → plugin-_bGVeqI0-D3iBrFnz.js} +1 -1
  289. package/dist/viewer-lib/{prod-BrZ_Nr0-.js → prod-B7QWq4m3.js} +59 -59
  290. package/dist/viewer-lib/{pt-BR-5N22H2LF-BgPsrxRG.js → pt-BR-5N22H2LF-BL2Y-MuR.js} +1 -1
  291. package/dist/viewer-lib/{pt-PT-UZXXM6DQ-4FPiYyES.js → pt-PT-UZXXM6DQ-BjYJ2Wd6.js} +1 -1
  292. package/dist/viewer-lib/{ro-RO-JPDTUUEW-BwoX9h84.js → ro-RO-JPDTUUEW-D-wh7Qsh.js} +1 -1
  293. package/dist/viewer-lib/{route-messages-CqMvUkfR.js → route-messages-Cd_S7ERg.js} +2 -2
  294. package/dist/viewer-lib/{ru-RU-B4JR7IUQ-Bd9s4exj.js → ru-RU-B4JR7IUQ-Vqbdm2HB.js} +1 -1
  295. package/dist/viewer-lib/{si-LK-N5RQ5JYF-COjPyEJf.js → si-LK-N5RQ5JYF-FWjQj7wM.js} +1 -1
  296. package/dist/viewer-lib/{sk-SK-C5VTKIMK-DY61Iqus.js → sk-SK-C5VTKIMK-CPdKjgc0.js} +1 -1
  297. package/dist/viewer-lib/{sl-SI-NN7IZMDC-CoLAIrA-.js → sl-SI-NN7IZMDC-Cfsizmp1.js} +1 -1
  298. package/dist/viewer-lib/{stylex-B2Kji6ve.css → stylex-H52XSOyN.css} +4 -0
  299. package/dist/viewer-lib/subset-shared.chunk-C7qUh7WH.js +2 -0
  300. package/dist/viewer-lib/{subset-worker.chunk-1lo51MmF.js → subset-worker.chunk-ockc4DfZ.js} +2 -2
  301. package/dist/viewer-lib/{sv-SE-XGPEYMSR-DghaMqt3.js → sv-SE-XGPEYMSR-CkNdCBoc.js} +1 -1
  302. package/dist/viewer-lib/{ta-IN-2NMHFXQM-GfsHy3fq.js → ta-IN-2NMHFXQM-Cqhx65Sb.js} +1 -1
  303. package/dist/viewer-lib/{th-TH-HPSO5L25-Dp7xyi9G.js → th-TH-HPSO5L25-Cz6Qzk1K.js} +1 -1
  304. package/dist/viewer-lib/{tr-TR-DEFEU3FU-BaJOrAUy.js → tr-TR-DEFEU3FU-CCCN9YIS.js} +1 -1
  305. package/dist/viewer-lib/types/src/shared/referrers.d.ts +36 -0
  306. package/dist/viewer-lib/types/src/viewer/components/BesideCard.d.ts +17 -0
  307. package/dist/viewer-lib/types/src/viewer/components/ReferrerList.d.ts +14 -0
  308. package/dist/viewer-lib/types/src/viewer/components/SharePanel.d.ts +5 -1
  309. package/dist/viewer-lib/types/src/viewer/components/beside-state.d.ts +3 -0
  310. package/dist/viewer-lib/types/src/viewer/components/cascade-styles.d.ts +128 -0
  311. package/dist/viewer-lib/types/src/viewer/library/index.d.ts +6 -1
  312. package/dist/viewer-lib/types/src/viewer/split/SplitShell.d.ts +3 -1
  313. package/dist/viewer-lib/types/src/viewer/split/messages.d.ts +8 -1
  314. package/dist/viewer-lib/types/src/viewer/split/useSplitRoles.d.ts +6 -0
  315. package/dist/viewer-lib/{uk-UA-QMV73CPH-Dg_TFHUA.js → uk-UA-QMV73CPH-CP4wZTK4.js} +1 -1
  316. package/dist/viewer-lib/{vi-VN-M7AON7JQ-BbasR-kZ.js → vi-VN-M7AON7JQ-DQsgQGd7.js} +1 -1
  317. package/dist/viewer-lib/{viewport-CFJHn_Y6-rsrJTmFz.js → viewport-CFJHn_Y6-LGEa8Vm0.js} +1 -1
  318. package/dist/viewer-lib/{zh-CN-LNUGB5OW-DP1552am.js → zh-CN-LNUGB5OW-Cp6CD9iP.js} +1 -1
  319. package/dist/viewer-lib/{zh-HK-E62DVLB3-DMsDsoF6.js → zh-HK-E62DVLB3-B_z5KWS4.js} +1 -1
  320. package/dist/viewer-lib/{zh-TW-RAJ6MFWO-D1mbuuHb.js → zh-TW-RAJ6MFWO-BgUsVK92.js} +1 -1
  321. package/package.json +1 -1
  322. package/dist/viewer/DocumentLayout-BkpeuOpb.js +0 -2
  323. package/dist/viewer/DocumentPage-BqQXaW4l.js +0 -4
  324. package/dist/viewer/SplitShell-B8aI0YSC.js +0 -1
  325. package/dist/viewer/TooltipPopup-DZRCQVrx.js +0 -1
  326. package/dist/viewer/channel-DB143Xik.js +0 -1
  327. package/dist/viewer/classDiagram-ZZMXUADV-DmJptHUP.js +0 -1
  328. package/dist/viewer/classDiagram-v2-VYDZK3BY-DmJptHUP.js +0 -1
  329. package/dist/viewer/flowDiagram-HODETNUW-CV4rxiFw.js +0 -1
  330. package/dist/viewer/percentages-BXMCSKIN-DdTdqxCn.js +0 -1
  331. package/dist/viewer/stateDiagram-v2-MP3YSRHH-4X9ufUCL.js +0 -1
  332. package/dist/viewer/subset-shared.chunk-ByQ-gvtV.js +0 -1
  333. package/dist/viewer/swimlanesDiagram-VR7AAH4N-BThkkUgr.js +0 -8
  334. package/dist/viewer/useTypeFavicon-fHGk7fhQ.js +0 -1
  335. package/dist/viewer-lib/percentages-BXMCSKIN-BdIkw9ta.js +0 -1
  336. package/dist/viewer-lib/subset-shared.chunk-BT3koTww.js +0 -2
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{g as t}from"./route-B-3a8kXR.js";import{t as n}from"./react-B8SKf8RM.js";import{Kr as r,Wr as i,d as a,i as o,n as s,t as c,u as l}from"./split-url-Ds_SbiRI.js";import{t as u}from"./jsx-runtime-DePvh3-m.js";import{q as d}from"./MotionConfigContext-DBHtopYR.js";import{t as f}from"./chevron-down-MyXUwHqO.js";import{t as p}from"./chevron-left-B7WJAO5q.js";import{t as m}from"./chevron-up-BLztg0Iv.js";import{a as h,c as g,i as _,l as v,n as ee,o as te,r as y,s as b,t as ne,u as x}from"./route-messages-D6nsn-yO.js";import{t as S}from"./file-text-BwtMWDOY.js";import{t as C}from"./useTranslation-BCUMbI5g.js";import{a as w,i as T,n as E,t as D}from"./motion-Cy65kd7X.js";import{n as re,t as ie}from"./useMedia-CWOjvrMw.js";import{r as ae}from"./type-icons-BugaK-eL.js";import{n as O}from"./ref-DeJSmII1.js";var k={name:`arrow-left-right`,size:24,node:[[`path`,{d:`M8 3 4 7l4 4`,key:`9rb6wj`}],[`path`,{d:`M4 7h16`,key:`6tx8e3`}],[`path`,{d:`m16 21 4-4-4-4`,key:`siv7j2`}],[`path`,{d:`M20 17H4`,key:`h6l3hr`}]]};k.node;var oe=d(k),A=e(n(),1),j=u();function se({bar:e,onStep:t}){let{t:n}=C();return e?e.kind===`notice`?(0,j.jsxs)(`div`,{"data-split-notice":!0,role:`status`,className:`x10l6tqk xkpr539 x1nrll8i xuuh30 x1u8a7rm x78zum5 x6s0dn4 x17d4w8g x10w6t97 x1awh872 xur7f20 x12ilycc x1d5q07e xqfszdh xfifm61 x1bo0w0s xuxw1ft`,children:[(0,j.jsx)(r,{size:14}),(0,j.jsx)(`span`,{className:`x1fao0z8 xo2rkog`,children:e.key}),e.elsewhere?n(`split.elsewhere`,{document:e.elsewhere}):n(`split.unreferenced`)]}):(0,j.jsxs)(`div`,{"data-split-stepper":!0,className:`x10l6tqk xkpr539 x1nrll8i xuuh30 x1u8a7rm x78zum5 x6s0dn4 x17d4w8g x10w6t97 x1awh872 xur7f20 x12ilycc x1d5q07e xqfszdh xfifm61 x1bo0w0s xuxw1ft`,children:[(0,j.jsx)(`span`,{className:`x1fao0z8 xo2rkog`,children:e.key}),n(`split.position`,{index:e.index+1,total:e.total}),(0,j.jsx)(`button`,{"aria-label":n(`split.previous`),type:`button`,onClick:()=>t(-1),className:`xrvj5dj x1ku5rj1 x17z2i9w x17rw0jw x1717udv xc342km x1sxf85j xjbqb8w x1bo0w0s x1ypdohk xj0l527`,children:(0,j.jsx)(m,{size:14})}),(0,j.jsx)(`button`,{"aria-label":n(`split.next`),type:`button`,onClick:()=>t(1),className:`xrvj5dj x1ku5rj1 x17z2i9w x17rw0jw x1717udv xc342km x1sxf85j xjbqb8w x1bo0w0s x1ypdohk xj0l527`,children:(0,j.jsx)(f,{size:14})})]}):null}function ce(e){let[t,n]=(0,A.useState)(null),r=(0,A.useRef)(null),i=(0,A.useRef)(e);return i.current=e,(0,A.useEffect)(()=>l((e,t)=>{let o=i.current();if(e.kind!==`header`||!o||t!==o)return;let{activity:s,comments:c,history:l,historyOpen:u}=e;n({activity:s,comments:c,history:l,historyOpen:u}),a(o,{kind:`chrome`,hosted:!!r.current})}),[]),{header:t,history:e=>a(i.current(),{kind:`history`,action:e}),host:e=>{r.current!==e&&(r.current=e,a(i.current(),{kind:`chrome`,hosted:e}))}}}var M=e(t(),1),N=280,P=2500,F=5e3,I=e=>requestAnimationFrame(()=>requestAnimationFrame(e));function L(e,t){let n=document.documentElement,r={duration:N,fill:`both`};n.animate([{opacity:0,transform:`translateX(${48*t}px)`},{opacity:1,transform:`none`}],{...r,easing:D,pseudoElement:`::view-transition-new(${e})`}),n.animate([{opacity:1,transform:`none`},{opacity:0,transform:`translateX(${-24*t}px)`}],{...r,easing:E,pseudoElement:`::view-transition-old(${e})`}),n.animate([{clipPath:`inset(0)`},{clipPath:`inset(0)`}],{...r,pseudoElement:`::view-transition-group(${e})`})}function le({apply:e,section:t,animate:n}){let[r,i]=(0,A.useState)(null),a=(0,A.useRef)(r),o=(0,A.useRef)(null),s=(0,A.useRef)(void 0),c=(0,A.useRef)({apply:e,section:t,animate:n});c.current={apply:e,section:t,animate:n};let u=e=>{if(a.current!==e)return;a.current=null,clearTimeout(s.current);let t=()=>(0,M.flushSync)(()=>{i(null),c.current.apply(e)});if(!document.startViewTransition||!c.current.animate()||w())return t();let n=c.current.section(e.slot),r=`split-${e.slot}`;n&&(n.style.viewTransitionName=r);let o=document.startViewTransition(t),l=()=>{n&&(n.style.viewTransitionName=``)};o.ready.then(()=>L(r,e.enter),l),o.finished.then(l,l)},d=(0,A.useRef)(u);return d.current=u,(0,A.useEffect)(()=>{if(!r)return;let e=setTimeout(()=>d.current(r),F),t=l((e,t)=>{e.kind===`painted`&&t&&t===o.current?.contentWindow&&d.current(r)});return()=>{clearTimeout(e),clearTimeout(s.current),t()}},[r]),{incoming:r,stage:e=>{let t=a.current;t&&t.slot!==e.slot&&c.current.apply(t),a.current=e,i(e)},frame:e=>{o.current=e},loaded:()=>{let e=a.current;e&&(e.pane.type===`html`?I(()=>d.current(e)):s.current=setTimeout(()=>d.current(e),P))}}}var R=[`main`,`side`],z=e=>e===`main`?`side`:`main`,B=({type:e,id:t})=>({type:e,id:t});function ue(e,t){let n=(0,A.useRef)(null),r=(0,A.useRef)(new WeakSet),i=(0,A.useRef)(``),o=(0,A.useRef)(t);o.current=t;let s=(0,A.useRef)(e);s.current=e;let c=e=>{let t=n.current,i=s.current(e);if(!t||!i||!r.current.has(i))return;let o=t.panes[z(e)];a(i,{kind:`split-role`,role:e===t.primary?`primary`:`beside`,other:t.open&&o.id?B(o):null})};return(0,A.useEffect)(()=>l((e,t)=>{if(e.kind!==`want-role`)return;let n=R.find(e=>s.current(e)===t);n&&t&&(r.current.add(t),c(n))}),[]),(e,t,r)=>{n.current={panes:e,primary:t,open:r};for(let e of R)(r||e===t)&&c(e);let a=e[z(t)],s={primary:B(e[t]),beside:r&&a.id?B(a):null},l=JSON.stringify(s);l!==i.current&&(i.current=l,o.current?.(s))}}var V=[`main`,`side`],H=e=>e===`main`?`side`:`main`;function de({artboard:e,side:t,document:n,panes:r,slotOfType:i,focus:o,host:s,show:u,navigate:d,replace:f}){let p=(0,A.useRef)({main:null,side:null}),m=(0,A.useRef)(r);m.current=r;let g=(0,A.useRef)(i);g.current=i;let v=(0,A.useRef)({artboard:e,side:t,document:n,backlinks:null,cursor:null,groups:[]}),[te,y]=(0,A.useState)(null),b=(0,A.useRef)(u);b.current=u;let x=(0,A.useRef)(d);x.current=d;let S=(0,A.useRef)(f);S.current=f;let[C,w]=(0,A.useState)(0),T=(0,A.useRef)(null);(0,A.useEffect)(()=>{(v.current.artboard!==e||v.current.side!==t)&&(T.current=null),v.current.artboard=e,v.current.side=t,v.current.document=n},[e,t,n]),(0,A.useEffect)(()=>{if(e&&s.onArtboardChange)return s.onArtboardChange(e,()=>w(e=>e+1),t)},[e,t,s]),(0,A.useEffect)(()=>{if(v.current.backlinks=null,v.current.groups=[],!e)return;let n=!1;return s.loadLinks(e,t).then(e=>{!n&&e&&(v.current.backlinks=e.backlinks,v.current.groups=e.groups)}),()=>{n=!0}},[e,t,s,C]);let E=({cursor:e,effects:t})=>{v.current.cursor=e;for(let e of t)if(`to`in e){let t=g.current(e.to);if(!t)continue;e.message.kind===`focus`&&b.current(t),a(p.current[t]?.contentWindow,e.message)}else if(`navigate`in e)y(null),x.current(e.navigate);else if(`notice`in e)y({kind:`notice`,...e.notice});else if(`stepper`in e)y(e.stepper.total>1?{kind:`stepper`,...e.stepper}:null);else if(`url`in e){Object.assign(o,{group:e.url.group,board:e.url.board,frame:e.url.frame,page:e.url.page});let t=new URLSearchParams(location.search);for(let e of[`group`,`board`,`frame`,`wbpage`])t.delete(e);e.url.frame?t.set(`frame`,e.url.frame):e.url.page?t.set(`wbpage`,e.url.page):e.url.group?t.set(`group`,e.url.group):e.url.board&&t.set(`board`,e.url.board);let n=t.toString();history.replaceState(history.state,``,`${location.pathname}${n?`?${n}`:``}`),y(null)}};return(0,A.useEffect)(()=>l((e,t)=>{let n=V.find(e=>p.current[e]?.contentWindow===t);if(!n)return;let r=m.current,i=r[n].type,l=!!v.current.artboard&&!!v.current.document;if(e.kind===`ref-open`){let t=r[H(n)],a=s.refId(e.target),o=O(e.target);if(!a)return;let u=r[n];if(u.id===a&&u.type===o)return;let d=t.id===a&&t.type===o;if(!(l&&i===`document`&&c(o)&&(n===`main`||d))){if(d)return;y(null),S.current(H(n),{type:o,id:a},h(e.target));return}}if(l){if(e.kind===`ready`){if(!v.current.artboard||!v.current.document)return;let e=p.current[n]?.contentWindow;for(let t of ne(i,v.current.artboard,o))a(e,t);i===`document`&&T.current&&a(e,{kind:`board`,artboard:v.current.artboard,board:T.current})}else e.kind===`board-state`&&(T.current=e.board),E(ee(i,e,v.current,s))}}),[]),{bar:te,frame:e=>t=>{p.current[e]=t},step:e=>E(_(v.current,e)),window:e=>p.current[e]?.contentWindow}}var U=[`main`,`side`],W=`ryugiSplitPanes`,fe=(e,t)=>e.type===t.type&&e.id===t.id,pe=e=>{let t=U.find(t=>c(e[t].type)&&e[G(t)].type===`document`);return{boardSlot:t,docSlot:t?G(t):U.find(t=>e[t].type===`document`)??null,slotOfType:t=>U.find(n=>e[n].type===t)}},G=e=>e===`main`?`side`:`main`,me={document:S,artboard:g,whiteboard:b,html:x},he=(e,t)=>{let n=t?.kind;return e===`document`?n??`artboard`:n===`document`||n===`html`?n:`document`},ge=.25,_e=.75,ve={position:`absolute`,visibility:`hidden`},ye=240,be=180,xe=320,Se=[{opacity:0,transform:`translateX(48px)`},{opacity:1,transform:`none`}],Ce=[{opacity:1,transform:`none`},{opacity:0,transform:`translateX(48px)`}],we=[{transform:`translateX(100%)`},{transform:`none`}],Te=[{transform:`none`},{transform:`translateX(100%)`}];function Ee(e,t){let[n,r]=(0,A.useState)(null);return(0,A.useEffect)(()=>{if(!t||!e.title)return;let n=!1;return e.title(t).then(e=>{!n&&e&&r({id:t,text:e})}),()=>{n=!0}},[e,t]),n?.id===t?n.text:t}function K({type:e,id:t,split:n,host:r,fill:c=!1,onPanes:u}){let{t:d}=C(),f=re(ie),[m,h]=(0,A.useState)(n?.with??``),[g]=(0,A.useState)(()=>({type:e,id:t})),[_,ee]=(0,A.useState)(g),[b,ne]=(0,A.useState)(()=>he(_.type,n)),x={main:_,side:{type:b,id:m}},S=(0,A.useRef)(x);S.current=x;let{docSlot:O}=pe(x),k=(0,A.useRef)(f);k.current=f;let M=(0,A.useRef)({main:null,side:null}),N=le({animate:()=>!k.current,section:e=>M.current[e],apply:e=>{Z({...S.current,[e.slot]:e.pane}),q(e.slot)}}),P=N.incoming?{...x,[N.incoming.slot]:N.incoming.pane}:x,{boardSlot:F,slotOfType:I}=pe(P),L=(0,A.useRef)(I);L.current=I;let R=(0,A.useRef)({group:n?.group,board:n?.board,frame:n?.frame,page:n?.page}).current,z=(0,A.useRef)(`main`),[B,V]=(0,A.useState)(`main`),[H,K]=(0,A.useState)(!!n),[De,q]=(0,A.useState)(`side`),[Oe,ke]=(0,A.useState)(.58),[Ae,je]=(0,A.useState)(!1),Me=(0,A.useRef)(null),J=(0,A.useRef)(0),Y=(0,A.useRef)(0),Ne=(0,A.useRef)(null),Pe=(0,A.useRef)(H),Fe=(0,A.useRef)([]),Ie=(0,A.useRef)({}),Le=(0,A.useRef)(null),Re=(0,A.useRef)(!1),X=de({artboard:F?P[F].id:``,side:F?P[F].type:`artboard`,document:F?P[G(F)].id:``,panes:P,slotOfType:I,focus:R,host:r,show:e=>{q(e),!H&&(K(!0),$(z.current,!0))},navigate:e=>{let t=new URL(e,location.href),n=s(t.search),i=x[z.current],a=r.path(i.type,i.id);t.pathname!==a||!n||z.current!==`main`?location.assign(e):(Ue(),Ge(n),We({...x,side:{type:he(_.type,n),id:n.with}},ze(`side`)))},replace:(e,t,n)=>{Ue();let r=e!==z.current;Object.assign(R,{group:r?n.group:void 0,board:r?n.board:void 0,frame:r?n.frame:void 0,page:r?n.page:void 0}),We({...P,[e]:t},ze(e)),Be(e,t,ze(e))}}),ze=e=>e===z.current?1:-1,Be=(e,t,n)=>{H&&x[e].id&&!fe(x[e],t)?N.stage({slot:e,pane:t,enter:n}):(Z({...x,[e]:t}),q(e))},Ve=(0,A.useRef)(Be);Ve.current=Be;let Z=e=>{ee(e.main),ne(e.side.type),h(e.side.id),K(!0)},He=(e,t,n,r)=>({...e,focus:{...R},open:t,seq:n,enter:r}),Ue=()=>{let e=history.state;e?.[W]||(J.current=0,Y.current=0,history.replaceState({...e,[W]:He(x,H,0,0)},``))},We=(e,t)=>{J.current+=1,Y.current=t;let n=e[z.current],i=e[G(z.current)],a=x[z.current],s=n.type===a.type&&n.id===a.id?location.pathname:r.path(n.type,n.id);history.pushState({...history.state,[W]:He(e,!0,J.current,t)},``,`${s}${o(location.search,y(i.id,i.type,R,n.type))}`)},Ge=e=>{Object.assign(R,{group:e.group,board:e.board,frame:e.frame,page:e.page}),ne(he(_.type,e)),h(e.with),K(!0),q(`side`)},Ke=(0,A.useRef)(Ge);Ke.current=Ge;let qe=(0,A.useRef)(()=>{});qe.current=()=>{z.current=`main`,V(`main`),K(!1)};let Je=(0,A.useRef)(Z);Je.current=Z,(0,A.useEffect)(()=>{let e=()=>{let e=history.state?.[W];if(e){let t=e.seq<J.current?-Y.current:e.enter;J.current=e.seq,Y.current=e.enter,Object.assign(R,e.focus);let n=U.filter(t=>!fe(e[t],S.current[t]));if(e.open&&n.length===1){Ve.current(n[0],e[n[0]],t||1);return}Je.current(e),e.open||qe.current();return}if(location.pathname!==r.path(g.type,g.id))return;ee(g);let t=s(location.search);t?Ke.current(t):qe.current()};return window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)},[r,g,R]);let Ye=Ee(r,m),Q=ce(()=>O?X.window(O):null),Xe=ue(e=>X.window(e),u),Ze=()=>{let e=z.current,t=H?f?De:null:e;for(let n of U){let r=M.current[n];if(!r)continue;let i=n===e?`primary`:`secondary`;r.dataset.role=i,r.style.order=i===`primary`?`0`:`2`,r.style.flex=!H||f?`1 1 auto`:i===`primary`?`0 0 ${Oe*100}%`:`1 1 0`;let a=t!==null&&t!==n;r.style.position=a?ve.position:``,r.style.inset=a?`0`:``,r.style.visibility=a?ve.visibility:``;let o=r.querySelector(`:scope > header`);o&&(o.style.display=i===`primary`?`none`:``)}let n=Ie.current[e];n&&(document.title=n);let r=document.querySelector(`link[rel="icon"]`);r&&(r.href=ae(x[e].type));let i=H&&!f&&x[e].type!==`document`;Re.current=H&&!f&&x[e].type===`document`;let o=I(`whiteboard`);return o&&a(X.window(o),{kind:`chrome`,hosted:Re.current}),O&&M.current[O]?.style.setProperty(`--split-notice-top`,i?`49px`:``),Q.host(i),Xe(x,e,H),t};(0,A.useEffect)(()=>l((e,t)=>{let n=L.current(`whiteboard`);if(e.kind===`ready`&&t&&n&&t===X.window(n)&&a(X.window(n),{kind:`chrome`,hosted:Re.current}),e.kind!==`title`)return;let r=U.find(e=>X.window(e)===t);r&&(Ie.current[r]=e.title,r===z.current&&(document.title=e.title))}),[]),(0,A.useLayoutEffect)(()=>{for(let e of Fe.current.splice(0))e.cancel();let e=Ze(),t=Pe.current,n=Ne.current;if(Pe.current=H,Ne.current=e,w())return;let r=M.current[G(z.current)];if(H&&!t&&!f)T(r,Se,{duration:ye,easing:D}),T(M.current[z.current],[{flexBasis:`100%`},{flexBasis:`${Oe*100}%`}],{duration:ye,easing:D});else if(f&&e&&n&&e!==n&&e!==z.current){let t=M.current[n];t&&(t.style.visibility=``),T(M.current[e],we,{duration:ye,easing:D}).then(()=>{t&&Ne.current!==n&&(t.style.visibility=`hidden`)})}});let $=(e,t)=>{let n=x[G(e)],i=o(location.search,t?y(n.id,n.type,R,x[e].type):null);history.replaceState(history.state,``,`${r.path(x[e].type,x[e].id)}${i}`)},Qe=async(e,t,n)=>{if(!e||w())return n();let r=e.animate(t,{duration:be,easing:E,fill:`forwards`});await r.finished.catch(()=>void 0),Fe.current.push(r),n()},$e=()=>{let e=U.map(e=>M.current[e]?.getBoundingClientRect().left??0);z.current=G(z.current),Ze(),$(z.current,!0),!w()&&U.forEach((t,n)=>{let r=M.current[t],i=e[n]-(r?.getBoundingClientRect().left??0);r&&i&&T(r,[{transform:`translateX(${i}px)`},{transform:`none`}],{duration:xe,easing:D})})},et=()=>{let e=z.current;$(e,!1);let t=M.current[e],n=M.current[G(e)],r=()=>{V(e),K(!1)};if(!t||!n||w())return r();let i={duration:be,easing:E,fill:`forwards`},a=[t.animate([{flexBasis:`${Oe*100}%`},{flexBasis:`100%`}],i),n.animate(Ce,i)];Promise.all(a.map(e=>e.finished.catch(()=>void 0))).then(()=>{t.style.flex=`1 1 auto`,n.style.display=`none`,Le.current&&(Le.current.style.display=`none`);for(let e of a)e.cancel();r()})},tt=()=>{let e=M.current[De],t=M.current[z.current];t&&e&&!w()&&(t.style.visibility=``,e.style.zIndex=`1`),Qe(e,Te,()=>{e&&(e.style.zIndex=``),q(z.current)})},nt=e=>{let t=Me.current?.getBoundingClientRect();if(!t?.width)return;let n=(e.clientX-t.left)/t.width;ke(Math.min(_e,Math.max(ge,n)))};return(0,j.jsxs)(`div`,{ref:Me,...{0:{className:`x78zum5 xn9wirt xtdtrs8 xb3r6kr`},1:{className:`x78zum5 xb3r6kr xh8yej3 x5yr21d`}}[!!c|0],children:[U.map(e=>{let{type:t,id:n}=x[e];if(!n||!H&&e!==B)return null;let a=me[t];return(0,j.jsxs)(`section`,{"data-split-pane":t,"data-split-slot":e,ref:t=>{M.current[e]=t},className:`x1n2onr6 x78zum5 xdt5ytf xeuugli x5yr21d`,children:[H&&(0,j.jsxs)(`header`,{className:`x78zum5 x6s0dn4 x167g77z xn3w4p2 x2lah0s x1c5z90z xso031l x1q0q8m5 xtrfj0v xqfszdh x4z9k3i xo2rkog`,children:[f&&(0,j.jsx)(`button`,{"aria-label":d(`split.back`),"data-split-action":`back`,type:`button`,onClick:tt,className:`xrvj5dj x1ku5rj1 xgd8bvy x1fgtraw x1717udv xc342km x1kogg8i xjbqb8w x1bo0w0s x1ypdohk xj0l527 xytdrwj`,children:(0,j.jsx)(p,{size:18})}),(0,j.jsx)(a,{size:15}),(0,j.jsx)(`span`,{className:`x1s688f xeuugli xb3r6kr xlyipyv xuxw1ft`,children:e===`main`?n:Ye}),(0,j.jsx)(`span`,{className:`x1j6dyjg xddlp02`,children:d(`split.${t}`)}),e===O&&Q.header?.activity?(0,j.jsx)(`span`,{className:`xeuugli xb3r6kr xlyipyv xuxw1ft x1qt5hsa x1bo0w0s`,children:Q.header.activity}):null,(0,j.jsx)(`span`,{className:`x98rzlu`}),e===O&&Q.header?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(te,{available:Q.header.history,comments:Q.header.comments,open:Q.header.historyOpen,onComments:()=>Q.history(`close`),onHistory:()=>Q.history(`toggle`)}),(0,j.jsx)(`span`,{className:`x1i1rx1s xlup9mm xh6qj2i`})]}):null,!f&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`button`,{"aria-label":d(`split.swap`),"data-split-action":`swap`,title:d(`split.swap`),type:`button`,onClick:$e,className:`xrvj5dj x1ku5rj1 xgd8bvy x1fgtraw x1717udv xc342km x1kogg8i xjbqb8w x1bo0w0s x1ypdohk xj0l527 xytdrwj`,children:(0,j.jsx)(oe,{size:15})}),(0,j.jsx)(`button`,{"aria-label":d(`split.openAlone`),"data-split-action":`open-alone`,title:d(`split.openAlone`),type:`button`,onClick:()=>window.open(r.aloneHref(t,n),`_blank`,`noopener`),className:`xrvj5dj x1ku5rj1 xgd8bvy x1fgtraw x1717udv xc342km x1kogg8i xjbqb8w x1bo0w0s x1ypdohk xj0l527 xytdrwj`,children:(0,j.jsx)(v,{size:15})}),(0,j.jsx)(`button`,{"aria-label":d(`split.close`),"data-split-action":`close`,title:d(`split.close`),type:`button`,onClick:et,className:`xrvj5dj x1ku5rj1 xgd8bvy x1fgtraw x1717udv xc342km x1kogg8i xjbqb8w x1bo0w0s x1ypdohk xj0l527 xytdrwj`,children:(0,j.jsx)(i,{size:15})})]})]}),(0,j.jsxs)(`div`,{className:`x1n2onr6 x98rzlu x2lwn1j`,children:[e===O&&(0,j.jsx)(se,{bar:X.bar,onStep:X.step}),(N.incoming?.slot===e?[x[e],N.incoming.pane]:[x[e]]).map((t,n,i)=>{let a=n>0,o=X.frame(e);return(0,j.jsx)(`iframe`,{allow:r.frameAllow,"data-split-frame":t.type,"data-split-pending":a?``:void 0,"data-split-slot":e,src:r.frameSrc(t.type,t.id),title:t.id,ref:n===i.length-1?e=>{o(e),a&&N.frame(e)}:void 0,onLoad:a?N.loaded:void 0,...{0:{className:`xh8yej3 x5yr21d xc342km x1lliihq`},2:{className:`xh8yej3 x5yr21d xc342km x1lliihq x47corl`},1:{className:`xh8yej3 x5yr21d xc342km x1lliihq x10l6tqk x10a8y8t xg01cxk x47corl`},3:{className:`xh8yej3 x5yr21d xc342km x1lliihq x10l6tqk x10a8y8t xg01cxk x47corl`}}[!!Ae<<1|!!a]},`${t.type}/${t.id}`)})]})]},e)}),H&&m&&!f&&(0,j.jsx)(`div`,{"aria-orientation":`vertical`,ref:Le,role:`separator`,onPointerMove:e=>Ae&&nt(e),onPointerUp:()=>je(!1),onPointerDown:e=>{e.currentTarget.setPointerCapture(e.pointerId),je(!0)},className:`x9ek82g xrsdxou x1n2onr6 xh6qj2i xicojor x5ve5x3`,children:(0,j.jsx)(`span`,{className:`x10l6tqk x10no89f x1jsbkzl`})})]})}export{K as SplitShell};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{i as t}from"./route-Cvbs0pMv.js";import{t as n}from"./react-B8SKf8RM.js";import{Wr as r}from"./split-url-DCXSi810.js";import{t as i}from"./jsx-runtime-DePvh3-m.js";import{q as a}from"./MotionConfigContext-DBHtopYR.js";import{b as o}from"./useOpenInteractionType-B7ZAWZlS.js";import{t as s}from"./useTranslation-DczhMFuq.js";import{r as c}from"./agentLook-BkD9GF0y.js";import{n as l,o as u,t as d}from"./Avatar-C76h25SW.js";var f={name:`ellipsis`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`19`,cy:`12`,r:`1`,key:`1wjl8i`}],[`circle`,{cx:`5`,cy:`12`,r:`1`,key:`1pcz8c`}]],aliases:[`more-horizontal`]};f.node;var p=a(f),m={name:`frame`,size:24,node:[[`line`,{x1:`22`,x2:`2`,y1:`6`,y2:`6`,key:`15w7dq`}],[`line`,{x1:`22`,x2:`2`,y1:`18`,y2:`18`,key:`1ip48p`}],[`line`,{x1:`6`,x2:`6`,y1:`2`,y2:`22`,key:`a2lnyx`}],[`line`,{x1:`18`,x2:`18`,y1:`2`,y2:`22`,key:`8vb6jd`}]]};m.node;var h=a(m),g={name:`layers`,size:24,node:[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]],aliases:[`layers-3`]};g.node;var _=a(g),v={name:`rotate-ccw`,size:24,node:[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]};v.node;var y=a(v),b={name:`type`,size:24,node:[[`path`,{d:`M12 4v16`,key:`1654pz`}],[`path`,{d:`M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2`,key:`e0r10z`}],[`path`,{d:`M9 20h6`,key:`s66wpe`}]]};b.node;var x=a(b),S=e(n(),1),C=i(),w=e=>new Date(e).toLocaleTimeString(t.language,{hour:`2-digit`,minute:`2-digit`});function T({message:e,onEdit:t,onDelete:n}){let{t:r}=s(),[i,a]=(0,S.useState)(!1),o=e.author===`human`,{label:u,initial:f}=c(e);return(0,C.jsxs)(`div`,{className:`x14vqqas x14l7nz5`,children:[(0,C.jsxs)(`div`,{className:`x78zum5 x6s0dn4 x1j9xkj6 x1j6dyjg x1s688f xjpr12u`,children:[(0,C.jsx)(d,{human:o,initial:f,name:e.name,src:e.avatar}),u,` `,(0,C.jsx)(`span`,{className:`xc7n51q xo1l8bm`,children:w(e.editedAt??e.at)}),o&&t&&n&&!e.deleted&&!i?(0,C.jsxs)(`span`,{className:`xvc5jky x78zum5 x17d4w8g`,children:[(0,C.jsx)(`button`,{type:`button`,onClick:()=>a(!0),className:`x1717udv xc342km xjbqb8w xddlp02 xytdrwj x1j6dyjg x1ypdohk`,children:r(`common.edit`)}),(0,C.jsx)(`button`,{type:`button`,onClick:n,className:`x1717udv xc342km xjbqb8w xddlp02 xytdrwj x1j6dyjg x1ypdohk`,children:r(`common.delete`)})]}):null]}),e.deleted?(0,C.jsx)(`div`,{className:`xc7n51q x1k4tb9n`,children:r(`common.deleted`)}):i?(0,C.jsx)(l,{autoFocus:!0,initial:e.text,placeholder:``,onCancel:()=>a(!1),onSubmit:e=>(t?.(e),a(!1))}):(0,C.jsx)(`div`,{className:`x126k92a xj0a0fe`,children:e.text})]})}function E({thread:e,agent:n=`Agent`}){let r=u(e);return r===`human`?(0,C.jsx)(`span`,{className:`x2lah0s xsplgde xdqyycr x1e6avla x1k6wstc xqdcvd7 x7zghnd`,children:t.t(`comments.waitingYou`)}):r===`agent`?(0,C.jsx)(`span`,{title:t.t(`comments.agentReadsNext`,{agent:n}),className:`x2lah0s xsplgde xdqyycr x1e6avla x1k6wstc xlssvyo x19ay2w6`,children:t.t(`comments.waitingAgent`,{agent:n})}):null}function D({thread:e,actions:t}){return(0,C.jsx)(`div`,{className:`xp59q4u xqin4a2`,children:e.messages.map(n=>(0,C.jsx)(T,{message:n,onDelete:t&&(()=>t.remove(e.id,n.id)),onEdit:t&&(r=>t.edit(e.id,n.id,r))},n.id))})}function O({thread:e,label:t,actions:n,agent:i,onClose:a}){let{t:c}=s(),u=e.status===`resolved`;return(0,C.jsxs)(`div`,{className:`xqfszdh xfifm61 x1dbl2gt xo2rkog xt0e3qv`,children:[(0,C.jsxs)(`div`,{className:`x78zum5 x6s0dn4 x167g77z x889kno xqin4a2 x1j6dyjg`,children:[(0,C.jsx)(`span`,{className:`x98rzlu xeuugli xb3r6kr xuxw1ft xlyipyv xddlp02`,children:t}),n?(0,C.jsx)(E,{agent:i,thread:e}):null,n?u?(0,C.jsx)(`button`,{title:c(`common.reopen`),type:`button`,onClick:()=>n.reopen(e.id),className:`x2lah0s x17z2i9w x17rw0jw xrvj5dj x1ku5rj1 x1717udv xc342km x1kogg8i xjbqb8w xj0l527 xddlp02 xytdrwj xfifm61 x1ypdohk`,children:(0,C.jsx)(y,{size:13,strokeWidth:2.2})}):(0,C.jsx)(`button`,{title:c(`common.markResolved`),type:`button`,onClick:()=>n.resolve(e.id),className:`x2lah0s x17z2i9w x17rw0jw xrvj5dj x1ku5rj1 x1717udv xc342km x1kogg8i xjbqb8w xj0l527 xddlp02 xytdrwj xfifm61 x1ypdohk`,children:(0,C.jsx)(o,{size:14,strokeWidth:2.4})}):null,a?(0,C.jsx)(`button`,{title:c(`common.close`),type:`button`,onClick:a,className:`x2lah0s x17z2i9w x17rw0jw xrvj5dj x1ku5rj1 x1717udv xc342km x1kogg8i xjbqb8w xj0l527 xddlp02 xytdrwj xfifm61 x1ypdohk`,children:(0,C.jsx)(r,{size:13,strokeWidth:2.2})}):null]}),(0,C.jsx)(D,{actions:n,thread:e}),n&&!u?(0,C.jsx)(l,{placeholder:c(`common.reply`),onCancel:a,onSubmit:t=>n.reply(e.id,t)}):null]})}export{y as a,p as c,x as i,O as n,_ as o,E as r,h as s,D as t};
1
+ import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{i as t}from"./route-B-3a8kXR.js";import{t as n}from"./react-B8SKf8RM.js";import{Wr as r}from"./split-url-Ds_SbiRI.js";import{t as i}from"./jsx-runtime-DePvh3-m.js";import{q as a}from"./MotionConfigContext-DBHtopYR.js";import{b as o}from"./useOpenInteractionType-CFrlkl-M.js";import{t as s}from"./useTranslation-BCUMbI5g.js";import{r as c}from"./agentLook-GSv6M_4b.js";import{n as l,o as u,t as d}from"./Avatar-ChKkUO4F.js";var f={name:`ellipsis`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`19`,cy:`12`,r:`1`,key:`1wjl8i`}],[`circle`,{cx:`5`,cy:`12`,r:`1`,key:`1pcz8c`}]],aliases:[`more-horizontal`]};f.node;var p=a(f),m={name:`frame`,size:24,node:[[`line`,{x1:`22`,x2:`2`,y1:`6`,y2:`6`,key:`15w7dq`}],[`line`,{x1:`22`,x2:`2`,y1:`18`,y2:`18`,key:`1ip48p`}],[`line`,{x1:`6`,x2:`6`,y1:`2`,y2:`22`,key:`a2lnyx`}],[`line`,{x1:`18`,x2:`18`,y1:`2`,y2:`22`,key:`8vb6jd`}]]};m.node;var h=a(m),g={name:`layers`,size:24,node:[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]],aliases:[`layers-3`]};g.node;var _=a(g),v={name:`rotate-ccw`,size:24,node:[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]};v.node;var y=a(v),b={name:`type`,size:24,node:[[`path`,{d:`M12 4v16`,key:`1654pz`}],[`path`,{d:`M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2`,key:`e0r10z`}],[`path`,{d:`M9 20h6`,key:`s66wpe`}]]};b.node;var x=a(b),S=e(n(),1),C=i(),w=e=>new Date(e).toLocaleTimeString(t.language,{hour:`2-digit`,minute:`2-digit`});function T({message:e,onEdit:t,onDelete:n}){let{t:r}=s(),[i,a]=(0,S.useState)(!1),o=e.author===`human`,{label:u,initial:f}=c(e);return(0,C.jsxs)(`div`,{className:`x14vqqas x14l7nz5`,children:[(0,C.jsxs)(`div`,{className:`x78zum5 x6s0dn4 x1j9xkj6 x1j6dyjg x1s688f xjpr12u`,children:[(0,C.jsx)(d,{human:o,initial:f,name:e.name,src:e.avatar}),u,` `,(0,C.jsx)(`span`,{className:`xc7n51q xo1l8bm`,children:w(e.editedAt??e.at)}),o&&t&&n&&!e.deleted&&!i?(0,C.jsxs)(`span`,{className:`xvc5jky x78zum5 x17d4w8g`,children:[(0,C.jsx)(`button`,{type:`button`,onClick:()=>a(!0),className:`x1717udv xc342km xjbqb8w xddlp02 xytdrwj x1j6dyjg x1ypdohk`,children:r(`common.edit`)}),(0,C.jsx)(`button`,{type:`button`,onClick:n,className:`x1717udv xc342km xjbqb8w xddlp02 xytdrwj x1j6dyjg x1ypdohk`,children:r(`common.delete`)})]}):null]}),e.deleted?(0,C.jsx)(`div`,{className:`xc7n51q x1k4tb9n`,children:r(`common.deleted`)}):i?(0,C.jsx)(l,{autoFocus:!0,initial:e.text,placeholder:``,onCancel:()=>a(!1),onSubmit:e=>(t?.(e),a(!1))}):(0,C.jsx)(`div`,{className:`x126k92a xj0a0fe`,children:e.text})]})}function E({thread:e,agent:n=`Agent`}){let r=u(e);return r===`human`?(0,C.jsx)(`span`,{className:`x2lah0s xsplgde xdqyycr x1e6avla x1k6wstc xqdcvd7 x7zghnd`,children:t.t(`comments.waitingYou`)}):r===`agent`?(0,C.jsx)(`span`,{title:t.t(`comments.agentReadsNext`,{agent:n}),className:`x2lah0s xsplgde xdqyycr x1e6avla x1k6wstc xlssvyo x19ay2w6`,children:t.t(`comments.waitingAgent`,{agent:n})}):null}function D({thread:e,actions:t}){return(0,C.jsx)(`div`,{className:`xp59q4u xqin4a2`,children:e.messages.map(n=>(0,C.jsx)(T,{message:n,onDelete:t&&(()=>t.remove(e.id,n.id)),onEdit:t&&(r=>t.edit(e.id,n.id,r))},n.id))})}function O({thread:e,label:t,actions:n,agent:i,onClose:a}){let{t:c}=s(),u=e.status===`resolved`;return(0,C.jsxs)(`div`,{className:`xqfszdh xfifm61 x1dbl2gt xo2rkog xt0e3qv`,children:[(0,C.jsxs)(`div`,{className:`x78zum5 x6s0dn4 x167g77z x889kno xqin4a2 x1j6dyjg`,children:[(0,C.jsx)(`span`,{className:`x98rzlu xeuugli xb3r6kr xuxw1ft xlyipyv xddlp02`,children:t}),n?(0,C.jsx)(E,{agent:i,thread:e}):null,n?u?(0,C.jsx)(`button`,{title:c(`common.reopen`),type:`button`,onClick:()=>n.reopen(e.id),className:`x2lah0s x17z2i9w x17rw0jw xrvj5dj x1ku5rj1 x1717udv xc342km x1kogg8i xjbqb8w xj0l527 xddlp02 xytdrwj xfifm61 x1ypdohk`,children:(0,C.jsx)(y,{size:13,strokeWidth:2.2})}):(0,C.jsx)(`button`,{title:c(`common.markResolved`),type:`button`,onClick:()=>n.resolve(e.id),className:`x2lah0s x17z2i9w x17rw0jw xrvj5dj x1ku5rj1 x1717udv xc342km x1kogg8i xjbqb8w xj0l527 xddlp02 xytdrwj xfifm61 x1ypdohk`,children:(0,C.jsx)(o,{size:14,strokeWidth:2.4})}):null,a?(0,C.jsx)(`button`,{title:c(`common.close`),type:`button`,onClick:a,className:`x2lah0s x17z2i9w x17rw0jw xrvj5dj x1ku5rj1 x1717udv xc342km x1kogg8i xjbqb8w xj0l527 xddlp02 xytdrwj xfifm61 x1ypdohk`,children:(0,C.jsx)(r,{size:13,strokeWidth:2.2})}):null]}),(0,C.jsx)(D,{actions:n,thread:e}),n&&!u?(0,C.jsx)(l,{placeholder:c(`common.reply`),onCancel:a,onSubmit:t=>n.reply(e.id,t)}):null]})}export{y as a,p as c,x as i,O as n,_ as o,E as r,h as s,D as t};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{t}from"./react-B8SKf8RM.js";import{$r as n,$t as r,Bi as i,Dn as a,Ft as o,Ki as s,Kt as c,Nr as l,Oi as u,Pr as d,Qi as f,Qr as p,Qt as m,Sr as h,Xi as g,Xr as _,Yt as v,Zr as y,Zt as b,an as x,br as S,ci as C,da as w,dr as T,en as E,fa as D,in as O,la as k,li as A,ln as j,lr as ee,na as te,on as M,pa as N,pn as ne,qi as P,qr as F,qt as re,ra as I,sa as L,sn as R,sr as ie,wi as z,xr as B,yr as ae}from"./split-url-Ds_SbiRI.js";import{t as V}from"./jsx-runtime-DePvh3-m.js";import{q as H}from"./MotionConfigContext-DBHtopYR.js";import{a as U,g as oe,h as W,m as se,o as G,p as ce,s as K,v as q}from"./useOpenInteractionType-CFrlkl-M.js";import{g as le}from"./Popover-Mq50eaGz.js";import{a as ue,o as de}from"./parseTrigger-Bl4n5XXS.js";var J={name:`arrow-left`,size:24,node:[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]};J.node;var fe=H(J),Y={name:`arrow-right-to-line`,size:24,node:[[`path`,{d:`M17 12H3`,key:`8awo09`}],[`path`,{d:`m11 18 6-6-6-6`,key:`8c2y43`}],[`path`,{d:`M21 5v14`,key:`nzette`}]]};Y.node;var pe=H(Y),me={name:`arrow-right`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]};me.node;var he=H(me),ge={name:`copy`,size:24,node:[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]};ge.node;var _e=H(ge),ve={name:`delete`,size:24,node:[[`path`,{d:`M10 5a2 2 0 0 0-1.344.519l-6.328 5.74a1 1 0 0 0 0 1.481l6.328 5.741A2 2 0 0 0 10 19h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2z`,key:`1yo7s0`}],[`path`,{d:`m12 9 6 6`,key:`anjzzh`}],[`path`,{d:`m18 9-6 6`,key:`1fp51s`}]]};ve.node;var ye=H(ve),be={name:`globe`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]};be.node;var xe=H(be),Se={name:`link-2`,size:24,node:[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]};Se.node;var Ce=H(Se),we={name:`link`,size:24,node:[[`path`,{d:`M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71`,key:`1cjeqo`}],[`path`,{d:`M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71`,key:`19qd67`}]]};we.node;var Te=H(we),Ee={name:`lock`,size:24,node:[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`,key:`1w4ew1`}],[`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`,key:`fwvmzm`}]]};Ee.node;var De=H(Ee),Oe={name:`minus`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]};Oe.node;var ke=H(Oe),X=V(),Z=e(t(),1),Ae=Z.createContext(void 0);function Q(e){let t=Z.useContext(Ae);if(t===void 0&&!e)throw Error(L(72));return t}var je=Z.createContext({hasProvider:!1,timeoutMs:0,delayRef:{current:0},initialDelayRef:{current:0},timeout:new y,currentIdRef:{current:null},currentContextRef:{current:null}});function Me(e,t){e.current=t.current}function Ne(e){let{children:t,delay:n,timeoutMs:r=0}=e,i=Z.useRef(n),a=Z.useRef(n),o=Z.useRef(null),s=Z.useRef(null),c=p();return k(()=>{a.current=n,o.current?i.current={open:q(i.current,`open`),close:q(n,`close`)}:i.current=n},[n,o,i,a]),(0,X.jsx)(je.Provider,{value:Z.useMemo(()=>({hasProvider:!0,delayRef:i,initialDelayRef:a,currentIdRef:o,timeoutMs:r,currentContextRef:s,timeout:c}),[r,c]),children:t})}function Pe(e,t={open:!1}){let{open:n}=t,r=e.useState(`floatingId`),{currentIdRef:a,delayRef:o,timeoutMs:s,initialDelayRef:c,currentContextRef:l,hasProvider:u,timeout:d}=Z.useContext(je),[f,p]=Z.useState(!1),m=Z.useRef(n);return k(()=>{m.current=n},[n]),k(()=>{function t(){l.current?.setIsInstantPhase(!1),a.current=null,l.current=null,o.current=c.current,d.clear()}if(a.current&&!n&&a.current===r){if(p(!1),s){let n=r;return d.start(s,()=>{e.select(`open`)||a.current&&a.current!==n||t()}),()=>{(m.current||a.current!==n)&&d.clear()}}t()}},[n,r,a,o,s,c,l,d,e]),k(()=>{if(!n)return;let t=l.current,s=a.current;d.clear(),l.current={onOpenChange:e.setOpen,setIsInstantPhase:p},a.current=r,o.current={open:0,close:q(c.current,`close`)},s!==null&&s!==r?(p(!0),t?.setIsInstantPhase(!0),t?.onOpenChange(!1,g(i))):(p(!1),t?.setIsInstantPhase(!1))},[n,r,e,a,o,c,l,d]),k(()=>()=>{if(a.current===r){if(l.current=null,!m.current)return;a.current=null,Me(o,c),d.clear()}},[l,a,o,r,c,d]),Z.useMemo(()=>({activeIdRef:a,hasProvider:u,delayRef:o,isInstantPhase:f}),[a,u,o,f])}function Fe(e,t){let n=null,r=null,i=!1;return{contextElement:e||void 0,getBoundingClientRect(){let a=e?.getBoundingClientRect()||{width:0,height:0,x:0,y:0},o=t.axis===`x`||t.axis===`both`,s=t.axis===`y`||t.axis===`both`,c=[`mouseenter`,`mousemove`].includes(t.dataRef.current.openEvent?.type||``)&&t.pointerType!==`touch`,l=t.axis===`y`?a.width:0,u=t.axis===`x`?a.height:0,d=a.x,f=a.y;return n==null&&t.x&&o&&(n=a.x-t.x),r==null&&t.y&&s&&(r=a.y-t.y),d-=n||0,f-=r||0,(!i||c)&&(d=o&&t.x!=null?t.x:d,f=s&&t.y!=null?t.y:f),i=!0,{width:l,height:u,x:d,y:f,top:f,right:d+l,bottom:f+u,left:d}}}}function Ie(e){return e!=null&&e.clientX!=null}function Le(e,t={}){let{enabled:r=!0,axis:i=`both`}=t,a=e.useState(`open`),o=e.useState(`floatingElement`),s=e.useState(`domReferenceElement`),c=e.context.dataRef,l=Z.useRef(!1),u=Z.useRef(null),[d,f]=Z.useState(),[p,m]=Z.useState([]),g=N(t=>{e.set(`positionReference`,t)}),_=N((t,n,r)=>{l.current||(!c.current.openEvent||Ie(c.current.openEvent))&&e.set(`positionReference`,Fe(r??s,{x:t,y:n,axis:i,dataRef:c,pointerType:d}))}),v=N(e=>{a?u.current||(_(e.clientX,e.clientY,e.currentTarget),m([])):_(e.clientX,e.clientY,e.currentTarget)}),y=h(d)?o:a;Z.useEffect(()=>{if(!r){g(s);return}if(!y)return;function e(){u.current?.(),u.current=null}let t=C(o);function i(t){let n=B(t);S(o,n)?e():_(t.clientX,t.clientY)}return!c.current.openEvent||Ie(c.current.openEvent)?u.current=n(t,`mousemove`,i):g(s),e},[y,r,o,c,s,e,_,g,p]),Z.useEffect(()=>()=>{e.set(`positionReference`,null)},[e]),Z.useEffect(()=>{r&&!o&&(l.current=!1)},[r,o]),Z.useEffect(()=>{!r&&a&&(l.current=!0)},[r,a]);let b=Z.useMemo(()=>{function e(e){f(e.pointerType)}return{onPointerDown:e,onPointerEnter:e,onMouseMove:v,onMouseEnter:v}},[v]);return Z.useMemo(()=>r?{reference:b,trigger:b}:{},[r,b])}var Re={...re,disabled:e=>e.disabled,instantType:e=>e.instantType,isInstantPhase:e=>e.isInstantPhase,trackCursorAxis:e=>e.trackCursorAxis,disableHoverablePopup:e=>e.disableHoverablePopup,lastOpenChangeReason:e=>e.openChangeReason,closeOnClick:e=>e.closeOnClick,appliedTriggerProps:(e,t)=>t?e.activeTriggerProps:void 0,closeDelay:e=>e.closeDelay,adaptiveOrigin:e=>e.adaptiveOrigin},ze=class extends v{constructor(e,t,n){let r=new b;super(Ve(e,r,t,n),$(r),Re)}setOpen=(e,t)=>{E(this,e,t,{extraState:{openChangeReason:t.reason}})};cancelPendingOpen(e){this.state.floatingRootContext.dispatchOpenChange(!1,g(P,e))}};function Be(){let e=new b,t=new le(Object.freeze(Ve(void 0,e)),Object.freeze($(e)),Re);return Object.assign(t,{setOpen:D,cancelPendingOpen:D})}function Ve(e,t,n,r=!1){return{...c(t,n,r),disabled:!1,instantType:void 0,isInstantPhase:!1,trackCursorAxis:`none`,disableHoverablePopup:!1,openChangeReason:null,closeOnClick:!0,closeDelay:0,adaptiveOrigin:void 0,...e}}function $(e){return{popupRef:Z.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerElements:e}}var He=l(function(e){let{disabled:t=!1,defaultOpen:n=!1,open:i,disableHoverablePopup:a=!1,trackCursorAxis:o=`none`,actionsRef:s,onOpenChange:c,onOpenChangeComplete:l,handle:d,triggerId:f,defaultTriggerId:p=null,children:m}=e,h=R((e,t)=>new ze({open:n,openProp:i,activeTriggerId:p,triggerIdProp:f},e,t));h.useControlledProp(`openProp`,i),h.useControlledProp(`triggerIdProp`,f),h.useContextCallback(`onOpenChange`,c),h.useContextCallback(`onOpenChangeComplete`,l);let _=h.useState(`open`),v=!t&&_,y=h.useState(`activeTriggerId`),b=h.useState(`mounted`),S=h.useState(`payload`);h.useSyncedValues({trackCursorAxis:o,disableHoverablePopup:a,disabled:t}),O(h,{closeOnActiveTriggerUnmount:!0});let{forceUnmount:C,transitionStatus:w}=x(v,h),T=h.useState(`isInstantPhase`),E=h.useState(`instantType`),D=h.useState(`lastOpenChangeReason`),A=Z.useRef(null);k(()=>{_&&t&&h.setOpen(!1,g(z))},[_,t,h]),k(()=>{w===`ending`&&D===`none`||w!==`ending`&&T?(E!==`delay`&&(A.current=E),h.set(`instantType`,`delay`)):A.current!==null&&(h.set(`instantType`,A.current),A.current=null)},[w,T,D,E,h]),k(()=>{v&&(y??h.set(`payload`,void 0))},[h,y,v]),Z.useImperativeHandle(s,()=>({unmount:C,close:()=>h.setOpen(!1,g(u))}),[C,h]);let j=v||b||!t&&o!==`none`;return(0,X.jsxs)(Ae.Provider,{value:h,children:[d&&(0,X.jsx)(r,{handle:d,store:h}),j&&(0,X.jsx)(Ue,{store:h,disabled:t,trackCursorAxis:o}),typeof m==`function`?m({payload:S}):m]})});function Ue({store:e,disabled:t,trackCursorAxis:n}){let r=e.useState(`floatingRootContext`),i=ne(r,{enabled:!t,referencePress:()=>e.select(`closeOnClick`)}),a=Le(r,{enabled:!t&&n!==`none`,axis:n===`none`?void 0:n}),o=Z.useMemo(()=>I(a.reference,i.reference),[a.reference,i.reference]);return M(e,{activeTriggerProps:o,inactiveTriggerProps:o,popupProps:i.floating??w}),null}var We=Z.createContext(void 0);function Ge(){return Z.useContext(We)}var Ke=`data-base-ui-tooltip-trigger`;function qe(e){let t=B(e);return A(t)?t:null}var Je=d(function(e,t){let{render:n,className:r,style:i,handle:a,payload:o,disabled:c,delay:l,closeOnClick:u=!0,closeDelay:d,id:m,...v}=e,y=Q(!0),b=de(a)??y;if(!b)throw Error(L(82));let x=f(m),C=b.useState(`isTriggerActive`,x),w=b.useState(`isOpenedByTrigger`,x),E=b.useState(`floatingRootContext`),D=Z.useRef(null),O=d??0,{registerTrigger:k,isMountedByThisTrigger:A}=j(x,D,b,{payload:o,closeOnClick:u,closeDelay:O}),ee=Ge(),{activeIdRef:M,delayRef:N,isInstantPhase:ne,hasProvider:P}=Pe(E,{open:w}),F=oe(E);b.useSyncedValue(`isInstantPhase`,ne);let re=b.useState(`disabled`),I=c??re,R=_(I),z=b.useState(`trackCursorAxis`),B=b.useState(`disableHoverablePopup`),V=Z.useRef(!1),H=p(),U=Z.useRef(void 0);function W(){return P&&M.current!=null?0:l??ee??600}function G(e){let t=D.current;if(!t||!e)return!1;let n=ae(e,`[${Ke}]`);return n!==null&&n!==t&&S(t,n)}function K(e){let t=G(e);return V.current=t,t&&(F.openChangeTimeout.clear(),F.restTimeout.clear(),F.restTimeoutPending=!1,H.clear()),t}let le=se(E,{enabled:!I,mouseOnly:!0,move:!1,handleClose:!B&&z!==`both`?ce():null,restMs:W,delay(){return d==null&&P?{close:q(N.current,`close`)}:{close:O}},triggerElementRef:D,isActiveTrigger:C,isClosing:()=>b.select(`transitionStatus`)===`ending`,shouldOpen(){return!V.current}}),J=ue(E,{enabled:!I}).reference,fe=e=>{let t=V.current,n=qe(e),r=K(n),i=D.current,a=i&&n&&S(i,n);if(r&&b.select(`open`)&&b.select(`lastOpenChangeReason`)===`trigger-hover`)b.setOpen(!1,g(s,e));else if(t&&!r&&a&&!R.current&&!b.select(`open`)&&i&&h(U.current)){let t=()=>{V.current||R.current||b.select(`open`)||b.setOpen(!0,g(s,e,i))},n=W();n===0?(H.clear(),t()):H.start(n,t)}},Y=b.useState(`appliedTriggerProps`,A||z!==`none`);return te(`button`,e,{state:{open:w},ref:[t,k,D],props:[le,J,Y,{onMouseOver(e){fe(e.nativeEvent)},onFocus(e){G(qe(e.nativeEvent))&&e.preventBaseUIHandler()},onMouseLeave(){V.current=!1,H.clear(),U.current=void 0},onPointerEnter(e){U.current=e.pointerType},onPointerDown(e){U.current=e.pointerType,b.set(`closeOnClick`,u),u&&!b.select(`open`)&&b.cancelPendingOpen(e.nativeEvent)},onClick(e){u&&!b.select(`open`)&&b.cancelPendingOpen(e.nativeEvent)},id:x,[ie]:I?``:void 0,[Ke]:I?void 0:``},v],stateAttributesMapping:T})}),Ye=Z.createContext(void 0);function Xe(){let e=Z.useContext(Ye);if(e===void 0)throw Error(L(70));return e}var Ze=Z.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e;return Q().useState(`mounted`)||n?(0,X.jsx)(Ye.Provider,{value:n,children:(0,X.jsx)(o,{ref:t,...r})}):null}),Qe=Z.createContext(void 0);function $e(){let e=Z.useContext(Qe);if(e===void 0)throw Error(L(71));return e}var et=Z.forwardRef(function(e,t){let{render:n,className:r,anchor:i,positionMethod:o=`absolute`,side:s=`top`,align:c=`center`,sideOffset:l=0,alignOffset:u=0,collisionBoundary:d=`clipping-ancestors`,collisionPadding:f=5,arrowPadding:p=5,sticky:m=!1,disableAnchorTracking:h=!1,collisionAvoidance:g=a,style:_,...v}=e,y=Q(),b=Xe(),x=y.useState(`open`),S=y.useState(`mounted`),C=y.useState(`trackCursorAxis`),w=y.useState(`disableHoverablePopup`),T=y.useState(`floatingRootContext`),E=y.useState(`instantType`),D=y.useState(`transitionStatus`),O=y.useState(`adaptiveOrigin`),k=K({anchor:i,positionMethod:o,floatingRootContext:T,mounted:S,side:s,sideOffset:l,align:c,alignOffset:u,collisionBoundary:d,collisionPadding:f,sticky:m,arrowPadding:p,disableAnchorTracking:h,keepMounted:b,collisionAvoidance:g,adaptiveOrigin:O}),A=Z.useMemo(()=>({open:x,side:k.side,align:k.align,anchorHidden:k.anchorHidden,instant:C===`none`?E:`tracking-cursor`}),[x,k.side,k.align,k.anchorHidden,C,E]),j=U(e,A,{styles:k.positionerStyles,transitionStatus:D,props:v,refs:[t,y.useStateSetter(`positionerElement`)],hidden:!S,inert:!x||C===`both`||w});return(0,X.jsx)(Qe.Provider,{value:k,children:j})}),tt=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,o=Q(),{side:s,align:c}=$e(),l=o.useState(`open`),u=o.useState(`instantType`),d=o.useState(`transitionStatus`),f=o.useState(`popupProps`),p=o.useState(`floatingRootContext`),h=o.useState(`disabled`),g=o.useState(`closeDelay`);F({open:l,ref:o.context.popupRef,onComplete(){l&&o.context.onOpenChangeComplete?.(!0)}}),W(p,{enabled:!h,closeDelay:g});let _=o.useStateSetter(`popupElement`);return te(`div`,e,{state:{open:l,side:s,align:c,instant:u,transitionStatus:d},ref:[t,o.context.popupRef,_],props:[m,f,G(d),a],stateAttributesMapping:ee})});export{_e as _,Je as a,fe as b,Be as c,ke as d,De as f,ye as g,xe as h,Ze as i,Ne as l,Ce as m,et as n,We as o,Te as p,$e as r,He as s,tt as t,Q as u,he as v,pe as y};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{g as t}from"./route-Cvbs0pMv.js";import{t as n}from"./react-B8SKf8RM.js";import{t as r}from"./jsx-runtime-DePvh3-m.js";import{$t as i,At as a,Bt as o,Ct as s,Dt as c,Et as l,Ft as u,Gt as d,Ht as f,It as p,Jt as m,Kt as h,Lt as g,Mt as _,Ot as v,Pt as y,Qt as b,Rt as x,St as S,Tt as C,Ut as w,Vt as T,Wt as E,Xt as D,Yt as O,Zt as k,bt as A,jt as j,kt as ee,qt as te,vt as ne,wt as M,xt as N,yt as P,zt as F}from"./channel-B15uf_mz.js";import{c as I,i as L,l as R,n as z,o as B,r as V,s as H,t as U}from"./viewport-CFJHn_Y6-C1jXsfyM.js";var W=e(n(),1),G=e(t(),1),K=r(),q=class{constructor(e){b(this,`host`,void 0),b(this,`range`,void 0),b(this,`listeners`,new Set),this.host=e}get editor(){return this.host.master}keys(){let e=this.bounds();return e?this.host.rows.slice(e[0],e[1]+1).map(e=>e.key):[]}islandKeys(e){let t=this.bounds(),n=this.host.islandIds(e);return!t||!n?[]:e.getEditorState().read(()=>c().getChildren().filter((e,r)=>{let i=n[r]===void 0?void 0:this.host.indexOf(n[r]);return i!==void 0&&i>=t[0]&&i<=t[1]}).map(e=>e.getKey()))}select(e,t,n){let r=this.host.islandIds(e);if(!r)return;let[i,a]=e.getEditorState().read(()=>{let e=c().getChildren().map(e=>e.getKey());return[r[e.indexOf(t)],r[e.indexOf(n)]]});i&&a&&this.set({anchorId:i,focusId:a})}selectAll(){let{rows:e}=this.host;e.length&&this.set({anchorId:e[0].id,focusId:e.at(-1).id})}extend(e){let t=this.range&&this.host.indexOf(this.range.focusId),n=t===void 0?void 0:this.host.rows[t+e];return!this.range||!n?!1:(this.set({anchorId:this.range.anchorId,focusId:n.id}),!0)}clear(){this.range&&this.set(void 0)}prune(){this.range&&(this.host.indexOf(this.range.anchorId)===void 0||this.host.indexOf(this.range.focusId)===void 0)&&this.set(void 0)}focusSelection(){let e=this.host.master.getEditorState().read(()=>{let e=j();if(!p(e))return null;let t=e.anchor.getNode(),n=t.getTopLevelElement()??t,r=(d(n)?n.getLastDescendant():null)??n;return{key:n.getKey(),end:t.is(r)&&e.anchor.offset===t.getTextContentSize()}}),t=e?this.host.rows.findIndex(t=>t.key===e.key):-1;t>=0&&this.host.focusBlock(t,e.end)}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}bounds(){if(!this.range)return null;let e=this.host.indexOf(this.range.anchorId),t=this.host.indexOf(this.range.focusId);return e===void 0||t===void 0?null:[Math.min(e,t),Math.max(e,t)]}set(e){this.range=e,this.listeners.forEach(e=>e())}};function J(e){let t=x(e);d(e)&&(t.children=e.getChildren().map(J));for(let n of F(e))t.$slots??={},t.$slots[n]=J(T(e,n));return t}var Y=class{constructor(e){b(this,`editor`,void 0),b(this,`rows`,[]),b(this,`onChange`,void 0),b(this,`unsubscribe`,void 0),b(this,`lastEdit`,void 0),this.editor=e,this.read(),this.unsubscribe=e.registerUpdateListener(({dirtyElements:e,dirtyLeaves:t,tags:n})=>{if(!e.size&&!t.size)return;this.read(new Set([...e.keys(),...t]));let r=[...n].find(e=>e.startsWith(`virtual-island:`));r||(this.lastEdit=void 0),this.onChange?.(r)})}read(e){let t=new Map(this.rows.map(e=>[e.key,e]));this.rows=this.editor.getEditorState().read(()=>c().getChildren().map(n=>{let r=n.getKey(),i=t.get(r);if(i?.node===n&&!e?.has(r))return i;let a=J(n);return{data:a,key:r,node:n,id:u(n,M)||r,pool:`${a.type}:${a.url??a.tag??a.listType??``}`}}))}replace(e,t,n){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=>l(e));if(e.some(e=>!e))throw Error(`Virtual editor block was removed`);let n;for(let r of t){let t=_(r);n?n.insertAfter(t):e[0].insertBefore(t),n=t}for(let t of e)t.remove()},{discrete:!0,tag:[o?`history-merge`:`history-push`,`virtual-island:${n}`]}),this.lastEdit={source:n,ids:e.join(`,`),time:a,count:t.length}}dispose(){this.unsubscribe()}},X=new Set([`paragraph`,`text`,`heading`,`quote`,`list`,`listitem`,`details`,`dynamic`]);function Z(e,t){let n=e.getChildren();t.forEach((t,r)=>{let i=n[r];if(i?.getType()===t.type&&X.has(t.type)){if(i.updateFromJSON(t),t.type===`details`){let e=i;e.setOpen(!!t.open),e.setSummary(t.summary)}else if(t.type===`dynamic`){let e=i;e.setUrl(t.url),e.setProps(t.props),e.setInitialHeight(t.initialHeight)}d(i)&&Z(i,t.children??[])}else{let n=_(t);i?i.replace(n):e.append(n)}});for(let e of n.slice(t.length))e.remove()}function Q(e){for(;e?.getParent()&&e.getParent().getType()!==`root`;)e=e.getParent();return e?.getParent()?e:null}function $(e,t){let n=document.caretPositionFromPoint?.(e,t);if(n)return{node:n.offsetNode,offset:n.offset};let r=document.caretRangeFromPoint?.(e,t);return r?{node:r.startContainer,offset:r.startOffset}:null}var re=class{constructor(e,t,n){if(b(this,`master`,void 0),b(this,`canvas`,void 0),b(this,`options`,void 0),b(this,`document`,void 0),b(this,`pool`,new V),b(this,`islands`,new Map),b(this,`states`,new Map),b(this,`viewport`,void 0),b(this,`preserve`,void 0),b(this,`documentBlocks`,new q(this)),b(this,`heights`,void 0),b(this,`revision`,0),b(this,`indices`,new Map),b(this,`listeners`,new Set),b(this,`observer`,void 0),b(this,`frame`,0),b(this,`dead`,!1),b(this,`width`,void 0),b(this,`metrics`,new Map),b(this,`firstParagraph`,-1),b(this,`selectionOwner`,void 0),b(this,`splitting`,new Set),b(this,`drag`,void 0),b(this,`previousRows`,[]),b(this,`onScroll`,()=>{this.refresh(),this.drag&&this.dragTo(this.drag.y)}),b(this,`onPointerDown`,e=>{if(e.button!==0)return;this.documentBlocks.clear();let t=this.pool.slots.find(t=>t.active&&t.element?.contains(e.target));if(!t)return;let n=this.pool.slots.find(e=>e.active&&e.id===this.selectionOwner),r=e.shiftKey&&n&&n!==t?n:t,i=this.island(r).editor.getRootElement();if(i){if(r!==t)e.preventDefault(),this.extendToPoint(r,i,e.clientX,e.clientY);else if(e.target.closest?.(`[contenteditable]`)!==i)return;this.drag={slot:r,y:e.clientY},document.addEventListener(`pointermove`,this.onPointerMove),document.addEventListener(`pointerup`,this.endDrag),document.addEventListener(`pointercancel`,this.endDrag)}}),b(this,`onPointerMove`,e=>{if(this.drag){if(!(e.buttons&1))return this.endDrag();this.drag.y=e.clientY,this.dragTo(e.clientY)}}),b(this,`endDrag`,()=>{this.drag=void 0,document.removeEventListener(`pointermove`,this.onPointerMove),document.removeEventListener(`pointerup`,this.endDrag),document.removeEventListener(`pointercancel`,this.endDrag)}),b(this,`onFocusIn`,e=>{let t=this.pool.slots.find(t=>t.element?.contains(e.target));t&&(this.selectionOwner=t.id)}),this.master=e,this.canvas=t,this.options=n,this.viewport=I(t,n.scrollContainer),this.preserve=new z(n.preserveCapacity??32,e=>{this.pool.slots.find(t=>t.id===e)?.beforeRelease?.()}),n.overscan!==void 0&&(!Number.isFinite(n.overscan)||n.overscan<0))throw Error(`Virtual editor overscan must be a nonnegative number`);this.document=new Y(e),this.indices=new Map(this.rows.map((e,t)=>[e.id,t])),this.firstParagraph=this.rows.findIndex(e=>e.data.type===`paragraph`),e.update(()=>c().markDirty(),{discrete:!0,tag:`history-merge`}),this.width=t.clientWidth;try{this.heights=this.buildHeights()}catch(e){throw this.document.dispose(),e}t.style.height=`${this.heights.total}px`,this.document.onChange=e=>{this.reconcileDocument(e)},this.previousRows=this.rows.map(e=>({id:e.id,data:e.data})),this.observer=new ResizeObserver(()=>this.queueMeasure()),this.observer.observe(t),this.viewport instanceof HTMLElement&&this.observer.observe(this.viewport),this.viewport.addEventListener(`scroll`,this.onScroll,{passive:!0}),window.addEventListener(`resize`,this.onScroll),t.addEventListener(`focusin`,this.onFocusIn),t.addEventListener(`pointerdown`,this.onPointerDown),this.refresh(!1)}get rows(){return this.document.rows}get scrollTop(){return this.viewport instanceof HTMLElement?this.viewport.scrollTop:window.scrollY}setScrollTop(e){this.viewport instanceof HTMLElement?this.viewport.scrollTop=e:window.scrollTo(window.scrollX,e)}viewportTop(){return this.viewport instanceof HTMLElement?this.viewport.getBoundingClientRect().top+this.viewport.clientTop:0}viewportHeight(){return this.viewport instanceof HTMLElement?this.viewport.clientHeight:window.innerHeight}canvasTop(){return this.canvas.getBoundingClientRect().top-this.viewportTop()+this.scrollTop}buildHeights(){return new U(this.rows.map(e=>this.estimate(e.data)))}estimate(e){let t=this.options.estimateBlockHeight?.(e,this.width)??B(e,this.width);if(!Number.isFinite(t)||t<=0)throw Error(`Virtual editor estimated height must be positive and finite`);return Math.max(24,t)}reconcileDocument(e){let t=this.anchor(),n=new Map(this.previousRows.map((e,t)=>[e.id,{...e,height:this.heights.values[t]}]));(this.rows.length!==this.previousRows.length||this.rows.some((e,t)=>e.id!==this.previousRows[t].id))&&(this.heights=new U(this.rows.map(e=>n.get(e.id)?.height??this.estimate(e.data))));let r=new Map(this.rows.map((e,t)=>[e.id,t]));this.indices=r,this.documentBlocks.prune(),this.firstParagraph=this.rows.findIndex(e=>e.data.type===`paragraph`);for(let e of this.metrics.keys())r.has(e)||this.metrics.delete(e);for(let t of this.pool.slots){let n=this.islands.get(t.id);if(!n)continue;let i=n.ids.flatMap(e=>r.get(e)??[]);n.ids=i.length>1?this.rows.slice(Math.min(...i),Math.max(...i)+1).map(e=>e.id):i.map(e=>this.rows[e].id),n.source=e===`virtual-island:${t.id}`,n.ids.length?(t.index=r.get(n.ids[0]),t.pool=this.rows[t.index].pool):(t.beforeRelease?.(),t.active=!1)}this.pool.slots=this.pool.slots.filter(e=>{let t=this.islands.get(e.id);return!t||t.ids.length?!0:(t.unsubscribe(),this.preserve.forget(e.id),this.islands.delete(e.id),this.pool.disposed++,!1)}),this.previousRows=this.rows.map(e=>({id:e.id,data:e.data})),this.restore(t),this.refresh(!1),this.publish(),this.queueMeasure()}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}publish(e=!0){if(this.dead||!this.listeners.size)return;this.revision++;let t=()=>this.listeners.forEach(e=>e());e?(0,G.flushSync)(t):t()}indexOf(e){return this.indices.get(e)}islandIds(e){for(let t of this.islands.values())if(t.editor===e)return t.ids}rowAt(e){let t=e-this.canvas.getBoundingClientRect().top-this.leadingMargin;return this.heights.find(Math.max(0,t))}dragTo(e){let t=this.drag?.slot;if(!t?.active)return;let n=this.rowAt(e);(n<t.index||n>=t.index+this.island(t).ids.length)&&this.extendIsland(t,n,!0)}extendToPoint(e,t,n,r){if(!this.extendIsland(e,this.rowAt(r),!0))return;let i=window.getSelection(),a=$(n,r);i?.anchorNode&&t.contains(i.anchorNode)&&a&&t.contains(a.node)&&i.extend(a.node,a.offset)}holdsSelection(e,t){return e.id===this.selectionOwner&&t.editor.getEditorState().read(()=>j()!==null)}refresh(e=!0){if(this.dead||!this.rows.length)return;let t=Math.max(0,this.scrollTop-this.canvasTop()),n=this.options.overscan??this.viewportHeight()*1.5,r=this.heights.find(Math.max(0,t-n)),i=this.heights.find(t+this.viewportHeight()+n),a=new Set,o=[],s=new Set;for(let e of this.pool.slots){let t=this.islands.get(e.id);if(t&&(e.active||this.preserve.has(e.id))){(t.retained||t.editor.isComposing()||e.element?.contains(document.activeElement)||this.holdsSelection(e,t))&&s.add(e.id);for(let n=1;n<t.ids.length;n++)a.add(e.index+n);t.ids.length>1&&e.index<r&&e.index+t.ids.length>r&&o.push(e.index)}}let c=[...o,...Array.from({length:i-r+1},(e,t)=>r+t)].filter(e=>!a.has(e)),l=new Set(c),u=new Set;for(let e of this.pool.slots)(l.has(e.index)||s.has(e.id))&&this.preserve.activate(e.id)&&u.add(e.id);for(let e of this.pool.slots)e.active&&!l.has(e.index)&&!s.has(e.id)&&this.preserve.park(e.id,this.islands.get(e.id)?.ids.join(`,`)??``);let d=new Set([...this.preserve.ids(),...u]),f=this.pool.update(c,e=>this.rows[e].pool,s,d);for(let[e,t]of this.islands)this.pool.slots.some(t=>t.id===e)||(t.unsubscribe(),t.editor.setRootElement(null),this.preserve.forget(e),this.islands.delete(e));f&&this.publish(e)}island(e){let t=this.islands.get(e.id);if(t)return t;let n=this.master.read(()=>h());return t={editor:n,ids:[],generation:-1,loading:!1,source:!1,data:``,unsubscribe:()=>{},retained:0},this.islands.set(e.id,t),t.unsubscribe=n.registerUpdateListener(({editorState:r,dirtyElements:i,dirtyLeaves:a,tags:o})=>{if(t.ids.length>1&&this.queueSplit(e),t.loading||!t.ids.length||o.has(`virtual-bind`)||!i.size&&!a.size)return;let s=r.toJSON().root.children;if(JSON.stringify(s)===t.data)return;let l=new Set;s.forEach((e,n)=>{let r=e.$?.blockId,i=this.indices.has(r)&&!t.ids.includes(r);(!r||l.has(r)||i)&&(r=n===0?t.ids[0]:C(8)),e.$={...e.$,blockId:r},l.add(r)});let u=[...t.ids];t.ids=s.map(e=>e.$.blockId),t.data=JSON.stringify(s),n.update(()=>c().getChildren().forEach((e,n)=>O(e,M,t.ids[n])),{tag:`virtual-bind`}),this.document.replace(u,s,String(e.id))}),t}bind(e){let t=this.island(e),n=t.generation!==e.generation;n&&(t.ids=[this.rows[e.index].id]);let r=t.ids.map(e=>this.rows[this.indices.get(e)??-1]).filter(e=>!!e);if(!r.length)return;let i=r.map(e=>e.data),a=JSON.stringify(i);if(!n&&(t.source||a===t.data))t.source=!1,t.data=a;else{t.generation=e.generation,t.data=a,t.loading=!0;try{t.editor.update(()=>{Z(c(),i),n&&g(null)},{discrete:!0,tag:n?[`virtual-bind`,v]:`virtual-bind`})}finally{t.loading=!1}this.restorePanels(e),this.queueMeasure()}}attach(e,t){e.element&&this.observer.unobserve(e.element),e.element=t??void 0,t&&this.observer.observe(t)}mount(e,t){let n=this.pool.slots.filter(t=>t.active&&t.index>e.index).sort((e,t)=>e.index-t.index).map(e=>this.preserve.host(e.id)).find(e=>e?.parentElement===this.canvas);this.preserve.mount(e.id,t,e.active?this.canvas:null,n??null)}state(e){let t=this.states.get(e);return t||(t=new Map,this.states.set(e,t)),t}nodeState(e,t,n){let r=this.island(e),i=r.editor.getEditorState().read(()=>{let e=t?l(t):c().getFirstChild(),i=[];for(;e?.getParent()&&e.getParent().getType()!==`root`;)i.unshift(e.getIndexWithinParent()),e=e.getParent();let a=e?.getIndexWithinParent()??0;return`${a===0?n:r.ids[a]??n}:${i.join(`.`)}`});return this.state(i)}capturePanels(e){let t=this.islands.get(e.id)?.ids[0];t&&this.state(t).set(`details`,this.panels(e).map(({panel:e})=>e.open))}restorePanels(e){let t=this.state(this.island(e).ids[0]).get(`details`);this.panels(e).forEach(({panel:e,initialOpen:n},r)=>{e.open=t?.[r]??n})}panels(e){let t=this.island(e).editor;return t.getEditorState().read(()=>{let e=[],n=r=>{if(r.getType()===`details`){let n=t.getElementByKey(r.getKey());n instanceof HTMLDetailsElement&&e.push({panel:n,initialOpen:r.getOpen()})}d(r)&&r.getChildren().forEach(n)};return n(c()),e})}anchor(){let e=this.canvas.getBoundingClientRect(),t=document.elementFromPoint(e.left+e.width/2,Math.max(this.viewportTop()+8,e.top+1))?.closest(`[data-virtual-editor-slot]`),n=this.pool.slots.find(e=>e.active&&e.element===t)?.index??this.heights.find(Math.max(0,this.scrollTop-this.canvasTop()));return{id:this.previousRows[n]?.id??this.rows[n]?.id,offset:this.scrollTop-this.canvasTop()-this.blockOffset(n)}}restore(e){this.canvas.style.height=`${this.heights.total+this.leadingMargin}px`;let t=e.id?this.indices.get(e.id)??-1:-1;t>=0&&this.setScrollTop(this.canvasTop()+this.blockOffset(t)+e.offset)}queueMeasure(){!this.dead&&!this.frame&&(this.frame=requestAnimationFrame(()=>this.measure()))}slotOffset(e){return this.blockOffset(e.index)-(this.metrics.get(this.rows[e.index]?.id)?.top??0)}get leadingMargin(){return this.metrics.get(this.rows[0]?.id)?.top??0}blockOffset(e){return this.heights.offset(e)+this.leadingMargin}commitLayout(){cancelAnimationFrame(this.frame),this.measure(!1)}measure(e=!0){if(this.frame=0,this.dead)return;let t=this.anchor(),n=!1;Math.abs(this.canvas.clientWidth-this.width)>.5&&(this.width=this.canvas.clientWidth,this.metrics.clear(),this.heights=this.buildHeights(),n=!0);let r=new Set;for(let e of this.pool.slots){if(!e.active)continue;let t=this.islands.get(e.id),i=t?.editor.getRootElement();if(!i||!t?.ids.length)continue;let a=t.editor.getEditorState().read(()=>c().getChildren().map(e=>t.editor.getElementByKey(e.getKey())));a.forEach((e,n)=>{if(!e)return;let r=this.indices.get(t.ids[n])??-1,a=this.rows[r-1]?.data;e.toggleAttribute(`data-document-first`,r===0&&e===i.firstElementChild),e.toggleAttribute(`data-document-last`,r===this.rows.length-1&&e===i.lastElementChild),e.toggleAttribute(`data-document-first-paragraph`,r===this.firstParagraph),e.dataset.documentPrevTag=a?.type===`heading`?a.tag:a?.type===`horizontalrule`?`hr`:``});let o=i.getBoundingClientRect(),s=a.map(e=>e?.getBoundingClientRect());t.ids.forEach((e,i)=>{let c=this.indices.get(e)??-1,l=a[i];if(c<0||!l)return;l.dataset.blockId=e;let u=s[i],d=getComputedStyle(l),f=i===0?u.top-o.top:parseFloat(d.marginTop)||0,p=i===t.ids.length-1?o.bottom-u.bottom:parseFloat(d.marginBottom)||0;Math.abs(f-(this.metrics.get(e)?.top??0))>.1&&(n=!0),this.metrics.set(e,{height:u.height,top:f,bottom:p,gap:s[i+1]?s[i+1].top-u.bottom:void 0}),r.add(c),c>0&&r.add(c-1)})}for(let e of r){let t=this.metrics.get(this.rows[e].id);if(!t)continue;let r=Math.max(1,H(t,this.metrics.get(this.rows[e+1]?.id)));Math.abs(r-this.heights.values[e])>.1&&(this.heights.update(e,r),n=!0)}n&&(this.restore(t),this.refresh(!1),this.publish(e))}scrollTo(e){this.setScrollTop(this.canvasTop()+this.blockOffset(Math.max(0,Math.min(e,this.rows.length-1)))),this.refresh()}focusBlock(e,t=!1,n=!0){e<0||e>=this.rows.length||(n&&this.scrollTo(e),requestAnimationFrame(()=>{let r=this.pool.slots.find(t=>t.active&&this.islands.get(t.id)?.ids.includes(this.rows[e]?.id));if(!r)return;let{editor:i}=this.island(r);i.getRootElement()?.focus({preventScroll:!0}),i.update(()=>{t?c().selectEnd():c().selectStart()},{tag:n?void 0:a})}))}extendIsland(e,t,n=!1){let r=this.island(e),i=e.index,a=i+r.ids.length-1,o=Math.max(0,Math.min(t,this.rows.length-1));if(o>=i&&o<=a)return!0;let s=o<i,l=s?this.rows.slice(o,i):this.rows.slice(a+1,o+1);if(r.ids.length+l.length>(this.options.selectionMergeLimit??200))return!1;let u=new Set(l.map(e=>e.id)),d=this.pool.slots.filter(t=>t!==e&&this.islands.get(t.id)?.ids.some(e=>u.has(e)));if(d.some(e=>{let t=this.islands.get(e.id);return t.retained>0||t.editor.isComposing()}))return!1;for(let e of d)e.beforeRelease?.(),e.active=!1,this.islands.get(e.id).generation=-1;return r.ids=s?[...u,...r.ids]:[...r.ids,...u],s&&(e.index=o),r.data=JSON.stringify(r.ids.map(e=>this.rows[this.indices.get(e)].data)),r.editor.update(()=>{let e=l.map(e=>_(e.data)),t=c().getFirstChild();s&&t?e.forEach(e=>t.insertBefore(e)):c().append(...e)},{discrete:!0,tag:[`virtual-bind`,v]}),this.refresh(!1),this.publish(n),this.queueMeasure(),!0}extendForKey(e,t){let n=this.island(e),r=t===`down`||t===`right`,i=n.editor.getEditorState().read(()=>{let e=j();if(!p(e))return!1;let n=c(),i=e.focus.getNode();if(t===`up`||t===`down`)return Q(i)?.is(r?n.getLastChild():n.getFirstChild())??!1;let a=r?n.getLastDescendant():n.getFirstDescendant();return!!a&&i.is(a)&&e.focus.offset===(r?a.getTextContentSize():0)}),a=r?e.index+n.ids.length:e.index-1;return!i||a<0||a>=this.rows.length?!1:this.extendIsland(e,a)}splitIsland(e){let t=this.islands.get(e.id);if(!t||t.ids.length<2)return;let n=t.editor.getEditorState().read(()=>{let e=j();return Q(p(e)?e.focus.getNode():null)?.getIndexWithinParent()??0}),r=t.ids[n]??t.ids[0];t.ids=[r],e.index=this.indices.get(r),t.data=JSON.stringify([this.rows[e.index].data]),t.editor.update(()=>c().getChildren().forEach((e,t)=>{t!==n&&e.remove()}),{discrete:!0,tag:`virtual-bind`}),this.refresh(!1),this.publish(),this.queueMeasure()}queueSplit(e){this.splitting.has(e.id)||(this.splitting.add(e.id),requestAnimationFrame(()=>{this.splitting.delete(e.id);let t=this.islands.get(e.id);if(this.dead||!e.active||!t||t.editor.isComposing())return;let n=window.getSelection(),r=t.editor.getRootElement();n&&!n.isCollapsed&&n.anchorNode&&r?.contains(n.anchorNode)||t.editor.getEditorState().read(()=>{let e=j();return e===null||p(e)&&e.isCollapsed()})&&this.splitIsland(e)}))}joinNeighbor(e,t){let n=this.island(e),r=t?e.index-1:e.index+n.ids.length,i=this.rows[r];if(!i)return!1;for(let t of this.pool.slots)t!==e&&this.islands.get(t.id)?.ids.includes(i.id)&&(t.beforeRelease?.(),t.active=!1);return n.ids=t?[i.id,...n.ids]:[...n.ids,i.id],t&&(e.index=r),n.editor.update(()=>{let e=_(i.data);t?c().getFirstChild().insertBefore(e):c().append(e);let n=j();p(n)&&n.deleteCharacter(t)},{discrete:!0}),!0}dispose(){this.dead=!0,this.document.dispose(),this.observer.disconnect(),cancelAnimationFrame(this.frame),this.viewport.removeEventListener(`scroll`,this.onScroll),window.removeEventListener(`resize`,this.onScroll),this.canvas.removeEventListener(`focusin`,this.onFocusIn),this.canvas.removeEventListener(`pointerdown`,this.onPointerDown),this.endDrag();for(let e of this.islands.values())e.unsubscribe();this.listeners.clear(),this.preserve.clear()}};function ie({controller:e,slot:t}){let[n]=D();return(0,W.useEffect)(()=>{let r=e=>{let t=j();if(!p(t)||!t.isCollapsed())return!1;let n=e?c().getLastDescendant():c().getFirstDescendant();return!!n&&t.anchor.key===n.getKey()&&t.anchor.offset===(e?n.getTextContentSize():0)},i=n=>(e.extendForKey(t,n),!1),a=[n.registerCommand(f,()=>(e.master.dispatchCommand(f,void 0),!0),4),n.registerCommand(o,()=>(e.master.dispatchCommand(o,void 0),!0),4),n.registerCommand(w,n=>!r(!1)||!e.joinNeighbor(t,!0)?!1:(n?.preventDefault(),!0),4),n.registerCommand(ee,n=>!r(!0)||!e.joinNeighbor(t,!1)?!1:(n?.preventDefault(),!0),4),n.registerCommand(m,n=>n?.shiftKey?i(`up`):!r(!1)||t.index===0?!1:(n?.preventDefault(),e.focusBlock(t.index-1,!0),!0),4),n.registerCommand(y,n=>{if(n?.shiftKey)return i(`down`);if(!r(!0))return!1;let a=t.index+e.island(t).ids.length;return a>=e.rows.length?!1:(n?.preventDefault(),e.focusBlock(a),!0)},4),n.registerCommand(E,e=>!!e.shiftKey&&i(`left`),4),n.registerCommand(te,e=>!!e.shiftKey&&i(`right`),4)];return()=>a.forEach(e=>e())},[e,n,t]),null}function ae({controller:e,slot:t,plugins:n,onActiveEditorChange:r,onRelease:a,retainSurface:o,placeholder:s}){let c=e.island(t),l=e.rows[t.index],u=`${t.generation}:${t.active}`,[d,f]=(0,W.useState)(``),[p]=(0,W.useState)(()=>{let e=document.createElement(`div`);return e.style.display=`contents`,e}),m=t.active||e.preserve.has(t.id),h=k(),g=(0,W.useMemo)(()=>({blockId:l.id,active:t.active,editor:c.editor,documentBlocks:e.documentBlocks,nodeState:n=>e.nodeState(t,n,l.id),retain:()=>{c.retained++;let t=o(),n=!1;return()=>{n||(n=!0,c.retained--,t(),e.refresh(!1))}}}),[e,c.editor,o,l.id,t,t.active,t.generation]),_=(0,W.useCallback)(n=>e.attach(t,n),[e,t]);return(0,W.useLayoutEffect)(()=>{e.mount(t,p),m?e.bind(t):c.generation=-1,t.beforeRelease=()=>{e.capturePanels(t),a(c.editor)}}),(0,W.useLayoutEffect)(()=>()=>p.remove(),[p]),(0,W.useLayoutEffect)(()=>{let e=requestAnimationFrame(()=>{e=requestAnimationFrame(()=>f(u))});return()=>cancelAnimationFrame(e)},[u]),(0,G.createPortal)((0,K.jsx)(`div`,{className:R,"data-pool":t.pool,"data-restoring":d===u?void 0:``,"data-virtual-editor-block":t.active?l.id:void 0,"data-virtual-editor-slot":t.id,ref:_,style:{display:t.active?void 0:`none`,transform:`translateY(${e.slotOffset(t)}px)`},onFocusCapture:()=>r(c.editor),children:(0,K.jsx)(i,{value:g,children:m&&(0,K.jsxs)(P,{skipCollabChecks:!0,initialEditor:c.editor,children:[(0,K.jsx)(ne,{ErrorBoundary:A,contentEditable:(0,K.jsx)(N,{"aria-label":`Document block`,"aria-placeholder":s??``,className:`rich-editor__content qi8t62`,"data-virtual-editor-content":``,placeholder:(0,K.jsx)(`div`,{className:`b94s952`,style:{top:0,left:0,display:s?void 0:`none`},children:s})})}),t.active&&n,(0,K.jsx)(ie,{controller:e,slot:t}),t.active&&h]})})}),p,String(t.id))}function oe({controller:e,plugins:t,onActiveEditorChange:n,onRelease:r,retainSurface:i,placeholder:a}){let[,o]=(0,W.useState)(0);return(0,W.useLayoutEffect)(()=>e.subscribe(()=>o(e=>e+1)),[e]),(0,W.useLayoutEffect)(()=>e.commitLayout()),(0,K.jsx)(K.Fragment,{children:e.pool.slots.map(o=>(0,K.jsx)(ae,{controller:e,plugins:t,retainSurface:i,slot:o,placeholder:e.rows.length===1&&e.rows[0].data.type===`paragraph`&&!(e.rows[0].data.children??[]).some(e=>e.type!==`text`||e.text)?a:void 0,onActiveEditorChange:n,onRelease:r},o.id))})}function se({options:e,className:t,plugins:n,autoFocus:r,hasHeader:i,onActiveEditorChange:a,retainSurface:o,placeholder:c}){let[l]=D(),{scrollContainer:u,overscan:d,estimateBlockHeight:f,preserveCapacity:p,selectionMergeLimit:m}=e,h=(0,W.useMemo)(()=>({scrollContainer:u,overscan:d,estimateBlockHeight:f,preserveCapacity:p,selectionMergeLimit:m}),[u,d,f,p,m]),g=(0,W.useRef)(null),_=(0,W.useCallback)(e=>{g.current=e,a(e)},[a]),v=(0,W.useCallback)(e=>{g.current===e&&_(null)},[_]),y=(0,W.useRef)(null),[b,x]=(0,W.useState)(null),[C,w]=(0,W.useState)(``);return(0,W.useEffect)(()=>{x(null),w(``);let e=y.current,t;try{t=new re(l,e,h),x(t),Object.assign(e,{virtualEditor:t})}catch(e){w(String(e));return}return()=>{_(null),t.dispose(),Reflect.deleteProperty(e,`virtualEditor`)}},[l,_,h]),(0,W.useEffect)(()=>{b&&r&&b.focusBlock(0,!1,!1)},[r,b]),(0,K.jsxs)(`div`,{className:`rich-editor__content-wrapper ${s}`,style:{"--ce-padding-top":`${i?40:12}px`},children:[C&&(0,K.jsx)(`p`,{role:`alert`,children:C}),(0,K.jsx)(`div`,{className:`${S} ${t??``}`,children:(0,K.jsx)(`div`,{className:L,"data-virtual-editor":``,ref:y,children:b&&(0,K.jsx)(oe,{controller:b,placeholder:c,plugins:n,retainSurface:o,onActiveEditorChange:_,onRelease:v})})})]})}export{se as VirtualizedEditor};
1
+ import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{g as t}from"./route-B-3a8kXR.js";import{t as n}from"./react-B8SKf8RM.js";import{t as r}from"./jsx-runtime-DePvh3-m.js";import{$t as i,At as a,Bt as o,Ct as s,Dt as c,Et as l,Ft as u,Gt as d,Ht as f,It as p,Jt as m,Kt as h,Lt as g,Mt as _,Ot as v,Pt as y,Qt as b,Rt as x,St as S,Tt as C,Ut as w,Vt as T,Wt as E,Xt as D,Yt as O,Zt as k,bt as A,jt as j,kt as ee,qt as te,vt as ne,wt as M,xt as N,yt as P,zt as F}from"./channel-Y8cPWVH2.js";import{c as I,i as L,l as R,n as z,o as B,r as V,s as H,t as U}from"./viewport-CFJHn_Y6-gOi1FTqq.js";var W=e(n(),1),G=e(t(),1),K=r(),q=class{constructor(e){b(this,`host`,void 0),b(this,`range`,void 0),b(this,`listeners`,new Set),this.host=e}get editor(){return this.host.master}keys(){let e=this.bounds();return e?this.host.rows.slice(e[0],e[1]+1).map(e=>e.key):[]}islandKeys(e){let t=this.bounds(),n=this.host.islandIds(e);return!t||!n?[]:e.getEditorState().read(()=>c().getChildren().filter((e,r)=>{let i=n[r]===void 0?void 0:this.host.indexOf(n[r]);return i!==void 0&&i>=t[0]&&i<=t[1]}).map(e=>e.getKey()))}select(e,t,n){let r=this.host.islandIds(e);if(!r)return;let[i,a]=e.getEditorState().read(()=>{let e=c().getChildren().map(e=>e.getKey());return[r[e.indexOf(t)],r[e.indexOf(n)]]});i&&a&&this.set({anchorId:i,focusId:a})}selectAll(){let{rows:e}=this.host;e.length&&this.set({anchorId:e[0].id,focusId:e.at(-1).id})}extend(e){let t=this.range&&this.host.indexOf(this.range.focusId),n=t===void 0?void 0:this.host.rows[t+e];return!this.range||!n?!1:(this.set({anchorId:this.range.anchorId,focusId:n.id}),!0)}clear(){this.range&&this.set(void 0)}prune(){this.range&&(this.host.indexOf(this.range.anchorId)===void 0||this.host.indexOf(this.range.focusId)===void 0)&&this.set(void 0)}focusSelection(){let e=this.host.master.getEditorState().read(()=>{let e=j();if(!p(e))return null;let t=e.anchor.getNode(),n=t.getTopLevelElement()??t,r=(d(n)?n.getLastDescendant():null)??n;return{key:n.getKey(),end:t.is(r)&&e.anchor.offset===t.getTextContentSize()}}),t=e?this.host.rows.findIndex(t=>t.key===e.key):-1;t>=0&&this.host.focusBlock(t,e.end)}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}bounds(){if(!this.range)return null;let e=this.host.indexOf(this.range.anchorId),t=this.host.indexOf(this.range.focusId);return e===void 0||t===void 0?null:[Math.min(e,t),Math.max(e,t)]}set(e){this.range=e,this.listeners.forEach(e=>e())}};function J(e){let t=x(e);d(e)&&(t.children=e.getChildren().map(J));for(let n of F(e))t.$slots??={},t.$slots[n]=J(T(e,n));return t}var Y=class{constructor(e){b(this,`editor`,void 0),b(this,`rows`,[]),b(this,`onChange`,void 0),b(this,`unsubscribe`,void 0),b(this,`lastEdit`,void 0),this.editor=e,this.read(),this.unsubscribe=e.registerUpdateListener(({dirtyElements:e,dirtyLeaves:t,tags:n})=>{if(!e.size&&!t.size)return;this.read(new Set([...e.keys(),...t]));let r=[...n].find(e=>e.startsWith(`virtual-island:`));r||(this.lastEdit=void 0),this.onChange?.(r)})}read(e){let t=new Map(this.rows.map(e=>[e.key,e]));this.rows=this.editor.getEditorState().read(()=>c().getChildren().map(n=>{let r=n.getKey(),i=t.get(r);if(i?.node===n&&!e?.has(r))return i;let a=J(n);return{data:a,key:r,node:n,id:u(n,M)||r,pool:`${a.type}:${a.url??a.tag??a.listType??``}`}}))}replace(e,t,n){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=>l(e));if(e.some(e=>!e))throw Error(`Virtual editor block was removed`);let n;for(let r of t){let t=_(r);n?n.insertAfter(t):e[0].insertBefore(t),n=t}for(let t of e)t.remove()},{discrete:!0,tag:[o?`history-merge`:`history-push`,`virtual-island:${n}`]}),this.lastEdit={source:n,ids:e.join(`,`),time:a,count:t.length}}dispose(){this.unsubscribe()}},X=new Set([`paragraph`,`text`,`heading`,`quote`,`list`,`listitem`,`details`,`dynamic`]);function Z(e,t){let n=e.getChildren();t.forEach((t,r)=>{let i=n[r];if(i?.getType()===t.type&&X.has(t.type)){if(i.updateFromJSON(t),t.type===`details`){let e=i;e.setOpen(!!t.open),e.setSummary(t.summary)}else if(t.type===`dynamic`){let e=i;e.setUrl(t.url),e.setProps(t.props),e.setInitialHeight(t.initialHeight)}d(i)&&Z(i,t.children??[])}else{let n=_(t);i?i.replace(n):e.append(n)}});for(let e of n.slice(t.length))e.remove()}function Q(e){for(;e?.getParent()&&e.getParent().getType()!==`root`;)e=e.getParent();return e?.getParent()?e:null}function $(e,t){let n=document.caretPositionFromPoint?.(e,t);if(n)return{node:n.offsetNode,offset:n.offset};let r=document.caretRangeFromPoint?.(e,t);return r?{node:r.startContainer,offset:r.startOffset}:null}var re=class{constructor(e,t,n){if(b(this,`master`,void 0),b(this,`canvas`,void 0),b(this,`options`,void 0),b(this,`document`,void 0),b(this,`pool`,new V),b(this,`islands`,new Map),b(this,`states`,new Map),b(this,`viewport`,void 0),b(this,`preserve`,void 0),b(this,`documentBlocks`,new q(this)),b(this,`heights`,void 0),b(this,`revision`,0),b(this,`indices`,new Map),b(this,`listeners`,new Set),b(this,`observer`,void 0),b(this,`frame`,0),b(this,`dead`,!1),b(this,`width`,void 0),b(this,`metrics`,new Map),b(this,`firstParagraph`,-1),b(this,`selectionOwner`,void 0),b(this,`splitting`,new Set),b(this,`drag`,void 0),b(this,`previousRows`,[]),b(this,`onScroll`,()=>{this.refresh(),this.drag&&this.dragTo(this.drag.y)}),b(this,`onPointerDown`,e=>{if(e.button!==0)return;this.documentBlocks.clear();let t=this.pool.slots.find(t=>t.active&&t.element?.contains(e.target));if(!t)return;let n=this.pool.slots.find(e=>e.active&&e.id===this.selectionOwner),r=e.shiftKey&&n&&n!==t?n:t,i=this.island(r).editor.getRootElement();if(i){if(r!==t)e.preventDefault(),this.extendToPoint(r,i,e.clientX,e.clientY);else if(e.target.closest?.(`[contenteditable]`)!==i)return;this.drag={slot:r,y:e.clientY},document.addEventListener(`pointermove`,this.onPointerMove),document.addEventListener(`pointerup`,this.endDrag),document.addEventListener(`pointercancel`,this.endDrag)}}),b(this,`onPointerMove`,e=>{if(this.drag){if(!(e.buttons&1))return this.endDrag();this.drag.y=e.clientY,this.dragTo(e.clientY)}}),b(this,`endDrag`,()=>{this.drag=void 0,document.removeEventListener(`pointermove`,this.onPointerMove),document.removeEventListener(`pointerup`,this.endDrag),document.removeEventListener(`pointercancel`,this.endDrag)}),b(this,`onFocusIn`,e=>{let t=this.pool.slots.find(t=>t.element?.contains(e.target));t&&(this.selectionOwner=t.id)}),this.master=e,this.canvas=t,this.options=n,this.viewport=I(t,n.scrollContainer),this.preserve=new z(n.preserveCapacity??32,e=>{this.pool.slots.find(t=>t.id===e)?.beforeRelease?.()}),n.overscan!==void 0&&(!Number.isFinite(n.overscan)||n.overscan<0))throw Error(`Virtual editor overscan must be a nonnegative number`);this.document=new Y(e),this.indices=new Map(this.rows.map((e,t)=>[e.id,t])),this.firstParagraph=this.rows.findIndex(e=>e.data.type===`paragraph`),e.update(()=>c().markDirty(),{discrete:!0,tag:`history-merge`}),this.width=t.clientWidth;try{this.heights=this.buildHeights()}catch(e){throw this.document.dispose(),e}t.style.height=`${this.heights.total}px`,this.document.onChange=e=>{this.reconcileDocument(e)},this.previousRows=this.rows.map(e=>({id:e.id,data:e.data})),this.observer=new ResizeObserver(()=>this.queueMeasure()),this.observer.observe(t),this.viewport instanceof HTMLElement&&this.observer.observe(this.viewport),this.viewport.addEventListener(`scroll`,this.onScroll,{passive:!0}),window.addEventListener(`resize`,this.onScroll),t.addEventListener(`focusin`,this.onFocusIn),t.addEventListener(`pointerdown`,this.onPointerDown),this.refresh(!1)}get rows(){return this.document.rows}get scrollTop(){return this.viewport instanceof HTMLElement?this.viewport.scrollTop:window.scrollY}setScrollTop(e){this.viewport instanceof HTMLElement?this.viewport.scrollTop=e:window.scrollTo(window.scrollX,e)}viewportTop(){return this.viewport instanceof HTMLElement?this.viewport.getBoundingClientRect().top+this.viewport.clientTop:0}viewportHeight(){return this.viewport instanceof HTMLElement?this.viewport.clientHeight:window.innerHeight}canvasTop(){return this.canvas.getBoundingClientRect().top-this.viewportTop()+this.scrollTop}buildHeights(){return new U(this.rows.map(e=>this.estimate(e.data)))}estimate(e){let t=this.options.estimateBlockHeight?.(e,this.width)??B(e,this.width);if(!Number.isFinite(t)||t<=0)throw Error(`Virtual editor estimated height must be positive and finite`);return Math.max(24,t)}reconcileDocument(e){let t=this.anchor(),n=new Map(this.previousRows.map((e,t)=>[e.id,{...e,height:this.heights.values[t]}]));(this.rows.length!==this.previousRows.length||this.rows.some((e,t)=>e.id!==this.previousRows[t].id))&&(this.heights=new U(this.rows.map(e=>n.get(e.id)?.height??this.estimate(e.data))));let r=new Map(this.rows.map((e,t)=>[e.id,t]));this.indices=r,this.documentBlocks.prune(),this.firstParagraph=this.rows.findIndex(e=>e.data.type===`paragraph`);for(let e of this.metrics.keys())r.has(e)||this.metrics.delete(e);for(let t of this.pool.slots){let n=this.islands.get(t.id);if(!n)continue;let i=n.ids.flatMap(e=>r.get(e)??[]);n.ids=i.length>1?this.rows.slice(Math.min(...i),Math.max(...i)+1).map(e=>e.id):i.map(e=>this.rows[e].id),n.source=e===`virtual-island:${t.id}`,n.ids.length?(t.index=r.get(n.ids[0]),t.pool=this.rows[t.index].pool):(t.beforeRelease?.(),t.active=!1)}this.pool.slots=this.pool.slots.filter(e=>{let t=this.islands.get(e.id);return!t||t.ids.length?!0:(t.unsubscribe(),this.preserve.forget(e.id),this.islands.delete(e.id),this.pool.disposed++,!1)}),this.previousRows=this.rows.map(e=>({id:e.id,data:e.data})),this.restore(t),this.refresh(!1),this.publish(),this.queueMeasure()}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}publish(e=!0){if(this.dead||!this.listeners.size)return;this.revision++;let t=()=>this.listeners.forEach(e=>e());e?(0,G.flushSync)(t):t()}indexOf(e){return this.indices.get(e)}islandIds(e){for(let t of this.islands.values())if(t.editor===e)return t.ids}rowAt(e){let t=e-this.canvas.getBoundingClientRect().top-this.leadingMargin;return this.heights.find(Math.max(0,t))}dragTo(e){let t=this.drag?.slot;if(!t?.active)return;let n=this.rowAt(e);(n<t.index||n>=t.index+this.island(t).ids.length)&&this.extendIsland(t,n,!0)}extendToPoint(e,t,n,r){if(!this.extendIsland(e,this.rowAt(r),!0))return;let i=window.getSelection(),a=$(n,r);i?.anchorNode&&t.contains(i.anchorNode)&&a&&t.contains(a.node)&&i.extend(a.node,a.offset)}holdsSelection(e,t){return e.id===this.selectionOwner&&t.editor.getEditorState().read(()=>j()!==null)}refresh(e=!0){if(this.dead||!this.rows.length)return;let t=Math.max(0,this.scrollTop-this.canvasTop()),n=this.options.overscan??this.viewportHeight()*1.5,r=this.heights.find(Math.max(0,t-n)),i=this.heights.find(t+this.viewportHeight()+n),a=new Set,o=[],s=new Set;for(let e of this.pool.slots){let t=this.islands.get(e.id);if(t&&(e.active||this.preserve.has(e.id))){(t.retained||t.editor.isComposing()||e.element?.contains(document.activeElement)||this.holdsSelection(e,t))&&s.add(e.id);for(let n=1;n<t.ids.length;n++)a.add(e.index+n);t.ids.length>1&&e.index<r&&e.index+t.ids.length>r&&o.push(e.index)}}let c=[...o,...Array.from({length:i-r+1},(e,t)=>r+t)].filter(e=>!a.has(e)),l=new Set(c),u=new Set;for(let e of this.pool.slots)(l.has(e.index)||s.has(e.id))&&this.preserve.activate(e.id)&&u.add(e.id);for(let e of this.pool.slots)e.active&&!l.has(e.index)&&!s.has(e.id)&&this.preserve.park(e.id,this.islands.get(e.id)?.ids.join(`,`)??``);let d=new Set([...this.preserve.ids(),...u]),f=this.pool.update(c,e=>this.rows[e].pool,s,d);for(let[e,t]of this.islands)this.pool.slots.some(t=>t.id===e)||(t.unsubscribe(),t.editor.setRootElement(null),this.preserve.forget(e),this.islands.delete(e));f&&this.publish(e)}island(e){let t=this.islands.get(e.id);if(t)return t;let n=this.master.read(()=>h());return t={editor:n,ids:[],generation:-1,loading:!1,source:!1,data:``,unsubscribe:()=>{},retained:0},this.islands.set(e.id,t),t.unsubscribe=n.registerUpdateListener(({editorState:r,dirtyElements:i,dirtyLeaves:a,tags:o})=>{if(t.ids.length>1&&this.queueSplit(e),t.loading||!t.ids.length||o.has(`virtual-bind`)||!i.size&&!a.size)return;let s=r.toJSON().root.children;if(JSON.stringify(s)===t.data)return;let l=new Set;s.forEach((e,n)=>{let r=e.$?.blockId,i=this.indices.has(r)&&!t.ids.includes(r);(!r||l.has(r)||i)&&(r=n===0?t.ids[0]:C(8)),e.$={...e.$,blockId:r},l.add(r)});let u=[...t.ids];t.ids=s.map(e=>e.$.blockId),t.data=JSON.stringify(s),n.update(()=>c().getChildren().forEach((e,n)=>O(e,M,t.ids[n])),{tag:`virtual-bind`}),this.document.replace(u,s,String(e.id))}),t}bind(e){let t=this.island(e),n=t.generation!==e.generation;n&&(t.ids=[this.rows[e.index].id]);let r=t.ids.map(e=>this.rows[this.indices.get(e)??-1]).filter(e=>!!e);if(!r.length)return;let i=r.map(e=>e.data),a=JSON.stringify(i);if(!n&&(t.source||a===t.data))t.source=!1,t.data=a;else{t.generation=e.generation,t.data=a,t.loading=!0;try{t.editor.update(()=>{Z(c(),i),n&&g(null)},{discrete:!0,tag:n?[`virtual-bind`,v]:`virtual-bind`})}finally{t.loading=!1}this.restorePanels(e),this.queueMeasure()}}attach(e,t){e.element&&this.observer.unobserve(e.element),e.element=t??void 0,t&&this.observer.observe(t)}mount(e,t){let n=this.pool.slots.filter(t=>t.active&&t.index>e.index).sort((e,t)=>e.index-t.index).map(e=>this.preserve.host(e.id)).find(e=>e?.parentElement===this.canvas);this.preserve.mount(e.id,t,e.active?this.canvas:null,n??null)}state(e){let t=this.states.get(e);return t||(t=new Map,this.states.set(e,t)),t}nodeState(e,t,n){let r=this.island(e),i=r.editor.getEditorState().read(()=>{let e=t?l(t):c().getFirstChild(),i=[];for(;e?.getParent()&&e.getParent().getType()!==`root`;)i.unshift(e.getIndexWithinParent()),e=e.getParent();let a=e?.getIndexWithinParent()??0;return`${a===0?n:r.ids[a]??n}:${i.join(`.`)}`});return this.state(i)}capturePanels(e){let t=this.islands.get(e.id)?.ids[0];t&&this.state(t).set(`details`,this.panels(e).map(({panel:e})=>e.open))}restorePanels(e){let t=this.state(this.island(e).ids[0]).get(`details`);this.panels(e).forEach(({panel:e,initialOpen:n},r)=>{e.open=t?.[r]??n})}panels(e){let t=this.island(e).editor;return t.getEditorState().read(()=>{let e=[],n=r=>{if(r.getType()===`details`){let n=t.getElementByKey(r.getKey());n instanceof HTMLDetailsElement&&e.push({panel:n,initialOpen:r.getOpen()})}d(r)&&r.getChildren().forEach(n)};return n(c()),e})}anchor(){let e=this.canvas.getBoundingClientRect(),t=document.elementFromPoint(e.left+e.width/2,Math.max(this.viewportTop()+8,e.top+1))?.closest(`[data-virtual-editor-slot]`),n=this.pool.slots.find(e=>e.active&&e.element===t)?.index??this.heights.find(Math.max(0,this.scrollTop-this.canvasTop()));return{id:this.previousRows[n]?.id??this.rows[n]?.id,offset:this.scrollTop-this.canvasTop()-this.blockOffset(n)}}restore(e){this.canvas.style.height=`${this.heights.total+this.leadingMargin}px`;let t=e.id?this.indices.get(e.id)??-1:-1;t>=0&&this.setScrollTop(this.canvasTop()+this.blockOffset(t)+e.offset)}queueMeasure(){!this.dead&&!this.frame&&(this.frame=requestAnimationFrame(()=>this.measure()))}slotOffset(e){return this.blockOffset(e.index)-(this.metrics.get(this.rows[e.index]?.id)?.top??0)}get leadingMargin(){return this.metrics.get(this.rows[0]?.id)?.top??0}blockOffset(e){return this.heights.offset(e)+this.leadingMargin}commitLayout(){cancelAnimationFrame(this.frame),this.measure(!1)}measure(e=!0){if(this.frame=0,this.dead)return;let t=this.anchor(),n=!1;Math.abs(this.canvas.clientWidth-this.width)>.5&&(this.width=this.canvas.clientWidth,this.metrics.clear(),this.heights=this.buildHeights(),n=!0);let r=new Set;for(let e of this.pool.slots){if(!e.active)continue;let t=this.islands.get(e.id),i=t?.editor.getRootElement();if(!i||!t?.ids.length)continue;let a=t.editor.getEditorState().read(()=>c().getChildren().map(e=>t.editor.getElementByKey(e.getKey())));a.forEach((e,n)=>{if(!e)return;let r=this.indices.get(t.ids[n])??-1,a=this.rows[r-1]?.data;e.toggleAttribute(`data-document-first`,r===0&&e===i.firstElementChild),e.toggleAttribute(`data-document-last`,r===this.rows.length-1&&e===i.lastElementChild),e.toggleAttribute(`data-document-first-paragraph`,r===this.firstParagraph),e.dataset.documentPrevTag=a?.type===`heading`?a.tag:a?.type===`horizontalrule`?`hr`:``});let o=i.getBoundingClientRect(),s=a.map(e=>e?.getBoundingClientRect());t.ids.forEach((e,i)=>{let c=this.indices.get(e)??-1,l=a[i];if(c<0||!l)return;l.dataset.blockId=e;let u=s[i],d=getComputedStyle(l),f=i===0?u.top-o.top:parseFloat(d.marginTop)||0,p=i===t.ids.length-1?o.bottom-u.bottom:parseFloat(d.marginBottom)||0;Math.abs(f-(this.metrics.get(e)?.top??0))>.1&&(n=!0),this.metrics.set(e,{height:u.height,top:f,bottom:p,gap:s[i+1]?s[i+1].top-u.bottom:void 0}),r.add(c),c>0&&r.add(c-1)})}for(let e of r){let t=this.metrics.get(this.rows[e].id);if(!t)continue;let r=Math.max(1,H(t,this.metrics.get(this.rows[e+1]?.id)));Math.abs(r-this.heights.values[e])>.1&&(this.heights.update(e,r),n=!0)}n&&(this.restore(t),this.refresh(!1),this.publish(e))}scrollTo(e){this.setScrollTop(this.canvasTop()+this.blockOffset(Math.max(0,Math.min(e,this.rows.length-1)))),this.refresh()}focusBlock(e,t=!1,n=!0){e<0||e>=this.rows.length||(n&&this.scrollTo(e),requestAnimationFrame(()=>{let r=this.pool.slots.find(t=>t.active&&this.islands.get(t.id)?.ids.includes(this.rows[e]?.id));if(!r)return;let{editor:i}=this.island(r);i.getRootElement()?.focus({preventScroll:!0}),i.update(()=>{t?c().selectEnd():c().selectStart()},{tag:n?void 0:a})}))}extendIsland(e,t,n=!1){let r=this.island(e),i=e.index,a=i+r.ids.length-1,o=Math.max(0,Math.min(t,this.rows.length-1));if(o>=i&&o<=a)return!0;let s=o<i,l=s?this.rows.slice(o,i):this.rows.slice(a+1,o+1);if(r.ids.length+l.length>(this.options.selectionMergeLimit??200))return!1;let u=new Set(l.map(e=>e.id)),d=this.pool.slots.filter(t=>t!==e&&this.islands.get(t.id)?.ids.some(e=>u.has(e)));if(d.some(e=>{let t=this.islands.get(e.id);return t.retained>0||t.editor.isComposing()}))return!1;for(let e of d)e.beforeRelease?.(),e.active=!1,this.islands.get(e.id).generation=-1;return r.ids=s?[...u,...r.ids]:[...r.ids,...u],s&&(e.index=o),r.data=JSON.stringify(r.ids.map(e=>this.rows[this.indices.get(e)].data)),r.editor.update(()=>{let e=l.map(e=>_(e.data)),t=c().getFirstChild();s&&t?e.forEach(e=>t.insertBefore(e)):c().append(...e)},{discrete:!0,tag:[`virtual-bind`,v]}),this.refresh(!1),this.publish(n),this.queueMeasure(),!0}extendForKey(e,t){let n=this.island(e),r=t===`down`||t===`right`,i=n.editor.getEditorState().read(()=>{let e=j();if(!p(e))return!1;let n=c(),i=e.focus.getNode();if(t===`up`||t===`down`)return Q(i)?.is(r?n.getLastChild():n.getFirstChild())??!1;let a=r?n.getLastDescendant():n.getFirstDescendant();return!!a&&i.is(a)&&e.focus.offset===(r?a.getTextContentSize():0)}),a=r?e.index+n.ids.length:e.index-1;return!i||a<0||a>=this.rows.length?!1:this.extendIsland(e,a)}splitIsland(e){let t=this.islands.get(e.id);if(!t||t.ids.length<2)return;let n=t.editor.getEditorState().read(()=>{let e=j();return Q(p(e)?e.focus.getNode():null)?.getIndexWithinParent()??0}),r=t.ids[n]??t.ids[0];t.ids=[r],e.index=this.indices.get(r),t.data=JSON.stringify([this.rows[e.index].data]),t.editor.update(()=>c().getChildren().forEach((e,t)=>{t!==n&&e.remove()}),{discrete:!0,tag:`virtual-bind`}),this.refresh(!1),this.publish(),this.queueMeasure()}queueSplit(e){this.splitting.has(e.id)||(this.splitting.add(e.id),requestAnimationFrame(()=>{this.splitting.delete(e.id);let t=this.islands.get(e.id);if(this.dead||!e.active||!t||t.editor.isComposing())return;let n=window.getSelection(),r=t.editor.getRootElement();n&&!n.isCollapsed&&n.anchorNode&&r?.contains(n.anchorNode)||t.editor.getEditorState().read(()=>{let e=j();return e===null||p(e)&&e.isCollapsed()})&&this.splitIsland(e)}))}joinNeighbor(e,t){let n=this.island(e),r=t?e.index-1:e.index+n.ids.length,i=this.rows[r];if(!i)return!1;for(let t of this.pool.slots)t!==e&&this.islands.get(t.id)?.ids.includes(i.id)&&(t.beforeRelease?.(),t.active=!1);return n.ids=t?[i.id,...n.ids]:[...n.ids,i.id],t&&(e.index=r),n.editor.update(()=>{let e=_(i.data);t?c().getFirstChild().insertBefore(e):c().append(e);let n=j();p(n)&&n.deleteCharacter(t)},{discrete:!0}),!0}dispose(){this.dead=!0,this.document.dispose(),this.observer.disconnect(),cancelAnimationFrame(this.frame),this.viewport.removeEventListener(`scroll`,this.onScroll),window.removeEventListener(`resize`,this.onScroll),this.canvas.removeEventListener(`focusin`,this.onFocusIn),this.canvas.removeEventListener(`pointerdown`,this.onPointerDown),this.endDrag();for(let e of this.islands.values())e.unsubscribe();this.listeners.clear(),this.preserve.clear()}};function ie({controller:e,slot:t}){let[n]=D();return(0,W.useEffect)(()=>{let r=e=>{let t=j();if(!p(t)||!t.isCollapsed())return!1;let n=e?c().getLastDescendant():c().getFirstDescendant();return!!n&&t.anchor.key===n.getKey()&&t.anchor.offset===(e?n.getTextContentSize():0)},i=n=>(e.extendForKey(t,n),!1),a=[n.registerCommand(f,()=>(e.master.dispatchCommand(f,void 0),!0),4),n.registerCommand(o,()=>(e.master.dispatchCommand(o,void 0),!0),4),n.registerCommand(w,n=>!r(!1)||!e.joinNeighbor(t,!0)?!1:(n?.preventDefault(),!0),4),n.registerCommand(ee,n=>!r(!0)||!e.joinNeighbor(t,!1)?!1:(n?.preventDefault(),!0),4),n.registerCommand(m,n=>n?.shiftKey?i(`up`):!r(!1)||t.index===0?!1:(n?.preventDefault(),e.focusBlock(t.index-1,!0),!0),4),n.registerCommand(y,n=>{if(n?.shiftKey)return i(`down`);if(!r(!0))return!1;let a=t.index+e.island(t).ids.length;return a>=e.rows.length?!1:(n?.preventDefault(),e.focusBlock(a),!0)},4),n.registerCommand(E,e=>!!e.shiftKey&&i(`left`),4),n.registerCommand(te,e=>!!e.shiftKey&&i(`right`),4)];return()=>a.forEach(e=>e())},[e,n,t]),null}function ae({controller:e,slot:t,plugins:n,onActiveEditorChange:r,onRelease:a,retainSurface:o,placeholder:s}){let c=e.island(t),l=e.rows[t.index],u=`${t.generation}:${t.active}`,[d,f]=(0,W.useState)(``),[p]=(0,W.useState)(()=>{let e=document.createElement(`div`);return e.style.display=`contents`,e}),m=t.active||e.preserve.has(t.id),h=k(),g=(0,W.useMemo)(()=>({blockId:l.id,active:t.active,editor:c.editor,documentBlocks:e.documentBlocks,nodeState:n=>e.nodeState(t,n,l.id),retain:()=>{c.retained++;let t=o(),n=!1;return()=>{n||(n=!0,c.retained--,t(),e.refresh(!1))}}}),[e,c.editor,o,l.id,t,t.active,t.generation]),_=(0,W.useCallback)(n=>e.attach(t,n),[e,t]);return(0,W.useLayoutEffect)(()=>{e.mount(t,p),m?e.bind(t):c.generation=-1,t.beforeRelease=()=>{e.capturePanels(t),a(c.editor)}}),(0,W.useLayoutEffect)(()=>()=>p.remove(),[p]),(0,W.useLayoutEffect)(()=>{let e=requestAnimationFrame(()=>{e=requestAnimationFrame(()=>f(u))});return()=>cancelAnimationFrame(e)},[u]),(0,G.createPortal)((0,K.jsx)(`div`,{className:R,"data-pool":t.pool,"data-restoring":d===u?void 0:``,"data-virtual-editor-block":t.active?l.id:void 0,"data-virtual-editor-slot":t.id,ref:_,style:{display:t.active?void 0:`none`,transform:`translateY(${e.slotOffset(t)}px)`},onFocusCapture:()=>r(c.editor),children:(0,K.jsx)(i,{value:g,children:m&&(0,K.jsxs)(P,{skipCollabChecks:!0,initialEditor:c.editor,children:[(0,K.jsx)(ne,{ErrorBoundary:A,contentEditable:(0,K.jsx)(N,{"aria-label":`Document block`,"aria-placeholder":s??``,className:`rich-editor__content qi8t62`,"data-virtual-editor-content":``,placeholder:(0,K.jsx)(`div`,{className:`b94s952`,style:{top:0,left:0,display:s?void 0:`none`},children:s})})}),t.active&&n,(0,K.jsx)(ie,{controller:e,slot:t}),t.active&&h]})})}),p,String(t.id))}function oe({controller:e,plugins:t,onActiveEditorChange:n,onRelease:r,retainSurface:i,placeholder:a}){let[,o]=(0,W.useState)(0);return(0,W.useLayoutEffect)(()=>e.subscribe(()=>o(e=>e+1)),[e]),(0,W.useLayoutEffect)(()=>e.commitLayout()),(0,K.jsx)(K.Fragment,{children:e.pool.slots.map(o=>(0,K.jsx)(ae,{controller:e,plugins:t,retainSurface:i,slot:o,placeholder:e.rows.length===1&&e.rows[0].data.type===`paragraph`&&!(e.rows[0].data.children??[]).some(e=>e.type!==`text`||e.text)?a:void 0,onActiveEditorChange:n,onRelease:r},o.id))})}function se({options:e,className:t,plugins:n,autoFocus:r,hasHeader:i,onActiveEditorChange:a,retainSurface:o,placeholder:c}){let[l]=D(),{scrollContainer:u,overscan:d,estimateBlockHeight:f,preserveCapacity:p,selectionMergeLimit:m}=e,h=(0,W.useMemo)(()=>({scrollContainer:u,overscan:d,estimateBlockHeight:f,preserveCapacity:p,selectionMergeLimit:m}),[u,d,f,p,m]),g=(0,W.useRef)(null),_=(0,W.useCallback)(e=>{g.current=e,a(e)},[a]),v=(0,W.useCallback)(e=>{g.current===e&&_(null)},[_]),y=(0,W.useRef)(null),[b,x]=(0,W.useState)(null),[C,w]=(0,W.useState)(``);return(0,W.useEffect)(()=>{x(null),w(``);let e=y.current,t;try{t=new re(l,e,h),x(t),Object.assign(e,{virtualEditor:t})}catch(e){w(String(e));return}return()=>{_(null),t.dispose(),Reflect.deleteProperty(e,`virtualEditor`)}},[l,_,h]),(0,W.useEffect)(()=>{b&&r&&b.focusBlock(0,!1,!1)},[r,b]),(0,K.jsxs)(`div`,{className:`rich-editor__content-wrapper ${s}`,style:{"--ce-padding-top":`${i?40:12}px`},children:[C&&(0,K.jsx)(`p`,{role:`alert`,children:C}),(0,K.jsx)(`div`,{className:`${S} ${t??``}`,children:(0,K.jsx)(`div`,{className:L,"data-virtual-editor":``,ref:y,children:b&&(0,K.jsx)(oe,{controller:b,placeholder:c,plugins:n,retainSurface:o,onActiveEditorChange:_,onRelease:v})})})]})}export{se as VirtualizedEditor};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{g as t}from"./route-Cvbs0pMv.js";import{t as n}from"./react-B8SKf8RM.js";import{t as r}from"./jsx-runtime-DePvh3-m.js";import{$t as i}from"./channel-B15uf_mz.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-C1jXsfyM.js";import{n as m}from"./DocumentPage-BqQXaW4l.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-B-3a8kXR.js";import{t as n}from"./react-B8SKf8RM.js";import{t as r}from"./jsx-runtime-DePvh3-m.js";import{$t as i}from"./channel-Y8cPWVH2.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-gOi1FTqq.js";import{n as m}from"./DocumentPage-DFTrEydU.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-pOLZvL-K.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-Mq50eaGz.js";var n=e();function r({warnings:e}){return e.length===0?null:(0,n.jsx)(t,{placement:`topRight`,content:(0,n.jsx)(`ul`,{className:`x1ghz6dp x12ulsxz xwn43p0 x1lr1uin x4z9k3i x1dbl2gt`,children:e.map((e,t)=>(0,n.jsx)(`li`,{children:e},t))}),children:(0,n.jsxs)(`button`,{type:`button`,className:`xixxii4 xlftelb xn0vg7t x1fgtraw x1awh872 xc342km xur7f20 xqdcvd7 x7zghnd xqfszdh x4z9k3i xk50ysn x1cqdj14 x1ypdohk x1n327nk`,children:[e.length,` `,e.length===1?`warning`:`warnings`]})})}export{r as t};
@@ -1,3 +1,3 @@
1
- import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{_ as t,a as n}from"./route-Cvbs0pMv.js";import{t as r}from"./react-B8SKf8RM.js";import{c as i,f as a,l as o,u as s}from"./split-url-DCXSi810.js";import{t as c}from"./jsx-runtime-DePvh3-m.js";import{q as l}from"./MotionConfigContext-DBHtopYR.js";import{t as u}from"./arrow-down-DnWGNayx.js";import{t as d}from"./arrow-up-BjP7sXQi.js";import{b as f}from"./useOpenInteractionType-B7ZAWZlS.js";import{a as p,i as m,o as h,r as g,s as _,t as v}from"./PhoneArtboardBar-D1Ohbjxv.js";import{a as y,c as b,i as x,n as S,o as C,s as w}from"./ThreadView-B4kNB_AB.js";import{c as T,d as E,f as D,l as ee,u as O}from"./lib-DABSWeJy.js";import{n as k,r as te,t as A}from"./index.js";/* empty css */import{Excalidraw as j,convertToExcalidrawElements as M,exportToBlob as ne,reconcileElements as re,restoreElements as ie}from"./prod-D0vYYRO1.js";import{n as ae}from"./Avatar-C76h25SW.js";import{n as oe}from"./useMedia-CWOjvrMw.js";import{s as se,t as ce}from"./WritingCursor-DElcFC08.js";import{n as le}from"./usePageQuery-BLapKgc-.js";import{t as N}from"./page-api-D8JklgWH.js";import"./shims-DAMrW7mQ.js";var ue={name:`move-up-right`,size:24,node:[[`path`,{d:`M13 5H19V11`,key:`1n1gyv`}],[`path`,{d:`M19 5L5 19`,key:`72u4yj`}]]};ue.node;var de=l(ue),fe={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`]};fe.node;var pe=l(fe),me={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`}]]};me.node;var he=l(me),P=e(r(),1),F=`main`,I=e=>e.filter(e=>!e.deleted);function ge(e){for(;;){let t=`p-${Math.random().toString(36).slice(2,6).padEnd(4,`0`)}`;if(!e.has(t))return t}}var L=8,R=10,_e=64,ve=190,z=(e,t)=>({x:(e.x+t.scrollX)*t.zoom,y:(e.y+t.scrollY)*t.zoom}),ye=(e,t)=>({x:e.x/t.zoom-t.scrollX,y:e.y/t.zoom-t.scrollY});function be(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 xe=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n));function Se(e,t,n=420){let r=e.y-40-L,i=r<_e,a={x:xe(e.x,R,t.width-n-R),y:i?e.y+e.h+L:r,flipped:i},o=a.y+5,s=a.x-118-L,c=a.x+n+L,l={x:a.x,y:i?a.y+40+L:a.y-30-L},u=s>=R?{x:s,y:o}:c+118<=t.width-R?{x:c,y:o}:l,d=e.x+e.w+12;return{props:a,chip:u,composer:{x:d+320<=t.width-R?d:Math.max(R,e.x-320-12),y:xe(e.y,_e,t.height-ve)}}}function Ce(e,t,n,r=F){let i=be(e,e.map(e=>e.id))??{x:0,y:0,w:0,h:0};return{op:`create`,anchor:{x:i.x+i.w/2,y:i.y+i.h/2,elements:e.map(e=>e.id),...r===`main`?{}:{page:r}},text:t.trim()||n}}var B={root:{kVAEAm:`xixxii4`,kpwlN0:`x10a8y8t`,kWkggS:`x1rozbrz`,kMv6JI:`xqfszdh`,$$css:!0},canvas:{kVAEAm:`x10l6tqk`,kpwlN0:`x10a8y8t`,$$css:!0},bar:{kVAEAm:`x10l6tqk`,k87sOh:`x1eu8d0j`,k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kOIVth:`x195vfkc`,kZKoxP:`xn3w4p2`,kg3NbH:`xfn1xvj`,kWkggS:`x12ilycc`,kMzoRj:`xmkeg23`,ksu8eU:`x1y0btm7`,kVAM5u:`x12xov25`,kaIpWk:`x4pepcl`,kGVxlE:`x1cqdj14`,kGuDYH:`x4z9k3i`,kMwMTN:`xo2rkog`,kY2c9j:`x1n327nk`,$$css:!0},left:{kbCHJM:`x12lbrt0`,$$css:!0},right:{kCIrl2:`x131sewu`,$$css:!0},divider:{kzqmXN:`x1i1rx1s`,kZKoxP:`xmix8c7`,kUOVxO:`xjgtzcg`,kWkggS:`xh6qj2i`,$$css:!0},crumb:{kZCmMZ:`xe2zdcy`,kwRFfy:`xf159sx`,kMwMTN:`xddlp02`,kGuDYH:`xfifm61`,khDVqt:`xuxw1ft`,$$css:!0},crumbId:{kMwMTN:`xo2rkog`,k63SB2:`x1s688f`,$$css:!0},tool:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,kzqmXN:`x1691je0`,kZKoxP:`x90ne7k`,kmVPX3:`x1717udv`,kMzoRj:`xc342km`,kaIpWk:`xur7f20`,kWkggS:`xjbqb8w xj0l527`,kMwMTN:`xo2rkog`,kkrTdU:`x1ypdohk`,$$css:!0},toolOn:{kWkggS:`x15dg6x3`,$$css:!0},zoom:{k7Eaqz:`x1fns5xo`,kg3NbH:`xdqyycr`,kMwMTN:`x1bo0w0s`,kcqcaj:`xss6m8b`,k9WMMc:`x1hr2gdg`,$$css:!0},count:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kOIVth:`x1jnr06f`,kZKoxP:`x1gnnpzl`,kg3NbH:`xdqyycr`,kMwMTN:`x1bo0w0s`,kcqcaj:`xss6m8b`,$$css:!0},agentPill:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kOIVth:`x17d4w8g`,kZKoxP:`xxk0z11`,kUOVxO:`xjgtzcg`,kg3NbH:`x1awh872`,kaIpWk:`x1e6avla`,kWkggS:`x118mg9o`,kMwMTN:`xgs9y6l`,kGuDYH:`xfifm61`,khDVqt:`xuxw1ft`,$$css:!0},pillDot:{kzqmXN:`x1v4s8kt`,kZKoxP:`xols6we`,kaIpWk:`x16rqkct`,kWkggS:`xtwfq29`,$$css:!0},problem:{kVAEAm:`x10l6tqk`,k87sOh:`x1imwcls`,kbCHJM:`x1nrll8i`,k3aq6I:`xuuh30`,ks0D6T:`x27kpxv`,k8WAf4:`x1vvogim`,kg3NbH:`xaope02`,kaIpWk:`xur7f20`,kWkggS:`xqdcvd7`,kMwMTN:`x7zghnd`,kGuDYH:`x4z9k3i`,kY2c9j:`x1n327nk`,$$css:!0},loading:{kVAEAm:`x10l6tqk`,kpwlN0:`x10a8y8t`,k1xSpc:`xrvj5dj`,kgQiWS:`x1ku5rj1`,kMwMTN:`xddlp02`,$$css:!0}},V=c();function we({count:e}){return e?(0,V.jsxs)(`span`,{"data-agent-pill":!0,...t(B.agentPill),children:[(0,V.jsx)(`i`,{...t(B.pillDot)}),n(`whiteboard.agentChanged`,{count:e})]}):null}function Te({agent:e,glow:t,cursor:n,elements:r,view:i}){let a=new Map(r.map(e=>[e.id,e])),o=e=>({...z({x:e.x??0,y:e.y??0},i),w:(e.width??0)*i.zoom,h:(e.height??0)*i.zoom}),s=n?a.get(n):void 0;return(0,V.jsxs)(V.Fragment,{children:[t.flatMap(e=>{let t=a.get(e);if(!t)return[];let n=o(t);return[(0,V.jsx)(`div`,{"data-agent-glow":e,style:{left:n.x-7,top:n.y-7,width:n.w+14,height:n.h+14},className:`x10l6tqk xdh2fpr x1y0btm7 xr03jrs xur7f20 xempue3 x47corl x16tb26j`},e)]}),s&&(0,V.jsx)(`div`,{"data-agent-cursor":!0,style:{transform:`scale(${i.zoom}) translate(${i.scrollX}px, ${i.scrollY}px)`},className:`x10l6tqk xu96u03 x13vifvy x1hj3fc7 x47corl x16tb26j`,children:(0,V.jsx)(ce,{agent:e,title:s.id,zoom:i.zoom,...se({x:s.x??0,y:s.y??0,w:s.width??0,h:s.height??0},!0)})})]})}function Ee({compact:e=!1,onClick:t}){return(0,V.jsxs)(`button`,{"data-ask-chip":!0,"aria-label":n(`whiteboard.ask`),title:n(`whiteboard.ask`),type:`button`,onClick:t,className:`x3nfvp2 x6s0dn4 x17d4w8g x1fgtraw xdwrcjd x1awh872 xc342km xu4hgxq x19ckca5 xs0jrwl xqfszdh xfifm61 x1s688f x1ypdohk xuxw1ft`,children:[(0,V.jsx)(pe,{size:14}),!e&&n(`whiteboard.ask`)]})}function De({composer:e,count:t,onSend:r,onClose:i}){let[a,o]=(0,P.useState)(``),[s,c]=(0,P.useState)(!1),l=async()=>{c(!0);let e=await r(a);c(!1),e&&(o(``),i())};return(0,V.jsxs)(`div`,{"data-ask-composer":!0,role:`dialog`,style:{left:e.x,top:e.y},className:`x10l6tqk x1m258z3 x1gnqi22 x9f619 x12ilycc xmkeg23 x1y0btm7 x12xov25 x4pepcl x1qdtr29 x1x85hfe`,children:[(0,V.jsxs)(`p`,{className:`x78zum5 x6s0dn4 x17d4w8g x1ghz6dp x4z9k3i x1s688f`,children:[(0,V.jsx)(pe,{size:14}),n(`whiteboard.askTitle`)]}),(0,V.jsx)(`p`,{className:`xg9jes1 xyorhqc xfifm61 xddlp02`,children:n(`whiteboard.askSelected`,{count:t})}),(0,V.jsx)(`textarea`,{autoFocus:!0,placeholder:n(`whiteboard.askPlaceholder`),value:a,onChange:e=>o(e.target.value),className:`xh8yej3 x1peatla x9f619 x1vvogim x1awh872 xmkeg23 x1y0btm7 x12xov25 xur7f20 xqfszdh x4z9k3i xtt52l0`}),(0,V.jsxs)(`div`,{className:`x78zum5 x13a6bvl x17d4w8g x1anpbxc`,children:[(0,V.jsx)(`button`,{type:`button`,onClick:i,className:`x1fgtraw xaope02 xc342km x1kogg8i xahzvm9 x1bo0w0s x1ypdohk`,children:n(`whiteboard.cancel`)}),(0,V.jsx)(`button`,{"data-ask-send":!0,disabled:s,type:`button`,onClick:()=>void l(),className:`x1fgtraw xaope02 xc342km x1kogg8i x19ckca5 xs0jrwl x1s688f x1ypdohk xtgyt42 x1hc1fzr xijokvz`,children:n(`whiteboard.send`)})]})]})}var H={pin:{kVAEAm:`x10l6tqk`,kzqmXN:`xgd8bvy`,kZKoxP:`x1fgtraw`,kmVPX3:`x1717udv`,kMzoRj:`xc342km`,kaIpWk:`xqgj3pk`,kWkggS:`x1o91uai`,kMwMTN:`x8r4el6`,kGuDYH:`xfifm61`,k63SB2:`x1s688f`,kGVxlE:`xx1f5d8`,k3aq6I:`x105ttfm`,kkrTdU:`x1ypdohk`,kY2c9j:`xk3oba8`,$$css:!0},agentPin:{kWkggS:`xm2cizz`,$$css:!0},stalePin:{kWkggS:`xakccsc`,$$css:!0},orphanPin:{kWkggS:`xgeep88`,$$css:!0}},Oe=(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 ke({comments:e,commenting:r,elements:i,onDone:a,onOp:o,view:s,page:c=F}){let[l,u]=(0,P.useState)(null),[d,f]=(0,P.useState)(null),p=e.file.threads.filter(t=>t.status===`open`&&!t.messages.every(e=>e.deleted)&&(e.placed[t.id]??t.anchor.page??`main`)===c),m=p.find(e=>e.id===l),h=e=>void o(e),g=t=>[H.pin,t.messages[0]?.author===`agent`&&H.agentPin,e.stale.includes(t.id)&&H.stalePin,e.orphans.includes(t.id)&&H.orphanPin];return(0,V.jsxs)(V.Fragment,{children:[r&&(0,V.jsx)(`div`,{"data-comment-capture":!0,onClick:e=>{let t=e.currentTarget.getBoundingClientRect(),n={x:e.clientX-t.left,y:e.clientY-t.top},r=ye(n,s);f({screen:n,scene:r,element:Oe(i(),r)?.id})},className:`x10l6tqk x10a8y8t xsid9ct x1q8xho0`}),p.map((e,n)=>{let r=z(e.anchor,s);return(0,V.jsx)(`button`,{"data-pin":e.id,style:{left:`${r.x}px`,top:`${r.y}px`},type:`button`,onClick:()=>u(l===e.id?null:e.id),...t(...g(e)),children:n+1},e.id)}),m&&(0,V.jsx)(`div`,{style:{...Ae(z(m.anchor,s))},className:`x10l6tqk x1m258z3 x12ilycc xmkeg23 x1y0btm7 x12xov25 x4pepcl x1d5q07e xb3r6kr x1x85hfe`,children:(0,V.jsx)(S,{label:`#${p.indexOf(m)+1}`,thread:m,actions:{reply:(e,t)=>o({op:`reply`,threadId:e,text:t}),resolve:e=>h({op:`resolve`,threadId:e}),reopen:e=>h({op:`reopen`,threadId:e}),edit:(e,t,n)=>h({op:`edit`,threadId:e,messageId:t,text:n}),remove:(e,t)=>h({op:`delete`,threadId:e,messageId:t})},onClose:()=>u(null)})}),d&&(0,V.jsx)(`div`,{style:Ae(d.screen),className:`x10l6tqk x1m258z3 x12ilycc xmkeg23 x1y0btm7 x12xov25 x4pepcl x1d5q07e xb3r6kr x1x85hfe x7z7khe`,children:(0,V.jsx)(ae,{autoFocus:!0,placeholder:n(`comments.addPlaceholder`),onCancel:()=>{f(null),a()},onSubmit:async e=>{let t=await o({op:`create`,anchor:{x:d.scene.x,y:d.scene.y,...d.element?{elements:[d.element]}:{},...c===`main`?{}:{page:c}},text:e});return t&&(f(null),a()),t}})})]})}var Ae=e=>({left:e.x+18,top:Math.max(56,e.y-14)});function je({frame:e,count:t,elements:r,view:i}){let a=e?r.find(t=>t.id===e):void 0;if(!a)return null;let o=z({x:a.x??0,y:a.y??0},i);return(0,V.jsx)(`div`,{"data-frame-focus":a.id,style:{left:o.x,top:o.y,width:(a.width??0)*i.zoom,height:(a.height??0)*i.zoom},className:`x10l6tqk x1eovdha x1y0btm7 x5kefyr x12oqio5 x9f619 x47corl x1w0boku`,children:t>0&&(0,V.jsx)(`span`,{className:`x10l6tqk x12p4g1f x1bkpikb xf4egzd x1q4txso x1ctf4ec x7grq7f x8r4el6 xfifm61 x1s688f xuxw1ft`,children:n(`whiteboard.docRefs`,{count:t})})})}var U={menu:{kVAEAm:`x1n2onr6`,k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,$$css:!0},trigger:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kOIVth:`x17d4w8g`,kZKoxP:`x10w6t97`,ks0D6T:`x1ncir08`,kg3NbH:`xdqyycr`,kMzoRj:`xc342km`,kaIpWk:`xur7f20`,kWkggS:`xjbqb8w xj0l527`,kMwMTN:`xo2rkog`,kGuDYH:`x4z9k3i`,kkrTdU:`x1ypdohk`,$$css:!0},name:{kVQacm:`xb3r6kr`,kg5iWk:`xlyipyv`,khDVqt:`xuxw1ft`,$$css:!0},muted:{kMwMTN:`xddlp02`,kmuXW:`x2lah0s`,$$css:!0},list:{kVAEAm:`x10l6tqk`,k87sOh:`x9ri80z`,kbCHJM:`xu96u03`,k7Eaqz:`xlm99nl`,k8WAf4:`x12ulsxz`,kWkggS:`x12ilycc`,kMzoRj:`xmkeg23`,ksu8eU:`x1y0btm7`,kVAM5u:`x12xov25`,kaIpWk:`x1q4ynmn`,kGVxlE:`x1d5q07e`,kY2c9j:`x1355qak`,$$css:!0},row:{k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kOIVth:`x195vfkc`,kg3NbH:`xfn1xvj`,$$css:!0},item:{k1xSpc:`x78zum5`,kUk6DE:`x98rzlu`,kGNEyG:`x6s0dn4`,kOIVth:`x167g77z`,k7Eaqz:`xeuugli`,kZKoxP:`x10w6t97`,kg3NbH:`xdqyycr`,kMzoRj:`xc342km`,kaIpWk:`x1kogg8i`,kWkggS:`xjbqb8w xj0l527`,kMwMTN:`xo2rkog`,kGuDYH:`x4z9k3i`,k9WMMc:`xdpxx8g`,kkrTdU:`x1ypdohk`,$$css:!0},check:{kzqmXN:`x6jxa94`,kmuXW:`x2lah0s`,$$css:!0},dot:{kzqmXN:`x1v4s8kt`,kZKoxP:`xols6we`,kaIpWk:`x16rqkct`,kWkggS:`xm2cizz`,kmuXW:`x2lah0s`,$$css:!0},action:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,kzqmXN:`x23j0i4`,kZKoxP:`xd7y6wv`,kmVPX3:`x1717udv`,kMzoRj:`xc342km`,kaIpWk:`x1kogg8i`,kWkggS:`xjbqb8w xj0l527`,kMwMTN:`x1bo0w0s`,kkrTdU:`x1ypdohk`,$$css:!0},separator:{kZKoxP:`xjm9jq1`,kqGvvJ:`xg9jes1`,kWkggS:`xh6qj2i`,$$css:!0},heading:{kg3NbH:`xaope02`,k8WAf4:`x12ulsxz`,kMwMTN:`xddlp02`,kGuDYH:`xfifm61`,$$css:!0},input:{kzqmXN:`xzjbwwf`,kZKoxP:`x1fgtraw`,kUOVxO:`x18kdvx8`,kg3NbH:`xdqyycr`,kMzoRj:`xmkeg23`,ksu8eU:`x1y0btm7`,kVAM5u:`xgcsv5v`,kaIpWk:`x1kogg8i`,kWkggS:`x1rozbrz`,kMwMTN:`xo2rkog`,kGuDYH:`x4z9k3i`,kI3sdo:`x1a2a7pz`,$$css:!0}},W=e=>e.name??(e.id===`main`?n(`whiteboard.pages.first`):e.id);function Me({pages:e,page:r,changed:i,onPick:a,onOp:o}){let[s,c]=(0,P.useState)(!1),[l,p]=(0,P.useState)(null),m=I(e),h=e.filter(e=>e.deleted),g=m.find(e=>e.id===r)??m[0],v=()=>p({mode:`add`,id:ge(new Set(e.map(e=>e.id))),value:``}),b=()=>{if(!l)return;let e=l.value.trim();l.mode===`add`?(o({op:`add`,id:l.id,name:e||n(`whiteboard.pages.untitled`)}),a(l.id),c(!1)):e&&o({op:`rename`,id:l.id,name:e}),p(null)},x=l&&(0,V.jsx)(`input`,{"data-page-name":!0,"aria-label":n(`whiteboard.pages.name`),placeholder:n(`whiteboard.pages.name`),ref:e=>e?.focus(),value:l.value,onBlur:()=>p(null),onChange:e=>p({...l,value:e.target.value}),onKeyDown:e=>{e.key===`Enter`&&b(),e.key===`Escape`&&p(null)},...t(U.input)}),S=(0,V.jsxs)(`button`,{"data-page-add":!0,"aria-label":n(`whiteboard.pages.add`),title:n(`whiteboard.pages.add`),type:`button`,onClick:v,...t(s?U.item:U.action),children:[(0,V.jsx)(O,{size:15}),s&&n(`whiteboard.pages.add`)]});return m.length<=1&&h.length===0?(0,V.jsx)(`span`,{"data-page-menu":!0,...t(U.menu),children:(0,V.jsx)(`span`,{style:{display:`contents`},children:x??S})}):(0,V.jsxs)(`span`,{"data-page-menu":!0,...t(U.menu),children:[(0,V.jsxs)(`button`,{"aria-expanded":s,"aria-label":n(`whiteboard.pages.switch`),type:`button`,onClick:()=>c(!s),...t(U.trigger),children:[(0,V.jsx)(C,{size:15,...t(U.muted)}),(0,V.jsx)(`span`,{...t(U.name),children:g?W(g):``}),[...i].some(e=>e!==r&&m.some(t=>t.id===e))&&(0,V.jsx)(`span`,{...t(U.dot)}),(0,V.jsx)(_,{size:14,...t(U.muted)})]}),s&&(0,V.jsxs)(`div`,{role:`menu`,...t(U.list),children:[m.map((e,s)=>(0,V.jsxs)(`div`,{"data-page-row":e.id,...t(U.row),children:[l?.mode===`rename`&&l.id===e.id?x:(0,V.jsxs)(`button`,{"data-changed":i.has(e.id)?`true`:void 0,"data-page-item":e.id,role:`menuitem`,type:`button`,onClick:()=>{a(e.id),c(!1)},...t(U.item),children:[(0,V.jsx)(`span`,{...t(U.check),children:e.id===r&&(0,V.jsx)(f,{size:14})}),(0,V.jsx)(`span`,{...t(U.name),children:W(e)}),i.has(e.id)&&(0,V.jsx)(`span`,{"aria-label":n(`whiteboard.pages.changed`),...t(U.dot)})]}),(0,V.jsx)(`button`,{"data-page-rename":!0,"aria-label":n(`whiteboard.pages.rename`),title:n(`whiteboard.pages.rename`),type:`button`,onClick:()=>p({mode:`rename`,id:e.id,value:W(e)}),...t(U.action),children:(0,V.jsx)(E,{size:13})}),e.id!==`main`&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{"data-page-up":!0,"aria-label":n(`whiteboard.pages.up`),disabled:s<=1,title:n(`whiteboard.pages.up`),type:`button`,onClick:()=>o({op:`move`,id:e.id,to:s-1}),...t(U.action),children:(0,V.jsx)(d,{size:13})}),(0,V.jsx)(`button`,{"data-page-down":!0,"aria-label":n(`whiteboard.pages.down`),disabled:s===m.length-1,title:n(`whiteboard.pages.down`),type:`button`,onClick:()=>o({op:`move`,id:e.id,to:s+1}),...t(U.action),children:(0,V.jsx)(u,{size:13})}),(0,V.jsx)(`button`,{"data-page-delete":!0,"aria-label":n(`whiteboard.pages.delete`),title:n(`whiteboard.pages.delete`),type:`button`,onClick:()=>{o({op:`delete`,id:e.id}),e.id===r&&a(`main`)},...t(U.action),children:(0,V.jsx)(T,{size:13})})]})]},e.id)),(0,V.jsx)(`div`,{...t(U.separator)}),(0,V.jsx)(`div`,{...t(U.row),children:l?.mode===`add`?x:S}),h.length>0&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`div`,{...t(U.separator)}),(0,V.jsx)(`div`,{...t(U.heading),children:n(`whiteboard.pages.deleted`)}),h.map(e=>(0,V.jsxs)(`div`,{...t(U.row),children:[(0,V.jsxs)(`span`,{...t(U.item),children:[(0,V.jsx)(`span`,{...t(U.check)}),(0,V.jsx)(`span`,{...t(U.name),children:W(e)})]}),(0,V.jsx)(`button`,{"aria-label":n(`whiteboard.pages.restore`),"data-page-restore":e.id,title:n(`whiteboard.pages.restore`),type:`button`,onClick:()=>o({op:`restore`,id:e.id}),...t(U.action),children:(0,V.jsx)(y,{size:13})})]},e.id))]})]})]})}function G(e){return[{id:null,label:null},...e.filter(e=>e.type===`frame`&&!e.isDeleted).map(e=>({id:e.id,label:typeof e.name==`string`&&e.name?e.name:e.id}))]}var Ne=()=>typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`);function Pe(){let[e,t]=(0,P.useState)(()=>Ne()?.matches??!1);return(0,P.useEffect)(()=>{let e=Ne();if(!e)return;let n=()=>t(e.matches);return e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}var Fe={path:{kUk6DE:`x98rzlu`,k7Eaqz:`xeuugli`,kVQacm:`xb3r6kr`,kg5iWk:`xlyipyv`,khDVqt:`xuxw1ft`,$$css:!0}},Ie={fitToViewport:!0,viewportZoomFactor:.9};function Le({id:e,scene:r,threads:i,setApi:a,onView:o,header:s,children:c}){let l=Pe(),u=(0,P.useRef)(null),[d,f]=(0,P.useState)(null),p=(0,P.useRef)(!1),[m,h]=(0,P.useState)(null),g=()=>{let e=u.current?.getSceneElements();return e?.length?e:r?.elements??[]},_=(e,t=!0)=>{let n=u.current,r=g(),i=e?r.filter(t=>t.id===e):r;return!n||!i.length?!1:(n.scrollToContent(i,{...Ie,animate:t}),f(e),!0)},v=()=>{if(p.current)return;let e=G(g())[1]?.id??null;p.current=_(e,!1)},y=(0,P.useRef)(v);(0,P.useLayoutEffect)(()=>{y.current=v}),(0,P.useEffect)(()=>{r&&y.current()},[r]);let b=(e,t)=>{v();let n=G(e);JSON.stringify(n)!==JSON.stringify(m)&&h(n),o?.({scrollX:t.scrollX,scrollY:t.scrollY,zoom:t.zoom.value})};return(0,V.jsxs)(`div`,{...t(B.root),children:[r?(0,V.jsx)(`div`,{"data-whiteboard-canvas":!0,"data-hide-native":`true`,...t(B.canvas),children:(0,V.jsx)(j,{viewModeEnabled:!0,theme:l?`dark`:`light`,excalidrawAPI:e=>{u.current=e,a?.(e)},initialData:{elements:r.elements,appState:{...r.appState,viewBackgroundColor:`#ffffff`},files:r.files},onChange:b})}):(0,V.jsx)(`div`,{...t(B.loading),children:n(`whiteboard.loading`)}),(0,V.jsxs)(`header`,{className:`x10l6tqk x13vifvy x17y0mx6 x78zum5 x6s0dn4 x167g77z xsdox4t xqin4a2 x12ilycc xso031l x1q0q8m5 xtrfj0v x4z9k3i x1n327nk`,children:[(0,V.jsxs)(`span`,{...t(Fe.path,B.crumb),children:[n(`type.whiteboard`),` / `,(0,V.jsx)(`span`,{...t(B.crumbId),children:e})]}),s,(0,V.jsx)(`span`,{className:`xj8oexa xlkn9b3 x1sxf85j xahzvm9 x1bo0w0s x1j6dyjg`,children:n(`whiteboard.readOnly`)}),i!==void 0&&(0,V.jsxs)(`span`,{className:`x3nfvp2 x6s0dn4 x1jnr06f x1bo0w0s`,children:[(0,V.jsx)(D,{size:14}),i]})]}),c,(0,V.jsx)(`nav`,{className:`x10l6tqk x191j7n5 xpnmzw7 x1s76y0k x78zum5 x17d4w8g xw2csxc x1n327nk`,children:(m??G(r?.elements??[])).map(e=>(0,V.jsx)(`button`,{"aria-pressed":d===e.id,"data-frame-chip":e.id??``,type:`button`,onClick:()=>_(e.id),...{0:{className:`x2lah0s x10w6t97 xqin4a2 xmkeg23 x1y0btm7 x12xov25 xgqmno8 x12ilycc xo2rkog xjb2p0i x4z9k3i xuxw1ft`},1:{className:`x2lah0s x10w6t97 xqin4a2 xmkeg23 x1y0btm7 xgqmno8 xjb2p0i x4z9k3i xuxw1ft x19ckca5 x1rqon0r xs0jrwl`}}[d===e.id|0],children:e.label??n(`whiteboard.all`)},e.id??``))})]})}var K=e=>typeof e.version!=`number`||typeof e.seed!=`number`,Re=e=>e===`human`||e===`agent`;function ze(e){let t=e.customData??{},n={};return Re(t.ryugiAuthor)&&(n.author=t.ryugiAuthor),typeof t.ryugiRev==`number`&&(n.rev=t.ryugiRev),Re(t.ryugiLastBy)&&(n.lastBy=t.ryugiLastBy),n}function q(e,t){for(let n of t)e.set(n.id,n.version??0)}function Be(e,t){let n=t.filter(t=>e.get(t.id)!==(t.version??0));return q(e,n),n}var Ve=e=>({x:e.x??0,y:e.y??0,w:e.width??0,h:e.height??0});function He(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=Ve(e),i=e.containerId?n.get(e.containerId):void 0;if(e.type===`text`&&i&&![`arrow`,`line`].includes(i.type)){let e=Ve(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 Ue=new Set([`arrow`,`line`]),We=new Set([`rectangle`,`ellipse`,`diamond`]),Ge=[`x`,`y`,`width`,`height`,`text`],Ke=e=>[e.start,e.end].map(e=>e?.id).filter(e=>typeof e==`string`),J=(e,t)=>({...e,...t,version:(e.version??0)+1,versionNonce:Math.floor(Math.random()*2**31),updated:Date.now()}),qe=e=>Ue.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,Je=(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 Ye(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 Ke(t)){let t=r.get(e);!t||n.has(e)||i.has(e)||i.set(e,{id:e,type:We.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=>Je(qe(e),a)),...i.values()],standIns:new Set(i.keys()),frames:a}}var Xe=e=>{let t=e.x??0,n=e.y??0,r=Array.isArray(e.points)?e.points:null;if(!r?.length)return[t,n,t+(e.width??0),n+(e.height??0)];let i=r.map(([e])=>t+e),a=r.map(([,e])=>n+e);return[Math.min(...i),Math.min(...a),Math.max(...i),Math.max(...a)]},Y=10,Ze=e=>{let t=e.map(Xe),n=Math.min(...t.map(([e])=>e))-Y,r=Math.min(...t.map(([,e])=>e))-Y,i=Math.max(...t.map(([,,e])=>e))+Y,a=Math.max(...t.map(([,,,e])=>e))+Y;return{x:n,y:r,width:i-n,height:a-r}};function Qe(e,t,n,r){for(let[i,{children:a,box:o}]of r){let r=new Set(a),s=e=>r.has(e.id)||!!(e.containerId&&r.has(e.containerId)),c=[];for(let[t,n]of e.entries())s(n)&&c.push(e[t]={...n,frameId:i});for(let r of n){if(!s(r)||e.some(e=>e.id===r.id))continue;let n=t.findIndex(e=>e.id===r.id),a=n>=0?{...t[n],frameId:i}:J(r,{frameId:i});n>=0?t[n]=a:t.push(a),c.push(a)}let l=e.findIndex(e=>e.id===i);if(l<0)continue;let u=o??(c.length?Ze(c):null);u&&(e[l]={...e[l],...u})}}function $e(e,t,n,r=new Map){let i=e.filter(e=>!t.has(e.id)),a=[];for(let r of t){let t=n.find(e=>e.id===r);if(!t)continue;let i=t.boundElements??[],o=(e.find(e=>e.id===r)?.boundElements??[]).filter(e=>!i.some(t=>t.id===e.id));o.length&&a.push(J(t,{boundElements:[...i,...o]}))}return Qe(i,a,n,r),{created:i,touched:a}}function et(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||Ge.every(n=>e[n]===t[n])?[]:[J(t,Object.fromEntries(Ge.map(t=>[t,e[t]])))]})}var tt=e=>e.map(e=>e.type===`text`&&e.containerId&&typeof e.originalText==`string`?{...e,text:e.originalText}:e),nt=1e3,X=(e,t)=>{let n=new Map(t.map(e=>[e.id,e])),r=e.map(e=>n.get(e.id)??e),i=new Set(e.map(e=>e.id));return[...r,...t.filter(e=>!i.has(e.id))]};function rt({id:e,pages:t,current:n,send:r,convert:i}){let a=(0,P.useRef)(new Map),o=(0,P.useRef)({send:r,convert:i});o.current={send:r,convert:i};let s=(0,P.useCallback)(async t=>{let n=a.current.get(t);if(!n)return;let r=n.elements.filter(K);if(r.length){let i=n.elements.filter(e=>!K(e)),a=o.current.convert(r,i);n.elements=X(i,a),o.current.send({type:`whiteboard-update`,artifact:`whiteboard/${e}`,page:t,elements:a,completion:!0})}let i=He(n.elements);if(i.sceneVersion===n.reported)return;n.reported=i.sceneVersion;let s=`page=${encodeURIComponent(t)}`;await fetch(N(`/api/whiteboard/${e}/geometry?${s}`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(i)});let c=await ne({elements:n.elements.filter(e=>!e.isDeleted),appState:{viewBackgroundColor:`#ffffff`,exportBackground:!0},files:n.files,mimeType:`image/png`});await fetch(N(`/api/whiteboard/${e}/render?version=${i.sceneVersion}&${s}`),{method:`POST`,headers:{"Content-Type":`image/png`},body:c})},[e]),c=(0,P.useCallback)(e=>{let t=a.current.get(e);t&&(clearTimeout(t.timer),t.timer=setTimeout(()=>void s(e),nt))},[s]),l=(t?I(t).map(e=>e.id).filter(e=>e!==n):[]).join(`
1
+ import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{_ as t,a as n}from"./route-B-3a8kXR.js";import{t as r}from"./react-B8SKf8RM.js";import{c as i,f as a,l as o,u as s}from"./split-url-Ds_SbiRI.js";import{t as c}from"./jsx-runtime-DePvh3-m.js";import{q as l}from"./MotionConfigContext-DBHtopYR.js";import{t as u}from"./arrow-down-DnWGNayx.js";import{t as d}from"./arrow-up-BjP7sXQi.js";import{b as f}from"./useOpenInteractionType-CFrlkl-M.js";import{a as p,i as m,o as h,r as g,s as _,t as v}from"./PhoneArtboardBar-Bzeyu7RL.js";import{a as y,c as b,i as x,n as S,o as C,s as w}from"./ThreadView-DhKDuMXE.js";import{c as T,d as E,f as D,l as ee,u as O}from"./lib-DABSWeJy.js";import{n as k,r as te,t as A}from"./index.js";/* empty css */import{Excalidraw as j,convertToExcalidrawElements as M,exportToBlob as ne,reconcileElements as re,restoreElements as ie}from"./prod-DT6gDrhK.js";import{n as ae}from"./Avatar-ChKkUO4F.js";import{n as oe}from"./useMedia-CWOjvrMw.js";import{s as se,t as ce}from"./WritingCursor-D8-ImQmN.js";import{n as le}from"./usePageQuery-BLapKgc-.js";import{t as N}from"./page-api-D8JklgWH.js";import"./shims-DAMrW7mQ.js";var ue={name:`move-up-right`,size:24,node:[[`path`,{d:`M13 5H19V11`,key:`1n1gyv`}],[`path`,{d:`M19 5L5 19`,key:`72u4yj`}]]};ue.node;var de=l(ue),fe={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`]};fe.node;var pe=l(fe),me={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`}]]};me.node;var he=l(me),P=e(r(),1),F=`main`,I=e=>e.filter(e=>!e.deleted);function ge(e){for(;;){let t=`p-${Math.random().toString(36).slice(2,6).padEnd(4,`0`)}`;if(!e.has(t))return t}}var L=8,R=10,_e=64,ve=190,z=(e,t)=>({x:(e.x+t.scrollX)*t.zoom,y:(e.y+t.scrollY)*t.zoom}),ye=(e,t)=>({x:e.x/t.zoom-t.scrollX,y:e.y/t.zoom-t.scrollY});function be(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 xe=(e,t,n)=>Math.min(Math.max(e,t),Math.max(t,n));function Se(e,t,n=420){let r=e.y-40-L,i=r<_e,a={x:xe(e.x,R,t.width-n-R),y:i?e.y+e.h+L:r,flipped:i},o=a.y+5,s=a.x-118-L,c=a.x+n+L,l={x:a.x,y:i?a.y+40+L:a.y-30-L},u=s>=R?{x:s,y:o}:c+118<=t.width-R?{x:c,y:o}:l,d=e.x+e.w+12;return{props:a,chip:u,composer:{x:d+320<=t.width-R?d:Math.max(R,e.x-320-12),y:xe(e.y,_e,t.height-ve)}}}function Ce(e,t,n,r=F){let i=be(e,e.map(e=>e.id))??{x:0,y:0,w:0,h:0};return{op:`create`,anchor:{x:i.x+i.w/2,y:i.y+i.h/2,elements:e.map(e=>e.id),...r===`main`?{}:{page:r}},text:t.trim()||n}}var B={root:{kVAEAm:`xixxii4`,kpwlN0:`x10a8y8t`,kWkggS:`x1rozbrz`,kMv6JI:`xqfszdh`,$$css:!0},canvas:{kVAEAm:`x10l6tqk`,kpwlN0:`x10a8y8t`,$$css:!0},bar:{kVAEAm:`x10l6tqk`,k87sOh:`x1eu8d0j`,k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kOIVth:`x195vfkc`,kZKoxP:`xn3w4p2`,kg3NbH:`xfn1xvj`,kWkggS:`x12ilycc`,kMzoRj:`xmkeg23`,ksu8eU:`x1y0btm7`,kVAM5u:`x12xov25`,kaIpWk:`x4pepcl`,kGVxlE:`x1cqdj14`,kGuDYH:`x4z9k3i`,kMwMTN:`xo2rkog`,kY2c9j:`x1n327nk`,$$css:!0},left:{kbCHJM:`x12lbrt0`,$$css:!0},right:{kCIrl2:`x131sewu`,$$css:!0},divider:{kzqmXN:`x1i1rx1s`,kZKoxP:`xmix8c7`,kUOVxO:`xjgtzcg`,kWkggS:`xh6qj2i`,$$css:!0},crumb:{kZCmMZ:`xe2zdcy`,kwRFfy:`xf159sx`,kMwMTN:`xddlp02`,kGuDYH:`xfifm61`,khDVqt:`xuxw1ft`,$$css:!0},crumbId:{kMwMTN:`xo2rkog`,k63SB2:`x1s688f`,$$css:!0},tool:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,kzqmXN:`x1691je0`,kZKoxP:`x90ne7k`,kmVPX3:`x1717udv`,kMzoRj:`xc342km`,kaIpWk:`xur7f20`,kWkggS:`xjbqb8w xj0l527`,kMwMTN:`xo2rkog`,kkrTdU:`x1ypdohk`,$$css:!0},toolOn:{kWkggS:`x15dg6x3`,$$css:!0},zoom:{k7Eaqz:`x1fns5xo`,kg3NbH:`xdqyycr`,kMwMTN:`x1bo0w0s`,kcqcaj:`xss6m8b`,k9WMMc:`x1hr2gdg`,$$css:!0},count:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kOIVth:`x1jnr06f`,kZKoxP:`x1gnnpzl`,kg3NbH:`xdqyycr`,kMwMTN:`x1bo0w0s`,kcqcaj:`xss6m8b`,$$css:!0},agentPill:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kOIVth:`x17d4w8g`,kZKoxP:`xxk0z11`,kUOVxO:`xjgtzcg`,kg3NbH:`x1awh872`,kaIpWk:`x1e6avla`,kWkggS:`x118mg9o`,kMwMTN:`xgs9y6l`,kGuDYH:`xfifm61`,khDVqt:`xuxw1ft`,$$css:!0},pillDot:{kzqmXN:`x1v4s8kt`,kZKoxP:`xols6we`,kaIpWk:`x16rqkct`,kWkggS:`xtwfq29`,$$css:!0},problem:{kVAEAm:`x10l6tqk`,k87sOh:`x1imwcls`,kbCHJM:`x1nrll8i`,k3aq6I:`xuuh30`,ks0D6T:`x27kpxv`,k8WAf4:`x1vvogim`,kg3NbH:`xaope02`,kaIpWk:`xur7f20`,kWkggS:`xqdcvd7`,kMwMTN:`x7zghnd`,kGuDYH:`x4z9k3i`,kY2c9j:`x1n327nk`,$$css:!0},loading:{kVAEAm:`x10l6tqk`,kpwlN0:`x10a8y8t`,k1xSpc:`xrvj5dj`,kgQiWS:`x1ku5rj1`,kMwMTN:`xddlp02`,$$css:!0}},V=c();function we({count:e}){return e?(0,V.jsxs)(`span`,{"data-agent-pill":!0,...t(B.agentPill),children:[(0,V.jsx)(`i`,{...t(B.pillDot)}),n(`whiteboard.agentChanged`,{count:e})]}):null}function Te({agent:e,glow:t,cursor:n,elements:r,view:i}){let a=new Map(r.map(e=>[e.id,e])),o=e=>({...z({x:e.x??0,y:e.y??0},i),w:(e.width??0)*i.zoom,h:(e.height??0)*i.zoom}),s=n?a.get(n):void 0;return(0,V.jsxs)(V.Fragment,{children:[t.flatMap(e=>{let t=a.get(e);if(!t)return[];let n=o(t);return[(0,V.jsx)(`div`,{"data-agent-glow":e,style:{left:n.x-7,top:n.y-7,width:n.w+14,height:n.h+14},className:`x10l6tqk xdh2fpr x1y0btm7 xr03jrs xur7f20 xempue3 x47corl x16tb26j`},e)]}),s&&(0,V.jsx)(`div`,{"data-agent-cursor":!0,style:{transform:`scale(${i.zoom}) translate(${i.scrollX}px, ${i.scrollY}px)`},className:`x10l6tqk xu96u03 x13vifvy x1hj3fc7 x47corl x16tb26j`,children:(0,V.jsx)(ce,{agent:e,title:s.id,zoom:i.zoom,...se({x:s.x??0,y:s.y??0,w:s.width??0,h:s.height??0},!0)})})]})}function Ee({compact:e=!1,onClick:t}){return(0,V.jsxs)(`button`,{"data-ask-chip":!0,"aria-label":n(`whiteboard.ask`),title:n(`whiteboard.ask`),type:`button`,onClick:t,className:`x3nfvp2 x6s0dn4 x17d4w8g x1fgtraw xdwrcjd x1awh872 xc342km xu4hgxq x19ckca5 xs0jrwl xqfszdh xfifm61 x1s688f x1ypdohk xuxw1ft`,children:[(0,V.jsx)(pe,{size:14}),!e&&n(`whiteboard.ask`)]})}function De({composer:e,count:t,onSend:r,onClose:i}){let[a,o]=(0,P.useState)(``),[s,c]=(0,P.useState)(!1),l=async()=>{c(!0);let e=await r(a);c(!1),e&&(o(``),i())};return(0,V.jsxs)(`div`,{"data-ask-composer":!0,role:`dialog`,style:{left:e.x,top:e.y},className:`x10l6tqk x1m258z3 x1gnqi22 x9f619 x12ilycc xmkeg23 x1y0btm7 x12xov25 x4pepcl x1qdtr29 x1x85hfe`,children:[(0,V.jsxs)(`p`,{className:`x78zum5 x6s0dn4 x17d4w8g x1ghz6dp x4z9k3i x1s688f`,children:[(0,V.jsx)(pe,{size:14}),n(`whiteboard.askTitle`)]}),(0,V.jsx)(`p`,{className:`xg9jes1 xyorhqc xfifm61 xddlp02`,children:n(`whiteboard.askSelected`,{count:t})}),(0,V.jsx)(`textarea`,{autoFocus:!0,placeholder:n(`whiteboard.askPlaceholder`),value:a,onChange:e=>o(e.target.value),className:`xh8yej3 x1peatla x9f619 x1vvogim x1awh872 xmkeg23 x1y0btm7 x12xov25 xur7f20 xqfszdh x4z9k3i xtt52l0`}),(0,V.jsxs)(`div`,{className:`x78zum5 x13a6bvl x17d4w8g x1anpbxc`,children:[(0,V.jsx)(`button`,{type:`button`,onClick:i,className:`x1fgtraw xaope02 xc342km x1kogg8i xahzvm9 x1bo0w0s x1ypdohk`,children:n(`whiteboard.cancel`)}),(0,V.jsx)(`button`,{"data-ask-send":!0,disabled:s,type:`button`,onClick:()=>void l(),className:`x1fgtraw xaope02 xc342km x1kogg8i x19ckca5 xs0jrwl x1s688f x1ypdohk xtgyt42 x1hc1fzr xijokvz`,children:n(`whiteboard.send`)})]})]})}var H={pin:{kVAEAm:`x10l6tqk`,kzqmXN:`xgd8bvy`,kZKoxP:`x1fgtraw`,kmVPX3:`x1717udv`,kMzoRj:`xc342km`,kaIpWk:`xqgj3pk`,kWkggS:`x1o91uai`,kMwMTN:`x8r4el6`,kGuDYH:`xfifm61`,k63SB2:`x1s688f`,kGVxlE:`xx1f5d8`,k3aq6I:`x105ttfm`,kkrTdU:`x1ypdohk`,kY2c9j:`xk3oba8`,$$css:!0},agentPin:{kWkggS:`xm2cizz`,$$css:!0},stalePin:{kWkggS:`xakccsc`,$$css:!0},orphanPin:{kWkggS:`xgeep88`,$$css:!0}},Oe=(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 ke({comments:e,commenting:r,elements:i,onDone:a,onOp:o,view:s,page:c=F}){let[l,u]=(0,P.useState)(null),[d,f]=(0,P.useState)(null),p=e.file.threads.filter(t=>t.status===`open`&&!t.messages.every(e=>e.deleted)&&(e.placed[t.id]??t.anchor.page??`main`)===c),m=p.find(e=>e.id===l),h=e=>void o(e),g=t=>[H.pin,t.messages[0]?.author===`agent`&&H.agentPin,e.stale.includes(t.id)&&H.stalePin,e.orphans.includes(t.id)&&H.orphanPin];return(0,V.jsxs)(V.Fragment,{children:[r&&(0,V.jsx)(`div`,{"data-comment-capture":!0,onClick:e=>{let t=e.currentTarget.getBoundingClientRect(),n={x:e.clientX-t.left,y:e.clientY-t.top},r=ye(n,s);f({screen:n,scene:r,element:Oe(i(),r)?.id})},className:`x10l6tqk x10a8y8t xsid9ct x1q8xho0`}),p.map((e,n)=>{let r=z(e.anchor,s);return(0,V.jsx)(`button`,{"data-pin":e.id,style:{left:`${r.x}px`,top:`${r.y}px`},type:`button`,onClick:()=>u(l===e.id?null:e.id),...t(...g(e)),children:n+1},e.id)}),m&&(0,V.jsx)(`div`,{style:{...Ae(z(m.anchor,s))},className:`x10l6tqk x1m258z3 x12ilycc xmkeg23 x1y0btm7 x12xov25 x4pepcl x1d5q07e xb3r6kr x1x85hfe`,children:(0,V.jsx)(S,{label:`#${p.indexOf(m)+1}`,thread:m,actions:{reply:(e,t)=>o({op:`reply`,threadId:e,text:t}),resolve:e=>h({op:`resolve`,threadId:e}),reopen:e=>h({op:`reopen`,threadId:e}),edit:(e,t,n)=>h({op:`edit`,threadId:e,messageId:t,text:n}),remove:(e,t)=>h({op:`delete`,threadId:e,messageId:t})},onClose:()=>u(null)})}),d&&(0,V.jsx)(`div`,{style:Ae(d.screen),className:`x10l6tqk x1m258z3 x12ilycc xmkeg23 x1y0btm7 x12xov25 x4pepcl x1d5q07e xb3r6kr x1x85hfe x7z7khe`,children:(0,V.jsx)(ae,{autoFocus:!0,placeholder:n(`comments.addPlaceholder`),onCancel:()=>{f(null),a()},onSubmit:async e=>{let t=await o({op:`create`,anchor:{x:d.scene.x,y:d.scene.y,...d.element?{elements:[d.element]}:{},...c===`main`?{}:{page:c}},text:e});return t&&(f(null),a()),t}})})]})}var Ae=e=>({left:e.x+18,top:Math.max(56,e.y-14)});function je({frame:e,count:t,elements:r,view:i}){let a=e?r.find(t=>t.id===e):void 0;if(!a)return null;let o=z({x:a.x??0,y:a.y??0},i);return(0,V.jsx)(`div`,{"data-frame-focus":a.id,style:{left:o.x,top:o.y,width:(a.width??0)*i.zoom,height:(a.height??0)*i.zoom},className:`x10l6tqk x1eovdha x1y0btm7 x5kefyr x12oqio5 x9f619 x47corl x1w0boku`,children:t>0&&(0,V.jsx)(`span`,{className:`x10l6tqk x12p4g1f x1bkpikb xf4egzd x1q4txso x1ctf4ec x7grq7f x8r4el6 xfifm61 x1s688f xuxw1ft`,children:n(`whiteboard.docRefs`,{count:t})})})}var U={menu:{kVAEAm:`x1n2onr6`,k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,$$css:!0},trigger:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kOIVth:`x17d4w8g`,kZKoxP:`x10w6t97`,ks0D6T:`x1ncir08`,kg3NbH:`xdqyycr`,kMzoRj:`xc342km`,kaIpWk:`xur7f20`,kWkggS:`xjbqb8w xj0l527`,kMwMTN:`xo2rkog`,kGuDYH:`x4z9k3i`,kkrTdU:`x1ypdohk`,$$css:!0},name:{kVQacm:`xb3r6kr`,kg5iWk:`xlyipyv`,khDVqt:`xuxw1ft`,$$css:!0},muted:{kMwMTN:`xddlp02`,kmuXW:`x2lah0s`,$$css:!0},list:{kVAEAm:`x10l6tqk`,k87sOh:`x9ri80z`,kbCHJM:`xu96u03`,k7Eaqz:`xlm99nl`,k8WAf4:`x12ulsxz`,kWkggS:`x12ilycc`,kMzoRj:`xmkeg23`,ksu8eU:`x1y0btm7`,kVAM5u:`x12xov25`,kaIpWk:`x1q4ynmn`,kGVxlE:`x1d5q07e`,kY2c9j:`x1355qak`,$$css:!0},row:{k1xSpc:`x78zum5`,kGNEyG:`x6s0dn4`,kOIVth:`x195vfkc`,kg3NbH:`xfn1xvj`,$$css:!0},item:{k1xSpc:`x78zum5`,kUk6DE:`x98rzlu`,kGNEyG:`x6s0dn4`,kOIVth:`x167g77z`,k7Eaqz:`xeuugli`,kZKoxP:`x10w6t97`,kg3NbH:`xdqyycr`,kMzoRj:`xc342km`,kaIpWk:`x1kogg8i`,kWkggS:`xjbqb8w xj0l527`,kMwMTN:`xo2rkog`,kGuDYH:`x4z9k3i`,k9WMMc:`xdpxx8g`,kkrTdU:`x1ypdohk`,$$css:!0},check:{kzqmXN:`x6jxa94`,kmuXW:`x2lah0s`,$$css:!0},dot:{kzqmXN:`x1v4s8kt`,kZKoxP:`xols6we`,kaIpWk:`x16rqkct`,kWkggS:`xm2cizz`,kmuXW:`x2lah0s`,$$css:!0},action:{k1xSpc:`x3nfvp2`,kGNEyG:`x6s0dn4`,kjj79g:`xl56j7k`,kzqmXN:`x23j0i4`,kZKoxP:`xd7y6wv`,kmVPX3:`x1717udv`,kMzoRj:`xc342km`,kaIpWk:`x1kogg8i`,kWkggS:`xjbqb8w xj0l527`,kMwMTN:`x1bo0w0s`,kkrTdU:`x1ypdohk`,$$css:!0},separator:{kZKoxP:`xjm9jq1`,kqGvvJ:`xg9jes1`,kWkggS:`xh6qj2i`,$$css:!0},heading:{kg3NbH:`xaope02`,k8WAf4:`x12ulsxz`,kMwMTN:`xddlp02`,kGuDYH:`xfifm61`,$$css:!0},input:{kzqmXN:`xzjbwwf`,kZKoxP:`x1fgtraw`,kUOVxO:`x18kdvx8`,kg3NbH:`xdqyycr`,kMzoRj:`xmkeg23`,ksu8eU:`x1y0btm7`,kVAM5u:`xgcsv5v`,kaIpWk:`x1kogg8i`,kWkggS:`x1rozbrz`,kMwMTN:`xo2rkog`,kGuDYH:`x4z9k3i`,kI3sdo:`x1a2a7pz`,$$css:!0}},W=e=>e.name??(e.id===`main`?n(`whiteboard.pages.first`):e.id);function Me({pages:e,page:r,changed:i,onPick:a,onOp:o}){let[s,c]=(0,P.useState)(!1),[l,p]=(0,P.useState)(null),m=I(e),h=e.filter(e=>e.deleted),g=m.find(e=>e.id===r)??m[0],v=()=>p({mode:`add`,id:ge(new Set(e.map(e=>e.id))),value:``}),b=()=>{if(!l)return;let e=l.value.trim();l.mode===`add`?(o({op:`add`,id:l.id,name:e||n(`whiteboard.pages.untitled`)}),a(l.id),c(!1)):e&&o({op:`rename`,id:l.id,name:e}),p(null)},x=l&&(0,V.jsx)(`input`,{"data-page-name":!0,"aria-label":n(`whiteboard.pages.name`),placeholder:n(`whiteboard.pages.name`),ref:e=>e?.focus(),value:l.value,onBlur:()=>p(null),onChange:e=>p({...l,value:e.target.value}),onKeyDown:e=>{e.key===`Enter`&&b(),e.key===`Escape`&&p(null)},...t(U.input)}),S=(0,V.jsxs)(`button`,{"data-page-add":!0,"aria-label":n(`whiteboard.pages.add`),title:n(`whiteboard.pages.add`),type:`button`,onClick:v,...t(s?U.item:U.action),children:[(0,V.jsx)(O,{size:15}),s&&n(`whiteboard.pages.add`)]});return m.length<=1&&h.length===0?(0,V.jsx)(`span`,{"data-page-menu":!0,...t(U.menu),children:(0,V.jsx)(`span`,{style:{display:`contents`},children:x??S})}):(0,V.jsxs)(`span`,{"data-page-menu":!0,...t(U.menu),children:[(0,V.jsxs)(`button`,{"aria-expanded":s,"aria-label":n(`whiteboard.pages.switch`),type:`button`,onClick:()=>c(!s),...t(U.trigger),children:[(0,V.jsx)(C,{size:15,...t(U.muted)}),(0,V.jsx)(`span`,{...t(U.name),children:g?W(g):``}),[...i].some(e=>e!==r&&m.some(t=>t.id===e))&&(0,V.jsx)(`span`,{...t(U.dot)}),(0,V.jsx)(_,{size:14,...t(U.muted)})]}),s&&(0,V.jsxs)(`div`,{role:`menu`,...t(U.list),children:[m.map((e,s)=>(0,V.jsxs)(`div`,{"data-page-row":e.id,...t(U.row),children:[l?.mode===`rename`&&l.id===e.id?x:(0,V.jsxs)(`button`,{"data-changed":i.has(e.id)?`true`:void 0,"data-page-item":e.id,role:`menuitem`,type:`button`,onClick:()=>{a(e.id),c(!1)},...t(U.item),children:[(0,V.jsx)(`span`,{...t(U.check),children:e.id===r&&(0,V.jsx)(f,{size:14})}),(0,V.jsx)(`span`,{...t(U.name),children:W(e)}),i.has(e.id)&&(0,V.jsx)(`span`,{"aria-label":n(`whiteboard.pages.changed`),...t(U.dot)})]}),(0,V.jsx)(`button`,{"data-page-rename":!0,"aria-label":n(`whiteboard.pages.rename`),title:n(`whiteboard.pages.rename`),type:`button`,onClick:()=>p({mode:`rename`,id:e.id,value:W(e)}),...t(U.action),children:(0,V.jsx)(E,{size:13})}),e.id!==`main`&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`button`,{"data-page-up":!0,"aria-label":n(`whiteboard.pages.up`),disabled:s<=1,title:n(`whiteboard.pages.up`),type:`button`,onClick:()=>o({op:`move`,id:e.id,to:s-1}),...t(U.action),children:(0,V.jsx)(d,{size:13})}),(0,V.jsx)(`button`,{"data-page-down":!0,"aria-label":n(`whiteboard.pages.down`),disabled:s===m.length-1,title:n(`whiteboard.pages.down`),type:`button`,onClick:()=>o({op:`move`,id:e.id,to:s+1}),...t(U.action),children:(0,V.jsx)(u,{size:13})}),(0,V.jsx)(`button`,{"data-page-delete":!0,"aria-label":n(`whiteboard.pages.delete`),title:n(`whiteboard.pages.delete`),type:`button`,onClick:()=>{o({op:`delete`,id:e.id}),e.id===r&&a(`main`)},...t(U.action),children:(0,V.jsx)(T,{size:13})})]})]},e.id)),(0,V.jsx)(`div`,{...t(U.separator)}),(0,V.jsx)(`div`,{...t(U.row),children:l?.mode===`add`?x:S}),h.length>0&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`div`,{...t(U.separator)}),(0,V.jsx)(`div`,{...t(U.heading),children:n(`whiteboard.pages.deleted`)}),h.map(e=>(0,V.jsxs)(`div`,{...t(U.row),children:[(0,V.jsxs)(`span`,{...t(U.item),children:[(0,V.jsx)(`span`,{...t(U.check)}),(0,V.jsx)(`span`,{...t(U.name),children:W(e)})]}),(0,V.jsx)(`button`,{"aria-label":n(`whiteboard.pages.restore`),"data-page-restore":e.id,title:n(`whiteboard.pages.restore`),type:`button`,onClick:()=>o({op:`restore`,id:e.id}),...t(U.action),children:(0,V.jsx)(y,{size:13})})]},e.id))]})]})]})}function G(e){return[{id:null,label:null},...e.filter(e=>e.type===`frame`&&!e.isDeleted).map(e=>({id:e.id,label:typeof e.name==`string`&&e.name?e.name:e.id}))]}var Ne=()=>typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`);function Pe(){let[e,t]=(0,P.useState)(()=>Ne()?.matches??!1);return(0,P.useEffect)(()=>{let e=Ne();if(!e)return;let n=()=>t(e.matches);return e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}var Fe={path:{kUk6DE:`x98rzlu`,k7Eaqz:`xeuugli`,kVQacm:`xb3r6kr`,kg5iWk:`xlyipyv`,khDVqt:`xuxw1ft`,$$css:!0}},Ie={fitToViewport:!0,viewportZoomFactor:.9};function Le({id:e,scene:r,threads:i,setApi:a,onView:o,header:s,children:c}){let l=Pe(),u=(0,P.useRef)(null),[d,f]=(0,P.useState)(null),p=(0,P.useRef)(!1),[m,h]=(0,P.useState)(null),g=()=>{let e=u.current?.getSceneElements();return e?.length?e:r?.elements??[]},_=(e,t=!0)=>{let n=u.current,r=g(),i=e?r.filter(t=>t.id===e):r;return!n||!i.length?!1:(n.scrollToContent(i,{...Ie,animate:t}),f(e),!0)},v=()=>{if(p.current)return;let e=G(g())[1]?.id??null;p.current=_(e,!1)},y=(0,P.useRef)(v);(0,P.useLayoutEffect)(()=>{y.current=v}),(0,P.useEffect)(()=>{r&&y.current()},[r]);let b=(e,t)=>{v();let n=G(e);JSON.stringify(n)!==JSON.stringify(m)&&h(n),o?.({scrollX:t.scrollX,scrollY:t.scrollY,zoom:t.zoom.value})};return(0,V.jsxs)(`div`,{...t(B.root),children:[r?(0,V.jsx)(`div`,{"data-whiteboard-canvas":!0,"data-hide-native":`true`,...t(B.canvas),children:(0,V.jsx)(j,{viewModeEnabled:!0,theme:l?`dark`:`light`,excalidrawAPI:e=>{u.current=e,a?.(e)},initialData:{elements:r.elements,appState:{...r.appState,viewBackgroundColor:`#ffffff`},files:r.files},onChange:b})}):(0,V.jsx)(`div`,{...t(B.loading),children:n(`whiteboard.loading`)}),(0,V.jsxs)(`header`,{className:`x10l6tqk x13vifvy x17y0mx6 x78zum5 x6s0dn4 x167g77z xsdox4t xqin4a2 x12ilycc xso031l x1q0q8m5 xtrfj0v x4z9k3i x1n327nk`,children:[(0,V.jsxs)(`span`,{...t(Fe.path,B.crumb),children:[n(`type.whiteboard`),` / `,(0,V.jsx)(`span`,{...t(B.crumbId),children:e})]}),s,(0,V.jsx)(`span`,{className:`xj8oexa xlkn9b3 x1sxf85j xahzvm9 x1bo0w0s x1j6dyjg`,children:n(`whiteboard.readOnly`)}),i!==void 0&&(0,V.jsxs)(`span`,{className:`x3nfvp2 x6s0dn4 x1jnr06f x1bo0w0s`,children:[(0,V.jsx)(D,{size:14}),i]})]}),c,(0,V.jsx)(`nav`,{className:`x10l6tqk x191j7n5 xpnmzw7 x1s76y0k x78zum5 x17d4w8g xw2csxc x1n327nk`,children:(m??G(r?.elements??[])).map(e=>(0,V.jsx)(`button`,{"aria-pressed":d===e.id,"data-frame-chip":e.id??``,type:`button`,onClick:()=>_(e.id),...{0:{className:`x2lah0s x10w6t97 xqin4a2 xmkeg23 x1y0btm7 x12xov25 xgqmno8 x12ilycc xo2rkog xjb2p0i x4z9k3i xuxw1ft`},1:{className:`x2lah0s x10w6t97 xqin4a2 xmkeg23 x1y0btm7 xgqmno8 xjb2p0i x4z9k3i xuxw1ft x19ckca5 x1rqon0r xs0jrwl`}}[d===e.id|0],children:e.label??n(`whiteboard.all`)},e.id??``))})]})}var K=e=>typeof e.version!=`number`||typeof e.seed!=`number`,Re=e=>e===`human`||e===`agent`;function ze(e){let t=e.customData??{},n={};return Re(t.ryugiAuthor)&&(n.author=t.ryugiAuthor),typeof t.ryugiRev==`number`&&(n.rev=t.ryugiRev),Re(t.ryugiLastBy)&&(n.lastBy=t.ryugiLastBy),n}function q(e,t){for(let n of t)e.set(n.id,n.version??0)}function Be(e,t){let n=t.filter(t=>e.get(t.id)!==(t.version??0));return q(e,n),n}var Ve=e=>({x:e.x??0,y:e.y??0,w:e.width??0,h:e.height??0});function He(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=Ve(e),i=e.containerId?n.get(e.containerId):void 0;if(e.type===`text`&&i&&![`arrow`,`line`].includes(i.type)){let e=Ve(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 Ue=new Set([`arrow`,`line`]),We=new Set([`rectangle`,`ellipse`,`diamond`]),Ge=[`x`,`y`,`width`,`height`,`text`],Ke=e=>[e.start,e.end].map(e=>e?.id).filter(e=>typeof e==`string`),J=(e,t)=>({...e,...t,version:(e.version??0)+1,versionNonce:Math.floor(Math.random()*2**31),updated:Date.now()}),qe=e=>Ue.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,Je=(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 Ye(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 Ke(t)){let t=r.get(e);!t||n.has(e)||i.has(e)||i.set(e,{id:e,type:We.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=>Je(qe(e),a)),...i.values()],standIns:new Set(i.keys()),frames:a}}var Xe=e=>{let t=e.x??0,n=e.y??0,r=Array.isArray(e.points)?e.points:null;if(!r?.length)return[t,n,t+(e.width??0),n+(e.height??0)];let i=r.map(([e])=>t+e),a=r.map(([,e])=>n+e);return[Math.min(...i),Math.min(...a),Math.max(...i),Math.max(...a)]},Y=10,Ze=e=>{let t=e.map(Xe),n=Math.min(...t.map(([e])=>e))-Y,r=Math.min(...t.map(([,e])=>e))-Y,i=Math.max(...t.map(([,,e])=>e))+Y,a=Math.max(...t.map(([,,,e])=>e))+Y;return{x:n,y:r,width:i-n,height:a-r}};function Qe(e,t,n,r){for(let[i,{children:a,box:o}]of r){let r=new Set(a),s=e=>r.has(e.id)||!!(e.containerId&&r.has(e.containerId)),c=[];for(let[t,n]of e.entries())s(n)&&c.push(e[t]={...n,frameId:i});for(let r of n){if(!s(r)||e.some(e=>e.id===r.id))continue;let n=t.findIndex(e=>e.id===r.id),a=n>=0?{...t[n],frameId:i}:J(r,{frameId:i});n>=0?t[n]=a:t.push(a),c.push(a)}let l=e.findIndex(e=>e.id===i);if(l<0)continue;let u=o??(c.length?Ze(c):null);u&&(e[l]={...e[l],...u})}}function $e(e,t,n,r=new Map){let i=e.filter(e=>!t.has(e.id)),a=[];for(let r of t){let t=n.find(e=>e.id===r);if(!t)continue;let i=t.boundElements??[],o=(e.find(e=>e.id===r)?.boundElements??[]).filter(e=>!i.some(t=>t.id===e.id));o.length&&a.push(J(t,{boundElements:[...i,...o]}))}return Qe(i,a,n,r),{created:i,touched:a}}function et(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||Ge.every(n=>e[n]===t[n])?[]:[J(t,Object.fromEntries(Ge.map(t=>[t,e[t]])))]})}var tt=e=>e.map(e=>e.type===`text`&&e.containerId&&typeof e.originalText==`string`?{...e,text:e.originalText}:e),nt=1e3,X=(e,t)=>{let n=new Map(t.map(e=>[e.id,e])),r=e.map(e=>n.get(e.id)??e),i=new Set(e.map(e=>e.id));return[...r,...t.filter(e=>!i.has(e.id))]};function rt({id:e,pages:t,current:n,send:r,convert:i}){let a=(0,P.useRef)(new Map),o=(0,P.useRef)({send:r,convert:i});o.current={send:r,convert:i};let s=(0,P.useCallback)(async t=>{let n=a.current.get(t);if(!n)return;let r=n.elements.filter(K);if(r.length){let i=n.elements.filter(e=>!K(e)),a=o.current.convert(r,i);n.elements=X(i,a),o.current.send({type:`whiteboard-update`,artifact:`whiteboard/${e}`,page:t,elements:a,completion:!0})}let i=He(n.elements);if(i.sceneVersion===n.reported)return;n.reported=i.sceneVersion;let s=`page=${encodeURIComponent(t)}`;await fetch(N(`/api/whiteboard/${e}/geometry?${s}`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(i)});let c=await ne({elements:n.elements.filter(e=>!e.isDeleted),appState:{viewBackgroundColor:`#ffffff`,exportBackground:!0},files:n.files,mimeType:`image/png`});await fetch(N(`/api/whiteboard/${e}/render?version=${i.sceneVersion}&${s}`),{method:`POST`,headers:{"Content-Type":`image/png`},body:c})},[e]),c=(0,P.useCallback)(e=>{let t=a.current.get(e);t&&(clearTimeout(t.timer),t.timer=setTimeout(()=>void s(e),nt))},[s]),l=(t?I(t).map(e=>e.id).filter(e=>e!==n):[]).join(`
2
2
  `);return(0,P.useEffect)(()=>{let t=new Set(l?l.split(`
3
3
  `):[]);for(let[e,n]of a.current)t.has(e)||(clearTimeout(n.timer),a.current.delete(e));for(let n of t){if(a.current.has(n))continue;let t={elements:[],files:{},reported:null};a.current.set(n,t),fetch(N(`/api/whiteboard/${e}/scene?page=${encodeURIComponent(n)}`),{cache:`no-store`}).then(e=>e.ok?e.json():null).catch(()=>null).then(e=>{e?.scene&&a.current.get(n)===t&&(t.elements=X(e.scene.elements,t.elements),t.files={...e.scene.files,...t.files},c(n))})}},[e,l,c]),(0,P.useEffect)(()=>{let e=a.current;return()=>{for(let t of e.values())clearTimeout(t.timer);e.clear()}},[e]),(0,P.useCallback)((e,t,n)=>{let r=a.current.get(e);r&&(r.elements=X(r.elements,t),n&&(r.files={...r.files,...n}),c(e))},[c])}var it=200,at=1e3,Z=e=>e,ot=Math.random().toString(36).slice(2),st={file:{version:1,threads:[]},stale:[],orphans:[],placed:{}},Q=e=>({file:e.comments,stale:e.stale??[],orphans:e.orphans??[],placed:e.placed??{}}),ct=(e,t)=>!e||t&&!I(t).some(t=>t.id===e)?F:e,$=(e,t)=>{let{batch:n,standIns:r,frames:i}=Ye(e,t),{created:a,touched:o}=$e(Z(M(n,{regenerateIds:!1})).map(t=>({...t,customData:e.find(e=>e.id===t.id)?.customData??t.customData})),r,t,i);return[...a,...o]};function lt(e,t,n=null){let r=`whiteboard/${e}`,[i,a]=(0,P.useState)(null),[o,s]=(0,P.useState)(null),c=ct(n,o),[l,u]=(0,P.useState)(new Set),d=(0,P.useRef)(c),[f,p]=(0,P.useState)(null),[m,h]=(0,P.useState)(st),g=(0,P.useRef)(null),_=(0,P.useRef)(new Map),v=(0,P.useRef)([]),y=(0,P.useRef)(new Set),b=(0,P.useRef)(``),x=(0,P.useRef)({}),S=(0,P.useRef)(t);S.current=t;let C=(0,P.useRef)(()=>void 0),w=(0,P.useRef)(()=>void 0),T=(0,P.useCallback)(()=>{let e=g.current;if(!e)return;let t=Z(e.getSceneElementsIncludingDeleted()),n=et(t,Z(ie(tt(t),null,{repairBindings:!0,refreshDimensions:!0})));if(!n.length)return;q(_.current,n);let i=new Map(n.map(e=>[e.id,e]));e.updateScene({elements:t.map(e=>i.get(e.id)??e)}),w.current({type:`whiteboard-update`,artifact:r,page:d.current,elements:n,completion:!0})},[r]),E=(0,P.useCallback)(e=>{let t=$(e,Z(g.current?.getSceneElementsIncludingDeleted()??v.current));q(_.current,t);let n=g.current;n&&n.updateScene({elements:re(n.getSceneElementsIncludingDeleted(),t,n.getAppState())}),w.current({type:`whiteboard-update`,artifact:r,page:d.current,elements:t,completion:!0}),T()},[r,T]),D=(0,P.useCallback)(e=>{let t=e.filter(K),n=e.filter(e=>!K(e));q(_.current,n);let r=g.current;r&&n.length&&r.updateScene({elements:re(r.getSceneElementsIncludingDeleted(),n,r.getAppState())}),t.length?E(t):n.length&&T()},[E,T]),{live:ee,send:O}=te(e=>{if(e.type===`whiteboard-comments`&&e.artifact===r){h(Q(e));return}if(e.type===`whiteboard-pages`&&e.artifact===r){s(e.pages);return}if(e.type!==`whiteboard-update`||e.artifact!==r)return;let t=e.page??`main`;if(t!==d.current)e.agent&&u(e=>new Set([...e,t])),C.current?.(t,e.elements,e.files);else{if(e.files){for(let t of Object.keys(e.files))y.current.add(t);g.current?.addFiles(Object.values(e.files))}D(e.elements),e.agent&&S.current?.(e.agent,e.elements)}});w.current=O,C.current=rt({id:e,pages:o,current:c,send:O,convert:$}),(0,P.useEffect)(()=>{let t=!1;return fetch(N(`/api/whiteboard/${e}/pages`),{cache:`no-store`}).then(e=>e.ok?e.json():null).catch(()=>null).then(e=>{!t&&e?.pages&&s(e.pages)}),()=>{t=!0}},[e]),(0,P.useEffect)(()=>{let t=!1;d.current=c,u(e=>{if(!e.has(c))return e;let t=new Set(e);return t.delete(c),t});let n=c===`main`?``:`?page=${encodeURIComponent(c)}`;return fetch(N(`/api/whiteboard/${e}/scene${n}`),{cache:`no-store`}).then(e=>e.ok?e.json():null).then(e=>{if(t||!e)return;let n=e.scene.elements.filter(K),i=e.scene.elements.filter(e=>!K(e)),o=n.length?$(n,i):[],s=new Map(o.map(e=>[e.id,e])),l=[...i.map(e=>s.get(e.id)??e),...o.filter(e=>!i.some(t=>t.id===e.id))];q(_.current,l),y.current=new Set(Object.keys(e.scene.files??{})),v.current=l,a({page:c,scene:{...e.scene,elements:l}}),o.length&&w.current({type:`whiteboard-update`,artifact:r,page:c,elements:o,completion:!0}),p(e.problem),e.comments&&h(Q({...e,comments:e.comments}))}),()=>{t=!0,x.current.send&&(clearTimeout(x.current.send),x.current.send=void 0,A.current(c)),clearTimeout(x.current.report),_.current=new Map,v.current=[],b.current=``,g.current=null}},[e,c]);let k=(0,P.useCallback)(async()=>{let t=g.current,n=v.current,r=He(n),i=d.current,a=i===`main`?``:`page=${encodeURIComponent(i)}`;if(await fetch(N(`/api/whiteboard/${e}/geometry${a?`?${a}`:``}`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(r)}),!t)return;let o=await ne({elements:n.filter(e=>!e.isDeleted),appState:t.getAppState(),files:t.getFiles(),mimeType:`image/png`});await fetch(N(`/api/whiteboard/${e}/render?version=${r.sceneVersion}${a?`&${a}`:``}`),{method:`POST`,headers:{"Content-Type":`image/png`},body:o})},[e]),A=(0,P.useRef)(()=>void 0);A.current=e=>{let t=Be(_.current,v.current);if(!t.length)return;let n=g.current?.getFiles()??{},i=Object.fromEntries(t.map(e=>e.fileId).filter(e=>typeof e==`string`&&!y.current.has(e)&&e in n).map(e=>[e,n[e]]));for(let e of Object.keys(i))y.current.add(e);O({type:`whiteboard-update`,artifact:r,page:e,elements:t,...Object.keys(i).length?{files:i}:{}})};let j=(0,P.useCallback)((e,t)=>{v.current=Z(e),clearTimeout(x.current.send),x.current.send=setTimeout(()=>{x.current.send=void 0,A.current(d.current)},it),clearTimeout(x.current.report),x.current.report=setTimeout(()=>void k(),at);let n=Object.keys(t.selectedElementIds??{}).filter(e=>t.selectedElementIds[e]),i=n.join(`,`);if(i===b.current)return;b.current=i;let a=new Map(v.current.map(e=>[e.id,e])),o=new Map(v.current.filter(e=>e.containerId&&typeof e.text==`string`).map(e=>[e.containerId,e.text]));O({type:`selection`,artifact:r,tab:ot,human:!0,page:d.current,selected:n.flatMap(e=>{let t=a.get(e);return t?[{id:t.id,type:t.type,text:o.get(t.id)??(typeof t.text==`string`?t.text:null),frameId:t.frameId??null,author:ze(t).author??null}]:[]})})},[r,k,O]),M=(0,P.useCallback)(e=>{g.current=e;let t=Z(e.getSceneElementsIncludingDeleted()).filter(K);t.length&&E(t),document.fonts?.ready.then(T)},[E,T]);(0,P.useEffect)(()=>{let e=document.fonts;if(e)return e.addEventListener(`loadingdone`,T),()=>e.removeEventListener(`loadingdone`,T)},[T]);let ae=(0,P.useCallback)(async t=>{let n=await fetch(N(`/api/whiteboard/${e}/comments`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!n.ok)return!1;let r=await n.json();return r.comments&&h(Q({...r,comments:r.comments})),!0},[e]),oe=(0,P.useCallback)(()=>v.current,[]),se=(0,P.useCallback)(e=>O({type:`whiteboard-pages`,artifact:r,op:e}),[r,O]);return{scene:i?.page===c?i.scene:null,page:c,problem:f,live:ee,onChange:j,setApi:M,api:g,report:k,send:O,comments:m,comment:ae,elements:oe,pages:o,changedPages:l,pageOp:se}}var ut=(e,t)=>e.scrollX===t.scrollX&&e.scrollY===t.scrollY&&e.zoom===t.zoom;function dt({id:e}){let[t,r]=le(),i=lt(e,()=>{},t),a=I(i.pages??[]).map(e=>({id:e.id,name:W(e)})),[o,s]=(0,P.useState)(!1),[c,l]=(0,P.useState)({scrollX:0,scrollY:0,zoom:1}),u=i.comments.file.threads.filter(e=>e.status===`open`).length;return(0,V.jsxs)(Le,{id:e,scene:i.scene,setApi:i.setApi,threads:u,header:(0,V.jsx)(v,{page:i.page,pages:a,onPageChange:e=>r(e===`main`?null:e,!1)}),onView:e=>{ut(e,c)||l(e)},children:[o&&(0,V.jsx)(ke,{commenting:!1,comments:i.comments,elements:i.elements,page:i.page,view:c,onDone:()=>{},onOp:i.comment}),(0,V.jsx)(`button`,{"data-phone-comments":!0,"aria-label":n(`whiteboard.tools.comment`),"aria-pressed":o,type:`button`,onClick:()=>s(e=>!e),className:`x10l6tqk xn5hqff xn0vg7t xrvj5dj x1ku5rj1 x187nhsf xn3w4p2 xc342km x13pz1uv x7grq7f x8r4el6 x1fptykp x1n327nk`,children:(0,V.jsx)(D,{size:18})})]},i.page)}var ft=[`#1e1e1e`,`#e03131`,`#2f9e44`,`#1971c2`,`#f08c00`],pt=[`#ffec99`,`#ffc9c9`,`#b2f2bb`,`#a5d8ff`,`transparent`],mt=[[`S`,16],[`M`,20],[`L`,28]],ht=[1,2,4],gt=[100,60,30];function _t({x:e,y:t,selected:r,onApply:i,onWidth:a,trailing:o,compact:s=!1}){let[c,l]=(0,P.useState)(!1),u=r[0],d=u?.strokeColor,f=u?.backgroundColor,p=r.find(e=>typeof e.fontSize==`number`)?.fontSize;return(0,V.jsxs)(`div`,{"data-property-bar":!0,"data-compact":s||void 0,style:{left:e,top:t},ref:e=>{e&&a?.(e.offsetWidth)},className:`x10l6tqk x78zum5 x6s0dn4 x195vfkc x1vqgdyp x1xijbu4 x12ilycc xmkeg23 x1y0btm7 x12xov25 x1q4ynmn x1cqdj14 x1of6sz5`,children:[!s&&(0,V.jsx)(`span`,{className:`x1xijbu4 x1j6dyjg xddlp02`,children:n(`whiteboard.stroke`)}),ft.map(e=>(0,V.jsx)(`button`,{"aria-label":e,"data-stroke":e,style:{backgroundColor:e},type:`button`,onClick:()=>i({strokeColor:e}),...{0:{className:`x1xp8n7a xmix8c7 xj3msbq x1717udv xc342km x16rqkct x1scgrc6 x1ypdohk`},1:{className:`x1xp8n7a xmix8c7 xj3msbq x1717udv xc342km x16rqkct x1ypdohk x1cisi93`}}[d===e|0]},e)),(0,V.jsx)(`span`,{className:`x1i1rx1s xmix8c7 xjgtzcg xh6qj2i`}),!s&&(0,V.jsx)(`span`,{className:`x1xijbu4 x1j6dyjg xddlp02`,children:n(`whiteboard.fill`)}),pt.map(e=>(0,V.jsx)(`button`,{"aria-label":e,"data-fill":e,style:{backgroundColor:e===`transparent`?`#fff`:e},type:`button`,onClick:()=>i({backgroundColor:e,fillStyle:`solid`}),...{0:{className:`x1xp8n7a xmix8c7 xj3msbq x1717udv xc342km x1scgrc6 x1ypdohk x1sxf85j`},1:{className:`x1xp8n7a xmix8c7 xj3msbq x1717udv xc342km x1ypdohk x1sxf85j x1cisi93`}}[f===e|0]},e)),(0,V.jsx)(`span`,{className:`x1i1rx1s xmix8c7 xjgtzcg xh6qj2i`}),mt.map(([e,t])=>(0,V.jsx)(`button`,{"aria-label":`${n(`whiteboard.fontSize`)} ${e}`,"data-font-size":t,type:`button`,onClick:()=>i({fontSize:t}),...{0:{className:`xlrd64x xd7y6wv xfn1xvj xc342km x1kogg8i xjbqb8w x1bo0w0s x1j6dyjg x1s688f x1ypdohk`},1:{className:`xlrd64x xd7y6wv xfn1xvj xc342km x1kogg8i x1j6dyjg x1s688f x1ypdohk x15dg6x3 xo2rkog`}}[p===t|0],children:e},e)),(0,V.jsx)(`span`,{className:`x1i1rx1s xmix8c7 xjgtzcg xh6qj2i`}),(0,V.jsx)(`button`,{"aria-expanded":c,"aria-label":n(`whiteboard.more`),type:`button`,onClick:()=>l(e=>!e),className:`xlrd64x xd7y6wv xfn1xvj xc342km x1kogg8i xjbqb8w x1bo0w0s x1j6dyjg x1s688f x1ypdohk`,children:(0,V.jsx)(b,{size:16})}),c&&(0,V.jsxs)(`div`,{className:`x10l6tqk xtirvkn x3m8u43 x78zum5 x6s0dn4 x195vfkc x1ruevkc x12ilycc xmkeg23 x1y0btm7 x12xov25 x1q4ynmn x1cqdj14`,children:[(0,V.jsx)(`span`,{className:`x1xijbu4 x1j6dyjg xddlp02`,children:n(`whiteboard.strokeWidth`)}),ht.map(e=>(0,V.jsx)(`button`,{"data-stroke-width":e,type:`button`,onClick:()=>i({strokeWidth:e}),...{0:{className:`xlrd64x xd7y6wv xfn1xvj xc342km x1kogg8i xjbqb8w x1bo0w0s x1j6dyjg x1s688f x1ypdohk`},1:{className:`xlrd64x xd7y6wv xfn1xvj xc342km x1kogg8i x1j6dyjg x1s688f x1ypdohk x15dg6x3 xo2rkog`}}[u?.strokeWidth===e|0],children:e},e)),(0,V.jsx)(`span`,{className:`x1i1rx1s xmix8c7 xjgtzcg xh6qj2i`}),(0,V.jsx)(`span`,{className:`x1xijbu4 x1j6dyjg xddlp02`,children:n(`whiteboard.opacity`)}),gt.map(e=>(0,V.jsx)(`button`,{"data-opacity":e,type:`button`,onClick:()=>i({opacity:e}),...{0:{className:`xlrd64x xd7y6wv xfn1xvj xc342km x1kogg8i xjbqb8w x1bo0w0s x1j6dyjg x1s688f x1ypdohk`},1:{className:`xlrd64x xd7y6wv xfn1xvj xc342km x1kogg8i x1j6dyjg x1s688f x1ypdohk x15dg6x3 xo2rkog`}}[u?.opacity===e|0],children:e},e))]}),o]})}var vt=`#ffec99`,yt=[{key:`selection`,icon:g,shortcut:`V`,group:`move`},{key:`hand`,icon:p,shortcut:`H`,group:`move`},{key:`rectangle`,icon:ee,shortcut:`R`,group:`draw`},{key:`ellipse`,icon:h,shortcut:`O`,group:`draw`},{key:`arrow`,icon:de,shortcut:`A`,group:`draw`},{key:`text`,icon:x,shortcut:`T`,group:`draw`},{key:`sticky`,icon:he,shortcut:`S`,group:`draw`},{key:`freedraw`,icon:E,shortcut:`P`,group:`draw`},{key:`frame`,icon:w,shortcut:`F`,group:`draw`},{key:`comment`,icon:m,shortcut:`C`,group:`talk`}],bt=(e,t,n)=>({type:`rectangle`,x:e,y:t,width:240,height:120,backgroundColor:vt,fillStyle:`solid`,strokeColor:`#1e1e1e`,label:{text:n}}),xt=2e3,St=1e4,Ct={at:0,event:null},wt=(e,t,n)=>({at:n,event:t});function Tt(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 Et(){let[e,t]=(0,P.useState)(Ct),[n,r]=(0,P.useState)(()=>Date.now());return(0,P.useEffect)(()=>{if(!e.event)return;let t=()=>r(Date.now()),n=setTimeout(t,Math.max(0,e.at+xt-Date.now())),i=setTimeout(t,Math.max(0,e.at+St-Date.now()));return()=>{clearTimeout(n),clearTimeout(i)}},[e]),{visible:Tt(e,n),record:e=>{let n=Date.now();t(t=>wt(t,e,n)),r(n)}}}var Dt=.8;function Ot(e,t,n,r,i=!1){if(e.frame){let a=n.filter(t=>t.id===e.frame);if(a.length)return{target:a,frame:e.frame};let o=r[e.frame];return!o&&i?{wait:!0}:o&&o!==t?{switchTo:o}:{drop:!0}}return e.page&&e.page!==t?{switchTo:e.page}:{target:n}}function kt(e,t,n={current:F,switchTo:()=>void 0}){let r=(0,P.useMemo)(()=>o(),[]),[i,c]=(0,P.useState)({}),[l,u]=(0,P.useState)(`Agent`),[d,f]=(0,P.useState)(null),[p,m]=(0,P.useState)(!1),h=(0,P.useRef)(null),g=(0,P.useRef)({}),_=(0,P.useRef)(!1),v=(0,P.useRef)(null);(0,P.useEffect)(()=>{let t=!1,n=()=>fetch(N(`/api/artifacts/whiteboard/${e}`),{cache:`no-store`}).then(async e=>e.ok?await e.json():null).catch(()=>null).then(e=>{!t&&e&&(e.backlinks&&c(e.backlinks),typeof e.agent==`string`&&e.agent&&u(e.agent))});n();let r=k(t=>{t.type===`change`&&t.artifact===`whiteboard/${e}`&&n()});return()=>{t=!0,r()}},[e]);let y=()=>{let e=t.current,r=h.current;if(!r||!e)return;let i=e.getSceneElements();if(!i.length&&!r.page&&!r.frame)return;let a=Ot(r,n.current,i,g.current,_.current);`wait`in a||(`switchTo`in a?(h.current={frame:r.frame??null},n.switchTo(a.switchTo)):i.length&&(h.current=null,!(`drop`in a||!a.target.length)&&(e.scrollToContent(a.target,{fitToViewport:!0,viewportZoomFactor:Dt,animate:!0}),f(a.frame??null))))},b=(0,P.useRef)(y);return b.current=y,(0,P.useEffect)(()=>{if(!r)return;let t=s(t=>{t.kind===`chrome`&&m(t.hosted),t.kind===`focus`&&(h.current={frame:t.frame??null,page:t.page},t.frame&&!g.current[t.frame]&&(_.current=!0,fetch(N(`/api/whiteboard/${e}/pages`),{cache:`no-store`}).then(e=>e.ok?e.json():null).catch(()=>null).then(e=>{g.current=Object.fromEntries(Object.entries(e?.frames??{}).map(([e,t])=>[e,t.page])),_.current=!1,b.current()})),b.current())});return a({kind:`ready`}),t},[r,e]),{split:r,agent:l,docked:p,focus:d,flush:y,count:d?i[d]?.length??0:0,onSelect:e=>{if(!r)return;let t=e.length===1&&e[0].type===`frame`?e[0].id:null;e.length&&t!==d&&f(null),t!==v.current&&(v.current=t,t&&a({kind:`select`,key:t}))}}}function At({id:e,active:r,onTool:i,zoom:a,comments:o,agentNotice:s,trailing:c,pageMenu:l,docked:u=!1,readOnly:d=!1}){let f=d?yt.filter(e=>e.group!==`draw`):yt;return(0,V.jsxs)(V.Fragment,{children:[!u&&(0,V.jsxs)(`div`,{"data-chrome":!0,...t(B.bar,B.left),children:[(0,V.jsxs)(`span`,{...t(B.crumb),children:[n(`type.whiteboard`),` / `,(0,V.jsx)(`span`,{...t(B.crumbId),children:e})]}),l,s,f.map((e,a)=>{let o=e.icon,s=n(`whiteboard.tools.${e.key}`),c=a===0||e.group!==f[a-1].group;return(0,V.jsxs)(`span`,{style:{display:`contents`},children:[c&&(0,V.jsx)(`span`,{...t(B.divider)}),(0,V.jsx)(`button`,{"aria-label":s,"aria-pressed":r===e.key,"data-tool":e.key,title:s,type:`button`,onClick:()=>i(e.key),...t(B.tool,r===e.key&&B.toolOn),children:(0,V.jsx)(o,{size:18,strokeWidth:1.75})})]},e.key)})]}),(0,V.jsxs)(`div`,{"data-chrome":!0,...t(B.bar,B.right),children:[u&&s,(0,V.jsxs)(`span`,{...t(B.zoom),children:[Math.round(a*100),`%`]}),(0,V.jsx)(`span`,{...t(B.divider)}),(0,V.jsxs)(`span`,{...t(B.count),children:[(0,V.jsx)(D,{size:15}),o]}),c]})]})}window.EXCALIDRAW_ASSET_PATH=`/`;var jt={canvasActions:{changeViewBackgroundColor:!1,clearCanvas:!1,export:!1,loadScene:!1,saveAsImage:!1,saveToActiveFile:!1,toggleTheme:!1},tools:{image:!1}},Mt=700,Nt=e=>e.map(e=>`${e.id}:${e.version??0}`).join(`,`);function Pt({id:e}){return i(oe(`(max-width: 640px)`))?(0,V.jsx)(dt,{id:e}):(0,V.jsx)(Ft,{id:e})}function Ft({id:e}){let r=Et(),[i,a]=le(),o=lt(e,r.record,i);A(o.scene!==null||o.problem!==null);let s=kt(e,o.api,{current:o.page,switchTo:e=>a(e===`main`?null:e,!0)}),c=Pe(),[l,u]=(0,P.useState)(`selection`),[d,f]=(0,P.useState)({scrollX:0,scrollY:0,zoom:1}),[p,m]=(0,P.useState)({width:1280,height:800}),[h,g]=(0,P.useState)([]),[_,v]=(0,P.useState)(void 0),[y,b]=(0,P.useState)(!1),x=e=>{let t=o.api.current;if(u(e),t&&e!==`comment`){if(e===`sticky`){let e=t.getAppState(),r=-e.scrollX+e.width/(2*e.zoom.value)-120,i=-e.scrollY+e.height/(2*e.zoom.value)-60,a=M([bt(r,i,n(`whiteboard.sticky`))]);t.updateScene({elements:[...t.getSceneElementsIncludingDeleted(),...a],appState:{selectedElementIds:{[a[0].id]:!0}}}),u(`selection`)}else t.setActiveTool({type:e})}},S=(e,t)=>{o.onChange(e,t),s.flush();let n={scrollX:t.scrollX,scrollY:t.scrollY,zoom:t.zoom.value};(n.scrollX!==d.scrollX||n.scrollY!==d.scrollY||n.zoom!==d.zoom)&&f(n),(t.width!==p.width||t.height!==p.height)&&m({width:t.width,height:t.height});let r=Object.keys(t.selectedElementIds??{}).filter(e=>t.selectedElementIds[e]),i=e.filter(e=>r.includes(e.id));Nt(i)!==Nt(h)&&(g(i),i.length||b(!1),s.onSelect(i))},C=e=>{let t=o.api.current;if(!t)return;let n=new Set(h.map(e=>e.id));t.updateScene({elements:t.getSceneElementsIncludingDeleted().map(t=>{let r=t;if(!(n.has(r.id)||r.containerId&&n.has(r.containerId)))return t;let i=Object.fromEntries(Object.entries(e).filter(([e])=>e===`fontSize`?r.type===`text`:e===`backgroundColor`||e===`fillStyle`?r.type!==`text`:!0));return{...t,...i,version:(r.version??0)+1,versionNonce:Math.floor(Math.random()*2**31),updated:Date.now()}})})},w=be(h,h.map(e=>e.id)),T=w&&{...z(w,d),w:w.w*d.zoom,h:w.h*d.zoom},E=T&&Se(T,p,_);return(0,V.jsxs)(`div`,{...t(B.root),children:[o.scene?(0,V.jsx)(`div`,{"data-whiteboard-canvas":!0,"data-hide-native":`true`,...t(B.canvas),children:(0,V.jsx)(j,{UIOptions:jt,excalidrawAPI:o.setApi,theme:c?`dark`:`light`,initialData:{elements:o.scene.elements,appState:{...o.scene.appState,viewBackgroundColor:`#ffffff`},files:o.scene.files,scrollToContent:!0},onChange:S},o.page)}):(0,V.jsx)(`div`,{...t(B.loading),children:n(`whiteboard.loading`)}),o.problem&&(0,V.jsx)(`div`,{role:`alert`,...t(B.problem),children:n(`whiteboard.problem`,{problem:o.problem})}),E&&l!==`comment`&&(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(_t,{compact:p.width<Mt,selected:h,x:E.props.x,y:E.props.y,trailing:(0,V.jsx)(Ee,{compact:p.width<Mt,onClick:()=>b(!0)}),onApply:C,onWidth:e=>{e&&e!==_&&v(e)}}),y&&(0,V.jsx)(De,{composer:E.composer,count:h.length,onClose:()=>b(!1),onSend:async e=>(await o.report(),o.comment(Ce(h,e,n(`whiteboard.askDefault`),o.page)))})]}),(0,V.jsx)(ke,{commenting:l===`comment`,comments:o.comments,elements:o.elements,page:o.page,view:d,onDone:()=>u(`selection`),onOp:o.comment}),(0,V.jsx)(je,{count:s.count,elements:o.api.current?.getSceneElements()??[],frame:s.focus,view:d}),(0,V.jsx)(Te,{agent:s.agent,cursor:r.visible.cursor,elements:o.api.current?.getSceneElements()??[],glow:r.visible.glow,view:d}),(0,V.jsx)(At,{active:l,agentNotice:(0,V.jsx)(we,{count:r.visible.count}),comments:o.comments.file.threads.filter(e=>e.status===`open`).length,docked:s.docked,id:e,zoom:d.zoom,pageMenu:o.pages&&(0,V.jsx)(Me,{changed:o.changedPages,page:o.page,pages:o.pages,onOp:o.pageOp,onPick:e=>a(e===`main`?null:e,!1)}),onTool:x})]})}export{Pt 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-BkD9GF0y.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-GSv6M_4b.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-Dv3KmGY3.js";import"./dist-BZ5zojGQ.js";import{m as n,t as r}from"./mermaid-parser.core-Bj6JAkmh.js";import{n as i,r as a,t as o}from"./chunk-SVP7TREG-HG6La_wJ.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-DTVWCdhx.js";import"./dist-Cy8NldSx.js";import{m as n,t as r}from"./mermaid-parser.core-Gvb8dIz1.js";import{n as i,r as a,t as o}from"./chunk-SVP7TREG-0tebC1pj.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};