ryugi-artifacts 1.43.0 → 1.44.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 (199) hide show
  1. package/dist/cli.cjs +662 -335
  2. package/dist/server.cjs +128 -80
  3. package/dist/viewer/{ArtboardLayout-7_rmu60e.js → ArtboardLayout-v5QCVEaH.js} +1 -1
  4. package/dist/viewer/{ArtifactList-CC5-1ZFP.js → ArtifactList-mxXh57SU.js} +1 -1
  5. package/dist/viewer/{AutoPublishPrompt-B2D53_Kz.js → AutoPublishPrompt-COIe6yz0.js} +1 -1
  6. package/dist/viewer/{Canvas-13klENDh.js → Canvas-DIlI-OTY.js} +1 -1
  7. package/dist/viewer/{DocumentLayout-DZ-2_UTn.js → DocumentLayout-CarX1EiV.js} +2 -2
  8. package/dist/viewer/{DocumentPage-BcgERMV0.js → DocumentPage-BgoMJYd6.js} +1 -1
  9. package/dist/viewer/{HtmlLayout-CtlWM446.js → HtmlLayout-BmYAOIJ4.js} +1 -1
  10. package/dist/viewer/{MenuRoot-CwCVByOp.js → MenuRoot-CCLU8wQR.js} +1 -1
  11. package/dist/viewer/{PopoverPopup-BA537pRU.js → PopoverPopup-By2qMtdn.js} +1 -1
  12. package/dist/viewer/{PreviewLayout-C5OKA9J4.js → PreviewLayout-Dzkz7UOF.js} +2 -2
  13. package/dist/viewer/{Select-D2-94UGe.js → Select-CpRtuH5I.js} +1 -1
  14. package/dist/viewer/{SnapshotDocument-kHyl0dKv.js → SnapshotDocument-D0Lkq1g9.js} +1 -1
  15. package/dist/viewer/{ThreadView-Qlz9Ufo7.js → ThreadView-CmAxKSZ7.js} +1 -1
  16. package/dist/viewer/{TooltipPopup-Cpm4Cwxn.js → TooltipPopup-CdpS4tTR.js} +1 -1
  17. package/dist/viewer/{WarningsBadge-BtRPiCiS.js → WarningsBadge-xIuKcdGp.js} +1 -1
  18. package/dist/viewer/{abnfDiagram-VCTEODGH-Cc589tRO.js → abnfDiagram-VCTEODGH-vYXwOi2L.js} +1 -1
  19. package/dist/viewer/{ar-SA-G6X2FPQ2-qNPFpNYG.js → ar-SA-G6X2FPQ2-9GXzPlrK.js} +1 -1
  20. package/dist/viewer/{architecture-7GRP2DOG-BizmpjHH.js → architecture-7GRP2DOG-Dy3GJfSN.js} +1 -1
  21. package/dist/viewer/{architectureDiagram-5GKGNRK7-BuHdaFmM.js → architectureDiagram-5GKGNRK7-1EQ6eTro.js} +1 -1
  22. package/dist/viewer/{az-AZ-76LH7QW2-CbXvPy4A.js → az-AZ-76LH7QW2-B6E08k0L.js} +1 -1
  23. package/dist/viewer/{bg-BG-XCXSNQG7-DcRkeEZa.js → bg-BG-XCXSNQG7-CT75Hh8J.js} +1 -1
  24. package/dist/viewer/{blockDiagram-I7D4REHJ-BjZAhqNZ.js → blockDiagram-I7D4REHJ-Bots_bLJ.js} +1 -1
  25. package/dist/viewer/{bn-BD-2XOGV67Q-CYG0oQ07.js → bn-BD-2XOGV67Q-CdBG2RJk.js} +1 -1
  26. package/dist/viewer/{c4Diagram-7LVT6UL2-Dw9Lqcc4.js → c4Diagram-7LVT6UL2-C7DksWh5.js} +1 -1
  27. package/dist/viewer/{ca-ES-6MX7JW3Y-DZg7oXog.js → ca-ES-6MX7JW3Y-DDc1wD41.js} +1 -1
  28. package/dist/viewer/channel-ByZrhKcD.js +1 -0
  29. package/dist/viewer/{channel-CgSk2sDt.js → channel-CK8VjRfv.js} +4 -4
  30. package/dist/viewer/{chunk-4HAMMTFA-CmIOM_4n.js → chunk-4HAMMTFA-CFwFBnb7.js} +1 -1
  31. package/dist/viewer/{chunk-75Z2AOVW-Bk3gHz3u.js → chunk-75Z2AOVW-Ckcf4HXf.js} +1 -1
  32. package/dist/viewer/{chunk-DU6HZSFF-Z871Xxjd.js → chunk-DU6HZSFF-DSkKm1Sg.js} +1 -1
  33. package/dist/viewer/{chunk-EIO257PC-BowPlGMj.js → chunk-EIO257PC-Cp5jHH2B.js} +1 -1
  34. package/dist/viewer/{chunk-F27PBJKO-Da_Uy85s.js → chunk-F27PBJKO-CGR7FwkE.js} +1 -1
  35. package/dist/viewer/{chunk-GMAD6QVW-D99eqSu1.js → chunk-GMAD6QVW-CrVyThKY.js} +1 -1
  36. package/dist/viewer/{chunk-GVQU2GXP-DpHE-JHS.js → chunk-GVQU2GXP-DeN7DWg4.js} +1 -1
  37. package/dist/viewer/{chunk-IMKFNOWR-DNlzjXm8.js → chunk-IMKFNOWR-fh_OFrpb.js} +1 -1
  38. package/dist/viewer/{chunk-L3NEJ4N5-CwGjxbjF.js → chunk-L3NEJ4N5-B5ku2yKH.js} +1 -1
  39. package/dist/viewer/{chunk-OSK3NFVY-B4adwKZF.js → chunk-OSK3NFVY-BZxVtLcj.js} +1 -1
  40. package/dist/viewer/{chunk-P2QGCYS3-CR8elxW8.js → chunk-P2QGCYS3-vj5npGX4.js} +1 -1
  41. package/dist/viewer/{chunk-POPQ4Y6H-D5X5fYtJ.js → chunk-POPQ4Y6H-y6gZTjTL.js} +1 -1
  42. package/dist/viewer/{chunk-PWAF6VOD-C52ljaIH.js → chunk-PWAF6VOD-C5U8QIrG.js} +1 -1
  43. package/dist/viewer/{chunk-SHT3W25Y-Bqd2yIYA.js → chunk-SHT3W25Y-CrNt-vdk.js} +1 -1
  44. package/dist/viewer/{chunk-SVP7TREG-B-2E6atr.js → chunk-SVP7TREG-B4H37B9Z.js} +1 -1
  45. package/dist/viewer/{chunk-TICWLB2K-C4hY4B9O.js → chunk-TICWLB2K-DYoGsdJA.js} +1 -1
  46. package/dist/viewer/classDiagram-ZZMXUADV-G09oZdI0.js +1 -0
  47. package/dist/viewer/classDiagram-v2-VYDZK3BY-G09oZdI0.js +1 -0
  48. package/dist/viewer/{cs-CZ-2BRQDIVT-DmUu99ZE.js → cs-CZ-2BRQDIVT-DgBiVbuw.js} +1 -1
  49. package/dist/viewer/{cynefin-OW5HDTMX-CNpCyJlF.js → cynefin-OW5HDTMX-bvMkVO6w.js} +1 -1
  50. package/dist/viewer/{cynefinDiagram-5FMLGOSQ-D_E8exI5.js → cynefinDiagram-5FMLGOSQ-CjPrZzrG.js} +1 -1
  51. package/dist/viewer/{da-DK-5WZEPLOC-DrcqQnR5.js → da-DK-5WZEPLOC-D-yGNnLN.js} +1 -1
  52. package/dist/viewer/{dagre-GXQ25YYZ-B-hQNnoj.js → dagre-GXQ25YYZ-CuRrD3a3.js} +1 -1
  53. package/dist/viewer/{de-DE-XR44H4JA-BwGQ1Bu3.js → de-DE-XR44H4JA-Bgx9Q_D-.js} +1 -1
  54. package/dist/viewer/{diagram-S7CK7UJ4-DyrrPPnW.js → diagram-S7CK7UJ4-d9huVCZC.js} +1 -1
  55. package/dist/viewer/{diagram-UQ7AKVKN-DFdvde_8.js → diagram-UQ7AKVKN-Dw0NgQU7.js} +1 -1
  56. package/dist/viewer/{diagram-VSXAHHWV-BDdvfK3v.js → diagram-VSXAHHWV-BO48ZPAa.js} +1 -1
  57. package/dist/viewer/{diagram-VX7I27RA-Bv2wKJgk.js → diagram-VX7I27RA-CjjLbqAT.js} +1 -1
  58. package/dist/viewer/{diagram-Z3DM3KII-DVbVVBJH.js → diagram-Z3DM3KII-CqSQfWgq.js} +1 -1
  59. package/dist/viewer/{dist-DL1gyV3R.js → dist-96ICyKY0.js} +1 -1
  60. package/dist/viewer/{dist-DRMtu_-x.js → dist-BICCa23f.js} +1 -1
  61. package/dist/viewer/{dist-gv6IdArU.js → dist-BQJ_hgBh.js} +1 -1
  62. package/dist/viewer/{dist-DJjmFLDp.js → dist-BdwcfhMg.js} +1 -1
  63. package/dist/viewer/{dist-nHjoUtlT.js → dist-BohmHXvo.js} +1 -1
  64. package/dist/viewer/{dist-Cp67yPvp.js → dist-Bq5yGCvS.js} +1 -1
  65. package/dist/viewer/{dist-BpMGGlEV.js → dist-Bsxu0shl.js} +4 -4
  66. package/dist/viewer/{dist-C1no3jCb.js → dist-C8DkAQYd.js} +1 -1
  67. package/dist/viewer/{dist-B_G83rKD.js → dist-CACUOSsz.js} +1 -1
  68. package/dist/viewer/{dist-3KIsZmwj.js → dist-CFmM2XV7.js} +1 -1
  69. package/dist/viewer/{dist-C-Ceo6Fq.js → dist-CGDckSlK.js} +1 -1
  70. package/dist/viewer/{dist-BLMq_PiX.js → dist-CNKIbzP5.js} +1 -1
  71. package/dist/viewer/{dist-CLaYa349.js → dist-CoNkk-jP.js} +1 -1
  72. package/dist/viewer/{dist-DDjqhgMa.js → dist-Ct9Rv4Nb.js} +1 -1
  73. package/dist/viewer/{dist-Cs9q7OJl.js → dist-DFqgUaXc.js} +1 -1
  74. package/dist/viewer/{dist-Dril0ai0.js → dist-DHvxE90p.js} +1 -1
  75. package/dist/viewer/{dist-BfMsz_Mq.js → dist-DRVN9BoJ.js} +1 -1
  76. package/dist/viewer/{dist-Ks19j7-h.js → dist-DbTvrrue.js} +1 -1
  77. package/dist/viewer/{dist-DJtATNMP.js → dist-DeTBwAKa.js} +1 -1
  78. package/dist/viewer/{dist-BqBGd2fX.js → dist-DwmGeZQ2.js} +1 -1
  79. package/dist/viewer/{dist-Dbb4bImq.js → dist-PKCsW6uh.js} +1 -1
  80. package/dist/viewer/{dist-DpiVIFsv.js → dist-f6pfIPrl.js} +1 -1
  81. package/dist/viewer/{dist-2N6kKX64.js → dist-iWGU90nm.js} +1 -1
  82. package/dist/viewer/{dist-b6M4YQd0.js → dist-tEmP_1dP.js} +1 -1
  83. package/dist/viewer/{ebnfDiagram-PWID7BFC-BPZEgIKG.js → ebnfDiagram-PWID7BFC-DUuSLOwC.js} +1 -1
  84. package/dist/viewer/{el-GR-BZB4AONW-BHX9PTvB.js → el-GR-BZB4AONW-DBGnJY6B.js} +1 -1
  85. package/dist/viewer/{en-B4ZKOASM-ChdJoy_X.js → en-B4ZKOASM-ChYtA4ee.js} +1 -1
  86. package/dist/viewer/{erDiagram-RLTQ6QDP-teAVgmCA.js → erDiagram-RLTQ6QDP-6atcXUph.js} +1 -1
  87. package/dist/viewer/{es-ES-U4NZUMDT-DGRmVt9a.js → es-ES-U4NZUMDT-CktGk8Tg.js} +1 -1
  88. package/dist/viewer/{eu-ES-A7QVB2H4-6SSWUUs4.js → eu-ES-A7QVB2H4-CFlNXwf5.js} +1 -1
  89. package/dist/viewer/{eventmodeling-NTZA5JFV-B1I1Mylr.js → eventmodeling-NTZA5JFV-C5ZVZEiz.js} +1 -1
  90. package/dist/viewer/{fa-IR-HGAKTJCU-B_-FrT72.js → fa-IR-HGAKTJCU-CQRMDqXN.js} +1 -1
  91. package/dist/viewer/{fi-FI-Z5N7JZ37-C7SiOzZ-.js → fi-FI-Z5N7JZ37-CHKM1WB9.js} +1 -1
  92. package/dist/viewer/flowDiagram-HODETNUW-B9-KDJxc.js +1 -0
  93. package/dist/viewer/{fr-FR-RHASNOE6-B_QvfKMB.js → fr-FR-RHASNOE6-CUyuT7p6.js} +1 -1
  94. package/dist/viewer/{ganttDiagram-EL5Y4UJY-BMv_Q37E.js → ganttDiagram-EL5Y4UJY-DD2E-HAj.js} +1 -1
  95. package/dist/viewer/{gitGraph-4MIJSDKK-Bu1dbHFU.js → gitGraph-4MIJSDKK-BLvljQme.js} +1 -1
  96. package/dist/viewer/{gitGraphDiagram-WWUBYQGX-DUZ8_32F.js → gitGraphDiagram-WWUBYQGX-B0qzhOb6.js} +1 -1
  97. package/dist/viewer/{gl-ES-HMX3MZ6V-CmXVsVrw.js → gl-ES-HMX3MZ6V-CwJG5tWR.js} +1 -1
  98. package/dist/viewer/{he-IL-6SHJWFNN-8kv-3A3Y.js → he-IL-6SHJWFNN-_DosmhM7.js} +1 -1
  99. package/dist/viewer/{hi-IN-IWLTKZ5I-CvpAemRq.js → hi-IN-IWLTKZ5I-CrW9_EjK.js} +1 -1
  100. package/dist/viewer/{hu-HU-A5ZG7DT2-DOiAQ3qh.js → hu-HU-A5ZG7DT2-Dczvo59m.js} +1 -1
  101. package/dist/viewer/{id-ID-SAP4L64H-BK_k3fGY.js → id-ID-SAP4L64H-iSPag4VQ.js} +1 -1
  102. package/dist/viewer/{image-GAAHSSAO-WbKWFRU6.js → image-GAAHSSAO-BVJuAdML.js} +1 -1
  103. package/dist/viewer/{imperative-DfjHJwB9.js → imperative-_CkvZv3L.js} +1 -1
  104. package/dist/viewer/index.html +3 -3
  105. package/dist/viewer/index.js +3 -3
  106. package/dist/viewer/{info-A6RAGUB7-BVW83dCy.js → info-A6RAGUB7-Bhn0w0ii.js} +1 -1
  107. package/dist/viewer/{infoDiagram-27XIBGKW-C7TxtcWL.js → infoDiagram-27XIBGKW-BVSbmxC-.js} +1 -1
  108. package/dist/viewer/{ishikawaDiagram-5VMMS53U-BT-yQVRc.js → ishikawaDiagram-5VMMS53U-DdsbHCoI.js} +1 -1
  109. package/dist/viewer/{it-IT-JPQ66NNP-BNsEQmLq.js → it-IT-JPQ66NNP-8-_iFasU.js} +1 -1
  110. package/dist/viewer/{itemEquality-Dx2kxFQI.js → itemEquality-C3XfrMi2.js} +1 -1
  111. package/dist/viewer/{ja-JP-DBVTYXUO-jEL5Zohm.js → ja-JP-DBVTYXUO-irdMOHqC.js} +1 -1
  112. package/dist/viewer/{journeyDiagram-3NMN7TZE-D56mmWU7.js → journeyDiagram-3NMN7TZE-Cse6N-5p.js} +1 -1
  113. package/dist/viewer/{kaa-6HZHGXH3-B6pyJXZH.js → kaa-6HZHGXH3-DSu-PtX5.js} +1 -1
  114. package/dist/viewer/{kab-KAB-ZGHBKWFO-CLlf3rfz.js → kab-KAB-ZGHBKWFO-Bjc7u2yG.js} +1 -1
  115. package/dist/viewer/{kanban-definition-UXKFOSKX-hi8MCy0F.js → kanban-definition-UXKFOSKX-CdmNcOy5.js} +1 -1
  116. package/dist/viewer/{kk-KZ-P5N5QNE5-D-GnQDUN.js → kk-KZ-P5N5QNE5-CjQwQASw.js} +1 -1
  117. package/dist/viewer/{km-KH-HSX4SM5Z-CvlRaq6r.js → km-KH-HSX4SM5Z-CMslZbL1.js} +1 -1
  118. package/dist/viewer/{ko-KR-MTYHY66A-mYkZX31W.js → ko-KR-MTYHY66A-DBdzdGrw.js} +1 -1
  119. package/dist/viewer/{ku-TR-6OUDTVRD-CeXiI7eX.js → ku-TR-6OUDTVRD-C3zBzgJI.js} +1 -1
  120. package/dist/viewer/{lt-LT-XHIRWOB4-DNl9HTRS.js → lt-LT-XHIRWOB4-DWVw-ffO.js} +1 -1
  121. package/dist/viewer/{lv-LV-5QDEKY6T-_QejX_-F.js → lv-LV-5QDEKY6T-Zl3V2KMV.js} +1 -1
  122. package/dist/viewer/{mermaid-parser.core-8H71iLKg.js → mermaid-parser.core-CJFJTtR4.js} +3 -3
  123. package/dist/viewer/{mindmap-definition-YA3MSWOX-DDgO7tS-.js → mindmap-definition-YA3MSWOX-9mWYfj6-.js} +1 -1
  124. package/dist/viewer/{mr-IN-CRQNXWMA-OIHNnnu8.js → mr-IN-CRQNXWMA-D9aX0Bdo.js} +1 -1
  125. package/dist/viewer/{my-MM-5M5IBNSE-DYrw8pYH.js → my-MM-5M5IBNSE-SPXzrrJR.js} +1 -1
  126. package/dist/viewer/{nb-NO-T6EIAALU-DMd3Sg5d.js → nb-NO-T6EIAALU-C8h-KZrY.js} +1 -1
  127. package/dist/viewer/{nl-NL-IS3SIHDZ-D9AJQvsb.js → nl-NL-IS3SIHDZ-BflXY5YN.js} +1 -1
  128. package/dist/viewer/{nn-NO-6E72VCQL-DNeLg3d9.js → nn-NO-6E72VCQL-CFWc1uPu.js} +1 -1
  129. package/dist/viewer/{oc-FR-POXYY2M6-D6JMp-_j.js → oc-FR-POXYY2M6-BHz8giUr.js} +1 -1
  130. package/dist/viewer/{pa-IN-N4M65BXN-g5Vjsxo8.js → pa-IN-N4M65BXN-KYWN5LeG.js} +1 -1
  131. package/dist/viewer/{packet-AYTQ26CC-Dgk7eBb9.js → packet-AYTQ26CC-DrNZHDt7.js} +1 -1
  132. package/dist/viewer/{pegDiagram-XKGWAZYB-CVIwfqJt.js → pegDiagram-XKGWAZYB-DPszelm4.js} +1 -1
  133. package/dist/viewer/percentages-BXMCSKIN-BgOWZqvL.js +1 -0
  134. package/dist/viewer/{pie-WAS4IAKB-DS_tuosA.js → pie-WAS4IAKB-J0UiOL4B.js} +1 -1
  135. package/dist/viewer/{pieDiagram-E7YTZNPT-4vQIT90F.js → pieDiagram-E7YTZNPT-ClDIExzM.js} +1 -1
  136. package/dist/viewer/{pl-PL-T2D74RX3-CHeYNLpa.js → pl-PL-T2D74RX3-DhMivhiU.js} +1 -1
  137. package/dist/viewer/preview.html +4 -4
  138. package/dist/viewer/preview.js +1 -1
  139. package/dist/viewer/{prod-DiBc1897.js → prod-itzLn3X0.js} +8 -8
  140. package/dist/viewer/{pt-BR-5N22H2LF-taNFaSz0.js → pt-BR-5N22H2LF-gkkaKj42.js} +1 -1
  141. package/dist/viewer/{pt-PT-UZXXM6DQ-CsmK_jBH.js → pt-PT-UZXXM6DQ-NWnJTvgF.js} +1 -1
  142. package/dist/viewer/{quadrantDiagram-AXDQQJYC-BeirbPa5.js → quadrantDiagram-AXDQQJYC-CYy8PwM3.js} +1 -1
  143. package/dist/viewer/{radar-RG4KPBEZ-BsCRiS0D.js → radar-RG4KPBEZ-DQrCAAlO.js} +1 -1
  144. package/dist/viewer/{railroad-74A4TZTK--zO8tvea.js → railroad-74A4TZTK-Bie2KVo4.js} +1 -1
  145. package/dist/viewer/{railroad-abnf-HS5TGJTU-BZWetNTH.js → railroad-abnf-HS5TGJTU-CqHzfM_H.js} +1 -1
  146. package/dist/viewer/{railroad-ebnf-LZEXJU2U-Bdr-nXDi.js → railroad-ebnf-LZEXJU2U-Ba93pI_q.js} +1 -1
  147. package/dist/viewer/{railroad-peg-WCYAUIDC-5QbqtFhr.js → railroad-peg-WCYAUIDC-oFmY9M6i.js} +1 -1
  148. package/dist/viewer/{railroadDiagram-O6MQD6OU-CEc9eC2b.js → railroadDiagram-O6MQD6OU-Bl287Huh.js} +1 -1
  149. package/dist/viewer/{requirementDiagram-BXWQKSXE-gHO3OQpd.js → requirementDiagram-BXWQKSXE-C7qjeIWt.js} +1 -1
  150. package/dist/viewer/{ro-RO-JPDTUUEW-URJMRk3q.js → ro-RO-JPDTUUEW-Ci-CRtV_.js} +1 -1
  151. package/dist/viewer/{ru-RU-B4JR7IUQ-DI6p8dtR.js → ru-RU-B4JR7IUQ-BPm31ic_.js} +1 -1
  152. package/dist/viewer/{sankeyDiagram-P5KCCOFB-BKwmk90Q.js → sankeyDiagram-P5KCCOFB-CSV23yCW.js} +1 -1
  153. package/dist/viewer/{selection-BUarVaVG.js → selection-DiNkp8_u.js} +1 -1
  154. package/dist/viewer/{sequenceDiagram-WJ2MYXX4-DNRtNYaC.js → sequenceDiagram-WJ2MYXX4-BbxTUdX6.js} +1 -1
  155. package/dist/viewer/{si-LK-N5RQ5JYF-CC3Wbwwt.js → si-LK-N5RQ5JYF-7zJDxmel.js} +1 -1
  156. package/dist/viewer/{sk-SK-C5VTKIMK-D4qIYJZm.js → sk-SK-C5VTKIMK-BNbR9mTT.js} +1 -1
  157. package/dist/viewer/{sl-SI-NN7IZMDC-BrX9Kjyd.js → sl-SI-NN7IZMDC-Dzy-6Up_.js} +1 -1
  158. package/dist/viewer/{stateDiagram-D77RDMKH-DFHhwDaw.js → stateDiagram-D77RDMKH-hpVLVGhL.js} +1 -1
  159. package/dist/viewer/stateDiagram-v2-MP3YSRHH-BH2KXEBo.js +1 -0
  160. package/dist/viewer/subset-shared.chunk-Czwfa2VQ.js +1 -0
  161. package/dist/viewer/{subset-worker.chunk-D_1PjTiM.js → subset-worker.chunk-Dgy8sQUD.js} +1 -1
  162. package/dist/viewer/{sv-SE-XGPEYMSR-CrLXWvFy.js → sv-SE-XGPEYMSR-C5bggny3.js} +1 -1
  163. package/dist/viewer/{swimlanes-42K2YHIH-DzGUJWU-.js → swimlanes-42K2YHIH-BRqXz7nV.js} +1 -1
  164. package/dist/viewer/swimlanesDiagram-VR7AAH4N-Blx0nEYQ.js +8 -0
  165. package/dist/viewer/{ta-IN-2NMHFXQM-BjEs1VFY.js → ta-IN-2NMHFXQM-Pw1wRofq.js} +1 -1
  166. package/dist/viewer/{th-TH-HPSO5L25-Cg6PzVXI.js → th-TH-HPSO5L25-Nz-UqtdD.js} +1 -1
  167. package/dist/viewer/{timeline-definition-24CTP7MA-CIpmMJhg.js → timeline-definition-24CTP7MA-Dp3nP8rd.js} +1 -1
  168. package/dist/viewer/{tr-TR-DEFEU3FU-DCEAv9nq.js → tr-TR-DEFEU3FU-DTlGCmld.js} +1 -1
  169. package/dist/viewer/{treeView-Q6P3EWNA-DHjfLsjZ.js → treeView-Q6P3EWNA-z3dPnkjZ.js} +1 -1
  170. package/dist/viewer/{treemap-WGGIJYW6-COOVf8-Y.js → treemap-WGGIJYW6-DeaU4Gxo.js} +1 -1
  171. package/dist/viewer/{type-icons-BonbxUGw.js → type-icons-BhI8cIWS.js} +1 -1
  172. package/dist/viewer/{uk-UA-QMV73CPH-DMWYOkg6.js → uk-UA-QMV73CPH-Bx9vPanC.js} +1 -1
  173. package/dist/viewer/useSystemTheme-Dzqcdh-y.js +64 -0
  174. package/dist/viewer/{useTranslation-Ci5tOdAN.js → useTranslation-B4Q9Bc_u.js} +1 -1
  175. package/dist/viewer/{useTypeFavicon-B--Z-Uwv.js → useTypeFavicon-B01CcUw4.js} +1 -1
  176. package/dist/viewer/{vennDiagram-4TSXK5OY-BWDC-eE0.js → vennDiagram-4TSXK5OY-B2g-6QAa.js} +1 -1
  177. package/dist/viewer/{vi-VN-M7AON7JQ-CVj2nFN-.js → vi-VN-M7AON7JQ-DvU5fCQK.js} +1 -1
  178. package/dist/viewer/{view-D0Odcpdb.js → view-R1KProyl.js} +1 -1
  179. package/dist/viewer/{wardley-WFR3VGLG-CDlPWlPO.js → wardley-WFR3VGLG-hhWao6Ek.js} +1 -1
  180. package/dist/viewer/{wardleyDiagram-VM6X3IG4-C9yxtxg6.js → wardleyDiagram-VM6X3IG4-pFu6p_Rn.js} +1 -1
  181. package/dist/viewer/{xychartDiagram-S5SC5T6Z-Dv4UxBWo.js → xychartDiagram-S5SC5T6Z-GC8fXUaM.js} +1 -1
  182. package/dist/viewer/{zh-CN-LNUGB5OW-i7Vn4Pqy.js → zh-CN-LNUGB5OW-LWpPfppU.js} +1 -1
  183. package/dist/viewer/{zh-HK-E62DVLB3-Cm16SoeD.js → zh-HK-E62DVLB3-BQrPpETb.js} +1 -1
  184. package/dist/viewer/{zh-TW-RAJ6MFWO-Lambeacv.js → zh-TW-RAJ6MFWO-O2w99mPI.js} +1 -1
  185. package/dist/viewer-lib/{Canvas-BdS1Xa5w.js → Canvas-Gv8uEhbb.js} +1 -1
  186. package/dist/viewer-lib/core.js +3 -3
  187. package/dist/viewer-lib/{ids-Crgtnwo0.js → ids-CJH3rRXm.js} +38 -38
  188. package/dist/viewer-lib/index.js +1002 -1002
  189. package/dist/viewer-lib/types/src/shared/ids.d.ts +3 -0
  190. package/package.json +1 -1
  191. package/dist/viewer/channel-DGerhKw9.js +0 -1
  192. package/dist/viewer/classDiagram-ZZMXUADV-DWXc-S98.js +0 -1
  193. package/dist/viewer/classDiagram-v2-VYDZK3BY-DWXc-S98.js +0 -1
  194. package/dist/viewer/flowDiagram-HODETNUW-DWhovppS.js +0 -1
  195. package/dist/viewer/percentages-BXMCSKIN-NLhw_fz5.js +0 -1
  196. package/dist/viewer/stateDiagram-v2-MP3YSRHH-D8ViYn3V.js +0 -1
  197. package/dist/viewer/subset-shared.chunk-Bx9OralH.js +0 -1
  198. package/dist/viewer/swimlanesDiagram-VR7AAH4N-Clea06qq.js +0 -8
  199. package/dist/viewer/useSystemTheme-BVZLLsnc.js +0 -64
@@ -1,17 +1,17 @@
1
1
  import './stylex-Bp5PFQ3Y.css';
2
2
  import './index-uM2HnLXF.css';
3
- import { C as e, D as t, E as n, S as r, T as i, _ as a, a as o, b as s, c, d as l, f as u, g as d, h as f, i as p, l as m, m as h, n as g, o as _, p as v, r as y, s as b, t as x, u as S, v as C, w, y as T } from "./ids-Crgtnwo0.js";
4
- import { d as E, f as D, g as O, h as k, l as A, m as ee, n as te, o as ne, p as re, r as ie, s as ae, t as oe, u as se } from "./relayConnection-CoSjRI7m.js";
5
- import { a as ce, i as le, o as j, r as ue, s as de, t as fe } from "./Canvas-BdS1Xa5w.js";
6
- import { a as M, c as pe, d as N, f as P, i as me, l as F, m as I, n as L, o as he, p as ge, r as _e, s as ve, t as ye, u as R } from "./cloud-BA1xJLJk.js";
7
- import { A as z, C as be, D as B, E as V, M as H, N as xe, O as Se, P as Ce, S as we, T as Te, a as Ee, c as De, d as Oe, g as ke, i as Ae, j as je, k as Me, l as U, m as Ne, n as Pe, o as Fe, p as Ie, r as Le, s as W, t as Re, u as ze, v as Be, w as Ve, x as He, y as Ue } from "./useCloudHeader-DwNI6tTZ.js";
8
- import { memo as We, useCallback as G, useEffect as K, useId as Ge, useLayoutEffect as Ke, useMemo as q, useReducer as qe, useRef as J, useState as Y, useSyncExternalStore as Je } from "react";
9
- import { Accordion as Ye, ActionIcon as Xe, Button as Ze, ColorPicker as Qe, DropdownMenu as $e, Icon as et, IconProvider as tt, Input as nt, InputNumber as rt, Popover as it, Segmented as at, Select as ot, Slider as st, Switch as ct, TabsIndicator as lt, TabsList as ut, TabsPanel as dt, TabsRoot as ft, TabsTab as pt, Tree as mt } from "@lobehub/ui";
10
- import { ArrowDown as ht, ArrowRight as gt, Ban as _t, Check as vt, CheckCircle2 as yt, ChevronDown as bt, ChevronLeft as xt, ChevronRight as St, Circle as Ct, CircleAlert as wt, Clock3 as Tt, CloudUpload as Et, Code2 as Dt, Columns3 as Ot, Copy as kt, Download as At, Ellipsis as jt, Film as Mt, Frame as Nt, Grid2X2 as Pt, Hand as Ft, Image as It, LoaderCircle as Lt, Maximize2 as Rt, MessageCirclePlus as zt, Minus as Bt, MousePointer2 as Vt, PanelRight as Ht, Play as Ut, RotateCcw as Wt, Rows3 as Gt, SlidersHorizontal as Kt, SquareDashed as qt, Type as Jt, X as Yt } from "lucide-react";
11
- import { useReducedMotion as Xt } from "motion/react";
3
+ import { A as e, C as t, D as n, E as r, O as i, S as a, T as o, _ as s, a as c, b as l, c as u, d, f, g as p, h as m, i as h, k as g, l as _, m as v, n as y, o as b, p as x, r as S, s as C, t as w, u as T, v as E, x as D, y as ee } from "./ids-CJH3rRXm.js";
4
+ import { d as O, f as te, g as k, h as ne, l as A, m as re, n as ie, o as ae, p as oe, r as se, s as ce, t as le, u as j } from "./relayConnection-CoSjRI7m.js";
5
+ import { a as ue, i as M, o as N, r as de, s as fe, t as pe } from "./Canvas-Gv8uEhbb.js";
6
+ import { a as P, c as me, d as F, f as I, i as L, l as R, m as he, n as ge, o as _e, p as ve, r as z, s as ye, t as B, u as V } from "./cloud-BA1xJLJk.js";
7
+ import { A as H, C as be, D as xe, E as Se, M as Ce, N as we, O as Te, P as Ee, S as De, T as Oe, a as ke, c as U, d as Ae, g as je, i as Me, j as Ne, k as Pe, l as Fe, m as Ie, n as Le, o as W, p as Re, r as ze, s as Be, t as Ve, u as He, v as Ue, w as We, x as Ge, y as Ke } from "./useCloudHeader-DwNI6tTZ.js";
8
+ import { memo as qe, useCallback as G, useEffect as K, useId as Je, useLayoutEffect as Ye, useMemo as q, useReducer as Xe, useRef as J, useState as Y, useSyncExternalStore as Ze } from "react";
9
+ import { Accordion as Qe, ActionIcon as $e, Button as et, ColorPicker as tt, DropdownMenu as nt, Icon as rt, IconProvider as it, Input as at, InputNumber as ot, Popover as st, Segmented as ct, Select as lt, Slider as ut, Switch as dt, TabsIndicator as ft, TabsList as pt, TabsPanel as mt, TabsRoot as ht, TabsTab as gt, Tree as _t } from "@lobehub/ui";
10
+ import { ArrowDown as vt, ArrowRight as yt, Ban as bt, Check as xt, CheckCircle2 as St, ChevronDown as Ct, ChevronLeft as wt, ChevronRight as Tt, Circle as Et, CircleAlert as Dt, Clock3 as Ot, CloudUpload as kt, Code2 as At, Columns3 as jt, Copy as Mt, Download as Nt, Ellipsis as Pt, Film as Ft, Frame as It, Grid2X2 as Lt, Hand as Rt, Image as zt, LoaderCircle as Bt, Maximize2 as Vt, MessageCirclePlus as Ht, Minus as Ut, MousePointer2 as Wt, PanelRight as Gt, Play as Kt, RotateCcw as qt, Rows3 as Jt, SlidersHorizontal as Yt, SquareDashed as Xt, Type as Zt, X as Qt } from "lucide-react";
11
+ import { useReducedMotion as $t } from "motion/react";
12
12
  import { Fragment as X, jsx as Z, jsxs as Q } from "react/jsx-runtime";
13
13
  //#region src/shared/tweaks.ts
14
- function Zt() {
14
+ function en() {
15
15
  let e = (e) => !!e && typeof e == "object" && !Array.isArray(e), t = (e, t = 512) => typeof e == "string" && e.length <= t, n = (e) => typeof e == "number" && Number.isFinite(e) && Math.abs(e) <= 1e9, r = (e) => typeof e == "string" && /^#[\da-f]{6}$/i.test(e);
16
16
  function i(e, i) {
17
17
  if (e.type === "text") return t(i);
@@ -114,8 +114,8 @@ function Zt() {
114
114
  reconcileTweakValues: s
115
115
  };
116
116
  }
117
- var { readTweakSchema: Qt, readTweakValues: $t, reconcileTweakValues: en } = Zt(), tn = (e) => Math.min(1, Math.max(0, e)), nn = (e) => Math.round(e * 1e3) / 1e3;
118
- function rn(e, t, n, r) {
117
+ var { readTweakSchema: tn, readTweakValues: nn, reconcileTweakValues: rn } = en(), an = (e) => Math.min(1, Math.max(0, e)), on = (e) => Math.round(e * 1e3) / 1e3;
118
+ function sn(e, t, n, r) {
119
119
  let i = Math.round(n.x), a = Math.round(n.y);
120
120
  if (!t) return {
121
121
  page: e,
@@ -139,11 +139,11 @@ function rn(e, t, n, r) {
139
139
  }]
140
140
  }, { rect: s } = r;
141
141
  return s.width > 0 && s.height > 0 && (o.offset = {
142
- x: nn(tn((n.x - s.x) / s.width)),
143
- y: nn(tn((n.y - s.y) / s.height))
142
+ x: on(an((n.x - s.x) / s.width)),
143
+ y: on(an((n.y - s.y) / s.height))
144
144
  }), o;
145
145
  }
146
- function an(e, t) {
146
+ function cn(e, t) {
147
147
  let n = t.flatMap((e) => e.path ? [{
148
148
  board: e.boardId,
149
149
  path: e.path,
@@ -160,7 +160,7 @@ function an(e, t) {
160
160
  }))
161
161
  } : null;
162
162
  }
163
- function on(e, t) {
163
+ function ln(e, t) {
164
164
  if (!e.board) return {
165
165
  x: e.x,
166
166
  y: e.y
@@ -171,27 +171,27 @@ function on(e, t) {
171
171
  y: n.y + e.y
172
172
  } : null;
173
173
  }
174
- var sn = (e) => `${Math.round(e * 100)}%`;
175
- function cn(e) {
176
- if (e.group) return e.verdict === "reject" ? F.t("anchor.rejected", { group: e.group }) : e.group;
177
- if (!e.board) return F.t("anchor.page", { page: e.page });
174
+ var un = (e) => `${Math.round(e * 100)}%`;
175
+ function dn(e) {
176
+ if (e.group) return e.verdict === "reject" ? R.t("anchor.rejected", { group: e.group }) : e.group;
177
+ if (!e.board) return R.t("anchor.page", { page: e.page });
178
178
  let t = e.nodes ?? [];
179
- if (t.length > 1) return F.t("anchor.elements", {
179
+ if (t.length > 1) return R.t("anchor.elements", {
180
180
  board: e.board,
181
181
  count: t.length
182
182
  });
183
183
  if (!t[0]) return e.board;
184
- let n = e.offset ? ` · ${sn(e.offset.x)}, ${sn(e.offset.y)}` : "";
184
+ let n = e.offset ? ` · ${un(e.offset.x)}, ${un(e.offset.y)}` : "";
185
185
  return `${e.board} · ${t[0].path}${n}`;
186
186
  }
187
- var ln = (e) => e.verdict ? F.t("anchor.evidenceUpdated") : F.t("anchor.stale"), un = (e) => e.messages[0]?.at ?? e.statusAt;
188
- function dn(e) {
189
- let t = e.filter((e) => e.anchor?.verdict !== "pass").sort((e, t) => un(e) < un(t) ? -1 : +(un(e) > un(t)));
187
+ var fn = (e) => e.verdict ? R.t("anchor.evidenceUpdated") : R.t("anchor.stale"), pn = (e) => e.messages[0]?.at ?? e.statusAt;
188
+ function mn(e) {
189
+ let t = e.filter((e) => e.anchor?.verdict !== "pass").sort((e, t) => pn(e) < pn(t) ? -1 : +(pn(e) > pn(t)));
190
190
  return new Map(t.map((e, t) => [e.id, t + 1]));
191
191
  }
192
192
  //#endregion
193
193
  //#region src/viewer/components/CommentLayer.tsx
194
- var fn = 28, pn = 300, mn = 14, hn = {
194
+ var hn = 28, gn = 300, _n = 14, vn = {
195
195
  pin: {
196
196
  kVAEAm: "x10l6tqk",
197
197
  kzqmXN: "xgd8bvy",
@@ -239,30 +239,30 @@ var fn = 28, pn = 300, mn = 14, hn = {
239
239
  kjBf7l: "x1ynndj3",
240
240
  $$css: !0
241
241
  }
242
- }, gn = (e, t) => ({
242
+ }, yn = (e, t) => ({
243
243
  x: e.x + t.x * e.k,
244
244
  y: e.y + t.y * e.k
245
245
  });
246
- function _n(e, t) {
247
- let n = e + fn + mn;
248
- return n + pn > t - 12 ? Math.max(12, e - mn - pn) : n;
246
+ function bn(e, t) {
247
+ let n = e + hn + _n;
248
+ return n + gn > t - 12 ? Math.max(12, e - _n - gn) : n;
249
249
  }
250
- function vn({ view: e, page: t, boards: n, width: r, threads: i, stale: a, numbers: o, showResolved: s, draft: c, openId: l, actions: u, agent: d, onOpen: f, onSubmit: p, onCancelDraft: m }) {
251
- let { t: h } = N(), g = i.filter((e) => e.anchor.page === t && e.anchor.verdict !== "pass" && e.messages.some((e) => !e.deleted) && (s || e.status === "open" || e.id === l)), _ = i.find((e) => e.id === l), v = _ ? on(_.anchor, n) : null, y = c ? on(c, n) : null;
250
+ function xn({ view: e, page: t, boards: n, width: r, threads: i, stale: a, numbers: o, showResolved: s, draft: c, openId: l, actions: u, agent: d, onOpen: f, onSubmit: p, onCancelDraft: m }) {
251
+ let { t: h } = F(), g = i.filter((e) => e.anchor.page === t && e.anchor.verdict !== "pass" && e.messages.some((e) => !e.deleted) && (s || e.status === "open" || e.id === l)), _ = i.find((e) => e.id === l), v = _ ? ln(_.anchor, n) : null, y = c ? ln(c, n) : null;
252
252
  return /* @__PURE__ */ Q("div", {
253
253
  "data-chrome": "comments",
254
254
  className: "x10l6tqk x10a8y8t x47corl xb3r6kr x1q8xho0",
255
255
  children: [
256
256
  g.map((t) => {
257
- let r = on(t.anchor, n);
257
+ let r = ln(t.anchor, n);
258
258
  if (!r) return null;
259
- let i = gn(e, r), s = t.messages[0]?.author;
259
+ let i = yn(e, r), s = t.messages[0]?.author;
260
260
  return /* @__PURE__ */ Z("button", {
261
261
  type: "button",
262
262
  "aria-label": h("comments.pin", { number: o.get(t.id) ?? "" }),
263
263
  "data-verdict": t.anchor.verdict,
264
264
  onClick: () => f(t.id === l ? null : t.id),
265
- ...O(hn.pin, s === "agent" && hn.agent, t.anchor.verdict === "reject" && hn.reject, t.status === "resolved" && hn.resolved, a.has(t.id) && hn.stale, t.id === l && hn.open),
265
+ ...k(vn.pin, s === "agent" && vn.agent, t.anchor.verdict === "reject" && vn.reject, t.status === "resolved" && vn.resolved, a.has(t.id) && vn.stale, t.id === l && vn.open),
266
266
  style: {
267
267
  left: i.x,
268
268
  top: i.y
@@ -273,15 +273,15 @@ function vn({ view: e, page: t, boards: n, width: r, threads: i, stale: a, numbe
273
273
  _ ? /* @__PURE__ */ Z("div", {
274
274
  className: "x10l6tqk xdzyupr x1jcbksy x1odjw0f xixl9f9 x12ilycc x1d5q07e x67bb7w xt0e3qv x1hx0egp",
275
275
  style: v ? {
276
- left: _n(gn(e, v).x, r),
277
- top: gn(e, v).y - fn
276
+ left: bn(yn(e, v).x, r),
277
+ top: yn(e, v).y - hn
278
278
  } : {
279
279
  right: 12,
280
280
  top: 64
281
281
  },
282
- children: /* @__PURE__ */ Z(ke, {
282
+ children: /* @__PURE__ */ Z(je, {
283
283
  thread: _,
284
- label: `#${o.get(_.id)} ${cn(_.anchor)}${a.has(_.id) ? ` · ${ln(_.anchor)}` : ""}`,
284
+ label: `#${o.get(_.id)} ${dn(_.anchor)}${a.has(_.id) ? ` · ${fn(_.anchor)}` : ""}`,
285
285
  actions: u,
286
286
  agent: d,
287
287
  onClose: () => f(null)
@@ -290,21 +290,21 @@ function vn({ view: e, page: t, boards: n, width: r, threads: i, stale: a, numbe
290
290
  c && y ? /* @__PURE__ */ Q(X, { children: [/* @__PURE__ */ Z("span", {
291
291
  className: "x10l6tqk xgd8bvy x1fgtraw x1717udv xrvj5dj x1ku5rj1 x983p9h xdh2fpr x1y0btm7 xg29ltk x10a7yas xfungia xqfszdh x1j6dyjg x1s688f x105ttfm x67bb7w x1ypdohk",
292
292
  style: {
293
- left: gn(e, y).x,
294
- top: gn(e, y).y
293
+ left: yn(e, y).x,
294
+ top: yn(e, y).y
295
295
  }
296
296
  }), /* @__PURE__ */ Q("div", {
297
297
  className: "x10l6tqk xdzyupr x1jcbksy x1odjw0f xixl9f9 x12ilycc x1d5q07e x67bb7w xt0e3qv x1hx0egp",
298
298
  style: {
299
- left: _n(gn(e, y).x, r),
300
- top: gn(e, y).y - fn
299
+ left: bn(yn(e, y).x, r),
300
+ top: yn(e, y).y - hn
301
301
  },
302
302
  children: [
303
303
  /* @__PURE__ */ Z("div", {
304
304
  className: "x78zum5 x6s0dn4 x17d4w8g x889kno xqin4a2 x1j6dyjg xddlp02 xb3r6kr xuxw1ft xlyipyv",
305
- children: h("comments.anchoredTo", { label: cn(c) })
305
+ children: h("comments.anchoredTo", { label: dn(c) })
306
306
  }),
307
- /* @__PURE__ */ Z(Be, {
307
+ /* @__PURE__ */ Z(Ue, {
308
308
  autoFocus: !0,
309
309
  placeholder: h("comments.addPlaceholder"),
310
310
  onSubmit: p,
@@ -321,12 +321,12 @@ function vn({ view: e, page: t, boards: n, width: r, threads: i, stale: a, numbe
321
321
  }
322
322
  //#endregion
323
323
  //#region src/viewer/comments/CommentsPanel.tsx
324
- var yn = (e) => new Date(e).toLocaleTimeString(F.language, {
324
+ var Sn = (e) => new Date(e).toLocaleTimeString(R.language, {
325
325
  hour: "2-digit",
326
326
  minute: "2-digit"
327
327
  });
328
- function bn({ threads: e, page: t, stale: n, numbers: r, openId: i, tab: a, onTab: o, onOpen: s, onClose: c }) {
329
- let { t: l } = N(), u = e.filter((e) => e.anchor.page === t && e.anchor.verdict !== "pass" && e.messages.some((e) => !e.deleted)), d = u.filter((e) => e.status === "open"), f = (a === "open" ? d : u).sort((e, t) => (r.get(e.id) ?? 0) - (r.get(t.id) ?? 0));
328
+ function Cn({ threads: e, page: t, stale: n, numbers: r, openId: i, tab: a, onTab: o, onOpen: s, onClose: c }) {
329
+ let { t: l } = F(), u = e.filter((e) => e.anchor.page === t && e.anchor.verdict !== "pass" && e.messages.some((e) => !e.deleted)), d = u.filter((e) => e.status === "open"), f = (a === "open" ? d : u).sort((e, t) => (r.get(e.id) ?? 0) - (r.get(t.id) ?? 0));
330
330
  return /* @__PURE__ */ Q("aside", {
331
331
  className: "ryugi-inspector",
332
332
  "data-chrome": !0,
@@ -347,7 +347,7 @@ function bn({ threads: e, page: t, stale: n, numbers: r, openId: i, tab: a, onTa
347
347
  title: l("chrome.closeCommentsTitle"),
348
348
  onClick: c,
349
349
  className: "xvc5jky x1717udv xc342km xjbqb8w xddlp02 xytdrwj x1ypdohk xrvj5dj",
350
- children: /* @__PURE__ */ Z(Yt, { size: 14 })
350
+ children: /* @__PURE__ */ Z(Qt, { size: 14 })
351
351
  })
352
352
  ]
353
353
  }),
@@ -375,7 +375,7 @@ function bn({ threads: e, page: t, stale: n, numbers: r, openId: i, tab: a, onTa
375
375
  className: "x98rzlu x2lwn1j x1odjw0f",
376
376
  children: [f.length === 0 ? /* @__PURE__ */ Q("div", {
377
377
  className: "x78zum5 x6s0dn4 x167g77z x1dypa6k xfifm61 x1bo0w0s",
378
- children: [/* @__PURE__ */ Z(zt, {
378
+ children: [/* @__PURE__ */ Z(Ht, {
379
379
  size: 14,
380
380
  "aria-hidden": !0
381
381
  }), l("comments.emptyCanvas")]
@@ -416,12 +416,12 @@ function bn({ threads: e, page: t, stale: n, numbers: r, openId: i, tab: a, onTa
416
416
  children: [
417
417
  /* @__PURE__ */ Z("span", {
418
418
  className: "xo2rkog x1s688f",
419
- children: t ? He(t).label : ""
419
+ children: t ? Ge(t).label : ""
420
420
  }),
421
421
  e.status === "resolved" ? /* @__PURE__ */ Z("span", { children: l("common.resolved") }) : null,
422
422
  /* @__PURE__ */ Z("span", {
423
423
  className: "xvc5jky xc7n51q",
424
- children: t ? yn(t.at) : ""
424
+ children: t ? Sn(t.at) : ""
425
425
  })
426
426
  ]
427
427
  }),
@@ -430,7 +430,7 @@ function bn({ threads: e, page: t, stale: n, numbers: r, openId: i, tab: a, onTa
430
430
  0: { className: "x8q42hb x1fao0z8 x1s31vzs xddlp02 xb3r6kr xuxw1ft xlyipyv" },
431
431
  1: { className: "x8q42hb x1fao0z8 x1s31vzs xb3r6kr xuxw1ft xlyipyv xy1pa3r" }
432
432
  }[!!o | 0],
433
- children: [cn(e.anchor), o ? ` · ${ln(e.anchor)}` : ""]
433
+ children: [dn(e.anchor), o ? ` · ${fn(e.anchor)}` : ""]
434
434
  }),
435
435
  /* @__PURE__ */ Z("div", {
436
436
  className: "xfifm61 x1dbl2gt xo2rkog x104kibb x1h7i4cw x1ua5tub xb3r6kr xj0a0fe",
@@ -450,13 +450,13 @@ function bn({ threads: e, page: t, stale: n, numbers: r, openId: i, tab: a, onTa
450
450
  }
451
451
  //#endregion
452
452
  //#region src/viewer/components/DebugHud.tsx
453
- var xn = 1e3, Sn = 250, Cn = 33, wn = [
453
+ var wn = 1e3, Tn = 250, En = 33, Dn = [
454
454
  "live",
455
455
  "snapshot",
456
456
  "placeholder",
457
457
  "empty"
458
458
  ];
459
- function Tn({ renders: e, scaling: t }) {
459
+ function On({ renders: e, scaling: t }) {
460
460
  let [n, r] = Y({
461
461
  fps: 0,
462
462
  worst: 0,
@@ -467,21 +467,21 @@ function Tn({ renders: e, scaling: t }) {
467
467
  for (e.push({
468
468
  at: o,
469
469
  ms: o - t
470
- }), t = o; e.length && o - e[0].at >= xn;) e.shift();
471
- if (o - n >= Sn) {
470
+ }), t = o; e.length && o - e[0].at >= wn;) e.shift();
471
+ if (o - n >= Tn) {
472
472
  n = o;
473
473
  let t = e.reduce((e, t) => e + t.ms, 0);
474
474
  r({
475
475
  fps: t ? Math.round(e.length * 1e3 / t) : 0,
476
476
  worst: Math.round(Math.max(0, ...e.map((e) => e.ms))),
477
- slow: e.filter((e) => e.ms > Cn).length
477
+ slow: e.filter((e) => e.ms > En).length
478
478
  });
479
479
  }
480
480
  i = requestAnimationFrame(a);
481
481
  };
482
482
  return i = requestAnimationFrame(a), () => cancelAnimationFrame(i);
483
483
  }, []);
484
- let i = wn.map((t) => `${t} ${[...e.values()].filter((e) => e.tier === t).length}`);
484
+ let i = Dn.map((t) => `${t} ${[...e.values()].filter((e) => e.tier === t).length}`);
485
485
  return /* @__PURE__ */ Z("div", {
486
486
  "data-chrome": "debug",
487
487
  "aria-hidden": "true",
@@ -491,7 +491,7 @@ function Tn({ renders: e, scaling: t }) {
491
491
  }
492
492
  //#endregion
493
493
  //#region src/viewer/components/ExpandedBoard.tsx
494
- function En({ id: e, board: n, src: r, interactive: i, onClose: a, parameterAction: o, parameters: s, frameRef: c, onFrameLoad: l }) {
494
+ function kn({ id: t, board: n, src: r, interactive: i, onClose: a, parameterAction: o, parameters: s, frameRef: c, onFrameLoad: l }) {
495
495
  return /* @__PURE__ */ Q("div", {
496
496
  "data-chrome": !0,
497
497
  className: "x10l6tqk x10a8y8t x1355qak x78zum5 xdt5ytf x184qs1t",
@@ -500,17 +500,17 @@ function En({ id: e, board: n, src: r, interactive: i, onClose: a, parameterActi
500
500
  children: [
501
501
  /* @__PURE__ */ Q("span", {
502
502
  className: "x98rzlu x1s688f",
503
- children: [n.title ?? e, /* @__PURE__ */ Z("span", {
503
+ children: [n.title ?? t, /* @__PURE__ */ Z("span", {
504
504
  className: "x13fj5qh x1fao0z8 xfifm61 xddlp02",
505
- children: e
505
+ children: t
506
506
  })]
507
507
  }),
508
508
  o,
509
- /* @__PURE__ */ Z(Xe, {
510
- icon: Yt,
509
+ /* @__PURE__ */ Z($e, {
510
+ icon: Qt,
511
511
  size: "small",
512
- title: R("chrome.closeEsc"),
513
- "aria-label": R("chrome.close"),
512
+ title: V("chrome.closeEsc"),
513
+ "aria-label": V("chrome.close"),
514
514
  onClick: a
515
515
  })
516
516
  ]
@@ -523,15 +523,15 @@ function En({ id: e, board: n, src: r, interactive: i, onClose: a, parameterActi
523
523
  height: n.h,
524
524
  marginBottom: 36
525
525
  },
526
- children: /* @__PURE__ */ Z(le, {
526
+ children: /* @__PURE__ */ Z(M, {
527
527
  src: r,
528
- title: n.title ?? e,
528
+ title: n.title ?? t,
529
529
  barScale: 1,
530
530
  barWidth: n.w
531
531
  })
532
- }) : t(n) ? /* @__PURE__ */ Z("img", {
532
+ }) : e(n) ? /* @__PURE__ */ Z("img", {
533
533
  src: r,
534
- alt: n.title ?? e,
534
+ alt: n.title ?? t,
535
535
  className: "x1lliihq x193iq5w xt7dq6l xvueqy4",
536
536
  style: { width: n.w }
537
537
  }) : /* @__PURE__ */ Q("div", {
@@ -545,7 +545,7 @@ function En({ id: e, board: n, src: r, interactive: i, onClose: a, parameterActi
545
545
  children: [/* @__PURE__ */ Z("iframe", {
546
546
  ref: c,
547
547
  onLoad: l,
548
- title: n.title ?? e,
548
+ title: n.title ?? t,
549
549
  src: r,
550
550
  sandbox: "allow-scripts",
551
551
  className: "x2lah0s xc342km x83z2og x1d5q07e",
@@ -561,7 +561,7 @@ function En({ id: e, board: n, src: r, interactive: i, onClose: a, parameterActi
561
561
  }
562
562
  //#endregion
563
563
  //#region src/viewer/lib/handPose.ts
564
- var Dn = "M9.2 14H23.4V19.5C23.4 24.5 21 27.6 17 27.6H15.6C12 27.6 9.2 25 9.2 21.5Z", On = [
564
+ var An = "M9.2 14H23.4V19.5C23.4 24.5 21 27.6 17 27.6H15.6C12 27.6 9.2 25 9.2 21.5Z", jn = [
565
565
  [
566
566
  14.5,
567
567
  17.1,
@@ -589,7 +589,7 @@ var Dn = "M9.2 14H23.4V19.5C23.4 24.5 21 27.6 17 27.6H15.6C12 27.6 9.2 25 9.2 21
589
589
  8,
590
590
  4
591
591
  ]
592
- ], kn = {
592
+ ], Mn = {
593
593
  from: {
594
594
  x: 10.85,
595
595
  y: 16.5
@@ -608,7 +608,7 @@ var Dn = "M9.2 14H23.4V19.5C23.4 24.5 21 27.6 17 27.6H15.6C12 27.6 9.2 25 9.2 21
608
608
  x: 2.9,
609
609
  y: 16.6
610
610
  }]
611
- }, An = {
611
+ }, Nn = {
612
612
  from: {
613
613
  x: 9.8,
614
614
  y: 23
@@ -627,12 +627,12 @@ var Dn = "M9.2 14H23.4V19.5C23.4 24.5 21 27.6 17 27.6H15.6C12 27.6 9.2 25 9.2 21
627
627
  x: 3.3,
628
628
  y: 19.4
629
629
  }]
630
- }, jn = (e) => Math.round(e * 100) / 100, Mn = (e, t, n) => jn(e + (t - e) * n), Nn = ([e, t], n) => ({
631
- x: Mn(e.x, t.x, n),
632
- y: Mn(e.y, t.y, n)
630
+ }, Pn = (e) => Math.round(e * 100) / 100, Fn = (e, t, n) => Pn(e + (t - e) * n), In = ([e, t], n) => ({
631
+ x: Fn(e.x, t.x, n),
632
+ y: Fn(e.y, t.y, n)
633
633
  });
634
- function Pn(e, t) {
635
- let n = Nn(e.control, t), r = Nn(e.tip, t), { from: i } = e;
634
+ function Ln(e, t) {
635
+ let n = In(e.control, t), r = In(e.tip, t), { from: i } = e;
636
636
  return {
637
637
  from: i,
638
638
  control: n,
@@ -640,19 +640,19 @@ function Pn(e, t) {
640
640
  d: `M${i.x} ${i.y}Q${n.x} ${n.y} ${r.x} ${r.y}`
641
641
  };
642
642
  }
643
- function Fn(e, t) {
643
+ function Rn(e, t) {
644
644
  return {
645
- index: Pn(kn, e),
646
- thumb: Pn(An, e),
647
- fingers: On.map(([e, n, r, i, a, o, s]) => {
648
- let c = Mn(i, a, t);
645
+ index: Ln(Mn, e),
646
+ thumb: Ln(Nn, e),
647
+ fingers: jn.map(([e, n, r, i, a, o, s]) => {
648
+ let c = Fn(i, a, t);
649
649
  return {
650
650
  x: e - r / 2,
651
- y: jn(n - c),
651
+ y: Pn(n - c),
652
652
  width: r,
653
653
  height: c,
654
654
  radius: r / 2,
655
- transform: `rotate(${Mn(o, s, t)} ${e} ${n})`
655
+ transform: `rotate(${Fn(o, s, t)} ${e} ${n})`
656
656
  };
657
657
  }),
658
658
  seam: Math.min(1, Math.max(0, e * 1.6))
@@ -660,7 +660,7 @@ function Fn(e, t) {
660
660
  }
661
661
  //#endregion
662
662
  //#region src/viewer/lib/spring.ts
663
- function In({ value: e, velocity: t }, n, r, i = 520, a = 28) {
663
+ function zn({ value: e, velocity: t }, n, r, i = 520, a = 28) {
664
664
  let o = t + (i * (n - e) - a * t) * r;
665
665
  return {
666
666
  value: e + o * r,
@@ -669,8 +669,8 @@ function In({ value: e, velocity: t }, n, r, i = 520, a = 28) {
669
669
  }
670
670
  //#endregion
671
671
  //#region src/viewer/components/HandCursor.tsx
672
- var Ln = "#423d38", Rn = 30, zn = "[data-hand-drawn], [data-hand-drawn] * { cursor: none !important; }", Bn = (e) => Math.round(e * 100) / 100, Vn = (e, t) => Math.abs(e.value - t) < 5e-4 && Math.abs(e.velocity) < .005;
673
- function Hn({ viewport: e, hand: t }) {
672
+ var Bn = "#423d38", Vn = 30, Hn = "[data-hand-drawn], [data-hand-drawn] * { cursor: none !important; }", Un = (e) => Math.round(e * 100) / 100, Wn = (e, t) => Math.abs(e.value - t) < 5e-4 && Math.abs(e.velocity) < .005;
673
+ function Gn({ viewport: e, hand: t }) {
674
674
  let n = J(null), r = J(t !== null), [i, a] = Y(null), [o, s] = Y({
675
675
  pinch: 0,
676
676
  curl: 0
@@ -702,13 +702,13 @@ function Hn({ viewport: e, hand: t }) {
702
702
  return t.addEventListener("pointermove", o), t.addEventListener("pointerdown", o), t.addEventListener("pointerover", s), t.addEventListener("pointerleave", c), () => {
703
703
  t.removeEventListener("pointermove", o), t.removeEventListener("pointerdown", o), t.removeEventListener("pointerover", s), t.removeEventListener("pointerleave", c);
704
704
  };
705
- }, [e]), Ke(() => {
705
+ }, [e]), Ye(() => {
706
706
  r.current = t !== null, a(r.current ? n.current : null);
707
- }, [t]), Ke(() => {
707
+ }, [t]), Ye(() => {
708
708
  e.current?.toggleAttribute("data-hand-drawn", u);
709
709
  }, [e, u]), K(() => {
710
710
  let e = c.current, t = e.goal;
711
- if (e.goal = l, Vn(e.pinch, l) && Vn(e.curl, l)) return;
711
+ if (e.goal = l, Wn(e.pinch, l) && Wn(e.curl, l)) return;
712
712
  if (matchMedia("(prefers-reduced-motion: reduce)").matches) {
713
713
  e.pinch = {
714
714
  value: l,
@@ -725,8 +725,8 @@ function Hn({ viewport: e, hand: t }) {
725
725
  let n = performance.now(), r = n, i = 0, a = (o) => {
726
726
  let c = Math.min(1 / 30, (o - r) / 1e3);
727
727
  r = o;
728
- let u = o - n >= Rn ? l : t;
729
- e.pinch = In(e.pinch, l, c), e.curl = In(e.curl, u, c), u === l && Vn(e.pinch, l) && Vn(e.curl, l) ? (e.pinch = {
728
+ let u = o - n >= Vn ? l : t;
729
+ e.pinch = zn(e.pinch, l, c), e.curl = zn(e.curl, u, c), u === l && Wn(e.pinch, l) && Wn(e.curl, l) ? (e.pinch = {
730
730
  value: l,
731
731
  velocity: 0
732
732
  }, e.curl = {
@@ -739,7 +739,7 @@ function Hn({ viewport: e, hand: t }) {
739
739
  };
740
740
  return i = requestAnimationFrame(a), () => cancelAnimationFrame(i);
741
741
  }, [l]), !u) return null;
742
- let { index: d, thumb: f, fingers: p, seam: m } = Fn(o.pinch, o.curl), h = p.map((e, t) => /* @__PURE__ */ Z("rect", {
742
+ let { index: d, thumb: f, fingers: p, seam: m } = Rn(o.pinch, o.curl), h = p.map((e, t) => /* @__PURE__ */ Z("rect", {
743
743
  x: e.x,
744
744
  y: e.y,
745
745
  width: e.width,
@@ -747,10 +747,10 @@ function Hn({ viewport: e, hand: t }) {
747
747
  rx: e.radius,
748
748
  transform: e.transform
749
749
  }, t));
750
- return /* @__PURE__ */ Q(X, { children: [/* @__PURE__ */ Z("style", { children: zn }), /* @__PURE__ */ Q("svg", {
750
+ return /* @__PURE__ */ Q(X, { children: [/* @__PURE__ */ Z("style", { children: Hn }), /* @__PURE__ */ Q("svg", {
751
751
  "data-hand-cursor": "",
752
- "data-pinch": Bn(o.pinch),
753
- "data-curl": Bn(o.curl),
752
+ "data-pinch": Un(o.pinch),
753
+ "data-curl": Un(o.curl),
754
754
  width: "32",
755
755
  height: "32",
756
756
  viewBox: "0 0 32 32",
@@ -759,15 +759,15 @@ function Hn({ viewport: e, hand: t }) {
759
759
  style: { transform: `translate(${i.x - 16}px, ${i.y - 16}px)` },
760
760
  children: [
761
761
  /* @__PURE__ */ Q("g", {
762
- fill: Ln,
763
- stroke: Ln,
762
+ fill: Bn,
763
+ stroke: Bn,
764
764
  strokeWidth: "2",
765
765
  strokeLinejoin: "round",
766
- children: [h, /* @__PURE__ */ Z("path", { d: Dn })]
766
+ children: [h, /* @__PURE__ */ Z("path", { d: An })]
767
767
  }),
768
768
  /* @__PURE__ */ Q("g", {
769
769
  fill: "none",
770
- stroke: Ln,
770
+ stroke: Bn,
771
771
  strokeLinecap: "round",
772
772
  children: [/* @__PURE__ */ Z("path", {
773
773
  d: d.d,
@@ -779,7 +779,7 @@ function Hn({ viewport: e, hand: t }) {
779
779
  }),
780
780
  /* @__PURE__ */ Q("g", {
781
781
  fill: "#fff",
782
- children: [h, /* @__PURE__ */ Z("path", { d: Dn })]
782
+ children: [h, /* @__PURE__ */ Z("path", { d: An })]
783
783
  }),
784
784
  /* @__PURE__ */ Z("path", {
785
785
  d: d.d,
@@ -791,7 +791,7 @@ function Hn({ viewport: e, hand: t }) {
791
791
  /* @__PURE__ */ Z("path", {
792
792
  d: f.d,
793
793
  fill: "none",
794
- stroke: Ln,
794
+ stroke: Bn,
795
795
  strokeOpacity: m,
796
796
  strokeWidth: "6",
797
797
  strokeLinecap: "round"
@@ -804,7 +804,7 @@ function Hn({ viewport: e, hand: t }) {
804
804
  strokeLinecap: "round"
805
805
  }),
806
806
  /* @__PURE__ */ Z("path", {
807
- d: Dn,
807
+ d: An,
808
808
  fill: "#fff"
809
809
  })
810
810
  ]
@@ -812,21 +812,21 @@ function Hn({ viewport: e, hand: t }) {
812
812
  }
813
813
  //#endregion
814
814
  //#region src/viewer/verdicts/GroupVerdict.tsx
815
- var Un = (e, t) => new Date(e).toLocaleTimeString(t, {
815
+ var Kn = (e, t) => new Date(e).toLocaleTimeString(t, {
816
816
  hour: "2-digit",
817
817
  minute: "2-digit",
818
818
  hour12: !1
819
819
  });
820
- function Wn({ verdict: e, evidenceAt: t, canJudge: n, onPass: r, onReject: i, onUndo: a }) {
821
- let { t: o, i18n: s } = N();
820
+ function qn({ verdict: e, evidenceAt: t, canJudge: n, onPass: r, onReject: i, onUndo: a }) {
821
+ let { t: o, i18n: s } = F();
822
822
  return e.state === "pass" ? /* @__PURE__ */ Q(X, { children: [
823
823
  /* @__PURE__ */ Q("span", {
824
824
  className: "x78zum5 x6s0dn4 x17d4w8g x1hm9lzh xk50ysn xvn0vjr",
825
- children: [/* @__PURE__ */ Z(vt, { size: 13 }), o("verdict.passed")]
825
+ children: [/* @__PURE__ */ Z(xt, { size: 13 }), o("verdict.passed")]
826
826
  }),
827
827
  e.at && /* @__PURE__ */ Z("span", {
828
828
  className: "xo1l8bm xfifm61 xddlp02",
829
- children: Un(e.at, s.language)
829
+ children: Kn(e.at, s.language)
830
830
  }),
831
831
  n && /* @__PURE__ */ Z("button", {
832
832
  type: "button",
@@ -836,7 +836,7 @@ function Wn({ verdict: e, evidenceAt: t, canJudge: n, onPass: r, onReject: i, on
836
836
  })
837
837
  ] }) : e.state === "reject" ? /* @__PURE__ */ Q(X, { children: [/* @__PURE__ */ Q("span", {
838
838
  className: "x78zum5 x6s0dn4 x17d4w8g x1hm9lzh xk50ysn x104s22n",
839
- children: [/* @__PURE__ */ Z(Yt, { size: 13 }), o("verdict.rejected")]
839
+ children: [/* @__PURE__ */ Z(Qt, { size: 13 }), o("verdict.rejected")]
840
840
  }), /* @__PURE__ */ Z("span", {
841
841
  className: "xo1l8bm xfifm61 xddlp02",
842
842
  children: o("verdict.waitingFix", { count: e.rejectThreads })
@@ -847,7 +847,7 @@ function Wn({ verdict: e, evidenceAt: t, canJudge: n, onPass: r, onReject: i, on
847
847
  }),
848
848
  e.evidenceUpdated && t > 0 && /* @__PURE__ */ Z("span", {
849
849
  className: "xo1l8bm xfifm61 xddlp02",
850
- children: o("verdict.evidenceUpdatedAt", { time: Un(t, s.language) })
850
+ children: o("verdict.evidenceUpdatedAt", { time: Kn(t, s.language) })
851
851
  }),
852
852
  n && /* @__PURE__ */ Q(X, { children: [
853
853
  /* @__PURE__ */ Z("span", { className: "x1i1rx1s x1kpxq89 xjgtzcg xcn5yip" }),
@@ -855,147 +855,147 @@ function Wn({ verdict: e, evidenceAt: t, canJudge: n, onPass: r, onReject: i, on
855
855
  type: "button",
856
856
  onClick: r,
857
857
  className: "x78zum5 x6s0dn4 x1nejdyq x1717udv xc342km xjbqb8w xjb2p0i x1qlqyl8 xk50ysn x1ypdohk x1bo0w0s x1de4qr5",
858
- children: [/* @__PURE__ */ Z(vt, { size: 13 }), o("verdict.pass")]
858
+ children: [/* @__PURE__ */ Z(xt, { size: 13 }), o("verdict.pass")]
859
859
  }),
860
860
  /* @__PURE__ */ Q("button", {
861
861
  type: "button",
862
862
  onClick: i,
863
863
  className: "x78zum5 x6s0dn4 x1nejdyq x1717udv xc342km xjbqb8w xjb2p0i x1qlqyl8 xk50ysn x1ypdohk x1bo0w0s xm31nxl",
864
- children: [/* @__PURE__ */ Z(Yt, { size: 13 }), o("verdict.reject")]
864
+ children: [/* @__PURE__ */ Z(Qt, { size: 13 }), o("verdict.reject")]
865
865
  })
866
866
  ] })
867
867
  ] });
868
868
  }
869
869
  //#endregion
870
870
  //#region src/viewer/components/Labels.tsx
871
- var Gn = 150, Kn = 240, qn = 12, Jn = 13, Yn = 26, Xn = (e, t) => e === null ? null : e / t;
872
- function Zn(e, t) {
871
+ var Jn = 150, Yn = 240, Xn = 12, Zn = 13, Qn = 26, $n = (e, t) => e === null ? null : e / t;
872
+ function er(e, t) {
873
873
  let n = document.createElement("a");
874
874
  n.href = e, n.download = t, n.click();
875
875
  }
876
- function Qn({ view: e, boards: n, groups: r, allBoards: i, contentBase: o, versions: s, pending: c, playing: l, onExpand: u, onTogglePlay: d, onReplay: f, parameters: p, activeParameters: m, onToggleParameters: g, verdicts: _ }) {
877
- let y = Xn(C(h, e.k), Jn), b = Xn(C(v, e.k), qn);
876
+ function tr({ view: t, boards: n, groups: r, allBoards: i, contentBase: a, versions: o, pending: c, playing: u, onExpand: d, onTogglePlay: f, onReplay: m, parameters: h, activeParameters: g, onToggleParameters: _, verdicts: v }) {
877
+ let y = $n(D(s, t.k), Zn), b = $n(D(p, t.k), Xn);
878
878
  return /* @__PURE__ */ Q("div", {
879
879
  className: "x10l6tqk x10a8y8t x47corl xb3r6kr",
880
- children: [y !== null && r.map(([t, n]) => {
880
+ children: [y !== null && r.map(([e, n]) => {
881
881
  let r = n.boards.map((e) => i[e]).filter((e) => !!e);
882
882
  if (r.length === 0) return null;
883
- let a = Math.min(...r.map((e) => e.x)), o = Math.min(...r.map((e) => e.y)), s = _?.states[t];
883
+ let a = Math.min(...r.map((e) => e.x)), o = Math.min(...r.map((e) => e.y)), s = v?.states[e];
884
884
  return /* @__PURE__ */ Q("div", {
885
- "data-group-label": t,
885
+ "data-group-label": e,
886
886
  "data-chrome": s ? "group-label" : void 0,
887
887
  ...{
888
888
  0: { className: "x10l6tqk x78zum5 x6s0dn4 x17d4w8g x1hj3fc7 x4z9k3i x1s688f xo2rkog xuxw1ft" },
889
889
  1: { className: "x10l6tqk x78zum5 x6s0dn4 x17d4w8g x1hj3fc7 x4z9k3i x1s688f xo2rkog xuxw1ft x67bb7w" }
890
890
  }[!!s | 0],
891
891
  style: {
892
- left: e.x + a * e.k,
893
- top: e.y + o * e.k,
894
- transform: `scale(${y}) translateY(calc(-100% - ${Yn}px))`
892
+ left: t.x + a * t.k,
893
+ top: t.y + o * t.k,
894
+ transform: `scale(${y}) translateY(calc(-100% - ${Qn}px))`
895
895
  },
896
896
  children: [
897
897
  /* @__PURE__ */ Z("span", {
898
898
  className: "xm9j1uf x12oqio5 x19ckca5 xs0jrwl x1fao0z8 x1j6dyjg xk50ysn xd4r4e8",
899
- children: t
899
+ children: e
900
900
  }),
901
901
  n.title,
902
- s && _ && /* @__PURE__ */ Z(Wn, {
902
+ s && v && /* @__PURE__ */ Z(qn, {
903
903
  verdict: s,
904
- evidenceAt: _.evidenceAt(t),
905
- canJudge: _.canJudge,
906
- onPass: () => _.pass(t),
907
- onReject: () => _.startReject(t),
908
- onUndo: () => _.undoPass(t)
904
+ evidenceAt: v.evidenceAt(e),
905
+ canJudge: v.canJudge,
906
+ onPass: () => v.pass(e),
907
+ onReject: () => v.startReject(e),
908
+ onUndo: () => v.undoPass(e)
909
909
  })
910
910
  ]
911
- }, t);
911
+ }, e);
912
912
  }), b !== null && n.map(([n, r]) => {
913
- let i = a(r, e);
913
+ let i = l(r, t);
914
914
  if (!i) return null;
915
- let h = i.width / b, _ = ce(s, r.file) && !c.has(n), v = _ && j(r, s);
915
+ let s = i.width / b, p = ue(o, r.file) && !c.has(n), v = p && N(r, o);
916
916
  return /* @__PURE__ */ Q("div", {
917
917
  "data-chrome": "board-label",
918
918
  className: "x10l6tqk x78zum5 x6s0dn4 xxk0z11 x1hj3fc7 x1120s5i x1bo0w0s x67bb7w",
919
919
  style: {
920
920
  left: i.left,
921
921
  top: i.top,
922
- width: h,
922
+ width: s,
923
923
  transform: `scale(${b}) translateY(-100%)`
924
924
  },
925
925
  children: [
926
926
  /* @__PURE__ */ Q("span", {
927
927
  className: "x98rzlu x78zum5 x1pha0wt x17d4w8g xeuugli xb3r6kr xfifm61 xuxw1ft xlyipyv",
928
928
  children: [
929
- t(r) && /* @__PURE__ */ Z("span", {
929
+ e(r) && /* @__PURE__ */ Z("span", {
930
930
  "data-board-type": r.type,
931
931
  className: "x2lah0s xamitd3 x78zum5 xddlp02",
932
- children: r.type === "video" ? /* @__PURE__ */ Z(Mt, { size: 12 }) : /* @__PURE__ */ Z(It, { size: 12 })
932
+ children: r.type === "video" ? /* @__PURE__ */ Z(Ft, { size: 12 }) : /* @__PURE__ */ Z(zt, { size: 12 })
933
933
  }),
934
934
  r.title ?? n,
935
935
  /* @__PURE__ */ Z("span", {
936
936
  className: "x1fao0z8 x1j6dyjg xddlp02",
937
- children: t(r) ? `${n} · ${r.file.split("/").pop()}` : n
937
+ children: e(r) ? `${n} · ${r.file.split("/").pop()}` : n
938
938
  })
939
939
  ]
940
940
  }),
941
- _ && h >= Gn && /* @__PURE__ */ Q(X, { children: [/* @__PURE__ */ Z(Xe, {
942
- icon: Rt,
941
+ p && s >= Jn && /* @__PURE__ */ Q(X, { children: [/* @__PURE__ */ Z($e, {
942
+ icon: Vt,
943
943
  size: {
944
944
  blockSize: 22,
945
945
  size: 13
946
946
  },
947
- title: R("chrome.expand"),
948
- "aria-label": R("chrome.expandBoard", { id: n }),
949
- onClick: () => u(n)
950
- }), /* @__PURE__ */ Z(Xe, {
951
- icon: At,
947
+ title: V("chrome.expand"),
948
+ "aria-label": V("chrome.expandBoard", { id: n }),
949
+ onClick: () => d(n)
950
+ }), /* @__PURE__ */ Z($e, {
951
+ icon: Nt,
952
952
  size: {
953
953
  blockSize: 22,
954
954
  size: 13
955
955
  },
956
- title: R("chrome.download"),
957
- "aria-label": R("chrome.downloadBoard", { id: n }),
958
- onClick: () => Zn(`${o}${r.file}`, r.file.split("/").pop() ?? `${n}.html`)
956
+ title: V("chrome.download"),
957
+ "aria-label": V("chrome.downloadBoard", { id: n }),
958
+ onClick: () => er(`${a}${r.file}`, r.file.split("/").pop() ?? `${n}.html`)
959
959
  })] }),
960
- _ && p?.[n] !== void 0 && h >= Gn && /* @__PURE__ */ Q("button", {
960
+ p && h?.[n] !== void 0 && s >= Jn && /* @__PURE__ */ Q("button", {
961
961
  type: "button",
962
- "aria-label": R("chrome.parametersBoard", { id: n }),
963
- "aria-expanded": m === n,
964
- onClick: (e) => g?.(n, e.currentTarget),
962
+ "aria-label": V("chrome.parametersBoard", { id: n }),
963
+ "aria-expanded": g === n,
964
+ onClick: (e) => _?.(n, e.currentTarget),
965
965
  ...{
966
966
  0: { className: "x78zum5 x6s0dn4 x1jnr06f x1qx5ct2 xdwrcjd xlkn9b3 xmkeg23 x1y0btm7 x1lvdfi3 x1kogg8i xjbqb8w x12zwl0d x12ogdgn xqfszdh x1j6dyjg x1s688f x1vyo3qp x1ypdohk" },
967
967
  1: { className: "x78zum5 x6s0dn4 x1jnr06f x1qx5ct2 xdwrcjd xlkn9b3 xmkeg23 x1y0btm7 x1lvdfi3 x1kogg8i xqfszdh x1j6dyjg x1s688f x1vyo3qp x1ypdohk xyq41xo x1oo6j1a x1f7m26b" }
968
- }[m === n | 0],
968
+ }[g === n | 0],
969
969
  children: [
970
- /* @__PURE__ */ Z(Kt, { size: 11 }),
971
- R("chrome.parameters"),
970
+ /* @__PURE__ */ Z(Yt, { size: 11 }),
971
+ V("chrome.parameters"),
972
972
  " ",
973
- p[n] || "!"
973
+ h[n] || "!"
974
974
  ]
975
975
  }),
976
- v && h >= Kn && l.has(n) && /* @__PURE__ */ Z(Xe, {
977
- icon: Wt,
976
+ v && s >= Yn && u.has(n) && /* @__PURE__ */ Z($e, {
977
+ icon: qt,
978
978
  size: {
979
979
  blockSize: 22,
980
980
  size: 13
981
981
  },
982
- title: R("chrome.replay"),
983
- "aria-label": R("chrome.replayBoard", { id: n }),
984
- onClick: () => f(n)
982
+ title: V("chrome.replay"),
983
+ "aria-label": V("chrome.replayBoard", { id: n }),
984
+ onClick: () => m(n)
985
985
  }),
986
- v && h >= Kn && /* @__PURE__ */ Q("button", {
986
+ v && s >= Yn && /* @__PURE__ */ Q("button", {
987
987
  type: "button",
988
- "aria-pressed": l.has(n),
989
- "aria-label": l.has(n) ? R("chrome.stopBoard", { id: n }) : R("chrome.playBoard", { id: n }),
990
- onClick: () => d(n),
988
+ "aria-pressed": u.has(n),
989
+ "aria-label": u.has(n) ? V("chrome.stopBoard", { id: n }) : V("chrome.playBoard", { id: n }),
990
+ onClick: () => f(n),
991
991
  ...{
992
992
  0: { className: "x78zum5 x6s0dn4 x1jnr06f x1qx5ct2 xdwrcjd xlkn9b3 xmkeg23 x1y0btm7 x1lvdfi3 x1kogg8i xjbqb8w x12zwl0d x12ogdgn xqfszdh x1j6dyjg x1s688f x1vyo3qp x1ypdohk" },
993
993
  1: { className: "x78zum5 x6s0dn4 x1jnr06f x1qx5ct2 xdwrcjd xlkn9b3 xmkeg23 x1y0btm7 x1lvdfi3 x1kogg8i xqfszdh x1j6dyjg x1s688f x1vyo3qp x1ypdohk xyq41xo x1oo6j1a x1f7m26b" }
994
- }[!!l.has(n) | 0],
995
- children: [/* @__PURE__ */ Z(Ut, {
994
+ }[!!u.has(n) | 0],
995
+ children: [/* @__PURE__ */ Z(Kt, {
996
996
  size: 11,
997
997
  strokeWidth: 2.4
998
- }), l.has(n) ? R("chrome.playing") : R("chrome.play")]
998
+ }), u.has(n) ? V("chrome.playing") : V("chrome.play")]
999
999
  })
1000
1000
  ]
1001
1001
  }, n);
@@ -1004,18 +1004,18 @@ function Qn({ view: e, boards: n, groups: r, allBoards: i, contentBase: o, versi
1004
1004
  }
1005
1005
  //#endregion
1006
1006
  //#region src/viewer/components/Toolbar.tsx
1007
- function $n({ pages: e, page: t, onPageChange: n, tool: r, onToolChange: i, commenting: a = !1 }) {
1008
- let { t: o } = N(), s = e.find((e) => e.id === t);
1007
+ function nr({ pages: e, page: t, onPageChange: n, tool: r, onToolChange: i, commenting: a = !1 }) {
1008
+ let { t: o } = F(), s = e.find((e) => e.id === t);
1009
1009
  return /* @__PURE__ */ Q("div", {
1010
1010
  "data-chrome": !0,
1011
1011
  className: "x10l6tqk x1eu8d0j x78zum5 x6s0dn4 x195vfkc x1vqgdyp xfn1xvj x12ilycc xmkeg23 x1y0btm7 x12xov25 x1q4ynmn x1cqdj14 x4z9k3i xo2rkog x1n327nk x12lbrt0",
1012
1012
  children: [
1013
- /* @__PURE__ */ Z($e, {
1013
+ /* @__PURE__ */ Z(nt, {
1014
1014
  placement: "bottomLeft",
1015
1015
  items: e.map((e) => ({
1016
1016
  key: e.id,
1017
1017
  label: e.name,
1018
- icon: e.id === t ? vt : void 0,
1018
+ icon: e.id === t ? xt : void 0,
1019
1019
  onClick: () => n(e.id)
1020
1020
  })),
1021
1021
  children: /* @__PURE__ */ Q("button", {
@@ -1025,31 +1025,31 @@ function $n({ pages: e, page: t, onPageChange: n, tool: r, onToolChange: i, comm
1025
1025
  children: [/* @__PURE__ */ Z("span", {
1026
1026
  className: "x1s688f x1racy4e xb3r6kr xlyipyv",
1027
1027
  children: s?.name ?? o("chrome.noPages")
1028
- }), /* @__PURE__ */ Z(bt, {
1028
+ }), /* @__PURE__ */ Z(Ct, {
1029
1029
  size: 14,
1030
1030
  className: "xddlp02"
1031
1031
  })]
1032
1032
  })
1033
1033
  }),
1034
1034
  /* @__PURE__ */ Z("span", { className: "x1i1rx1s xlup9mm xjgtzcg xh6qj2i" }),
1035
- /* @__PURE__ */ Z(Xe, {
1036
- icon: Vt,
1035
+ /* @__PURE__ */ Z($e, {
1036
+ icon: Wt,
1037
1037
  size: "small",
1038
1038
  active: r === "select",
1039
1039
  title: o("chrome.selectTitle"),
1040
1040
  "aria-label": o("chrome.select"),
1041
1041
  onClick: () => i("select")
1042
1042
  }),
1043
- /* @__PURE__ */ Z(Xe, {
1044
- icon: Ft,
1043
+ /* @__PURE__ */ Z($e, {
1044
+ icon: Rt,
1045
1045
  size: "small",
1046
1046
  active: r === "hand",
1047
1047
  title: o("chrome.handTitle"),
1048
1048
  "aria-label": o("chrome.hand"),
1049
1049
  onClick: () => i("hand")
1050
1050
  }),
1051
- a ? /* @__PURE__ */ Z(Xe, {
1052
- icon: zt,
1051
+ a ? /* @__PURE__ */ Z($e, {
1052
+ icon: Ht,
1053
1053
  size: "small",
1054
1054
  active: r === "comment",
1055
1055
  title: o("chrome.commentTitle"),
@@ -1059,8 +1059,8 @@ function $n({ pages: e, page: t, onPageChange: n, tool: r, onToolChange: i, comm
1059
1059
  ]
1060
1060
  });
1061
1061
  }
1062
- function er({ actions: e, live: t, warnings: n, zoom: r, onZoomIn: i, onZoomOut: a, onFit: o, onActualSize: s, inspectorOpen: c, onToggleInspector: l, verify: u, onNextVerify: d }) {
1063
- let { t: f } = N(), p = (e) => /* @__PURE__ */ Z("span", {
1062
+ function rr({ actions: e, live: t, warnings: n, zoom: r, onZoomIn: i, onZoomOut: a, onFit: o, onActualSize: s, inspectorOpen: c, onToggleInspector: l, verify: u, onNextVerify: d }) {
1063
+ let { t: f } = F(), p = (e) => /* @__PURE__ */ Z("span", {
1064
1064
  className: "xddlp02 x1fao0z8 xfifm61",
1065
1065
  children: e
1066
1066
  });
@@ -1073,7 +1073,7 @@ function er({ actions: e, live: t, warnings: n, zoom: r, onZoomIn: i, onZoomOut:
1073
1073
  title: f("verdict.nextPending"),
1074
1074
  onClick: d,
1075
1075
  className: "x78zum5 x6s0dn4 x17d4w8g x1gnnpzl x1xijbu4 xc342km xjbqb8w x1bo0w0s xqfszdh x4z9k3i xk50ysn x1ypdohk",
1076
- children: [/* @__PURE__ */ Z(vt, {
1076
+ children: [/* @__PURE__ */ Z(xt, {
1077
1077
  size: 13,
1078
1078
  className: "xvn0vjr"
1079
1079
  }), f("verdict.progress", {
@@ -1089,7 +1089,7 @@ function er({ actions: e, live: t, warnings: n, zoom: r, onZoomIn: i, onZoomOut:
1089
1089
  1: { className: "xci0xqf x1hagigm x16rqkct xux1nz0 x1s780dp xaatb59 x1ucus7e" }
1090
1090
  }[!!t | 0] })
1091
1091
  }),
1092
- n.length > 0 && /* @__PURE__ */ Z(it, {
1092
+ n.length > 0 && /* @__PURE__ */ Z(st, {
1093
1093
  placement: "bottomRight",
1094
1094
  content: /* @__PURE__ */ Z("ul", {
1095
1095
  className: "x1ghz6dp x12ulsxz xwn43p0 x1lr1uin x4z9k3i x1dbl2gt",
@@ -1102,8 +1102,8 @@ function er({ actions: e, live: t, warnings: n, zoom: r, onZoomIn: i, onZoomOut:
1102
1102
  })
1103
1103
  }),
1104
1104
  /* @__PURE__ */ Z("span", { className: "x1i1rx1s xlup9mm xjgtzcg xh6qj2i" }),
1105
- /* @__PURE__ */ Z(Xe, {
1106
- icon: Ht,
1105
+ /* @__PURE__ */ Z($e, {
1106
+ icon: Gt,
1107
1107
  size: "small",
1108
1108
  active: c,
1109
1109
  "aria-label": f("chrome.toggleInspector"),
@@ -1111,7 +1111,7 @@ function er({ actions: e, live: t, warnings: n, zoom: r, onZoomIn: i, onZoomOut:
1111
1111
  title: f("chrome.inspector"),
1112
1112
  onClick: l
1113
1113
  }),
1114
- /* @__PURE__ */ Z($e, {
1114
+ /* @__PURE__ */ Z(nt, {
1115
1115
  placement: "bottomRight",
1116
1116
  items: [
1117
1117
  {
@@ -1146,7 +1146,7 @@ function er({ actions: e, live: t, warnings: n, zoom: r, onZoomIn: i, onZoomOut:
1146
1146
  children: [/* @__PURE__ */ Q("span", {
1147
1147
  className: "xss6m8b x15hfatp x1hr2gdg",
1148
1148
  children: [Math.round(r * 100), "%"]
1149
- }), /* @__PURE__ */ Z(bt, {
1149
+ }), /* @__PURE__ */ Z(Ct, {
1150
1150
  size: 14,
1151
1151
  className: "xddlp02"
1152
1152
  })]
@@ -1158,24 +1158,24 @@ function er({ actions: e, live: t, warnings: n, zoom: r, onZoomIn: i, onZoomOut:
1158
1158
  }
1159
1159
  //#endregion
1160
1160
  //#region src/viewer/lib/board-comments.ts
1161
- var tr = (e) => typeof e == "object" && !!e && Array.isArray(e.threads), nr = (e) => Array.isArray(e) ? e.filter((e) => typeof e == "string") : [];
1162
- function rr(e) {
1163
- return tr(e.comments) ? {
1161
+ var ir = (e) => typeof e == "object" && !!e && Array.isArray(e.threads), ar = (e) => Array.isArray(e) ? e.filter((e) => typeof e == "string") : [];
1162
+ function or(e) {
1163
+ return ir(e.comments) ? {
1164
1164
  comments: e.comments,
1165
- stale: nr(e.staleThreads)
1165
+ stale: ar(e.staleThreads)
1166
1166
  } : null;
1167
1167
  }
1168
- function ir(e, t) {
1168
+ function sr(e, t) {
1169
1169
  if (typeof e != "object" || !e) return null;
1170
1170
  let n = e;
1171
- return n.type !== "board-comments" || t !== null && n.artifact !== t || !tr(n.comments) ? null : {
1171
+ return n.type !== "board-comments" || t !== null && n.artifact !== t || !ir(n.comments) ? null : {
1172
1172
  comments: n.comments,
1173
- stale: nr(n.stale)
1173
+ stale: ar(n.stale)
1174
1174
  };
1175
1175
  }
1176
1176
  //#endregion
1177
1177
  //#region src/viewer/lib/payload.ts
1178
- function ar(e, t) {
1178
+ function cr(e, t) {
1179
1179
  return t.canvas === null && e.canvas !== null ? {
1180
1180
  ...e,
1181
1181
  warnings: t.warnings,
@@ -1190,7 +1190,7 @@ function ar(e, t) {
1190
1190
  }
1191
1191
  //#endregion
1192
1192
  //#region src/viewer/hooks/useCanvasData.ts
1193
- var or = {
1193
+ var lr = {
1194
1194
  canvas: null,
1195
1195
  warnings: [],
1196
1196
  pending: [],
@@ -1199,17 +1199,17 @@ var or = {
1199
1199
  contentBase: "",
1200
1200
  stale: !1
1201
1201
  };
1202
- function sr({ live: e, revision: t, load: n, send: r, boardComments: i, comment: a }) {
1203
- let [o, s] = Y(or), [c, l] = Y(!1), [u, d] = Y(null);
1202
+ function ur({ live: e, revision: t, load: n, send: r, boardComments: i, comment: a }) {
1203
+ let [o, s] = Y(lr), [c, l] = Y(!1), [u, d] = Y(null);
1204
1204
  return K(() => {
1205
1205
  let e = !1;
1206
1206
  return n().then(({ data: t }) => {
1207
1207
  if (e) return;
1208
- s((e) => ar(e, {
1209
- ...or,
1208
+ s((e) => cr(e, {
1209
+ ...lr,
1210
1210
  ...t
1211
1211
  }));
1212
- let n = rr(t);
1212
+ let n = or(t);
1213
1213
  n && d(n), l(!0);
1214
1214
  }, () => !e && l(!0)), () => {
1215
1215
  e = !0;
@@ -1227,8 +1227,8 @@ function sr({ live: e, revision: t, load: n, send: r, boardComments: i, comment:
1227
1227
  }
1228
1228
  //#endregion
1229
1229
  //#region src/viewer/hooks/useBoardComments.ts
1230
- function cr({ comments: e, comment: t, page: n, boards: r, inspector: i }) {
1231
- let [a, o] = Y(null), [s, c] = Y(null), l = J(null), u = q(() => e?.comments.threads ?? [], [e]), d = q(() => new Set(e?.stale ?? []), [e]), f = q(() => dn(u), [u]);
1230
+ function dr({ comments: e, comment: t, page: n, boards: r, inspector: i }) {
1231
+ let [a, o] = Y(null), [s, c] = Y(null), l = J(null), u = q(() => e?.comments.threads ?? [], [e]), d = q(() => new Set(e?.stale ?? []), [e]), f = q(() => mn(u), [u]);
1232
1232
  K(() => {
1233
1233
  o(null), c(null);
1234
1234
  }, [n]);
@@ -1256,7 +1256,7 @@ function cr({ comments: e, comment: t, page: n, boards: r, inspector: i }) {
1256
1256
  let r = l.current;
1257
1257
  if (l.current = null, t.phase !== "cancel" || !r || r.boardId !== e) return;
1258
1258
  let a = i.hover, o = a && a.boardId === e && a.id === r.id ? a.rect : void 0, s = p(e, r.id);
1259
- m(rn(n, e, r, o && s ? {
1259
+ m(sn(n, e, r, o && s ? {
1260
1260
  rect: o,
1261
1261
  path: s
1262
1262
  } : void 0));
@@ -1269,10 +1269,10 @@ function cr({ comments: e, comment: t, page: n, boards: r, inspector: i }) {
1269
1269
  onCanvasClick: G((e) => {
1270
1270
  if (!n) return;
1271
1271
  let t = Object.entries(r).find(([, t]) => t.page === n && e.x >= t.x && e.x <= t.x + t.w && e.y >= t.y && e.y <= t.y + t.h);
1272
- m(t ? rn(n, t[0], {
1272
+ m(t ? sn(n, t[0], {
1273
1273
  x: e.x - t[1].x,
1274
1274
  y: e.y - t[1].y
1275
- }) : rn(n, null, e));
1275
+ }) : sn(n, null, e));
1276
1276
  }, [
1277
1277
  n,
1278
1278
  r,
@@ -1280,7 +1280,7 @@ function cr({ comments: e, comment: t, page: n, boards: r, inspector: i }) {
1280
1280
  ]),
1281
1281
  commentSelection: G(() => {
1282
1282
  if (!n) return !1;
1283
- let e = an(n, i.selectedTargets.map((e) => ({
1283
+ let e = cn(n, i.selectedTargets.map((e) => ({
1284
1284
  boardId: e.boardId,
1285
1285
  rect: e.rect,
1286
1286
  path: p(e.boardId, e.id)
@@ -1343,14 +1343,14 @@ function cr({ comments: e, comment: t, page: n, boards: r, inspector: i }) {
1343
1343
  }
1344
1344
  //#endregion
1345
1345
  //#region src/shared/thumbnail.ts
1346
- var lr = "<style>:root{--ink:#333;--muted:#85817c;--paper:#fff;--bg:#f3f2f0;--border:#dedcd7;--block:#f2f1ee;--alert:#f7eee4}@media (prefers-color-scheme: dark){:root{--ink:#e5e5e5;--muted:#a0a0a0;--paper:#292929;--bg:#1c1c1c;--border:#424242;--block:#353535;--alert:#3b342e}}text{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,sans-serif}rect{stroke-width:.8;vector-effect:non-scaling-stroke}</style>", ur = (e) => e.replace(/[&<>"']/g, (e) => ({
1346
+ var fr = "<style>:root{--ink:#333;--muted:#85817c;--paper:#fff;--bg:#f3f2f0;--border:#dedcd7;--block:#f2f1ee;--alert:#f7eee4}@media (prefers-color-scheme: dark){:root{--ink:#e5e5e5;--muted:#a0a0a0;--paper:#292929;--bg:#1c1c1c;--border:#424242;--block:#353535;--alert:#3b342e}}text{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,sans-serif}rect{stroke-width:.8;vector-effect:non-scaling-stroke}</style>", pr = (e) => e.replace(/[&<>"']/g, (e) => ({
1347
1347
  "&": "&amp;",
1348
1348
  "<": "&lt;",
1349
1349
  ">": "&gt;",
1350
1350
  "\"": "&quot;",
1351
1351
  "'": "&apos;"
1352
- })[e]), dr = (e, t, n, r, i = "var(--paper)", a = "none") => `<rect x="${e}" y="${t}" width="${n}" height="${r}" fill="${i}" stroke="${a}"/>`, fr = (e, t, n, r = 9, i = "var(--ink)", a = 400) => `<text x="${e}" y="${t}" font-size="${r}" fill="${i}" font-weight="${a}">${ur(n)}</text>`;
1353
- function pr(e, t, n, r) {
1352
+ })[e]), mr = (e, t, n, r, i = "var(--paper)", a = "none") => `<rect x="${e}" y="${t}" width="${n}" height="${r}" fill="${i}" stroke="${a}"/>`, hr = (e, t, n, r = 9, i = "var(--ink)", a = 400) => `<text x="${e}" y="${t}" font-size="${r}" fill="${i}" font-weight="${a}">${pr(n)}</text>`;
1353
+ function gr(e, t, n, r) {
1354
1354
  let i = [], a = "", o = 0;
1355
1355
  for (let s of e.slice(0, 4e3)) {
1356
1356
  let e = t * (s.codePointAt(0) >= 11904 ? 1 : .55);
@@ -1362,14 +1362,14 @@ function pr(e, t, n, r) {
1362
1362
  }
1363
1363
  return a && i.push(a), i;
1364
1364
  }
1365
- function mr(e) {
1366
- let t = (e) => Math.round(Number.isFinite(e) ? Math.min(1e5, Math.max(1, e)) : 1), n = t(e.w), r = t(e.h), i = Math.max(1, Math.round(Math.min(n / 14, r / 6))), a = pr(e.title || e.id, i, n * .8, 2), o = r / 2 - a.length * i * 1.25 / 2 + i * .8, s = a.map((e, t) => fr(n / 2, o + t * i * 1.25, e, i, "var(--ink)", 600)).join(""), c = e.title ? fr(n / 2, o + a.length * i * 1.25 + i * .3, e.id, Math.max(1, Math.round(i * .55)), "var(--muted)") : "";
1367
- return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${n} ${r}" width="${n}" height="${r}"><title>${ur(e.title || e.id)}</title>${lr}<style>text{text-anchor:middle}</style>${dr(0, 0, n, r, "var(--paper)", "var(--border)")}${s}${c}</svg>`;
1365
+ function _r(e) {
1366
+ let t = (e) => Math.round(Number.isFinite(e) ? Math.min(1e5, Math.max(1, e)) : 1), n = t(e.w), r = t(e.h), i = Math.max(1, Math.round(Math.min(n / 14, r / 6))), a = gr(e.title || e.id, i, n * .8, 2), o = r / 2 - a.length * i * 1.25 / 2 + i * .8, s = a.map((e, t) => hr(n / 2, o + t * i * 1.25, e, i, "var(--ink)", 600)).join(""), c = e.title ? hr(n / 2, o + a.length * i * 1.25 + i * .3, e.id, Math.max(1, Math.round(i * .55)), "var(--muted)") : "";
1367
+ return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${n} ${r}" width="${n}" height="${r}"><title>${pr(e.title || e.id)}</title>${fr}<style>text{text-anchor:middle}</style>${mr(0, 0, n, r, "var(--paper)", "var(--border)")}${s}${c}</svg>`;
1368
1368
  }
1369
1369
  //#endregion
1370
1370
  //#region src/viewer/lib/snapshot-store.ts
1371
- var hr = 80, gr = 400, _r = ({ artifact: e, file: t, version: n, scheme: r, w: i, h: a }) => `${e}|${t}|${n}|${r}|${i}x${a}`;
1372
- async function vr(e, t, n) {
1371
+ var vr = 80, yr = 400, br = ({ artifact: e, file: t, version: n, scheme: r, w: i, h: a }) => `${e}|${t}|${n}|${r}|${i}x${a}`;
1372
+ async function xr(e, t, n) {
1373
1373
  let r = await createImageBitmap(e, {
1374
1374
  resizeWidth: Math.max(1, t),
1375
1375
  resizeHeight: Math.max(1, n),
@@ -1377,7 +1377,7 @@ async function vr(e, t, n) {
1377
1377
  }), i = new OffscreenCanvas(r.width, r.height);
1378
1378
  return i.getContext("2d").drawImage(r, 0, 0), r.close(), i.convertToBlob({ type: "image/png" });
1379
1379
  }
1380
- function yr(e = typeof indexedDB > "u" ? void 0 : indexedDB) {
1380
+ function Sr(e = typeof indexedDB > "u" ? void 0 : indexedDB) {
1381
1381
  let t = null, n = () => t ??= new Promise((t) => {
1382
1382
  if (!e) return t(null);
1383
1383
  try {
@@ -1398,11 +1398,11 @@ function yr(e = typeof indexedDB > "u" ? void 0 : indexedDB) {
1398
1398
  });
1399
1399
  }, i = async () => {
1400
1400
  let [e, t] = await Promise.all([r("readonly", (e) => e.getAllKeys()), r("readonly", (e) => e.getAll())]);
1401
- if (!e || !t || e.length <= gr) return;
1401
+ if (!e || !t || e.length <= yr) return;
1402
1402
  let n = e.map((e, n) => ({
1403
1403
  key: e,
1404
1404
  at: t[n]?.at ?? 0
1405
- })).sort((e, t) => e.at - t.at).slice(0, e.length - gr);
1405
+ })).sort((e, t) => e.at - t.at).slice(0, e.length - yr);
1406
1406
  for (let { key: e } of n) await r("readwrite", (t) => t.delete(e));
1407
1407
  };
1408
1408
  return {
@@ -1417,7 +1417,7 @@ function yr(e = typeof indexedDB > "u" ? void 0 : indexedDB) {
1417
1417
  }
1418
1418
  };
1419
1419
  }
1420
- function br({ persistence: e = yr(), resize: t = vr, createUrl: n = (e) => URL.createObjectURL(e), revokeUrl: r = (e) => URL.revokeObjectURL(e) } = {}) {
1420
+ function Cr({ persistence: e = Sr(), resize: t = xr, createUrl: n = (e) => URL.createObjectURL(e), revokeUrl: r = (e) => URL.revokeObjectURL(e) } = {}) {
1421
1421
  let i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Set(), s = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Set(), l = (e) => {
1422
1422
  for (let [t, n] of a) t.startsWith(`${e}@`) && (a.delete(t), n.then(r, () => void 0));
1423
1423
  }, u = (e, t) => {
@@ -1439,7 +1439,7 @@ function br({ persistence: e = yr(), resize: t = vr, createUrl: n = (e) => URL.c
1439
1439
  let s = i.get(e);
1440
1440
  if (!s) return Promise.resolve(null);
1441
1441
  let c = o >= s.scale, l = `${e}@${c ? "full" : o}`, u = a.get(l);
1442
- for (u ? a.delete(l) : u = c ? Promise.resolve(n(s.blob)) : t(s.blob, Math.round(s.width * o), Math.round(s.height * o)).then(n), a.set(l, u); a.size > hr;) {
1442
+ for (u ? a.delete(l) : u = c ? Promise.resolve(n(s.blob)) : t(s.blob, Math.round(s.width * o), Math.round(s.height * o)).then(n), a.set(l, u); a.size > vr;) {
1443
1443
  let [e, t] = a.entries().next().value;
1444
1444
  a.delete(e), t.then(r, () => void 0);
1445
1445
  }
@@ -1454,8 +1454,8 @@ function br({ persistence: e = yr(), resize: t = vr, createUrl: n = (e) => URL.c
1454
1454
  }
1455
1455
  //#endregion
1456
1456
  //#region src/viewer/lib/tier-controller.ts
1457
- var xr = 1500, Sr = 2, Cr = 2, wr = 3e3, Tr = 8e3;
1458
- function Er({ now: e = () => performance.now(), schedule: t = (e, t) => window.setTimeout(e, t), cancel: n = (e) => window.clearTimeout(e), onChange: r, onGiveUp: i }) {
1457
+ var wr = 1500, Tr = 2, Er = 2, Dr = 3e3, Or = 8e3;
1458
+ function kr({ now: e = () => performance.now(), schedule: t = (e, t) => window.setTimeout(e, t), cancel: n = (e) => window.clearTimeout(e), onChange: r, onGiveUp: i }) {
1459
1459
  let a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Set(), l = (e) => {
1460
1460
  let t = a.get(e);
1461
1461
  t && !t.ready && (t.ready = !0, t.timer !== void 0 && n(t.timer), t.timer = void 0, r());
@@ -1464,20 +1464,20 @@ function Er({ now: e = () => performance.now(), schedule: t = (e, t) => window.s
1464
1464
  t?.timer !== void 0 && n(t.timer), a.delete(e);
1465
1465
  }, d = (e) => {
1466
1466
  u(e), i?.(e);
1467
- }, f = (e) => {
1467
+ }, p = (e) => {
1468
1468
  if (c.has(e)) return l(e);
1469
1469
  a.has(e) && (d(e), r());
1470
- }, p = (e) => {
1470
+ }, m = (e) => {
1471
1471
  let n = {
1472
1472
  ready: !1,
1473
1473
  reported: !1
1474
1474
  };
1475
- a.set(e, n), n.timer = t(() => f(e), Tr);
1475
+ a.set(e, n), n.timer = t(() => p(e), Or);
1476
1476
  };
1477
1477
  return {
1478
1478
  loaded(e) {
1479
1479
  let r = a.get(e);
1480
- r && !r.ready && c.has(e) && (r.timer !== void 0 && n(r.timer), r.timer = t(() => f(e), wr));
1480
+ r && !r.ready && c.has(e) && (r.timer !== void 0 && n(r.timer), r.timer = t(() => p(e), Dr));
1481
1481
  },
1482
1482
  ready(e) {
1483
1483
  let t = a.get(e);
@@ -1486,7 +1486,7 @@ function Er({ now: e = () => performance.now(), schedule: t = (e, t) => window.s
1486
1486
  update(n) {
1487
1487
  let i = e(), l = new Set(n.boards.map((e) => e.id));
1488
1488
  for (let e of [...a.keys()]) l.has(e) || u(e);
1489
- let f = n.pinned, h = (e) => f.has(e) || n.hoverPromotes && e === n.hovered, g = m({
1489
+ let p = n.pinned, h = (e) => p.has(e) || n.hoverPromotes && e === n.hovered, g = f({
1490
1490
  ...n,
1491
1491
  hovered: n.hoverPromotes ? n.hovered : null
1492
1492
  });
@@ -1496,22 +1496,22 @@ function Er({ now: e = () => performance.now(), schedule: t = (e, t) => window.s
1496
1496
  for (let n of c) {
1497
1497
  if (e.has(n) || !l.has(n)) continue;
1498
1498
  let a = i - (o.get(n) ?? -Infinity);
1499
- a >= xr || (e.add(n), s.has(n) || s.set(n, t(() => {
1499
+ a >= wr || (e.add(n), s.has(n) || s.set(n, t(() => {
1500
1500
  s.delete(n), r();
1501
- }, xr - a)));
1501
+ }, wr - a)));
1502
1502
  }
1503
1503
  c = e;
1504
- let f = (n.warm ?? []).filter((e) => l.has(e) && !c.has(e)), m = new Set(f), _ = /* @__PURE__ */ new Set();
1505
- for (let [e, t] of [...a]) c.has(e) || (m.has(e) ? t.ready && !t.reported && (d(e), _.add(e)) : u(e));
1504
+ let f = (n.warm ?? []).filter((e) => l.has(e) && !c.has(e)), p = new Set(f), _ = /* @__PURE__ */ new Set();
1505
+ for (let [e, t] of [...a]) c.has(e) || (p.has(e) ? t.ready && !t.reported && (d(e), _.add(e)) : u(e));
1506
1506
  let v = [...a.values()].filter((e) => !e.ready).length, y = n.boards.map((e) => e.id).filter((e) => c.has(e) && !a.has(e)).sort((e, t) => Number(h(t)) - Number(h(e)));
1507
1507
  for (let e of y) {
1508
- if (v >= Sr) break;
1509
- p(e), v++;
1508
+ if (v >= Tr) break;
1509
+ m(e), v++;
1510
1510
  }
1511
1511
  let b = [...a.keys()].filter((e) => !c.has(e)).length;
1512
1512
  for (let e of f) {
1513
- if (v >= Sr || b >= Cr) break;
1514
- a.has(e) || _.has(e) || (p(e), v++, b++);
1513
+ if (v >= Tr || b >= Er) break;
1514
+ a.has(e) || _.has(e) || (m(e), v++, b++);
1515
1515
  }
1516
1516
  }
1517
1517
  let _ = /* @__PURE__ */ new Map();
@@ -1538,8 +1538,8 @@ function Er({ now: e = () => performance.now(), schedule: t = (e, t) => window.s
1538
1538
  }
1539
1539
  //#endregion
1540
1540
  //#region src/viewer/hooks/useBoardTiers.ts
1541
- var Dr = 1e4, Or = null;
1542
- function kr() {
1541
+ var Ar = 1e4, jr = null;
1542
+ function Mr() {
1543
1543
  let e = typeof matchMedia == "function" ? matchMedia("(prefers-color-scheme: dark)") : null, [t, n] = Y(!!e?.matches);
1544
1544
  return K(() => {
1545
1545
  if (!e) return;
@@ -1547,62 +1547,62 @@ function kr() {
1547
1547
  return e.addEventListener?.("change", t), () => e.removeEventListener?.("change", t);
1548
1548
  }, [e]), t ? "dark" : "light";
1549
1549
  }
1550
- function Ar({ artifact: e, boards: n, versions: r, pending: i, view: a, scaling: o, viewport: s, pinned: l, hovered: u, hoverPromotes: d, persistable: f, store: p }) {
1551
- let h = p ?? (Or ??= br()), [, g] = qe((e) => e + 1, 0), _ = J(/* @__PURE__ */ new Set()), [v] = Y(() => Er({
1550
+ function Nr({ artifact: t, boards: n, versions: r, pending: i, view: a, scaling: o, viewport: s, pinned: c, hovered: l, hoverPromotes: u, persistable: p, store: m }) {
1551
+ let h = m ?? (jr ??= Cr()), [, g] = Xe((e) => e + 1, 0), _ = J(/* @__PURE__ */ new Set()), [v] = Y(() => kr({
1552
1552
  onChange: g,
1553
1553
  onGiveUp: (e) => {
1554
- let t = O.current.get(e);
1554
+ let t = ee.current.get(e);
1555
1555
  t && _.current.add(t);
1556
1556
  }
1557
- })), y = typeof devicePixelRatio == "number" && devicePixelRatio > 0 ? devicePixelRatio : 1, b = kr(), x = J(/* @__PURE__ */ new Map()), C = J(/* @__PURE__ */ new Set()), w = J(/* @__PURE__ */ new Set()), T = J(/* @__PURE__ */ new Map()), E = n.filter(([e, n]) => !t(n) && ce(r, n.file) && !i.has(e)), D = new Map(E.map(([t, n]) => [t, _r({
1558
- artifact: e,
1557
+ })), y = typeof devicePixelRatio == "number" && devicePixelRatio > 0 ? devicePixelRatio : 1, b = Mr(), S = J(/* @__PURE__ */ new Map()), C = J(/* @__PURE__ */ new Set()), w = J(/* @__PURE__ */ new Set()), T = J(/* @__PURE__ */ new Map()), E = n.filter(([t, n]) => !e(n) && ue(r, n.file) && !i.has(t)), D = new Map(E.map(([e, n]) => [e, br({
1558
+ artifact: t,
1559
1559
  file: n.file,
1560
1560
  version: r[n.file] ?? 0,
1561
1561
  scheme: b,
1562
1562
  w: n.w,
1563
1563
  h: n.h
1564
- })])), O = J(D);
1565
- O.current = D;
1566
- let k = J(f);
1567
- k.current = f;
1568
- let A = J(o);
1569
- A.current = o, K(() => h.subscribe(() => g()), [h]);
1570
- let ee = J(/* @__PURE__ */ new Set());
1564
+ })])), ee = J(D);
1565
+ ee.current = D;
1566
+ let O = J(p);
1567
+ O.current = p;
1568
+ let te = J(o);
1569
+ te.current = o, K(() => h.subscribe(() => g()), [h]);
1570
+ let k = J(/* @__PURE__ */ new Set());
1571
1571
  K(() => {
1572
- for (let e of D.values()) h.has(e) || ee.current.has(e) || (ee.current.add(e), h.load(e));
1572
+ for (let e of D.values()) h.has(e) || k.current.has(e) || (k.current.add(e), h.load(e));
1573
1573
  });
1574
- let te = new Set([...D].filter(([, e]) => h.has(e) && !h.isUnsupported(e)).map(([e]) => e)), ne = E.map(([e, t]) => ({
1574
+ let ne = new Set([...D].filter(([, e]) => h.has(e) && !h.isUnsupported(e)).map(([e]) => e)), A = E.map(([e, t]) => ({
1575
1575
  id: e,
1576
1576
  x: t.x,
1577
1577
  y: t.y,
1578
1578
  w: t.w,
1579
1579
  h: t.h
1580
- })), re = new Set([...D].filter(([, e]) => h.isUnsupported(e) || _.current.has(e)).map(([e]) => e)), ie = o ? [] : c({
1581
- boards: ne,
1580
+ })), re = new Set([...D].filter(([, e]) => h.isUnsupported(e) || _.current.has(e)).map(([e]) => e)), ie = o ? [] : d({
1581
+ boards: A,
1582
1582
  view: a,
1583
1583
  viewport: s,
1584
- snapshots: te,
1584
+ snapshots: ne,
1585
1585
  skip: re
1586
1586
  }), ae = v.update({
1587
- boards: ne,
1587
+ boards: A,
1588
1588
  view: a,
1589
1589
  viewport: s,
1590
- pinned: l,
1591
- snapshots: te,
1590
+ pinned: c,
1591
+ snapshots: ne,
1592
1592
  scaling: o,
1593
- hovered: u,
1594
- hoverPromotes: d,
1593
+ hovered: l,
1594
+ hoverPromotes: u,
1595
1595
  warm: ie
1596
1596
  }), oe = J(a.k);
1597
1597
  o || (oe.current = a.k);
1598
- let se = S(oe.current, y), [le, j] = Y({}), ue = J(/* @__PURE__ */ new Set()), de = J(/* @__PURE__ */ new Set()), fe = J(/* @__PURE__ */ new Set());
1598
+ let se = x(oe.current, y), [ce, le] = Y({}), j = J(/* @__PURE__ */ new Set()), M = J(/* @__PURE__ */ new Set()), N = J(/* @__PURE__ */ new Set());
1599
1599
  K(() => {
1600
1600
  for (let [e, t] of D) {
1601
1601
  let n = ae.get(e);
1602
- if (!te.has(e) || !(n?.tier === "snapshot" || n?.mounted)) continue;
1602
+ if (!ne.has(e) || !(n?.tier === "snapshot" || n?.mounted)) continue;
1603
1603
  let r = `${t}#${h.revision(t)}@${se}`;
1604
- le[e]?.name === r || ue.current.has(r) || fe.current.has(r) || (ue.current.add(r), h.url(t, se).then((t) => {
1605
- ue.current.delete(r), t && de.current.has(t) ? fe.current.add(r) : t && j((n) => n[e]?.name === r ? n : {
1604
+ ce[e]?.name === r || j.current.has(r) || N.current.has(r) || (j.current.add(r), h.url(t, se).then((t) => {
1605
+ j.current.delete(r), t && M.current.has(t) ? N.current.add(r) : t && le((n) => n[e]?.name === r ? n : {
1606
1606
  ...n,
1607
1607
  [e]: {
1608
1608
  name: r,
@@ -1612,24 +1612,24 @@ function Ar({ artifact: e, boards: n, versions: r, pending: i, view: a, scaling:
1612
1612
  }));
1613
1613
  }
1614
1614
  });
1615
- let M = G((e, t) => {
1616
- t.startsWith("blob:") && (de.current.add(t), j((n) => {
1615
+ let de = G((e, t) => {
1616
+ t.startsWith("blob:") && (M.current.add(t), le((n) => {
1617
1617
  if (n[e]?.url !== t) return n;
1618
1618
  let { [e]: r, ...i } = n;
1619
1619
  return i;
1620
1620
  }));
1621
- }, []), pe = q(() => new Map(n.map(([e, t]) => [e, `data:image/svg+xml;charset=utf-8,${encodeURIComponent(mr({
1621
+ }, []), fe = q(() => new Map(n.map(([e, t]) => [e, `data:image/svg+xml;charset=utf-8,${encodeURIComponent(_r({
1622
1622
  id: e,
1623
1623
  title: t.title,
1624
1624
  w: t.w,
1625
1625
  h: t.h
1626
- }))}`])), [n]), N = J([]), P = J(null), me = J(0), F = G(() => {
1627
- if (!(P.current || A.current)) for (; N.current.length;) {
1628
- let e = N.current.shift(), t = x.current.get(e)?.contentWindow, n = O.current.get(e);
1626
+ }))}`])), [n]), pe = J([]), P = J(null), me = J(0), F = G(() => {
1627
+ if (!(P.current || te.current)) for (; pe.current.length;) {
1628
+ let e = pe.current.shift(), t = S.current.get(e)?.contentWindow, n = ee.current.get(e);
1629
1629
  if (!t || !n || h.isUnsupported(n)) continue;
1630
1630
  let r = ++me.current, i = window.setTimeout(() => {
1631
1631
  P.current?.request === r && (_.current.add(n), w.current.add(e), P.current = null, g(), F());
1632
- }, Dr);
1632
+ }, Ar);
1633
1633
  P.current = {
1634
1634
  id: e,
1635
1635
  key: n,
@@ -1649,11 +1649,11 @@ function Ar({ artifact: e, boards: n, versions: r, pending: i, view: a, scaling:
1649
1649
  P.current && window.clearTimeout(P.current.timer);
1650
1650
  }, []), K(() => {
1651
1651
  let e = (e) => {
1652
- w.current.has(e) || (N.current.includes(e) || N.current.push(e), F());
1652
+ w.current.has(e) || (pe.current.includes(e) || pe.current.push(e), F());
1653
1653
  }, t = (t) => {
1654
1654
  let n = t.data?.type;
1655
1655
  if (typeof n != "string" || !n.startsWith("ryugi:board:")) return;
1656
- let r = [...x.current].find(([, e]) => e.contentWindow === t.source)?.[0];
1656
+ let r = [...S.current].find(([, e]) => e.contentWindow === t.source)?.[0];
1657
1657
  if (r) {
1658
1658
  if (n === "ryugi:board:ready") C.current.add(r), v.ready(r), e(r);
1659
1659
  else if (n === "ryugi:board:changed") C.current.has(r) && e(r);
@@ -1667,7 +1667,7 @@ function Ar({ artifact: e, boards: n, versions: r, pending: i, view: a, scaling:
1667
1667
  width: i,
1668
1668
  height: a,
1669
1669
  scale: y
1670
- }, { persist: k.current(r) }) : (h.markUnsupported(e.key), g()), F();
1670
+ }, { persist: O.current(r) }) : (h.markUnsupported(e.key), g()), F();
1671
1671
  }
1672
1672
  }
1673
1673
  };
@@ -1679,11 +1679,11 @@ function Ar({ artifact: e, boards: n, versions: r, pending: i, view: a, scaling:
1679
1679
  y
1680
1680
  ]);
1681
1681
  let L = G((e) => (T.current.has(e) || T.current.set(e, (t) => {
1682
- t ? x.current.set(e, t) : (x.current.delete(e), C.current.delete(e), w.current.delete(e), N.current = N.current.filter((t) => t !== e), P.current?.id === e && (window.clearTimeout(P.current.timer), P.current = null, I.current()));
1683
- }), T.current.get(e)), []), he = G((e) => {
1682
+ t ? S.current.set(e, t) : (S.current.delete(e), C.current.delete(e), w.current.delete(e), pe.current = pe.current.filter((t) => t !== e), P.current?.id === e && (window.clearTimeout(P.current.timer), P.current = null, I.current()));
1683
+ }), T.current.get(e)), []), R = G((e) => {
1684
1684
  C.current.delete(e), w.current.delete(e), v.loaded(e);
1685
- }, [v]), ge = n.filter(([, e]) => t(e)), _e = m({
1686
- boards: ge.map(([e, t]) => ({
1685
+ }, [v]), he = n.filter(([, t]) => e(t)), ge = f({
1686
+ boards: he.map(([e, t]) => ({
1687
1687
  id: e,
1688
1688
  x: t.x,
1689
1689
  y: t.y,
@@ -1693,9 +1693,9 @@ function Ar({ artifact: e, boards: n, versions: r, pending: i, view: a, scaling:
1693
1693
  view: a,
1694
1694
  viewport: s,
1695
1695
  pinned: /* @__PURE__ */ new Set(),
1696
- snapshots: new Set(ge.map(([e]) => e))
1697
- }), ve = /* @__PURE__ */ new Map();
1698
- for (let [e, t] of _e) ve.set(e, {
1696
+ snapshots: new Set(he.map(([e]) => e))
1697
+ }), _e = /* @__PURE__ */ new Map();
1698
+ for (let [e, t] of ge) _e.set(e, {
1699
1699
  tier: t,
1700
1700
  mounted: !1,
1701
1701
  image: null,
@@ -1703,8 +1703,8 @@ function Ar({ artifact: e, boards: n, versions: r, pending: i, view: a, scaling:
1703
1703
  hidden: !1
1704
1704
  });
1705
1705
  for (let [e, t] of ae) {
1706
- let n = D.get(e), r = le[e], i = te.has(e) && r?.name.startsWith(`${n}#`) ? r.url : null, a = t.tier === "empty" ? null : i ?? pe.get(e) ?? null;
1707
- ve.set(e, {
1706
+ let n = D.get(e), r = ce[e], i = ne.has(e) && r?.name.startsWith(`${n}#`) ? r.url : null, a = t.tier === "empty" ? null : i ?? fe.get(e) ?? null;
1707
+ _e.set(e, {
1708
1708
  tier: t.tier,
1709
1709
  mounted: t.mounted,
1710
1710
  image: a,
@@ -1713,16 +1713,16 @@ function Ar({ artifact: e, boards: n, versions: r, pending: i, view: a, scaling:
1713
1713
  });
1714
1714
  }
1715
1715
  return {
1716
- renders: ve,
1716
+ renders: _e,
1717
1717
  frameRef: L,
1718
- loaded: he,
1719
- imageFailed: M
1718
+ loaded: R,
1719
+ imageFailed: de
1720
1720
  };
1721
1721
  }
1722
1722
  //#endregion
1723
1723
  //#region src/viewer/lib/hover-dwell.ts
1724
- var jr = 4;
1725
- function Mr({ dwellMs: e, schedule: t, cancel: n, onChange: r }) {
1724
+ var Pr = 4;
1725
+ function Fr({ dwellMs: e, schedule: t, cancel: n, onChange: r }) {
1726
1726
  let i = null, a = null, o = !1, s, c = () => {
1727
1727
  s !== void 0 && n(s), s = void 0;
1728
1728
  }, l = (e) => {
@@ -1736,7 +1736,7 @@ function Mr({ dwellMs: e, schedule: t, cancel: n, onChange: r }) {
1736
1736
  };
1737
1737
  return {
1738
1738
  move(e, t) {
1739
- e !== a && l(null), e ? i?.board === e && Math.hypot(t.x - i.x, t.y - i.y) < jr || (i = {
1739
+ e !== a && l(null), e ? i?.board === e && Math.hypot(t.x - i.x, t.y - i.y) < Pr || (i = {
1740
1740
  board: e,
1741
1741
  ...t
1742
1742
  }, u()) : (i = null, c());
@@ -1750,17 +1750,17 @@ function Mr({ dwellMs: e, schedule: t, cancel: n, onChange: r }) {
1750
1750
  }
1751
1751
  //#endregion
1752
1752
  //#region src/viewer/hooks/useHoverDwell.ts
1753
- var Nr = {
1753
+ var Ir = {
1754
1754
  x: -1e9,
1755
1755
  y: -1e9
1756
- }, Pr = () => {
1756
+ }, Lr = () => {
1757
1757
  if (typeof location > "u") return 600;
1758
1758
  let e = new URLSearchParams(location.search), t = Number(e.get("hover"));
1759
1759
  return e.has("debug") && t > 0 ? t : 600;
1760
1760
  };
1761
- function Fr({ scaling: e, view: t, inside: n = null, locate: r }) {
1762
- let [, i] = qe((e) => e + 1, 0), [a] = Y(() => Mr({
1763
- dwellMs: Pr(),
1761
+ function Rr({ scaling: e, view: t, inside: n = null, locate: r }) {
1762
+ let [, i] = Xe((e) => e + 1, 0), [a] = Y(() => Fr({
1763
+ dwellMs: Lr(),
1764
1764
  schedule: (e, t) => window.setTimeout(e, t),
1765
1765
  cancel: (e) => window.clearTimeout(e),
1766
1766
  onChange: i
@@ -1783,7 +1783,7 @@ function Fr({ scaling: e, view: t, inside: n = null, locate: r }) {
1783
1783
  });
1784
1784
  }, [a]);
1785
1785
  return K(() => () => a.dispose(), [a]), K(() => a.setScaling(e), [a, e]), K(() => {
1786
- n && (o.current = null, a.move(n, Nr));
1786
+ n && (o.current = null, a.move(n, Ir));
1787
1787
  }, [a, n]), K(() => {
1788
1788
  o.current && !e && c(o.current);
1789
1789
  }, [
@@ -1798,20 +1798,20 @@ function Fr({ scaling: e, view: t, inside: n = null, locate: r }) {
1798
1798
  leave: l
1799
1799
  };
1800
1800
  }
1801
- function Ir(e, t, n) {
1801
+ function zr(e, t, n) {
1802
1802
  let r = [...e.filter((e) => e.id !== t), {
1803
1803
  id: t,
1804
1804
  version: n
1805
1805
  }];
1806
1806
  return r.slice(Math.max(0, r.length - 6));
1807
1807
  }
1808
- function Lr(e, t) {
1808
+ function Br(e, t) {
1809
1809
  let n = e.filter((e) => t.get(e.id) === e.version);
1810
1810
  return n.length === e.length ? e : n;
1811
1811
  }
1812
1812
  //#endregion
1813
1813
  //#region src/viewer/hooks/useKeptBoards.ts
1814
- function Rr(e, t, n = () => !0) {
1814
+ function Vr(e, t, n = () => !0) {
1815
1815
  let [r, i] = Y([]), a = q(() => new Map(e.map(([e, n]) => [e, t[n.file] ?? 0])), [e, t]), o = J(a);
1816
1816
  o.current = a;
1817
1817
  let s = J(n);
@@ -1819,26 +1819,26 @@ function Rr(e, t, n = () => !0) {
1819
1819
  let e = (e) => {
1820
1820
  if (e.data?.type !== "ryugi:board:interacted" || !e.source) return;
1821
1821
  let t = [...document.querySelectorAll("[data-board] iframe")].find((t) => t.contentWindow === e.source)?.closest("[data-board]")?.dataset.board, n = t === void 0 ? void 0 : o.current.get(t);
1822
- t !== void 0 && n !== void 0 && s.current(t) && i((e) => e.at(-1)?.id === t && e.at(-1)?.version === n ? e : Ir(e, t, n));
1822
+ t !== void 0 && n !== void 0 && s.current(t) && i((e) => e.at(-1)?.id === t && e.at(-1)?.version === n ? e : zr(e, t, n));
1823
1823
  };
1824
1824
  return window.addEventListener("message", e), () => window.removeEventListener("message", e);
1825
1825
  }, []);
1826
- let c = Lr(r, a);
1826
+ let c = Br(r, a);
1827
1827
  return K(() => {
1828
1828
  c !== r && i(c);
1829
1829
  }, [c, r]), q(() => new Set(c.map((e) => e.id)), [c]);
1830
1830
  }
1831
1831
  //#endregion
1832
1832
  //#region src/shared/verdicts.ts
1833
- var zr = (e) => e.messages[0]?.at ?? e.statusAt;
1834
- function Br(e, t, n) {
1835
- let r = e.filter((e) => e.anchor.group === t && e.anchor.verdict && e.messages.some((e) => !e.deleted)).sort((e, t) => zr(e) < zr(t) ? -1 : +(zr(e) > zr(t))), i = r.filter((e) => e.anchor.verdict === "reject" && e.status === "open").length, a = r.at(-1);
1833
+ var Hr = (e) => e.messages[0]?.at ?? e.statusAt;
1834
+ function Ur(e, t, n) {
1835
+ let r = e.filter((e) => e.anchor.group === t && e.anchor.verdict && e.messages.some((e) => !e.deleted)).sort((e, t) => Hr(e) < Hr(t) ? -1 : +(Hr(e) > Hr(t))), i = r.filter((e) => e.anchor.verdict === "reject" && e.status === "open").length, a = r.at(-1);
1836
1836
  if (!a) return {
1837
1837
  state: "pending",
1838
1838
  evidenceUpdated: !1,
1839
1839
  rejectThreads: i
1840
1840
  };
1841
- let o = zr(a);
1841
+ let o = Hr(a);
1842
1842
  return n.has(a.id) ? {
1843
1843
  state: "pending",
1844
1844
  at: o,
@@ -1856,11 +1856,11 @@ function Br(e, t, n) {
1856
1856
  rejectThreads: i
1857
1857
  };
1858
1858
  }
1859
- function Vr(e, t, n) {
1859
+ function Wr(e, t, n) {
1860
1860
  return Object.entries(e).filter(([, e]) => e.verify === !0 && e.boards.some((e) => t[e]?.page === n));
1861
1861
  }
1862
- function Hr(e, t, n, r, i) {
1863
- let a = Vr(e, t, n), o = a.map(([e]) => [e, Br(r, e, i).state]), s = o.find(([, e]) => e !== "pass")?.[0];
1862
+ function Gr(e, t, n, r, i) {
1863
+ let a = Wr(e, t, n), o = a.map(([e]) => [e, Ur(r, e, i).state]), s = o.find(([, e]) => e !== "pass")?.[0];
1864
1864
  return {
1865
1865
  passed: o.filter(([, e]) => e === "pass").length,
1866
1866
  total: a.length,
@@ -1869,14 +1869,14 @@ function Hr(e, t, n, r, i) {
1869
1869
  }
1870
1870
  //#endregion
1871
1871
  //#region src/viewer/hooks/useVerdicts.ts
1872
- function Ur({ canvas: e, page: t, threads: n, stale: r, versions: i, comment: a }) {
1873
- let [o, s] = Y(null), c = q(() => e?.groups ?? {}, [e]), l = q(() => e?.boards ?? {}, [e]), u = q(() => Object.fromEntries(Vr(c, l, t).map(([e]) => [e, Br(n, e, r)])), [
1872
+ function Kr({ canvas: e, page: t, threads: n, stale: r, versions: i, comment: a }) {
1873
+ let [o, s] = Y(null), c = q(() => e?.groups ?? {}, [e]), l = q(() => e?.boards ?? {}, [e]), u = q(() => Object.fromEntries(Wr(c, l, t).map(([e]) => [e, Ur(n, e, r)])), [
1874
1874
  c,
1875
1875
  l,
1876
1876
  t,
1877
1877
  n,
1878
1878
  r
1879
- ]), d = q(() => Hr(c, l, t, n, r), [
1879
+ ]), d = q(() => Gr(c, l, t, n, r), [
1880
1880
  c,
1881
1881
  l,
1882
1882
  t,
@@ -1932,8 +1932,8 @@ function Ur({ canvas: e, page: t, threads: n, stale: r, versions: i, comment: a
1932
1932
  }
1933
1933
  //#endregion
1934
1934
  //#region src/viewer/verdicts/RejectComposer.tsx
1935
- function Wr({ group: e, left: t, top: n, onSubmit: r, onCancel: i }) {
1936
- let { t: a } = N();
1935
+ function qr({ group: e, left: t, top: n, onSubmit: r, onCancel: i }) {
1936
+ let { t: a } = F();
1937
1937
  return /* @__PURE__ */ Q("div", {
1938
1938
  "data-chrome": "reject",
1939
1939
  className: "x10l6tqk xk3oba8 xj6ak53 xb3r6kr xixl9f9 x12ilycc x1d5q07e xqfszdh xfifm61 xo2rkog xt0e3qv",
@@ -1959,7 +1959,7 @@ function Wr({ group: e, left: t, top: n, onSubmit: r, onCancel: i }) {
1959
1959
  })
1960
1960
  ]
1961
1961
  }),
1962
- /* @__PURE__ */ Z(Be, {
1962
+ /* @__PURE__ */ Z(Ue, {
1963
1963
  autoFocus: !0,
1964
1964
  placeholder: a("verdict.reasonPlaceholder"),
1965
1965
  onSubmit: r,
@@ -1974,7 +1974,7 @@ function Wr({ group: e, left: t, top: n, onSubmit: r, onCancel: i }) {
1974
1974
  }
1975
1975
  //#endregion
1976
1976
  //#region src/shared/inspector.ts
1977
- var Gr = [
1977
+ var Jr = [
1978
1978
  "width",
1979
1979
  "height",
1980
1980
  "position",
@@ -1991,7 +1991,7 @@ var Gr = [
1991
1991
  "font-size",
1992
1992
  "color",
1993
1993
  "box-shadow"
1994
- ], Kr = "M14.5 3a10.5 10.5 0 1 1-4.2 20.1l-5 1.6c-.9.3-1.7-.5-1.4-1.4l1.6-5A10.5 10.5 0 0 1 14.5 3z", qr = `<svg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'><path d='${Kr}' fill='none' stroke='white' stroke-width='4' stroke-linejoin='round'/><path d='${Kr}' fill='#c65d3b'/><path d='M14.5 9.3v8.4M10.3 13.5h8.4' stroke='white' stroke-width='2.4' stroke-linecap='round'/></svg>`, Jr = `url("data:image/svg+xml,${encodeURIComponent(qr)}") 4 24, crosshair`, Yr = (e) => !!e && typeof e == "object" && !Array.isArray(e), $ = (e, t) => typeof e == "string" && e.length <= t, Xr = (e) => typeof e == "number" && Number.isFinite(e) && Math.abs(e) <= 1e8, Zr = (e) => Number.isSafeInteger(e) && e > 0, Qr = (e) => e === null || Yr(e) && Xr(e.x) && Xr(e.y) && Xr(e.width) && Xr(e.height) && e.width >= 0 && e.height >= 0, $r = (e) => Gr.some((t) => t === e), ei = /* @__PURE__ */ new Set([
1994
+ ], Yr = "M14.5 3a10.5 10.5 0 1 1-4.2 20.1l-5 1.6c-.9.3-1.7-.5-1.4-1.4l1.6-5A10.5 10.5 0 0 1 14.5 3z", Xr = `<svg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'><path d='${Yr}' fill='none' stroke='white' stroke-width='4' stroke-linejoin='round'/><path d='${Yr}' fill='#c65d3b'/><path d='M14.5 9.3v8.4M10.3 13.5h8.4' stroke='white' stroke-width='2.4' stroke-linecap='round'/></svg>`, Zr = `url("data:image/svg+xml,${encodeURIComponent(Xr)}") 4 24, crosshair`, Qr = (e) => !!e && typeof e == "object" && !Array.isArray(e), $ = (e, t) => typeof e == "string" && e.length <= t, $r = (e) => typeof e == "number" && Number.isFinite(e) && Math.abs(e) <= 1e8, ei = (e) => Number.isSafeInteger(e) && e > 0, ti = (e) => e === null || Qr(e) && $r(e.x) && $r(e.y) && $r(e.width) && $r(e.height) && e.width >= 0 && e.height >= 0, ni = (e) => Jr.some((t) => t === e), ri = /* @__PURE__ */ new Set([
1995
1995
  "Frame",
1996
1996
  "Column",
1997
1997
  "Row",
@@ -2001,28 +2001,28 @@ var Gr = [
2001
2001
  "Image",
2002
2002
  "Button"
2003
2003
  ]);
2004
- function ti(e) {
2004
+ function ii(e) {
2005
2005
  if (!Array.isArray(e) || e.length > 2500) return !1;
2006
2006
  let t = /* @__PURE__ */ new Map();
2007
2007
  for (let n of e) {
2008
- if (!Yr(n) || !Zr(n.id) || t.has(n.id) || !$(n.name, 100) || !$(n.tag, 80) || !$(n.selector, 200) || !$(n.path, 4e3) || !ei.has(n.kind) || !Array.isArray(n.children) || n.children.length > e.length || n.children.some((e) => !Zr(e)) || new Set(n.children).size !== n.children.length || (t.size === 0 ? n.parentId !== null : !Zr(n.parentId) || !t.has(n.parentId))) return !1;
2008
+ if (!Qr(n) || !ei(n.id) || t.has(n.id) || !$(n.name, 100) || !$(n.tag, 80) || !$(n.selector, 200) || !$(n.path, 4e3) || !ri.has(n.kind) || !Array.isArray(n.children) || n.children.length > e.length || n.children.some((e) => !ei(e)) || new Set(n.children).size !== n.children.length || (t.size === 0 ? n.parentId !== null : !ei(n.parentId) || !t.has(n.parentId))) return !1;
2009
2009
  t.set(n.id, n);
2010
2010
  }
2011
2011
  for (let e of t.values()) if (e.children.some((n) => t.get(n)?.parentId !== e.id) || e.parentId !== null && !t.get(e.parentId)?.children.includes(e.id)) return !1;
2012
2012
  return !0;
2013
2013
  }
2014
- function ni(e) {
2015
- if (!Yr(e) || !$(e.session, 128) || !e.session || !$(e.connection, 128) || !e.connection) return null;
2014
+ function ai(e) {
2015
+ if (!Qr(e) || !$(e.session, 128) || !e.session || !$(e.connection, 128) || !e.connection) return null;
2016
2016
  let t = !1;
2017
2017
  switch (e.type) {
2018
2018
  case "ryugi:inspect:tree":
2019
- t = typeof e.truncated == "boolean" && ti(e.nodes);
2019
+ t = typeof e.truncated == "boolean" && ii(e.nodes);
2020
2020
  break;
2021
2021
  case "ryugi:inspect:hover":
2022
- t = Qr(e.rect) && (e.id === void 0 || e.id === null || Zr(e.id));
2022
+ t = ti(e.rect) && (e.id === void 0 || e.id === null || ei(e.id));
2023
2023
  break;
2024
2024
  case "ryugi:inspect:rect":
2025
- t = Zr(e.id) && e.rect !== null && Qr(e.rect);
2025
+ t = ei(e.id) && e.rect !== null && ti(e.rect);
2026
2026
  break;
2027
2027
  case "ryugi:inspect:selection": {
2028
2028
  if (![
@@ -2032,18 +2032,18 @@ function ni(e) {
2032
2032
  "primary"
2033
2033
  ].includes(e.reason) || e.toggle !== void 0 && typeof e.toggle != "boolean") break;
2034
2034
  let n = e.selection;
2035
- t = n === null || Yr(n) && Zr(n.id) && $(n.name, 100) && $(n.tag, 80) && $(n.selector, 200) && n.rect !== null && Qr(n.rect) && $(n.html, 2e4) && [
2035
+ t = n === null || Qr(n) && ei(n.id) && $(n.name, 100) && $(n.tag, 80) && $(n.selector, 200) && n.rect !== null && ti(n.rect) && $(n.html, 2e4) && [
2036
2036
  "fixed",
2037
2037
  "fill",
2038
2038
  "hug"
2039
- ].includes(n.widthMode) && ["fixed", "hug"].includes(n.heightMode) && Yr(n.css) && Gr.every((e) => $(n.css[e], 2e3));
2039
+ ].includes(n.widthMode) && ["fixed", "hug"].includes(n.heightMode) && Qr(n.css) && Jr.every((e) => $(n.css[e], 2e3));
2040
2040
  break;
2041
2041
  }
2042
2042
  case "ryugi:inspect:targets":
2043
- t = Zr(e.request) && Array.isArray(e.targets) && e.targets.length <= 2500 && new Set(e.targets.map((e) => Yr(e) ? e.id : null)).size === e.targets.length && e.targets.every((e) => Yr(e) && Zr(e.id) && $(e.name, 100) && e.rect !== null && Qr(e.rect));
2043
+ t = ei(e.request) && Array.isArray(e.targets) && e.targets.length <= 2500 && new Set(e.targets.map((e) => Qr(e) ? e.id : null)).size === e.targets.length && e.targets.every((e) => Qr(e) && ei(e.id) && $(e.name, 100) && e.rect !== null && ti(e.rect));
2044
2044
  break;
2045
2045
  case "ryugi:inspect:details":
2046
- t = Zr(e.request) && Array.isArray(e.nodes) && e.nodes.length <= 2500 && e.nodes.every((e) => Yr(e) && Zr(e.id) && $(e.text, 200) && $(e.html, 2e3));
2046
+ t = ei(e.request) && Array.isArray(e.nodes) && e.nodes.length <= 2500 && e.nodes.every((e) => Qr(e) && ei(e.id) && $(e.text, 200) && $(e.html, 2e3));
2047
2047
  break;
2048
2048
  case "ryugi:inspect:drag":
2049
2049
  t = [
@@ -2051,16 +2051,16 @@ function ni(e) {
2051
2051
  "move",
2052
2052
  "end",
2053
2053
  "cancel"
2054
- ].includes(e.phase) && Xr(e.x) && Xr(e.y) && typeof e.append == "boolean" && (e.id === void 0 || Zr(e.id));
2054
+ ].includes(e.phase) && $r(e.x) && $r(e.y) && typeof e.append == "boolean" && (e.id === void 0 || ei(e.id));
2055
2055
  break;
2056
2056
  case "ryugi:inspect:tweaks":
2057
- t = Array.isArray(e.tweaks) && e.tweaks.length <= 2500 && e.tweaks.every((e) => Yr(e) && Zr(e.id) && $(e.name, 200) && $r(e.property) && $(e.from, 2e3) && $(e.value, 300));
2057
+ t = Array.isArray(e.tweaks) && e.tweaks.length <= 2500 && e.tweaks.every((e) => Qr(e) && ei(e.id) && $(e.name, 200) && ni(e.property) && $(e.from, 2e3) && $(e.value, 300));
2058
2058
  break;
2059
2059
  case "ryugi:inspect:wheel":
2060
- t = Xr(e.deltaX) && Xr(e.deltaY) && Xr(e.x) && Xr(e.y) && typeof e.zoom == "boolean";
2060
+ t = $r(e.deltaX) && $r(e.deltaY) && $r(e.x) && $r(e.y) && typeof e.zoom == "boolean";
2061
2061
  break;
2062
2062
  case "ryugi:inspect:pan":
2063
- t = Xr(e.deltaX) && Xr(e.deltaY);
2063
+ t = $r(e.deltaX) && $r(e.deltaY);
2064
2064
  break;
2065
2065
  case "ryugi:inspect:key": t = $(e.code, 32) && $(e.key, 32) && [
2066
2066
  "down",
@@ -2074,7 +2074,7 @@ function ni(e) {
2074
2074
  }
2075
2075
  //#endregion
2076
2076
  //#region src/viewer/hooks/useInspector.ts
2077
- function ri(e) {
2077
+ function oi(e) {
2078
2078
  let [t, n] = Y({
2079
2079
  frames: {},
2080
2080
  selection: null,
@@ -2151,7 +2151,7 @@ function ri(e) {
2151
2151
  let e = (e) => {
2152
2152
  let t = Array.from(i.current).find(([, t]) => t.element.contentWindow === e.source);
2153
2153
  if (!t) return;
2154
- let [a, o] = t, l = ni(e.data);
2154
+ let [a, o] = t, l = ai(e.data);
2155
2155
  if (!(!l || l.connection !== o.connection || o.session !== null && o.session !== l.session) && (r.current.options.enabled || l.type === "ryugi:inspect:tweaks") && !(r.current.options.playing.has(a) && l.type !== "ryugi:inspect:tweaks")) {
2156
2156
  if (l.type === "ryugi:inspect:tree") {
2157
2157
  o.session = l.session;
@@ -2419,7 +2419,7 @@ function ri(e) {
2419
2419
  }
2420
2420
  //#endregion
2421
2421
  //#region src/viewer/hooks/useMarqueeSelection.ts
2422
- function ii(e, t, n, r) {
2422
+ function si(e, t, n, r) {
2423
2423
  let i = J(null), [a, o] = Y(!1), [s, c] = Y(null), { cancelDrag: l } = t, u = G(() => {
2424
2424
  i.current = null, c(null), o(!1), l();
2425
2425
  }, [l]);
@@ -2467,7 +2467,7 @@ function ii(e, t, n, r) {
2467
2467
  }
2468
2468
  //#endregion
2469
2469
  //#region src/viewer/lib/selection.ts
2470
- function ai({ boards: e, frames: t, targets: n, details: r }) {
2470
+ function ci({ boards: e, frames: t, targets: n, details: r }) {
2471
2471
  let i = /* @__PURE__ */ new Map();
2472
2472
  for (let [n, r] of Object.entries(t)) {
2473
2473
  let t = e[n];
@@ -2509,15 +2509,15 @@ function ai({ boards: e, frames: t, targets: n, details: r }) {
2509
2509
  nodes: [...i.values()]
2510
2510
  };
2511
2511
  }
2512
- var oi = (e) => e.id.length <= A.id && e.board.length <= A.board && e.file.length <= A.file && e.tag.length <= A.tag && e.path.length <= A.path && e.name.length <= A.name, si = (e) => new TextEncoder().encode(JSON.stringify(e)).length;
2513
- function ci(e, t = se) {
2514
- let n = e.selected.filter((e) => oi(e) && e.text.length <= A.text && e.html.length <= A.html), r = e.tweaks.filter((e) => oi(e) && e.from.length <= A.from && e.value.length <= A.value), i = {
2512
+ var li = (e) => e.id.length <= A.id && e.board.length <= A.board && e.file.length <= A.file && e.tag.length <= A.tag && e.path.length <= A.path && e.name.length <= A.name, ui = (e) => new TextEncoder().encode(JSON.stringify(e)).length;
2513
+ function di(e, t = j) {
2514
+ let n = e.selected.filter((e) => li(e) && e.text.length <= A.text && e.html.length <= A.html), r = e.tweaks.filter((e) => li(e) && e.from.length <= A.from && e.value.length <= A.value), i = {
2515
2515
  ...e,
2516
2516
  selected: n,
2517
2517
  tweaks: r,
2518
- nodes: e.nodes.filter(oi).slice(0, E)
2518
+ nodes: e.nodes.filter(li).slice(0, O)
2519
2519
  };
2520
- for (let e = si(i); e > t && i.nodes.length; e = si(i)) i = {
2520
+ for (let e = ui(i); e > t && i.nodes.length; e = ui(i)) i = {
2521
2521
  ...i,
2522
2522
  nodes: i.nodes.slice(0, Math.floor(i.nodes.length * Math.min(.95, t / e)))
2523
2523
  };
@@ -2525,9 +2525,9 @@ function ci(e, t = se) {
2525
2525
  }
2526
2526
  //#endregion
2527
2527
  //#region src/viewer/hooks/useSelectionSync.ts
2528
- var li = crypto.randomUUID();
2529
- function ui({ artifact: e, boards: t, live: n, inspector: r, send: i }) {
2530
- let a = J(0), { frames: o, selectedTargets: s, details: c, revision: l } = r, u = JSON.stringify(s.map(({ boardId: e, id: t }) => [e, t])), d = q(() => JSON.parse(u), [u]), f = q(() => ai({
2528
+ var fi = crypto.randomUUID();
2529
+ function pi({ artifact: e, boards: t, live: n, inspector: r, send: i }) {
2530
+ let a = J(0), { frames: o, selectedTargets: s, details: c, revision: l } = r, u = JSON.stringify(s.map(({ boardId: e, id: t }) => [e, t])), d = q(() => JSON.parse(u), [u]), f = q(() => ci({
2531
2531
  boards: t ?? {},
2532
2532
  frames: o,
2533
2533
  targets: d.map(([e, t]) => ({
@@ -2545,10 +2545,10 @@ function ui({ artifact: e, boards: t, live: n, inspector: r, send: i }) {
2545
2545
  if (!e || !i || !n) return;
2546
2546
  let t = setTimeout(() => {
2547
2547
  let t = l !== a.current;
2548
- a.current = l, i(ci({
2548
+ a.current = l, i(di({
2549
2549
  type: "selection",
2550
2550
  artifact: e,
2551
- tab: li,
2551
+ tab: fi,
2552
2552
  human: t,
2553
2553
  ...f
2554
2554
  }));
@@ -2564,12 +2564,12 @@ function ui({ artifact: e, boards: t, live: n, inspector: r, send: i }) {
2564
2564
  }
2565
2565
  //#endregion
2566
2566
  //#region src/viewer/hooks/usePanZoom.ts
2567
- var di = {
2567
+ var mi = {
2568
2568
  top: 64,
2569
2569
  right: 24,
2570
2570
  bottom: 24,
2571
2571
  left: 24
2572
- }, fi = .01, pi = 420, mi = 150, hi = 100, gi = f(.2, 0, 0, 1), _i = () => typeof matchMedia == "function" && matchMedia("(prefers-reduced-motion: reduce)").matches, vi = `[data-chrome]${[
2572
+ }, hi = .01, gi = 420, _i = 150, vi = 100, yi = E(.2, 0, 0, 1), bi = () => typeof matchMedia == "function" && matchMedia("(prefers-reduced-motion: reduce)").matches, xi = `[data-chrome]${[
2573
2573
  "board-label",
2574
2574
  "group-label",
2575
2575
  "video-controls",
@@ -2577,62 +2577,62 @@ var di = {
2577
2577
  "reject",
2578
2578
  "parameters"
2579
2579
  ].map((e) => `:not([data-chrome="${e}"])`).join("")}`;
2580
- function yi(e, t, n, r) {
2580
+ function Si(e, t, n, r) {
2581
2581
  for (let i = e; i && i !== t; i = i.parentElement) {
2582
2582
  let { overflowX: e, overflowY: t } = getComputedStyle(i);
2583
2583
  if (r && /auto|scroll/.test(t) && i.scrollHeight > i.clientHeight || n && /auto|scroll/.test(e) && i.scrollWidth > i.clientWidth) return !0;
2584
2584
  }
2585
2585
  return !1;
2586
2586
  }
2587
- function bi(t) {
2588
- let n = J(null), [i, a] = Y({
2587
+ function Ci(e) {
2588
+ let t = J(null), [i, s] = Y({
2589
2589
  x: 0,
2590
2590
  y: 0,
2591
2591
  k: .5
2592
- }), [o, s] = Y(!1), [c, l] = Y(!1), u = J(null), f = J(/* @__PURE__ */ new Map()), p = J(i);
2593
- p.current = i;
2594
- let m = J(null), h = G(() => {
2595
- m.current !== null && cancelAnimationFrame(m.current), m.current = null;
2592
+ }), [c, l] = Y(!1), [u, d] = Y(!1), f = J(null), p = J(/* @__PURE__ */ new Map()), m = J(i);
2593
+ m.current = i;
2594
+ let h = J(null), g = G(() => {
2595
+ h.current !== null && cancelAnimationFrame(h.current), h.current = null;
2596
2596
  }, []);
2597
- K(() => h, [h]);
2598
- let [g, _] = Y(!1), v = J(i.k), y = J(-Infinity), b = J(void 0);
2599
- Ke(() => {
2600
- if (i.k === v.current) return;
2601
- v.current = i.k;
2602
- let e = Date.now(), t = e - y.current < hi;
2603
- y.current = e, (t || b.current !== void 0) && (_(!0), clearTimeout(b.current), b.current = setTimeout(() => {
2604
- b.current = void 0, _(!1);
2605
- }, mi));
2606
- }, [i.k]), K(() => () => clearTimeout(b.current), []);
2607
- let [x, S] = Y(() => ({
2597
+ K(() => g, [g]);
2598
+ let [_, v] = Y(!1), y = J(i.k), b = J(-Infinity), x = J(void 0);
2599
+ Ye(() => {
2600
+ if (i.k === y.current) return;
2601
+ y.current = i.k;
2602
+ let e = Date.now(), t = e - b.current < vi;
2603
+ b.current = e, (t || x.current !== void 0) && (v(!0), clearTimeout(x.current), x.current = setTimeout(() => {
2604
+ x.current = void 0, v(!1);
2605
+ }, _i));
2606
+ }, [i.k]), K(() => () => clearTimeout(x.current), []);
2607
+ let [S, C] = Y(() => ({
2608
2608
  width: typeof innerWidth == "number" ? innerWidth : 0,
2609
2609
  height: typeof innerHeight == "number" ? innerHeight : 0
2610
2610
  }));
2611
2611
  K(() => {
2612
- let e = n.current;
2612
+ let e = t.current;
2613
2613
  if (!e || typeof ResizeObserver != "function") return;
2614
- let t = new ResizeObserver(() => S((t) => t.width === e.clientWidth && t.height === e.clientHeight ? t : {
2614
+ let n = new ResizeObserver(() => C((t) => t.width === e.clientWidth && t.height === e.clientHeight ? t : {
2615
2615
  width: e.clientWidth,
2616
2616
  height: e.clientHeight
2617
2617
  }));
2618
- return t.observe(e), () => t.disconnect();
2618
+ return n.observe(e), () => n.disconnect();
2619
2619
  }, []);
2620
- let C = G((e, t) => a((n) => ({
2620
+ let w = G((e, t) => s((n) => ({
2621
2621
  ...n,
2622
2622
  x: n.x + e,
2623
2623
  y: n.y + t
2624
- })), []), E = G((t) => {
2625
- t.zoom ? a((n) => e(n, Math.exp(-t.deltaY * fi), t.x, t.y)) : C(-t.deltaX, -t.deltaY);
2626
- }, [C]);
2624
+ })), []), T = G((e) => {
2625
+ e.zoom ? s((t) => r(t, Math.exp(-e.deltaY * hi), e.x, e.y)) : w(-e.deltaX, -e.deltaY);
2626
+ }, [w]);
2627
2627
  K(() => {
2628
- let e = n.current;
2628
+ let e = t.current;
2629
2629
  if (!e) return;
2630
- let t = (t) => {
2630
+ let n = (t) => {
2631
2631
  let n = t.target, r = t.ctrlKey || t.metaKey;
2632
- if (n?.closest?.(vi) || !r && yi(n, e, t.deltaX, t.deltaY)) return;
2633
- t.preventDefault(), h();
2632
+ if (n?.closest?.(xi) || !r && Si(n, e, t.deltaX, t.deltaY)) return;
2633
+ t.preventDefault(), g();
2634
2634
  let i = e.getBoundingClientRect(), a = t.deltaMode === 1 ? 16 : t.deltaMode === 2 ? e.clientHeight : 1;
2635
- E({
2635
+ T({
2636
2636
  deltaX: t.deltaX * a,
2637
2637
  deltaY: t.deltaY * a,
2638
2638
  x: t.clientX - i.left,
@@ -2642,110 +2642,110 @@ function bi(t) {
2642
2642
  }, r = (e) => {
2643
2643
  e.ctrlKey && e.preventDefault();
2644
2644
  };
2645
- return e.addEventListener("wheel", t, { passive: !1 }), window.addEventListener("wheel", r, { passive: !1 }), () => {
2646
- e.removeEventListener("wheel", t), window.removeEventListener("wheel", r);
2645
+ return e.addEventListener("wheel", n, { passive: !1 }), window.addEventListener("wheel", r, { passive: !1 }), () => {
2646
+ e.removeEventListener("wheel", n), window.removeEventListener("wheel", r);
2647
2647
  };
2648
- }, [E, h]), K(() => {
2648
+ }, [T, g]), K(() => {
2649
2649
  let e = (e) => e.target?.closest?.("input, textarea, select, [contenteditable], [data-chrome]"), t = (t) => {
2650
- t.code === "Space" && !e(t) && (t.preventDefault(), s(!0));
2650
+ t.code === "Space" && !e(t) && (t.preventDefault(), l(!0));
2651
2651
  }, n = (e) => {
2652
- e.code === "Space" && s(!1);
2653
- }, r = () => s(!1);
2652
+ e.code === "Space" && l(!1);
2653
+ }, r = () => l(!1);
2654
2654
  return window.addEventListener("keydown", t), window.addEventListener("keyup", n), window.addEventListener("blur", r), () => {
2655
2655
  window.removeEventListener("keydown", t), window.removeEventListener("keyup", n), window.removeEventListener("blur", r);
2656
2656
  };
2657
2657
  }, []);
2658
- let D = t === "hand" || o, O = G((e) => {
2658
+ let E = e === "hand" || c, D = G((e) => {
2659
2659
  let t = e.pointerType === "touch", n = e.button === 1;
2660
- (t || (D || n) && (e.button === 0 || n)) && e.currentTarget.contains(e.target) && (e.target.closest("[data-chrome]") || (h(), e.currentTarget.setPointerCapture(e.pointerId), u.current = {
2660
+ (t || (E || n) && (e.button === 0 || n)) && e.currentTarget.contains(e.target) && (e.target.closest("[data-chrome]") || (g(), e.currentTarget.setPointerCapture(e.pointerId), f.current = {
2661
2661
  x: e.clientX,
2662
2662
  y: e.clientY
2663
- }, t && f.current.set(e.pointerId, {
2663
+ }, t && p.current.set(e.pointerId, {
2664
2664
  x: e.clientX,
2665
2665
  y: e.clientY
2666
- }), l(!0)));
2667
- }, [D, h]), k = G((e) => {
2668
- if (e.pointerType === "touch" && !f.current.has(e.pointerId)) return;
2669
- if (f.current.has(e.pointerId)) {
2670
- let t = [...f.current.values()];
2671
- f.current.set(e.pointerId, {
2666
+ }), d(!0)));
2667
+ }, [E, g]), O = G((e) => {
2668
+ if (e.pointerType === "touch" && !p.current.has(e.pointerId)) return;
2669
+ if (p.current.has(e.pointerId)) {
2670
+ let t = [...p.current.values()];
2671
+ p.current.set(e.pointerId, {
2672
2672
  x: e.clientX,
2673
2673
  y: e.clientY
2674
2674
  });
2675
- let n = [...f.current.values()];
2675
+ let n = [...p.current.values()];
2676
2676
  if (t.length >= 2) {
2677
- a((e) => T(e, [t[0], t[1]], [n[0], n[1]]));
2677
+ s((e) => a(e, [t[0], t[1]], [n[0], n[1]]));
2678
2678
  return;
2679
2679
  }
2680
2680
  }
2681
- let t = u.current;
2682
- t && (u.current = {
2681
+ let t = f.current;
2682
+ t && (f.current = {
2683
2683
  x: e.clientX,
2684
2684
  y: e.clientY
2685
- }, a((n) => ({
2685
+ }, s((n) => ({
2686
2686
  ...n,
2687
2687
  x: n.x + e.clientX - t.x,
2688
2688
  y: n.y + e.clientY - t.y
2689
2689
  })));
2690
- }, []), A = G((e) => {
2691
- e ? f.current.delete(e.pointerId) : f.current.clear();
2692
- let t = [...f.current.values()][0];
2693
- u.current = t ? { ...t } : null, t || l(!1);
2694
- }, []), ee = () => {
2695
- let e = n.current;
2690
+ }, []), te = G((e) => {
2691
+ e ? p.current.delete(e.pointerId) : p.current.clear();
2692
+ let t = [...p.current.values()][0];
2693
+ f.current = t ? { ...t } : null, t || d(!1);
2694
+ }, []), k = () => {
2695
+ let e = t.current;
2696
2696
  return {
2697
2697
  cx: (e?.clientWidth ?? 0) / 2,
2698
2698
  cy: (e?.clientHeight ?? 0) / 2
2699
2699
  };
2700
2700
  };
2701
2701
  return {
2702
- viewportRef: n,
2702
+ viewportRef: t,
2703
2703
  view: i,
2704
- scaling: g,
2705
- size: x,
2706
- place: a,
2707
- fit: G((e, t = di, i = {}) => {
2708
- let o = n.current;
2709
- if (!o || !e) return;
2710
- let s = d(e, {
2711
- width: o.clientWidth,
2712
- height: o.clientHeight
2713
- }, t);
2714
- if (h(), !i.animate || _i()) {
2715
- a(s);
2704
+ scaling: _,
2705
+ size: S,
2706
+ place: s,
2707
+ fit: G((e, n = mi, r = {}) => {
2708
+ let i = t.current;
2709
+ if (!i || !e) return;
2710
+ let a = ee(e, {
2711
+ width: i.clientWidth,
2712
+ height: i.clientHeight
2713
+ }, n);
2714
+ if (g(), !r.animate || bi()) {
2715
+ s(a);
2716
2716
  return;
2717
2717
  }
2718
- let c = p.current, l = performance.now(), u = () => {
2719
- let e = Math.min(1, (performance.now() - l) / pi);
2720
- a(e === 1 ? s : r(c, s, gi(e))), m.current = e === 1 ? null : requestAnimationFrame(u);
2718
+ let c = m.current, l = performance.now(), u = () => {
2719
+ let e = Math.min(1, (performance.now() - l) / gi);
2720
+ s(e === 1 ? a : o(c, a, yi(e))), h.current = e === 1 ? null : requestAnimationFrame(u);
2721
2721
  };
2722
- m.current = requestAnimationFrame(u);
2723
- }, [h]),
2724
- zoomBy: G((t) => {
2725
- let { cx: n, cy: r } = ee();
2726
- a((i) => e(i, t, n, r));
2722
+ h.current = requestAnimationFrame(u);
2723
+ }, [g]),
2724
+ zoomBy: G((e) => {
2725
+ let { cx: t, cy: n } = k();
2726
+ s((i) => r(i, e, t, n));
2727
2727
  }, []),
2728
2728
  zoomTo: G((e) => {
2729
- let { cx: t, cy: n } = ee();
2730
- a((r) => w(r, e, t, n));
2729
+ let { cx: t, cy: r } = k();
2730
+ s((i) => n(i, e, t, r));
2731
2731
  }, []),
2732
- panBy: C,
2733
- wheelAt: E,
2734
- panning: D,
2735
- setSpaceHeld: s,
2736
- cursor: c ? "grabbing" : D ? "grab" : t === "comment" ? Jr : "default",
2737
- hand: c ? "pinch" : D ? "open" : null,
2732
+ panBy: w,
2733
+ wheelAt: T,
2734
+ panning: E,
2735
+ setSpaceHeld: l,
2736
+ cursor: u ? "grabbing" : E ? "grab" : e === "comment" ? Zr : "default",
2737
+ hand: u ? "pinch" : E ? "open" : null,
2738
2738
  handlers: {
2739
- onPointerDown: O,
2740
- onPointerMove: k,
2741
- onPointerUp: A,
2742
- onPointerCancel: A
2739
+ onPointerDown: D,
2740
+ onPointerMove: O,
2741
+ onPointerUp: te,
2742
+ onPointerCancel: te
2743
2743
  }
2744
2744
  };
2745
2745
  }
2746
2746
  //#endregion
2747
2747
  //#region src/viewer/inspector/InspectionOutline.tsx
2748
- function xi({ board: e, rect: t, view: n, name: r, nodeId: i, selected: a }) {
2748
+ function wi({ board: e, rect: t, view: n, name: r, nodeId: i, selected: a }) {
2749
2749
  return t.width <= 0 || t.height <= 0 ? null : /* @__PURE__ */ Q("div", {
2750
2750
  className: `ri-outline${a ? " ri-outline-selected" : ""}`,
2751
2751
  "aria-hidden": "true",
@@ -2780,30 +2780,30 @@ function xi({ board: e, rect: t, view: n, name: r, nodeId: i, selected: a }) {
2780
2780
  }
2781
2781
  //#endregion
2782
2782
  //#region src/viewer/inspector/Layers.tsx
2783
- var Si = {
2784
- Frame: Nt,
2785
- Column: Ot,
2786
- Row: Gt,
2787
- Grid: Pt,
2788
- Title: Jt,
2789
- Text: Jt,
2790
- Image: It,
2791
- Button: Vt
2792
- }, Ci = (e, t, n) => `${encodeURIComponent(e)}:${encodeURIComponent(t)}:${n}`;
2793
- function wi({ boards: e, frames: t, selection: n, targets: r, playing: i, select: a, hoverNode: o }) {
2783
+ var Ti = {
2784
+ Frame: It,
2785
+ Column: jt,
2786
+ Row: Jt,
2787
+ Grid: Lt,
2788
+ Title: Zt,
2789
+ Text: Zt,
2790
+ Image: zt,
2791
+ Button: Wt
2792
+ }, Ei = (e, t, n) => `${encodeURIComponent(e)}:${encodeURIComponent(t)}:${n}`;
2793
+ function Di({ boards: e, frames: t, selection: n, targets: r, playing: i, select: a, hoverNode: o }) {
2794
2794
  let [s, c] = Y([]), l = J(null), u = J(null), d = J(!1), { treeData: f, byKey: p } = q(() => {
2795
2795
  let n = /* @__PURE__ */ new Map(), r = [];
2796
2796
  for (let [a, o] of e) {
2797
2797
  let e = t[a];
2798
2798
  if (!e?.nodes[0]) continue;
2799
2799
  let s = new Map(e.nodes.map((e) => [e.id, e])), c = i.has(a), l = (t, r) => {
2800
- let i = Ci(a, e.session, t.id);
2800
+ let i = Ei(a, e.session, t.id);
2801
2801
  n.set(i, {
2802
2802
  boardId: a,
2803
2803
  node: t,
2804
2804
  parentKey: r
2805
2805
  });
2806
- let u = r === null ? "Frame" : t.kind, d = r === null ? o.title || a : t.name, f = Si[u];
2806
+ let u = r === null ? "Frame" : t.kind, d = r === null ? o.title || a : t.name, f = Ti[u];
2807
2807
  return {
2808
2808
  key: i,
2809
2809
  disabled: c,
@@ -2817,7 +2817,7 @@ function wi({ boards: e, frames: t, selection: n, targets: r, playing: i, select
2817
2817
  title: `${t.tag} · ${d || t.selector}`,
2818
2818
  children: [/* @__PURE__ */ Z("span", {
2819
2819
  className: "ri-layer-kind",
2820
- children: R(`inspector.kind.${u}`)
2820
+ children: V(`inspector.kind.${u}`)
2821
2821
  }), /* @__PURE__ */ Z("span", {
2822
2822
  className: "ri-layer-name",
2823
2823
  children: d ? `“${d}”` : `<${t.tag}>`
@@ -2829,7 +2829,7 @@ function wi({ boards: e, frames: t, selection: n, targets: r, playing: i, select
2829
2829
  }),
2830
2830
  c && /* @__PURE__ */ Z("span", {
2831
2831
  className: "ri-playing",
2832
- children: R("inspector.playing")
2832
+ children: V("inspector.playing")
2833
2833
  })
2834
2834
  ] }),
2835
2835
  children: t.children.flatMap((e) => {
@@ -2848,7 +2848,7 @@ function wi({ boards: e, frames: t, selection: n, targets: r, playing: i, select
2848
2848
  e,
2849
2849
  t,
2850
2850
  i
2851
- ]), m = n && t[n.boardId] ? Ci(n.boardId, t[n.boardId].session, n.node.id) : null, h = r ? r.flatMap((e) => t[e.boardId] ? [Ci(e.boardId, t[e.boardId].session, e.id)] : []) : m ? [m] : [], g = [], _ = m ? p.get(m)?.parentKey : null;
2851
+ ]), m = n && t[n.boardId] ? Ei(n.boardId, t[n.boardId].session, n.node.id) : null, h = r ? r.flatMap((e) => t[e.boardId] ? [Ei(e.boardId, t[e.boardId].session, e.id)] : []) : m ? [m] : [], g = [], _ = m ? p.get(m)?.parentKey : null;
2852
2852
  for (; _;) g.push(_), _ = p.get(_)?.parentKey;
2853
2853
  let v = [m, ...g].filter((e) => !!e && !!p.get(e)?.node.children.length).join("|");
2854
2854
  K(() => {
@@ -2862,13 +2862,13 @@ function wi({ boards: e, frames: t, selection: n, targets: r, playing: i, select
2862
2862
  return /* @__PURE__ */ Q(X, { children: [
2863
2863
  /* @__PURE__ */ Q("div", {
2864
2864
  className: "ri-layer-heading",
2865
- children: [/* @__PURE__ */ Z("span", { children: R("inspector.layers") }), /* @__PURE__ */ Z("span", { children: b ? R("inspector.elements", { count: b }) : R("common.loading") })]
2865
+ children: [/* @__PURE__ */ Z("span", { children: V("inspector.layers") }), /* @__PURE__ */ Z("span", { children: b ? V("inspector.elements", { count: b }) : V("common.loading") })]
2866
2866
  }),
2867
2867
  /* @__PURE__ */ Q("div", {
2868
2868
  ref: l,
2869
2869
  className: "ri-layers",
2870
2870
  role: "region",
2871
- "aria-label": R("inspector.domLayers"),
2871
+ "aria-label": V("inspector.domLayers"),
2872
2872
  onClickCapture: (e) => {
2873
2873
  d.current = e.shiftKey || e.metaKey || e.ctrlKey;
2874
2874
  },
@@ -2885,7 +2885,7 @@ function wi({ boards: e, frames: t, selection: n, targets: r, playing: i, select
2885
2885
  let e = u.current ? p.get(u.current) : null;
2886
2886
  e && o(e.boardId, null), u.current = null;
2887
2887
  },
2888
- children: [/* @__PURE__ */ Z(mt, {
2888
+ children: [/* @__PURE__ */ Z(_t, {
2889
2889
  treeData: f,
2890
2890
  size: "small",
2891
2891
  multiple: !0,
@@ -2915,26 +2915,26 @@ function wi({ boards: e, frames: t, selection: n, targets: r, playing: i, select
2915
2915
  }
2916
2916
  }), !f.length && /* @__PURE__ */ Z("p", {
2917
2917
  className: "ri-hint",
2918
- children: R("inspector.waitingBoard")
2918
+ children: V("inspector.waitingBoard")
2919
2919
  })]
2920
2920
  }),
2921
2921
  Object.values(t).some((e) => e.truncated) && /* @__PURE__ */ Z("p", {
2922
2922
  className: "ri-limit",
2923
2923
  role: "status",
2924
- children: R("inspector.truncated")
2924
+ children: V("inspector.truncated")
2925
2925
  })
2926
2926
  ] });
2927
2927
  }
2928
2928
  //#endregion
2929
2929
  //#region src/viewer/inspector/Properties.tsx
2930
- var Ti = (e) => Number.isFinite(parseFloat(e)) ? Math.round(parseFloat(e) * 100) / 100 : 0, Ei = (e) => e.map(([e, t]) => ({
2930
+ var Oi = (e) => Number.isFinite(parseFloat(e)) ? Math.round(parseFloat(e) * 100) / 100 : 0, ki = (e) => e.map(([e, t]) => ({
2931
2931
  value: e,
2932
2932
  label: t
2933
- })), Di = (e) => {
2933
+ })), Ai = (e) => {
2934
2934
  let t = e.match(/^rgba?\(([\d.]+),\s*([\d.]+),\s*([\d.]+)(?:,\s*([\d.]+))?\)$/);
2935
2935
  return t ? "#" + t.slice(1).filter((e) => e !== void 0).map((e, t) => Math.round(Number(e) * (t === 3 ? 255 : 1)).toString(16).padStart(2, "0")).join("") : e;
2936
2936
  };
2937
- function Oi({ label: e, children: t, controlId: n }) {
2937
+ function ji({ label: e, children: t, controlId: n }) {
2938
2938
  return /* @__PURE__ */ Q("div", {
2939
2939
  className: "ri-field",
2940
2940
  children: [n ? /* @__PURE__ */ Z("label", {
@@ -2947,12 +2947,12 @@ function Oi({ label: e, children: t, controlId: n }) {
2947
2947
  }), t]
2948
2948
  });
2949
2949
  }
2950
- function ki({ label: e, property: t, node: n, change: r, unit: i = "px", max: a, min: o = 0, step: s = 1, sizing: c }) {
2951
- let l = Ge(), u = /* @__PURE__ */ Z(rt, {
2950
+ function Mi({ label: e, property: t, node: n, change: r, unit: i = "px", max: a, min: o = 0, step: s = 1, sizing: c }) {
2951
+ let l = Je(), u = /* @__PURE__ */ Z(ot, {
2952
2952
  id: l,
2953
2953
  size: "small",
2954
2954
  controls: !1,
2955
- value: Ti(n.css[t]),
2955
+ value: Oi(n.css[t]),
2956
2956
  suffix: i || void 0,
2957
2957
  min: o,
2958
2958
  max: a,
@@ -2962,7 +2962,7 @@ function ki({ label: e, property: t, node: n, change: r, unit: i = "px", max: a,
2962
2962
  },
2963
2963
  style: { width: "100%" }
2964
2964
  });
2965
- return /* @__PURE__ */ Z(Oi, {
2965
+ return /* @__PURE__ */ Z(ji, {
2966
2966
  label: e,
2967
2967
  controlId: l,
2968
2968
  children: c ? /* @__PURE__ */ Q("div", {
@@ -2977,16 +2977,16 @@ function ki({ label: e, property: t, node: n, change: r, unit: i = "px", max: a,
2977
2977
  }) : u
2978
2978
  });
2979
2979
  }
2980
- function Ai({ label: e, property: t, values: n, node: r, change: i }) {
2981
- let a = Ge(), o = r.css[t], s = n.some(([e]) => e === o) ? n : [...n, [o, o]];
2982
- return /* @__PURE__ */ Z(Oi, {
2980
+ function Ni({ label: e, property: t, values: n, node: r, change: i }) {
2981
+ let a = Je(), o = r.css[t], s = n.some(([e]) => e === o) ? n : [...n, [o, o]];
2982
+ return /* @__PURE__ */ Z(ji, {
2983
2983
  label: e,
2984
2984
  controlId: a,
2985
- children: /* @__PURE__ */ Z(ot, {
2985
+ children: /* @__PURE__ */ Z(lt, {
2986
2986
  size: "small",
2987
2987
  id: a,
2988
2988
  value: o,
2989
- options: Ei(s),
2989
+ options: ki(s),
2990
2990
  onChange: (e) => {
2991
2991
  typeof e == "string" && i(t, e);
2992
2992
  },
@@ -2994,67 +2994,67 @@ function Ai({ label: e, property: t, values: n, node: r, change: i }) {
2994
2994
  })
2995
2995
  });
2996
2996
  }
2997
- function ji({ node: e, change: t }) {
2997
+ function Pi({ node: e, change: t }) {
2998
2998
  let n = {
2999
2999
  node: e,
3000
3000
  change: t
3001
- }, r = Ge(), i = Ge(), [a, o] = Y(e.css["box-shadow"]);
3001
+ }, r = Je(), i = Je(), [a, o] = Y(e.css["box-shadow"]);
3002
3002
  return K(() => o(e.css["box-shadow"]), [e.css["box-shadow"]]), /* @__PURE__ */ Q(X, { children: [
3003
3003
  /* @__PURE__ */ Q("section", {
3004
3004
  className: "ri-section",
3005
3005
  children: [
3006
- /* @__PURE__ */ Z("h2", { children: R("inspector.size") }),
3007
- /* @__PURE__ */ Z(ki, {
3006
+ /* @__PURE__ */ Z("h2", { children: V("inspector.size") }),
3007
+ /* @__PURE__ */ Z(Mi, {
3008
3008
  ...n,
3009
- label: R("inspector.width"),
3009
+ label: V("inspector.width"),
3010
3010
  property: "width",
3011
3011
  sizing: /* @__PURE__ */ Q(X, { children: [/* @__PURE__ */ Z("label", {
3012
3012
  className: "ri-sr-only",
3013
3013
  htmlFor: r,
3014
- children: R("inspector.widthSizing")
3015
- }), /* @__PURE__ */ Z(ot, {
3014
+ children: V("inspector.widthSizing")
3015
+ }), /* @__PURE__ */ Z(lt, {
3016
3016
  id: r,
3017
3017
  size: "small",
3018
3018
  value: e.widthMode,
3019
- options: Ei([
3020
- ["fixed", R("inspector.fixed")],
3021
- ["fill", R("inspector.fill")],
3022
- ["hug", R("inspector.hug")]
3019
+ options: ki([
3020
+ ["fixed", V("inspector.fixed")],
3021
+ ["fill", V("inspector.fill")],
3022
+ ["hug", V("inspector.hug")]
3023
3023
  ]),
3024
- onChange: (n) => t("width", n === "fill" ? "100%" : n === "hug" ? "max-content" : `${Ti(e.css.width) || e.rect.width}px`)
3024
+ onChange: (n) => t("width", n === "fill" ? "100%" : n === "hug" ? "max-content" : `${Oi(e.css.width) || e.rect.width}px`)
3025
3025
  })] })
3026
3026
  }),
3027
- /* @__PURE__ */ Z(ki, {
3027
+ /* @__PURE__ */ Z(Mi, {
3028
3028
  ...n,
3029
- label: R("inspector.height"),
3029
+ label: V("inspector.height"),
3030
3030
  property: "height",
3031
3031
  sizing: /* @__PURE__ */ Q(X, { children: [/* @__PURE__ */ Z("label", {
3032
3032
  className: "ri-sr-only",
3033
3033
  htmlFor: i,
3034
- children: R("inspector.heightSizing")
3035
- }), /* @__PURE__ */ Z(ot, {
3034
+ children: V("inspector.heightSizing")
3035
+ }), /* @__PURE__ */ Z(lt, {
3036
3036
  id: i,
3037
3037
  size: "small",
3038
3038
  value: e.heightMode,
3039
- options: Ei([["hug", R("inspector.hug")], ["fixed", R("inspector.fixed")]]),
3040
- onChange: (n) => t("height", n === "hug" ? "auto" : `${Ti(e.css.height) || e.rect.height}px`)
3039
+ options: ki([["hug", V("inspector.hug")], ["fixed", V("inspector.fixed")]]),
3040
+ onChange: (n) => t("height", n === "hug" ? "auto" : `${Oi(e.css.height) || e.rect.height}px`)
3041
3041
  })] })
3042
3042
  }),
3043
- /* @__PURE__ */ Z(Ai, {
3043
+ /* @__PURE__ */ Z(Ni, {
3044
3044
  ...n,
3045
- label: R("inspector.position"),
3045
+ label: V("inspector.position"),
3046
3046
  property: "position",
3047
3047
  values: [
3048
- ["static", R("inspector.inline")],
3049
- ["relative", R("inspector.relative")],
3050
- ["absolute", R("inspector.absolute")],
3051
- ["fixed", R("inspector.fixed")],
3052
- ["sticky", R("inspector.sticky")]
3048
+ ["static", V("inspector.inline")],
3049
+ ["relative", V("inspector.relative")],
3050
+ ["absolute", V("inspector.absolute")],
3051
+ ["fixed", V("inspector.fixed")],
3052
+ ["sticky", V("inspector.sticky")]
3053
3053
  ]
3054
3054
  }),
3055
- /* @__PURE__ */ Z(ki, {
3055
+ /* @__PURE__ */ Z(Mi, {
3056
3056
  ...n,
3057
- label: R("inspector.grow"),
3057
+ label: V("inspector.grow"),
3058
3058
  property: "flex-grow",
3059
3059
  unit: "",
3060
3060
  max: 100
@@ -3064,74 +3064,74 @@ function ji({ node: e, change: t }) {
3064
3064
  /* @__PURE__ */ Q("section", {
3065
3065
  className: "ri-section",
3066
3066
  children: [
3067
- /* @__PURE__ */ Z("h2", { children: R("inspector.layout") }),
3068
- /* @__PURE__ */ Z(Ai, {
3067
+ /* @__PURE__ */ Z("h2", { children: V("inspector.layout") }),
3068
+ /* @__PURE__ */ Z(Ni, {
3069
3069
  ...n,
3070
- label: R("inspector.layout"),
3070
+ label: V("inspector.layout"),
3071
3071
  property: "display",
3072
3072
  values: [
3073
- ["flex", R("inspector.stack")],
3074
- ["grid", R("inspector.grid")],
3075
- ["block", R("inspector.block")],
3076
- ["inline", R("inspector.inline")],
3077
- ["inline-flex", R("inspector.inlineStack")],
3078
- ["none", R("inspector.hidden")]
3073
+ ["flex", V("inspector.stack")],
3074
+ ["grid", V("inspector.grid")],
3075
+ ["block", V("inspector.block")],
3076
+ ["inline", V("inspector.inline")],
3077
+ ["inline-flex", V("inspector.inlineStack")],
3078
+ ["none", V("inspector.hidden")]
3079
3079
  ]
3080
3080
  }),
3081
- (e.css.display === "flex" || e.css.display === "inline-flex") && /* @__PURE__ */ Q(X, { children: [/* @__PURE__ */ Z(Oi, {
3082
- label: R("inspector.direction"),
3083
- children: /* @__PURE__ */ Z(at, {
3081
+ (e.css.display === "flex" || e.css.display === "inline-flex") && /* @__PURE__ */ Q(X, { children: [/* @__PURE__ */ Z(ji, {
3082
+ label: V("inspector.direction"),
3083
+ children: /* @__PURE__ */ Z(ct, {
3084
3084
  size: "small",
3085
3085
  block: !0,
3086
3086
  value: e.css["flex-direction"],
3087
3087
  options: [{
3088
3088
  value: "row",
3089
- icon: /* @__PURE__ */ Z(gt, {
3089
+ icon: /* @__PURE__ */ Z(yt, {
3090
3090
  size: 14,
3091
3091
  "aria-hidden": !0
3092
3092
  }),
3093
3093
  label: /* @__PURE__ */ Z("span", {
3094
3094
  className: "ri-sr-only",
3095
- children: R("inspector.horizontal")
3095
+ children: V("inspector.horizontal")
3096
3096
  }),
3097
- title: R("inspector.horizontal")
3097
+ title: V("inspector.horizontal")
3098
3098
  }, {
3099
3099
  value: "column",
3100
- icon: /* @__PURE__ */ Z(ht, {
3100
+ icon: /* @__PURE__ */ Z(vt, {
3101
3101
  size: 14,
3102
3102
  "aria-hidden": !0
3103
3103
  }),
3104
3104
  label: /* @__PURE__ */ Z("span", {
3105
3105
  className: "ri-sr-only",
3106
- children: R("inspector.vertical")
3106
+ children: V("inspector.vertical")
3107
3107
  }),
3108
- title: R("inspector.vertical")
3108
+ title: V("inspector.vertical")
3109
3109
  }],
3110
3110
  onChange: (e) => t("flex-direction", e)
3111
3111
  })
3112
- }), /* @__PURE__ */ Z(Oi, {
3113
- label: R("inspector.align"),
3114
- children: /* @__PURE__ */ Z(at, {
3112
+ }), /* @__PURE__ */ Z(ji, {
3113
+ label: V("inspector.align"),
3114
+ children: /* @__PURE__ */ Z(ct, {
3115
3115
  size: "small",
3116
3116
  block: !0,
3117
- "aria-label": R("inspector.align"),
3117
+ "aria-label": V("inspector.align"),
3118
3118
  value: e.css["align-items"],
3119
- options: Ei([
3120
- ["flex-start", R("inspector.start")],
3121
- ["center", R("inspector.center")],
3122
- ["stretch", R("inspector.fill")]
3119
+ options: ki([
3120
+ ["flex-start", V("inspector.start")],
3121
+ ["center", V("inspector.center")],
3122
+ ["stretch", V("inspector.fill")]
3123
3123
  ]),
3124
3124
  onChange: (e) => t("align-items", e)
3125
3125
  })
3126
3126
  })] }),
3127
- /* @__PURE__ */ Z(ki, {
3127
+ /* @__PURE__ */ Z(Mi, {
3128
3128
  ...n,
3129
- label: R("inspector.gap"),
3129
+ label: V("inspector.gap"),
3130
3130
  property: "gap"
3131
3131
  }),
3132
- /* @__PURE__ */ Z(ki, {
3132
+ /* @__PURE__ */ Z(Mi, {
3133
3133
  ...n,
3134
- label: R("inspector.padding"),
3134
+ label: V("inspector.padding"),
3135
3135
  property: "padding"
3136
3136
  })
3137
3137
  ]
@@ -3139,69 +3139,69 @@ function ji({ node: e, change: t }) {
3139
3139
  /* @__PURE__ */ Q("section", {
3140
3140
  className: "ri-section",
3141
3141
  children: [
3142
- /* @__PURE__ */ Z("h2", { children: R("inspector.appearance") }),
3143
- /* @__PURE__ */ Z(Oi, {
3144
- label: R("inspector.fill"),
3145
- children: /* @__PURE__ */ Z(Qe, {
3142
+ /* @__PURE__ */ Z("h2", { children: V("inspector.appearance") }),
3143
+ /* @__PURE__ */ Z(ji, {
3144
+ label: V("inspector.fill"),
3145
+ children: /* @__PURE__ */ Z(tt, {
3146
3146
  size: "small",
3147
3147
  trigger: "field",
3148
3148
  alpha: !0,
3149
3149
  recent: !1,
3150
- value: Di(e.css["background-color"]),
3150
+ value: Ai(e.css["background-color"]),
3151
3151
  onChange: (e) => t("background-color", e)
3152
3152
  })
3153
3153
  }),
3154
- /* @__PURE__ */ Z(ki, {
3154
+ /* @__PURE__ */ Z(Mi, {
3155
3155
  ...n,
3156
- label: R("inspector.opacity"),
3156
+ label: V("inspector.opacity"),
3157
3157
  property: "opacity",
3158
3158
  unit: "",
3159
3159
  max: 1,
3160
3160
  step: .1
3161
3161
  }),
3162
- /* @__PURE__ */ Z(ki, {
3162
+ /* @__PURE__ */ Z(Mi, {
3163
3163
  ...n,
3164
- label: R("inspector.radius"),
3164
+ label: V("inspector.radius"),
3165
3165
  property: "border-radius"
3166
3166
  }),
3167
- /* @__PURE__ */ Z(Ai, {
3167
+ /* @__PURE__ */ Z(Ni, {
3168
3168
  ...n,
3169
- label: R("inspector.border"),
3169
+ label: V("inspector.border"),
3170
3170
  property: "border-style",
3171
3171
  values: [
3172
3172
  ["none", /* @__PURE__ */ Q("span", {
3173
3173
  className: "ri-option",
3174
- children: [/* @__PURE__ */ Z(_t, {
3174
+ children: [/* @__PURE__ */ Z(bt, {
3175
3175
  size: 13,
3176
3176
  "aria-hidden": !0
3177
- }), R("inspector.none")]
3177
+ }), V("inspector.none")]
3178
3178
  })],
3179
3179
  ["solid", /* @__PURE__ */ Q("span", {
3180
3180
  className: "ri-option",
3181
- children: [/* @__PURE__ */ Z(Bt, {
3181
+ children: [/* @__PURE__ */ Z(Ut, {
3182
3182
  size: 13,
3183
3183
  "aria-hidden": !0
3184
- }), R("inspector.solid")]
3184
+ }), V("inspector.solid")]
3185
3185
  })],
3186
3186
  ["dashed", /* @__PURE__ */ Q("span", {
3187
3187
  className: "ri-option",
3188
- children: [/* @__PURE__ */ Z(qt, {
3188
+ children: [/* @__PURE__ */ Z(Xt, {
3189
3189
  size: 13,
3190
3190
  "aria-hidden": !0
3191
- }), R("inspector.dashed")]
3191
+ }), V("inspector.dashed")]
3192
3192
  })],
3193
3193
  ["dotted", /* @__PURE__ */ Q("span", {
3194
3194
  className: "ri-option",
3195
- children: [/* @__PURE__ */ Z(jt, {
3195
+ children: [/* @__PURE__ */ Z(Pt, {
3196
3196
  size: 13,
3197
3197
  "aria-hidden": !0
3198
- }), R("inspector.dotted")]
3198
+ }), V("inspector.dotted")]
3199
3199
  })]
3200
3200
  ]
3201
3201
  })
3202
3202
  ]
3203
3203
  }),
3204
- /* @__PURE__ */ Z(Ye, {
3204
+ /* @__PURE__ */ Z(Qe, {
3205
3205
  indicatorPlacement: "end",
3206
3206
  gap: 0,
3207
3207
  keepMounted: !0,
@@ -3217,30 +3217,30 @@ function ji({ node: e, change: t }) {
3217
3217
  },
3218
3218
  items: [{
3219
3219
  key: "typography",
3220
- title: R("inspector.typography"),
3221
- children: /* @__PURE__ */ Q(X, { children: [/* @__PURE__ */ Z(ki, {
3220
+ title: V("inspector.typography"),
3221
+ children: /* @__PURE__ */ Q(X, { children: [/* @__PURE__ */ Z(Mi, {
3222
3222
  ...n,
3223
- label: R("inspector.fontSize"),
3223
+ label: V("inspector.fontSize"),
3224
3224
  property: "font-size",
3225
3225
  min: 1
3226
- }), /* @__PURE__ */ Z(Oi, {
3227
- label: R("inspector.color"),
3228
- children: /* @__PURE__ */ Z(Qe, {
3226
+ }), /* @__PURE__ */ Z(ji, {
3227
+ label: V("inspector.color"),
3228
+ children: /* @__PURE__ */ Z(tt, {
3229
3229
  size: "small",
3230
3230
  trigger: "field",
3231
3231
  alpha: !0,
3232
3232
  recent: !1,
3233
- value: Di(e.css.color),
3233
+ value: Ai(e.css.color),
3234
3234
  onChange: (e) => t("color", e)
3235
3235
  })
3236
3236
  })] })
3237
3237
  }, {
3238
3238
  key: "effects",
3239
- title: R("inspector.effects"),
3240
- children: /* @__PURE__ */ Z(Oi, {
3241
- label: R("inspector.shadow"),
3242
- children: /* @__PURE__ */ Z(nt, {
3243
- "aria-label": R("inspector.shadow"),
3239
+ title: V("inspector.effects"),
3240
+ children: /* @__PURE__ */ Z(ji, {
3241
+ label: V("inspector.shadow"),
3242
+ children: /* @__PURE__ */ Z(at, {
3243
+ "aria-label": V("inspector.shadow"),
3244
3244
  size: "small",
3245
3245
  value: a,
3246
3246
  onChange: (e) => o(e.target.value),
@@ -3254,31 +3254,31 @@ function ji({ node: e, change: t }) {
3254
3254
  }
3255
3255
  //#endregion
3256
3256
  //#region src/viewer/inspector/InspectorPanel.tsx
3257
- var Mi = [
3257
+ var Fi = [
3258
3258
  "Properties",
3259
3259
  "Code",
3260
3260
  "Tweaks"
3261
- ], Ni = We(function({ boards: e, frames: t, selection: n, targets: r, playing: i, select: a, hoverNode: o, change: s, reset: c, enabled: l, onClose: u }) {
3261
+ ], Ii = qe(function({ boards: e, frames: t, selection: n, targets: r, playing: i, select: a, hoverNode: o, change: s, reset: c, enabled: l, onClose: u }) {
3262
3262
  let [d, f] = Y("Properties"), [p, m] = Y(""), h = n?.node, g = Object.entries(t).flatMap(([e, t]) => t.tweaks.map((t) => ({
3263
3263
  ...t,
3264
3264
  boardId: e
3265
3265
  }))), _ = h ? `${h.selector} {\n${Object.entries(h.css).map(([e, t]) => ` ${e}: ${t};`).join("\n")}\n}` : "", v = async (e) => {
3266
3266
  try {
3267
- await navigator.clipboard.writeText(e), m(R("inspector.copied"));
3267
+ await navigator.clipboard.writeText(e), m(V("inspector.copied"));
3268
3268
  } catch {
3269
- m(R("inspector.copyFailed"));
3269
+ m(V("inspector.copyFailed"));
3270
3270
  }
3271
3271
  };
3272
- return /* @__PURE__ */ Z(tt, {
3272
+ return /* @__PURE__ */ Z(it, {
3273
3273
  config: { "aria-hidden": !0 },
3274
3274
  children: /* @__PURE__ */ Z("aside", {
3275
3275
  className: "ryugi-inspector",
3276
3276
  "data-chrome": !0,
3277
- "aria-label": R("inspector.label"),
3278
- children: /* @__PURE__ */ Q(ft, {
3277
+ "aria-label": V("inspector.label"),
3278
+ children: /* @__PURE__ */ Q(ht, {
3279
3279
  value: d,
3280
3280
  onValueChange: (e) => {
3281
- Mi.includes(e) && f(e);
3281
+ Fi.includes(e) && f(e);
3282
3282
  },
3283
3283
  size: "small",
3284
3284
  variant: "rounded",
@@ -3286,29 +3286,29 @@ var Mi = [
3286
3286
  children: [
3287
3287
  /* @__PURE__ */ Q("header", {
3288
3288
  className: "ri-header",
3289
- children: [/* @__PURE__ */ Q(ut, {
3289
+ children: [/* @__PURE__ */ Q(pt, {
3290
3290
  className: "ri-tabs",
3291
3291
  activateOnFocus: !0,
3292
3292
  style: { alignSelf: "center" },
3293
- "aria-label": R("inspector.views"),
3294
- children: [/* @__PURE__ */ Z(lt, {}), Mi.map((e) => /* @__PURE__ */ Q(pt, {
3293
+ "aria-label": V("inspector.views"),
3294
+ children: [/* @__PURE__ */ Z(ft, {}), Fi.map((e) => /* @__PURE__ */ Q(gt, {
3295
3295
  value: e,
3296
- children: [R(`inspector.tab.${e}`), e === "Tweaks" && g.length > 0 && /* @__PURE__ */ Z(Ct, {
3296
+ children: [V(`inspector.tab.${e}`), e === "Tweaks" && g.length > 0 && /* @__PURE__ */ Z(Et, {
3297
3297
  className: "ri-change-dot",
3298
3298
  size: 4,
3299
3299
  fill: "currentColor",
3300
3300
  "aria-hidden": !0
3301
3301
  })]
3302
3302
  }, e))]
3303
- }), /* @__PURE__ */ Z(Xe, {
3304
- icon: Yt,
3303
+ }), /* @__PURE__ */ Z($e, {
3304
+ icon: Qt,
3305
3305
  size: "small",
3306
- "aria-label": R("inspector.close"),
3307
- title: R("inspector.close"),
3306
+ "aria-label": V("inspector.close"),
3307
+ title: V("inspector.close"),
3308
3308
  onClick: u
3309
3309
  })]
3310
3310
  }),
3311
- /* @__PURE__ */ Z(wi, {
3311
+ /* @__PURE__ */ Z(Di, {
3312
3312
  boards: e,
3313
3313
  frames: t,
3314
3314
  selection: n,
@@ -3320,17 +3320,17 @@ var Mi = [
3320
3320
  /* @__PURE__ */ Q("div", {
3321
3321
  className: "ri-node-meta",
3322
3322
  children: [
3323
- /* @__PURE__ */ Z("code", { children: r.length > 1 ? R("inspector.selected", { count: r.length }) : h ? `<${h.tag}>` : R("inspector.selectElement") }),
3323
+ /* @__PURE__ */ Z("code", { children: r.length > 1 ? V("inspector.selected", { count: r.length }) : h ? `<${h.tag}>` : V("inspector.selectElement") }),
3324
3324
  h && /* @__PURE__ */ Q("span", {
3325
3325
  className: "ri-node-id",
3326
- children: [`${n.boardId}#${h.id}`, /* @__PURE__ */ Z(Xe, {
3327
- icon: kt,
3326
+ children: [`${n.boardId}#${h.id}`, /* @__PURE__ */ Z($e, {
3327
+ icon: Mt,
3328
3328
  size: {
3329
3329
  blockSize: 16,
3330
3330
  size: 10
3331
3331
  },
3332
- "aria-label": R("inspector.copyNode"),
3333
- title: R("inspector.copyNode"),
3332
+ "aria-label": V("inspector.copyNode"),
3333
+ title: V("inspector.copyNode"),
3334
3334
  onClick: () => void v(`${n.boardId}#${h.id}`)
3335
3335
  })]
3336
3336
  }),
@@ -3341,45 +3341,45 @@ var Mi = [
3341
3341
  }),
3342
3342
  h && /* @__PURE__ */ Q("span", {
3343
3343
  className: "ri-live",
3344
- children: [/* @__PURE__ */ Z(Ct, {
3344
+ children: [/* @__PURE__ */ Z(Et, {
3345
3345
  size: 6,
3346
3346
  fill: "currentColor",
3347
3347
  "aria-hidden": !0
3348
- }), R("inspector.live")]
3348
+ }), V("inspector.live")]
3349
3349
  })
3350
3350
  ]
3351
3351
  }),
3352
3352
  r.length > 1 && /* @__PURE__ */ Z("p", {
3353
3353
  className: "ri-hint",
3354
3354
  style: { margin: "8px 16px" },
3355
- children: R("inspector.lastSelected")
3355
+ children: V("inspector.lastSelected")
3356
3356
  }),
3357
3357
  /* @__PURE__ */ Q("div", {
3358
3358
  className: "ri-panel-body",
3359
3359
  children: [
3360
- /* @__PURE__ */ Z(dt, {
3360
+ /* @__PURE__ */ Z(mt, {
3361
3361
  value: "Properties",
3362
- children: h && l ? /* @__PURE__ */ Z(ji, {
3362
+ children: h && l ? /* @__PURE__ */ Z(Pi, {
3363
3363
  node: h,
3364
3364
  change: s
3365
3365
  }, `${n.boardId}:${t[n.boardId]?.session}:${h.id}`) : /* @__PURE__ */ Z("p", {
3366
3366
  className: "ri-empty",
3367
- children: R(l ? "inspector.pickElement" : "inspector.closeExpanded")
3367
+ children: V(l ? "inspector.pickElement" : "inspector.closeExpanded")
3368
3368
  })
3369
3369
  }),
3370
- /* @__PURE__ */ Z(dt, {
3370
+ /* @__PURE__ */ Z(mt, {
3371
3371
  value: "Code",
3372
3372
  children: h ? /* @__PURE__ */ Q("div", {
3373
3373
  className: "ri-code",
3374
3374
  children: [
3375
3375
  /* @__PURE__ */ Q("div", {
3376
3376
  className: "ri-code-heading",
3377
- children: [/* @__PURE__ */ Z("h2", { children: R("inspector.computedCss") }), /* @__PURE__ */ Z(Ze, {
3377
+ children: [/* @__PURE__ */ Z("h2", { children: V("inspector.computedCss") }), /* @__PURE__ */ Z(et, {
3378
3378
  size: "small",
3379
3379
  type: "text",
3380
- icon: kt,
3380
+ icon: Mt,
3381
3381
  onClick: () => void v(_),
3382
- children: R("inspector.copy")
3382
+ children: V("inspector.copy")
3383
3383
  })]
3384
3384
  }),
3385
3385
  /* @__PURE__ */ Z("pre", {
@@ -3388,12 +3388,12 @@ var Mi = [
3388
3388
  }),
3389
3389
  /* @__PURE__ */ Q("div", {
3390
3390
  className: "ri-code-heading",
3391
- children: [/* @__PURE__ */ Z("h2", { children: "HTML" }), /* @__PURE__ */ Z(Ze, {
3391
+ children: [/* @__PURE__ */ Z("h2", { children: "HTML" }), /* @__PURE__ */ Z(et, {
3392
3392
  size: "small",
3393
3393
  type: "text",
3394
- icon: kt,
3394
+ icon: Mt,
3395
3395
  onClick: () => void v(h.html),
3396
- children: R("inspector.copy")
3396
+ children: V("inspector.copy")
3397
3397
  })]
3398
3398
  }),
3399
3399
  /* @__PURE__ */ Z("pre", {
@@ -3403,21 +3403,21 @@ var Mi = [
3403
3403
  /* @__PURE__ */ Z("p", {
3404
3404
  className: "ri-hint",
3405
3405
  role: "status",
3406
- children: p || R("inspector.fromDom")
3406
+ children: p || V("inspector.fromDom")
3407
3407
  })
3408
3408
  ]
3409
3409
  }) : /* @__PURE__ */ Z("p", {
3410
3410
  className: "ri-empty",
3411
- children: R("inspector.selectForCode")
3411
+ children: V("inspector.selectForCode")
3412
3412
  })
3413
3413
  }),
3414
- /* @__PURE__ */ Z(dt, {
3414
+ /* @__PURE__ */ Z(mt, {
3415
3415
  value: "Tweaks",
3416
3416
  children: /* @__PURE__ */ Q("section", {
3417
3417
  className: "ri-section",
3418
3418
  children: [
3419
3419
  /* @__PURE__ */ Q("h2", { children: [
3420
- R("inspector.sessionChanges"),
3420
+ V("inspector.sessionChanges"),
3421
3421
  " ",
3422
3422
  /* @__PURE__ */ Z("span", {
3423
3423
  className: "ri-count",
@@ -3426,7 +3426,7 @@ var Mi = [
3426
3426
  ] }),
3427
3427
  /* @__PURE__ */ Z("p", {
3428
3428
  className: "ri-hint",
3429
- children: R("inspector.changesApply")
3429
+ children: V("inspector.changesApply")
3430
3430
  }),
3431
3431
  /* @__PURE__ */ Z("div", {
3432
3432
  className: "ri-tweaks",
@@ -3445,15 +3445,15 @@ var Mi = [
3445
3445
  }),
3446
3446
  !g.length && /* @__PURE__ */ Z("p", {
3447
3447
  className: "ri-hint",
3448
- children: R("inspector.noChanges")
3448
+ children: V("inspector.noChanges")
3449
3449
  }),
3450
- /* @__PURE__ */ Z(Ze, {
3451
- icon: Wt,
3450
+ /* @__PURE__ */ Z(et, {
3451
+ icon: qt,
3452
3452
  size: "small",
3453
3453
  block: !0,
3454
3454
  disabled: !g.length,
3455
3455
  onClick: c,
3456
- children: R("inspector.resetPreview")
3456
+ children: V("inspector.resetPreview")
3457
3457
  })
3458
3458
  ]
3459
3459
  })
@@ -3463,14 +3463,14 @@ var Mi = [
3463
3463
  /* @__PURE__ */ Q("footer", {
3464
3464
  className: "ri-footer",
3465
3465
  children: [
3466
- /* @__PURE__ */ Z(Ct, {
3466
+ /* @__PURE__ */ Z(Et, {
3467
3467
  className: "ri-status-dot",
3468
3468
  size: 5,
3469
3469
  fill: "currentColor",
3470
3470
  "aria-hidden": !0
3471
3471
  }),
3472
- g.length ? R("inspector.previewChanges", { count: g.length }) : R("inspector.liveInspection"),
3473
- /* @__PURE__ */ Z("span", { children: R("inspector.previewOnly") })
3472
+ g.length ? V("inspector.previewChanges", { count: g.length }) : V("inspector.liveInspection"),
3473
+ /* @__PURE__ */ Z("span", { children: V("inspector.previewOnly") })
3474
3474
  ]
3475
3475
  })
3476
3476
  ]
@@ -3480,62 +3480,62 @@ var Mi = [
3480
3480
  });
3481
3481
  //#endregion
3482
3482
  //#region src/viewer/hooks/usePageQuery.ts
3483
- function Pi(e, t) {
3483
+ function Li(e, t) {
3484
3484
  if (t === null) return e;
3485
3485
  let n = new URL(e);
3486
3486
  return n.searchParams.set("page", t), n.href;
3487
3487
  }
3488
- function Fi() {
3489
- let e = b(), t = G((t) => (e.addEventListener("popstate", t), e.addEventListener("ryugi:pagechange", t), () => {
3488
+ function Ri() {
3489
+ let e = T(), t = G((t) => (e.addEventListener("popstate", t), e.addEventListener("ryugi:pagechange", t), () => {
3490
3490
  e.removeEventListener("popstate", t), e.removeEventListener("ryugi:pagechange", t);
3491
3491
  }), [e]);
3492
- return [Je(t, () => new URLSearchParams(e.location.search).get("page")), G((t, n) => {
3492
+ return [Ze(t, () => new URLSearchParams(e.location.search).get("page")), G((t, n) => {
3493
3493
  let r = new URL(e.location.href);
3494
3494
  r.searchParams.get("page") !== t && (t === null ? r.searchParams.delete("page") : r.searchParams.set("page", t), e.history[n ? "replaceState" : "pushState"](e.history.state, "", r), e.dispatchEvent(new Event("ryugi:pagechange")));
3495
3495
  }, [e])];
3496
3496
  }
3497
3497
  //#endregion
3498
3498
  //#region src/viewer/hooks/useArtboardPage.ts
3499
- function Ii({ canvas: e, layout: t, fitPage: n, fitFocus: r, startAtFocus: i = !1 }) {
3500
- let [a, o] = Y(null), c = J(void 0), l = J(void 0), u = J(null), d = J(!1), [f, p] = Fi(), m = J(f), h = G((e, t = !0) => {
3501
- o(e), u.current = e, m.current = e, p(e, t);
3499
+ function zi({ canvas: e, layout: n, fitPage: r, fitFocus: i, startAtFocus: a = !1 }) {
3500
+ let [o, s] = Y(null), c = J(void 0), l = J(void 0), u = J(null), d = J(!1), [f, p] = Ri(), m = J(f), h = G((e, t = !0) => {
3501
+ s(e), u.current = e, m.current = e, p(e, t);
3502
3502
  }, [p]);
3503
3503
  return K(() => {
3504
- if (!e || !t) return;
3505
- let n = e.pages[0]?.id ?? null, g = (t) => t && e.pages.some((e) => e.id === t) ? t : null;
3504
+ if (!e || !n) return;
3505
+ let r = e.pages[0]?.id ?? null, g = (t) => t && e.pages.some((e) => e.id === t) ? t : null;
3506
3506
  if (!d.current) {
3507
3507
  d.current = !0, c.current = e.activePage, l.current = e.focus?.at;
3508
- let r = i && e.focus ? s(e, t, e.focus.target)?.page : void 0, a = g(f) ?? (f === null ? g(r) ?? g(e.activePage) ?? n : n);
3509
- h(a);
3508
+ let i = a && e.focus ? t(e, n, e.focus.target)?.page : void 0, o = g(f) ?? (f === null ? g(i) ?? g(e.activePage) ?? r : r);
3509
+ h(o);
3510
3510
  return;
3511
3511
  }
3512
3512
  if (f !== m.current) {
3513
- l.current = e.focus?.at, c.current = e.activePage, h(g(f) ?? n);
3513
+ l.current = e.focus?.at, c.current = e.activePage, h(g(f) ?? r);
3514
3514
  return;
3515
3515
  }
3516
3516
  let _ = e.focus;
3517
3517
  if (_ && _.at !== l.current) {
3518
3518
  l.current = _.at, c.current = e.activePage;
3519
- let n = s(e, t, _.target);
3520
- if (n) {
3521
- o(n.page), u.current = null, m.current = n.page, p(n.page, !0), r(_.target, n);
3519
+ let r = t(e, n, _.target);
3520
+ if (r) {
3521
+ s(r.page), u.current = null, m.current = r.page, p(r.page, !0), i(_.target, r);
3522
3522
  return;
3523
3523
  }
3524
3524
  }
3525
- e.activePage !== c.current && (c.current = e.activePage, e.activePage) ? h(g(e.activePage) ?? n) : (!a || !e.pages.some((e) => e.id === a)) && h(n);
3525
+ e.activePage !== c.current && (c.current = e.activePage, e.activePage) ? h(g(e.activePage) ?? r) : (!o || !e.pages.some((e) => e.id === o)) && h(r);
3526
3526
  }, [
3527
3527
  e,
3528
- t,
3529
- r,
3530
- a,
3528
+ n,
3531
3529
  i,
3530
+ o,
3531
+ a,
3532
3532
  f,
3533
3533
  h,
3534
3534
  p
3535
3535
  ]), K(() => {
3536
- u.current !== null && u.current === a && n(a) && (u.current = null);
3536
+ u.current !== null && u.current === o && r(o) && (u.current = null);
3537
3537
  }), {
3538
- page: a,
3538
+ page: o,
3539
3539
  changePage: (t) => {
3540
3540
  e?.pages.some((e) => e.id === t) && h(t, !1);
3541
3541
  }
@@ -3543,29 +3543,29 @@ function Ii({ canvas: e, layout: t, fitPage: n, fitFocus: r, startAtFocus: i = !
3543
3543
  }
3544
3544
  //#endregion
3545
3545
  //#region src/viewer/components/PhoneArtboardBar.tsx
3546
- function Li({ pages: e, page: t, onPageChange: n }) {
3546
+ function Bi({ pages: e, page: t, onPageChange: n }) {
3547
3547
  if (e.length < 2) return null;
3548
3548
  let r = e.find((e) => e.id === t);
3549
- return /* @__PURE__ */ Z($e, {
3549
+ return /* @__PURE__ */ Z(nt, {
3550
3550
  placement: "bottomLeft",
3551
3551
  items: e.map((e) => ({
3552
3552
  key: e.id,
3553
3553
  label: e.name,
3554
- icon: e.id === t ? vt : void 0,
3554
+ icon: e.id === t ? xt : void 0,
3555
3555
  onClick: () => n(e.id)
3556
3556
  })),
3557
3557
  children: /* @__PURE__ */ Q("button", {
3558
3558
  type: "button",
3559
- "aria-label": R("chrome.switchPage"),
3559
+ "aria-label": V("chrome.switchPage"),
3560
3560
  className: "x78zum5 x6s0dn4 x195vfkc xeuugli x1717udv xc342km xjbqb8w x1bo0w0s xqfszdh x4z9k3i x1ypdohk",
3561
3561
  children: [/* @__PURE__ */ Z("span", {
3562
3562
  className: "xb3r6kr xuxw1ft xlyipyv",
3563
3563
  children: r?.name ?? t
3564
- }), /* @__PURE__ */ Z(bt, { size: 13 })]
3564
+ }), /* @__PURE__ */ Z(Ct, { size: 13 })]
3565
3565
  })
3566
3566
  });
3567
3567
  }
3568
- function Ri({ title: e, pages: t, page: n, onPageChange: r, actions: i, live: a }) {
3568
+ function Vi({ title: e, pages: t, page: n, onPageChange: r, actions: i, live: a }) {
3569
3569
  return /* @__PURE__ */ Q("header", {
3570
3570
  "data-chrome": !0,
3571
3571
  className: "x2lah0s xdd8jsf x78zum5 x6s0dn4 x883omv x1hr3lfm xso031l x1q0q8m5 xtrfj0v x1rozbrz xo2rkog xqfszdh xif65rj",
@@ -3574,14 +3574,14 @@ function Ri({ title: e, pages: t, page: n, onPageChange: r, actions: i, live: a
3574
3574
  className: "xeuugli xb3r6kr xuxw1ft xlyipyv x1s688f",
3575
3575
  children: e
3576
3576
  }),
3577
- /* @__PURE__ */ Z(Li, {
3577
+ /* @__PURE__ */ Z(Bi, {
3578
3578
  pages: t,
3579
3579
  page: n,
3580
3580
  onPageChange: r
3581
3581
  }),
3582
3582
  /* @__PURE__ */ Z("span", { className: "x98rzlu" }),
3583
3583
  a === void 0 ? null : /* @__PURE__ */ Z("i", {
3584
- title: R(a ? "chrome.live" : "chrome.reconnecting"),
3584
+ title: V(a ? "chrome.live" : "chrome.reconnecting"),
3585
3585
  ...{
3586
3586
  0: { className: "xci0xqf x1hagigm x2lah0s x16rqkct xxwmxtg" },
3587
3587
  1: { className: "xci0xqf x1hagigm x2lah0s x16rqkct xux1nz0" }
@@ -3593,7 +3593,7 @@ function Ri({ title: e, pages: t, page: n, onPageChange: r, actions: i, live: a
3593
3593
  }
3594
3594
  //#endregion
3595
3595
  //#region src/viewer/components/ghost.ts
3596
- var zi = { ghost: {
3596
+ var Hi = { ghost: {
3597
3597
  k1xSpc: "xrvj5dj",
3598
3598
  kgQiWS: "x1ku5rj1",
3599
3599
  kmuXW: "x2lah0s",
@@ -3609,9 +3609,9 @@ var zi = { ghost: {
3609
3609
  kIyJzY: "xgdialr",
3610
3610
  k3aq6I: "x19kf12q",
3611
3611
  $$css: !0
3612
- } }, Bi = 120, Vi = .5, Hi = 110, Ui = .4, Wi = .25;
3613
- function Gi(e, t, n) {
3614
- if (!e || Oe()) return {
3612
+ } }, Ui = 120, Wi = .5, Gi = 110, Ki = .4, qi = .25;
3613
+ function Ji(e, t, n) {
3614
+ if (!e || Ae()) return {
3615
3615
  done: Promise.resolve(),
3616
3616
  cancel: () => {}
3617
3617
  };
@@ -3624,10 +3624,10 @@ function Gi(e, t, n) {
3624
3624
  cancel: () => r.cancel()
3625
3625
  };
3626
3626
  }
3627
- function Ki({ id: e, board: n, src: r, siblings: i, origin: a, onOpen: o, onClose: s }) {
3628
- let { viewportRef: c, view: l, place: u, handlers: d } = bi("hand"), f = J(null), p = J(null), m = J(null), h = J(null), [g, _] = Y(null), v = J(null), y = J(l);
3627
+ function Yi({ id: t, board: n, src: r, siblings: i, origin: a, onOpen: o, onClose: s }) {
3628
+ let { viewportRef: c, view: l, place: u, handlers: d } = Ci("hand"), f = J(null), p = J(null), m = J(null), h = J(null), [g, _] = Y(null), v = J(null), y = J(l);
3629
3629
  y.current = l;
3630
- let b = J(!1), x = J(null), S = J(!1), C = i.indexOf(e), w = C > 0 ? i[C - 1] : void 0, T = C >= 0 ? i[C + 1] : void 0, E = () => ({
3630
+ let b = J(!1), x = J(null), S = J(!1), C = i.indexOf(t), w = C > 0 ? i[C - 1] : void 0, T = C >= 0 ? i[C + 1] : void 0, E = () => ({
3631
3631
  width: c.current?.clientWidth ?? n.w,
3632
3632
  height: c.current?.clientHeight ?? n.h
3633
3633
  }), D = (e) => {
@@ -3635,8 +3635,8 @@ function Ki({ id: e, board: n, src: r, siblings: i, origin: a, onOpen: o, onClos
3635
3635
  if (!e || !r) return null;
3636
3636
  let i = e.w / (n.w * t.k);
3637
3637
  return `translate(${e.x - r.left - i * t.x}px, ${e.y - r.top - i * t.y}px) scale(${i})`;
3638
- }, k = () => [m.current, h.current];
3639
- Ke(() => {
3638
+ }, ee = () => [m.current, h.current];
3639
+ Ye(() => {
3640
3640
  let { width: e, height: t } = E(), r = n.interactive ? Math.min(1, e / n.w, t / n.h) : Math.min(1, e / n.w), i = {
3641
3641
  k: r,
3642
3642
  x: (e - n.w * r) / 2,
@@ -3645,13 +3645,13 @@ function Ki({ id: e, board: n, src: r, siblings: i, origin: a, onOpen: o, onClos
3645
3645
  if (u(i), y.current = i, !b.current) {
3646
3646
  b.current = !0;
3647
3647
  let e = D(a);
3648
- e && ze(f.current, [{ transform: e }, { transform: "none" }], {
3649
- duration: U.duration,
3650
- easing: U.easing
3651
- }), ze(p.current, [{ opacity: 0 }, { opacity: 1 }], {
3648
+ e && He(f.current, [{ transform: e }, { transform: "none" }], {
3649
+ duration: Fe.duration,
3650
+ easing: Fe.easing
3651
+ }), He(p.current, [{ opacity: 0 }, { opacity: 1 }], {
3652
3652
  duration: 200,
3653
- easing: W
3654
- }), k().forEach((e, t) => void ze(e, [{
3653
+ easing: Be
3654
+ }), ee().forEach((e, t) => void He(e, [{
3655
3655
  opacity: 0,
3656
3656
  transform: `translateY(${t ? 12 : -8}px)`
3657
3657
  }, {
@@ -3660,60 +3660,60 @@ function Ki({ id: e, board: n, src: r, siblings: i, origin: a, onOpen: o, onClos
3660
3660
  }], {
3661
3661
  duration: 180,
3662
3662
  delay: 90,
3663
- easing: W
3663
+ easing: Be
3664
3664
  }));
3665
3665
  } else if (x.current) {
3666
3666
  let { dir: t, leaving: n } = x.current;
3667
- x.current = null, n(), ze(f.current, [{
3667
+ x.current = null, n(), He(f.current, [{
3668
3668
  transform: `translateX(${t * e * .35}px)`,
3669
3669
  opacity: 0
3670
3670
  }, {
3671
3671
  transform: "none",
3672
3672
  opacity: 1
3673
3673
  }], {
3674
- duration: U.duration,
3675
- easing: U.easing
3674
+ duration: Fe.duration,
3675
+ easing: Fe.easing
3676
3676
  });
3677
3677
  }
3678
3678
  }, [
3679
- e,
3679
+ t,
3680
3680
  n.w,
3681
3681
  n.h,
3682
3682
  n.interactive,
3683
3683
  u,
3684
3684
  c
3685
3685
  ]);
3686
- let A = () => {
3686
+ let O = () => {
3687
3687
  let e = f.current?.style.transform || "none";
3688
- _(null), ze(f.current, [{ transform: e }, { transform: "none" }], {
3689
- duration: U.duration,
3690
- easing: U.easing
3691
- }), [p.current, ...k()].forEach((e) => void ze(e, [{ opacity: Number(e?.style.opacity || 1) }, { opacity: 1 }], {
3688
+ _(null), He(f.current, [{ transform: e }, { transform: "none" }], {
3689
+ duration: Fe.duration,
3690
+ easing: Fe.easing
3691
+ }), [p.current, ...ee()].forEach((e) => void He(e, [{ opacity: Number(e?.style.opacity || 1) }, { opacity: 1 }], {
3692
3692
  duration: 200,
3693
- easing: W
3693
+ easing: Be
3694
3694
  }));
3695
- }, ee = async () => {
3695
+ }, te = async () => {
3696
3696
  if (S.current) return;
3697
3697
  S.current = !0;
3698
3698
  let e = f.current?.style.transform || "none", t = D(a), n = {
3699
3699
  duration: 100,
3700
- easing: De
3700
+ easing: U
3701
3701
  };
3702
3702
  await Promise.all([
3703
- t ? Gi(f.current, [{ transform: e }, { transform: t }], {
3703
+ t ? Ji(f.current, [{ transform: e }, { transform: t }], {
3704
3704
  duration: 240,
3705
- easing: De
3706
- }).done : Gi(f.current, [{ opacity: 1 }, { opacity: 0 }], n).done,
3707
- Gi(p.current, [{ opacity: Number(p.current?.style.opacity || 1) }, { opacity: 0 }], {
3705
+ easing: U
3706
+ }).done : Ji(f.current, [{ opacity: 1 }, { opacity: 0 }], n).done,
3707
+ Ji(p.current, [{ opacity: Number(p.current?.style.opacity || 1) }, { opacity: 0 }], {
3708
3708
  duration: 240,
3709
- easing: De
3709
+ easing: U
3710
3710
  }).done,
3711
- ...k().map((e) => Gi(e, [{ opacity: Number(e?.style.opacity || 1) }, { opacity: 0 }], n).done)
3711
+ ...ee().map((e) => Ji(e, [{ opacity: Number(e?.style.opacity || 1) }, { opacity: 0 }], n).done)
3712
3712
  ]), s();
3713
- }, te = async (e, t) => {
3713
+ }, ne = async (e, t) => {
3714
3714
  if (!t || S.current) return;
3715
3715
  S.current = !0;
3716
- let n = f.current?.style.transform || "none", r = Gi(f.current, [{
3716
+ let n = f.current?.style.transform || "none", r = Ji(f.current, [{
3717
3717
  transform: n,
3718
3718
  opacity: 1
3719
3719
  }, {
@@ -3721,21 +3721,21 @@ function Ki({ id: e, board: n, src: r, siblings: i, origin: a, onOpen: o, onClos
3721
3721
  opacity: 0
3722
3722
  }], {
3723
3723
  duration: 180,
3724
- easing: De
3724
+ easing: U
3725
3725
  });
3726
3726
  await r.done, x.current = {
3727
3727
  dir: e,
3728
3728
  leaving: r.cancel
3729
3729
  }, S.current = !1, _(null), o(t);
3730
- }, re = (e) => {
3730
+ }, A = (e) => {
3731
3731
  let t = v.current;
3732
3732
  if (S.current || t?.mode === "dismiss" || t?.mode === "swipe" || (t && (t.mode = "pan"), d.onPointerDown(e), t)) return;
3733
3733
  [
3734
3734
  f.current,
3735
3735
  p.current,
3736
- ...k()
3736
+ ...ee()
3737
3737
  ].forEach((e) => e?.getAnimations().forEach((e) => e.cancel()));
3738
- let n = ae();
3738
+ let n = ce();
3739
3739
  n.add(e.clientX, e.clientY, performance.now()), v.current = {
3740
3740
  id: e.pointerId,
3741
3741
  x: e.clientX,
@@ -3743,13 +3743,13 @@ function Ki({ id: e, board: n, src: r, siblings: i, origin: a, onOpen: o, onClos
3743
3743
  mode: "pending",
3744
3744
  track: n
3745
3745
  };
3746
- }, ie = (e) => {
3746
+ }, re = (e) => {
3747
3747
  let t = v.current;
3748
3748
  if (!t || t.id !== e.pointerId) return d.onPointerMove(e);
3749
3749
  t.track.add(e.clientX, e.clientY, performance.now());
3750
3750
  let r = e.clientX - t.x, a = e.clientY - t.y;
3751
3751
  if (t.mode === "pending") {
3752
- let o = ne(r, a);
3752
+ let o = ae(r, a);
3753
3753
  if (!o) return;
3754
3754
  let s = n.w * l.k <= E().width + 1;
3755
3755
  t.mode = o === "y" && a > 0 && l.y >= -.5 ? "dismiss" : o === "x" && s && i.length > 1 ? "swipe" : "pan", t.mode !== "pan" && d.onPointerUp(e);
@@ -3759,18 +3759,18 @@ function Ki({ id: e, board: n, src: r, siblings: i, origin: a, onOpen: o, onClos
3759
3759
  dx: r,
3760
3760
  dy: a
3761
3761
  });
3762
- }, oe = (e) => {
3762
+ }, ie = (e) => {
3763
3763
  let t = v.current;
3764
3764
  if (!t || t.id !== e.pointerId || (v.current = null, t.mode === "pan" || t.mode === "pending")) return d.onPointerUp(e);
3765
3765
  let n = t.track.velocity(performance.now()), r = e.clientX - t.x, i = e.clientY - t.y;
3766
- if (t.mode === "dismiss") return i > Bi && n.y > -.4 || n.y > Vi ? void ee() : A();
3767
- let a = n.x < -.4 ? 1 : n.x > Ui ? -1 : 0, o = r < -110 ? 1 : r > Hi ? -1 : 0, s = a === 0 ? o : o === 0 || o === a ? a : 0, c = s === 1 ? T : s === -1 ? w : void 0;
3768
- c && s ? te(s, c) : A();
3769
- }, { width: se, height: ce } = E(), le, j = 1, de = 1;
3766
+ if (t.mode === "dismiss") return i > Ui && n.y > -.4 || n.y > Wi ? void te() : O();
3767
+ let a = n.x < -.4 ? 1 : n.x > Ki ? -1 : 0, o = r < -110 ? 1 : r > Gi ? -1 : 0, s = a === 0 ? o : o === 0 || o === a ? a : 0, c = s === 1 ? T : s === -1 ? w : void 0;
3768
+ c && s ? ne(s, c) : O();
3769
+ }, { width: oe, height: se } = E(), le, j = 1, ue = 1;
3770
3770
  if (g?.axis === "y") {
3771
3771
  let e = Math.max(0, g.dy), t = 1 - Math.min(e / 900, .3);
3772
- le = `translate(${g.dx * .6 + (1 - t) * se / 2}px, ${e + (1 - t) * ce / 2}px) scale(${t})`, j = 1 - Math.min(e / 420, .85), de = Math.max(0, 1 - e / Bi);
3773
- } else g?.axis === "x" && (le = `translateX(${g.dx > 0 && !w || g.dx < 0 && !T ? g.dx * Wi : g.dx}px)`);
3772
+ le = `translate(${g.dx * .6 + (1 - t) * oe / 2}px, ${e + (1 - t) * se / 2}px) scale(${t})`, j = 1 - Math.min(e / 420, .85), ue = Math.max(0, 1 - e / Ui);
3773
+ } else g?.axis === "x" && (le = `translateX(${g.dx > 0 && !w || g.dx < 0 && !T ? g.dx * qi : g.dx}px)`);
3774
3774
  return /* @__PURE__ */ Q("div", {
3775
3775
  "data-phone-board": !0,
3776
3776
  className: "xixxii4 x10a8y8t x68pp3s x78zum5 xdt5ytf xo2rkog xqfszdh",
@@ -3783,23 +3783,23 @@ function Ki({ id: e, board: n, src: r, siblings: i, origin: a, onOpen: o, onClos
3783
3783
  /* @__PURE__ */ Q("header", {
3784
3784
  ref: m,
3785
3785
  className: "x1n2onr6 x2lah0s xdd8jsf x78zum5 x6s0dn4 x195vfkc x135b78x xv54qhq xso031l x1q0q8m5 xtrfj0v x1rozbrz",
3786
- style: g ? { opacity: de } : void 0,
3786
+ style: g ? { opacity: ue } : void 0,
3787
3787
  children: [
3788
3788
  /* @__PURE__ */ Z("button", {
3789
3789
  type: "button",
3790
- "aria-label": R("phone.backToCanvas"),
3791
- onClick: () => void ee(),
3792
- ...O(zi.ghost),
3793
- children: /* @__PURE__ */ Z(xt, { size: 22 })
3790
+ "aria-label": V("phone.backToCanvas"),
3791
+ onClick: () => void te(),
3792
+ ...k(Hi.ghost),
3793
+ children: /* @__PURE__ */ Z(wt, { size: 22 })
3794
3794
  }),
3795
3795
  /* @__PURE__ */ Q("span", {
3796
3796
  className: "x98rzlu xeuugli x78zum5 xdt5ytf x12mrbbr",
3797
3797
  children: [/* @__PURE__ */ Z("span", {
3798
3798
  className: "xb3r6kr xuxw1ft xlyipyv x1jvydc1 x1s688f",
3799
- children: n.title ?? e
3799
+ children: n.title ?? t
3800
3800
  }), /* @__PURE__ */ Z("code", {
3801
3801
  className: "xb3r6kr xuxw1ft xlyipyv xddlp02 x1fao0z8 x1j6dyjg",
3802
- children: e
3802
+ children: t
3803
3803
  })]
3804
3804
  }),
3805
3805
  i.length > 1 ? /* @__PURE__ */ Q("span", {
@@ -3815,12 +3815,12 @@ function Ki({ id: e, board: n, src: r, siblings: i, origin: a, onOpen: o, onClos
3815
3815
  /* @__PURE__ */ Z("div", {
3816
3816
  ref: c,
3817
3817
  "data-board-body": !0,
3818
- onPointerDown: re,
3819
- onPointerMove: ie,
3820
- onPointerUp: oe,
3818
+ onPointerDown: A,
3819
+ onPointerMove: re,
3820
+ onPointerUp: ie,
3821
3821
  onPointerCancel: (e) => {
3822
3822
  let t = v.current;
3823
- t?.id === e.pointerId && ((t.mode === "dismiss" || t.mode === "swipe") && A(), v.current = null), d.onPointerCancel(e);
3823
+ t?.id === e.pointerId && ((t.mode === "dismiss" || t.mode === "swipe") && O(), v.current = null), d.onPointerCancel(e);
3824
3824
  },
3825
3825
  className: "x1n2onr6 x98rzlu x2lwn1j xb3r6kr x5ve5x3",
3826
3826
  children: /* @__PURE__ */ Z("div", {
@@ -3835,13 +3835,13 @@ function Ki({ id: e, board: n, src: r, siblings: i, origin: a, onOpen: o, onClos
3835
3835
  height: n.h,
3836
3836
  transform: `translate(${l.x}px, ${l.y}px) scale(${l.k})`
3837
3837
  },
3838
- children: t(n) ? /* @__PURE__ */ Z(ue, {
3839
- id: e,
3838
+ children: e(n) ? /* @__PURE__ */ Z(de, {
3839
+ id: t,
3840
3840
  board: n,
3841
3841
  src: r,
3842
3842
  zoom: l.k
3843
- }, e) : /* @__PURE__ */ Z("iframe", {
3844
- title: n.title ?? e,
3843
+ }, t) : /* @__PURE__ */ Z("iframe", {
3844
+ title: n.title ?? t,
3845
3845
  src: r,
3846
3846
  sandbox: "allow-scripts",
3847
3847
  className: "x1lliihq xc342km x83z2og",
@@ -3850,22 +3850,22 @@ function Ki({ id: e, board: n, src: r, siblings: i, origin: a, onOpen: o, onClos
3850
3850
  height: n.h,
3851
3851
  pointerEvents: n.interactive ? "auto" : "none"
3852
3852
  }
3853
- }, e)
3853
+ }, t)
3854
3854
  })
3855
3855
  })
3856
3856
  }),
3857
3857
  i.length > 1 ? /* @__PURE__ */ Q("div", {
3858
3858
  ref: h,
3859
3859
  className: "x1n2onr6 x2lah0s x78zum5 x6s0dn4 xdqyycr x1iorvi4 xe1blv6 x178xt8z x13fuv20 xxu5053 x1rozbrz",
3860
- style: g ? { opacity: de } : void 0,
3860
+ style: g ? { opacity: ue } : void 0,
3861
3861
  children: [
3862
3862
  /* @__PURE__ */ Z("button", {
3863
3863
  type: "button",
3864
- "aria-label": R("phone.previousBoard"),
3864
+ "aria-label": V("phone.previousBoard"),
3865
3865
  disabled: !w,
3866
- onClick: () => void te(-1, w),
3867
- ...O(zi.ghost),
3868
- children: /* @__PURE__ */ Z(xt, { size: 20 })
3866
+ onClick: () => void ne(-1, w),
3867
+ ...k(Hi.ghost),
3868
+ children: /* @__PURE__ */ Z(wt, { size: 20 })
3869
3869
  }),
3870
3870
  /* @__PURE__ */ Z("span", {
3871
3871
  className: "x98rzlu x78zum5 xl56j7k x17d4w8g",
@@ -3879,11 +3879,11 @@ function Ki({ id: e, board: n, src: r, siblings: i, origin: a, onOpen: o, onClos
3879
3879
  }),
3880
3880
  /* @__PURE__ */ Z("button", {
3881
3881
  type: "button",
3882
- "aria-label": R("phone.nextBoard"),
3882
+ "aria-label": V("phone.nextBoard"),
3883
3883
  disabled: !T,
3884
- onClick: () => void te(1, T),
3885
- ...O(zi.ghost),
3886
- children: /* @__PURE__ */ Z(St, { size: 20 })
3884
+ onClick: () => void ne(1, T),
3885
+ ...k(Hi.ghost),
3886
+ children: /* @__PURE__ */ Z(Tt, { size: 20 })
3887
3887
  })
3888
3888
  ]
3889
3889
  }) : null
@@ -3892,13 +3892,13 @@ function Ki({ id: e, board: n, src: r, siblings: i, origin: a, onOpen: o, onClos
3892
3892
  }
3893
3893
  //#endregion
3894
3894
  //#region src/viewer/lib/questions.ts
3895
- var qi = (e) => ({
3895
+ var Xi = (e) => ({
3896
3896
  minX: e.x,
3897
3897
  minY: e.y,
3898
3898
  maxX: e.x + e.w,
3899
3899
  maxY: e.y + e.h
3900
3900
  });
3901
- function Ji(e, t, n) {
3901
+ function Zi(e, t, n) {
3902
3902
  let r = t.pages[n];
3903
3903
  if (!r) return [];
3904
3904
  let i = /* @__PURE__ */ new Set(), a = [];
@@ -3910,7 +3910,7 @@ function Ji(e, t, n) {
3910
3910
  id: t,
3911
3911
  title: o.title ?? t,
3912
3912
  boards: c,
3913
- bounds: qi(s)
3913
+ bounds: Xi(s)
3914
3914
  });
3915
3915
  }
3916
3916
  }
@@ -3918,7 +3918,7 @@ function Ji(e, t, n) {
3918
3918
  id: t,
3919
3919
  title: r.title ?? t,
3920
3920
  boards: [t],
3921
- bounds: qi(r)
3921
+ bounds: Xi(r)
3922
3922
  });
3923
3923
  a.sort((e, t) => e.bounds.minY - t.bounds.minY || e.bounds.minX - t.bounds.minX);
3924
3924
  let o = Object.entries(e.notes ?? {}).filter(([e, t]) => t.page === n && t.kind === "title" && r.notes[e]).map(([e, t]) => ({
@@ -3930,31 +3930,31 @@ function Ji(e, t, n) {
3930
3930
  let t = o.filter((t) => t.rect.y + t.rect.h <= e.bounds.minY).sort((e, t) => t.rect.y - e.rect.y)[0], n = t?.id ?? null;
3931
3931
  s.has(n) || s.set(n, {
3932
3932
  id: n,
3933
- title: t?.text ?? F.t("common.other"),
3933
+ title: t?.text ?? R.t("common.other"),
3934
3934
  questions: []
3935
3935
  }), s.get(n).questions.push(e);
3936
3936
  }
3937
3937
  let c = (e) => o.find((t) => t.id === e)?.rect.y ?? -Infinity;
3938
3938
  return [...s.values()].sort((e, t) => c(t.id) - c(e.id));
3939
3939
  }
3940
- var Yi = (e) => e.flatMap((e) => e.questions);
3941
- function Xi(e, t) {
3942
- let n = Yi(e);
3940
+ var Qi = (e) => e.flatMap((e) => e.questions);
3941
+ function $i(e, t) {
3942
+ let n = Qi(e);
3943
3943
  if (t) {
3944
3944
  let r = e.find((e) => e.id === t)?.questions[0] ?? n.find((e) => e.id === t) ?? n.find((e) => e.boards.includes(t));
3945
3945
  if (r) return r;
3946
3946
  }
3947
3947
  return n[0] ?? null;
3948
3948
  }
3949
- function Zi(e, t, n) {
3949
+ function ea(e, t, n) {
3950
3950
  let r = e.findIndex((e) => e.id === t);
3951
3951
  return r === -1 ? null : e[r + n] ?? null;
3952
3952
  }
3953
- var Qi = .66, $i = (e, t, n) => e.id === t?.id ? "current" : n[e.id]?.state === "pass" ? "pass" : n[e.id]?.state === "reject" ? "reject" : "open";
3954
- function ea({ rounds: e, current: t, previous: n, next: r, pages: i, page: a, onPageChange: o, onPick: s, snap: c, onSnap: l, verdicts: u = {} }) {
3955
- let { t: d } = N(), f = Yi(e), p = t ? f.findIndex((e) => e.id === t.id) : -1;
3956
- return /* @__PURE__ */ Z(ie, {
3957
- snaps: [78, Qi],
3953
+ var ta = .66, na = (e, t, n) => e.id === t?.id ? "current" : n[e.id]?.state === "pass" ? "pass" : n[e.id]?.state === "reject" ? "reject" : "open";
3954
+ function ra({ rounds: e, current: t, previous: n, next: r, pages: i, page: a, onPageChange: o, onPick: s, snap: c, onSnap: l, verdicts: u = {} }) {
3955
+ let { t: d } = F(), f = Qi(e), p = t ? f.findIndex((e) => e.id === t.id) : -1;
3956
+ return /* @__PURE__ */ Z(se, {
3957
+ snaps: [78, ta],
3958
3958
  snap: c,
3959
3959
  onSnap: l,
3960
3960
  onScrim: () => l(78),
@@ -3966,8 +3966,8 @@ function ea({ rounds: e, current: t, previous: n, next: r, pages: i, page: a, on
3966
3966
  "aria-label": d("questions.previous"),
3967
3967
  disabled: !n,
3968
3968
  onClick: () => n && s(n),
3969
- ...O(zi.ghost),
3970
- children: /* @__PURE__ */ Z(xt, { size: 20 })
3969
+ ...k(Hi.ghost),
3970
+ children: /* @__PURE__ */ Z(wt, { size: 20 })
3971
3971
  }),
3972
3972
  /* @__PURE__ */ Q("span", {
3973
3973
  "data-question-bar": !0,
@@ -3999,7 +3999,7 @@ function ea({ rounds: e, current: t, previous: n, next: r, pages: i, page: a, on
3999
3999
  "data-progress": !0,
4000
4000
  className: "x78zum5 x1ed6fcf",
4001
4001
  children: f.map((e) => {
4002
- let n = $i(e, t, u);
4002
+ let n = na(e, t, u);
4003
4003
  return /* @__PURE__ */ Z("span", {
4004
4004
  "data-mark": n,
4005
4005
  ...{
@@ -4021,8 +4021,8 @@ function ea({ rounds: e, current: t, previous: n, next: r, pages: i, page: a, on
4021
4021
  "aria-label": d("questions.next"),
4022
4022
  disabled: !r,
4023
4023
  onClick: () => r && s(r),
4024
- ...O(zi.ghost),
4025
- children: /* @__PURE__ */ Z(St, { size: 20 })
4024
+ ...k(Hi.ghost),
4025
+ children: /* @__PURE__ */ Z(Tt, { size: 20 })
4026
4026
  })
4027
4027
  ]
4028
4028
  }),
@@ -4030,7 +4030,7 @@ function ea({ rounds: e, current: t, previous: n, next: r, pages: i, page: a, on
4030
4030
  className: "xwxc41k xqfszdh",
4031
4031
  children: [i.length > 1 ? /* @__PURE__ */ Z("div", {
4032
4032
  className: "x78zum5 x13a6bvl x1hr3lfm x12ulsxz",
4033
- children: /* @__PURE__ */ Z(Li, {
4033
+ children: /* @__PURE__ */ Z(Bi, {
4034
4034
  pages: i,
4035
4035
  page: a,
4036
4036
  onPageChange: o
@@ -4067,51 +4067,51 @@ function ea({ rounds: e, current: t, previous: n, next: r, pages: i, page: a, on
4067
4067
  }
4068
4068
  //#endregion
4069
4069
  //#region src/viewer/layouts/PhoneArtboard.tsx
4070
- var ta = {
4070
+ var ia = {
4071
4071
  top: 16,
4072
4072
  right: 16,
4073
4073
  bottom: 94,
4074
4074
  left: 16
4075
- }, na = 8, ra = /* @__PURE__ */ new Set(), ia = [];
4076
- function aa({ id: e, canvas: t, layout: n, warnings: r, pending: i, contentBase: a, versions: o, live: s, loaded: c, agent: d, comments: f, actions: p }) {
4077
- let { viewportRef: m, view: h, size: g, fit: _, handlers: v } = bi("hand"), [y, b] = Y(null), [x, S] = Y(78), [C, w] = Y(null), T = J(null), E = G((e, t = !1) => e ? (b(e.id), _(e.bounds, ta, { animate: t }), !0) : !1, [_]), { page: D, changePage: O } = Ii({
4075
+ }, aa = 8, oa = /* @__PURE__ */ new Set(), sa = [];
4076
+ function ca({ id: e, canvas: t, layout: n, warnings: r, pending: i, contentBase: a, versions: o, live: s, loaded: c, agent: l, comments: u, actions: d }) {
4077
+ let { viewportRef: f, view: p, size: h, fit: g, handlers: _ } = Ci("hand"), [y, b] = Y(null), [x, S] = Y(78), [C, w] = Y(null), T = J(null), E = G((e, t = !1) => e ? (b(e.id), g(e.bounds, ia, { animate: t }), !0) : !1, [g]), { page: D, changePage: ee } = zi({
4078
4078
  canvas: t,
4079
4079
  layout: n,
4080
4080
  fitPage: G((e) => {
4081
4081
  let r = n?.pages[e];
4082
- return !t || !r ? !1 : (E(Xi(Ji(t, n, e), t.focus?.target)) || (b(null), r.bounds && _(r.bounds, ta)), !0);
4082
+ return !t || !r ? !1 : (E($i(Zi(t, n, e), t.focus?.target)) || (b(null), r.bounds && g(r.bounds, ia)), !0);
4083
4083
  }, [
4084
4084
  t,
4085
4085
  n,
4086
- _,
4086
+ g,
4087
4087
  E
4088
4088
  ]),
4089
4089
  fitFocus: G((e, r) => {
4090
- t && n && E(Xi(Ji(t, n, r.page), e)) || _(r.bounds, ta);
4090
+ t && n && E($i(Zi(t, n, r.page), e)) || g(r.bounds, ia);
4091
4091
  }, [
4092
4092
  t,
4093
4093
  n,
4094
- _,
4094
+ g,
4095
4095
  E
4096
4096
  ]),
4097
4097
  startAtFocus: !0
4098
- }), k = q(() => t && n && D ? Ji(t, n, D) : [], [
4098
+ }), O = q(() => t && n && D ? Zi(t, n, D) : [], [
4099
4099
  t,
4100
4100
  n,
4101
4101
  D
4102
- ]), A = q(() => Yi(k), [k]), ee = A.find((e) => e.id === y) ?? null, te = (e) => {
4102
+ ]), te = q(() => Qi(O), [O]), k = te.find((e) => e.id === y) ?? null, ne = (e) => {
4103
4103
  E(e, !0), S(78);
4104
- }, ne = t?.boards ?? {}, re = q(() => Object.entries(t?.boards ?? {}).filter(([, e]) => e.page === D), [t, D]), ie = Object.entries(t?.groups ?? {}).filter(([, e]) => e.boards.some((e) => ne[e]?.page === D)), ae = Object.entries(t?.notes ?? {}).filter(([, e]) => e.page === D), oe = q(() => new Set(i), [i]), se = q(() => new Set(f?.stale ?? []), [f]), ce = Ur({
4104
+ }, A = t?.boards ?? {}, re = q(() => Object.entries(t?.boards ?? {}).filter(([, e]) => e.page === D), [t, D]), ie = Object.entries(t?.groups ?? {}).filter(([, e]) => e.boards.some((e) => A[e]?.page === D)), ae = Object.entries(t?.notes ?? {}).filter(([, e]) => e.page === D), oe = q(() => new Set(i), [i]), se = q(() => new Set(u?.stale ?? []), [u]), ce = Kr({
4105
4105
  canvas: t,
4106
4106
  page: D,
4107
- threads: f?.comments.threads ?? ia,
4107
+ threads: u?.comments.threads ?? sa,
4108
4108
  stale: se,
4109
4109
  versions: o
4110
4110
  }), le = (e) => {
4111
- let t = m.current.getBoundingClientRect(), n = (e.clientX - t.left - h.x) / h.k, r = (e.clientY - t.top - h.y) / h.k;
4111
+ let t = f.current.getBoundingClientRect(), n = (e.clientX - t.left - p.x) / p.k, r = (e.clientY - t.top - p.y) / p.k;
4112
4112
  return re.find(([, e]) => n >= e.x && n <= e.x + e.w && r >= e.y && r <= e.y + e.h)?.[0] ?? null;
4113
4113
  }, j = (e) => {
4114
- v.onPointerDown(e);
4114
+ _.onPointerDown(e);
4115
4115
  let t = !e.currentTarget.contains(e.target) || e.target.closest("[data-chrome]");
4116
4116
  T.current = T.current || t ? null : {
4117
4117
  pointer: e.pointerId,
@@ -4119,75 +4119,75 @@ function aa({ id: e, canvas: t, layout: n, warnings: r, pending: i, contentBase:
4119
4119
  y: e.clientY
4120
4120
  };
4121
4121
  }, ue = (e) => {
4122
- v.onPointerMove(e);
4122
+ _.onPointerMove(e);
4123
4123
  let t = T.current;
4124
- t && (t.pointer !== e.pointerId || Math.hypot(e.clientX - t.x, e.clientY - t.y) > na) && (T.current = null);
4125
- }, de = (e) => {
4126
- v.onPointerUp(e);
4124
+ t && (t.pointer !== e.pointerId || Math.hypot(e.clientX - t.x, e.clientY - t.y) > aa) && (T.current = null);
4125
+ }, M = (e) => {
4126
+ _.onPointerUp(e);
4127
4127
  let t = T.current;
4128
4128
  if (T.current = null, t?.pointer !== e.pointerId) return;
4129
4129
  let n = le(e);
4130
4130
  n && w(n);
4131
- }, M = C ? ne[C] : void 0, pe = m.current?.getBoundingClientRect(), N = M && pe ? {
4132
- x: pe.left + h.x + M.x * h.k,
4133
- y: pe.top + h.y + M.y * h.k,
4134
- w: M.w * h.k,
4135
- h: M.h * h.k
4136
- } : void 0, P = (e) => !t?.groups?.[e.id], me = C ? k.find((e) => e.questions.some((e) => e.boards.includes(C))) : void 0, F = me?.questions.find((e) => e.boards.includes(C)), I = C ? F ? P(F) ? me.questions.filter(P).map((e) => e.id) : F.boards : [C] : [];
4131
+ }, N = C ? A[C] : void 0, de = f.current?.getBoundingClientRect(), fe = N && de ? {
4132
+ x: de.left + p.x + N.x * p.k,
4133
+ y: de.top + p.y + N.y * p.k,
4134
+ w: N.w * p.k,
4135
+ h: N.h * p.k
4136
+ } : void 0, P = (e) => !t?.groups?.[e.id], me = C ? O.find((e) => e.questions.some((e) => e.boards.includes(C))) : void 0, F = me?.questions.find((e) => e.boards.includes(C)), I = C ? F ? P(F) ? me.questions.filter(P).map((e) => e.id) : F.boards : [C] : [];
4137
4137
  return /* @__PURE__ */ Q("div", {
4138
4138
  className: "xixxii4 x10a8y8t x78zum5 xdt5ytf x184qs1t",
4139
4139
  children: [
4140
- /* @__PURE__ */ Z(Ri, {
4140
+ /* @__PURE__ */ Z(Vi, {
4141
4141
  title: t?.title || e,
4142
4142
  pages: t?.pages ?? [],
4143
4143
  page: D,
4144
- onPageChange: O,
4145
- actions: p,
4144
+ onPageChange: ee,
4145
+ actions: d,
4146
4146
  live: s
4147
4147
  }),
4148
4148
  /* @__PURE__ */ Q("div", {
4149
- ref: m,
4149
+ ref: f,
4150
4150
  className: "x1n2onr6 x98rzlu x2lwn1j xb3r6kr x5ve5x3 x87ps6o xqfszdh xo2rkog",
4151
4151
  onPointerDown: j,
4152
4152
  onPointerMove: ue,
4153
- onPointerUp: de,
4153
+ onPointerUp: M,
4154
4154
  onPointerCancel: (e) => {
4155
- v.onPointerCancel(e), T.current = null;
4155
+ _.onPointerCancel(e), T.current = null;
4156
4156
  },
4157
- children: [t && n ? /* @__PURE__ */ Q(u, {
4157
+ children: [t && n ? /* @__PURE__ */ Q(m, {
4158
4158
  resetKey: t,
4159
- children: [/* @__PURE__ */ Z(fe, {
4160
- view: h,
4161
- renders: l({
4159
+ children: [/* @__PURE__ */ Z(pe, {
4160
+ view: p,
4161
+ renders: v({
4162
4162
  boards: re.map(([e, t]) => ({
4163
4163
  id: e,
4164
4164
  ...t
4165
4165
  })),
4166
- view: h,
4167
- viewport: g
4166
+ view: p,
4167
+ viewport: h
4168
4168
  }),
4169
4169
  boards: re,
4170
4170
  notes: ae,
4171
4171
  contentBase: a,
4172
4172
  versions: o,
4173
4173
  pending: oe,
4174
- playing: ra,
4174
+ playing: oa,
4175
4175
  replays: {},
4176
4176
  inspecting: !1,
4177
4177
  frameRef: () => () => {},
4178
4178
  frameLoaded: () => {},
4179
4179
  live: s,
4180
4180
  writing: s ? t.writing : void 0,
4181
- agent: d
4182
- }), /* @__PURE__ */ Z(Qn, {
4183
- view: h,
4181
+ agent: l
4182
+ }), /* @__PURE__ */ Z(tr, {
4183
+ view: p,
4184
4184
  boards: re,
4185
4185
  groups: ie,
4186
- allBoards: ne,
4186
+ allBoards: A,
4187
4187
  contentBase: a,
4188
4188
  versions: o,
4189
4189
  pending: oe,
4190
- playing: ra,
4190
+ playing: oa,
4191
4191
  onExpand: w,
4192
4192
  onTogglePlay: w,
4193
4193
  onReplay: () => {},
@@ -4196,30 +4196,30 @@ function aa({ id: e, canvas: t, layout: n, warnings: r, pending: i, contentBase:
4196
4196
  }) : /* @__PURE__ */ Z("div", {
4197
4197
  className: "x10l6tqk x10a8y8t xrvj5dj x1ku5rj1 xggk2y7 x1bo0w0s xif65rj x2b8uid",
4198
4198
  children: c ? r[0] ?? "Waiting for the agent to write canvas.json…" : "Connecting…"
4199
- }), A.length > 0 ? /* @__PURE__ */ Z("div", {
4199
+ }), te.length > 0 ? /* @__PURE__ */ Z("div", {
4200
4200
  "data-chrome": !0,
4201
4201
  className: "x10l6tqk x10a8y8t x1n327nk x47corl",
4202
- children: /* @__PURE__ */ Z(ea, {
4203
- rounds: k,
4204
- current: ee,
4205
- previous: y ? Zi(A, y, -1) : null,
4206
- next: y ? Zi(A, y, 1) : null,
4202
+ children: /* @__PURE__ */ Z(ra, {
4203
+ rounds: O,
4204
+ current: k,
4205
+ previous: y ? ea(te, y, -1) : null,
4206
+ next: y ? ea(te, y, 1) : null,
4207
4207
  pages: t?.pages ?? [],
4208
4208
  page: D,
4209
- onPageChange: O,
4210
- onPick: te,
4209
+ onPageChange: ee,
4210
+ onPick: ne,
4211
4211
  snap: x,
4212
4212
  onSnap: S,
4213
4213
  verdicts: ce.states
4214
4214
  })
4215
4215
  }) : null]
4216
4216
  }),
4217
- C && M ? /* @__PURE__ */ Z(Ki, {
4217
+ C && N ? /* @__PURE__ */ Z(Yi, {
4218
4218
  id: C,
4219
- board: M,
4220
- src: `${a}${M.file}?v=${o[M.file] ?? 0}`,
4219
+ board: N,
4220
+ src: `${a}${N.file}?v=${o[N.file] ?? 0}`,
4221
4221
  siblings: I,
4222
- origin: N,
4222
+ origin: fe,
4223
4223
  onOpen: w,
4224
4224
  onClose: () => w(null)
4225
4225
  }) : null
@@ -4228,7 +4228,7 @@ function aa({ id: e, canvas: t, layout: n, warnings: r, pending: i, contentBase:
4228
4228
  }
4229
4229
  //#endregion
4230
4230
  //#region src/viewer/hooks/useBoardTweaks.ts
4231
- function oa(e) {
4231
+ function la(e) {
4232
4232
  let t = J({}), [n, r] = Y(t.current), i = J(/* @__PURE__ */ new Map()), a = J(/* @__PURE__ */ new Map()), o = G((e, n) => {
4233
4233
  t.current = {
4234
4234
  ...t.current,
@@ -4253,9 +4253,9 @@ function oa(e) {
4253
4253
  let r = [...i.current.values()].find((t) => t.element.contentWindow === e.source && t.connection === n.connection);
4254
4254
  if (!r || r.session && r.session !== n.session || n.error !== null && (typeof n.error != "string" || n.error.length > 512)) return;
4255
4255
  r.session = n.session;
4256
- let a = Qt(n.schema);
4256
+ let a = tn(n.schema);
4257
4257
  n.error && (a.schema = null, a.error = n.error);
4258
- let c = t.current[r.boardId], l = a.schema ? en(a.schema, c?.values, c?.schema ?? void 0) : {};
4258
+ let c = t.current[r.boardId], l = a.schema ? rn(a.schema, c?.values, c?.schema ?? void 0) : {};
4259
4259
  o(r.boardId, {
4260
4260
  ...a,
4261
4261
  values: l
@@ -4281,7 +4281,7 @@ function oa(e) {
4281
4281
  connection: n.connection
4282
4282
  }, "*"));
4283
4283
  }, []), u = G((e, n) => {
4284
- let r = t.current[e], i = r?.schema && $t(r.schema, n);
4284
+ let r = t.current[e], i = r?.schema && nn(r.schema, n);
4285
4285
  r && i && (o(e, {
4286
4286
  ...r,
4287
4287
  values: i
@@ -4299,23 +4299,23 @@ function oa(e) {
4299
4299
  }, [u]),
4300
4300
  reset: G((e) => {
4301
4301
  let n = t.current[e]?.schema;
4302
- n && u(e, en(n));
4302
+ n && u(e, rn(n));
4303
4303
  }, [u])
4304
4304
  };
4305
4305
  }
4306
- var sa = (e, t) => ({
4306
+ var ua = (e, t) => ({
4307
4307
  left: t.x + (e.x + e.w) * t.k + 12,
4308
4308
  top: t.y + e.y * t.k
4309
4309
  });
4310
- function ca(e, t, n) {
4311
- let r = sa(e, t);
4310
+ function da(e, t, n) {
4311
+ let r = ua(e, t);
4312
4312
  return {
4313
4313
  x: Math.min(Math.max(12, r.left), Math.max(12, n.width - 352 - 12)) - r.left,
4314
4314
  y: Math.min(Math.max(60, r.top), Math.max(60, n.height - 604 - 12)) - r.top
4315
4315
  };
4316
4316
  }
4317
- function la({ control: e, value: t, change: n }) {
4318
- let r = Ge(), i = e.type === "enum" && e.options.length <= 3, a = i ? "fieldset" : "div", o;
4317
+ function fa({ control: e, value: t, change: n }) {
4318
+ let r = Je(), i = e.type === "enum" && e.options.length <= 3, a = i ? "fieldset" : "div", o;
4319
4319
  return o = e.type === "color" ? /* @__PURE__ */ Q("div", {
4320
4320
  className: "rt-color",
4321
4321
  children: [e.options && /* @__PURE__ */ Z("div", {
@@ -4329,13 +4329,13 @@ function la({ control: e, value: t, change: n }) {
4329
4329
  style: { backgroundColor: r.value },
4330
4330
  onClick: () => n(r.value)
4331
4331
  }, r.value))
4332
- }), /* @__PURE__ */ Z(Qe, {
4332
+ }), /* @__PURE__ */ Z(tt, {
4333
4333
  size: "small",
4334
4334
  alpha: !1,
4335
4335
  recent: !1,
4336
4336
  value: t,
4337
4337
  onChange: n,
4338
- children: /* @__PURE__ */ Q(Ze, {
4338
+ children: /* @__PURE__ */ Q(et, {
4339
4339
  id: r,
4340
4340
  "aria-label": e.label,
4341
4341
  size: "small",
@@ -4345,14 +4345,14 @@ function la({ control: e, value: t, change: n }) {
4345
4345
  }), /* @__PURE__ */ Z("code", { children: String(t) })]
4346
4346
  })
4347
4347
  })]
4348
- }) : e.type === "boolean" ? /* @__PURE__ */ Z(ct, {
4348
+ }) : e.type === "boolean" ? /* @__PURE__ */ Z(dt, {
4349
4349
  id: r,
4350
4350
  "aria-label": e.label,
4351
4351
  checked: t,
4352
4352
  onChange: n
4353
4353
  }) : e.type === "range" ? /* @__PURE__ */ Q("div", {
4354
4354
  className: "rt-range",
4355
- children: [/* @__PURE__ */ Z(st, {
4355
+ children: [/* @__PURE__ */ Z(ut, {
4356
4356
  "aria-labelledby": `${r}-label`,
4357
4357
  value: t,
4358
4358
  min: e.min,
@@ -4360,7 +4360,7 @@ function la({ control: e, value: t, change: n }) {
4360
4360
  step: e.step,
4361
4361
  onChange: n
4362
4362
  }), /* @__PURE__ */ Z("output", { children: String(t) })]
4363
- }) : e.type === "number" ? /* @__PURE__ */ Z(rt, {
4363
+ }) : e.type === "number" ? /* @__PURE__ */ Z(ot, {
4364
4364
  id: r,
4365
4365
  "aria-label": e.label,
4366
4366
  size: "small",
@@ -4372,13 +4372,13 @@ function la({ control: e, value: t, change: n }) {
4372
4372
  e !== null && n(e);
4373
4373
  },
4374
4374
  style: { width: "100%" }
4375
- }) : e.type === "enum" ? i ? /* @__PURE__ */ Z(at, {
4375
+ }) : e.type === "enum" ? i ? /* @__PURE__ */ Z(ct, {
4376
4376
  size: "small",
4377
4377
  block: !0,
4378
4378
  value: t,
4379
4379
  options: e.options,
4380
4380
  onChange: n
4381
- }) : /* @__PURE__ */ Z(ot, {
4381
+ }) : /* @__PURE__ */ Z(lt, {
4382
4382
  id: r,
4383
4383
  size: "small",
4384
4384
  value: t,
@@ -4387,7 +4387,7 @@ function la({ control: e, value: t, change: n }) {
4387
4387
  typeof e == "string" && n(e);
4388
4388
  },
4389
4389
  style: { width: "100%" }
4390
- }) : /* @__PURE__ */ Z(nt, {
4390
+ }) : /* @__PURE__ */ Z(at, {
4391
4391
  id: r,
4392
4392
  "aria-label": e.label,
4393
4393
  size: "small",
@@ -4405,19 +4405,19 @@ function la({ control: e, value: t, change: n }) {
4405
4405
  }), o]
4406
4406
  });
4407
4407
  }
4408
- function ua({ boardId: e, title: t, state: n, anchor: r, onChange: i, onReset: a, onClose: o }) {
4408
+ function pa({ boardId: e, title: t, state: n, anchor: r, onChange: i, onReset: a, onClose: o }) {
4409
4409
  let s = J(null), c = /* @__PURE__ */ new Map();
4410
4410
  for (let e of Object.entries(n.schema?.controls ?? {})) {
4411
- let t = e[1].section || R("parameters.controls");
4411
+ let t = e[1].section || V("parameters.controls");
4412
4412
  c.has(t) || c.set(t, []), c.get(t).push(e);
4413
4413
  }
4414
4414
  let l = Object.entries(n.values).filter(([e, t]) => t !== n.schema?.controls[e]?.default).length;
4415
- return /* @__PURE__ */ Q(tt, {
4415
+ return /* @__PURE__ */ Q(it, {
4416
4416
  config: { "aria-hidden": !0 },
4417
4417
  children: [/* @__PURE__ */ Q("aside", {
4418
4418
  className: "ryugi-parameters",
4419
4419
  "data-chrome": "parameters",
4420
- "aria-label": R("parameters.title"),
4420
+ "aria-label": V("parameters.title"),
4421
4421
  style: {
4422
4422
  position: r ? "absolute" : "relative",
4423
4423
  ...r,
@@ -4425,22 +4425,22 @@ function ua({ boardId: e, title: t, state: n, anchor: r, onChange: i, onReset: a
4425
4425
  maxHeight: r ? `min(604px, calc(100% - ${Math.max(0, r.top)}px - 12px))` : "min(604px, calc(100vh - 112px))"
4426
4426
  },
4427
4427
  onKeyDown: (e) => {
4428
- e.stopPropagation(), e.key === "Escape" && !e.defaultPrevented && !Ue(e.nativeEvent) && o();
4428
+ e.stopPropagation(), e.key === "Escape" && !e.defaultPrevented && !Ke(e.nativeEvent) && o();
4429
4429
  },
4430
4430
  children: [
4431
4431
  /* @__PURE__ */ Q("header", {
4432
4432
  className: "rt-header",
4433
4433
  children: [
4434
- /* @__PURE__ */ Z(Kt, {
4434
+ /* @__PURE__ */ Z(Yt, {
4435
4435
  size: 15,
4436
4436
  "aria-hidden": !0
4437
4437
  }),
4438
- /* @__PURE__ */ Z("h2", { children: R("parameters.title") }),
4439
- /* @__PURE__ */ Z(Xe, {
4440
- icon: Yt,
4438
+ /* @__PURE__ */ Z("h2", { children: V("parameters.title") }),
4439
+ /* @__PURE__ */ Z($e, {
4440
+ icon: Qt,
4441
4441
  size: "small",
4442
- "aria-label": R("parameters.close"),
4443
- title: R("parameters.close"),
4442
+ "aria-label": V("parameters.close"),
4443
+ title: V("parameters.close"),
4444
4444
  onClick: o
4445
4445
  })
4446
4446
  ]
@@ -4448,12 +4448,12 @@ function ua({ boardId: e, title: t, state: n, anchor: r, onChange: i, onReset: a
4448
4448
  /* @__PURE__ */ Q("div", {
4449
4449
  className: "rt-board",
4450
4450
  children: [
4451
- /* @__PURE__ */ Z(Dt, {
4451
+ /* @__PURE__ */ Z(At, {
4452
4452
  size: 17,
4453
4453
  "aria-hidden": !0
4454
4454
  }),
4455
4455
  /* @__PURE__ */ Q("div", { children: [/* @__PURE__ */ Z("strong", { children: t }), /* @__PURE__ */ Z("code", { children: e })] }),
4456
- /* @__PURE__ */ Z("span", { children: R("parameters.currentBoard") })
4456
+ /* @__PURE__ */ Z("span", { children: V("parameters.currentBoard") })
4457
4457
  ]
4458
4458
  }),
4459
4459
  /* @__PURE__ */ Q("div", {
@@ -4466,7 +4466,7 @@ function ua({ boardId: e, title: t, state: n, anchor: r, onChange: i, onReset: a
4466
4466
  }),
4467
4467
  [...c].map(([e, t]) => /* @__PURE__ */ Q("section", {
4468
4468
  className: "rt-section",
4469
- children: [/* @__PURE__ */ Z("h3", { children: e }), t.map(([e, t]) => /* @__PURE__ */ Z(la, {
4469
+ children: [/* @__PURE__ */ Z("h3", { children: e }), t.map(([e, t]) => /* @__PURE__ */ Z(fa, {
4470
4470
  control: t,
4471
4471
  value: n.values[e],
4472
4472
  change: (t) => i(e, t)
@@ -4474,12 +4474,12 @@ function ua({ boardId: e, title: t, state: n, anchor: r, onChange: i, onReset: a
4474
4474
  }, e)),
4475
4475
  n.schema && /* @__PURE__ */ Q("div", {
4476
4476
  className: "rt-declaration",
4477
- children: [/* @__PURE__ */ Z("span", { children: R("parameters.declaredBy") }), /* @__PURE__ */ Z(Ze, {
4477
+ children: [/* @__PURE__ */ Z("span", { children: V("parameters.declaredBy") }), /* @__PURE__ */ Z(et, {
4478
4478
  size: "small",
4479
4479
  type: "text",
4480
- icon: Dt,
4480
+ icon: At,
4481
4481
  onClick: () => s.current?.showModal(),
4482
- children: R("parameters.viewDeclaration")
4482
+ children: V("parameters.viewDeclaration")
4483
4483
  })]
4484
4484
  })
4485
4485
  ]
@@ -4488,50 +4488,50 @@ function ua({ boardId: e, title: t, state: n, anchor: r, onChange: i, onReset: a
4488
4488
  className: "rt-footer",
4489
4489
  children: [/* @__PURE__ */ Z("span", {
4490
4490
  role: "status",
4491
- children: l ? R("parameters.changed", { count: l }) : R("parameters.defaults")
4492
- }), /* @__PURE__ */ Z(Ze, {
4491
+ children: l ? V("parameters.changed", { count: l }) : V("parameters.defaults")
4492
+ }), /* @__PURE__ */ Z(et, {
4493
4493
  size: "small",
4494
4494
  type: "text",
4495
- icon: Wt,
4495
+ icon: qt,
4496
4496
  disabled: !l,
4497
4497
  onClick: a,
4498
- children: R("parameters.reset")
4498
+ children: V("parameters.reset")
4499
4499
  })]
4500
4500
  })
4501
4501
  ]
4502
4502
  }), /* @__PURE__ */ Q("dialog", {
4503
4503
  ref: s,
4504
4504
  className: "rt-dialog",
4505
- "aria-label": R("parameters.declaration"),
4505
+ "aria-label": V("parameters.declaration"),
4506
4506
  onKeyDown: (e) => e.stopPropagation(),
4507
4507
  children: [
4508
- /* @__PURE__ */ Q("header", { children: [/* @__PURE__ */ Z("h2", { children: R("parameters.declaration") }), /* @__PURE__ */ Z(Xe, {
4509
- icon: Yt,
4508
+ /* @__PURE__ */ Q("header", { children: [/* @__PURE__ */ Z("h2", { children: V("parameters.declaration") }), /* @__PURE__ */ Z($e, {
4509
+ icon: Qt,
4510
4510
  size: "small",
4511
- "aria-label": R("parameters.closeDeclaration"),
4511
+ "aria-label": V("parameters.closeDeclaration"),
4512
4512
  onClick: () => s.current?.close()
4513
4513
  })] }),
4514
4514
  /* @__PURE__ */ Z("pre", {
4515
4515
  tabIndex: 0,
4516
4516
  children: JSON.stringify(n.schema, null, 2)
4517
4517
  }),
4518
- /* @__PURE__ */ Z("h3", { children: R("parameters.currentValues") }),
4518
+ /* @__PURE__ */ Z("h3", { children: V("parameters.currentValues") }),
4519
4519
  /* @__PURE__ */ Z("pre", {
4520
4520
  tabIndex: 0,
4521
4521
  children: JSON.stringify(n.values, null, 2)
4522
4522
  }),
4523
- /* @__PURE__ */ Z("p", { children: R("parameters.sessionOnly") })
4523
+ /* @__PURE__ */ Z("p", { children: V("parameters.sessionOnly") })
4524
4524
  ]
4525
4525
  })]
4526
4526
  });
4527
4527
  }
4528
4528
  //#endregion
4529
4529
  //#region src/viewer/layouts/ArtboardView.tsx
4530
- function da(e) {
4531
- return Ne("(max-width: 640px)") ? /* @__PURE__ */ Z(aa, { ...e }) : /* @__PURE__ */ Z(fa, { ...e });
4530
+ function ma(e) {
4531
+ return Ie("(max-width: 640px)") ? /* @__PURE__ */ Z(ca, { ...e }) : /* @__PURE__ */ Z(ha, { ...e });
4532
4532
  }
4533
- function fa({ id: e, artifact: t, canvas: n, layout: r, warnings: i, pending: a, contentBase: o, versions: s, live: c, loaded: d, send: f, agent: p, comments: m, comment: h, actions: g, tiers: _ = !0 }) {
4534
- let [v, y] = Y("select"), { viewportRef: b, view: x, scaling: S, size: C, fit: w, zoomBy: T, zoomTo: E, cursor: O, hand: k, handlers: A, panBy: ee, wheelAt: te, panning: ne, setSpaceHeld: re } = bi(v), [ie, ae] = Y(!1), [oe] = Y(() => new URLSearchParams(location.search).has("debug")), [se, ce] = Y("open"), le = (e) => e && r?.pages[e]?.bounds || null, { page: j, changePage: ue } = Ii({
4533
+ function ha({ id: e, artifact: t, canvas: n, layout: r, warnings: i, pending: a, contentBase: o, versions: s, live: c, loaded: l, send: u, agent: d, comments: f, comment: p, actions: h, tiers: g = !0 }) {
4534
+ let [_, y] = Y("select"), { viewportRef: b, view: x, scaling: S, size: C, fit: w, zoomBy: T, zoomTo: E, cursor: D, hand: ee, handlers: O, panBy: k, wheelAt: ne, panning: A, setSpaceHeld: re } = Ci(_), [ie, ae] = Y(!1), [oe] = Y(() => new URLSearchParams(location.search).has("debug")), [se, ce] = Y("open"), le = (e) => e && r?.pages[e]?.bounds || null, { page: j, changePage: ue } = zi({
4535
4535
  canvas: n,
4536
4536
  layout: r,
4537
4537
  fitPage: G((e) => {
@@ -4539,59 +4539,59 @@ function fa({ id: e, artifact: t, canvas: n, layout: r, warnings: i, pending: a,
4539
4539
  return t ? (w(t), !0) : !1;
4540
4540
  }, [r, w]),
4541
4541
  fitFocus: G((e, t) => w(t.bounds), [w])
4542
- }), [M, pe] = Y(null), [N, P] = Y(() => /* @__PURE__ */ new Set()), [me, F] = Y({}), I = oa(e), [L, he] = Y(null), ge = J(null);
4543
- K(() => he(null), [j, e]);
4544
- let _e = () => {
4545
- he(null), ge.current?.focus();
4546
- }, ve = (e, t) => {
4547
- ge.current = t;
4542
+ }), [M, N] = Y(null), [de, P] = Y(() => /* @__PURE__ */ new Set()), [me, F] = Y({}), I = la(e), [L, R] = Y(null), he = J(null);
4543
+ K(() => R(null), [j, e]);
4544
+ let ge = () => {
4545
+ R(null), he.current?.focus();
4546
+ }, _e = (e, t) => {
4547
+ he.current = t;
4548
4548
  let r = n?.boards[e], i = b.current;
4549
4549
  if (L !== e && !M && r && i) {
4550
- let e = ca(r, x, {
4550
+ let e = da(r, x, {
4551
4551
  width: i.clientWidth,
4552
4552
  height: i.clientHeight
4553
4553
  });
4554
- (e.x || e.y) && ee(e.x, e.y);
4554
+ (e.x || e.y) && k(e.x, e.y);
4555
4555
  }
4556
- he((t) => t === e ? null : e);
4557
- }, ye = v === "select" && !M && !ne, z = v === "comment", be = !M && (v === "select" || z || ie), B = ri({
4558
- enabled: be,
4556
+ R((t) => t === e ? null : e);
4557
+ }, ve = _ === "select" && !M && !A, z = _ === "comment", ye = !M && (_ === "select" || z || ie), B = oi({
4558
+ enabled: ye,
4559
4559
  mode: z ? "comment" : "select",
4560
- playing: N,
4560
+ playing: de,
4561
4561
  onInput: (e, t) => {
4562
4562
  let r = n?.boards[e];
4563
- r && (t.type === "ryugi:inspect:wheel" ? te({
4563
+ r && (t.type === "ryugi:inspect:wheel" ? ne({
4564
4564
  ...t,
4565
4565
  x: x.x + (r.x + t.x) * x.k,
4566
4566
  y: x.y + (r.y + t.y) * x.k
4567
- }) : t.type === "ryugi:inspect:pan" ? ee(t.deltaX, t.deltaY) : t.type === "ryugi:inspect:drag" ? z ? V.onFrameDrag(e, t) : ye && W.drag(t.phase, r.x + t.x, r.y + t.y, t.append, t.id ? {
4567
+ }) : t.type === "ryugi:inspect:pan" ? k(t.deltaX, t.deltaY) : t.type === "ryugi:inspect:drag" ? z ? H.onFrameDrag(e, t) : ve && W.drag(t.phase, r.x + t.x, r.y + t.y, t.append, t.id ? {
4568
4568
  boardId: e,
4569
4569
  id: t.id
4570
4570
  } : void 0) : t.code === "Space" ? re(t.down) : t.down && Oe(t));
4571
4571
  }
4572
4572
  });
4573
- ui({
4573
+ pi({
4574
4574
  artifact: t,
4575
4575
  boards: n?.boards,
4576
4576
  live: c,
4577
4577
  inspector: B,
4578
- send: f
4578
+ send: u
4579
4579
  });
4580
- let V = cr({
4581
- comments: m,
4582
- comment: h,
4580
+ let H = dr({
4581
+ comments: f,
4582
+ comment: p,
4583
4583
  page: j,
4584
4584
  boards: n?.boards ?? {},
4585
4585
  inspector: B
4586
- }), H = Ur({
4586
+ }), be = Kr({
4587
4587
  canvas: n,
4588
4588
  page: j,
4589
- threads: V.threads,
4590
- stale: V.stale,
4589
+ threads: H.threads,
4590
+ stale: H.stale,
4591
4591
  versions: s,
4592
- comment: h
4593
- }), xe = H.rejecting ? H.origin(H.rejecting) : null, Se = () => {
4594
- let e = H.progress.next && j ? r?.pages[j]?.groups[H.progress.next] : void 0;
4592
+ comment: p
4593
+ }), xe = be.rejecting ? be.origin(be.rejecting) : null, Se = () => {
4594
+ let e = be.progress.next && j ? r?.pages[j]?.groups[be.progress.next] : void 0;
4595
4595
  e && w({
4596
4596
  minX: e.x,
4597
4597
  minY: e.y,
@@ -4599,10 +4599,10 @@ function fa({ id: e, artifact: t, canvas: n, layout: r, warnings: i, pending: a,
4599
4599
  maxY: e.y + e.h
4600
4600
  });
4601
4601
  }, Ce = (e) => {
4602
- (e !== "comment" || h) && (e === "comment" && v === "select" && V.commentSelection(), e !== "comment" && V.close(), y(e));
4602
+ (e !== "comment" || p) && (e === "comment" && _ === "select" && H.commentSelection(), e !== "comment" && H.close(), y(e));
4603
4603
  }, we = (e) => {
4604
- let t = V.threads.find((t) => t.id === e), r = t && on(t.anchor, n?.boards ?? {}), i = b.current;
4605
- r && i && ee(i.clientWidth / 2 - (x.x + r.x * x.k), i.clientHeight / 2 - (x.y + r.y * x.k)), V.setOpenId(e);
4604
+ let t = H.threads.find((t) => t.id === e), r = t && ln(t.anchor, n?.boards ?? {}), i = b.current;
4605
+ r && i && k(i.clientWidth / 2 - (x.x + r.x * x.k), i.clientHeight / 2 - (x.y + r.y * x.k)), H.setOpenId(e);
4606
4606
  }, Te = G(() => ae(!1), []);
4607
4607
  K(() => {
4608
4608
  M && re(!1);
@@ -4610,38 +4610,38 @@ function fa({ id: e, artifact: t, canvas: n, layout: r, warnings: i, pending: a,
4610
4610
  let Ee = q(() => new Set(a), [a]), De = n?.pages ?? [];
4611
4611
  K(() => {
4612
4612
  document.title = n?.title || e;
4613
- }, [n?.title, e]), D("artboard");
4613
+ }, [n?.title, e]), te("artboard");
4614
4614
  function Oe(e) {
4615
4615
  if ("target" in e && e.target?.closest?.("input, textarea, select, [contenteditable], [role=\"tree\"], [role=\"treeitem\"], [data-chrome=\"parameters\"]")) return;
4616
4616
  let t = () => {
4617
4617
  "preventDefault" in e && e.preventDefault();
4618
4618
  }, n = e.metaKey || e.ctrlKey;
4619
- e.key === "Escape" && z ? V.close() || Ce("select") : e.key === "Escape" ? L ? _e() : (pe(null), B.clearSelection(), W.reset()) : n && (e.key === "=" || e.key === "+") ? (t(), T(1.25)) : n && e.key === "-" ? (t(), T(.8)) : e.shiftKey && e.code === "Digit1" ? w(le(j)) : e.shiftKey && e.code === "Digit0" ? E(1) : !n && !e.shiftKey && e.key.toLowerCase() === "v" ? Ce("select") : !n && !e.shiftKey && e.key.toLowerCase() === "h" ? Ce("hand") : !n && !e.shiftKey && e.key.toLowerCase() === "c" && (t(), Ce("comment"));
4619
+ e.key === "Escape" && z ? H.close() || Ce("select") : e.key === "Escape" ? L ? ge() : (N(null), B.clearSelection(), W.reset()) : n && (e.key === "=" || e.key === "+") ? (t(), T(1.25)) : n && e.key === "-" ? (t(), T(.8)) : e.shiftKey && e.code === "Digit1" ? w(le(j)) : e.shiftKey && e.code === "Digit0" ? E(1) : !n && !e.shiftKey && e.key.toLowerCase() === "v" ? Ce("select") : !n && !e.shiftKey && e.key.toLowerCase() === "h" ? Ce("hand") : !n && !e.shiftKey && e.key.toLowerCase() === "c" && (t(), Ce("comment"));
4620
4620
  }
4621
4621
  K(() => (window.addEventListener("keydown", Oe), () => window.removeEventListener("keydown", Oe)));
4622
- let ke = n?.boards ?? {}, Ae = q(() => Object.entries(n?.boards ?? {}).filter(([, e]) => e.page === j), [n, j]), je = Object.entries(n?.groups ?? {}).filter(([, e]) => e.boards.some((e) => ke[e]?.page === j)), Me = Object.entries(n?.notes ?? {}).filter(([, e]) => e.page === j), U = M ? ke[M] : void 0, Ne = Object.fromEntries(Object.entries(I.states).flatMap(([e, t]) => {
4622
+ let ke = n?.boards ?? {}, U = q(() => Object.entries(n?.boards ?? {}).filter(([, e]) => e.page === j), [n, j]), Ae = Object.entries(n?.groups ?? {}).filter(([, e]) => e.boards.some((e) => ke[e]?.page === j)), je = Object.entries(n?.notes ?? {}).filter(([, e]) => e.page === j), Me = M ? ke[M] : void 0, Ne = Object.fromEntries(Object.entries(I.states).flatMap(([e, t]) => {
4623
4623
  let n = Object.keys(t.schema?.controls ?? {}).length;
4624
4624
  return n || t.error ? [[e, n]] : [];
4625
- })), Pe = L ? I.states[L] : void 0, Fe = L ? ke[L] : void 0, Ie = (e) => L && Pe && Fe && (Pe.schema || Pe.error) ? /* @__PURE__ */ Z(ua, {
4625
+ })), Pe = L ? I.states[L] : void 0, Fe = L ? ke[L] : void 0, Ie = (e) => L && Pe && Fe && (Pe.schema || Pe.error) ? /* @__PURE__ */ Z(pa, {
4626
4626
  boardId: L,
4627
4627
  title: Fe.title ?? L,
4628
4628
  state: Pe,
4629
- anchor: e ? sa(Fe, x) : void 0,
4629
+ anchor: e ? ua(Fe, x) : void 0,
4630
4630
  onChange: (e, t) => I.change(L, e, t),
4631
4631
  onReset: () => I.reset(L),
4632
- onClose: _e
4633
- }) : null, Le = U ? (s[U.file] ?? 0) > 0 && !Ee.has(M) : !1, W = ii(Ae, B, x.k, [
4634
- v,
4632
+ onClose: ge
4633
+ }) : null, Le = Me ? (s[Me.file] ?? 0) > 0 && !Ee.has(M) : !1, W = si(U, B, x.k, [
4634
+ _,
4635
4635
  M,
4636
4636
  j,
4637
- ne
4637
+ A
4638
4638
  ]), Re = (e) => {
4639
4639
  let t = b.current.getBoundingClientRect();
4640
4640
  return {
4641
4641
  x: (e.clientX - t.left - x.x) / x.k,
4642
4642
  y: (e.clientY - t.top - x.y) / x.k
4643
4643
  };
4644
- }, ze = (e) => Ae.find(([, t]) => e.x >= t.x && e.x <= t.x + t.w && e.y >= t.y && e.y <= t.y + t.h)?.[0] ?? null, Be = Fr({
4644
+ }, ze = (e) => U.find(([, t]) => e.x >= t.x && e.x <= t.x + t.w && e.y >= t.y && e.y <= t.y + t.h)?.[0] ?? null, Be = Rr({
4645
4645
  scaling: S,
4646
4646
  view: x,
4647
4647
  inside: B.hover?.boardId ?? null,
@@ -4653,25 +4653,25 @@ function fa({ id: e, artifact: t, canvas: n, layout: r, warnings: i, pending: a,
4653
4653
  y: t.y * x.k
4654
4654
  };
4655
4655
  }
4656
- }), Ve = W.marquee, He = Rr(Ae, s, (e) => !be || N.has(e)), Ue = q(() => /* @__PURE__ */ new Set([
4656
+ }), Ve = W.marquee, He = Vr(U, s, (e) => !ye || de.has(e)), Ue = q(() => /* @__PURE__ */ new Set([
4657
4657
  ...He,
4658
- ...N,
4658
+ ...de,
4659
4659
  ...[M, L].filter((e) => !!e),
4660
4660
  ...B.selectedTargets.map((e) => e.boardId),
4661
4661
  ...Object.entries(B.frames).filter(([, e]) => e.tweaks.length > 0).map(([e]) => e),
4662
- ...Ve ? Ae.filter(([, e]) => e.x < Ve.x + Ve.width && e.x + e.w > Ve.x && e.y < Ve.y + Ve.height && e.y + e.h > Ve.y).map(([e]) => e) : []
4662
+ ...Ve ? U.filter(([, e]) => e.x < Ve.x + Ve.width && e.x + e.w > Ve.x && e.y < Ve.y + Ve.height && e.y + e.h > Ve.y).map(([e]) => e) : []
4663
4663
  ]), [
4664
4664
  He,
4665
- N,
4665
+ de,
4666
4666
  M,
4667
4667
  L,
4668
4668
  B.selectedTargets,
4669
4669
  B.frames,
4670
4670
  Ve,
4671
- Ae
4672
- ]), We = Ar({
4671
+ U
4672
+ ]), We = Nr({
4673
4673
  artifact: t ?? e,
4674
- boards: _ ? Ae : [],
4674
+ boards: g ? U : [],
4675
4675
  versions: s,
4676
4676
  pending: Ee,
4677
4677
  view: x,
@@ -4679,13 +4679,13 @@ function fa({ id: e, artifact: t, canvas: n, layout: r, warnings: i, pending: a,
4679
4679
  viewport: C,
4680
4680
  pinned: Ue,
4681
4681
  hovered: Be.hovered,
4682
- hoverPromotes: v === "select" || z,
4682
+ hoverPromotes: _ === "select" || z,
4683
4683
  persistable: (e) => {
4684
4684
  let t = I.states[e];
4685
- return !(t?.schema && JSON.stringify(t.values) !== JSON.stringify(en(t.schema))) && !B.frames[e]?.tweaks.length;
4685
+ return !(t?.schema && JSON.stringify(t.values) !== JSON.stringify(rn(t.schema))) && !B.frames[e]?.tweaks.length;
4686
4686
  }
4687
- }), Ge = _ ? We.renders : l({
4688
- boards: Ae.map(([e, t]) => ({
4687
+ }), Ge = g ? We.renders : v({
4688
+ boards: U.map(([e, t]) => ({
4689
4689
  id: e,
4690
4690
  ...t
4691
4691
  })),
@@ -4713,116 +4713,116 @@ function fa({ id: e, artifact: t, canvas: n, layout: r, warnings: i, pending: a,
4713
4713
  /* @__PURE__ */ Q("div", {
4714
4714
  ref: b,
4715
4715
  className: "x98rzlu xeuugli x1n2onr6 xh8yej3 x5yr21d xb3r6kr x5ve5x3 x87ps6o x184qs1t xqfszdh xo2rkog",
4716
- style: { cursor: O },
4716
+ style: { cursor: D },
4717
4717
  onClickCapture: (e) => {
4718
- !M && (z || ne) && e.target.closest("[data-video-surface]") && e.stopPropagation();
4718
+ !M && (z || A) && e.target.closest("[data-video-surface]") && e.stopPropagation();
4719
4719
  },
4720
4720
  onPointerDown: (e) => {
4721
- if (A.onPointerDown(e), z && !ne && !M && e.button === 0 && e.pointerType !== "touch" && e.currentTarget.contains(e.target) && !e.target.closest("[data-chrome]") && (e.preventDefault(), V.onCanvasClick(Re(e))), !ye || e.pointerType === "touch" || e.button !== 0 || !e.currentTarget.contains(e.target) || e.target.closest("[data-chrome], [data-video-surface]")) return;
4721
+ if (O.onPointerDown(e), z && !A && !M && e.button === 0 && e.pointerType !== "touch" && e.currentTarget.contains(e.target) && !e.target.closest("[data-chrome]") && (e.preventDefault(), H.onCanvasClick(Re(e))), !ve || e.pointerType === "touch" || e.button !== 0 || !e.currentTarget.contains(e.target) || e.target.closest("[data-chrome], [data-video-surface]")) return;
4722
4722
  let t = Re(e);
4723
4723
  e.currentTarget.setPointerCapture(e.pointerId), W.drag("start", t.x, t.y, e.shiftKey || e.metaKey || e.ctrlKey);
4724
4724
  },
4725
4725
  onPointerMove: (e) => {
4726
- if (A.onPointerMove(e), Be.track(e), W.dragging()) {
4726
+ if (O.onPointerMove(e), Be.track(e), W.dragging()) {
4727
4727
  e.buttons === 1 && e.currentTarget.setPointerCapture(e.pointerId);
4728
4728
  let t = Re(e);
4729
4729
  W.drag("move", t.x, t.y);
4730
4730
  }
4731
4731
  },
4732
4732
  onPointerUp: (e) => {
4733
- if (A.onPointerUp(e), W.dragging()) {
4733
+ if (O.onPointerUp(e), W.dragging()) {
4734
4734
  let t = Re(e);
4735
4735
  W.drag("end", t.x, t.y);
4736
4736
  }
4737
4737
  },
4738
4738
  onPointerLeave: Be.leave,
4739
4739
  onPointerCancel: (e) => {
4740
- A.onPointerCancel(e), W.reset();
4740
+ O.onPointerCancel(e), W.reset();
4741
4741
  },
4742
4742
  children: [
4743
- /* @__PURE__ */ Z(Hn, {
4743
+ /* @__PURE__ */ Z(Gn, {
4744
4744
  viewport: b,
4745
- hand: k
4745
+ hand: ee
4746
4746
  }),
4747
- oe && /* @__PURE__ */ Z(Tn, {
4747
+ oe && /* @__PURE__ */ Z(On, {
4748
4748
  renders: Ge,
4749
4749
  scaling: S
4750
4750
  }),
4751
- n && r && /* @__PURE__ */ Q(u, {
4751
+ n && r && /* @__PURE__ */ Q(m, {
4752
4752
  resetKey: n,
4753
4753
  children: [
4754
- /* @__PURE__ */ Z(fe, {
4754
+ /* @__PURE__ */ Z(pe, {
4755
4755
  view: x,
4756
4756
  renders: Ge,
4757
- boards: Ae,
4758
- notes: Me,
4757
+ boards: U,
4758
+ notes: je,
4759
4759
  contentBase: o,
4760
4760
  versions: s,
4761
4761
  pending: Ee,
4762
- playing: N,
4762
+ playing: de,
4763
4763
  replays: me,
4764
- inspecting: ye || z && !M && !ne,
4764
+ inspecting: ve || z && !M && !A,
4765
4765
  frameRef: Ke,
4766
4766
  frameLoaded: qe,
4767
4767
  live: c,
4768
4768
  writing: c ? n.writing : void 0,
4769
- agent: p,
4770
- onExpand: pe,
4769
+ agent: d,
4770
+ onExpand: N,
4771
4771
  onImageError: We.imageFailed
4772
4772
  }),
4773
- /* @__PURE__ */ Z(Qn, {
4773
+ /* @__PURE__ */ Z(tr, {
4774
4774
  view: x,
4775
- boards: Ae,
4776
- groups: je,
4775
+ boards: U,
4776
+ groups: Ae,
4777
4777
  allBoards: ke,
4778
4778
  contentBase: o,
4779
4779
  versions: s,
4780
4780
  pending: Ee,
4781
- playing: N,
4782
- onExpand: pe,
4783
- onTogglePlay: (e) => P((t) => de(t, e)),
4781
+ playing: de,
4782
+ onExpand: N,
4783
+ onTogglePlay: (e) => P((t) => fe(t, e)),
4784
4784
  onReplay: (e) => F((t) => ({
4785
4785
  ...t,
4786
4786
  [e]: (t[e] ?? 0) + 1
4787
4787
  })),
4788
4788
  parameters: Ne,
4789
4789
  activeParameters: L,
4790
- onToggleParameters: ve,
4791
- verdicts: H
4790
+ onToggleParameters: _e,
4791
+ verdicts: be
4792
4792
  }),
4793
- H.rejecting && xe && /* @__PURE__ */ Z(Wr, {
4794
- group: H.rejecting,
4793
+ be.rejecting && xe && /* @__PURE__ */ Z(qr, {
4794
+ group: be.rejecting,
4795
4795
  left: x.x + xe.x * x.k,
4796
4796
  top: x.y + xe.y * x.k + 8,
4797
- onSubmit: H.submitReject,
4798
- onCancel: H.cancelReject
4797
+ onSubmit: be.submitReject,
4798
+ onCancel: be.cancelReject
4799
4799
  }),
4800
- z && /* @__PURE__ */ Z(vn, {
4800
+ z && /* @__PURE__ */ Z(xn, {
4801
4801
  view: x,
4802
4802
  page: j,
4803
4803
  boards: ke,
4804
4804
  width: b.current?.clientWidth ?? 0,
4805
- threads: V.threads,
4806
- stale: V.stale,
4807
- numbers: V.numbers,
4805
+ threads: H.threads,
4806
+ stale: H.stale,
4807
+ numbers: H.numbers,
4808
4808
  showResolved: se === "all",
4809
- draft: V.draft,
4810
- openId: V.openId,
4811
- actions: V.actions,
4812
- agent: p,
4813
- onOpen: V.setOpenId,
4814
- onSubmit: V.submit,
4815
- onCancelDraft: V.cancelDraft
4809
+ draft: H.draft,
4810
+ openId: H.openId,
4811
+ actions: H.actions,
4812
+ agent: d,
4813
+ onOpen: H.setOpenId,
4814
+ onSubmit: H.submit,
4815
+ onCancelDraft: H.cancelDraft
4816
4816
  })
4817
4817
  ]
4818
4818
  }),
4819
- (ye || z) && !W.marquee && B.hover && ke[B.hover.boardId] && /* @__PURE__ */ Z(xi, {
4819
+ (ve || z) && !W.marquee && B.hover && ke[B.hover.boardId] && /* @__PURE__ */ Z(wi, {
4820
4820
  board: ke[B.hover.boardId],
4821
4821
  rect: B.hover.rect,
4822
4822
  view: x,
4823
4823
  nodeId: B.hover.id ? `${B.hover.boardId}#${B.hover.id}` : void 0
4824
4824
  }),
4825
- !M && B.targets.map((e) => ke[e.boardId] && /* @__PURE__ */ Z(xi, {
4825
+ !M && B.targets.map((e) => ke[e.boardId] && /* @__PURE__ */ Z(wi, {
4826
4826
  board: ke[e.boardId],
4827
4827
  rect: e.rect,
4828
4828
  view: x,
@@ -4845,18 +4845,18 @@ function fa({ id: e, artifact: t, canvas: n, layout: r, warnings: i, pending: a,
4845
4845
  }),
4846
4846
  (!n || !r) && /* @__PURE__ */ Z("div", {
4847
4847
  className: "x10l6tqk x10a8y8t x78zum5 x6s0dn4 xl56j7k xggk2y7 x1bo0w0s xif65rj x2b8uid x47corl",
4848
- children: d ? i[0] ?? R("chrome.waitingCanvas") : R("common.connecting")
4848
+ children: l ? i[0] ?? V("chrome.waitingCanvas") : V("common.connecting")
4849
4849
  }),
4850
- /* @__PURE__ */ Z($n, {
4850
+ /* @__PURE__ */ Z(nr, {
4851
4851
  pages: De,
4852
4852
  page: j,
4853
4853
  onPageChange: ue,
4854
- tool: v,
4854
+ tool: _,
4855
4855
  onToolChange: Ce,
4856
- commenting: !!h
4856
+ commenting: !!p
4857
4857
  }),
4858
- /* @__PURE__ */ Z(er, {
4859
- actions: g,
4858
+ /* @__PURE__ */ Z(rr, {
4859
+ actions: h,
4860
4860
  live: c,
4861
4861
  warnings: i,
4862
4862
  zoom: x.k,
@@ -4866,46 +4866,46 @@ function fa({ id: e, artifact: t, canvas: n, layout: r, warnings: i, pending: a,
4866
4866
  onActualSize: () => E(1),
4867
4867
  inspectorOpen: ie,
4868
4868
  onToggleInspector: () => ae((e) => !e),
4869
- verify: H.progress,
4869
+ verify: be.progress,
4870
4870
  onNextVerify: Se
4871
4871
  }),
4872
4872
  !M && Ie(!0),
4873
- M && U && Le && /* @__PURE__ */ Z(En, {
4873
+ M && Me && Le && /* @__PURE__ */ Z(kn, {
4874
4874
  id: M,
4875
- board: U,
4876
- src: `${o}${U.file}?v=${s[U.file] ?? 0}`,
4877
- interactive: U.interactive === !0,
4878
- onClose: () => pe(null),
4875
+ board: Me,
4876
+ src: `${o}${Me.file}?v=${s[Me.file] ?? 0}`,
4877
+ interactive: Me.interactive === !0,
4878
+ onClose: () => N(null),
4879
4879
  frameRef: I.refFor(M, "expanded"),
4880
4880
  onFrameLoad: () => I.loaded(M, "expanded"),
4881
- parameterAction: Ne[M] === void 0 ? void 0 : /* @__PURE__ */ Z(tt, {
4881
+ parameterAction: Ne[M] === void 0 ? void 0 : /* @__PURE__ */ Z(it, {
4882
4882
  config: { "aria-hidden": !0 },
4883
- children: /* @__PURE__ */ Z(Ze, {
4884
- icon: Kt,
4883
+ children: /* @__PURE__ */ Z(et, {
4884
+ icon: Yt,
4885
4885
  size: "small",
4886
4886
  type: "text",
4887
4887
  "aria-expanded": L === M,
4888
- onClick: (e) => ve(M, e.currentTarget),
4889
- children: R("chrome.parameters")
4888
+ onClick: (e) => _e(M, e.currentTarget),
4889
+ children: V("chrome.parameters")
4890
4890
  })
4891
4891
  }),
4892
4892
  parameters: L === M ? Ie(!1) : void 0
4893
4893
  })
4894
4894
  ]
4895
4895
  }),
4896
- z && /* @__PURE__ */ Z(bn, {
4897
- threads: V.threads,
4896
+ z && /* @__PURE__ */ Z(Cn, {
4897
+ threads: H.threads,
4898
4898
  page: j,
4899
- stale: V.stale,
4900
- numbers: V.numbers,
4901
- openId: V.openId,
4899
+ stale: H.stale,
4900
+ numbers: H.numbers,
4901
+ openId: H.openId,
4902
4902
  tab: se,
4903
4903
  onTab: ce,
4904
4904
  onOpen: we,
4905
4905
  onClose: () => Ce("select")
4906
4906
  }),
4907
- ie && !z && /* @__PURE__ */ Z(Ni, {
4908
- boards: Ae,
4907
+ ie && !z && /* @__PURE__ */ Z(Ii, {
4908
+ boards: U,
4909
4909
  frames: B.frames,
4910
4910
  selection: B.selection,
4911
4911
  targets: B.targets,
@@ -4913,7 +4913,7 @@ function fa({ id: e, artifact: t, canvas: n, layout: r, warnings: i, pending: a,
4913
4913
  hoverNode: B.hoverNode,
4914
4914
  change: B.change,
4915
4915
  reset: B.reset,
4916
- playing: N,
4916
+ playing: de,
4917
4917
  enabled: !M,
4918
4918
  onClose: Te
4919
4919
  })
@@ -4922,7 +4922,7 @@ function fa({ id: e, artifact: t, canvas: n, layout: r, warnings: i, pending: a,
4922
4922
  }
4923
4923
  //#endregion
4924
4924
  //#region src/viewer/hooks/useHtmlData.ts
4925
- function pa(e, { live: t, revision: n, load: r, send: i }) {
4925
+ function ga(e, { live: t, revision: n, load: r, send: i }) {
4926
4926
  let [a, o] = Y(null);
4927
4927
  return K(() => {
4928
4928
  let t = !1;
@@ -4951,12 +4951,12 @@ function pa(e, { live: t, revision: n, load: r, send: i }) {
4951
4951
  }
4952
4952
  //#endregion
4953
4953
  //#region src/viewer/layouts/HtmlView.tsx
4954
- function ma({ id: e, feed: t, actions: n }) {
4955
- let { data: r, send: i } = pa(e, t);
4954
+ function _a({ id: e, feed: t, actions: n }) {
4955
+ let { data: r, send: i } = ga(e, t);
4956
4956
  K(() => {
4957
4957
  document.title = r?.title || e;
4958
- }, [r?.title, e]), D("html");
4959
- let a = r?.found && !r.warnings.includes("index.html not found"), o = a ? `${r.contentBase}index.html?v=${r.version}` : null, { frameRef: s, src: c, onLoad: l } = Fe(o, {
4958
+ }, [r?.title, e]), te("html");
4959
+ let a = r?.found && !r.warnings.includes("index.html not found"), o = a ? `${r.contentBase}index.html?v=${r.version}` : null, { frameRef: s, src: c, onLoad: l } = W(o, {
4960
4960
  onError: (t) => i({
4961
4961
  type: "runtime-error",
4962
4962
  artifact: `html/${e}`,
@@ -4978,7 +4978,7 @@ function ma({ id: e, feed: t, actions: n }) {
4978
4978
  ref: s,
4979
4979
  title: r.title,
4980
4980
  src: c,
4981
- sandbox: Ee,
4981
+ sandbox: ke,
4982
4982
  allow: "clipboard-write",
4983
4983
  onLoad: l,
4984
4984
  className: "x1lliihq xh8yej3 x5yr21d xc342km"
@@ -4987,18 +4987,18 @@ function ma({ id: e, feed: t, actions: n }) {
4987
4987
  children: r ? r.warnings[0] ?? "Waiting for the agent to write index.html…" : "Connecting…"
4988
4988
  }),
4989
4989
  n,
4990
- /* @__PURE__ */ Z(te, { warnings: r?.warnings ?? [] })
4990
+ /* @__PURE__ */ Z(ie, { warnings: r?.warnings ?? [] })
4991
4991
  ]
4992
4992
  });
4993
4993
  }
4994
4994
  //#endregion
4995
4995
  //#region src/viewer/components/TypeIcon.tsx
4996
- function ha({ type: e, size: t = 16 }) {
4997
- let { fill: n, stroke: r } = re[e];
4996
+ function va({ type: e, size: t = 16 }) {
4997
+ let { fill: n, stroke: r } = oe[e];
4998
4998
  return /* @__PURE__ */ Q("svg", {
4999
4999
  width: t,
5000
5000
  height: t,
5001
- viewBox: ee,
5001
+ viewBox: re,
5002
5002
  "aria-hidden": "true",
5003
5003
  style: {
5004
5004
  flex: "none",
@@ -5019,12 +5019,12 @@ function ha({ type: e, size: t = 16 }) {
5019
5019
  }
5020
5020
  //#endregion
5021
5021
  //#region src/viewer/components/ArtifactThumbnail.tsx
5022
- function ga({ src: e, type: t }) {
5022
+ function ya({ src: e, type: t }) {
5023
5023
  let [n, r] = Y(null);
5024
5024
  return /* @__PURE__ */ Q("div", {
5025
5025
  className: "library-thumbnail",
5026
5026
  "aria-hidden": "true",
5027
- children: [/* @__PURE__ */ Z(ha, {
5027
+ children: [/* @__PURE__ */ Z(va, {
5028
5028
  type: t,
5029
5029
  size: 24
5030
5030
  }), e && n !== e && /* @__PURE__ */ Z("img", {
@@ -5041,7 +5041,7 @@ function ga({ src: e, type: t }) {
5041
5041
  }
5042
5042
  //#endregion
5043
5043
  //#region src/viewer/components/PublicationStatus.tsx
5044
- var _a = {
5044
+ var ba = {
5045
5045
  summary: {
5046
5046
  k1xSpc: "x3nfvp2",
5047
5047
  kGNEyG: "x6s0dn4",
@@ -5073,8 +5073,8 @@ var _a = {
5073
5073
  $$css: !0
5074
5074
  }
5075
5075
  };
5076
- function va({ publication: e, published: t, publishedAt: n, online: r, onPublish: i, compact: a = !1, busy: o = !1 }) {
5077
- let { t: s, i18n: c } = N(), l = Xt(), u = e?.phase ?? (t ? "published" : "waiting"), d = t && u !== "published", f = me(u), p = s(`publication.${d ? `update_${u}` : u}`), m = f ? Lt : u === "failed" ? wt : u === "published" ? yt : Tt, h = u === "failed" ? _a.failed : u === "published" ? _a.success : void 0, g = /* @__PURE__ */ Z(et, {
5076
+ function xa({ publication: e, published: t, publishedAt: n, online: r, onPublish: i, compact: a = !1, busy: o = !1 }) {
5077
+ let { t: s, i18n: c } = F(), l = $t(), u = e?.phase ?? (t ? "published" : "waiting"), d = t && u !== "published", f = L(u), p = s(`publication.${d ? `update_${u}` : u}`), m = f ? Bt : u === "failed" ? Dt : u === "published" ? St : Ot, h = u === "failed" ? ba.failed : u === "published" ? ba.success : void 0, g = /* @__PURE__ */ Z(rt, {
5078
5078
  icon: m,
5079
5079
  spin: f && !l,
5080
5080
  size: a ? 14 : 16,
@@ -5082,13 +5082,13 @@ function va({ publication: e, published: t, publishedAt: n, online: r, onPublish
5082
5082
  });
5083
5083
  if (a) return /* @__PURE__ */ Q("span", {
5084
5084
  role: "status",
5085
- ...O(_a.summary, h),
5085
+ ...k(ba.summary, h),
5086
5086
  children: [g, p]
5087
5087
  });
5088
5088
  let _ = e?.publishedAt ?? n, v = i && !f && u !== "published" && u !== "not-ready";
5089
5089
  return /* @__PURE__ */ Q("section", {
5090
5090
  "aria-label": s("publication.label"),
5091
- ...O(_a.card, h),
5091
+ ...k(ba.card, h),
5092
5092
  children: [
5093
5093
  /* @__PURE__ */ Q("div", {
5094
5094
  role: "status",
@@ -5113,7 +5113,7 @@ function va({ publication: e, published: t, publishedAt: n, online: r, onPublish
5113
5113
  disabled: o,
5114
5114
  onClick: i,
5115
5115
  className: "x78zum5 x6s0dn4 xl56j7k x17d4w8g x1rz828m x36usyh xc342km x1sxf85j x19ckca5 xs0jrwl xln7xf2 xfifm61 x1ypdohk",
5116
- children: [/* @__PURE__ */ Z(Et, {
5116
+ children: [/* @__PURE__ */ Z(kt, {
5117
5117
  size: 14,
5118
5118
  "aria-hidden": "true"
5119
5119
  }), s(u === "failed" ? "publication.retry" : "publication.publishNow")]
@@ -5134,14 +5134,14 @@ function va({ publication: e, published: t, publishedAt: n, online: r, onPublish
5134
5134
  }
5135
5135
  //#endregion
5136
5136
  //#region src/shared/brand.ts
5137
- var ya = "0 0 512 512", ba = "<g transform=\"translate(82 136.317460) scale(0.613756614)\"><g transform=\"translate(0.000000,390.000000) scale(0.100000,-0.100000)\" stroke=\"none\"><path d=\"M4945 3889 c-339 -44 -682 -239 -905 -517 -139 -172 -232 -355 -365 -717 -136 -368 -285 -735 -360 -890 -219 -449 -524 -768 -849 -887 -121 -44 -215 -60 -356 -60 -162 0 -244 18 -450 97 -291 111 -420 144 -650 166 -257 24 -637 -19 -772 -87 -148 -75 -249 -247 -235 -399 19 -197 186 -344 392 -346 40 -1 127 11 205 27 115 23 160 28 300 28 242 1 372 -29 671 -155 226 -95 467 -149 662 -149 252 0 548 74 789 197 394 201 708 521 988 1008 83 144 271 529 405 830 220 493 300 632 436 759 121 112 226 162 424 201 44 9 108 29 143 45 165 77 274 285 244 467 -31 188 -168 334 -354 378 -70 16 -249 18 -363 4z M765 3139 c-202 -11 -415 -48 -497 -86 -91 -44 -151 -101 -193 -186 -123 -248 31 -525 307 -554 38 -4 99 3 204 23 137 27 167 29 384 29 205 0 249 -3 347 -23 225 -45 387 -106 658 -247 182 -94 308 -144 463 -182 138 -35 350 -39 447 -9 174 53 275 152 305 299 26 130 -40 267 -158 323 -52 25 -72 28 -227 35 -248 11 -328 37 -576 187 -232 140 -384 213 -585 281 -283 95 -541 127 -879 110z M620 2104 c-273 -32 -384 -65 -471 -143 -235 -208 -136 -589 172 -660 68 -16 129 -13 272 14 400 73 702 31 1167 -163 239 -99 350 -125 535 -125 193 0 338 51 448 157 117 113 139 261 56 375 -50 69 -99 85 -294 92 -245 10 -332 35 -563 163 -224 123 -456 211 -693 262 -111 23 -149 26 -359 29 -129 2 -251 1 -270 -1z\"/></g></g>";
5137
+ var Sa = "0 0 512 512", Ca = "<g transform=\"translate(82 136.317460) scale(0.613756614)\"><g transform=\"translate(0.000000,390.000000) scale(0.100000,-0.100000)\" stroke=\"none\"><path d=\"M4945 3889 c-339 -44 -682 -239 -905 -517 -139 -172 -232 -355 -365 -717 -136 -368 -285 -735 -360 -890 -219 -449 -524 -768 -849 -887 -121 -44 -215 -60 -356 -60 -162 0 -244 18 -450 97 -291 111 -420 144 -650 166 -257 24 -637 -19 -772 -87 -148 -75 -249 -247 -235 -399 19 -197 186 -344 392 -346 40 -1 127 11 205 27 115 23 160 28 300 28 242 1 372 -29 671 -155 226 -95 467 -149 662 -149 252 0 548 74 789 197 394 201 708 521 988 1008 83 144 271 529 405 830 220 493 300 632 436 759 121 112 226 162 424 201 44 9 108 29 143 45 165 77 274 285 244 467 -31 188 -168 334 -354 378 -70 16 -249 18 -363 4z M765 3139 c-202 -11 -415 -48 -497 -86 -91 -44 -151 -101 -193 -186 -123 -248 31 -525 307 -554 38 -4 99 3 204 23 137 27 167 29 384 29 205 0 249 -3 347 -23 225 -45 387 -106 658 -247 182 -94 308 -144 463 -182 138 -35 350 -39 447 -9 174 53 275 152 305 299 26 130 -40 267 -158 323 -52 25 -72 28 -227 35 -248 11 -328 37 -576 187 -232 140 -384 213 -585 281 -283 95 -541 127 -879 110z M620 2104 c-273 -32 -384 -65 -471 -143 -235 -208 -136 -589 172 -660 68 -16 129 -13 272 14 400 73 702 31 1167 -163 239 -99 350 -125 535 -125 193 0 338 51 448 157 117 113 139 261 56 375 -50 69 -99 85 -294 92 -245 10 -332 35 -563 163 -224 123 -456 211 -693 262 -111 23 -149 26 -359 29 -129 2 -251 1 -270 -1z\"/></g></g>";
5138
5138
  //#endregion
5139
5139
  //#region src/viewer/components/RyugiMark.tsx
5140
- function xa({ size: e = 16, color: t }) {
5140
+ function wa({ size: e = 16, color: t }) {
5141
5141
  return /* @__PURE__ */ Z("svg", {
5142
5142
  width: e,
5143
5143
  height: e,
5144
- viewBox: ya,
5144
+ viewBox: Sa,
5145
5145
  fill: "currentColor",
5146
5146
  "aria-hidden": "true",
5147
5147
  style: {
@@ -5149,40 +5149,40 @@ function xa({ size: e = 16, color: t }) {
5149
5149
  display: "block",
5150
5150
  color: t
5151
5151
  },
5152
- dangerouslySetInnerHTML: { __html: ba }
5152
+ dangerouslySetInnerHTML: { __html: Ca }
5153
5153
  });
5154
5154
  }
5155
5155
  //#endregion
5156
5156
  //#region src/viewer/lib/artifact-list.ts
5157
- function Sa(e, t = Date.now()) {
5158
- let n = new Intl.RelativeTimeFormat(F.language, { numeric: "always" }), r = Math.floor(Math.max(0, t - e) / 6e4);
5159
- return r === 0 ? F.t("time.justNow") : r < 60 ? n.format(-r, "minute") : r < 1440 ? n.format(-Math.floor(r / 60), "hour") : n.format(-Math.floor(r / 1440), "day");
5157
+ function Ta(e, t = Date.now()) {
5158
+ let n = new Intl.RelativeTimeFormat(R.language, { numeric: "always" }), r = Math.floor(Math.max(0, t - e) / 6e4);
5159
+ return r === 0 ? R.t("time.justNow") : r < 60 ? n.format(-r, "minute") : r < 1440 ? n.format(-Math.floor(r / 60), "hour") : n.format(-Math.floor(r / 1440), "day");
5160
5160
  }
5161
5161
  //#endregion
5162
5162
  //#region src/viewer/lib/error-text.ts
5163
- function Ca(e, t) {
5164
- return typeof e == "string" && F.exists(`errors.${e}`) ? F.t(`errors.${e}`) : t;
5163
+ function Ea(e, t) {
5164
+ return typeof e == "string" && R.exists(`errors.${e}`) ? R.t(`errors.${e}`) : t;
5165
5165
  }
5166
- var wa = (e) => typeof e == "object" && !!e && [
5166
+ var Da = (e) => typeof e == "object" && !!e && [
5167
5167
  "private",
5168
5168
  "public",
5169
5169
  "total",
5170
5170
  "publishes"
5171
5171
  ].includes(e.kind) && typeof e.max == "number";
5172
- function Ta({ kind: e, max: t }) {
5173
- return F.t(`planLimit.${e}`, { max: t });
5172
+ function Oa({ kind: e, max: t }) {
5173
+ return R.t(`planLimit.${e}`, { max: t });
5174
5174
  }
5175
- function Ea(e, t) {
5176
- return e.code === "plan_limit" && wa(e.limit) ? Ta(e.limit) : Ca(e.code, typeof e.error == "string" ? e.error : t);
5175
+ function ka(e, t) {
5176
+ return e.code === "plan_limit" && Da(e.limit) ? Oa(e.limit) : Ea(e.code, typeof e.error == "string" ? e.error : t);
5177
5177
  }
5178
5178
  //#endregion
5179
5179
  //#region src/viewer/lib/version.ts
5180
- var Da = "1.43.0", Oa = 100, ka = 2e3, Aa = 50, ja = (e, t = Oa) => typeof e == "string" && e.length > 0 && e.length <= t, Ma = (e) => typeof e == "number" && Number.isFinite(e), Na = (e) => Ma(e) && e >= 0 && e <= 1;
5181
- function Pa(e) {
5182
- if (!Array.isArray(e) || e.length === 0 || e.length > Aa) return null;
5180
+ var Aa = "1.44.0", ja = 100, Ma = 2e3, Na = 50, Pa = (e, t = ja) => typeof e == "string" && e.length > 0 && e.length <= t, Fa = (e) => typeof e == "number" && Number.isFinite(e), Ia = (e) => Fa(e) && e >= 0 && e <= 1;
5181
+ function La(e) {
5182
+ if (!Array.isArray(e) || e.length === 0 || e.length > Na) return null;
5183
5183
  let t = [];
5184
5184
  for (let n of e) {
5185
- if (!Se(n) || !ja(n.board) || !ja(n.path, ka)) return null;
5185
+ if (!Te(n) || !Pa(n.board) || !Pa(n.path, Ma)) return null;
5186
5186
  t.push({
5187
5187
  board: n.board,
5188
5188
  path: n.path
@@ -5190,24 +5190,24 @@ function Pa(e) {
5190
5190
  }
5191
5191
  return t;
5192
5192
  }
5193
- function Fa(e) {
5194
- if (!Se(e) || Array.isArray(e)) return null;
5193
+ function Ra(e) {
5194
+ if (!Te(e) || Array.isArray(e)) return null;
5195
5195
  let t = Object.entries(e);
5196
- return t.length > Aa || !t.every(([e, t]) => ja(e) && ja(t)) ? null : Object.fromEntries(t);
5196
+ return t.length > Na || !t.every(([e, t]) => Pa(e) && Pa(t)) ? null : Object.fromEntries(t);
5197
5197
  }
5198
- function Ia(e) {
5199
- if (!Se(e) || !ja(e.page) || !Ma(e.x) || !Ma(e.y)) return null;
5198
+ function za(e) {
5199
+ if (!Te(e) || !Pa(e.page) || !Fa(e.x) || !Fa(e.y)) return null;
5200
5200
  let t = {
5201
5201
  page: e.page,
5202
5202
  x: e.x,
5203
5203
  y: e.y
5204
5204
  };
5205
5205
  if (e.board !== void 0) {
5206
- if (!ja(e.board)) return null;
5206
+ if (!Pa(e.board)) return null;
5207
5207
  t.board = e.board;
5208
5208
  }
5209
5209
  if (e.group !== void 0) {
5210
- if (!ja(e.group)) return null;
5210
+ if (!Pa(e.group)) return null;
5211
5211
  t.group = e.group;
5212
5212
  }
5213
5213
  if (e.verdict !== void 0) {
@@ -5215,36 +5215,36 @@ function Ia(e) {
5215
5215
  t.verdict = e.verdict;
5216
5216
  }
5217
5217
  if (e.nodes !== void 0) {
5218
- let n = Pa(e.nodes);
5218
+ let n = La(e.nodes);
5219
5219
  if (!n) return null;
5220
5220
  t.nodes = n;
5221
5221
  }
5222
5222
  if (e.offset !== void 0) {
5223
5223
  let n = e.offset;
5224
- if (!t.nodes || !Se(n) || !Na(n.x) || !Na(n.y)) return null;
5224
+ if (!t.nodes || !Te(n) || !Ia(n.x) || !Ia(n.y)) return null;
5225
5225
  t.offset = {
5226
5226
  x: n.x,
5227
5227
  y: n.y
5228
5228
  };
5229
5229
  }
5230
5230
  if (e.hashes !== void 0) {
5231
- let n = Fa(e.hashes);
5231
+ let n = Ra(e.hashes);
5232
5232
  if (!n) return null;
5233
5233
  t.hashes = n;
5234
5234
  }
5235
5235
  return t;
5236
5236
  }
5237
- var La = {
5238
- read: Ia,
5237
+ var Ba = {
5238
+ read: za,
5239
5239
  same: (e, t) => e.page === t.page && e.board === t.board && e.group === t.group && e.verdict === t.verdict && e.x === t.x && e.y === t.y,
5240
5240
  missing: "a new thread needs a board anchor (page, x, y); dropped it"
5241
- }, Ra = () => ({
5241
+ }, Va = () => ({
5242
5242
  version: 1,
5243
5243
  threads: []
5244
- }), za = (e) => H(e, La), Ba = (e, t, n, r, i, a) => Me(e, t, n, r, i, a, La);
5245
- function Va(e, t, n, r, i) {
5246
- if (t.op !== "create") return Te(e, t, n, r, i);
5247
- let a = z(t.anchor, "human", t.text, n, r, i);
5244
+ }), Ha = (e) => Ce(e, Ba), Ua = (e, t, n, r, i, a) => Pe(e, t, n, r, i, a, Ba);
5245
+ function Wa(e, t, n, r, i) {
5246
+ if (t.op !== "create") return Oe(e, t, n, r, i);
5247
+ let a = H(t.anchor, "human", t.text, n, r, i);
5248
5248
  if (t.anchor.verdict !== "pass") return {
5249
5249
  ...e,
5250
5250
  threads: [...e.threads, a]
@@ -5265,10 +5265,10 @@ function Va(e, t, n, r, i) {
5265
5265
  }]
5266
5266
  };
5267
5267
  }
5268
- function Ha(e, t, n, r, i) {
5268
+ function Ga(e, t, n, r, i) {
5269
5269
  if (t.op === "resolve" && e.threads.find((e) => e.id === t.threadId)?.anchor.verdict === "reject") throw Error("a reject closes only when your human partner passes the group");
5270
5270
  if (t.op === "add") {
5271
- let a = z(t.anchor, "agent", t.text, n, r, { name: i });
5271
+ let a = H(t.anchor, "agent", t.text, n, r, { name: i });
5272
5272
  return {
5273
5273
  file: {
5274
5274
  ...e,
@@ -5281,4 +5281,4 @@ function Ha(e, t, n, r, i) {
5281
5281
  return be(e, t, n, r, i);
5282
5282
  }
5283
5283
  //#endregion
5284
- export { i as ARTIFACT_TYPES, da as ArtboardView, ga as ArtifactThumbnail, n as BOARD_TYPES, u as CanvasErrorBoundary, P as HTML_LANG, Ee as HTML_SANDBOX, ma as HtmlView, Ie as PHONE_QUERY, o as PreviewView, va as PublicationStatus, Ae as RailSwitch, xa as RyugiMark, re as TYPE_GLYPHS, ee as TYPE_ICON_VIEWBOX, ve as Trans, ha as TypeIcon, Da as VIEWER_VERSION, _ as ViewerProvider, we as applyAgentOp, be as applyAgentThreadOp, Ha as applyBoardAgentOp, Va as applyBoardHumanOp, Ve as applyHumanOp, Te as applyThreadOp, La as boardAnchors, ir as boardCommentsFromMessage, rr as boardCommentsFromPayload, y as cloudErrorDetails, oe as createRelayConnection, pe as createViewerI18n, V as documentAnchors, Ra as emptyBoardComments, B as emptyComments, Ca as errorText, F as i18n, x as isArtifactId, g as isArtifactType, t as isMediaBoard, Se as isObject, wa as isPlanLimit, ye as isVisibility, Ba as mergeBoardComments, Me as mergeComments, z as openThread, L as ownLink, Pi as pageLink, ge as parseAcceptLanguage, je as parseComments, Ta as planLimitMessage, _e as publishState, me as publishing, Ia as readBoardAnchor, Re as readCloudHeader, M as readPublication, Sa as relativeUpdatedAt, Pe as reportCloudHeader, I as resolveLocale, Ea as responseErrorText, za as savedBoardComments, H as savedComments, he as syncNote, R as t, k as typeFaviconHref, xe as unreadThreads, sr as useCanvasData, Le as useCloudHeader, Ne as useMedia, Fi as usePageQuery, Fe as useSandboxFrame, p as useSystemTheme, N as useTranslation, D as useTypeFavicon, Ce as waitingOn };
5284
+ export { w as ARTIFACT_LOCATOR_SOURCE, i as ARTIFACT_TYPES, ma as ArtboardView, ya as ArtifactThumbnail, g as BOARD_TYPES, m as CanvasErrorBoundary, I as HTML_LANG, ke as HTML_SANDBOX, _a as HtmlView, Re as PHONE_QUERY, u as PreviewView, xa as PublicationStatus, Me as RailSwitch, wa as RyugiMark, oe as TYPE_GLYPHS, re as TYPE_ICON_VIEWBOX, ye as Trans, va as TypeIcon, Aa as VIEWER_VERSION, _ as ViewerProvider, De as applyAgentOp, be as applyAgentThreadOp, Ga as applyBoardAgentOp, Wa as applyBoardHumanOp, We as applyHumanOp, Oe as applyThreadOp, Ba as boardAnchors, sr as boardCommentsFromMessage, or as boardCommentsFromPayload, b as cloudErrorDetails, le as createRelayConnection, me as createViewerI18n, Se as documentAnchors, Va as emptyBoardComments, xe as emptyComments, Ea as errorText, R as i18n, y as isArtifactAddress, S as isArtifactId, h as isArtifactLocator, c as isArtifactType, e as isMediaBoard, Te as isObject, Da as isPlanLimit, B as isVisibility, Ua as mergeBoardComments, Pe as mergeComments, H as openThread, ge as ownLink, Li as pageLink, ve as parseAcceptLanguage, Ne as parseComments, Oa as planLimitMessage, z as publishState, L as publishing, za as readBoardAnchor, Ve as readCloudHeader, P as readPublication, Ta as relativeUpdatedAt, Le as reportCloudHeader, he as resolveLocale, ka as responseErrorText, Ha as savedBoardComments, Ce as savedComments, _e as syncNote, V as t, ne as typeFaviconHref, we as unreadThreads, ur as useCanvasData, ze as useCloudHeader, Ie as useMedia, Ri as usePageQuery, W as useSandboxFrame, C as useSystemTheme, F as useTranslation, te as useTypeFavicon, Ee as waitingOn };