termdock 1.4.352 → 1.4.353

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 (389) hide show
  1. package/dist/client/assets/{AndroidMirrorView-DkOZxYLg.js → AndroidMirrorView-C39BgFa_.js} +1 -1
  2. package/dist/client/assets/AndroidMirrorView-C39BgFa_.js.br +0 -0
  3. package/dist/client/assets/AndroidMirrorView-C39BgFa_.js.gz +0 -0
  4. package/dist/client/assets/{App-DqRkfVSm.js → App-AjjtXg93.js} +7 -7
  5. package/dist/client/assets/App-AjjtXg93.js.br +0 -0
  6. package/dist/client/assets/{App-DqRkfVSm.js.gz → App-AjjtXg93.js.gz} +0 -0
  7. package/dist/client/assets/{ArchitecturePanel-m9GKl3cl.js → ArchitecturePanel-Xi_R4Tso.js} +2 -2
  8. package/dist/client/assets/ArchitecturePanel-Xi_R4Tso.js.br +0 -0
  9. package/dist/client/assets/ArchitecturePanel-Xi_R4Tso.js.gz +0 -0
  10. package/dist/client/assets/{ChangeWalkthroughPanel-HZ0zvFvi.js → ChangeWalkthroughPanel-BH1Una8m.js} +1 -1
  11. package/dist/client/assets/ChangeWalkthroughPanel-BH1Una8m.js.br +0 -0
  12. package/dist/client/assets/ChangeWalkthroughPanel-BH1Una8m.js.gz +0 -0
  13. package/dist/client/assets/{CollaborationMainWorkspace-B4OMk92m.js → CollaborationMainWorkspace-CA9ZGT5N.js} +1 -1
  14. package/dist/client/assets/CollaborationMainWorkspace-CA9ZGT5N.js.br +0 -0
  15. package/dist/client/assets/CollaborationMainWorkspace-CA9ZGT5N.js.gz +0 -0
  16. package/dist/client/assets/{CollaborationTaskContent-Cbg3iH6E.js → CollaborationTaskContent-D_NDzA-t.js} +1 -1
  17. package/dist/client/assets/{ComputerControlView-CSs54lf0.js → ComputerControlView-BGvF5NeQ.js} +3 -3
  18. package/dist/client/assets/ComputerControlView-BGvF5NeQ.js.br +0 -0
  19. package/dist/client/assets/ComputerControlView-BGvF5NeQ.js.gz +0 -0
  20. package/dist/client/assets/{DagPlayground-yoS2llnB.js → DagPlayground-CKqB6zap.js} +1 -1
  21. package/dist/client/assets/DagPlayground-CKqB6zap.js.br +0 -0
  22. package/dist/client/assets/DagPlayground-CKqB6zap.js.gz +0 -0
  23. package/dist/client/assets/{DiffLab-Dj1MT9pY.js → DiffLab-CDt8EP6I.js} +1 -1
  24. package/dist/client/assets/DiffLab-CDt8EP6I.js.br +0 -0
  25. package/dist/client/assets/DiffLab-CDt8EP6I.js.gz +0 -0
  26. package/dist/client/assets/{DiffReview-BX2S9hNp.js → DiffReview-YADkwVd6.js} +1 -1
  27. package/dist/client/assets/DiffReview-YADkwVd6.js.br +0 -0
  28. package/dist/client/assets/DiffReview-YADkwVd6.js.gz +0 -0
  29. package/dist/client/assets/{DiffReviewLab-DqI14GEk.js → DiffReviewLab-YqgsRn_K.js} +1 -1
  30. package/dist/client/assets/DiffReviewLab-YqgsRn_K.js.br +0 -0
  31. package/dist/client/assets/DiffReviewLab-YqgsRn_K.js.gz +0 -0
  32. package/dist/client/assets/{DiffViewer-AZvdDGfH.js → DiffViewer-CT5_YwM2.js} +1 -1
  33. package/dist/client/assets/DiffViewer-CT5_YwM2.js.br +0 -0
  34. package/dist/client/assets/DiffViewer-CT5_YwM2.js.gz +0 -0
  35. package/dist/client/assets/{GitLoadingSkeleton-CBPykkZP.js → GitLoadingSkeleton-DfWzAnA2.js} +1 -1
  36. package/dist/client/assets/GitLoadingSkeleton-DfWzAnA2.js.br +0 -0
  37. package/dist/client/assets/GitLoadingSkeleton-DfWzAnA2.js.gz +0 -0
  38. package/dist/client/assets/{MarkdownPreview-DpvTnKkj.js → MarkdownPreview-DHLp5cqt.js} +2 -2
  39. package/dist/client/assets/MarkdownPreview-DHLp5cqt.js.br +0 -0
  40. package/dist/client/assets/MarkdownPreview-DHLp5cqt.js.gz +0 -0
  41. package/dist/client/assets/{ModelPreview-Du_AyPr9.js → ModelPreview-DymFzc55.js} +1 -1
  42. package/dist/client/assets/ModelPreview-DymFzc55.js.br +0 -0
  43. package/dist/client/assets/ModelPreview-DymFzc55.js.gz +0 -0
  44. package/dist/client/assets/{RecordingSaveDialog-CtXaGgIo.js → RecordingSaveDialog-CxSN76bp.js} +1 -1
  45. package/dist/client/assets/RecordingSaveDialog-CxSN76bp.js.br +0 -0
  46. package/dist/client/assets/RecordingSaveDialog-CxSN76bp.js.gz +0 -0
  47. package/dist/client/assets/{RightSidebar-DU3gwdzg.js → RightSidebar-eIuDnhJn.js} +3 -3
  48. package/dist/client/assets/RightSidebar-eIuDnhJn.js.br +0 -0
  49. package/dist/client/assets/RightSidebar-eIuDnhJn.js.gz +0 -0
  50. package/dist/client/assets/{SessionChatView-CxfwJMuK.js → SessionChatView-C5wXAt7h.js} +5 -5
  51. package/dist/client/assets/SessionChatView-C5wXAt7h.js.br +0 -0
  52. package/dist/client/assets/SessionChatView-C5wXAt7h.js.gz +0 -0
  53. package/dist/client/assets/SessionResourceSidebar-Czai5Bt3.js +2 -0
  54. package/dist/client/assets/SessionResourceSidebar-Czai5Bt3.js.br +0 -0
  55. package/dist/client/assets/SessionResourceSidebar-Czai5Bt3.js.gz +0 -0
  56. package/dist/client/assets/{TodoWorkspace-j9BLgk94.js → TodoWorkspace-BftnnEU0.js} +1 -1
  57. package/dist/client/assets/TodoWorkspace-BftnnEU0.js.br +0 -0
  58. package/dist/client/assets/TodoWorkspace-BftnnEU0.js.gz +0 -0
  59. package/dist/client/assets/{abnfDiagram-VCTEODGH-LfmMIpPX.js → abnfDiagram-VCTEODGH-DI1Y-QAP.js} +1 -1
  60. package/dist/client/assets/abnfDiagram-VCTEODGH-DI1Y-QAP.js.br +0 -0
  61. package/dist/client/assets/abnfDiagram-VCTEODGH-DI1Y-QAP.js.gz +0 -0
  62. package/dist/client/assets/{app-BMJesFDU.js → app-DvMXSNN7.js} +5 -5
  63. package/dist/client/assets/app-DvMXSNN7.js.br +0 -0
  64. package/dist/client/assets/app-DvMXSNN7.js.gz +0 -0
  65. package/dist/client/assets/{arc-DMzcmH2U.js → arc-QdJAJx_D.js} +1 -1
  66. package/dist/client/assets/arc-QdJAJx_D.js.br +0 -0
  67. package/dist/client/assets/arc-QdJAJx_D.js.gz +0 -0
  68. package/dist/client/assets/{architectureDiagram-5GKGNRK7-CphS_S5Q.js → architectureDiagram-5GKGNRK7-Bw2CvoGg.js} +1 -1
  69. package/dist/client/assets/architectureDiagram-5GKGNRK7-Bw2CvoGg.js.br +0 -0
  70. package/dist/client/assets/architectureDiagram-5GKGNRK7-Bw2CvoGg.js.gz +0 -0
  71. package/dist/client/assets/{arrow-down-D-WZS308.js → arrow-down-CZKuaGwN.js} +1 -1
  72. package/dist/client/assets/{arrow-up-CelbB9FE.js → arrow-up-CYLC6_to.js} +1 -1
  73. package/dist/client/assets/{blockDiagram-I7D4REHJ-Dx_4qkcL.js → blockDiagram-I7D4REHJ-CM2GI6sC.js} +1 -1
  74. package/dist/client/assets/blockDiagram-I7D4REHJ-CM2GI6sC.js.br +0 -0
  75. package/dist/client/assets/blockDiagram-I7D4REHJ-CM2GI6sC.js.gz +0 -0
  76. package/dist/client/assets/{c4Diagram-7LVT6UL2-DiGdnPo4.js → c4Diagram-7LVT6UL2-BAB2TKr4.js} +1 -1
  77. package/dist/client/assets/c4Diagram-7LVT6UL2-BAB2TKr4.js.br +0 -0
  78. package/dist/client/assets/c4Diagram-7LVT6UL2-BAB2TKr4.js.gz +0 -0
  79. package/dist/client/assets/channel-CcDRt0AM.js +1 -0
  80. package/dist/client/assets/{chevron-left-5sk7gL3u.js → chevron-left-BNby2AjR.js} +1 -1
  81. package/dist/client/assets/{chunk-2Q5K7J3B-M50KNmR8.js → chunk-2Q5K7J3B-DI2pKKMQ.js} +1 -1
  82. package/dist/client/assets/{chunk-5VM5RSS4-wXVM-Max.js → chunk-5VM5RSS4-D5l5zyYl.js} +1 -1
  83. package/dist/client/assets/{chunk-F27PBJKO-BfQILS9u.js → chunk-F27PBJKO-Japl432v.js} +1 -1
  84. package/dist/client/assets/chunk-F27PBJKO-Japl432v.js.br +0 -0
  85. package/dist/client/assets/chunk-F27PBJKO-Japl432v.js.gz +0 -0
  86. package/dist/client/assets/{chunk-IMKFNOWR-D111Jpl3.js → chunk-IMKFNOWR-CDJoLgpw.js} +1 -1
  87. package/dist/client/assets/chunk-IMKFNOWR-CDJoLgpw.js.br +0 -0
  88. package/dist/client/assets/chunk-IMKFNOWR-CDJoLgpw.js.gz +0 -0
  89. package/dist/client/assets/{chunk-JWPE2WC7-BBDyly5c.js → chunk-JWPE2WC7-BQ2cpPDE.js} +1 -1
  90. package/dist/client/assets/{chunk-POPQ4Y6H-BaI-_yc7.js → chunk-POPQ4Y6H-CWjI0yRx.js} +1 -1
  91. package/dist/client/assets/{chunk-SVP7TREG-BvQafCMJ.js → chunk-SVP7TREG-BzEphMpl.js} +1 -1
  92. package/dist/client/assets/chunk-SVP7TREG-BzEphMpl.js.br +0 -0
  93. package/dist/client/assets/chunk-SVP7TREG-BzEphMpl.js.gz +0 -0
  94. package/dist/client/assets/{chunk-TICWLB2K-CQXPwGBz.js → chunk-TICWLB2K-B2hsw7jN.js} +1 -1
  95. package/dist/client/assets/chunk-TICWLB2K-B2hsw7jN.js.br +0 -0
  96. package/dist/client/assets/chunk-TICWLB2K-B2hsw7jN.js.gz +0 -0
  97. package/dist/client/assets/{chunk-XXDRQBXY-CmwZc4xV.js → chunk-XXDRQBXY-BEWjHo7s.js} +1 -1
  98. package/dist/client/assets/classDiagram-ZZMXUADV-Dz0qH9Hg.js +1 -0
  99. package/dist/client/assets/classDiagram-v2-VYDZK3BY-Dz0qH9Hg.js +1 -0
  100. package/dist/client/assets/{clipboard-uSv3AiJM.js → clipboard-6kE6vzDi.js} +1 -1
  101. package/dist/client/assets/{clipboardText-5puxqqm_.js → clipboardText-B7202UNa.js} +1 -1
  102. package/dist/client/assets/clipboardText-B7202UNa.js.br +0 -0
  103. package/dist/client/assets/clipboardText-B7202UNa.js.gz +0 -0
  104. package/dist/client/assets/{cose-bilkent-JH36ORCC-CqWarkUj.js → cose-bilkent-JH36ORCC-DpS77pec.js} +1 -1
  105. package/dist/client/assets/cose-bilkent-JH36ORCC-DpS77pec.js.br +0 -0
  106. package/dist/client/assets/cose-bilkent-JH36ORCC-DpS77pec.js.gz +0 -0
  107. package/dist/client/assets/{cynefin-OW5HDTMX-CFW2ifig.js → cynefin-OW5HDTMX-D1y5kNwR.js} +1 -1
  108. package/dist/client/assets/cynefin-OW5HDTMX-D1y5kNwR.js.br +0 -0
  109. package/dist/client/assets/cynefin-OW5HDTMX-D1y5kNwR.js.gz +0 -0
  110. package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-yggxM55S.js → cynefinDiagram-5FMLGOSQ-CqTCLyMC.js} +1 -1
  111. package/dist/client/assets/cynefinDiagram-5FMLGOSQ-CqTCLyMC.js.br +0 -0
  112. package/dist/client/assets/cynefinDiagram-5FMLGOSQ-CqTCLyMC.js.gz +0 -0
  113. package/dist/client/assets/{dagre-GXQ25YYZ-inq7o--x.js → dagre-GXQ25YYZ-DkJ-kRn6.js} +1 -1
  114. package/dist/client/assets/dagre-GXQ25YYZ-DkJ-kRn6.js.br +0 -0
  115. package/dist/client/assets/dagre-GXQ25YYZ-DkJ-kRn6.js.gz +0 -0
  116. package/dist/client/assets/{diagram-S7CK7UJ4-BUXMnyQN.js → diagram-S7CK7UJ4-DenrrE_C.js} +1 -1
  117. package/dist/client/assets/diagram-S7CK7UJ4-DenrrE_C.js.br +0 -0
  118. package/dist/client/assets/diagram-S7CK7UJ4-DenrrE_C.js.gz +0 -0
  119. package/dist/client/assets/{diagram-UQ7AKVKN-BJbw-Imf.js → diagram-UQ7AKVKN-B2ikSD8K.js} +1 -1
  120. package/dist/client/assets/diagram-UQ7AKVKN-B2ikSD8K.js.br +0 -0
  121. package/dist/client/assets/diagram-UQ7AKVKN-B2ikSD8K.js.gz +0 -0
  122. package/dist/client/assets/{diagram-VSXAHHWV-CSfl8yS7.js → diagram-VSXAHHWV-CQcNoZDC.js} +1 -1
  123. package/dist/client/assets/diagram-VSXAHHWV-CQcNoZDC.js.br +0 -0
  124. package/dist/client/assets/diagram-VSXAHHWV-CQcNoZDC.js.gz +0 -0
  125. package/dist/client/assets/{diagram-VX7I27RA-zV-Vrv89.js → diagram-VX7I27RA-Cq3FaI-1.js} +1 -1
  126. package/dist/client/assets/diagram-VX7I27RA-Cq3FaI-1.js.br +0 -0
  127. package/dist/client/assets/diagram-VX7I27RA-Cq3FaI-1.js.gz +0 -0
  128. package/dist/client/assets/{diagram-Z3DM3KII-CRnE-snw.js → diagram-Z3DM3KII-BcWReLM8.js} +1 -1
  129. package/dist/client/assets/diagram-Z3DM3KII-BcWReLM8.js.br +0 -0
  130. package/dist/client/assets/diagram-Z3DM3KII-BcWReLM8.js.gz +0 -0
  131. package/dist/client/assets/{ebnfDiagram-PWID7BFC-CE30oImc.js → ebnfDiagram-PWID7BFC-DwwFkjaL.js} +1 -1
  132. package/dist/client/assets/ebnfDiagram-PWID7BFC-DwwFkjaL.js.br +0 -0
  133. package/dist/client/assets/ebnfDiagram-PWID7BFC-DwwFkjaL.js.gz +0 -0
  134. package/dist/client/assets/{erDiagram-RLTQ6QDP-D-5bIySI.js → erDiagram-RLTQ6QDP-B1MNvouo.js} +1 -1
  135. package/dist/client/assets/erDiagram-RLTQ6QDP-B1MNvouo.js.br +0 -0
  136. package/dist/client/assets/erDiagram-RLTQ6QDP-B1MNvouo.js.gz +0 -0
  137. package/dist/client/assets/{flowDiagram-HODETNUW-E_jPKtQR.js → flowDiagram-HODETNUW-B_tIl0Vb.js} +1 -1
  138. package/dist/client/assets/flowDiagram-HODETNUW-B_tIl0Vb.js.br +0 -0
  139. package/dist/client/assets/flowDiagram-HODETNUW-B_tIl0Vb.js.gz +0 -0
  140. package/dist/client/assets/{ganttDiagram-EL5Y4UJY-BWvLOUzC.js → ganttDiagram-EL5Y4UJY-CV0YyZHk.js} +1 -1
  141. package/dist/client/assets/ganttDiagram-EL5Y4UJY-CV0YyZHk.js.br +0 -0
  142. package/dist/client/assets/ganttDiagram-EL5Y4UJY-CV0YyZHk.js.gz +0 -0
  143. package/dist/client/assets/{git-compare-BlcHEuBI.js → git-compare-CGiJqTYP.js} +1 -1
  144. package/dist/client/assets/{gitGraphDiagram-WWUBYQGX-nOlVCBmL.js → gitGraphDiagram-WWUBYQGX-DZvnSoyE.js} +1 -1
  145. package/dist/client/assets/gitGraphDiagram-WWUBYQGX-DZvnSoyE.js.br +0 -0
  146. package/dist/client/assets/gitGraphDiagram-WWUBYQGX-DZvnSoyE.js.gz +0 -0
  147. package/dist/client/assets/{infoDiagram-27XIBGKW-CjVm9Lzz.js → infoDiagram-27XIBGKW-G1OS50nR.js} +1 -1
  148. package/dist/client/assets/{ishikawaDiagram-5VMMS53U-DmVMaGVp.js → ishikawaDiagram-5VMMS53U-C0-s6pfy.js} +1 -1
  149. package/dist/client/assets/ishikawaDiagram-5VMMS53U-C0-s6pfy.js.br +0 -0
  150. package/dist/client/assets/ishikawaDiagram-5VMMS53U-C0-s6pfy.js.gz +0 -0
  151. package/dist/client/assets/{journeyDiagram-3NMN7TZE-DLwkoAy9.js → journeyDiagram-3NMN7TZE-B-9Omdit.js} +1 -1
  152. package/dist/client/assets/journeyDiagram-3NMN7TZE-B-9Omdit.js.br +0 -0
  153. package/dist/client/assets/journeyDiagram-3NMN7TZE-B-9Omdit.js.gz +0 -0
  154. package/dist/client/assets/{kanban-definition-UXKFOSKX-GWkp_QiO.js → kanban-definition-UXKFOSKX-BS_qXegp.js} +1 -1
  155. package/dist/client/assets/kanban-definition-UXKFOSKX-BS_qXegp.js.br +0 -0
  156. package/dist/client/assets/kanban-definition-UXKFOSKX-BS_qXegp.js.gz +0 -0
  157. package/dist/client/assets/{layout-DFg5a61y.js → layout-0NYin1Qz.js} +1 -1
  158. package/dist/client/assets/layout-0NYin1Qz.js.br +0 -0
  159. package/dist/client/assets/layout-0NYin1Qz.js.gz +0 -0
  160. package/dist/client/assets/{linear-B0OdJLe1.js → linear-CTVKrsxK.js} +1 -1
  161. package/dist/client/assets/linear-CTVKrsxK.js.br +0 -0
  162. package/dist/client/assets/linear-CTVKrsxK.js.gz +0 -0
  163. package/dist/client/assets/{link-BnxdKJ7b.js → link-C5oPMHMJ.js} +1 -1
  164. package/dist/client/assets/link-C5oPMHMJ.js.br +0 -0
  165. package/dist/client/assets/link-C5oPMHMJ.js.gz +0 -0
  166. package/dist/client/assets/{list-tree-Bou8VSzi.js → list-tree-BPg9QdiM.js} +1 -1
  167. package/dist/client/assets/{loader-circle-q7h8uwFI.js → loader-circle-CTtHKNWd.js} +1 -1
  168. package/dist/client/assets/{maximize-2-BGTBw-Ku.js → maximize-2-32OfQ0kG.js} +1 -1
  169. package/dist/client/assets/{mermaid.core-DQA3ykXv.js → mermaid.core-BgCZP9ke.js} +5 -5
  170. package/dist/client/assets/mermaid.core-BgCZP9ke.js.br +0 -0
  171. package/dist/client/assets/mermaid.core-BgCZP9ke.js.gz +0 -0
  172. package/dist/client/assets/{mindmap-definition-YA3MSWOX-DsZAVAGP.js → mindmap-definition-YA3MSWOX-BjSZRjkg.js} +1 -1
  173. package/dist/client/assets/mindmap-definition-YA3MSWOX-BjSZRjkg.js.br +0 -0
  174. package/dist/client/assets/mindmap-definition-YA3MSWOX-BjSZRjkg.js.gz +0 -0
  175. package/dist/client/assets/{passwordBootstrap-CEZSL94g.js → passwordBootstrap-CXQgj5nw.js} +1 -1
  176. package/dist/client/assets/passwordBootstrap-CXQgj5nw.js.br +0 -0
  177. package/dist/client/assets/passwordBootstrap-CXQgj5nw.js.gz +0 -0
  178. package/dist/client/assets/{pegDiagram-XKGWAZYB-C3ar01Lf.js → pegDiagram-XKGWAZYB-qDU0sU6m.js} +1 -1
  179. package/dist/client/assets/pegDiagram-XKGWAZYB-qDU0sU6m.js.br +0 -0
  180. package/dist/client/assets/pegDiagram-XKGWAZYB-qDU0sU6m.js.gz +0 -0
  181. package/dist/client/assets/{pieDiagram-E7YTZNPT-C8LIa9gE.js → pieDiagram-E7YTZNPT-CZF3MEOJ.js} +1 -1
  182. package/dist/client/assets/pieDiagram-E7YTZNPT-CZF3MEOJ.js.br +0 -0
  183. package/dist/client/assets/pieDiagram-E7YTZNPT-CZF3MEOJ.js.gz +0 -0
  184. package/dist/client/assets/{quadrantDiagram-AXDQQJYC-BuRJ1f9F.js → quadrantDiagram-AXDQQJYC-DcZW4RMG.js} +1 -1
  185. package/dist/client/assets/quadrantDiagram-AXDQQJYC-DcZW4RMG.js.br +0 -0
  186. package/dist/client/assets/quadrantDiagram-AXDQQJYC-DcZW4RMG.js.gz +0 -0
  187. package/dist/client/assets/{quote-qXNI_NTi.js → quote-CuTMveNr.js} +1 -1
  188. package/dist/client/assets/{railroadDiagram-O6MQD6OU-D7iZy3dO.js → railroadDiagram-O6MQD6OU-DtQROK31.js} +1 -1
  189. package/dist/client/assets/railroadDiagram-O6MQD6OU-DtQROK31.js.br +0 -0
  190. package/dist/client/assets/railroadDiagram-O6MQD6OU-DtQROK31.js.gz +0 -0
  191. package/dist/client/assets/{rdpSession-DUBlG26K.js → rdpSession-a1ZvAyiW.js} +1 -1
  192. package/dist/client/assets/rdpSession-a1ZvAyiW.js.br +0 -0
  193. package/dist/client/assets/rdpSession-a1ZvAyiW.js.gz +0 -0
  194. package/dist/client/assets/{requirementDiagram-BXWQKSXE-DhY8g8qK.js → requirementDiagram-BXWQKSXE-B8yR39lm.js} +1 -1
  195. package/dist/client/assets/requirementDiagram-BXWQKSXE-B8yR39lm.js.br +0 -0
  196. package/dist/client/assets/requirementDiagram-BXWQKSXE-B8yR39lm.js.gz +0 -0
  197. package/dist/client/assets/{sankeyDiagram-P5KCCOFB-DDA_LQcg.js → sankeyDiagram-P5KCCOFB-D27zuIFg.js} +1 -1
  198. package/dist/client/assets/sankeyDiagram-P5KCCOFB-D27zuIFg.js.br +0 -0
  199. package/dist/client/assets/sankeyDiagram-P5KCCOFB-D27zuIFg.js.gz +0 -0
  200. package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-bWgfdfwY.js → sequenceDiagram-WJ2MYXX4-BI3gSsUa.js} +1 -1
  201. package/dist/client/assets/sequenceDiagram-WJ2MYXX4-BI3gSsUa.js.br +0 -0
  202. package/dist/client/assets/sequenceDiagram-WJ2MYXX4-BI3gSsUa.js.gz +0 -0
  203. package/dist/client/assets/{settings-2-B-sr3wQM.js → settings-2-GFFo5UwO.js} +1 -1
  204. package/dist/client/assets/{sizeCapture-INFHLROL-BYxi7e0R.js → sizeCapture-INFHLROL-NBzIIRER.js} +1 -1
  205. package/dist/client/assets/sizeCapture-INFHLROL-NBzIIRER.js.br +0 -0
  206. package/dist/client/assets/sizeCapture-INFHLROL-NBzIIRER.js.gz +0 -0
  207. package/dist/client/assets/{sparkles-CCLflSFy.js → sparkles-ZXBp-KvJ.js} +1 -1
  208. package/dist/client/assets/{stateDiagram-D77RDMKH-6vqC2h36.js → stateDiagram-D77RDMKH-D-D0FB4D.js} +1 -1
  209. package/dist/client/assets/stateDiagram-D77RDMKH-D-D0FB4D.js.br +0 -0
  210. package/dist/client/assets/stateDiagram-D77RDMKH-D-D0FB4D.js.gz +0 -0
  211. package/dist/client/assets/stateDiagram-v2-MP3YSRHH-Dk-QpCnJ.js +1 -0
  212. package/dist/client/assets/{sun-B9_TfxlA.js → sun-CO5F9zS4.js} +1 -1
  213. package/dist/client/assets/{swimlanes-42K2YHIH-B4qrXam7.js → swimlanes-42K2YHIH-CH_jxbV3.js} +1 -1
  214. package/dist/client/assets/swimlanes-42K2YHIH-CH_jxbV3.js.br +0 -0
  215. package/dist/client/assets/swimlanes-42K2YHIH-CH_jxbV3.js.gz +0 -0
  216. package/dist/client/assets/swimlanesDiagram-VR7AAH4N-C4E5FOdv.js +8 -0
  217. package/dist/client/assets/{syntaxHighlight-bcOB6oww.js → syntaxHighlight-C9PKWUqs.js} +1 -1
  218. package/dist/client/assets/syntaxHighlight-C9PKWUqs.js.br +0 -0
  219. package/dist/client/assets/syntaxHighlight-C9PKWUqs.js.gz +0 -0
  220. package/dist/client/assets/{timeline-definition-24CTP7MA-D0_004MF.js → timeline-definition-24CTP7MA-DuiaCBON.js} +1 -1
  221. package/dist/client/assets/timeline-definition-24CTP7MA-DuiaCBON.js.br +0 -0
  222. package/dist/client/assets/timeline-definition-24CTP7MA-DuiaCBON.js.gz +0 -0
  223. package/dist/client/assets/{triangle-alert-D3w7mA17.js → triangle-alert-CuGUScPU.js} +1 -1
  224. package/dist/client/assets/{unplug-BSblgecr.js → unplug-C0pb-BKU.js} +1 -1
  225. package/dist/client/assets/{vennDiagram-4TSXK5OY-Bqrx-47p.js → vennDiagram-4TSXK5OY-DUEZFEzo.js} +1 -1
  226. package/dist/client/assets/vennDiagram-4TSXK5OY-DUEZFEzo.js.br +0 -0
  227. package/dist/client/assets/vennDiagram-4TSXK5OY-DUEZFEzo.js.gz +0 -0
  228. package/dist/client/assets/{videoCompression-df1Ej3AR.js → videoCompression-JAcp0atl.js} +1 -1
  229. package/dist/client/assets/videoCompression-JAcp0atl.js.br +0 -0
  230. package/dist/client/assets/videoCompression-JAcp0atl.js.gz +0 -0
  231. package/dist/client/assets/{wardleyDiagram-VM6X3IG4-C4LCUdfd.js → wardleyDiagram-VM6X3IG4-CnHmIbot.js} +1 -1
  232. package/dist/client/assets/wardleyDiagram-VM6X3IG4-CnHmIbot.js.br +0 -0
  233. package/dist/client/assets/wardleyDiagram-VM6X3IG4-CnHmIbot.js.gz +0 -0
  234. package/dist/client/assets/{xychartDiagram-S5SC5T6Z-E5AQcZVI.js → xychartDiagram-S5SC5T6Z-CDAoHQTr.js} +1 -1
  235. package/dist/client/assets/xychartDiagram-S5SC5T6Z-CDAoHQTr.js.br +0 -0
  236. package/dist/client/assets/xychartDiagram-S5SC5T6Z-CDAoHQTr.js.gz +0 -0
  237. package/dist/client/index.html +1 -1
  238. package/dist/client/index.html.br +0 -0
  239. package/dist/client/index.html.gz +0 -0
  240. package/dist/client/sw.js +1 -1
  241. package/dist/client/sw.js.br +0 -0
  242. package/dist/client/sw.js.gz +0 -0
  243. package/package.json +1 -1
  244. package/runtime-manifest.json +2 -2
  245. package/dist/client/assets/AndroidMirrorView-DkOZxYLg.js.br +0 -0
  246. package/dist/client/assets/AndroidMirrorView-DkOZxYLg.js.gz +0 -0
  247. package/dist/client/assets/App-DqRkfVSm.js.br +0 -0
  248. package/dist/client/assets/ArchitecturePanel-m9GKl3cl.js.br +0 -0
  249. package/dist/client/assets/ArchitecturePanel-m9GKl3cl.js.gz +0 -0
  250. package/dist/client/assets/ChangeWalkthroughPanel-HZ0zvFvi.js.br +0 -0
  251. package/dist/client/assets/ChangeWalkthroughPanel-HZ0zvFvi.js.gz +0 -0
  252. package/dist/client/assets/CollaborationMainWorkspace-B4OMk92m.js.br +0 -0
  253. package/dist/client/assets/CollaborationMainWorkspace-B4OMk92m.js.gz +0 -0
  254. package/dist/client/assets/ComputerControlView-CSs54lf0.js.br +0 -0
  255. package/dist/client/assets/ComputerControlView-CSs54lf0.js.gz +0 -0
  256. package/dist/client/assets/DagPlayground-yoS2llnB.js.br +0 -0
  257. package/dist/client/assets/DagPlayground-yoS2llnB.js.gz +0 -0
  258. package/dist/client/assets/DiffLab-Dj1MT9pY.js.br +0 -0
  259. package/dist/client/assets/DiffLab-Dj1MT9pY.js.gz +0 -0
  260. package/dist/client/assets/DiffReview-BX2S9hNp.js.br +0 -0
  261. package/dist/client/assets/DiffReview-BX2S9hNp.js.gz +0 -0
  262. package/dist/client/assets/DiffReviewLab-DqI14GEk.js.br +0 -0
  263. package/dist/client/assets/DiffReviewLab-DqI14GEk.js.gz +0 -0
  264. package/dist/client/assets/DiffViewer-AZvdDGfH.js.br +0 -0
  265. package/dist/client/assets/DiffViewer-AZvdDGfH.js.gz +0 -0
  266. package/dist/client/assets/GitLoadingSkeleton-CBPykkZP.js.br +0 -0
  267. package/dist/client/assets/GitLoadingSkeleton-CBPykkZP.js.gz +0 -0
  268. package/dist/client/assets/MarkdownPreview-DpvTnKkj.js.br +0 -0
  269. package/dist/client/assets/MarkdownPreview-DpvTnKkj.js.gz +0 -0
  270. package/dist/client/assets/ModelPreview-Du_AyPr9.js.br +0 -0
  271. package/dist/client/assets/ModelPreview-Du_AyPr9.js.gz +0 -0
  272. package/dist/client/assets/RecordingSaveDialog-CtXaGgIo.js.br +0 -0
  273. package/dist/client/assets/RecordingSaveDialog-CtXaGgIo.js.gz +0 -0
  274. package/dist/client/assets/RightSidebar-DU3gwdzg.js.br +0 -0
  275. package/dist/client/assets/RightSidebar-DU3gwdzg.js.gz +0 -0
  276. package/dist/client/assets/SessionChatView-CxfwJMuK.js.br +0 -0
  277. package/dist/client/assets/SessionChatView-CxfwJMuK.js.gz +0 -0
  278. package/dist/client/assets/SessionResourceSidebar-B31PU57J.js +0 -2
  279. package/dist/client/assets/SessionResourceSidebar-B31PU57J.js.br +0 -0
  280. package/dist/client/assets/SessionResourceSidebar-B31PU57J.js.gz +0 -0
  281. package/dist/client/assets/TodoWorkspace-j9BLgk94.js.br +0 -0
  282. package/dist/client/assets/TodoWorkspace-j9BLgk94.js.gz +0 -0
  283. package/dist/client/assets/abnfDiagram-VCTEODGH-LfmMIpPX.js.br +0 -0
  284. package/dist/client/assets/abnfDiagram-VCTEODGH-LfmMIpPX.js.gz +0 -0
  285. package/dist/client/assets/app-BMJesFDU.js.br +0 -0
  286. package/dist/client/assets/app-BMJesFDU.js.gz +0 -0
  287. package/dist/client/assets/arc-DMzcmH2U.js.br +0 -0
  288. package/dist/client/assets/arc-DMzcmH2U.js.gz +0 -0
  289. package/dist/client/assets/architectureDiagram-5GKGNRK7-CphS_S5Q.js.br +0 -0
  290. package/dist/client/assets/architectureDiagram-5GKGNRK7-CphS_S5Q.js.gz +0 -0
  291. package/dist/client/assets/blockDiagram-I7D4REHJ-Dx_4qkcL.js.br +0 -0
  292. package/dist/client/assets/blockDiagram-I7D4REHJ-Dx_4qkcL.js.gz +0 -0
  293. package/dist/client/assets/c4Diagram-7LVT6UL2-DiGdnPo4.js.br +0 -0
  294. package/dist/client/assets/c4Diagram-7LVT6UL2-DiGdnPo4.js.gz +0 -0
  295. package/dist/client/assets/channel-BxAJ9Qmh.js +0 -1
  296. package/dist/client/assets/chunk-F27PBJKO-BfQILS9u.js.br +0 -0
  297. package/dist/client/assets/chunk-F27PBJKO-BfQILS9u.js.gz +0 -0
  298. package/dist/client/assets/chunk-IMKFNOWR-D111Jpl3.js.br +0 -0
  299. package/dist/client/assets/chunk-IMKFNOWR-D111Jpl3.js.gz +0 -0
  300. package/dist/client/assets/chunk-SVP7TREG-BvQafCMJ.js.br +0 -0
  301. package/dist/client/assets/chunk-SVP7TREG-BvQafCMJ.js.gz +0 -0
  302. package/dist/client/assets/chunk-TICWLB2K-CQXPwGBz.js.br +0 -0
  303. package/dist/client/assets/chunk-TICWLB2K-CQXPwGBz.js.gz +0 -0
  304. package/dist/client/assets/classDiagram-ZZMXUADV-D0oXVFxd.js +0 -1
  305. package/dist/client/assets/classDiagram-v2-VYDZK3BY-D0oXVFxd.js +0 -1
  306. package/dist/client/assets/clipboardText-5puxqqm_.js.br +0 -0
  307. package/dist/client/assets/clipboardText-5puxqqm_.js.gz +0 -0
  308. package/dist/client/assets/cose-bilkent-JH36ORCC-CqWarkUj.js.br +0 -0
  309. package/dist/client/assets/cose-bilkent-JH36ORCC-CqWarkUj.js.gz +0 -0
  310. package/dist/client/assets/cynefin-OW5HDTMX-CFW2ifig.js.br +0 -0
  311. package/dist/client/assets/cynefin-OW5HDTMX-CFW2ifig.js.gz +0 -0
  312. package/dist/client/assets/cynefinDiagram-5FMLGOSQ-yggxM55S.js.br +0 -0
  313. package/dist/client/assets/cynefinDiagram-5FMLGOSQ-yggxM55S.js.gz +0 -0
  314. package/dist/client/assets/dagre-GXQ25YYZ-inq7o--x.js.br +0 -0
  315. package/dist/client/assets/dagre-GXQ25YYZ-inq7o--x.js.gz +0 -0
  316. package/dist/client/assets/diagram-S7CK7UJ4-BUXMnyQN.js.br +0 -0
  317. package/dist/client/assets/diagram-S7CK7UJ4-BUXMnyQN.js.gz +0 -0
  318. package/dist/client/assets/diagram-UQ7AKVKN-BJbw-Imf.js.br +0 -0
  319. package/dist/client/assets/diagram-UQ7AKVKN-BJbw-Imf.js.gz +0 -0
  320. package/dist/client/assets/diagram-VSXAHHWV-CSfl8yS7.js.br +0 -0
  321. package/dist/client/assets/diagram-VSXAHHWV-CSfl8yS7.js.gz +0 -0
  322. package/dist/client/assets/diagram-VX7I27RA-zV-Vrv89.js.br +0 -0
  323. package/dist/client/assets/diagram-VX7I27RA-zV-Vrv89.js.gz +0 -0
  324. package/dist/client/assets/diagram-Z3DM3KII-CRnE-snw.js.br +0 -0
  325. package/dist/client/assets/diagram-Z3DM3KII-CRnE-snw.js.gz +0 -0
  326. package/dist/client/assets/ebnfDiagram-PWID7BFC-CE30oImc.js.br +0 -0
  327. package/dist/client/assets/ebnfDiagram-PWID7BFC-CE30oImc.js.gz +0 -0
  328. package/dist/client/assets/erDiagram-RLTQ6QDP-D-5bIySI.js.br +0 -0
  329. package/dist/client/assets/erDiagram-RLTQ6QDP-D-5bIySI.js.gz +0 -0
  330. package/dist/client/assets/flowDiagram-HODETNUW-E_jPKtQR.js.br +0 -0
  331. package/dist/client/assets/flowDiagram-HODETNUW-E_jPKtQR.js.gz +0 -0
  332. package/dist/client/assets/ganttDiagram-EL5Y4UJY-BWvLOUzC.js.br +0 -0
  333. package/dist/client/assets/ganttDiagram-EL5Y4UJY-BWvLOUzC.js.gz +0 -0
  334. package/dist/client/assets/gitGraphDiagram-WWUBYQGX-nOlVCBmL.js.br +0 -0
  335. package/dist/client/assets/gitGraphDiagram-WWUBYQGX-nOlVCBmL.js.gz +0 -0
  336. package/dist/client/assets/ishikawaDiagram-5VMMS53U-DmVMaGVp.js.br +0 -0
  337. package/dist/client/assets/ishikawaDiagram-5VMMS53U-DmVMaGVp.js.gz +0 -0
  338. package/dist/client/assets/journeyDiagram-3NMN7TZE-DLwkoAy9.js.br +0 -0
  339. package/dist/client/assets/journeyDiagram-3NMN7TZE-DLwkoAy9.js.gz +0 -0
  340. package/dist/client/assets/kanban-definition-UXKFOSKX-GWkp_QiO.js.br +0 -0
  341. package/dist/client/assets/kanban-definition-UXKFOSKX-GWkp_QiO.js.gz +0 -0
  342. package/dist/client/assets/layout-DFg5a61y.js.br +0 -0
  343. package/dist/client/assets/layout-DFg5a61y.js.gz +0 -0
  344. package/dist/client/assets/linear-B0OdJLe1.js.br +0 -0
  345. package/dist/client/assets/linear-B0OdJLe1.js.gz +0 -0
  346. package/dist/client/assets/link-BnxdKJ7b.js.br +0 -0
  347. package/dist/client/assets/link-BnxdKJ7b.js.gz +0 -0
  348. package/dist/client/assets/mermaid.core-DQA3ykXv.js.br +0 -0
  349. package/dist/client/assets/mermaid.core-DQA3ykXv.js.gz +0 -0
  350. package/dist/client/assets/mindmap-definition-YA3MSWOX-DsZAVAGP.js.br +0 -0
  351. package/dist/client/assets/mindmap-definition-YA3MSWOX-DsZAVAGP.js.gz +0 -0
  352. package/dist/client/assets/passwordBootstrap-CEZSL94g.js.br +0 -0
  353. package/dist/client/assets/passwordBootstrap-CEZSL94g.js.gz +0 -0
  354. package/dist/client/assets/pegDiagram-XKGWAZYB-C3ar01Lf.js.br +0 -0
  355. package/dist/client/assets/pegDiagram-XKGWAZYB-C3ar01Lf.js.gz +0 -0
  356. package/dist/client/assets/pieDiagram-E7YTZNPT-C8LIa9gE.js.br +0 -0
  357. package/dist/client/assets/pieDiagram-E7YTZNPT-C8LIa9gE.js.gz +0 -0
  358. package/dist/client/assets/quadrantDiagram-AXDQQJYC-BuRJ1f9F.js.br +0 -0
  359. package/dist/client/assets/quadrantDiagram-AXDQQJYC-BuRJ1f9F.js.gz +0 -0
  360. package/dist/client/assets/railroadDiagram-O6MQD6OU-D7iZy3dO.js.br +0 -0
  361. package/dist/client/assets/railroadDiagram-O6MQD6OU-D7iZy3dO.js.gz +0 -0
  362. package/dist/client/assets/rdpSession-DUBlG26K.js.br +0 -0
  363. package/dist/client/assets/rdpSession-DUBlG26K.js.gz +0 -0
  364. package/dist/client/assets/requirementDiagram-BXWQKSXE-DhY8g8qK.js.br +0 -0
  365. package/dist/client/assets/requirementDiagram-BXWQKSXE-DhY8g8qK.js.gz +0 -0
  366. package/dist/client/assets/sankeyDiagram-P5KCCOFB-DDA_LQcg.js.br +0 -0
  367. package/dist/client/assets/sankeyDiagram-P5KCCOFB-DDA_LQcg.js.gz +0 -0
  368. package/dist/client/assets/sequenceDiagram-WJ2MYXX4-bWgfdfwY.js.br +0 -0
  369. package/dist/client/assets/sequenceDiagram-WJ2MYXX4-bWgfdfwY.js.gz +0 -0
  370. package/dist/client/assets/sizeCapture-INFHLROL-BYxi7e0R.js.br +0 -0
  371. package/dist/client/assets/sizeCapture-INFHLROL-BYxi7e0R.js.gz +0 -0
  372. package/dist/client/assets/stateDiagram-D77RDMKH-6vqC2h36.js.br +0 -0
  373. package/dist/client/assets/stateDiagram-D77RDMKH-6vqC2h36.js.gz +0 -0
  374. package/dist/client/assets/stateDiagram-v2-MP3YSRHH-Bb23lB9W.js +0 -1
  375. package/dist/client/assets/swimlanes-42K2YHIH-B4qrXam7.js.br +0 -0
  376. package/dist/client/assets/swimlanes-42K2YHIH-B4qrXam7.js.gz +0 -0
  377. package/dist/client/assets/swimlanesDiagram-VR7AAH4N-CQ1XJUVU.js +0 -8
  378. package/dist/client/assets/syntaxHighlight-bcOB6oww.js.br +0 -0
  379. package/dist/client/assets/syntaxHighlight-bcOB6oww.js.gz +0 -0
  380. package/dist/client/assets/timeline-definition-24CTP7MA-D0_004MF.js.br +0 -0
  381. package/dist/client/assets/timeline-definition-24CTP7MA-D0_004MF.js.gz +0 -0
  382. package/dist/client/assets/vennDiagram-4TSXK5OY-Bqrx-47p.js.br +0 -0
  383. package/dist/client/assets/vennDiagram-4TSXK5OY-Bqrx-47p.js.gz +0 -0
  384. package/dist/client/assets/videoCompression-df1Ej3AR.js.br +0 -0
  385. package/dist/client/assets/videoCompression-df1Ej3AR.js.gz +0 -0
  386. package/dist/client/assets/wardleyDiagram-VM6X3IG4-C4LCUdfd.js.br +0 -0
  387. package/dist/client/assets/wardleyDiagram-VM6X3IG4-C4LCUdfd.js.gz +0 -0
  388. package/dist/client/assets/xychartDiagram-S5SC5T6Z-E5AQcZVI.js.br +0 -0
  389. package/dist/client/assets/xychartDiagram-S5SC5T6Z-E5AQcZVI.js.gz +0 -0
