@jetcrab/pi-desk 1.1.28-dev → 1.1.30-dev

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 (362) hide show
  1. package/docs/plugins.md +2 -2
  2. package/package.json +1 -1
  3. package/src/app/api/work-sessions/search/route.ts +1 -0
  4. package/src/app/project-preview/page.tsx +1 -3
  5. package/src/client/l1_entry/pages/l1-error-page.tsx +1 -1
  6. package/src/client/l1_entry/providers/l1-app-providers.tsx +2 -0
  7. package/src/client/l2_biz/auth/l2-login.module.css +1 -1
  8. package/src/client/l2_biz/plugin-host/l2-plugin-composer-panel.tsx +1 -1
  9. package/src/client/l2_biz/plugin-host/l2-plugin-contribution-host.tsx +1 -1
  10. package/src/client/l2_biz/plugin-host/l2-plugin-session-header-layout.ts +6 -3
  11. package/src/client/l2_biz/plugin-host/l2-plugin-session-header.tsx +75 -18
  12. package/src/client/l2_biz/project-preview/hooks/l2-use-project-preview.ts +1 -14
  13. package/src/client/l2_biz/project-preview/l2-project-preview-dialog.tsx +2 -3
  14. package/src/client/l2_biz/project-preview/l2-project-preview-page.tsx +1 -2
  15. package/src/client/l2_biz/project-preview/l2-project-preview.tsx +1 -4
  16. package/src/client/l2_biz/project-preview/views/l2-project-branch-select.tsx +42 -3
  17. package/src/client/l2_biz/settings/l2-settings.tsx +1 -1
  18. package/src/client/l2_biz/settings/l2-skills-settings.tsx +1 -1
  19. package/src/client/l2_biz/task-center/l2-task-center.tsx +1 -1
  20. package/src/client/l2_biz/workbench/file-workspace/l2-plugin-standalone-file-preview.tsx +1 -1
  21. package/src/client/l2_biz/workbench/file-workspace/l2-work-session-file-preview.tsx +1 -1
  22. package/src/client/l2_biz/workbench/git-workspace/l2-git-workspace-runtime.ts +11 -10
  23. package/src/client/l2_biz/workbench/hooks/l2-work-session-search.ts +52 -0
  24. package/src/client/l2_biz/workbench/hooks/l2-workbench-branch-picker.ts +42 -7
  25. package/src/client/l2_biz/workbench/hooks/l2-workbench-session-history.ts +143 -131
  26. package/src/client/l2_biz/workbench/hooks/l2-workbench-session-search.ts +97 -0
  27. package/src/client/l2_biz/workbench/l2-work-session-columns.tsx +8 -0
  28. package/src/client/l2_biz/workbench/l2-work-session-sidebar.tsx +129 -10
  29. package/src/client/l2_biz/workbench/l2-workbench-biz.ts +20 -2
  30. package/src/client/l2_biz/workbench/l2-workbench-branch-filter-preferences.ts +34 -0
  31. package/src/client/l2_biz/workbench/l2-workbench-branch-picker.tsx +34 -71
  32. package/src/client/l2_biz/workbench/l2-workbench-chat-input-runtime.ts +38 -1
  33. package/src/client/l2_biz/workbench/l2-workbench-chat-view.tsx +11 -1
  34. package/src/client/l2_biz/workbench/l2-workbench-picker-dialog.tsx +55 -215
  35. package/src/client/l2_biz/workbench/l2-workbench.tsx +21 -39
  36. package/src/client/l2_biz/workbench/views/l2-workbench-session-search.tsx +123 -0
  37. package/src/client/l3_modules/conversation/l3-conversation-messages.tsx +43 -4
  38. package/src/client/l3_modules/project-files/l3-markdown-preview.module.css +1 -1
  39. package/src/client/l3_modules/project-files/l3-project-document-git.ts +13 -29
  40. package/src/client/l3_modules/project-files/l3-project-document-view.tsx +1 -4
  41. package/src/client/l3_modules/project-files/l3-project-file-browser.module.css +14 -18
  42. package/src/client/l3_modules/project-files/l3-project-file-browser.tsx +52 -95
  43. package/src/client/l3_modules/project-files/l3-project-file-runtime.ts +52 -21
  44. package/src/client/l3_modules/project-files/l3-project-file-tabs.tsx +41 -62
  45. package/src/client/l3_modules/project-files/l3-project-git-runtime.ts +5 -4
  46. package/src/client/l3_modules/project-files/l3-use-project-refresh.ts +36 -0
  47. package/src/client/l3_modules/project-files/views/l3-project-search-results.tsx +2 -2
  48. package/src/client/l3_modules/project-files/views/l3-project-tree-folder.tsx +86 -0
  49. package/src/client/l4_foundation/desktop-window/l4-desktop-titlebar.tsx +188 -0
  50. package/src/client/l4_foundation/desktop-window/l4-desktop-window.css +107 -0
  51. package/src/client/l4_foundation/desktop-window/l4-desktop-window.ts +20 -0
  52. package/src/client/l4_foundation/ui/file-icons/README.md +1 -1
  53. package/src/client/l4_foundation/ui/file-icons/l4-file-icon.tsx +49 -2
  54. package/src/client/l4_foundation/ui/l4-app-dialog.tsx +2 -2
  55. package/src/common/l2_biz/pi-session/l2-pi-session-contract.ts +11 -24
  56. package/src/common/l2_biz/project-preview/l2-project-preview-navigation.ts +5 -12
  57. package/src/common/l2_biz/work-session/l2-work-session-search-contract.ts +26 -0
  58. package/src/common/l2_biz/work-session/l2-work-session-tree-contract.ts +9 -1
  59. package/src/common/l2_biz/workbench/l2-workbench-locale-messages.ts +12 -0
  60. package/src/common/l2_biz/workbench/l2-workbench-picker-messages.ts +6 -2
  61. package/src/common/l3_modules/conversation/l3-conversation-locale-messages.ts +2 -0
  62. package/src/common/l3_modules/pi/l3-pi-session-search-contract.ts +26 -0
  63. package/src/common/l4_foundation/locale/l4-host-error-messages.ts +2 -0
  64. package/src/server/l1_entry/api/l1-work-session-branch-route.ts +21 -15
  65. package/src/server/l1_entry/api/l1-work-session-search-route.ts +38 -0
  66. package/src/server/l2_biz/work-session/l2-work-session-chat-runtime.ts +4 -2
  67. package/src/server/l2_biz/work-session/l2-work-session-manage.ts +46 -10
  68. package/src/server/l3_modules/work-session/l3-work-session.ts +11 -6
  69. package/src/server/l4_foundation/pi/l4-pi-chat-worker.ts +35 -2
  70. package/src/server/l4_foundation/pi/l4-pi-session-history-catalog.ts +62 -113
  71. package/src/server/l4_foundation/pi/l4-pi-session-search.ts +166 -0
  72. package/src/server/l4_foundation/pi/l4-pi-work-session-runtime.ts +66 -5
  73. package/temp/build/pi-desk/release/.next/BUILD_ID +1 -1
  74. package/temp/build/pi-desk/release/.next/app-path-routes-manifest.json +1 -0
  75. package/temp/build/pi-desk/release/.next/build-manifest.json +3 -3
  76. package/temp/build/pi-desk/release/.next/required-server-files.js +2 -2
  77. package/temp/build/pi-desk/release/.next/required-server-files.json +2 -2
  78. package/temp/build/pi-desk/release/.next/routes-manifest.json +6 -0
  79. package/temp/build/pi-desk/release/.next/server/app/_global-error/page.js +2 -2
  80. package/temp/build/pi-desk/release/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  81. package/temp/build/pi-desk/release/.next/server/app/_global-error.html +1 -1
  82. package/temp/build/pi-desk/release/.next/server/app/_global-error.rsc +3 -3
  83. package/temp/build/pi-desk/release/.next/server/app/_global-error.segments/_full.segment.rsc +3 -3
  84. package/temp/build/pi-desk/release/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +3 -3
  85. package/temp/build/pi-desk/release/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  86. package/temp/build/pi-desk/release/.next/server/app/_not-found/page.js +1 -1
  87. package/temp/build/pi-desk/release/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  88. package/temp/build/pi-desk/release/.next/server/app/api/auth/login/route.js +2 -2
  89. package/temp/build/pi-desk/release/.next/server/app/api/auth/logout/route.js +1 -1
  90. package/temp/build/pi-desk/release/.next/server/app/api/auth-settings/get/route.js +1 -1
  91. package/temp/build/pi-desk/release/.next/server/app/api/auth-settings/replace/route.js +1 -1
  92. package/temp/build/pi-desk/release/.next/server/app/api/capability-modes/get/route.js +1 -1
  93. package/temp/build/pi-desk/release/.next/server/app/api/capability-modes/replace/route.js +1 -1
  94. package/temp/build/pi-desk/release/.next/server/app/api/chat/context/get/route.js +1 -1
  95. package/temp/build/pi-desk/release/.next/server/app/api/chat/images/get/route.js +1 -1
  96. package/temp/build/pi-desk/release/.next/server/app/api/chat/messages/get/route.js +1 -1
  97. package/temp/build/pi-desk/release/.next/server/app/api/health/route.js +1 -1
  98. package/temp/build/pi-desk/release/.next/server/app/api/mcp-check/get/route.js +1 -1
  99. package/temp/build/pi-desk/release/.next/server/app/api/mcp-settings/del/route.js +1 -1
  100. package/temp/build/pi-desk/release/.next/server/app/api/mcp-settings/get/route.js +1 -1
  101. package/temp/build/pi-desk/release/.next/server/app/api/mcp-settings/replace/route.js +1 -1
  102. package/temp/build/pi-desk/release/.next/server/app/api/model-catalog/list/route.js +1 -1
  103. package/temp/build/pi-desk/release/.next/server/app/api/model-settings/get/route.js +1 -1
  104. package/temp/build/pi-desk/release/.next/server/app/api/model-settings/preview/route.js +1 -1
  105. package/temp/build/pi-desk/release/.next/server/app/api/model-settings/replace/route.js +1 -1
  106. package/temp/build/pi-desk/release/.next/server/app/api/pi/directories/list/route.js +1 -1
  107. package/temp/build/pi-desk/release/.next/server/app/api/pi/directory-entries/list/route.js +1 -1
  108. package/temp/build/pi-desk/release/.next/server/app/api/pi/directory-ignores/list/route.js +1 -1
  109. package/temp/build/pi-desk/release/.next/server/app/api/pi/directory-ignores/replace/route.js +1 -1
  110. package/temp/build/pi-desk/release/.next/server/app/api/pi/models/list/route.js +1 -1
  111. package/temp/build/pi-desk/release/.next/server/app/api/pi/session-user-messages/list/route.js +1 -1
  112. package/temp/build/pi-desk/release/.next/server/app/api/pi/sessions/list/route.js +1 -1
  113. package/temp/build/pi-desk/release/.next/server/app/api/plugin-catalog/get/route.js +1 -1
  114. package/temp/build/pi-desk/release/.next/server/app/api/plugin-catalog/search/route.js +1 -1
  115. package/temp/build/pi-desk/release/.next/server/app/api/plugin-catalog/settings-get/route.js +1 -1
  116. package/temp/build/pi-desk/release/.next/server/app/api/plugin-catalog/settings-replace/route.js +1 -1
  117. package/temp/build/pi-desk/release/.next/server/app/api/plugins/add/route.js +1 -1
  118. package/temp/build/pi-desk/release/.next/server/app/api/plugins/apply/route.js +1 -1
  119. package/temp/build/pi-desk/release/.next/server/app/api/plugins/batch/route.js +1 -1
  120. package/temp/build/pi-desk/release/.next/server/app/api/plugins/browser-resources/[resourceGroup]/[...resourcePath]/route.js +1 -1
  121. package/temp/build/pi-desk/release/.next/server/app/api/plugins/del/route.js +1 -1
  122. package/temp/build/pi-desk/release/.next/server/app/api/plugins/enabled-set/route.js +1 -1
  123. package/temp/build/pi-desk/release/.next/server/app/api/plugins/get/route.js +1 -1
  124. package/temp/build/pi-desk/release/.next/server/app/api/plugins/host-runtime/[runtimeVersion]/[...resourcePath]/route.js +1 -1
  125. package/temp/build/pi-desk/release/.next/server/app/api/plugins/list/route.js +1 -1
  126. package/temp/build/pi-desk/release/.next/server/app/api/plugins/reload/route.js +1 -1
  127. package/temp/build/pi-desk/release/.next/server/app/api/plugins/update/route.js +1 -1
  128. package/temp/build/pi-desk/release/.next/server/app/api/project-files/get/route.js +2 -2
  129. package/temp/build/pi-desk/release/.next/server/app/api/project-files/list/route.js +1 -1
  130. package/temp/build/pi-desk/release/.next/server/app/api/project-files/reveal/route.js +1 -1
  131. package/temp/build/pi-desk/release/.next/server/app/api/project-files/search/route.js +1 -1
  132. package/temp/build/pi-desk/release/.next/server/app/api/project-git/get/route.js +2 -2
  133. package/temp/build/pi-desk/release/.next/server/app/api/project-git-branches/list/route.js +2 -2
  134. package/temp/build/pi-desk/release/.next/server/app/api/project-git-changes/list/route.js +1 -1
  135. package/temp/build/pi-desk/release/.next/server/app/api/project-git-diff/get/route.js +2 -2
  136. package/temp/build/pi-desk/release/.next/server/app/api/project-git-heads/get/route.js +1 -1
  137. package/temp/build/pi-desk/release/.next/server/app/api/project-git-log/list/route.js +2 -2
  138. package/temp/build/pi-desk/release/.next/server/app/api/project-model-default/get/route.js +1 -1
  139. package/temp/build/pi-desk/release/.next/server/app/api/project-model-default/replace/route.js +1 -1
  140. package/temp/build/pi-desk/release/.next/server/app/api/skill-files/get/route.js +1 -1
  141. package/temp/build/pi-desk/release/.next/server/app/api/skill-files/list/route.js +1 -1
  142. package/temp/build/pi-desk/release/.next/server/app/api/skill-files/replace/route.js +1 -1
  143. package/temp/build/pi-desk/release/.next/server/app/api/skills/list/route.js +1 -1
  144. package/temp/build/pi-desk/release/.next/server/app/api/task-center/images/get/route.js +1 -1
  145. package/temp/build/pi-desk/release/.next/server/app/api/task-center/messages/get/route.js +1 -1
  146. package/temp/build/pi-desk/release/.next/server/app/api/work-session-git-branch/add/route.js +1 -1
  147. package/temp/build/pi-desk/release/.next/server/app/api/work-session-git-branch/replace/route.js +1 -1
  148. package/temp/build/pi-desk/release/.next/server/app/api/work-session-tree/get/route.js +1 -1
  149. package/temp/build/pi-desk/release/.next/server/app/api/work-session-tree-entry/get/route.js +1 -1
  150. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/add/route.js +1 -1
  151. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/branch/route.js +1 -1
  152. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/del/route.js +1 -1
  153. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/rename/route.js +1 -1
  154. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/replace/route.js +1 -1
  155. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/search/route.js +1 -0
  156. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/search/route_client-reference-manifest.js +1 -0
  157. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/sort/route.js +1 -1
  158. package/temp/build/pi-desk/release/.next/server/app/favicon.ico/route.js +1 -1
  159. package/temp/build/pi-desk/release/.next/server/app/login/page.js +1 -1
  160. package/temp/build/pi-desk/release/.next/server/app/login/page_client-reference-manifest.js +1 -1
  161. package/temp/build/pi-desk/release/.next/server/app/page.js +138 -138
  162. package/temp/build/pi-desk/release/.next/server/app/page_client-reference-manifest.js +1 -1
  163. package/temp/build/pi-desk/release/.next/server/app/project-preview/page.js +1 -1
  164. package/temp/build/pi-desk/release/.next/server/app/project-preview/page_client-reference-manifest.js +1 -1
  165. package/temp/build/pi-desk/release/.next/server/app-paths-manifest.json +1 -0
  166. package/temp/build/pi-desk/release/.next/server/chunks/23054.js +2 -2
  167. package/temp/build/pi-desk/release/.next/server/chunks/25406.js +8 -8
  168. package/temp/build/pi-desk/release/.next/server/chunks/27344.js +3 -3
  169. package/temp/build/pi-desk/release/.next/server/chunks/3108.js +3 -3
  170. package/temp/build/pi-desk/release/.next/server/chunks/35985.js +3 -3
  171. package/temp/build/pi-desk/release/.next/server/chunks/41856.js +1 -0
  172. package/temp/build/pi-desk/release/.next/server/chunks/62900.js +235 -0
  173. package/temp/build/pi-desk/release/.next/server/chunks/6917.js +1 -1
  174. package/temp/build/pi-desk/release/.next/server/chunks/81363.js +1 -1
  175. package/temp/build/pi-desk/release/.next/server/chunks/81912.js +3 -0
  176. package/temp/build/pi-desk/release/.next/server/chunks/92386.js +2 -2
  177. package/temp/build/pi-desk/release/.next/server/middleware-build-manifest.js +1 -1
  178. package/temp/build/pi-desk/release/.next/server/pages/500.html +1 -1
  179. package/temp/build/pi-desk/release/.next/static/ErYBfYXAir5b-6rlacGvL/_buildManifest.js +1 -0
  180. package/temp/build/pi-desk/release/.next/static/chunks/10043-9d6c3735418ccaf9.js +238 -0
  181. package/temp/build/pi-desk/release/.next/static/chunks/11937-ac71fb0f7cef482a.js +1 -0
  182. package/temp/build/pi-desk/release/.next/static/chunks/30669-ffa76d39e0e25194.js +1 -0
  183. package/temp/build/pi-desk/release/.next/static/chunks/36643-f60e98278740073c.js +3 -0
  184. package/temp/build/pi-desk/release/.next/static/chunks/65232-f5b71cec787a30ec.js +15 -0
  185. package/temp/build/pi-desk/release/.next/static/chunks/{51474-8dc714cb76b2e60a.js → 65350-23bb961d87addf14.js} +3 -3
  186. package/temp/build/pi-desk/release/.next/static/chunks/app/_global-error/page-295cb63da5f7262f.js +1 -0
  187. package/temp/build/pi-desk/release/.next/static/chunks/app/_not-found/page-295cb63da5f7262f.js +1 -0
  188. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth/login/route-295cb63da5f7262f.js +1 -0
  189. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth/logout/route-295cb63da5f7262f.js +1 -0
  190. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth-settings/get/route-295cb63da5f7262f.js +1 -0
  191. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth-settings/replace/route-295cb63da5f7262f.js +1 -0
  192. package/temp/build/pi-desk/release/.next/static/chunks/app/api/capability-modes/get/route-295cb63da5f7262f.js +1 -0
  193. package/temp/build/pi-desk/release/.next/static/chunks/app/api/capability-modes/replace/route-295cb63da5f7262f.js +1 -0
  194. package/temp/build/pi-desk/release/.next/static/chunks/app/api/chat/context/get/route-295cb63da5f7262f.js +1 -0
  195. package/temp/build/pi-desk/release/.next/static/chunks/app/api/chat/images/get/route-295cb63da5f7262f.js +1 -0
  196. package/temp/build/pi-desk/release/.next/static/chunks/app/api/chat/messages/get/route-295cb63da5f7262f.js +1 -0
  197. package/temp/build/pi-desk/release/.next/static/chunks/app/api/health/route-295cb63da5f7262f.js +1 -0
  198. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-check/get/route-295cb63da5f7262f.js +1 -0
  199. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-settings/del/route-295cb63da5f7262f.js +1 -0
  200. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-settings/get/route-295cb63da5f7262f.js +1 -0
  201. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-settings/replace/route-295cb63da5f7262f.js +1 -0
  202. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-catalog/list/route-295cb63da5f7262f.js +1 -0
  203. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-settings/get/route-295cb63da5f7262f.js +1 -0
  204. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-settings/preview/route-295cb63da5f7262f.js +1 -0
  205. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-settings/replace/route-295cb63da5f7262f.js +1 -0
  206. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directories/list/route-295cb63da5f7262f.js +1 -0
  207. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directory-entries/list/route-295cb63da5f7262f.js +1 -0
  208. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directory-ignores/list/route-295cb63da5f7262f.js +1 -0
  209. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directory-ignores/replace/route-295cb63da5f7262f.js +1 -0
  210. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/models/list/route-295cb63da5f7262f.js +1 -0
  211. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/session-user-messages/list/route-295cb63da5f7262f.js +1 -0
  212. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/sessions/list/route-295cb63da5f7262f.js +1 -0
  213. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/get/route-295cb63da5f7262f.js +1 -0
  214. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/search/route-295cb63da5f7262f.js +1 -0
  215. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/settings-get/route-295cb63da5f7262f.js +1 -0
  216. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/settings-replace/route-295cb63da5f7262f.js +1 -0
  217. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/add/route-295cb63da5f7262f.js +1 -0
  218. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/apply/route-295cb63da5f7262f.js +1 -0
  219. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/batch/route-295cb63da5f7262f.js +1 -0
  220. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/browser-resources/[resourceGroup]/[...resourcePath]/route-295cb63da5f7262f.js +1 -0
  221. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/del/route-295cb63da5f7262f.js +1 -0
  222. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/enabled-set/route-295cb63da5f7262f.js +1 -0
  223. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/get/route-295cb63da5f7262f.js +1 -0
  224. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/host-runtime/[runtimeVersion]/[...resourcePath]/route-295cb63da5f7262f.js +1 -0
  225. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/list/route-295cb63da5f7262f.js +1 -0
  226. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/reload/route-295cb63da5f7262f.js +1 -0
  227. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/update/route-295cb63da5f7262f.js +1 -0
  228. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/get/route-295cb63da5f7262f.js +1 -0
  229. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/list/route-295cb63da5f7262f.js +1 -0
  230. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/reveal/route-295cb63da5f7262f.js +1 -0
  231. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/search/route-295cb63da5f7262f.js +1 -0
  232. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git/get/route-295cb63da5f7262f.js +1 -0
  233. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-branches/list/route-295cb63da5f7262f.js +1 -0
  234. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-changes/list/route-295cb63da5f7262f.js +1 -0
  235. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-diff/get/route-295cb63da5f7262f.js +1 -0
  236. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-heads/get/route-295cb63da5f7262f.js +1 -0
  237. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-log/list/route-295cb63da5f7262f.js +1 -0
  238. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-model-default/get/route-295cb63da5f7262f.js +1 -0
  239. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-model-default/replace/route-295cb63da5f7262f.js +1 -0
  240. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skill-files/get/route-295cb63da5f7262f.js +1 -0
  241. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skill-files/list/route-295cb63da5f7262f.js +1 -0
  242. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skill-files/replace/route-295cb63da5f7262f.js +1 -0
  243. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skills/list/route-295cb63da5f7262f.js +1 -0
  244. package/temp/build/pi-desk/release/.next/static/chunks/app/api/task-center/images/get/route-295cb63da5f7262f.js +1 -0
  245. package/temp/build/pi-desk/release/.next/static/chunks/app/api/task-center/messages/get/route-295cb63da5f7262f.js +1 -0
  246. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-git-branch/add/route-295cb63da5f7262f.js +1 -0
  247. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-git-branch/replace/route-295cb63da5f7262f.js +1 -0
  248. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-tree/get/route-295cb63da5f7262f.js +1 -0
  249. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-tree-entry/get/route-295cb63da5f7262f.js +1 -0
  250. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/add/route-295cb63da5f7262f.js +1 -0
  251. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/branch/route-295cb63da5f7262f.js +1 -0
  252. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/del/route-295cb63da5f7262f.js +1 -0
  253. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/rename/route-295cb63da5f7262f.js +1 -0
  254. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/replace/route-295cb63da5f7262f.js +1 -0
  255. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/search/route-295cb63da5f7262f.js +1 -0
  256. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/sort/route-295cb63da5f7262f.js +1 -0
  257. package/temp/build/pi-desk/release/.next/static/chunks/app/error-1ab62762c5f4144f.js +1 -0
  258. package/temp/build/pi-desk/release/.next/static/chunks/app/layout-ca5ef5994165eb2e.js +1 -0
  259. package/temp/build/pi-desk/release/.next/static/chunks/app/login/{page-0d3d4827802108e5.js → page-0df9df996aa68060.js} +1 -1
  260. package/temp/build/pi-desk/release/.next/static/chunks/app/not-found-b8b9b7ef5ccb7601.js +1 -0
  261. package/temp/build/pi-desk/release/.next/static/chunks/app/page-978906de76a8dcfe.js +158 -0
  262. package/temp/build/pi-desk/release/.next/static/chunks/app/project-preview/{page-038b6c14e03ed878.js → page-aaa845016a934245.js} +1 -1
  263. package/temp/build/pi-desk/release/.next/static/chunks/next/dist/client/components/builtin/app-error-295cb63da5f7262f.js +1 -0
  264. package/temp/build/pi-desk/release/.next/static/chunks/next/dist/client/components/builtin/forbidden-295cb63da5f7262f.js +1 -0
  265. package/temp/build/pi-desk/release/.next/static/chunks/next/dist/client/components/builtin/unauthorized-295cb63da5f7262f.js +1 -0
  266. package/temp/build/pi-desk/release/.next/static/chunks/{webpack-c0b805df46fcf8b3.js → webpack-a84310d111797bef.js} +1 -1
  267. package/temp/build/pi-desk/release/.next/static/css/053a8d82c09326cd.css +1 -0
  268. package/temp/build/pi-desk/release/.next/static/css/1cc92eec583aa639.css +1 -0
  269. package/temp/build/pi-desk/release/.next/static/css/{1e780a4936aa6ba3.css → 2bb393927ba8f71d.css} +1 -1
  270. package/temp/build/pi-desk/release/.next/static/css/3a07dcc86ffdf88c.css +1 -0
  271. package/temp/build/pi-desk/release/.next/static/css/3c59ac068ae404da.css +1 -0
  272. package/temp/build/pi-desk/release/.next/trace-build +1 -1
  273. package/temp/build/pi-desk/release/.next/server/chunks/35348.js +0 -3
  274. package/temp/build/pi-desk/release/.next/server/chunks/56830.js +0 -235
  275. package/temp/build/pi-desk/release/.next/server/chunks/80780.js +0 -1
  276. package/temp/build/pi-desk/release/.next/static/bj2dB_Z10YB_CqK_VNhDx/_buildManifest.js +0 -1
  277. package/temp/build/pi-desk/release/.next/static/chunks/11937-1d0a9822f2c7995b.js +0 -1
  278. package/temp/build/pi-desk/release/.next/static/chunks/14197-3d3ddd426ac06c9c.js +0 -3
  279. package/temp/build/pi-desk/release/.next/static/chunks/37313-d5970e2d0c270d22.js +0 -238
  280. package/temp/build/pi-desk/release/.next/static/chunks/65232-ef4e5a4174f62faf.js +0 -15
  281. package/temp/build/pi-desk/release/.next/static/chunks/79267-7d21d7cdbd7cfca1.js +0 -1
  282. package/temp/build/pi-desk/release/.next/static/chunks/app/_global-error/page-9969fe0baa238786.js +0 -1
  283. package/temp/build/pi-desk/release/.next/static/chunks/app/_not-found/page-9969fe0baa238786.js +0 -1
  284. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth/login/route-9969fe0baa238786.js +0 -1
  285. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth/logout/route-9969fe0baa238786.js +0 -1
  286. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth-settings/get/route-9969fe0baa238786.js +0 -1
  287. package/temp/build/pi-desk/release/.next/static/chunks/app/api/auth-settings/replace/route-9969fe0baa238786.js +0 -1
  288. package/temp/build/pi-desk/release/.next/static/chunks/app/api/capability-modes/get/route-9969fe0baa238786.js +0 -1
  289. package/temp/build/pi-desk/release/.next/static/chunks/app/api/capability-modes/replace/route-9969fe0baa238786.js +0 -1
  290. package/temp/build/pi-desk/release/.next/static/chunks/app/api/chat/context/get/route-9969fe0baa238786.js +0 -1
  291. package/temp/build/pi-desk/release/.next/static/chunks/app/api/chat/images/get/route-9969fe0baa238786.js +0 -1
  292. package/temp/build/pi-desk/release/.next/static/chunks/app/api/chat/messages/get/route-9969fe0baa238786.js +0 -1
  293. package/temp/build/pi-desk/release/.next/static/chunks/app/api/health/route-9969fe0baa238786.js +0 -1
  294. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-check/get/route-9969fe0baa238786.js +0 -1
  295. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-settings/del/route-9969fe0baa238786.js +0 -1
  296. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-settings/get/route-9969fe0baa238786.js +0 -1
  297. package/temp/build/pi-desk/release/.next/static/chunks/app/api/mcp-settings/replace/route-9969fe0baa238786.js +0 -1
  298. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-catalog/list/route-9969fe0baa238786.js +0 -1
  299. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-settings/get/route-9969fe0baa238786.js +0 -1
  300. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-settings/preview/route-9969fe0baa238786.js +0 -1
  301. package/temp/build/pi-desk/release/.next/static/chunks/app/api/model-settings/replace/route-9969fe0baa238786.js +0 -1
  302. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directories/list/route-9969fe0baa238786.js +0 -1
  303. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directory-entries/list/route-9969fe0baa238786.js +0 -1
  304. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directory-ignores/list/route-9969fe0baa238786.js +0 -1
  305. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/directory-ignores/replace/route-9969fe0baa238786.js +0 -1
  306. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/models/list/route-9969fe0baa238786.js +0 -1
  307. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/session-user-messages/list/route-9969fe0baa238786.js +0 -1
  308. package/temp/build/pi-desk/release/.next/static/chunks/app/api/pi/sessions/list/route-9969fe0baa238786.js +0 -1
  309. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/get/route-9969fe0baa238786.js +0 -1
  310. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/search/route-9969fe0baa238786.js +0 -1
  311. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/settings-get/route-9969fe0baa238786.js +0 -1
  312. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugin-catalog/settings-replace/route-9969fe0baa238786.js +0 -1
  313. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/add/route-9969fe0baa238786.js +0 -1
  314. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/apply/route-9969fe0baa238786.js +0 -1
  315. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/batch/route-9969fe0baa238786.js +0 -1
  316. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/browser-resources/[resourceGroup]/[...resourcePath]/route-9969fe0baa238786.js +0 -1
  317. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/del/route-9969fe0baa238786.js +0 -1
  318. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/enabled-set/route-9969fe0baa238786.js +0 -1
  319. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/get/route-9969fe0baa238786.js +0 -1
  320. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/host-runtime/[runtimeVersion]/[...resourcePath]/route-9969fe0baa238786.js +0 -1
  321. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/list/route-9969fe0baa238786.js +0 -1
  322. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/reload/route-9969fe0baa238786.js +0 -1
  323. package/temp/build/pi-desk/release/.next/static/chunks/app/api/plugins/update/route-9969fe0baa238786.js +0 -1
  324. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/get/route-9969fe0baa238786.js +0 -1
  325. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/list/route-9969fe0baa238786.js +0 -1
  326. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/reveal/route-9969fe0baa238786.js +0 -1
  327. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-files/search/route-9969fe0baa238786.js +0 -1
  328. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git/get/route-9969fe0baa238786.js +0 -1
  329. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-branches/list/route-9969fe0baa238786.js +0 -1
  330. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-changes/list/route-9969fe0baa238786.js +0 -1
  331. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-diff/get/route-9969fe0baa238786.js +0 -1
  332. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-heads/get/route-9969fe0baa238786.js +0 -1
  333. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-git-log/list/route-9969fe0baa238786.js +0 -1
  334. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-model-default/get/route-9969fe0baa238786.js +0 -1
  335. package/temp/build/pi-desk/release/.next/static/chunks/app/api/project-model-default/replace/route-9969fe0baa238786.js +0 -1
  336. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skill-files/get/route-9969fe0baa238786.js +0 -1
  337. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skill-files/list/route-9969fe0baa238786.js +0 -1
  338. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skill-files/replace/route-9969fe0baa238786.js +0 -1
  339. package/temp/build/pi-desk/release/.next/static/chunks/app/api/skills/list/route-9969fe0baa238786.js +0 -1
  340. package/temp/build/pi-desk/release/.next/static/chunks/app/api/task-center/images/get/route-9969fe0baa238786.js +0 -1
  341. package/temp/build/pi-desk/release/.next/static/chunks/app/api/task-center/messages/get/route-9969fe0baa238786.js +0 -1
  342. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-git-branch/add/route-9969fe0baa238786.js +0 -1
  343. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-git-branch/replace/route-9969fe0baa238786.js +0 -1
  344. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-tree/get/route-9969fe0baa238786.js +0 -1
  345. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-session-tree-entry/get/route-9969fe0baa238786.js +0 -1
  346. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/add/route-9969fe0baa238786.js +0 -1
  347. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/branch/route-9969fe0baa238786.js +0 -1
  348. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/del/route-9969fe0baa238786.js +0 -1
  349. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/rename/route-9969fe0baa238786.js +0 -1
  350. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/replace/route-9969fe0baa238786.js +0 -1
  351. package/temp/build/pi-desk/release/.next/static/chunks/app/api/work-sessions/sort/route-9969fe0baa238786.js +0 -1
  352. package/temp/build/pi-desk/release/.next/static/chunks/app/error-216b14b5da089ed3.js +0 -1
  353. package/temp/build/pi-desk/release/.next/static/chunks/app/layout-20718f1503910291.js +0 -1
  354. package/temp/build/pi-desk/release/.next/static/chunks/app/not-found-720cdf6a606b821a.js +0 -1
  355. package/temp/build/pi-desk/release/.next/static/chunks/app/page-ce2ebf7d8ea7a330.js +0 -158
  356. package/temp/build/pi-desk/release/.next/static/chunks/next/dist/client/components/builtin/app-error-9969fe0baa238786.js +0 -1
  357. package/temp/build/pi-desk/release/.next/static/chunks/next/dist/client/components/builtin/forbidden-9969fe0baa238786.js +0 -1
  358. package/temp/build/pi-desk/release/.next/static/chunks/next/dist/client/components/builtin/unauthorized-9969fe0baa238786.js +0 -1
  359. package/temp/build/pi-desk/release/.next/static/css/2bdcf40eca12b794.css +0 -1
  360. package/temp/build/pi-desk/release/.next/static/css/2c3b0c0ff1f49c68.css +0 -1
  361. package/temp/build/pi-desk/release/.next/static/css/c43b04c244a64fb4.css +0 -1
  362. /package/temp/build/pi-desk/release/.next/static/{bj2dB_Z10YB_CqK_VNhDx → ErYBfYXAir5b-6rlacGvL}/_ssgManifest.js +0 -0
