termdock 1.4.357 → 1.4.358

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 (409) hide show
  1. package/dist/client/assets/{AndroidMirrorView-BGagwKtL.js → AndroidMirrorView-COoPljXi.js} +1 -1
  2. package/dist/client/assets/AndroidMirrorView-COoPljXi.js.br +0 -0
  3. package/dist/client/assets/AndroidMirrorView-COoPljXi.js.gz +0 -0
  4. package/dist/client/assets/{App-DpMhxwYW.js → App-7BA7Jt-V.js} +46 -46
  5. package/dist/client/assets/App-7BA7Jt-V.js.br +0 -0
  6. package/dist/client/assets/App-7BA7Jt-V.js.gz +0 -0
  7. package/dist/client/assets/{ArchitecturePanel-Bd_l74EC.js → ArchitecturePanel-B51eVL3I.js} +2 -2
  8. package/dist/client/assets/ArchitecturePanel-B51eVL3I.js.br +0 -0
  9. package/dist/client/assets/ArchitecturePanel-B51eVL3I.js.gz +0 -0
  10. package/dist/client/assets/{ChangeWalkthroughPanel-6DN-2BdR.js → ChangeWalkthroughPanel-ZGMybE0m.js} +1 -1
  11. package/dist/client/assets/ChangeWalkthroughPanel-ZGMybE0m.js.br +0 -0
  12. package/dist/client/assets/ChangeWalkthroughPanel-ZGMybE0m.js.gz +0 -0
  13. package/dist/client/assets/{ChatRichContent-DjwpmW7d.js → ChatRichContent-KkN7aIGv.js} +3 -3
  14. package/dist/client/assets/ChatRichContent-KkN7aIGv.js.br +0 -0
  15. package/dist/client/assets/ChatRichContent-KkN7aIGv.js.gz +0 -0
  16. package/dist/client/assets/{CollaborationMainWorkspace-DPTJ9pCt.js → CollaborationMainWorkspace-BVeBgGMT.js} +1 -1
  17. package/dist/client/assets/CollaborationMainWorkspace-BVeBgGMT.js.br +0 -0
  18. package/dist/client/assets/CollaborationMainWorkspace-BVeBgGMT.js.gz +0 -0
  19. package/dist/client/assets/CollaborationTaskContent-C3Od6xQy.js +1 -0
  20. package/dist/client/assets/{ComputerControlView-CwB-wQqB.js → ComputerControlView-CnaeZBuh.js} +3 -3
  21. package/dist/client/assets/ComputerControlView-CnaeZBuh.js.br +0 -0
  22. package/dist/client/assets/{ComputerControlView-CwB-wQqB.js.gz → ComputerControlView-CnaeZBuh.js.gz} +0 -0
  23. package/dist/client/assets/{DagPlayground-DMn9Gyrw.js → DagPlayground-E7wKGgTF.js} +1 -1
  24. package/dist/client/assets/DagPlayground-E7wKGgTF.js.br +0 -0
  25. package/dist/client/assets/DagPlayground-E7wKGgTF.js.gz +0 -0
  26. package/dist/client/assets/{DiffLab-YBWlCU2T.js → DiffLab-BMXY4mRl.js} +1 -1
  27. package/dist/client/assets/DiffLab-BMXY4mRl.js.br +0 -0
  28. package/dist/client/assets/DiffLab-BMXY4mRl.js.gz +0 -0
  29. package/dist/client/assets/{DiffReview-YOPDWqhv.js → DiffReview-DHi_V-SX.js} +1 -1
  30. package/dist/client/assets/DiffReview-DHi_V-SX.js.br +0 -0
  31. package/dist/client/assets/DiffReview-DHi_V-SX.js.gz +0 -0
  32. package/dist/client/assets/{DiffReviewLab-SYomq14c.js → DiffReviewLab-nhoosNZM.js} +1 -1
  33. package/dist/client/assets/DiffReviewLab-nhoosNZM.js.br +0 -0
  34. package/dist/client/assets/DiffReviewLab-nhoosNZM.js.gz +0 -0
  35. package/dist/client/assets/{DiffViewer-mh9cBl5v.js → DiffViewer-CyDc8WOB.js} +1 -1
  36. package/dist/client/assets/DiffViewer-CyDc8WOB.js.br +0 -0
  37. package/dist/client/assets/DiffViewer-CyDc8WOB.js.gz +0 -0
  38. package/dist/client/assets/{GitLoadingSkeleton-DKRTc5sz.js → GitLoadingSkeleton-RRbTeMuA.js} +1 -1
  39. package/dist/client/assets/GitLoadingSkeleton-RRbTeMuA.js.br +0 -0
  40. package/dist/client/assets/GitLoadingSkeleton-RRbTeMuA.js.gz +0 -0
  41. package/dist/client/assets/{Markdown-C8OP1j-g.js → Markdown-Ip0FYCJ1.js} +2 -2
  42. package/dist/client/assets/Markdown-Ip0FYCJ1.js.br +0 -0
  43. package/dist/client/assets/Markdown-Ip0FYCJ1.js.gz +0 -0
  44. package/dist/client/assets/{ModelPreview-CsZry3Wd.js → ModelPreview-DuwBl4st.js} +1 -1
  45. package/dist/client/assets/ModelPreview-DuwBl4st.js.br +0 -0
  46. package/dist/client/assets/ModelPreview-DuwBl4st.js.gz +0 -0
  47. package/dist/client/assets/{RecordingSaveDialog-CoRGi97z.js → RecordingSaveDialog-Czkjuaeu.js} +1 -1
  48. package/dist/client/assets/RecordingSaveDialog-Czkjuaeu.js.br +0 -0
  49. package/dist/client/assets/RecordingSaveDialog-Czkjuaeu.js.gz +0 -0
  50. package/dist/client/assets/{RightSidebar-DNY2kC6B.js → RightSidebar-BvYh2_n2.js} +3 -3
  51. package/dist/client/assets/RightSidebar-BvYh2_n2.js.br +0 -0
  52. package/dist/client/assets/RightSidebar-BvYh2_n2.js.gz +0 -0
  53. package/dist/client/assets/SessionChatView-hFOVLdHC.js +13 -0
  54. package/dist/client/assets/SessionChatView-hFOVLdHC.js.br +0 -0
  55. package/dist/client/assets/SessionChatView-hFOVLdHC.js.gz +0 -0
  56. package/dist/client/assets/{SessionResourceSidebar-B_379HBJ.js → SessionResourceSidebar-D-VXNdmE.js} +2 -2
  57. package/dist/client/assets/SessionResourceSidebar-D-VXNdmE.js.br +0 -0
  58. package/dist/client/assets/SessionResourceSidebar-D-VXNdmE.js.gz +0 -0
  59. package/dist/client/assets/{TodoWorkspace-DfwGOAHB.js → TodoWorkspace-CCL-wZTu.js} +1 -1
  60. package/dist/client/assets/TodoWorkspace-CCL-wZTu.js.br +0 -0
  61. package/dist/client/assets/TodoWorkspace-CCL-wZTu.js.gz +0 -0
  62. package/dist/client/assets/{abnfDiagram-VCTEODGH-C9M0gnl-.js → abnfDiagram-VCTEODGH-CdEUK_s_.js} +1 -1
  63. package/dist/client/assets/abnfDiagram-VCTEODGH-CdEUK_s_.js.br +0 -0
  64. package/dist/client/assets/abnfDiagram-VCTEODGH-CdEUK_s_.js.gz +0 -0
  65. package/dist/client/assets/{app-CovJYQoW.js → app-DZ6mCJiW.js} +4 -4
  66. package/dist/client/assets/app-DZ6mCJiW.js.br +0 -0
  67. package/dist/client/assets/app-DZ6mCJiW.js.gz +0 -0
  68. package/dist/client/assets/{arc-q4wfkQcT.js → arc-Dmbeqzc-.js} +1 -1
  69. package/dist/client/assets/arc-Dmbeqzc-.js.br +0 -0
  70. package/dist/client/assets/arc-Dmbeqzc-.js.gz +0 -0
  71. package/dist/client/assets/{architectureDiagram-5GKGNRK7-CCuna3ab.js → architectureDiagram-5GKGNRK7-CZcdXQrP.js} +1 -1
  72. package/dist/client/assets/architectureDiagram-5GKGNRK7-CZcdXQrP.js.br +0 -0
  73. package/dist/client/assets/architectureDiagram-5GKGNRK7-CZcdXQrP.js.gz +0 -0
  74. package/dist/client/assets/{arrow-down-WyzmLXwQ.js → arrow-down-Ty3zwcgl.js} +1 -1
  75. package/dist/client/assets/{blockDiagram-I7D4REHJ-BXK68Qyt.js → blockDiagram-I7D4REHJ-D9jFhXcb.js} +1 -1
  76. package/dist/client/assets/blockDiagram-I7D4REHJ-D9jFhXcb.js.br +0 -0
  77. package/dist/client/assets/blockDiagram-I7D4REHJ-D9jFhXcb.js.gz +0 -0
  78. package/dist/client/assets/{c4Diagram-7LVT6UL2-BqwmmVmS.js → c4Diagram-7LVT6UL2-c9o0rNTP.js} +1 -1
  79. package/dist/client/assets/c4Diagram-7LVT6UL2-c9o0rNTP.js.br +0 -0
  80. package/dist/client/assets/c4Diagram-7LVT6UL2-c9o0rNTP.js.gz +0 -0
  81. package/dist/client/assets/channel-BzD84hIE.js +1 -0
  82. package/dist/client/assets/{chevron-left-CxeWIsDK.js → chevron-left-CVjGQZf0.js} +1 -1
  83. package/dist/client/assets/{chunk-2Q5K7J3B-esKGR38U.js → chunk-2Q5K7J3B-Bl_5wWZ4.js} +1 -1
  84. package/dist/client/assets/{chunk-5VM5RSS4-B3InxqDA.js → chunk-5VM5RSS4-D9XQn27m.js} +1 -1
  85. package/dist/client/assets/{chunk-F27PBJKO-CjUVyF-E.js → chunk-F27PBJKO-DWyskKWD.js} +1 -1
  86. package/dist/client/assets/chunk-F27PBJKO-DWyskKWD.js.br +0 -0
  87. package/dist/client/assets/chunk-F27PBJKO-DWyskKWD.js.gz +0 -0
  88. package/dist/client/assets/{chunk-IMKFNOWR-BR8mmBs7.js → chunk-IMKFNOWR-DrWbExPc.js} +1 -1
  89. package/dist/client/assets/chunk-IMKFNOWR-DrWbExPc.js.br +0 -0
  90. package/dist/client/assets/chunk-IMKFNOWR-DrWbExPc.js.gz +0 -0
  91. package/dist/client/assets/{chunk-JWPE2WC7-CplXNOA7.js → chunk-JWPE2WC7-B7O1zrh6.js} +1 -1
  92. package/dist/client/assets/{chunk-POPQ4Y6H-D0JWCGnb.js → chunk-POPQ4Y6H-D7TlizKK.js} +1 -1
  93. package/dist/client/assets/{chunk-SVP7TREG-BdJtJSmy.js → chunk-SVP7TREG-DNK10F6v.js} +1 -1
  94. package/dist/client/assets/chunk-SVP7TREG-DNK10F6v.js.br +0 -0
  95. package/dist/client/assets/chunk-SVP7TREG-DNK10F6v.js.gz +0 -0
  96. package/dist/client/assets/{chunk-TICWLB2K-CoevFj8I.js → chunk-TICWLB2K-zVD9YIYY.js} +1 -1
  97. package/dist/client/assets/chunk-TICWLB2K-zVD9YIYY.js.br +0 -0
  98. package/dist/client/assets/chunk-TICWLB2K-zVD9YIYY.js.gz +0 -0
  99. package/dist/client/assets/{chunk-XXDRQBXY-D7qYRhMH.js → chunk-XXDRQBXY-bRScHSGz.js} +1 -1
  100. package/dist/client/assets/{circle-xgKDXpwG.js → circle-BIJQEbCa.js} +1 -1
  101. package/dist/client/assets/classDiagram-ZZMXUADV-DNwfONVW.js +1 -0
  102. package/dist/client/assets/classDiagram-v2-VYDZK3BY-DNwfONVW.js +1 -0
  103. package/dist/client/assets/{clipboard-DeK6pJD3.js → clipboard-DV8t7tww.js} +1 -1
  104. package/dist/client/assets/clipboardText-C4QKbGHg.css +1 -0
  105. package/dist/client/assets/clipboardText-C4QKbGHg.css.br +0 -0
  106. package/dist/client/assets/clipboardText-C4QKbGHg.css.gz +0 -0
  107. package/dist/client/assets/clipboardText-DoB9NjH8.js +1 -0
  108. package/dist/client/assets/clipboardText-DoB9NjH8.js.br +0 -0
  109. package/dist/client/assets/clipboardText-DoB9NjH8.js.gz +0 -0
  110. package/dist/client/assets/{cose-bilkent-JH36ORCC-CvnsiaWP.js → cose-bilkent-JH36ORCC-Bf6IObhf.js} +1 -1
  111. package/dist/client/assets/cose-bilkent-JH36ORCC-Bf6IObhf.js.br +0 -0
  112. package/dist/client/assets/cose-bilkent-JH36ORCC-Bf6IObhf.js.gz +0 -0
  113. package/dist/client/assets/{cynefin-OW5HDTMX-BSGz8Olu.js → cynefin-OW5HDTMX-DAtjde93.js} +1 -1
  114. package/dist/client/assets/cynefin-OW5HDTMX-DAtjde93.js.br +0 -0
  115. package/dist/client/assets/{cynefin-OW5HDTMX-BSGz8Olu.js.gz → cynefin-OW5HDTMX-DAtjde93.js.gz} +0 -0
  116. package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-DYYT0AHs.js → cynefinDiagram-5FMLGOSQ-Bwoin99V.js} +1 -1
  117. package/dist/client/assets/cynefinDiagram-5FMLGOSQ-Bwoin99V.js.br +0 -0
  118. package/dist/client/assets/cynefinDiagram-5FMLGOSQ-Bwoin99V.js.gz +0 -0
  119. package/dist/client/assets/{dagre-GXQ25YYZ-BM883MN7.js → dagre-GXQ25YYZ-dxPzSob9.js} +1 -1
  120. package/dist/client/assets/dagre-GXQ25YYZ-dxPzSob9.js.br +0 -0
  121. package/dist/client/assets/dagre-GXQ25YYZ-dxPzSob9.js.gz +0 -0
  122. package/dist/client/assets/{diagram-S7CK7UJ4-CYnxXy7R.js → diagram-S7CK7UJ4-BXdiLivz.js} +1 -1
  123. package/dist/client/assets/diagram-S7CK7UJ4-BXdiLivz.js.br +0 -0
  124. package/dist/client/assets/diagram-S7CK7UJ4-BXdiLivz.js.gz +0 -0
  125. package/dist/client/assets/{diagram-UQ7AKVKN-UOIBVxRf.js → diagram-UQ7AKVKN-DXveP3fg.js} +1 -1
  126. package/dist/client/assets/diagram-UQ7AKVKN-DXveP3fg.js.br +0 -0
  127. package/dist/client/assets/diagram-UQ7AKVKN-DXveP3fg.js.gz +0 -0
  128. package/dist/client/assets/{diagram-VSXAHHWV-CqTJzfmm.js → diagram-VSXAHHWV-BAZtoQue.js} +1 -1
  129. package/dist/client/assets/diagram-VSXAHHWV-BAZtoQue.js.br +0 -0
  130. package/dist/client/assets/diagram-VSXAHHWV-BAZtoQue.js.gz +0 -0
  131. package/dist/client/assets/{diagram-VX7I27RA-T9Y88CFB.js → diagram-VX7I27RA-Bhc7cKpk.js} +1 -1
  132. package/dist/client/assets/diagram-VX7I27RA-Bhc7cKpk.js.br +0 -0
  133. package/dist/client/assets/diagram-VX7I27RA-Bhc7cKpk.js.gz +0 -0
  134. package/dist/client/assets/{diagram-Z3DM3KII-kIQDy7E0.js → diagram-Z3DM3KII-DWIa_F-y.js} +1 -1
  135. package/dist/client/assets/diagram-Z3DM3KII-DWIa_F-y.js.br +0 -0
  136. package/dist/client/assets/diagram-Z3DM3KII-DWIa_F-y.js.gz +0 -0
  137. package/dist/client/assets/{ebnfDiagram-PWID7BFC-z_VqR_JE.js → ebnfDiagram-PWID7BFC-B3LDILSm.js} +1 -1
  138. package/dist/client/assets/ebnfDiagram-PWID7BFC-B3LDILSm.js.br +0 -0
  139. package/dist/client/assets/ebnfDiagram-PWID7BFC-B3LDILSm.js.gz +0 -0
  140. package/dist/client/assets/{erDiagram-RLTQ6QDP-0q52Z-pm.js → erDiagram-RLTQ6QDP-Cfu95bMX.js} +1 -1
  141. package/dist/client/assets/erDiagram-RLTQ6QDP-Cfu95bMX.js.br +0 -0
  142. package/dist/client/assets/erDiagram-RLTQ6QDP-Cfu95bMX.js.gz +0 -0
  143. package/dist/client/assets/{external-link-CsydVmO1.js → external-link-DodqgrCc.js} +1 -1
  144. package/dist/client/assets/{flowDiagram-HODETNUW-BrGqcUWn.js → flowDiagram-HODETNUW-DVtO6aQE.js} +1 -1
  145. package/dist/client/assets/flowDiagram-HODETNUW-DVtO6aQE.js.br +0 -0
  146. package/dist/client/assets/flowDiagram-HODETNUW-DVtO6aQE.js.gz +0 -0
  147. package/dist/client/assets/{ganttDiagram-EL5Y4UJY-CHAN6vQv.js → ganttDiagram-EL5Y4UJY-Bh1TvYzb.js} +1 -1
  148. package/dist/client/assets/ganttDiagram-EL5Y4UJY-Bh1TvYzb.js.br +0 -0
  149. package/dist/client/assets/ganttDiagram-EL5Y4UJY-Bh1TvYzb.js.gz +0 -0
  150. package/dist/client/assets/{git-compare-BmKAtQTt.js → git-compare-KkbucDhN.js} +1 -1
  151. package/dist/client/assets/{gitGraphDiagram-WWUBYQGX-C0ZV4FeB.js → gitGraphDiagram-WWUBYQGX-BKbRxPsF.js} +1 -1
  152. package/dist/client/assets/gitGraphDiagram-WWUBYQGX-BKbRxPsF.js.br +0 -0
  153. package/dist/client/assets/gitGraphDiagram-WWUBYQGX-BKbRxPsF.js.gz +0 -0
  154. package/dist/client/assets/{infoDiagram-27XIBGKW-CrLj9y1o.js → infoDiagram-27XIBGKW-CLhO8B16.js} +1 -1
  155. package/dist/client/assets/{ishikawaDiagram-5VMMS53U-BxGvUfLX.js → ishikawaDiagram-5VMMS53U-BwchGTP9.js} +1 -1
  156. package/dist/client/assets/ishikawaDiagram-5VMMS53U-BwchGTP9.js.br +0 -0
  157. package/dist/client/assets/ishikawaDiagram-5VMMS53U-BwchGTP9.js.gz +0 -0
  158. package/dist/client/assets/{journeyDiagram-3NMN7TZE-rW9xlQ8G.js → journeyDiagram-3NMN7TZE-eWBpuyMm.js} +1 -1
  159. package/dist/client/assets/journeyDiagram-3NMN7TZE-eWBpuyMm.js.br +0 -0
  160. package/dist/client/assets/journeyDiagram-3NMN7TZE-eWBpuyMm.js.gz +0 -0
  161. package/dist/client/assets/{kanban-definition-UXKFOSKX-CFI5iv9R.js → kanban-definition-UXKFOSKX-Sik-RHYc.js} +1 -1
  162. package/dist/client/assets/kanban-definition-UXKFOSKX-Sik-RHYc.js.br +0 -0
  163. package/dist/client/assets/kanban-definition-UXKFOSKX-Sik-RHYc.js.gz +0 -0
  164. package/dist/client/assets/{layout-Ct_an5XT.js → layout-BJX2CDWF.js} +1 -1
  165. package/dist/client/assets/layout-BJX2CDWF.js.br +0 -0
  166. package/dist/client/assets/layout-BJX2CDWF.js.gz +0 -0
  167. package/dist/client/assets/{linear-DpEFOA9l.js → linear-0FKHr918.js} +1 -1
  168. package/dist/client/assets/linear-0FKHr918.js.br +0 -0
  169. package/dist/client/assets/linear-0FKHr918.js.gz +0 -0
  170. package/dist/client/assets/{link-34ChBc4F.js → link-DWUQqMDL.js} +1 -1
  171. package/dist/client/assets/link-DWUQqMDL.js.br +0 -0
  172. package/dist/client/assets/link-DWUQqMDL.js.gz +0 -0
  173. package/dist/client/assets/{list-tree-48dzbuUh.js → list-tree-DxdLnXUB.js} +1 -1
  174. package/dist/client/assets/{maximize-2-CbvSsu7O.js → maximize-2-Clx4ktqB.js} +1 -1
  175. package/dist/client/assets/{mermaid.core-DnVKnMmy.js → mermaid.core-DWoaNsig.js} +5 -5
  176. package/dist/client/assets/mermaid.core-DWoaNsig.js.br +0 -0
  177. package/dist/client/assets/mermaid.core-DWoaNsig.js.gz +0 -0
  178. package/dist/client/assets/{mindmap-definition-YA3MSWOX-C6shupTY.js → mindmap-definition-YA3MSWOX-kFqW8-1C.js} +1 -1
  179. package/dist/client/assets/mindmap-definition-YA3MSWOX-kFqW8-1C.js.br +0 -0
  180. package/dist/client/assets/mindmap-definition-YA3MSWOX-kFqW8-1C.js.gz +0 -0
  181. package/dist/client/assets/{passwordBootstrap-Doe50DSa.js → passwordBootstrap-ZDVK8UPE.js} +1 -1
  182. package/dist/client/assets/passwordBootstrap-ZDVK8UPE.js.br +0 -0
  183. package/dist/client/assets/passwordBootstrap-ZDVK8UPE.js.gz +0 -0
  184. package/dist/client/assets/{pegDiagram-XKGWAZYB-CDcnrvKX.js → pegDiagram-XKGWAZYB-CndGmUtZ.js} +1 -1
  185. package/dist/client/assets/pegDiagram-XKGWAZYB-CndGmUtZ.js.br +0 -0
  186. package/dist/client/assets/pegDiagram-XKGWAZYB-CndGmUtZ.js.gz +0 -0
  187. package/dist/client/assets/{pieDiagram-E7YTZNPT-CrGc03Tg.js → pieDiagram-E7YTZNPT-Q550203T.js} +1 -1
  188. package/dist/client/assets/pieDiagram-E7YTZNPT-Q550203T.js.br +0 -0
  189. package/dist/client/assets/pieDiagram-E7YTZNPT-Q550203T.js.gz +0 -0
  190. package/dist/client/assets/{quadrantDiagram-AXDQQJYC-3-aldwKj.js → quadrantDiagram-AXDQQJYC-BrjlUGzZ.js} +1 -1
  191. package/dist/client/assets/{quadrantDiagram-AXDQQJYC-3-aldwKj.js.br → quadrantDiagram-AXDQQJYC-BrjlUGzZ.js.br} +0 -0
  192. package/dist/client/assets/quadrantDiagram-AXDQQJYC-BrjlUGzZ.js.gz +0 -0
  193. package/dist/client/assets/{quote-B5GeKEq1.js → quote-B9G-yF_k.js} +1 -1
  194. package/dist/client/assets/{railroadDiagram-O6MQD6OU-51uKwR2_.js → railroadDiagram-O6MQD6OU-CSqOaX_w.js} +1 -1
  195. package/dist/client/assets/railroadDiagram-O6MQD6OU-CSqOaX_w.js.br +0 -0
  196. package/dist/client/assets/railroadDiagram-O6MQD6OU-CSqOaX_w.js.gz +0 -0
  197. package/dist/client/assets/{rdpSession-ocpkj4XY.js → rdpSession-DdqSmi-Z.js} +1 -1
  198. package/dist/client/assets/rdpSession-DdqSmi-Z.js.br +0 -0
  199. package/dist/client/assets/rdpSession-DdqSmi-Z.js.gz +0 -0
  200. package/dist/client/assets/{referenceSelection-fvfRDbgp.js → referenceSelection-0uCpJjt2.js} +1 -1
  201. package/dist/client/assets/referenceSelection-0uCpJjt2.js.br +0 -0
  202. package/dist/client/assets/referenceSelection-0uCpJjt2.js.gz +0 -0
  203. package/dist/client/assets/{requirementDiagram-BXWQKSXE-CY6kp0_Y.js → requirementDiagram-BXWQKSXE-NGPth3Pf.js} +1 -1
  204. package/dist/client/assets/requirementDiagram-BXWQKSXE-NGPth3Pf.js.br +0 -0
  205. package/dist/client/assets/requirementDiagram-BXWQKSXE-NGPth3Pf.js.gz +0 -0
  206. package/dist/client/assets/{sankeyDiagram-P5KCCOFB-BsA0NkHG.js → sankeyDiagram-P5KCCOFB-CbxpJ6iI.js} +1 -1
  207. package/dist/client/assets/sankeyDiagram-P5KCCOFB-CbxpJ6iI.js.br +0 -0
  208. package/dist/client/assets/sankeyDiagram-P5KCCOFB-CbxpJ6iI.js.gz +0 -0
  209. package/dist/client/assets/{search-CbpNLSpd.js → search-DAQ_AOVP.js} +1 -1
  210. package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-BDzn7N2D.js → sequenceDiagram-WJ2MYXX4-D3gJOK25.js} +1 -1
  211. package/dist/client/assets/sequenceDiagram-WJ2MYXX4-D3gJOK25.js.br +0 -0
  212. package/dist/client/assets/sequenceDiagram-WJ2MYXX4-D3gJOK25.js.gz +0 -0
  213. package/dist/client/assets/{sizeCapture-INFHLROL-gxtam7nc.js → sizeCapture-INFHLROL-D4D1KI0n.js} +1 -1
  214. package/dist/client/assets/sizeCapture-INFHLROL-D4D1KI0n.js.br +0 -0
  215. package/dist/client/assets/sizeCapture-INFHLROL-D4D1KI0n.js.gz +0 -0
  216. package/dist/client/assets/{stateDiagram-D77RDMKH-C4XjYLZR.js → stateDiagram-D77RDMKH-BjtgjBg5.js} +1 -1
  217. package/dist/client/assets/stateDiagram-D77RDMKH-BjtgjBg5.js.br +0 -0
  218. package/dist/client/assets/stateDiagram-D77RDMKH-BjtgjBg5.js.gz +0 -0
  219. package/dist/client/assets/stateDiagram-v2-MP3YSRHH-BkFsvhZ0.js +1 -0
  220. package/dist/client/assets/{sun-CMXn_ntS.js → sun-DvwMJkda.js} +1 -1
  221. package/dist/client/assets/{swimlanes-42K2YHIH--a1wkQO8.js → swimlanes-42K2YHIH-C17jwdFo.js} +1 -1
  222. package/dist/client/assets/swimlanes-42K2YHIH-C17jwdFo.js.br +0 -0
  223. package/dist/client/assets/swimlanes-42K2YHIH-C17jwdFo.js.gz +0 -0
  224. package/dist/client/assets/swimlanesDiagram-VR7AAH4N-Bcw2hbFj.js +8 -0
  225. package/dist/client/assets/{swiper-CTPycjLq.js → swiper-BaumVgFd.js} +1 -1
  226. package/dist/client/assets/swiper-BaumVgFd.js.br +0 -0
  227. package/dist/client/assets/swiper-BaumVgFd.js.gz +0 -0
  228. package/dist/client/assets/{timeline-definition-24CTP7MA-DFmXXUuU.js → timeline-definition-24CTP7MA-CtdHmPoC.js} +1 -1
  229. package/dist/client/assets/timeline-definition-24CTP7MA-CtdHmPoC.js.br +0 -0
  230. package/dist/client/assets/timeline-definition-24CTP7MA-CtdHmPoC.js.gz +0 -0
  231. package/dist/client/assets/{triangle-alert-DgGU_xB4.js → triangle-alert-D-tt7pA2.js} +1 -1
  232. package/dist/client/assets/{unplug-CnZtWzVW.js → unplug-BQxOculv.js} +1 -1
  233. package/dist/client/assets/{use-gesture-react.esm-DHU0wi7Q.js → use-gesture-react.esm-CM42s15B.js} +1 -1
  234. package/dist/client/assets/use-gesture-react.esm-CM42s15B.js.br +0 -0
  235. package/dist/client/assets/use-gesture-react.esm-CM42s15B.js.gz +0 -0
  236. package/dist/client/assets/{vennDiagram-4TSXK5OY-DgR4zroQ.js → vennDiagram-4TSXK5OY-DhwCFaVe.js} +1 -1
  237. package/dist/client/assets/vennDiagram-4TSXK5OY-DhwCFaVe.js.br +0 -0
  238. package/dist/client/assets/vennDiagram-4TSXK5OY-DhwCFaVe.js.gz +0 -0
  239. package/dist/client/assets/{videoCompression-CcffRZdP.js → videoCompression-BFhMaMl7.js} +1 -1
  240. package/dist/client/assets/videoCompression-BFhMaMl7.js.br +0 -0
  241. package/dist/client/assets/videoCompression-BFhMaMl7.js.gz +0 -0
  242. package/dist/client/assets/{wardleyDiagram-VM6X3IG4-CY4SVUkf.js → wardleyDiagram-VM6X3IG4-BP4Z-QQ4.js} +1 -1
  243. package/dist/client/assets/wardleyDiagram-VM6X3IG4-BP4Z-QQ4.js.br +0 -0
  244. package/dist/client/assets/wardleyDiagram-VM6X3IG4-BP4Z-QQ4.js.gz +0 -0
  245. package/dist/client/assets/{xychartDiagram-S5SC5T6Z-PblQhR-b.js → xychartDiagram-S5SC5T6Z-CEPWf1tk.js} +1 -1
  246. package/dist/client/assets/xychartDiagram-S5SC5T6Z-CEPWf1tk.js.br +0 -0
  247. package/dist/client/assets/xychartDiagram-S5SC5T6Z-CEPWf1tk.js.gz +0 -0
  248. package/dist/client/index.html +1 -1
  249. package/dist/client/index.html.br +0 -0
  250. package/dist/client/index.html.gz +0 -0
  251. package/dist/client/sw.js +1 -1
  252. package/dist/client/sw.js.br +0 -0
  253. package/dist/client/sw.js.gz +0 -0
  254. package/package.json +2 -1
  255. package/runtime-manifest.json +2 -2
  256. package/dist/client/assets/AndroidMirrorView-BGagwKtL.js.br +0 -0
  257. package/dist/client/assets/AndroidMirrorView-BGagwKtL.js.gz +0 -0
  258. package/dist/client/assets/App-DpMhxwYW.js.br +0 -0
  259. package/dist/client/assets/App-DpMhxwYW.js.gz +0 -0
  260. package/dist/client/assets/ArchitecturePanel-Bd_l74EC.js.br +0 -0
  261. package/dist/client/assets/ArchitecturePanel-Bd_l74EC.js.gz +0 -0
  262. package/dist/client/assets/ChangeWalkthroughPanel-6DN-2BdR.js.br +0 -0
  263. package/dist/client/assets/ChangeWalkthroughPanel-6DN-2BdR.js.gz +0 -0
  264. package/dist/client/assets/ChatRichContent-DjwpmW7d.js.br +0 -0
  265. package/dist/client/assets/ChatRichContent-DjwpmW7d.js.gz +0 -0
  266. package/dist/client/assets/CollaborationMainWorkspace-DPTJ9pCt.js.br +0 -0
  267. package/dist/client/assets/CollaborationMainWorkspace-DPTJ9pCt.js.gz +0 -0
  268. package/dist/client/assets/CollaborationTaskContent-Cbu1Bjl0.js +0 -1
  269. package/dist/client/assets/ComputerControlView-CwB-wQqB.js.br +0 -0
  270. package/dist/client/assets/DagPlayground-DMn9Gyrw.js.br +0 -0
  271. package/dist/client/assets/DagPlayground-DMn9Gyrw.js.gz +0 -0
  272. package/dist/client/assets/DiffLab-YBWlCU2T.js.br +0 -0
  273. package/dist/client/assets/DiffLab-YBWlCU2T.js.gz +0 -0
  274. package/dist/client/assets/DiffReview-YOPDWqhv.js.br +0 -0
  275. package/dist/client/assets/DiffReview-YOPDWqhv.js.gz +0 -0
  276. package/dist/client/assets/DiffReviewLab-SYomq14c.js.br +0 -0
  277. package/dist/client/assets/DiffReviewLab-SYomq14c.js.gz +0 -0
  278. package/dist/client/assets/DiffViewer-mh9cBl5v.js.br +0 -0
  279. package/dist/client/assets/DiffViewer-mh9cBl5v.js.gz +0 -0
  280. package/dist/client/assets/GitLoadingSkeleton-DKRTc5sz.js.br +0 -0
  281. package/dist/client/assets/GitLoadingSkeleton-DKRTc5sz.js.gz +0 -0
  282. package/dist/client/assets/Markdown-C8OP1j-g.js.br +0 -0
  283. package/dist/client/assets/Markdown-C8OP1j-g.js.gz +0 -0
  284. package/dist/client/assets/ModelPreview-CsZry3Wd.js.br +0 -0
  285. package/dist/client/assets/ModelPreview-CsZry3Wd.js.gz +0 -0
  286. package/dist/client/assets/RecordingSaveDialog-CoRGi97z.js.br +0 -0
  287. package/dist/client/assets/RecordingSaveDialog-CoRGi97z.js.gz +0 -0
  288. package/dist/client/assets/RightSidebar-DNY2kC6B.js.br +0 -0
  289. package/dist/client/assets/RightSidebar-DNY2kC6B.js.gz +0 -0
  290. package/dist/client/assets/SessionChatView-DXNpYUrk.js +0 -13
  291. package/dist/client/assets/SessionChatView-DXNpYUrk.js.br +0 -0
  292. package/dist/client/assets/SessionChatView-DXNpYUrk.js.gz +0 -0
  293. package/dist/client/assets/SessionResourceSidebar-B_379HBJ.js.br +0 -0
  294. package/dist/client/assets/SessionResourceSidebar-B_379HBJ.js.gz +0 -0
  295. package/dist/client/assets/TodoWorkspace-DfwGOAHB.js.br +0 -0
  296. package/dist/client/assets/TodoWorkspace-DfwGOAHB.js.gz +0 -0
  297. package/dist/client/assets/abnfDiagram-VCTEODGH-C9M0gnl-.js.br +0 -0
  298. package/dist/client/assets/abnfDiagram-VCTEODGH-C9M0gnl-.js.gz +0 -0
  299. package/dist/client/assets/app-CovJYQoW.js.br +0 -0
  300. package/dist/client/assets/app-CovJYQoW.js.gz +0 -0
  301. package/dist/client/assets/arc-q4wfkQcT.js.br +0 -0
  302. package/dist/client/assets/arc-q4wfkQcT.js.gz +0 -0
  303. package/dist/client/assets/architectureDiagram-5GKGNRK7-CCuna3ab.js.br +0 -0
  304. package/dist/client/assets/architectureDiagram-5GKGNRK7-CCuna3ab.js.gz +0 -0
  305. package/dist/client/assets/blockDiagram-I7D4REHJ-BXK68Qyt.js.br +0 -0
  306. package/dist/client/assets/blockDiagram-I7D4REHJ-BXK68Qyt.js.gz +0 -0
  307. package/dist/client/assets/c4Diagram-7LVT6UL2-BqwmmVmS.js.br +0 -0
  308. package/dist/client/assets/c4Diagram-7LVT6UL2-BqwmmVmS.js.gz +0 -0
  309. package/dist/client/assets/channel-Dd6WQGB7.js +0 -1
  310. package/dist/client/assets/chunk-F27PBJKO-CjUVyF-E.js.br +0 -0
  311. package/dist/client/assets/chunk-F27PBJKO-CjUVyF-E.js.gz +0 -0
  312. package/dist/client/assets/chunk-IMKFNOWR-BR8mmBs7.js.br +0 -0
  313. package/dist/client/assets/chunk-IMKFNOWR-BR8mmBs7.js.gz +0 -0
  314. package/dist/client/assets/chunk-SVP7TREG-BdJtJSmy.js.br +0 -0
  315. package/dist/client/assets/chunk-SVP7TREG-BdJtJSmy.js.gz +0 -0
  316. package/dist/client/assets/chunk-TICWLB2K-CoevFj8I.js.br +0 -0
  317. package/dist/client/assets/chunk-TICWLB2K-CoevFj8I.js.gz +0 -0
  318. package/dist/client/assets/classDiagram-ZZMXUADV-BdIUq_D7.js +0 -1
  319. package/dist/client/assets/classDiagram-v2-VYDZK3BY-BdIUq_D7.js +0 -1
  320. package/dist/client/assets/clipboardText-BWOwer6N.js +0 -1
  321. package/dist/client/assets/clipboardText-BWOwer6N.js.br +0 -0
  322. package/dist/client/assets/clipboardText-BWOwer6N.js.gz +0 -0
  323. package/dist/client/assets/clipboardText-vX90C7eX.css +0 -1
  324. package/dist/client/assets/clipboardText-vX90C7eX.css.br +0 -0
  325. package/dist/client/assets/clipboardText-vX90C7eX.css.gz +0 -0
  326. package/dist/client/assets/cose-bilkent-JH36ORCC-CvnsiaWP.js.br +0 -0
  327. package/dist/client/assets/cose-bilkent-JH36ORCC-CvnsiaWP.js.gz +0 -0
  328. package/dist/client/assets/cynefin-OW5HDTMX-BSGz8Olu.js.br +0 -0
  329. package/dist/client/assets/cynefinDiagram-5FMLGOSQ-DYYT0AHs.js.br +0 -0
  330. package/dist/client/assets/cynefinDiagram-5FMLGOSQ-DYYT0AHs.js.gz +0 -0
  331. package/dist/client/assets/dagre-GXQ25YYZ-BM883MN7.js.br +0 -0
  332. package/dist/client/assets/dagre-GXQ25YYZ-BM883MN7.js.gz +0 -0
  333. package/dist/client/assets/diagram-S7CK7UJ4-CYnxXy7R.js.br +0 -0
  334. package/dist/client/assets/diagram-S7CK7UJ4-CYnxXy7R.js.gz +0 -0
  335. package/dist/client/assets/diagram-UQ7AKVKN-UOIBVxRf.js.br +0 -0
  336. package/dist/client/assets/diagram-UQ7AKVKN-UOIBVxRf.js.gz +0 -0
  337. package/dist/client/assets/diagram-VSXAHHWV-CqTJzfmm.js.br +0 -0
  338. package/dist/client/assets/diagram-VSXAHHWV-CqTJzfmm.js.gz +0 -0
  339. package/dist/client/assets/diagram-VX7I27RA-T9Y88CFB.js.br +0 -0
  340. package/dist/client/assets/diagram-VX7I27RA-T9Y88CFB.js.gz +0 -0
  341. package/dist/client/assets/diagram-Z3DM3KII-kIQDy7E0.js.br +0 -0
  342. package/dist/client/assets/diagram-Z3DM3KII-kIQDy7E0.js.gz +0 -0
  343. package/dist/client/assets/ebnfDiagram-PWID7BFC-z_VqR_JE.js.br +0 -0
  344. package/dist/client/assets/ebnfDiagram-PWID7BFC-z_VqR_JE.js.gz +0 -0
  345. package/dist/client/assets/erDiagram-RLTQ6QDP-0q52Z-pm.js.br +0 -0
  346. package/dist/client/assets/erDiagram-RLTQ6QDP-0q52Z-pm.js.gz +0 -0
  347. package/dist/client/assets/flowDiagram-HODETNUW-BrGqcUWn.js.br +0 -0
  348. package/dist/client/assets/flowDiagram-HODETNUW-BrGqcUWn.js.gz +0 -0
  349. package/dist/client/assets/ganttDiagram-EL5Y4UJY-CHAN6vQv.js.br +0 -0
  350. package/dist/client/assets/ganttDiagram-EL5Y4UJY-CHAN6vQv.js.gz +0 -0
  351. package/dist/client/assets/gitGraphDiagram-WWUBYQGX-C0ZV4FeB.js.br +0 -0
  352. package/dist/client/assets/gitGraphDiagram-WWUBYQGX-C0ZV4FeB.js.gz +0 -0
  353. package/dist/client/assets/ishikawaDiagram-5VMMS53U-BxGvUfLX.js.br +0 -0
  354. package/dist/client/assets/ishikawaDiagram-5VMMS53U-BxGvUfLX.js.gz +0 -0
  355. package/dist/client/assets/journeyDiagram-3NMN7TZE-rW9xlQ8G.js.br +0 -0
  356. package/dist/client/assets/journeyDiagram-3NMN7TZE-rW9xlQ8G.js.gz +0 -0
  357. package/dist/client/assets/kanban-definition-UXKFOSKX-CFI5iv9R.js.br +0 -0
  358. package/dist/client/assets/kanban-definition-UXKFOSKX-CFI5iv9R.js.gz +0 -0
  359. package/dist/client/assets/layout-Ct_an5XT.js.br +0 -0
  360. package/dist/client/assets/layout-Ct_an5XT.js.gz +0 -0
  361. package/dist/client/assets/linear-DpEFOA9l.js.br +0 -0
  362. package/dist/client/assets/linear-DpEFOA9l.js.gz +0 -0
  363. package/dist/client/assets/link-34ChBc4F.js.br +0 -0
  364. package/dist/client/assets/link-34ChBc4F.js.gz +0 -0
  365. package/dist/client/assets/mermaid.core-DnVKnMmy.js.br +0 -0
  366. package/dist/client/assets/mermaid.core-DnVKnMmy.js.gz +0 -0
  367. package/dist/client/assets/mindmap-definition-YA3MSWOX-C6shupTY.js.br +0 -0
  368. package/dist/client/assets/mindmap-definition-YA3MSWOX-C6shupTY.js.gz +0 -0
  369. package/dist/client/assets/passwordBootstrap-Doe50DSa.js.br +0 -0
  370. package/dist/client/assets/passwordBootstrap-Doe50DSa.js.gz +0 -0
  371. package/dist/client/assets/pegDiagram-XKGWAZYB-CDcnrvKX.js.br +0 -0
  372. package/dist/client/assets/pegDiagram-XKGWAZYB-CDcnrvKX.js.gz +0 -0
  373. package/dist/client/assets/pieDiagram-E7YTZNPT-CrGc03Tg.js.br +0 -0
  374. package/dist/client/assets/pieDiagram-E7YTZNPT-CrGc03Tg.js.gz +0 -0
  375. package/dist/client/assets/quadrantDiagram-AXDQQJYC-3-aldwKj.js.gz +0 -0
  376. package/dist/client/assets/railroadDiagram-O6MQD6OU-51uKwR2_.js.br +0 -0
  377. package/dist/client/assets/railroadDiagram-O6MQD6OU-51uKwR2_.js.gz +0 -0
  378. package/dist/client/assets/rdpSession-ocpkj4XY.js.br +0 -0
  379. package/dist/client/assets/rdpSession-ocpkj4XY.js.gz +0 -0
  380. package/dist/client/assets/referenceSelection-fvfRDbgp.js.br +0 -0
  381. package/dist/client/assets/referenceSelection-fvfRDbgp.js.gz +0 -0
  382. package/dist/client/assets/requirementDiagram-BXWQKSXE-CY6kp0_Y.js.br +0 -0
  383. package/dist/client/assets/requirementDiagram-BXWQKSXE-CY6kp0_Y.js.gz +0 -0
  384. package/dist/client/assets/sankeyDiagram-P5KCCOFB-BsA0NkHG.js.br +0 -0
  385. package/dist/client/assets/sankeyDiagram-P5KCCOFB-BsA0NkHG.js.gz +0 -0
  386. package/dist/client/assets/sequenceDiagram-WJ2MYXX4-BDzn7N2D.js.br +0 -0
  387. package/dist/client/assets/sequenceDiagram-WJ2MYXX4-BDzn7N2D.js.gz +0 -0
  388. package/dist/client/assets/sizeCapture-INFHLROL-gxtam7nc.js.br +0 -0
  389. package/dist/client/assets/sizeCapture-INFHLROL-gxtam7nc.js.gz +0 -0
  390. package/dist/client/assets/stateDiagram-D77RDMKH-C4XjYLZR.js.br +0 -0
  391. package/dist/client/assets/stateDiagram-D77RDMKH-C4XjYLZR.js.gz +0 -0
  392. package/dist/client/assets/stateDiagram-v2-MP3YSRHH-BfHWFf-I.js +0 -1
  393. package/dist/client/assets/swimlanes-42K2YHIH--a1wkQO8.js.br +0 -0
  394. package/dist/client/assets/swimlanes-42K2YHIH--a1wkQO8.js.gz +0 -0
  395. package/dist/client/assets/swimlanesDiagram-VR7AAH4N-DsiDF1XD.js +0 -8
  396. package/dist/client/assets/swiper-CTPycjLq.js.br +0 -0
  397. package/dist/client/assets/swiper-CTPycjLq.js.gz +0 -0
  398. package/dist/client/assets/timeline-definition-24CTP7MA-DFmXXUuU.js.br +0 -0
  399. package/dist/client/assets/timeline-definition-24CTP7MA-DFmXXUuU.js.gz +0 -0
  400. package/dist/client/assets/use-gesture-react.esm-DHU0wi7Q.js.br +0 -0
  401. package/dist/client/assets/use-gesture-react.esm-DHU0wi7Q.js.gz +0 -0
  402. package/dist/client/assets/vennDiagram-4TSXK5OY-DgR4zroQ.js.br +0 -0
  403. package/dist/client/assets/vennDiagram-4TSXK5OY-DgR4zroQ.js.gz +0 -0
  404. package/dist/client/assets/videoCompression-CcffRZdP.js.br +0 -0
  405. package/dist/client/assets/videoCompression-CcffRZdP.js.gz +0 -0
  406. package/dist/client/assets/wardleyDiagram-VM6X3IG4-CY4SVUkf.js.br +0 -0
  407. package/dist/client/assets/wardleyDiagram-VM6X3IG4-CY4SVUkf.js.gz +0 -0
  408. package/dist/client/assets/xychartDiagram-S5SC5T6Z-PblQhR-b.js.br +0 -0
  409. package/dist/client/assets/xychartDiagram-S5SC5T6Z-PblQhR-b.js.gz +0 -0