@@ -1,3 +1,3 @@
1
- import{aQ as k,aM as $t,dj as Dn,a6 as jn,aj as _n,cY as Tn,e3 as ce,e1 as On,bF as Hr,cb as n,ed as In,e5 as Pn,cg as Ln,e0 as Un,cq as zt,A as Cr,D as Bt,dK as zn,O as Bn,s as Re,R as Fn,Z as $n,m as qn,a0 as Nr,f as Rr,a5 as rt,c as Vn,H as Yn,ao as Wr,ch as Hn,dJ as Wn,C as Kn,aI as Qn}from"./app-BMJesFDU.js";import{b as l,r as nt}from"./dnd-BCFAPC0L.js";import{v as Xn}from"./v4-EwEgHOG0.js";import{R as Gn}from"./RecordingSaveDialog-CtXaGgIo.js";import{U as Jn,K as Zn}from"./unplug-BSblgecr.js";const es=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]],ts=k("bell",es);const rs=[["path",{d:"M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",key:"18u6gg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]],ns=k("camera",rs);const ss=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],is=k("circle",ss);const as=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 3v18",key:"108xh3"}]],Mr=k("columns-2",as);const os=[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]],cs=k("grip-vertical",os);const ls=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],ds=k("house",ls);const us=[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]],hs=k("layers",us);const fs=[["path",{d:"M8 3H5a2 2 0 0 0-2 2v3",key:"1dcmit"}],["path",{d:"M21 8V5a2 2 0 0 0-2-2h-3",key:"1e4gt3"}],["path",{d:"M3 16v3a2 2 0 0 0 2 2h3",key:"wsl5sc"}],["path",{d:"M16 21h3a2 2 0 0 0 2-2v-3",key:"18trek"}]],ps=k("maximize",fs);const ms=[["path",{d:"M5 12h14",key:"1ays0h"}]],xs=k("minus",ms);const ys=[["path",{d:"M8 3v3a2 2 0 0 1-2 2H3",key:"hohbtr"}],["path",{d:"M21 8h-3a2 2 0 0 1-2-2V3",key:"5jw1f3"}],["path",{d:"M3 16h3a2 2 0 0 1 2 2v3",key:"198tvr"}],["path",{d:"M16 21v-3a2 2 0 0 1 2-2h3",key:"ph8mxp"}]],gs=k("minimize",ys);const bs=[["path",{d:"M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8",key:"10dyio"}],["path",{d:"M10 19v-3.96 3.15",key:"1irgej"}],["path",{d:"M7 19h5",key:"qswx4l"}],["rect",{width:"6",height:"10",x:"16",y:"12",rx:"2",key:"1egngj"}]],vs=k("monitor-smartphone",bs);const ws=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"m8 9 3 3-3 3",key:"12hl5m"}]],Ss=k("panel-right-close",ws);const Es=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"m10 15-3-3 3-3",key:"1pgupc"}]],ks=k("panel-right-open",Es);const Cs=[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z",key:"1xoxul"}],["path",{d:"M9 8V2",key:"14iosj"}]],Ns=k("plug",Cs);const Rs=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],Ms=k("power",Rs);const As=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],Ds=k("rotate-cw",As);const js=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],_s=k("send",js);const Ts=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]],Kr=k("square",Ts);const Os=[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}]],Is=k("volume-1",Os);const Ps=[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]],Ls=k("volume-2",Ps),Ar=$t(i=>({overlay:"off",setOverlay:t=>i({overlay:t})}));function Us(i){let t=1,r="terminal";for(;;){let s=!1;for(const c of i.values())if(c.name===r){s=!0;break}if(!s)break;r=`terminal-${t}`,t++}return r}const zs=$t((i,t)=>({sessions:new Map,activeSessionId:null,nextSessionNumber:1,createSession:r=>{const s=Xn(),c=Date.now(),h=t().sessions,p=Us(h),x={id:s,cwd:r,sessionId:null,name:p,customName:!1,createdAt:c,lastActivity:c};return i(d=>{const E=new Map(d.sessions);return E.set(s,x),{sessions:E,activeSessionId:d.activeSessionId??s,nextSessionNumber:d.nextSessionNumber+1}}),s},closeSession:r=>{i(s=>{const c=new Map(s.sessions),h=s.activeSessionId===r;c.delete(r);let p=s.activeSessionId;if(h){const x=Array.from(c.keys());p=x.length>0?x[0]:null}return{sessions:c,activeSessionId:p}})},switchSession:r=>{i(s=>s.sessions.has(r)?{activeSessionId:r}:s)},updateSession:(r,s)=>{i(c=>{const h=c.sessions.get(r);if(!h)return c;const p=new Map(c.sessions);return p.set(r,{...h,...s,lastActivity:Date.now()}),{sessions:p}})},setTerminalSession:(r,s)=>{t().updateSession(r,{sessionId:s.sessionId})},getActiveSession:()=>{const r=t();if(r.activeSessionId)return r.sessions.get(r.activeSessionId)},getSessionCount:()=>t().sessions.size,clearAllSessions:()=>{i({sessions:new Map,activeSessionId:null,nextSessionNumber:1})}})),Bs=[7e5,1e6,14e5,18e5,24e5,32e5,4e6,5e6,6e6,8e6,1e7,12e6].map(i=>({id:"auto",maxSize:1600,bitRate:i,maxFps:30}));class Fs{level=6;badSince=null;goodSince=null;connectedAt=0;lastSample=-1/0;lastChange=-1/0;lastUpgrade=-1/0;upgradeAfter=0;failedProbes=0;baselineRtt=1/0;get quality(){return Bs[this.level]}connected(t){this.connectedAt=t,this.badSince=this.goodSince=null,this.lastSample=-1/0}sample(t,r,s=1600){if(r-this.lastSample>2500&&(this.badSince=this.goodSince=null),this.lastSample=r,t.rttMs!==null&&(this.baselineRtt=Math.min(this.baselineRtt,t.rttMs)),r-this.connectedAt<3e3)return null;const c=t.rttMs!==null&&t.rttMs>this.baselineRtt+150,h=t.deliveryDelayMs>250||t.decodeQueue>=4||c&&t.frames>0&&t.deliveryDelayMs>100,p=t.deliveryDelayMs>800||t.decodeQueue>=8,x=t.rttMs!==null&&t.rttMs<this.baselineRtt+100&&t.deliveryDelayMs<80&&t.decodeQueue<=1;this.badSince=h?this.badSince??r:null,this.goodSince=x?this.goodSince??r:null;const d=s<=1080?7:s<=1600?9:11;if(this.badSince!==null&&r-this.badSince>=(p?1e3:2e3)&&r-this.lastChange>=(p?2e3:3e3)&&this.level>0){this.level=Math.max(0,this.level-(p?2:1));const E=r-this.lastUpgrade<2e4;this.failedProbes=E?this.failedProbes+1:0,this.upgradeAfter=r+(E?Math.min(3e4,8e3*2**(this.failedProbes-1)):5e3),this.lastUpgrade=-1/0}else if(this.goodSince!==null&&r-this.goodSince>=3e3&&r-this.lastChange>=4e3&&r>=this.upgradeAfter&&this.level<d)this.level++,this.lastUpgrade=r;else return null;return this.lastChange=r,this.badSince=this.goodSince=null,this.quality}}function $s(i,t){const r=new Map,s=c=>c.serial===t?0:c.state!=="device"?5:c.isNetwork?c.serial.startsWith("[")?3:2:1;for(const c of i){const h=c.physicalId?`physical:${c.physicalId}`:`serial:${c.serial}`,p=r.get(h);(!p||s(c)<s(p))&&r.set(h,c)}return[...r.values()]}const qs=0,Vs=1,Ys=2,Hs=3,Ws=4,Ks=5,Qs=7,Xs=10,Gs=11,Js=16,jt=17,Dr=0,_t=1,Zs=2,jr=3,Tt=0,_r=1,Tr=1,fe=0xffffffffffffffffn,st=0xfffffffffffffffen,Me={HOME:3,APP_SWITCH:187,POWER:26,VOLUME_UP:24,VOLUME_DOWN:25};function Qr(i,t,r){i.setUint32(t,Math.max(0,Math.round(r.x))&4294967295),i.setUint32(t+4,Math.max(0,Math.round(r.y))&4294967295),i.setUint16(t+8,Math.min(65535,Math.round(r.screenWidth))),i.setUint16(t+10,Math.min(65535,Math.round(r.screenHeight)))}function ei(i,t,r,s,c,h){const p=new Uint8Array(32),x=new DataView(p.buffer);return x.setUint8(0,Ys),x.setUint8(1,i),x.setBigUint64(2,t),Qr(x,10,r),x.setUint16(22,Math.max(0,Math.min(65535,Math.round(s*65536)))),x.setUint32(24,c>>>0),x.setUint32(28,h>>>0),p}function Ot(i,t,r=0,s=0){const c=new Uint8Array(14),h=new DataView(c.buffer);return h.setUint8(0,qs),h.setUint8(1,i),h.setUint32(2,t>>>0),h.setUint32(6,r>>>0),h.setUint32(10,s>>>0),c}function ti(i,t,r,s=0){const c=new Uint8Array(21),h=new DataView(c.buffer);h.setUint8(0,Hs),Qr(h,1,i);const p=x=>Math.max(-32768,Math.min(32767,Math.round(Math.max(-1,Math.min(1,x/16))*32768)));return h.setInt16(13,p(t)),h.setInt16(15,p(r)),h.setUint32(17,s>>>0),c}function ri(i){const t=new TextEncoder().encode(i);if(!t.length)return null;const r=t.subarray(0,300),s=new Uint8Array(5+r.length),c=new DataView(s.buffer);return c.setUint8(0,Vs),c.setUint32(1,r.length),s.set(r,5),s}function ni(i){const t=new TextEncoder().encode(i);if(!t.length||t.length>255)return null;const r=new Uint8Array(2+t.length);return r[0]=Js,r[1]=t.length,r.set(t,2),r}function Ae(i){return new Uint8Array([i])}function Or(i){return new Uint8Array([Ws,i])}function si(i){return new Uint8Array([Xs,i?1:0])}function ii(i){let t="";for(let r=0;r<i.length;r+=32768)t+=String.fromCharCode(...i.subarray(r,r+32768));return btoa(t)}function ai(i){const t=atob(i),r=new Uint8Array(t.length);for(let s=0;s<t.length;s++)r[s]=t.charCodeAt(s);return r}function It(i){return i.toString(16).padStart(2,"0")}function Xr(i,t,r){for(let s=0;s+4<i.length;s++){const c=i[s]===0&&i[s+1]===0&&i[s+2]===1,p=i[s]===0&&i[s+1]===0&&i[s+2]===0&&i[s+3]===1?s+4:c?s+3:-1;if(p<0||p>=i.length)continue;if((r?i[p]>>1&63:i[p]&31)!==t){s=p-1;continue}let d=p+1;for(;d+2<i.length&&!(i[d]===0&&i[d+1]===0&&(i[d+2]===1||i[d+2]===0&&i[d+3]===1));)d++;return i.subarray(p,Math.min(i.length,d))}return null}function oi(i){const t=i?Xr(i,7,!1):null;return t&&t.length>=4?`avc1.${It(t[1])}${It(t[2])}${It(t[3])}`:"avc1.42e01e"}function ci(i){const t=i?Xr(i,32,!0):null;if(t&&t.length>=13){const r=t[1]>>6&3,s=t[1]&31,c=t[12];return`hev1.${r}.${s}.L${c}.B0`}return"hev1.1.6.L120.B0"}class li{constructor(t,r){this.canvas=t,this.callbacks=r}canvas;callbacks;readOnly=!1;setReadOnly(t){this.readOnly=t}liveBitrate=!1;bitrateFailureDetail;get lastBitrateFailure(){return this.bitrateFailureDetail}bitrateRequestId=0;bitratePending=null;get supportsLiveBitrate(){return this.liveBitrate}get canSetBitrate(){return this.liveBitrate&&!this.bitratePending&&this.socket?.readyState===1}setBitrate(t){return!this.canSetBitrate||!Number.isInteger(t)||t<3e5||t>3e7?Promise.resolve(!1):new Promise(r=>{const s=++this.bitrateRequestId,c=setTimeout(()=>this.finishBitrate(!1,`BITRATE_CLIENT_TIMEOUT: requested=${t} bps; no server confirmation within 4000ms`),4e3);this.bitratePending={id:s,value:t,resolve:r,timer:c},this.send({type:"bitrate",requestId:s,bitRate:t})})}finishBitrate(t,r){const s=this.bitratePending;s&&(this.bitratePending=null,clearTimeout(s.timer),t||(this.liveBitrate=!1,this.bitrateFailureDetail=r??this.bitrateFailureDetail??"BITRATE_REASON_UNAVAILABLE: server rejected adjustment without a diagnostic",this.closedByUser||this.callbacks.onBitrateSupport?.(!1,this.bitrateFailureDetail)),s.resolve(t))}socket=null;decoder=null;configured=!1;configData=null;header=null;closedByUser=!1;failureReason=null;lastMessageAt=0;lastFrameAt=0;lastResetAt=0;heartbeat=null;statsTimer=null;stallTimer=null;pendingConfig=null;needsKeyframe=!1;frameCount=0;receivedFrames=0;decodedFrames=0;controlsSent=0;lastSeq=0;lastType="";bytesSinceSample=0;warnedUnsupported=!1;lastSampleAt=0;serial="";autoQuality=!1;pingAt=null;rttMs=null;rttAt=0;minimumFrameOffset=1/0;deliveryDelayMs=0;peakDecodeQueue=0;sampleFrames=0;get currentHeader(){return this.header}connect(t,r){this.liveBitrate=!1,this.bitrateFailureDetail=void 0,this.serial=t,this.autoQuality=r?.id==="auto",this.closedByUser=!1,this.failureReason=null,this.callbacks.onState("connecting");let s;try{s=Dn(jn(t,r))}catch(c){this.reportError(c instanceof Error?c.message:"ANDROID_STREAM_FAILED");return}this.socket=s,s.onopen=()=>{this.lastMessageAt=Date.now()},s.onmessage=c=>{this.closedByUser||this.handleMessage(c.data)},s.onerror=()=>{!this.closedByUser&&!this.failureReason&&this.reportError("SCRCPY_CONNECTION_LOST")},s.onclose=c=>{if(this.finishBitrate(!1,"BITRATE_CONNECTION_CLOSED: preview connection closed"),this.liveBitrate=!1,this.teardownTimers(),this.closedByUser)this.callbacks.onState("idle");else{const h=`WebSocket close code=${c.code}${c.reason?`: ${c.reason}`:""}`;this.reportError(`${this.failureReason||"SCRCPY_CONNECTION_CLOSED"}
1
+ import{aQ as k,aM as $t,dj as Dn,a6 as jn,aj as _n,cY as Tn,e3 as ce,e1 as On,bF as Hr,cb as n,ed as In,e5 as Pn,cg as Ln,e0 as Un,cq as zt,A as Cr,D as Bt,dK as zn,O as Bn,s as Re,R as Fn,Z as $n,m as qn,a0 as Nr,f as Rr,a5 as rt,c as Vn,H as Yn,ao as Wr,ch as Hn,dJ as Wn,C as Kn,aI as Qn}from"./app-DvMXSNN7.js";import{b as l,r as nt}from"./dnd-BCFAPC0L.js";import{v as Xn}from"./v4-EwEgHOG0.js";import{R as Gn}from"./RecordingSaveDialog-CxSN76bp.js";import{U as Jn,K as Zn}from"./unplug-C0pb-BKU.js";const es=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]],ts=k("bell",es);const rs=[["path",{d:"M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",key:"18u6gg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]],ns=k("camera",rs);const ss=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],is=k("circle",ss);const as=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 3v18",key:"108xh3"}]],Mr=k("columns-2",as);const os=[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]],cs=k("grip-vertical",os);const ls=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],ds=k("house",ls);const us=[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]],hs=k("layers",us);const fs=[["path",{d:"M8 3H5a2 2 0 0 0-2 2v3",key:"1dcmit"}],["path",{d:"M21 8V5a2 2 0 0 0-2-2h-3",key:"1e4gt3"}],["path",{d:"M3 16v3a2 2 0 0 0 2 2h3",key:"wsl5sc"}],["path",{d:"M16 21h3a2 2 0 0 0 2-2v-3",key:"18trek"}]],ps=k("maximize",fs);const ms=[["path",{d:"M5 12h14",key:"1ays0h"}]],xs=k("minus",ms);const ys=[["path",{d:"M8 3v3a2 2 0 0 1-2 2H3",key:"hohbtr"}],["path",{d:"M21 8h-3a2 2 0 0 1-2-2V3",key:"5jw1f3"}],["path",{d:"M3 16h3a2 2 0 0 1 2 2v3",key:"198tvr"}],["path",{d:"M16 21v-3a2 2 0 0 1 2-2h3",key:"ph8mxp"}]],gs=k("minimize",ys);const bs=[["path",{d:"M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8",key:"10dyio"}],["path",{d:"M10 19v-3.96 3.15",key:"1irgej"}],["path",{d:"M7 19h5",key:"qswx4l"}],["rect",{width:"6",height:"10",x:"16",y:"12",rx:"2",key:"1egngj"}]],vs=k("monitor-smartphone",bs);const ws=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"m8 9 3 3-3 3",key:"12hl5m"}]],Ss=k("panel-right-close",ws);const Es=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"m10 15-3-3 3-3",key:"1pgupc"}]],ks=k("panel-right-open",Es);const Cs=[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z",key:"1xoxul"}],["path",{d:"M9 8V2",key:"14iosj"}]],Ns=k("plug",Cs);const Rs=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],Ms=k("power",Rs);const As=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],Ds=k("rotate-cw",As);const js=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],_s=k("send",js);const Ts=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]],Kr=k("square",Ts);const Os=[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}]],Is=k("volume-1",Os);const Ps=[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]],Ls=k("volume-2",Ps),Ar=$t(i=>({overlay:"off",setOverlay:t=>i({overlay:t})}));function Us(i){let t=1,r="terminal";for(;;){let s=!1;for(const c of i.values())if(c.name===r){s=!0;break}if(!s)break;r=`terminal-${t}`,t++}return r}const zs=$t((i,t)=>({sessions:new Map,activeSessionId:null,nextSessionNumber:1,createSession:r=>{const s=Xn(),c=Date.now(),h=t().sessions,p=Us(h),x={id:s,cwd:r,sessionId:null,name:p,customName:!1,createdAt:c,lastActivity:c};return i(d=>{const E=new Map(d.sessions);return E.set(s,x),{sessions:E,activeSessionId:d.activeSessionId??s,nextSessionNumber:d.nextSessionNumber+1}}),s},closeSession:r=>{i(s=>{const c=new Map(s.sessions),h=s.activeSessionId===r;c.delete(r);let p=s.activeSessionId;if(h){const x=Array.from(c.keys());p=x.length>0?x[0]:null}return{sessions:c,activeSessionId:p}})},switchSession:r=>{i(s=>s.sessions.has(r)?{activeSessionId:r}:s)},updateSession:(r,s)=>{i(c=>{const h=c.sessions.get(r);if(!h)return c;const p=new Map(c.sessions);return p.set(r,{...h,...s,lastActivity:Date.now()}),{sessions:p}})},setTerminalSession:(r,s)=>{t().updateSession(r,{sessionId:s.sessionId})},getActiveSession:()=>{const r=t();if(r.activeSessionId)return r.sessions.get(r.activeSessionId)},getSessionCount:()=>t().sessions.size,clearAllSessions:()=>{i({sessions:new Map,activeSessionId:null,nextSessionNumber:1})}})),Bs=[7e5,1e6,14e5,18e5,24e5,32e5,4e6,5e6,6e6,8e6,1e7,12e6].map(i=>({id:"auto",maxSize:1600,bitRate:i,maxFps:30}));class Fs{level=6;badSince=null;goodSince=null;connectedAt=0;lastSample=-1/0;lastChange=-1/0;lastUpgrade=-1/0;upgradeAfter=0;failedProbes=0;baselineRtt=1/0;get quality(){return Bs[this.level]}connected(t){this.connectedAt=t,this.badSince=this.goodSince=null,this.lastSample=-1/0}sample(t,r,s=1600){if(r-this.lastSample>2500&&(this.badSince=this.goodSince=null),this.lastSample=r,t.rttMs!==null&&(this.baselineRtt=Math.min(this.baselineRtt,t.rttMs)),r-this.connectedAt<3e3)return null;const c=t.rttMs!==null&&t.rttMs>this.baselineRtt+150,h=t.deliveryDelayMs>250||t.decodeQueue>=4||c&&t.frames>0&&t.deliveryDelayMs>100,p=t.deliveryDelayMs>800||t.decodeQueue>=8,x=t.rttMs!==null&&t.rttMs<this.baselineRtt+100&&t.deliveryDelayMs<80&&t.decodeQueue<=1;this.badSince=h?this.badSince??r:null,this.goodSince=x?this.goodSince??r:null;const d=s<=1080?7:s<=1600?9:11;if(this.badSince!==null&&r-this.badSince>=(p?1e3:2e3)&&r-this.lastChange>=(p?2e3:3e3)&&this.level>0){this.level=Math.max(0,this.level-(p?2:1));const E=r-this.lastUpgrade<2e4;this.failedProbes=E?this.failedProbes+1:0,this.upgradeAfter=r+(E?Math.min(3e4,8e3*2**(this.failedProbes-1)):5e3),this.lastUpgrade=-1/0}else if(this.goodSince!==null&&r-this.goodSince>=3e3&&r-this.lastChange>=4e3&&r>=this.upgradeAfter&&this.level<d)this.level++,this.lastUpgrade=r;else return null;return this.lastChange=r,this.badSince=this.goodSince=null,this.quality}}function $s(i,t){const r=new Map,s=c=>c.serial===t?0:c.state!=="device"?5:c.isNetwork?c.serial.startsWith("[")?3:2:1;for(const c of i){const h=c.physicalId?`physical:${c.physicalId}`:`serial:${c.serial}`,p=r.get(h);(!p||s(c)<s(p))&&r.set(h,c)}return[...r.values()]}const qs=0,Vs=1,Ys=2,Hs=3,Ws=4,Ks=5,Qs=7,Xs=10,Gs=11,Js=16,jt=17,Dr=0,_t=1,Zs=2,jr=3,Tt=0,_r=1,Tr=1,fe=0xffffffffffffffffn,st=0xfffffffffffffffen,Me={HOME:3,APP_SWITCH:187,POWER:26,VOLUME_UP:24,VOLUME_DOWN:25};function Qr(i,t,r){i.setUint32(t,Math.max(0,Math.round(r.x))&4294967295),i.setUint32(t+4,Math.max(0,Math.round(r.y))&4294967295),i.setUint16(t+8,Math.min(65535,Math.round(r.screenWidth))),i.setUint16(t+10,Math.min(65535,Math.round(r.screenHeight)))}function ei(i,t,r,s,c,h){const p=new Uint8Array(32),x=new DataView(p.buffer);return x.setUint8(0,Ys),x.setUint8(1,i),x.setBigUint64(2,t),Qr(x,10,r),x.setUint16(22,Math.max(0,Math.min(65535,Math.round(s*65536)))),x.setUint32(24,c>>>0),x.setUint32(28,h>>>0),p}function Ot(i,t,r=0,s=0){const c=new Uint8Array(14),h=new DataView(c.buffer);return h.setUint8(0,qs),h.setUint8(1,i),h.setUint32(2,t>>>0),h.setUint32(6,r>>>0),h.setUint32(10,s>>>0),c}function ti(i,t,r,s=0){const c=new Uint8Array(21),h=new DataView(c.buffer);h.setUint8(0,Hs),Qr(h,1,i);const p=x=>Math.max(-32768,Math.min(32767,Math.round(Math.max(-1,Math.min(1,x/16))*32768)));return h.setInt16(13,p(t)),h.setInt16(15,p(r)),h.setUint32(17,s>>>0),c}function ri(i){const t=new TextEncoder().encode(i);if(!t.length)return null;const r=t.subarray(0,300),s=new Uint8Array(5+r.length),c=new DataView(s.buffer);return c.setUint8(0,Vs),c.setUint32(1,r.length),s.set(r,5),s}function ni(i){const t=new TextEncoder().encode(i);if(!t.length||t.length>255)return null;const r=new Uint8Array(2+t.length);return r[0]=Js,r[1]=t.length,r.set(t,2),r}function Ae(i){return new Uint8Array([i])}function Or(i){return new Uint8Array([Ws,i])}function si(i){return new Uint8Array([Xs,i?1:0])}function ii(i){let t="";for(let r=0;r<i.length;r+=32768)t+=String.fromCharCode(...i.subarray(r,r+32768));return btoa(t)}function ai(i){const t=atob(i),r=new Uint8Array(t.length);for(let s=0;s<t.length;s++)r[s]=t.charCodeAt(s);return r}function It(i){return i.toString(16).padStart(2,"0")}function Xr(i,t,r){for(let s=0;s+4<i.length;s++){const c=i[s]===0&&i[s+1]===0&&i[s+2]===1,p=i[s]===0&&i[s+1]===0&&i[s+2]===0&&i[s+3]===1?s+4:c?s+3:-1;if(p<0||p>=i.length)continue;if((r?i[p]>>1&63:i[p]&31)!==t){s=p-1;continue}let d=p+1;for(;d+2<i.length&&!(i[d]===0&&i[d+1]===0&&(i[d+2]===1||i[d+2]===0&&i[d+3]===1));)d++;return i.subarray(p,Math.min(i.length,d))}return null}function oi(i){const t=i?Xr(i,7,!1):null;return t&&t.length>=4?`avc1.${It(t[1])}${It(t[2])}${It(t[3])}`:"avc1.42e01e"}function ci(i){const t=i?Xr(i,32,!0):null;if(t&&t.length>=13){const r=t[1]>>6&3,s=t[1]&31,c=t[12];return`hev1.${r}.${s}.L${c}.B0`}return"hev1.1.6.L120.B0"}class li{constructor(t,r){this.canvas=t,this.callbacks=r}canvas;callbacks;readOnly=!1;setReadOnly(t){this.readOnly=t}liveBitrate=!1;bitrateFailureDetail;get lastBitrateFailure(){return this.bitrateFailureDetail}bitrateRequestId=0;bitratePending=null;get supportsLiveBitrate(){return this.liveBitrate}get canSetBitrate(){return this.liveBitrate&&!this.bitratePending&&this.socket?.readyState===1}setBitrate(t){return!this.canSetBitrate||!Number.isInteger(t)||t<3e5||t>3e7?Promise.resolve(!1):new Promise(r=>{const s=++this.bitrateRequestId,c=setTimeout(()=>this.finishBitrate(!1,`BITRATE_CLIENT_TIMEOUT: requested=${t} bps; no server confirmation within 4000ms`),4e3);this.bitratePending={id:s,value:t,resolve:r,timer:c},this.send({type:"bitrate",requestId:s,bitRate:t})})}finishBitrate(t,r){const s=this.bitratePending;s&&(this.bitratePending=null,clearTimeout(s.timer),t||(this.liveBitrate=!1,this.bitrateFailureDetail=r??this.bitrateFailureDetail??"BITRATE_REASON_UNAVAILABLE: server rejected adjustment without a diagnostic",this.closedByUser||this.callbacks.onBitrateSupport?.(!1,this.bitrateFailureDetail)),s.resolve(t))}socket=null;decoder=null;configured=!1;configData=null;header=null;closedByUser=!1;failureReason=null;lastMessageAt=0;lastFrameAt=0;lastResetAt=0;heartbeat=null;statsTimer=null;stallTimer=null;pendingConfig=null;needsKeyframe=!1;frameCount=0;receivedFrames=0;decodedFrames=0;controlsSent=0;lastSeq=0;lastType="";bytesSinceSample=0;warnedUnsupported=!1;lastSampleAt=0;serial="";autoQuality=!1;pingAt=null;rttMs=null;rttAt=0;minimumFrameOffset=1/0;deliveryDelayMs=0;peakDecodeQueue=0;sampleFrames=0;get currentHeader(){return this.header}connect(t,r){this.liveBitrate=!1,this.bitrateFailureDetail=void 0,this.serial=t,this.autoQuality=r?.id==="auto",this.closedByUser=!1,this.failureReason=null,this.callbacks.onState("connecting");let s;try{s=Dn(jn(t,r))}catch(c){this.reportError(c instanceof Error?c.message:"ANDROID_STREAM_FAILED");return}this.socket=s,s.onopen=()=>{this.lastMessageAt=Date.now()},s.onmessage=c=>{this.closedByUser||this.handleMessage(c.data)},s.onerror=()=>{!this.closedByUser&&!this.failureReason&&this.reportError("SCRCPY_CONNECTION_LOST")},s.onclose=c=>{if(this.finishBitrate(!1,"BITRATE_CONNECTION_CLOSED: preview connection closed"),this.liveBitrate=!1,this.teardownTimers(),this.closedByUser)this.callbacks.onState("idle");else{const h=`WebSocket close code=${c.code}${c.reason?`: ${c.reason}`:""}`;this.reportError(`${this.failureReason||"SCRCPY_CONNECTION_CLOSED"}
2
2
  ${h}`)}},this.startTimers()}reportError(t){this.failureReason=t,this.callbacks.onState("error",t)}disconnect(){this.closedByUser=!0,this.finishBitrate(!1),this.liveBitrate=!1,this.teardownTimers();try{this.decoder?.close()}catch{}this.decoder=null,this.configured=!1;try{this.socket?.close()}catch{}this.socket=null,this.callbacks.onState("idle")}teardownTimers(){this.heartbeat&&clearInterval(this.heartbeat),this.statsTimer&&clearInterval(this.statsTimer),this.stallTimer&&clearInterval(this.stallTimer),this.heartbeat=null,this.statsTimer=null,this.stallTimer=null}startTimers(){this.lastSampleAt=Date.now(),this.heartbeat=setInterval(()=>{if(!(!this.socket||this.socket.readyState!==1)){if(Date.now()-this.lastMessageAt>45e3){try{this.socket.close()}catch{}return}this.pingAt===null&&(this.pingAt=performance.now(),this.send({type:"ping"}))}},this.autoQuality?2e3:15e3),this.stallTimer=setInterval(()=>{if(!this.header||this.closedByUser)return;const t=Date.now();t-this.lastFrameAt>8e3&&t-this.lastResetAt>8e3&&(this.lastResetAt=t,console.warn("[android] no frames for 8s; requesting keyframe reset"),this.sendControl(Ae(jt)))},2e3),this.statsTimer=setInterval(()=>{const t=Date.now(),r=(t-this.lastSampleAt)/1e3;r<=0||(this.callbacks.onStats({fps:Math.round(this.frameCount/r*10)/10,kbps:Math.round(this.bytesSinceSample*8/r/1e3),width:this.header?.width??0,height:this.header?.height??0,received:this.receivedFrames,decoded:this.decodedFrames,controls:this.controlsSent,last:this.lastType,adaptation:this.autoQuality?{rttMs:this.pingAt!==null&&performance.now()-this.pingAt>2e3?performance.now()-this.pingAt:performance.now()-this.rttAt<6e3?this.rttMs:null,deliveryDelayMs:this.sampleFrames?this.deliveryDelayMs:0,decodeQueue:Math.max(this.peakDecodeQueue,this.decoder?.decodeQueueSize??0),frames:this.sampleFrames}:void 0}),this.sampleFrames=0,this.peakDecodeQueue=0,this.frameCount=0,this.bytesSinceSample=0,this.lastSampleAt=t)},1e3)}send(t){if(!(!this.socket||this.socket.readyState!==1))try{this.socket.send(JSON.stringify(t))}catch{}}sendControl(t){!t||this.readOnly&&!(t.length===1&&t[0]===jt)||(this.controlsSent++,this.send({type:"control",data:ii(t)}))}ack(){this.send({type:"ack",seq:this.lastSeq})}handleMessage(t){if(typeof t!="string")return;this.lastMessageAt=Date.now();let r;try{r=JSON.parse(t)}catch{return}this.lastType=`${r.type??"?"}${r.config?":cfg":""}${r.key?":key":""}`;try{this.dispatchMessage(r)}catch(s){console.warn("[android] message handling failed",s),this.callbacks.onWarning(`处理消息失败:${s instanceof Error?s.message:String(s)}`)}}dispatchMessage(t){switch(t.type){case"bitrate-support":this.liveBitrate=t.supported===!0,this.bitrateFailureDetail=this.liveBitrate?void 0:typeof t.detail=="string"?t.detail.slice(0,4096):"BITRATE_REASON_UNAVAILABLE: server did not provide diagnostics",this.liveBitrate||this.finishBitrate(!1,this.bitrateFailureDetail),this.callbacks.onBitrateSupport?.(this.liveBitrate,this.bitrateFailureDetail);break;case"bitrate-result":t.requestId===this.bitratePending?.id&&this.finishBitrate(t.applied===!0&&t.bitRate===this.bitratePending?.value,typeof t.detail=="string"?t.detail.slice(0,4096):void 0);break;case"header":this.header={deviceName:t.deviceName??this.serial,codec:t.codec??"h264",width:t.width??0,height:t.height??0},this.lastFrameAt=Date.now(),this.callbacks.onHeader(this.header),this.failureReason=null,this.callbacks.onState("streaming");break;case"frame":this.handleFrame(t);break;case"error":this.reportError(t.message||"SCRCPY_ERROR");break;case"closed":this.reportError(this.failureReason||"SCRCPY_SESSION_CLOSED");break;case"pong":this.pingAt!==null&&(this.rttMs=performance.now()-this.pingAt,this.rttAt=performance.now(),this.pingAt=null);break}}handleFrame(t){if(typeof t.data!="string")return;typeof t.seq=="number"&&(this.lastSeq=t.seq);const r=ai(t.data);if(this.bytesSinceSample+=t.data.length,this.receivedFrames++,this.lastFrameAt=Date.now(),this.decoder?.state==="closed"&&(this.decoder=null,this.configured=!1),t.config){this.configData=r,this.pendingConfig=r,this.configureDecoder(),this.ack();return}this.sampleFrames++;const s=Number(t.pts);if(t.pts!==void 0&&Number.isFinite(s)){const p=performance.now()-s/1e3;this.minimumFrameOffset=Math.min(this.minimumFrameOffset,p),this.deliveryDelayMs=Math.max(0,p-this.minimumFrameOffset)}this.configured||this.configureDecoder();const c=t.key===!0;if(this.needsKeyframe&&!c){this.ack();return}let h=r;this.pendingConfig&&(h=new Uint8Array(this.pendingConfig.length+r.length),h.set(this.pendingConfig,0),h.set(r,this.pendingConfig.length),this.pendingConfig=null),c&&(this.needsKeyframe=!1),this.decode(h,c,t.pts),this.ack()}configureDecoder(){const t=this.header?.codec??"h264";if(!this.decoder||this.decoder.state==="closed"){if(typeof VideoDecoder>"u"){this.warnedUnsupported||(this.warnedUnsupported=!0,this.callbacks.onWarning("当前浏览器不支持 WebCodecs(VideoDecoder),无法解码投屏画面。")),this.reportError("VIDEO_DECODER_UNSUPPORTED");return}try{this.decoder=new VideoDecoder({output:h=>this.onDecodedFrame(h),error:h=>{this.closedByUser||(this.configured=!1,this.decoderRecovering=!0,console.warn("[android] video decoder error",h),this.reportError(`VIDEO_DECODER_ERROR: ${h.message}`),this.sendControl(Ae(jt)))}})}catch(h){console.warn("[android] VideoDecoder unavailable",h),this.callbacks.onWarning(`创建 VideoDecoder 失败:${h instanceof Error?h.message:String(h)}`),this.reportError("VIDEO_DECODER_UNSUPPORTED");return}}const r={codec:"avc1.42e01e",optimizeForLatency:!0};let s;t==="h264"?(s=[oi(this.configData),"avc1.42e01e","avc1.4d401e","avc1.64001f"].filter((p,x,d)=>d.indexOf(p)===x),r.avc={format:"annexb"}):t==="h265"?(s=[ci(this.configData),"hev1.1.6.L120.B0","hvc1.1.6.L120.B0"],r.hevc={format:"annexb"}):s=["av01.0.04M.08"];const c=[];for(const h of s)try{this.decoder.configure({...r,codec:h}),this.configured=!0,this.needsKeyframe=!0,h!==s[0]&&console.warn("[android] decoder configured with fallback codec",h);return}catch(p){c.push(`${h}: ${p instanceof Error?p.message:String(p)}`),console.warn("[android] decoder configure failed",h,p)}this.callbacks.onWarning(`解码器配置失败(${c.join(";")})`),this.reportError("VIDEO_DECODER_UNSUPPORTED")}decode(t,r,s){if(!(!this.decoder||this.decoder.state!=="configured"))try{this.decoder.decode(new EncodedVideoChunk({type:r?"key":"delta",timestamp:s?Number(s):this.lastTimestamp+1,data:t})),this.peakDecodeQueue=Math.max(this.peakDecodeQueue,this.decoder.decodeQueueSize),this.lastTimestamp=s?Number(s):this.lastTimestamp+1}catch(c){this.decodeFailureCount++<3&&(console.warn("[android] decode threw",c),this.callbacks.onWarning(`送入解码器失败:${c instanceof Error?c.message:String(c)}`))}}decoderRecovering=!1;decodeFailureCount=0;lastTimestamp=0;onDecodedFrame(t){if(this.closedByUser){t.close();return}this.frameCount++,this.decodedFrames++;const r=t.displayWidth||t.codedWidth,s=t.displayHeight||t.codedHeight,c=this.canvas;(c.width!==r||c.height!==s)&&(c.width=r,c.height=s,this.header&&(this.header={...this.header,width:r,height:s},this.callbacks.onHeader(this.header)));const h=c.getContext("2d");h&&h.drawImage(t,0,0,c.width,c.height),t.close(),this.decoderRecovering&&(this.decoderRecovering=!1,this.failureReason=null,this.callbacks.onState("streaming"))}pointerPoint(t,r){return{x:t,y:r,screenWidth:this.header?.width??0,screenHeight:this.header?.height??0}}touch(t,r,s,c){const h=t===_t||t===jr,p=h?0:1,x=c===fe&&!h?Tr:0,d=(t===Dr||t===_t)&&c===fe?Tr:0;this.sendControl(ei(t,c,this.pointerPoint(r,s),p,d,x))}pointerDown(t,r,s){this.touch(Dr,t,r,s==="mouse"?fe:st)}pointerMove(t,r,s){this.touch(Zs,t,r,s==="mouse"?fe:st)}pointerUp(t,r,s){this.touch(_t,t,r,s==="mouse"?fe:st)}pointerCancel(t,r,s){this.touch(jr,t,r,s==="mouse"?fe:st)}scroll(t,r,s,c){this.sendControl(ti(this.pointerPoint(t,r),s,c))}key(t,r=Tt){this.sendControl(Ot(r,t))}tapKey(t){this.sendControl(Ot(Tt,t)),this.sendControl(Ot(_r,t))}back(){this.sendControl(Or(Tt)),this.sendControl(Or(_r))}home(){this.tapKey(Me.HOME)}recents(){this.tapKey(Me.APP_SWITCH)}power(){this.tapKey(Me.POWER)}volumeUp(){this.tapKey(Me.VOLUME_UP)}volumeDown(){this.tapKey(Me.VOLUME_DOWN)}rotate(){this.sendControl(Ae(Gs))}expandNotifications(){this.sendControl(Ae(Ks))}collapsePanels(){this.sendControl(Ae(Qs))}setDisplayPower(t){this.sendControl(si(t))}sendText(t){this.sendControl(ri(t))}startApp(t){this.sendControl(ni(t))}}function di(){try{return crypto.randomUUID().slice(0,8)}catch{return Math.random().toString(36).slice(2,10)}}function ui(){return`termdock-mirror-shot-${new Date().toISOString().replace(/[-:T]/g,"").slice(0,14)}-${di()}.png`}function Ir(i){const t=Math.max(0,Math.floor(i/1e3)),r=Math.floor(t/60),s=t%60;return`${String(r).padStart(2,"0")}:${String(s).padStart(2,"0")}`}async function hi(i,t=ui()){const r=i.width,s=i.height;if(!r||!s)throw new Error("投屏画面尚未就绪");const c=document.createElement("canvas");c.width=r,c.height=s;const h=c.getContext("2d");if(!h)throw new Error("无法读取投屏画面");h.drawImage(i,0,0);const p=await new Promise(x=>c.toBlob(x,"image/png"));if(!p||p.size===0)throw new Error("截图失败,请重试");return new File([p],t,{type:"image/png"})}function Gr(i,t,r){const s=r.contentWidth*(t-1)/2,c=r.contentHeight*(t-1)/2;return{x:Math.max(-s,Math.min(s,i.x)),y:Math.max(-c,Math.min(c,i.y))}}function Pr(i,t,r,s,c){const h=Math.max(1,Math.min(8,i.zoom*c)),p=h/i.zoom;return{zoom:h,pan:Gr({x:s.x-t.cx-(r.x-t.cx-i.pan.x)*p,y:s.y-t.cy-(r.y-t.cy-i.pan.y)*p},h,t)}}async function Jr(i,t,r){if(!t)throw new Error("没有可接收内容的终端");if(!await Tn(i,t,()=>!0,r))throw new Error("目标终端不可用,内容尚未插入,请连接终端后重试")}function Lr(i,t,r){return Jr(_n(i,null),t,r)}const Ft=new Map;function fi(i,t){Ft.set(i,t)}function pi(i,t){const r=Ft.get(i.id)??t;r?.(i),r&&Ft.delete(i.id)}const Pt=$t(i=>({pending:[],enqueue:(t,r,s="/",c)=>i(h=>h.pending.some(p=>p.file.id===t.id)?h:{pending:[...h.pending,{file:t,sessionId:r,initialPath:s,insert:c}]}),remove:t=>i(r=>({pending:r.pending.filter(s=>s.file.id!==t)}))})),pe="android-mirror",De=pe,Zr="termdock:android:quality:v1",Lt=176,mi=204,H=1,lt=8,Ur=[1,1.25,1.5,2,2.5,3,4,6,8],xi=i=>Math.max(H,Math.min(lt,i));function yi(i){return`${Number.isInteger(i)?i:i.toFixed(1)}×`}function it(i){const t=i.parentElement;if(!t)return null;const r=t.getBoundingClientRect(),s=getComputedStyle(t),c=parseFloat(s.paddingLeft)||0,h=parseFloat(s.paddingTop)||0,p=t.clientWidth-c-(parseFloat(s.paddingRight)||0),x=t.clientHeight-h-(parseFloat(s.paddingBottom)||0);return{cx:r.left+t.clientLeft+c+p/2,cy:r.top+t.clientTop+h+x/2,width:p,height:x,contentWidth:i.offsetWidth,contentHeight:i.offsetHeight}}function gi(i,t){try{i.setPointerCapture?.(t)}catch{}}function zr(i,t){try{i.releasePointerCapture?.(t)}catch{}}const Br=i=>typeof requestAnimationFrame=="function"?requestAnimationFrame(i):window.setTimeout(i,16),at=i=>{typeof cancelAnimationFrame=="function"?cancelAnimationFrame(i):window.clearTimeout(i)},Ut={auto:"android.qualityAuto",low:"android.qualityLow",medium:"android.qualityMedium",high:"android.qualityHigh",custom:"android.qualityCustom"},bi=()=>{try{const i=localStorage.getItem(Zr);return i?zt(JSON.parse(i)):Bt}catch{return Bt}},je=i=>{try{localStorage.setItem(Zr,JSON.stringify(i))}catch{}};function en({sessionId:i,dockOnly:t=!1,onInsertPrompt:r,onInsertFile:s,onRecordingComplete:c,onCloseTab:h}){const p=In(),x=l.useRef(p);x.current=p;const{t:d}=Pn(),E=Ar(e=>e.overlay),w=Ar(e=>e.setOverlay),b=l.useRef(null),g=l.useRef(null),me=l.useRef(null),W=l.useMemo(bi,[]),B=l.useRef(W),te=l.useRef(null),_e=l.useRef(null),[qt,Vt]=l.useState(4e6),K=l.useRef(null),N=l.useRef(new Map),F=l.useRef(null),Te=l.useRef(!1),[dt,Oe]=l.useState(H),_=l.useRef(dt),$=l.useRef({x:0,y:0}),Yt=l.useRef(null),q=l.useRef(0),Ie=l.useRef(0),Pe=l.useRef(null),le=l.useRef(0),[Le,tn]=l.useState(null),[xe,ut]=l.useState(null),[rn,Ht]=l.useState(!0),[y,Ue]=l.useState(""),[Q,de]=l.useState(W.id),[V,ht]=l.useState([]),[I,re]=l.useState(null),[ze,Wt]=l.useState(""),[ft,pt]=l.useState(!0),[C,ne]=l.useState({maxSize:W.maxSize,bitRate:W.bitRate,maxFps:W.maxFps}),[P,Kt]=l.useState("idle"),[mt,xt]=l.useState(null),[ye,Be]=l.useState(null),[yt,gt]=l.useState(null),[se,nn]=l.useState({fps:0,kbps:0,width:0,height:0,received:0,decoded:0,controls:0,last:""}),[X,Fe]=l.useState(null),[Qt,Xt]=l.useState(null),[bt,vt]=l.useState(null),[sn,Gt]=l.useState([]),[ge,be]=l.useState(null),[$e,ve]=l.useState([]),[an,we]=l.useState(!1),Se=l.useRef(null),on=l.useRef(0),Ee=l.useRef([]),[qe,Jt]=l.useState(!1),[Zt,er]=l.useState(""),[tr,rr]=l.useState(!1),[wt,cn]=l.useState(!1),[St,nr]=l.useState(""),[Et,sr]=l.useState(null),[ir,G]=l.useState(null),[L,Ve]=l.useState(!1),[ln,ar]=l.useState(0),J=l.useRef(null),[or,Ye]=l.useState(!1),Z=l.useRef(!1),cr=l.useRef(new Set),kt=l.useRef(null),ue=l.useRef(null),Ct=l.useRef(!1),[ke,lr]=l.useState(!1),Ce=l.useRef(c);Ce.current=c;const[he,ee]=l.useState(!1),[Nt,dn]=l.useState(null),Rt=l.useRef(null),dr=l.useRef(null),un=zs(e=>e.activeSessionId??e.sessions.keys().next().value??null),Mt=i??un,U=ce(e=>!!e.docks[De]),He=ce(e=>e.hosts[De]),At=ce(e=>e.setDock),We=l.useCallback(async()=>{Ht(!0);try{const e=await Ln();tn(e),ut(null)}catch(e){ut(e instanceof Error?e.message:"ADB_UNAVAILABLE")}finally{Ht(!1)}},[]);l.useEffect(()=>{We()},[We]);const ie=l.useMemo(()=>$s(Le?.devices??[],y),[Le?.devices,y]),ae=ie.find(e=>e.serial===y)??null,Ke=!!(xe&&/ADB_NOT_FOUND|ADB_UNAVAILABLE/i.test(xe)),ur=!!(Le?.adbAvailable&&!Le.scrcpyVersion),A=l.useCallback(()=>{const e=K.current,a=[...N.current.keys()];K.current=null,N.current.clear(),F.current=null,Te.current=!1,Se.current=null,at(q.current),q.current=0,e&&g.current?.pointerCancel(e.x,e.y,e.type);const o=b.current;if(o)for(const u of a)zr(o,u);be(null),we(!1),ve([]),Oe(_.current)},[]);l.useEffect(()=>{const e=u=>{N.current.has(u.pointerId)&&(u.type==="pointercancel"||u.target!==b.current)&&A()},a=()=>A(),o=()=>{document.hidden&&A()};return window.addEventListener("pointerup",e,!0),window.addEventListener("pointercancel",e,!0),window.addEventListener("blur",a),document.addEventListener("visibilitychange",o),()=>{window.removeEventListener("pointerup",e,!0),window.removeEventListener("pointercancel",e,!0),window.removeEventListener("blur",a),document.removeEventListener("visibilitychange",o),A()}},[A]);const hn=l.useCallback(()=>{A(),g.current?.disconnect(),g.current=null,Kt("idle"),xt(null),Be(null),gt(null)},[A]),T=l.useCallback((e,a=!1)=>{const o=b.current;if(!o||!e)return;A(),g.current?.disconnect(),xt(null),me.current!==e&&(Be(null),le.current=0),!a&&me.current!==e&&gt(null),me.current=e,Xt(null),Fe(null);const u=new li(o,{onBitrateSupport:(m,v)=>{g.current!==u||B.current.id!=="auto"||Fe(m?null:v??"BITRATE_REASON_UNAVAILABLE")},onState:(m,v)=>{g.current===u&&(Kt(m),xt(v??null),m==="error"?Be(v||"SCRCPY_ERROR"):m==="streaming"&&Be(null))},onHeader:m=>{g.current===u&&gt(m)},onStats:m=>{g.current===u&&nn(m)},onWarning:m=>{g.current===u&&Xt(m)}});u.setReadOnly(!!x.current&&!x.current.android?.some(m=>m.serial===e&&m.access==="control")),g.current=u;let f=B.current;f.id==="auto"?(te.current?.serial!==e&&(te.current={serial:e,policy:new Fs}),te.current.policy.connected(performance.now()),f=te.current.policy.quality,Vt(f.bitRate)):te.current=null,_e.current=f,u.connect(e,f)},[A]);l.useEffect(()=>{if(Q!=="auto"||B.current.id!=="auto"||P!=="streaming"||!se.adaptation||document.hidden)return;const e=te.current,a=g.current;if(!e||e.serial!==y||!a?.canSetBitrate)return;const o=b.current,u=o?Math.max(o.clientWidth,o.clientHeight)*(window.devicePixelRatio||1)*_.current:1600,f=e.policy.sample(se.adaptation,performance.now(),u||1600);f&&a.setBitrate(f.bitRate).then(m=>{m&&g.current===a&&(_e.current=f,Vt(f.bitRate))})},[se,Q,P,y,T]);const D=l.useCallback(e=>{if(x.current)return;const a={...e.quality?{quality:{id:e.quality.id,maxSize:e.quality.maxSize,bitRate:e.quality.bitRate,maxFps:e.quality.maxFps}}:{},...e.activePresetId!==void 0?{activePresetId:e.activePresetId}:{},...e.presets!==void 0?{presets:e.presets}:{},...e.docked!==void 0?{docked:e.docked}:{},...e.deviceSerial!==void 0?{deviceSerial:e.deviceSerial}:{}};Un({androidPanel:a}).catch(()=>{})},[]);l.useEffect(()=>{let e=!1;if(!x.current)return Hr().then(a=>{if(e)return;const o=a.androidPanel;if(o?.quality){const u=zt(o.quality);B.current=u,de(u.id),ne({maxSize:u.maxSize,bitRate:u.bitRate,maxFps:u.maxFps}),je(u)}ht(o?.presets??[]),re(o?.activePresetId??null),o?.deviceSerial&&(Pe.current=o.deviceSerial,Ue(o.deviceSerial))}).catch(()=>{}),()=>{e=!0}},[]);const fn=l.useCallback(e=>{const a=++on.current;Gt(u=>[...u,{id:a,left:e.left,top:e.top}]);const o=window.setTimeout(()=>{Gt(u=>u.filter(f=>f.id!==a)),Ee.current=Ee.current.filter(u=>u!==o)},300);Ee.current.push(o)},[]),Qe=l.useCallback((e,a)=>{const o=g.current,u=_e.current;o?.supportsLiveBitrate&&me.current===e&&u&&u.maxSize===a.maxSize&&u.maxFps===a.maxFps?o.setBitrate(a.bitRate).then(f=>{g.current===o&&(f?(_e.current=a,Fe(null)):Fe(o.lastBitrateFailure??"BITRATE_REASON_UNAVAILABLE"))}):T(e)},[T,d]),pn=l.useCallback(e=>{if(te.current=null,e.startsWith("user:")){const o=V.find(f=>f.id===e.slice(5));if(!o)return;const u={id:"custom",maxSize:o.maxSize,bitRate:o.bitRate,maxFps:o.maxFps};B.current=u,de("custom"),re(o.id),ne({maxSize:o.maxSize,bitRate:o.bitRate,maxFps:o.maxFps}),pt(!0),je(u),D({quality:u,activePresetId:o.id}),y&&T(y);return}if(e==="custom"){const o=B.current;de("custom"),re(null),ne({maxSize:o.maxSize,bitRate:o.bitRate,maxFps:o.maxFps}),pt(!0);return}const a=e==="auto"?zt({id:"auto"}):Cr.find(o=>o.id===e)??Bt;B.current=a,de(a.id),re(null),je(a),D({quality:a,activePresetId:null}),y&&T(y)},[T,y,V,D]),mn=l.useCallback(()=>{const e={id:"custom",maxSize:C.maxSize,bitRate:C.bitRate,maxFps:C.maxFps};B.current=e,je(e),D({quality:e,activePresetId:null}),de("custom"),re(null),y&&Qe(y,e)},[Qe,y,C,D]),hr=l.useCallback(()=>{const e=ze.trim();if(!e)return;const a=`p${Date.now().toString(36)}${Math.random().toString(36).slice(2,6)}`,o={id:a,name:e,maxSize:C.maxSize,bitRate:C.bitRate,maxFps:C.maxFps},u=[...V.filter(m=>m.name!==e),o].slice(-12),f={id:"custom",maxSize:C.maxSize,bitRate:C.bitRate,maxFps:C.maxFps};ht(u),Wt(""),re(a),de("custom"),B.current=f,je(f),D({quality:f,activePresetId:a,presets:u}),y&&Qe(y,f)},[ze,C,V,y,Qe,D]),xn=l.useCallback(()=>{if(!I)return;const e=V.filter(a=>a.id!==I);ht(e),re(null),D({activePresetId:null,presets:e})},[I,V,D]);l.useEffect(()=>()=>{g.current?.disconnect(),g.current=null;for(const e of Ee.current)window.clearTimeout(e);Ee.current=[]},[]),l.useEffect(()=>{if(E==="off")return;const e=a=>{a.key==="Escape"&&w("off")};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[E,w]),l.useEffect(()=>{const e=ie.filter(o=>o.state==="device");if(y||e.length!==1)return;const a=e[0].serial;Pe.current!==a&&(Pe.current=a,Ue(a))},[ie,y]),l.useEffect(()=>{y&&T(y)},[y,T]),l.useEffect(()=>{if(P==="streaming"&&(le.current=0),P!=="error"||!y||!Si(mt??"")){vt(null);return}const e=Math.min(8e3,700*2**le.current),a=le.current+1;vt({attempt:a,delayMs:e});const o=window.setTimeout(()=>{le.current=a,vt(null),T(y)},e);return()=>window.clearTimeout(o)},[P,mt,y,T]);const fr=l.useCallback((e,a,o)=>{const u=b.current,f=o??(u?it(u):null);return!u||!f?{x:0,y:0}:Gr(e,a,f)},[]),O=l.useCallback(()=>{const e=b.current;if(!e)return;const{x:a,y:o}=$.current,u=_.current,f=u===H&&a===0&&o===0?"":`translate3d(${a}px, ${o}px, 0) scale(${u})`;e.style.transform!==f&&(e.style.transform=f);const m=Yt.current;m&&(m.textContent=u>H?yi(u):"")},[]),Xe=l.useCallback((e,a,o=!0)=>{const u=b.current,f=_.current,m=xi(e);if(!u||m===f)return;const v=it(u);if(!v)return;const M=a??{x:v.cx,y:v.cy},j=Pr({zoom:f,pan:$.current},v,M,M,m/f);_.current=j.zoom,$.current=j.pan,o&&O()},[O]),Dt=l.useCallback(()=>{const e=_.current;Oe(a=>a<=H+.01==e<=H+.01&&a>=lt-.01==e>=lt-.01?a:e)},[]);l.useEffect(()=>()=>{at(q.current),at(Ie.current)},[]);const pr=()=>{let e=0,a=0;for(const u of N.current.values())e+=u.x,a+=u.y;const o=N.current.size;return o?{x:e/o,y:a/o}:null},mr=()=>{const[e,a]=Array.from(N.current.values());return e&&a?Math.hypot(e.x-a.x,e.y-a.y):0},xr=()=>{const e=pr(),a=b.current?it(b.current):null;!e||!a||(F.current={startCentroid:e,startDistance:mr(),box:a})},Ge=l.useCallback(()=>{const e=F.current,a=pr();if(!e||!a)return;const o=mr(),u=e.startDistance>0&&o>0?o/e.startDistance:1,f=Pr({zoom:_.current,pan:$.current},e.box,e.startCentroid,a,u);_.current=f.zoom,$.current=f.pan,e.startCentroid=a,e.startDistance=o},[]),yn=l.useCallback(()=>{q.current||(q.current=Br(()=>{q.current=0,Ge(),O()}))},[Ge,O]),Je=l.useCallback(()=>{q.current&&(at(q.current),q.current=0,Ge(),O())},[Ge,O]);l.useEffect(()=>{const e=b.current;if(!e)return;const a=e.parentElement;if(!a)return;const o=f=>{if(f.ctrlKey||f.metaKey){if(f.preventDefault(),!f.deltaY||F.current)return;const M=f.deltaMode===1?16:f.deltaMode===2?e.parentElement?.clientHeight||600:1,j=Math.max(-600,Math.min(600,f.deltaY*M));Xe(_.current*Math.exp(-j*.002),{x:f.clientX,y:f.clientY},!1),Ie.current||(Ie.current=Br(()=>{Ie.current=0,O(),Dt()}));return}const m=g.current;if(!m||f.target!==e)return;f.preventDefault();const v=ct(e,f.clientX,f.clientY);m.scroll(v.x,v.y,f.deltaX,f.deltaY)},u=f=>f.preventDefault();return a.addEventListener("wheel",o,{passive:!1}),a.addEventListener("gesturestart",u,{passive:!1}),a.addEventListener("gesturechange",u,{passive:!1}),()=>{a.removeEventListener("wheel",o),a.removeEventListener("gesturestart",u),a.removeEventListener("gesturechange",u)}},[Xe,O,Dt]),l.useEffect(()=>{const e=b.current,a=e?.parentElement;if(!e||!a||typeof ResizeObserver>"u")return;const o=new ResizeObserver(()=>{F.current&&(F.current.box=it(e));const u=fr($.current,_.current);u.x===$.current.x&&u.y===$.current.y||($.current=u,O())});return o.observe(e),o.observe(a),()=>o.disconnect()},[fr,O]),l.useLayoutEffect(()=>{O()});const gn=e=>{const a=g.current,o=b.current;if(!a||!o)return;if(e.pointerType==="mouse"&&e.button!==0){e.preventDefault(),e.button===2?a.back():e.button===1&&a.home();return}e.preventDefault(),o.closest(".android-mirror-panel")?.focus({preventScroll:!0}),O(),Dt(),Je(),gi(o,e.pointerId),N.current.set(e.pointerId,{x:e.clientX,y:e.clientY});const u=e.pointerType==="mouse"&&e.altKey;if(N.current.size>=2||u){const v=K.current;v&&(a.pointerCancel(v.x,v.y,v.type),K.current=null,Se.current=null,be(null),we(!1),ve([])),Te.current=!0,xr();return}if(Te.current)return;const f=ct(o,e.clientX,e.clientY);K.current={id:e.pointerId,type:e.pointerType,x:f.x,y:f.y},a.pointerDown(f.x,f.y,e.pointerType);const m=Vr(o,e.clientX,e.clientY);m&&(Se.current={left:m.left,top:m.top},ve([]),we(!1),be(m))},bn=e=>{const a=g.current,o=b.current;if(!o||!N.current.has(e.pointerId))return;if(e.pointerType==="mouse"){const M=o.getBoundingClientRect(),j=o.parentElement?.getBoundingClientRect()??M;if(!(e.buttons&1)||e.clientX<Math.max(M.left,j.left)||e.clientX>=Math.min(M.right,j.right)||e.clientY<Math.max(M.top,j.top)||e.clientY>=Math.min(M.bottom,j.bottom)){A();return}}if(e.preventDefault(),N.current.set(e.pointerId,{x:e.clientX,y:e.clientY}),F.current){yn();return}const u=K.current;if(!a||!u||u.id!==e.pointerId)return;const f=ct(o,e.clientX,e.clientY);u.x=f.x,u.y=f.y,a.pointerMove(f.x,f.y,u.type);const m=Vr(o,e.clientX,e.clientY),v=Se.current;!m||!v||(be(m),Math.hypot(m.left-v.left,m.top-v.top)>=6&&(we(!0),ve(M=>{const j=M[M.length-1];if(j&&Math.hypot(m.left-j.x,m.top-j.y)<4)return M;const tt=[...M,{x:m.left,y:m.top}];return tt.length>12?tt.slice(tt.length-12):tt})))},vn=e=>{const a=g.current,o=b.current;if(!o||!N.current.has(e.pointerId))return;if(Je(),N.current.delete(e.pointerId),zr(o,e.pointerId),N.current.size===0&&(Te.current=!1),F.current){N.current.size===0?(F.current=null,Oe(_.current)):xr();return}const u=K.current;if(!u||u.id!==e.pointerId)return;const f=ct(o,e.clientX,e.clientY);a?.pointerUp(f.x,f.y,u.type),ge&&fn(ge),be(null),we(!1),window.setTimeout(()=>ve([]),200),K.current=null,Se.current=null},wn=e=>{if(he||qe||wt)return;const a=g.current;a&&(e.key==="Backspace"?(e.preventDefault(),a.key(67)):e.key==="Escape"?(e.preventDefault(),a.back()):e.key==="Enter"&&(e.preventDefault(),a.key(66)))},yr=async()=>{const e=Zt.trim();if(e){rr(!0);try{const a=await Qn(e);er(""),Jt(!1),await We(),Ue(a.serial)}catch(a){ut(a instanceof Error?a.message:"ADB_CONNECT_FAILED")}finally{rr(!1)}}},gr=()=>{const e=g.current,a=St;!e||!a||(e.sendText(a),nr(""))},Ze=l.useCallback(e=>{sr(e),ue.current!==null&&window.clearTimeout(ue.current),ue.current=window.setTimeout(()=>{ue.current=null,sr(null)},2500)},[]),br=l.useCallback(e=>{const a=_.current,o=e==="in"?Ur.find(u=>u>a+.01):[...Ur].reverse().find(u=>u<a-.01);o!==void 0&&(a<=H&&o>H&&Ze(d("android.zoomPanHint")),Je(),Xe(o),Oe(o))},[Xe,Je,Ze,d]),vr=(e,a)=>{Promise.resolve().then(()=>r?.(e,a)).catch(o=>{G(o instanceof Error?o.message:String(o))})},Sn=l.useCallback(async(e,a,o)=>{try{if(!s)throw new Error(d("android.captureUnavailable"));if(await s(e,o)===!1)throw new Error(d("android.captureUnavailable"));Ze(a)}catch(u){G(d("android.captureFailed")+(u instanceof Error?`:${u.message}`:""))}},[s,Ze,d]),En=async e=>{const a=Wr(e),o=b.current;if(!(!o||Ct.current)){Ct.current=!0,lr(!0),G(null);try{const u=await hi(o);if(!a())throw new Error(d("android.captureUnavailable"));await Sn(u,d("android.captureInserted"),e)}catch(u){G(u instanceof Error?u.message:String(u))}finally{Ct.current=!1,lr(!1)}}},Ne=l.useCallback(e=>{(e.status==="ready"||e.status==="error")&&Ce.current&&!cr.current.has(e.id)&&(cr.current.add(e.id),x.current?Ce.current(e):pi(e,Ce.current))},[]),wr=l.useCallback(async e=>{const a=J.current;if(!(!a||Z.current)){Z.current=!0,Ye(!0),G(null);try{const o=await zn(a.id);J.current=null,Ve(!1),Ne(o)}catch(o){G(o instanceof Error?o.message:String(o))}finally{Z.current=!1,Ye(!1)}}},[Ne]),kn=async()=>{if(!y||Z.current||J.current)return;const e=Ce.current;Z.current=!0,Ye(!0),G(null);try{const a=await Wn(y);e&&!x.current&&fi(a.id,e),a.status==="recording"||a.status==="starting"||a.status==="stopping"?(J.current=a,Ve(!0),ar(Math.max(0,Date.now()-a.startedAt))):Ne(a)}catch(a){G(a instanceof Error?a.message:String(a))}finally{Z.current=!1,Ye(!1)}},Y=!!p&&!p.android?.some(e=>e.serial===y&&e.access==="control");l.useEffect(()=>{let e=!1,a=!1;J.current=null,Ve(!1);const o=async()=>{if(!(!y||a||Z.current)){a=!0;try{const{recordings:f}=await Hn(y);if(e||Z.current)return;const m=f.find(v=>["starting","recording","stopping"].includes(v.status));J.current=m??null,Ve(!!m);for(const v of f)Ne(v)}catch{}finally{a=!1}}};o();const u=window.setInterval(()=>{o()},2e3);return kt.current=window.setInterval(()=>{J.current&&ar(Math.max(0,Date.now()-J.current.startedAt))},500),()=>{e=!0,window.clearInterval(u),kt.current!==null&&window.clearInterval(kt.current)}},[y,Ne]),l.useEffect(()=>{if(!he)return;const e=()=>ee(!1),a=u=>{const f=u.target;f instanceof Node&&(Rt.current?.contains(f)||dr.current?.contains(f)||e())},o=u=>{u.key==="Escape"&&(u.preventDefault(),u.stopPropagation(),e())};return document.addEventListener("pointerdown",a,!0),document.addEventListener("keydown",o,!0),window.addEventListener("resize",e),()=>{document.removeEventListener("pointerdown",a,!0),document.removeEventListener("keydown",o,!0),window.removeEventListener("resize",e)}},[he]),l.useEffect(()=>()=>{ue.current!==null&&window.clearTimeout(ue.current)},[]);const R=P==="streaming",S=U,oe=S?"inline-flex h-5 w-5 shrink-0 items-center justify-center rounded hover:bg-surface-2 disabled:opacity-40":"rounded p-1.5 hover:bg-surface-2 disabled:opacity-40",Cn=ae?(ae.model||ae.serial)+Yr(ae,d):ie.length?d("android.selectDevice"):d("android.noDevices"),Nn=(I?V.find(e=>e.id===I):null)?.name??(Q==="auto"?`${d("android.qualityAuto")} · ${qt/1e6} Mbps`:d(Ut[Q])),Sr=S?"relative flex h-5 min-w-0 items-center rounded bg-surface-2 focus-within:ring-1 focus-within:ring-primary/50":"relative flex h-7 min-w-0 items-center rounded bg-surface-2 focus-within:ring-1 focus-within:ring-primary/50",Er=S?"pointer-events-none block min-w-0 truncate px-1 text-[10px] leading-none text-foreground":"pointer-events-none block min-w-0 truncate px-2 text-[11px] leading-none text-foreground",kr="absolute inset-0 h-full w-full cursor-pointer opacity-0",Rn=()=>{const e=Rt.current?.getBoundingClientRect();e&&dn({left:Math.max(8,Math.min(e.right-Lt,window.innerWidth-Lt-8)),top:Math.min(e.bottom+4,Math.max(8,window.innerHeight-mi-8))}),ee(!0)},Mn=()=>{if(U){At(De,null),D({docked:null});return}if(!Mt)return;const e={sessionId:Mt,side:"right"};At(De,e),D({docked:e})},An=qe||U||E!=="off",et=n.jsxs("div",{className:"android-mirror-panel flex h-full min-h-0 min-w-0 flex-col bg-surface text-foreground","data-sidebar-gesture-ignore":"true",onKeyDown:wn,tabIndex:-1,children:[n.jsxs("div",{"data-panel-drag-title":U?"true":void 0,className:S?"flex h-6 min-h-6 shrink-0 flex-nowrap items-center gap-1 overflow-hidden border-b border-border/15 bg-[var(--chrome-bg)] px-1.5 cursor-grab select-none active:cursor-grabbing":"flex flex-wrap items-center gap-1.5 border-b border-border px-2 py-2",children:[U&&n.jsx("span",{"data-panel-drag-title":"true",role:"button","aria-label":d("android.splitDrag"),title:d("android.splitDrag"),className:"flex h-4 w-4 shrink-0 cursor-grab items-center justify-center rounded text-muted-foreground hover:text-foreground active:cursor-grabbing",children:n.jsx(cs,{size:12})}),n.jsx(Bn,{size:S?12:14,className:"shrink-0 text-muted-foreground"}),n.jsxs("div",{className:`${Sr} flex-1`,children:[n.jsx("span",{"aria-hidden":"true",className:`${Er} w-full`,children:Cn}),n.jsxs("select",{value:y,onChange:e=>{const a=e.target.value;Ue(a),Pe.current=a,a&&D({deviceSerial:a})},className:kr,"aria-label":d("android.device"),children:[n.jsx("option",{value:"",children:ie.length?d("android.selectDevice"):d("android.noDevices")}),ie.map(e=>n.jsx("option",{value:e.serial,children:(e.model||e.serial)+Yr(e,d)},e.serial))]})]}),n.jsxs("div",{className:`${Sr} max-w-[45%] shrink-0`,children:[n.jsx("span",{"aria-hidden":"true",className:Er,children:Nn}),n.jsxs("select",{value:I?`user:${I}`:Q,onChange:e=>pn(e.target.value),className:kr,title:d(Q==="auto"?"android.qualityAutoHint":"android.quality"),"aria-label":d("android.quality"),children:[n.jsxs("option",{value:"auto",children:[d("android.qualityAuto"),Q==="auto"?` · ${qt/1e6} Mbps`:""]}),Cr.map(e=>n.jsx("option",{value:e.id,children:d(Ut[e.id])},e.id)),V.map(e=>n.jsx("option",{value:`user:${e.id}`,children:e.name},e.id)),n.jsx("option",{value:"custom",children:d(Ut.custom)})]})]}),n.jsx("button",{type:"button",onClick:()=>{We()},className:`${oe} text-muted-foreground`,title:d("android.refresh"),children:rn?n.jsx(Re,{size:13,className:"animate-spin"}):n.jsx(Fn,{size:13})}),R?n.jsx("button",{type:"button",onClick:hn,className:`${oe} text-destructive`,title:d("android.disconnect"),children:n.jsx(Jn,{size:13})}):n.jsx("button",{type:"button",onClick:()=>y&&T(y),disabled:!y,className:`${oe} text-primary`,title:d("android.connect"),children:n.jsx(Ns,{size:13})}),(R||L)&&n.jsx("button",{type:"button",onClick:e=>{En(e.currentTarget)},disabled:!s||ke,className:`${oe} text-muted-foreground`,title:d(s?"android.screenshot":"android.captureUnavailable"),"aria-label":d("android.screenshot"),children:ke?n.jsx(Re,{size:S?12:13,className:"animate-spin"}):n.jsx(ns,{size:S?12:13})}),(R||L)&&n.jsx("button",{type:"button",onClick:()=>{L?wr("manual"):kn()},disabled:or||!L&&!c,className:`${oe} ${L?"text-destructive":"text-muted-foreground"}`,title:d(L?"android.recordingStop":c?"android.recordingStart":"android.captureUnavailable"),"aria-label":d(L?"android.recordingStop":"android.recordingStart"),children:or?n.jsx(Re,{className:"animate-spin",size:13}):L?n.jsx(Kr,{size:S?10:11,fill:"currentColor"}):n.jsx($n,{size:S?12:13})}),n.jsx("button",{ref:Rt,type:"button",onClick:()=>he?ee(!1):Rn(),"aria-haspopup":"menu","aria-expanded":he,className:`${oe} ${An?"text-primary":"text-muted-foreground"}`,title:d("android.more"),"aria-label":d("android.more"),disabled:!!p,children:n.jsx(qn,{size:S?13:14})}),h&&!t&&n.jsx("button",{type:"button",onClick:()=>{ee(!1),w("off"),h()},className:`${oe} text-muted-foreground hover:bg-destructive/20 hover:text-destructive`,title:d("android.closeTab"),"aria-label":d("android.closeTab"),children:n.jsx(Nr,{size:14})})]}),!p&&he&&Nt&&nt.createPortal(n.jsxs("div",{ref:dr,role:"menu","aria-label":d("android.more"),style:{left:Nt.left,top:Nt.top,width:Lt},className:"fixed z-popover overflow-hidden rounded-md border border-border bg-surface-elevated py-1 text-[11px] shadow-lg",children:[n.jsx(ot,{icon:n.jsx(Rr,{size:13}),label:d("android.addDevice"),active:qe,onSelect:()=>{Jt(e=>!e),ee(!1)}}),n.jsx(ot,{icon:U?n.jsx(Nr,{size:13}):n.jsx(Mr,{size:13}),label:d(U?"android.splitClose":"android.splitOpen"),active:U,disabled:!U&&!Mt,onSelect:()=>{Mn(),ee(!1)}}),n.jsx(ot,{icon:E==="window"?n.jsx(gs,{size:13}):n.jsx(ps,{size:13}),label:d(E==="window"?"android.exitFullscreen":"android.fullscreen"),active:E==="window",onSelect:()=>{w(E==="window"?"off":"window"),ee(!1)}}),!t&&n.jsx(ot,{icon:E==="sidebar"?n.jsx(Ss,{size:13}):n.jsx(ks,{size:13}),label:d(E==="sidebar"?"android.exitFullscreen":"android.fillSidebar"),active:E==="sidebar",onSelect:()=>{w(E==="sidebar"?"off":"sidebar"),ee(!1)}}),yt&&n.jsxs("div",{className:"mt-1 border-t border-border px-3 py-2 text-[10px] leading-4 tabular-nums text-muted-foreground",children:[n.jsx("div",{className:"truncate",children:`${se.fps} fps · ${se.kbps} kbps`}),n.jsx("div",{className:"truncate",children:`${se.width}×${se.height}`})]})]}),document.body),(Q==="custom"||I)&&n.jsxs("div",{className:"border-b border-border bg-surface-2/40 px-2 py-2 text-[11px]",children:[n.jsxs("button",{type:"button",onClick:()=>pt(e=>!e),"aria-expanded":ft,className:"flex w-full items-center gap-1 rounded text-muted-foreground hover:text-foreground",children:[n.jsx(Rr,{size:12,className:`transition-transform ${ft?"":"-rotate-90"}`}),n.jsxs("span",{children:[d("android.quality"),I?` · ${V.find(e=>e.id===I)?.name??""}`:""]})]}),ft&&n.jsxs("div",{className:"mt-2 grid gap-2",children:[n.jsx(qr,{label:d("android.qualityResolution"),display:`${C.maxSize}px`,min:360,max:2160,step:8,value:C.maxSize,onChange:e=>ne(a=>({...a,maxSize:e}))}),n.jsx(qr,{label:d("android.qualityBitRate"),display:`${(C.bitRate/1e6).toFixed(1)} Mbps`,min:.5,max:20,step:.5,value:C.bitRate/1e6,onChange:e=>ne(a=>({...a,bitRate:Math.round(e*1e6)}))}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("span",{className:"w-14 shrink-0 text-muted-foreground",children:d("android.qualityFrameRate")}),n.jsxs("div",{className:"flex gap-1",children:[[15,30,60].map(e=>n.jsx("button",{type:"button",onClick:()=>ne(a=>({...a,maxFps:e})),className:`rounded px-2 py-0.5 ${C.maxFps===e?"bg-surface-elevated text-primary":"text-muted-foreground hover:bg-surface-2"}`,children:e},e)),n.jsx("button",{type:"button",onClick:()=>ne(e=>({...e,maxFps:0})),className:`rounded px-2 py-0.5 ${C.maxFps===0?"bg-surface-elevated text-primary":"text-muted-foreground hover:bg-surface-2"}`,children:d("android.qualityAuto")})]}),n.jsx("button",{type:"button",onClick:mn,disabled:!y,className:"ml-auto rounded bg-primary/15 px-2 py-1 text-primary disabled:opacity-40",children:d("android.qualityApply")})]}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("input",{value:ze,onChange:e=>Wt(e.target.value),onKeyDown:e=>{e.key==="Enter"&&!e.nativeEvent.isComposing&&hr()},placeholder:d("android.presetNamePlaceholder"),maxLength:40,className:"min-w-0 flex-1 rounded bg-surface-2 px-2 py-1 text-[11px] outline-none placeholder:text-muted-foreground"}),n.jsx("button",{type:"button",onClick:hr,disabled:!ze.trim(),className:"shrink-0 rounded bg-surface-2 px-2 py-1 text-primary disabled:opacity-40",children:d("android.presetSave")}),I&&n.jsx("button",{type:"button",onClick:xn,className:"shrink-0 rounded px-2 py-1 text-destructive hover:bg-surface-2",children:d("android.presetDelete")})]})]})]}),!p&&qe&&n.jsxs("div",{className:"flex items-center gap-1.5 border-b border-border px-2 py-2",children:[n.jsx("input",{value:Zt,onChange:e=>er(e.target.value),onKeyDown:e=>{e.key==="Enter"&&yr()},placeholder:d("android.addressPlaceholder"),className:"min-w-0 flex-1 rounded bg-surface-2 px-2 py-1 text-[11px] outline-none placeholder:text-muted-foreground"}),n.jsx("button",{type:"button",onClick:()=>{yr()},disabled:tr,className:"rounded bg-surface-2 px-2 py-1 text-[11px] text-primary disabled:opacity-40",children:tr?n.jsx(Re,{size:12,className:"animate-spin"}):d("android.connect")})]}),Ke&&n.jsxs("div",{className:"flex items-start gap-2 border-b border-border bg-surface-2 px-2 py-1.5 text-[11px] text-destructive",children:[n.jsx("span",{className:"min-w-0 flex-1",children:d("android.adbUnavailable")}),n.jsx(Fr,{label:d("android.insertFixPrompt"),onClick:e=>vr($r("adb",xe??""),e),enabled:!!r})]}),!Ke&&ur&&n.jsxs("div",{className:"flex items-start gap-2 border-b border-border bg-surface-2 px-2 py-1.5 text-[11px] text-warning",children:[n.jsx("span",{className:"min-w-0 flex-1",children:d("android.scrcpyUnavailable")}),n.jsx(Fr,{label:d("android.insertFixPrompt"),onClick:e=>vr($r("scrcpy",""),e),enabled:!!r})]}),ae&&ae.state!=="device"&&n.jsx("div",{className:"border-b border-border bg-surface-2 px-2 py-1.5 text-[11px] text-warning",children:Ei(ae,d)}),xe&&!Ke&&n.jsx("div",{className:"border-b border-border bg-surface-2 px-2 py-1.5 text-[11px] text-destructive",children:rt(xe)}),X&&n.jsxs("details",{className:"border-b border-border bg-surface-2 px-2 py-1.5 text-[11px] text-warning",children:[n.jsxs("summary",{className:"cursor-pointer",children:[d("android.qualityAutoUnavailable")," ",d(X.startsWith("SCRCPY_VERSION")?"android.qualityAutoVersionError":X.startsWith("SCRCPY_BUILD")?"android.qualityAutoBuildError":/EXTENSION|SERVER_READ|PUSH/.test(X.split(":")[0])?"android.qualityAutoExtensionError":/TIMEOUT/.test(X.split(":")[0])?"android.qualityAutoTimeoutError":/ENCODER_REJECTED/.test(X.split(":")[0])?"android.qualityAutoEncoderError":/CHANNEL|TUNNEL|LISTEN|PROTOCOL|CONNECTION/.test(X.split(":")[0])?"android.qualityAutoChannelError":"android.qualityAutoUnknownError")]}),n.jsx("pre",{className:"mt-1 select-text whitespace-pre-wrap break-all text-[10px]",children:X})]}),Qt&&n.jsx("div",{className:"border-b border-border bg-surface-2 px-2 py-1.5 text-[11px] text-warning",children:Qt}),ir&&n.jsx("div",{role:"alert",className:"border-b border-border bg-surface-2 px-2 py-1.5 text-[11px] text-destructive",children:ir}),n.jsxs("div",{className:"relative flex min-h-0 min-w-0 flex-1 touch-none items-center justify-center overflow-hidden bg-[var(--chrome-bg)] p-1",children:[n.jsx("canvas",{ref:b,className:"max-h-full max-w-full touch-none select-none rounded",style:{display:R||yt?"block":"none",transformOrigin:"center",transition:"none"},onPointerDown:gn,onPointerMove:bn,onPointerUp:vn,onPointerCancel:()=>A(),onLostPointerCapture:e=>{N.current.has(e.pointerId)&&A()},onPointerLeave:e=>{N.current.has(e.pointerId)&&!e.currentTarget.hasPointerCapture?.(e.pointerId)&&A()},onContextMenu:e=>e.preventDefault()}),ge&&n.jsx("span",{"aria-hidden":"true",className:"pointer-events-none absolute h-3.5 w-3.5 -translate-x-1/2 -translate-y-1/2 rounded-full border border-primary/80 bg-primary/35",style:{left:ge.left,top:ge.top}}),$e.length>1&&n.jsx("svg",{"aria-hidden":"true",className:"pointer-events-none absolute inset-0 h-full w-full",style:{opacity:an?1:0,transition:"opacity 160ms linear"},children:$e.slice(1).map((e,a)=>{const o=$e[a],u=(a+1)/($e.length-1);return n.jsx("line",{x1:o.x,y1:o.y,x2:e.x,y2:e.y,stroke:"var(--primary)",strokeWidth:1+1.6*u,strokeLinecap:"round",opacity:.06+.45*u},a)})}),sn.map(e=>n.jsx("span",{"aria-hidden":"true",className:"termdock-tap-fade pointer-events-none absolute h-4 w-4 rounded-full bg-primary",style:{left:e.left,top:e.top}},e.id)),!R&&n.jsxs("div",{className:"absolute inset-0 flex flex-col items-center justify-center gap-2 text-center text-[11px] text-muted-foreground",children:[P==="connecting"&&n.jsxs(n.Fragment,{children:[n.jsx(Re,{size:18,className:"animate-spin"}),n.jsx("span",{children:d("android.connecting")})]}),P==="error"&&n.jsxs(n.Fragment,{children:[n.jsx(is,{size:14,className:"text-destructive"}),n.jsx("span",{className:"max-w-[80%] text-destructive",children:bt?d("android.retrySchedule",{attempt:bt.attempt,seconds:bt.delayMs/1e3}):rt(mt||"")}),y&&n.jsx("button",{type:"button",onClick:()=>{le.current=0,T(y)},className:"rounded bg-surface-2 px-2 py-1 text-foreground",children:d("android.retry")})]}),ye&&(P==="error"||P==="connecting")&&n.jsxs("div",{className:"max-h-[40%] w-[90%] shrink-0 select-text overflow-auto rounded bg-surface-2 px-3 py-2 text-left",role:"status",children:[n.jsx("span",{className:"text-muted-foreground",children:d("android.lastError")}),rt(ye)!==ye&&n.jsx("p",{className:"mt-1 whitespace-pre-wrap break-words",children:rt(ye)}),n.jsx("pre",{className:"mt-1 whitespace-pre-wrap break-words font-mono text-[10px] text-foreground",children:ye})]}),P==="idle"&&!Ke&&!ur&&n.jsxs(n.Fragment,{children:[n.jsx(vs,{size:22,className:"opacity-60"}),n.jsx("span",{children:ie.length?d("android.idleHint"):d("android.noDevicesHint")})]})]})]}),n.jsxs("div",{className:`flex flex-wrap items-center gap-1 border-t border-border ${S?"px-1.5 py-0.5":"px-2 py-1.5"}`,children:[n.jsx(z,{compact:S,label:d("android.back"),onClick:()=>g.current?.back(),disabled:!R||Y,children:n.jsx(Vn,{size:14})}),n.jsx(z,{compact:S,label:d("android.home"),onClick:()=>g.current?.home(),disabled:!R||Y,children:n.jsx(ds,{size:14})}),n.jsx(z,{compact:S,label:d("android.recents"),onClick:()=>g.current?.recents(),disabled:!R||Y,children:n.jsx(hs,{size:14})}),n.jsx(z,{compact:S,label:d("android.notifications"),onClick:()=>g.current?.expandNotifications(),disabled:!R||Y,children:n.jsx(ts,{size:14})}),n.jsx(z,{compact:S,label:d("android.rotate"),onClick:()=>g.current?.rotate(),disabled:!R||Y,children:n.jsx(Ds,{size:14})}),n.jsx(z,{compact:S,label:d("android.volumeDown"),onClick:()=>g.current?.volumeDown(),disabled:!R||Y,children:n.jsx(Is,{size:14})}),n.jsx(z,{compact:S,label:d("android.volumeUp"),onClick:()=>g.current?.volumeUp(),disabled:!R||Y,children:n.jsx(Ls,{size:14})}),n.jsx(z,{compact:S,label:d("android.power"),onClick:()=>g.current?.power(),disabled:!R||Y,children:n.jsx(Ms,{size:14})}),n.jsx(z,{compact:S,label:d("android.inputText"),active:wt,onClick:()=>cn(e=>!e),disabled:!R||Y,children:n.jsx(Zn,{size:14})}),n.jsx(z,{compact:S,label:d("android.zoomIn"),onClick:()=>br("in"),disabled:!R||dt>=lt-.01,children:n.jsx(Yn,{size:14})}),n.jsx(z,{compact:S,label:d("android.zoomOut"),onClick:()=>br("out"),disabled:!R||dt<=H+.01,children:n.jsx(xs,{size:14})}),n.jsxs("div",{className:"relative ml-auto h-5 w-24 min-w-0 max-w-full shrink-0","data-mirror-capture-status":!0,children:[n.jsx("span",{"aria-hidden":L||!!Et||ke,className:`block truncate text-right text-[10px] leading-5 tabular-nums text-muted-foreground ${L||Et||ke?"invisible":""}`,children:yt?n.jsx(n.Fragment,{children:n.jsx("span",{ref:Yt})}):""}),n.jsx("div",{className:"absolute inset-0 flex items-center justify-end overflow-hidden",children:n.jsx(vi,{recording:L,elapsed:ln,status:ke?d("android.captureInserting"):Et,stopLabel:d("android.recordingStop"),onStop:()=>{wr("manual")}})})]})]}),wt&&n.jsxs("div",{className:"flex items-center gap-1.5 border-t border-border px-2 py-1.5",children:[n.jsx("input",{value:St,onChange:e=>nr(e.target.value),onKeyDown:e=>{e.key==="Enter"&&!e.nativeEvent.isComposing&&(e.preventDefault(),gr())},placeholder:d("android.inputPlaceholder"),className:"min-w-0 flex-1 rounded bg-surface-2 px-2 py-1 text-[11px] outline-none placeholder:text-muted-foreground",autoFocus:!0}),n.jsx("button",{type:"button",onClick:gr,disabled:!St,className:"rounded bg-surface-2 p-1.5 text-primary disabled:opacity-40",title:d("android.send"),children:n.jsx(_s,{size:13})})]})]});return E==="window"?nt.createPortal(n.jsx("div",{className:"fixed inset-0 z-modal-panel flex flex-col bg-[var(--chrome-bg)]",style:{paddingTop:"var(--safe-top-inset, env(safe-area-inset-top, 0px))",paddingBottom:"var(--safe-bottom-inset, env(safe-area-inset-bottom, 0px))"},children:et}),document.body):t?U&&He?nt.createPortal(et,He):null:U&&He?n.jsxs(n.Fragment,{children:[nt.createPortal(et,He),n.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 p-4 text-center text-[11px] text-muted-foreground",children:[n.jsx(Mr,{size:18,className:"opacity-60"}),n.jsx("span",{children:d("android.splitDockedHint")}),n.jsx("button",{type:"button",onClick:()=>{At(De,null),D({docked:null})},className:"rounded bg-surface-2 px-2 py-1 text-foreground",children:d("android.splitClose")})]})]}):et}function ot({icon:i,label:t,active:r=!1,disabled:s=!1,onSelect:c}){return n.jsxs("button",{type:"button",role:"menuitem",disabled:s,onClick:c,className:`flex w-full items-center gap-2 px-2.5 py-1.5 text-left transition hover:bg-surface-2 disabled:opacity-40 disabled:hover:bg-transparent ${r?"text-primary":"text-foreground"}`,children:[n.jsx("span",{"aria-hidden":"true",className:"shrink-0",children:i}),n.jsx("span",{className:"min-w-0 flex-1 truncate",children:t}),r&&n.jsx(Kn,{size:12,className:"shrink-0"})]})}function vi({recording:i,elapsed:t,status:r,stopLabel:s,onStop:c}){return i?n.jsxs("span",{role:"status","aria-live":"polite",className:"ml-auto inline-flex shrink-0 items-center gap-1 whitespace-nowrap rounded bg-destructive/15 px-1.5 py-0.5 text-[10px] tabular-nums text-destructive",children:[n.jsx("span",{"aria-hidden":"true",className:"h-1.5 w-1.5 shrink-0 animate-pulse rounded-full bg-destructive"}),Ir(t),n.jsx("button",{type:"button",onClick:c,title:s,"aria-label":`${s} · ${Ir(t)}`,className:"ml-0.5 inline-flex h-4 w-4 items-center justify-center rounded hover:bg-destructive/25",children:n.jsx(Kr,{size:8,fill:"currentColor"})})]}):r?n.jsx("span",{role:"status","aria-live":"polite",title:r,className:"ml-auto truncate text-[10px] text-primary",children:r}):null}function wi({sessionId:i}){const t=ce(w=>w.docks[pe]),r=!!t,s=t?.sessionId??i??null,h=Pt(w=>w.pending)[0],p=l.useCallback(async(w,b)=>{const g=Wr(b);if(!s)throw new Error("没有可接收截图的终端");const W=(await On("/tmp",[w])).files[0]?.path;if(!W)throw new Error("截图上传未返回文件路径");if(!g())throw new Error("截图尚未插入,请返回原投屏面板重试");await Lr(W,s,b)},[s]),x=l.useCallback(w=>{Pt.getState().enqueue(w,s)},[s]),d=ce(w=>!!w.hosts[pe]),E=l.useRef(!1);return l.useEffect(()=>{E.current||(E.current=!0,Hr().then(w=>{const b=w.androidPanel?.docked;b&&(ce.getState().docks[pe]||ce.getState().setDock(pe,b))}).catch(()=>{}))},[]),n.jsxs(n.Fragment,{children:[r&&d&&n.jsx(en,{sessionId:s,dockOnly:!0,onInsertFile:s?p:void 0,onInsertPrompt:s?(w,b)=>Jr(w,s,b):void 0,onRecordingComplete:x}),h&&n.jsx(Gn,{file:h.file,initialPath:h.initialPath,onInsert:(w,b)=>h.insert?h.insert(w,b):Lr(w,h.sessionId,b),onDone:()=>Pt.getState().remove(h.file.id)},h.file.id)]})}function Fr({label:i,onClick:t,enabled:r}){return r?n.jsx("button",{type:"button",onClick:s=>t(s.currentTarget),className:"shrink-0 rounded bg-surface px-1.5 py-0.5 text-[10px] text-foreground hover:bg-surface-elevated",children:i}):null}function $r(i,t){return[`Termdock 的“设备投屏”在当前服务端不可用:未找到 ${i==="adb"?"adb(Android platform-tools)":"scrcpy / scrcpy-server"}${t?`(错误:${t})`:""}。`,"请在本机安装并让 Termdock 恢复可用:","1) 安装依赖:"," - macOS: brew install android-platform-tools scrcpy"," - Ubuntu/Debian: sudo apt install adb scrcpy"," - Windows: winget install Google.PlatformTools && winget install Genymobile.scrcpy","2) 若不在 PATH,请在 ~/.termdock/.env 指定 TERMDOCK_ADB_BIN / TERMDOCK_SCRCPY_BIN / TERMDOCK_SCRCPY_SERVER。","3) 完成后重启 Termdock 服务,并用 adb version、scrcpy --version 验证。","边界:只做本机环境安装与配置,不要改动 Termdock 仓库代码。"].join(`
3
3
  `)}function qr({label:i,display:t,min:r,max:s,step:c,value:h,onChange:p}){return n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx("span",{className:"w-14 shrink-0 text-muted-foreground",children:i}),n.jsx("input",{type:"range",min:r,max:s,step:c,value:h,onChange:x=>p(Number(x.target.value)),className:"h-1 min-w-0 flex-1 accent-primary","aria-label":i}),n.jsx("span",{className:"w-16 shrink-0 text-right tabular-nums text-muted-foreground",children:t})]})}function z({label:i,onClick:t,disabled:r,active:s,compact:c,children:h}){return n.jsx("button",{type:"button",onClick:t,disabled:r,title:i,"aria-label":i,className:`${c?"inline-flex h-5 w-5 items-center justify-center":"p-1.5"} rounded transition active:scale-95 disabled:opacity-30 ${s?"bg-surface-elevated text-primary":"text-muted-foreground hover:bg-surface-2"}`,children:h})}function Vr(i,t,r){const s=i.parentElement;if(!s)return null;const c=i.getBoundingClientRect(),h=s.getBoundingClientRect();return{left:c.left-h.left+(t-c.left),top:c.top-h.top+(r-c.top)}}function ct(i,t,r){const s=i.getBoundingClientRect(),c=i.width||s.width,h=i.height||s.height,p=s.width?(t-s.left)/s.width*c:0,x=s.height?(r-s.top)/s.height*h:0;return{x:Math.max(0,Math.min(c,p)),y:Math.max(0,Math.min(h,x))}}function Si(i){return!(/ADB_NOT_FOUND|SCRCPY_NOT_FOUND|SCRCPY_SERVER_NOT_FOUND|SCRCPY_VERSION_UNKNOWN|SCRCPY_UNSUPPORTED_CODEC|VIDEO_DECODER_UNSUPPORTED/i.test(i)||/INVALID_SERIAL|INVALID_ADDRESS|API_NOT_ALLOWED|AUTHORIZATION_DENIED/i.test(i))}function Yr(i,t){return i.state==="device"?i.androidVersion?` · Android ${i.androidVersion}`:"":i.state==="unauthorized"?` · ${t("android.stateUnauthorized")}`:i.state==="offline"?` · ${t("android.stateOffline")}`:` · ${t("android.stateUnknown")}`}function Ei(i,t){return i.state==="unauthorized"?t("android.unauthorizedHint"):i.state==="offline"?t("android.offlineHint"):t("android.stateUnknown")}const Di=Object.freeze(Object.defineProperty({__proto__:null,ANDROID_DOCK_GROUP:pe,AndroidMirrorDock:wi,AndroidMirrorView:en},Symbol.toStringTag,{value:"Module"}));export{pe as A,ts as B,is as C,cs as G,ds as H,hs as L,ps as M,Ds as R,_s as S,Ls as V,wi as a,en as b,Di as c,Mr as d,gs as e,xs as f,Pt as g,Lr as i,Ar as u};