@@ -1,15 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[65232],{1364:(e,t,s)=>{"use strict";s.d(t,{Ip:()=>g,JW:()=>m,K5:()=>v,Rc:()=>f,kt:()=>x,tz:()=>p});var i=s(7962);s(69266);var a=s(85137),r=s(79102),n=s(66467),o=s(60454),l=s(93750),c=s(39608),d=s(4947),u=s(49426),h=s(13464);function p({...e}){return(0,i.jsx)(a.D,{"data-slot":"context-menu",...e})}function m({...e}){return(0,i.jsx)(r.g,{"data-slot":"context-menu-portal",...e})}function f({className:e,...t}){return(0,i.jsx)(n.R,{"data-slot":"context-menu-trigger",className:(0,u.cn)("select-none",e),...t})}function g({className:e,align:t="start",alignOffset:s=4,side:a="right",sideOffset:n=0,finalFocus:c=!1,...d}){return(0,i.jsx)(r.g,{children:(0,i.jsx)(o.y,{className:"isolate z-50 outline-none",align:t,alignOffset:s,side:a,sideOffset:n,children:(0,i.jsx)(l._,{"data-slot":"context-menu-content",finalFocus:c,className:(0,u.cn)(h.hD,e),...d})})})}function x({className:e,inset:t,variant:s="default",...a}){return(0,i.jsx)(c.D,{"data-slot":"context-menu-item","data-inset":t,"data-variant":s,className:(0,u.cn)(h.S6,h.dQ,"group/context-menu-item",e),...a})}function v({className:e,...t}){return(0,i.jsx)(d.w,{"data-slot":"context-menu-separator",className:(0,u.cn)("-mx-1 my-1 h-px bg-border",e),...t})}},5464:(e,t,s)=>{"use strict";s.d(t,{Hl:()=>k,YM:()=>S,YV:()=>b,_Y:()=>N,hA:()=>j,uX:()=>R,vu:()=>C});var i=s(7962);s(69266);var a=s(76815),r=s(21702),n=s(60530),o=s(86023),l=s(57284),c=s(72512),d=s(49264),u=s(82611),h=s(40709),p=s(93061),m=s(87425),f=s(51173),g=s(49362),x=s(78121),v=s(49426);function b({onOpenChange:e,...t}){return(0,i.jsx)(a.D,{"data-slot":"app-dialog",...t,onOpenChange:(s,i)=>{s||!1===t.modal||"outside-press"!==i.reason||i.event.target instanceof Element&&"app-dialog-backdrop"===i.event.target.getAttribute("data-slot")?e?.(s,i):i.cancel()}})}function y({...e}){return(0,i.jsx)(r.Z,{"data-slot":"app-dialog-portal",...e})}function w({className:e,...t}){return(0,i.jsx)(n.X,{"data-slot":"app-dialog-backdrop",className:(0,v.cn)("fixed inset-0 z-[100] bg-black/35 duration-100 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...t})}function j({className:e,children:t,showCloseButton:s=!0,finalFocus:a=!1,backdropClassName:r,...n}){let{t:c}=(0,x.Bd)("common");return(0,i.jsxs)(y,{children:[(0,i.jsx)(w,{className:r,forceRender:!!r}),(0,i.jsxs)(o.h,{"data-slot":"app-dialog-content",finalFocus:a,className:(0,v.cn)("fixed top-1/2 left-1/2 z-[110] flex max-h-[calc(100dvh-2rem)] w-[calc(100%-2rem)] max-w-[27.5rem] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-border bg-popover text-sm text-popover-foreground shadow-lg outline-none duration-100 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...n,children:[t,s?(0,i.jsxs)(l.H,{"data-slot":"app-dialog-close-button","aria-label":c("closeDialog"),title:c("closeDialog"),className:"absolute top-2 right-2 flex size-8 cursor-pointer items-center justify-center rounded-lg text-muted-foreground outline-none transition-colors hover:bg-accent hover:text-foreground active:bg-foreground/14 focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",children:[(0,i.jsx)(g.A,{className:"size-4"}),(0,i.jsx)("span",{className:"sr-only",children:c("closeDialog")})]}):null]})]})}function k({className:e,...t}){return(0,i.jsx)("div",{"data-slot":"app-dialog-header",className:(0,v.cn)("flex shrink-0 flex-col gap-1.5",e),...t})}function N({className:e,children:t,...s}){return(0,i.jsxs)(u.V,{"data-slot":"app-dialog-body",className:(0,v.cn)("relative min-h-0 flex-1 overflow-hidden",e),...s,children:[(0,i.jsx)(h.B,{"data-slot":"app-dialog-body-viewport",className:"h-full max-h-[inherit] w-full overscroll-contain rounded-[inherit] outline-none focus-visible:ring-2 focus-visible:ring-ring",children:t}),(0,i.jsx)(p.V,{"data-slot":"app-dialog-body-scrollbar",orientation:"vertical",className:"flex h-full w-2.5 touch-none border-l border-l-transparent p-px select-none",children:(0,i.jsx)(m.l,{"data-slot":"app-dialog-body-thumb",className:"relative flex-1 rounded-full bg-muted-foreground/45 hover:bg-muted-foreground/70"})}),(0,i.jsx)(f.I,{})]})}function C({className:e,...t}){return(0,i.jsx)("div",{"data-slot":"app-dialog-footer",className:(0,v.cn)("flex shrink-0 flex-wrap justify-end gap-2 border-t bg-popover px-4 py-3",e),...t})}function S({className:e,...t}){return(0,i.jsx)(c.L,{"data-slot":"app-dialog-title",className:(0,v.cn)("text-lg leading-[1.4] font-semibold",e),...t})}function R({className:e,...t}){return(0,i.jsx)(d.r,{"data-slot":"app-dialog-description",className:(0,v.cn)("text-sm leading-5 text-muted-foreground",e),...t})}},7237:(e,t,s)=>{"use strict";function i(e){let t=atob(e.data),s=new Uint8Array(t.length);for(let e=0;e<t.length;e+=1)s[e]=t.charCodeAt(e);return new Blob([s],{type:e.mimeType})}s.d(t,{E:()=>i})},8001:(e,t,s)=>{"use strict";s.d(t,{IV:()=>m,om:()=>b,e6:()=>w,XC:()=>v});var i=s(7962),a=s(10672),r=s(69075),n=s(45216),o=s(94173),l=s(14510),c=s(3058),d=s(90458),u=s(78121),h=s(10508),p=s(49426);let m={input:["dataPiMarkdownProgress"],blockquote:["dataPiMarkdownAlert"]};function f(e){return{type:"paragraph",children:[],data:{hName:"input",hProperties:{type:"checkbox",disabled:!0,checked:"[x]"===e.toLowerCase(),..."[-]"===e?{dataPiMarkdownProgress:"true"}:{}}}}}var g=s(83029),x=s.n(g);let v=[...Object.values(h.U2),function(){return(e,t)=>{let s=String(t.value),i=(e,t)=>{let i=e.position?.start.offset;return void 0!==i&&s.slice(i,i+t.length)===t},a=e=>{let t=e.children?.[0];if("tableCell"===e.type&&e.children?.length===1&&t?.type==="text"){let s=t.value??"";/^\[[ xX-]\]$/.test(s)&&i(t,s)&&(e.children=[f(s)])}else if("listItem"===e.type&&t?.type==="paragraph"){let s=t.children?.[0];s?.type==="text"&&/^\[-\](?:\s|$)/.test(s.value??"")&&i(s,"[-]")&&(s.value=s.value.slice(3),t.children.unshift(f("[-]")),e.data={...e.data,hProperties:{className:["task-list-item"]}})}else if("blockquote"===e.type&&t?.type==="paragraph"){let s=t.children?.[0],a=s?.value?.match(/^\[!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\][ \t]*(?:\r?\n|$)/);s?.type==="text"&&a&&i(s,`[!${a[1]}]`)&&(a[0].endsWith("\n")||1===t.children.length||t.children[1]?.type==="break")&&(s.value=s.value.slice(a[0].length),s.value||(t.children.shift(),t.children[0]?.type==="break"&&t.children.shift()),0===t.children.length&&e.children.shift(),e.data={...e.data,hProperties:{dataPiMarkdownAlert:a[1].toLowerCase()}})}for(let t of e.children??[])a(t)};a(e)}}],b=x().markdown,y={note:{icon:a.A,label:"markdownNote"},tip:{icon:r.A,label:"markdownTip"},important:{icon:n.A,label:"markdownImportant"},warning:{icon:o.A,label:"markdownWarning"},caution:{icon:l.A,label:"markdownCaution"}},w={input:function({"data-pi-markdown-progress":e,...t}){let{t:s}=(0,u.Bd)("common");if(delete t.node,"checkbox"!==t.type)return(0,i.jsx)("input",{...t});let a=e?"progress":t.checked?"completed":"pending",r=e?"[-]":t.checked?"[x]":"[ ]",n=s(e?"markdownProgress":t.checked?"markdownCompleted":"markdownPending");return(0,i.jsxs)("span",{className:x().status,"data-state":a,role:"img","aria-label":n,title:n,children:[e?(0,i.jsx)(c.A,{"aria-hidden":"true"}):t.checked?(0,i.jsx)(d.A,{"aria-hidden":"true"}):null,(0,i.jsx)("span",{className:"sr-only","aria-hidden":"true",children:r})]})},blockquote:function({"data-pi-markdown-alert":e,className:t,children:s,...a}){let{t:r}=(0,u.Bd)("common");delete a.node;let n=Object.entries(y).find(([t])=>t===e)?.[1];if(!n)return(0,i.jsx)("blockquote",{...a,"data-streamdown":"blockquote",className:(0,p.cn)("my-4 border-muted-foreground/30 border-l-4 pl-4 text-muted-foreground italic",t),children:s});let o=n.icon;return(0,i.jsxs)("aside",{className:x().alert,role:"note","aria-label":r(n.label),children:[(0,i.jsxs)("div",{className:x().alertTitle,children:[(0,i.jsx)(o,{"aria-hidden":"true"}),r(n.label)]}),(0,i.jsx)("div",{className:x().alertBody,children:s})]})}}},8596:e=>{e.exports={tree:"l3-project-file-browser_tree__KA1C9"}},13464:(e,t,s)=>{"use strict";s.d(t,{S6:()=>i,dQ:()=>a,hD:()=>r});let i="relative flex min-h-7 cursor-pointer items-center gap-2 rounded-md px-2 py-1 text-sm leading-5 outline-none select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground focus:bg-accent focus:text-accent-foreground data-inset:pl-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",a="data-[variant=destructive]:text-destructive data-[variant=destructive]:data-highlighted:bg-destructive/10 data-[variant=destructive]:data-highlighted:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive",r="z-50 max-h-(--available-height) min-w-60 max-w-[calc(100vw-2rem)] origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg border border-border bg-popover p-1 text-popover-foreground shadow-md outline-none transition-[opacity,transform] duration-100 ease-out data-starting-style:scale-[0.98] data-starting-style:opacity-0 data-ending-style:scale-[0.98] data-ending-style:opacity-0 motion-reduce:transition-none"},15265:(e,t,s)=>{"use strict";s.d(t,{fD:()=>r,qf:()=>a});var i=s(38979);let a=i.KC([i.Yj(),i.Ik({default:i.Yj(),translations:i.g1(i.Yj().min(1).max(35),i.Yj()).refine(e=>Object.keys(e).length<=16,"too many translations")}).strict()]);function r(e,t){return"string"==typeof e?e:e.translations[t]??e.translations[t.split("-")[0]]??e.default}},17511:(e,t,s)=>{"use strict";s.d(t,{Ik:()=>p,MG:()=>c,Sq:()=>u,iV:()=>m,oR:()=>f});var i=s(7962);s(69266);var a=s(73392),r=s(49426),n=s(86963),o=s(73429),l=s(68017);function c({className:e,...t}){return(0,i.jsx)("div",{"data-slot":"input-group",role:"group",className:(0,r.cn)("group/input-group relative flex min-h-8 w-full min-w-0 items-center rounded-lg border border-input bg-card transition-colors duration-150 outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-muted has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:outline-2 has-[[data-slot=input-group-control]:focus-visible]:outline-solid has-[[data-slot=input-group-control]:focus-visible]:-outline-offset-2 has-[[data-slot=input-group-control]:focus-visible]:outline-ring has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5",e),...t})}let d=(0,a.F)("flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",{variants:{align:{"inline-start":"order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]","inline-end":"order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]","block-start":"order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2","block-end":"order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2"}},defaultVariants:{align:"inline-start"}});function u({className:e,align:t="inline-start",...s}){return(0,i.jsx)("div",{role:"group","data-slot":"input-group-addon","data-align":t,className:(0,r.cn)(d({align:t}),e),onClick:e=>{e.target.closest("button")||e.currentTarget.parentElement?.querySelector("input")?.focus()},...s})}let h=(0,a.F)("flex items-center gap-2 text-sm shadow-none",{variants:{size:{xs:"min-h-7 gap-2 rounded-md px-2",sm:"","icon-xs":"size-7 rounded-md p-0 has-[>svg]:p-0","icon-sm":"size-8 p-0 has-[>svg]:p-0"}},defaultVariants:{size:"xs"}});function p({className:e,type:t="button",variant:s="ghost",size:a="xs",...o}){return(0,i.jsx)(n.$,{type:t,"data-size":a,variant:s,className:(0,r.cn)(h({size:a}),e),...o})}function m({className:e,...t}){return(0,i.jsx)(o.p,{"data-slot":"input-group-control",className:(0,r.cn)("flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:outline-none focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0",e),...t})}function f({className:e,...t}){return(0,i.jsx)(l.T,{"data-slot":"input-group-control",className:(0,r.cn)("flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:outline-none focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0",e),...t})}},18302:(e,t,s)=>{"use strict";function i(e,t,s){e.addCommand(t,s,"editorTextFocus && !findWidgetVisible && !suggestWidgetVisible && !renameInputVisible && !parameterHintsVisible && !referenceSearchVisible && !editorHoverVisible && !editorHoverFocused")}s.d(t,{e:()=>i})},20476:(e,t,s)=>{"use strict";s.d(t,{Wq:()=>d,ku:()=>h,lU:()=>u});var i=s(67765);let a="pi-super:image-preview-mode",r="compressed",n=new Set,o=r,l=!1;function c(){if(!l){l=!0;try{let e=i.p$.safeParse(window.localStorage.getItem(a));o=e.success?e.data:r}catch{o=r}}}function d(){return c(),o}function u(e){if(c(),o!==e){o=e;try{window.localStorage.setItem(a,e)}catch{}for(let e of[...n])e()}}function h(e){return n.add(e),()=>n.delete(e)}},24985:(e,t,s)=>{"use strict";s.d(t,{FJ:()=>b,Ww:()=>o,cP:()=>l,gf:()=>x,u2:()=>f,y2:()=>n,yl:()=>m,zp:()=>h,zt:()=>g});var i=s(38979),a=s(15265),r=s(67765);let n=100,o=r.rh,l=i.Yj().trim().min(1).max(1024),c=i.gM("type",[i.Ik({type:i.eu("branch"),name:l}).strict(),i.Ik({type:i.eu("detached"),commit:i.Yj().regex(/^[0-9a-f]{40,64}$/)}).strict()]),d=i.k5(["added","modified","deleted","renamed","unmerged","untracked"]),u=i.Ik({path:r._g,oldPath:r._g.nullable(),indexStatus:d.nullable(),worktreeStatus:d.nullable()}).strict(),h=i.Ik({root:o,state:i.eu("ready"),head:c,changes:i.YO(u).max(5e4)}).strict(),p=i.Ik({root:o,state:i.eu("unavailable"),message:a.qf.refine(e=>("string"==typeof e?[e]:[e.default,...Object.values(e.translations)]).every(e=>e.length>0&&e.length<=2e3))}).strict(),m=i.gM("state",[h.omit({changes:!0}),p]),f=i.gM("state",[h,p]),g=i.gM("type",[i.Ik({type:i.eu("local"),name:l}).strict(),i.Ik({type:i.eu("remote"),name:l}).strict()]),x=i.Ik({head:c,recent:i.YO(l).max(5),local:i.YO(l).max(1e4),remote:i.YO(l).max(1e4)}).strict(),v=i.Ik({path:r._g,content:i.Yj()}).strict(),b=i.gM("kind",[i.Ik({kind:i.eu("text"),original:v,modified:v}).strict(),i.Ik({kind:i.eu("binary")}).strict(),i.Ik({kind:i.eu("too_large")}).strict()])},28460:(e,t,s)=>{"use strict";s.d(t,{Cp:()=>g,ph:()=>x,Tk:()=>f});var i=s(93119),a=s(93320),r=s(29029),n=s(56592);class o{constructor(e,t){this.cwd=e,this.reader=t,this.state={snapshot:{status:"idle",repositories:[],error:null},layout:"directory",changesOnly:!1,expandedRepositories:new Set},this.listeners=new Set,this.revision=0,this.request=null,this.disposed=!1,this.subscribe=e=>(this.listeners.add(e),()=>this.listeners.delete(e)),this.getRevision=()=>this.revision}getWorkspace(e){return e===this.cwd?this.state:null}ensureSnapshot(e){return e!==this.cwd||"ready"===this.state.snapshot.status||this.request?Promise.resolve():this.load(!1)}refreshSnapshot(e){return e===this.cwd?this.load(!0):Promise.resolve()}setLayout(e,t){this.state.layout=t,this.publish()}setChangesOnly(e,t){this.state.changesOnly=t,this.publish()}toggleRepository(e,t){let s=new Set(this.state.expandedRepositories);s.has(t)?s.delete(t):s.add(t),this.state.expandedRepositories=s,this.publish()}dispose(){this.disposed=!0,this.request?.abort(),this.request=null,this.listeners.clear()}async load(e){if(this.disposed)return;this.request?.abort();let t=new AbortController;this.request=t,this.state.snapshot={...this.state.snapshot,status:"loading",error:null},this.publish();try{let s=await this.reader.snapshot(t.signal,e);if(this.request!==t)return;this.state.snapshot={status:"ready",repositories:s.repositories,error:null}}catch(e){if(this.request!==t)return;this.state.snapshot={...this.state.snapshot,status:"error",error:e instanceof Error?e.message:"读取 Git 状态失败"}}this.request===t&&(this.request=null,this.publish())}publish(){if(!this.disposed)for(let e of(this.revision+=1,this.listeners))e()}}var l=s(20476),c=s(42643),d=s(73230),u=s(82075);function h(e,t){return(0,d.B)({msg:c.p["zh-CN"][e],i18n:{key:`projectHistory:${e}`,...t?{params:t}:{}}})}function p(){return{status:"idle",data:null,error:null}}class m{constructor(e,t){this.reader=e,this.files=t,this.state={repositoryRoot:null,mode:"history",tip:"HEAD",base:"",target:"HEAD",strategy:"merge-base",query:"",author:"",authorSuggestions:[],selectedCommit:null,selectedChangePath:null,branches:p(),log:p(),changes:p()},this.scroll={log:0,changes:0},this.listeners=new Set,this.requests=new Map,this.revision=0,this.disposed=!1,this.logPage=1,this.changesPage=1,this.range=null,this.selection=null,this.restoredCommit=null,this.restoredChangePath=null,this.restoredChangesScroll=null,this.queryTimer=null,this.collapsedDirectories=new Set,this.changeTree=(0,u.OA)([]),this.changeRows=[],this.changeRowHeight=36,this.subscribe=e=>(this.listeners.add(e),()=>this.listeners.delete(e)),this.getRevision=()=>this.revision}getChangeRows(){return this.changeRows}restoreBrowsing(e,t=!0){Object.assign(this.state,{repositoryRoot:e.repositoryRoot,mode:e.mode,tip:e.tip,base:e.base,target:e.target,strategy:e.strategy,query:e.query,author:e.author}),this.scroll.log=e.logScroll,this.restoredChangesScroll=e.changesScroll,this.restoredCommit=e.selectedCommit,this.restoredChangePath=e.selectedChangePath,t&&null!==e.repositoryRoot&&(this.loadBranches(),this.reload())}selectChange(e){this.state.changes.data?.items.some(t=>t.path===e)&&(this.state.selectedChangePath=e,this.publish())}toggleChangeDirectory(e){let t=this.changeRows.find(t=>t.directory?.path===e);if(t?.directory){if(t.expanded)this.collapsedDirectories.add(e);else for(let e of t.directory.paths)this.collapsedDirectories.delete(e);this.rebuildChangeRows(),this.publish()}}setScroll(e,t){this.scroll[e]=t}setChangeRowHeight(e){this.changeRowHeight!==e&&(this.scroll.changes=this.scroll.changes/this.changeRowHeight*e,this.changeRowHeight=e,this.publish())}setRepository(e){if(e===this.state.repositoryRoot){"idle"===this.state.branches.status&&(this.loadBranches(),this.reload());return}this.cancel("branches"),this.state.repositoryRoot=e,this.state.tip=this.state.target="HEAD",this.state.base="",this.state.author="",this.state.authorSuggestions=[],this.state.branches=p(),this.resetSelection(),this.loadBranches(),this.reload()}setMode(e){this.state.mode!==e&&(this.state.mode=e,this.resetSelection(),this.reload())}setRevision(e,t){this.state[e]!==t&&(this.state[e]=t,this.resetSelection(),this.reload())}setStrategy(e){this.state.strategy!==e&&(this.state.strategy=e,this.resetSelection(),this.reload())}setQuery(e){this.setLogFilter("query",e)}setAuthor(e){this.setLogFilter("author",e)}setLogFilter(e,t){this.state[e]=t,this.resetSelection(),this.queryTimer=setTimeout(()=>{this.queryTimer=null,this.reload()},220)}refresh(){this.resetSelection(),this.loadBranches(),this.reload()}async reload(){if(!this.disposed&&null!==this.state.repositoryRoot){if("compare"===this.state.mode)return this.state.base?void await this.loadChanges({base:this.state.base,target:this.state.target,strategy:this.state.strategy},1,!0):void this.publish();await this.loadLog(1)}}selectCommit(e,t){let s="string"==typeof e?e:e.oid;this.state.selectedCommit=s,this.scroll.changes=0,this.loadChanges({commit:s,...t?{parent:t}:{}},1)}showAggregate(){this.range&&(this.state.selectedCommit=null,this.loadChanges(this.range,1))}loadMoreLog(){("ready"===this.state.log.status||"error"===this.state.log.status)&&this.state.log.data?.hasMore&&!(this.state.log.data.items.length>=2e3)&&this.loadLog(this.logPage+1)}loadMoreChanges(){this.selection&&"ready"===this.state.changes.status&&this.state.changes.data?.hasMore&&this.loadChanges(this.selection,this.changesPage+1)}openChange(e){if(null===this.state.repositoryRoot)return;let t=this.state.changes.data,s=t?.items.find(t=>t.path===e);if(!t||!s)return;this.state.selectedChangePath=e,this.publish();let{original:i,target:a}=t.comparison,r=i?i.slice(0,8):h("emptyRevision"),n=h(this.state.selectedCommit||"merge-base"!==this.state.strategy?"historyDiffDirect":"historyDiffAncestor",{left:r,target:a.slice(0,8)});this.files.openDiff(this.state.repositoryRoot,e,{baseCommit:i,targetCommit:a,...s.oldPath?{oldPath:s.oldPath}:{}},n)}dispose(){for(let e of(this.disposed=!0,this.queryTimer&&clearTimeout(this.queryTimer),this.requests.values()))e.abort();this.requests.clear(),this.resetChangeTree(),this.listeners.clear()}async loadBranches(){let e=this.state.repositoryRoot;if(null===e||this.disposed)return;let t=this.begin("branches");this.state.branches={status:"loading",data:this.state.branches.data,error:null},this.publish();try{let s=await this.reader.branches(e,t.signal);if(!this.current("branches",t))return;this.state.branches={status:"ready",data:s,error:null}}catch(e){if(!this.current("branches",t))return;this.state.branches={status:"error",data:null,error:this.error(e)}}this.requests.delete("branches"),this.publish()}async loadLog(e){let t=this.state.repositoryRoot;if(this.disposed||null===t)return;let s=e>1?this.state.log.data:null,i=s?.tip??("compare"===this.state.mode?this.range?.target:this.state.tip),a=s?.exclude??("compare"===this.state.mode?this.range?.base:void 0);if(!i)return;let r=this.begin("log");this.state.log={status:"loading",data:s,error:null},this.publish();try{let n=await this.reader.log(t,{tip:i,...a?{exclude:a}:{},query:this.state.query,...this.state.author.trim()?{author:this.state.author.trim()}:{},page:{index:e,size:50}},r.signal);if(!this.current("log",r))return;for(let{author:t}of(this.logPage=e,n.items))t&&this.state.authorSuggestions.length<200&&!this.state.authorSuggestions.includes(t)&&this.state.authorSuggestions.push(t);if(this.state.log={status:"ready",data:{...n,items:[...s?.items??[],...n.items].slice(0,2e3)},error:null},1===e&&n.items[0]){let e=n.items.find(e=>e.oid===this.restoredCommit);this.restoredCommit=null,e?(this.state.selectedCommit=e.oid,this.loadChanges({commit:e.oid},1)):"history"===this.state.mode&&this.selectCommit(n.items[0])}}catch(e){if(!this.current("log",r))return;this.state.log={status:"error",data:s,error:this.error(e)}}this.requests.delete("log"),this.publish()}async loadChanges(e,t,s=!1){let i=this.state.repositoryRoot;if(this.disposed||null===i)return;let a=this.begin("changes"),r=t>1?this.state.changes.data:null;1===t&&this.resetChangeTree(),this.selection=e,this.state.changes={status:"loading",data:r,error:null},this.publish();try{let n=await this.reader.changes(i,{selection:e,page:{index:t,size:200}},a.signal);if(!this.current("changes",a))return;this.changesPage=t;let o=[...r?.items??[],...n.items];this.state.changes={status:"ready",data:{...n,items:o},error:null},this.changeTree=(0,u.OA)(o.map(e=>e.path)),null!==this.restoredChangesScroll&&(this.scroll.changes=this.restoredChangesScroll,this.restoredChangesScroll=null),this.rebuildChangeRows(),this.restoredChangePath&&o.some(e=>e.path===this.restoredChangePath)&&(this.state.selectedChangePath=this.restoredChangePath,this.restoredChangePath=null),this.selection="commit"in e?{commit:n.comparison.target,...n.commit?.selectedParent?{parent:n.commit.selectedParent}:{}}:{base:n.comparison.base,target:n.comparison.target,strategy:e.strategy},s&&"base"in this.selection&&(this.range=this.selection,this.loadLog(1))}catch(e){if(!this.current("changes",a))return;this.state.changes={status:"error",data:r,error:this.error(e)}}this.requests.delete("changes"),this.publish()}resetSelection(){this.restoredCommit=null,this.restoredChangePath=null,this.restoredChangesScroll=null,this.queryTimer&&clearTimeout(this.queryTimer),this.queryTimer=null,this.scroll.log=this.scroll.changes=0,this.cancel("log"),this.cancel("changes"),this.range=null,this.selection=null,this.state.selectedCommit=null,this.state.log=p(),this.state.changes=p(),this.resetChangeTree(),this.publish()}resetChangeTree(){this.collapsedDirectories.clear(),this.changeTree=(0,u.OA)([]),this.changeRows=[],this.state.selectedChangePath=null,this.scroll.changes=0}rebuildChangeRows(){let e=this.changeRowHeight,t=Math.floor(this.scroll.changes/e),s=this.changeRows[t],i=this.scroll.changes%e;this.changeRows=(0,u.qV)(this.changeTree,this.collapsedDirectories);let a=s?this.changeRows.findIndex(e=>e.key===s.key):-1;this.scroll.changes=a>=0?a*e+i:Math.min(this.scroll.changes,Math.max(0,(this.changeRows.length-1)*e))}begin(e){this.cancel(e);let t=new AbortController;return this.requests.set(e,t),t}cancel(e){this.requests.get(e)?.abort(),this.requests.delete(e)}current(e,t){return!this.disposed&&this.requests.get(e)===t}error(e){return e instanceof Error?e.message:h("historyReadFailed")}publish(){if(!this.disposed)for(let e of(this.revision+=1,this.listeners))e()}}function f(e,t){return(0,a.QL)(e,{path:"/api/pi/directories/list",request:r.FH,response:r.N$},{forceRefresh:!1},t)}function g(e,t,s){return(0,a.QL)(e,{path:"/api/pi/directory-entries/list",request:r.rB,response:r.rn},{cwd:t},s)}function x(e,t,s,r,c,d={}){let u=(0,a.Y4)(e,{cwd:t},d.onUnauthorized),h=new n.h(t,u,{imagePreviewMode:l.Wq,onNotice:s,reveal:(s,a="file")=>(0,i.P)(e,{cwd:t},s,a),maxTabs:20}),p=new o(t,u),f=new m(u,h),g=!1;return{files:h,git:p,history:f,restore(){if(!g&&(g=!0,p.setLayout(t,c.treeLayout),r)){for(let e of(p.setChangesOnly(t,r.changesOnly),r.expandedRepositories))p.toggleRepository(t,e);h.restoreBrowsing(r),f.restoreBrowsing(r.history,!d.lazyHistory)}},dispose(){f.dispose(),p.dispose(),h.dispose()}}}},29029:(e,t,s)=>{"use strict";s.d(t,{FH:()=>o,N$:()=>l,rB:()=>d,rn:()=>u});var i=s(38979),a=s(66453),r=s(70698);let n=i.Ik({cwd:a.m4,sessionCount:i.ai().int().nonnegative(),updatedAt:r.k}).strict(),o=i.Ik({forceRefresh:i.zM().default(!1)}).strict(),l=i.Ik({directories:i.YO(n)}).strict();i.Ik({cwd:a.m4,ignored:i.zM()}).strict(),i.Ik({}).strict();let c=i.Ik({cwd:a.m4,name:i.Yj().trim().min(1)}).strict(),d=i.Ik({cwd:a.m4.nullable()}).strict(),u=i.Ik({cwd:a.m4.nullable(),parentCwd:a.m4.nullable(),directories:i.YO(c)}).strict(),h=i.k5(["title","user","assistant","sessionId"]),p=i.Ik({scope:h,count:i.ai().int().positive(),entryId:a.Rv.nullable(),timestampMs:r.k.nullable(),preview:i.Yj().min(1).max(160)}).strict(),m=i.Ik({sessionId:a.$E,cwd:a.m4,name:i.Yj().nullable(),createdAt:r.k,updatedAt:r.k,messageCount:i.ai().int().nonnegative(),userMessageCount:i.ai().int().nonnegative(),firstMessage:i.Yj().max(160),matches:i.YO(p).min(1).max(4).nullable()}).strict();i.Ik({cwd:a.m4,query:i.Yj().trim().max(120).default(""),forceRefresh:i.zM().default(!1),searchIn:i.YO(h).min(1).max(4).default(["title","user"])}).strict(),i.Ik({cwd:a.m4,sessions:i.YO(m)}).strict(),i.Ik({cwd:a.m4,sessionId:a.$E,query:i.Yj().trim().max(120).default(""),page:i.Ik({index:i.ai().int().positive(),size:i.ai().int().positive().max(50)}).strict()}).strict();let f=i.Ik({entryId:a.Rv,timestampMs:r.k,text:i.Yj()}).strict();i.Ik({page:i.Ik({index:i.ai().int().positive(),size:i.ai().int().positive(),total:i.ai().int().nonnegative()}).strict(),messages:i.YO(f)}).strict()},35800:(e,t,s)=>{"use strict";s.d(t,{F:()=>Q});var i=s(7962),a=s(71057),r=s(14228),n=s(19932),o=s(49762),l=s(95526),c=s(14044),d=s(36670),u=s(65770),h=s(66584),p=s(31761),m=s(90213),f=s(41148),g=s(69266),x=s(78121),v=s(15265),b=s(5816),y=s(49426),w=s(81649),j=s(50479);let k=(0,g.createContext)({expandedPaths:new Set,togglePath:()=>{}}),N=({expanded:e,defaultExpanded:t=new Set,selectedPath:s,onSelect:a,onExpandedChange:r,className:n,children:o,...l})=>{let[c,d]=(0,g.useState)(t),u=e??c,h=(0,g.useCallback)(e=>{let t=new Set(u);t.has(e)?t.delete(e):t.add(e),d(t),r?.(t)},[u,r]),p=(0,g.useMemo)(()=>({expandedPaths:u,onSelect:a,selectedPath:s,togglePath:h}),[u,a,s,h]);return(0,i.jsx)(k.Provider,{value:p,children:(0,i.jsx)("div",{className:(0,y.cn)("rounded-lg border bg-background font-sans text-sm",n),role:"tree",...l,children:(0,i.jsx)("div",{className:"p-2",children:o})})})},C=({className:e,children:t,...s})=>(0,i.jsx)("span",{className:(0,y.cn)("shrink-0",e),...s,children:t}),S=({className:e,children:t,...s})=>(0,i.jsx)("span",{className:(0,y.cn)("truncate",e),...s,children:t}),R=(0,g.createContext)({isExpanded:!1,name:"",path:""}),z=({path:e,name:t,className:s,children:a,...r})=>{let{expandedPaths:n,togglePath:o,selectedPath:l,onSelect:c}=(0,g.useContext)(k),u=n.has(e),p=l===e,m=(0,g.useCallback)(()=>{o(e)},[o,e]),f=(0,g.useCallback)(()=>{c?.(e)},[c,e]),x=(0,g.useMemo)(()=>({isExpanded:u,name:t,path:e}),[u,t,e]);return(0,i.jsx)(R.Provider,{value:x,children:(0,i.jsx)(w.Nt,{onOpenChange:m,open:u,children:(0,i.jsxs)("div",{className:(0,y.cn)("",s),role:"treeitem","aria-expanded":u,"aria-selected":p,tabIndex:0,...r,children:[(0,i.jsxs)("div",{className:(0,y.cn)("flex min-h-9 w-full items-center gap-2 rounded-md px-2 py-1 text-left transition-colors hover:bg-foreground/8",p&&"bg-accent"),children:[(0,i.jsx)(w.R6,{render:(0,i.jsx)("button",{className:"flex size-6 shrink-0 cursor-pointer items-center justify-center rounded-md border-none bg-transparent p-0 outline-none focus-visible:ring-2 focus-visible:ring-ring","aria-label":`${u?"收起":"展开"} ${t}`,type:"button"}),children:(0,i.jsx)(d.A,{className:(0,y.cn)("size-4 shrink-0 text-muted-foreground transition-transform",u&&"rotate-90")})}),(0,i.jsxs)("button",{className:"flex min-h-7 min-w-0 flex-1 cursor-pointer items-center gap-2 rounded-md border-none bg-transparent p-0 text-left outline-none focus-visible:ring-2 focus-visible:ring-ring",onClick:f,type:"button",children:[(0,i.jsx)(C,{children:u?(0,i.jsx)(j.A,{className:"size-4 text-muted-foreground"}):(0,i.jsx)(h.A,{className:"size-4 text-muted-foreground"})}),(0,i.jsx)(S,{children:t})]})]}),(0,i.jsx)(w.Ke,{children:(0,i.jsx)("div",{className:"ml-4 border-l pl-2",children:a})})]})})})},D=(0,g.createContext)({name:"",path:""}),M=({path:e,name:t,icon:s,className:a,children:r,...n})=>{let{selectedPath:o,onSelect:c}=(0,g.useContext)(k),d=o===e,u=(0,g.useCallback)(()=>{c?.(e)},[c,e]),h=(0,g.useCallback)(t=>{("Enter"===t.key||" "===t.key)&&c?.(e)},[c,e]),p=(0,g.useMemo)(()=>({name:t,path:e}),[t,e]);return(0,i.jsx)(D.Provider,{value:p,children:(0,i.jsx)("div",{className:(0,y.cn)("flex min-h-9 cursor-pointer items-center gap-2 rounded-md px-2 py-1 outline-none transition-colors hover:bg-foreground/8 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",d&&"bg-accent",a),onClick:u,onKeyDown:h,role:"treeitem","aria-selected":d,tabIndex:0,...n,children:r??(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("span",{className:"size-6 shrink-0"}),(0,i.jsx)(C,{children:s??(0,i.jsx)(l.A,{className:"size-4 text-muted-foreground"})}),(0,i.jsx)(S,{children:t})]})})})};var A=s(74675),P=s(86963),$=s(49362),T=s(17511),E=s(32892);let O=["all","files","content"],I=[{key:"caseSensitive",label:"searchCaseSensitive",text:"Aa"},{key:"wholeWord",label:"searchWholeWord",text:"Ab"},{key:"regex",label:"searchRegex",text:".*"}];function L({input:e,inputRef:t,invalid:s,onQueryChange:a,onOptionsChange:r,onComposingChange:n,onClose:o,onOpenFirst:l,onFocusResults:c}){let{t:d}=(0,x.Bd)("projectFiles"),[u,h]=(0,g.useState)(null),p=(0,g.useRef)(!1);(0,g.useEffect)(()=>()=>n(!1),[n]);let m=d("files"===e.scope?"searchFiles":"content"===e.scope?"searchContent":"searchAll");return(0,i.jsxs)("div",{className:"shrink-0 px-1 pt-1",children:[(0,i.jsxs)(T.MG,{className:"rounded-md",children:[(0,i.jsx)(T.Sq,{className:"pl-1.5 py-0",children:(0,i.jsx)(f.A,{className:"size-3.5"})}),(0,i.jsx)(T.iV,{ref:t,"data-testid":"project-file-search",className:"min-h-7 min-w-0 px-1.5 py-0.5 text-sm placeholder:text-xs",value:u??e.query,placeholder:m,"aria-label":m,"aria-invalid":s||void 0,autoComplete:"off",spellCheck:!1,onChange:e=>{p.current?h(e.target.value):a(e.target.value)},onCompositionStart:e=>{p.current=!0,h(e.currentTarget.value),n(!0)},onCompositionEnd:e=>{p.current=!1,h(null),a(e.currentTarget.value),n(!1)},onKeyDown:e=>{e.nativeEvent.isComposing||p.current||("Enter"===e.key?(e.preventDefault(),l()):"ArrowDown"===e.key&&(e.preventDefault(),c()))}}),(0,i.jsx)(T.Sq,{align:"inline-end",className:"pr-0.5 py-0 has-[>button]:mr-0",children:(0,i.jsxs)(E.m_,{children:[(0,i.jsx)(E.k$,{render:(0,i.jsx)(T.Ik,{size:"icon-xs",className:"min-h-7","aria-label":d("closeSearch"),onClick:o}),children:(0,i.jsx)($.A,{className:"size-4"})}),(0,i.jsx)(E.ZI,{children:d("closeSearch")})]})})]}),(0,i.jsxs)("div",{className:"flex min-h-7 flex-wrap items-center justify-between gap-x-1",children:[(0,i.jsx)("div",{className:"flex min-w-0 items-center",role:"radiogroup","aria-label":d("searchScope"),children:O.map((t,s)=>(0,i.jsx)(P.$,{type:"button",role:"radio","aria-checked":e.scope===t,tabIndex:e.scope===t?0:-1,disabled:null!==u,variant:"ghost",size:"sm","data-testid":`project-search-scope-${t}`,className:(0,y.cn)("px-1 text-xs",e.scope===t&&"bg-accent text-accent-foreground"),onClick:()=>r({scope:t}),onKeyDown:e=>{let t="ArrowRight"===e.key||"ArrowDown"===e.key,i="ArrowLeft"===e.key||"ArrowUp"===e.key;if(!t&&!i&&"Home"!==e.key&&"End"!==e.key)return;e.preventDefault();let a="Home"===e.key?0:"End"===e.key?2:(s+(t?1:2))%3;r({scope:O[a]}),e.currentTarget.parentElement?.querySelectorAll('[role="radio"]')[a]?.focus()},children:d("all"===t?"searchScopeAll":"files"===t?"searchScopeFiles":"searchScopeContent")},t))}),(0,i.jsx)("div",{className:"ml-auto flex items-center",children:I.map(({key:t,label:s,text:a})=>(0,i.jsxs)(E.m_,{children:[(0,i.jsx)(E.k$,{render:(0,i.jsx)(P.$,{type:"button",variant:"ghost",size:"icon-sm",disabled:null!==u,"aria-label":d(s),"aria-pressed":e[t],"data-testid":`project-search-option-${t}`,className:(0,y.cn)("font-mono text-xs text-muted-foreground","wholeWord"===t&&"underline underline-offset-4"),onClick:()=>r({[t]:!e[t]})}),children:a}),(0,i.jsx)(E.ZI,{children:d(s)})]},t))})]})]})}function q(e,t,s=0){let a=[],r=0;for(let n of t){let t=Math.max(r,n.start-s,0),o=Math.min(n.end-s,e.length);o<=t||(a.push(e.slice(r,t)),a.push((0,i.jsx)("mark",{className:"rounded-sm bg-foreground/15 text-inherit",children:e.slice(t,o)},`${t}:${o}`)),r=o)}return a.push(e.slice(r)),a}function F({search:e,resultsRef:t,activePath:s,onOpen:a,wrapFile:r,renderFileIcon:n,fileDecoration:o}){let{t:u}=(0,x.Bd)("projectFiles"),h=(0,g.useId)(),[p,m]=(0,g.useState)(!1),[v,b]=(0,g.useState)(new Set),[w,j]=(0,g.useState)(null),k=new Map;for(let t of e.contentMatches){let e=k.get(t.path);e?e.push(t):k.set(t.path,[t])}let N=!!e.query.trim(),C=N&&"ready"===e.status,S=e.fileMatches.length,R=e.contentMatches.length,z="all"===e.scope&&S>3&&R>0&&!p,D=z?e.fileMatches.slice(0,3):e.fileMatches,M=u("searchCounts",{files:new Set([...e.fileMatches.map(e=>e.path),...k.keys()]).size,lines:R}),$=e=>{b(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s})};return(0,i.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,i.jsxs)("div",{className:"flex min-h-6 flex-wrap items-center justify-between gap-x-2 px-2 text-xs text-muted-foreground",role:"status","aria-live":"polite",children:[(0,i.jsx)("span",{children:u("searchResults")}),C?(0,i.jsx)("span",{className:"tabular-nums",children:e.truncated?u("searchShownCounts",{counts:M}):M}):null]}),(0,i.jsx)(A.V,{className:"min-h-0 flex-1",viewportClassName:"pb-2",children:(0,i.jsx)("div",{ref:t,role:"region","aria-label":u("searchResults"),"aria-busy":N&&"loading"===e.status,onKeyDown:e=>{if("ArrowDown"!==e.key&&"ArrowUp"!==e.key&&"Home"!==e.key&&"End"!==e.key)return;let t=[...e.currentTarget.querySelectorAll("button")].filter(e=>!e.disabled&&!e.closest("[hidden]")),s=t.indexOf(document.activeElement);if(s<0)return;e.preventDefault();let i="Home"===e.key?0:"End"===e.key?t.length-1:Math.max(0,Math.min(t.length-1,s+("ArrowDown"===e.key?1:-1)));t[i]?.focus()},children:N?"loading"===e.status?(0,i.jsxs)("div",{className:"flex min-h-10 items-center gap-2 px-3 text-xs text-muted-foreground",children:[(0,i.jsx)(c.A,{className:"size-3.5 animate-spin"}),u("searching")]}):"error"===e.status?(0,i.jsx)("p",{role:"alert",className:"mx-3 my-2 break-words rounded-md bg-destructive/10 px-3 py-2 text-sm text-destructive",children:e.error||u("searchFailed")}):C&&0===S&&0===R?(0,i.jsxs)("div",{className:"px-5 py-9 text-center text-sm text-muted-foreground",children:[(0,i.jsx)(f.A,{className:"mx-auto mb-3 size-6"}),(0,i.jsx)("p",{children:u(e.truncated?"resultLimit":"noMatches")}),(0,i.jsx)("p",{className:"mt-2 text-xs",children:u("searchTryOptions")})]}):C?(0,i.jsxs)(i.Fragment,{children:[S>0?(0,i.jsxs)("section",{children:["all"===e.scope?(0,i.jsxs)("h3",{className:"flex min-h-6 items-center gap-2 px-2 text-xs text-muted-foreground",children:[u("searchFileHeading"),(0,i.jsx)("span",{className:"tabular-nums",children:S})]}):null,D.map(({path:e,ranges:t})=>{let l=e.lastIndexOf("/"),c=o(e);return r(e,void 0,(0,i.jsxs)(P.$,{type:"button",variant:"ghost","data-testid":`project-search-result-${e}`,"data-search-result":"true",className:(0,y.cn)("mx-1 flex min-h-6 w-[calc(100%-0.5rem)] justify-start gap-1 px-1 py-0 text-left font-normal [@media(pointer:coarse)]:min-h-9",s===e&&"bg-accent"),title:e,onClick:()=>a(e),children:[(0,i.jsx)("span",{className:"shrink-0",children:n(e)}),(0,i.jsxs)("span",{className:"flex min-w-0 flex-1 items-baseline gap-1.5",children:[(0,i.jsx)("span",{className:(0,y.cn)("truncate text-sm",c.className),children:q(e.slice(l+1),t,l+1)}),l>=0?(0,i.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-xs text-muted-foreground",children:q(e.slice(0,l),t)}):null]}),c.badge?(0,i.jsx)("span",{className:(0,y.cn)("text-xs",c.className),"aria-label":u("gitStatus",{status:c.badge}),children:c.badge}):null]},e))}),z?(0,i.jsx)(P.$,{type:"button",variant:"ghost",size:"sm",className:"ml-5 min-h-6 py-0 text-xs text-muted-foreground [@media(pointer:coarse)]:min-h-9",onClick:()=>m(!0),children:u("searchExpandFiles",{count:S-3})}):null]}):null,R>0?(0,i.jsxs)("section",{className:(0,y.cn)(S>0&&"mt-1"),children:["all"===e.scope?(0,i.jsxs)("h3",{className:"flex min-h-6 flex-wrap items-center gap-x-2 px-2 text-xs text-muted-foreground",children:[u("searchContentHeading"),(0,i.jsx)("span",{children:u("searchContentCounts",{lines:R,files:k.size})})]}):null,[...k].map(([e,t],s)=>{let n=e.lastIndexOf("/"),o=!v.has(e),c=`${h}-${s}`;return(0,i.jsxs)("section",{className:"mb-1",children:[(0,i.jsxs)(P.$,{type:"button",variant:"ghost",className:"min-h-6 w-full justify-start gap-1 rounded-none px-2 py-0 text-left font-normal [@media(pointer:coarse)]:min-h-9",title:e,"aria-expanded":o,"aria-controls":c,onClick:()=>$(e),onKeyDown:t=>{("ArrowLeft"===t.key&&o||"ArrowRight"===t.key&&!o)&&(t.preventDefault(),$(e))},children:[(0,i.jsx)(d.A,{className:(0,y.cn)("size-3 shrink-0 text-muted-foreground transition-transform motion-reduce:transition-none",o&&"rotate-90")}),(0,i.jsx)(l.A,{className:"size-3.5 shrink-0 text-muted-foreground"}),(0,i.jsxs)("span",{className:"min-w-0 truncate text-sm",children:[e.slice(n+1),(0,i.jsx)("span",{className:"ml-1.5 text-xs text-muted-foreground",children:e.slice(0,Math.max(0,n))})]}),(0,i.jsx)("span",{className:"ml-auto shrink-0 rounded bg-muted px-1 text-xs text-muted-foreground tabular-nums",children:t.length})]}),(0,i.jsx)("div",{id:c,hidden:!o,children:t.map(({line:t,text:s,ranges:n})=>r(e,t,(0,i.jsxs)(P.$,{type:"button",variant:"ghost","data-testid":`project-search-line-${e}-${t}`,"data-search-result":"true",className:(0,y.cn)("min-h-6 w-full justify-start gap-1 rounded-none border-l-2 border-transparent py-0 pr-2 pl-5 text-left font-mono font-normal [@media(pointer:coarse)]:min-h-9",w?.path===e&&w.line===t&&"border-l-foreground/50 bg-accent"),title:s,"aria-label":u("searchOpenLine",{path:e,line:t}),onClick:()=>{j({path:e,line:t}),a(e,t)},children:[(0,i.jsx)("span",{className:"min-w-5 shrink-0 text-right text-xs text-muted-foreground tabular-nums",children:t}),(0,i.jsx)("span",{className:"min-w-0 truncate whitespace-pre text-sm",children:q(s,n)})]},`${e}:${t}`)))})]},e)})]}):null,e.truncated?(0,i.jsx)("p",{className:"px-3 py-2 text-xs leading-5 text-muted-foreground",children:u("resultLimit")}):null]}):null:(0,i.jsxs)("div",{className:"px-5 py-9 text-center text-sm text-muted-foreground",children:[(0,i.jsx)(f.A,{className:"mx-auto mb-3 size-6"}),(0,i.jsx)("p",{children:u("searchStart")}),(0,i.jsx)("p",{className:"mt-2 text-xs",children:u("files"===e.scope?"searchFiles":"content"===e.scope?"searchContent":"searchAll")})]})})}),"files"!==e.scope?(0,i.jsx)("p",{className:"shrink-0 px-2 py-1 text-xs leading-5 text-muted-foreground",children:u("searchTextLimit")}):null]})}var B=s(35989),_=s(60682),W=s(8596),Y=s.n(W),H=s(82075);let V=[],K=new WeakMap;function U(e){let t=e.split("/").at(-1)?.toLocaleLowerCase()??"",s=t.includes(".")?t.split(".").at(-1)??"":"";return["png","jpg","jpeg","webp","gif"].includes(s)?(0,i.jsx)(a.A,{className:"size-4 text-muted-foreground"}):"json"===s||"jsonl"===s?(0,i.jsx)(r.A,{className:"size-4 text-muted-foreground"}):["md","mdx","txt"].includes(s)?(0,i.jsx)(n.A,{className:"size-4 text-muted-foreground"}):["ts","tsx","js","jsx","mjs","cjs","py","go","rs","java","c","cpp","h","hpp","css","scss","html","xml","yaml","yml","toml","sql","sh"].includes(s)?(0,i.jsx)(o.A,{className:"size-4 text-muted-foreground"}):(0,i.jsx)(l.A,{className:"size-4 text-muted-foreground"})}function J(e){if(e)return(0,B.iH)(e.change)}function G({state:e,onRetry:t}){let{t:s}=(0,x.Bd)("projectFiles");return e&&"idle"!==e.status&&"loading"!==e.status?"error"!==e.status?null:(0,i.jsx)("button",{type:"button",onClick:t,className:"min-h-8 w-full rounded px-2 text-left text-xs text-destructive hover:bg-destructive/10",children:s("retryReading",{error:e.error})}):(0,i.jsxs)("div",{className:"flex min-h-8 items-center gap-2 px-2 text-xs text-muted-foreground",children:[(0,i.jsx)(c.A,{className:"size-3.5 animate-spin"})," ",s("reading")]})}function Q({cwd:e,projectName:t,runtime:s,gitRuntime:a,onOpenGitBranches:r,onFileOpened:n,rootTitle:o,showRootTitle:l=!0,gitReadOnly:c=!1}){let w,j,k,{t:R}=(0,x.Bd)("projectFiles"),{locale:D}=(0,b.i)();(0,g.useSyncExternalStore)(s.subscribe,s.getRevision,s.getRevision),(0,g.useSyncExternalStore)(a.subscribe,a.getRevision,a.getRevision);let $=s.state,T=a.getWorkspace(e),E=(0,g.useRef)(null),O=(0,g.useRef)(null),I=(0,g.useRef)(null),q=(0,g.useRef)(null),[W,X]=(0,g.useState)(!1),Z=(0,g.useRef)({}),ee=(0,g.useCallback)(e=>{e?K.set(s,Z.current):K.get(s)===Z.current&&K.delete(s),X(e)},[s]),et=$.searchOpen,es=()=>{X(!1),s.setSearchOpen(!1),requestAnimationFrame(()=>q.current?.focus())},[ei,ea]=(0,g.useState)({}),er=(e,t)=>{let s=ei[e]??300;return s<t?(0,i.jsx)("button",{type:"button",className:"min-h-8 px-3 text-sm text-muted-foreground hover:bg-accent",onClick:t=>{t.stopPropagation(),ea(t=>({...t,[e]:s+300}))},children:R("showMore",{visible:s,total:t})}):null},en=$?.search.query??"",eo=T?.snapshot.repositories??V,el=(0,B.eP)(eo),ec=new Map(el.map(e=>[e.projectPath,e])),ed=eo.map(e=>e.root).filter(Boolean);(0,g.useEffect)(()=>{s.ensureRoot(),a.ensureSnapshot(e)},[e,a,s]),(0,g.useEffect)(()=>{let e=E.current;e&&!et&&(e.scrollTop=$.treeScrollTop)},[et,$]),(0,g.useEffect)(()=>{if(!et||!en.trim()||W)return;let e=window.setTimeout(()=>{K.has(s)||s.search(en)},220);return()=>window.clearTimeout(e)},[W,s,et,en]);let eu=[...T?.expandedRepositories??[]].join("\0");(0,g.useEffect)(()=>{if(T&&"repository"===T.layout)for(let e of T.expandedRepositories)s.ensureDirectory(e)},[eu,T,s]);let eh=new Set(ed),ep=new Map,em=new Set([...$.expandedPaths].map(e=>(0,H.Im)("directory",e))),ef=(e,t)=>{let i=new Set($.expandedPaths);for(let s of e.paths)t?i.add(s):i.delete(s);s.setExpandedPaths(i,!1),t&&!T?.changesOnly&&s.expandDirectoryChain(e.path,eh)},eg=e=>{for(let[t,s]of[...ep].filter(([t])=>e.has((0,H.Im)("directory",t))!==$.expandedPaths.has(t)))ef(s,e.has((0,H.Im)("directory",t)))},ex=(e,t)=>{s.openFile(e,t),n?.()},ev=e=>{s.openDiff(e.repositoryRoot,e.path),n?.()},eb=(t,a)=>(0,i.jsx)(_.J,{cwd:e,path:t.targetPath,type:"directory",trigger:a,expanded:$.expandedPaths.has(t.path),onToggle:()=>ef(t,!$.expandedPaths.has(t.path)),onReveal:s.canReveal?(e,t)=>s.revealFile(e,t):void 0},(0,H.Im)("directory",t.path)),ey=(t,a,r=null,n=!1,o)=>(0,i.jsx)(_.J,{cwd:e,path:t,type:"file",trigger:a,openLabel:R(n?"viewDiff":"openPreview"),onOpen:()=>n&&r?ev(r):ex(t,o),oldPath:r?.change.oldPath?(0,H._J)(r.repositoryRoot,r.change.oldPath):void 0,onReveal:s.canReveal?(e,t)=>s.revealFile(e,t):void 0},void 0===o?(0,H.Im)("file",t):`${t}:${o}`),ew=(e,t,s,a)=>ey(e,(0,i.jsxs)(M,{path:(0,H.Im)("file",e),name:t,title:e,"data-testid":`project-file-${e}`,onClick:()=>{a&&s?ev(s):ex(e)},children:[(0,i.jsx)("span",{className:"size-6 shrink-0"}),(0,i.jsx)(C,{children:U(e)}),(0,i.jsx)(S,{"data-testid":`project-file-name-${e}`,className:(0,y.cn)("min-w-0 flex-1",J(s)),children:t}),s?(0,i.jsx)("span",{className:(0,y.cn)("text-xs tabular-nums",J(s)),"aria-label":R("gitStatus",{status:(0,B.XB)(s.change)}),children:(0,B.XB)(s.change)}):null]}),s,a),ej=(e,t,a)=>{let r=$?.directories.get(e);if(r?.status!=="ready")return(0,i.jsx)(G,{state:r,onRetry:()=>void s.ensureDirectory(e)});let n=a?r.entries.filter(s=>{let i;return i=(0,H._J)(e,s.name),!ed.some(e=>e!==t&&i===e)}):r.entries;return(0,i.jsxs)(i.Fragment,{children:[n.slice(0,ei[`directory:${e}`]??300).map(r=>{let n=(0,H._J)(e,r.name);if("file"===r.type)return ew(n,r.name,ec.get(n)??null,!1);let o=s.compactDirectory(n,eh);return ep.set(n,o),eb(o,(0,i.jsx)(z,{path:(0,H.Im)("directory",n),name:o.label,title:o.targetPath,"data-testid":`project-folder-${n}`,children:ej(o.targetPath,t,a)}))}),er(`directory:${e}`,n.length),r.truncated?(0,i.jsx)("p",{className:"px-2 py-2 text-xs leading-5 text-amber-600 dark:text-amber-400",children:R("directoryLimit")}):null,0===n.length?(0,i.jsx)("p",{className:"px-2 py-2 text-xs text-muted-foreground",children:R("emptyDirectory")}):null]})},ek=(e,t)=>{let s=e.get(t);if(!s)return null;let a=[...s.directories.keys()].sort(H.Kn),r=[...s.files].sort(H.Kn),n=ei[`changes:${t}`]??300;return(0,i.jsxs)(i.Fragment,{children:[a.slice(0,n).map(t=>{let s=(0,H.xV)(t,e,eh);return ep.set(t,s),eb(s,(0,i.jsx)(z,{path:(0,H.Im)("directory",t),name:s.label,title:s.targetPath,"data-testid":`project-folder-${t}`,children:ek(e,s.targetPath)}))}),r.slice(0,Math.max(0,n-a.length)).map(e=>ew(e,e.slice(e.lastIndexOf("/")+1),ec.get(e)??null,!0)),er(`changes:${t}`,a.length+r.length)]})},eN=e=>{if(e.startsWith("directory:")){let t=ep.get(e.slice(10));t&&ef(t,!$.expandedPaths.has(t.path));return}let t=e.slice(5),s=ec.get(t);T?.changesOnly&&s?ev(s):ex(t)},eC=(n,o,l)=>{if(T?.changesOnly&&!n)return null;let m=T?.expandedRepositories.has(o)??!1,f=n?.state==="ready"?el.filter(e=>e.repositoryRoot===o):[],g=f.length;if(T?.changesOnly&&n?.state==="ready"&&0===g)return null;let x=(0,H.OA)(f.map(e=>e.projectPath),o);return(0,i.jsxs)("section",{"data-testid":`project-git-repository-${o||"root"}`,className:"border-b last:border-b-0",children:[(0,i.jsxs)("div",{className:"flex min-h-8 items-center gap-1 px-1 py-0.5",children:[(0,i.jsxs)("button",{"data-testid":`project-git-repository-toggle-${o||"root"}`,type:"button",className:"flex min-w-0 flex-1 items-center gap-1 rounded-md px-1 py-0.5 text-left hover:bg-muted/60","aria-expanded":m,onClick:()=>{m&&s.cancelDirectoryExpansion(o),a.toggleRepository(e,o),m||s.ensureDirectory(o)},children:[(0,i.jsx)(d.A,{className:(0,y.cn)("size-3 shrink-0 text-muted-foreground transition-transform",m&&"rotate-90")}),n?(0,i.jsx)(u.A,{className:"size-4 shrink-0 text-muted-foreground"}):(0,i.jsx)(h.A,{className:"size-4 shrink-0 text-muted-foreground"}),(0,i.jsx)("span",{className:"min-w-0 flex-1 truncate text-sm font-medium",title:n&&o||t,children:l})]}),n?(0,i.jsxs)("button",{"data-testid":`project-git-branch-${o||"root"}`,type:"button",disabled:c||"ready"!==n.state,className:(0,y.cn)((0,P.r)({variant:"ghost",size:"sm"}),"max-w-28 shrink gap-1 font-mono text-xs text-muted-foreground"),title:"ready"===n.state?R(c?"gitBranchReadOnly":"gitBranches"):(0,v.fD)(n.message,D),"aria-label":R(c?"gitBranchReadOnly":"gitBranches"),onClick:()=>r(o),children:[(0,i.jsx)(p.A,{className:"size-3 shrink-0"}),(0,i.jsx)("span",{className:"min-w-0 truncate",children:"ready"===n.state?(0,B.ws)(n.head):R("unavailable")}),g>0?(0,i.jsx)("span",{className:"rounded-md bg-muted px-1 text-xs text-status-warning",children:g}):null]}):null]}),m?T?.changesOnly?(0,i.jsx)(N,{className:"rounded-none border-0 bg-transparent px-1 pb-1",expanded:em,selectedPath:$?.activeDiff?(0,H.Im)("file",(0,B.oW)($.activeDiff.repositoryRoot,$.activeDiff.path)):void 0,onExpandedChange:eg,onSelect:eN,children:g>0?ek(x,o):(0,i.jsx)("p",{className:"px-2 py-3 text-xs text-muted-foreground",children:R("noChanges")})}):(0,i.jsx)(N,{className:"rounded-none border-0 bg-transparent px-1 pb-1",expanded:em,selectedPath:$.activePath?(0,H.Im)("file",$.activePath):void 0,onExpandedChange:eg,onSelect:eN,children:ej(o,n?.root??null,!0)}):null]},n?`git:${o}`:"workspace")},eS=1===eo.length&&eo[0]?.root===""?eo[0]:null,eR=eo.length>0&&!eS,ez=eR?T?.layout??"directory":"directory",eD=eS?(0,i.jsxs)("button",{type:"button",disabled:c||"ready"!==eS.state,className:(0,y.cn)((0,P.r)({variant:"ghost",size:"sm"}),"max-w-32 shrink gap-1 font-mono text-xs text-muted-foreground",!l&&"min-w-0 flex-1 justify-start"),"aria-label":R(c?"gitBranchReadOnly":"gitBranches"),title:"ready"===eS.state?`${R(c?"gitBranchReadOnly":"gitBranches")} \xb7 ${(0,B.ws)(eS.head)}`:(0,v.fD)(eS.message,D),onClick:()=>r(""),children:[(0,i.jsx)(p.A,{className:"size-3 shrink-0"}),(0,i.jsx)("span",{className:"truncate",children:"ready"===eS.state?(0,B.ws)(eS.head):R("unavailable")})]}):null,eM=(0,i.jsxs)("div",{className:"flex min-h-8 min-w-0 flex-wrap items-center gap-x-1 gap-y-0.5 outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",tabIndex:l?void 0:0,"aria-label":R("projectFiles",{name:t}),children:[eR?(0,i.jsx)("div",{className:"flex shrink-0 gap-0.5",role:"group","aria-label":R("layout"),children:["directory","repository"].map(t=>(0,i.jsx)("button",{"data-testid":`project-file-layout-${t}`,type:"button","aria-pressed":ez===t,className:(0,y.cn)((0,P.r)({variant:"ghost",size:"sm"}),ez===t&&"bg-accent text-accent-foreground"),onClick:()=>{s.cancelDirectoryExpansion(),a.setLayout(e,t)},children:R("directory"===t?"directory":"repository")},t))}):null,eo.length>0?(0,i.jsxs)("button",{"data-testid":"project-git-changes-toggle",type:"button","aria-pressed":T?.changesOnly??!1,className:(0,y.cn)((0,P.r)({variant:"ghost",size:"sm"}),"min-w-0 gap-1",T?.changesOnly&&"bg-accent text-accent-foreground"),onClick:()=>{s.cancelDirectoryExpansion(),a.setChangesOnly(e,!T?.changesOnly)},children:[(0,i.jsx)(m.A,{className:"size-3 shrink-0"}),(0,i.jsx)("span",{className:"truncate",children:R("changesOnly")}),(0,i.jsx)("span",{className:"rounded-md bg-muted px-1 font-mono text-xs",children:el.length})]}):null,l?null:eD,(0,i.jsx)("button",{ref:q,type:"button",className:(0,y.cn)((0,P.r)({variant:"ghost",size:"icon-sm"}),"ml-auto"),"aria-label":R("searchProject"),title:R("searchProject"),onClick:()=>{s.setSearchOpen(!0),requestAnimationFrame(()=>O.current?.focus())},children:(0,i.jsx)(f.A,{className:"size-3.5"})})]});return(0,i.jsxs)("section",{className:"flex h-full min-h-0 flex-col bg-sidebar","aria-label":R("projectFiles",{name:t}),onKeyDown:e=>{!et||"Escape"!==e.key||(e.stopPropagation(),e.nativeEvent.isComposing||W||(e.preventDefault(),es()))},children:[et?(0,i.jsx)(L,{input:$.search,inputRef:O,invalid:"error"===$.search.status,onQueryChange:e=>s.setSearchQuery(e),onOptionsChange:e=>s.setSearchOptions(e),onComposingChange:ee,onClose:es,onOpenFirst:()=>{let e=s.state.search;if("ready"!==e.status)return;let t=e.fileMatches[0],i=e.contentMatches[0];t?ex(t.path):i&&ex(i.path,i.line)},onFocusResults:()=>I.current?.querySelector("button")?.focus()}):(0,i.jsxs)("div",{className:"border-b px-1",children:[l?(0,i.jsxs)("div",{className:"flex min-h-7 min-w-0 items-center gap-1",children:[(0,i.jsx)(_.J,{cwd:e,path:"",type:"directory",onReveal:s.canReveal?(e,t)=>s.revealFile(e,t):void 0,trigger:o?(0,i.jsx)("div",{className:"flex min-w-0 flex-1",children:o}):(0,i.jsxs)("div",{tabIndex:0,className:"flex min-w-0 flex-1 items-baseline gap-1",children:[(0,i.jsx)("p",{className:"shrink-0 truncate text-xs font-semibold",title:t,children:t}),(0,i.jsx)("span",{className:"text-xs text-muted-foreground",children:"\xb7"}),(0,i.jsx)("p",{className:"min-w-0 truncate font-mono text-xs text-muted-foreground",title:e,children:(w=e.replaceAll("\\","/").split("/").filter(Boolean)).length<=2?e:`…/${w.slice(-2).join("/")}`})]})}),eD]}):null,l?eM:(0,i.jsx)(_.J,{cwd:e,path:"",type:"directory",onReveal:s.canReveal?(e,t)=>s.revealFile(e,t):void 0,trigger:eM})]}),et?(0,i.jsx)(F,{search:$.search,resultsRef:I,activePath:$.activeDiff?null:$.activePath,onOpen:ex,wrapFile:(e,t,s)=>ey(e,s,ec.get(e)??null,!1,t),renderFileIcon:U,fileDecoration:e=>{let t=ec.get(e)??null;return{className:J(t),badge:t?(0,B.XB)(t.change):void 0}}},JSON.stringify([$.search.query,$.search.scope,$.search.caseSensitive,$.search.wholeWord,$.search.regex])):(0,i.jsxs)(A.V,{className:(0,y.cn)(Y().tree,"min-h-0 flex-1"),viewportClassName:"py-0.5",viewportRef:E,onViewportScroll:e=>s.setTreeScrollTop(e.currentTarget.scrollTop),children:[eo.filter(e=>"unavailable"===e.state).map(e=>"unavailable"===e.state?(0,i.jsxs)("p",{role:"alert",className:"mx-2 mb-1 break-words rounded-md bg-muted px-2 py-2 text-sm text-destructive",children:[e.root||t,":",(0,v.fD)(e.message,D)]},e.root):null),T?.snapshot.status==="error"?(0,i.jsx)("p",{className:"mx-2 mb-1 rounded-md bg-muted px-2 py-2 text-sm text-destructive",children:T.snapshot.error}):null,"repository"===ez?(j=eo.some(e=>""===e.root),k=T?.changesOnly?eo.filter(e=>"unavailable"===e.state||e.changes.length>0):eo,(0,i.jsxs)("div",{className:"px-1",children:[j?null:eC(null,"",t),k.map(e=>eC(e,e.root,(0,B.Hj)(t,e.root))),T?.changesOnly&&0===k.length?(0,i.jsx)("p",{className:"px-2 py-5 text-center text-xs text-muted-foreground",children:R("noChangedFiles")}):null]})):(()=>{if(T?.changesOnly){let e=(0,H.OA)(el.map(e=>e.projectPath));return(0,i.jsx)(N,{className:"rounded-none border-0 bg-transparent",expanded:em,selectedPath:$?.activeDiff?(0,H.Im)("file",(0,B.oW)($.activeDiff.repositoryRoot,$.activeDiff.path)):$.activePath?(0,H.Im)("file",$.activePath):void 0,onExpandedChange:eg,onSelect:eN,children:el.length>0?ek(e,""):(0,i.jsx)("p",{className:"px-2 py-5 text-center text-xs text-muted-foreground",children:eo.some(e=>"unavailable"===e.state)?R("incompleteRepository"):R("noChangedFiles")})})}return(0,i.jsx)(N,{className:"rounded-none border-0 bg-transparent",expanded:em,selectedPath:$.activePath?(0,H.Im)("file",$.activePath):void 0,onExpandedChange:eg,onSelect:eN,children:ej("",null,!1)})})()]})]})}},35842:(e,t,s)=>{"use strict";s.d(t,{X:()=>v});var i=s(7962),a=s(49762),r=s(49362),n=s(24121),o=s(86758),l=s(69266),c=s(78121),d=s(49426),u=s(86963),h=s(1364),p=s(56592),m=s(73165),f=s(35989);let g=[{scope:"current",label:"closeTab"},{scope:"others",label:"closeOtherTabs"},{scope:"right",label:"closeRightTabs"},{scope:"left",label:"closeLeftTabs"},{scope:"all",label:"closeAllTabs"}];function x(e,t){let s=e.replaceAll("\\","/").split("/"),i=s.at(-1)??e;return t.some(t=>t!==e&&t.split("/").at(-1)===i)&&s.length>1?s.slice(-2).join("/"):i}function v({cwd:e,gitRuntime:t,paths:s,activePath:b,diffs:y,activeDiff:w,mobile:j,actions:k,onActivate:N,onClose:C}){let{t:S}=(0,c.Bd)("projectFiles");(0,l.useSyncExternalStore)(t.subscribe,t.getRevision,t.getRevision);let R=t.getWorkspace(e)?.snapshot,z=(0,l.useRef)(null),D=(0,l.useRef)(!1),[M,A]=(0,l.useState)(!1),[P,$]=(0,l.useState)(!1),[T,E]=(0,l.useState)([]),O=void 0!==k,I=O&&!j?32:36,L=(j?2:3)*I,q=[...s,...y.map(e=>[e.repositoryRoot,e.path].filter(Boolean).join("/"))],F=s.map(e=>({target:e,key:`file:${e}`,path:e,label:x(e,q),title:e,testId:`file-tab-${e}`}));for(let e of y){let t=[e.repositoryRoot,e.path].filter(Boolean).join("/"),s=e.comparison,i=s?`${s.baseCommit?.slice(0,7)??"∅"} → ${s.targetCommit.slice(0,7)}`:"",a=(0,p.Q)(e);F.push({target:e,key:`diff:${a}`,path:t,label:`${x(t,q)} \xb7 Diff`,revisions:i,title:[t,s?.oldPath,s?`${s.baseCommit??"∅"} → ${s.targetCommit}`:null].filter(Boolean).join("\n"),testId:`file-diff-tab-${t}${s?`-${a}`:""}`})}let B=w?`diff:${(0,p.Q)(w)}`:`file:${b}`;return((0,l.useLayoutEffect)(()=>{let e=z.current;if(!e)return;let t=()=>{let t=Array.from(e.children).filter(e=>e instanceof HTMLElement).flatMap((e,t)=>e.offsetTop>=L?[t]:[]);E(e=>e.join(",")===t.join(",")?e:t),$(e.scrollHeight>L);let s=e.querySelector('[aria-selected="true"]')?.closest("[data-file-tab]");s&&s.offsetTop>=L&&A(!0)};t();let s=new ResizeObserver(t);return s.observe(e),()=>s.disconnect()},[B,y,L,s]),0===F.length)?null:(0,i.jsxs)("div",{className:(0,d.cn)("shrink-0 bg-muted",O?"flex flex-wrap items-start":"border-b"),"data-testid":"file-tabs",children:[(0,i.jsx)("div",{className:(0,d.cn)("overflow-hidden",O&&"min-w-0 flex-[1_1_12rem]"),style:{maxHeight:M?void 0:L},children:(0,i.jsx)("div",{ref:z,role:"tablist","aria-label":S("openFiles"),className:"relative flex flex-wrap content-start items-start",children:F.map((t,s)=>{let n=!M&&T.includes(s),o=t.key===B,l="string"!=typeof t.target,c=l||R?.status!=="ready"?void 0:(0,f.lN)(e,t.path,R.repositories)?.change,p=l?S("closeDiff",{name:`${t.path.split("/").at(-1)}${t.revisions?` \xb7 ${t.revisions}`:""}`}):S("closeFile",{name:t.path.split("/").at(-1)});return(0,i.jsxs)(h.tz,{onOpenChange:(e,t)=>{e&&"pointerType"in t.event&&"touch"===t.event.pointerType&&(D.current=!0)},children:[(0,i.jsxs)(h.Rc,{render:(0,i.jsx)("div",{"data-file-tab":!0,"data-testid":t.testId,"aria-hidden":n||void 0,inert:n||void 0,title:t.title,className:(0,d.cn)("flex max-w-full items-center text-sm",O?j?"h-9":"h-8":"h-9 border-r border-b",j?t.revisions?"w-full":"w-[min(50%,12rem)]":t.revisions?"max-w-80":"max-w-60",n&&"invisible",o?"bg-background text-foreground shadow-[inset_0_-2px_0_var(--primary)]":"text-muted-foreground"),onPointerDown:e=>{"touch"===e.pointerType&&(D.current=!1)}}),children:[(0,i.jsxs)("button",{type:"button",role:"tab","aria-selected":o,className:"flex h-full min-w-0 flex-1 cursor-pointer items-center gap-2 pl-3 pr-1 outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",onClick:()=>{if(D.current){D.current=!1;return}N(t.target)},onKeyDown:e=>{if("F10"===e.key&&e.shiftKey){e.preventDefault(),e.stopPropagation();let t=e.currentTarget.closest('[data-slot="context-menu-trigger"]');if(t){let e=t.getBoundingClientRect();t.dispatchEvent(new MouseEvent("contextmenu",{bubbles:!0,cancelable:!0,clientX:e.left+e.width/2,clientY:e.top+e.height/2}))}return}let t="ArrowRight"===e.key||"ArrowDown"===e.key?1:"ArrowLeft"===e.key||"ArrowUp"===e.key?-1:0;if(!t)return;e.preventDefault();let i=(s+t+F.length)%F.length;A(!0);let a=z.current?.querySelectorAll('[role="tab"]');a?.[i]?.focus({preventScroll:!0})},children:[(0,i.jsx)(a.A,{className:"size-3.5 shrink-0"}),(0,i.jsx)("span",{className:(0,d.cn)("truncate",c&&(0,f.iH)(c)),children:t.label}),t.revisions?(0,i.jsx)("span",{className:"shrink-0 font-mono text-xs",children:t.revisions}):null,c?(0,i.jsx)("span",{className:(0,d.cn)("shrink-0 text-xs",(0,f.iH)(c)),"aria-label":S("gitStatus",{status:(0,f.XB)(c)}),children:(0,f.XB)(c)}):null]}),(0,i.jsx)(u.$,{variant:"ghost",size:"icon","data-testid":l?t.testId.replace("file-diff-tab-","file-diff-tab-close-"):`file-tab-close-${t.path}`,"aria-label":p,onClick:e=>{if(e.stopPropagation(),D.current){D.current=!1;return}C(t.target,"current")},children:(0,i.jsx)(r.A,{className:"size-3.5"})})]}),(0,i.jsx)(m.D,{children:g.map(({scope:e,label:a})=>(0,i.jsxs)("span",{children:["all"===e?(0,i.jsx)(h.K5,{}):null,(0,i.jsx)(h.kt,{disabled:"others"===e?F.length<=1:"left"===e?0===s:"right"===e&&s===F.length-1,onClick:()=>{D.current=!1,C(t.target,e)},children:S(a)})]},e))})]},t.key)})})}),O&&k?(0,i.jsx)("div",{className:"ml-auto flex min-h-8 max-w-full flex-wrap items-center justify-end gap-1 px-1",role:"group","aria-label":S("fileActions"),children:k}):null,P?(0,i.jsxs)(u.$,{variant:"ghost",className:"w-full rounded-none text-muted-foreground","aria-expanded":M,onClick:()=>A(e=>!e),children:[M?(0,i.jsx)(n.A,{className:"size-3.5"}):(0,i.jsx)(o.A,{className:"size-3.5"}),M?S("collapseTabs"):S("expandTabs",{count:F.length})]}):null]})}},35907:e=>{e.exports={document:"l3-markdown-preview_document__tuJfC"}},35989:(e,t,s)=>{"use strict";s.d(t,{A_:()=>d,Hj:()=>l,XB:()=>u,eP:()=>m,iH:()=>h,lN:()=>p,oW:()=>o,oY:()=>n,ws:()=>c});var i=s(15265),a=s(93540),r=s(82075);function n(e){let t=new Map;for(let s of e){let e=s.split("/").filter(Boolean),i=t,a="";for(let[t,r]of e.entries()){a=a?`${a}/${r}`:r;let n=i.get(r);n||(n={name:r,path:a,branchName:null,children:new Map},i.set(r,n)),t===e.length-1&&(n.branchName=s),i=n.children}}return function e(t){return[...t].sort((e,t)=>e.name.localeCompare(t.name,void 0,{numeric:!0,sensitivity:"base"})).map(t=>({name:t.name,path:t.path,branchName:t.branchName,children:e(t.children.values())}))}(t.values())}function o(e,t){return(0,r._J)(e,t)}function l(e,t){return t.split("/").at(-1)||e}function c(e){return"branch"===e.type?e.name:`@ ${e.commit.slice(0,7)}`}function d(e,t,s="en"){if(0===t.length)return null;let r=a.C[s];if(1===t.length){let a=t[0],n=l(e,a.root);if("unavailable"===a.state){let e=r.gitUnavailable;return{full:a.root?`${n} \xb7 ${e}`:e,compact:"Git !",title:`${n}${"en"===s?": ":":"}${(0,i.fD)(a.message,s)}`,diverged:!0}}let o=c(a.head);return{full:a.root?`${n} \xb7 ${o}`:o,compact:o,title:`${r.gitBranches}: ${n} \xb7 ${o}`,diverged:"detached"===a.head.type}}let n=`${t.length} ${r.repositoriesUnit}`;return{full:n,compact:`Git ${t.length}`,title:`${r.gitBranches}: ${n}`,diverged:!1}}function u(e){let t=[e.indexStatus,e.worktreeStatus];return t.includes("unmerged")?"!":t.includes("deleted")?"D":t.includes("renamed")?"R":t.includes("added")?"A":t.includes("modified")?"M":"?"}function h(e){let t=u(e);return"D"===t?"text-muted-foreground":"?"===t?"text-red-600 dark:text-red-400":"A"===t?"text-emerald-600 dark:text-emerald-400":"!"===t?"text-violet-600 dark:text-violet-400":"text-blue-600 dark:text-blue-400"}function p(e,t,s){if(/^(?:[a-z]:|\/|\\\\)/i.test(t))return null;let i=/^[a-z]:[\\/]/i.test(e)||e.startsWith("\\\\"),a=e=>i?e.toLowerCase():e,r=[...s].sort((e,t)=>t.root.length-e.root.length).find(e=>!e.root||a(t).startsWith(`${a(e.root)}/`));if(!r)return null;let n=r.root?t.slice(r.root.length+1):t;return{repository:r,path:n,change:"ready"===r.state?r.changes.find(e=>a(e.path)===a(n)):void 0}}function m(e){return e.flatMap(e=>"ready"===e.state?e.changes.map(t=>({repositoryRoot:e.root,repository:e,path:t.path,projectPath:o(e.root,t.path),change:t})):[])}},36510:(e,t,s)=>{"use strict";s.d(t,{z:()=>a});let i=`<script>
2
- window.addEventListener('keydown', function (event) {
3
- if (event.defaultPrevented || event.isComposing || event.repeat) return;
4
- if (event.key === 'Escape' && !event.ctrlKey && !event.altKey && !event.metaKey && !event.shiftKey) {
5
- event.preventDefault();
6
- window.parent.postMessage('pi-desk:file-escape', '*');
7
- } else if (event.key === 'Tab' && event.ctrlKey && !event.altKey && !event.metaKey) {
8
- event.preventDefault();
9
- window.parent.postMessage('pi-desk:file-switch-pane', '*');
10
- }
11
- });
12
- </script>`;function a(e){return`${e}
13
- ${i}`}},45273:(e,t,s)=>{"use strict";s.d(t,{Fj:()=>a}),s(42643);let i="/project-preview";function a(e){return e?`${i}?cwd=${encodeURIComponent(e)}`:i}},46487:(e,t,s)=>{"use strict";s.d(t,{n:()=>h});var i=s(7962),a=s(57445),r=s(73028),n=s(69266),o=s(10508),l=s(8001),c=s(35907),d=s.n(c);let u={cjk:a.h,code:r.a},h=(0,n.memo)(function({content:e,label:t,savedScrollTop:s,onScroll:a}){let r=(0,n.useRef)(null),c=(0,n.useRef)(s);return(0,n.useLayoutEffect)(()=>{r.current&&(r.current.scrollTop=c.current)},[]),(0,i.jsx)("div",{ref:r,"data-testid":"markdown-preview",role:"region","aria-label":t,tabIndex:0,className:"h-full min-h-0 overflow-auto overscroll-contain bg-background outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",onScroll:e=>a(e.currentTarget.scrollTop),children:(0,i.jsx)(o.jH,{className:`${d().document} ${l.om}`,allowedTags:l.IV,components:l.e6,remarkPlugins:l.XC,mode:"static",parseIncompleteMarkdown:!1,isAnimating:!1,controls:!1,lineNumbers:!1,plugins:u,children:e})})})},56592:(e,t,s)=>{"use strict";s.d(t,{Q:()=>h,h:()=>f});var i=s(93540),a=s(73230),r=s(7237),n=s(33550),o=s(93320),l=s(97921),c=s(82075);let d={scope:"all",caseSensitive:!1,wholeWord:!1,regex:!1};function u(e){return{...e,status:e.query.trim()?"loading":"idle",fileMatches:[],contentMatches:[],truncated:!1,error:null}}function h(e){return JSON.stringify([e.repositoryRoot,e.path,e.comparison?.baseCommit??null,e.comparison?.targetCommit??null,e.comparison?.oldPath??null])}function p(e,t){return(0,a.B)({msg:i.C["zh-CN"][e],i18n:{key:`projectFiles:${e}`,...t?{params:t}:{}}})}function m(e){return e instanceof Error?e.message:p("projectReadFailed")}class f{constructor(e,t,s){this.cwd=e,this.reader=t,this.options=s,this.state={tabs:[],activePath:null,directories:new Map,expandedPaths:new Set,treeScrollTop:0,search:u({query:"",...d}),searchOpen:!1,documents:new Map,diffs:[],activeDiff:null},this.listeners=new Set,this.directoryRequests=new Map,this.compactRequests=new Map,this.documentRequests=new Map,this.closeMissing=new Set,this.restoredTabs=new Set,this.restoredEditorStates=new Map,this.restoredFileViewModes=new Map,this.restoredPreviewScrollTops=new Map,this.searchRequest=null,this.navigation=null,this.diffRequests=new Map,this.revision=0,this.disposed=!1,this.subscribe=e=>(this.listeners.add(e),()=>this.listeners.delete(e)),this.getRevision=()=>this.revision}setSearchOpen(e){this.disposed||this.state.searchOpen===e||(this.cancelSearch(),this.state.searchOpen=e,this.state.search=u({...this.searchInput(),scope:e?"all":this.state.search.scope}),this.publish())}get pendingNavigation(){let e=this.state.activePath;return e&&!this.documentRequests.has(e)?this.navigation:null}consumeNavigation(e,t){this.navigation===e&&(this.navigation=null,t||this.options.onNotice?.(p("searchLineUnavailable")),this.publish())}get canReveal(){return!!this.options.reveal}getBrowsingDocumentSettings(){let e={},t={};for(let s of this.state.tabs){let i=this.state.documents.get(s),a=i?.status==="text"?i.editorState:this.restoredEditorStates.get(s);a&&JSON.stringify(a).length<32768&&(e[s]=a);let r=i?.status==="text"?i.viewMode:this.restoredFileViewModes.get(s);r&&(t[s]=r)}return{editorStates:e,fileViewModes:t}}restoreBrowsing(e){if(this.disposed)return;for(let t of(this.state.tabs=e.tabs.slice(0,this.options.maxTabs),this.state.tabs)){this.restoredTabs.add(t);let s=e.editorStates[t];s&&this.restoredEditorStates.set(t,s);let i=e.fileViewModes[t];i&&this.restoredFileViewModes.set(t,i)}for(let t of(this.state.activePath=e.activePath&&this.state.tabs.includes(e.activePath)?e.activePath:null,this.state.expandedPaths=new Set(e.expandedPaths),this.state.treeScrollTop=e.treeScrollTop,this.state.search=u({query:e.searchQuery,...d}),this.state.tabs))this.state.documents.set(t,{status:"unloaded"});for(let t of[...e.diffs??[],...e.activeDiff?[e.activeDiff]:[]])if(!this.state.diffs.some(e=>h(e)===h(t))){if(this.options.maxTabs&&this.state.tabs.length+this.state.diffs.length>=this.options.maxTabs)break;this.state.diffs.push({...t,status:"unloaded"})}for(let t of e.expandedPaths)this.ensureDirectory(t);this.publish();let t=e.activeDiff,s=t?this.state.diffs.find(e=>h(e)===h(t)):null;s?this.openDiff(s.repositoryRoot,s.path,s.comparison):this.state.activePath&&this.ensureDocument(this.state.activePath)}async revealFile(e,t="file"){if(!this.options.reveal)throw Error(p("revealUnavailable"));await this.options.reveal(e,t)}ensureRoot(){return this.ensureDirectory("")}ensureDirectory(e){if(this.disposed||this.state.directories.get(e)?.status==="ready")return Promise.resolve();let t=this.directoryRequests.get(e);if(t)return t.promise;let s=new AbortController,i=Promise.resolve().then(async()=>{try{if(s.signal.aborted)return;let t=await this.reader.list(e,s.signal);if(this.directoryRequests.get(e)?.controller!==s)return;this.state.directories.set(e,{status:"ready",...t})}catch(t){if(this.directoryRequests.get(e)?.controller!==s)return;this.state.directories.set(e,{status:"error",error:m(t)})}this.directoryRequests.get(e)?.controller===s&&(this.directoryRequests.delete(e),this.publish())});return this.directoryRequests.set(e,{controller:s,promise:i}),this.state.directories.set(e,{status:"loading"}),this.publish(),i}setExpandedPaths(e,t=!0){let s=[...this.state.expandedPaths].filter(t=>!e.has(t));for(let t of(this.state.expandedPaths=new Set(e),this.compactRequests.keys()))s.some(e=>t===e||t.startsWith(`${e}/`))&&this.compactRequests.delete(t);if(this.publish(),t)for(let t of e)this.ensureDirectory(t)}cancelDirectoryExpansion(e=""){for(let t of this.compactRequests.keys())(!e||t===e||t.startsWith(`${e}/`))&&this.compactRequests.delete(t)}compactDirectory(e,t){return(0,c.rk)(e,e=>{let t=this.onlyDirectory(e);return t&&this.state.directories.has(t)?t:null},t)}async expandDirectoryChain(e,t){let s={};this.compactRequests.set(e,s);let i=e,a=16;for(;!this.disposed&&this.compactRequests.get(e)===s&&this.state.expandedPaths.has(e);){if(this.state.directories.get(i)?.status!=="ready"){if(a--<=0)break;await this.ensureDirectory(i)}if(this.compactRequests.get(e)!==s||this.disposed)return;let r=this.onlyDirectory(i);if(!r||t.has(i)||t.has(r)||a<=0&&this.state.directories.get(r)?.status!=="ready")break;this.state.expandedPaths.add(r),i=r,this.publish()}this.compactRequests.get(e)===s&&this.compactRequests.delete(e)}onlyDirectory(e){let t=this.state.directories.get(e);if(t?.status!=="ready"||t.truncated||1!==t.entries.length)return null;let s=t.entries[0];return"directory"===s.type?(0,c._J)(e,s.name):null}setTreeScrollTop(e){this.state.treeScrollTop=e}refreshTree(){for(let e of(this.compactRequests.clear(),this.directoryRequests.values()))e.controller.abort();this.directoryRequests.clear(),this.state.directories.clear(),this.cancelSearch(),this.state.search=u(this.searchInput()),this.publish(),this.ensureRoot().then(()=>{if(!this.disposed){for(let e of this.state.expandedPaths)this.ensureDirectory(e);this.state.searchOpen&&this.state.search.query.trim()&&(this.cancelSearch(),this.state.search={...this.state.search,status:"loading"},this.search(this.state.search.query))}})}setSearchQuery(e){this.disposed||this.state.search.query===e||(this.cancelSearch(),this.state.search=u({...this.searchInput(),query:e}),this.publish())}setSearchOptions(e){if(this.disposed)return;let t=this.searchInput(),s={...t,...e};(s.scope!==t.scope||s.caseSensitive!==t.caseSensitive||s.wholeWord!==t.wholeWord||s.regex!==t.regex)&&(this.cancelSearch(),this.state.search=u(s),this.publish(),this.state.searchOpen&&this.search(s.query))}searchInput(){let{query:e,scope:t,caseSensitive:s,wholeWord:i,regex:a}=this.state.search;return{query:e,scope:t,caseSensitive:s,wholeWord:i,regex:a}}async search(e){if(this.disposed||!e.trim()||this.state.search.query!==e||"ready"===this.state.search.status||this.searchRequest)return;let t=new AbortController;this.searchRequest=t;let s=this.searchInput();this.state.search=u(s),this.publish();try{let e=await this.reader.search(s,t.signal);if(this.searchRequest!==t)return;this.state.search={...s,status:"ready",...e,error:null}}catch(e){if(this.searchRequest!==t)return;this.state.search={...u(s),status:"error",error:m(e)}}this.searchRequest===t&&(this.searchRequest=null,this.publish())}openFile(e,t){var s;let i,a;if(this.disposed)return;let r=(s=this.cwd,i=e.replaceAll("\\","/"),a=`${s.replaceAll("\\","/").replace(/\/+$/,"")}/`,(/^[a-z]:\//i.test(a)||a.startsWith("//")?i.toLowerCase().startsWith(a.toLowerCase()):i.startsWith(a))?i.slice(a.length):i),n=/^[a-z]:[\\/]/i.test(this.cwd)||this.cwd.startsWith("\\\\")?this.state.tabs.find(e=>e.toLowerCase()===r.toLowerCase())??r:r;if(!this.state.tabs.includes(n)){if(!this.canOpenTab())return;this.state.tabs.push(n)}this.state.activeDiff=null,this.state.documents.has(n)||this.state.documents.set(n,{status:"unloaded"}),this.state.activePath=n,this.navigation=void 0===t?null:{line:t};let o=this.state.documents.get(n);void 0!==t&&o?.status==="text"&&(o.viewMode="source"),this.ensureDocument(n,void 0!==t),this.publish()}closeTabs(e,t){if(this.disposed)return;let s=this.state,i=[...s.tabs,...s.diffs],a=null===e?s.activeDiff:"string"==typeof e?e:s.diffs.find(t=>h(t)===h(e)),r=null==a?-1:i.indexOf(a);if(r<0&&"all"!==t)return;let n=new Set(i.filter((e,s)=>"all"===t||("current"===t?e===a:"others"===t?e!==a:"left"===t?s<r:s>r)));if(!n.size)return;let o=s.activeDiff??s.activePath;for(let e of n){if("string"!=typeof e){this.invalidateDiff(e);continue}this.documentRequests.get(e)?.abort(),this.documentRequests.delete(e),this.releaseDocument(s.documents.get(e)),s.documents.delete(e),this.restoredEditorStates.delete(e),this.restoredFileViewModes.delete(e),this.restoredPreviewScrollTops.delete(e),this.closeMissing.delete(e),this.restoredTabs.delete(e)}if(s.tabs=s.tabs.filter(e=>!n.has(e)),s.diffs=s.diffs.filter(e=>!n.has(e)),s.activePath&&n.has(s.activePath)){let e=i.filter(e=>"string"==typeof e),t=e.indexOf(s.activePath);s.activePath=e.slice(t+1).find(e=>!n.has(e))??e.slice(0,t).reverse().find(e=>!n.has(e))??null}if(null!==o&&n.has(o)){this.navigation=null;let e=i.indexOf(o),t=i.slice(e+1).find(e=>!n.has(e))??i.slice(0,e).reverse().find(e=>!n.has(e));s.activeDiff="object"==typeof t?t:null,"string"==typeof t&&(s.activePath=t)}this.publish(),s.activeDiff?this.ensureDiff(s.activeDiff):s.activePath&&o!==s.activePath&&this.ensureDocument(s.activePath)}reloadFile(e){if(this.state.tabs.includes(e)){if(this.state.activePath===e&&this.navigation)return void this.ensureDocument(e,!0);this.invalidateDocument(e),this.publish(),this.ensureDocument(e)}}async ensureDocument(e,t=!1){if(this.disposed||!this.state.tabs.includes(e)||this.documentRequests.has(e))return;let s=this.state.documents.get(e);if(!t&&s&&["loading","text","image"].includes(s.status))return;let i=new AbortController;this.documentRequests.set(e,i),s?.status!=="text"&&this.state.documents.set(e,{status:"loading"}),this.publish();try{let t=await this.reader.get(e,this.options.imagePreviewMode(),i.signal);if(this.documentRequests.get(e)!==i)return;this.documentRequests.delete(e),this.closeMissing.delete(e),this.restoredTabs.delete(e),(s?.status!=="text"||"text"!==t.kind||s.content!==t.content||s.size!==t.size)&&this.state.documents.set(e,"text"===t.kind?{status:"text",content:t.content,size:t.size,editorState:s?.status==="text"?s.editorState:this.restoredEditorStates.get(e)??null,viewMode:this.state.activePath===e&&this.navigation?"source":s?.status==="text"?s.viewMode:this.restoredFileViewModes.get(e)??("markdown"===(0,l.g)(e)||this.options.htmlPreview&&"html"===(0,l.g)(e)?"preview":"source"),previewScrollTop:s?.status==="text"?s.previewScrollTop:this.restoredPreviewScrollTops.get(e)??0}:{status:"image",mimeType:t.mimeType,size:t.size,objectUrl:URL.createObjectURL((0,r.E)(t))}),this.state.activePath===e&&"text"!==t.kind&&(this.navigation=null),this.releaseDocument(s)}catch(r){if(this.documentRequests.get(e)!==i)return;this.documentRequests.delete(e);let t=this.restoredTabs.delete(e),a=this.closeMissing.delete(e);if((t||a)&&r instanceof o.aw&&404===r.status&&"errors:fileMissing"===r.errorKey){this.closeTabs(e,"current"),a&&this.options.onNotice?.(p("branchFileClosed",{path:e}));return}console.warn("[Pi Desk][ProjectFile] 读取文件失败",{cwd:this.cwd,path:e,error:m(r)}),this.state.documents.set(e,{status:"error",error:m(r)}),this.releaseDocument(s),this.state.activePath===e&&(this.navigation=null)}this.publish()}async compareFile(e,t,s){let i=this.state.documents.get(e);if(this.disposed||s.aborted||i?.status!=="text")return;if(!t){i.comparison&&(delete i.comparison,this.publish());return}let a={status:"loading"};i.comparison=a,this.publish();let r=()=>!this.disposed&&!s.aborted&&this.state.documents.get(e)===i&&i.comparison===a;try{let e=await this.reader.diff(t.repositoryRoot,t.path,s);if(!r())return;"text"===e.kind?(i.content=e.modified.content,i.size=new TextEncoder().encode(e.modified.content).length,i.comparison={status:"ready",repositoryRoot:t.repositoryRoot,path:t.path,original:e.original}):i.comparison={status:"unavailable"}}catch(t){if(!r())return;console.warn("[Pi Desk][ProjectFile] 读取行变更失败",{cwd:this.cwd,path:e,error:m(t)}),i.comparison={status:"error",error:m(t)}}this.publish()}openFileDiff(e,t){let s=this.state.documents.get(e);if(this.disposed||s?.status!=="text"||s.comparison?.status!=="ready")return;let i=s.comparison,a=this.state.diffs.find(e=>!e.comparison&&e.repositoryRoot===i.repositoryRoot&&e.path===i.path);if(a)this.invalidateDiff(a),Object.assign(a,{status:"text",original:i.original,modified:{path:i.path,content:s.content}});else{if(!this.canOpenTab())return;a={status:"text",repositoryRoot:i.repositoryRoot,path:i.path,original:i.original,modified:{path:i.path,content:s.content}},this.state.diffs.push(a)}void 0!==t&&(a.initialLine=t),this.openDiff(a.repositoryRoot,a.path)}openDiff(e,t,s,i){if(this.disposed)return;let a={repositoryRoot:e,path:t,comparison:s},r=this.state.diffs.find(e=>h(e)===h(a));if(r)void 0!==i&&(r.label=i);else{if(!this.canOpenTab())return;r={...a,status:"unloaded",label:i},this.state.diffs.push(r)}this.navigation=null,this.state.activeDiff=r,this.publish(),this.ensureDiff(r)}closeDiff(){this.closeTabs(null,"current")}reloadDiff(){let e=this.state.activeDiff;e&&!this.disposed&&(this.invalidateDiff(e),this.publish(),this.ensureDiff(e))}saveDiffState(e,t){!this.disposed&&this.state.diffs.includes(e)&&t&&(e.editorState=t,delete e.initialLine)}setDiffViewMode(e){this.state.activeDiff&&(0,n.ZQ)({diffViewMode:e})}setDiffWrapLines(e){this.state.activeDiff&&(0,n.ZQ)({wrapLines:e})}setDiffCollapseUnchanged(e){this.state.activeDiff&&(0,n.ZQ)({collapseUnchanged:e})}handleGitBranchChanged(e){for(let t of(this.refreshTree(),this.state.tabs))(!e||t===e||t.startsWith(`${e}/`))&&(this.invalidateDocument(t),this.closeMissing.add(t));for(let t of this.state.diffs)t.repositoryRoot!==e||t.comparison||this.invalidateDiff(t);this.publish(),this.state.activeDiff?this.ensureDiff(this.state.activeDiff):this.state.activePath&&this.ensureDocument(this.state.activePath)}saveEditorState(e,t){let s=this.state.documents.get(e);s?.status==="text"&&(s.editorState=t)}savePreviewScrollTop(e,t){let s=this.state.documents.get(e);s?.status==="text"&&(s.previewScrollTop=t)}setWrapLines(e,t){this.state.documents.get(e)?.status==="text"&&(0,n.ZQ)({wrapLines:t})}setTextViewMode(e,t){let s=this.state.documents.get(e);s?.status==="text"&&s.viewMode!==t&&(s.viewMode=t,this.publish())}dispose(){for(let e of(this.disposed=!0,this.compactRequests.clear(),this.directoryRequests.values()))e.controller.abort();for(let e of(this.directoryRequests.clear(),this.documentRequests.values()))e.abort();for(let e of(this.documentRequests.clear(),this.cancelSearch(),this.state.diffs))this.invalidateDiff(e);for(let e of(this.state.diffs=[],this.state.activeDiff=null,this.state.documents.values()))this.releaseDocument(e);this.state.documents.clear(),this.restoredPreviewScrollTops.clear(),this.listeners.clear()}async ensureDiff(e){let t=h(e);if(this.disposed||"unloaded"!==e.status||this.diffRequests.has(t))return;let s=new AbortController;this.diffRequests.set(t,s),Object.assign(e,{status:"loading"}),this.publish();try{let i=await this.reader.diff(e.repositoryRoot,e.path,s.signal,e.comparison);if(this.diffRequests.get(t)!==s)return;Object.assign(e,"text"===i.kind?{status:"text",original:i.original,modified:i.modified}:"metadata"===i.kind?{status:"metadata",originalMetadata:i.original,modifiedMetadata:i.modified}:{status:i.kind,error:null})}catch(i){if(this.diffRequests.get(t)!==s)return;console.warn("[Pi Desk][ProjectFile] 读取 Diff 失败",{cwd:this.cwd,repositoryRoot:e.repositoryRoot,path:e.path,error:m(i)}),Object.assign(e,{status:"error",error:m(i)})}this.diffRequests.get(t)===s&&(this.diffRequests.delete(t),this.publish())}invalidateDiff(e){let t=h(e);for(let s of(this.diffRequests.get(t)?.abort(),this.diffRequests.delete(t),Object.assign(e,{status:"unloaded"}),["original","modified","originalMetadata","modifiedMetadata","error"]))Reflect.deleteProperty(e,s)}canOpenTab(){let e=this.options.maxTabs;return!e||this.state.tabs.length+this.state.diffs.length<e||(this.options.onNotice?.(p("maxOpenFiles",{count:e})),!1)}cancelSearch(){this.searchRequest?.abort(),this.searchRequest=null}invalidateDocument(e){this.state.activePath===e&&(this.navigation=null),this.documentRequests.get(e)?.abort(),this.documentRequests.delete(e);let t=this.state.documents.get(e);t?.status==="text"&&(t.editorState&&this.restoredEditorStates.set(e,t.editorState),this.restoredFileViewModes.set(e,t.viewMode),this.restoredPreviewScrollTops.set(e,t.previewScrollTop)),this.releaseDocument(t),this.state.documents.set(e,{status:"unloaded"})}releaseDocument(e){e?.status==="image"&&URL.revokeObjectURL(e.objectUrl)}publish(){if(!this.disposed)for(let e of(this.revision+=1,this.listeners))e()}}},57252:(e,t,s)=>{"use strict";s.d(t,{q:()=>ee});var i=s(7962),a=s(78121),r=s(31761),n=s(24925),o=s(48155),l=s(63013),c=s(55079),d=s(49667),u=s(90680),h=s(24863),p=s(49762),m=s(60278),f=s(72282),g=s(86963),x=s(35800),v=s(35842),b=s(73068),y=s(51821),w=s(99084),j=s(69266),k=s(28460),N=s(64334);function C(e){let t=window.matchMedia("(pointer: fine)");return t.addEventListener("change",e),()=>t.removeEventListener("change",e)}function S(){return window.matchMedia("(pointer: fine)").matches}function R(){return!1}var z=s(14044),D=s(57731),M=s(35995),A=s(15265),P=s(5816),$=s(74675),T=s(73429),E=s(60471),O=s(49426);function I({items:e,label:t,scrollTop:s,onScroll:a,render:r,role:n="listbox",onKeyDown:o,rowHeight:l=36,onNearEnd:c,footer:d}){let u=(0,j.useRef)(null),[h,p]=(0,j.useState)({top:s,height:300});(0,j.useLayoutEffect)(()=>{let e=u.current;if(!e)return;e.scrollTop=s;let t=()=>p({top:e.scrollTop,height:e.clientHeight});t();let i=new ResizeObserver(t);return i.observe(e),()=>i.disconnect()},[]),(0,j.useLayoutEffect)(()=>{let e=u.current;e&&(e.scrollTop=s,p(t=>t.top===e.scrollTop?t:{...t,top:e.scrollTop}))},[e,s,l]),(0,j.useEffect)(()=>{e.length&&h.height>0&&e.length*l-h.top-h.height<=200&&c?.()},[e.length,l,h.top,h.height,c]);let m=Math.max(0,Math.floor(h.top/l)-8),f=Math.min(e.length,Math.ceil((h.top+h.height)/l)+8);return(0,i.jsxs)("div",{ref:u,role:n,tabIndex:"tree"===n?0:void 0,onKeyDown:o,"aria-label":t,className:"min-h-0 flex-1 overflow-auto overscroll-contain",onScroll:e=>{let t=e.currentTarget.scrollTop;p(e=>({...e,top:t})),a(t)},children:[(0,i.jsx)("div",{style:{height:e.length*l,position:"relative"},children:(0,i.jsx)("div",{style:{position:"absolute",top:m*l,left:0,right:0},children:e.slice(m,f).map((e,t)=>r(e,m+t))})}),d]})}var L=s(36670),q=s(50479),F=s(66584),B=s(60682),_=s(82075);let W={added:"A",modified:"M",deleted:"D",renamed:"R","type-changed":"T"};function Y({cwd:e,repositoryRoot:t,rows:s,changes:r,selectedPath:n,scrollTop:o,rowHeight:l,onScroll:c,onSelect:d,onToggle:u,onOpen:h,onReveal:p}){let{t:f}=(0,a.Bd)("projectHistory"),x=(0,j.useRef)(null),v=(e,t)=>{e&&x.current===t&&(x.current=null,e.focus({preventScroll:!0}))},b=new Map(r.map(e=>[e.path,e]));return(0,i.jsx)(I,{role:"tree",label:f("changeFiles"),items:s,scrollTop:o,rowHeight:l,onScroll:c,onKeyDown:e=>{if(e.defaultPrevented||!e.currentTarget.contains(e.target))return;let t=e.target instanceof Element?e.target.closest("[data-tree-key]"):null;if(e.target instanceof Element&&e.target.closest("button"))return;let i=t?s.findIndex(e=>e.key===t.dataset.treeKey):-1,a=s[i],r=i;if("ArrowDown"===e.key)r=Math.min(s.length-1,i+1);else if("ArrowUp"===e.key)r=Math.max(0,i-1);else if("Home"===e.key)r=0;else if("End"===e.key)r=s.length-1;else if("ArrowRight"===e.key&&a?.directory)a.expanded?r=Math.min(s.length-1,i+1):u(a.directory.path);else if("ArrowLeft"===e.key&&a){if(a.expanded&&a.directory)u(a.directory.path);else for(let e=i-1;e>=0;e-=1)if(s[e].depth<a.depth){r=e;break}}else{if("Enter"!==e.key&&" "!==e.key||!a)return;a.directory?u(a.directory.path):"Enter"===e.key?h(a.path):d(a.path)}e.preventDefault();let n=s[r];if(!n)return;let o=e.currentTarget;r*l<o.scrollTop?o.scrollTop=r*l:(r+1)*l>o.scrollTop+o.clientHeight&&(o.scrollTop=(r+1)*l-o.clientHeight),x.current=n.key,v([...o.querySelectorAll("[data-tree-key]")].find(e=>e.dataset.treeKey===n.key)??null,n.key)},render:s=>{let a=b.get(s.path),r=(0,_._J)(t,s.path),o=s.directory;return(0,i.jsx)(B.J,{cwd:e,path:r,type:s.type,historical:!0,expanded:s.expanded,onToggle:o?()=>u(o.path):void 0,onOpen:"file"===s.type?()=>h(s.path):void 0,openLabel:f("viewDiff"),oldPath:"file"===s.type&&a?.oldPath?(0,_._J)(t,a.oldPath):void 0,onReveal:p,trigger:(0,i.jsxs)("div",{ref:e=>v(e,s.key),role:"treeitem",tabIndex:0,"aria-level":s.depth+1,"aria-expanded":s.expanded,"aria-selected":"file"===s.type&&n===s.path,"data-tree-key":s.key,className:(0,O.cn)("flex min-w-0 cursor-pointer items-center gap-1 pr-1 text-sm outline-none hover:bg-accent focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring","file"===s.type&&n===s.path&&"bg-accent"),style:{height:l,paddingLeft:4+s.depth*(24===l?12:24)},title:a?.oldPath&&"file"===s.type?`${(0,_._J)(t,a.oldPath)} → ${r}`:r,onClick:e=>{o?e.detail<2&&u(o.path):d(s.path)},onDoubleClick:()=>{"file"===s.type&&h(s.path)},children:[o?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(L.A,{className:(0,O.cn)("size-4 shrink-0 text-muted-foreground",s.expanded&&"rotate-90")}),s.expanded?(0,i.jsx)(q.A,{className:"size-4 shrink-0 text-muted-foreground"}):(0,i.jsx)(F.A,{className:"size-4 shrink-0 text-muted-foreground"})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("span",{className:"w-4 shrink-0"}),(0,i.jsx)("span",{className:(0,O.cn)("w-4 shrink-0 font-mono text-xs",a?.status==="added"?"text-emerald-600 dark:text-emerald-400":a?.status==="deleted"?"text-red-600 dark:text-red-400":"text-blue-600 dark:text-blue-400"),"aria-label":f("gitStatus",{status:a?W[a.status]:""}),children:a?W[a.status]:""})]}),(0,i.jsxs)("span",{className:"min-w-0 flex-1 truncate",children:[s.label,"directory"===s.type&&b.has(s.path)?"/":""]}),"file"===s.type?(0,i.jsx)(g.$,{size:"icon-sm",variant:"ghost",className:24===l?"size-6":void 0,"aria-label":f("viewDiffPath",{path:s.path}),onDoubleClick:e=>e.stopPropagation(),onClick:e=>{e.stopPropagation(),h(s.path)},children:(0,i.jsx)(m.A,{className:"size-4"})}):null]})},s.key)}})}var H=s(46783),V=s(86758),K=s(90458),U=s(35989),J=s(90434);function G(e){let t=[],s=e;for(;s.includes("/")&&"refs"!==(s=s.slice(0,s.lastIndexOf("/")));)t.push(s);return t}function Q({branches:e,value:t,onChange:s,ariaLabel:r,placeholder:n,className:o}){let{t:l}=(0,a.Bd)("projectHistory"),{t:c}=(0,a.Bd)("common"),d=(0,j.useId)(),u=(0,j.useRef)(null),h=(0,j.useRef)(null),p=(0,j.useRef)(new Map),[m,f]=(0,j.useState)(!1),[x,v]=(0,j.useState)(""),[b,y]=(0,j.useState)(t),[w,k]=(0,j.useState)(()=>new Set(["refs/heads","refs/remotes",...G(t)])),N=x.trim().toLocaleLowerCase(),C="HEAD"===t?l("currentHead"):t.replace(/^refs\/(heads|remotes)\//,""),S=(0,j.useMemo)(()=>{let t=[],s=[{key:"refs/heads",label:l("localBranch"),names:e?.local??[]},{key:"refs/remotes",label:l("remoteBranch"),names:e?.remote??[]}].map(e=>({...e,nodes:(0,U.oY)(e.names.filter(e=>e.toLocaleLowerCase().includes(N)))})).filter(e=>e.nodes.length>0),i=`HEAD ${l("currentHead")}`.toLocaleLowerCase().includes(N),a=s.length+Number(i);i&&t.push({key:"HEAD",label:l("currentHead"),fullName:l("currentHead"),parentKey:null,level:1,position:1,siblingCount:a,expandable:!1});let r=(e,s,i,a)=>{e.forEach((n,o)=>{let l=`${s}/${n.path}`;t.push({key:l,label:n.name,fullName:n.path,parentKey:i,level:a,position:o+1,siblingCount:e.length,expandable:n.children.length>0}),w.has(l)&&r(n.children,s,l,a+1)})};return s.forEach((e,s)=>{t.push({key:e.key,label:e.label,fullName:e.label,parentKey:null,level:1,position:s+Number(i)+1,siblingCount:a,expandable:!0}),w.has(e.key)&&r(e.nodes,e.key,e.key,2)}),t},[e,w,N,l]),R=S.find(e=>e.key===b)??S.find(e=>e.key===t)??S.find(e=>!e.expandable)??S[0],z=e=>{if(!e)return;y(e.key);let t=p.current.get(e.key);t?.focus({preventScroll:!0}),t?.scrollIntoView({block:"nearest"})},D=e=>{k(t=>{let s=new Set(t);return s.has(e.key)?s.delete(e.key):s.add(e.key),s})};return(0,i.jsxs)(J.AM,{open:m,onOpenChange:e=>{e&&(v(""),y(t),k(e=>new Set([...e,...G(t)]))),f(e)},onOpenChangeComplete:e=>{e&&document.activeElement===u.current&&p.current.get(t)?.scrollIntoView({block:"nearest"})},children:[(0,i.jsx)(J.Wv,{render:(0,i.jsxs)(g.$,{ref:h,type:"button",variant:"outline",role:"combobox","aria-haspopup":"dialog","aria-label":r,"aria-expanded":m,title:C||n,className:(0,O.cn)("w-full min-w-0 justify-between border-input px-2.5 font-normal focus-visible:-outline-offset-2",o),children:[(0,i.jsx)("span",{className:(0,O.cn)("min-w-0 truncate",!t&&"text-muted-foreground"),children:C||n||c("selectPlaceholder")}),(0,i.jsx)(H.A,{className:"text-muted-foreground"})]})}),(0,i.jsxs)(J.hl,{align:"start","aria-label":r,initialFocus:u,finalFocus:h,positionerClassName:"z-[120]",className:"max-h-[min(30rem,var(--available-height))] w-[max(26rem,calc(var(--anchor-width)+8rem))] max-w-[min(calc(100vw-2rem),var(--available-width))] gap-0 overflow-hidden p-0",children:[(0,i.jsx)("div",{className:"shrink-0 border-b p-2",children:(0,i.jsx)(T.p,{ref:u,type:"search","aria-label":c("searchPlaceholder"),"aria-controls":d,placeholder:c("searchPlaceholder"),value:x,onChange:t=>(t=>{v(t),y("");let s=t.trim().toLocaleLowerCase();if(!s)return;let i=[...(e?.local??[]).filter(e=>e.toLocaleLowerCase().includes(s)).map(e=>`refs/heads/${e}`),...(e?.remote??[]).filter(e=>e.toLocaleLowerCase().includes(s)).map(e=>`refs/remotes/${e}`)];k(e=>new Set([...e,...i.flatMap(G)]))})(t.target.value),onKeyDown:e=>{e.nativeEvent.isComposing||e.altKey||e.ctrlKey||e.metaKey||("ArrowDown"===e.key||"ArrowUp"===e.key)&&(e.preventDefault(),e.stopPropagation(),z("ArrowDown"===e.key?R:S.at(-1)))}})}),(0,i.jsx)("div",{id:d,role:"tree","aria-label":r,className:"min-h-0 overflow-y-auto overscroll-contain p-1",children:S.map(e=>{let a=!e.expandable&&e.key===t,r=e.expandable?w.has(e.key):void 0;return(0,i.jsxs)("button",{ref:t=>{t?p.current.set(e.key,t):p.current.delete(e.key)},type:"button",role:"treeitem","aria-label":e.fullName,"aria-level":e.level,"aria-posinset":e.position,"aria-setsize":e.siblingCount,"aria-selected":e.expandable?void 0:a,"aria-expanded":r,tabIndex:R?.key===e.key?0:-1,title:e.fullName,className:(0,O.cn)("flex min-h-8 w-full items-center gap-1.5 rounded-md py-1 pr-2 text-left text-sm outline-none transition-colors duration-150 hover:bg-accent focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring [@media(pointer:coarse)]:min-h-10",a&&"bg-accent text-accent-foreground",1===e.level&&e.expandable&&"font-medium text-muted-foreground"),style:{paddingLeft:8+12*Math.min(e.level-1,8)},onFocus:()=>y(e.key),onKeyDown:t=>((e,t)=>{if(e.nativeEvent.isComposing||e.altKey||e.ctrlKey||e.metaKey)return;let s=S.indexOf(t);switch(e.key){case"ArrowDown":z(S[Math.min(s+1,S.length-1)]);break;case"ArrowUp":z(S[Math.max(s-1,0)]);break;case"Home":z(S[0]);break;case"End":z(S.at(-1));break;case"ArrowRight":t.expandable&&(w.has(t.key)?z(S[s+1]):D(t));break;case"ArrowLeft":t.expandable&&w.has(t.key)?D(t):z(S.find(e=>e.key===t.parentKey));break;default:return}e.preventDefault(),e.stopPropagation()})(t,e),onClick:()=>{y(e.key),e.expandable?D(e):(s(e.key),f(!1))},children:[e.expandable?r?(0,i.jsx)(V.A,{"aria-hidden":"true",className:"size-3.5 shrink-0"}):(0,i.jsx)(L.A,{"aria-hidden":"true",className:"size-3.5 shrink-0"}):(0,i.jsx)("span",{"aria-hidden":"true",className:"size-3.5 shrink-0"}),(0,i.jsx)("span",{className:"min-w-0 flex-1 break-all",children:e.label}),a?(0,i.jsx)(K.A,{"aria-hidden":"true",className:"size-3.5 shrink-0"}):null]},e.key)})}),S.length?null:(0,i.jsx)("p",{role:"status",className:"px-3 py-6 text-center text-sm text-muted-foreground",children:c("noMatches")}),R&&R.fullName!==R.label?(0,i.jsx)("div",{className:"max-h-24 shrink-0 overflow-y-auto border-t px-3 py-2 text-xs break-all text-muted-foreground",children:R.fullName}):null]})]})}function X(e){let{state:t,repositories:s,projectName:r,narrow:n,scroll:o}=e,{t:l}=(0,a.Bd)("projectHistory"),{locale:c,timeZone:d}=(0,P.i)(),h=(0,j.useMemo)(()=>new Intl.DateTimeFormat("en"===c?"en-US":"zh-CN",{timeZone:d,month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hourCycle:"h23"}),[c,d]),p=(0,j.useMemo)(()=>new Intl.DateTimeFormat("en"===c?"en-US":"zh-CN",{timeZone:d,timeZoneName:"shortOffset",year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit",hourCycle:"h23"}),[c,d]),m=(0,j.useId)(),{mobilePane:x,onMobilePane:v}=e,b=t.changes.data,y=`${t.repositoryRoot}:${b?.comparison.original}:${b?.comparison.target}`,w=t.selectedChangePath,k=t.branches.data?.upstream,N=b?.commit,C=(s,a=e.onRefresh)=>s?(0,i.jsxs)("div",{role:"alert",className:"flex flex-wrap items-center gap-2 p-3 text-sm text-destructive",children:[(0,i.jsx)("span",{className:"min-w-0 flex-1 break-words",children:s}),(0,i.jsx)(g.$,{size:"sm",variant:"outline",onClick:a,children:l("retry")}),"compare"===t.mode&&"merge-base"===t.strategy?(0,i.jsx)(g.$,{size:"sm",variant:"outline",onClick:()=>e.onStrategy("direct"),children:l("compareDirect")}):null]}):null,S=(0,i.jsx)("div",{className:"flex size-full min-h-0 min-w-0 flex-col",children:(0,i.jsx)(I,{items:t.log.data?.items??[],label:l("commitList"),scrollTop:o.log,onScroll:t=>e.onScroll("log",t),onNearEnd:"ready"===t.log.status&&t.log.data?.hasMore&&t.log.data.items.length<2e3?e.onMoreLog:void 0,footer:(0,i.jsxs)(i.Fragment,{children:[C(t.log.error,t.log.data?e.onMoreLog:e.onRefresh),"loading"===t.log.status?(0,i.jsxs)("div",{role:"status",className:"flex items-center gap-2 px-3 py-2 text-xs text-muted-foreground",children:[(0,i.jsx)(z.A,{className:"size-4 animate-spin"}),l("loadingCommits")]}):null,"ready"!==t.log.status||t.log.data?.items.length?null:(0,i.jsx)("p",{className:"px-3 py-4 text-sm text-muted-foreground",children:t.query||t.author?l("noMatchingCommits"):l("noCommits")}),t.log.data?.truncated?(0,i.jsx)("p",{className:"px-3 py-2 text-xs text-muted-foreground",children:l("scanLimit")}):(t.log.data?.items.length??0)>=2e3?(0,i.jsx)("p",{className:"px-3 py-2 text-xs text-muted-foreground",children:l("loadedLimit")}):"ready"===t.log.status&&t.log.data?.items.length&&!t.log.data.hasMore?(0,i.jsx)("p",{className:"px-3 py-2 text-xs text-muted-foreground",children:l("noMoreCommits")}):null]}),render:s=>(0,i.jsxs)("button",{type:"button",role:"option","aria-selected":t.selectedCommit===s.oid,className:(0,O.cn)("flex h-9 w-full items-center gap-3 border-b border-border/40 px-3 text-left text-sm outline-none hover:bg-accent focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",t.selectedCommit===s.oid&&"bg-accent"),onClick:()=>{var t;return t=s.oid,void(e.onCommit(t),n&&v("files"))},title:`${s.subject}
14
- ${s.oid}
15
- ${s.author} \xb7 ${p.format(s.timestampMs)}`,children:[(0,i.jsxs)("span",{className:"min-w-0 flex-1 truncate",children:[s.subject||l("noCommitMessage"),s.refs.length?(0,i.jsx)("span",{className:"ml-2 text-xs text-muted-foreground",children:s.refs.join(" \xb7 ")}):null]}),(0,i.jsx)("span",{className:"shrink-0 font-mono text-xs text-muted-foreground",children:s.oid.slice(0,7)}),n?null:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("span",{className:"w-20 truncate text-xs text-muted-foreground",children:s.author}),(0,i.jsx)("time",{className:"w-28 shrink-0 text-right text-xs text-muted-foreground",children:h.format(s.timestampMs)})]})]},s.oid)},`${t.repositoryRoot}:${t.mode}:${t.tip}:${t.base}:${t.target}:${t.query}:${t.author}`)}),R=(0,i.jsxs)("div",{className:"flex size-full min-h-0 min-w-0 flex-col",children:[(0,i.jsxs)("div",{className:"flex min-h-9 shrink-0 flex-wrap items-center gap-2 border-b px-3 py-1",children:[n?(0,i.jsx)(g.$,{variant:"ghost",size:"icon-sm","aria-label":l("backCommits"),onClick:()=>v("log"),children:(0,i.jsx)(D.A,{className:"size-4"})}):null,(0,i.jsx)("span",{className:"text-sm font-medium",children:t.selectedCommit?l("commitChanges"):l("cumulativeChanges")}),b?(0,i.jsx)("span",{className:"text-xs text-muted-foreground",children:l("loadedFiles",{count:b.items.length})}):null,"compare"===t.mode&&t.selectedCommit?(0,i.jsx)(g.$,{variant:"ghost",size:"sm",onClick:e.onAggregate,children:l("backCumulative")}):null]}),C(t.changes.error),"loading"===t.changes.status?(0,i.jsxs)("div",{className:"flex items-center gap-2 p-3 text-xs text-muted-foreground",children:[(0,i.jsx)(z.A,{className:"size-4 animate-spin"}),l("loadingChanges")]}):null,(0,i.jsxs)(f.HK,{orientation:"vertical",defaultLayout:{"project-changes":e.panelSizes.changes,"project-detail":100-e.panelSizes.changes},onLayoutChanged:(t,s)=>{s.isUserInteraction&&void 0!==t["project-changes"]&&e.onPanelSize("changes",t["project-changes"])},children:[(0,i.jsx)(f.wV,{id:"project-changes",defaultSize:`${e.panelSizes.changes}%`,minSize:"80px",children:(0,i.jsxs)("div",{className:"flex size-full min-h-0 flex-col",children:[(0,i.jsx)(Y,{cwd:e.cwd,repositoryRoot:t.repositoryRoot??"",rows:e.changeRows,rowHeight:e.changeRowHeight,changes:b?.items??[],selectedPath:w,scrollTop:o.changes,onScroll:t=>e.onScroll("changes",t),onSelect:e.onSelectChange,onToggle:e.onToggleDirectory,onOpen:e.onOpenFile,onReveal:e.onReveal},y),"ready"!==t.changes.status||b?.items.length?null:(0,i.jsx)("p",{className:"px-3 py-4 text-sm text-muted-foreground",children:l("noDiff")}),b?.hasMore?(0,i.jsx)(g.$,{size:"sm",variant:"ghost",disabled:"loading"===t.changes.status,onClick:e.onMoreChanges,children:l("loadMoreFiles")}):null,b?.truncated?(0,i.jsx)("p",{className:"p-3 text-xs text-muted-foreground",children:l("changesLimit")}):null]})}),(0,i.jsx)(f.WM,{}),(0,i.jsx)(f.wV,{id:"project-detail",defaultSize:`${100-e.panelSizes.changes}%`,minSize:"60px",children:(0,i.jsxs)($.V,{className:"h-full",viewportClassName:"p-3 text-sm",role:"region","aria-label":l("commitDetails"),children:[N?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("pre",{className:"mb-3 whitespace-pre-wrap break-words font-sans leading-relaxed",children:N.message}),(0,i.jsxs)("div",{className:"mb-2 flex items-center gap-2",children:[(0,i.jsx)("span",{className:"min-w-0 flex-1 break-all font-mono text-xs",children:N.oid}),(0,i.jsx)(g.$,{size:"icon-sm",variant:"ghost","aria-label":l("copySha"),onClick:()=>e.onCopy(N.oid),children:(0,i.jsx)(M.A,{className:"size-4"})})]}),(0,i.jsxs)("p",{className:"mb-3 text-xs text-muted-foreground",children:[N.author," \xb7 ",p.format(N.timestampMs)]}),N.parents.length>1?(0,i.jsx)(E.b,{className:"mb-3",ariaLabel:l("compareParent"),value:N.selectedParent??"",options:N.parents.map((e,t)=>({value:e,label:l("parentCommit",{count:t+1,oid:e.slice(0,10)})})),onChange:t=>e.onCommit(N.oid,t)}):null]}):b?(0,i.jsxs)("div",{className:"space-y-2 text-xs text-muted-foreground",children:[(0,i.jsx)("p",{children:"merge-base"===t.strategy?l("mergeBaseToTarget"):l("baseToTarget")}),(0,i.jsx)("p",{className:"break-all font-mono",children:b.comparison.original??l("emptyRevision")}),(0,i.jsx)("p",{className:"break-all font-mono",children:b.comparison.target})]}):(0,i.jsx)("p",{className:"text-muted-foreground",children:l("selectCommit")}),w?(0,i.jsx)("p",{className:"mt-3 break-all font-mono text-xs text-muted-foreground",children:w}):null]})})]})]});return(0,i.jsxs)("section",{className:"flex size-full min-h-0 min-w-0 flex-col","aria-label":l("historyAndCompare"),children:[(0,i.jsxs)("div",{className:"flex shrink-0 flex-wrap items-center gap-2 border-b px-3 py-2",children:[(0,i.jsxs)("div",{className:"flex gap-1",role:"group","aria-label":l("viewMode"),children:[(0,i.jsx)(g.$,{size:"sm",variant:"history"===t.mode?"secondary":"ghost","aria-pressed":"history"===t.mode,onClick:()=>{e.onMode("history"),v("log")},children:l("historyMode")}),(0,i.jsx)(g.$,{size:"sm",variant:"compare"===t.mode?"secondary":"ghost","aria-pressed":"compare"===t.mode,onClick:()=>{e.onMode("compare"),v("log")},children:l("compareMode")})]}),(0,i.jsx)(E.b,{className:"w-44",ariaLabel:l("selectRepository"),value:t.repositoryRoot??"",options:s.map(e=>({value:e.root,label:e.root||r,description:"unavailable"===e.state?(0,A.fD)(e.message,c):void 0})),onChange:e.onRepository}),"history"===t.mode?(0,i.jsx)(Q,{className:"w-48",ariaLabel:l("viewBranch"),value:t.tip,branches:t.branches.data,onChange:t=>e.onRevision("tip",t)}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Q,{className:"w-44",ariaLabel:l("baseBranch"),placeholder:l("chooseBase"),value:t.base,branches:t.branches.data,onChange:t=>e.onRevision("base",t)}),(0,i.jsx)("span",{className:"text-xs text-muted-foreground",children:"→"}),(0,i.jsx)(Q,{className:"w-44",ariaLabel:l("targetBranch"),value:t.target,branches:t.branches.data,onChange:t=>e.onRevision("target",t)}),(0,i.jsx)(E.b,{className:"w-48",ariaLabel:l("comparison"),value:t.strategy,options:[{value:"merge-base",label:l("introducedChanges")},{value:"direct",label:l("directComparison")}],onChange:t=>e.onStrategy("direct"===t?"direct":"merge-base")}),n?(0,i.jsx)(g.$,{size:"sm",variant:"outline",onClick:()=>v("files"),children:l("cumulativeChanges")}):null]}),(0,i.jsx)(T.p,{className:"w-40 shrink-0","aria-label":l("filterAuthor"),placeholder:l("author"),list:m,value:t.author,onChange:t=>e.onAuthor(t.target.value)}),(0,i.jsx)("datalist",{id:m,children:t.authorSuggestions.map(e=>(0,i.jsx)("option",{value:e},e))}),(0,i.jsx)(T.p,{className:"min-w-32 flex-1 basis-40","aria-label":l("searchCommits"),placeholder:l("searchCommits"),value:t.query,onChange:t=>e.onQuery(t.target.value)}),(0,i.jsx)(g.$,{size:"icon-sm",variant:"ghost","aria-label":l("refreshGit"),onClick:e.onRefresh,children:(0,i.jsx)(u.A,{className:"size-4"})})]}),t.branches.error?C(t.branches.error):null,k?(0,i.jsxs)("p",{className:"shrink-0 truncate border-b px-3 py-1 text-xs text-muted-foreground",title:k.ref,children:[k.ref.replace("refs/remotes/","")," \xb7 ",l("localRecord")," \xb7"," ",null===k.ahead||null===k.behind?l("refUnavailable"):l("aheadBehind",{ahead:k.ahead,behind:k.behind})]}):null,"compare"!==t.mode||t.base?n?"log"===x?S:R:(0,i.jsxs)(f.HK,{orientation:"horizontal",defaultLayout:{"project-log":e.panelSizes.log,"project-files":100-e.panelSizes.log},onLayoutChanged:(t,s)=>{s.isUserInteraction&&void 0!==t["project-log"]&&e.onPanelSize("log",t["project-log"])},children:[(0,i.jsx)(f.wV,{id:"project-log",defaultSize:`${e.panelSizes.log}%`,minSize:"30%",children:S}),(0,i.jsx)(f.WM,{}),(0,i.jsx)(f.wV,{id:"project-files",defaultSize:`${100-e.panelSizes.log}%`,minSize:"25%",children:R})]}):(0,i.jsx)("p",{className:"p-4 text-sm text-muted-foreground",children:l("chooseBaseBranch")})]})}let Z=()=>{};function ee({clientId:e,cwd:t,refreshOnFocus:s,title:z,actions:D,onEscape:M=Z,onUnauthorized:A}){let{t:P}=(0,a.Bd)("projectHistory"),$=(0,y.G)(),{files:T,git:E,history:O,global:I,updateGlobal:L,page:q,setPage:F,historyPane:B,setHistoryPane:_,setContainer:W,narrow:Y,stacked:H,width:V,changeRowHeight:K,openGit:U,refresh:J}=function(e,t,s,i){let a=(0,y.G)(),[r]=(0,j.useState)(N.N1),[n,o]=(0,j.useState)(r),l=(0,j.useCallback)(e=>{o(t=>({...t,...e})),(0,N.Ms)({...(0,N.N1)(),...e})},[]),[c]=(0,j.useState)(()=>(0,N.tQ)(t)),[d]=(0,j.useState)(()=>(0,k.ph)(e,t,e=>a.show({level:"info",title:e}),c,r,{lazyHistory:!s,onUnauthorized:i})),{files:u,git:h,history:p}=d;(0,j.useSyncExternalStore)(u.subscribe,u.getRevision,u.getRevision);let m=(0,j.useSyncExternalStore)(h.subscribe,h.getRevision,h.getRevision);(0,j.useSyncExternalStore)(p.subscribe,p.getRevision,p.getRevision);let[f,g]=(0,j.useState)(c?.page??"files"),[x,v]=(0,j.useState)(c?.historyPane??"log"),[b,w]=(0,j.useState)({width:1200,height:800}),[z,D]=(0,j.useState)(null),M=(0,j.useRef)(!1),A=(0,j.useRef)(()=>void 0),P=b.width<900,$=P||b.height<680,T=h.getWorkspace(t).snapshot.repositories,E=u.state,O=(0,j.useSyncExternalStore)(C,S,R)?24:36;(0,j.useEffect)(()=>{p.setChangeRowHeight(O)},[p,O]),(0,j.useEffect)(()=>{A.current=()=>{let e=h.getWorkspace(t),s=p.state,i={page:f,historyPane:x,tabs:[...u.state.tabs],activePath:u.state.activePath,...u.getBrowsingDocumentSettings(),expandedPaths:[...u.state.expandedPaths].slice(0,500),treeScrollTop:u.state.treeScrollTop,searchQuery:u.state.search.query.slice(0,200),changesOnly:e.changesOnly,expandedRepositories:[...e.expandedRepositories].slice(0,100),history:{repositoryRoot:s.repositoryRoot,mode:s.mode,tip:s.tip,base:s.base,target:s.target,strategy:s.strategy,query:s.query.slice(0,200),author:s.author.slice(0,200),selectedCommit:s.selectedCommit,selectedChangePath:s.selectedChangePath,logScroll:p.scroll.log,changesScroll:p.scroll.changes},diffs:u.state.diffs.map(({repositoryRoot:e,path:t,comparison:s})=>({repositoryRoot:e,path:t,...s?{comparison:s}:{}})),activeDiff:u.state.activeDiff?{repositoryRoot:u.state.activeDiff.repositoryRoot,path:u.state.activeDiff.path,...u.state.activeDiff.comparison?{comparison:u.state.activeDiff.comparison}:{}}:null};(0,N.Sb)(t,i)}},[t,u,h,p,x,f]),(0,j.useEffect)(()=>{M.current=!0,d.restore(),u.ensureRoot(),h.ensureSnapshot(t);let e=()=>A.current();return window.addEventListener("pagehide",e),()=>{M.current=!1,window.removeEventListener("pagehide",e),queueMicrotask(()=>{M.current||(A.current(),d.dispose())})}},[t,u,h,d]),(0,j.useEffect)(()=>{if(!s)return;let e=Date.now(),i=()=>{Date.now()-e<5e3||(e=Date.now(),h.refreshSnapshot(t))};return window.addEventListener("focus",i),()=>window.removeEventListener("focus",i)},[t,h,s]),(0,j.useEffect)(()=>{if(!z)return;let e=()=>w({width:z.clientWidth,height:z.clientHeight});e();let t=new ResizeObserver(e);return t.observe(z),()=>t.disconnect()},[z]);let I=n.gitOpen&&(!$||"git"===f);return(0,j.useEffect)(()=>{if(!I||!T.length)return;if(T.some(e=>e.root===p.state.repositoryRoot))return void p.setRepository(p.state.repositoryRoot);let e=E.activeDiff?[E.activeDiff.repositoryRoot,E.activeDiff.path].filter(Boolean).join("/"):E.activePath,t=e?[...T].sort((e,t)=>t.root.length-e.root.length).find(t=>!t.root||e.startsWith(`${t.root}/`)):null;p.setRepository(t?.root??T.find(e=>""===e.root)?.root??T[0].root)},[I,m,p,T,E.activeDiff,E.activePath]),(0,j.useEffect)(()=>h.subscribe(()=>{let e=h.getWorkspace(t)?.layout;e&&e!==n.treeLayout&&l({treeLayout:e})}),[t,h,n.treeLayout,l]),{files:u,git:h,history:p,global:n,updateGlobal:l,page:f,setPage:g,historyPane:x,setHistoryPane:v,setContainer:D,narrow:P,stacked:$,width:b.width,changeRowHeight:O,openGit(e){l({gitOpen:!0}),g("git"),void 0!==e&&p.setRepository(e)},refresh(){u.refreshTree(),h.refreshSnapshot(t),E.activeDiff?u.reloadDiff():E.activePath&&u.reloadFile(E.activePath),I&&p.refresh()}}}(e,t,s,A),{directoryOpen:G,gitOpen:Q,gitMaximized:et}=I,es=t.replaceAll("\\","/").split("/").filter(Boolean).at(-1)??t,ei=E.getWorkspace(t),ea=ei.snapshot.repositories,er=T.state,en=(0,i.jsx)(x.F,{cwd:t,projectName:es,showRootTitle:!1,runtime:T,gitRuntime:E,onOpenGitBranches:U,onFileOpened:()=>F("code")}),eo=(0,i.jsx)(b.R,{runtime:T,gitRuntime:E,compact:V<1100,refreshOnFocus:s,onEscape:M,renderHeader:e=>(0,i.jsx)(v.X,{cwd:t,gitRuntime:E,paths:er.tabs,activePath:er.activePath,diffs:er.diffs,activeDiff:er.activeDiff,mobile:Y,actions:e,onActivate:e=>{"string"==typeof e?T.openFile(e):T.openDiff(e.repositoryRoot,e.path,e.comparison)},onClose:(e,t)=>T.closeTabs(e,t)})}),el=(0,i.jsxs)("div",{className:"flex size-full min-h-0 min-w-0 flex-col",children:[(0,i.jsxs)("div",{className:"flex h-9 shrink-0 items-center gap-2 border-b bg-muted px-3",children:[(0,i.jsx)(r.A,{className:"size-4"}),(0,i.jsx)("span",{className:"flex-1 text-sm font-medium",children:"Git"}),H?null:(0,i.jsx)(g.$,{size:"icon-sm",variant:"ghost","aria-label":P(et?"restoreGit":"maximizeGit"),onClick:()=>L({gitMaximized:!et}),children:et?(0,i.jsx)(n.A,{className:"size-4"}):(0,i.jsx)(o.A,{className:"size-4"})}),(0,i.jsx)(g.$,{size:"icon-sm",variant:"ghost","aria-label":P("collapseGit"),onClick:()=>{L({gitOpen:!1,gitMaximized:!1}),F("code")},children:(0,i.jsx)(l.A,{className:"size-4"})})]}),ea.length?(0,i.jsx)(X,{state:O.state,cwd:t,changeRows:O.getChangeRows(),changeRowHeight:K,onSelectChange:e=>O.selectChange(e),onToggleDirectory:e=>O.toggleChangeDirectory(e),onReveal:(e,t)=>T.revealFile(e,t),repositories:ea,projectName:es,narrow:Y,mobilePane:B,onMobilePane:_,scroll:O.scroll,onScroll:(e,t)=>O.setScroll(e,t),panelSizes:{log:I.logSize,changes:I.changeSize},onPanelSize:(e,t)=>L("log"===e?{logSize:t}:{changeSize:t}),onRepository:e=>{O.setRepository(e),_("log")},onMode:e=>O.setMode(e),onRevision:(e,t)=>O.setRevision(e,t),onStrategy:e=>O.setStrategy(e),onQuery:e=>O.setQuery(e),onAuthor:e=>O.setAuthor(e),onCommit:(e,t)=>O.selectCommit(e,t),onAggregate:()=>O.showAggregate(),onMoreLog:()=>O.loadMoreLog(),onMoreChanges:()=>O.loadMoreChanges(),onOpenFile:e=>{O.openChange(e),F("code"),L({gitMaximized:!1})},onRefresh:()=>O.refresh(),onCopy:e=>{(0,w.x)(e).then(e=>{e||$.error(P("copyFailed"))})}}):(0,i.jsx)("p",{className:"p-4 text-sm text-muted-foreground",children:"loading"===ei.snapshot.status||"idle"===ei.snapshot.status?P("findingGit"):ei.snapshot.error??P("noGit")})]}),ec=(0,i.jsxs)(f.HK,{orientation:"horizontal",defaultLayout:G?{"project-tree":I.directorySize,"project-code":100-I.directorySize}:void 0,onLayoutChanged:(e,t)=>{t.isUserInteraction&&void 0!==e["project-tree"]&&L({directorySize:e["project-tree"]})},children:[G?(0,i.jsx)(f.wV,{id:"project-tree",defaultSize:`${I.directorySize}%`,minSize:"180px",maxSize:"40%",children:en}):null,G?(0,i.jsx)(f.WM,{}):null,(0,i.jsx)(f.wV,{id:"project-code",minSize:"40%",children:eo})]},G?"tree-visible":"tree-hidden");return(0,i.jsxs)("div",{ref:W,className:"flex size-full min-h-0 min-w-0 flex-col overflow-hidden","data-testid":"project-preview",children:[(0,i.jsxs)("header",{className:"flex min-h-9 shrink-0 items-center gap-1 bg-muted px-2 py-1 pt-[max(4px,env(safe-area-inset-top))]",children:[H?null:(0,i.jsx)(g.$,{size:"icon-sm",variant:"ghost","aria-label":P(G?"collapseDirectory":"expandDirectory"),onClick:()=>L({directoryOpen:!G}),children:G?(0,i.jsx)(c.A,{className:"size-4"}):(0,i.jsx)(d.A,{className:"size-4"})}),(0,i.jsxs)("div",{className:"flex min-w-0 flex-1 items-baseline gap-3",title:t,children:[(0,i.jsx)("div",{className:"min-w-0 shrink-0 max-w-[50%] max-sm:max-w-full max-sm:shrink",children:z??(0,i.jsx)("h1",{className:"truncate text-sm font-semibold",children:es})}),(0,i.jsx)("p",{className:"min-w-0 truncate text-xs text-muted-foreground max-sm:hidden",children:t})]}),(0,i.jsxs)(g.$,{size:"sm",variant:Q?"secondary":"ghost","aria-pressed":Q,onClick:()=>U(),children:[(0,i.jsx)(r.A,{className:"size-4"}),(0,i.jsx)("span",{className:"max-sm:hidden",children:P("gitRecords")})]}),(0,i.jsx)(g.$,{size:"icon-sm",variant:"ghost","aria-label":P("refreshPreview"),onClick:J,children:(0,i.jsx)(u.A,{className:"size-4"})}),D]}),ei.snapshot.error?(0,i.jsx)("p",{role:"alert",className:"shrink-0 border-b px-3 py-2 text-sm text-destructive",children:ei.snapshot.error}):null,H?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:"flex shrink-0 gap-1 px-2 py-1",role:"group","aria-label":P("previewArea"),children:[(0,i.jsxs)(g.$,{size:"sm",variant:"files"===q?"secondary":"ghost",onClick:()=>F("files"),children:[(0,i.jsx)(h.A,{className:"size-4"}),P("files")]}),(0,i.jsxs)(g.$,{size:"sm",variant:"code"===q?"secondary":"ghost",onClick:()=>F("code"),children:[(0,i.jsx)(p.A,{className:"size-4"}),P("code")]}),(0,i.jsxs)(g.$,{size:"sm",variant:"git"===q?"secondary":"ghost",onClick:()=>U(),children:[(0,i.jsx)(m.A,{className:"size-4"}),"Git"]})]}),(0,i.jsx)("div",{className:"min-h-0 flex-1",children:"files"===q?en:"git"===q?el:eo})]}):et&&Q?el:(0,i.jsxs)(f.HK,{orientation:"vertical",defaultLayout:Q?{"project-main":100-I.gitSize,"project-git":I.gitSize}:void 0,onLayoutChanged:(e,t)=>{t.isUserInteraction&&void 0!==e["project-git"]&&L({gitSize:e["project-git"]})},children:[(0,i.jsx)(f.wV,{id:"project-main",defaultSize:Q?`${100-I.gitSize}%`:"100%",minSize:"35%",children:ec}),Q?(0,i.jsx)(f.WM,{}):null,Q?(0,i.jsx)(f.wV,{id:"project-git",defaultSize:`${I.gitSize}%`,minSize:"300px",children:el}):null]},Q?"git-visible":"git-hidden")]})}},58840:(e,t,s)=>{"use strict";s.d(t,{k:()=>h});var i=s(7962),a=s(82028),r=s.n(a),n=s(69266),o=s(49426),l=s(5816);let c=[[".viewer-zoom-in","放大","Zoom in"],[".viewer-zoom-out","缩小","Zoom out"],[".viewer-one-to-one","原始尺寸","Actual size"],[".viewer-reset","重置","Reset"],[".viewer-prev","上一张","Previous image"],[".viewer-next","下一张","Next image"],[".viewer-rotate-left","向左旋转","Rotate left"],[".viewer-rotate-right","向右旋转","Rotate right"]];function d(e){return document.querySelector(`.${e}`)}function u(e,t){e?.querySelectorAll(".viewer-list > li").forEach((e,s)=>{let i="en"===t?`View image ${s+1}`:`查看第 ${s+1} 张图片`;e.setAttribute("aria-label",i),e.setAttribute("title",i)})}function h(e){let{locale:t}=(0,l.i)(),{slides:s,index:a=0,onIndexChange:h,className:p,thumbnails:m=!0,ariaLabel:f="en"===t?"Image preview":"图片预览"}=e,g="inline"===e.mode,x="inline"===e.mode||e.open,v="modal"===e.mode?e.onClose:void 0,b=s.length>1,y=Math.min(Math.max(a,0),Math.max(s.length-1,0)),w=`pi-desk-image-viewer-${(0,n.useId)().replaceAll(":","")}`,j=(0,n.useRef)(null),k=(0,n.useRef)(null),N=(0,n.useRef)(null),C=(0,n.useRef)(""),S=(0,n.useRef)(""),R=(0,n.useRef)(y),z=(0,n.useRef)(y),D=(0,n.useRef)(h),M=(0,n.useRef)(v),A=(0,n.useMemo)(()=>JSON.stringify(s.map(e=>[e.src,e.alt])),[s]),P=(0,o.cn)("pi-desk-image-viewer",g?"pi-desk-image-viewer-inline":"pi-desk-image-viewer-modal",w,p);if((0,n.useEffect)(()=>{S.current=A},[A]),(0,n.useEffect)(()=>{z.current=y},[y]),(0,n.useEffect)(()=>{D.current=h},[h]),(0,n.useEffect)(()=>{M.current=v},[v]),(0,n.useEffect)(()=>{let e=j.current;if(!e||!x||0===s.length)return;let i=!1,a=null,n=0,o=null,l=e=>{!("Escape"===e.key&&!e.defaultPrevented&&!e.isComposing&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&a?.fulled)||(e.preventDefault(),e.stopImmediatePropagation(),e.repeat||d(w)?.querySelector(".viewer-button")?.click())};window.addEventListener("keydown",l,!0);let h=()=>{if(i)return;let l=z.current;R.current=l;let h=window.matchMedia("(pointer: coarse)").matches||navigator.maxTouchPoints>0;a=new(r())(e,{inline:g,initialViewIndex:l,initialCoverage:g?.82:.88,minWidth:0,minHeight:0,minZoomRatio:.05,maxZoomRatio:8,zoomRatio:.12,zIndex:200,zIndexInline:1,backdrop:!g,button:!0,focus:!0,keyboard:!0,loading:!0,loop:!1,movable:!0,navbar:!!b&&!!m&&2,rotatable:!0,scalable:!1,slideOnTouch:b,title:!g&&1,toolbar:{prev:b,zoomOut:!0,zoomIn:!0,oneToOne:{show:2},reset:!0,rotateLeft:{show:2},rotateRight:{show:2},next:b},tooltip:!0,transition:!window.matchMedia("(prefers-reduced-motion: reduce)").matches,toggleOnDblclick:!h,zoomable:!0,zoomOnTouch:!0,zoomOnWheel:!0,className:P,ready:()=>(function(e,t,s,i,a,r){let n=d(e);if(!n)return;for(let[e,t,i]of(n.setAttribute("aria-label",s),n.setAttribute("lang",r),c)){let s=n.querySelector(e);if(!s)continue;let a="en"===r?i:t;s.setAttribute("aria-label",a),s.setAttribute("title",a)}u(n,r);let o=n.querySelector(".viewer-button");if(o){let e=()=>{let e=t?o.classList.contains("viewer-fullscreen-exit")?"en"===r?"Exit fullscreen":"退出全屏":"en"===r?"View image fullscreen":"全屏查看图片":"en"===r?"Close image preview":"关闭图片预览";o.setAttribute("aria-label",e),o.setAttribute("title",e)};e(),t&&o.addEventListener("click",()=>requestAnimationFrame(e))}if(i>1){let e=document.createElement("div");e.className="pi-desk-image-viewer-counter",e.dataset.piDeskViewerCounter="",e.setAttribute("aria-live","polite"),e.textContent=`${a+1} / ${i}`,n.appendChild(e)}})(w,g,f,s.length,l,t),view:e=>{let t=function(e){let t=e.detail;if("object"!=typeof t||null===t)return null;let s=Reflect.get(t,"index");return"number"==typeof s&&Number.isInteger(s)?s:null}(e);if(null!==t){var i;let e;b&&N.current&&(N.current.options.transition=!1),R.current=t,i=s.length,(e=d(w)?.querySelector("[data-pi-desk-viewer-counter]"))&&(e.textContent=`${t+1} / ${i}`),D.current?.(t)}},viewed:()=>{let e=N.current;if(!b||!e?.image)return;let t=window.matchMedia("(prefers-reduced-motion: reduce)").matches;e.options.transition=!t,t||(e.image.getBoundingClientRect(),e.image.classList.add("viewer-transition"),e.image.animate([{opacity:0},{opacity:1}],{duration:150,easing:"ease-out"}))},hidden:()=>M.current?.()}),N.current=a,C.current=S.current,g&&k.current?(o=new ResizeObserver(()=>{cancelAnimationFrame(n),n=requestAnimationFrame(()=>a?.resize())})).observe(k.current):a.show()},p=Array.from(e.querySelectorAll("img"));return g&&p.some(e=>!e.complete)?Promise.all(p.map(e=>e.decode().catch(()=>void 0))).then(h):h(),()=>{i=!0,window.removeEventListener("keydown",l,!0),o?.disconnect(),cancelAnimationFrame(n),N.current===a&&(N.current=null),a?.destroy()}},[x,f,g,w,t,b,s.length,m,P]),(0,n.useEffect)(()=>{let e=N.current;if(!e||C.current===A)return;C.current=A;let s=R.current,i=j.current?.querySelectorAll("img")[s],a=e.image?.src!==i?.src||e.image?.alt!==i?.alt;a&&(e.viewed=!1),e.update(),a&&e.view(s),u(d(w),t)},[w,t,A]),(0,n.useEffect)(()=>{let e=N.current;e&&R.current!==y&&e.view(y)},[y]),0===s.length||!x)return null;let $=(0,i.jsx)("span",{ref:j,className:"pi-desk-image-viewer-source","aria-hidden":"true",children:s.map((e,t)=>(0,i.jsx)("img",{src:e.src,alt:e.alt,width:e.width,height:e.height,decoding:"async",draggable:!1},t))});return g?(0,i.jsx)("div",{ref:k,className:"pi-desk-image-viewer-host",role:"region","aria-label":f,tabIndex:0,onKeyDown:e=>{let t=N.current;!t||t.fulled||e.altKey||e.ctrlKey||e.metaKey||e.nativeEvent.isComposing||("ArrowLeft"===e.key||"ArrowRight"===e.key)&&(e.preventDefault(),e.stopPropagation(),"ArrowLeft"===e.key?t.prev(!1):t.next(!1))},children:$}):$}},60471:(e,t,s)=>{"use strict";s.d(t,{b:()=>u});var i=s(7962),a=s(46783),r=s(69266),n=s(78121),o=s(86963),l=s(89790),c=s(90434),d=s(49426);function u({value:e,options:t,onChange:s,ariaLabel:h,placeholder:p,searchPlaceholder:m,emptyText:f,disabled:g=!1,className:x}){let{t:v}=(0,n.Bd)("common"),[b,y]=(0,r.useState)(!1),w=t.find(t=>t.value===e);return(0,i.jsxs)(c.AM,{open:b,onOpenChange:y,children:[(0,i.jsx)(c.Wv,{render:(0,i.jsxs)(o.$,{type:"button",variant:"outline",role:"combobox","aria-label":h,"aria-expanded":b,disabled:g,className:(0,d.cn)("w-full min-w-0 justify-between border-input px-2.5 font-normal focus-visible:-outline-offset-2",x),children:[(0,i.jsx)("span",{className:(0,d.cn)("min-w-0 truncate",!w&&"text-muted-foreground"),children:w?.label??p??v("selectPlaceholder")}),(0,i.jsx)(a.A,{className:"text-muted-foreground"})]})}),(0,i.jsx)(c.hl,{align:"start",sideOffset:4,positionerClassName:"z-[120]",className:"w-(--anchor-width) max-w-[calc(100vw-2rem)] gap-0 p-0",children:(0,i.jsxs)(l.uB,{children:[(0,i.jsx)(l.G7,{placeholder:m??v("searchPlaceholder"),autoFocus:!0}),(0,i.jsxs)(l.oI,{className:"max-h-[min(20rem,var(--available-height))]",children:[(0,i.jsx)(l.xL,{children:f??v("noMatches")}),(0,i.jsx)(l.L$,{children:t.map(t=>(0,i.jsx)(l.h_,{value:`${t.label} ${t.description??""} ${t.value}`,"data-checked":t.value===e?"true":void 0,onSelect:()=>{s(t.value),y(!1)},children:(0,i.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,i.jsx)("span",{className:"block truncate",children:t.label}),t.description?(0,i.jsx)("span",{className:"mt-0.5 block truncate text-xs text-muted-foreground",children:t.description}):null]})},t.value))})]})]})})]})}},60682:(e,t,s)=>{"use strict";s.d(t,{J:()=>g});var i=s(7962),a=s(49762),r=s(86758),n=s(36670),o=s(50479),l=s(35995),c=s(69266),d=s(78121),u=s(99084),h=s(51821),p=s(1364),m=s(73165),f=s(93119);function g({cwd:e,path:t,type:s,trigger:x,openLabel:v,onOpen:b,expanded:y,onToggle:w,historical:j,oldPath:k,onReveal:N}){let{t:C}=(0,d.Bd)("projectFiles"),S=(0,h.G)(),[R,z]=(0,c.useState)(null),D=R??{cwd:e,path:t,type:s,oldPath:k},M=(0,c.useRef)(!1),A=(0,c.useRef)(""),P="file"===s?"file":"folder",$=e=>{(0,u.x)(e).then(e=>{e?S.success(C("copied")):S.error(C("copyFailed"))})},T=(D.path||D.cwd.replaceAll("\\","/")).split("/").filter(Boolean).at(-1)??D.cwd;return(0,i.jsxs)(p.tz,{onOpenChange:(i,a)=>{z(i?{cwd:e,path:t,type:s,oldPath:k}:null);let r=a.event;i&&("touch"===A.current||"pointerType"in r&&"touch"===r.pointerType||r.type.startsWith("touch"))&&(M.current=!0)},children:[(0,i.jsx)(p.Rc,{render:x,"data-project-path-menu-trigger":"",onPointerDown:e=>{A.current=e.pointerType,M.current=!1},onTouchEndCapture:e=>{let t=e.target;!R||!M.current||"touch"!==A.current||t instanceof Element&&t.closest("[data-project-path-menu-trigger]")===e.currentTarget&&e.cancelable&&e.preventDefault()},onClickCapture:e=>{M.current&&(e.preventDefault(),e.stopPropagation(),M.current=!1)},onKeyDownCapture:e=>{if(e.defaultPrevented||e.nativeEvent.isComposing)return;let t=e.target;if(!(t instanceof Element)||t.closest("[data-project-path-menu-trigger]")!==e.currentTarget||(A.current="keyboard",M.current=!1,"ContextMenu"!==e.key&&!("F10"===e.key&&e.shiftKey)))return;e.preventDefault(),e.stopPropagation();let s=t.getBoundingClientRect();e.currentTarget.dispatchEvent(new MouseEvent("contextmenu",{bubbles:!0,cancelable:!0,button:2,clientX:s.left+Math.min(s.width,120)/2,clientY:s.top+Math.min(s.height,36)/2}))}}),(0,i.jsxs)(m.D,{children:[b?(0,i.jsxs)(p.kt,{onClick:b,children:[(0,i.jsx)(a.A,{}),v??C("openPreview")]}):null,w?(0,i.jsxs)(p.kt,{onClick:w,children:[y?(0,i.jsx)(r.A,{}):(0,i.jsx)(n.A,{}),C(y?"collapse":"expand")]}):null,b||w?(0,i.jsx)(p.K5,{}):null,N?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(p.kt,{"data-testid":`project-${P}-reveal-${t}`,onClick:()=>{N&&N(D.path,D.type).then(()=>S.success(C("revealRequested"))).catch(e=>{S.error(e instanceof Error?e.message:C("revealFailed"))})},children:[(0,i.jsx)(o.A,{}),j?"directory"===s?C("openCurrentWorkspace"):C("locateCurrentWorkspace"):"directory"===s?C("openFolder"):C("openContainingFolder")]}),(0,i.jsx)(p.K5,{})]}):null,(0,i.jsxs)(p.kt,{"data-testid":`project-${P}-copy-address-${t}`,onClick:()=>$((0,f.$)(D.cwd,D.path)),children:[(0,i.jsx)(l.A,{}),C("copyAbsolutePath")]}),(0,i.jsxs)(p.kt,{onClick:()=>$(D.path||"."),children:[(0,i.jsx)(l.A,{}),C("copyRelativePath")]}),(0,i.jsxs)(p.kt,{onClick:()=>$(T),children:[(0,i.jsx)(l.A,{}),C("directory"===s?"copyFolderName":"copyFileName")]}),D.oldPath?(0,i.jsxs)(p.kt,{onClick:()=>$(D.oldPath),children:[(0,i.jsx)(l.A,{}),C("copyOldRelativePath")]}):null]})]})}},64334:(e,t,s)=>{"use strict";s.d(t,{Ms:()=>y,N1:()=>b,Sb:()=>j,tQ:()=>w});var i=s(38979),a=s(67765),r=s(86062);let n="pi-super:project-preview:global",o="pi-super:project-preview:projects",l=i.ai().min(5).max(95),c=i.Ik({maximized:i.zM(),directoryOpen:i.zM(),gitOpen:i.zM(),gitMaximized:i.zM(),treeLayout:i.k5(["directory","repository"]),directorySize:l,gitSize:l,logSize:l,changeSize:l}),d={maximized:!1,directoryOpen:!0,gitOpen:!1,gitMaximized:!1,treeLayout:"directory",directorySize:22,gitSize:45,logSize:62,changeSize:70},u=i.Ik({repositoryRoot:i.Yj().nullable(),mode:i.k5(["history","compare"]),tip:i.Yj(),base:i.Yj(),target:i.Yj(),strategy:i.k5(["merge-base","direct"]),query:i.Yj().max(200),author:i.Yj().max(200),selectedCommit:r.aD.nullable(),selectedChangePath:a._g.nullable(),logScroll:i.ai().nonnegative(),changesScroll:i.ai().nonnegative()}),h=i.Ie(e=>"object"==typeof e&&null!==e&&Array.isArray(e.cursorState)&&"object"==typeof e.viewState),p=i.Ik({repositoryRoot:i.Yj(),path:a._g,comparison:r.xv.optional()}),m=i.Ik({page:i.k5(["files","code","git"]),historyPane:i.k5(["log","files"]),tabs:i.YO(a._g).max(20),activePath:a._g.nullable(),editorStates:i.g1(a._g,h),fileViewModes:i.g1(a._g,i.k5(["source","preview"])),expandedPaths:i.YO(i.Yj()).max(500),treeScrollTop:i.ai().nonnegative(),searchQuery:i.Yj().max(200),changesOnly:i.zM(),expandedRepositories:i.YO(i.Yj()).max(100),history:u,diffs:i.YO(p).max(20).optional(),activeDiff:p.nullable()}),f=i.Ik({cwd:i.Yj(),lastOpenedAt:i.ai(),state:m});function g(e){let t=e.replaceAll("\\","/").replace(/\/+$/,"");return/^[a-z]:\//i.test(t)||t.startsWith("//")?t.toLowerCase():t}function x(){try{let e=JSON.parse(window.localStorage.getItem(o)??"[]");if(!Array.isArray(e))return[];let t=Date.now();return e.flatMap(e=>{let s=f.safeParse(e);return s.success&&t-s.data.lastOpenedAt<2592e6?[s.data]:[]})}catch{return[]}}function v(e){try{window.localStorage.setItem(o,JSON.stringify(e.sort((e,t)=>t.lastOpenedAt-e.lastOpenedAt).slice(0,50)))}catch(e){console.warn("[Pi Desk][ProjectPreview] 保存项目浏览状态失败",e)}}function b(){try{let e=JSON.parse(window.localStorage.getItem(n)??"null");return{...d,...c.partial().parse(e)}}catch{return{...d}}}function y(e){try{window.localStorage.setItem(n,JSON.stringify(e))}catch(e){console.warn("[Pi Desk][ProjectPreview] 保存全局布局失败",e)}}function w(e){let t=g(e),s=x(),i=s.find(e=>e.cwd===t);return i&&(i.lastOpenedAt=Date.now()),v(s),i?.state??null}function j(e,t){let s=m.safeParse(t);if(!s.success)return;let i=g(e),a=x(),r=a.find(e=>e.cwd===i);r?r.state=s.data:a.push({cwd:i,lastOpenedAt:Date.now(),state:s.data}),v(a)}},66453:(e,t,s)=>{"use strict";s.d(t,{$E:()=>r,Rv:()=>n,m4:()=>a});var i=s(38979);let a=i.Yj().trim().min(1),r=i.Yj().trim().min(1),n=i.Yj().trim().min(1)},67765:(e,t,s)=>{"use strict";s.d(t,{CT:()=>p,JH:()=>f,NL:()=>n,Nu:()=>g,_g:()=>d,eC:()=>u,gB:()=>o,ih:()=>w,jI:()=>y,p$:()=>h,rh:()=>c,uV:()=>a,xm:()=>r});var i=s(38979);let a=4096,r=5e3,n=5242880,o=1048576;function l(e,t){return""===e?t:!(e.length>a||e.startsWith("/")||e.includes("\\")||e.includes("\0")||/^[a-zA-Z]:/.test(e))&&e.split("/").every(e=>e.length>0&&"."!==e&&".."!==e)}let c=i.Yj().max(a).refine(e=>l(e,!0),"目录路径必须是规范相对路径"),d=i.Yj().min(1).max(a).refine(e=>l(e,!1),"文件路径必须是规范相对路径"),u=i.Yj().min(1).max(a).refine(e=>l(e,!1)||e.length>0&&e.length<=a&&!e.includes("\0")&&(e.startsWith("/")||e.startsWith("\\\\")||/^[a-zA-Z]:[\\/]/.test(e)),"预览路径必须是规范相对路径或绝对路径"),h=i.k5(["compressed","original"]),p=i.k5(["image/jpeg","image/png","image/webp","image/gif"]),m=i.Ik({name:i.Yj().min(1),type:i.k5(["directory","file"])}).strict(),f=i.Ik({entries:i.YO(m).max(r),truncated:i.zM()}).strict(),g=i.Ik({query:i.Yj().min(1).max(200).refine(e=>e.trim().length>0&&!/[\0\r\n]/.test(e),"搜索词必须是非空单行文本"),scope:i.k5(["all","files","content"]).default("all"),caseSensitive:i.zM().default(!1),wholeWord:i.zM().default(!1),regex:i.zM().default(!1)}).strict(),x=i.Ik({start:i.ai().int().nonnegative(),end:i.ai().int().nonnegative()}).strict().refine(e=>e.start<=e.end,"搜索命中区间无效"),v=i.Ik({path:d,ranges:i.YO(x)}).strict().refine(e=>e.ranges.every(t=>t.end<=e.path.length),"文件名命中区间越界"),b=i.Ik({path:d,line:i.ai().int().positive(),text:i.Yj().max(1e3),ranges:i.YO(x)}).strict().refine(e=>e.ranges.every(t=>t.end<=e.text.length),"正文命中区间越界"),y=i.Ik({fileMatches:i.YO(v).max(100),contentMatches:i.YO(b).max(200),truncated:i.zM()}).strict(),w=i.gM("kind",[i.Ik({kind:i.eu("text"),content:i.Yj(),size:i.ai().int().nonnegative().max(n)}).strict(),i.Ik({kind:i.eu("image"),mimeType:p,data:i.Yj().min(1),size:i.ai().int().positive().max(0xa00000)}).strict()])},68017:(e,t,s)=>{"use strict";s.d(t,{T:()=>r});var i=s(7962);s(69266);var a=s(49426);function r({className:e,...t}){return(0,i.jsx)("textarea",{"data-slot":"textarea",className:(0,a.cn)("flex field-sizing-content min-h-16 w-full rounded-lg border border-input bg-card px-2.5 py-2 text-sm leading-5 transition-colors duration-150 outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-2 focus-visible:outline-ring disabled:cursor-not-allowed disabled:bg-muted disabled:opacity-50 aria-invalid:border-destructive aria-invalid:outline-destructive",e),...t})}},70698:(e,t,s)=>{"use strict";s.d(t,{k:()=>i});let i=s(38979).ai().int().nonnegative().max(Number.MAX_SAFE_INTEGER)},72282:(e,t,s)=>{"use strict";s.d(t,{HK:()=>n,WM:()=>l,wV:()=>o});var i=s(7962),a=s(55493),r=s(49426);function n({className:e,...t}){return(0,i.jsx)(a.YJ,{"data-slot":"resizable-panel-group",className:(0,r.cn)("flex h-full w-full aria-[orientation=vertical]:flex-col",e),...t})}function o({...e}){return(0,i.jsx)(a.Zk,{"data-slot":"resizable-panel",...e})}function l({withHandle:e,className:t,...s}){return(0,i.jsx)(a.wv,{"data-slot":"resizable-handle",className:(0,r.cn)("relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90",t),...s})}},73068:(e,t,s)=>{"use strict";s.d(t,{R:()=>T});var i=s(7962),a=s(31123),r=s(28436),n=s(60278),o=s(55628),l=s(47974),c=s(90680),d=s(3433),u=s(41148),h=s(15824),p=s(35995),m=s(49762),f=s(14044),g=s(69266),x=s(78121),v=s(99084),b=s(90504),y=s(91182),w=s(18302),j=s(33550);let k=(0,g.forwardRef)(function({original:e,modified:t,viewMode:s,onEscape:a,savedState:r,onSaveState:n,initialLine:o},l){let{t:c}=(0,x.Bd)("common"),{wrapLines:d,collapseUnchanged:u}=(0,j.TX)(),h=(0,g.useRef)(null),p=(0,g.useRef)(null),m=(0,g.useRef)({viewMode:s,wrapLines:d,collapseUnchanged:u}),v=(0,g.useRef)(a),b=(0,g.useRef)(r),k=(0,g.useRef)(n),N=(0,g.useRef)(o);(0,g.useEffect)(()=>{v.current=a,b.current=r,k.current=n,N.current=o},[o,a,n,r]);let[C,S]=(0,g.useState)("loading"),[R,z]=(0,g.useState)(null);return(0,g.useEffect)(()=>{m.current={viewMode:s,wrapLines:d,collapseUnchanged:u}},[u,s,d]),(0,g.useImperativeHandle)(l,()=>({previousChange(){p.current?.goToDiff("previous")},nextChange(){p.current?.goToDiff("next")},focus(){p.current?.getModifiedEditor().focus()}}),[]),(0,g.useEffect)(()=>{let s=h.current;if(!s)return;let i=!0,a=null,r=null,n=null,o=()=>void 0,l=()=>void 0,d=[];return queueMicrotask(()=>{i&&(S("loading"),z(null))}),(0,y.cu)().then(u=>{if(!i)return;r=u.editor.createModel(e.content,(0,y.ix)(e.path,new TextEncoder().encode(e.content).length),(0,y.B3)(u,e.path,"diff-original")),n=u.editor.createModel(t.content,(0,y.ix)(t.path,new TextEncoder().encode(t.content).length),(0,y.B3)(u,t.path,"diff-modified"));let h=m.current;a=u.editor.createDiffEditor(s,{theme:(0,y.dC)(),readOnly:!0,domReadOnly:!0,editContext:!1,originalEditable:!1,automaticLayout:!0,renderSideBySide:"side-by-side"===h.viewMode,useInlineViewWhenSpaceIsLimited:!1,enableSplitViewResizing:!0,diffAlgorithm:"advanced",ignoreTrimWhitespace:!1,maxComputationTime:5e3,hideUnchangedRegions:h.collapseUnchanged?{enabled:!0,revealLineCount:3,minimumLineCount:6,contextLineCount:3}:{enabled:!1},minimap:{enabled:!1},stickyScroll:{enabled:!1},scrollBeyondLastLine:!1,smoothScrolling:!0,diffWordWrap:h.wrapLines?"on":"off",wrappingIndent:"same",...(0,y.R)(),lineNumbersMinChars:3,renderValidationDecorations:"off",renderWhitespace:"selection",unicodeHighlight:{nonBasicASCII:!1},padding:{top:10,bottom:10},overviewRulerBorder:!1,contextmenu:!0,ariaLabel:c("gitDiffReadOnly")});let f=N.current,g=!1;d.push(a.onDidUpdateDiff(()=>{if(!i||!a)return;let e=a.getLineChanges();if(z(e?.length??null),!g&&null!==e&&void 0!==f){g=!0;let e=Math.max(1,Math.min(f,n?.getLineCount()??1)),t=a.getModifiedEditor();t.setPosition({lineNumber:e,column:1}),t.revealLineInCenter(e)}})),a.setModel({original:r,modified:n}),void 0===f&&b.current&&a.restoreViewState(b.current);let x=()=>k.current?.(a?.saveViewState()??null);d.push(a.getOriginalEditor().onDidScrollChange(x),a.getModifiedEditor().onDidScrollChange(x)),v.current&&((0,w.e)(a.getOriginalEditor(),u.KeyCode.Escape,()=>v.current?.()),(0,w.e)(a.getModifiedEditor(),u.KeyCode.Escape,()=>v.current?.())),p.current=a,o=(0,y.Tr)(e=>u.editor.setTheme(e)),l=(0,y.BK)(e=>a?.updateOptions(e)),S("ready")}).catch(s=>{i&&(console.error("[Pi Desk][CodeDiff] Monaco 加载失败",{originalPath:e.path,modifiedPath:t.path,errorName:s instanceof Error?s.name:"UnknownError"}),S("error"))}),()=>{for(let e of(i=!1,o(),l(),k.current?.(a?.saveViewState()??null),d))e.dispose();p.current=null,a?.setModel(null),a?.dispose(),window.setTimeout(()=>{r?.dispose(),n?.dispose()},0)}},[t.content,t.path,e.content,e.path,c]),(0,g.useEffect)(()=>{p.current?.updateOptions({renderSideBySide:"side-by-side"===s,diffWordWrap:d?"on":"off",hideUnchangedRegions:u?{enabled:!0,revealLineCount:3,minimumLineCount:6,contextLineCount:3}:{enabled:!1}}),"side-by-side"===s&&p.current?.getOriginalEditor().updateOptions({wordWrapOverride2:"inherit"})},[u,s,d]),(0,i.jsxs)("div",{"data-testid":"code-diff",className:"relative flex h-full min-h-0 w-full flex-col overflow-hidden bg-background",children:[(0,i.jsx)("div",{ref:h,className:"min-h-0 flex-1"}),(0,i.jsx)("div",{role:"status","aria-label":c("diffStatus"),className:"flex min-h-6 shrink-0 items-center justify-end border-t px-3 text-xs text-muted-foreground",children:null===R?c("diffCalculating"):c("diffCount",{count:R})}),"loading"===C?(0,i.jsxs)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center gap-2 bg-background text-sm text-muted-foreground",children:[(0,i.jsx)(f.A,{className:"size-4 animate-spin"})," ",c("diffLoading")]}):null,"error"===C?(0,i.jsx)("div",{className:"absolute inset-0 flex items-center justify-center p-6 text-center text-sm text-destructive",children:c("diffFailed")}):null]})});var N=s(58840),C=s(51821),S=s(86963),R=s(56592),z=s(35989),D=s(32892);function M({label:e,onClick:t,active:s=!1,children:a}){return(0,i.jsxs)(D.m_,{children:[(0,i.jsx)(D.k$,{render:(0,i.jsx)(S.$,{type:"button",size:"icon-sm",variant:"ghost","aria-label":e,"aria-pressed":s||void 0,onPointerDown:e=>e.preventDefault(),onClick:t}),children:a}),(0,i.jsx)(D.ZI,{children:e})]})}var A=s(36510),P=s(46487),$=s(97921);function T({ref:e,runtime:t,gitRuntime:s,compact:f,visible:y=!0,refreshOnFocus:w=!0,onEscape:D,onSwitchPane:O,renderHeader:I}){let{t:L}=(0,x.Bd)("projectFiles"),{wrapLines:q,diffViewMode:F,collapseUnchanged:B}=(0,j.TX)();(0,g.useSyncExternalStore)(t.subscribe,t.getRevision,t.getRevision);let{activeDiff:_,activePath:W}=t.state,Y=!_&&W?t.state.documents.get(W):null,H=W?(0,$.g)(W):null,V=Y?.status==="text"&&(!H||"source"===Y.viewMode),K=(0,g.useRef)(null),U=(0,g.useRef)(null),J=(0,g.useRef)(null),G=(0,g.useRef)(null),Q=(0,C.G)();(0,g.useImperativeHandle)(e,()=>({focus(){V?U.current?.focus():_?J.current?.focus():K.current?.querySelector('[data-testid="markdown-preview"]')?.focus()}}),[_,V]),(0,g.useEffect)(()=>{let e=e=>{G.current&&e.source===G.current.contentWindow&&("pi-desk:file-escape"===e.data&&D(),"pi-desk:file-switch-pane"===e.data&&O?.())};return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[D,O]);let X=()=>{W&&U.current&&t.saveEditorState(W,U.current.getViewState())},{refresh:Z,unavailable:ee}=function(e,t,s,i,a,r=!0){(0,g.useSyncExternalStore)(t.subscribe,t.getRevision,t.getRevision);let n=t.getWorkspace(e.cwd)?.snapshot,o=e.state.activePath,l=!!e.state.activeDiff,c=o?e.state.documents.get(o):void 0,d=(0,g.useRef)(i);(0,g.useEffect)(()=>{d.current=i},[i]);let u=(0,g.useCallback)(()=>{o&&!l&&(d.current(),e.reloadFile(o),t.refreshSnapshot(e.cwd))},[l,t,o,e]);(0,g.useEffect)(()=>{if(!r||!a||!o||l)return;let i=()=>"visible"===window.document.visibilityState&&!!s.current?.getClientRects().length&&!s.current?.closest('[inert], [aria-hidden="true"]'),n=Date.now();i()&&(e.state.documents.get(o)?.status==="text"&&(d.current(),e.reloadFile(o)),t.refreshSnapshot(e.cwd));let c=()=>{!i()||Date.now()-n<1e3||(n=Date.now(),u())};return window.addEventListener("focus",c),window.document.addEventListener("visibilitychange",c),()=>{window.removeEventListener("focus",c),window.document.removeEventListener("visibilitychange",c)}},[a,l,t,s,o,u,r,e]),(0,g.useEffect)(()=>{if(!a||!o||l||c?.status!=="text")return;let t=new AbortController,s=n?.status==="ready"?(0,z.lN)(e.cwd,o,n.repositories):null;return e.compareFile(o,s?.repository.state==="ready"&&s.change?{repositoryRoot:s.repository.root,path:s.change.path}:null,t.signal),()=>t.abort()},[a,l,c,o,e,n]);let h=o&&n?.status==="ready"?(0,z.lN)(e.cwd,o,n.repositories):null;return{refresh:u,unavailable:n?.status==="error"||h?.repository.state==="unavailable"}}(t,s,K,X,y,w),et=Y?.status==="text"?Y.comparison:void 0,[es,ei]=(0,g.useState)(null),ea=et?.status==="ready"&&Y?.status==="text"&&es?.original===et.original.content&&es.modified===Y.content?es.count:void 0,er=e=>{W&&(X(),t.openFileDiff(W,e))},en=ee||et?.status==="error"?L("gitMarkersFailed"):et?.status==="unavailable"||et?.status==="ready"&&null===ea?L("gitMarkersUnavailable"):et?.status==="loading"||et?.status==="ready"&&void 0===ea?L("gitMarkersLoading"):et?.status==="ready"?L("gitChangesCount",{count:ea}):null,eo=_||W?(0,i.jsx)(i.Fragment,{children:_?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("span",{className:"mr-auto shrink-0 px-1 text-xs text-muted-foreground",children:[_.label??(_.comparison?`${_.comparison.baseCommit?.slice(0,7)??"∅"} → ${_.comparison.targetCommit.slice(0,7)}`:L("headToWorking")),"text"===_.status&&_.original.content===_.modified.content?L("noDiffChanges"):""]}),(0,i.jsx)(M,{label:L("previousChange"),onClick:()=>J.current?.previousChange(),children:(0,i.jsx)(a.A,{className:"size-4"})}),(0,i.jsx)(M,{label:L("nextChange"),onClick:()=>J.current?.nextChange(),children:(0,i.jsx)(r.A,{className:"size-4"})}),f?null:(0,i.jsx)(M,{label:"side-by-side"===F?L("inlineDiff"):L("sideBySideDiff"),active:"inline"===F,onClick:()=>t.setDiffViewMode("side-by-side"===F?"inline":"side-by-side"),children:(0,i.jsx)(n.A,{className:"size-4"})}),(0,i.jsx)(M,{label:L(q?"wrapOff":"wrapOn"),active:q,onClick:()=>t.setDiffWrapLines(!q),children:(0,i.jsx)(o.A,{className:"size-4"})}),(0,i.jsx)(M,{label:L(B?"expandUnchanged":"collapseUnchanged"),active:B,onClick:()=>t.setDiffCollapseUnchanged(!B),children:(0,i.jsx)(l.A,{className:"size-4"})}),(0,i.jsx)(M,{label:L("reloadDiff"),onClick:()=>t.reloadDiff(),children:(0,i.jsx)(c.A,{className:"size-4"})})]}):(0,i.jsxs)(i.Fragment,{children:[H&&Y?.status==="text"&&W?(0,i.jsx)("div",{className:"mr-auto flex shrink-0",role:"group","aria-label":L("markdown"===H?"markdownMode":"htmlMode"),children:["preview","source"].map(e=>(0,i.jsx)(S.$,{variant:Y.viewMode===e?"secondary":"ghost",size:"sm","aria-pressed":Y.viewMode===e,onClick:()=>{X(),t.setTextViewMode(W,e)},children:L("preview"===e?"previewMode":"sourceMode")},e))}):null,V&&en?(0,i.jsx)("span",{"data-testid":"file-git-status",role:"status",className:"mr-auto min-w-0 truncate text-xs text-muted-foreground",title:et?.status==="error"?et.error:en,children:f&&et?.status==="ready"&&"number"==typeof ea?L("gitChangesCompact",{count:ea}):en}):null,V&&et?.status==="ready"?(0,i.jsxs)(i.Fragment,{children:["number"==typeof ea&&ea>0?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(M,{label:L("previousChange"),onClick:()=>U.current?.previousChange(),children:(0,i.jsx)(a.A,{className:"size-4"})}),(0,i.jsx)(M,{label:L("nextChange"),onClick:()=>U.current?.nextChange(),children:(0,i.jsx)(r.A,{className:"size-4"})})]}):null,(0,i.jsx)(M,{label:L("viewDiff"),onClick:()=>er(),children:(0,i.jsx)(d.A,{className:"size-4"})})]}):null,V&&W?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(M,{label:L("findInFile"),onClick:()=>U.current?.openSearch(),children:(0,i.jsx)(u.A,{className:"size-4"})}),f?null:(0,i.jsx)(M,{label:L("goToLine"),onClick:()=>U.current?.gotoLine(),children:(0,i.jsx)(h.A,{className:"size-4"})}),(0,i.jsx)(M,{label:L(q?"wrapOff":"wrapOn"),active:q,onClick:()=>t.setWrapLines(W,!q),children:(0,i.jsx)(o.A,{className:"size-4"})}),(0,i.jsx)(M,{label:L("copySelectionOrAll"),onClick:()=>{if(Y?.status!=="text")return;let e=U.current?.getSelectionText()??"";(0,v.x)(e||Y.content).then(t=>{t?Q.success(L(e?"selectedCodeCopied":"allCodeCopied")):Q.error(L("copyContentFailed"))})},children:(0,i.jsx)(p.A,{className:"size-4"})})]}):null,W?(0,i.jsx)(M,{label:L("reloadCurrentFile"),onClick:Z,children:(0,i.jsx)(c.A,{className:"size-4"})}):null]})}):null;return(0,i.jsxs)("div",{ref:K,className:"flex size-full min-h-0 min-w-0 flex-col outline-none",tabIndex:-1,onFocus:e=>{e.target===e.currentTarget&&(V?U.current?.focus():_?J.current?.focus():K.current?.querySelector('[data-testid="markdown-preview"]')?.focus())},children:[I?I(eo):eo?(0,i.jsx)("div",{className:"flex min-h-9 shrink-0 flex-wrap items-center justify-end gap-2 border-b px-3 py-1","aria-label":L("fileActions"),children:eo}):null,(0,i.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden pb-[env(safe-area-inset-bottom)]",children:_?"text"===_.status?(0,i.jsx)(k,{ref:J,original:_.original,modified:_.modified,viewMode:f?"inline":F,savedState:_.editorState,initialLine:_.initialLine,onSaveState:e=>t.saveDiffState(_,e),onEscape:D},(0,R.Q)(_)):"metadata"===_.status?(0,i.jsxs)("div",{className:"grid h-full grid-cols-1 gap-4 overflow-auto p-4 md:grid-cols-2",children:[(0,i.jsx)("pre",{className:"whitespace-pre-wrap break-all text-sm",children:_.originalMetadata}),(0,i.jsx)("pre",{className:"whitespace-pre-wrap break-all text-sm",children:_.modifiedMetadata})]}):"loading"===_.status||"unloaded"===_.status?(0,i.jsx)(E,{}):(0,i.jsxs)("div",{className:"flex size-full flex-col items-center justify-center gap-3 p-6 text-center text-sm",children:[(0,i.jsx)("p",{className:"text-muted-foreground",children:"binary"===_.status?L("binaryDiffUnavailable"):"too_large"===_.status?L("largeDiffUnavailable"):_.error}),"error"===_.status?(0,i.jsx)(S.$,{variant:"outline",onClick:()=>t.reloadDiff(),children:L("readAgain")}):null]}):W&&Y?"loading"===Y.status||"unloaded"===Y.status?(0,i.jsx)(E,{}):"error"===Y.status?(0,i.jsxs)("div",{className:"flex size-full flex-col items-center justify-center gap-3 p-6 text-center",children:[(0,i.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:Y.error}),(0,i.jsx)(S.$,{variant:"outline",onClick:()=>t.reloadFile(W),children:L("readAgain")})]}):"image"===Y.status?(0,i.jsx)(N.k,{mode:"inline",slides:[{src:Y.objectUrl,alt:W}],ariaLabel:L("imageViewer",{name:W.replaceAll("\\","/").split("/").at(-1)??W})},Y.objectUrl):"markdown"===H&&"preview"===Y.viewMode?(0,i.jsx)(P.n,{content:Y.content,label:L("markdownPreview",{name:W}),savedScrollTop:Y.previewScrollTop,onScroll:e=>t.savePreviewScrollTop(W,e)},W):"html"===H&&"preview"===Y.viewMode?(0,i.jsx)("iframe",{ref:G,className:"block size-full border-0 bg-white",sandbox:"allow-scripts",srcDoc:(0,A.z)(Y.content),title:L("htmlPreview",{name:W})}):(0,i.jsx)(b.e,{ref:U,path:W,content:Y.content,size:Y.size,originalContent:et?.status==="ready"?et.original.content:void 0,onChanges:e=>{et?.status==="ready"&&ei({original:et.original.content,modified:Y.content,count:e})},onOpenDiff:er,savedState:Y.editorState,navigation:t.pendingNavigation,onNavigation:(e,s)=>t.consumeNavigation(e,s),onSaveState:(e,s)=>t.saveEditorState(e,s),onEscape:D},W):(0,i.jsxs)("div",{"data-testid":"file-workspace-empty",className:"flex size-full flex-col items-center justify-center gap-3 p-6 text-sm text-muted-foreground",children:[(0,i.jsx)(m.A,{className:"size-6"}),L("noOpenFile")]})})]})}function E(){let{t:e}=(0,x.Bd)("projectFiles");return(0,i.jsxs)("div",{className:"flex size-full items-center justify-center gap-2 text-sm text-muted-foreground",children:[(0,i.jsx)(f.A,{className:"size-4 animate-spin"}),e("loadingFile")]})}},73165:(e,t,s)=>{"use strict";s.d(t,{D:()=>d});var i=s(7962),a=s(60454),r=s(93750),n=s(74675),o=s(1364),l=s(49426),c=s(13464);function d({children:e}){return(0,i.jsx)(o.JW,{children:(0,i.jsx)(a.y,{className:"isolate z-[130] outline-none",side:"right",align:"start",alignOffset:4,children:(0,i.jsx)(r._,{"data-slot":"context-menu-content",finalFocus:!1,className:(0,l.cn)(c.hD,"flex flex-col overflow-hidden p-0"),children:(0,i.jsx)(n.V,{className:"min-h-0",viewportClassName:"p-1",children:e})})})})}},73429:(e,t,s)=>{"use strict";s.d(t,{p:()=>n});var i=s(7962);s(69266);var a=s(53555),r=s(49426);function n({className:e,type:t,...s}){return(0,i.jsx)(a.p,{type:t,"data-slot":"input",className:(0,r.cn)("min-h-8 w-full min-w-0 rounded-lg border border-input bg-card px-2.5 py-1 text-sm leading-5 transition-colors duration-150 outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:outline-2 focus-visible:outline-solid focus-visible:-outline-offset-2 focus-visible:outline-ring disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-muted disabled:opacity-50 aria-invalid:border-destructive aria-invalid:outline-destructive",e),...s})}},74675:(e,t,s)=>{"use strict";s.d(t,{V:()=>u});var i=s(7962);s(69266);var a=s(82611),r=s(40709),n=s(51173),o=s(49426),l=s(93061),c=s(87425);function d({className:e,orientation:t="vertical",...s}){return(0,i.jsx)(l.V,{"data-slot":"scroll-area-scrollbar","data-orientation":t,orientation:t,className:(0,o.cn)("flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent",e),...s,children:(0,i.jsx)(c.l,{"data-slot":"scroll-area-thumb",className:"relative flex-1 rounded-full bg-border"})})}function u({className:e,viewportClassName:t,viewportRef:s,onViewportScroll:l,children:c,...h}){return(0,i.jsxs)(a.V,{"data-slot":"l4-scroll-area",className:(0,o.cn)("relative min-h-0 overflow-hidden",e),...h,children:[(0,i.jsx)(r.B,{ref:s,"data-slot":"l4-scroll-area-viewport",className:(0,o.cn)("size-full rounded-[inherit] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1",t),onScroll:l,children:c}),(0,i.jsx)(d,{className:"data-[orientation=vertical]:h-full data-[orientation=vertical]:w-2.5 data-[orientation=vertical]:border-l data-[orientation=vertical]:border-l-transparent"}),(0,i.jsx)(n.I,{})]})}},79137:(e,t,s)=>{"use strict";async function i(e){let t="u"<typeof navigator?void 0:navigator.clipboard;if(t?.writeText)try{return await t.writeText(e),!0}catch{}if("u"<typeof document||!document.body)return!1;let s=document.activeElement instanceof HTMLElement?document.activeElement:null,i=document.createElement("textarea");i.value=e,i.setAttribute("readonly",""),i.setAttribute("aria-hidden","true"),i.style.position="fixed",i.style.top="-9999px",i.style.left="-9999px",i.style.width="1px",i.style.height="1px",i.style.opacity="0";try{return document.body.append(i),i.select(),i.setSelectionRange(0,i.value.length),document.execCommand("copy")}catch{return!1}finally{i.remove();try{s?.focus()}catch{}}}s.d(t,{h3:()=>i,qj:()=>a});class a extends Error{constructor(e){super(e.message,{cause:e.cause}),this.name="PiDeskBrowserPluginError",this.pluginName=e.pluginName,this.contributionName=e.contributionName??null,this.phase=e.phase}}},81649:(e,t,s)=>{"use strict";s.d(t,{Ke:()=>c,Nt:()=>o,R6:()=>l});var i=s(7962),a=s(87946),r=s(36700),n=s(14064);function o({...e}){return(0,i.jsx)(a.N,{"data-slot":"collapsible",...e})}function l({...e}){return(0,i.jsx)(r.R,{"data-slot":"collapsible-trigger",...e})}function c({...e}){return(0,i.jsx)(n.j,{"data-slot":"collapsible-content",...e})}},82075:(e,t,s)=>{"use strict";function i(e,t){return`${e}:${t}`}function a(e,t){return e?`${e}/${t}`:t}function r(e,t){return e.localeCompare(t,void 0,{numeric:!0,sensitivity:"base"})}function n(e,t,s=new Set){let i=[e],a=e;for(;!s.has(a);){let e=t(a);if(!e||s.has(e)||!e.startsWith(`${a}/`))break;i.push(e),a=e}return{path:e,targetPath:a,paths:i,label:a.slice(e.lastIndexOf("/")+1)}}function o(e,t=""){let s={path:t,directories:new Map,files:[]},i=new Map([[t,s]]);for(let r of e){let e=(t?r.slice(t.length+1):r).split("/"),n=s;for(let t of e.slice(0,-1)){let e=a(n.path,t),s=i.get(e);s||(s={path:e,directories:new Map,files:[]},i.set(e,s),n.directories.set(e,s)),n=s}n.files.push(r)}return i}function l(e,t,s){return n(e,e=>{let s=t.get(e);return s&&0===s.files.length&&1===s.directories.size?s.directories.keys().next().value??null:null},s)}function c(e,t,s=""){let a=[],n=(s,o)=>{let c=e.get(s);if(c){for(let s of[...c.directories.keys()].sort(r)){let r=l(s,e),c=!r.paths.some(e=>t.has(e));a.push({key:i("directory",s),type:"directory",path:r.targetPath,label:r.label,depth:o,directory:r,expanded:c}),c&&n(r.targetPath,o+1)}for(let e of[...c.files].sort(r))a.push({key:i("file",e),type:"file",path:e,label:e.slice(e.lastIndexOf("/")+1),depth:o})}};return n(s,0),a}s.d(t,{Im:()=>i,Kn:()=>r,OA:()=>o,_J:()=>a,qV:()=>c,rk:()=>n,xV:()=>l})},83029:e=>{e.exports={markdown:"l4-markdown_markdown__oIf6d",status:"l4-markdown_status__EVcKw",alert:"l4-markdown_alert__Aooao",alertTitle:"l4-markdown_alertTitle__GIoFs",alertBody:"l4-markdown_alertBody__BtDVT"}},86062:(e,t,s)=>{"use strict";s.d(t,{T8:()=>g,WW:()=>x,aD:()=>n,co:()=>h,lw:()=>v,ph:()=>f,xv:()=>d,yw:()=>p});var i=s(38979),a=s(67765),r=s(24985);let n=i.Yj().regex(/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/),o=i.KC([n,i.eu("HEAD"),i.Yj().max(1024).regex(/^refs\/(?:heads|remotes)\/[^\0\r\n]+$/)]).refine(e=>!e.includes("..")&&!e.endsWith("/"),"Git 版本无效"),l=i.KC([i.Ik({commit:o,parent:n.optional()}).strict(),i.Ik({base:o,target:o,strategy:i.k5(["merge-base","direct"])}).strict()]),c=i.Ik({base:n.nullable(),target:n,original:n.nullable()}).strict(),d=i.Ik({baseCommit:n.nullable(),targetCommit:n,oldPath:a._g.optional()}).strict(),u=i.Ik({oid:n,parents:i.YO(n),subject:i.Yj(),author:i.Yj(),timestampMs:i.ai().int(),refs:i.YO(i.Yj())}).strict(),h=i.Ik({tip:o,exclude:o.optional(),query:i.Yj().trim().max(200).default(""),author:i.Yj().trim().max(200).optional(),page:i.Ik({index:i.ai().int().min(1).max(2e3),size:i.ai().int().min(1).max(100)}).strict()}).strict(),p=i.Ik({tip:n.nullable(),exclude:n.nullable(),items:i.YO(u),hasMore:i.zM(),truncated:i.zM()}).strict(),m=i.Ik({path:a._g,oldPath:a._g.nullable(),status:i.k5(["added","modified","deleted","renamed","type-changed"])}).strict(),f=i.Ik({selection:l,page:i.Ik({index:i.ai().int().min(1).max(5e4),size:i.ai().int().min(1).max(500)}).strict()}).strict(),g=i.Ik({comparison:c,commit:u.extend({message:i.Yj(),selectedParent:n.nullable()}).nullable(),items:i.YO(m),hasMore:i.zM(),truncated:i.zM()}).strict(),x=r.gf.extend({upstream:i.Ik({ref:i.Yj(),ahead:i.ai().int().nonnegative().nullable(),behind:i.ai().int().nonnegative().nullable()}).strict().nullable()}).strict(),v=i.KC([r.FJ,i.Ik({kind:i.eu("metadata"),original:i.Yj(),modified:i.Yj()}).strict()])},86963:(e,t,s)=>{"use strict";s.d(t,{$:()=>l,r:()=>o});var i=s(7962),a=s(28549),r=s(73392),n=s(49426);let o=(0,r.F)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap cursor-pointer transition-colors duration-150 ease-out outline-none select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-solid focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 aria-pressed:bg-accent aria-pressed:text-accent-foreground aria-pressed:hover:bg-[color-mix(in_oklab,var(--accent),var(--foreground)_5%)] aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-[color-mix(in_oklab,var(--primary),var(--primary-foreground)_8%)] active:bg-[color-mix(in_oklab,var(--primary),var(--primary-foreground)_14%)]",outline:"border-border bg-card text-card-foreground hover:bg-accent active:bg-[color-mix(in_oklab,var(--accent),var(--foreground)_6%)] aria-expanded:bg-accent aria-expanded:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklab,var(--secondary),var(--foreground)_8%)] active:bg-[color-mix(in_oklab,var(--secondary),var(--foreground)_14%)] aria-expanded:bg-accent aria-expanded:text-accent-foreground",ghost:"hover:bg-foreground/8 hover:text-foreground active:bg-foreground/14 aria-expanded:bg-accent aria-expanded:text-accent-foreground",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-foreground underline underline-offset-4 hover:text-muted-foreground"},size:{default:"min-h-8 gap-2 px-2 py-1",xs:"min-h-7 gap-2 rounded-md px-2 py-0.5 text-sm",sm:"min-h-7 gap-2 rounded-md px-2 py-0.5 text-sm",lg:"min-h-10 gap-2 px-3 py-2",icon:"size-8","icon-xs":"size-7 rounded-md","icon-sm":"size-7 rounded-md","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function l({className:e,variant:t="default",size:s="default",...r}){return(0,i.jsx)(a.$,{"data-slot":"button",className:(0,n.cn)(o({variant:t,size:s,className:e})),...r})}},89790:(e,t,s)=>{"use strict";s.d(t,{G7:()=>d,L$:()=>p,h_:()=>m,oI:()=>u,uB:()=>c,xL:()=>h});var i=s(7962);s(69266);var a=s(30442),r=s(49426);s(5464);var n=s(17511),o=s(41148),l=s(90458);function c({className:e,...t}){return(0,i.jsx)(a.uB,{"data-slot":"command",className:(0,r.cn)("flex size-full flex-col overflow-hidden rounded-lg bg-popover p-1 text-popover-foreground",e),...t})}function d({className:e,...t}){return(0,i.jsx)("div",{"data-slot":"command-input-wrapper",className:"p-1 pb-0",children:(0,i.jsxs)(n.MG,{className:"has-[[data-slot=command-input]:focus-visible]:outline-2 has-[[data-slot=command-input]:focus-visible]:outline-solid has-[[data-slot=command-input]:focus-visible]:-outline-offset-2 has-[[data-slot=command-input]:focus-visible]:outline-ring",children:[(0,i.jsx)(a.uB.Input,{"data-slot":"command-input",className:(0,r.cn)("min-h-8 w-full bg-transparent px-2.5 text-sm leading-5 outline-none disabled:cursor-not-allowed disabled:opacity-50",e),...t}),(0,i.jsx)(n.Sq,{children:(0,i.jsx)(o.A,{className:"size-4 shrink-0 opacity-50"})})]})})}function u({className:e,...t}){return(0,i.jsx)(a.uB.List,{"data-slot":"command-list",className:(0,r.cn)("pi-desk-chat-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none",e),...t})}function h({className:e,...t}){return(0,i.jsx)(a.uB.Empty,{"data-slot":"command-empty",className:(0,r.cn)("py-6 text-center text-sm",e),...t})}function p({className:e,...t}){return(0,i.jsx)(a.uB.Group,{"data-slot":"command-group",className:(0,r.cn)("overflow-hidden p-1 text-foreground **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground",e),...t})}function m({className:e,children:t,...s}){return(0,i.jsxs)(a.uB.Item,{"data-slot":"command-item",className:(0,r.cn)("group/command-item relative flex min-h-8 cursor-pointer items-center gap-2 rounded-md px-2 py-1 text-sm leading-5 outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[selected=true]:*:[svg]:text-foreground",e),...s,children:[t,(0,i.jsx)(l.A,{className:"ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100"})]})}},90064:e=>{e.exports={host:"l4-code-line-markers_host__BBo2H",added:"l4-code-line-markers_added__oTNsK",modified:"l4-code-line-markers_modified__PZnY_",deletedBefore:"l4-code-line-markers_deletedBefore___1b0w",deletedAfter:"l4-code-line-markers_deletedAfter__SEoHy"}},90434:(e,t,s)=>{"use strict";s.d(t,{AM:()=>u,Wv:()=>h,eO:()=>m,hl:()=>p});var i=s(7962);s(69266);var a=s(50960),r=s(40252),n=s(17596),o=s(80168),l=s(40287),c=s(76624),d=s(49426);function u({...e}){return(0,i.jsx)(a.y,{"data-slot":"popover",...e})}function h({...e}){return(0,i.jsx)(r.W,{"data-slot":"popover-trigger",...e})}function p({className:e,positionerClassName:t,align:s="center",alignOffset:a=0,side:r="bottom",sideOffset:c=4,finalFocus:u=!1,...h}){return(0,i.jsx)(n.i,{children:(0,i.jsx)(o.U,{align:s,alignOffset:a,side:r,sideOffset:c,className:(0,d.cn)("isolate z-50",t),children:(0,i.jsx)(l.i,{"data-slot":"popover-content",finalFocus:u,className:(0,d.cn)("z-50 flex w-80 max-w-[calc(100vw-2rem)] origin-(--transform-origin) flex-col gap-3 rounded-lg border border-border bg-popover p-3 text-sm text-popover-foreground shadow-md outline-hidden duration-100 motion-reduce:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...h})})})}function m({className:e,...t}){return(0,i.jsx)(c.e,{"data-slot":"popover-title",className:(0,d.cn)("font-medium",e),...t})}},90504:(e,t,s)=>{"use strict";s.d(t,{e:()=>h});var i=s(7962),a=s(14044),r=s(69266),n=s(78121),o=s(91182),l=s(18302),c=s(33550),d=s(90064),u=s.n(d);let h=(0,r.forwardRef)(function({path:e,content:t,size:d,savedState:h,onSaveState:p,onEscape:m,originalContent:f,onChanges:g,onOpenDiff:x,navigation:v,onNavigation:b},y){let{t:w}=(0,n.Bd)("common"),{t:j}=(0,n.Bd)("projectFiles"),{wrapLines:k}=(0,c.TX)(),N=(0,r.useRef)(null),C=(0,r.useRef)(null),S=(0,r.useRef)(p),R=(0,r.useRef)(k),z=(0,r.useRef)(h),D=(0,r.useRef)(m),M=(0,r.useRef)(null),A=(0,r.useRef)(g),P=(0,r.useRef)(x),$=(0,r.useRef)(b),T=(0,r.useRef)(null),E=(0,r.useRef)(null),O=(0,r.useCallback)(e=>{let t=E.current;T.current?.clear(),null===t||t>(e.getModel()?.getLineCount()??0)||(T.current??=e.createDecorationsCollection(),T.current.set([{range:{startLineNumber:t,startColumn:1,endLineNumber:t,endColumn:1},options:{isWholeLine:!0,className:"bg-accent"}}]))},[]);(0,r.useEffect)(()=>{z.current=h,D.current=m,A.current=g,P.current=x,$.current=b},[g,m,x,b,h]);let[I,L]=(0,r.useState)("loading");return(0,r.useEffect)(()=>{S.current=p},[p]),(0,r.useEffect)(()=>{R.current=k},[k]),(0,r.useImperativeHandle)(y,()=>({openSearch(){C.current?.getAction("actions.find")?.run()},gotoLine(){C.current?.getAction("editor.action.gotoLine")?.run()},getSelectionText(){let e=C.current,t=e?.getModel(),s=e?.getSelection();return t&&s&&!s.isEmpty()?t.getValueInRange(s):""},getViewState:()=>C.current?.saveViewState()??null,focus(){C.current?.focus()},previousChange(){M.current?.previousChange()},nextChange(){M.current?.nextChange()}}),[]),(0,r.useEffect)(()=>{let i=N.current;if(!i)return;let a=!0,r=null,n=null,c=null,h=()=>void 0,p=()=>void 0;return queueMicrotask(()=>{a&&L("loading")}),(0,o.cu)().then(m=>{a&&(n=m.editor.createModel(t,(0,o.ix)(e,d),(0,o.B3)(m,e,"preview")),r=m.editor.create(i,{model:n,theme:(0,o.dC)(),readOnly:!0,domReadOnly:!0,editContext:!1,automaticLayout:!0,minimap:{enabled:!1},stickyScroll:{enabled:!1},scrollBeyondLastLine:!1,smoothScrolling:!1,wordWrap:R.current?"on":"off",wrappingIndent:"same",...(0,o.R)(),lineNumbersMinChars:3,lineDecorationsWidth:26,folding:d<=1048576,renderValidationDecorations:"off",renderWhitespace:"selection",bracketPairColorization:{enabled:d<=1048576},unicodeHighlight:{nonBasicASCII:!1},padding:{top:10,bottom:10},overviewRulerBorder:!1,contextmenu:!0,ariaLabel:w("codeReadOnly")}),z.current&&r.restoreViewState(z.current),D.current&&(0,l.e)(r,m.KeyCode.Escape,()=>D.current?.()),C.current=r,void 0!==f&&(M.current=c=function(e,t,i){let a=e.createDecorationsCollection(),r=e.getModel()?.getLineCount()??1,n=[],o=!0,l=null,c=null,d=[u().added,u().modified,u().deletedBefore,u().deletedAfter].map(e=>`.${e}`).join(","),h=e=>Math.min(r,"deleted"===e.kind?Math.max(1,e.modifiedStartLineNumber-1):e.modifiedStartLineNumber),p=()=>{null!==c&&clearTimeout(c),c=null,l?.terminate(),l=null},m=e=>{o&&(p(),n=e??[],a.set(n.map(e=>{let s="deleted"===e.kind,a=h(e),r=s?a:e.modifiedEndLineNumberExclusive-1,n=s?e.originalEndLineNumberExclusive-e.originalStartLineNumber:e.modifiedEndLineNumberExclusive-e.modifiedStartLineNumber,o={added:["#16803c","#59c77b"],modified:["#216bcc","#6aabff"],deleted:["#d12c38","#ff757f"]}[e.kind],l=s?1===e.modifiedStartLineNumber?u().deletedBefore:u().deletedAfter:u()[e.kind];return{range:new t.Range(a,1,r,1),options:{isWholeLine:!s,showIfCollapsed:!0,linesDecorationsClassName:s?void 0:l,firstLineDecorationClassName:s?l:void 0,linesDecorationsTooltip:i.tooltip(e.kind,n),overviewRuler:{color:o[0],darkColor:o[1],position:t.editor.OverviewRulerLane.Left}}}})),null===e&&console.warn("[Pi Desk][CodePreview] 行标记不可用,计算失败或超过限制",{path:i.path}),i.onChanges(e?.length??null))},f=e.onMouseDown(e=>{if(e.target.type!==t.editor.MouseTargetType.GUTTER_LINE_DECORATIONS||!e.target.element?.closest(d))return;let s=e.target.position?.lineNumber;void 0===s||n.find(e=>"deleted"===e.kind?h(e)===s:e.modifiedStartLineNumber<=s&&s<e.modifiedEndLineNumberExclusive)&&i.onOpenDiff(s)});try{(l=new Worker(s.tu(new URL(s.p+s.u(58779),s.b)),{type:void 0,name:"pi-desk-line-changes"})).onmessage=e=>m(e.data),l.onerror=()=>m(null),l.onmessageerror=()=>m(null),c=setTimeout(()=>m(null),3e3),l.postMessage({original:i.original,modified:i.modified})}catch{m(null)}let g=t=>{if(0===n.length)return;let s=e.getPosition()?.lineNumber??1,i=n.map(h),a="next"===t?i.find(e=>e>s)??i[0]:i.findLast(e=>e<s)??i[i.length-1];e.setPosition({lineNumber:a,column:1}),e.revealLineInCenter(a),e.focus()};return{previousChange(){g("previous")},nextChange(){g("next")},dispose(){o=!1,p(),f.dispose(),a.clear(),n=[]}}}(r,m,{path:e,original:f,modified:t,tooltip:(e,t)=>j({added:"gitAddedLines",modified:"gitModifiedLines",deleted:"gitDeletedLines"}[e],{count:t}),onChanges:e=>A.current?.(e),onOpenDiff:e=>P.current?.(e)})),h=(0,o.Tr)(e=>m.editor.setTheme(e)),p=(0,o.BK)(e=>r?.updateOptions(e)),O(r),L("ready"))}).catch(t=>{a&&(console.error("[Pi Desk][CodePreview] Monaco 加载失败",{path:e,errorName:t instanceof Error?t.name:"UnknownError"}),L("error"),void 0!==f&&A.current?.(null))}),()=>{a=!1,h(),p(),c?.dispose(),M.current=null,r&&(z.current=r.saveViewState(),S.current(e,z.current)),T.current?.clear(),T.current=null,C.current=null,r?.dispose(),n?.dispose()}},[t,f,O,e,j,d,w]),(0,r.useEffect)(()=>{C.current?.updateOptions({wordWrap:k?"on":"off"})},[k]),(0,r.useEffect)(()=>{let t=C.current;if(!v||"ready"!==I||!t)return;let s=t.getModel(),i=!!(s&&v.line>=1&&v.line<=s.getLineCount());E.current=i?v.line:null,O(t),i&&(t.setPosition({lineNumber:v.line,column:1}),t.revealLineInCenter(v.line),z.current=t.saveViewState(),S.current(e,z.current)),$.current?.(v,i)},[I,v,O,e]),(0,i.jsxs)("div",{"data-testid":"code-preview",className:"relative h-full min-h-0 w-full overflow-hidden bg-background",children:[(0,i.jsx)("div",{ref:N,className:`size-full ${u().host}`}),"loading"===I?(0,i.jsxs)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center gap-2 bg-background text-sm text-muted-foreground",children:[(0,i.jsx)(a.A,{className:"size-4 animate-spin"})," ",w("codeLoading")]}):null,"error"===I?(0,i.jsx)("div",{className:"absolute inset-0 flex items-center justify-center p-6 text-center text-sm text-destructive",children:w("codeFailed")}):null]})})},91182:(e,t,s)=>{"use strict";s.d(t,{B3:()=>h,BK:()=>n,R:()=>r,Tr:()=>u,cu:()=>c,dC:()=>d,ix:()=>p});var i=s(67765),a=s(48708);function r(){let e=Number.parseFloat(getComputedStyle(document.documentElement).fontSize)/16;return{fontFamily:'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace',fontSize:14*e,lineHeight:Math.round(22*e)}}function n(e){let t=new MutationObserver(()=>e(r()));return t.observe(document.documentElement,{attributes:!0,attributeFilter:["data-pi-desk-display-size"]}),()=>t.disconnect()}let o=null,l=0;function c(){return o||(o=(async()=>{(0,a.fx)()?.locale==="zh-CN"&&await s.e(12212).then(s.t.bind(s,12212,23));let{monaco:e}=await Promise.all([s.e(87221),s.e(46550),s.e(62134),s.e(38459),s.e(95287),s.e(54206),s.e(87086)]).then(s.bind(s,87086));return globalThis.MonacoEnvironment={getWorker:(e,t)=>new Worker(s.tu(new URL(s.p+s.u(53291),s.b)),{type:void 0,name:t})},e})())}function d(){return document.documentElement.classList.contains("dark")?"vs-dark":"vs"}function u(e){let t=new MutationObserver(()=>e(d()));return t.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>t.disconnect()}function h(e,t,s){l+=1;let i=t.split("/").map(e=>encodeURIComponent(e)).join("/");return e.Uri.parse(`inmemory://pi-desk/${l}/${s}/${i}`)}function p(e,t){if(t>i.gB)return"plaintext";let s=e.replaceAll("\\","/").split("/").at(-1)?.toLocaleLowerCase()??"";return"dockerfile"===s?"dockerfile":"makefile"===s?"plaintext":({bat:"bat",c:"c",cc:"cpp",cjs:"javascript",cpp:"cpp",cs:"csharp",css:"css",dockerfile:"dockerfile",go:"go",h:"cpp",hpp:"cpp",htm:"html",html:"html",ini:"ini",java:"java",js:"javascript",json:"javascript",jsonl:"javascript",jsx:"javascript",kt:"kotlin",less:"less",lua:"lua",md:"markdown",mdx:"markdown",mjs:"javascript",php:"php",ps1:"powershell",py:"python",rb:"ruby",rs:"rust",scss:"scss",sh:"shell",sql:"sql",swift:"swift",toml:"ini",ts:"typescript",tsx:"typescript",txt:"plaintext",xml:"xml",yaml:"yaml",yml:"yaml"})[s.includes(".")?s.split(".").at(-1)??"":""]??"plaintext"}},93119:(e,t,s)=>{"use strict";s.d(t,{$:()=>n,P:()=>r});var i=s(94853),a=s(93320);async function r(e,t,s,r){await (0,a.QL)(e,i.Ot,{...t,path:s,targetType:r})}function n(e,t){let s=/^[a-zA-Z]:[\\/]/.test(e)||e.startsWith("\\\\"),i=s?"\\":"/",a=(s?e.replaceAll("/","\\"):e).replace(/[\\/]+$/,"");return t?`${a}${i}${t.replaceAll("/",i)}`:/^[a-z]:$/i.test(a)?`${a}${i}`:a||i}},93320:(e,t,s)=>{"use strict";s.d(t,{QL:()=>n,Y4:()=>o,aw:()=>r});var i=s(73230),a=s(94853);class r extends Error{constructor(e,t,s,i=null){super(s),this.status=e,this.code=t,this.errorKey=i,this.name="L3ProjectRequestError"}}async function n(e,t,s,a){let n=await fetch(t.path,{method:"POST",headers:{"Content-Type":"application/json","X-Pi-Desk-Client-Id":e},body:JSON.stringify(t.request.parse(s)),signal:a}),o=await n.json();if(!n.ok||0!==o.code||null===o.data)throw new r(n.status,o.code,o.msg?(0,i.B)(o):"项目读取失败",o.i18n?.key??null);return t.response.parse(o.data)}function o(e,t,s){async function i(t,i,a){try{return await n(e,t,i,a)}catch(e){throw!a?.aborted&&e instanceof r&&401===e.status&&s?.(),e}}return{list:(e,s)=>i(a.Xe,{...t,path:e},s),search:(e,s)=>i(a.fg,{...t,...e},s),get:(e,s,r)=>i(a.ZI,{...t,path:e,imagePreviewMode:s},r),snapshot:(e,s)=>i(a.p0,{...t,refresh:s},e),branches:(e,s)=>i(a.ry,{...t,repositoryRoot:e},s),log:(e,s,r)=>i(a.p3,{...t,repositoryRoot:e,...s},r),changes:(e,s,r)=>i(a.ys,{...t,repositoryRoot:e,...s},r),diff:(e,s,r,n)=>i(a.OC,{...t,repositoryRoot:e,path:s,comparison:n},r)}}},94853:(e,t,s)=>{"use strict";s.d(t,{OC:()=>y,Ot:()=>u,Xe:()=>h,ZI:()=>m,_X:()=>g,fg:()=>p,p0:()=>f,p3:()=>v,ry:()=>x,ys:()=>b});var i=s(38979),a=s(67765),r=s(24985),n=s(86062);let o=i.Ik({cwd:i.Yj().trim().min(1).max(4096),workId:i.Yj().trim().min(1).optional()}).strict(),l=o.extend({repositoryRoot:a.rh}),c=o.extend({path:a.eC,imagePreviewMode:a.p$}).superRefine((e,t)=>{e.workId||a._g.safeParse(e.path).success||t.addIssue({code:"custom",path:["path"],message:"独立项目预览只接受根内相对路径"})}),d=i.k5(["file","directory"]),u={path:"/api/project-files/reveal",request:o.extend({path:i.KC([a.rh,a.eC]),targetType:d.optional()}).refine(e=>""!==e.path||"directory"===e.targetType,"文件路径不能为空").refine(e=>e.workId&&"directory"!==e.targetType||a.rh.safeParse(e.path).success,"独立项目和目录定位只接受根内相对路径"),response:i.Ik({}).strict()},h={path:"/api/project-files/list",request:o.extend({path:a.rh}).strict(),response:a.JH},p={path:"/api/project-files/search",request:o.extend(a.Nu.shape).strict(),response:a.jI},m={path:"/api/project-files/get",request:c,response:a.ih},f={path:"/api/project-git/get",request:o.extend({refresh:i.zM().optional()}).strict(),response:i.Ik({repositories:i.YO(r.u2).max(100)}).strict()},g={path:"/api/project-git-heads/get",request:o,response:i.Ik({repositories:i.YO(r.yl).max(r.y2)}).strict()},x={path:"/api/project-git-branches/list",request:l.strict(),response:n.WW},v={path:"/api/project-git-log/list",request:l.extend(n.co.shape).strict(),response:n.yw},b={path:"/api/project-git-changes/list",request:l.extend(n.ph.shape).strict(),response:n.T8},y={path:"/api/project-git-diff/get",request:l.extend({path:a._g,comparison:n.xv.optional()}).strict(),response:n.lw}},97921:(e,t,s)=>{"use strict";function i(e){return/\.(md|markdown)$/i.test(e)?"markdown":/\.html?$/i.test(e)?"html":null}s.d(t,{g:()=>i})},99084:(e,t,s)=>{"use strict";s.d(t,{x:()=>a});var i=s(79137);function a(e){return(0,i.h3)(e)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[79267],{1712:(e,t,r)=>{r.d(t,{$v:()=>g,Jd:()=>o,Kp:()=>s,Qi:()=>d,RJ:()=>i,eR:()=>u,il:()=>l,jF:()=>a,rT:()=>f,yZ:()=>c});var n=r(10813);let l="ArrowUp",o="ArrowDown",u="ArrowLeft",i="ArrowRight",c="Home",s="End",a=new Set([l,o,u,i,c,s]),f=["Shift","Control","Alt","Meta"];function d(e){return!!((0,n.sb)(e)&&"INPUT"===e.tagName&&null!=e.selectionStart||(0,n.sb)(e)&&"TEXTAREA"===e.tagName)}function g(e,t,r,n){if(!e||!t||!t.scrollTo)return;let l=e.scrollLeft,o=e.scrollTop,u=e.clientWidth<e.scrollWidth,i=e.clientHeight<e.scrollHeight;if(u&&"vertical"!==n){let n=v(e,t,"left"),o=h(e),u=h(t);"ltr"===r&&(n+t.offsetWidth+u.scrollMarginRight>e.scrollLeft+e.clientWidth-o.scrollPaddingRight?l=n+t.offsetWidth+u.scrollMarginRight-e.clientWidth+o.scrollPaddingRight:n-u.scrollMarginLeft<e.scrollLeft+o.scrollPaddingLeft&&(l=n-u.scrollMarginLeft-o.scrollPaddingLeft)),"rtl"===r&&(n-u.scrollMarginLeft<e.scrollLeft+o.scrollPaddingLeft?l=n-u.scrollMarginLeft-o.scrollPaddingLeft:n+t.offsetWidth+u.scrollMarginRight>e.scrollLeft+e.clientWidth-o.scrollPaddingRight&&(l=n+t.offsetWidth+u.scrollMarginRight-e.clientWidth+o.scrollPaddingRight))}if(i&&"horizontal"!==n){let r=v(e,t,"top"),n=h(e),l=h(t);r-l.scrollMarginTop<e.scrollTop+n.scrollPaddingTop?o=r-l.scrollMarginTop-n.scrollPaddingTop:r+t.offsetHeight+l.scrollMarginBottom>e.scrollTop+e.clientHeight-n.scrollPaddingBottom&&(o=r+t.offsetHeight+l.scrollMarginBottom-e.clientHeight+n.scrollPaddingBottom)}e.scrollTo({left:l,top:o,behavior:"auto"})}function v(e,t,r){let n="left"===r?"offsetLeft":"offsetTop",l=0;for(;t.offsetParent&&(l+=t[n],t.offsetParent!==e);)t=t.offsetParent;return l}function h(e){let t=getComputedStyle(e);return{scrollMarginTop:parseFloat(t.scrollMarginTop)||0,scrollMarginRight:parseFloat(t.scrollMarginRight)||0,scrollMarginBottom:parseFloat(t.scrollMarginBottom)||0,scrollMarginLeft:parseFloat(t.scrollMarginLeft)||0,scrollPaddingTop:parseFloat(t.scrollPaddingTop)||0,scrollPaddingRight:parseFloat(t.scrollPaddingRight)||0,scrollPaddingBottom:parseFloat(t.scrollPaddingBottom)||0,scrollPaddingLeft:parseFloat(t.scrollPaddingLeft)||0}}},8028:(e,t,r)=>{r.d(t,{D:()=>l,M:()=>o});var n=r(69266);let l=n.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},nextIndexRef:{current:0}});function o(){return n.useContext(l)}},9279:(e,t,r)=>{r.d(t,{S:()=>u});var n=r(80417),l=r(69266);let o=l.createContext(void 0);function u(e){let t=l.useContext(o);if(void 0===t&&!e)throw Error((0,n.A)(69));return t}},12590:(e,t,r)=>{r.d(t,{V$:()=>s});var n=r(80417),l=r(69266),o=r(48356),u=r(54967);let i={invalid:void 0,name:void 0,validityData:{state:u.ZV,errors:[],error:"",value:"",initialValue:null},setValidityData:o.tE,disabled:void 0,setTouched:o.tE,setDirty:o.tE,setFilled:o.tE,setFocused:o.tE,validationMode:"onSubmit",shouldValidateOnChange:()=>!1,state:u.mk,registerFieldControl:o.tE,validation:{getValidationProps:(e,t=o.t0)=>t,inputRef:{current:null},registeredInputs:new Map,registerInput:o.tE,getInputControl:()=>null,commit:async()=>{},change:o.tE}},c=l.createContext(i);function s(e=!0){let t=l.useContext(c);if(t.setValidityData===o.tE&&!e)throw Error((0,n.A)(28));return t}},14044:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(50735).A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},24121:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(50735).A)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]])},24960:(e,t,r)=>{r.d(t,{K:()=>R});var n=r(10813),l=r(88944),o=r(68509),u=r(29666),i=r(33914),c=r(66758),s=r(34517),a=r(17399);let f={},d={},g="";function v(e,t){return(0,n.ZU)(e)?e:t}function h(e,t,r){return/hidden|clip/.test(e.getComputedStyle(v(t,r)).overflowY)}class p{acquire(e){return this.lockCount+=1,1===this.lockCount&&null===this.restore&&this.timeoutLock.start(0,()=>this.lock(e)),this.release}lock(e){let t,r,c;if(0===this.lockCount||null!==this.restore)return;let s=(0,i.R)(e),p=s.documentElement,m=s.body,R=(0,n.zk)(p);if(h(R,p,m)){let t=new R.MutationObserver(()=>{h(R,p,m)||(t.disconnect(),this.restore=null,this.lock(e))}),r={attributes:!0};t.observe(p,r),t.observe(m,r),this.restore=()=>t.disconnect();return}let b=u.s4||!function(e){if("u"<typeof document)return!1;let t=(0,i.R)(e);return(0,n.zk)(t).innerWidth-t.documentElement.clientWidth>0}(e);this.restore=b?(c={overflowY:(r=v((t=(0,i.R)(e)).documentElement,t.body)).style.overflowY,overflowX:r.style.overflowX},Object.assign(r.style,{overflowY:"hidden",overflowX:"hidden"}),()=>{Object.assign(r.style,c)}):function(e){let t=(0,i.R)(e),r=t.documentElement,u=t.body,c=(0,n.zk)(r),s=0,h=0,p=!1,m=a.KP.create();if(o.Fp&&(c.visualViewport?.scale??1)!==1)return()=>{};function R(){let t=c.getComputedStyle(r),n=c.getComputedStyle(u),l=(t.scrollbarGutter||"").includes("both-edges")?"stable both-edges":"stable";s=r.scrollTop,h=r.scrollLeft,f={scrollbarGutter:r.style.scrollbarGutter,overflowY:r.style.overflowY,overflowX:r.style.overflowX},g=r.style.scrollBehavior,d={position:u.style.position,height:u.style.height,width:u.style.width,boxSizing:u.style.boxSizing,overflowY:u.style.overflowY,overflowX:u.style.overflowX,scrollBehavior:u.style.scrollBehavior};let o=r.scrollHeight>r.clientHeight,a=r.scrollWidth>r.clientWidth,m="scroll"===t.overflowY||"scroll"===n.overflowY,R="scroll"===t.overflowX||"scroll"===n.overflowX,b=Math.max(0,c.innerWidth-u.clientWidth),y=Math.max(0,c.innerHeight-u.clientHeight),w=parseFloat(n.marginTop)+parseFloat(n.marginBottom),k=parseFloat(n.marginLeft)+parseFloat(n.marginRight),E=v(r,u);if(p=function(e){if(!("u">typeof CSS&&CSS.supports&&CSS.supports("scrollbar-gutter","stable"))||"u"<typeof document)return!1;let t=(0,i.R)(e),r=t.documentElement,n=v(r,t.body),l=n.style.overflowY,o=r.style.scrollbarGutter;r.style.scrollbarGutter="stable",n.style.overflowY="scroll";let u=n.offsetWidth;n.style.overflowY="hidden";let c=n.offsetWidth;return n.style.overflowY=l,r.style.scrollbarGutter=o,u===c}(e)){r.style.scrollbarGutter=l,E.style.overflowY="hidden",E.style.overflowX="hidden";return}Object.assign(r.style,{scrollbarGutter:l,overflowY:"hidden",overflowX:"hidden"}),(o||m)&&(r.style.overflowY="scroll"),(a||R)&&(r.style.overflowX="scroll"),Object.assign(u.style,{position:"relative",height:w||y?`calc(100dvh - ${w+y}px)`:"100dvh",width:k||b?`calc(100vw - ${k+b}px)`:"100vw",boxSizing:"border-box",overflowY:"hidden",overflowX:"hidden",scrollBehavior:"unset"}),u.scrollTop=s,u.scrollLeft=h,r.setAttribute("data-base-ui-scroll-locked",""),r.style.scrollBehavior="unset"}function b(){Object.assign(r.style,f),Object.assign(u.style,d),p||(r.scrollTop=s,r.scrollLeft=h,r.removeAttribute("data-base-ui-scroll-locked"),r.style.scrollBehavior=g)}R();let y=(0,l.q)(c,"resize",function(){b(),m.request(R)});return()=>{m.cancel(),b(),"function"==typeof c.removeEventListener&&y()}}(e)}constructor(){this.lockCount=0,this.restore=null,this.timeoutLock=s.E.create(),this.timeoutUnlock=s.E.create(),this.release=()=>{this.lockCount-=1,0===this.lockCount&&this.restore&&this.timeoutUnlock.start(0,this.unlock)},this.unlock=()=>{0===this.lockCount&&this.restore&&(this.restore?.(),this.restore=null)}}}let m=new p;function R(e=!0,t=null){(0,c.g)(()=>{if(e)return m.acquire(t)},[e,t])}},27989:(e,t,r)=>{r.d(t,{l:()=>f});var n=r(69266),l=r(66758),o=r(66538),u=r(34517),i=r(48356),c=r(86947),s=r(6561),a=r(12418);function f(e,t){let{listRef:r,elementsRef:f,activeIndex:d,onMatch:g,disabledIndices:v,onTyping:h,enabled:p=!0,resetMs:m=750,selectedIndex:R=null}=t,b="rootStore"in e?e.rootStore:e,y=b.useState("open"),w=(0,u.Z)(),k=n.useRef(""),E=n.useRef(R??d??-1),x=n.useRef(null),M=(0,o.K)(e=>{function t(e){let t=f?.current[e];return!(t&&!(0,c.J9)(t)||t?.matches(":disabled"))&&(null==v||!(0,c.FP)(i.Ml,e,v))}function n(e,r,l=0){if(0===e.length)return -1;let o=(l%e.length+e.length)%e.length,u=r.toLowerCase();for(let r=0;r<e.length;r+=1){let n=(o+r)%e.length,l=e[n];if(l?.toLowerCase().startsWith(u)&&t(n))return n}return -1}let l=r.current;if(k.current.length>0&&" "===e.key&&((0,a.jo)(e),h?.(!0)),k.current.length>0&&" "!==k.current[0]&&-1===n(l,k.current)&&" "!==e.key&&h?.(!1),null==l||1!==e.key.length||e.ctrlKey||e.metaKey||e.altKey)return;y&&" "!==e.key&&((0,a.jo)(e),h?.(!0));let o=""===k.current;o&&(E.current=R??d??-1),l.every((e,r)=>!(e&&t(r))||e[0]?.toLowerCase()!==e[1]?.toLowerCase())&&k.current===e.key&&(k.current="",E.current=x.current),k.current+=e.key,w.start(m,()=>{k.current="",E.current=x.current,h?.(!1)});let u=o?R??d??-1:E.current,s=n(l,k.current,(u??0)+1);-1!==s?(g?.(s),x.current=s):" "!==e.key&&(k.current="",h?.(!1))}),S=(0,o.K)(e=>{let t=e.relatedTarget,r=b.select("domReferenceElement"),n=b.select("floatingElement");(0,s.gR)(r,t)||(0,s.gR)(n,t)||(w.clear(),k.current="",E.current=x.current,h?.(!1))});(0,l.g)(()=>{(y||null===R)&&(w.clear(),x.current=null,""!==k.current&&(k.current=""))},[y,R,w]);let C=n.useMemo(()=>({onKeyDown:M,onBlur:S}),[M,S]);return n.useMemo(()=>p?{reference:C,floating:C}:{},[p,C])}},28549:(e,t,r)=>{r.d(t,{$:()=>u});var n=r(69266),l=r(79621),o=r(69611);let u=n.forwardRef(function(e,t){let{render:r,className:n,disabled:u=!1,focusableWhenDisabled:i=!1,nativeButton:c=!0,style:s,...a}=e,{getButtonProps:f,buttonRef:d}=(0,l.s)({disabled:u,focusableWhenDisabled:i,native:c});return(0,o.o)("button",e,{state:{disabled:u},ref:[t,d],props:[a,f]})})},29585:(e,t,r)=>{r.d(t,{H:()=>u});var n=r(69266),l=r(48356);let o=n.createContext({controlId:void 0,registerControlId:l.tE,labelId:void 0,setLabelId:l.tE,messageIds:[],setMessageIds:l.tE,getDescriptionProps:e=>e});function u(){return n.useContext(o)}},31025:(e,t,r)=>{r.d(t,{s:()=>V});var n=r(69266),l=r(10813),o=r(88944),u=r(94532),i=r(82956),c=r(95472),s=r(66538),a=r(66758),f=r(34517),d=r(68509),g=r(17399),v=r(33914),h=r(69609),p=r(6561),m=r(22634),R=r(12418),b=r(44453),y=r(46681),w=r(86947),k=r(53402),E=r(27944),x=r(51378),M=r(63150);let S={inert:new WeakMap,"aria-hidden":new WeakMap},C="data-base-ui-inert",T={inert:new WeakSet,"aria-hidden":new WeakSet},A=new WeakMap,q=0,F=(e,t)=>t.map(t=>{if(e.contains(t))return t;let r=function e(t){return t?(0,l.Ng)(t)?t.host:e(t.parentNode):null}(t);return e.contains(r)?r:null}).filter(e=>null!=e),W=e=>{let t=new Set;return e.forEach(e=>{let r=e;for(;r&&!t.has(r);)t.add(r),r=r.parentNode}),t},P=(e,t,r)=>{let n=[],o=e=>{!e||r.has(e)||Array.from(e.children).forEach(e=>{"script"!==(0,l.mq)(e)&&(t.has(e)?o(e):n.push(e))})};return o(e),n};function N(e,t={}){let{ariaHidden:r=!1,inert:n=!1,mark:l=!0}=t,o=(0,v.R)(e[0]).body;return function(e,t,r,n,{mark:l=!0}){let o=null;n?o="inert":r&&(o="aria-hidden");let u=null,i=null,c=F(t,e),s=l?P(t,W(c),new Set(c)):[],a=[],f=[];if(o){let e=S[o],r=T[o];i=r,u=e;let n=F(t,Array.from(t.querySelectorAll("[aria-live]"))),l=c.concat(n);P(t,W(l),new Set(l)).forEach(t=>{let n=t.getAttribute(o),l=null!==n&&"false"!==n,u=(e.get(t)||0)+1;e.set(t,u),a.push(t),1===u&&l&&r.add(t),l||t.setAttribute(o,"inert"===o?"":"true")})}return l&&s.forEach(e=>{let t=(A.get(e)||0)+1;A.set(e,t),f.push(e),1===t&&e.setAttribute(C,"")}),q+=1,()=>{u&&a.forEach(e=>{let t=(u.get(e)||0)-1;u.set(e,t),t||(!i?.has(e)&&o&&e.removeAttribute(o),i?.delete(e))}),l&&f.forEach(e=>{let t=(A.get(e)||0)-1;A.set(e,t),t||e.removeAttribute(C)}),(q-=1)||(S.inert=new WeakMap,S["aria-hidden"]=new WeakMap,T.inert=new WeakSet,T["aria-hidden"]=new WeakSet,A=new WeakMap)}}(e,o,r,n,{mark:l})}var K=r(25327),L=r(52333),O=r(73146),j=r(301),I=r(7962);let $=[];function B(){$=$.filter(e=>e.deref()?.isConnected)}function D(e){B(),e&&"body"!==(0,l.mq)(e)&&($.push(new WeakRef(e)),$.length>20&&($=$.slice(-20)))}function Y(){return B(),$[$.length-1]?.deref()}function X(e){if(e.hasAttribute("tabindex")&&!e.hasAttribute("data-tabindex")||!e.getAttribute("role")?.includes("dialog"))return;let t=(0,b.nq)(e).filter(e=>{let t=e.getAttribute("data-tabindex")||"";return(0,b.AO)(e)||e.hasAttribute("data-tabindex")&&!t.startsWith("-")}),r=e.getAttribute("tabindex");0===t.length?"0"!==r&&(e.setAttribute("tabindex","0"),e.setAttribute("data-tabindex","0")):("-1"!==r||e.hasAttribute("data-tabindex")&&"-1"!==e.getAttribute("data-tabindex"))&&(e.setAttribute("tabindex","-1"),e.setAttribute("data-tabindex","-1"))}function V(e){let{context:t,children:r,disabled:S=!1,initialFocus:C=!0,returnFocus:T=!0,restoreFocus:A=!1,modal:q=!0,closeOnFocusOut:F=!0,openInteractionType:W="",nextFocusableElement:P,previousFocusableElement:$,beforeContentFocusGuardRef:V,externalTree:G,getInsideElements:H}=e,z="rootStore"in t?t.rootStore:t,Z=z.useState("open"),J=z.useState("domReferenceElement"),U=z.useState("floatingElement"),{events:_,dataRef:Q}=z.context,ee=(0,s.K)(()=>Q.current.floatingContext?.nodeId),et=(0,m.WZ)(J)&&!1===C,er=(0,c.u)(C),en=(0,c.u)(T),el=(0,c.u)(W),eo=(0,c.u)(Z),eu=(0,L.cq)(G),ei=(0,K.vB)(),ec=n.useRef(!1),es=n.useRef(!1),ea=n.useRef(!1),ef=n.useRef(null),ed=n.useRef(""),eg=n.useRef(""),ev=n.useRef(null),eh=n.useRef(null),ep=(0,i.a)(ev,V,ei?.beforeInsideRef),em=(0,i.a)(eh,ei?.afterInsideRef),eR=(0,f.Z)(),eb=(0,f.Z)(),ey=(0,g.NR)(),ew=null!=ei,ek=(0,m.nd)(U),eE=(0,s.K)((e=ek)=>e?(0,b.Kr)(e):[]),ex=(0,s.K)(()=>H?.().filter(e=>null!=e)??[]);n.useEffect(()=>{if(S||!q)return;let e=(0,v.R)(ek);return(0,o.q)(e,"keydown",function(e){"Tab"===e.key&&(0,p.gR)(ek,(0,p.RS)((0,v.R)(ek)))&&0===eE().length&&!et&&(0,R.jo)(e)})},[S,ek,q,et,eE]),n.useEffect(()=>{if(S||!Z)return;let e=(0,v.R)(ek);function t(){ea.current=!1}return(0,u.g)((0,o.q)(e,"pointerdown",function(e){let t=(0,p.EW)(e),r=ex();ea.current=!((0,p.gR)(U,t)||(0,p.gR)(J,t)||(0,p.gR)(ei?.portalNode,t)||r.some(e=>e===t||(0,p.gR)(e,t))),eg.current=e.pointerType||"keyboard",t?.closest(`[${O.Kd}]`)&&(es.current=!0,eb.start(0,()=>{es.current=!1}))},!0),(0,o.q)(e,"pointerup",t,!0),(0,o.q)(e,"pointercancel",t,!0),(0,o.q)(e,"keydown",function(){eg.current="keyboard"},!0),t)},[S,U,J,ek,Z,ei,eb,ex]),n.useEffect(()=>{if(S||!F)return;let e=(0,v.R)(ek);function t(t){let r=t.relatedTarget,n=t.currentTarget,o=(0,p.EW)(t);q&&null==r&&null!=o&&(0,p.gR)(U,o)&&D(o),queueMicrotask(()=>{let u=ee(),i=z.context.triggerElements,c=ex(),s=r?.hasAttribute((0,x.F)("focus-guard"))&&[ev.current,eh.current,ei?.beforeInsideRef.current,ei?.afterInsideRef.current,ei?.beforeOutsideRef.current,ei?.afterOutsideRef.current,(0,j.q)($),(0,j.q)(P)].includes(r),a=!((0,p.gR)(J,r)||(0,p.gR)(U,r)||(0,p.gR)(r,U)||(0,p.gR)(ei?.portalNode,r)||c.some(e=>e===r||(0,p.gR)(e,r))||i.hasMatchingElement(e=>(0,p.gR)(e,r))||s||eu&&((0,y.CM)(eu.nodesRef.current,u).find(e=>(0,p.gR)(e.context?.elements.floating,r)||(0,p.gR)(e.context?.elements.domReference,r))||(0,y.$4)(eu.nodesRef.current,u).find(e=>[e.context?.elements.floating,(0,m.nd)(e.context?.elements.floating)].includes(r)||e.context?.elements.domReference===r)));if(n===J&&ek&&X(ek),A&&n!==J&&!(0,w.J9)(o)&&(0,p.RS)(e)===e.body){if((0,l.sb)(ek)&&(ek.focus(),"popup"===A))return void ey.request(()=>{ek.focus()});let e=eE(),t=ef.current,r=(t&&e.includes(t)?t:null)||e[e.length-1]||ek;(0,l.sb)(r)&&r.focus()}if(Q.current.insideReactTree){Q.current.insideReactTree=!1;return}(et||!q)&&r&&a&&!es.current&&(et||r!==Y())&&(ec.current=!0,z.setOpen(!1,(0,k.d)(E.Xn,t)))})}let r=(0,l.sb)(J)?J:null;if(U||r)return(0,u.g)(r&&(0,o.q)(r,"focusout",t),r&&(0,o.q)(r,"pointerdown",function(){es.current=!0,eb.start(0,()=>{es.current=!1})}),U&&(0,o.q)(U,"focusin",function(e){let t=(0,p.EW)(e);(0,b.AO)(t)&&(ef.current=t)}),U&&(0,o.q)(U,"focusout",t),U&&ei&&(0,o.q)(U,"focusout",function(){ea.current||(Q.current.insideReactTree=!0,eR.start(0,()=>{Q.current.insideReactTree=!1}))},!0))},[S,J,U,ek,q,eu,ei,z,F,A,eE,et,ee,Q,eR,eb,ey,P,$,ex]),n.useEffect(()=>{if(S||!U||!Z)return;let e=Array.from(ei?.portalNode?.querySelectorAll(`[${(0,x.F)("portal")}]`)||[]),t=eu?(0,y.$4)(eu.nodesRef.current,ee()):[],r=t.find(e=>(0,m.WZ)(e.context?.elements.domReference||null))?.context?.elements.domReference,n=N([U,...e,ev.current,eh.current,ei?.beforeOutsideRef.current,ei?.afterOutsideRef.current,...ex(),r,(0,j.q)($),(0,j.q)(P),et?J:null].filter(e=>null!=e),{ariaHidden:q||et,mark:!1}),l=N([U,...e].filter(e=>null!=e));return()=>{l(),n()}},[Z,S,J,U,q,ei,et,eu,ee,P,$,ex]),(0,a.g)(()=>{if(!Z||S||!(0,l.sb)(ek))return;ed.current="",eg.current="";let e=(0,v.R)(ek),t=(0,p.RS)(e);queueMicrotask(()=>{let r,n=er.current,l="function"==typeof n?n(el.current||""):n;if(void 0===l||!1===l||(0,p.gR)(ek,t))return;let o=null,u=()=>(null==o&&(o=eE(ek)),o[0]||ek);r=(r=!0===l||null===l?u():(0,j.q)(l))||u();let i=(0,p.gR)(ek,(0,p.RS)(e));(0,M.p)(r,{preventScroll:r===ek,shouldFocus(){if(!eo.current)return!1;if(i)return!0;let t=(0,p.RS)(e);return!(t!==r&&(0,p.gR)(ek,t))}})})},[S,Z,ek,eE,er,el,eo]),(0,a.g)(()=>{if(S||!ek)return;let e=(0,v.R)(ek),t=(0,p.RS)(e),r=null==el.current;function n(e){var t,r;let n;if(e.open||(t=e.nativeEvent,r=eg.current,n=(0,l.zk)((0,p.EW)(t)),ed.current=t instanceof n.KeyboardEvent?"keyboard":t instanceof n.FocusEvent?r||"keyboard":"pointerType"in t?t.pointerType||"keyboard":"touches"in t?"touch":t instanceof n.MouseEvent?r||(0===t.detail?"keyboard":"mouse"):""),e.reason===E.N7&&"mouseleave"===e.nativeEvent.type&&(ec.current=!0),e.reason===E.Np)if(e.nested)ec.current=!1;else if((0,R.YF)(e.nativeEvent)||(0,R.Pg)(e.nativeEvent))ec.current=!1;else{let e=!1;(0,v.R)(ek).createElement("div").focus({get preventScroll(){return e=!0,!1}}),e?ec.current=!1:ec.current=!0}}return D(t),_.on("openchange",n),()=>{_.off("openchange",n);let o=(0,p.RS)(e),u=ex(),i=(0,p.gR)(U,o)||u.some(e=>e===o||(0,p.gR)(e,o))||eu&&(0,y.CM)(eu.nodesRef.current,ee(),!1).some(e=>(0,p.gR)(e.context?.elements.floating,o)),c=en.current,s=ed.current,a=function(e){let n=en.current,o="function"==typeof n?n(e):n;if(void 0===o||!1===o)return null;null===o&&(o=!0);let u=J?.isConnected?J:null,i=t?.isConnected&&"body"!==(0,l.mq)(t)?t:null,c=r?i||u:u||i;return(c||(c=Y()||null),"boolean"==typeof o)?c:(0,j.q)(o)||c||null}(s);queueMicrotask(()=>{let t=a?(0,b.AO)(a)?a:(0,b.Kr)(a)[0]||a:null;if(c&&!ec.current&&(0,l.sb)(t)&&("boolean"!=typeof c||t===o||o===e.body||i)){let e={preventScroll:!0};"keyboard"===s&&(e.focusVisible=!0),t.focus(e)}ec.current=!1})}},[S,U,ek,en,el,_,eu,J,ee,ex]),(0,a.g)(()=>{if(!d.Fp||Z||!U)return;let e=(0,p.RS)((0,v.R)(U));(0,l.sb)(e)&&(0,m.$u)(e)&&(0,p.gR)(U,e)&&e.blur()},[Z,U]),(0,a.g)(()=>{if(!S&&ei)return ei.setFocusManagerState({modal:q,closeOnFocusOut:F,open:Z,onOpenChange:z.setOpen,domReference:J}),()=>{ei.setFocusManagerState(null)}},[S,ei,q,Z,z,F,J]),(0,a.g)(()=>{if(!S&&ek)return X(ek),()=>{queueMicrotask(B)}},[S,ek]);let eM=!S&&(!q||!et)&&(ew||q);return(0,I.jsxs)(n.Fragment,{children:[eM&&(0,I.jsx)(h.U,{"data-type":"inside",ref:ep,onFocus:e=>{if(q){let e=eE();(0,M.p)(e[e.length-1])}else if(ei?.portalNode)if(ec.current=!1,(0,b.Qp)(e,ei.portalNode)){let e=(0,b.vF)(J);e?.focus()}else(0,j.q)($??ei.beforeOutsideRef)?.focus()}}),r,eM&&(0,I.jsx)(h.U,{"data-type":"inside",ref:em,onFocus:e=>{if(q)(0,M.p)(eE()[0]);else if(ei?.portalNode)if(F&&(ec.current=!0),(0,b.Qp)(e,ei.portalNode)){let e=(0,b.XJ)(J);e?.focus()}else(0,j.q)(P??ei.afterOutsideRef)?.focus()}})]})}},33099:(e,t,r)=>{r.d(t,{W:()=>o});var n=r(69266),l=r(7962);let o=n.forwardRef(function(e,t){let r,{cutout:n,...o}=e;if(n){let e=n.getBoundingClientRect();r=`polygon(0% 0%,100% 0%,100% 100%,0% 100%,0% 0%,${e.left}px ${e.top}px,${e.left}px ${e.bottom}px,${e.right}px ${e.bottom}px,${e.right}px ${e.top}px,${e.left}px ${e.top}px)`}return(0,l.jsx)("div",{ref:t,role:"presentation","data-base-ui-inert":"",...o,style:{position:"fixed",inset:0,userSelect:"none",WebkitUserSelect:"none",clipPath:r}})})},35215:(e,t,r)=>{r.d(t,{G:()=>c,L:()=>i});var n=r(69266),l=r(66538),o=r(29666),u=r(65369);function i(e,t){var r;let u,i,{onClick:c,onPointerDown:s}=(r=(0,l.K)((r,n)=>{("function"==typeof e?e():e)||t(n||(o.s4?"touch":""))}),u=n.useRef(""),i=n.useCallback(e=>{e.defaultPrevented||(u.current=e.pointerType,r(e,e.pointerType))},[r]),{onClick:n.useCallback(e=>{0===e.detail?r(e,"keyboard"):("pointerType"in e?r(e,e.pointerType):r(e,u.current),u.current="")},[r]),onPointerDown:i});return n.useMemo(()=>({onClick:c,onPointerDown:s}),[c,s])}function c(e){let[t,r]=n.useState(null),l=i(e,r);return(0,u.x)(e,t=>{t&&!e&&r(null)}),n.useMemo(()=>({openMethod:t,triggerProps:l}),[t,l])}},40516:(e,t,r)=>{r.d(t,{E:()=>o});var n=r(7962);let l="base-ui-disable-scrollbar",o={className:l,getElement:e=>(0,n.jsx)("style",{nonce:e,href:l,precedence:"base-ui:low",children:`.${l}{scrollbar-width:none}.${l}::-webkit-scrollbar{display:none}`})}},49535:(e,t,r)=>{r.d(t,{x:()=>u});var n=r(69266),l=r(48356);let o=n.createContext({elementRef:{current:null},formRef:{current:{fields:new Map}},errors:{},clearErrors:l.tE,validationMode:"onSubmit",submitAttemptedRef:{current:!1}});function u(){return n.useContext(o)}},51210:(e,t,r)=>{r.d(t,{C:()=>x});var n=r(69266),l=r(17399),o=r(66758),u=r(33914),i=r(66538),c=r(95472),s=r(68509),a=r(10813),f=r(53402),d=r(27944),g=r(52333),v=r(86947),h=r(6761),p=r(22634),m=r(6561),R=r(63150),b=r(12418);function y(e){return s.Fp&&0===e.movementX&&0===e.movementY}function w(e,t,r){switch(e){case"vertical":return t;case"horizontal":return r;default:return t||r}}function k(e,t){return w(t,e===h.il||e===h.Jd,e===h.eR||e===h.RJ)}function E(e,t,r){return w(t,e===h.Jd,r?e===h.eR:e===h.RJ)||"Enter"===e||" "===e||""===e}function x(e,t){let{listRef:r,activeIndex:s,onNavigate:x=()=>{},enabled:M=!0,selectedIndex:S=null,allowEscape:C=!1,loopFocus:T=!1,nested:A=!1,rtl:q=!1,virtual:F=!1,focusItemOnOpen:W="auto",focusItemOnHover:P=!0,openOnArrowKeyDown:N=!0,disabledIndices:K,orientation:L="vertical",parentOrientation:O,id:j,resetOnPointerLeave:I=!0,externalTree:$,grid:B}=t,D=null!=B,Y="rootStore"in e?e.rootStore:e,X=Y.useState("open"),V=Y.useState("floatingElement"),G=Y.useState("domReferenceElement"),H=Y.context.dataRef,z=(0,p.nd)(V),Z=(0,p.WZ)(G),J=(0,c.u)(z),U=(0,g.R1)(),_=(0,g.cq)($),Q=n.useRef(W),ee=n.useRef(S??-1),et=n.useRef(null),er=n.useRef(!0),en=(0,i.K)(e=>{x(-1===ee.current?null:ee.current,e)}),el=n.useRef(!!V),eo=n.useRef(X),eu=n.useRef(!1),ei=n.useRef(!1),ec=n.useRef(null),es=(0,c.u)(K),ea=(0,c.u)(X),ef=(0,c.u)(S),ed=(0,c.u)(I),eg=(0,l.NR)(),ev=(0,l.NR)(),eh=(0,i.K)(()=>{function e(e){F?_?.events.emit("virtualfocus",e):ec.current=(0,R.p)(e,{sync:eu.current,preventScroll:!0})}let t=r.current[ee.current],n=ei.current;t&&e(t),(eu.current?e=>e():e=>eg.request(e))(()=>{let l=r.current[ee.current]||t;!l||(t||e(l),ew&&(n||!er.current)&&l.scrollIntoView?.({block:"nearest",inline:"nearest"}))})});(0,o.g)(()=>{H.current.orientation=L},[H,L]),(0,o.g)(()=>{M&&(X&&V?(ee.current=S??-1,Q.current&&null!=S&&(ei.current=!0,en())):el.current&&(ee.current=-1,en()))},[M,X,V,S,en]),(0,o.g)(()=>{if(M){if(!X){eu.current=!1;return}if(V)if(null==s){if(eu.current=!1,null!=ef.current)return;if(el.current&&(ee.current=-1,eh()),(!eo.current||!el.current)&&Q.current&&(null!=et.current||!0===Q.current&&null==et.current)){let e=0,t=()=>{null==r.current[0]?(e<2&&(e?e=>ev.request(e):queueMicrotask)(t),e+=1):(ee.current=null==et.current||E(et.current,L,q)||A?(0,v.Zb)(r):(0,v.vB)(r),et.current=null,en())};t()}}else(0,v.du)(r.current,s)||(ee.current=s,eh(),ei.current=!1)}},[M,X,V,s,ef,A,r,L,q,en,eh,ev]),(0,o.g)(()=>{if(!M||V||!_||F||!el.current)return;let e=_.nodesRef.current,t=e.find(e=>e.id===U)?.context?.elements.floating,r=(0,m.RS)((0,u.R)(G??t??null)),n=e.some(e=>e.context&&(0,m.gR)(e.context.elements.floating,r));t&&!n&&er.current&&t.focus({preventScroll:!0})},[M,V,G,_,U,F]),(0,o.g)(()=>{eo.current=X,el.current=!!V}),(0,o.g)(()=>{X||(et.current=null,Q.current=W)},[X,W]);let ep=null!=s,em=(0,i.K)(e=>{if(!ea.current)return;let t=r.current.indexOf(e.currentTarget);-1!==t&&(ee.current!==t||s!==t)&&(ee.current=t,en(e))}),eR=(0,i.K)(()=>O??_?.nodesRef.current.find(e=>e.id===U)?.context?.dataRef?.current.orientation),eb=(0,i.K)(()=>(0,v.Zb)(r,es.current)),ey=(0,i.K)(e=>{var t;let n,l;if(er.current=!1,eu.current=!0,229===e.which||!ea.current&&e.currentTarget===J.current)return;if(A&&(t=e.key,n=q?t===h.RJ:t===h.eR,l=t===h.il,"both"===L||"horizontal"===L&&D?"Escape"===t:w(L,n,l))){k(e.key,eR())||(0,b.jo)(e),Y.setOpen(!1,(0,f.d)(d.Dq,e.nativeEvent)),(0,a.sb)(G)&&(F?_?.events.emit("virtualfocus",G):G.focus());return}let o=ee.current,u=(0,v.Zb)(r,K),i=(0,v.vB)(r,K);if(Z||("Home"===e.key&&((0,b.jo)(e),ee.current=u,en(e)),"End"===e.key&&((0,b.jo)(e),ee.current=i,en(e))),null!=B){let t=B(e,ee.current,r,L,T,q,K,u,i);if(null!=t&&(ee.current=t,en(e)),"both"===L)return}if(k(e.key,L)){if((0,b.jo)(e),X&&!F&&(0,m.RS)(e.currentTarget.ownerDocument)===e.currentTarget){ee.current=E(e.key,L,q)?u:i,en(e);return}E(e.key,L,q)?T?o>=i?C&&o!==r.current.length?ee.current=-1:(eu.current=!1,ee.current=u):ee.current=(0,v.BF)(r.current,{startingIndex:o,disabledIndices:K}):ee.current=Math.min(i,(0,v.BF)(r.current,{startingIndex:o,disabledIndices:K})):T?o<=u?C&&-1!==o?ee.current=r.current.length:(eu.current=!1,ee.current=i):ee.current=(0,v.BF)(r.current,{startingIndex:o,decrement:!0,disabledIndices:K}):ee.current=Math.max(u,(0,v.BF)(r.current,{startingIndex:o,decrement:!0,disabledIndices:K})),(0,v.du)(r.current,ee.current)&&(ee.current=-1),en(e)}}),ew=n.useMemo(()=>({onFocus(e){eu.current=!0,em(e)},onClick:({currentTarget:e})=>e.focus({preventScroll:!0}),onMouseMove(e){!y(e)&&(eu.current=!0,ei.current=!1,P&&em(e))},onPointerLeave(e){if(!ea.current||!er.current||"touch"===e.pointerType)return;eu.current=!0;let t=e.relatedTarget;if(!(!P||r.current.includes(t))&&ed.current&&(ec.current?.(),ec.current=null,ee.current=-1,en(e),!F)){let e=J.current,t=(0,m.RS)((0,u.R)(e));e&&(0,m.gR)(e,t)&&e.focus({preventScroll:!0})}}}),[em,ea,J,P,r,en,ed,F]),ek=n.useMemo(()=>F&&X&&ep&&{"aria-activedescendant":`${j}-${s}`},[F,X,ep,j,s]),eE=n.useMemo(()=>({"aria-orientation":"both"===L?void 0:L,...!Z?ek:{},onKeyDown(e){if("Tab"===e.key&&e.shiftKey&&X&&!F){let t=(0,m.EW)(e.nativeEvent);if(t&&!(0,m.gR)(J.current,t))return;(0,b.jo)(e),Y.setOpen(!1,(0,f.d)(d.Xn,e.nativeEvent)),(0,a.sb)(G)&&G.focus();return}ey(e)},onPointerMove(e){y(e)||(er.current=!0)}}),[ek,ey,J,L,Z,Y,X,F,G]),ex=n.useMemo(()=>{function e(e){Y.setOpen(!0,(0,f.d)(d.Dq,e.nativeEvent,e.currentTarget))}function t(e){"auto"===W&&(0,b.YF)(e.nativeEvent)&&(Q.current=!F)}function r(e){Q.current=W,"auto"===W&&(0,b.Pg)(e.nativeEvent)&&(Q.current=!0)}return{onKeyDown(t){var r,n;let l=Y.select("open");er.current=!1;let o=t.key.startsWith("Arrow"),u=(r=t.key,n=eR(),w(n,q?r===h.eR:r===h.RJ,r===h.Jd)),i=k(t.key,L),c=(A?u:i)||"Enter"===t.key||""===t.key.trim();if(F&&l)return ey(t);if(l||N||!o){if(c){let e=k(t.key,eR());et.current=A&&e?null:t.key}if(A){u&&((0,b.jo)(t),l?(ee.current=eb(),en(t)):e(t));return}i&&(null!=ef.current&&(ee.current=ef.current),(0,b.jo)(t),!l&&N?e(t):ey(t),l&&en(t))}},onFocus(e){Y.select("open")&&!F&&(ee.current=-1,en(e))},onPointerDown:r,onPointerEnter:r,onMouseDown:t,onClick:t}},[ey,W,eb,A,en,Y,N,L,eR,q,ef,F]),eM=n.useMemo(()=>({...ek,...ex}),[ek,ex]);return n.useMemo(()=>M?{reference:eM,floating:eE,item:ew,trigger:ex}:{},[M,eM,eE,ex,ew])}},52343:(e,t,r)=>{r.d(t,{I:()=>u});var n=r(66758),l=r(75645),o=r(12590);function u(e,t,r,i,c=!0,s){let{registerFieldControl:a}=(0,o.V$)(),f=(0,l.j)(()=>Symbol());(0,n.g)(()=>{let n=f.current;c?a(n,{controlRef:e,getValue:i,id:t,name:s,value:r}):a(n,void 0)},[e,c,i,t,s,a,f,r]),(0,n.g)(()=>{let e=f.current;return()=>{a(e,void 0)}},[a,f])}},53555:(e,t,r)=>{r.d(t,{p:()=>y});var n=r(69266),l=r(74388),o=r(66758),u=r(33914),i=r(66538),c=r(12590),s=r(52343),a=r(49535),f=r(29585),d=r(71508),g=r(54967),v=r(69611),h=r(53402),p=r(27944),m=r(6561);let R=n.forwardRef(function(e,t){let{render:r,className:R,id:b,name:y,value:w,disabled:k=!1,onValueChange:E,defaultValue:x,autoFocus:M=!1,style:S,...C}=e,{state:T,name:A,disabled:q,setTouched:F,setDirty:W,validityData:P,setFocused:N,setFilled:K,validationMode:L,validation:O}=(0,c.V$)(),{clearErrors:j}=(0,a.x)(),I=q||k,$=A??y,B={...T,disabled:I},{labelId:D}=(0,f.H)(),Y=(0,d.l)({id:b});(0,o.g)(()=>{let e=null!=w;O.inputRef.current?.value||e&&""!==w?K(!0):e&&""===w&&K(!1)},[O.inputRef,K,w]);let X=n.useRef(null);(0,o.g)(()=>{M&&X.current===(0,m.RS)((0,u.R)(X.current))&&N(!0)},[M,N]);let[V]=(0,l.q)({controlled:w,default:x,name:"FieldControl",state:"value"}),G=void 0!==w,H=G?V:void 0,z=(0,i.K)(()=>O.inputRef.current?.value);return(0,s.I)(O.inputRef,Y,H,z,!I,y),(0,v.o)("input",e,{ref:[t,X],state:B,props:[{id:Y,disabled:I,name:$,ref:O.inputRef,"aria-labelledby":D,autoFocus:M,...G?{value:H}:{defaultValue:x},onChange(e){let t=e.currentTarget.value;E?.(t,(0,h.d)(p.dv,e.nativeEvent)),W(t!==(P.initialValue??"")),K(""!==t),e.nativeEvent.defaultPrevented||(j($),O.change(t))},onFocus(){N(!0)},onBlur(e){F(!0),N(!1),"onBlur"===L&&O.commit(e.currentTarget.value)},onKeyDown(e){"INPUT"===e.currentTarget.tagName&&"Enter"===e.key&&(F(!0),O.commit(e.currentTarget.value))}},C,e=>O.getValidationProps(I,e)],stateAttributesMapping:g.dc})});var b=r(7962);let y=n.forwardRef(function(e,t){return(0,b.jsx)(R,{ref:t,...e})})},54545:(e,t,r)=>{r.d(t,{q:()=>u});var n=r(69266),l=r(66758),o=r(8028);function u(e={}){let{guess:t,label:r,metadata:i,textRef:c,index:s}=e,{register:a,unregister:f,subscribeMapChange:d,nextIndexRef:g}=(0,o.M)(),v=n.useRef(-1),[h,p]=n.useState(null==s&&t?()=>{if(-1===v.current){let e=g.current;g.current+=1,v.current=e}return v.current}:-1),m=s??h,R=n.useRef(null),b=n.useCallback(e=>{let t=R.current;t&&f(t),R.current=e,e&&a(e,{metadata:i??null,index:s??null,label:r,textRef:c})},[s,a,f,i,r,c]);return(0,l.g)(()=>{if(null==s)return d(e=>{let t=R.current?e.get(R.current)?.index:null;null!=t&&p(t)})},[s,d]),{ref:b,index:m}}},54967:(e,t,r)=>{r.d(t,{ZV:()=>n,dc:()=>o,mk:()=>l});let n={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},l={disabled:!1,valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},o={valid:e=>null===e?null:e?{"data-valid":""}:{"data-invalid":""}}},56869:(e,t,r)=>{r.d(t,{n:()=>u});var n=r(69266);let l=n.createContext(void 0),o={disableStyleElements:!1};function u(){return n.useContext(l)??o}},63150:(e,t,r)=>{r.d(t,{p:()=>o});var n=r(48356);let l=0;function o(e,t={}){let{preventScroll:r=!1,sync:u=!1,shouldFocus:i}=t;function c(){(!i||i())&&e?.focus({preventScroll:r})}if(cancelAnimationFrame(l),u)return c(),n.tE;let s=requestAnimationFrame(c);return l=s,()=>{l===s&&(cancelAnimationFrame(s),l=0)}}},63717:(e,t,r)=>{r.d(t,{u:()=>s});var n=r(69266),l=r(75645),o=r(66538),u=r(66758),i=r(8028),c=r(7962);function s(e){let{children:t,elementsRef:r,labelsRef:s,onMapChange:g}=e,v=(0,o.K)(g),[,h]=n.useState(!1),p=(0,l.j)(f).current,m=(0,l.j)(a).current,R=n.useRef(0),b=n.useRef(!0),y=n.useRef([]),w=n.useRef(null),k=(0,o.K)(()=>{b.current||(b.current=!0,h(e=>!e))}),E=(0,o.K)((e,t)=>{m.set(e,t),k()}),x=(0,o.K)(e=>{m.delete(e),k()}),M=(0,o.K)(e=>{let t=new Map;return r.current.length=0,s&&(s.current.length=0),e.forEach(e=>{t.set(e.element,{...e.registration.metadata??{},index:e.index}),r.current[e.index]=e.element,s&&(s.current[e.index]=void 0!==e.registration.label?e.registration.label:e.registration.textRef?.current?.textContent??e.element.textContent)}),R.current=r.current.length,t}),S=(0,o.K)(()=>{var e;let t,r,n,l,[o,u]=(e=m,t=new Set,r=[],n=[],e.forEach((e,l)=>{if(!l.isConnected)return;let o=e.index,u={index:o??-1,element:l,registration:e};null===o?n.push(u):o>=0&&(t.add(o),r.push(u))}),l=0,n.sort((e,t)=>d(e.element,t.element)),n.forEach(e=>{for(;t.has(l);)l+=1;e.index=l,r.push(e),l+=1}),t.size>0&&r.sort((e,t)=>e.index-t.index),[r,n.map(e=>e.element)]),i=M(o);!function(e){if(w.current?.disconnect(),w.current=null,"function"!=typeof MutationObserver||e.length<2)return;let t=new MutationObserver(r=>{if(!function(e){for(let t of e)for(let e=0;e<t.removedNodes.length;e+=1)if(t.removedNodes[e].isConnected)return!0;return!1}(r))return;let n=null;for(let r of e)if(r.isConnected){if(n&&d(n,r)>0){t.disconnect(),k();return}n=r}});w.current=t;let r=new Set;for(let t=1;t<e.length;t+=1){let n=function(e,t){let r=e.parentElement;for(;r&&!r.contains(t);)r=r.parentElement;return r}(e[t-1],e[t]);n&&r.add(n)}r.forEach(e=>t.observe(e,{childList:!0}))}(u),y.current=o,b.current=!1,p.forEach(e=>e(i)),v(i)});(0,u.g)(()=>(b.current||M(y.current),()=>{r.current=[],s&&(s.current=[])}),[r,s,M]),(0,u.g)(()=>{b.current&&S()}),(0,u.g)(()=>()=>{w.current?.disconnect(),b.current=!0},[]);let C=(0,o.K)(e=>(p.add(e),()=>{p.delete(e)})),T=n.useMemo(()=>({register:E,unregister:x,subscribeMapChange:C,nextIndexRef:R}),[E,x,C,R]);return(0,c.jsx)(i.D.Provider,{value:T,children:t})}function a(){return new Map}function f(){return new Set}function d(e,t){return e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1}},65369:(e,t,r)=>{r.d(t,{x:()=>u});var n=r(69266),l=r(66758),o=r(66538);function u(e,t){let r=n.useRef(e),u=(0,o.K)(t);(0,l.g)(()=>{r.current!==e&&u(r.current),r.current=e},[e,u])}},66867:(e,t,r)=>{r.d(t,{Pv:()=>l,Qw:()=>u,XF:()=>o});var n=r(94296);let l=1;function o(e,t){return Math.max(0,e-t)}function u(e,t){if(t<=0)return 0;let r=(0,n.q)(e,0,t),o=t-r,u=r<=l,i=o<=l;return u&&i?r<=o?0:t:u?0:i?t:r}},69738:(e,t,r)=>{r.d(t,{k:()=>d});var n=r(69266),l=r(17399),o=r(34517),u=r(48356),i=r(6561),c=r(22634),s=r(12418),a=r(53402),f=r(27944);function d(e,t={}){let{enabled:r=!0,event:g="click",toggle:v=!0,ignoreMouse:h=!1,stickIfOpen:p=!0,touchOpenDelay:m=0,reason:R=f.Ui}=t,b="rootStore"in e?e.rootStore:e,y=b.context.dataRef,w=n.useRef(void 0),k=(0,l.NR)(),E=(0,o.Z)(),x=n.useMemo(()=>{function e(e,t,r,n){let l=(0,a.d)(R,t,r);e&&"touch"===n&&m>0?E.start(m,()=>{b.setOpen(!0,l)}):b.setOpen(e,l)}function t(e,t,r){let n=y.current.openEvent,l=b.select("domReferenceElement")!==t;return!!e&&!!l||!e||!v||!!n&&!!p&&!r(n.type)}return{onPointerDown(e){w.current=(0,s.Go)(e.pointerType,!0)&&(0,s.Pg)(e.nativeEvent)?"virtual":e.pointerType},onMouseDown(r){let n=w.current,l=r.nativeEvent,o=b.select("open");if(0!==r.button||"click"===g||(0,s.Go)(n,!0)&&h)return;let u=t(o,r.currentTarget,e=>"click"===e||"mousedown"===e),a=(0,i.EW)(l);if((0,c.$u)(a))return void e(u,l,a,n);let f=r.currentTarget;k.request(()=>{e(u,l,f,n)})},onClick(r){if("mousedown-only"===g)return;let n=w.current;if("mousedown"===g&&n){w.current=void 0;return}(0,s.Go)(n,!0)&&h||e(t(b.select("open"),r.currentTarget,e=>"click"===e||"mousedown"===e||"keydown"===e||"keyup"===e),r.nativeEvent,r.currentTarget,n)},onKeyDown(){w.current=void 0}}},[y,g,h,R,b,p,v,k,E,m]);return n.useMemo(()=>r?{reference:x}:u.t0,[r,x])}},71508:(e,t,r)=>{r.d(t,{l:()=>f});var n=r(69266),l=r(66758),o=r(66538),u=r(75645),i=r(10813),c=r(48356),s=r(9542),a=r(29585);function f(e={}){let{id:t,implicit:r=!1,controlRef:d}=e,{controlId:g,registerControlId:v}=(0,a.H)(),h=(0,s.e)(t),p=r?g:void 0,m=(0,u.j)(()=>Symbol()),R=n.useRef(!1),b=n.useRef(null!=t),y=(0,o.K)(()=>{R.current&&v!==c.tE&&(R.current=!1,v(m.current,void 0))});return(0,l.g)(()=>{let e;if(v!==c.tE){if(r){let r=d?.current;e=(0,i.vq)(r)&&null!=r.closest("label")?t??null:p??h}else if(null!=t)b.current=!0,e=t;else{if(!b.current)return void y();e=h}if(void 0===e)return void y();R.current=!0,v(m.current,e)}},[t,d,p,v,r,h,m,y]),n.useEffect(()=>y,[y]),g??h}},73392:(e,t,r)=>{r.d(t,{F:()=>u});var n=r(77694);let l=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,o=n.$,u=(e,t)=>r=>{var n;if((null==t?void 0:t.variants)==null)return o(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:u,defaultVariants:i}=t,c=Object.keys(u).map(e=>{let t=null==r?void 0:r[e],n=null==i?void 0:i[e];if(null===t)return null;let o=l(t)||l(n);return u[e][o]}),s=r&&Object.entries(r).reduce((e,t)=>{let[r,n]=t;return void 0===n||(e[r]=n),e},{});return o(e,c,null==t||null==(n=t.compoundVariants)?void 0:n.reduce((e,t)=>{let{class:r,className:n,...l}=t;return Object.entries(l).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...i,...s}[t]):({...i,...s})[t]===r})?[...e,r,n]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)}},74388:(e,t,r)=>{r.d(t,{q:()=>l});var n=r(69266);function l({controlled:e,default:t,name:r,state:o="value"}){let{current:u}=n.useRef(void 0!==e),[i,c]=n.useState(t),s=n.useCallback(e=>{u||c(e)},[]);return[u?e:i,s]}},86758:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(50735).A)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},90458:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(50735).A)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},94296:(e,t,r)=>{r.d(t,{q:()=>n});function n(e,t=Number.MIN_SAFE_INTEGER,r=Number.MAX_SAFE_INTEGER){return Math.max(t,Math.min(e,r))}},96909:(e,t,r)=>{r.d(t,{G:()=>i});var n=r(69266),l=r(33914),o=r(24960),u=r(66758);function i(e,t,r,i){let[c,s]=n.useState(!1);(0,u.g)(()=>{if(!e||!t||null==r)return void s(!1);let n=(0,l.R)(r).documentElement.clientWidth,o=r.offsetWidth;s(n>0&&o>0&&o>=n-20)},[e,t,r]),(0,o.K)(e&&(!t||c),i)}}}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[990,1002,4426,5142,6099,7313,8489,8772,10307,10904,11361,12037,13384,13671,14998,15081,16408,16958,16988,19590,20726,22430,24768,26994,27680,28227,28819,29492,30779,32807,35269,36727,37040,37204,39956,41106,43024,43844,47357,47758,50999,52734,52772,54822,62842,63876,65584,66288,67069,68524,68732,70223,73425,74797,79200,80783,81834,83870,84530,86637,87955,88977,90448,90745,91446,93007,94896,96362,96819,97411,98167,98522,99146],{93970:()=>{}},_=>{_.O(0,[4904,64444,77358],()=>_(_.s=93970)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[990,1002,4426,5142,6099,7313,8489,8772,10307,10904,11361,12037,13384,13671,14998,15081,16408,16958,16988,19590,20726,22430,24768,26994,27680,28227,28819,29492,30779,32807,35269,36727,37040,37204,39956,41106,43024,43844,47357,47758,50999,52734,52772,54822,62842,63876,65584,66288,67069,68524,68732,70223,73425,74797,79200,80783,81834,83870,84530,86637,87955,88977,90448,90745,91446,93007,94896,96362,96819,97411,98167,98522,99146],{93970:()=>{}},_=>{_.O(0,[4904,64444,77358],()=>_(_.s=93970)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[990,1002,4426,5142,6099,7313,8489,8772,10307,10904,11361,12037,13384,13671,14998,15081,16408,16958,16988,19590,20726,22430,24768,26994,27680,28227,28819,29492,30779,32807,35269,36727,37040,37204,39956,41106,43024,43844,47357,47758,50999,52734,52772,54822,62842,63876,65584,66288,67069,68524,68732,70223,73425,74797,79200,80783,81834,83870,84530,86637,87955,88977,90448,90745,91446,93007,94896,96362,96819,97411,98167,98522,99146],{93970:()=>{}},_=>{_.O(0,[4904,64444,77358],()=>_(_.s=93970)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[990,1002,4426,5142,6099,7313,8489,8772,10307,10904,11361,12037,13384,13671,14998,15081,16408,16958,16988,19590,20726,22430,24768,26994,27680,28227,28819,29492,30779,32807,35269,36727,37040,37204,39956,41106,43024,43844,47357,47758,50999,52734,52772,54822,62842,63876,65584,66288,67069,68524,68732,70223,73425,74797,79200,80783,81834,83870,84530,86637,87955,88977,90448,90745,91446,93007,94896,96362,96819,97411,98167,98522,99146],{93970:()=>{}},_=>{_.O(0,[4904,64444,77358],()=>_(_.s=93970)),_N_E=_.O()}]);