@@ -1 +1 @@
1
- import{a$ as oe,ez as J,cq as s,cG as ne,co as ge,cN as Fe,R as Ie,eA as Me,a8 as Xe,s as Oe,C as ze,eJ as Be,x as He,dA as Ge,b6 as $e,ax as Ke}from"./app-CovJYQoW.js";import{R as Ue,b as t,r as je}from"./dnd-BCFAPC0L.js";import{u as xe,A as qe}from"./use-gesture-react.esm-DHU0wi7Q.js";import{S as Ve,c as Ye,h as Ze,r as Je,y as We,b as Qe,u as et}from"./gestureArbiter-DszagC-d.js";const tt=[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]],rt=oe("folder-tree",tt);const nt=[["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"}]],st=oe("house",nt);const at=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],wt=oe("upload",at),ye={dampingRatio:.8,response:.3},ot=.998;function it(n,i,c,l){const a=2*Math.PI/Math.max(n.response,.001),b=i-l,h=c,o=n.dampingRatio;if(Math.abs(o-1)<1e-4){const g=b,R=h+a*b;return{value:v=>l+(g+R*v)*Math.exp(-a*v),velocity:v=>(R-a*(g+R*v))*Math.exp(-a*v)}}if(o<1){const g=a*Math.sqrt(1-o*o),R=b,v=(h+o*a*b)/g;return{value:x=>l+Math.exp(-o*a*x)*(R*Math.cos(g*x)+v*Math.sin(g*x)),velocity:x=>Math.exp(-o*a*x)*((v*g-o*a*R)*Math.cos(g*x)-(R*g+o*a*v)*Math.sin(g*x))}}const f=a*Math.sqrt(o*o-1),p=-o*a+f,m=-o*a-f,w=(h-m*b)/(p-m),j=b-w;return{value:g=>l+w*Math.exp(p*g)+j*Math.exp(m*g),velocity:g=>w*p*Math.exp(p*g)+j*m*Math.exp(m*g)}}function ct(n,i=ot){return n/1e3*(i/(1-i))}function ve(n,i,c=.55){return n*i*c/(i+c*Math.abs(n))}function lt(){return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}const ut=.1,dt=5;function ft(n,i,c,l,a){const b=it(n,i,c,l),h=1e3/60,o=240,f=[];for(let p=0;p<o;p++){const m=p*h/1e3,w=b.value(m),j=b.velocity(m);if(f.push(a?a(w):w),p>0&&Math.abs(w-l)<ut&&Math.abs(j)<dt)break}return f.push(a?a(l):l),{frames:f,durationMs:(f.length-1)*h,solver:b}}const pt='input:not([type="hidden"]), textarea, select, [contenteditable]:not([contenteditable="false"])';function mt(){if(typeof document>"u")return;const n=document.activeElement;n instanceof HTMLElement&&n.matches(pt)&&n.blur()}const ht=18,ke=8,Re={touch:ke,pen:ke},bt=500,se=200,Ee=50,gt=`[${Ve}]`;function ae(n,i,c){return Math.min(c,Math.max(i,n))}function we(n){if(!n||typeof n!="object")return!1;const i=n;return typeof i.pointerType=="string"?i.pointerType==="touch"||i.pointerType==="pen":typeof i.type=="string"&&i.type.startsWith("touch")}function Se(n){if(!n||typeof n!="object")return!1;const i=n.target;return i instanceof Element&&!!i.closest(gt)}function K(...n){typeof window<"u"&&window.__SIDEBAR_DEBUG__&&console.log("[Sidebar]",...n)}const St=Ue.forwardRef(function({side:i,isOpen:c,drawerWidthPx:l,onClose:a,onOpen:b,children:h,pinned:o=!1},f){const{t:p}=J(),m=i==="left",w=m?-l:l,j=t.useRef(null),g=t.useRef(null),R=t.useRef(c?0:w),v=t.useRef(null),x=t.useRef(null),T=t.useRef(0),D=t.useRef(null),_=t.useRef(null),k=t.useRef(!1),E=t.useRef(null),N=t.useRef(!1),M=t.useRef([]),I=t.useRef(null),Te=t.useRef(R.current),_e=t.useRef(c?1:0),X=t.useRef(c);X.current=c;const O=t.useRef(w);O.current=w;const W=t.useRef(l);W.current=l;const Q=t.useRef(m);Q.current=m;const ie=t.useRef(a);ie.current=a;const ee=t.useRef(b);ee.current=b;const ce=t.useCallback(e=>{j.current=e,typeof f=="function"?f(e):f&&(f.current=e)},[f]),le=t.useCallback(()=>{x.current!==null&&(window.cancelAnimationFrame(x.current),x.current=null),v.current=null},[]),U=t.useCallback(e=>{const r=W.current;return Q.current?(e+r)/r:(r-e)/r},[]),ue=t.useCallback(e=>{const r=g.current;r&&(r.style.opacity=String(ae(U(e),0,1)))},[U]),A=t.useCallback(e=>{R.current=e;const r=j.current;r&&(r.style.transform=`translateX(${e}px)`,ue(e))},[ue]),q=t.useCallback(e=>{v.current=e,x.current===null&&(x.current=window.requestAnimationFrame(()=>{x.current=null;const r=v.current;v.current=null,r!==null&&A(r)}))},[A]),z=t.useCallback(()=>{x.current!==null&&(window.cancelAnimationFrame(x.current),x.current=null);const e=v.current;v.current=null,e!==null&&A(e)},[A]),$=t.useCallback(e=>{const r=O.current;return ae(e,Math.min(0,r),Math.max(0,r))},[]),B=t.useCallback(()=>{const e=D.current;if(!e)return null;D.current=null;const r=(performance.now()-e.startTime)/1e3,u={value:e.solver.value(r),velocity:e.solver.velocity(r)};return e.animations.forEach(d=>d.cancel()),u},[]),L=t.useCallback(()=>{_.current!==null&&(window.clearTimeout(_.current),_.current=null)},[]),te=t.useCallback(()=>{I.current?.(),I.current=null},[]),V=t.useCallback(()=>{z(),L();const e=B();e&&A($(e.value));const r=j.current,u=g.current;r?.getAnimations().forEach(d=>d.cancel()),r&&(r.style.transition="none",r.style.opacity="1"),u?.getAnimations().forEach(d=>d.cancel()),u&&(u.style.transition="none")},[A,L,$,z,B]),Y=t.useCallback((e,r)=>{z(),L();const u=j.current,d=g.current,y=e?0:O.current;d&&(d.style.pointerEvents=e?"auto":"none");const S=B(),C=S?$(S.value):R.current,H=r?.velocity??S?.velocity??0;if(lt())return R.current=y,u&&(u.style.transition=`opacity ${se}ms ease`,u.style.opacity=e?"1":"0",u.style.transform=`translateX(${y}px)`),d&&(d.style.transition=`opacity ${se}ms ease`,d.style.opacity=e?"1":"0"),se;u&&(u.style.transition="none",u.style.opacity="1"),d&&(d.style.transition="none");const P=Math.abs(r?.velocity??0)>bt,{frames:G,durationMs:Z,solver:Le}=ft({dampingRatio:P?ye.dampingRatio:1,response:ye.response},C,H,y,$);if(!u||Math.abs(C-y)<.5&&Math.abs(H)<5)return A(y),0;const re=u.animate(G.map(F=>({transform:`translateX(${F}px)`})),{duration:Z,easing:"linear",fill:"forwards"}),be=[re];return d&&be.push(d.animate(G.map(F=>({opacity:String(ae(U(F),0,1))})),{duration:Z,easing:"linear",fill:"forwards"})),D.current={solver:Le,startTime:performance.now(),target:y,animations:be},K("spring start",{startX:C,startVelocity:H,targetX:y,frames:G.length,durationMs:Z}),re.onfinish=()=>{const F=D.current;!F||!F.animations.includes(re)||(D.current=null,A(y),F.animations.forEach(Pe=>Pe.cancel()),K("spring finish",{targetX:y}))},Z},[A,L,$,z,U,B]),de=t.useCallback(e=>{z();const r=e,u=0,d=O.current,y=R.current+ct(r),S=Math.abs(y-u)<=Math.abs(y-d);K("decideSnap",{velocity:r,currentX:R.current,projected:y,shouldOpen:S});const C=Y(S,{velocity:r});return S&&!X.current?_.current=window.setTimeout(()=>{_.current=null,ee.current?.()},C+Ee):!S&&X.current&&(_.current=window.setTimeout(()=>{_.current=null,ie.current()},C+Ee)),S},[Y,z]),fe=t.useCallback(e=>{const r=O.current,u=Math.min(0,r),d=Math.max(0,r),y=W.current;return e<u?u-ve(u-e,y):e>d?d+ve(e-d,y):e},[]),pe=t.useCallback(e=>{const r=M.current,u=performance.now();r.push({t:u,x:e});const d=u-120;for(;r.length>0&&r[0].t<d;)r.shift()},[]),me=t.useCallback(()=>{const e=M.current;if(e.length<2)return 0;const r=e[e.length-1];if(performance.now()-r.t>60)return 0;const u=e[0],d=(r.t-u.t)/1e3;return d<.016?0:(r.x-u.x)/d},[]);t.useEffect(()=>{L();const e=D.current,r=c?0:O.current;e&&e.target===r||Y(c)},[c,Y,L]),t.useEffect(()=>{V(),q(X.current?0:w)},[w,V,q]),t.useEffect(()=>()=>{le(),L(),B(),te()},[L,le,te,B]);const Ne=xe(({active:e,cancel:r,first:u,last:d,movement:[y],event:S})=>{if(K("bindPanel",{active:e,first:u,last:d,mx:y}),!we(S)){r();return}if(u){if(te(),k.current=!1,E.current=null,M.current=[],Se(S)){r();return}const C=j.current,H=C?Ye(S.target,C):null;if(!H||Ze()){r();return}const P=Je(H,y,Q.current?-1:1);if(K("arbitrate",{owner:P.kind,mx:y}),P.kind==="swiper"){I.current=We(P.instance),r();return}if(P.kind==="scroller"){const G=Qe(P.element);if(G)E.current=G;else{r();return}}E.current||(k.current=!0,V(),T.current=R.current)}if(!e){E.current=null,k.current&&(k.current=!1,de(me()));return}if(E.current){et(E.current,y);return}if(k.current){const C=fe(T.current+y);pe(C),q(C)}},{axis:"x",axisThreshold:Re,filterTaps:!0,pointer:{touch:!0}}),Ae=xe(({active:e,cancel:r,first:u,movement:[d],event:y})=>{if(!we(y)){r();return}if(X.current){r();return}if(u&&(N.current=!0,M.current=[],V(),T.current=R.current),!e){N.current&&(N.current=!1,de(me())&&mt());return}if(N.current){const S=fe(T.current+d);pe(S),q(S)}},{axis:"x",axisThreshold:Re,filterTaps:!0,pointer:{touch:!0}}),De=t.useCallback(e=>{e.preventDefault(),e.stopPropagation(),X.current||ee.current?.()},[]);if(o)return s.jsx("aside",{ref:ce,"data-sidebar":i,"data-sidebar-pinned":"true",className:"relative flex h-full min-h-0 w-full flex-col app-chrome-bg",children:h});const he=Ne();return s.jsxs(s.Fragment,{children:[s.jsx("div",{...Ae(),style:{position:"fixed",top:"1.5rem",bottom:"10rem",...m?{left:0}:{right:0},width:ht,zIndex:"var(--z-chrome-hint)",touchAction:"none",pointerEvents:c?"none":"auto"},onClick:De,"aria-label":p(m?"sidebar.openLeftSidebar":"sidebar.openRightSidebar")}),s.jsx("div",{ref:g,"data-sidebar-backdrop":i,className:"fixed inset-0 z-sidebar-backdrop bg-[var(--app-backdrop)] cursor-default",style:{opacity:_e.current,pointerEvents:c?"auto":"none",transition:"none",willChange:"opacity"},onClick:a,"aria-label":p("sidebar.closeSidebar")}),s.jsx("aside",{...he,onClickCapture:e=>{Se(e)||he.onClickCapture?.(e)},ref:ce,"data-sidebar":i,className:`fixed inset-y-0 z-sidebar-panel flex flex-col chrome-glow-panel will-change-transform ${m?"border-r border-border":"border-l border-border/15"}`,style:{...m?{left:0}:{right:0},width:l,maxWidth:m?"94vw":"95vw",transform:`translateX(${Te.current}px)`,transition:"none",touchAction:"pan-y",pointerEvents:c?"auto":"none",paddingTop:"var(--safe-top-inset, env(safe-area-inset-top, 0px))",paddingBottom:"var(--safe-bottom-inset, env(safe-area-inset-bottom, 0px))",...m?{paddingLeft:"var(--safe-left-inset, env(safe-area-inset-left, 0px))"}:{paddingRight:"var(--safe-right-inset, env(safe-area-inset-right, 0px))"}},children:h})]})});function xt(n,i="/"){const c=ne(i),l=ge(n,c)?ne(n):c,[a,b]=t.useState({root:c,initial:l,path:l}),h=a.root===c&&a.initial===l?a.path:l;t.useEffect(()=>{b({root:c,initial:l,path:l})},[c,l]);const o=f=>{ge(f,c)&&b({root:c,initial:l,path:ne(f)})};return{path:h,navigate:o,canGoParent:h!==c,goParent:()=>o(Fe(h)),goRoot:()=>o(c)}}function yt({parent:n,root:i,refresh:c,buttonClassName:l,iconSize:a=14}){const{t:b}=J(),h=l??"inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-lg text-muted-foreground transition hover:bg-surface-2 hover:text-foreground disabled:opacity-30";return s.jsx(s.Fragment,{children:[{action:n,Icon:qe,label:b("rightSidebar.parentFolder")},{action:i,Icon:st,label:b("rightSidebar.backToProjectRoot")},{action:c,Icon:Ie,label:b("rightSidebar.refreshFiles")}].map(({action:o,Icon:f,label:p},m)=>o&&s.jsx("button",{type:"button",onClick:o.onClick,disabled:o.disabled,className:h,"aria-label":o.label??p,title:o.title??o.label??p,children:s.jsx(f,{size:a})},m))})}function Ce({open:n,initialPath:i,title:c,labels:l,onCancel:a,onConfirm:b}){const{t:h}=J(),o={hint:l?.hint??h("sidebar.directoryPickerHint"),cancel:l?.cancel??h("common.cancel"),confirm:l?.confirm??h("sidebar.useThisFolder"),close:l?.close??h("common.close"),parent:l?.parent??h("rightSidebar.parentFolder")},f=t.useRef(null);Me(f,n,a);const p=xt(i.trim()),m=p.path;return t.useEffect(()=>{n||p.navigate(i.trim())},[n,i]),t.useEffect(()=>{if(!n)return;const w=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=w}},[n]),n?je.createPortal(s.jsxs(s.Fragment,{children:[s.jsx("button",{type:"button",className:"fixed inset-0 z-modal-backdrop cursor-default bg-[var(--app-backdrop)] backdrop-blur-sm",onClick:a,"aria-label":o.cancel}),s.jsxs("section",{ref:f,tabIndex:-1,role:"dialog","aria-modal":"true","aria-labelledby":"directory-picker-title",className:"fixed bottom-[max(0.75rem,env(safe-area-inset-bottom,0px))] left-[max(0.75rem,env(safe-area-inset-left,0px))] right-[max(0.75rem,env(safe-area-inset-right,0px))] top-[max(0.75rem,env(safe-area-inset-top,0px))] z-modal-panel flex flex-col overflow-hidden rounded-2xl border border-border/15 bg-surface shadow-[0_28px_70px_var(--app-shadow-strong),0_14px_32px_var(--app-shadow-soft)] sm:bottom-auto sm:left-1/2 sm:right-auto sm:top-1/2 sm:h-[min(72svh,36rem)] sm:w-[min(36rem,calc(100vw-2rem))] sm:-translate-x-1/2 sm:-translate-y-1/2",children:[s.jsxs("header",{className:"flex shrink-0 items-center gap-3 border-b border-border/15 px-4 py-3",children:[s.jsx("span",{className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary/15 text-primary",children:s.jsx(rt,{size:15})}),s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsx("h2",{id:"directory-picker-title",className:"text-[13px] font-semibold text-foreground",children:c}),s.jsx("p",{className:"mt-0.5 text-[10px] text-muted-foreground",children:o.hint})]}),s.jsx("button",{type:"button",onClick:a,className:"inline-flex h-9 w-9 items-center justify-center rounded-lg text-muted-foreground transition hover:bg-surface-2 hover:text-foreground","aria-label":o.close,children:s.jsx(Xe,{size:15})})]}),s.jsxs("div",{className:"flex min-h-11 shrink-0 items-center gap-2 border-b border-border/15 px-3 py-1.5",children:[s.jsx(yt,{parent:{onClick:p.goParent,disabled:!p.canGoParent,label:o.parent}}),s.jsx("span",{className:"min-w-0 flex-1 truncate font-mono text-[10.5px] text-foreground",title:m,children:m})]}),s.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto overscroll-contain py-1",children:s.jsx(Oe,{rootPath:m,directoriesOnly:!0,onFileSelect:()=>{},onDirectoryRoot:p.navigate,selectedFilePath:i||null})}),s.jsxs("footer",{className:"flex shrink-0 items-center justify-end gap-2 border-t border-border/15 bg-surface-elevated px-3 py-3",children:[s.jsx("button",{type:"button",onClick:a,className:"min-h-10 rounded-lg bg-surface-2 px-4 text-[11px] font-medium text-foreground transition hover:bg-surface",children:o.cancel}),s.jsxs("button",{type:"button",onClick:()=>b(m),className:"inline-flex min-h-10 items-center gap-1.5 rounded-lg bg-primary px-4 text-[11px] font-semibold text-primary-foreground transition hover:bg-primary/90",children:[s.jsx(ze,{size:13}),o.confirm]})]})]})]}),document.body):null}const Mt=Object.freeze(Object.defineProperty({__proto__:null,DirectoryPickerDialog:Ce},Symbol.toStringTag,{value:"Module"}));function jt({file:n,initialPath:i,onInsert:c,onDone:l}){const{t:a}=J(),b=Be(),[h,o]=t.useState(!1),[f,p]=t.useState(!1),[m,w]=t.useState(!1),[j,g]=t.useState(!1),[R,v]=t.useState(null),x=t.useRef(!1),T=t.useRef(null);Me(T,!h,()=>{});const D=async()=>{if(!x.current){x.current=!0,p(!0),g(!0);try{await $e(n.id),l()}catch(k){v(k instanceof Error?k.message:String(k))}finally{x.current=!1,p(!1),g(!1)}}};t.useEffect(()=>{if(h)return;T.current?.focus();const k=E=>{if(E.stopPropagation(),E.key==="Escape"&&E.preventDefault(),E.key!=="Tab")return;const N=Array.from(T.current?.querySelectorAll("button:not(:disabled)")??[]),M=N[0],I=N.at(-1);E.shiftKey&&(document.activeElement===M||document.activeElement===T.current)?(E.preventDefault(),I?.focus()):!E.shiftKey&&document.activeElement===I&&(E.preventDefault(),M?.focus())};return document.addEventListener("keydown",k,!0),()=>document.removeEventListener("keydown",k,!0)},[h]);const _=async(k,E)=>{if(x.current)return;const N=Ke(E);x.current=!0,p(!0),w(k!==void 0),o(!1),v(null);try{const M=await Ge(n.id,k);if(k===void 0&&(!N()||await c(M.path,E)===!1))throw new Error(a("android.captureUnavailable"));l()}catch(M){v(M instanceof Error?M.message:String(M))}finally{x.current=!1,p(!1)}};return h?s.jsx(Ce,{open:!0,initialPath:i||"/",title:a("android.recordingSave"),onCancel:()=>o(!1),onConfirm:k=>{_(k)}}):je.createPortal(s.jsx("div",{className:"fixed inset-0 z-modal-panel flex items-center justify-center bg-[var(--app-backdrop)] p-4",children:s.jsxs("div",{ref:T,role:"dialog","aria-modal":"true","aria-labelledby":"recording-save-title",tabIndex:-1,"aria-busy":f,className:"w-full max-w-sm rounded-xl border border-border bg-surface p-4 text-foreground shadow-xl outline-none",children:[s.jsx("h2",{id:"recording-save-title",className:"text-sm font-semibold",children:a("android.recordingConfirm")}),s.jsx("p",{className:"mt-2 text-xs text-muted-foreground",children:a("android.recordingSaveHint")}),s.jsxs("p",{className:"mt-2 break-all text-xs text-muted-foreground",children:[n.name," · ",(n.size/1024/1024).toFixed(1)," MB"]}),(R||n.error)&&s.jsx("p",{role:"alert",className:"mt-3 break-words text-xs text-destructive",children:R||n.error}),f&&s.jsxs("p",{role:"status",className:"mt-3 flex items-center gap-2 text-sm text-primary",children:[s.jsx(He,{size:16,className:"animate-spin"}),j?`${a("android.recordingDiscard")}…`:a(m?"android.recordingSaving":"android.captureInserting")]}),s.jsxs("div",{className:"mt-4 flex flex-col gap-2",children:[s.jsx("button",{type:"button",disabled:f||n.status!=="ready",onClick:k=>{_(void 0,k.currentTarget)},className:"min-h-10 rounded-lg bg-primary px-3 text-sm text-primary-foreground disabled:opacity-40",children:a("android.recordingInsert")}),!b&&s.jsx("button",{type:"button",disabled:f||n.status!=="ready",onClick:()=>o(!0),className:"min-h-10 rounded-lg bg-surface-2 px-3 text-sm disabled:opacity-40",children:a("android.recordingSave")}),s.jsx("button",{type:"button",disabled:f,onClick:()=>{D()},className:"min-h-10 rounded-lg px-3 text-sm text-muted-foreground disabled:opacity-40",children:a("android.recordingDiscard")})]})]})}),document.body)}export{Ce as D,yt as F,st as H,jt as R,St as S,wt as U,Mt as a,xt as u};
1
+ import{a$ as oe,ez as J,cq as s,cG as ne,co as ge,cN as Fe,R as Ie,eA as Me,a8 as Xe,s as Oe,C as ze,eJ as Be,x as He,dA as Ge,b6 as $e,ax as Ke}from"./app-DZ6mCJiW.js";import{R as Ue,b as t,r as je}from"./dnd-BCFAPC0L.js";import{u as xe,A as qe}from"./use-gesture-react.esm-CM42s15B.js";import{S as Ve,c as Ye,h as Ze,r as Je,y as We,b as Qe,u as et}from"./gestureArbiter-DszagC-d.js";const tt=[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]],rt=oe("folder-tree",tt);const nt=[["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"}]],st=oe("house",nt);const at=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],wt=oe("upload",at),ye={dampingRatio:.8,response:.3},ot=.998;function it(n,i,c,l){const a=2*Math.PI/Math.max(n.response,.001),b=i-l,h=c,o=n.dampingRatio;if(Math.abs(o-1)<1e-4){const g=b,R=h+a*b;return{value:v=>l+(g+R*v)*Math.exp(-a*v),velocity:v=>(R-a*(g+R*v))*Math.exp(-a*v)}}if(o<1){const g=a*Math.sqrt(1-o*o),R=b,v=(h+o*a*b)/g;return{value:x=>l+Math.exp(-o*a*x)*(R*Math.cos(g*x)+v*Math.sin(g*x)),velocity:x=>Math.exp(-o*a*x)*((v*g-o*a*R)*Math.cos(g*x)-(R*g+o*a*v)*Math.sin(g*x))}}const f=a*Math.sqrt(o*o-1),p=-o*a+f,m=-o*a-f,w=(h-m*b)/(p-m),j=b-w;return{value:g=>l+w*Math.exp(p*g)+j*Math.exp(m*g),velocity:g=>w*p*Math.exp(p*g)+j*m*Math.exp(m*g)}}function ct(n,i=ot){return n/1e3*(i/(1-i))}function ve(n,i,c=.55){return n*i*c/(i+c*Math.abs(n))}function lt(){return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}const ut=.1,dt=5;function ft(n,i,c,l,a){const b=it(n,i,c,l),h=1e3/60,o=240,f=[];for(let p=0;p<o;p++){const m=p*h/1e3,w=b.value(m),j=b.velocity(m);if(f.push(a?a(w):w),p>0&&Math.abs(w-l)<ut&&Math.abs(j)<dt)break}return f.push(a?a(l):l),{frames:f,durationMs:(f.length-1)*h,solver:b}}const pt='input:not([type="hidden"]), textarea, select, [contenteditable]:not([contenteditable="false"])';function mt(){if(typeof document>"u")return;const n=document.activeElement;n instanceof HTMLElement&&n.matches(pt)&&n.blur()}const ht=18,ke=8,Re={touch:ke,pen:ke},bt=500,se=200,Ee=50,gt=`[${Ve}]`;function ae(n,i,c){return Math.min(c,Math.max(i,n))}function we(n){if(!n||typeof n!="object")return!1;const i=n;return typeof i.pointerType=="string"?i.pointerType==="touch"||i.pointerType==="pen":typeof i.type=="string"&&i.type.startsWith("touch")}function Se(n){if(!n||typeof n!="object")return!1;const i=n.target;return i instanceof Element&&!!i.closest(gt)}function K(...n){typeof window<"u"&&window.__SIDEBAR_DEBUG__&&console.log("[Sidebar]",...n)}const St=Ue.forwardRef(function({side:i,isOpen:c,drawerWidthPx:l,onClose:a,onOpen:b,children:h,pinned:o=!1},f){const{t:p}=J(),m=i==="left",w=m?-l:l,j=t.useRef(null),g=t.useRef(null),R=t.useRef(c?0:w),v=t.useRef(null),x=t.useRef(null),T=t.useRef(0),D=t.useRef(null),_=t.useRef(null),k=t.useRef(!1),E=t.useRef(null),N=t.useRef(!1),M=t.useRef([]),I=t.useRef(null),Te=t.useRef(R.current),_e=t.useRef(c?1:0),X=t.useRef(c);X.current=c;const O=t.useRef(w);O.current=w;const W=t.useRef(l);W.current=l;const Q=t.useRef(m);Q.current=m;const ie=t.useRef(a);ie.current=a;const ee=t.useRef(b);ee.current=b;const ce=t.useCallback(e=>{j.current=e,typeof f=="function"?f(e):f&&(f.current=e)},[f]),le=t.useCallback(()=>{x.current!==null&&(window.cancelAnimationFrame(x.current),x.current=null),v.current=null},[]),U=t.useCallback(e=>{const r=W.current;return Q.current?(e+r)/r:(r-e)/r},[]),ue=t.useCallback(e=>{const r=g.current;r&&(r.style.opacity=String(ae(U(e),0,1)))},[U]),A=t.useCallback(e=>{R.current=e;const r=j.current;r&&(r.style.transform=`translateX(${e}px)`,ue(e))},[ue]),q=t.useCallback(e=>{v.current=e,x.current===null&&(x.current=window.requestAnimationFrame(()=>{x.current=null;const r=v.current;v.current=null,r!==null&&A(r)}))},[A]),z=t.useCallback(()=>{x.current!==null&&(window.cancelAnimationFrame(x.current),x.current=null);const e=v.current;v.current=null,e!==null&&A(e)},[A]),$=t.useCallback(e=>{const r=O.current;return ae(e,Math.min(0,r),Math.max(0,r))},[]),B=t.useCallback(()=>{const e=D.current;if(!e)return null;D.current=null;const r=(performance.now()-e.startTime)/1e3,u={value:e.solver.value(r),velocity:e.solver.velocity(r)};return e.animations.forEach(d=>d.cancel()),u},[]),L=t.useCallback(()=>{_.current!==null&&(window.clearTimeout(_.current),_.current=null)},[]),te=t.useCallback(()=>{I.current?.(),I.current=null},[]),V=t.useCallback(()=>{z(),L();const e=B();e&&A($(e.value));const r=j.current,u=g.current;r?.getAnimations().forEach(d=>d.cancel()),r&&(r.style.transition="none",r.style.opacity="1"),u?.getAnimations().forEach(d=>d.cancel()),u&&(u.style.transition="none")},[A,L,$,z,B]),Y=t.useCallback((e,r)=>{z(),L();const u=j.current,d=g.current,y=e?0:O.current;d&&(d.style.pointerEvents=e?"auto":"none");const S=B(),C=S?$(S.value):R.current,H=r?.velocity??S?.velocity??0;if(lt())return R.current=y,u&&(u.style.transition=`opacity ${se}ms ease`,u.style.opacity=e?"1":"0",u.style.transform=`translateX(${y}px)`),d&&(d.style.transition=`opacity ${se}ms ease`,d.style.opacity=e?"1":"0"),se;u&&(u.style.transition="none",u.style.opacity="1"),d&&(d.style.transition="none");const P=Math.abs(r?.velocity??0)>bt,{frames:G,durationMs:Z,solver:Le}=ft({dampingRatio:P?ye.dampingRatio:1,response:ye.response},C,H,y,$);if(!u||Math.abs(C-y)<.5&&Math.abs(H)<5)return A(y),0;const re=u.animate(G.map(F=>({transform:`translateX(${F}px)`})),{duration:Z,easing:"linear",fill:"forwards"}),be=[re];return d&&be.push(d.animate(G.map(F=>({opacity:String(ae(U(F),0,1))})),{duration:Z,easing:"linear",fill:"forwards"})),D.current={solver:Le,startTime:performance.now(),target:y,animations:be},K("spring start",{startX:C,startVelocity:H,targetX:y,frames:G.length,durationMs:Z}),re.onfinish=()=>{const F=D.current;!F||!F.animations.includes(re)||(D.current=null,A(y),F.animations.forEach(Pe=>Pe.cancel()),K("spring finish",{targetX:y}))},Z},[A,L,$,z,U,B]),de=t.useCallback(e=>{z();const r=e,u=0,d=O.current,y=R.current+ct(r),S=Math.abs(y-u)<=Math.abs(y-d);K("decideSnap",{velocity:r,currentX:R.current,projected:y,shouldOpen:S});const C=Y(S,{velocity:r});return S&&!X.current?_.current=window.setTimeout(()=>{_.current=null,ee.current?.()},C+Ee):!S&&X.current&&(_.current=window.setTimeout(()=>{_.current=null,ie.current()},C+Ee)),S},[Y,z]),fe=t.useCallback(e=>{const r=O.current,u=Math.min(0,r),d=Math.max(0,r),y=W.current;return e<u?u-ve(u-e,y):e>d?d+ve(e-d,y):e},[]),pe=t.useCallback(e=>{const r=M.current,u=performance.now();r.push({t:u,x:e});const d=u-120;for(;r.length>0&&r[0].t<d;)r.shift()},[]),me=t.useCallback(()=>{const e=M.current;if(e.length<2)return 0;const r=e[e.length-1];if(performance.now()-r.t>60)return 0;const u=e[0],d=(r.t-u.t)/1e3;return d<.016?0:(r.x-u.x)/d},[]);t.useEffect(()=>{L();const e=D.current,r=c?0:O.current;e&&e.target===r||Y(c)},[c,Y,L]),t.useEffect(()=>{V(),q(X.current?0:w)},[w,V,q]),t.useEffect(()=>()=>{le(),L(),B(),te()},[L,le,te,B]);const Ne=xe(({active:e,cancel:r,first:u,last:d,movement:[y],event:S})=>{if(K("bindPanel",{active:e,first:u,last:d,mx:y}),!we(S)){r();return}if(u){if(te(),k.current=!1,E.current=null,M.current=[],Se(S)){r();return}const C=j.current,H=C?Ye(S.target,C):null;if(!H||Ze()){r();return}const P=Je(H,y,Q.current?-1:1);if(K("arbitrate",{owner:P.kind,mx:y}),P.kind==="swiper"){I.current=We(P.instance),r();return}if(P.kind==="scroller"){const G=Qe(P.element);if(G)E.current=G;else{r();return}}E.current||(k.current=!0,V(),T.current=R.current)}if(!e){E.current=null,k.current&&(k.current=!1,de(me()));return}if(E.current){et(E.current,y);return}if(k.current){const C=fe(T.current+y);pe(C),q(C)}},{axis:"x",axisThreshold:Re,filterTaps:!0,pointer:{touch:!0}}),Ae=xe(({active:e,cancel:r,first:u,movement:[d],event:y})=>{if(!we(y)){r();return}if(X.current){r();return}if(u&&(N.current=!0,M.current=[],V(),T.current=R.current),!e){N.current&&(N.current=!1,de(me())&&mt());return}if(N.current){const S=fe(T.current+d);pe(S),q(S)}},{axis:"x",axisThreshold:Re,filterTaps:!0,pointer:{touch:!0}}),De=t.useCallback(e=>{e.preventDefault(),e.stopPropagation(),X.current||ee.current?.()},[]);if(o)return s.jsx("aside",{ref:ce,"data-sidebar":i,"data-sidebar-pinned":"true",className:"relative flex h-full min-h-0 w-full flex-col app-chrome-bg",children:h});const he=Ne();return s.jsxs(s.Fragment,{children:[s.jsx("div",{...Ae(),style:{position:"fixed",top:"1.5rem",bottom:"10rem",...m?{left:0}:{right:0},width:ht,zIndex:"var(--z-chrome-hint)",touchAction:"none",pointerEvents:c?"none":"auto"},onClick:De,"aria-label":p(m?"sidebar.openLeftSidebar":"sidebar.openRightSidebar")}),s.jsx("div",{ref:g,"data-sidebar-backdrop":i,className:"fixed inset-0 z-sidebar-backdrop bg-[var(--app-backdrop)] cursor-default",style:{opacity:_e.current,pointerEvents:c?"auto":"none",transition:"none",willChange:"opacity"},onClick:a,"aria-label":p("sidebar.closeSidebar")}),s.jsx("aside",{...he,onClickCapture:e=>{Se(e)||he.onClickCapture?.(e)},ref:ce,"data-sidebar":i,className:`fixed inset-y-0 z-sidebar-panel flex flex-col chrome-glow-panel will-change-transform ${m?"border-r border-border":"border-l border-border/15"}`,style:{...m?{left:0}:{right:0},width:l,maxWidth:m?"94vw":"95vw",transform:`translateX(${Te.current}px)`,transition:"none",touchAction:"pan-y",pointerEvents:c?"auto":"none",paddingTop:"var(--safe-top-inset, env(safe-area-inset-top, 0px))",paddingBottom:"var(--safe-bottom-inset, env(safe-area-inset-bottom, 0px))",...m?{paddingLeft:"var(--safe-left-inset, env(safe-area-inset-left, 0px))"}:{paddingRight:"var(--safe-right-inset, env(safe-area-inset-right, 0px))"}},children:h})]})});function xt(n,i="/"){const c=ne(i),l=ge(n,c)?ne(n):c,[a,b]=t.useState({root:c,initial:l,path:l}),h=a.root===c&&a.initial===l?a.path:l;t.useEffect(()=>{b({root:c,initial:l,path:l})},[c,l]);const o=f=>{ge(f,c)&&b({root:c,initial:l,path:ne(f)})};return{path:h,navigate:o,canGoParent:h!==c,goParent:()=>o(Fe(h)),goRoot:()=>o(c)}}function yt({parent:n,root:i,refresh:c,buttonClassName:l,iconSize:a=14}){const{t:b}=J(),h=l??"inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-lg text-muted-foreground transition hover:bg-surface-2 hover:text-foreground disabled:opacity-30";return s.jsx(s.Fragment,{children:[{action:n,Icon:qe,label:b("rightSidebar.parentFolder")},{action:i,Icon:st,label:b("rightSidebar.backToProjectRoot")},{action:c,Icon:Ie,label:b("rightSidebar.refreshFiles")}].map(({action:o,Icon:f,label:p},m)=>o&&s.jsx("button",{type:"button",onClick:o.onClick,disabled:o.disabled,className:h,"aria-label":o.label??p,title:o.title??o.label??p,children:s.jsx(f,{size:a})},m))})}function Ce({open:n,initialPath:i,title:c,labels:l,onCancel:a,onConfirm:b}){const{t:h}=J(),o={hint:l?.hint??h("sidebar.directoryPickerHint"),cancel:l?.cancel??h("common.cancel"),confirm:l?.confirm??h("sidebar.useThisFolder"),close:l?.close??h("common.close"),parent:l?.parent??h("rightSidebar.parentFolder")},f=t.useRef(null);Me(f,n,a);const p=xt(i.trim()),m=p.path;return t.useEffect(()=>{n||p.navigate(i.trim())},[n,i]),t.useEffect(()=>{if(!n)return;const w=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=w}},[n]),n?je.createPortal(s.jsxs(s.Fragment,{children:[s.jsx("button",{type:"button",className:"fixed inset-0 z-modal-backdrop cursor-default bg-[var(--app-backdrop)] backdrop-blur-sm",onClick:a,"aria-label":o.cancel}),s.jsxs("section",{ref:f,tabIndex:-1,role:"dialog","aria-modal":"true","aria-labelledby":"directory-picker-title",className:"fixed bottom-[max(0.75rem,env(safe-area-inset-bottom,0px))] left-[max(0.75rem,env(safe-area-inset-left,0px))] right-[max(0.75rem,env(safe-area-inset-right,0px))] top-[max(0.75rem,env(safe-area-inset-top,0px))] z-modal-panel flex flex-col overflow-hidden rounded-2xl border border-border/15 bg-surface shadow-[0_28px_70px_var(--app-shadow-strong),0_14px_32px_var(--app-shadow-soft)] sm:bottom-auto sm:left-1/2 sm:right-auto sm:top-1/2 sm:h-[min(72svh,36rem)] sm:w-[min(36rem,calc(100vw-2rem))] sm:-translate-x-1/2 sm:-translate-y-1/2",children:[s.jsxs("header",{className:"flex shrink-0 items-center gap-3 border-b border-border/15 px-4 py-3",children:[s.jsx("span",{className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary/15 text-primary",children:s.jsx(rt,{size:15})}),s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsx("h2",{id:"directory-picker-title",className:"text-[13px] font-semibold text-foreground",children:c}),s.jsx("p",{className:"mt-0.5 text-[10px] text-muted-foreground",children:o.hint})]}),s.jsx("button",{type:"button",onClick:a,className:"inline-flex h-9 w-9 items-center justify-center rounded-lg text-muted-foreground transition hover:bg-surface-2 hover:text-foreground","aria-label":o.close,children:s.jsx(Xe,{size:15})})]}),s.jsxs("div",{className:"flex min-h-11 shrink-0 items-center gap-2 border-b border-border/15 px-3 py-1.5",children:[s.jsx(yt,{parent:{onClick:p.goParent,disabled:!p.canGoParent,label:o.parent}}),s.jsx("span",{className:"min-w-0 flex-1 truncate font-mono text-[10.5px] text-foreground",title:m,children:m})]}),s.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto overscroll-contain py-1",children:s.jsx(Oe,{rootPath:m,directoriesOnly:!0,onFileSelect:()=>{},onDirectoryRoot:p.navigate,selectedFilePath:i||null})}),s.jsxs("footer",{className:"flex shrink-0 items-center justify-end gap-2 border-t border-border/15 bg-surface-elevated px-3 py-3",children:[s.jsx("button",{type:"button",onClick:a,className:"min-h-10 rounded-lg bg-surface-2 px-4 text-[11px] font-medium text-foreground transition hover:bg-surface",children:o.cancel}),s.jsxs("button",{type:"button",onClick:()=>b(m),className:"inline-flex min-h-10 items-center gap-1.5 rounded-lg bg-primary px-4 text-[11px] font-semibold text-primary-foreground transition hover:bg-primary/90",children:[s.jsx(ze,{size:13}),o.confirm]})]})]})]}),document.body):null}const Mt=Object.freeze(Object.defineProperty({__proto__:null,DirectoryPickerDialog:Ce},Symbol.toStringTag,{value:"Module"}));function jt({file:n,initialPath:i,onInsert:c,onDone:l}){const{t:a}=J(),b=Be(),[h,o]=t.useState(!1),[f,p]=t.useState(!1),[m,w]=t.useState(!1),[j,g]=t.useState(!1),[R,v]=t.useState(null),x=t.useRef(!1),T=t.useRef(null);Me(T,!h,()=>{});const D=async()=>{if(!x.current){x.current=!0,p(!0),g(!0);try{await $e(n.id),l()}catch(k){v(k instanceof Error?k.message:String(k))}finally{x.current=!1,p(!1),g(!1)}}};t.useEffect(()=>{if(h)return;T.current?.focus();const k=E=>{if(E.stopPropagation(),E.key==="Escape"&&E.preventDefault(),E.key!=="Tab")return;const N=Array.from(T.current?.querySelectorAll("button:not(:disabled)")??[]),M=N[0],I=N.at(-1);E.shiftKey&&(document.activeElement===M||document.activeElement===T.current)?(E.preventDefault(),I?.focus()):!E.shiftKey&&document.activeElement===I&&(E.preventDefault(),M?.focus())};return document.addEventListener("keydown",k,!0),()=>document.removeEventListener("keydown",k,!0)},[h]);const _=async(k,E)=>{if(x.current)return;const N=Ke(E);x.current=!0,p(!0),w(k!==void 0),o(!1),v(null);try{const M=await Ge(n.id,k);if(k===void 0&&(!N()||await c(M.path,E)===!1))throw new Error(a("android.captureUnavailable"));l()}catch(M){v(M instanceof Error?M.message:String(M))}finally{x.current=!1,p(!1)}};return h?s.jsx(Ce,{open:!0,initialPath:i||"/",title:a("android.recordingSave"),onCancel:()=>o(!1),onConfirm:k=>{_(k)}}):je.createPortal(s.jsx("div",{className:"fixed inset-0 z-modal-panel flex items-center justify-center bg-[var(--app-backdrop)] p-4",children:s.jsxs("div",{ref:T,role:"dialog","aria-modal":"true","aria-labelledby":"recording-save-title",tabIndex:-1,"aria-busy":f,className:"w-full max-w-sm rounded-xl border border-border bg-surface p-4 text-foreground shadow-xl outline-none",children:[s.jsx("h2",{id:"recording-save-title",className:"text-sm font-semibold",children:a("android.recordingConfirm")}),s.jsx("p",{className:"mt-2 text-xs text-muted-foreground",children:a("android.recordingSaveHint")}),s.jsxs("p",{className:"mt-2 break-all text-xs text-muted-foreground",children:[n.name," · ",(n.size/1024/1024).toFixed(1)," MB"]}),(R||n.error)&&s.jsx("p",{role:"alert",className:"mt-3 break-words text-xs text-destructive",children:R||n.error}),f&&s.jsxs("p",{role:"status",className:"mt-3 flex items-center gap-2 text-sm text-primary",children:[s.jsx(He,{size:16,className:"animate-spin"}),j?`${a("android.recordingDiscard")}…`:a(m?"android.recordingSaving":"android.captureInserting")]}),s.jsxs("div",{className:"mt-4 flex flex-col gap-2",children:[s.jsx("button",{type:"button",disabled:f||n.status!=="ready",onClick:k=>{_(void 0,k.currentTarget)},className:"min-h-10 rounded-lg bg-primary px-3 text-sm text-primary-foreground disabled:opacity-40",children:a("android.recordingInsert")}),!b&&s.jsx("button",{type:"button",disabled:f||n.status!=="ready",onClick:()=>o(!0),className:"min-h-10 rounded-lg bg-surface-2 px-3 text-sm disabled:opacity-40",children:a("android.recordingSave")}),s.jsx("button",{type:"button",disabled:f,onClick:()=>{D()},className:"min-h-10 rounded-lg px-3 text-sm text-muted-foreground disabled:opacity-40",children:a("android.recordingDiscard")})]})]})}),document.body)}export{Ce as D,yt as F,st as H,jt as R,St as S,wt as U,Mt as a,xt as u};
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ModelPreview-CsZry3Wd.js","assets/app-CovJYQoW.js","assets/react-XDCjal2T.js","assets/dnd-BCFAPC0L.js","assets/terminal-DaiFCKy_.js","assets/index-DEAMSl55.css","assets/search-CbpNLSpd.js","assets/sun-CMXn_ntS.js","assets/list-tree-48dzbuUh.js","assets/AndroidMirrorView-BGagwKtL.js","assets/v4-EwEgHOG0.js","assets/RecordingSaveDialog-CoRGi97z.js","assets/use-gesture-react.esm-DHU0wi7Q.js","assets/gestureArbiter-DszagC-d.js","assets/unplug-CnZtWzVW.js","assets/circle-xgKDXpwG.js","assets/quote-B5GeKEq1.js","assets/swiper-CTPycjLq.js","assets/swiper-C2J0D0kV.css","assets/Markdown-C8OP1j-g.js","assets/referenceSelection-fvfRDbgp.js","assets/Markdown-DKQhs57e.css","assets/GitLoadingSkeleton-DKRTc5sz.js","assets/DiffReview-YOPDWqhv.js","assets/DiffViewer-mh9cBl5v.js","assets/git-compare-BmKAtQTt.js","assets/DiffViewer-T3uj2-aP.css","assets/triangle-alert-DgGU_xB4.js","assets/ChangeWalkthroughPanel-6DN-2BdR.js","assets/chevron-left-CxeWIsDK.js","assets/maximize-2-CbvSsu7O.js","assets/arrow-down-WyzmLXwQ.js","assets/ArchitecturePanel-Bd_l74EC.js","assets/link-34ChBc4F.js","assets/purify.es-4eNOHKSq.js","assets/ArchitecturePanel-B_BDrrfR.css","assets/ComputerControlView-CwB-wQqB.js","assets/clipboard-DeK6pJD3.js"])))=>i.map(i=>d[i]);
2
- import{a$ as Jr,cq as t,ez as Bt,p as ho,cf as th,cG as Jd,d5 as rh,ew as nh,x as ct,t as Qd,F as sh,h as ps,a8 as Qt,eK as B,Y as aa,eR as Et,cU as dt,c as po,bR as Zd,w as ed,C as mo,g as oa,a2 as co,eq as ta,er as Gi,a3 as td,dg as eu,L as go,R as Wi,c8 as ah,aw as Vs,bl as oh,ey as ih,eC as tu,ch as lh,cj as ch,ck as dh,cl as uh,ci as Ys,bB as fh,E as hh,z as ph,cc as mh,cW as gh,cZ as bh,c_ as xh,c2 as yh,cX as rd,av as wt,ao as ru,aq as vh,r as Ki,m as wh,n as kh,o as Sh,y as Ri,ap as Rh,eu as ji,c1 as nd,bv as sd,br as jh,bF as Ci,bG as ad,eS as na,bh as cs,bH as Ch,cI as Nh,ea as od,by as Ph,eo as Eh,ax as Ni,dv as Ah,eL as Yr,dk as Mn,ar as Th,as as id,bK as Mh,aG as ld,aF as Lh,bs as cd,bx as Ih,bD as dd,dy as $h,ah as ud,l as fd,N as Pi,K as ro,b as Fh,H as hd,X as pd,v as Dh,s as md,at as _h,a9 as sl,dm as Bh,cN as Uh,eP as Oh,cA as Hh,O as zh}from"./app-CovJYQoW.js";import{u as vo,S as Gh,a as gd}from"./swiper-CTPycjLq.js";import{M as Wh,u as Kh,j as Ei,Z as qh,F as Vh,b as Yh,_ as Xh,c as Jh,d as Qh,e as Zh,g as ep,f as tp,h as rp,r as np,s as sp}from"./Markdown-C8OP1j-g.js";import{b as n,r as Qr}from"./dnd-BCFAPC0L.js";import{b as ap,a as op,P as ip,d as lp,c as cp,N as bd,S as dp,C as up,G as fp,A as hp}from"./GitLoadingSkeleton-DKRTc5sz.js";import{u as pp,F as nu,H as mp,S as gp,U as bp}from"./RecordingSaveDialog-CoRGi97z.js";import{D as qi,C as sa,f as xp,n as yp}from"./DiffReview-YOPDWqhv.js";import{T as vp,G as xr}from"./triangle-alert-DgGU_xB4.js";import{C as su,M as au}from"./ChangeWalkthroughPanel-6DN-2BdR.js";import{R as ou,S as xd,V as wp,d as kp,M as Sp,A as Ai,u as Rp,f as jp,i as yd,b as Cp}from"./AndroidMirrorView-BGagwKtL.js";import{u as Np}from"./DiffViewer-mh9cBl5v.js";import{r as Pp,s as Ep,l as Ap,a as vd,g as Vi,b as Tp,h as Mp}from"./referenceSelection-fvfRDbgp.js";import{a as wd,S as kd}from"./gestureArbiter-DszagC-d.js";import{M as iu}from"./maximize-2-CbvSsu7O.js";import{L as Lp}from"./list-tree-48dzbuUh.js";import{S as ms}from"./search-CbpNLSpd.js";import{A as Ip}from"./use-gesture-react.esm-DHU0wi7Q.js";import{A as $p}from"./arrow-down-WyzmLXwQ.js";import{G as lu}from"./git-compare-BmKAtQTt.js";const Fp=[["path",{d:"m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16",key:"d5nyq2"}],["path",{d:"M22 9v7",key:"pvm9v3"}],["path",{d:"M3.304 13h6.392",key:"1q3zxz"}],["circle",{cx:"18.5",cy:"12.5",r:"3.5",key:"z97x68"}]],Dp=Jr("case-sensitive",Fp);const _p=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],Bp=Jr("eye-off",_p);const Up=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Yi=Jr("eye",Up);const Op=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],Hp=Jr("funnel",Op);const zp=[["path",{d:"M16 5h6",key:"1vod17"}],["path",{d:"M19 2v6",key:"4bpg5p"}],["path",{d:"M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5",key:"1ue2ih"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}]],Gp=Jr("image-plus",zp);const Wp=[["path",{d:"M17 3v10",key:"15fgeh"}],["path",{d:"m12.67 5.5 8.66 5",key:"1gpheq"}],["path",{d:"m12.67 10.5 8.66-5",key:"1dkfa6"}],["path",{d:"M9 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2z",key:"swwfx4"}]],Kp=Jr("regex",Wp);const qp=[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]],Vp=Jr("scan",qp);const Yp=[["circle",{cx:"7",cy:"12",r:"3",key:"12clwm"}],["path",{d:"M10 9v6",key:"17i7lo"}],["circle",{cx:"17",cy:"12",r:"3",key:"gl7c2s"}],["path",{d:"M14 7v8",key:"dl84cr"}],["path",{d:"M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1",key:"lt2kga"}]],Xp=Jr("whole-word",Yp);function cu({embedded:r=!1,referenceLines:a=!0,content:i,filePath:c,rootPath:f,onLocalLinkOpen:m,lineRange:p,onLineRangeClick:S,onLineRangeDrag:g,scrollTop:x,outlineOpen:w,outlineCloseSignal:k,onOutlineOpen:b,onOutlineClose:E,lightboxOpen:P,lightboxCloseSignal:M,onLightboxOpen:$,onLightboxClose:J}){return t.jsx(Wh,{content:i,variant:r?"prose":"document",filePath:c,rootPath:f,onLocalLinkOpen:m,fileControls:a?{lineRange:p,onLineRangeClick:S,onLineRangeDrag:g,scrollTop:x,outlineOpen:w,outlineCloseSignal:k,onOutlineOpen:b,onOutlineClose:E}:void 0,lightbox:P===void 0?void 0:{open:P,closeSignal:M,onOpen:$,onClose:J}})}function Sd({children:r,actions:a}){const{t:i}=Bt(),[c,f]=n.useState(!1),m=n.useId(),p=n.useRef(null),S=n.useRef(null),g=()=>{f(!1),p.current?.focus({preventScroll:!0})};return n.useLayoutEffect(()=>{if(!c)return;const x=p.current,w=S.current;if(!x||!w)return;const k=window.visualViewport,b=()=>{const P=x.getBoundingClientRect(),M=(k?.offsetLeft??0)+8,$=(k?.offsetTop??0)+8,J=Math.max(0,(k?.width??window.innerWidth)-16),N=$+(k?.height??window.innerHeight)-16,O=Math.min(240,J),K=Math.max(0,P.top-$-6),X=Math.max(0,N-P.bottom-6),xe=w.scrollHeight>X&&K>X;Object.assign(w.style,{width:`${O}px`,left:`${Math.max(M,Math.min(P.right-O,M+J-O))}px`,top:`${xe?P.top-6:P.bottom+6}px`,maxHeight:`${xe?K:X}px`,transform:xe?"translateY(-100%)":"none"})};b();const E=typeof ResizeObserver>"u"?null:new ResizeObserver(b);return E?.observe(x),E?.observe(w),window.addEventListener("resize",b),window.addEventListener("scroll",b,!0),k?.addEventListener("resize",b),k?.addEventListener("scroll",b),()=>{E?.disconnect(),window.removeEventListener("resize",b),window.removeEventListener("scroll",b,!0),k?.removeEventListener("resize",b),k?.removeEventListener("scroll",b)}},[c]),n.useEffect(()=>{if(!c)return;S.current?.querySelector("button:not(:disabled)")?.focus({preventScroll:!0});const x=w=>{w.target instanceof Node&&!p.current?.contains(w.target)&&!S.current?.contains(w.target)&&f(!1)};return document.addEventListener("pointerdown",x),()=>document.removeEventListener("pointerdown",x)},[c]),t.jsxs("div",{className:"mt-2",children:[t.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-1.5",children:[r,t.jsxs("button",{ref:p,type:"button","aria-haspopup":"menu","aria-expanded":c,"aria-controls":c?m:void 0,onClick:()=>f(x=>!x),onKeyDown:x=>{(x.key==="ArrowDown"||x.key==="ArrowUp")&&(x.preventDefault(),f(!0))},className:`ml-auto inline-flex h-8 shrink-0 items-center gap-1.5 whitespace-nowrap rounded-md px-2 text-[11px] font-medium transition focus-visible:outline focus-visible:outline-2 focus-visible:outline-primary ${c?"bg-surface-2 text-foreground":"text-muted-foreground hover:bg-surface-2 hover:text-foreground"}`,children:[t.jsx(ho,{size:14}),i("sidebar.moreActions")]})]}),typeof document<"u"&&Qr.createPortal(t.jsx("div",{ref:S,id:m,hidden:!c,role:"menu","data-sidebar-gesture-ignore":!0,"aria-label":i("sidebar.moreActions"),className:"fixed z-menu-panel overflow-y-auto overscroll-contain rounded-lg border border-border/30 bg-surface p-1 shadow-[0_8px_24px_var(--app-shadow-soft)]",onKeyDown:x=>{if(!x.currentTarget.contains(x.target))return;const w=[...x.currentTarget.querySelectorAll("button:not(:disabled)")],k=w.indexOf(document.activeElement);let b;if(x.key==="Escape"){x.preventDefault(),x.stopPropagation(),g();return}if(x.key==="Tab"){g();return}if(x.key==="ArrowDown")b=(k+1)%w.length;else if(x.key==="ArrowUp")b=(k-1+w.length)%w.length;else if(x.key==="Home")b=0;else if(x.key==="End")b=w.length-1;else return;x.preventDefault(),w[b]?.focus({preventScroll:!0})},children:a(g)}),document.body)]})}const Ti="a[href],button,input,select,textarea,[tabindex],[contenteditable],iframe,summary,audio[controls],video[controls]",ds=n.memo(function({active:a,mounted:i=!0,fallback:c=null,children:f}){const m=n.useRef(null);return n.useLayoutEffect(()=>{const p=m.current;if(!p||a)return;const S=new Map,g=k=>{S.has(k)||(S.set(k,k.inert),k.inert=!0)},x=k=>{k instanceof HTMLElement&&k.matches(Ti)&&g(k),k.querySelectorAll(Ti).forEach(g)};x(p);const w=new MutationObserver(k=>{for(const b of k)b.type==="attributes"?b.target instanceof HTMLElement&&b.target.matches(Ti)&&g(b.target):b.addedNodes.forEach(E=>{E instanceof Element&&x(E)})});return w.observe(p,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["tabindex","href","contenteditable","controls"]}),()=>{w.disconnect();for(const[k,b]of S)k.inert=b}},[a,i]),t.jsx("div",{ref:m,className:"absolute inset-0 min-h-0 overflow-hidden bg-surface text-foreground",style:a?void 0:{clipPath:"inset(100%)"},"aria-hidden":!a,children:i?typeof f=="function"?f():f:c})},(r,a)=>!r.active&&!a.active&&r.mounted===a.mounted);async function Jp(r){let a;try{await Promise.race([r(),new Promise(i=>{a=setTimeout(i,3e3)})])}catch{}finally{clearTimeout(a)}}function Qp({active:r,rootPath:a,loading:i,delay:c,lastStartedRoot:f,load:m}){n.useEffect(()=>{if(!r||!a||i||f.current===a)return;const p=window.setTimeout(()=>{f.current=a,m(a)},c);return()=>window.clearTimeout(p)},[r,a,i,c,f,m])}function Zp(r,a,i,c){if(!a||r.defaultPrevented||r.nativeEvent.isComposing||r.altKey||r.ctrlKey||r.metaKey||r.shiftKey||r.key!=="ArrowUp"&&r.key!=="ArrowDown")return;const f=r.target;if(!(f instanceof HTMLElement)||!r.currentTarget.contains(f)||!th(f))return;const m=f.closest('button, a, input, textarea, select, [contenteditable]:not([contenteditable="false"]), [role="button"], [role="textbox"], [role="menu"], [role="listbox"], [role="slider"], [role="dialog"]');if(m&&!m.matches("[data-file-tree-path]")||window.getSelection()?.isCollapsed===!1)return;const p=Array.from(a.querySelectorAll("[data-file-tree-path]")).filter(k=>!k.closest('[hidden], [inert], [aria-hidden="true"]'));if(!p.some(k=>k.dataset.fileTreeType==="file"))return;const S=f.closest("[data-file-tree-path]"),g=p.findIndex(k=>S?k===S:k.dataset.fileTreePath===i),x=r.key==="ArrowDown"?1:-1;let w=g<0?x===1?0:p.length-1:g+x;for(r.preventDefault(),r.stopPropagation();w>=0&&w<p.length;w+=x){const k=p[w];if(k.dataset.fileTreeType==="file"){c(k.dataset.fileTreePath),a.contains(f)&&k.focus({preventScroll:!0}),k.scrollIntoView({block:"nearest",inline:"nearest"});return}}}function em({rootPath:r,paths:a,disabled:i,onChange:c}){const{t:f}=Bt(),m=Jd(r),p=pp(m,m),S=p.path,g=rh(S,m)??"",{result:x,error:w,reload:k}=nh({path:S,showHidden:!0,action:"pick_git_ignore_exception"}),b=!!w,E=!!x,[P,M]=n.useState(!1),$=N=>p.navigate(N?`${m==="/"?"":m}/${N}`:m),J=N=>{if(N.length>200){M(!0);return}M(!1),c(N)};return t.jsxs("div",{className:"flex flex-col gap-3",children:[t.jsxs("div",{className:"overflow-hidden rounded-lg border border-border/30 bg-surface-2",children:[t.jsxs("div",{className:"flex items-center gap-2 border-b border-border/20 p-2",children:[t.jsx(nu,{buttonClassName:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-surface-elevated hover:text-foreground disabled:opacity-30",parent:{disabled:i||!p.canGoParent,onClick:p.goParent},root:{disabled:i||!g,onClick:p.goRoot}}),t.jsx("span",{className:"min-w-0 flex-1 truncate font-mono text-xs",title:S,children:g||"./"})]}),t.jsxs("div",{className:"h-56 overflow-y-auto overscroll-contain p-1",role:"group","aria-label":f("rightSidebar.gitIgnoreExceptionsPaths"),"aria-busy":!E&&!b,children:[b?t.jsxs("div",{className:"flex flex-col items-center gap-2 p-4 text-center text-xs",children:[t.jsx("p",{role:"alert",className:"text-destructive",children:f("rightSidebar.gitIgnoreExceptionsLoadFailed")}),t.jsx("button",{type:"button",disabled:i,onClick:k,className:"rounded-md px-3 py-2 text-primary hover:bg-surface-elevated disabled:opacity-40",children:f("common.retry")})]}):x?x.entries.length===0?t.jsx("p",{className:"p-4 text-center text-xs text-muted-foreground",children:f("rightSidebar.gitIgnoreExceptionsEmptyDirectory")}):x.entries.map(N=>{const O=g?`${g}/${N.name}`:N.name,K=O+(N.type==="directory"?"/":""),X=a.includes(K)||a.includes(O),xe=a.some(o=>o.endsWith("/")&&O.startsWith(o)),F=N.type==="directory"?Qd:sh;return t.jsxs("div",{className:"flex items-center gap-1 rounded-md hover:bg-surface-elevated",children:[t.jsxs("label",{className:"flex min-h-10 min-w-0 flex-1 cursor-pointer items-center gap-2 px-2 text-xs",children:[t.jsx("input",{type:"checkbox",checked:X||xe,disabled:i||xe,onChange:()=>J(X?a.filter(o=>o!==K&&o!==O):[...a,K]),className:"h-4 w-4 shrink-0 accent-[var(--primary)] disabled:opacity-40"}),t.jsx(F,{size:14,className:"shrink-0 text-muted-foreground"}),t.jsx("span",{className:"truncate",title:N.name,children:N.name})]}),N.type==="directory"&&t.jsx("button",{type:"button",disabled:i,onClick:()=>$(O),"aria-label":f("rightSidebar.gitIgnoreExceptionsOpenDirectory",{name:N.name}),className:"inline-flex h-10 w-10 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-surface hover:text-foreground disabled:opacity-40",children:t.jsx(ps,{size:15})})]},N.name)}):t.jsx("div",{className:"flex h-full items-center justify-center",children:t.jsx(ct,{size:18})}),x?.truncated&&t.jsx("p",{className:"px-2 py-3 text-xs text-muted-foreground",children:f("rightSidebar.gitIgnoreExceptionsTruncated")})]})]}),t.jsxs("div",{className:"flex items-center justify-between gap-2 text-xs",children:[t.jsx("span",{className:"font-medium",children:f("rightSidebar.gitIgnoreExceptionsSelected",{count:a.length})}),t.jsx("button",{type:"button",disabled:i||a.length===0,onClick:()=>J([]),className:"rounded-md px-2 py-1 text-muted-foreground hover:bg-surface-2 hover:text-foreground disabled:opacity-40",children:f("rightSidebar.gitIgnoreExceptionsClear")})]}),a.length>0&&t.jsx("ul",{className:"max-h-24 overflow-y-auto overscroll-contain",children:a.map(N=>t.jsxs("li",{className:"flex items-center gap-2 rounded-md pl-2 text-xs hover:bg-surface-2",children:[t.jsx("span",{className:"min-w-0 flex-1 truncate font-mono",title:N,children:N}),t.jsx("button",{type:"button",disabled:i,onClick:()=>J(a.filter(O=>O!==N)),"aria-label":f("rightSidebar.gitIgnoreExceptionsRemove",{path:N}),className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-surface-elevated hover:text-foreground disabled:opacity-40",children:t.jsx(Qt,{size:13})})]},N))}),P&&t.jsx("p",{role:"alert",className:"text-xs text-destructive",children:f("rightSidebar.gitIgnoreExceptionsInvalid")})]})}function tm({rootPath:r,disabled:a,pressed:i,saving:c,onToggle:f}){const{t:m}=Bt(),p=n.useId(),S=n.useRef(null),g=n.useRef(null),x=n.useRef(null),w=n.useRef(null),k=n.useRef(!1),[b,E]=n.useState(!1),[P,M]=n.useState([]),[$,J]=n.useState(!1),[N,O]=n.useState(null),K=B(W=>W.setGitIgnoreExceptions),X=()=>{x.current!==null&&clearTimeout(x.current),x.current=null,w.current=null},xe=()=>{X(),!(a||$||!r)&&(M([...B.getState().gitIgnoreExceptions[r]??[]]),O(null),E(!0))},F=()=>{$||E(!1)},o=W=>{X(),k.current=!1,!(W.button!==0||!W.isPrimary||a)&&(W.currentTarget.setPointerCapture(W.pointerId),w.current={x:W.clientX,y:W.clientY},x.current=setTimeout(()=>{k.current=!0,xe()},450))};n.useEffect(()=>(E(!1),X(),X),[r]),n.useEffect(()=>{if(b)return g.current?.focus(),()=>S.current?.focus()},[b]);const fe=m(i?"rightSidebar.showGitIgnoredFiles":"rightSidebar.hideGitIgnoredFiles");return t.jsxs(t.Fragment,{children:[t.jsx("button",{ref:S,type:"button",disabled:a||$,"aria-pressed":i,"aria-label":fe,"aria-description":m("rightSidebar.gitIgnoreConfigureHint"),title:`${fe} · ${m("rightSidebar.gitIgnoreConfigureHint")}`,onClick:W=>{if(k.current&&W.detail!==0){k.current=!1,W.preventDefault();return}f()},onContextMenu:W=>{W.preventDefault(),k.current=!0,b||xe()},onPointerDown:o,onPointerMove:W=>{const ge=w.current;ge&&Math.hypot(W.clientX-ge.x,W.clientY-ge.y)>10&&X()},onPointerUp:X,onPointerCancel:X,onLostPointerCapture:X,className:`inline-flex h-7 w-7 shrink-0 select-none items-center justify-center rounded-md transition active:scale-95 disabled:cursor-not-allowed disabled:opacity-35 [-webkit-touch-callout:none] ${i?"bg-surface-2 text-primary hover:bg-surface-elevated":"text-muted-foreground hover:bg-surface-2 hover:text-foreground"}`,children:c?t.jsx(ct,{size:14}):t.jsx(Hp,{size:14})}),b&&Qr.createPortal(t.jsx("div",{className:"fixed inset-0 z-modal-backdrop flex items-center justify-center bg-[var(--app-backdrop)] p-3 backdrop-blur-sm",onClick:F,children:t.jsxs("form",{ref:g,role:"dialog",tabIndex:-1,"aria-modal":"true","aria-labelledby":`${p}-title`,"aria-describedby":`${p}-hint`,className:"relative z-modal-panel flex max-h-[80dvh] w-full max-w-lg flex-col gap-3 overflow-y-auto rounded-xl border border-border/20 bg-surface p-4 text-foreground shadow-2xl",onClick:W=>W.stopPropagation(),onKeyDown:W=>{if(W.key==="Escape"&&(W.preventDefault(),W.stopPropagation(),F()),W.key==="Tab"){const ge=Array.from(g.current?.querySelectorAll("button:not(:disabled), input:not(:disabled)")??[]);if(!ge.length){W.preventDefault(),g.current?.focus();return}const H=ge[0],ce=ge[ge.length-1];W.shiftKey&&document.activeElement===H&&(W.preventDefault(),ce?.focus()),document.activeElement===g.current?(W.preventDefault(),(W.shiftKey?ce:H)?.focus()):!W.shiftKey&&document.activeElement===ce&&(W.preventDefault(),H?.focus())}},onSubmit:W=>{if(W.preventDefault(),!(!r||$)){if(P.length>200){O(m("rightSidebar.gitIgnoreExceptionsInvalid"));return}J(!0),O(null),K(r,P).then(()=>E(!1)).catch(()=>O(m("rightSidebar.gitIgnoreExceptionsSaveFailed"))).finally(()=>J(!1))}},children:[t.jsxs("div",{className:"flex items-center justify-between gap-3",children:[t.jsx("h2",{id:`${p}-title`,className:"text-sm font-medium",children:m("rightSidebar.gitIgnoreExceptionsTitle")}),t.jsx("button",{type:"button",disabled:$,onClick:F,"aria-label":m("common.close"),className:"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-surface-2 hover:text-foreground disabled:opacity-40",children:t.jsx(Qt,{size:16})})]}),t.jsx("p",{className:"truncate text-xs text-muted-foreground",title:r??void 0,children:r}),t.jsx("p",{id:`${p}-hint`,className:"text-xs leading-relaxed text-muted-foreground",children:m("rightSidebar.gitIgnoreExceptionsHint")}),t.jsx("p",{className:"text-xs font-medium",children:m("rightSidebar.gitIgnoreExceptionsPaths")}),r&&t.jsx(em,{rootPath:r,paths:P,onChange:M,disabled:$}),N&&t.jsx("p",{role:"alert",className:"text-xs text-destructive",children:N}),t.jsxs("div",{className:"flex justify-end gap-2",children:[t.jsx("button",{type:"button",disabled:$,onClick:F,className:"rounded-lg px-3 py-2 text-xs text-muted-foreground hover:bg-surface-2 disabled:opacity-40",children:m("common.cancel")}),t.jsxs("button",{type:"submit",disabled:$,className:"inline-flex items-center gap-2 rounded-lg bg-primary px-3 py-2 text-xs font-medium text-primary-foreground disabled:opacity-50",children:[$&&t.jsx(ct,{size:13}),m("common.save")]})]})]})}),document.body)]})}function rm(r,a,i){try{const c=r instanceof HTMLImageElement?r.naturalWidth:r.width,f=r instanceof HTMLImageElement?r.naturalHeight:r.height;if(!c||!f)return Promise.resolve(null);const m=r instanceof HTMLImageElement?1400/Math.max(c,f):Math.min(1,1400/Math.max(c,f)),p=document.createElement("canvas");p.width=Math.max(1,Math.round(c*m)),p.height=Math.max(1,Math.round(f*m));const S=p.getContext("2d");if(!S)return Promise.resolve(null);const g=getComputedStyle(document.documentElement);if(S.fillStyle=g.getPropertyValue("--surface").trim()||"white",S.fillRect(0,0,p.width,p.height),S.drawImage(r,0,0,p.width,p.height),i){const x=Math.max(10,Math.min(16,p.width/35));S.font=`${x}px sans-serif`;const w=[];let k="";for(const b of i.split(" "))k&&S.measureText(`${k} ${b}`).width>p.width-20?(w.push(k),k=b):k=k?`${k} ${b}`:b;k&&w.push(k),S.fillStyle=g.getPropertyValue("--surface").trim()||"white",S.fillRect(0,0,p.width,w.length*(x+4)+12),S.fillStyle=g.getPropertyValue("--foreground").trim()||"black",w.forEach((b,E)=>S.fillText(b,10,8+x+E*(x+4)))}if(a){const x=a.xPercent*p.width/100,w=a.yPercent*p.height/100,k=Math.max(4,Math.min(12,Math.min(p.width,p.height)*.015)),b=k*1.6;S.strokeStyle=g.getPropertyValue("--primary").trim()||"black",S.lineWidth=Math.max(1,k/3),S.beginPath(),S.arc(x,w,k,0,Math.PI*2),S.stroke(),S.beginPath(),S.moveTo(x-b,w),S.lineTo(x+b,w),S.moveTo(x,w-b),S.lineTo(x,w+b),S.stroke()}return new Promise(x=>p.toBlob(x,"image/png"))}catch{return Promise.resolve(null)}}function nm(r,a,i,c){return[r.trim(),a.trim(),c?`截图:${c}`:""].filter(Boolean).join(`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ModelPreview-DuwBl4st.js","assets/app-DZ6mCJiW.js","assets/react-XDCjal2T.js","assets/dnd-BCFAPC0L.js","assets/terminal-DaiFCKy_.js","assets/index-DEAMSl55.css","assets/search-DAQ_AOVP.js","assets/sun-DvwMJkda.js","assets/list-tree-DxdLnXUB.js","assets/AndroidMirrorView-COoPljXi.js","assets/v4-EwEgHOG0.js","assets/RecordingSaveDialog-Czkjuaeu.js","assets/use-gesture-react.esm-CM42s15B.js","assets/gestureArbiter-DszagC-d.js","assets/unplug-BQxOculv.js","assets/circle-BIJQEbCa.js","assets/quote-B9G-yF_k.js","assets/swiper-BaumVgFd.js","assets/swiper-C2J0D0kV.css","assets/Markdown-Ip0FYCJ1.js","assets/referenceSelection-0uCpJjt2.js","assets/Markdown-DKQhs57e.css","assets/GitLoadingSkeleton-RRbTeMuA.js","assets/DiffReview-DHi_V-SX.js","assets/DiffViewer-CyDc8WOB.js","assets/git-compare-KkbucDhN.js","assets/DiffViewer-T3uj2-aP.css","assets/triangle-alert-D-tt7pA2.js","assets/ChangeWalkthroughPanel-ZGMybE0m.js","assets/chevron-left-CVjGQZf0.js","assets/maximize-2-Clx4ktqB.js","assets/arrow-down-Ty3zwcgl.js","assets/ArchitecturePanel-B51eVL3I.js","assets/link-DWUQqMDL.js","assets/purify.es-4eNOHKSq.js","assets/ArchitecturePanel-B_BDrrfR.css","assets/ComputerControlView-CnaeZBuh.js","assets/clipboard-DV8t7tww.js"])))=>i.map(i=>d[i]);
2
+ import{a$ as Jr,cq as t,ez as Bt,p as ho,cf as th,cG as Jd,d5 as rh,ew as nh,x as ct,t as Qd,F as sh,h as ps,a8 as Qt,eK as B,Y as aa,eR as Et,cU as dt,c as po,bR as Zd,w as ed,C as mo,g as oa,a2 as co,eq as ta,er as Gi,a3 as td,dg as eu,L as go,R as Wi,c8 as ah,aw as Vs,bl as oh,ey as ih,eC as tu,ch as lh,cj as ch,ck as dh,cl as uh,ci as Ys,bB as fh,E as hh,z as ph,cc as mh,cW as gh,cZ as bh,c_ as xh,c2 as yh,cX as rd,av as wt,ao as ru,aq as vh,r as Ki,m as wh,n as kh,o as Sh,y as Ri,ap as Rh,eu as ji,c1 as nd,bv as sd,br as jh,bF as Ci,bG as ad,eS as na,bh as cs,bH as Ch,cI as Nh,ea as od,by as Ph,eo as Eh,ax as Ni,dv as Ah,eL as Yr,dk as Mn,ar as Th,as as id,bK as Mh,aG as ld,aF as Lh,bs as cd,bx as Ih,bD as dd,dy as $h,ah as ud,l as fd,N as Pi,K as ro,b as Fh,H as hd,X as pd,v as Dh,s as md,at as _h,a9 as sl,dm as Bh,cN as Uh,eP as Oh,cA as Hh,O as zh}from"./app-DZ6mCJiW.js";import{u as vo,S as Gh,a as gd}from"./swiper-BaumVgFd.js";import{M as Wh,u as Kh,j as Ei,Z as qh,F as Vh,b as Yh,_ as Xh,c as Jh,d as Qh,e as Zh,g as ep,f as tp,h as rp,r as np,s as sp}from"./Markdown-Ip0FYCJ1.js";import{b as n,r as Qr}from"./dnd-BCFAPC0L.js";import{b as ap,a as op,P as ip,d as lp,c as cp,N as bd,S as dp,C as up,G as fp,A as hp}from"./GitLoadingSkeleton-RRbTeMuA.js";import{u as pp,F as nu,H as mp,S as gp,U as bp}from"./RecordingSaveDialog-Czkjuaeu.js";import{D as qi,C as sa,f as xp,n as yp}from"./DiffReview-DHi_V-SX.js";import{T as vp,G as xr}from"./triangle-alert-D-tt7pA2.js";import{C as su,M as au}from"./ChangeWalkthroughPanel-ZGMybE0m.js";import{R as ou,S as xd,V as wp,d as kp,M as Sp,A as Ai,u as Rp,f as jp,i as yd,b as Cp}from"./AndroidMirrorView-COoPljXi.js";import{u as Np}from"./DiffViewer-CyDc8WOB.js";import{r as Pp,s as Ep,l as Ap,a as vd,g as Vi,b as Tp,h as Mp}from"./referenceSelection-0uCpJjt2.js";import{a as wd,S as kd}from"./gestureArbiter-DszagC-d.js";import{M as iu}from"./maximize-2-Clx4ktqB.js";import{L as Lp}from"./list-tree-DxdLnXUB.js";import{S as ms}from"./search-DAQ_AOVP.js";import{A as Ip}from"./use-gesture-react.esm-CM42s15B.js";import{A as $p}from"./arrow-down-Ty3zwcgl.js";import{G as lu}from"./git-compare-KkbucDhN.js";const Fp=[["path",{d:"m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16",key:"d5nyq2"}],["path",{d:"M22 9v7",key:"pvm9v3"}],["path",{d:"M3.304 13h6.392",key:"1q3zxz"}],["circle",{cx:"18.5",cy:"12.5",r:"3.5",key:"z97x68"}]],Dp=Jr("case-sensitive",Fp);const _p=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],Bp=Jr("eye-off",_p);const Up=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Yi=Jr("eye",Up);const Op=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],Hp=Jr("funnel",Op);const zp=[["path",{d:"M16 5h6",key:"1vod17"}],["path",{d:"M19 2v6",key:"4bpg5p"}],["path",{d:"M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5",key:"1ue2ih"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}]],Gp=Jr("image-plus",zp);const Wp=[["path",{d:"M17 3v10",key:"15fgeh"}],["path",{d:"m12.67 5.5 8.66 5",key:"1gpheq"}],["path",{d:"m12.67 10.5 8.66-5",key:"1dkfa6"}],["path",{d:"M9 17a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-2z",key:"swwfx4"}]],Kp=Jr("regex",Wp);const qp=[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]],Vp=Jr("scan",qp);const Yp=[["circle",{cx:"7",cy:"12",r:"3",key:"12clwm"}],["path",{d:"M10 9v6",key:"17i7lo"}],["circle",{cx:"17",cy:"12",r:"3",key:"gl7c2s"}],["path",{d:"M14 7v8",key:"dl84cr"}],["path",{d:"M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1",key:"lt2kga"}]],Xp=Jr("whole-word",Yp);function cu({embedded:r=!1,referenceLines:a=!0,content:i,filePath:c,rootPath:f,onLocalLinkOpen:m,lineRange:p,onLineRangeClick:S,onLineRangeDrag:g,scrollTop:x,outlineOpen:w,outlineCloseSignal:k,onOutlineOpen:b,onOutlineClose:E,lightboxOpen:P,lightboxCloseSignal:M,onLightboxOpen:$,onLightboxClose:J}){return t.jsx(Wh,{content:i,variant:r?"prose":"document",filePath:c,rootPath:f,onLocalLinkOpen:m,fileControls:a?{lineRange:p,onLineRangeClick:S,onLineRangeDrag:g,scrollTop:x,outlineOpen:w,outlineCloseSignal:k,onOutlineOpen:b,onOutlineClose:E}:void 0,lightbox:P===void 0?void 0:{open:P,closeSignal:M,onOpen:$,onClose:J}})}function Sd({children:r,actions:a}){const{t:i}=Bt(),[c,f]=n.useState(!1),m=n.useId(),p=n.useRef(null),S=n.useRef(null),g=()=>{f(!1),p.current?.focus({preventScroll:!0})};return n.useLayoutEffect(()=>{if(!c)return;const x=p.current,w=S.current;if(!x||!w)return;const k=window.visualViewport,b=()=>{const P=x.getBoundingClientRect(),M=(k?.offsetLeft??0)+8,$=(k?.offsetTop??0)+8,J=Math.max(0,(k?.width??window.innerWidth)-16),N=$+(k?.height??window.innerHeight)-16,O=Math.min(240,J),K=Math.max(0,P.top-$-6),X=Math.max(0,N-P.bottom-6),xe=w.scrollHeight>X&&K>X;Object.assign(w.style,{width:`${O}px`,left:`${Math.max(M,Math.min(P.right-O,M+J-O))}px`,top:`${xe?P.top-6:P.bottom+6}px`,maxHeight:`${xe?K:X}px`,transform:xe?"translateY(-100%)":"none"})};b();const E=typeof ResizeObserver>"u"?null:new ResizeObserver(b);return E?.observe(x),E?.observe(w),window.addEventListener("resize",b),window.addEventListener("scroll",b,!0),k?.addEventListener("resize",b),k?.addEventListener("scroll",b),()=>{E?.disconnect(),window.removeEventListener("resize",b),window.removeEventListener("scroll",b,!0),k?.removeEventListener("resize",b),k?.removeEventListener("scroll",b)}},[c]),n.useEffect(()=>{if(!c)return;S.current?.querySelector("button:not(:disabled)")?.focus({preventScroll:!0});const x=w=>{w.target instanceof Node&&!p.current?.contains(w.target)&&!S.current?.contains(w.target)&&f(!1)};return document.addEventListener("pointerdown",x),()=>document.removeEventListener("pointerdown",x)},[c]),t.jsxs("div",{className:"mt-2",children:[t.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-1.5",children:[r,t.jsxs("button",{ref:p,type:"button","aria-haspopup":"menu","aria-expanded":c,"aria-controls":c?m:void 0,onClick:()=>f(x=>!x),onKeyDown:x=>{(x.key==="ArrowDown"||x.key==="ArrowUp")&&(x.preventDefault(),f(!0))},className:`ml-auto inline-flex h-8 shrink-0 items-center gap-1.5 whitespace-nowrap rounded-md px-2 text-[11px] font-medium transition focus-visible:outline focus-visible:outline-2 focus-visible:outline-primary ${c?"bg-surface-2 text-foreground":"text-muted-foreground hover:bg-surface-2 hover:text-foreground"}`,children:[t.jsx(ho,{size:14}),i("sidebar.moreActions")]})]}),typeof document<"u"&&Qr.createPortal(t.jsx("div",{ref:S,id:m,hidden:!c,role:"menu","data-sidebar-gesture-ignore":!0,"aria-label":i("sidebar.moreActions"),className:"fixed z-menu-panel overflow-y-auto overscroll-contain rounded-lg border border-border/30 bg-surface p-1 shadow-[0_8px_24px_var(--app-shadow-soft)]",onKeyDown:x=>{if(!x.currentTarget.contains(x.target))return;const w=[...x.currentTarget.querySelectorAll("button:not(:disabled)")],k=w.indexOf(document.activeElement);let b;if(x.key==="Escape"){x.preventDefault(),x.stopPropagation(),g();return}if(x.key==="Tab"){g();return}if(x.key==="ArrowDown")b=(k+1)%w.length;else if(x.key==="ArrowUp")b=(k-1+w.length)%w.length;else if(x.key==="Home")b=0;else if(x.key==="End")b=w.length-1;else return;x.preventDefault(),w[b]?.focus({preventScroll:!0})},children:a(g)}),document.body)]})}const Ti="a[href],button,input,select,textarea,[tabindex],[contenteditable],iframe,summary,audio[controls],video[controls]",ds=n.memo(function({active:a,mounted:i=!0,fallback:c=null,children:f}){const m=n.useRef(null);return n.useLayoutEffect(()=>{const p=m.current;if(!p||a)return;const S=new Map,g=k=>{S.has(k)||(S.set(k,k.inert),k.inert=!0)},x=k=>{k instanceof HTMLElement&&k.matches(Ti)&&g(k),k.querySelectorAll(Ti).forEach(g)};x(p);const w=new MutationObserver(k=>{for(const b of k)b.type==="attributes"?b.target instanceof HTMLElement&&b.target.matches(Ti)&&g(b.target):b.addedNodes.forEach(E=>{E instanceof Element&&x(E)})});return w.observe(p,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["tabindex","href","contenteditable","controls"]}),()=>{w.disconnect();for(const[k,b]of S)k.inert=b}},[a,i]),t.jsx("div",{ref:m,className:"absolute inset-0 min-h-0 overflow-hidden bg-surface text-foreground",style:a?void 0:{clipPath:"inset(100%)"},"aria-hidden":!a,children:i?typeof f=="function"?f():f:c})},(r,a)=>!r.active&&!a.active&&r.mounted===a.mounted);async function Jp(r){let a;try{await Promise.race([r(),new Promise(i=>{a=setTimeout(i,3e3)})])}catch{}finally{clearTimeout(a)}}function Qp({active:r,rootPath:a,loading:i,delay:c,lastStartedRoot:f,load:m}){n.useEffect(()=>{if(!r||!a||i||f.current===a)return;const p=window.setTimeout(()=>{f.current=a,m(a)},c);return()=>window.clearTimeout(p)},[r,a,i,c,f,m])}function Zp(r,a,i,c){if(!a||r.defaultPrevented||r.nativeEvent.isComposing||r.altKey||r.ctrlKey||r.metaKey||r.shiftKey||r.key!=="ArrowUp"&&r.key!=="ArrowDown")return;const f=r.target;if(!(f instanceof HTMLElement)||!r.currentTarget.contains(f)||!th(f))return;const m=f.closest('button, a, input, textarea, select, [contenteditable]:not([contenteditable="false"]), [role="button"], [role="textbox"], [role="menu"], [role="listbox"], [role="slider"], [role="dialog"]');if(m&&!m.matches("[data-file-tree-path]")||window.getSelection()?.isCollapsed===!1)return;const p=Array.from(a.querySelectorAll("[data-file-tree-path]")).filter(k=>!k.closest('[hidden], [inert], [aria-hidden="true"]'));if(!p.some(k=>k.dataset.fileTreeType==="file"))return;const S=f.closest("[data-file-tree-path]"),g=p.findIndex(k=>S?k===S:k.dataset.fileTreePath===i),x=r.key==="ArrowDown"?1:-1;let w=g<0?x===1?0:p.length-1:g+x;for(r.preventDefault(),r.stopPropagation();w>=0&&w<p.length;w+=x){const k=p[w];if(k.dataset.fileTreeType==="file"){c(k.dataset.fileTreePath),a.contains(f)&&k.focus({preventScroll:!0}),k.scrollIntoView({block:"nearest",inline:"nearest"});return}}}function em({rootPath:r,paths:a,disabled:i,onChange:c}){const{t:f}=Bt(),m=Jd(r),p=pp(m,m),S=p.path,g=rh(S,m)??"",{result:x,error:w,reload:k}=nh({path:S,showHidden:!0,action:"pick_git_ignore_exception"}),b=!!w,E=!!x,[P,M]=n.useState(!1),$=N=>p.navigate(N?`${m==="/"?"":m}/${N}`:m),J=N=>{if(N.length>200){M(!0);return}M(!1),c(N)};return t.jsxs("div",{className:"flex flex-col gap-3",children:[t.jsxs("div",{className:"overflow-hidden rounded-lg border border-border/30 bg-surface-2",children:[t.jsxs("div",{className:"flex items-center gap-2 border-b border-border/20 p-2",children:[t.jsx(nu,{buttonClassName:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-surface-elevated hover:text-foreground disabled:opacity-30",parent:{disabled:i||!p.canGoParent,onClick:p.goParent},root:{disabled:i||!g,onClick:p.goRoot}}),t.jsx("span",{className:"min-w-0 flex-1 truncate font-mono text-xs",title:S,children:g||"./"})]}),t.jsxs("div",{className:"h-56 overflow-y-auto overscroll-contain p-1",role:"group","aria-label":f("rightSidebar.gitIgnoreExceptionsPaths"),"aria-busy":!E&&!b,children:[b?t.jsxs("div",{className:"flex flex-col items-center gap-2 p-4 text-center text-xs",children:[t.jsx("p",{role:"alert",className:"text-destructive",children:f("rightSidebar.gitIgnoreExceptionsLoadFailed")}),t.jsx("button",{type:"button",disabled:i,onClick:k,className:"rounded-md px-3 py-2 text-primary hover:bg-surface-elevated disabled:opacity-40",children:f("common.retry")})]}):x?x.entries.length===0?t.jsx("p",{className:"p-4 text-center text-xs text-muted-foreground",children:f("rightSidebar.gitIgnoreExceptionsEmptyDirectory")}):x.entries.map(N=>{const O=g?`${g}/${N.name}`:N.name,K=O+(N.type==="directory"?"/":""),X=a.includes(K)||a.includes(O),xe=a.some(o=>o.endsWith("/")&&O.startsWith(o)),F=N.type==="directory"?Qd:sh;return t.jsxs("div",{className:"flex items-center gap-1 rounded-md hover:bg-surface-elevated",children:[t.jsxs("label",{className:"flex min-h-10 min-w-0 flex-1 cursor-pointer items-center gap-2 px-2 text-xs",children:[t.jsx("input",{type:"checkbox",checked:X||xe,disabled:i||xe,onChange:()=>J(X?a.filter(o=>o!==K&&o!==O):[...a,K]),className:"h-4 w-4 shrink-0 accent-[var(--primary)] disabled:opacity-40"}),t.jsx(F,{size:14,className:"shrink-0 text-muted-foreground"}),t.jsx("span",{className:"truncate",title:N.name,children:N.name})]}),N.type==="directory"&&t.jsx("button",{type:"button",disabled:i,onClick:()=>$(O),"aria-label":f("rightSidebar.gitIgnoreExceptionsOpenDirectory",{name:N.name}),className:"inline-flex h-10 w-10 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-surface hover:text-foreground disabled:opacity-40",children:t.jsx(ps,{size:15})})]},N.name)}):t.jsx("div",{className:"flex h-full items-center justify-center",children:t.jsx(ct,{size:18})}),x?.truncated&&t.jsx("p",{className:"px-2 py-3 text-xs text-muted-foreground",children:f("rightSidebar.gitIgnoreExceptionsTruncated")})]})]}),t.jsxs("div",{className:"flex items-center justify-between gap-2 text-xs",children:[t.jsx("span",{className:"font-medium",children:f("rightSidebar.gitIgnoreExceptionsSelected",{count:a.length})}),t.jsx("button",{type:"button",disabled:i||a.length===0,onClick:()=>J([]),className:"rounded-md px-2 py-1 text-muted-foreground hover:bg-surface-2 hover:text-foreground disabled:opacity-40",children:f("rightSidebar.gitIgnoreExceptionsClear")})]}),a.length>0&&t.jsx("ul",{className:"max-h-24 overflow-y-auto overscroll-contain",children:a.map(N=>t.jsxs("li",{className:"flex items-center gap-2 rounded-md pl-2 text-xs hover:bg-surface-2",children:[t.jsx("span",{className:"min-w-0 flex-1 truncate font-mono",title:N,children:N}),t.jsx("button",{type:"button",disabled:i,onClick:()=>J(a.filter(O=>O!==N)),"aria-label":f("rightSidebar.gitIgnoreExceptionsRemove",{path:N}),className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-surface-elevated hover:text-foreground disabled:opacity-40",children:t.jsx(Qt,{size:13})})]},N))}),P&&t.jsx("p",{role:"alert",className:"text-xs text-destructive",children:f("rightSidebar.gitIgnoreExceptionsInvalid")})]})}function tm({rootPath:r,disabled:a,pressed:i,saving:c,onToggle:f}){const{t:m}=Bt(),p=n.useId(),S=n.useRef(null),g=n.useRef(null),x=n.useRef(null),w=n.useRef(null),k=n.useRef(!1),[b,E]=n.useState(!1),[P,M]=n.useState([]),[$,J]=n.useState(!1),[N,O]=n.useState(null),K=B(W=>W.setGitIgnoreExceptions),X=()=>{x.current!==null&&clearTimeout(x.current),x.current=null,w.current=null},xe=()=>{X(),!(a||$||!r)&&(M([...B.getState().gitIgnoreExceptions[r]??[]]),O(null),E(!0))},F=()=>{$||E(!1)},o=W=>{X(),k.current=!1,!(W.button!==0||!W.isPrimary||a)&&(W.currentTarget.setPointerCapture(W.pointerId),w.current={x:W.clientX,y:W.clientY},x.current=setTimeout(()=>{k.current=!0,xe()},450))};n.useEffect(()=>(E(!1),X(),X),[r]),n.useEffect(()=>{if(b)return g.current?.focus(),()=>S.current?.focus()},[b]);const fe=m(i?"rightSidebar.showGitIgnoredFiles":"rightSidebar.hideGitIgnoredFiles");return t.jsxs(t.Fragment,{children:[t.jsx("button",{ref:S,type:"button",disabled:a||$,"aria-pressed":i,"aria-label":fe,"aria-description":m("rightSidebar.gitIgnoreConfigureHint"),title:`${fe} · ${m("rightSidebar.gitIgnoreConfigureHint")}`,onClick:W=>{if(k.current&&W.detail!==0){k.current=!1,W.preventDefault();return}f()},onContextMenu:W=>{W.preventDefault(),k.current=!0,b||xe()},onPointerDown:o,onPointerMove:W=>{const ge=w.current;ge&&Math.hypot(W.clientX-ge.x,W.clientY-ge.y)>10&&X()},onPointerUp:X,onPointerCancel:X,onLostPointerCapture:X,className:`inline-flex h-7 w-7 shrink-0 select-none items-center justify-center rounded-md transition active:scale-95 disabled:cursor-not-allowed disabled:opacity-35 [-webkit-touch-callout:none] ${i?"bg-surface-2 text-primary hover:bg-surface-elevated":"text-muted-foreground hover:bg-surface-2 hover:text-foreground"}`,children:c?t.jsx(ct,{size:14}):t.jsx(Hp,{size:14})}),b&&Qr.createPortal(t.jsx("div",{className:"fixed inset-0 z-modal-backdrop flex items-center justify-center bg-[var(--app-backdrop)] p-3 backdrop-blur-sm",onClick:F,children:t.jsxs("form",{ref:g,role:"dialog",tabIndex:-1,"aria-modal":"true","aria-labelledby":`${p}-title`,"aria-describedby":`${p}-hint`,className:"relative z-modal-panel flex max-h-[80dvh] w-full max-w-lg flex-col gap-3 overflow-y-auto rounded-xl border border-border/20 bg-surface p-4 text-foreground shadow-2xl",onClick:W=>W.stopPropagation(),onKeyDown:W=>{if(W.key==="Escape"&&(W.preventDefault(),W.stopPropagation(),F()),W.key==="Tab"){const ge=Array.from(g.current?.querySelectorAll("button:not(:disabled), input:not(:disabled)")??[]);if(!ge.length){W.preventDefault(),g.current?.focus();return}const H=ge[0],ce=ge[ge.length-1];W.shiftKey&&document.activeElement===H&&(W.preventDefault(),ce?.focus()),document.activeElement===g.current?(W.preventDefault(),(W.shiftKey?ce:H)?.focus()):!W.shiftKey&&document.activeElement===ce&&(W.preventDefault(),H?.focus())}},onSubmit:W=>{if(W.preventDefault(),!(!r||$)){if(P.length>200){O(m("rightSidebar.gitIgnoreExceptionsInvalid"));return}J(!0),O(null),K(r,P).then(()=>E(!1)).catch(()=>O(m("rightSidebar.gitIgnoreExceptionsSaveFailed"))).finally(()=>J(!1))}},children:[t.jsxs("div",{className:"flex items-center justify-between gap-3",children:[t.jsx("h2",{id:`${p}-title`,className:"text-sm font-medium",children:m("rightSidebar.gitIgnoreExceptionsTitle")}),t.jsx("button",{type:"button",disabled:$,onClick:F,"aria-label":m("common.close"),className:"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-surface-2 hover:text-foreground disabled:opacity-40",children:t.jsx(Qt,{size:16})})]}),t.jsx("p",{className:"truncate text-xs text-muted-foreground",title:r??void 0,children:r}),t.jsx("p",{id:`${p}-hint`,className:"text-xs leading-relaxed text-muted-foreground",children:m("rightSidebar.gitIgnoreExceptionsHint")}),t.jsx("p",{className:"text-xs font-medium",children:m("rightSidebar.gitIgnoreExceptionsPaths")}),r&&t.jsx(em,{rootPath:r,paths:P,onChange:M,disabled:$}),N&&t.jsx("p",{role:"alert",className:"text-xs text-destructive",children:N}),t.jsxs("div",{className:"flex justify-end gap-2",children:[t.jsx("button",{type:"button",disabled:$,onClick:F,className:"rounded-lg px-3 py-2 text-xs text-muted-foreground hover:bg-surface-2 disabled:opacity-40",children:m("common.cancel")}),t.jsxs("button",{type:"submit",disabled:$,className:"inline-flex items-center gap-2 rounded-lg bg-primary px-3 py-2 text-xs font-medium text-primary-foreground disabled:opacity-50",children:[$&&t.jsx(ct,{size:13}),m("common.save")]})]})]})}),document.body)]})}function rm(r,a,i){try{const c=r instanceof HTMLImageElement?r.naturalWidth:r.width,f=r instanceof HTMLImageElement?r.naturalHeight:r.height;if(!c||!f)return Promise.resolve(null);const m=r instanceof HTMLImageElement?1400/Math.max(c,f):Math.min(1,1400/Math.max(c,f)),p=document.createElement("canvas");p.width=Math.max(1,Math.round(c*m)),p.height=Math.max(1,Math.round(f*m));const S=p.getContext("2d");if(!S)return Promise.resolve(null);const g=getComputedStyle(document.documentElement);if(S.fillStyle=g.getPropertyValue("--surface").trim()||"white",S.fillRect(0,0,p.width,p.height),S.drawImage(r,0,0,p.width,p.height),i){const x=Math.max(10,Math.min(16,p.width/35));S.font=`${x}px sans-serif`;const w=[];let k="";for(const b of i.split(" "))k&&S.measureText(`${k} ${b}`).width>p.width-20?(w.push(k),k=b):k=k?`${k} ${b}`:b;k&&w.push(k),S.fillStyle=g.getPropertyValue("--surface").trim()||"white",S.fillRect(0,0,p.width,w.length*(x+4)+12),S.fillStyle=g.getPropertyValue("--foreground").trim()||"black",w.forEach((b,E)=>S.fillText(b,10,8+x+E*(x+4)))}if(a){const x=a.xPercent*p.width/100,w=a.yPercent*p.height/100,k=Math.max(4,Math.min(12,Math.min(p.width,p.height)*.015)),b=k*1.6;S.strokeStyle=g.getPropertyValue("--primary").trim()||"black",S.lineWidth=Math.max(1,k/3),S.beginPath(),S.arc(x,w,k,0,Math.PI*2),S.stroke(),S.beginPath(),S.moveTo(x-b,w),S.lineTo(x+b,w),S.moveTo(x,w-b),S.lineTo(x,w+b),S.stroke()}return new Promise(x=>p.toBlob(x,"image/png"))}catch{return Promise.resolve(null)}}function nm(r,a,i,c){return[r.trim(),a.trim(),c?`截图:${c}`:""].filter(Boolean).join(`
3
3
  `)}function Db(r,a,i){const c=a*Math.PI/360,f=Math.min(c,Math.atan(Math.tan(c)*Math.max(i,.05)));return Math.max(r,1e-6)/Math.sin(f)*1.15}async function sm(r,a,i,c){if(!i?.snapshot)return c.isCurrent()?await c.insert(r,a):!1;const f=new Date().toISOString(),m=new AbortController;let p,S;try{S=await Promise.race([(async()=>{const g=await i.snapshot;if(!(!g||m.signal.aborted||!c.isCurrent()))return c.upload(new File([g],`termdock-review-${crypto.randomUUID()}.png`,{type:"image/png"}),m.signal)})(),new Promise(g=>{p=setTimeout(()=>{m.abort(),g(void 0)},3e3)})])}catch{}finally{clearTimeout(p),m.abort()}return c.isCurrent()?await c.insert(S?nm(r,"",f,S):r,a):!1}function am(r,a){return r===a||a.endsWith(`/${r}`)||r.endsWith(`/${a}`)}function Rd(r,a){return`${r??""}\0${a}`}function om(r,a,i){if(!r||r.length===0||!i)return{explained:0,stale:0};const c=Rd(a,i);let f=0,m=0;for(const p of r){const S=[p.filePath,p.newPath,p.oldPath].filter(x=>typeof x=="string"&&x.length>0);(S.some(x=>Rd(p.repoRoot,x)===c)||S.some(x=>am(x,i)))&&(f+=1)}return{explained:f,stale:m}}function im({status:r}){if(!r)return null;const a=r.stale>0&&r.explained===0;if(!(r.explained>0||r.stale>0))return null;const c=a?"AI audit explanation is stale":"AI audit explanation available";return t.jsx("span",{className:`inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full ${a?"bg-[color:var(--warning)]/15 text-[color:var(--warning)]":"bg-accent/10 text-accent"}`,title:c,"aria-label":c,children:a?t.jsx(vp,{size:10}):t.jsx(aa,{size:10})})}function Xi({changeStatus:r,auditStatus:a,renderChangeBadge:i}){return t.jsxs("span",{className:"inline-flex items-center gap-1",children:[i(r),t.jsx(im,{status:a})]})}const du="termdock:right-sidebar:diff-change-list-mode:v1";function lm(r){return r==="list"||r==="tree"}function cm(){return dt(du,lm)??"tree"}function dm(r){for(const a of r){const i=a.hunk;if(i.oldPath&&i.newPath&&i.oldPath!==i.newPath)return"renamed";if(i.oldPath===null&&i.newPath)return"added";if(i.oldPath&&i.newPath===null)return"deleted"}return"modified"}function um(r){const a=new Map;for(const c of r){const f=a.get(c.hunk.filePath)??{key:c.hunk.filePath,filePath:c.hunk.filePath,items:[],additions:0,deletions:0,explained:0,stale:0,changeType:"modified"};f.items.push(c),f.additions+=c.hunk.additions,f.deletions+=c.hunk.deletions,c.current&&(f.explained+=1),c.stale&&(f.stale+=1),a.set(c.hunk.filePath,f)}const i=Array.from(a.values()).sort((c,f)=>c.filePath.localeCompare(f.filePath));for(const c of i)c.changeType=dm(c.items);return i}function fm(r){const a=r.filePath.split("/").pop()??r.filePath;return{key:r.key,path:r.filePath,displayName:a,displayDir:r.filePath.includes("/")?r.filePath.slice(0,-a.length-1):"",status:r.changeType,title:r.filePath}}function hm(r,a){const i=r.filter(m=>m.trim().length>0);if(i.length<=1)return i[0]??"";const c=[],f=new Set;for(const[m,p]of i.entries()){const S=p.split(`
4
4
  `),g=S.findIndex(k=>k.startsWith("@@ "));if(g<0){c.push(...S);continue}m===0&&c.push(...S.slice(0,g));const x=a[m];let w=g;for(;w>=0&&w<S.length;){const k=S.findIndex((J,N)=>N>w&&J.startsWith("@@ ")),b=k>=0?k:S.length,E=S.slice(w,b),P=E[0]??"",M=x?P===x:!0,$=P||x||E.join(`
5
5
  `);M&&!f.has($)&&(c.push(...E),f.add($)),w=k}}return c.join(`
@@ -1635,7 +1635,7 @@ function installPreviewRuntime(capability, base, externalOrigins, shimUrl) {
1635
1635
  `,ao="/api/terminal/fs/preview/",ng=8*1024*1024,sg=32*1024*1024,ag=128,og="data:,";function Pt(r){throw new Error(r)}function ig(r){return JSON.stringify(r).replace(/</g,"\\u003c")}async function Ed(r,a,i){let c="",f=0;for(const m of r.matchAll(a))c+=r.slice(f,m.index)+await i(m),f=m.index+m[0].length;return c+r.slice(f)}async function mu(r,a){const i=a.origin??location.origin,c=new URL(r,i);(c.origin!==i||!Vs(c.pathname)?.startsWith(ao))&&Pt("预览地址不是有效的本地文件入口");const f=crypto.randomUUID(),m=`https://termdock-preview.invalid/${f}/`,p=[],S=I=>{!p.includes(I)&&p.length<20&&p.push(I)},g=new Set,x=[],w=new Set,k=new Map,b=new Map;let E=0,P=!1;const M=new Set,$=()=>{P=!0;for(const I of[...M])I();g.clear(),x.length=0};async function J(I){I.ok||Pt(`预览资源读取失败(${I.status})`);const te=I.body?.getReader(),re=[];let C=0;try{if(te)for(;;){const ie=await te.read();if(ie.done)break;C+=ie.value.byteLength,E+=ie.value.byteLength,(C>ng||E>sg)&&Pt("预览资源超出大小限制"),re.push(ie.value)}}catch(ie){throw await te?.cancel().catch(()=>{}),ie}finally{te?.releaseLock()}const D=new Uint8Array(C);let z=0;for(const ie of re)D.set(ie,z),z+=ie.length;return{bytes:D,type:I.headers.get("content-type")??"application/octet-stream",status:I.status}}let N=c,O;for(let I=0;I<4;I++){const te=await a.fetch(N.pathname+N.search,{signal:a.signal,redirect:"manual"});if(![301,302,303,307,308].includes(te.status)){O=te;break}const re=te.headers.get("location");await te.body?.cancel(),re||Pt("预览重定向缺少目标");const C=new URL(re,N);(C.origin!==i||!Vs(C.pathname)?.startsWith(ao))&&Pt("预览重定向越出文件范围"),N=C}O||Pt("预览重定向次数过多");const K=Vs(N.pathname),X=K.slice(ao.length).split("/");/^[a-f0-9]{32}$/.test(X[0])||Pt("服务未提供有效的预览资源授权");const xe=Vs(c.pathname).slice(ao.length).split("/");/^[a-f0-9]{32}$/.test(xe[0])&&xe.shift(),xe.join("/").replace(/\/$/,"")!==X.slice(1).join("/").replace(/\/$/,"")&&Pt("预览重定向改变了文件范围");const F=K.endsWith("/")?K:K.slice(0,K.lastIndexOf("/")+1),o=new URL(N.pathname.endsWith("/")?N.pathname:N.pathname.slice(0,N.pathname.lastIndexOf("/")+1),i);function fe(I,te){const re=new URL(I,te);return re.origin!==i?null:(Vs(re.pathname)?.startsWith(F)||Pt("已阻止预览访问目录之外的资源"),re)}function W(I){const te=new URL(I,m);(te.origin!==new URL(m).origin||!te.pathname.startsWith(new URL(m).pathname))&&Pt("已阻止预览访问服务接口或目录之外的资源");const re=te.pathname.slice(new URL(m).pathname.length)+te.search;return fe(re,o)??Pt("预览资源无效")}function ge(I){const te=I.pathname+I.search,re=k.get(te);if(re)return re;if(P||a.signal?.aborted)return Promise.reject(new Error("预览已关闭"));if(k.size>=ag)return Promise.reject(new Error("预览资源数量超出限制"));const C=a.fetch(te,{signal:a.signal,redirect:"manual"}).then(J);return k.set(te,C),C}function H(I,te){P&&Pt("预览已关闭");const re=`termdock-resource-${f}-${x.length}`;return x.push({token:re,data:I,type:te}),g.add(re),re}async function ce(I,te,re,C=new Set){if(!I||I.startsWith("#")||/^data:(?:image|font)\//i.test(I)&&re==="resource")return I;try{const D=fe(I,te);if(!D){const he=new URL(I,te);return(he.protocol!=="https:"||he.username||he.password||he.origin===new URL(m).origin)&&Pt("已阻止不安全的外部资源"),w.add(he.origin),he.href}const z=`${re}:${D.href}`;(C.has(z)||C.size>=8)&&Pt("预览资源存在循环或过深引用");const ie=b.get(z);if(ie)return ie;const Ce=new Set(C);Ce.add(z);const ve=(async()=>{const he=await ge(D);return re==="css"?H(await j(new TextDecoder().decode(he.bytes),D,Ce),"text/css"):re==="script"?H(he.bytes,"text/javascript"):H(he.bytes,he.type)})();return b.set(z,ve),await ve}catch(D){return S(D instanceof Error?D.message:"部分预览资源未能加载"),og}}async function j(I,te,re){return I=await Ed(I,/@import\s+(?:url\(\s*)?["']([^"']+)["']\s*\)?([^;]*);/gi,async C=>`@import url("${await ce(C[1],te,"css",re)}")${C[2]};`),Ed(I,/url\(\s*(?:"([^"]*)"|'([^']*)'|([^)]*))\s*\)/gi,async C=>{const D=(C[1]??C[2]??C[3]).trim();return g.has(D)?C[0]:`url("${await ce(D,te,"resource",re)}")`})}try{const I=await J(O),te=H(tg,"text/javascript"),re=new DOMParser().parseFromString(new TextDecoder().decode(I.bytes),"text/html");re.querySelectorAll("base,meta[http-equiv],iframe,frame,object,embed").forEach(U=>U.remove());for(const U of re.querySelectorAll("*")){if(U.removeAttribute("ping"),U.removeAttribute("srcdoc"),U.hasAttribute("style")&&U.setAttribute("style",await j(U.getAttribute("style"),N,new Set)),U.tagName==="STYLE"&&(U.textContent=await j(U.textContent??"",N,new Set)),U.tagName==="A"||U.tagName==="AREA"){const pe=U.getAttribute("href");try{if(pe&&!pe.startsWith("#")){const le=fe(pe,N);if(le)U.setAttribute("href",new URL(le.pathname.slice(o.pathname.length)+le.search+le.hash,m).href);else{const Ie=new URL(pe,N);if(Ie.protocol!=="https:"){U.removeAttribute("href");continue}w.add(Ie.origin),U.setAttribute("href",Ie.href)}}}catch(le){U.removeAttribute("href"),S(le instanceof Error?le.message:"预览链接无法加载")}}for(const pe of["data","manifest"])U.removeAttribute(pe);if(U.tagName==="SCRIPT"&&U.getAttribute("type")==="module"){U.setAttribute("type","module-shim");const pe=U.getAttribute("src");if(pe){const le=fe(pe,N);if(le)U.setAttribute("src",new URL(le.pathname.slice(o.pathname.length)+le.search,m).href);else{const Ie=new URL(pe,N);if(Ie.protocol!=="https:"){U.remove();continue}w.add(Ie.origin),U.setAttribute("src",Ie.href)}}continue}if(U.tagName==="SCRIPT"&&U.getAttribute("type")==="importmap"){U.setAttribute("type","importmap-shim");continue}if(U.tagName==="LINK"){const pe=(U.getAttribute("rel")??"").toLowerCase();if(!["stylesheet","icon"].includes(pe)){U.remove();continue}const le=U.getAttribute("href");le&&U.setAttribute("href",await ce(le,N,pe==="stylesheet"?"css":"resource"))}if(U.hasAttribute("src")&&U.setAttribute("src",await ce(U.getAttribute("src"),N,U.tagName==="SCRIPT"?"script":"resource")),U.hasAttribute("poster")&&U.setAttribute("poster",await ce(U.getAttribute("poster"),N,"resource")),U.hasAttribute("srcset")){const pe=U.getAttribute("srcset");/data:/i.test(pe)?(U.removeAttribute("srcset"),S("混合内嵌图片候选暂不支持安全预览")):U.setAttribute("srcset",(await Promise.all(pe.split(",").map(async le=>{const[Ie,...De]=le.trim().split(/\s+/);return`${await ce(Ie,N,"resource")} ${De.join(" ")}`}))).join(", "))}U.setAttribute("referrerpolicy","no-referrer"),U.removeAttribute("integrity"),U.removeAttribute("crossorigin")}const C=[...w].join(" "),D=re.createElement("meta");D.httpEquiv="Content-Security-Policy",D.content=`default-src 'none'; script-src 'unsafe-inline' 'wasm-unsafe-eval' blob: ${C}; style-src 'unsafe-inline' blob: ${C}; img-src blob: data: ${C}; font-src blob: data: ${C}; media-src blob: data: ${C}; connect-src blob: ${C} ${[...w].map(U=>U.replace(/^https:/,"wss:")).join(" ")}; worker-src blob:; frame-src 'none'; object-src 'none'; base-uri https://termdock-preview.invalid; form-action 'none'`;const z=re.createElement("base");z.href=m;const ie=re.createElement("meta");ie.name="referrer",ie.content="no-referrer";const Ce=re.createElement("script");Ce.textContent=rg+`
1636
1636
  installPreviewRuntime(`+[f,m,[...w],te].map(ig).join(",")+");";const ve=re.createElement("script");ve.src=te,re.head.prepend(D,ie,z,Ce,ve);const he=`<!doctype html>
1637
1637
  `+re.documentElement.outerHTML;return{html:he,shellUrl:`/preview-shell.html#${f}`,errors:p,attach(U,pe){const le=new Set,Ie=Pe=>{if(Pe.source!==U.contentWindow||Pe.data?.capability!==f)return;if(Pe.data.type==="preview-ready"){U.contentWindow?.postMessage({type:"preview-init",capability:f,html:he,resources:x},"*");return}if(Pe.data.type==="preview-error"){pe("部分动态内容被安全预览限制");return}if(Pe.data.type==="preview-navigate"){(async()=>{const se=W(String(Pe.data.url)),Te=await mu(se.pathname+se.search,a);if(P){Te.dispose();return}const _e=Te.attach(U,pe);M.add(()=>{_e(),Te.dispose()}),U.src=Te.shellUrl.replace("#","?navigation="+crypto.randomUUID()+"#")})().catch(se=>pe(se instanceof Error?se.message:"无法打开预览页面"));return}if(Pe.data.type==="preview-external"){try{const se=new URL(String(Pe.data.url));se.protocol==="https:"&&w.has(se.origin)&&window.open(se.href,"_blank","noopener,noreferrer")}catch{}return}if(Pe.data.type!=="preview-fetch"||Pe.ports.length!==1)return;const L=Pe.ports[0];if(le.size>=8||!["GET","HEAD"].includes(Pe.data.method)){L.postMessage({error:"预览仅允许读取已授权目录资源"}),L.close();return}le.add(L),(async()=>{const se=W(String(Pe.data.url)),Te=await ge(se);if(!le.has(L)||P)return;const _e=Pe.data.method==="HEAD"?new Uint8Array:Te.bytes.slice();L.postMessage({status:Te.status,headers:{"content-type":Te.type},data:_e.buffer},[_e.buffer])})().catch(()=>{L.postMessage({error:"预览资源不在授权范围或无法加载"}),pe("部分动态资源不可用或超出预览目录")}).finally(()=>{le.delete(L),L.close()})};window.addEventListener("message",Ie);const De=()=>{window.removeEventListener("message",Ie);for(const Pe of le)Pe.close();le.clear(),M.delete(De)};return M.add(De),De},dispose:$}}catch(I){throw $(),I}}const lg=n.forwardRef(function({src:a,title:i,exitFullscreenLabel:c,onFullscreenChange:f},m){const p=n.useRef(null),[S,g]=n.useState(null),[x,w]=n.useState(),[k,b]=n.useState("");n.useEffect(()=>{const K=new AbortController;let X;return w(void 0),b(""),(async()=>{const xe=await oh();if(X=await mu(a,{fetch:(F,o)=>xe.fetch(F,o),signal:K.signal}),K.signal.aborted){X.dispose();return}w(X),X.errors.length&&b(X.errors.join(";"))})().catch(xe=>{K.signal.aborted||b(xe instanceof Error?xe.message:"安全预览加载失败")}),()=>{K.abort(),X?.dispose()}},[a]),n.useEffect(()=>{if(!(!x||!S))return x.attach(S,b)},[x,S]);const[E,P]=n.useState(!1),[M,$]=n.useState(!1),J=E||M;n.useEffect(()=>{f?.(J)},[J,f]),n.useEffect(()=>{const K=()=>{P(document.fullscreenElement===p.current)};return document.addEventListener("fullscreenchange",K),()=>document.removeEventListener("fullscreenchange",K)},[]),n.useEffect(()=>{if(!M)return;const K=X=>{X.key==="Escape"&&$(!1)};return document.addEventListener("keydown",K),()=>document.removeEventListener("keydown",K)},[M]);const N=n.useCallback(async()=>{const K=p.current;if(K){if(M){$(!1);return}if(document.fullscreenElement===K){await document.exitFullscreen();return}if(K.requestFullscreen&&document.fullscreenEnabled!==!1)try{await K.requestFullscreen();return}catch{}$(!0)}},[M]);n.useImperativeHandle(m,()=>({toggleFullscreen:N}),[N]);const O=t.jsxs("div",{ref:p,"data-html-preview-frame":!0,className:J?"fixed inset-0 z-modal-panel flex min-h-0 flex-col overflow-hidden bg-surface pt-[env(safe-area-inset-top,0px)] text-foreground":"flex h-full min-h-0 flex-col overflow-hidden bg-surface",children:[J&&t.jsxs("div",{className:"flex h-12 shrink-0 items-center justify-between gap-3 border-b border-border/15 bg-[var(--chrome-bg)] px-3",children:[t.jsx("span",{className:"min-w-0 truncate text-[12px] font-semibold",children:i}),t.jsx("button",{type:"button",onClick:()=>{N()},"aria-label":c,title:`${c} (Esc)`,className:"inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-surface-2 text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground active:scale-95",children:t.jsx(au,{size:15})})]}),k&&t.jsx("div",{role:"status",className:"shrink-0 border-b border-border px-3 py-2 text-xs text-muted-foreground",children:k}),!x&&!k&&t.jsx("div",{role:"status",className:"p-3 text-xs text-muted-foreground",children:"正在安全加载预览资源…"}),t.jsx("iframe",{ref:g,src:x?.shellUrl,referrerPolicy:"no-referrer",title:i,sandbox:"allow-scripts",className:"block min-h-0 w-full flex-1 border-0 bg-white"})]});return M?Qr.createPortal(O,document.body):O}),gu="termdock-file-search-match",Zi="termdock-file-search-current";function cg(r,a,i){return!!(a&&r?.isConnected&&!i.defaultPrevented&&!r.closest('[inert], [aria-hidden="true"], [hidden]')&&i.target instanceof Node&&r.contains(i.target))}function dg(r){const a=r.metaKey||r.ctrlKey,i=r.key.toLocaleLowerCase();return a&&i==="f"?"open":a&&i==="g"||r.key==="F3"?r.shiftKey?"previous":"next":r.key==="Escape"?"close":null}function ug(r){return r.parentElement?.closest("[data-markdown-preview-block-start], [data-file-preview-line]")??null}function fg(r,a){const i=a.trim().toLocaleLowerCase();if(!i)return[];const c=[];let f="",m=null;const p=document.createTreeWalker(r,NodeFilter.SHOW_TEXT);for(let w=p.nextNode();w;w=p.nextNode()){if(!(w instanceof Text)||!w.data)continue;const k=ug(w);if(!k)continue;m&&m!==k&&(f+=`
1638
- `);const b=f.length;f+=w.data,c.push({node:w,start:b,end:f.length,group:k}),m=k}const S=f.toLocaleLowerCase(),g=[];let x=0;for(;x<=S.length-i.length;){const w=S.indexOf(i,x);if(w<0)break;const k=w+i.length,b=c.find(P=>P.start<=w&&P.end>w),E=c.find(P=>P.start<k&&P.end>=k);if(b&&E&&b.group===E.group){const P=document.createRange();P.setStart(b.node,w-b.start),P.setEnd(E.node,k-E.start),g.push(P)}x=w+Math.max(i.length,1)}return g}function bu(){return typeof CSS<"u"&&CSS.highlights?CSS.highlights:null}let bo;function Ad(r){return bo===r}function oo(r){if(r&&bo!==r)return;const a=bu();a?.delete(gu),a?.delete(Zi),bo=void 0}function Ii(r,a,i){const c=bu();if(!c||typeof Highlight>"u")return;bo=i,c.set(gu,new Highlight(...r));const f=r[a];f?c.set(Zi,new Highlight(f)):c.delete(Zi)}function Td(r){r?.startContainer.parentElement?.scrollIntoView({block:"center",inline:"nearest",behavior:"smooth"})}function hg(r){return Array.from(new Set(r.split(/[\n,]/).map(a=>a.trim().replace(/^!+/,"")).filter(Boolean))).slice(0,24)}function pg(r,a){const i=a.trim();return!i||i==="."?r:/^(?:[/\\]|[A-Za-z]:[/\\])/.test(i)?i.replace(/[\\/]+$/,""):`${r.replace(/[\\/]+$/,"")}/${i.replace(/^\.?[\\/]+/,"").replace(/[\\/]+$/,"")}`}function mg(r,a){if(a===r)return".";const i=`${r.replace(/[\\/]+$/,"")}/`;return a.startsWith(i)?a.slice(i.length):a}function xu(r,a,i){return a?r:Qr.createPortal(r,i)}const al="termdock:right-sidebar:file-tree-scroll:v1",ol="termdock:right-sidebar:file-preview-reading-state:v1",hs="termdock:right-sidebar:file-tree-width:v1",yu="termdock:right-sidebar:markdown-view-mode:v1",vu="termdock:right-sidebar:diff-change-list-mode:v1",wu="termdock:right-sidebar:diff-wrap:v1",ku="termdock:diff-viewer:view-type:v1",Su="termdock:right-sidebar:file-search-mode:v1",$i="termdock:right-sidebar:collapsed-git-repo-groups:v1",Md="termdock:right-sidebar:collapsed-diff-directories:v1",Fi="termdock:right-sidebar:branch-audit-module-open:v1",Ru="termdock:right-sidebar:branch-audit-module:v1",gg=150,Ld="termdock:right-sidebar:context-draft-enabled:v1",Id="termdock:right-sidebar:context-draft-collapsed:v1",$d="termdock:right-sidebar:context-draft-auto-collapse:v1",Di="termdock:right-sidebar:context-draft-text:v1",bg=300,xg=20,yg=120,vg=250,wg=250,kg=120,Sg=700,_i=600,Rg=6e4;function Xs(r){return!!(r&&B.getState().nestedGitScanRoots[r])}const Fd=[2e3,5e3,15e3,3e4],jg=320,Cg=500,Ng=20,Pg=12e3,el=300,Dd=240,Eg=560,_d=n.lazy(()=>sl(()=>import("./ModelPreview-CsZry3Wd.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]))),Ag=n.lazy(()=>sl(()=>import("./ArchitecturePanel-Bd_l74EC.js"),__vite__mapDeps([32,1,2,3,4,5,33,11,12,13,24,20,25,26,17,18,34,19,8,21,9,10,14,15,22,23,27,28,29,30,6,31,35])).then(r=>({default:r.ArchitecturePanel}))),Tg=n.lazy(()=>sl(()=>import("./ComputerControlView-CwB-wQqB.js").then(r=>r.a),__vite__mapDeps([36,1,2,3,4,5,29,14,37,30])));function ju(r,a,i){return r&&!a?"unified":i}const Mg=new Set([".md",".markdown",".mdown",".mkdn",".mkd"]);function Lg(r){return r==="preview"||r==="source"}function Ig(r){return r==="list"||r==="tree"||r==="ai"}function Bd(){return dt(yu,Lg)??"preview"}function $g(){return dt(vu,Ig)??"tree"}function ra(r){return typeof r=="boolean"}function Fg(r){return typeof r=="string"}function Dg(){return dt(wu,ra)??!0}function _g(r){return r==="unified"||r==="split"}function Bg(){return dt(ku,_g)??"unified"}function Ug(r){return r==="name"||r==="content"||r==="regex"}function Og(){return dt(Su,Ug)??"name"}function Cu(r){return r.repositories??(r.context?.root?[{id:r.context.root,root:r.context.root,relativeRoot:".",name:xt(r.context.root)||r.context.root,depth:0,nested:!1,available:r.available,files:r.files,context:r.context,error:r.error}]:[])}function Hg(r,a){if(!a)return null;const i=new Set((r.repoFilters??[]).map(c=>c.root));return i.has(a)?a:i.size>0?null:(r.repositories??[]).some(c=>c.root===a)?a:null}function tl(r){return!r.activeGitRepoRoot&&(r.groupCount>1||r.label!==r.rootName)}function Nu(...r){const a=new Set;for(const i of r)for(const c of i)a.add(c.root);return a}function rl(r){return Array.isArray(r)&&r.every(a=>typeof a=="string")}function Ud(r){const a=dt(r,rl);return a?new Set(a):new Set}function Bi(r,a){Et(r,[...a])}function zg(r){if(!r||typeof r!="object"||Array.isArray(r))return!1;const a=r;return typeof a.filePath=="string"&&typeof a.hunkHeader=="string"&&typeof a.hunkIndex=="number"&&typeof a.fingerprint=="string"&&typeof a.additions=="number"&&typeof a.deletions=="number"&&typeof a.diff=="string"&&(a.oldPath===void 0||a.oldPath===null||typeof a.oldPath=="string")&&(a.newPath===void 0||a.newPath===null||typeof a.newPath=="string")&&(a.source===void 0||a.source==="committed"||a.source==="uncommitted"||a.source==="unknown")&&(a.commit===void 0||a.commit===null||typeof a.commit=="string")}function Gg(r){if(!r||typeof r!="object"||Array.isArray(r))return!1;const a=r;return typeof a.available=="boolean"&&(a.repoRoot===void 0||typeof a.repoRoot=="string")&&(a.workspaceRoot===void 0||typeof a.workspaceRoot=="string")&&(a.baseRef===void 0||typeof a.baseRef=="string")&&(a.baseBranch===void 0||typeof a.baseBranch=="string")&&(a.currentBranch===void 0||a.currentBranch===null||typeof a.currentBranch=="string")&&(a.headRef===void 0||a.headRef===null||typeof a.headRef=="string")&&(a.diffFingerprint===void 0||typeof a.diffFingerprint=="string")&&(a.stat===void 0||typeof a.stat=="string")&&(a.files===void 0||rl(a.files))&&(a.hunks===void 0||Array.isArray(a.hunks)&&a.hunks.every(zg))&&(a.commits===void 0||rl(a.commits))&&(a.commitCount===void 0||typeof a.commitCount=="number")&&(a.diff===void 0||typeof a.diff=="string")&&(a.truncated===void 0||typeof a.truncated=="boolean")&&(a.error===void 0||typeof a.error=="string")}function Wg(r){if(!r||typeof r!="object"||Array.isArray(r))return!1;const a=r;return typeof a.key=="string"&&Gg(a.diff)&&typeof a.repoLabel=="string"&&typeof a.createdAt=="number"}function Kg(r){return!r||typeof r!="object"||Array.isArray(r)?!1:Object.values(r).every(a=>{if(!a||typeof a!="object"||Array.isArray(a))return!1;const i=a;return Array.isArray(i.selectedRepoRoots)&&i.selectedRepoRoots.every(c=>typeof c=="string")&&!!i.repoTargetBranches&&typeof i.repoTargetBranches=="object"&&!Array.isArray(i.repoTargetBranches)&&Object.values(i.repoTargetBranches).every(c=>typeof c=="string")&&(i.repoBaseBranches===void 0||!!i.repoBaseBranches&&typeof i.repoBaseBranches=="object"&&!Array.isArray(i.repoBaseBranches)&&Object.values(i.repoBaseBranches).every(c=>typeof c=="string"))&&(i.previewEntries===void 0||Array.isArray(i.previewEntries)&&i.previewEntries.every(Wg))&&(i.selectedPreviewKey===void 0||i.selectedPreviewKey===null||typeof i.selectedPreviewKey=="string")&&(i.selectedPreviewFileKey===void 0||i.selectedPreviewFileKey===null||typeof i.selectedPreviewFileKey=="string")&&(i.previewDetailOpen===void 0||typeof i.previewDetailOpen=="boolean")&&(i.previewScrollTops===void 0||!!i.previewScrollTops&&typeof i.previewScrollTops=="object"&&!Array.isArray(i.previewScrollTops)&&Object.values(i.previewScrollTops).every(c=>typeof c=="number"))&&(i.previewMobileSlideIndex===void 0||typeof i.previewMobileSlideIndex=="number")&&(i.repoIncludeUncommitted===void 0||!!i.repoIncludeUncommitted&&typeof i.repoIncludeUncommitted=="object"&&!Array.isArray(i.repoIncludeUncommitted)&&Object.values(i.repoIncludeUncommitted).every(c=>typeof c=="boolean"))&&(i.includeUncommitted===void 0||typeof i.includeUncommitted=="boolean")&&typeof i.updatedAt=="number"})}function Od(){return dt(Ru,Kg)??{}}function Hd(r){return[r.repoRoot,r.baseRef,r.branchName??"",r.headRef??"",r.diffFingerprint??""].join("\0")}function zd(r){const a=r?.trim()??"",i=a.indexOf("/");return i>=0?a.slice(i+1):a}function Pu(r,a){const i=r?.trim(),c=a?.trim();return!i||!c?!1:i===c||zd(i)===zd(c)}function Gd(r){const a=r?.branch??null;return[r?.upstream,...r?.remoteBranches??[],...r?.branches??[]].find(c=>c&&!Pu(c,a))??""}function nl(r,a){const i=Math.max(Dd,a-320),c=Math.min(Eg,i);return Math.min(c,Math.max(Dd,r))}function qg(r){return typeof r=="number"&&Number.isFinite(r)}function Vg(r){return nl(dt(hs,qg)??el,r)}function Eu(r){const a=r.split(/[\\/]/).pop()??r,i=a.lastIndexOf(".");return i>=0?a.slice(i).toLowerCase():""}function Js(r){return Mg.has(Eu(r))}function fs({label:r,value:a,options:i,placeholder:c,searchPlaceholder:f,emptyText:m,disabled:p,onChange:S}){const{t:g}=Bt(),[x,w]=n.useState(!1),[k,b]=n.useState(""),[E,P]=n.useState(null),M=n.useRef(null),$=n.useRef(null),J=k.trim().toLowerCase(),N=n.useMemo(()=>J?i.filter(F=>`${F.label} ${F.meta??""}`.toLowerCase().includes(J)):i,[J,i]),O=i.find(F=>F.value===a),K=()=>{const F=k.trim();F&&(S(F),w(!1),b(""))},X=n.useCallback(()=>{const F=M.current?.getBoundingClientRect();if(!F)return!1;const o=12,fe=Math.max(220,Math.min(F.width,window.innerWidth-o*2)),W=Math.min(Math.max(o,F.left),window.innerWidth-fe-o),ge=window.innerHeight-F.bottom-o,H=F.top-o,ce=ge>=180||ge>=H,j=Math.max(96,(ce?ge:H)-4),I=Math.min(320,j);return P({left:W,top:ce?F.bottom+4:Math.max(o,F.top-I-4),width:fe,maxHeight:I}),!0},[]),xe=()=>{X(),w(!0)};return n.useEffect(()=>{if(!x)return;let F=0;const o=()=>{F||(F=window.requestAnimationFrame(()=>{F=0,X()}))},fe=W=>{const ge=W.target;ge instanceof Node&&(M.current?.contains(ge)||$.current?.contains(ge)||(w(!1),b("")))};return window.addEventListener("resize",o),window.addEventListener("scroll",o,!0),document.addEventListener("pointerdown",fe,!0),()=>{F&&window.cancelAnimationFrame(F),window.removeEventListener("resize",o),window.removeEventListener("scroll",o,!0),document.removeEventListener("pointerdown",fe,!0)}},[x,X]),t.jsxs("div",{className:"relative min-w-0",children:[t.jsxs("button",{ref:M,type:"button",disabled:p,onClick:()=>{if(!p){if(b(""),x){w(!1);return}xe()}},className:"group flex w-full items-center justify-between gap-2 min-h-10 rounded-md border border-transparent bg-surface-2 px-3 py-2 text-left transition hover:bg-surface-elevated focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",children:[t.jsxs("span",{className:"flex min-w-0 flex-1 items-center gap-3",children:[t.jsx("span",{className:"shrink-0 text-[11px] text-muted-foreground",children:r}),t.jsx("span",{className:`min-w-0 flex-1 truncate text-[13px] ${a?"text-foreground":"text-muted-foreground/70"}`,children:O?.label??(a||c)})]}),t.jsx(oa,{size:13,className:`shrink-0 text-muted-foreground transition group-hover:text-foreground ${x?"rotate-180":""}`})]}),x&&!p&&typeof document<"u"&&Qr.createPortal(t.jsxs("div",{ref:$,className:"fixed z-popover overflow-hidden rounded-lg border border-border/15 bg-surface shadow-lg",onClick:F=>F.stopPropagation(),style:{left:E?.left??12,top:E?.top??12,width:E?.width??260,maxHeight:E?.maxHeight??320},children:[t.jsx("div",{className:"border-b border-border/10 p-1.5",children:t.jsxs("div",{className:"flex items-center gap-1.5 rounded-md bg-surface-2 px-2 py-1.5",children:[t.jsx(ms,{size:12,className:"shrink-0 text-muted-foreground"}),t.jsx("input",{autoFocus:!0,value:k,onChange:F=>b(F.target.value),onKeyDown:F=>{if(F.key==="Escape"){F.preventDefault(),w(!1),b("");return}F.key==="Enter"&&(F.preventDefault(),K())},onBlur:()=>{k.trim()&&N.length===0&&K()},placeholder:f,className:"min-w-0 flex-1 bg-transparent text-[12px] text-foreground outline-none placeholder:text-muted-foreground/70"})]})}),t.jsxs("div",{className:"overflow-y-auto p-1",style:{maxHeight:Math.max(96,(E?.maxHeight??320)-46)},children:[k.trim()&&!i.some(F=>F.value===k.trim())&&t.jsxs("button",{type:"button",onMouseDown:F=>F.preventDefault(),onClick:K,className:"mb-1 flex w-full items-center justify-between gap-2 rounded-md bg-primary/10 px-2 py-1.5 text-left text-[12px] font-medium text-primary transition hover:bg-primary/15",children:[t.jsx("span",{className:"min-w-0 truncate",children:k.trim()}),t.jsx("span",{className:"shrink-0 text-[10px] text-primary/75",children:g("common.use")})]}),N.length>0?N.map(F=>t.jsxs("button",{type:"button",onClick:()=>{S(F.value),w(!1),b("")},className:`flex w-full items-center justify-between gap-2 rounded-md px-2 py-1.5 text-left text-[12px] transition hover:bg-surface-2 ${F.value===a?"bg-accent/10 text-accent":"text-foreground"}`,children:[t.jsx("span",{className:"min-w-0 truncate font-medium",children:F.label}),F.meta&&t.jsx("span",{className:"shrink-0 text-[10px] text-muted-foreground",children:F.meta})]},F.value)):t.jsx("div",{className:"px-2 py-2 text-[11px] text-muted-foreground",children:m})]})]}),document.body)]})}function Wd({open:r,onOpenChange:a,showScopePicker:i,selectedAll:c,repos:f,selectedRoots:m,onToggleRepo:p,onGenerate:S,onSecondaryAction:g,disabled:x,generateDisabled:w,secondaryDisabled:k,inserted:b,buttonLabel:E,insertedLabel:P,title:M,ariaLabel:$,scopeTitle:J,scopeLabel:N,allLabel:O,generateLabel:K,secondaryLabel:X,secondaryTitle:xe,secondaryLoading:F,loading:o,error:fe,statusTitle:W,extraContent:ge,renderRepoExtra:H,menuItem:ce=!1}){return t.jsxs("div",{className:ce?"relative w-full":"relative inline-flex shrink-0",children:[t.jsxs("button",{type:"button",role:ce?"menuitem":void 0,tabIndex:ce?-1:void 0,onClick:j=>{i?a(!r):w||S(j.currentTarget)},disabled:x,className:`relative flex items-center rounded-md transition disabled:cursor-not-allowed disabled:opacity-50 ${ce?"min-h-10 w-full gap-2.5 px-2.5 text-left text-[12px] focus:bg-surface-2 focus:outline-none [@media(pointer:coarse)]:min-h-11":"h-7 shrink-0 justify-center gap-1 px-2 text-[11px] font-medium active:scale-95"} ${fe?"text-destructive hover:bg-destructive/5":b?"bg-surface-elevated text-foreground":ce?"text-foreground hover:bg-surface-2":"text-muted-foreground hover:bg-surface-2 hover:text-foreground"}`,"aria-label":$,title:W??(i?`${J}: ${N}`:M),children:[o?t.jsx(ct,{size:ce?15:13,className:"shrink-0 animate-spin"}):t.jsx(aa,{size:ce?15:13,className:ce?"shrink-0 text-muted-foreground":void 0}),t.jsx("span",{className:ce?"min-w-0 flex-1":void 0,children:b?P:E}),i&&(ce?t.jsx(ps,{size:13,className:"shrink-0 text-muted-foreground"}):t.jsx(oa,{size:11,className:`shrink-0 transition ${r?"rotate-180":""}`})),fe&&t.jsx("span",{className:"absolute right-0.5 top-0.5 size-1.5 rounded-full bg-destructive"})]}),i&&r&&typeof document<"u"&&Qr.createPortal(t.jsx("div",{className:"fixed inset-0 z-modal-backdrop bg-[var(--app-backdrop)] px-3 py-6 backdrop-blur-sm animate-fade-in",onClick:()=>a(!1),children:t.jsxs("div",{className:"fixed left-1/2 top-1/2 z-modal-panel flex max-h-[min(82vh,36rem)] w-[calc(100vw-1.5rem)] max-w-[42rem] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-border/20 bg-surface text-[11px] shadow-2xl",onClick:j=>j.stopPropagation(),children:[t.jsxs("div",{className:"flex items-center justify-between gap-3 border-b border-border/15 px-3 py-2",children:[t.jsxs("div",{className:"min-w-0",children:[t.jsx("div",{className:"text-[12px] font-semibold text-foreground",children:J}),t.jsx("div",{className:"mt-0.5 truncate text-[10px] text-muted-foreground",children:N})]}),t.jsx("button",{type:"button",onClick:()=>a(!1),className:"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-surface-2 text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground active:scale-95","aria-label":"Close",children:t.jsx(Qt,{size:14})})]}),t.jsxs("div",{className:"min-h-0 flex-1 overflow-y-auto p-2",children:[ge,t.jsxs("button",{type:"button",onClick:()=>p(null),className:`flex w-full items-center justify-between gap-2 rounded-md px-2 py-1.5 text-left font-medium transition ${c?"bg-primary/15 text-primary":"text-muted-foreground hover:bg-surface-2 hover:text-foreground"}`,children:[t.jsx("span",{className:"truncate",children:O}),c&&t.jsx("span",{className:"text-[10px]",children:"✓"})]}),f.map(j=>{const I=m.includes(j.root);return t.jsxs("div",{className:`mt-1 rounded-md transition ${I?"bg-primary/15 text-primary":""}`,children:[t.jsxs("button",{type:"button",onClick:()=>p(j.root),className:`flex w-full items-center justify-between gap-2 rounded-md px-2 py-1.5 text-left font-medium transition ${I?"text-primary":"text-muted-foreground hover:bg-surface-2 hover:text-foreground"}`,title:j.root,children:[t.jsxs("span",{className:"min-w-0",children:[t.jsx("span",{className:"block truncate",children:j.label}),j.branch&&t.jsx("span",{className:"block truncate text-[9px] opacity-70",children:j.branch})]}),I&&t.jsx("span",{className:"text-[10px]",children:"✓"})]}),H&&(c||I)&&t.jsx("div",{className:"px-2 pb-2",children:H(j)})]},j.root)})]}),t.jsxs("div",{className:`grid grid-cols-1 gap-1.5 border-t border-border/15 p-2 ${g&&X?"sm:grid-cols-2":""}`,children:[g&&X&&t.jsxs("button",{type:"button",onClick:()=>{k||(a(!1),g())},disabled:k,className:"flex h-7 w-full items-center justify-center gap-1 rounded-md bg-surface-2 px-2 text-[11px] font-semibold text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50 active:scale-95",title:xe,children:[F?t.jsx(ct,{size:12,className:"animate-spin"}):t.jsx(lu,{size:12}),X]}),t.jsxs("button",{type:"button",onClick:async j=>{if(w)return;await S(j.currentTarget)!==!1&&a(!1)},disabled:w,className:"flex h-7 w-full items-center justify-center gap-1 rounded-md bg-primary/15 px-2 text-[11px] font-semibold text-primary transition hover:bg-primary/25 disabled:cursor-not-allowed disabled:opacity-50 active:scale-95",title:M,children:[t.jsx(aa,{size:12}),K]})]})]})}),document.body)]})}function Yg(r){if(!r||typeof r!="object"||Array.isArray(r))return!1;for(const a of Object.values(r)){if(!a||typeof a!="object"||Array.isArray(a))return!1;const i=a;if(typeof i.top!="number"||!Number.isFinite(i.top)||typeof i.updatedAt!="number"||!Number.isFinite(i.updatedAt))return!1}return!0}function Au(){return dt(al,Yg)??{}}function Xg(r,a){const i=Au(),c=Object.entries({...i,[r]:{top:a,updatedAt:Date.now()}}).sort(([,f],[,m])=>m.updatedAt-f.updatedAt).slice(0,xg);na(al,Object.fromEntries(c),vg)}function Jg(r){if(!r||typeof r!="object"||Array.isArray(r))return!1;const a=r;return typeof a.start=="number"&&Number.isFinite(a.start)&&typeof a.end=="number"&&Number.isFinite(a.end)&&a.start>=1&&a.end>=a.start}function Qg(r){if(!r||typeof r!="object"||Array.isArray(r))return!1;for(const a of Object.values(r)){if(!a||typeof a!="object"||Array.isArray(a))return!1;const i=a;if(typeof i.top!="number"||!Number.isFinite(i.top)||i.left!==void 0&&(typeof i.left!="number"||!Number.isFinite(i.left))||i.markdownTop!==void 0&&(typeof i.markdownTop!="number"||!Number.isFinite(i.markdownTop))||i.lineRange!==void 0&&i.lineRange!==null&&!Jg(i.lineRange)||typeof i.updatedAt!="number"||!Number.isFinite(i.updatedAt))return!1}return!0}function il(r,a){if(!a)return null;const i=r&&!a.startsWith("/")?`${r}/${a}`:a;return r?`${r}::${i}`:i}function Tu(){return dt(ol,Qg)??{}}function Kd(r,a){const i=il(r,a);return i?Tu()[i]??null:null}function Ui(r,a,i){const c=il(r,a);if(!c)return;const f=Tu(),m=f[c]??{top:0,left:0,markdownTop:0,lineRange:null,updatedAt:Date.now()},p=Object.entries({...f,[c]:{...m,...i,updatedAt:Date.now()}}).sort(([,S],[,g])=>g.updatedAt-S.updatedAt).slice(0,yg);na(ol,Object.fromEntries(p),wg)}function Oi({slow:r}){return t.jsx(fp,{slow:r})}function io({message:r,onRetry:a}){const{t:i}=Bt();return t.jsxs("div",{className:"mx-3 mt-3 overflow-hidden rounded-xl border border-destructive/20 bg-destructive/5 px-4 py-5 text-center text-sm text-destructive",children:[t.jsx("div",{className:"font-medium",children:i("rightSidebar.gitChangesLoadFailed")}),t.jsx("div",{className:"mt-1 break-words text-xs opacity-85",children:r}),t.jsx("button",{type:"button",onClick:a,className:"mt-3 rounded-full bg-destructive/10 px-3 py-1.5 text-xs font-semibold text-destructive transition hover:bg-destructive/15 active:scale-95",children:i("rightSidebar.retryGitChanges")})]})}function fo(r,a){const i=a&&r.startsWith(`${a}/`)?r.slice(a.length+1):r,c=i.split("/").filter(Boolean);return{name:c.pop()||i,dir:c.join("/")}}function xt(r){if(!r)return"";const a=r.replace(/\/+$/,"");return a.split("/").pop()||a||"/"}function lo(r){if(!r)return null;const a=Jd(r);return a==="/"?null:Uh(a)}function Zg(r,a,i){return Vi(r,a,i)}function Mu(r){const a=new Map;for(const i of r)a.set(ll(i),i);return a}function Lu(r,a){const i=new Map(r);for(const c of a)i.set(ll(c),c);return i}function qd(r,a){let i=0;for(const c of r){const f=mt(c,a);f&&a&&f!==a&&(i+=1)}return i}function eb(r){return r.reduce((a,i)=>a+(i.staged?1:0),0)}function tb(r,a){return Array.from(Lu(Mu(r),a).values()).sort((i,c)=>i.path.localeCompare(c.path))}function rb(r,a){const i=r.relativeRoot==="."?xt(a??r.root)||r.name||r.root:r.relativeRoot||r.name||xt(r.root)||r.root;return{root:r.root,label:i,branch:r.context?.branch??null,count:r.files.length,staged:eb(r.files)}}function Iu(r,a){const i=xt(a??"")||a||"";return r.map(c=>rb(c,a)).sort((c,f)=>i&&c.label===i?-1:i&&f.label===i?1:c.label.localeCompare(f.label))}function $u(r,a,i,c,f){const m=Cu(i),p=m.find(M=>M.root===c)??m[0]??null,S=a.find(M=>M.root===c)??null,g=S?.relativeRoot??p?.relativeRoot??".",x=S?.name??p?.name??(xt(c)||c),w=(p?.files??i.files).map(M=>({...M,repoRoot:c,repoRelativeRoot:g,repoName:x})),k=p?.context??i.context,b={...S??p??{id:c,root:c,relativeRoot:g,name:x,depth:0,nested:!!(f&&c!==f),available:i.available,files:[],context:null},...p??{},id:S?.id??p?.id??c,root:c,displayRoot:S?.displayRoot??p?.displayRoot,relativeRoot:g,name:x,depth:S?.depth??p?.depth??0,nested:S?.nested??p?.nested??!!(f&&c!==f),available:p?.available??i.available,deferred:p?.deferred??!1,files:w,context:k?{...k,root:c,changedFiles:w.map(M=>({path:M.path,absolutePath:M.absolutePath,status:M.status}))}:null,untrackedDeferred:p?.untrackedDeferred??i.untrackedDeferred,error:p?.error??i.error},E=S?a.map(M=>M.root===c?b:M):[...a,b];return{files:Array.from(r).filter(M=>mt(M,f)!==c).concat(w),repositories:E,repoFilters:Iu(E,f)}}function mt(r,a){return r.repoRoot??a}function ll(r){return`${r.repoRoot??""}\0${r.path}`}function yr(r){return r.absolutePath||r.path}function Hi(r){return ll(r)}function nb(r){return r.repoRelativeRoot&&r.repoRelativeRoot!=="."?r.repoRelativeRoot:r.repoName??""}function Vd(r){return r.reduce((a,i)=>a+(i.staged?1:0),0)}function Yd(r){const a={added:0,modified:0,deleted:0,renamed:0,copied:0,untracked:0,conflicted:0,staged:0,other:0};for(const i of r)i.status==="added"?a.added+=1:i.status==="modified"?a.modified+=1:i.status==="deleted"?a.deleted+=1:i.status==="renamed"?a.renamed+=1:i.status==="copied"?a.copied+=1:i.status==="untracked"?a.untracked+=1:i.status==="conflicted"?a.conflicted+=1:a.other+=1,i.staged&&(a.staged+=1);return a}function Qs(r){let a=0;const i=r??"root";for(let c=0;c<i.length;c+=1)a=Math.imul(a^i.charCodeAt(c),16777619);return`right-sidebar-git-bundle:${(a>>>0).toString(36)}`}function Zs(r,a){return typeof r!="number"||!Number.isFinite(r)||r<=0?null:new Intl.DateTimeFormat(a==="zh"?"zh-CN":"en",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}).format(new Date(r))}function vr(r){return r instanceof DOMException&&r.name==="AbortError"}function sb(r){const a=r.error??r.context?.error??"";return a.includes("request was cancelled")||a.includes("IO_REQUEST_CANCELLED")}function Xd(r){return r?.available===!1&&r.code==="NOT_GIT_REPOSITORY"}function ab({actions:r,running:a,completed:i}){const{t:c}=Bt(),[f,m]=n.useState(!1),p=n.useRef(null),S=r.find(x=>a?.action===x.key),g=r.find(x=>i?.action===x.key);return r.length===0?null:(n.useEffect(()=>{if(!f)return;const x=k=>{const b=k.target;b instanceof Node&&p.current?.contains(b)||m(!1)},w=k=>{k.key==="Escape"&&m(!1)};return document.addEventListener("pointerdown",x),document.addEventListener("keydown",w),()=>{document.removeEventListener("pointerdown",x),document.removeEventListener("keydown",w)}},[f]),t.jsxs("div",{ref:p,className:"relative shrink-0",children:[t.jsx("button",{type:"button",onClick:x=>{x.stopPropagation(),m(w=>!w)},disabled:r.every(x=>x.disabled)&&!a&&!i,className:`inline-flex h-6 min-w-6 shrink-0 items-center justify-center rounded-md transition active:scale-95 disabled:opacity-50 ${f?"bg-surface-elevated text-foreground":g?"bg-accent/10 text-accent":"bg-surface-2 text-muted-foreground hover:bg-surface-elevated hover:text-foreground"}`,title:S?.label??g?.label??c("rightSidebar.gitQuickActions"),children:S?t.jsx(ct,{size:13,className:"animate-spin"}):g?t.jsx("span",{className:"text-[12px] font-semibold",children:"✓"}):t.jsx(ho,{size:14})}),f&&t.jsx("div",{className:"absolute right-0 top-[calc(100%+2px)] z-30 w-44 overflow-hidden rounded-xl border border-border/15 bg-surface/98 p-1 text-[12px] shadow-xl shadow-[0_18px_48px_var(--app-shadow-soft)] backdrop-blur animate-fade-in",children:r.map(x=>{const w=a?.action===x.key,k=i?.action===x.key;return t.jsxs("button",{type:"button",onClick:b=>{b.stopPropagation(),x.onClick(),m(!1)},disabled:x.disabled||!!a,className:`flex w-full items-center gap-2 rounded-lg px-2.5 py-1.5 text-left font-medium transition active:scale-[0.99] disabled:opacity-50 ${k?"bg-accent/10 text-accent":x.destructive?"text-destructive hover:bg-destructive/10":"text-foreground hover:bg-surface-2"}`,children:[t.jsx("span",{className:"flex h-4 w-4 shrink-0 items-center justify-center",children:w?t.jsx(ct,{size:13,className:"animate-spin"}):k?"✓":null}),t.jsx("span",{className:"min-w-0 flex-1 truncate",children:x.label})]},x.key)})})]}))}function ob(r){const a=window.getComputedStyle(r).overflowY;return(a==="auto"||a==="scroll")&&r.scrollHeight>r.clientHeight+1}function Fu(r){let a=r;for(;a;){if(a.classList.contains("termdock-diff-stream-scroller")&&ob(a))return a;a=a.parentElement}return r.closest(".termdock-diff-stream-scroller")}function gs(r){return r.getClientRects().length>0&&window.getComputedStyle(r).visibility!=="hidden"}const zi=new WeakMap;function xo(r){const a=zi.get(r);a!==void 0&&window.clearTimeout(a),r.classList.remove("diff-walkthrough-target"),r.offsetWidth,r.classList.add("diff-walkthrough-target");const i=window.setTimeout(()=>{r.classList.remove("diff-walkthrough-target"),zi.delete(r)},1700);zi.set(r,i)}function ib(r){const a=CSS.escape(r),i=[`[data-diff-stream-item="${a}"]`,`[data-diff-selection-path="${a}"]`,`[data-diff-absolute-path="${a}"]`].join(","),c=Array.from(document.querySelectorAll(".termdock-diff-stream-scroller"));let f=null;for(const S of c){if(!gs(S))continue;const g=S.querySelector(i);if(g&&gs(g)){f=g;break}}if(f??=Array.from(document.querySelectorAll(i)).find(gs)??null,!f)return;const m=Fu(f);if(!m){f.scrollIntoView({block:"start",behavior:"smooth"}),xo(f);return}const p=f.getBoundingClientRect().top-m.getBoundingClientRect().top+m.scrollTop;m.scrollTo({top:Math.max(0,p),behavior:"instant"}),xo(f)}function Ln(r){const a=CSS.escape(r.filePath),i=typeof r.sectionIndex=="number"?String(r.sectionIndex):null,c=typeof r.hunkIndex=="number"?String(r.hunkIndex):null,f=r.sectionFingerprint?CSS.escape(r.sectionFingerprint):null,m=r.hunkFingerprint?CSS.escape(r.hunkFingerprint):null,p=[i!==null&&f?`[data-diff-section-audit="${a}"][data-diff-section-index="${i}"][data-diff-section-fingerprint="${f}"]`:null,i!==null&&f?`[data-diff-section-anchor="${a}"][data-diff-section-index="${i}"][data-diff-section-fingerprint="${f}"]`:null,i!==null?`[data-diff-section-audit="${a}"][data-diff-section-index="${i}"]`:null,i!==null?`[data-diff-section-anchor="${a}"][data-diff-section-index="${i}"]`:null,c!==null&&m?`[data-diff-hunk-anchor="${a}"][data-diff-hunk-index="${c}"][data-diff-hunk-fingerprint="${m}"]`:null,c!==null?`[data-diff-hunk-anchor="${a}"][data-diff-hunk-index="${c}"]`:null,`[data-diff-file-path="${a}"]`].filter(P=>!!P),S=Array.from(document.querySelectorAll(".termdock-diff-stream-scroller"));let g=null;for(const P of S)if(gs(P)){for(const M of p){const $=P.querySelector(M);if($&&gs($)){g=$;break}}if(g)break}if(g??=p.flatMap(P=>Array.from(document.querySelectorAll(P))).find(gs)??null,!g){ib(r.filePath);return}const x=Fu(g);if(!x){g.scrollIntoView({block:"center",behavior:"smooth"}),xo(g);return}const w=g.getBoundingClientRect(),k=x.getBoundingClientRect(),E=w.top-k.top+x.scrollTop-Math.max(24,(x.clientHeight-w.height)/2);x.scrollTo({top:Math.max(0,E),behavior:"instant"}),xo(g)}let lb=0,cb=0,db=0,ub=0,fb=0;function ot(r,a={}){if(typeof window>"u")return;const i=JSON.stringify({level:r==="error"||r==="empty_bundle"?"warn":"info",message:`GIT_BUNDLE ${r}`,data:{seq:++cb,ts:Date.now(),...a}});fetch("/api/client-log",{method:"POST",headers:{"Content-Type":"application/json"},body:i,keepalive:!0}).catch(()=>{})}function ea(r,a={}){if(typeof window>"u")return;const i=JSON.stringify({level:"info",message:`DIFF_INTERACTION ${r}`,data:{seq:++ub,ts:Date.now(),...a}});fetch("/api/client-log",{method:"POST",headers:{"Content-Type":"application/json"},body:i,keepalive:!0}).catch(()=>{})}function hb(){return`diff-ui-${Date.now().toString(36)}-${(++fb).toString(36)}`}function pb(r){return r instanceof Element?r.closest("[data-diff-selection-path]"):null}function mb(r){const a=r.target instanceof HTMLElement?r.target:null;return{eventType:r.type,button:r.button,pointerType:r instanceof globalThis.PointerEvent?r.pointerType:void 0,targetTag:a?.tagName,targetClass:a?.className,targetText:a?.textContent?.slice(0,80)}}function yo({onReviewReference:r,filePath:a,active:i=!0,onInsertReference:c,onInsertText:f,onInsertFeature:m,onReferenceCopied:p,onClose:S,onDirectoryLinkOpen:g,isMobile:x,markdownOutlineOpen:w,markdownOutlineCloseSignal:k,onOpenMarkdownOutline:b,onCloseMarkdownOutline:E,markdownImageLightboxOpen:P,markdownImageLightboxCloseSignal:M,onOpenMarkdownImageLightbox:$,onCloseMarkdownImageLightbox:J,lineRange:N,onLineRangeChange:O,insertedReferenceKey:K,copiedReferenceKey:X,scrollToLine:xe,onScrollToLineHandled:F}){const{t:o}=Bt(),fe=n.useRef(null),W=n.useRef({}),ge=n.useRef(i);ge.current=i,n.useEffect(()=>{i||fe.current?.querySelectorAll("video").forEach(R=>R.pause())},[i]);const H=B(R=>R.rootPath),ce=B(R=>R.selectFile),[j,I]=n.useState({kind:"idle"}),[te,re]=n.useState("schematic"),[C,D]=n.useState(null),z=n.useRef(null),[ie,Ce]=n.useState(null),ve=n.useRef(new Map),he=n.useRef(null),[U,pe]=n.useState(null),[le,Ie]=n.useState(()=>Bd()),[De,Pe]=n.useState(()=>Nd(H,a)),L=n.useRef(null),[se,Te]=n.useState(!1),[_e,Ee]=n.useState(null),[Ut,Ge]=n.useState(0),[ut,We]=n.useState([]),[At,be]=n.useState(null),ft=n.useRef(null),lr=n.useRef(a),[Je,Oe]=n.useState(null),Q=ih(H&&a&&!a.startsWith("/")?`${H}/${a}`:a,i),[Se,rt]=n.useState(!1),[ht,wr]=n.useState(""),[$e,T]=n.useState([]),[V,we]=n.useState(0),et=n.useRef(null),kt=tu(p),pt=il(H,a);n.useEffect(()=>{if(lr.current===a)return;lr.current=a;const R=a&&H&&!a.startsWith("/")?`${H}/${a}`:a;if(ft.current===R){ft.current=null;return}ft.current=null,We([]),be(null),rt(!1),wr("")},[a,H]);const St=a?H&&!a.startsWith("/")?`${H}/${a}`:a:null,In=B(R=>St?(R.fileChangeVersions.get(St)??0)+R.fileWatchEpoch:R.fileWatchEpoch),bs=n.useRef(null),kr=n.useRef(null),[Ot,Zr]=n.useState(0),Zt=n.useCallback(()=>Zr(R=>R+1),[]);n.useEffect(()=>{const R=z.current;return z.current=null,D(null),R&&URL.revokeObjectURL(R.objectUrl),()=>{const A=z.current;z.current=null,A&&URL.revokeObjectURL(A.objectUrl)}},[St,In,Ot]),n.useEffect(()=>{if(!a){bs.current=null,I({kind:"idle"});return}const R=H&&!a.startsWith("/")?`${H}/${a}`:a,A=new AbortController,de=++lb,ke=`right-sidebar-file-preview:${de}`,Qe=performance.now();let Me=!1;const ze=(q,qe={})=>{Me||(Me=!0,Ei("end",{loadingId:de,reason:q,durationMs:Math.round(performance.now()-Qe),filePath:a,fullPath:R,rootPath:H,...qe}))};let Le=null;const Ke=lh(R),it=Ke?R.toLowerCase().endsWith(".kicad_pcb")?te==="schematic"?"pcb-front":te:"schematic":te,_n=!Ke&&ch(R),dr=!Ke&&!_n&&dh(R),Rs=!Ke&&!_n&&!dr&&uh(R),an=Js(R),on=Ys(R),zr=Ke?"eda":_n?"image":dr?"model3d":Rs?"video":"text",ln=bs.current!==R;if(bs.current=R,ln){Ei("start",{loadingId:de,filePath:a,fullPath:R,rootPath:H,mode:zr,externalVersion:In}),I({kind:"loading",mode:zr}),kr.current=null;const q=Kd(H,a);O(q?.lineRange??null),Ie(an?Bd():"source"),Pe(on?Nd(H,a):"source"),Ke&&re(fh(R))}ln||I(q=>q.kind==="error"?{kind:"loading",mode:zr}:q);const cn=window.setTimeout(()=>{Me||A.signal.aborted||Ei("still_active",{loadingId:de,filePath:a,fullPath:R,rootPath:H,mode:zr,durationMs:Math.round(performance.now()-Qe),isPathChange:ln})},3e3),js=window.setTimeout(()=>{if(Me||A.signal.aborted)return;const q=Ke?o("rightSidebar.edaTimeout"):dr?o("rightSidebar.model3dTimeout"):"File preview timed out. Try the file again or refresh the directory.";A.abort(new DOMException(q,"TimeoutError")),I({kind:"error",message:q}),ze("stuck_timeout",{error:q})},Ke?hh+5e3:dr?ph+5e3:mh(R)?35e3:Pg);if(Ke){const q=it==="pcb-3d"?z.current:null;q?(I(q),ze("eda_3d_client_cache_hit",{bytes:q.meta.size,view:q.view,mimeType:q.meta.mimeType})):gh(R,it,A.signal,"view_file",ke).then(qe=>{if(A.signal.aborted)return;Le=URL.createObjectURL(qe.blob);const Mt={kind:"eda",sourcePath:qe.path||R,objectUrl:Le,view:qe.view,meta:{size:qe.size,mimeType:qe.mimeType,modified:qe.modified}};if(qe.view==="pcb-3d"){const ur=z.current;ur&&ur.objectUrl!==Le&&URL.revokeObjectURL(ur.objectUrl),z.current=Mt,D(Mt),Le=null}I(Mt),ze("eda_loaded",{bytes:qe.size,view:qe.view,mimeType:qe.mimeType})}).catch(qe=>{A.signal.aborted||(I({kind:"error",message:qe instanceof Error&&/timed out/i.test(qe.message)?o("rightSidebar.edaTimeout"):qe instanceof Error?qe.message:o("rightSidebar.edaLoadFailed")}),ze("error",{error:qe instanceof Error?qe.message:String(qe)}))})}else if(_n)bh(R,A.signal,"view_file",ke).then(q=>{Le=URL.createObjectURL(q.blob),I({kind:"image",objectUrl:Le,meta:{size:q.size,mimeType:q.mimeType,modified:q.modified}}),ze("image_loaded",{bytes:q.size,mimeType:q.mimeType})}).catch(q=>{A.signal.aborted||(I({kind:"error",message:q instanceof Error?q.message:o("rightSidebar.imageLoadFailed")}),ze("error",{error:q instanceof Error?q.message:String(q)}))});else if(dr)xh(R,A.signal,"view_file",ke).then(q=>{A.signal.aborted||(Le=URL.createObjectURL(q.blob),I({kind:"model3d",sourcePath:q.path||R,objectUrl:Le,ext:q.ext,meta:{size:q.size,mimeType:q.mimeType,modified:q.modified}}),ze("model3d_loaded",{bytes:q.size,ext:q.ext}))}).catch(q=>{A.signal.aborted||(I({kind:"error",message:q instanceof Error&&(q.name==="TimeoutError"||/timed out/i.test(q.message))?o("rightSidebar.model3dTimeout"):q instanceof Error?q.message:o("rightSidebar.model3dLoadFailed")}),ze("error",{error:q instanceof Error?q.message:String(q)}))});else if(Rs){const q=yh(R)??"",qe=_h(R);I(Mt=>Mt.kind==="video"&&Mt.url===qe?Mt:{kind:"video",url:qe,meta:{size:null,mimeType:q,modified:null}}),ze("video_ready",{mimeType:q})}else rd(R,A.signal,"view_file",ke).then(q=>{if(!A.signal.aborted){if(q.binary){I({kind:"binary"});return}I({kind:"text",content:q.content,sourcePath:q.path||R,meta:{size:q.size,truncated:q.truncated}}),ze("text_loaded",{bytes:q.size,truncated:!!q.truncated})}}).catch(q=>{A.signal.aborted||(I({kind:"error",message:q instanceof Error?q.message:"Failed to read file"}),ze("error",{error:q instanceof Error?q.message:String(q)}))});return()=>{A.abort(),wt(ke),window.clearTimeout(cn),window.clearTimeout(js),Le&&URL.revokeObjectURL(Le),ze("cleanup")}},[a,H,In,Ot,O,o,te]),n.useEffect(()=>{if(j.kind!=="model3d"||!a){Ce(null);return}let R=!1;const A=a.lastIndexOf("/"),de=A>=0?a.slice(A+1):a,ke=A>=0?a.slice(0,A):"",Qe=ke.lastIndexOf("/"),Me=Qe>=0?ke.slice(0,Qe):"",ze=de.replace(/\.(stl|glb|gltf)$/i,""),Le=`${Me?`${Me}/`:""}features/${ze}.json`;return rd(Le).then(Ke=>{if(!R)try{const it=JSON.parse(Ke.content);Ce(it.version===1&&Array.isArray(it.features)&&it.features.length>0?it.features:null)}catch{Ce(null)}}).catch(()=>{R||Ce(null)}),()=>{R=!0}},[j,a]),n.useEffect(()=>{if(j.kind!=="text"){Oe(null);return}const R=H&&a&&!a.startsWith("/")?`${H}/${a}`:a,A=Pp(R),de=j.content,ke=Js(R??"")&&le==="preview",Qe=Ys(R??"")&&De==="preview";if(!A||ke||Qe||!Ep(de)){Oe(null);return}let Me=!1;const ze=Le=>{if(Me||!Le.registered(A)){Me||Oe(null);return}try{Oe(Tp(Le,de,A))}catch{Oe(null)}};return _e?ze(_e):(Oe(null),Ap().then(Le=>{Me||(Ee(Le),ze(Le))}).catch(()=>{})),()=>{Me=!0}},[j,_e,a,H,le,De]),n.useLayoutEffect(()=>{if(!pt||j.kind!=="text")return;const R=`${pt}:${le}:${De}`;if(kr.current===R)return;const A=Kd(H,a);if(kr.current=R,!A)return;const de=requestAnimationFrame(()=>{const ke=he.current;if(!ke)return;const Qe=le==="preview"?A.markdownTop??A.top:A.top;ke.scrollTo({top:Math.max(0,Qe??0),left:Math.max(0,A.left??0)}),Ge(le==="preview"?Math.max(0,Qe??0):0)});return()=>cancelAnimationFrame(de)},[a,le,De,j.kind,pt,H]),n.useEffect(()=>{pt&&Ui(H,a,{lineRange:N})},[a,N,pt,H]),n.useEffect(()=>{if(xe==null||j.kind!=="text")return;pe(null),O({start:xe,end:xe});const R=xe,A=requestAnimationFrame(()=>{const de=ve.current.get(R);de&&de.scrollIntoView({block:"center"}),F?.()});return()=>cancelAnimationFrame(A)},[xe,j,O,F]);const $n=n.useCallback(R=>{const A=he.current;if(!A)return!1;const de=typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(R):R.replace(/[^a-zA-Z0-9_-]/g,"\\$&"),ke=A.querySelector(`#${de}`);return ke?(ke.scrollIntoView({block:"start"}),!0):!1},[]);n.useEffect(()=>{const R=H&&a&&!a.startsWith("/")?`${H}/${a}`:a,A=j.kind==="text"&&Js(R??"")&&le==="preview";if(!At||!A)return;const de=requestAnimationFrame(()=>{$n(At)&&be(null)});return()=>cancelAnimationFrame(de)},[a,$n,le,At,j,H]),n.useLayoutEffect(()=>{const R=he.current;if(!R||!N){pe(null);return}if(U)return;const A=j.kind==="image"||j.kind==="loading"&&j.mode==="image",de=H&&a&&!a.startsWith("/")?`${H}/${a}`:a,ke=j.kind==="text"&&Js(de??"")&&le==="preview",Qe=j.kind==="text"&&Ys(de??"")&&De==="preview";if(j.kind!=="text"||A||ke||Qe){pe(null);return}const Me=()=>{const Le=ve.current.get(N.end);if(!Le||!R){pe(null);return}const Ke=Le.offsetTop+Le.offsetHeight/2,it=R.scrollLeft+Math.max(8,R.clientWidth-120);pe({top:Ke,left:it})};Me();const ze=new ResizeObserver(()=>Me());return ze.observe(R),()=>ze.disconnect()},[N,U,j,le,De,a,H,Je]);const Sr=j.kind==="text"&&!(Ys(St??"")&&De==="preview")&&!St?.toLowerCase().endsWith(".csv")&&!St?.toLowerCase().endsWith(".kicad_pro")&&!St?.toLowerCase().endsWith(".kicad_prl"),Fn=n.useCallback(()=>{rt(!1),wr(""),T([]),we(0),oo(W.current)},[]),en=n.useCallback(()=>{!i||!Sr||(rt(!0),requestAnimationFrame(()=>{const R=fe.current;!ge.current||!R?.isConnected||R.closest('[inert], [aria-hidden="true"], [hidden]')||R.getClientRects().length===0||getComputedStyle(R).visibility==="hidden"||!R.contains(document.activeElement)||(et.current?.focus(),et.current?.select())}))},[i,Sr]),Dr=n.useCallback(R=>{we(A=>$e.length===0?0:(A+R+$e.length)%$e.length)},[$e.length]),Ht=n.useCallback(R=>{if(R.nativeEvent.isComposing||!cg(fe.current,i,R))return;const A=dg(R);if(A==="open"&&Sr){R.preventDefault(),en();return}Se&&(A==="close"?(R.preventDefault(),Fn()):(A==="next"||A==="previous")&&(R.preventDefault(),Dr(A==="previous"?-1:1)))},[i,Fn,Se,Dr,en,Sr]);if(n.useLayoutEffect(()=>{if(oo(W.current),!i||!Se||!ht.trim()||!he.current){T([]),we(0);return}const R=fg(he.current,ht);return T(R),we(0),(fe.current?.contains(document.activeElement)||Ad(W.current))&&(Ii(R,0,W.current),Td(R[0])),()=>oo(W.current)},[i,Se,ht,Je,le,j]),n.useEffect(()=>{!i||!Se||!ht.trim()||!fe.current?.contains(document.activeElement)&&!Ad(W.current)||(Ii($e,V,W.current),Td($e[V]))},[i,V,$e,Se,ht]),n.useEffect(()=>()=>oo(W.current),[]),!a)return t.jsx("div",{className:"mx-3 mt-3 overflow-hidden rounded-xl border border-border/15 bg-surface-2 px-4 py-8 text-center text-sm text-muted-foreground",children:o("rightSidebar.selectFilePrompt")});const He=H&&!a.startsWith("/")?`${H}/${a}`:a,Rt=fo(He,H),Rr=ru(He,H),jr=j.kind==="text"&&j.content?j.content.split(`
1638
+ `);const b=f.length;f+=w.data,c.push({node:w,start:b,end:f.length,group:k}),m=k}const S=f.toLocaleLowerCase(),g=[];let x=0;for(;x<=S.length-i.length;){const w=S.indexOf(i,x);if(w<0)break;const k=w+i.length,b=c.find(P=>P.start<=w&&P.end>w),E=c.find(P=>P.start<k&&P.end>=k);if(b&&E&&b.group===E.group){const P=document.createRange();P.setStart(b.node,w-b.start),P.setEnd(E.node,k-E.start),g.push(P)}x=w+Math.max(i.length,1)}return g}function bu(){return typeof CSS<"u"&&CSS.highlights?CSS.highlights:null}let bo;function Ad(r){return bo===r}function oo(r){if(r&&bo!==r)return;const a=bu();a?.delete(gu),a?.delete(Zi),bo=void 0}function Ii(r,a,i){const c=bu();if(!c||typeof Highlight>"u")return;bo=i,c.set(gu,new Highlight(...r));const f=r[a];f?c.set(Zi,new Highlight(f)):c.delete(Zi)}function Td(r){r?.startContainer.parentElement?.scrollIntoView({block:"center",inline:"nearest",behavior:"smooth"})}function hg(r){return Array.from(new Set(r.split(/[\n,]/).map(a=>a.trim().replace(/^!+/,"")).filter(Boolean))).slice(0,24)}function pg(r,a){const i=a.trim();return!i||i==="."?r:/^(?:[/\\]|[A-Za-z]:[/\\])/.test(i)?i.replace(/[\\/]+$/,""):`${r.replace(/[\\/]+$/,"")}/${i.replace(/^\.?[\\/]+/,"").replace(/[\\/]+$/,"")}`}function mg(r,a){if(a===r)return".";const i=`${r.replace(/[\\/]+$/,"")}/`;return a.startsWith(i)?a.slice(i.length):a}function xu(r,a,i){return a?r:Qr.createPortal(r,i)}const al="termdock:right-sidebar:file-tree-scroll:v1",ol="termdock:right-sidebar:file-preview-reading-state:v1",hs="termdock:right-sidebar:file-tree-width:v1",yu="termdock:right-sidebar:markdown-view-mode:v1",vu="termdock:right-sidebar:diff-change-list-mode:v1",wu="termdock:right-sidebar:diff-wrap:v1",ku="termdock:diff-viewer:view-type:v1",Su="termdock:right-sidebar:file-search-mode:v1",$i="termdock:right-sidebar:collapsed-git-repo-groups:v1",Md="termdock:right-sidebar:collapsed-diff-directories:v1",Fi="termdock:right-sidebar:branch-audit-module-open:v1",Ru="termdock:right-sidebar:branch-audit-module:v1",gg=150,Ld="termdock:right-sidebar:context-draft-enabled:v1",Id="termdock:right-sidebar:context-draft-collapsed:v1",$d="termdock:right-sidebar:context-draft-auto-collapse:v1",Di="termdock:right-sidebar:context-draft-text:v1",bg=300,xg=20,yg=120,vg=250,wg=250,kg=120,Sg=700,_i=600,Rg=6e4;function Xs(r){return!!(r&&B.getState().nestedGitScanRoots[r])}const Fd=[2e3,5e3,15e3,3e4],jg=320,Cg=500,Ng=20,Pg=12e3,el=300,Dd=240,Eg=560,_d=n.lazy(()=>sl(()=>import("./ModelPreview-DuwBl4st.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]))),Ag=n.lazy(()=>sl(()=>import("./ArchitecturePanel-B51eVL3I.js"),__vite__mapDeps([32,1,2,3,4,5,33,11,12,13,24,20,25,26,17,18,34,19,8,21,9,10,14,15,22,23,27,28,29,30,6,31,35])).then(r=>({default:r.ArchitecturePanel}))),Tg=n.lazy(()=>sl(()=>import("./ComputerControlView-CnaeZBuh.js").then(r=>r.a),__vite__mapDeps([36,1,2,3,4,5,29,14,37,30])));function ju(r,a,i){return r&&!a?"unified":i}const Mg=new Set([".md",".markdown",".mdown",".mkdn",".mkd"]);function Lg(r){return r==="preview"||r==="source"}function Ig(r){return r==="list"||r==="tree"||r==="ai"}function Bd(){return dt(yu,Lg)??"preview"}function $g(){return dt(vu,Ig)??"tree"}function ra(r){return typeof r=="boolean"}function Fg(r){return typeof r=="string"}function Dg(){return dt(wu,ra)??!0}function _g(r){return r==="unified"||r==="split"}function Bg(){return dt(ku,_g)??"unified"}function Ug(r){return r==="name"||r==="content"||r==="regex"}function Og(){return dt(Su,Ug)??"name"}function Cu(r){return r.repositories??(r.context?.root?[{id:r.context.root,root:r.context.root,relativeRoot:".",name:xt(r.context.root)||r.context.root,depth:0,nested:!1,available:r.available,files:r.files,context:r.context,error:r.error}]:[])}function Hg(r,a){if(!a)return null;const i=new Set((r.repoFilters??[]).map(c=>c.root));return i.has(a)?a:i.size>0?null:(r.repositories??[]).some(c=>c.root===a)?a:null}function tl(r){return!r.activeGitRepoRoot&&(r.groupCount>1||r.label!==r.rootName)}function Nu(...r){const a=new Set;for(const i of r)for(const c of i)a.add(c.root);return a}function rl(r){return Array.isArray(r)&&r.every(a=>typeof a=="string")}function Ud(r){const a=dt(r,rl);return a?new Set(a):new Set}function Bi(r,a){Et(r,[...a])}function zg(r){if(!r||typeof r!="object"||Array.isArray(r))return!1;const a=r;return typeof a.filePath=="string"&&typeof a.hunkHeader=="string"&&typeof a.hunkIndex=="number"&&typeof a.fingerprint=="string"&&typeof a.additions=="number"&&typeof a.deletions=="number"&&typeof a.diff=="string"&&(a.oldPath===void 0||a.oldPath===null||typeof a.oldPath=="string")&&(a.newPath===void 0||a.newPath===null||typeof a.newPath=="string")&&(a.source===void 0||a.source==="committed"||a.source==="uncommitted"||a.source==="unknown")&&(a.commit===void 0||a.commit===null||typeof a.commit=="string")}function Gg(r){if(!r||typeof r!="object"||Array.isArray(r))return!1;const a=r;return typeof a.available=="boolean"&&(a.repoRoot===void 0||typeof a.repoRoot=="string")&&(a.workspaceRoot===void 0||typeof a.workspaceRoot=="string")&&(a.baseRef===void 0||typeof a.baseRef=="string")&&(a.baseBranch===void 0||typeof a.baseBranch=="string")&&(a.currentBranch===void 0||a.currentBranch===null||typeof a.currentBranch=="string")&&(a.headRef===void 0||a.headRef===null||typeof a.headRef=="string")&&(a.diffFingerprint===void 0||typeof a.diffFingerprint=="string")&&(a.stat===void 0||typeof a.stat=="string")&&(a.files===void 0||rl(a.files))&&(a.hunks===void 0||Array.isArray(a.hunks)&&a.hunks.every(zg))&&(a.commits===void 0||rl(a.commits))&&(a.commitCount===void 0||typeof a.commitCount=="number")&&(a.diff===void 0||typeof a.diff=="string")&&(a.truncated===void 0||typeof a.truncated=="boolean")&&(a.error===void 0||typeof a.error=="string")}function Wg(r){if(!r||typeof r!="object"||Array.isArray(r))return!1;const a=r;return typeof a.key=="string"&&Gg(a.diff)&&typeof a.repoLabel=="string"&&typeof a.createdAt=="number"}function Kg(r){return!r||typeof r!="object"||Array.isArray(r)?!1:Object.values(r).every(a=>{if(!a||typeof a!="object"||Array.isArray(a))return!1;const i=a;return Array.isArray(i.selectedRepoRoots)&&i.selectedRepoRoots.every(c=>typeof c=="string")&&!!i.repoTargetBranches&&typeof i.repoTargetBranches=="object"&&!Array.isArray(i.repoTargetBranches)&&Object.values(i.repoTargetBranches).every(c=>typeof c=="string")&&(i.repoBaseBranches===void 0||!!i.repoBaseBranches&&typeof i.repoBaseBranches=="object"&&!Array.isArray(i.repoBaseBranches)&&Object.values(i.repoBaseBranches).every(c=>typeof c=="string"))&&(i.previewEntries===void 0||Array.isArray(i.previewEntries)&&i.previewEntries.every(Wg))&&(i.selectedPreviewKey===void 0||i.selectedPreviewKey===null||typeof i.selectedPreviewKey=="string")&&(i.selectedPreviewFileKey===void 0||i.selectedPreviewFileKey===null||typeof i.selectedPreviewFileKey=="string")&&(i.previewDetailOpen===void 0||typeof i.previewDetailOpen=="boolean")&&(i.previewScrollTops===void 0||!!i.previewScrollTops&&typeof i.previewScrollTops=="object"&&!Array.isArray(i.previewScrollTops)&&Object.values(i.previewScrollTops).every(c=>typeof c=="number"))&&(i.previewMobileSlideIndex===void 0||typeof i.previewMobileSlideIndex=="number")&&(i.repoIncludeUncommitted===void 0||!!i.repoIncludeUncommitted&&typeof i.repoIncludeUncommitted=="object"&&!Array.isArray(i.repoIncludeUncommitted)&&Object.values(i.repoIncludeUncommitted).every(c=>typeof c=="boolean"))&&(i.includeUncommitted===void 0||typeof i.includeUncommitted=="boolean")&&typeof i.updatedAt=="number"})}function Od(){return dt(Ru,Kg)??{}}function Hd(r){return[r.repoRoot,r.baseRef,r.branchName??"",r.headRef??"",r.diffFingerprint??""].join("\0")}function zd(r){const a=r?.trim()??"",i=a.indexOf("/");return i>=0?a.slice(i+1):a}function Pu(r,a){const i=r?.trim(),c=a?.trim();return!i||!c?!1:i===c||zd(i)===zd(c)}function Gd(r){const a=r?.branch??null;return[r?.upstream,...r?.remoteBranches??[],...r?.branches??[]].find(c=>c&&!Pu(c,a))??""}function nl(r,a){const i=Math.max(Dd,a-320),c=Math.min(Eg,i);return Math.min(c,Math.max(Dd,r))}function qg(r){return typeof r=="number"&&Number.isFinite(r)}function Vg(r){return nl(dt(hs,qg)??el,r)}function Eu(r){const a=r.split(/[\\/]/).pop()??r,i=a.lastIndexOf(".");return i>=0?a.slice(i).toLowerCase():""}function Js(r){return Mg.has(Eu(r))}function fs({label:r,value:a,options:i,placeholder:c,searchPlaceholder:f,emptyText:m,disabled:p,onChange:S}){const{t:g}=Bt(),[x,w]=n.useState(!1),[k,b]=n.useState(""),[E,P]=n.useState(null),M=n.useRef(null),$=n.useRef(null),J=k.trim().toLowerCase(),N=n.useMemo(()=>J?i.filter(F=>`${F.label} ${F.meta??""}`.toLowerCase().includes(J)):i,[J,i]),O=i.find(F=>F.value===a),K=()=>{const F=k.trim();F&&(S(F),w(!1),b(""))},X=n.useCallback(()=>{const F=M.current?.getBoundingClientRect();if(!F)return!1;const o=12,fe=Math.max(220,Math.min(F.width,window.innerWidth-o*2)),W=Math.min(Math.max(o,F.left),window.innerWidth-fe-o),ge=window.innerHeight-F.bottom-o,H=F.top-o,ce=ge>=180||ge>=H,j=Math.max(96,(ce?ge:H)-4),I=Math.min(320,j);return P({left:W,top:ce?F.bottom+4:Math.max(o,F.top-I-4),width:fe,maxHeight:I}),!0},[]),xe=()=>{X(),w(!0)};return n.useEffect(()=>{if(!x)return;let F=0;const o=()=>{F||(F=window.requestAnimationFrame(()=>{F=0,X()}))},fe=W=>{const ge=W.target;ge instanceof Node&&(M.current?.contains(ge)||$.current?.contains(ge)||(w(!1),b("")))};return window.addEventListener("resize",o),window.addEventListener("scroll",o,!0),document.addEventListener("pointerdown",fe,!0),()=>{F&&window.cancelAnimationFrame(F),window.removeEventListener("resize",o),window.removeEventListener("scroll",o,!0),document.removeEventListener("pointerdown",fe,!0)}},[x,X]),t.jsxs("div",{className:"relative min-w-0",children:[t.jsxs("button",{ref:M,type:"button",disabled:p,onClick:()=>{if(!p){if(b(""),x){w(!1);return}xe()}},className:"group flex w-full items-center justify-between gap-2 min-h-10 rounded-md border border-transparent bg-surface-2 px-3 py-2 text-left transition hover:bg-surface-elevated focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",children:[t.jsxs("span",{className:"flex min-w-0 flex-1 items-center gap-3",children:[t.jsx("span",{className:"shrink-0 text-[11px] text-muted-foreground",children:r}),t.jsx("span",{className:`min-w-0 flex-1 truncate text-[13px] ${a?"text-foreground":"text-muted-foreground/70"}`,children:O?.label??(a||c)})]}),t.jsx(oa,{size:13,className:`shrink-0 text-muted-foreground transition group-hover:text-foreground ${x?"rotate-180":""}`})]}),x&&!p&&typeof document<"u"&&Qr.createPortal(t.jsxs("div",{ref:$,className:"fixed z-popover overflow-hidden rounded-lg border border-border/15 bg-surface shadow-lg",onClick:F=>F.stopPropagation(),style:{left:E?.left??12,top:E?.top??12,width:E?.width??260,maxHeight:E?.maxHeight??320},children:[t.jsx("div",{className:"border-b border-border/10 p-1.5",children:t.jsxs("div",{className:"flex items-center gap-1.5 rounded-md bg-surface-2 px-2 py-1.5",children:[t.jsx(ms,{size:12,className:"shrink-0 text-muted-foreground"}),t.jsx("input",{autoFocus:!0,value:k,onChange:F=>b(F.target.value),onKeyDown:F=>{if(F.key==="Escape"){F.preventDefault(),w(!1),b("");return}F.key==="Enter"&&(F.preventDefault(),K())},onBlur:()=>{k.trim()&&N.length===0&&K()},placeholder:f,className:"min-w-0 flex-1 bg-transparent text-[12px] text-foreground outline-none placeholder:text-muted-foreground/70"})]})}),t.jsxs("div",{className:"overflow-y-auto p-1",style:{maxHeight:Math.max(96,(E?.maxHeight??320)-46)},children:[k.trim()&&!i.some(F=>F.value===k.trim())&&t.jsxs("button",{type:"button",onMouseDown:F=>F.preventDefault(),onClick:K,className:"mb-1 flex w-full items-center justify-between gap-2 rounded-md bg-primary/10 px-2 py-1.5 text-left text-[12px] font-medium text-primary transition hover:bg-primary/15",children:[t.jsx("span",{className:"min-w-0 truncate",children:k.trim()}),t.jsx("span",{className:"shrink-0 text-[10px] text-primary/75",children:g("common.use")})]}),N.length>0?N.map(F=>t.jsxs("button",{type:"button",onClick:()=>{S(F.value),w(!1),b("")},className:`flex w-full items-center justify-between gap-2 rounded-md px-2 py-1.5 text-left text-[12px] transition hover:bg-surface-2 ${F.value===a?"bg-accent/10 text-accent":"text-foreground"}`,children:[t.jsx("span",{className:"min-w-0 truncate font-medium",children:F.label}),F.meta&&t.jsx("span",{className:"shrink-0 text-[10px] text-muted-foreground",children:F.meta})]},F.value)):t.jsx("div",{className:"px-2 py-2 text-[11px] text-muted-foreground",children:m})]})]}),document.body)]})}function Wd({open:r,onOpenChange:a,showScopePicker:i,selectedAll:c,repos:f,selectedRoots:m,onToggleRepo:p,onGenerate:S,onSecondaryAction:g,disabled:x,generateDisabled:w,secondaryDisabled:k,inserted:b,buttonLabel:E,insertedLabel:P,title:M,ariaLabel:$,scopeTitle:J,scopeLabel:N,allLabel:O,generateLabel:K,secondaryLabel:X,secondaryTitle:xe,secondaryLoading:F,loading:o,error:fe,statusTitle:W,extraContent:ge,renderRepoExtra:H,menuItem:ce=!1}){return t.jsxs("div",{className:ce?"relative w-full":"relative inline-flex shrink-0",children:[t.jsxs("button",{type:"button",role:ce?"menuitem":void 0,tabIndex:ce?-1:void 0,onClick:j=>{i?a(!r):w||S(j.currentTarget)},disabled:x,className:`relative flex items-center rounded-md transition disabled:cursor-not-allowed disabled:opacity-50 ${ce?"min-h-10 w-full gap-2.5 px-2.5 text-left text-[12px] focus:bg-surface-2 focus:outline-none [@media(pointer:coarse)]:min-h-11":"h-7 shrink-0 justify-center gap-1 px-2 text-[11px] font-medium active:scale-95"} ${fe?"text-destructive hover:bg-destructive/5":b?"bg-surface-elevated text-foreground":ce?"text-foreground hover:bg-surface-2":"text-muted-foreground hover:bg-surface-2 hover:text-foreground"}`,"aria-label":$,title:W??(i?`${J}: ${N}`:M),children:[o?t.jsx(ct,{size:ce?15:13,className:"shrink-0 animate-spin"}):t.jsx(aa,{size:ce?15:13,className:ce?"shrink-0 text-muted-foreground":void 0}),t.jsx("span",{className:ce?"min-w-0 flex-1":void 0,children:b?P:E}),i&&(ce?t.jsx(ps,{size:13,className:"shrink-0 text-muted-foreground"}):t.jsx(oa,{size:11,className:`shrink-0 transition ${r?"rotate-180":""}`})),fe&&t.jsx("span",{className:"absolute right-0.5 top-0.5 size-1.5 rounded-full bg-destructive"})]}),i&&r&&typeof document<"u"&&Qr.createPortal(t.jsx("div",{className:"fixed inset-0 z-modal-backdrop bg-[var(--app-backdrop)] px-3 py-6 backdrop-blur-sm animate-fade-in",onClick:()=>a(!1),children:t.jsxs("div",{className:"fixed left-1/2 top-1/2 z-modal-panel flex max-h-[min(82vh,36rem)] w-[calc(100vw-1.5rem)] max-w-[42rem] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-border/20 bg-surface text-[11px] shadow-2xl",onClick:j=>j.stopPropagation(),children:[t.jsxs("div",{className:"flex items-center justify-between gap-3 border-b border-border/15 px-3 py-2",children:[t.jsxs("div",{className:"min-w-0",children:[t.jsx("div",{className:"text-[12px] font-semibold text-foreground",children:J}),t.jsx("div",{className:"mt-0.5 truncate text-[10px] text-muted-foreground",children:N})]}),t.jsx("button",{type:"button",onClick:()=>a(!1),className:"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-surface-2 text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground active:scale-95","aria-label":"Close",children:t.jsx(Qt,{size:14})})]}),t.jsxs("div",{className:"min-h-0 flex-1 overflow-y-auto p-2",children:[ge,t.jsxs("button",{type:"button",onClick:()=>p(null),className:`flex w-full items-center justify-between gap-2 rounded-md px-2 py-1.5 text-left font-medium transition ${c?"bg-primary/15 text-primary":"text-muted-foreground hover:bg-surface-2 hover:text-foreground"}`,children:[t.jsx("span",{className:"truncate",children:O}),c&&t.jsx("span",{className:"text-[10px]",children:"✓"})]}),f.map(j=>{const I=m.includes(j.root);return t.jsxs("div",{className:`mt-1 rounded-md transition ${I?"bg-primary/15 text-primary":""}`,children:[t.jsxs("button",{type:"button",onClick:()=>p(j.root),className:`flex w-full items-center justify-between gap-2 rounded-md px-2 py-1.5 text-left font-medium transition ${I?"text-primary":"text-muted-foreground hover:bg-surface-2 hover:text-foreground"}`,title:j.root,children:[t.jsxs("span",{className:"min-w-0",children:[t.jsx("span",{className:"block truncate",children:j.label}),j.branch&&t.jsx("span",{className:"block truncate text-[9px] opacity-70",children:j.branch})]}),I&&t.jsx("span",{className:"text-[10px]",children:"✓"})]}),H&&(c||I)&&t.jsx("div",{className:"px-2 pb-2",children:H(j)})]},j.root)})]}),t.jsxs("div",{className:`grid grid-cols-1 gap-1.5 border-t border-border/15 p-2 ${g&&X?"sm:grid-cols-2":""}`,children:[g&&X&&t.jsxs("button",{type:"button",onClick:()=>{k||(a(!1),g())},disabled:k,className:"flex h-7 w-full items-center justify-center gap-1 rounded-md bg-surface-2 px-2 text-[11px] font-semibold text-muted-foreground transition hover:bg-surface-elevated hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50 active:scale-95",title:xe,children:[F?t.jsx(ct,{size:12,className:"animate-spin"}):t.jsx(lu,{size:12}),X]}),t.jsxs("button",{type:"button",onClick:async j=>{if(w)return;await S(j.currentTarget)!==!1&&a(!1)},disabled:w,className:"flex h-7 w-full items-center justify-center gap-1 rounded-md bg-primary/15 px-2 text-[11px] font-semibold text-primary transition hover:bg-primary/25 disabled:cursor-not-allowed disabled:opacity-50 active:scale-95",title:M,children:[t.jsx(aa,{size:12}),K]})]})]})}),document.body)]})}function Yg(r){if(!r||typeof r!="object"||Array.isArray(r))return!1;for(const a of Object.values(r)){if(!a||typeof a!="object"||Array.isArray(a))return!1;const i=a;if(typeof i.top!="number"||!Number.isFinite(i.top)||typeof i.updatedAt!="number"||!Number.isFinite(i.updatedAt))return!1}return!0}function Au(){return dt(al,Yg)??{}}function Xg(r,a){const i=Au(),c=Object.entries({...i,[r]:{top:a,updatedAt:Date.now()}}).sort(([,f],[,m])=>m.updatedAt-f.updatedAt).slice(0,xg);na(al,Object.fromEntries(c),vg)}function Jg(r){if(!r||typeof r!="object"||Array.isArray(r))return!1;const a=r;return typeof a.start=="number"&&Number.isFinite(a.start)&&typeof a.end=="number"&&Number.isFinite(a.end)&&a.start>=1&&a.end>=a.start}function Qg(r){if(!r||typeof r!="object"||Array.isArray(r))return!1;for(const a of Object.values(r)){if(!a||typeof a!="object"||Array.isArray(a))return!1;const i=a;if(typeof i.top!="number"||!Number.isFinite(i.top)||i.left!==void 0&&(typeof i.left!="number"||!Number.isFinite(i.left))||i.markdownTop!==void 0&&(typeof i.markdownTop!="number"||!Number.isFinite(i.markdownTop))||i.lineRange!==void 0&&i.lineRange!==null&&!Jg(i.lineRange)||typeof i.updatedAt!="number"||!Number.isFinite(i.updatedAt))return!1}return!0}function il(r,a){if(!a)return null;const i=r&&!a.startsWith("/")?`${r}/${a}`:a;return r?`${r}::${i}`:i}function Tu(){return dt(ol,Qg)??{}}function Kd(r,a){const i=il(r,a);return i?Tu()[i]??null:null}function Ui(r,a,i){const c=il(r,a);if(!c)return;const f=Tu(),m=f[c]??{top:0,left:0,markdownTop:0,lineRange:null,updatedAt:Date.now()},p=Object.entries({...f,[c]:{...m,...i,updatedAt:Date.now()}}).sort(([,S],[,g])=>g.updatedAt-S.updatedAt).slice(0,yg);na(ol,Object.fromEntries(p),wg)}function Oi({slow:r}){return t.jsx(fp,{slow:r})}function io({message:r,onRetry:a}){const{t:i}=Bt();return t.jsxs("div",{className:"mx-3 mt-3 overflow-hidden rounded-xl border border-destructive/20 bg-destructive/5 px-4 py-5 text-center text-sm text-destructive",children:[t.jsx("div",{className:"font-medium",children:i("rightSidebar.gitChangesLoadFailed")}),t.jsx("div",{className:"mt-1 break-words text-xs opacity-85",children:r}),t.jsx("button",{type:"button",onClick:a,className:"mt-3 rounded-full bg-destructive/10 px-3 py-1.5 text-xs font-semibold text-destructive transition hover:bg-destructive/15 active:scale-95",children:i("rightSidebar.retryGitChanges")})]})}function fo(r,a){const i=a&&r.startsWith(`${a}/`)?r.slice(a.length+1):r,c=i.split("/").filter(Boolean);return{name:c.pop()||i,dir:c.join("/")}}function xt(r){if(!r)return"";const a=r.replace(/\/+$/,"");return a.split("/").pop()||a||"/"}function lo(r){if(!r)return null;const a=Jd(r);return a==="/"?null:Uh(a)}function Zg(r,a,i){return Vi(r,a,i)}function Mu(r){const a=new Map;for(const i of r)a.set(ll(i),i);return a}function Lu(r,a){const i=new Map(r);for(const c of a)i.set(ll(c),c);return i}function qd(r,a){let i=0;for(const c of r){const f=mt(c,a);f&&a&&f!==a&&(i+=1)}return i}function eb(r){return r.reduce((a,i)=>a+(i.staged?1:0),0)}function tb(r,a){return Array.from(Lu(Mu(r),a).values()).sort((i,c)=>i.path.localeCompare(c.path))}function rb(r,a){const i=r.relativeRoot==="."?xt(a??r.root)||r.name||r.root:r.relativeRoot||r.name||xt(r.root)||r.root;return{root:r.root,label:i,branch:r.context?.branch??null,count:r.files.length,staged:eb(r.files)}}function Iu(r,a){const i=xt(a??"")||a||"";return r.map(c=>rb(c,a)).sort((c,f)=>i&&c.label===i?-1:i&&f.label===i?1:c.label.localeCompare(f.label))}function $u(r,a,i,c,f){const m=Cu(i),p=m.find(M=>M.root===c)??m[0]??null,S=a.find(M=>M.root===c)??null,g=S?.relativeRoot??p?.relativeRoot??".",x=S?.name??p?.name??(xt(c)||c),w=(p?.files??i.files).map(M=>({...M,repoRoot:c,repoRelativeRoot:g,repoName:x})),k=p?.context??i.context,b={...S??p??{id:c,root:c,relativeRoot:g,name:x,depth:0,nested:!!(f&&c!==f),available:i.available,files:[],context:null},...p??{},id:S?.id??p?.id??c,root:c,displayRoot:S?.displayRoot??p?.displayRoot,relativeRoot:g,name:x,depth:S?.depth??p?.depth??0,nested:S?.nested??p?.nested??!!(f&&c!==f),available:p?.available??i.available,deferred:p?.deferred??!1,files:w,context:k?{...k,root:c,changedFiles:w.map(M=>({path:M.path,absolutePath:M.absolutePath,status:M.status}))}:null,untrackedDeferred:p?.untrackedDeferred??i.untrackedDeferred,error:p?.error??i.error},E=S?a.map(M=>M.root===c?b:M):[...a,b];return{files:Array.from(r).filter(M=>mt(M,f)!==c).concat(w),repositories:E,repoFilters:Iu(E,f)}}function mt(r,a){return r.repoRoot??a}function ll(r){return`${r.repoRoot??""}\0${r.path}`}function yr(r){return r.absolutePath||r.path}function Hi(r){return ll(r)}function nb(r){return r.repoRelativeRoot&&r.repoRelativeRoot!=="."?r.repoRelativeRoot:r.repoName??""}function Vd(r){return r.reduce((a,i)=>a+(i.staged?1:0),0)}function Yd(r){const a={added:0,modified:0,deleted:0,renamed:0,copied:0,untracked:0,conflicted:0,staged:0,other:0};for(const i of r)i.status==="added"?a.added+=1:i.status==="modified"?a.modified+=1:i.status==="deleted"?a.deleted+=1:i.status==="renamed"?a.renamed+=1:i.status==="copied"?a.copied+=1:i.status==="untracked"?a.untracked+=1:i.status==="conflicted"?a.conflicted+=1:a.other+=1,i.staged&&(a.staged+=1);return a}function Qs(r){let a=0;const i=r??"root";for(let c=0;c<i.length;c+=1)a=Math.imul(a^i.charCodeAt(c),16777619);return`right-sidebar-git-bundle:${(a>>>0).toString(36)}`}function Zs(r,a){return typeof r!="number"||!Number.isFinite(r)||r<=0?null:new Intl.DateTimeFormat(a==="zh"?"zh-CN":"en",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}).format(new Date(r))}function vr(r){return r instanceof DOMException&&r.name==="AbortError"}function sb(r){const a=r.error??r.context?.error??"";return a.includes("request was cancelled")||a.includes("IO_REQUEST_CANCELLED")}function Xd(r){return r?.available===!1&&r.code==="NOT_GIT_REPOSITORY"}function ab({actions:r,running:a,completed:i}){const{t:c}=Bt(),[f,m]=n.useState(!1),p=n.useRef(null),S=r.find(x=>a?.action===x.key),g=r.find(x=>i?.action===x.key);return r.length===0?null:(n.useEffect(()=>{if(!f)return;const x=k=>{const b=k.target;b instanceof Node&&p.current?.contains(b)||m(!1)},w=k=>{k.key==="Escape"&&m(!1)};return document.addEventListener("pointerdown",x),document.addEventListener("keydown",w),()=>{document.removeEventListener("pointerdown",x),document.removeEventListener("keydown",w)}},[f]),t.jsxs("div",{ref:p,className:"relative shrink-0",children:[t.jsx("button",{type:"button",onClick:x=>{x.stopPropagation(),m(w=>!w)},disabled:r.every(x=>x.disabled)&&!a&&!i,className:`inline-flex h-6 min-w-6 shrink-0 items-center justify-center rounded-md transition active:scale-95 disabled:opacity-50 ${f?"bg-surface-elevated text-foreground":g?"bg-accent/10 text-accent":"bg-surface-2 text-muted-foreground hover:bg-surface-elevated hover:text-foreground"}`,title:S?.label??g?.label??c("rightSidebar.gitQuickActions"),children:S?t.jsx(ct,{size:13,className:"animate-spin"}):g?t.jsx("span",{className:"text-[12px] font-semibold",children:"✓"}):t.jsx(ho,{size:14})}),f&&t.jsx("div",{className:"absolute right-0 top-[calc(100%+2px)] z-30 w-44 overflow-hidden rounded-xl border border-border/15 bg-surface/98 p-1 text-[12px] shadow-xl shadow-[0_18px_48px_var(--app-shadow-soft)] backdrop-blur animate-fade-in",children:r.map(x=>{const w=a?.action===x.key,k=i?.action===x.key;return t.jsxs("button",{type:"button",onClick:b=>{b.stopPropagation(),x.onClick(),m(!1)},disabled:x.disabled||!!a,className:`flex w-full items-center gap-2 rounded-lg px-2.5 py-1.5 text-left font-medium transition active:scale-[0.99] disabled:opacity-50 ${k?"bg-accent/10 text-accent":x.destructive?"text-destructive hover:bg-destructive/10":"text-foreground hover:bg-surface-2"}`,children:[t.jsx("span",{className:"flex h-4 w-4 shrink-0 items-center justify-center",children:w?t.jsx(ct,{size:13,className:"animate-spin"}):k?"✓":null}),t.jsx("span",{className:"min-w-0 flex-1 truncate",children:x.label})]},x.key)})})]}))}function ob(r){const a=window.getComputedStyle(r).overflowY;return(a==="auto"||a==="scroll")&&r.scrollHeight>r.clientHeight+1}function Fu(r){let a=r;for(;a;){if(a.classList.contains("termdock-diff-stream-scroller")&&ob(a))return a;a=a.parentElement}return r.closest(".termdock-diff-stream-scroller")}function gs(r){return r.getClientRects().length>0&&window.getComputedStyle(r).visibility!=="hidden"}const zi=new WeakMap;function xo(r){const a=zi.get(r);a!==void 0&&window.clearTimeout(a),r.classList.remove("diff-walkthrough-target"),r.offsetWidth,r.classList.add("diff-walkthrough-target");const i=window.setTimeout(()=>{r.classList.remove("diff-walkthrough-target"),zi.delete(r)},1700);zi.set(r,i)}function ib(r){const a=CSS.escape(r),i=[`[data-diff-stream-item="${a}"]`,`[data-diff-selection-path="${a}"]`,`[data-diff-absolute-path="${a}"]`].join(","),c=Array.from(document.querySelectorAll(".termdock-diff-stream-scroller"));let f=null;for(const S of c){if(!gs(S))continue;const g=S.querySelector(i);if(g&&gs(g)){f=g;break}}if(f??=Array.from(document.querySelectorAll(i)).find(gs)??null,!f)return;const m=Fu(f);if(!m){f.scrollIntoView({block:"start",behavior:"smooth"}),xo(f);return}const p=f.getBoundingClientRect().top-m.getBoundingClientRect().top+m.scrollTop;m.scrollTo({top:Math.max(0,p),behavior:"instant"}),xo(f)}function Ln(r){const a=CSS.escape(r.filePath),i=typeof r.sectionIndex=="number"?String(r.sectionIndex):null,c=typeof r.hunkIndex=="number"?String(r.hunkIndex):null,f=r.sectionFingerprint?CSS.escape(r.sectionFingerprint):null,m=r.hunkFingerprint?CSS.escape(r.hunkFingerprint):null,p=[i!==null&&f?`[data-diff-section-audit="${a}"][data-diff-section-index="${i}"][data-diff-section-fingerprint="${f}"]`:null,i!==null&&f?`[data-diff-section-anchor="${a}"][data-diff-section-index="${i}"][data-diff-section-fingerprint="${f}"]`:null,i!==null?`[data-diff-section-audit="${a}"][data-diff-section-index="${i}"]`:null,i!==null?`[data-diff-section-anchor="${a}"][data-diff-section-index="${i}"]`:null,c!==null&&m?`[data-diff-hunk-anchor="${a}"][data-diff-hunk-index="${c}"][data-diff-hunk-fingerprint="${m}"]`:null,c!==null?`[data-diff-hunk-anchor="${a}"][data-diff-hunk-index="${c}"]`:null,`[data-diff-file-path="${a}"]`].filter(P=>!!P),S=Array.from(document.querySelectorAll(".termdock-diff-stream-scroller"));let g=null;for(const P of S)if(gs(P)){for(const M of p){const $=P.querySelector(M);if($&&gs($)){g=$;break}}if(g)break}if(g??=p.flatMap(P=>Array.from(document.querySelectorAll(P))).find(gs)??null,!g){ib(r.filePath);return}const x=Fu(g);if(!x){g.scrollIntoView({block:"center",behavior:"smooth"}),xo(g);return}const w=g.getBoundingClientRect(),k=x.getBoundingClientRect(),E=w.top-k.top+x.scrollTop-Math.max(24,(x.clientHeight-w.height)/2);x.scrollTo({top:Math.max(0,E),behavior:"instant"}),xo(g)}let lb=0,cb=0,db=0,ub=0,fb=0;function ot(r,a={}){if(typeof window>"u")return;const i=JSON.stringify({level:r==="error"||r==="empty_bundle"?"warn":"info",message:`GIT_BUNDLE ${r}`,data:{seq:++cb,ts:Date.now(),...a}});fetch("/api/client-log",{method:"POST",headers:{"Content-Type":"application/json"},body:i,keepalive:!0}).catch(()=>{})}function ea(r,a={}){if(typeof window>"u")return;const i=JSON.stringify({level:"info",message:`DIFF_INTERACTION ${r}`,data:{seq:++ub,ts:Date.now(),...a}});fetch("/api/client-log",{method:"POST",headers:{"Content-Type":"application/json"},body:i,keepalive:!0}).catch(()=>{})}function hb(){return`diff-ui-${Date.now().toString(36)}-${(++fb).toString(36)}`}function pb(r){return r instanceof Element?r.closest("[data-diff-selection-path]"):null}function mb(r){const a=r.target instanceof HTMLElement?r.target:null;return{eventType:r.type,button:r.button,pointerType:r instanceof globalThis.PointerEvent?r.pointerType:void 0,targetTag:a?.tagName,targetClass:a?.className,targetText:a?.textContent?.slice(0,80)}}function yo({onReviewReference:r,filePath:a,active:i=!0,onInsertReference:c,onInsertText:f,onInsertFeature:m,onReferenceCopied:p,onClose:S,onDirectoryLinkOpen:g,isMobile:x,markdownOutlineOpen:w,markdownOutlineCloseSignal:k,onOpenMarkdownOutline:b,onCloseMarkdownOutline:E,markdownImageLightboxOpen:P,markdownImageLightboxCloseSignal:M,onOpenMarkdownImageLightbox:$,onCloseMarkdownImageLightbox:J,lineRange:N,onLineRangeChange:O,insertedReferenceKey:K,copiedReferenceKey:X,scrollToLine:xe,onScrollToLineHandled:F}){const{t:o}=Bt(),fe=n.useRef(null),W=n.useRef({}),ge=n.useRef(i);ge.current=i,n.useEffect(()=>{i||fe.current?.querySelectorAll("video").forEach(R=>R.pause())},[i]);const H=B(R=>R.rootPath),ce=B(R=>R.selectFile),[j,I]=n.useState({kind:"idle"}),[te,re]=n.useState("schematic"),[C,D]=n.useState(null),z=n.useRef(null),[ie,Ce]=n.useState(null),ve=n.useRef(new Map),he=n.useRef(null),[U,pe]=n.useState(null),[le,Ie]=n.useState(()=>Bd()),[De,Pe]=n.useState(()=>Nd(H,a)),L=n.useRef(null),[se,Te]=n.useState(!1),[_e,Ee]=n.useState(null),[Ut,Ge]=n.useState(0),[ut,We]=n.useState([]),[At,be]=n.useState(null),ft=n.useRef(null),lr=n.useRef(a),[Je,Oe]=n.useState(null),Q=ih(H&&a&&!a.startsWith("/")?`${H}/${a}`:a,i),[Se,rt]=n.useState(!1),[ht,wr]=n.useState(""),[$e,T]=n.useState([]),[V,we]=n.useState(0),et=n.useRef(null),kt=tu(p),pt=il(H,a);n.useEffect(()=>{if(lr.current===a)return;lr.current=a;const R=a&&H&&!a.startsWith("/")?`${H}/${a}`:a;if(ft.current===R){ft.current=null;return}ft.current=null,We([]),be(null),rt(!1),wr("")},[a,H]);const St=a?H&&!a.startsWith("/")?`${H}/${a}`:a:null,In=B(R=>St?(R.fileChangeVersions.get(St)??0)+R.fileWatchEpoch:R.fileWatchEpoch),bs=n.useRef(null),kr=n.useRef(null),[Ot,Zr]=n.useState(0),Zt=n.useCallback(()=>Zr(R=>R+1),[]);n.useEffect(()=>{const R=z.current;return z.current=null,D(null),R&&URL.revokeObjectURL(R.objectUrl),()=>{const A=z.current;z.current=null,A&&URL.revokeObjectURL(A.objectUrl)}},[St,In,Ot]),n.useEffect(()=>{if(!a){bs.current=null,I({kind:"idle"});return}const R=H&&!a.startsWith("/")?`${H}/${a}`:a,A=new AbortController,de=++lb,ke=`right-sidebar-file-preview:${de}`,Qe=performance.now();let Me=!1;const ze=(q,qe={})=>{Me||(Me=!0,Ei("end",{loadingId:de,reason:q,durationMs:Math.round(performance.now()-Qe),filePath:a,fullPath:R,rootPath:H,...qe}))};let Le=null;const Ke=lh(R),it=Ke?R.toLowerCase().endsWith(".kicad_pcb")?te==="schematic"?"pcb-front":te:"schematic":te,_n=!Ke&&ch(R),dr=!Ke&&!_n&&dh(R),Rs=!Ke&&!_n&&!dr&&uh(R),an=Js(R),on=Ys(R),zr=Ke?"eda":_n?"image":dr?"model3d":Rs?"video":"text",ln=bs.current!==R;if(bs.current=R,ln){Ei("start",{loadingId:de,filePath:a,fullPath:R,rootPath:H,mode:zr,externalVersion:In}),I({kind:"loading",mode:zr}),kr.current=null;const q=Kd(H,a);O(q?.lineRange??null),Ie(an?Bd():"source"),Pe(on?Nd(H,a):"source"),Ke&&re(fh(R))}ln||I(q=>q.kind==="error"?{kind:"loading",mode:zr}:q);const cn=window.setTimeout(()=>{Me||A.signal.aborted||Ei("still_active",{loadingId:de,filePath:a,fullPath:R,rootPath:H,mode:zr,durationMs:Math.round(performance.now()-Qe),isPathChange:ln})},3e3),js=window.setTimeout(()=>{if(Me||A.signal.aborted)return;const q=Ke?o("rightSidebar.edaTimeout"):dr?o("rightSidebar.model3dTimeout"):"File preview timed out. Try the file again or refresh the directory.";A.abort(new DOMException(q,"TimeoutError")),I({kind:"error",message:q}),ze("stuck_timeout",{error:q})},Ke?hh+5e3:dr?ph+5e3:mh(R)?35e3:Pg);if(Ke){const q=it==="pcb-3d"?z.current:null;q?(I(q),ze("eda_3d_client_cache_hit",{bytes:q.meta.size,view:q.view,mimeType:q.meta.mimeType})):gh(R,it,A.signal,"view_file",ke).then(qe=>{if(A.signal.aborted)return;Le=URL.createObjectURL(qe.blob);const Mt={kind:"eda",sourcePath:qe.path||R,objectUrl:Le,view:qe.view,meta:{size:qe.size,mimeType:qe.mimeType,modified:qe.modified}};if(qe.view==="pcb-3d"){const ur=z.current;ur&&ur.objectUrl!==Le&&URL.revokeObjectURL(ur.objectUrl),z.current=Mt,D(Mt),Le=null}I(Mt),ze("eda_loaded",{bytes:qe.size,view:qe.view,mimeType:qe.mimeType})}).catch(qe=>{A.signal.aborted||(I({kind:"error",message:qe instanceof Error&&/timed out/i.test(qe.message)?o("rightSidebar.edaTimeout"):qe instanceof Error?qe.message:o("rightSidebar.edaLoadFailed")}),ze("error",{error:qe instanceof Error?qe.message:String(qe)}))})}else if(_n)bh(R,A.signal,"view_file",ke).then(q=>{Le=URL.createObjectURL(q.blob),I({kind:"image",objectUrl:Le,meta:{size:q.size,mimeType:q.mimeType,modified:q.modified}}),ze("image_loaded",{bytes:q.size,mimeType:q.mimeType})}).catch(q=>{A.signal.aborted||(I({kind:"error",message:q instanceof Error?q.message:o("rightSidebar.imageLoadFailed")}),ze("error",{error:q instanceof Error?q.message:String(q)}))});else if(dr)xh(R,A.signal,"view_file",ke).then(q=>{A.signal.aborted||(Le=URL.createObjectURL(q.blob),I({kind:"model3d",sourcePath:q.path||R,objectUrl:Le,ext:q.ext,meta:{size:q.size,mimeType:q.mimeType,modified:q.modified}}),ze("model3d_loaded",{bytes:q.size,ext:q.ext}))}).catch(q=>{A.signal.aborted||(I({kind:"error",message:q instanceof Error&&(q.name==="TimeoutError"||/timed out/i.test(q.message))?o("rightSidebar.model3dTimeout"):q instanceof Error?q.message:o("rightSidebar.model3dLoadFailed")}),ze("error",{error:q instanceof Error?q.message:String(q)}))});else if(Rs){const q=yh(R)??"",qe=_h(R);I(Mt=>Mt.kind==="video"&&Mt.url===qe?Mt:{kind:"video",url:qe,meta:{size:null,mimeType:q,modified:null}}),ze("video_ready",{mimeType:q})}else rd(R,A.signal,"view_file",ke).then(q=>{if(!A.signal.aborted){if(q.binary){I({kind:"binary"});return}I({kind:"text",content:q.content,sourcePath:q.path||R,meta:{size:q.size,truncated:q.truncated}}),ze("text_loaded",{bytes:q.size,truncated:!!q.truncated})}}).catch(q=>{A.signal.aborted||(I({kind:"error",message:q instanceof Error?q.message:"Failed to read file"}),ze("error",{error:q instanceof Error?q.message:String(q)}))});return()=>{A.abort(),wt(ke),window.clearTimeout(cn),window.clearTimeout(js),Le&&URL.revokeObjectURL(Le),ze("cleanup")}},[a,H,In,Ot,O,o,te]),n.useEffect(()=>{if(j.kind!=="model3d"||!a){Ce(null);return}let R=!1;const A=a.lastIndexOf("/"),de=A>=0?a.slice(A+1):a,ke=A>=0?a.slice(0,A):"",Qe=ke.lastIndexOf("/"),Me=Qe>=0?ke.slice(0,Qe):"",ze=de.replace(/\.(stl|glb|gltf)$/i,""),Le=`${Me?`${Me}/`:""}features/${ze}.json`;return rd(Le).then(Ke=>{if(!R)try{const it=JSON.parse(Ke.content);Ce(it.version===1&&Array.isArray(it.features)&&it.features.length>0?it.features:null)}catch{Ce(null)}}).catch(()=>{R||Ce(null)}),()=>{R=!0}},[j,a]),n.useEffect(()=>{if(j.kind!=="text"){Oe(null);return}const R=H&&a&&!a.startsWith("/")?`${H}/${a}`:a,A=Pp(R),de=j.content,ke=Js(R??"")&&le==="preview",Qe=Ys(R??"")&&De==="preview";if(!A||ke||Qe||!Ep(de)){Oe(null);return}let Me=!1;const ze=Le=>{if(Me||!Le.registered(A)){Me||Oe(null);return}try{Oe(Tp(Le,de,A))}catch{Oe(null)}};return _e?ze(_e):(Oe(null),Ap().then(Le=>{Me||(Ee(Le),ze(Le))}).catch(()=>{})),()=>{Me=!0}},[j,_e,a,H,le,De]),n.useLayoutEffect(()=>{if(!pt||j.kind!=="text")return;const R=`${pt}:${le}:${De}`;if(kr.current===R)return;const A=Kd(H,a);if(kr.current=R,!A)return;const de=requestAnimationFrame(()=>{const ke=he.current;if(!ke)return;const Qe=le==="preview"?A.markdownTop??A.top:A.top;ke.scrollTo({top:Math.max(0,Qe??0),left:Math.max(0,A.left??0)}),Ge(le==="preview"?Math.max(0,Qe??0):0)});return()=>cancelAnimationFrame(de)},[a,le,De,j.kind,pt,H]),n.useEffect(()=>{pt&&Ui(H,a,{lineRange:N})},[a,N,pt,H]),n.useEffect(()=>{if(xe==null||j.kind!=="text")return;pe(null),O({start:xe,end:xe});const R=xe,A=requestAnimationFrame(()=>{const de=ve.current.get(R);de&&de.scrollIntoView({block:"center"}),F?.()});return()=>cancelAnimationFrame(A)},[xe,j,O,F]);const $n=n.useCallback(R=>{const A=he.current;if(!A)return!1;const de=typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(R):R.replace(/[^a-zA-Z0-9_-]/g,"\\$&"),ke=A.querySelector(`#${de}`);return ke?(ke.scrollIntoView({block:"start"}),!0):!1},[]);n.useEffect(()=>{const R=H&&a&&!a.startsWith("/")?`${H}/${a}`:a,A=j.kind==="text"&&Js(R??"")&&le==="preview";if(!At||!A)return;const de=requestAnimationFrame(()=>{$n(At)&&be(null)});return()=>cancelAnimationFrame(de)},[a,$n,le,At,j,H]),n.useLayoutEffect(()=>{const R=he.current;if(!R||!N){pe(null);return}if(U)return;const A=j.kind==="image"||j.kind==="loading"&&j.mode==="image",de=H&&a&&!a.startsWith("/")?`${H}/${a}`:a,ke=j.kind==="text"&&Js(de??"")&&le==="preview",Qe=j.kind==="text"&&Ys(de??"")&&De==="preview";if(j.kind!=="text"||A||ke||Qe){pe(null);return}const Me=()=>{const Le=ve.current.get(N.end);if(!Le||!R){pe(null);return}const Ke=Le.offsetTop+Le.offsetHeight/2,it=R.scrollLeft+Math.max(8,R.clientWidth-120);pe({top:Ke,left:it})};Me();const ze=new ResizeObserver(()=>Me());return ze.observe(R),()=>ze.disconnect()},[N,U,j,le,De,a,H,Je]);const Sr=j.kind==="text"&&!(Ys(St??"")&&De==="preview")&&!St?.toLowerCase().endsWith(".csv")&&!St?.toLowerCase().endsWith(".kicad_pro")&&!St?.toLowerCase().endsWith(".kicad_prl"),Fn=n.useCallback(()=>{rt(!1),wr(""),T([]),we(0),oo(W.current)},[]),en=n.useCallback(()=>{!i||!Sr||(rt(!0),requestAnimationFrame(()=>{const R=fe.current;!ge.current||!R?.isConnected||R.closest('[inert], [aria-hidden="true"], [hidden]')||R.getClientRects().length===0||getComputedStyle(R).visibility==="hidden"||!R.contains(document.activeElement)||(et.current?.focus(),et.current?.select())}))},[i,Sr]),Dr=n.useCallback(R=>{we(A=>$e.length===0?0:(A+R+$e.length)%$e.length)},[$e.length]),Ht=n.useCallback(R=>{if(R.nativeEvent.isComposing||!cg(fe.current,i,R))return;const A=dg(R);if(A==="open"&&Sr){R.preventDefault(),en();return}Se&&(A==="close"?(R.preventDefault(),Fn()):(A==="next"||A==="previous")&&(R.preventDefault(),Dr(A==="previous"?-1:1)))},[i,Fn,Se,Dr,en,Sr]);if(n.useLayoutEffect(()=>{if(oo(W.current),!i||!Se||!ht.trim()||!he.current){T([]),we(0);return}const R=fg(he.current,ht);return T(R),we(0),(fe.current?.contains(document.activeElement)||Ad(W.current))&&(Ii(R,0,W.current),Td(R[0])),()=>oo(W.current)},[i,Se,ht,Je,le,j]),n.useEffect(()=>{!i||!Se||!ht.trim()||!fe.current?.contains(document.activeElement)&&!Ad(W.current)||(Ii($e,V,W.current),Td($e[V]))},[i,V,$e,Se,ht]),n.useEffect(()=>()=>oo(W.current),[]),!a)return t.jsx("div",{className:"mx-3 mt-3 overflow-hidden rounded-xl border border-border/15 bg-surface-2 px-4 py-8 text-center text-sm text-muted-foreground",children:o("rightSidebar.selectFilePrompt")});const He=H&&!a.startsWith("/")?`${H}/${a}`:a,Rt=fo(He,H),Rr=ru(He,H),jr=j.kind==="text"&&j.content?j.content.split(`
1639
1639
  `):[],ia=Math.max(2,String(jr.length).length)+1,Cr=j.kind==="text"||j.kind==="image"||j.kind==="model3d"||j.kind==="video"||j.kind==="eda"?j.meta:null,Nr=Js(He),la=He.toLowerCase().endsWith(".csv"),Tt=He.toLowerCase().endsWith(".kicad_pro"),xs=He.toLowerCase().endsWith(".kicad_prl"),zt=j.kind==="text"&&Nr&&le==="preview",ca=Ys(He),Gt=j.kind==="text"&&ca&&De==="preview",da=j.kind==="image"||j.kind==="loading"&&j.mode==="image",ko=j.kind==="model3d"||j.kind==="loading"&&j.mode==="model3d",yt=j.kind==="video"||j.kind==="loading"&&j.mode==="video",tn=j.kind==="eda"||j.kind==="loading"&&j.mode==="eda",ys=j.kind==="text"?j.sourcePath:He,_r=vh(ys,H,N),Br=(()=>{if(!N||j.kind!=="text"||jr.length===0)return _r;const R=[];for(let ke=N.start;ke<=N.end;ke+=1)R.push(`${ke} ${jr[ke-1]??""}`);const A=Eu(He).replace(/^\./,""),de="```";return`${_r}
1640
1640
  ${de}${A}
1641
1641
  ${R.join(`