trident-git 0.2.0 → 0.2.2

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 (311) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-path-routes-manifest.json +23 -0
  3. package/.next/build-manifest.json +20 -0
  4. package/.next/export-marker.json +6 -0
  5. package/.next/images-manifest.json +73 -0
  6. package/.next/next-minimal-server.js.nft.json +1 -0
  7. package/.next/next-server.js.nft.json +1 -0
  8. package/.next/package.json +1 -0
  9. package/.next/prerender-manifest.json +282 -0
  10. package/.next/react-loadable-manifest.json +1 -0
  11. package/.next/required-server-files.js +330 -0
  12. package/.next/required-server-files.json +330 -0
  13. package/.next/routes-manifest.json +170 -0
  14. package/.next/server/app/_global-error/page.js +3 -0
  15. package/.next/server/app/_global-error/page.js.nft.json +1 -0
  16. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -0
  17. package/.next/server/app/_global-error.html +2 -0
  18. package/.next/server/app/_global-error.meta +16 -0
  19. package/.next/server/app/_global-error.rsc +12 -0
  20. package/.next/server/app/_global-error.segments/_full.segment.rsc +12 -0
  21. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +5 -0
  22. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +4 -0
  23. package/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
  24. package/.next/server/app/_global-error.segments/_index.segment.rsc +4 -0
  25. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  26. package/.next/server/app/_not-found/page.js +2 -0
  27. package/.next/server/app/_not-found/page.js.nft.json +1 -0
  28. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
  29. package/.next/server/app/_not-found.html +1 -0
  30. package/.next/server/app/_not-found.meta +16 -0
  31. package/.next/server/app/_not-found.rsc +19 -0
  32. package/.next/server/app/_not-found.segments/_full.segment.rsc +19 -0
  33. package/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
  34. package/.next/server/app/_not-found.segments/_index.segment.rsc +8 -0
  35. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
  36. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +4 -0
  37. package/.next/server/app/_not-found.segments/_tree.segment.rsc +6 -0
  38. package/.next/server/app/api/credentials/route.js +1 -0
  39. package/.next/server/app/api/credentials/route.js.nft.json +1 -0
  40. package/.next/server/app/api/credentials/route_client-reference-manifest.js +1 -0
  41. package/.next/server/app/api/custom-scripts/route.js +3 -0
  42. package/.next/server/app/api/custom-scripts/route.js.nft.json +1 -0
  43. package/.next/server/app/api/custom-scripts/route_client-reference-manifest.js +1 -0
  44. package/.next/server/app/api/fs/route.js +1 -0
  45. package/.next/server/app/api/fs/route.js.nft.json +1 -0
  46. package/.next/server/app/api/fs/route_client-reference-manifest.js +1 -0
  47. package/.next/server/app/api/git/action/route.js +1 -0
  48. package/.next/server/app/api/git/action/route.js.nft.json +1 -0
  49. package/.next/server/app/api/git/action/route_client-reference-manifest.js +1 -0
  50. package/.next/server/app/api/git/branches/route.js +1 -0
  51. package/.next/server/app/api/git/branches/route.js.nft.json +1 -0
  52. package/.next/server/app/api/git/branches/route_client-reference-manifest.js +1 -0
  53. package/.next/server/app/api/git/diff/route.js +1 -0
  54. package/.next/server/app/api/git/diff/route.js.nft.json +1 -0
  55. package/.next/server/app/api/git/diff/route_client-reference-manifest.js +1 -0
  56. package/.next/server/app/api/git/log/route.js +1 -0
  57. package/.next/server/app/api/git/log/route.js.nft.json +1 -0
  58. package/.next/server/app/api/git/log/route_client-reference-manifest.js +1 -0
  59. package/.next/server/app/api/git/status/route.js +1 -0
  60. package/.next/server/app/api/git/status/route.js.nft.json +1 -0
  61. package/.next/server/app/api/git/status/route_client-reference-manifest.js +1 -0
  62. package/.next/server/app/api/repos/route.js +1 -0
  63. package/.next/server/app/api/repos/route.js.nft.json +1 -0
  64. package/.next/server/app/api/repos/route_client-reference-manifest.js +1 -0
  65. package/.next/server/app/api/settings/route.js +1 -0
  66. package/.next/server/app/api/settings/route.js.nft.json +1 -0
  67. package/.next/server/app/api/settings/route_client-reference-manifest.js +1 -0
  68. package/.next/server/app/credentials/page.js +4 -0
  69. package/.next/server/app/credentials/page.js.nft.json +1 -0
  70. package/.next/server/app/credentials/page_client-reference-manifest.js +1 -0
  71. package/.next/server/app/credentials.html +1 -0
  72. package/.next/server/app/credentials.meta +15 -0
  73. package/.next/server/app/credentials.rsc +23 -0
  74. package/.next/server/app/credentials.segments/_full.segment.rsc +23 -0
  75. package/.next/server/app/credentials.segments/_head.segment.rsc +6 -0
  76. package/.next/server/app/credentials.segments/_index.segment.rsc +8 -0
  77. package/.next/server/app/credentials.segments/_tree.segment.rsc +6 -0
  78. package/.next/server/app/credentials.segments/credentials/__PAGE__.segment.rsc +9 -0
  79. package/.next/server/app/credentials.segments/credentials.segment.rsc +4 -0
  80. package/.next/server/app/icon.png/route.js +1 -0
  81. package/.next/server/app/icon.png/route.js.nft.json +1 -0
  82. package/.next/server/app/icon.png.meta +1 -0
  83. package/.next/server/app/index.html +1 -0
  84. package/.next/server/app/index.meta +14 -0
  85. package/.next/server/app/index.rsc +20 -0
  86. package/.next/server/app/index.segments/__PAGE__.segment.rsc +6 -0
  87. package/.next/server/app/index.segments/_full.segment.rsc +20 -0
  88. package/.next/server/app/index.segments/_head.segment.rsc +6 -0
  89. package/.next/server/app/index.segments/_index.segment.rsc +8 -0
  90. package/.next/server/app/index.segments/_tree.segment.rsc +6 -0
  91. package/.next/server/app/page.js +2 -0
  92. package/.next/server/app/page.js.nft.json +1 -0
  93. package/.next/server/app/page_client-reference-manifest.js +1 -0
  94. package/.next/server/app/workspace/changes/page.js +4 -0
  95. package/.next/server/app/workspace/changes/page.js.nft.json +1 -0
  96. package/.next/server/app/workspace/changes/page_client-reference-manifest.js +1 -0
  97. package/.next/server/app/workspace/changes.html +1 -0
  98. package/.next/server/app/workspace/changes.meta +16 -0
  99. package/.next/server/app/workspace/changes.rsc +26 -0
  100. package/.next/server/app/workspace/changes.segments/_full.segment.rsc +26 -0
  101. package/.next/server/app/workspace/changes.segments/_head.segment.rsc +6 -0
  102. package/.next/server/app/workspace/changes.segments/_index.segment.rsc +8 -0
  103. package/.next/server/app/workspace/changes.segments/_tree.segment.rsc +7 -0
  104. package/.next/server/app/workspace/changes.segments/workspace/changes/__PAGE__.segment.rsc +10 -0
  105. package/.next/server/app/workspace/changes.segments/workspace/changes.segment.rsc +4 -0
  106. package/.next/server/app/workspace/changes.segments/workspace.segment.rsc +7 -0
  107. package/.next/server/app/workspace/custom-scripts/page.js +2 -0
  108. package/.next/server/app/workspace/custom-scripts/page.js.nft.json +1 -0
  109. package/.next/server/app/workspace/custom-scripts/page_client-reference-manifest.js +1 -0
  110. package/.next/server/app/workspace/custom-scripts.html +1 -0
  111. package/.next/server/app/workspace/custom-scripts.meta +16 -0
  112. package/.next/server/app/workspace/custom-scripts.rsc +25 -0
  113. package/.next/server/app/workspace/custom-scripts.segments/_full.segment.rsc +25 -0
  114. package/.next/server/app/workspace/custom-scripts.segments/_head.segment.rsc +6 -0
  115. package/.next/server/app/workspace/custom-scripts.segments/_index.segment.rsc +8 -0
  116. package/.next/server/app/workspace/custom-scripts.segments/_tree.segment.rsc +6 -0
  117. package/.next/server/app/workspace/custom-scripts.segments/workspace/custom-scripts/__PAGE__.segment.rsc +9 -0
  118. package/.next/server/app/workspace/custom-scripts.segments/workspace/custom-scripts.segment.rsc +4 -0
  119. package/.next/server/app/workspace/custom-scripts.segments/workspace.segment.rsc +7 -0
  120. package/.next/server/app/workspace/history/page.js +2 -0
  121. package/.next/server/app/workspace/history/page.js.nft.json +1 -0
  122. package/.next/server/app/workspace/history/page_client-reference-manifest.js +1 -0
  123. package/.next/server/app/workspace/history.html +1 -0
  124. package/.next/server/app/workspace/history.meta +16 -0
  125. package/.next/server/app/workspace/history.rsc +26 -0
  126. package/.next/server/app/workspace/history.segments/_full.segment.rsc +26 -0
  127. package/.next/server/app/workspace/history.segments/_head.segment.rsc +6 -0
  128. package/.next/server/app/workspace/history.segments/_index.segment.rsc +8 -0
  129. package/.next/server/app/workspace/history.segments/_tree.segment.rsc +7 -0
  130. package/.next/server/app/workspace/history.segments/workspace/history/__PAGE__.segment.rsc +10 -0
  131. package/.next/server/app/workspace/history.segments/workspace/history.segment.rsc +4 -0
  132. package/.next/server/app/workspace/history.segments/workspace.segment.rsc +7 -0
  133. package/.next/server/app/workspace/page.js +2 -0
  134. package/.next/server/app/workspace/page.js.nft.json +1 -0
  135. package/.next/server/app/workspace/page_client-reference-manifest.js +1 -0
  136. package/.next/server/app/workspace/settings/page.js +2 -0
  137. package/.next/server/app/workspace/settings/page.js.nft.json +1 -0
  138. package/.next/server/app/workspace/settings/page_client-reference-manifest.js +1 -0
  139. package/.next/server/app/workspace/settings.html +1 -0
  140. package/.next/server/app/workspace/settings.meta +16 -0
  141. package/.next/server/app/workspace/settings.rsc +25 -0
  142. package/.next/server/app/workspace/settings.segments/_full.segment.rsc +25 -0
  143. package/.next/server/app/workspace/settings.segments/_head.segment.rsc +6 -0
  144. package/.next/server/app/workspace/settings.segments/_index.segment.rsc +8 -0
  145. package/.next/server/app/workspace/settings.segments/_tree.segment.rsc +6 -0
  146. package/.next/server/app/workspace/settings.segments/workspace/settings/__PAGE__.segment.rsc +9 -0
  147. package/.next/server/app/workspace/settings.segments/workspace/settings.segment.rsc +4 -0
  148. package/.next/server/app/workspace/settings.segments/workspace.segment.rsc +7 -0
  149. package/.next/server/app/workspace/stashes/page.js +2 -0
  150. package/.next/server/app/workspace/stashes/page.js.nft.json +1 -0
  151. package/.next/server/app/workspace/stashes/page_client-reference-manifest.js +1 -0
  152. package/.next/server/app/workspace/stashes.html +1 -0
  153. package/.next/server/app/workspace/stashes.meta +16 -0
  154. package/.next/server/app/workspace/stashes.rsc +26 -0
  155. package/.next/server/app/workspace/stashes.segments/_full.segment.rsc +26 -0
  156. package/.next/server/app/workspace/stashes.segments/_head.segment.rsc +6 -0
  157. package/.next/server/app/workspace/stashes.segments/_index.segment.rsc +8 -0
  158. package/.next/server/app/workspace/stashes.segments/_tree.segment.rsc +7 -0
  159. package/.next/server/app/workspace/stashes.segments/workspace/stashes/__PAGE__.segment.rsc +10 -0
  160. package/.next/server/app/workspace/stashes.segments/workspace/stashes.segment.rsc +4 -0
  161. package/.next/server/app/workspace/stashes.segments/workspace.segment.rsc +7 -0
  162. package/.next/server/app/workspace.html +1 -0
  163. package/.next/server/app/workspace.meta +15 -0
  164. package/.next/server/app/workspace.rsc +26 -0
  165. package/.next/server/app/workspace.segments/_full.segment.rsc +26 -0
  166. package/.next/server/app/workspace.segments/_head.segment.rsc +6 -0
  167. package/.next/server/app/workspace.segments/_index.segment.rsc +8 -0
  168. package/.next/server/app/workspace.segments/_tree.segment.rsc +7 -0
  169. package/.next/server/app/workspace.segments/workspace/__PAGE__.segment.rsc +10 -0
  170. package/.next/server/app/workspace.segments/workspace.segment.rsc +7 -0
  171. package/.next/server/app-paths-manifest.json +23 -0
  172. package/.next/server/chunks/116.js +1 -0
  173. package/.next/server/chunks/170.js +1 -0
  174. package/.next/server/chunks/309.js +6 -0
  175. package/.next/server/chunks/356.js +1 -0
  176. package/.next/server/chunks/392.js +1 -0
  177. package/.next/server/chunks/443.js +37 -0
  178. package/.next/server/chunks/445.js +22 -0
  179. package/.next/server/chunks/471.js +13 -0
  180. package/.next/server/chunks/557.js +5 -0
  181. package/.next/server/chunks/680.js +1 -0
  182. package/.next/server/chunks/739.js +5 -0
  183. package/.next/server/chunks/781.js +1 -0
  184. package/.next/server/chunks/813.js +1 -0
  185. package/.next/server/chunks/816.js +13 -0
  186. package/.next/server/functions-config-manifest.json +6 -0
  187. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  188. package/.next/server/middleware-build-manifest.js +1 -0
  189. package/.next/server/middleware-manifest.json +6 -0
  190. package/.next/server/middleware-react-loadable-manifest.js +1 -0
  191. package/.next/server/next-font-manifest.js +1 -0
  192. package/.next/server/next-font-manifest.json +1 -0
  193. package/.next/server/pages/404.html +1 -0
  194. package/.next/server/pages/500.html +2 -0
  195. package/.next/server/pages-manifest.json +4 -0
  196. package/.next/server/server-reference-manifest.js +1 -0
  197. package/.next/server/server-reference-manifest.json +1 -0
  198. package/.next/server/webpack-runtime.js +1 -0
  199. package/.next/static/VTWJwhFJd5VcC6GP5bbli/_buildManifest.js +1 -0
  200. package/.next/static/VTWJwhFJd5VcC6GP5bbli/_ssgManifest.js +1 -0
  201. package/.next/static/chunks/131-6237c77d708182b1.js +1 -0
  202. package/.next/static/chunks/147-d4cb3e03218d75df.js +6 -0
  203. package/.next/static/chunks/176-b068120641913226.js +1 -0
  204. package/.next/static/chunks/200-3664e65687e716a2.js +1 -0
  205. package/.next/static/chunks/26-d93e82c9c09ff972.js +1 -0
  206. package/.next/static/chunks/4bd1b696-096d35a2bd1da3af.js +1 -0
  207. package/.next/static/chunks/500-5d45efbf86b8d36e.js +1 -0
  208. package/.next/static/chunks/772-b39107b40c31b6b6.js +3 -0
  209. package/.next/static/chunks/785-e6d755147ff87934.js +1 -0
  210. package/.next/static/chunks/790-3e8fa6e595d97940.js +6 -0
  211. package/.next/static/chunks/794-37dad9bbc14b04b8.js +2 -0
  212. package/.next/static/chunks/841-4d865378216d36eb.js +13 -0
  213. package/.next/static/chunks/app/_global-error/page-9eb8a19109bbd711.js +1 -0
  214. package/.next/static/chunks/app/_not-found/page-5bea07380837254f.js +1 -0
  215. package/.next/static/chunks/app/api/credentials/route-9eb8a19109bbd711.js +1 -0
  216. package/.next/static/chunks/app/api/custom-scripts/route-9eb8a19109bbd711.js +1 -0
  217. package/.next/static/chunks/app/api/fs/route-9eb8a19109bbd711.js +1 -0
  218. package/.next/static/chunks/app/api/git/action/route-9eb8a19109bbd711.js +1 -0
  219. package/.next/static/chunks/app/api/git/branches/route-9eb8a19109bbd711.js +1 -0
  220. package/.next/static/chunks/app/api/git/diff/route-9eb8a19109bbd711.js +1 -0
  221. package/.next/static/chunks/app/api/git/log/route-9eb8a19109bbd711.js +1 -0
  222. package/.next/static/chunks/app/api/git/status/route-9eb8a19109bbd711.js +1 -0
  223. package/.next/static/chunks/app/api/repos/route-9eb8a19109bbd711.js +1 -0
  224. package/.next/static/chunks/app/api/settings/route-9eb8a19109bbd711.js +1 -0
  225. package/.next/static/chunks/app/credentials/page-23c1807ad9f68a40.js +1 -0
  226. package/.next/static/chunks/app/layout-a06241c385e50ae0.js +1 -0
  227. package/.next/static/chunks/app/page-c8404790f5191fd7.js +1 -0
  228. package/.next/static/chunks/app/workspace/changes/page-8cca17f80e66f534.js +3 -0
  229. package/.next/static/chunks/app/workspace/custom-scripts/page-ee24b9dd7779244f.js +1 -0
  230. package/.next/static/chunks/app/workspace/history/page-b7017fea285c804c.js +1 -0
  231. package/.next/static/chunks/app/workspace/layout-cb86c00fdcd8db08.js +1 -0
  232. package/.next/static/chunks/app/workspace/page-21211acc90c08509.js +1 -0
  233. package/.next/static/chunks/app/workspace/settings/page-7ccb58ece31492e9.js +1 -0
  234. package/.next/static/chunks/app/workspace/stashes/page-0e1b8304c4b0f4f3.js +1 -0
  235. package/.next/static/chunks/framework-75892d61b920805f.js +1 -0
  236. package/.next/static/chunks/main-app-221e1b945693a142.js +1 -0
  237. package/.next/static/chunks/main-f1d55fffd3cc9809.js +5 -0
  238. package/.next/static/chunks/next/dist/client/components/builtin/app-error-9eb8a19109bbd711.js +1 -0
  239. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-9eb8a19109bbd711.js +1 -0
  240. package/.next/static/chunks/next/dist/client/components/builtin/global-error-f2a2c324f3740ed8.js +1 -0
  241. package/.next/static/chunks/next/dist/client/components/builtin/not-found-9eb8a19109bbd711.js +1 -0
  242. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-9eb8a19109bbd711.js +1 -0
  243. package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  244. package/.next/static/chunks/webpack-7dec27dc3bfe207a.js +1 -0
  245. package/.next/static/css/36968b90b2339533.css +1 -0
  246. package/.next/static/css/c56c0e57397a3a60.css +1 -0
  247. package/.next/static/css/de70bee13400563f.css +1 -0
  248. package/.next/static/media/4cf2300e9c8272f7-s.p.woff2 +0 -0
  249. package/.next/static/media/747892c23ea88013-s.woff2 +0 -0
  250. package/.next/static/media/8d697b304b401681-s.woff2 +0 -0
  251. package/.next/static/media/93f479601ee12b01-s.p.woff2 +0 -0
  252. package/.next/static/media/9610d9e46709d722-s.woff2 +0 -0
  253. package/.next/static/media/ba015fad6dcf6784-s.woff2 +0 -0
  254. package/README.md +2 -0
  255. package/bin/trident-git.mjs +9 -11
  256. package/{next.config.ts → next.config.mjs} +7 -8
  257. package/package.json +8 -6
  258. package/eslint.config.mjs +0 -18
  259. package/postcss.config.mjs +0 -7
  260. package/src/app/api/credentials/route.ts +0 -113
  261. package/src/app/api/custom-scripts/route.ts +0 -203
  262. package/src/app/api/fs/route.ts +0 -75
  263. package/src/app/api/git/action/route.ts +0 -383
  264. package/src/app/api/git/branches/route.ts +0 -20
  265. package/src/app/api/git/diff/route.ts +0 -104
  266. package/src/app/api/git/log/route.ts +0 -28
  267. package/src/app/api/git/status/route.ts +0 -28
  268. package/src/app/api/repos/route.ts +0 -84
  269. package/src/app/api/settings/route.ts +0 -37
  270. package/src/app/credentials/page.tsx +0 -408
  271. package/src/app/globals.css +0 -109
  272. package/src/app/layout.tsx +0 -38
  273. package/src/app/page.tsx +0 -10
  274. package/src/app/providers.tsx +0 -21
  275. package/src/app/workspace/changes/page.tsx +0 -27
  276. package/src/app/workspace/custom-scripts/page.tsx +0 -247
  277. package/src/app/workspace/history/page.tsx +0 -27
  278. package/src/app/workspace/layout.tsx +0 -26
  279. package/src/app/workspace/page.tsx +0 -27
  280. package/src/app/workspace/settings/page.tsx +0 -233
  281. package/src/app/workspace/stashes/page.tsx +0 -395
  282. package/src/components/command-palette.tsx +0 -178
  283. package/src/components/context-menu.tsx +0 -200
  284. package/src/components/fs-browser.tsx +0 -154
  285. package/src/components/git/diff-view.tsx +0 -137
  286. package/src/components/git/git-graph.tsx +0 -489
  287. package/src/components/git/grouped-diff-viewer.tsx +0 -332
  288. package/src/components/git/history-view.tsx +0 -4862
  289. package/src/components/git/image-diff-view.tsx +0 -342
  290. package/src/components/git/status-view.tsx +0 -597
  291. package/src/components/home-settings-modal.tsx +0 -192
  292. package/src/components/layout/sidebar.tsx +0 -256
  293. package/src/components/repo-list.tsx +0 -206
  294. package/src/components/theme-toggle.tsx +0 -37
  295. package/src/components/toaster.tsx +0 -36
  296. package/src/components/workspace-repo-open-tracker.tsx +0 -39
  297. package/src/hooks/use-credentials.ts +0 -123
  298. package/src/hooks/use-escape-dismiss.ts +0 -72
  299. package/src/hooks/use-git.ts +0 -448
  300. package/src/hooks/use-toast.ts +0 -280
  301. package/src/hooks/use-workspace-title.ts +0 -23
  302. package/src/lib/api-utils.ts +0 -24
  303. package/src/lib/branch-colors.ts +0 -98
  304. package/src/lib/credentials.ts +0 -404
  305. package/src/lib/git.ts +0 -1510
  306. package/src/lib/graph-utils.ts +0 -253
  307. package/src/lib/store.ts +0 -145
  308. package/src/lib/types.ts +0 -95
  309. package/src/lib/utils.ts +0 -266
  310. package/tsconfig.json +0 -34
  311. /package/{src/app/icon.png → .next/server/app/icon.png.body} +0 -0
@@ -0,0 +1,6 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[147],{302:(e,a,s)=>{s.d(a,{v:()=>o});var t=s(2115);let l=[],n=0,r=!1;function i(e){if("Escape"!==e.key)return;let a=l[l.length-1];a&&(e.preventDefault(),a.onEscape())}function o(e,a){let s=(0,t.useRef)(a);(0,t.useEffect)(()=>{s.current=a},[a]),(0,t.useEffect)(()=>{if(!e)return;let a=++n;return l.push({id:a,onEscape:()=>s.current()}),!r&&"u">typeof document&&(document.addEventListener("keydown",i),r=!0),()=>{let e=l.findIndex(e=>e.id===a);e>=0&&l.splice(e,1),r&&"u">typeof document&&!(l.length>0)&&(document.removeEventListener("keydown",i),r=!1)}},[e])}},7147:(e,a,s)=>{s.d(a,{u:()=>P});var t=s(5155),l=s(696),n=s(2115);function r(e){let a=0x811c9dc5;for(let s=0;s<e.length;s++)a^=e.charCodeAt(s),a=Math.imul(a,0x1000193);return a>>>0}var i=s(8599);function o({children:e,items:a,containerClassName:s="w-full"}){let[l,r]=(0,n.useState)(!1),[o,c]=(0,n.useState)({x:0,y:0}),d=(0,n.useRef)(null),h=(0,n.useRef)(null);(0,n.useEffect)(()=>{if(!l)return;let e=e=>{d.current&&!d.current.contains(e.target)&&h.current&&!h.current.contains(e.target)&&r(!1)},a=e=>{"Escape"===e.key&&r(!1)};return setTimeout(()=>{document.addEventListener("click",e),document.addEventListener("contextmenu",e),document.addEventListener("keydown",a)},0),()=>{document.removeEventListener("click",e),document.removeEventListener("contextmenu",e),document.removeEventListener("keydown",a)}},[l]),(0,n.useEffect)(()=>{if(!l||!d.current)return;let e=d.current;requestAnimationFrame(()=>{let s=document.createElement("div");s.style.position="absolute",s.style.visibility="hidden",s.style.whiteSpace="nowrap",s.style.pointerEvents="none";let t=window.getComputedStyle(e);s.style.fontSize=t.fontSize,s.style.fontFamily=t.fontFamily,s.style.fontWeight=t.fontWeight,s.style.padding="0.5rem 0.75rem",s.style.boxSizing="border-box",document.body.appendChild(s);let l=0;a.forEach(e=>{s.textContent=e.label;let a=s.getBoundingClientRect().width;a>l&&(l=a)}),document.body.removeChild(s);let n=Math.max(l+32,280);e.style.width=`${n}px`,e.style.minWidth=`${n}px`;let r=e.getBoundingClientRect(),i=window.innerWidth,c=window.innerHeight,d=o.x,h=o.y;r.right>i&&(d=i-r.width-10),d<10&&(d=10),r.bottom>c&&(h=c-r.height-10),h<10&&(h=10),(d!==o.x||h!==o.y)&&(e.style.left=`${d}px`,e.style.top=`${h}px`)})},[l,o,a]);let m=(e,a)=>{let s=!!e.children?.length;return(0,t.jsxs)("li",{className:(0,i.cn)(s&&"relative group/submenu"),children:[(0,t.jsxs)("a",{onClick:a=>{a.stopPropagation(),e.disabled||s||(e.onClick?.(),r(!1))},className:(0,i.cn)("whitespace-nowrap",e.danger&&"text-error",e.disabled&&"opacity-40 pointer-events-none",s&&"flex items-center justify-between gap-3"),children:[(0,t.jsx)("span",{children:e.labelNode??e.label}),s&&(0,t.jsx)("i",{className:"iconoir-nav-arrow-right text-[12px]","aria-hidden":"true"})]}),s&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"hidden group-hover/submenu:block absolute left-full top-0 h-full w-3"}),(0,t.jsx)("ul",{className:"hidden group-hover/submenu:block absolute left-[calc(100%-1px)] top-0 menu !m-0 p-2 shadow-lg bg-base-100 rounded-box border border-base-200 min-w-[220px] z-[10000] [&:before]:hidden",children:e.children.map((e,s)=>m(e,`${a}-${s}`))})]})]},a)};return(0,t.jsxs)("div",{ref:h,className:s,onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),c({x:e.clientX,y:e.clientY}),r(!0)},children:[e,l&&(0,t.jsx)("ul",{ref:d,className:"fixed z-[9999] menu p-2 shadow-lg bg-base-100 rounded-box border border-base-200",style:{left:`${o.x}px`,top:`${o.y}px`},children:a.map((e,a)=>m(e,`menu-${a}`))})]})}function c({text:e,searchQuery:a}){if(!a||!e)return(0,t.jsx)(t.Fragment,{children:e});let s=a.toLowerCase(),l=e.toLowerCase(),n=[],r=0,i=l.indexOf(s);for(;-1!==i;)i>r&&n.push({text:e.slice(r,i),highlighted:!1}),n.push({text:e.slice(i,i+s.length),highlighted:!0}),r=i+s.length,i=l.indexOf(s,r);return(r<e.length&&n.push({text:e.slice(r),highlighted:!1}),0===n.length)?(0,t.jsx)(t.Fragment,{children:e}):(0,t.jsx)(t.Fragment,{children:n.map((e,a)=>e.highlighted?(0,t.jsx)("mark",{className:"bg-warning text-warning-content rounded-sm px-0.5",children:e.text},a):(0,t.jsx)("span",{children:e.text},a))})}let d=(0,n.forwardRef)(function({commits:e,onSelectCommit:a,onResetToCommit:s,onRevertCommit:l,onCreateTag:d,onCherryPickCommit:h,onCherryPickSelectedCommits:m,onRewordCommit:u,selectedHash:x,selectedHashes:p,onEndReached:b,isLoadingMore:f,currentBranch:g,hiddenBranches:j,localBranches:N=[],trackingInfo:y,getBranchTagContextMenuItems:k},v){let w=(0,n.useCallback)(e=>e.startsWith("refs/heads/")?e.slice(11):e.startsWith("refs/remotes/")?e.slice(13):e.startsWith("remotes/")?e.slice(8):e,[]),C=(0,n.useCallback)(e=>e.startsWith("tag:")?e.replace(/^tag:\s*/,"").trim():e,[]),S=(0,n.useMemo)(()=>(function(e,a={}){let s=[],t=new Set(a.localBranches??[]),l=[],n=[],i=[];function o(){for(let e=0;e<l.length;e++)if(null===l[e])return e;return l.length}function c(e){let a,s=i[e],t=s?(a=r(s),`hsl(${a%360} 82% 52%)`):n[e]??`hsl(${47*e%360} 78% 56%)`;return n[e]=t,t}return e.forEach((e,a)=>{var r;let d=l.indexOf(e.hash);for(-1===d&&(d=o());l.length<=d;)l.push(null),i.push(null),n.push(void 0);let h=function(e,a){if(0===e.length)return null;let s=e.find(e=>a.has(e));return s||e[0]}((r=e.refs)?r.replace(/^\s*\((.*)\)\s*$/,"$1").split(",").map(e=>e.trim()).filter(Boolean).map(e=>e.replace(/^HEAD\s*->\s*/,"").trim()).map(e=>e.startsWith("refs/heads/")?e.slice(11):e.startsWith("refs/remotes/")?e.slice(13):e.startsWith("remotes/")?e.slice(8):e).filter(e=>!e.startsWith("tag:")).filter(e=>"HEAD"!==e).filter(e=>!/\/HEAD$/.test(e)):[],t);if(h){let e=function(e,a){let s,t;if(a.has(e))return e;let l=-1===(t=(s=e.startsWith("remotes/")?e.slice(8):e).indexOf("/"))?null:s.slice(t+1);return l&&a.has(l)?l:e}(h,t);(function(e,a,s){return!a||s.has(e)&&!s.has(a)})(e,i[d],t)&&(i[d]=e)}let m=c(d),u={...e,x:d,y:a,color:m,paths:[],isMerge:e.parents.length>1};for(let e=0;e<l.length;e++)e!==d&&null!==l[e]&&u.paths.push({x1:e,y1:a,x2:e,y2:a+1,color:c(e),type:"straight"});l[d]=null;let x=e.parents;if(x.length>0){let e=x[0],s=l.indexOf(e);-1!==s?u.paths.push({x1:d,y1:a,x2:s,y2:a+1,color:m,type:"merge"}):(l[d]=e,u.paths.push({x1:d,y1:a,x2:d,y2:a+1,color:m,type:"straight"}));for(let e=1;e<x.length;e++){let s=x[e],t=l.indexOf(s);if(-1!==t)u.paths.push({x1:d,y1:a,x2:t,y2:a+1,color:c(t),type:"fork"});else{let e=o();for(;l.length<=e;)l.push(null),i.push(null),n.push(void 0);l[e]=s,u.paths.push({x1:d,y1:a,x2:e,y2:a+1,color:c(e),type:"fork"})}}}null===l[d]&&(i[d]=null,n[d]=void 0),s.push(u)}),s})(e,{localBranches:N}),[e,N]),R=(0,n.useRef)(null),$=(0,n.useRef)(null),[E,B]=(0,n.useState)(!1),[M,P]=(0,n.useState)("");(0,n.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&"f"===e.key&&(e.preventDefault(),B(!0),setTimeout(()=>$.current?.focus(),0)),"Escape"===e.key&&E&&(B(!1),P(""))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[E]);let F=(0,n.useCallback)(()=>{B(!1),P("")},[]);if((0,n.useImperativeHandle)(v,()=>({scrollToCommit:e=>{if(!S||0===S.length)return!1;let a=S.findIndex(a=>a.hash===e);if(-1===a)return!1;if(R.current){let e=24*a-R.current.clientHeight/2+12;R.current.scrollTop=Math.max(0,e)}return!0}}),[S]),!S||0===S.length)return null;let D=(Math.max(...S.map(e=>e.x),0)+1)*12+20,T=24*S.length;return(0,t.jsxs)("div",{className:"flex flex-col h-full bg-base-100 overflow-hidden font-mono text-sm select-none",children:[E&&(0,t.jsxs)("div",{className:"sticky top-0 z-30 bg-base-100 border-b border-base-300 px-2 py-2 flex items-center gap-2",children:[(0,t.jsx)("span",{className:"opacity-50",children:"\uD83D\uDD0D"}),(0,t.jsx)("input",{ref:$,type:"text",placeholder:"Search in commits...",value:M,onChange:e=>P(e.target.value),className:"input input-bordered input-sm flex-1 text-sm",autoFocus:!0}),(0,t.jsx)("div",{className:"tooltip tooltip-left z-50","data-tip":"Close search (Esc)",children:(0,t.jsx)("button",{onClick:F,className:"btn btn-ghost btn-sm btn-square",children:"✖️"})})]}),(0,t.jsx)("div",{className:"flex-1 overflow-auto h-full max-w-full px-2",onScroll:e=>{let{scrollTop:a,clientHeight:s,scrollHeight:t}=e.currentTarget;t-a-s<100&&b?.()},ref:R,children:(0,t.jsxs)("div",{className:"relative min-w-full",style:{height:T},children:[(0,t.jsxs)("svg",{width:D,height:T,className:"absolute top-0 left-0 pointer-events-none z-10",children:[S.map(e=>(0,t.jsx)("g",{children:e.paths.map((e,a)=>{let s=12*e.x1+6,l=24*e.y1+12,n=12*e.x2+6,r=24*e.y2+12,i="";if("straight"===e.type)i=`M ${s} ${l} L ${n} ${r}`;else{let e=l+12,a=r-12;i=`M ${s} ${l} C ${s} ${e}, ${n} ${a}, ${n} ${r}`}return(0,t.jsx)("path",{d:i,stroke:e.color,strokeWidth:2,fill:"none",strokeLinecap:"round"},a)})},e.hash)),S.map(e=>(0,t.jsx)("circle",{cx:12*e.x+6,cy:24*e.y+12,r:3,fill:e.color,stroke:e.color,strokeWidth:2},`dot-${e.hash}`))]}),(0,t.jsxs)("div",{style:{width:"100%"},children:[S.map(e=>{let n=p?p.has(e.hash):x===e.hash,b=p?.size??+!!x,f=[{label:"Reset to here",onClick:()=>s?.(e.hash)}];if(l&&f.push({label:"Revert commit",onClick:()=>l(e.hash,e.message)}),d&&f.push({label:"Create tag",onClick:()=>d(e.hash)}),h&&f.push({label:"Cherry-pick commit",onClick:()=>h(e.hash,e.message)}),m&&b>1&&n&&f.push({label:`Cherry-pick ${b} selected commits`,onClick:m}),u&&N&&N.length>0){let a=e.refs?e.refs.replace(/[()]/g,"").split(",").map(e=>e.trim()):[],s=null;for(let e of a){let a=e.replace(/^HEAD\s*->\s*/,"");if(N.includes(a)&&(s=a,g&&a===g))break}s&&f.push({label:"Reword commit",onClick:()=>u(e.hash,e.message,e.body??"",s)})}let v=(()=>{if(!e.refs)return[];let a=e.refs.replace(/^\s*\((.*)\)\s*$/,"$1").split(",").map(e=>{let a=e.startsWith("HEAD -> "),s=w(e.replace(/^HEAD\s*->\s*/,"").trim());return{raw:e,name:s,isHead:a}}),s=[],t=new Set,l=e=>j&&(j.has(e)||j.has(`remotes/${e}`));return a.forEach((e,n)=>{if(!t.has(n)&&N.includes(e.name)&&!l(e.name)){let l=y?.[e.name];if(l&&l.upstream){let r=w(l.upstream.trim()),i=new Set([r,w(`remotes/${r}`),w(`refs/remotes/${r}`)]),o=a.findIndex((e,a)=>a!==n&&!t.has(a)&&i.has(e.name));if(-1!==o){let l=a[o],i=r.split("/")[0];s.push({displayName:`${e.name} (${i})`,primaryRef:e.name,secondaryRef:l.name,isHead:e.isHead}),t.add(n),t.add(o);return}}}}),a.forEach((e,a)=>{!t.has(a)&&(l(e.name)||s.push({displayName:C(e.name),primaryRef:e.name,isHead:e.isHead}))}),s})();return(0,t.jsx)(o,{items:f,children:(0,t.jsxs)("div",{className:(0,i.cn)("flex items-center hover:bg-base-200 border-b border-base-200 last:border-0 cursor-pointer transition-colors text-xs",n&&"bg-primary/10"),style:{height:24},onClick:s=>a?.(e.hash,{isMultiSelect:s.metaKey||s.ctrlKey,isRangeSelect:s.shiftKey}),children:[(0,t.jsx)("div",{style:{width:D,flexShrink:0}}),(0,t.jsxs)("div",{className:"flex flex-1 gap-4 overflow-hidden pr-4 items-center",children:[(0,t.jsxs)("div",{className:"flex-1 truncate flex items-center gap-2",children:[v.map((e,a)=>{let s=g&&(e.primaryRef===g||e.isHead&&e.primaryRef===g),l=e.primaryRef.startsWith("tag:")?{textColor:"#374151",backgroundColor:"#e5e7eb"}:function(e){let a,s,t,l,n,i,o,c,d,h=r(e),m=h%360,u=72+(h>>>9)%20,x=84+(h>>>17)%8,p=1.05/((d=function({r:e,g:a,b:s}){let t=e=>{let a=e/255;return a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4)};return .2126*t(e)+.7152*t(a)+.0722*t(s)}((s=u/100*(1-Math.abs(2*(a=x/100)-1)),l=s*(1-Math.abs((t=m/60)%2-1)),n=0,i=0,o=0,t>=0&&t<1?(n=s,i=l):t>=1&&t<2?(n=l,i=s):t>=2&&t<3?(i=s,o=l):t>=3&&t<4?(i=l,o=s):t>=4&&t<5?(n=l,o=s):(n=s,o=l),{r:Math.round((n+(c=a-s/2))*255),g:Math.round((i+c)*255),b:Math.round((o+c)*255)})))+.05)>=(d+.05)/.05?"#ffffff":"#111827";return{backgroundColor:`hsl(${m} ${u}% ${x}%)`,textColor:p}}(e.primaryRef),n=(0,t.jsx)("span",{className:(0,i.cn)("text-[10px] px-1.5 rounded-full whitespace-nowrap shrink-0",s&&"font-bold"),style:{color:l.textColor,backgroundColor:l.backgroundColor},title:e.displayName,children:(0,t.jsx)(c,{text:e.displayName,searchQuery:M})}),d=k?.(e.primaryRef)||[];return 0===d.length?(0,t.jsx)("span",{className:"shrink-0",children:n},a):(0,t.jsx)(o,{items:d,containerClassName:"inline-flex shrink-0",children:n},a)}),(0,t.jsx)("span",{className:(0,i.cn)("truncate min-w-0 max-w-[600px]",n?"font-semibold":""),title:e.message,children:(0,t.jsx)(c,{text:e.message,searchQuery:M})})]}),(0,t.jsx)("div",{className:"w-32 truncate opacity-70 text-right",children:(0,t.jsx)(c,{text:e.author_name,searchQuery:M})}),(0,t.jsx)("div",{className:"w-20 truncate opacity-50 font-mono text-right",children:(0,t.jsx)(c,{text:e.hash.substring(0,7),searchQuery:M})}),(0,t.jsx)("div",{className:"w-32 truncate opacity-70 text-right",children:new Date(e.date).toLocaleString(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})})]})]})},e.hash)}),f&&(0,t.jsxs)("div",{className:"flex items-center justify-center py-8 border-b border-base-300",children:[(0,t.jsx)("span",{className:"loading loading-spinner text-base-content/50"}),(0,t.jsx)("span",{className:"ml-2 text-sm opacity-70",children:"Loading more commits..."})]})]})]})})]})});var h=s(460),m=s(6162),u=s(4254),x=s(302),p=s(6695);function b(e){return Math.min(Math.max(e,100),900)}function f(e){return Math.min(Math.max(e,.15),.75)}async function g(e){try{return await navigator.clipboard.writeText(e),!0}catch{let a=document.createElement("textarea");a.value=e,a.style.position="fixed",a.style.left="-9999px",document.body.appendChild(a),a.select();try{return document.execCommand("copy"),!0}catch{return!1}finally{document.body.removeChild(a)}}}let j={isOpen:!1,executionId:null,scriptName:"",branchRef:"",output:"",status:"idle",error:null};function N({status:e}){switch(e){case"A":return(0,t.jsx)("i",{className:"iconoir-plus-circle text-[16px] text-success","aria-hidden":"true"});case"D":return(0,t.jsx)("i",{className:"iconoir-minus-circle text-[16px] text-error","aria-hidden":"true"});case"M":return(0,t.jsx)("i",{className:"iconoir-edit-pencil text-[16px] text-warning","aria-hidden":"true"});default:return(0,t.jsx)("i",{className:"iconoir-page text-[16px] opacity-50","aria-hidden":"true"})}}function y({node:e,selectedFile:a,expandedFolders:s,onToggleFolder:l,onSelectFile:n,depth:r=0}){let o=Array.from(e.children.values()).sort((e,a)=>{let s=e.children.size>0,t=a.children.size>0;return s&&!t?-1:!s&&t?1:e.name.localeCompare(a.name)});return(0,t.jsx)(t.Fragment,{children:o.map(e=>{if(e.children.size>0){let i=s.has(e.path);return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-1 px-2 py-1.5 text-xs rounded cursor-pointer hover:bg-base-200 transition-colors opacity-80",style:{paddingLeft:`${12*r+8}px`},onClick:()=>l(e.path),title:e.path,children:[(0,t.jsx)("span",{className:"text-[10px] opacity-70",children:i?"▼":"▶"}),(0,t.jsx)("i",{className:"iconoir-folder text-[14px] opacity-70","aria-hidden":"true"}),(0,t.jsx)("span",{className:"truncate flex-1",children:e.name})]}),i&&(0,t.jsx)(y,{node:e,selectedFile:a,expandedFolders:s,onToggleFolder:l,onSelectFile:n,depth:r+1})]},e.path)}if(!e.file)return null;let o=e.file;return(0,t.jsxs)("div",{className:(0,i.cn)("flex items-center gap-2 px-2 py-1.5 text-xs rounded cursor-pointer hover:bg-base-200 transition-colors",a===o.path&&"bg-base-200 font-medium"),style:{paddingLeft:`${12*r+8}px`},onClick:()=>n(o.path),title:o.path,children:[(0,t.jsx)(N,{status:o.status}),(0,t.jsx)("span",{className:"truncate flex-1 font-mono",children:e.name})]},e.path)})})}function k({repoPath:e,commitHash:a,filePath:s,splitView:r}){let{data:o,isLoading:c}=(0,l.st)(e,a,s),{resolvedTheme:d}=(0,h.D)(),[x,p]=(0,n.useState)(!1);if((0,n.useEffect)(()=>{p(!1)},[s,a]),c)return(0,t.jsx)("div",{className:"flex items-center justify-center p-8",children:(0,t.jsx)("span",{className:"loading loading-spinner text-base-content/50"})});if(!o)return(0,t.jsx)("div",{className:"flex items-center justify-center p-8 opacity-50",children:"No diff available"});if((0,i.u)(s))return(0,t.jsx)(u.K,{filePath:s,imageDiff:o.imageDiff});if((0,i.kO)(s,o.left,o.right))return(0,t.jsx)("div",{className:"flex items-center justify-center p-8 opacity-50",children:"Binary file - diff not available"});let b=o.diff||"",f=b.length,g=(0,i.tq)(b);return(f>102400||g>3e3)&&!x?(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-4 text-center p-8",children:[(0,t.jsx)("i",{className:"iconoir-warning-triangle text-[32px] text-warning","aria-hidden":"true"}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:"Large Diff Detected"}),(0,t.jsxs)("p",{className:"opacity-70",children:["This diff is large (",Math.round(f/1024),"KB, ~",g," changed lines) and may freeze your browser if rendered."]})]}),(0,t.jsx)("button",{className:"btn btn-outline",onClick:()=>p(!0),children:"Show Diff Anyway"})]}):(0,t.jsx)("div",{className:"overflow-auto h-full",children:(0,t.jsx)(m.O,{oldValue:o.left||"",newValue:o.right||"",splitView:r,useDarkTheme:"dark"===d})})}function v({repoPath:e,commitHash:a}){let{data:s,isLoading:r}=(0,l.gg)(e,a),[i,o]=(0,n.useState)(null),[c,d]=(0,n.useState)({}),h=(0,n.useMemo)(()=>(function(e){let a={name:"",path:"",children:new Map};for(let s of e){let e=s.path.split("/").filter(Boolean),t=a,l="";for(let a=0;a<e.length;a++){let n=e[a];l=l?`${l}/${n}`:n,t.children.has(n)||t.children.set(n,{name:n,path:l,children:new Map}),t=t.children.get(n),a===e.length-1&&(t.file=s)}}return a})(s?.files??[]),[s?.files]),m=(0,n.useMemo)(()=>(function e(a){let s=[];return Array.from(a.children.values()).forEach(a=>{a.children.size>0&&(s.push(a.path),s.push(...e(a)))}),s})(h),[h]),u=(0,n.useMemo)(()=>c[a]??new Set,[c,a]),x="git-web:diff-view-split",[p,b]=(0,n.useState)(()=>{try{let e=localStorage.getItem(x);return null===e||JSON.parse(e)}catch(e){return console.error("Failed to load split view preference:",e),!0}});(0,n.useEffect)(()=>{try{localStorage.setItem(x,JSON.stringify(p))}catch(e){console.error("Failed to save split view preference:",e)}},[p]),(0,n.useEffect)(()=>{o(null)},[a]),(0,n.useEffect)(()=>{!i&&s?.files&&s.files.length>0&&o(s.files[0].path)},[s?.files,i]);let f=(0,n.useMemo)(()=>{let e=new Set;return m.forEach(a=>{u.has(a)||e.add(a)}),i&&(function(e){let a=e.split("/").filter(Boolean),s=[];for(let e=1;e<a.length;e++)s.push(a.slice(0,e).join("/"));return s})(i).forEach(a=>e.add(a)),e},[m,u,i]),g=(0,n.useCallback)(e=>{d(s=>{let t=new Set(s[a]??new Set);return t.has(e)?t.delete(e):t.add(e),{...s,[a]:t}})},[a]);return r?(0,t.jsx)("div",{className:"flex items-center justify-center p-8 h-full",children:(0,t.jsx)("span",{className:"loading loading-spinner text-base-content/50"})}):s&&0!==s.files.length?(0,t.jsxs)("div",{className:"flex h-full",children:[(0,t.jsxs)("div",{className:"w-64 border-r border-base-300 flex flex-col bg-base-200/30 shrink-0",children:[(0,t.jsxs)("div",{className:"px-3 py-2 text-xs font-bold opacity-70 border-b border-base-300 bg-base-100",children:[s.files.length," file",1!==s.files.length?"s":""," changed"]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto min-h-0",children:(0,t.jsx)("div",{className:"p-1",children:(0,t.jsx)(y,{node:h,selectedFile:i,expandedFolders:f,onToggleFolder:g,onSelectFile:o})})})]}),(0,t.jsx)("div",{className:"flex-1 overflow-hidden",children:i?(0,t.jsxs)("div",{className:"h-full flex flex-col",children:[(0,t.jsxs)("div",{className:"px-4 py-2 text-xs font-mono opacity-70 border-b border-base-300 bg-base-100 shrink-0 truncate flex items-center justify-between",children:[(0,t.jsx)("span",{className:"truncate",children:i}),(0,t.jsxs)("div",{className:"flex items-center gap-2 shrink-0 ml-4",children:[(0,t.jsx)("label",{htmlFor:"commit-diff-split-view",className:"text-[10px] uppercase tracking-wider font-bold cursor-pointer opacity-70",children:"Split View"}),(0,t.jsx)("input",{type:"checkbox",id:"commit-diff-split-view",checked:p,onChange:e=>b(e.target.checked),className:"toggle toggle-xs toggle-primary"})]})]}),(0,t.jsx)("div",{className:"flex-1 overflow-auto diff-viewer-wrapper",children:(0,t.jsx)(k,{repoPath:e,commitHash:a,filePath:i,splitView:p})})]}):(0,t.jsx)("div",{className:"flex items-center justify-center h-full opacity-70 text-sm",children:"Select a file to view changes"})})]}):(0,t.jsx)("div",{className:"flex items-center justify-center p-8 h-full opacity-50",children:"No changes in this commit"})}function w(e,a=""){let s={name:"",children:new Map};for(let t of e){let e=t.split("/"),l=s;for(let s=0;s<e.length;s++){let n=e[s];l.children.has(n)||l.children.set(n,{name:n,children:new Map}),l=l.children.get(n),s===e.length-1&&(l.fullPath=a?`${a}/${t}`:t)}}return s}function C(e,a,s){if(a[e])return a[e];let t=e.split("/");for(let e=t.length-1;e>0;e--){let s=t.slice(0,e).join("/");if(a[s])return a[s]}if(s){let e=s.split("/");for(let s=e.length;s>0;s--){let t=e.slice(0,s).join("/");if(a[t])return a[t]}}return null}function S({name:e,groupPath:a,icon:s,isExpanded:l,onToggle:n,visibilityMap:r,onToggleVisibility:o,depth:c=0}){let d=r[a],h=a.includes("/")?a.split("/").slice(0,-1).join("/"):void 0,m=h?r[h]:null,u=d||m,x=!d&&null!==m;return(0,t.jsxs)("div",{className:(0,i.cn)("group flex items-center gap-1 px-2 py-1.5 text-sm rounded-md cursor-pointer hover:bg-base-200 transition-colors font-medium"),style:{paddingLeft:`${12*c+8}px`},children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5 flex-1 min-w-0",onClick:n,children:[(0,t.jsx)("span",{className:"text-xs opacity-70",children:l?"▼":"▶"}),(0,t.jsx)("span",{className:"shrink-0",children:s}),(0,t.jsx)("span",{className:"truncate min-w-0 flex-1",children:e})]}),(0,t.jsxs)("div",{className:"flex items-center gap-0.5 ml-auto",children:[(0,t.jsx)(R,{type:"visible",isActive:"visible"===d||x&&"visible"===u,isInherited:x&&"visible"===u,onClick:e=>{e.stopPropagation(),o(a,"visible")},showOnHover:"visible"===d||x&&"visible"===u}),(0,t.jsx)(R,{type:"hidden",isActive:"hidden"===d||x&&"hidden"===u,isInherited:x&&"hidden"===u,onClick:e=>{e.stopPropagation(),o(a,"hidden")},showOnHover:"hidden"===d||x&&"hidden"===u})]})]})}function R({type:e,isActive:a,isInherited:s,onClick:l,showOnHover:n}){return(0,t.jsx)("button",{className:(0,i.cn)("p-0.5 rounded hover:bg-base-300 transition-colors shrink-0 cursor-pointer text-xs",a&&"bg-primary/10",s&&"opacity-50",!a&&!n&&"opacity-0 group-hover:opacity-100"),onClick:l,title:"visible"===e?a?"Remove visible filter":"Show only this branch":a?"Remove hide filter":"Hide this branch",children:"visible"===e?(0,t.jsx)("i",{className:"iconoir-eye text-[14px]","aria-hidden":"true"}):(0,t.jsx)("i",{className:"iconoir-eye-closed text-[14px]","aria-hidden":"true"})})}function $(e){return Array.from(e.children.values()).sort((e,a)=>{let s=e.children.size>0&&!e.fullPath,t=a.children.size>0&&!a.fullPath;return s&&!t?-1:!s&&t?1:e.name.localeCompare(a.name)})}function E(e,a,s=""){let t=[];for(let l of $(e)){if(void 0!==l.fullPath){t.push(l.fullPath);continue}let e=s?`${s}/${l.name}`:l.name;a.has(e)&&t.push(...E(l,a,e))}return t}function B(e){let a=[];for(let s of $(e)){if(s.fullPath){a.push(s.fullPath);continue}a.push(...B(s))}return a}function M({node:e,currentBranch:a,expandedFolders:s,onToggleFolder:l,onCheckout:n,onCheckoutToLocal:r,onCreateBranch:c,onDeleteBranch:d,onRenameBranch:h,onRenameRemoteBranch:m,onRebase:u,onMerge:x,onPushToRemote:p,onPullFromRemote:b,getBranchContextMenuItems:f,onBranchClick:g,onBranchContextMenu:j,onDeleteBranchGroup:N,selectedBranches:y,visibilityMap:k,onToggleVisibility:v,parentPath:w="",depth:S=0,groupPath:$,isRemote:E=!1,trackingInfo:P}){let F=Array.from(e.children.values()).sort((e,a)=>{let s=e.children.size>0&&!e.fullPath,t=a.children.size>0&&!a.fullPath;return s&&!t?-1:!s&&t?1:e.name.localeCompare(a.name)});return(0,t.jsx)(t.Fragment,{children:F.map(e=>{let F=void 0!==e.fullPath,D=e.children.size>0&&!F,T=e.fullPath||(w?`${w}/${e.name}`:e.name),L=s.has(T),A=F&&e.fullPath===a,O=k[T],I=C(T,k,$),H=!O&&null!==I;if(D){let w=B(e).filter(e=>e!==a);return(0,t.jsxs)("div",{children:[(0,t.jsx)(o,{items:[{label:"Delete",onClick:()=>N(w),danger:!0,disabled:0===w.length}],children:(0,t.jsxs)("div",{className:(0,i.cn)("group flex items-center gap-1 px-2 py-1.5 text-sm rounded-md cursor-pointer hover:bg-base-200 transition-colors opacity-70 select-none"),style:{paddingLeft:`${12*S+8}px`},children:[(0,t.jsxs)("div",{className:"flex items-center gap-1 flex-1 min-w-0",onClick:()=>l(T),children:[(0,t.jsx)("span",{className:"text-xs opacity-70",children:L?"▼":"▶"}),(0,t.jsx)("i",{className:"iconoir-folder text-[16px] shrink-0","aria-hidden":"true"}),(0,t.jsx)("span",{className:"truncate min-w-0 flex-1",children:e.name})]}),(0,t.jsxs)("div",{className:"flex items-center gap-0.5 ml-auto",children:[(0,t.jsx)(R,{type:"visible",isActive:"visible"===O||H&&"visible"===I,isInherited:H&&"visible"===I,onClick:e=>{e.stopPropagation(),v(T,"visible")},showOnHover:"visible"===O||H&&"visible"===I}),(0,t.jsx)(R,{type:"hidden",isActive:"hidden"===O||H&&"hidden"===I,isInherited:H&&"hidden"===I,onClick:e=>{e.stopPropagation(),v(T,"hidden")},showOnHover:"hidden"===O||H&&"hidden"===I})]})]})}),L&&(0,t.jsx)(M,{node:e,currentBranch:a,expandedFolders:s,onToggleFolder:l,onCheckout:n,onCheckoutToLocal:r,onCreateBranch:c,onDeleteBranch:d,onRenameBranch:h,onRenameRemoteBranch:m,onRebase:u,onMerge:x,onPushToRemote:p,onPullFromRemote:b,getBranchContextMenuItems:f,onBranchClick:g,onBranchContextMenu:j,onDeleteBranchGroup:N,selectedBranches:y,visibilityMap:k,onToggleVisibility:v,parentPath:T,depth:S+1,groupPath:$,isRemote:E,trackingInfo:P})]},T)}let _=!E&&e.fullPath?P?.[e.fullPath]:void 0,K=_&&(_.ahead>0||_.behind>0),W=f({branchRef:e.fullPath,branchLeafName:e.name,currentBranch:a,isRemote:E,selectedBranchRefs:y.has(e.fullPath)?Array.from(y):[e.fullPath]}),z=y.has(e.fullPath);return(0,t.jsx)(o,{items:W,children:(0,t.jsxs)("div",{className:(0,i.cn)("group flex items-center gap-2 px-2 py-1.5 text-sm rounded-md cursor-pointer transition-colors select-none",!z&&"hover:bg-base-200",z&&"bg-primary/10 hover:bg-primary/20",A&&"bg-base-200 font-medium text-primary"),style:{paddingLeft:`${12*S+8}px`},onContextMenu:()=>j?.(e.fullPath),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-1 min-w-0",onClick:a=>g?.(e.fullPath,{isMultiSelect:a.metaKey||a.ctrlKey,isRangeSelect:a.shiftKey}),onDoubleClick:()=>!A&&n(e.fullPath),children:[A?(0,t.jsx)("span",{className:"w-3 h-3 flex items-center justify-center shrink-0",children:(0,t.jsx)("span",{className:"w-2 h-2 rounded-full bg-primary"})}):E?(0,t.jsx)("i",{className:"iconoir-globe text-[14px] opacity-50 shrink-0","aria-hidden":"true"}):(0,t.jsx)("i",{className:"iconoir-git-branch text-[14px] opacity-50 shrink-0","aria-hidden":"true"}),(0,t.jsx)("span",{className:"truncate min-w-0 flex-1",title:e.fullPath,children:e.name}),K&&(0,t.jsxs)("span",{className:"flex items-center gap-1 text-xs opacity-70 shrink-0",title:`${_.ahead} ahead, ${_.behind} behind ${_.upstream}`,children:[_.ahead>0&&(0,t.jsxs)("span",{className:"flex items-center gap-0.5 text-xs",children:[(0,t.jsx)("i",{className:"iconoir-arrow-up text-[12px]","aria-hidden":"true"}),(0,t.jsx)("span",{children:_.ahead})]}),_.behind>0&&(0,t.jsxs)("span",{className:"flex items-center gap-0.5 text-xs",children:[(0,t.jsx)("i",{className:"iconoir-arrow-down text-[12px]","aria-hidden":"true"}),(0,t.jsx)("span",{children:_.behind})]})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-0.5 ml-auto",children:[(0,t.jsx)(R,{type:"visible",isActive:"visible"===O||H&&"visible"===I,isInherited:H&&"visible"===I,onClick:e=>{e.stopPropagation(),v(T,"visible")},showOnHover:"visible"===O||H&&"visible"===I}),(0,t.jsx)(R,{type:"hidden",isActive:"hidden"===O||H&&"hidden"===I,isInherited:H&&"hidden"===I,onClick:e=>{e.stopPropagation(),v(T,"hidden")},showOnHover:"hidden"===O||H&&"hidden"===I})]})]})},e.fullPath)})})}function P({repoPath:e}){let{data:a}=(0,l.t0)(),s=(0,l.Y5)(),[r,c]=(0,n.useState)(100),{data:h,isLoading:m,isError:u,error:N,refetch:y,isFetching:k}=(0,l._X)(e,r),{data:R,isLoading:$}=(0,l._6)(e),{data:P}=(0,l.en)(e),[F,D]=(0,n.useState)(null),[T,L]=(0,n.useState)([]),[A,O]=(0,n.useState)(null),I=(0,n.useCallback)(e=>{D(e),L(e?[e]:[]),O(e)},[]);(0,n.useEffect)(()=>{I(null),s6([]),s9(null)},[e,I]);let{mutateAsync:H}=(0,l.a3)(),[_,K]=(0,n.useState)(!1),[W,z]=(0,n.useState)(""),[q,V]=(0,n.useState)(null),[G,Y]=(0,n.useState)(!1),[J,U]=(0,n.useState)(!1),[Q,X]=(0,n.useState)(null),[Z,ee]=(0,n.useState)(""),[ea,es]=(0,n.useState)(!1),[et,el]=(0,n.useState)(!1),[en,er]=(0,n.useState)(!1),[ei,eo]=(0,n.useState)([]),[ec,ed]=(0,n.useState)(!1),[eh,em]=(0,n.useState)(!1),[eu,ex]=(0,n.useState)(!1),[ep,eb]=(0,n.useState)(null),[ef,eg]=(0,n.useState)(!1),[ej,eN]=(0,n.useState)(!1),[ey,ek]=(0,n.useState)(!1),[ev,ew]=(0,n.useState)([]),[eC,eS]=(0,n.useState)(!1),[eR,e$]=(0,n.useState)(!1),[eE,eB]=(0,n.useState)(!1),[eM,eP]=(0,n.useState)(!1),[eF,eD]=(0,n.useState)(null),[eT,eL]=(0,n.useState)(null),[eA,eO]=(0,n.useState)(""),[eI,eH]=(0,n.useState)(!1),[e_,eK]=(0,n.useState)(!1),[eW,ez]=(0,n.useState)(!1),[eq,eV]=(0,n.useState)(null),[eG,eY]=(0,n.useState)(""),[eJ,eU]=(0,n.useState)(!1),[eQ,eX]=(0,n.useState)(!1),[eZ,e0]=(0,n.useState)(null),[e1,e2]=(0,n.useState)(!1),[e4,e3]=(0,n.useState)(!1),[e5,e7]=(0,n.useState)("origin"),[e6,e8]=(0,n.useState)(""),[e9,ae]=(0,n.useState)(!1),[aa,as]=(0,n.useState)(!1),[at,al]=(0,n.useState)(null),[an,ar]=(0,n.useState)(null),[ai,ao]=(0,n.useState)(!0),[ac,ad]=(0,n.useState)(!1),[ah,am]=(0,n.useState)("checking"),au=(0,n.useCallback)(()=>{as(!1),al(null),ar(null),am("checking")},[]),[ax,ap]=(0,n.useState)(!1),[ab,af]=(0,n.useState)(null),[ag,aj]=(0,n.useState)(null),[aN,ay]=(0,n.useState)(!1),[ak,av]=(0,n.useState)(!1),[aw,aC]=(0,n.useState)(!1),[aS,aR]=(0,n.useState)(""),[a$,aE]=(0,n.useState)(!1),[aB,aM]=(0,n.useState)("checking"),aP=(0,n.useCallback)(()=>{ap(!1),af(null),aj(null),aM("checking")},[]),[aF,aD]=(0,n.useState)(!1),[aT,aL]=(0,n.useState)(null),[aA,aO]=(0,n.useState)([]),[aI,aH]=(0,n.useState)(""),[a_,aK]=(0,n.useState)([]),[aW,az]=(0,n.useState)(""),[aq,aV]=(0,n.useState)(null),[aG,aY]=(0,n.useState)(!1),[aJ,aU]=(0,n.useState)(!1),[aQ,aX]=(0,n.useState)(!0),[aZ,a0]=(0,n.useState)(!1),[a1,a2]=(0,n.useState)(""),[a4,a3]=(0,n.useState)(!1),[a5,a7]=(0,n.useState)(null),[a6,a8]=(0,n.useState)(!1),[a9,se]=(0,n.useState)(!1),[sa,ss]=(0,n.useState)(!1),[st,sl]=(0,n.useState)(null),[sn,sr]=(0,n.useState)([]),[si,so]=(0,n.useState)(""),[sc,sd]=(0,n.useState)([]),[sh,sm]=(0,n.useState)(""),[su,sx]=(0,n.useState)(null),[sp,sb]=(0,n.useState)(!0),[sf,sg]=(0,n.useState)(!1),[sj,sN]=(0,n.useState)(null),[sy,sk]=(0,n.useState)(!1),[sv,sw]=(0,n.useState)(!1),[sC,sS]=(0,n.useState)(!1),[sR,s$]=(0,n.useState)(!1),[sE,sB]=(0,n.useState)(null),[sM,sP]=(0,n.useState)(""),[sF,sD]=(0,n.useState)(!1),[sT,sL]=(0,n.useState)(!1),[sA,sO]=(0,n.useState)(null),[sI,sH]=(0,n.useState)(!1),[s_,sK]=(0,n.useState)(!1),[sW,sz]=(0,n.useState)(null),[sq,sV]=(0,n.useState)(!1),[sG,sY]=(0,n.useState)(!1),[sJ,sU]=(0,n.useState)(null),[sQ,sX]=(0,n.useState)(""),[sZ,s0]=(0,n.useState)(""),[s1,s2]=(0,n.useState)(!1),s4=(0,n.useRef)(null),[s3,s5]=(0,n.useState)(null),[s7,s6]=(0,n.useState)([]),[s8,s9]=(0,n.useState)(null),[te,ta]=(0,n.useState)(!1),ts=(0,n.useRef)(null),[tt,tl]=(0,n.useState)(j),[tn,tr]=(0,n.useState)(!1),[ti,to]=(0,n.useState)(!1),[tc,td]=(0,n.useState)(!1),th="starting"===tt.status||"running"===tt.status,tm="completed"===tt.status||"failed"===tt.status||"canceled"===tt.status,tu=(0,n.useCallback)(()=>{eP(!1),eD(null),eL(null),eO(""),eH(!1)},[]),tx=(0,n.useCallback)(()=>{ez(!1),eV(null),eY("")},[]),tp=(0,n.useCallback)(()=>{eX(!1),e0(null)},[]),tb=(0,n.useCallback)(()=>{e3(!1),e7("origin"),e8("")},[]),tf=(0,n.useCallback)(()=>{sY(!1),sU(null),sX(""),s0("")},[]),tg=(0,n.useCallback)(()=>{if(eR){e$(!1),ew([]);return}if(sR)return void s$(!1);if(_){K(!1),V(null);return}if(J){U(!1),X(null),ee(""),es(!1);return}if(sa)return void ss(!1);if(aF)return void aD(!1);if(ax)return void aP();if(aa)return void au();if(eM)return void tu();if(eW)return void tx();if(eQ)return void tp();if(e4)return void tb();if(ey){ek(!1),ew([]);return}if(en){er(!1),eo([]),ed(!1);return}if(eu){ex(!1),eb(null),eg(!1);return}if(sG)return void tf();if(sT)return void sL(!1);if(s_){sK(!1),sz(null);return}te?ta(!1):tt.isOpen&&tm&&(tl(j),td(!1),tr(!1))},[eR,sR,_,J,sa,aF,aP,ax,au,aa,eM,tu,eW,tx,eQ,tp,e4,tb,ey,en,eu,sG,tf,sT,s_,te,tt.isOpen,tm]),tj=sT||s_||sG||en||eu||eR||ey||eM||eW||eQ||e4||aa||ax||aF||sa||_||J||sR||te||tt.isOpen;(0,x.v)(tj,tg);let tN="git-web:history-panel-height",ty="git-web:history-commit-details-message-ratio",[tk,tv]=(0,n.useState)(300),[tw,tC]=(0,n.useState)(!1),tS=(0,n.useRef)(null),[tR,t$]=(0,n.useState)(.28),[tE,tB]=(0,n.useState)(!1),tM=(0,n.useRef)(null),tP=(0,n.useRef)(!1);(0,n.useEffect)(()=>{if(a?.historyPanelHeight)tv(b(a.historyPanelHeight));else try{let e=localStorage.getItem(tN);if(e){let a=parseInt(e,10);!isNaN(a)&&a>=100&&a<=900&&tv(a)}}catch(e){console.error("Failed to load panel height from localStorage:",e)}},[a?.historyPanelHeight]),(0,n.useEffect)(()=>{try{localStorage.setItem(tN,String(tk))}catch(e){console.error("Failed to save panel height to localStorage:",e)}},[tk]),(0,n.useEffect)(()=>{try{let e=localStorage.getItem(ty);if(!e)return;let a=parseFloat(e);Number.isNaN(a)||t$(f(a))}catch(e){console.error("Failed to load commit details ratio from localStorage:",e)}},[]),(0,n.useEffect)(()=>{try{localStorage.setItem(ty,String(tR))}catch(e){console.error("Failed to save commit details ratio to localStorage:",e)}},[tR]),(0,n.useEffect)(()=>{!tw&&tP.current&&(s.mutate({historyPanelHeight:tk}),tP.current=!1)},[tw,tk,s]);let tF=(0,n.useCallback)(e=>{e.preventDefault(),tC(!0),tS.current={startY:e.clientY,startHeight:tk}},[tk]);(0,n.useEffect)(()=>{if(!tw)return;let e=e=>{if(!tS.current)return;let a=tS.current.startY-e.clientY;tv(b(tS.current.startHeight+a)),tP.current=!0},a=()=>{tC(!1),tS.current=null};return document.addEventListener("mousemove",e),document.addEventListener("mouseup",a),()=>{document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",a)}},[tw]);let tD=(0,n.useCallback)(e=>{e.preventDefault(),tB(!0)},[]);(0,n.useEffect)(()=>{if(!tE)return;let e=e=>{let a=tM.current;if(!a)return;let s=a.getBoundingClientRect();s.height<=0||t$(f((e.clientY-s.top)/s.height))},a=()=>{tB(!1)};return document.addEventListener("mousemove",e),document.addEventListener("mouseup",a),document.body.style.cursor="ns-resize",document.body.style.userSelect="none",()=>{document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",a),document.body.style.cursor="",document.body.style.userSelect=""}},[tE]),(0,n.useEffect)(()=>{if(!te)return;let e=e=>{ts.current&&!ts.current.contains(e.target)&&ta(!1)};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[te]);let tT=(0,n.useMemo)(()=>R?.branches?w(R.branches):null,[R?.branches]),tL=(0,n.useMemo)(()=>{if(!R?.remotes)return null;var e=R.remotes;let a=new Map;for(let[s,t]of Object.entries(e))a.set(s,w(t,`remotes/${s}`));return a},[R?.remotes]),tA=(0,n.useMemo)(()=>{let e=new Set;for(let a of R?.branches??[])e.add(a);for(let[a,s]of Object.entries(R?.remotes??{}))for(let t of s)e.add(`remotes/${a}/${t}`);return e},[R?.branches,R?.remotes]),tO=(0,n.useMemo)(()=>new Set(s7),[s7]),tI=(0,l.GK)(e),tH=(0,l.Lp)(),t_=(0,n.useMemo)(()=>(tI?.customScripts??[]).filter(e=>"branch"===e.target&&"run-bash-script"===e.action&&e.name.trim().length>0&&e.content.trim().length>0),[tI?.customScripts]),[tK,tW]=(0,n.useState)(!0),[tz,tq]=(0,n.useState)(!0),[tV,tG]=(0,n.useState)({}),[tY,tJ]=(0,n.useState)(new Set),tU=(0,n.useMemo)(()=>{let e=[];if(tK&&tT&&e.push(...E(tT,tY)),tz&&tL)for(let[a,s]of Array.from(tL.entries())){let t=`__remotes__/${a}`;tY.has(t)&&e.push(...E(s,tY,`remotes/${a}`))}return e},[tY,tT,tK,tL,tz]);(0,n.useEffect)(()=>{if(0===s7.length)return;let e=s7.filter(e=>tA.has(e));e.length!==s7.length&&s6(e),s8&&!tA.has(s8)&&s9(e.length>0?e[e.length-1]:null)},[tA,s8,s7]);let tQ=(0,n.useRef)(null);(0,n.useEffect)(()=>{tI&&tI.path!==tQ.current&&(tQ.current=tI.path,void 0!==tI.localGroupExpanded&&tW(tI.localGroupExpanded),void 0!==tI.remotesGroupExpanded&&tq(tI.remotesGroupExpanded),tI.expandedFolders&&tJ(new Set(tI.expandedFolders)),tI.visibilityMap&&tG(tI.visibilityMap))},[tI]);let tX=(0,n.useCallback)(a=>{tH.mutate({path:e,updates:a})},[e,tH]),tZ=(0,n.useCallback)(()=>{let e=!tK;tW(e),tX({localGroupExpanded:e})},[tK,tX]),t0=(0,n.useCallback)(()=>{let e=!tz;tq(e),tX({remotesGroupExpanded:e})},[tz,tX]),t1=(0,n.useCallback)(e=>{tJ(a=>{let s=new Set(a);return s.has(e)?s.delete(e):s.add(e),tX({expandedFolders:Array.from(s)}),s})},[tX]),t2=(0,n.useCallback)((e,a)=>{tG(s=>{let t={...s};t[e]===a?delete t[e]:t[e]=a;let l={};return Object.entries(t).forEach(([e,a])=>{("visible"===a||"hidden"===a)&&(l[e]=a)}),tX({visibilityMap:l}),t})},[tX]),t4=(0,n.useCallback)(()=>{tG({}),tX({visibilityMap:{}})},[tX]),t3=(0,n.useCallback)((e,a)=>{let s=C(e,tV);if(s)return s;if(a){let a=e.split("/");if(a.length>=2&&"remotes"===a[0]){let e=a[1],s=tV[`__remotes__/${e}`];if(s)return s;let t=tV.__remotes__;if(t)return t}}else{let e=tV.__local__;if(e)return e}return null},[tV]),t5=(0,n.useMemo)(()=>{if(!h?.all||!R?.branches||!R?.branchCommits)return h?.all||[];let e=Object.values(tV).some(e=>"visible"===e),a=Object.values(tV).some(e=>"hidden"===e);if(!e&&!a)return h.all;let s=[...R.branches.map(e=>({branch:e,isRemote:!1}))];if(R.remotes)for(let[e,a]of Object.entries(R.remotes))for(let t of a)s.push({branch:`remotes/${e}/${t}`,isRemote:!0});let t=new Set,l=new Set,n=new Set;for(let{branch:e,isRemote:a}of s){let s=t3(e,a);"visible"===s?t.add(e):"hidden"===s?l.add(e):n.add(e)}let r=new Map(h.all.map(e=>[e.hash,e])),i=(e,a)=>{let s=[e];for(;s.length>0;){let e=s.pop();if(a.has(e))continue;let t=r.get(e);if(t)for(let l of(a.add(e),t.parents||[]))a.has(l)||s.push(l)}},o=new Set;for(let e of t){let a=R.branchCommits[e];a&&i(a,o)}if(e)return h.all.filter(e=>o.has(e.hash));if(a){let e=new Set;for(let a of n){let s=R.branchCommits[a];s&&i(s,e)}return h.all.filter(a=>e.has(a.hash))}return h.all},[h?.all,R?.branches,R?.branchCommits,R?.remotes,tV,t3]),t7=(0,n.useMemo)(()=>new Set(T),[T]),t6=(0,n.useMemo)(()=>t5.map(e=>e.hash),[t5]);(0,n.useEffect)(()=>{if(0===t6.length){(F||T.length>0||A)&&I(null);return}let e=new Set(t6),a=T.filter(a=>e.has(a));a.length!==T.length&&L(a),F&&!e.has(F)&&D(a.length>0?a[a.length-1]:null),A&&!e.has(A)&&O(a.length>0?a[a.length-1]:null)},[t6,F,T,A,I]);let t8=(0,n.useCallback)((e,a)=>{let s=a?.isRangeSelect??!1,t=a?.isMultiSelect??!1;if(s){let a=A??F??e,s=t6.indexOf(a),t=t6.indexOf(e);if(-1!==s&&-1!==t){let[l,n]=s<t?[s,t]:[t,s];L(t6.slice(l,n+1)),D(e),O(a);return}}if(t){if(t7.has(e)){let a=T.filter(a=>a!==e);L(a),D(s=>s!==e?s:a.length>0?a[a.length-1]:null),A===e&&O(a.length>0?a[a.length-1]:null)}else L([...T,e]),D(e),O(e);return}I(e)},[t6,t7,T,F,A,I]),t9=(0,n.useMemo)(()=>t5.filter(e=>t7.has(e.hash)).reverse(),[t5,t7]),le=(0,n.useMemo)(()=>Object.values(tV).some(e=>"visible"===e||"hidden"===e),[tV]),la=(0,n.useMemo)(()=>{let e=new Set;if(R?.branches)for(let a of R.branches)"hidden"===t3(a,!1)&&e.add(a);if(R?.remotes)for(let[a,s]of Object.entries(R.remotes))for(let t of s){let s=`remotes/${a}/${t}`;"hidden"===t3(s,!0)&&e.add(s)}return e},[R?.branches,R?.remotes,t3]);(0,n.useEffect)(()=>{le&&t5.length<50&&!k&&r<5e3&&h?.all&&h.all.length>=r&&c(e=>Math.min(e+100,5e3))},[le,t5.length,k,r,h?.all]),(0,n.useEffect)(()=>{s3&&h?.all&&!k&&(h.all.some(e=>e.hash===s3)?requestAnimationFrame(()=>{s4.current?.scrollToCommit(s3)&&(I(s3),s5(null))}):r<5e3?c(e=>e+100):(console.warn("Could not find commit after loading 5000 commits"),s5(null)))},[s3,h?.all,k,r,I]);let ls=(0,n.useCallback)(e=>{if(!R?.branchCommits)return;let a=R.branchCommits[e];if(a){if(h?.all?.some(e=>e.hash===a)&&s4.current&&s4.current.scrollToCommit(a))return void I(a);s5(a),I(a)}},[R?.branchCommits,h?.all,I]),lt=(0,n.useCallback)((e,a)=>{let s=a?.isRangeSelect??!1,t=a?.isMultiSelect??!1;if(s){let a=s8??e,s=tU.indexOf(a),t=tU.indexOf(e);if(-1!==s&&-1!==t){let[l,n]=s<t?[s,t]:[t,s],r=tU.slice(l,n+1);tO.has(e)?s6(s7.filter(e=>!r.includes(e))):s6(Array.from(new Set([...s7,...r]))),s9(a)}else s6([e]),s9(e);return}if(t){tO.has(e)?s6(s7.filter(a=>a!==e)):s6([...s7,e]),s9(e);return}s6([e]),s9(e),ls(e)},[s8,tU,ls,s7,tO]),ll=(0,n.useCallback)(e=>{tO.has(e)||(s6([e]),s9(e))},[tO]),ln=(0,n.useCallback)(async(a,s)=>{td(!1),tr(!1),tl({isOpen:!0,executionId:null,scriptName:a.name,branchRef:s,output:"",status:"starting",error:null});try{let t=await fetch("/api/custom-scripts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({command:"start",repoPath:e,branchRef:s,scriptContent:a.content})}),l=await t.json();if(!t.ok)throw Error(l.error||"Failed to start script execution");let n=[];l.previousBranch&&l.checkedOutBranch&&l.previousBranch!==l.checkedOutBranch&&n.push(`[info] Checked out ${l.checkedOutBranch} (from ${l.previousBranch})`),tl(e=>({...e,executionId:l.executionId,output:[n.join("\n"),l.output].filter(Boolean).join("\n"),status:l.status,error:null}))}catch(e){tl(a=>({...a,status:"failed",error:e.message,output:a.output?`${a.output}
2
+ [error] ${e.message}`:`[error] ${e.message}`}))}},[e]),lr=(0,n.useCallback)(async()=>{if(tt.executionId&&th){tr(!0);try{let e=await fetch("/api/custom-scripts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({command:"cancel",executionId:tt.executionId})}),a=await e.json();if(!e.ok)throw Error(a.error||"Failed to cancel script execution");tl(e=>({...e,output:a.output,status:a.status})),"running"!==a.status&&"starting"!==a.status&&tr(!1)}catch(e){tl(a=>({...a,output:`${a.output}
3
+ [error] ${e.message}`})),tr(!1)}}},[tt.executionId,th]),li=(0,n.useCallback)(async()=>{if(ti)return;to(!0);let e=await g(tt.output);to(!1),td(e),e&&setTimeout(()=>td(!1),1500)},[ti,tt.output]);(0,n.useEffect)(()=>{if(!tt.executionId||!th)return;let e=!1,a=null,s=async()=>{try{let t=await fetch("/api/custom-scripts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({command:"status",executionId:tt.executionId})}),l=await t.json();if(!t.ok)throw Error(l.error||"Failed to fetch script execution output");if(e)return;let n=l.status;tl(e=>e.executionId!==l.executionId?e:{...e,output:l.output,status:n,error:null}),"running"===n?a=setTimeout(s,450):tr(!1)}catch(a){if(e)return;tr(!1),tl(e=>({...e,status:"failed",error:a.message,output:e.output?`${e.output}
4
+ [error] ${a.message}`:`[error] ${a.message}`}))}};return s(),()=>{e=!0,a&&clearTimeout(a)}},[tt.executionId,th]);let lo=e=>{let a=e.filter(e=>e!==lU);0!==a.length&&(eo(a),ed(!1),er(!0))},lc=e=>{lo([e])},ld=(0,n.useCallback)(()=>{ex(!1),eb(null),eg(!1)},[]),lh=(0,n.useCallback)(e=>{e&&(eb(e),eg(!1),ex(!0))},[]),lm=async()=>{if(0!==ei.length){em(!0);try{let a=new Map,s=(e,s,t)=>{a.has(e)||a.set(e,{branchRef:s,run:t})},l=new Set;if(ec)for(let e of ei){if(e.startsWith("remotes/"))continue;let a=R?.trackingInfo?.[e];a?.upstream&&l.add(a.upstream)}for(let a of l){let[t,...l]=a.split("/"),n=l.join("/");if(t&&n){let a=`${t}/${n}`;s(`remote:${a}`,a,()=>H({repoPath:e,action:"delete-remote-branch",data:{remote:t,branch:n},suppressErrorToast:!0}))}}for(let a of ei){if(a.startsWith("remotes/")){let t=a.split("/");if(t.length>=3){let a=t[1],l=t.slice(2).join("/"),n=`${a}/${l}`;s(`remote:${n}`,n,()=>H({repoPath:e,action:"delete-remote-branch",data:{remote:a,branch:l},suppressErrorToast:!0}))}continue}s(`local:${a}`,a,()=>H({repoPath:e,action:"delete-branch",data:{branch:a},suppressErrorToast:!0}))}let n=Array.from(a.values()),r=(await Promise.allSettled(n.map(e=>e.run()))).flatMap((e,a)=>{if("fulfilled"===e.status)return[];let s=n[a].branchRef;return console.error(`Failed to delete branch "${s}":`,e.reason),[s]});r.length>0&&(0,p.oR)({type:"error",title:1===r.length?"Failed to Delete 1 Branch":`Failed to Delete ${r.length} Branches`,description:(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{children:"The following branches could not be deleted:"}),(0,t.jsx)("ul",{className:"mt-1 max-h-40 overflow-y-auto list-disc pl-5",children:r.map(e=>(0,t.jsx)("li",{className:"break-all",children:e},e))})]}),duration:1e4}),er(!1),eo([]),ed(!1),s6([]),s9(null)}catch(e){console.error(e)}finally{em(!1)}}},lu=async()=>{if(ep){eN(!0);try{if(await H({repoPath:e,action:"delete-tag",data:{tag:ep}}),ef&&lX)try{await H({repoPath:e,action:"delete-remote-tag",data:{remote:lX,tag:ep}})}catch(e){console.error("Failed to delete remote tag:",e)}ld()}catch(e){console.error(e)}finally{eN(!1)}}},lx=e=>{eD(e),eL(null),eO(e),eH(!1),eP(!0)},lp=e=>{let a=e.split("/");if(a.length<3||"remotes"!==a[0])return;let s=a[1],t=a.slice(2).join("/");s&&t&&(eD(e),eL({remote:s,branch:t}),eO(t),eH(!1),eP(!0))},lb=async()=>{if(eF&&eA){if(eT?eT.branch===eA:eF===eA)return void tu();eK(!0);try{eT?await H({repoPath:e,action:"rename-remote-branch",data:{remote:eT.remote,oldName:eT.branch,newName:eA}}):await H({repoPath:e,action:"rename-branch",data:{oldName:eF,newName:eA,renameTrackingRemote:eI}}),tu()}catch(e){console.error(e)}finally{eK(!1)}}},lf=async()=>{if(!eq)return;let a=eq.trim(),s=eG.trim();if(a&&s){if(a===s)return void tx();eU(!0);try{await H({repoPath:e,action:"rename-remote",data:{oldName:a,newName:s}}),tx()}catch(e){console.error(e)}finally{eU(!1)}}},lg=async()=>{if(!eZ)return;let a=eZ.trim();if(a){e2(!0);try{await H({repoPath:e,action:"delete-remote",data:{name:a}}),tp()}catch(e){console.error(e)}finally{e2(!1)}}},lj=async()=>{let a=e5.trim(),s=e6.trim();if(a&&s){ae(!0);try{await H({repoPath:e,action:"add-remote",data:{name:a,url:s}}),tb()}catch(e){console.error(e)}finally{ae(!1)}}},lN=({sourceBranch:e,targetBranch:a})=>{al(e),ar(a),ao(!0),am("checking"),as(!0)},ly=async()=>{if(at&&an){ad(!0);try{await H({repoPath:e,action:"checkout",data:{branch:at}}),await H({repoPath:e,action:"rebase",data:{ontoBranch:an,stashChanges:ai}}),au()}catch(e){console.error(e)}finally{ad(!1)}}};(0,n.useEffect)(()=>{if(!aa||!at||!an)return;let a=!1;return am("checking"),(async()=>{try{let s=await H({repoPath:e,action:"check-rebase-conflicts",data:{sourceBranch:at,ontoBranch:an}});a||am(s.hasConflicts?"has-conflicts":"no-conflict")}catch(e){console.error(e),a||am("has-conflicts")}})(),()=>{a=!0}},[aa,at,an,e,H]);let lk=({sourceBranch:e,targetBranch:a})=>{af(a),aj(e),ay(!1),av(!1),aC(!1),aR(""),aM("checking"),ap(!0)},lv=(0,n.useCallback)(a=>{if(av(a),a){if(!ag)return void aR("");(async()=>{try{let a=await H({repoPath:e,action:"get-latest-commit-message",data:{branch:ag}});aR("string"==typeof a?.message?a.message:"")}catch(e){console.error(e),aR("")}})()}},[ag,e,H]),lw=async()=>{if(ab&&ag){aE(!0);try{await H({repoPath:e,action:"checkout",data:{branch:ab}}),await H({repoPath:e,action:"merge",data:{targetBranch:ag,rebaseBeforeMerge:aN,squash:ak,fastForward:aw,squashMessage:ak?aS:void 0}}),aP()}catch(e){console.error(e)}finally{aE(!1)}}};(0,n.useEffect)(()=>{if(!ax||!ag||!ab)return;let a=!1;return aM("checking"),(async()=>{try{let s=await H({repoPath:e,action:"check-merge-conflicts",data:{sourceBranch:ag,targetBranch:ab}});a||aM(s.hasConflicts?"has-conflicts":"no-conflict")}catch(e){console.error(e),a||aM("has-conflicts")}})(),()=>{a=!0}},[ax,ag,ab,e,H]);let lC=async a=>{aL(a),a7(null),aO([]),aK([]),aH(""),az(""),aV(null),aY(!1),aU(!1),aX(!0),a0(!1),a2(""),aD(!0),a8(!0);try{let s=await H({repoPath:e,action:"get-remotes",data:{}});if(!s.remotes||0===s.remotes.length){a7("No remote repository configured. Please add a remote first."),a8(!1);return}aO(s.remotes);let t=await H({repoPath:e,action:"get-tracking-branch",data:{branch:a}});aV(t.tracking);let l=t.tracking?.remote,n=l&&s.remotes.includes(l)?l:s.remotes[0];aH(n),se(!0);let r=await H({repoPath:e,action:"get-remote-branches",data:{remote:n}});aK(r.branches||[]),t.tracking?.remote===n&&t.tracking?.branch?az(t.tracking.branch):(r.branches?.includes(a),az(a))}catch(e){console.error(e),a7(e.message||"Failed to load remote information")}finally{a8(!1),se(!1)}},lS=async a=>{aH(a),se(!0),aK([]);try{let s=await H({repoPath:e,action:"get-remote-branches",data:{remote:a}});aK(s.branches||[]),aq?.remote===a&&aq?.branch?az(aq.branch):az(aT||"")}catch(e){console.error(e),a7(e.message||"Failed to load remote branches")}finally{se(!1)}},lR=(0,n.useCallback)(a=>{if(a0(a),a){if(!aT)return void a2("");(async()=>{try{let a=await H({repoPath:e,action:"get-latest-commit-message",data:{branch:aT}});a2("string"==typeof a?.message?a.message:"")}catch(e){console.error(e),a2("")}})()}},[aT,e,H]),l$=async()=>{if(aT&&aI&&aW){a3(!0),a7(null);try{let a=!a_.includes(aW)||aq?.remote!==aI||aq?.branch!==aW;await H({repoPath:e,action:"push-to-remote",data:{localBranch:aT,remote:aI,remoteBranch:aW,rebaseFirst:!aJ&&aG,forcePush:aJ,pushLocalOnlyTags:aQ,setUpstream:a,squash:aZ,squashMessage:a1}}),await H({repoPath:e,action:"fetch",data:{remote:aI}}),aD(!1),aL(null)}catch(e){console.error(e),a7(e.message||"Failed to push to remote")}finally{a3(!1)}}},lE=async a=>{sl(a),sN(null),sr([]),sd([]),so(""),sm(""),sx(null),sb(!0),ss(!0),sk(!0);try{let s=await H({repoPath:e,action:"get-remotes",data:{}});if(!s.remotes||0===s.remotes.length){sN("No remote repository configured. Please add a remote first."),sk(!1);return}sr(s.remotes);let t=await H({repoPath:e,action:"get-tracking-branch",data:{branch:a}});sx(t.tracking);let l=t.tracking?.remote,n=l&&s.remotes.includes(l)?l:s.remotes[0];so(n),sw(!0);let r=await H({repoPath:e,action:"get-remote-branches",data:{remote:n}});sd(r.branches||[]),t.tracking?.remote===n&&t.tracking?.branch?sm(t.tracking.branch):sm("")}catch(e){console.error(e),sN(e.message||"Failed to load remote information")}finally{sk(!1),sw(!1)}},lB=async a=>{so(a),sw(!0),sd([]),sm("");try{let s=await H({repoPath:e,action:"get-remote-branches",data:{remote:a}});sd(s.branches||[]),su?.remote===a&&su?.branch?sm(su.branch):sm("")}catch(e){console.error(e),sN(e.message||"Failed to load remote branches")}finally{sw(!1)}},lM=async()=>{if(st&&si&&sh){sg(!0),sN(null);try{await H({repoPath:e,action:"pull-from-remote",data:{localBranch:st,remote:si,remoteBranch:sh,rebase:sp}}),ss(!1),sl(null)}catch(e){console.error(e),sN(e.message||"Failed to pull from remote")}finally{sg(!1)}}},lP=e=>{sB(e),sP(e.split("/").slice(2).join("/")),s$(!0)},lF=async()=>{if(sE&&sM){sD(!0);try{await H({repoPath:e,action:"checkout-to-local",data:{remoteBranch:sE,localBranch:sM}}),s$(!1),sB(null),sP("")}catch(e){console.error(e)}finally{sD(!1)}}},lD=async()=>{sS(!0);try{await H({repoPath:e,action:"fetch",data:{allRemotes:!0}})}catch(e){console.error(e)}finally{sS(!1)}},lT=async a=>{try{await H({repoPath:e,action:"fetch",data:{remote:a}})}catch(e){console.error(e)}},lL=async a=>{try{await H({repoPath:e,action:"checkout",data:{branch:a}})}catch(e){console.error(e)}},lA=async e=>{sO(e),sL(!0)},lO=async()=>{if(sA){sH(!0);try{await H({repoPath:e,action:"reset",data:{commitHash:sA,mode:"hard"}}),sL(!1),sO(null)}catch(e){console.error(e)}finally{sH(!1)}}},lI=async()=>{if(sW){sV(!0);try{await H({repoPath:e,action:"revert",data:{commitHash:sW.hash}}),sK(!1),sz(null)}catch(e){console.error(e)}finally{sV(!1)}}},lH=async()=>{if(sJ&&sQ.trim()){s2(!0);try{let a,s;await H({repoPath:e,action:"reword",data:{commitHash:sJ.hash,message:(a=sQ.trim(),(s=sZ.replace(/\r\n/g,"\n")).trim()?`${a}
5
+
6
+ ${s}`:a),branch:sJ.branch}}),tf()}catch(e){console.error(e)}finally{s2(!1)}}},l_=e=>{if(!(e instanceof Error))return!1;let a=e.message.toLowerCase();return a.includes("cherry-pick")&&a.includes("already in progress")},lK=e=>{if(!(e instanceof Error))return!1;let a=e.message.toLowerCase();return a.includes("could not apply")||a.includes("conflict")||a.includes("cherry-pick --continue")},lW=(0,n.useCallback)(async a=>{1===a.length?await H({repoPath:e,action:"cherry-pick",data:{commitHash:a[0]}}):await H({repoPath:e,action:"cherry-pick-multiple",data:{commitHashes:a}})},[e,H]),lz=(0,n.useCallback)(async()=>{try{await H({repoPath:e,action:"cherry-pick-abort"})}catch(e){console.error(e)}finally{ek(!1),e$(!1),ew([])}},[e,H]),lq=async()=>{if(0!==ev.length){eS(!0);try{let e=ev.map(e=>e.hash);await lW(e),ek(!1),ew([])}catch(e){l_(e)?(ek(!1),e$(!0)):lK(e)&&await lz(),console.error(e)}finally{eS(!1)}}},lV=async()=>{if(0===ev.length)return void e$(!1);eB(!0);try{await H({repoPath:e,action:"cherry-pick-abort"});let a=ev.map(e=>e.hash);await lW(a),e$(!1),ew([])}catch(e){l_(e)?e$(!0):lK(e)&&await lz(),console.error(e)}finally{eB(!1)}},lG=async()=>{if(W){Y(!0);try{await H({repoPath:e,action:"branch",data:{branch:W,fromRef:q||void 0}}),K(!1),z(""),V(null)}catch(e){console.error(e)}finally{Y(!1)}}},lY=e=>{V(e||null),K(!0)},lJ=async()=>{if(Q&&Z.trim()){el(!0);try{await H({repoPath:e,action:"create-tag",data:{tagName:Z.trim(),commitHash:Q,pushToRemote:ea}}),U(!1),X(null),ee(""),es(!1)}catch(e){console.error(e)}finally{el(!1)}}},lU=R?.current,lQ=R?.trackingInfo,lX=(0,n.useMemo)(()=>Object.keys(R?.remoteUrls??{}).sort((e,a)=>"origin"===e?-1:"origin"===a?1:e.localeCompare(a)),[R?.remoteUrls])[0]||null,lZ=(0,n.useMemo)(()=>{let e=[];for(let a of ei){if(a.startsWith("remotes/"))continue;let s=lQ?.[a]?.upstream;s&&e.push(s)}return Array.from(new Set(e))},[ei,lQ]),l0=(0,n.useMemo)(()=>!eF||eT?null:lQ?.[eF]??null,[eF,eT,lQ]),l1=P?.files?.length,l2=lU||($?"Loading branches...":"Detached HEAD"),l4=lU&&"number"==typeof l1&&l1>0?`${lU} (${l1})`:l2,l3=(0,n.useMemo)(()=>{if(!lU)return null;let e=lQ?.[lU];if(!e?.upstream)return null;let a=e.upstream.indexOf("/");return a<=0?null:{upstream:e.upstream,remote:e.upstream.slice(0,a),branch:e.upstream.slice(a+1)}},[lU,lQ]),l5=(0,n.useMemo)(()=>$?"Loading branches...":lU?l3?null:`Branch "${lU}" has no tracking remote branch`:"Not on a local branch",[lU,l3,$]),l7=(0,n.useMemo)(()=>$?"Loading branches...":lU?null:"Not on a local branch",[lU,$]),l6=e=>{let a=function(e,a){let{branchRef:s,branchLeafName:l,currentBranch:n,isRemote:r,selectedBranchRefs:i}=e,o=!r&&s===n,c=i&&i.length>0?i:[s],d=c.length>1,h=[];return o||r||h.push({label:"Checkout",onClick:()=>a.onCheckout(s)}),r&&h.push({label:"Checkout to local",onClick:()=>a.onCheckoutToLocal(s)}),h.push({label:"Create Branch",onClick:()=>a.onCreateBranch(s)}),r||h.push({label:"Rename Branch",onClick:()=>a.onRenameBranch(s)}),r&&h.push({label:"Rename branch",onClick:()=>a.onRenameRemoteBranch(s)}),r||h.push({label:"Push to Remote",onClick:()=>a.onPushToRemote(s)}),r||h.push({label:"Pull from Remote",onClick:()=>a.onPullFromRemote(s)}),!o&&n&&(h.push({label:`Rebase ${n} onto ${l}`,labelNode:(0,t.jsxs)(t.Fragment,{children:["Rebase ",(0,t.jsx)("span",{className:"font-bold",children:n})," onto ",l]}),onClick:()=>a.onRebase({sourceBranch:n,targetBranch:s})}),h.push({label:`Rebase ${l} onto ${n}`,labelNode:(0,t.jsxs)(t.Fragment,{children:["Rebase ",l," onto ",(0,t.jsx)("span",{className:"font-bold",children:n})]}),onClick:()=>a.onRebase({sourceBranch:s,targetBranch:n})}),h.push({label:`Merge ${n} into ${l}`,labelNode:(0,t.jsxs)(t.Fragment,{children:["Merge ",(0,t.jsx)("span",{className:"font-bold",children:n})," into ",l]}),onClick:()=>a.onMerge({sourceBranch:n,targetBranch:s})}),h.push({label:`Merge ${l} into ${n}`,labelNode:(0,t.jsxs)(t.Fragment,{children:["Merge ",l," into ",(0,t.jsx)("span",{className:"font-bold",children:n})]}),onClick:()=>a.onMerge({sourceBranch:s,targetBranch:n})})),o||(d?h.push({label:`Delete Selected Branches (${c.length})`,onClick:()=>a.onDeleteBranches(c),danger:!0}):h.push({label:r?"Delete Remote Branch":"Delete Branch",onClick:()=>a.onDeleteBranch(s),danger:!0})),h}(e,{onCheckout:lL,onCheckoutToLocal:lP,onCreateBranch:lY,onDeleteBranch:lc,onDeleteBranches:lo,onRenameBranch:lx,onRenameRemoteBranch:lp,onRebase:lN,onMerge:lk,onPushToRemote:lC,onPullFromRemote:lE});return t_.length>0&&a.push({label:"Custom scripts",children:t_.map(a=>({label:a.name,onClick:()=>{ln(a,e.branchRef)}}))}),a},l8=(0,n.useMemo)(()=>new Set(R?.branches??[]),[R?.branches]),l9=(0,n.useMemo)(()=>{let e=new Map;if(!R?.remotes)return e;for(let[a,s]of Object.entries(R.remotes))for(let t of s)e.set(`${a}/${t}`,`remotes/${a}/${t}`);return e},[R?.remotes]),ne=(0,n.useMemo)(()=>tT?B(tT).filter(e=>e!==lU):[],[tT,lU]),na=(0,t.jsxs)("div",{className:"w-[22rem] max-w-[calc(100vw-2rem)] flex flex-col border border-base-300 bg-base-100 rounded-box shadow-xl overflow-hidden",children:[(0,t.jsxs)("div",{className:"px-4 border-b border-base-300 flex items-center justify-between bg-base-100 h-[57px] shrink-0",children:[(0,t.jsx)("h2",{className:"font-bold text-lg",children:"Branches"}),(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[le&&(0,t.jsx)("div",{className:"tooltip tooltip-left z-20","data-tip":"Clear filters",children:(0,t.jsx)("button",{className:"btn btn-ghost btn-xs btn-square",onClick:t4,children:(0,t.jsx)("i",{className:"iconoir-filter text-[16px]","aria-hidden":"true"})})}),(0,t.jsx)("div",{className:"tooltip tooltip-left z-20","data-tip":"Create Branch",children:(0,t.jsx)("button",{className:"btn btn-ghost btn-xs btn-square",onClick:()=>lY(),children:(0,t.jsx)("i",{className:"iconoir-plus-circle text-[16px]","aria-hidden":"true"})})})]})]}),(0,t.jsx)("div",{className:"max-h-[70vh] overflow-auto",children:(0,t.jsxs)("div",{className:"p-2 space-y-0.5",children:[tT&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o,{items:[{label:"Delete",onClick:()=>lo(ne),danger:!0,disabled:0===ne.length}],children:(0,t.jsx)(S,{name:"Branches",groupPath:"__local__",icon:(0,t.jsx)("i",{className:"iconoir-git-branch text-[14px]","aria-hidden":"true"}),isExpanded:tK,onToggle:tZ,visibilityMap:tV,onToggleVisibility:t2})}),tK&&(0,t.jsx)(M,{node:tT,currentBranch:R?.current,expandedFolders:tY,onToggleFolder:t1,onCheckout:lL,onCheckoutToLocal:lP,onCreateBranch:()=>lY(),onDeleteBranch:lc,onRenameBranch:lx,onRenameRemoteBranch:lp,onRebase:lN,onMerge:lk,onPushToRemote:lC,onPullFromRemote:lE,getBranchContextMenuItems:l6,onBranchClick:lt,onBranchContextMenu:ll,onDeleteBranchGroup:lo,selectedBranches:tO,visibilityMap:tV,onToggleVisibility:t2,depth:1,groupPath:"__local__",trackingInfo:R?.trackingInfo})]}),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o,{items:[{label:"Fetch from all remotes",onClick:lD},{label:"Add remote",onClick:()=>{e7("origin"),e8(""),e3(!0)}}],children:(0,t.jsx)(S,{name:"Remotes",groupPath:"__remotes__",icon:(0,t.jsx)("i",{className:"iconoir-globe text-[14px]","aria-hidden":"true"}),isExpanded:tz,onToggle:t0,visibilityMap:tV,onToggleVisibility:t2})}),tz&&$&&!tL&&(0,t.jsxs)("div",{className:"flex items-center gap-2 px-2 py-2 text-sm opacity-70",style:{paddingLeft:"20px"},children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),(0,t.jsx)("span",{children:"Loading remotes..."})]}),tz&&tL&&Array.from(tL.entries()).map(([e,a])=>{let s=`__remotes__/${e}`,l=tY.has(s);return(0,t.jsxs)("div",{children:[(0,t.jsx)(o,{items:[{label:`Fetch from ${e}`,onClick:()=>lT(e)},{label:"Rename",onClick:()=>{eV(e),eY(e),ez(!0)}},{label:"Delete",onClick:()=>{e&&(e0(e),eX(!0))},danger:!0}],children:(0,t.jsx)(S,{name:e,groupPath:s,icon:(0,t.jsx)("i",{className:"iconoir-globe text-[14px] opacity-50","aria-hidden":"true"}),isExpanded:l,onToggle:()=>t1(s),visibilityMap:tV,onToggleVisibility:t2,depth:1})}),l&&(0,t.jsx)(M,{node:a,currentBranch:R?.current,expandedFolders:tY,onToggleFolder:t1,onCheckout:lL,onCheckoutToLocal:lP,onCreateBranch:()=>lY(),onDeleteBranch:lc,onRenameBranch:lx,onRenameRemoteBranch:lp,onRebase:lN,onMerge:lk,onPushToRemote:lC,onPullFromRemote:lE,getBranchContextMenuItems:l6,onBranchClick:lt,onBranchContextMenu:ll,onDeleteBranchGroup:lo,selectedBranches:tO,visibilityMap:tV,onToggleVisibility:t2,depth:2,groupPath:s,isRemote:!0,trackingInfo:R?.trackingInfo})]},e)})]})]})})]});return m&&100===r?(0,t.jsx)("div",{className:"flex items-center justify-center p-8 h-full",children:(0,t.jsx)("span",{className:"loading loading-spinner text-base-content/50"})}):u?(0,t.jsxs)("div",{className:"flex items-center justify-center p-8 h-full flex-col gap-4",children:[(0,t.jsx)("p",{className:"text-error font-medium",children:"Error Loading History"}),(0,t.jsx)("p",{className:"text-sm opacity-70",children:N?.message||"An unknown error occurred"}),(0,t.jsxs)("button",{onClick:()=>y(),className:"btn btn-outline btn-sm",children:[(0,t.jsx)("i",{className:"iconoir-refresh-circle text-[16px] mr-1","aria-hidden":"true"}),"Try Again"]})]}):h?(0,t.jsxs)("div",{className:"flex h-full overflow-hidden",children:[sT&&(0,t.jsxs)("dialog",{className:"modal modal-open",children:[(0,t.jsxs)("div",{className:"modal-box",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:"Reset to Commit"}),(0,t.jsxs)("p",{className:"py-4 break-words",children:["Are you sure you want to hard reset the current branch to commit ",(0,t.jsx)("span",{className:"font-mono bg-base-200 px-1 rounded",children:sA?.substring(0,7)}),"?",(0,t.jsx)("br",{}),(0,t.jsx)("span",{className:"text-error font-bold",children:"Warning: This will discard all local changes and commits after this point. This action cannot be undone."})]}),(0,t.jsxs)("div",{className:"modal-action",children:[(0,t.jsx)("button",{className:"btn",onClick:()=>sL(!1),disabled:sI,children:"Cancel"}),(0,t.jsxs)("button",{className:"btn btn-error",onClick:lO,disabled:sI,children:[sI&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Reset"]})]})]}),(0,t.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,t.jsx)("button",{onClick:()=>sL(!1),children:"close"})})]}),s_&&(0,t.jsxs)("dialog",{className:"modal modal-open",children:[(0,t.jsxs)("div",{className:"modal-box",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:"Revert Commit"}),(0,t.jsxs)("p",{className:"py-4 break-words",children:["Are you sure you want to revert commit ",(0,t.jsx)("span",{className:"font-mono bg-base-200 px-1 rounded",children:sW?.hash.substring(0,7)})," on ",(0,t.jsx)("span",{className:"font-bold break-all",children:R?.current||"current"}),"?"]}),sW?.message&&(0,t.jsx)("div",{className:"rounded border border-base-300 bg-base-200/40 px-3 py-2 text-xs break-words",children:sW.message}),(0,t.jsxs)("div",{className:"modal-action",children:[(0,t.jsx)("button",{className:"btn",onClick:()=>{sK(!1),sz(null)},disabled:sq,children:"Cancel"}),(0,t.jsxs)("button",{className:"btn btn-primary",onClick:lI,disabled:sq,children:[sq&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Revert"]})]})]}),(0,t.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,t.jsx)("button",{onClick:()=>{sK(!1),sz(null)},children:"close"})})]}),sG&&(0,t.jsxs)("dialog",{className:"modal modal-open",children:[(0,t.jsxs)("div",{className:"modal-box",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:"Reword Commit"}),(0,t.jsxs)("p",{className:"py-4 break-words",children:["Reword commit ",(0,t.jsx)("span",{className:"font-mono bg-base-200 px-1 rounded",children:sJ?.hash.substring(0,7)})," on branch ",(0,t.jsx)("span",{className:"font-bold",children:sJ?.branch}),"."]}),(0,t.jsx)("input",{type:"text",className:"input input-bordered w-full font-mono text-sm mb-3",value:sQ,onChange:e=>sX(e.target.value),autoFocus:!0,onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&sQ.trim()&&!s1&&(e.preventDefault(),lH())},placeholder:"Commit subject",disabled:s1}),(0,t.jsx)("textarea",{className:"textarea textarea-bordered w-full h-32 font-mono text-sm",value:sZ,onChange:e=>s0(e.target.value),onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&sQ.trim()&&!s1&&(e.preventDefault(),lH())},placeholder:"Commit message body (optional)",disabled:s1}),sJ?.branch!==R?.current&&(0,t.jsx)("div",{className:"alert alert-warning text-xs mt-2 py-2",children:(0,t.jsxs)("span",{children:["This will briefly checkout ",(0,t.jsx)("b",{children:sJ?.branch})," to amend the commit."]})}),(0,t.jsxs)("div",{className:"modal-action",children:[(0,t.jsx)("button",{className:"btn",onClick:tf,disabled:s1,children:"Cancel"}),(0,t.jsxs)("button",{className:"btn btn-primary",onClick:lH,disabled:!sQ.trim()||s1,children:[s1&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Reword"]})]})]}),(0,t.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,t.jsx)("button",{onClick:tf,children:"close"})})]}),en&&(0,t.jsxs)("dialog",{className:"modal modal-open",children:[(0,t.jsxs)("div",{className:"modal-box",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:ei.length>1?"Delete Branches":"Delete Branch"}),ei.length>1?(0,t.jsxs)("div",{className:"py-4 space-y-3",children:[(0,t.jsxs)("p",{className:"break-words",children:["Are you sure you want to delete ",(0,t.jsxs)("span",{className:"font-bold",children:[ei.length," selected branches"]}),"? This action cannot be undone."]}),(0,t.jsx)("div",{className:"max-h-44 overflow-auto rounded border border-base-300 bg-base-200/40 p-2 space-y-1",children:ei.map(e=>(0,t.jsx)("div",{className:"text-xs min-w-0 break-all",children:e.startsWith("remotes/")?e.slice(8):e},e))})]}):(0,t.jsxs)("p",{className:"py-4 break-words",children:["Are you sure you want to delete the branch ",(0,t.jsx)("span",{className:"font-bold break-all",children:ei[0]?.startsWith("remotes/")?ei[0].slice(8):ei[0]}),"? This action cannot be undone."]}),lZ.length>0&&(0,t.jsx)("div",{className:"form-control",children:(0,t.jsxs)("label",{className:"label cursor-pointer justify-start items-start gap-2 min-w-0",children:[(0,t.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:ec,onChange:e=>ed(e.target.checked),disabled:eh}),(0,t.jsx)("span",{className:"label-text break-words whitespace-normal",children:1===lZ.length?(0,t.jsxs)(t.Fragment,{children:["Delete tracking remote branch ",(0,t.jsx)("span",{className:"font-mono opacity-70 break-all",children:lZ[0]})]}):(0,t.jsxs)(t.Fragment,{children:["Delete ",lZ.length," tracking remote branches"]})})]})}),(0,t.jsxs)("div",{className:"modal-action",children:[(0,t.jsx)("button",{className:"btn",onClick:()=>{er(!1),eo([]),ed(!1)},disabled:eh,children:"Cancel"}),(0,t.jsxs)("button",{className:"btn btn-error",onClick:lm,disabled:eh,children:[eh&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Delete"]})]})]}),(0,t.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,t.jsx)("button",{onClick:()=>{er(!1),eo([]),ed(!1)},children:"close"})})]}),eu&&(0,t.jsxs)("dialog",{className:"modal modal-open",children:[(0,t.jsxs)("div",{className:"modal-box",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:"Delete Tag"}),(0,t.jsxs)("p",{className:"py-4 break-words",children:["Are you sure you want to delete the tag ",(0,t.jsx)("span",{className:"font-bold break-all",children:ep}),"? This action cannot be undone."]}),(0,t.jsx)("div",{className:"form-control",children:(0,t.jsxs)("label",{className:"label cursor-pointer justify-start items-start gap-2 min-w-0",children:[(0,t.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:ef,onChange:e=>eg(e.target.checked),disabled:ej||!lX}),(0,t.jsx)("span",{className:"label-text break-words whitespace-normal",children:lX?(0,t.jsxs)(t.Fragment,{children:["Also delete from remote ",(0,t.jsx)("span",{className:"font-mono opacity-70",children:lX})]}):"No remote configured"})]})}),(0,t.jsxs)("div",{className:"modal-action",children:[(0,t.jsx)("button",{className:"btn",onClick:ld,disabled:ej,children:"Cancel"}),(0,t.jsxs)("button",{className:"btn btn-error",onClick:lu,disabled:ej||!ep,children:[ej&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Delete"]})]})]}),(0,t.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,t.jsx)("button",{onClick:ld,children:"close"})})]}),ey&&(0,t.jsxs)("dialog",{className:"modal modal-open",children:[(0,t.jsxs)("div",{className:"modal-box",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:"Cherry Pick"}),(0,t.jsx)("p",{className:"text-sm opacity-70 mt-1",children:ev.length>1?"Apply selected commits from oldest to newest":"Apply changes from the selected commit"}),1===ev.length?(0,t.jsxs)("p",{className:"py-4 break-words",children:["Are you sure to apply ",(0,t.jsx)("span",{className:"font-bold font-mono break-all",children:ev[0]?.hash})," ",(0,t.jsx)("span",{className:"font-bold break-words",children:ev[0]?.message})," to ",(0,t.jsx)("span",{className:"font-bold break-all",children:R?.current||"current"})," branch?"]}):(0,t.jsxs)("div",{className:"py-4 space-y-3",children:[(0,t.jsxs)("p",{className:"break-words",children:["Are you sure to apply ",(0,t.jsxs)("span",{className:"font-bold",children:[ev.length," selected commits"]})," to ",(0,t.jsx)("span",{className:"font-bold break-all",children:R?.current||"current"})," branch?"]}),(0,t.jsx)("div",{className:"max-h-44 overflow-auto rounded border border-base-300 bg-base-200/40 p-2 space-y-1",children:ev.map(e=>(0,t.jsxs)("div",{className:"text-xs min-w-0",children:[(0,t.jsx)("span",{className:"font-mono opacity-70",children:e.hash.slice(0,7)})," ",(0,t.jsx)("span",{className:"break-words",children:e.message})]},e.hash))})]}),(0,t.jsxs)("div",{className:"modal-action",children:[(0,t.jsx)("button",{className:"btn",onClick:()=>{ek(!1),ew([])},disabled:eC,children:"Cancel"}),(0,t.jsxs)("button",{className:"btn btn-primary",onClick:lq,disabled:eC,children:[eC&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Confirm"]})]})]}),(0,t.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,t.jsx)("button",{onClick:()=>{ek(!1),ew([])},children:"close"})})]}),eR&&(0,t.jsxs)("dialog",{className:"modal modal-open",children:[(0,t.jsxs)("div",{className:"modal-box",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:"Cherry Pick In Progress"}),(0,t.jsx)("p",{className:"text-sm opacity-70 mt-1",children:"Another cherry-pick operation is currently in progress."}),(0,t.jsxs)("p",{className:"py-4 break-words",children:["Abort the in-progress cherry-pick and continue with ",ev.length>1?"the selected commits":"this commit","?"]}),(0,t.jsxs)("div",{className:"modal-action",children:[(0,t.jsx)("button",{className:"btn",onClick:()=>{e$(!1),ew([])},disabled:eE,children:"Cancel"}),(0,t.jsxs)("button",{className:"btn btn-warning",onClick:()=>void lV(),disabled:eE,children:[eE&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Abort and Continue"]})]})]}),(0,t.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,t.jsx)("button",{onClick:()=>{e$(!1),ew([])},children:"close"})})]}),eM&&(0,t.jsxs)("dialog",{className:"modal modal-open",children:[(0,t.jsxs)("div",{className:"modal-box",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:eT?"Rename Remote Branch":"Rename Branch"}),(0,t.jsxs)("p",{className:"py-4 break-words",children:["Enter a new name for the branch ",(0,t.jsx)("span",{className:"font-bold break-all",children:eF}),". Press ",(0,t.jsx)("kbd",{className:"kbd kbd-sm",children:"Cmd"}),"+",(0,t.jsx)("kbd",{className:"kbd kbd-sm",children:"Enter"})," to confirm."]}),(0,t.jsx)("input",{type:"text",className:"input input-bordered w-full",value:eA,onChange:e=>eO((0,i.L9)(e.target.value)),placeholder:"New branch name",disabled:e_,autoFocus:!0,onKeyDown:e=>{let a="Enter"===e.key&&(e.metaKey||e.ctrlKey),s=eT?eA===eT.branch:eA===eF;a&&eA&&!s&&!e_&&lb()}}),!eT&&l0?.upstream&&(0,t.jsx)("div",{className:"form-control mt-2",children:(0,t.jsxs)("label",{className:"label cursor-pointer justify-start items-start gap-2 min-w-0",children:[(0,t.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:eI,onChange:e=>eH(e.target.checked),disabled:e_}),(0,t.jsxs)("span",{className:"label-text break-words whitespace-normal",children:["Also rename tracking remote branch ",(0,t.jsx)("span",{className:"font-mono opacity-70 break-all",children:l0.upstream})]})]})}),(0,t.jsxs)("div",{className:"modal-action",children:[(0,t.jsx)("button",{className:"btn",onClick:tu,disabled:e_,children:"Cancel"}),(0,t.jsxs)("button",{className:"btn btn-primary",onClick:lb,disabled:!eA||(eT?eA===eT.branch:eA===eF)||e_,children:[e_&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Rename"]})]})]}),(0,t.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,t.jsx)("button",{onClick:tu,children:"close"})})]}),eW&&(0,t.jsxs)("dialog",{className:"modal modal-open",children:[(0,t.jsxs)("div",{className:"modal-box",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:"Rename Remote"}),(0,t.jsxs)("p",{className:"py-4 break-words",children:["Enter a new name for remote ",(0,t.jsx)("span",{className:"font-bold break-all",children:eq}),". Press ",(0,t.jsx)("kbd",{className:"kbd kbd-sm",children:"Cmd"}),"+",(0,t.jsx)("kbd",{className:"kbd kbd-sm",children:"Enter"})," to confirm."]}),(0,t.jsx)("input",{type:"text",className:"input input-bordered w-full",value:eG,onChange:e=>eY(e.target.value),placeholder:"New remote name",disabled:eJ,autoFocus:!0,onKeyDown:e=>{let a="Enter"===e.key&&(e.metaKey||e.ctrlKey),s=eG.trim(),t=s===(eq??"").trim();a&&s&&!t&&!eJ&&lf()}}),(0,t.jsxs)("div",{className:"modal-action",children:[(0,t.jsx)("button",{className:"btn",onClick:tx,disabled:eJ,children:"Cancel"}),(0,t.jsxs)("button",{className:"btn btn-primary",onClick:lf,disabled:!eG.trim()||eG.trim()===(eq??"").trim()||eJ,children:[eJ&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Rename"]})]})]}),(0,t.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,t.jsx)("button",{onClick:tx,children:"close"})})]}),eQ&&(0,t.jsxs)("dialog",{className:"modal modal-open",children:[(0,t.jsxs)("div",{className:"modal-box",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:"Delete Remote"}),(0,t.jsxs)("p",{className:"py-4 break-words",children:["Are you sure you want to delete remote ",(0,t.jsx)("span",{className:"font-bold break-all",children:eZ}),"? This removes all tracking branches for that remote."]}),(0,t.jsxs)("div",{className:"modal-action",children:[(0,t.jsx)("button",{className:"btn",onClick:tp,disabled:e1,children:"Cancel"}),(0,t.jsxs)("button",{className:"btn btn-error",onClick:lg,disabled:!eZ||e1,children:[e1&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Delete"]})]})]}),(0,t.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,t.jsx)("button",{onClick:tp,children:"close"})})]}),e4&&(0,t.jsxs)("dialog",{className:"modal modal-open",children:[(0,t.jsxs)("div",{className:"modal-box",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:"Add Remote"}),(0,t.jsxs)("p",{className:"py-4 break-words",children:["Add a new remote by providing a name and URL. Press ",(0,t.jsx)("kbd",{className:"kbd kbd-sm",children:"Cmd"}),"+",(0,t.jsx)("kbd",{className:"kbd kbd-sm",children:"Enter"})," to confirm."]}),(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"label pt-0",children:(0,t.jsx)("span",{className:"label-text",children:"Remote name"})}),(0,t.jsx)("input",{type:"text",className:"input input-bordered w-full",value:e5,onChange:e=>e7(e.target.value),placeholder:"origin",disabled:e9,autoFocus:!0})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"label pt-0",children:(0,t.jsx)("span",{className:"label-text",children:"Remote URL"})}),(0,t.jsx)("input",{type:"text",className:"input input-bordered w-full",value:e6,onChange:e=>e8(e.target.value),placeholder:"https://github.com/owner/repo.git",disabled:e9,onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&e5.trim()&&e6.trim()&&!e9&&lj()}})]})]}),(0,t.jsxs)("div",{className:"modal-action",children:[(0,t.jsx)("button",{className:"btn",onClick:tb,disabled:e9,children:"Cancel"}),(0,t.jsxs)("button",{className:"btn btn-primary",onClick:lj,disabled:!e5.trim()||!e6.trim()||e9,children:[e9&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Add"]})]})]}),(0,t.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,t.jsx)("button",{onClick:tb,children:"close"})})]}),aa&&(0,t.jsxs)("dialog",{className:"modal modal-open",children:[(0,t.jsxs)("div",{className:"modal-box",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:"Rebase"}),(0,t.jsxs)("p",{className:"py-4 break-words",children:["Copy commits from one branch to another.",(0,t.jsx)("br",{}),"Are you sure to rebase ",(0,t.jsx)("span",{className:"font-bold break-all",children:at})," onto ",(0,t.jsx)("span",{className:"font-bold break-all",children:an}),"?"]}),(0,t.jsx)("div",{className:"form-control",children:(0,t.jsxs)("label",{className:"label cursor-pointer justify-start gap-2",children:[(0,t.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:ai,onChange:e=>ao(e.target.checked),disabled:ac}),(0,t.jsx)("span",{className:"label-text",children:"Stash and reapply local changes"})]})}),!ai&&(0,t.jsx)("p",{className:"text-xs text-warning mt-2 ml-6",children:"Warning: All local changes will be discarded."}),"checking"===ah?(0,t.jsxs)("div",{className:"alert alert-info text-sm mt-4 py-2",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),(0,t.jsxs)("span",{children:["Checking conflicts for rebasing ",(0,t.jsx)("span",{className:"font-bold break-all",children:at})," onto ",(0,t.jsx)("span",{className:"font-bold break-all",children:an}),"..."]})]}):"no-conflict"===ah?(0,t.jsxs)("div",{className:"alert alert-success text-sm mt-4 py-2",children:[(0,t.jsx)("i",{className:"iconoir-check-circle-solid text-[18px]","aria-hidden":"true"}),(0,t.jsxs)("span",{children:["No conflict: rebasing ",(0,t.jsx)("span",{className:"font-bold break-all",children:at})," onto ",(0,t.jsx)("span",{className:"font-bold break-all",children:an})," will not cause conflicts."]})]}):(0,t.jsxs)("div",{className:"alert alert-warning text-sm mt-4 py-2",children:[(0,t.jsx)("i",{className:"iconoir-warning-circle-solid text-[18px]","aria-hidden":"true"}),(0,t.jsxs)("span",{children:["Conflicts detected: rebasing ",(0,t.jsx)("span",{className:"font-bold break-all",children:at})," onto ",(0,t.jsx)("span",{className:"font-bold break-all",children:an})," will cause conflicts."]})]}),(0,t.jsxs)("div",{className:"modal-action",children:[(0,t.jsx)("button",{className:"btn",onClick:au,disabled:ac,children:"Cancel"}),(0,t.jsxs)("button",{className:"btn btn-primary",onClick:ly,disabled:ac,children:[ac&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Confirm"]})]})]}),(0,t.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,t.jsx)("button",{onClick:au,children:"close"})})]}),ax&&(0,t.jsxs)("dialog",{className:"modal modal-open",children:[(0,t.jsxs)("div",{className:"modal-box",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:"Merge"}),(0,t.jsxs)("p",{className:"py-4 break-words",children:["Merge branch into another one.",(0,t.jsx)("br",{}),"Are you sure to merge ",(0,t.jsx)("span",{className:"font-bold break-all",children:ag})," into ",(0,t.jsx)("span",{className:"font-bold break-all",children:ab}),"?"]}),(0,t.jsx)("div",{className:"form-control",children:(0,t.jsxs)("label",{className:"label cursor-pointer justify-start gap-2",children:[(0,t.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:aN,onChange:e=>ay(e.target.checked),disabled:a$}),(0,t.jsx)("span",{className:"label-text",children:"Rebase before merge"})]})}),(0,t.jsx)("div",{className:"form-control",children:(0,t.jsxs)("label",{className:"label cursor-pointer justify-start gap-2",children:[(0,t.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:ak,onChange:e=>lv(e.target.checked),disabled:a$}),(0,t.jsx)("span",{className:"label-text",children:"Squash before merge"})]})}),ak&&(0,t.jsx)("textarea",{className:"textarea textarea-bordered w-full mt-2",placeholder:"Commit message for squash merge",value:aS,onChange:e=>aR(e.target.value),disabled:a$,autoFocus:!0}),(0,t.jsx)("div",{className:"form-control",children:(0,t.jsxs)("label",{className:"label cursor-pointer justify-start gap-2",children:[(0,t.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:aw,onChange:e=>aC(e.target.checked),disabled:a$}),(0,t.jsx)("span",{className:"label-text",children:"Fast forward merge"})]})}),"checking"===aB?(0,t.jsxs)("div",{className:"alert alert-info text-sm mt-4 py-2",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),(0,t.jsxs)("span",{children:["Checking conflicts for merging ",(0,t.jsx)("span",{className:"font-bold break-all",children:ag})," into ",(0,t.jsx)("span",{className:"font-bold break-all",children:ab}),"..."]})]}):"no-conflict"===aB?(0,t.jsxs)("div",{className:"alert alert-success text-sm mt-4 py-2",children:[(0,t.jsx)("i",{className:"iconoir-check-circle-solid text-[18px]","aria-hidden":"true"}),(0,t.jsxs)("span",{children:["No conflict: merging ",(0,t.jsx)("span",{className:"font-bold break-all",children:ag})," into ",(0,t.jsx)("span",{className:"font-bold break-all",children:ab})," will not cause conflicts."]})]}):(0,t.jsxs)("div",{className:"alert alert-warning text-sm mt-4 py-2",children:[(0,t.jsx)("i",{className:"iconoir-warning-circle-solid text-[18px]","aria-hidden":"true"}),(0,t.jsxs)("span",{children:["Conflicts detected: merging ",(0,t.jsx)("span",{className:"font-bold break-all",children:ag})," into ",(0,t.jsx)("span",{className:"font-bold break-all",children:ab})," will cause conflicts."]})]}),(0,t.jsxs)("div",{className:"modal-action",children:[(0,t.jsx)("button",{className:"btn",onClick:aP,disabled:a$,children:"Cancel"}),(0,t.jsxs)("button",{className:"btn btn-primary",onClick:lw,disabled:a$,children:[a$&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Confirm"]})]})]}),(0,t.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,t.jsx)("button",{onClick:aP,children:"close"})})]}),aF&&(0,t.jsxs)("dialog",{className:"modal modal-open",children:[(0,t.jsxs)("div",{className:"modal-box",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:"Push to Remote"}),(0,t.jsxs)("p",{className:"py-4 break-words",children:["Push ",(0,t.jsx)("span",{className:"font-bold break-all",children:aT})," to a remote repository."]}),a5&&0===aA.length?(0,t.jsxs)("div",{className:"alert alert-error",children:[(0,t.jsx)("span",{className:"text-xl",children:"⚠️"}),(0,t.jsx)("span",{children:a5})]}):a6?(0,t.jsx)("div",{className:"flex justify-center py-8",children:(0,t.jsx)("span",{className:"loading loading-spinner loading-lg"})}):(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{className:"form-control w-full flex flex-row items-center justify-between gap-4",children:[(0,t.jsx)("label",{className:"label flex-shrink-0",children:(0,t.jsx)("span",{className:"label-text",children:"Remote Repository"})}),(0,t.jsx)("select",{className:"select select-bordered w-64",value:aI,onChange:e=>lS(e.target.value),disabled:a4,children:aA.map(e=>(0,t.jsx)("option",{value:e,children:e},e))})]}),(0,t.jsxs)("div",{className:"form-control w-full flex flex-row items-center justify-between gap-4",children:[(0,t.jsx)("label",{className:"label flex-shrink-0",children:(0,t.jsx)("span",{className:"label-text",children:"Remote Branch"})}),(0,t.jsxs)("div",{className:"flex flex-col items-end gap-1 w-64",children:[a9?(0,t.jsxs)("div",{className:"flex items-center gap-2 p-3 border rounded-lg bg-base-200 opacity-70 w-full",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"})," Loading branches..."]}):(0,t.jsxs)("select",{className:"select select-bordered w-full",value:aW,onChange:e=>az(e.target.value),disabled:a4,children:[aT&&!a_.includes(aT)&&(0,t.jsxs)("option",{value:aT,children:[aT," (new)"]}),a_.map(e=>(0,t.jsxs)("option",{value:e,children:[e,aq?.remote===aI&&aq?.branch===e?" (tracking)":""]},e))]}),aW&&!a_.includes(aW)&&(0,t.jsx)("div",{className:"label",children:(0,t.jsx)("span",{className:"label-text-alt text-warning",children:"New branch will be created"})})]})]}),(0,t.jsx)("div",{className:"form-control",children:(0,t.jsxs)("label",{className:"label cursor-pointer justify-start gap-2",children:[(0,t.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:aG,onChange:e=>aY(e.target.checked),disabled:a4||aJ}),(0,t.jsx)("span",{className:"label-text",children:"Rebase onto remote branch before pushing"})]})}),(0,t.jsx)("div",{className:"form-control",children:(0,t.jsxs)("label",{className:"label cursor-pointer justify-start gap-2",children:[(0,t.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm checkbox-error",checked:aJ,onChange:e=>aU(e.target.checked),disabled:a4}),(0,t.jsx)("span",{className:"label-text text-error",children:"Force push"})]})}),(0,t.jsx)("div",{className:"form-control",children:(0,t.jsxs)("label",{className:"label cursor-pointer justify-start gap-2",children:[(0,t.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:aQ,onChange:e=>aX(e.target.checked),disabled:a4}),(0,t.jsx)("span",{className:"label-text",children:"Push all tags"})]})}),(0,t.jsx)("div",{className:"form-control",children:(0,t.jsxs)("label",{className:"label cursor-pointer justify-start gap-2",children:[(0,t.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:aZ,onChange:e=>lR(e.target.checked),disabled:a4}),(0,t.jsx)("span",{className:"label-text",children:"Squash local commits before push"})]})}),aZ&&(0,t.jsx)("textarea",{className:"textarea textarea-bordered w-full",placeholder:"Commit message for squash",value:a1,onChange:e=>a2(e.target.value),disabled:a4,autoFocus:!0}),a5&&(0,t.jsx)("div",{className:"alert alert-error text-sm",children:(0,t.jsx)("span",{children:a5})})]}),(0,t.jsxs)("div",{className:"modal-action",children:[(0,t.jsx)("button",{className:"btn",onClick:()=>aD(!1),disabled:a4,children:"Cancel"}),aA.length>0&&(0,t.jsxs)("button",{className:"btn btn-primary",onClick:l$,disabled:a4||!aI||!aW,children:[a4&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"})," Push"]})]})]}),(0,t.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,t.jsx)("button",{onClick:()=>aD(!1),children:"close"})})]}),sa&&(0,t.jsxs)("dialog",{className:"modal modal-open",children:[(0,t.jsxs)("div",{className:"modal-box",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:"Pull from Remote"}),(0,t.jsxs)("p",{className:"py-4 break-words",children:["Pull changes from a remote branch into ",(0,t.jsx)("span",{className:"font-bold break-all",children:st}),"."]}),sj&&0===sn.length?(0,t.jsx)("div",{className:"alert alert-error",children:(0,t.jsx)("span",{children:sj})}):sy?(0,t.jsx)("div",{className:"flex justify-center py-8",children:(0,t.jsx)("span",{className:"loading loading-spinner loading-lg"})}):(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{className:"form-control w-full flex flex-row items-center justify-between gap-4",children:[(0,t.jsx)("label",{className:"label flex-shrink-0",children:(0,t.jsx)("span",{className:"label-text",children:"Remote Repository"})}),(0,t.jsx)("select",{className:"select select-bordered w-64",value:si,onChange:e=>lB(e.target.value),disabled:sf,children:sn.map(e=>(0,t.jsx)("option",{value:e,children:e},e))})]}),(0,t.jsxs)("div",{className:"form-control w-full flex flex-row items-center justify-between gap-4",children:[(0,t.jsx)("label",{className:"label flex-shrink-0",children:(0,t.jsx)("span",{className:"label-text",children:"Remote Branch"})}),sv?(0,t.jsxs)("div",{className:"flex items-center gap-2 p-3 border rounded-lg bg-base-200 opacity-70 w-64",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"})," Loading branches..."]}):(0,t.jsx)("select",{className:"select select-bordered w-64",value:sh,onChange:e=>sm(e.target.value),disabled:sf,children:sc.map(e=>(0,t.jsxs)("option",{value:e,children:[e,su?.remote===si&&su?.branch===e?" (tracking)":""]},e))})]}),(0,t.jsx)("div",{className:"form-control",children:(0,t.jsxs)("label",{className:"label cursor-pointer justify-start gap-2",children:[(0,t.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:sp,onChange:e=>sb(e.target.checked),disabled:sf}),(0,t.jsx)("span",{className:"label-text",children:"Rebase onto remote branch"})]})}),sj&&(0,t.jsx)("div",{className:"alert alert-error text-sm",children:(0,t.jsx)("span",{children:sj})})]}),(0,t.jsxs)("div",{className:"modal-action",children:[(0,t.jsx)("button",{className:"btn",onClick:()=>ss(!1),disabled:sf,children:"Cancel"}),sn.length>0&&(0,t.jsxs)("button",{className:"btn btn-primary",onClick:lM,disabled:sf||!si||!sh,children:[sf&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"})," Pull"]})]})]}),(0,t.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,t.jsx)("button",{onClick:()=>ss(!1),children:"close"})})]}),J&&(0,t.jsxs)("dialog",{className:"modal modal-open",children:[(0,t.jsxs)("div",{className:"modal-box",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:"Create Tag"}),(0,t.jsxs)("p",{className:"py-4 break-words",children:["Create a new tag at commit ",(0,t.jsx)("span",{className:"font-mono bg-base-200 px-1 rounded",children:Q?.substring(0,7)}),"."]}),(0,t.jsx)("input",{type:"text",className:"input input-bordered w-full font-mono",value:Z,onChange:e=>ee(e.target.value),placeholder:"Tag name",disabled:et,autoFocus:!0,onKeyDown:e=>{"Enter"===e.key&&Z.trim()&&!et&&lJ()}}),(0,t.jsx)("div",{className:"form-control mt-3",children:(0,t.jsxs)("label",{className:"label cursor-pointer justify-start gap-2",children:[(0,t.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:ea,onChange:e=>es(e.target.checked),disabled:et}),(0,t.jsx)("span",{className:"label-text",children:"Push tag to remote after creation"})]})}),(0,t.jsxs)("div",{className:"modal-action",children:[(0,t.jsx)("button",{className:"btn",onClick:()=>{U(!1),X(null),ee(""),es(!1)},disabled:et,children:"Cancel"}),(0,t.jsxs)("button",{className:"btn btn-primary",onClick:lJ,disabled:!Z.trim()||et,children:[et&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Create"]})]})]}),(0,t.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,t.jsx)("button",{onClick:()=>{U(!1),X(null),ee(""),es(!1)},children:"close"})})]}),_&&(0,t.jsxs)("dialog",{className:"modal modal-open",children:[(0,t.jsxs)("div",{className:"modal-box",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:"Create New Branch"}),(0,t.jsxs)("p",{className:"py-4 break-words",children:["Create a new branch from"," ",(0,t.jsx)("span",{className:"font-bold break-all",children:q?q.replace(/^remotes\//,""):"current HEAD"}),"."]}),(0,t.jsx)("input",{type:"text",className:"input input-bordered w-full",value:W,onChange:e=>z((0,i.L9)(e.target.value)),placeholder:"Branch name",disabled:G,autoFocus:!0,onKeyDown:e=>{"Enter"===e.key&&W&&!G&&lG()}}),(0,t.jsxs)("div",{className:"modal-action",children:[(0,t.jsx)("button",{className:"btn",onClick:()=>{K(!1),V(null)},disabled:G,children:"Cancel"}),(0,t.jsxs)("button",{className:"btn btn-primary",onClick:lG,disabled:!W||G,children:[G&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"})," Create & Checkout"]})]})]}),(0,t.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,t.jsx)("button",{onClick:()=>{K(!1),V(null)},children:"close"})})]}),sR&&(0,t.jsxs)("dialog",{className:"modal modal-open",children:[(0,t.jsxs)("div",{className:"modal-box",children:[(0,t.jsx)("h3",{className:"font-bold text-lg",children:"Checkout to Local Branch"}),(0,t.jsxs)("p",{className:"py-4 break-words",children:["Create a local branch from ",(0,t.jsx)("span",{className:"font-bold break-all",children:sE?.replace(/^remotes\//,"")})," and set up tracking."]}),(0,t.jsxs)("div",{className:"form-control w-full",children:[(0,t.jsx)("label",{className:"label",children:(0,t.jsx)("span",{className:"label-text",children:"Local Branch Name"})}),(0,t.jsx)("input",{type:"text",className:"input input-bordered w-full",value:sM,onChange:e=>sP((0,i.L9)(e.target.value)),placeholder:"Local branch name",disabled:sF,autoFocus:!0,onKeyDown:e=>{"Enter"===e.key&&sM&&!sF&&lF()}})]}),(0,t.jsxs)("div",{className:"modal-action",children:[(0,t.jsx)("button",{className:"btn",onClick:()=>s$(!1),disabled:sF,children:"Cancel"}),(0,t.jsxs)("button",{className:"btn btn-primary",onClick:lF,disabled:!sM||sF,children:[sF&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"})," Checkout"]})]})]}),(0,t.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,t.jsx)("button",{onClick:()=>s$(!1),children:"close"})})]}),tt.isOpen&&(0,t.jsxs)("dialog",{className:"modal modal-open",children:[(0,t.jsxs)("div",{className:"modal-box max-w-4xl",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("h3",{className:"font-bold text-lg truncate",children:["Custom Script: ",tt.scriptName]}),(0,t.jsxs)("p",{className:"text-xs opacity-70 mt-1 break-all",children:["Branch: ",tt.branchRef]})]}),(0,t.jsx)("span",{className:(0,i.cn)("badge badge-sm shrink-0","running"===tt.status||"starting"===tt.status?"badge-info":"completed"===tt.status?"badge-success":"failed"===tt.status?"badge-error":"canceled"===tt.status?"badge-warning":"badge-ghost"),children:tt.status})]}),(0,t.jsx)("div",{className:"mt-4 border border-base-300 rounded bg-base-200/40",children:(0,t.jsx)("pre",{className:"p-3 font-mono text-xs overflow-auto max-h-[50vh] whitespace-pre-wrap break-words",children:tt.output||"Waiting for output..."})}),tt.error&&(0,t.jsx)("div",{className:"alert alert-error py-2 mt-3",children:(0,t.jsx)("span",{children:tt.error})}),(0,t.jsxs)("div",{className:"modal-action",children:[(0,t.jsxs)("button",{className:"btn btn-warning",onClick:()=>void lr(),disabled:!th||tn,children:[tn&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Cancel"]}),(0,t.jsxs)("button",{className:"btn btn-outline",onClick:()=>void li(),disabled:ti,children:[ti&&(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),tc?"Copied":"Copy"]}),(0,t.jsx)("button",{className:"btn btn-primary",onClick:()=>{tl(j),td(!1),tr(!1)},disabled:!tm,children:"Done"})]})]}),(0,t.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,t.jsx)("button",{onClick:e=>{tm?(tl(j),td(!1),tr(!1)):e.preventDefault()},children:"close"})})]}),(0,t.jsxs)("div",{className:"flex-1 flex flex-col min-w-0 bg-base-100",children:[(0,t.jsx)("div",{className:"h-[57px] flex items-center px-6 border-b border-base-300 shrink-0",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,t.jsx)("h1",{className:"font-bold text-lg",children:"History"}),(0,t.jsxs)("div",{className:"relative",ref:ts,children:[(0,t.jsxs)("button",{className:"btn btn-sm gap-2 max-w-[24rem]",onClick:()=>ta(e=>!e),title:l4,children:[(0,t.jsx)("span",{className:"truncate",children:l4}),(0,t.jsx)("i",{className:(0,i.cn)("iconoir-nav-arrow-down text-[16px] shrink-0 transition-transform",te&&"rotate-180"),"aria-hidden":"true"})]}),te&&(0,t.jsx)("div",{className:"absolute left-0 top-full mt-2 z-50",children:na})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,t.jsxs)("button",{className:"btn btn-sm gap-2",onClick:()=>void lD(),disabled:sC||sa||aF,title:"Fetch latest changes from all remotes",children:[sC?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)("i",{className:"iconoir-refresh text-[16px]","aria-hidden":"true"}),"Fetch"]}),(0,t.jsxs)("button",{className:"btn btn-sm gap-2",onClick:()=>{lU&&!l5&&lE(lU)},disabled:!!l5||sa||aF,title:l5||`Pull from ${l3?.upstream}`,children:[sy?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)("i",{className:"iconoir-arrow-down text-[16px]","aria-hidden":"true"}),"Pull"]}),(0,t.jsxs)("button",{className:"btn btn-sm gap-2",onClick:()=>{lU&&!l7&&lC(lU)},disabled:!!l7||sa||aF,title:l7||(l3?`Push to ${l3.upstream}`:"Push current branch to remote"),children:[a6?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)("i",{className:"iconoir-arrow-up text-[16px]","aria-hidden":"true"}),"Push"]})]})]})}),(0,t.jsx)("div",{className:"flex-1 overflow-hidden relative",children:le&&$?(0,t.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,t.jsx)("span",{className:"loading loading-spinner loading-lg opacity-50"})}):(0,t.jsx)(d,{ref:s4,commits:t5,selectedHash:F||void 0,selectedHashes:t7,onSelectCommit:t8,onResetToCommit:lA,onRevertCommit:(e,a)=>{sz({hash:e,message:a}),sK(!0)},onCreateTag:e=>{X(e),ee(""),es(!1),U(!0)},onCherryPickCommit:(e,a)=>{ew([{hash:e,message:a}]),ek(!0)},onCherryPickSelectedCommits:()=>{t9.length<2||(ew(t9.map(e=>({hash:e.hash,message:e.message}))),ek(!0))},onRewordCommit:(e,a,s,t)=>{sU({hash:e,subject:a,body:s,branch:t}),sX(a),s0(s),sY(!0)},localBranches:R?.branches||[],trackingInfo:R?.trackingInfo,onEndReached:()=>{!k&&h.all.length>=r&&c(e=>e+50)},isLoadingMore:k&&r>100,currentBranch:R?.current,hiddenBranches:la,getBranchTagContextMenuItems:e=>{if(e.startsWith("tag:")){let a=e.replace(/^tag:\s*/,"").trim();return a?[{label:"Delete Tag",onClick:()=>lh(a),danger:!0}]:null}if(l8.has(e))return l6({branchRef:e,branchLeafName:e.split("/").pop()||e,currentBranch:lU,isRemote:!1});let a=l9.get(e);return a?l6({branchRef:a,branchLeafName:a.split("/").pop()||e,currentBranch:lU,isRemote:!0}):null}})}),F&&(0,t.jsxs)("div",{className:"flex flex-col overflow-hidden border-t border-base-300 bg-base-200/30",style:{height:tk},children:[(0,t.jsx)("div",{className:(0,i.cn)("h-1.5 cursor-ns-resize flex items-center justify-center hover:bg-base-200 transition-colors group shrink-0",tw&&"bg-base-200"),onMouseDown:tF,children:(0,t.jsx)("div",{className:"w-8 h-1 rounded-full bg-base-300 group-hover:bg-base-content/20 transition-colors"})}),(0,t.jsxs)("div",{className:"flex flex-row items-center py-2 px-4 border-b border-base-300 bg-base-100 shrink-0 justify-between gap-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-4 flex-1 min-w-0",children:[(0,t.jsx)("span",{className:"text-sm font-bold truncate",children:h.all.find(e=>e.hash===F)?.message}),(0,t.jsx)("span",{className:"text-xs font-mono opacity-50 shrink-0",children:F.substring(0,7)})]}),(0,t.jsx)("div",{className:"flex items-center gap-1 shrink-0",children:(0,t.jsx)("button",{className:"ml-2 btn btn-ghost btn-xs btn-square",onClick:()=>I(null),title:"Close",children:"✕"})})]}),(0,t.jsxs)("div",{ref:tM,className:"flex-1 overflow-hidden bg-base-100 grid",style:{gridTemplateRows:`${tR}fr 6px ${1-tR}fr`},children:[(0,t.jsxs)("div",{className:"border-b border-base-300 bg-base-100 min-h-0 flex flex-col",children:[(0,t.jsx)("div",{className:"px-4 pt-3 pb-1 text-[10px] uppercase tracking-wider font-bold opacity-60",children:"Message"}),(0,t.jsx)("div",{className:"px-4 pb-3 overflow-auto flex-1 min-h-0",children:(0,t.jsx)("div",{className:"text-xs opacity-70 whitespace-pre-wrap font-mono",children:h.all.find(e=>e.hash===F)?.body||"No additional message"})})]}),(0,t.jsx)("div",{className:(0,i.cn)("cursor-ns-resize flex items-center justify-center hover:bg-base-200/60 transition-colors",tE&&"bg-base-200/60"),onMouseDown:tD,children:(0,t.jsx)("div",{className:"w-8 h-1 rounded-full bg-base-300"})}),(0,t.jsxs)("div",{className:"flex-1 overflow-hidden min-h-0 flex flex-col",children:[(0,t.jsx)("div",{className:"px-4 pt-2 pb-1 text-[10px] uppercase tracking-wider font-bold opacity-60 border-b border-base-300 bg-base-100 shrink-0",children:"Changes"}),(0,t.jsx)("div",{className:"flex-1 min-h-0",children:(0,t.jsx)(v,{repoPath:e,commitHash:F})})]})]})]})]})]}):(0,t.jsx)("div",{className:"flex items-center justify-center p-8 h-full opacity-70",children:"No history data available"})}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[176],{562:(t,e,s)=>{s.d(e,{m:()=>n});var i=s(8216),r=s(5858),n=new class extends i.Q{#t;#e;#s;constructor(){super(),this.#s=t=>{if(!r.S$&&window.addEventListener){let e=()=>t();return window.addEventListener("visibilitychange",e,!1),()=>{window.removeEventListener("visibilitychange",e)}}}}onSubscribe(){this.#e||this.setEventListener(this.#s)}onUnsubscribe(){this.hasListeners()||(this.#e?.(),this.#e=void 0)}setEventListener(t){this.#s=t,this.#e?.(),this.#e=t(t=>{"boolean"==typeof t?this.setFocused(t):this.onFocus()})}setFocused(t){this.#t!==t&&(this.#t=t,this.onFocus())}onFocus(){let t=this.isFocused();this.listeners.forEach(e=>{e(t)})}isFocused(){return"boolean"==typeof this.#t?this.#t:globalThis.document?.visibilityState!=="hidden"}}},1681:(t,e,s)=>{s.d(e,{t:()=>n});var i=s(8216),r=s(5858),n=new class extends i.Q{#i=!0;#e;#s;constructor(){super(),this.#s=t=>{if(!r.S$&&window.addEventListener){let e=()=>t(!0),s=()=>t(!1);return window.addEventListener("online",e,!1),window.addEventListener("offline",s,!1),()=>{window.removeEventListener("online",e),window.removeEventListener("offline",s)}}}}onSubscribe(){this.#e||this.setEventListener(this.#s)}onUnsubscribe(){this.hasListeners()||(this.#e?.(),this.#e=void 0)}setEventListener(t){this.#s=t,this.#e?.(),this.#e=t(this.setOnline.bind(this))}setOnline(t){this.#i!==t&&(this.#i=t,this.listeners.forEach(e=>{e(t)}))}isOnline(){return this.#i}}},1967:(t,e,s)=>{let i,r,n,a,o,u;s.d(e,{jG:()=>c});var h=s(3599).Zq,c=(i=[],r=0,n=t=>{t()},a=t=>{t()},o=h,{batch:t=>{let e;r++;try{e=t()}finally{let t;--r||(t=i,i=[],t.length&&o(()=>{a(()=>{t.forEach(t=>{n(t)})})}))}return e},batchCalls:t=>(...e)=>{u(()=>{t(...e)})},schedule:u=t=>{r?i.push(t):o(()=>{n(t)})},setNotifyFunction:t=>{n=t},setBatchNotifyFunction:t=>{a=t},setScheduler:t=>{o=t}})},3390:(t,e,s)=>{s.d(e,{$:()=>o,s:()=>a});var i=s(1967),r=s(9190),n=s(9846),a=class extends r.k{#r;#n;#a;#o;constructor(t){super(),this.#r=t.client,this.mutationId=t.mutationId,this.#a=t.mutationCache,this.#n=[],this.state=t.state||o(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){this.#n.includes(t)||(this.#n.push(t),this.clearGcTimeout(),this.#a.notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){this.#n=this.#n.filter(e=>e!==t),this.scheduleGc(),this.#a.notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){this.#n.length||("pending"===this.state.status?this.scheduleGc():this.#a.remove(this))}continue(){return this.#o?.continue()??this.execute(this.state.variables)}async execute(t){let e=()=>{this.#u({type:"continue"})},s={client:this.#r,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#o=(0,n.II)({fn:()=>this.options.mutationFn?this.options.mutationFn(t,s):Promise.reject(Error("No mutationFn found")),onFail:(t,e)=>{this.#u({type:"failed",failureCount:t,error:e})},onPause:()=>{this.#u({type:"pause"})},onContinue:e,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#a.canRun(this)});let i="pending"===this.state.status,r=!this.#o.canStart();try{if(i)e();else{this.#u({type:"pending",variables:t,isPaused:r}),this.#a.config.onMutate&&await this.#a.config.onMutate(t,this,s);let e=await this.options.onMutate?.(t,s);e!==this.state.context&&this.#u({type:"pending",context:e,variables:t,isPaused:r})}let n=await this.#o.start();return await this.#a.config.onSuccess?.(n,t,this.state.context,this,s),await this.options.onSuccess?.(n,t,this.state.context,s),await this.#a.config.onSettled?.(n,null,this.state.variables,this.state.context,this,s),await this.options.onSettled?.(n,null,t,this.state.context,s),this.#u({type:"success",data:n}),n}catch(e){try{await this.#a.config.onError?.(e,t,this.state.context,this,s)}catch(t){Promise.reject(t)}try{await this.options.onError?.(e,t,this.state.context,s)}catch(t){Promise.reject(t)}try{await this.#a.config.onSettled?.(void 0,e,this.state.variables,this.state.context,this,s)}catch(t){Promise.reject(t)}try{await this.options.onSettled?.(void 0,e,t,this.state.context,s)}catch(t){Promise.reject(t)}throw this.#u({type:"error",error:e}),e}finally{this.#a.runNext(this)}}#u(t){this.state=(e=>{switch(t.type){case"failed":return{...e,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...e,isPaused:!0};case"continue":return{...e,isPaused:!1};case"pending":return{...e,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...e,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...e,data:void 0,error:t.error,failureCount:e.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}})(this.state),i.jG.batch(()=>{this.#n.forEach(e=>{e.onMutationUpdate(t)}),this.#a.notify({mutation:this,type:"updated",action:t})})}};function o(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}},3599:(t,e,s)=>{s.d(e,{Zq:()=>n,zs:()=>r});var i={setTimeout:(t,e)=>setTimeout(t,e),clearTimeout:t=>clearTimeout(t),setInterval:(t,e)=>setInterval(t,e),clearInterval:t=>clearInterval(t)},r=new class{#h=i;#c=!1;setTimeoutProvider(t){this.#h=t}setTimeout(t,e){return this.#h.setTimeout(t,e)}clearTimeout(t){this.#h.clearTimeout(t)}setInterval(t,e){return this.#h.setInterval(t,e)}clearInterval(t){this.#h.clearInterval(t)}};function n(t){setTimeout(t,0)}},4109:(t,e,s)=>{let i;s.d(e,{I:()=>S});var r=s(562),n=s(1967),a=s(5531),o=s(8216),u=s(6062),h=s(5858),c=s(3599),l=class extends o.Q{constructor(t,e){super(),this.options=e,this.#r=t,this.#l=null,this.#d=(0,u.T)(),this.bindMethods(),this.setOptions(e)}#r;#p=void 0;#f=void 0;#y=void 0;#v;#m;#d;#l;#b;#g;#R;#S;#O;#C;#w=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#p.addObserver(this),d(this.#p,this.options)?this.#E():this.updateResult(),this.#T())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return p(this.#p,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return p(this.#p,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#Q(),this.#I(),this.#p.removeObserver(this)}setOptions(t){let e=this.options,s=this.#p;if(this.options=this.#r.defaultQueryOptions(t),void 0!==this.options.enabled&&"boolean"!=typeof this.options.enabled&&"function"!=typeof this.options.enabled&&"boolean"!=typeof(0,h.Eh)(this.options.enabled,this.#p))throw Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#F(),this.#p.setOptions(this.options),e._defaulted&&!(0,h.f8)(this.options,e)&&this.#r.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#p,observer:this});let i=this.hasListeners();i&&f(this.#p,s,this.options,e)&&this.#E(),this.updateResult(),i&&(this.#p!==s||(0,h.Eh)(this.options.enabled,this.#p)!==(0,h.Eh)(e.enabled,this.#p)||(0,h.d2)(this.options.staleTime,this.#p)!==(0,h.d2)(e.staleTime,this.#p))&&this.#j();let r=this.#P();i&&(this.#p!==s||(0,h.Eh)(this.options.enabled,this.#p)!==(0,h.Eh)(e.enabled,this.#p)||r!==this.#C)&&this.#x(r)}getOptimisticResult(t){var e,s;let i=this.#r.getQueryCache().build(this.#r,t),r=this.createResult(i,t);return e=this,s=r,(0,h.f8)(e.getCurrentResult(),s)||(this.#y=r,this.#m=this.options,this.#v=this.#p.state),r}getCurrentResult(){return this.#y}trackResult(t,e){return new Proxy(t,{get:(t,s)=>(this.trackProp(s),e?.(s),"promise"===s&&(this.trackProp("data"),this.options.experimental_prefetchInRender||"pending"!==this.#d.status||this.#d.reject(Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(t,s))})}trackProp(t){this.#w.add(t)}getCurrentQuery(){return this.#p}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){let e=this.#r.defaultQueryOptions(t),s=this.#r.getQueryCache().build(this.#r,e);return s.fetch().then(()=>this.createResult(s,e))}fetch(t){return this.#E({...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#y))}#E(t){this.#F();let e=this.#p.fetch(this.options,t);return t?.throwOnError||(e=e.catch(h.lQ)),e}#j(){this.#Q();let t=(0,h.d2)(this.options.staleTime,this.#p);if(h.S$||this.#y.isStale||!(0,h.gn)(t))return;let e=(0,h.j3)(this.#y.dataUpdatedAt,t);this.#S=c.zs.setTimeout(()=>{this.#y.isStale||this.updateResult()},e+1)}#P(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#p):this.options.refetchInterval)??!1}#x(t){this.#I(),this.#C=t,!h.S$&&!1!==(0,h.Eh)(this.options.enabled,this.#p)&&(0,h.gn)(this.#C)&&0!==this.#C&&(this.#O=c.zs.setInterval(()=>{(this.options.refetchIntervalInBackground||r.m.isFocused())&&this.#E()},this.#C))}#T(){this.#j(),this.#x(this.#P())}#Q(){this.#S&&(c.zs.clearTimeout(this.#S),this.#S=void 0)}#I(){this.#O&&(c.zs.clearInterval(this.#O),this.#O=void 0)}createResult(t,e){let s,i=this.#p,r=this.options,n=this.#y,o=this.#v,c=this.#m,l=t!==i?t.state:this.#f,{state:p}=t,v={...p},m=!1;if(e._optimisticResults){let s=this.hasListeners(),n=!s&&d(t,e),o=s&&f(t,i,e,r);(n||o)&&(v={...v,...(0,a.k)(p.data,t.options)}),"isRestoring"===e._optimisticResults&&(v.fetchStatus="idle")}let{error:b,errorUpdatedAt:g,status:R}=v;s=v.data;let S=!1;if(void 0!==e.placeholderData&&void 0===s&&"pending"===R){let t;n?.isPlaceholderData&&e.placeholderData===c?.placeholderData?(t=n.data,S=!0):t="function"==typeof e.placeholderData?e.placeholderData(this.#R?.state.data,this.#R):e.placeholderData,void 0!==t&&(R="success",s=(0,h.pl)(n?.data,t,e),m=!0)}if(e.select&&void 0!==s&&!S)if(n&&s===o?.data&&e.select===this.#b)s=this.#g;else try{this.#b=e.select,s=e.select(s),s=(0,h.pl)(n?.data,s,e),this.#g=s,this.#l=null}catch(t){this.#l=t}this.#l&&(b=this.#l,s=this.#g,g=Date.now(),R="error");let O="fetching"===v.fetchStatus,C="pending"===R,w="error"===R,E=C&&O,T=void 0!==s,Q={status:R,fetchStatus:v.fetchStatus,isPending:C,isSuccess:"success"===R,isError:w,isInitialLoading:E,isLoading:E,data:s,dataUpdatedAt:v.dataUpdatedAt,error:b,errorUpdatedAt:g,failureCount:v.fetchFailureCount,failureReason:v.fetchFailureReason,errorUpdateCount:v.errorUpdateCount,isFetched:v.dataUpdateCount>0||v.errorUpdateCount>0,isFetchedAfterMount:v.dataUpdateCount>l.dataUpdateCount||v.errorUpdateCount>l.errorUpdateCount,isFetching:O,isRefetching:O&&!C,isLoadingError:w&&!T,isPaused:"paused"===v.fetchStatus,isPlaceholderData:m,isRefetchError:w&&T,isStale:y(t,e),refetch:this.refetch,promise:this.#d,isEnabled:!1!==(0,h.Eh)(e.enabled,t)};if(this.options.experimental_prefetchInRender){let e=void 0!==Q.data,s="error"===Q.status&&!e,r=t=>{s?t.reject(Q.error):e&&t.resolve(Q.data)},n=()=>{r(this.#d=Q.promise=(0,u.T)())},a=this.#d;switch(a.status){case"pending":t.queryHash===i.queryHash&&r(a);break;case"fulfilled":(s||Q.data!==a.value)&&n();break;case"rejected":s&&Q.error===a.reason||n()}}return Q}updateResult(){let t=this.#y,e=this.createResult(this.#p,this.options);if(this.#v=this.#p.state,this.#m=this.options,void 0!==this.#v.data&&(this.#R=this.#p),(0,h.f8)(e,t))return;this.#y=e;let s=()=>{if(!t)return!0;let{notifyOnChangeProps:e}=this.options,s="function"==typeof e?e():e;if("all"===s||!s&&!this.#w.size)return!0;let i=new Set(s??this.#w);return this.options.throwOnError&&i.add("error"),Object.keys(this.#y).some(e=>this.#y[e]!==t[e]&&i.has(e))};this.#M({listeners:s()})}#F(){let t=this.#r.getQueryCache().build(this.#r,this.options);if(t===this.#p)return;let e=this.#p;this.#p=t,this.#f=t.state,this.hasListeners()&&(e?.removeObserver(this),t.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#T()}#M(t){n.jG.batch(()=>{t.listeners&&this.listeners.forEach(t=>{t(this.#y)}),this.#r.getQueryCache().notify({query:this.#p,type:"observerResultsUpdated"})})}};function d(t,e){return!1!==(0,h.Eh)(e.enabled,t)&&void 0===t.state.data&&("error"!==t.state.status||!1!==e.retryOnMount)||void 0!==t.state.data&&p(t,e,e.refetchOnMount)}function p(t,e,s){if(!1!==(0,h.Eh)(e.enabled,t)&&"static"!==(0,h.d2)(e.staleTime,t)){let i="function"==typeof s?s(t):s;return"always"===i||!1!==i&&y(t,e)}return!1}function f(t,e,s,i){return(t!==e||!1===(0,h.Eh)(i.enabled,t))&&(!s.suspense||"error"!==t.state.status)&&y(t,s)}function y(t,e){return!1!==(0,h.Eh)(e.enabled,t)&&t.isStaleByTime((0,h.d2)(e.staleTime,t))}var v=s(2115),m=s(5625);s(5155);var b=v.createContext((i=!1,{clearReset:()=>{i=!1},reset:()=>{i=!0},isReset:()=>i})),g=v.createContext(!1);g.Provider;var R=(t,e,s)=>e.fetchOptimistic(t).catch(()=>{s.clearReset()});function S(t,e){return function(t,e,s){let i,r=v.useContext(g),a=v.useContext(b),o=(0,m.jE)(s),u=o.defaultQueryOptions(t);o.getDefaultOptions().queries?._experimental_beforeQuery?.(u);let c=o.getQueryCache().get(u.queryHash);if(u._optimisticResults=r?"isRestoring":"optimistic",u.suspense){let t=t=>"static"===t?t:Math.max(t??1e3,1e3),e=u.staleTime;u.staleTime="function"==typeof e?(...s)=>t(e(...s)):t(e),"number"==typeof u.gcTime&&(u.gcTime=Math.max(u.gcTime,1e3))}i=c?.state.error&&"function"==typeof u.throwOnError?(0,h.GU)(u.throwOnError,[c.state.error,c]):u.throwOnError,(u.suspense||u.experimental_prefetchInRender||i)&&!a.isReset()&&(u.retryOnMount=!1),v.useEffect(()=>{a.clearReset()},[a]);let l=!o.getQueryCache().get(u.queryHash),[d]=v.useState(()=>new e(o,u)),p=d.getOptimisticResult(u),f=!r&&!1!==t.subscribed;if(v.useSyncExternalStore(v.useCallback(t=>{let e=f?d.subscribe(n.jG.batchCalls(t)):h.lQ;return d.updateResult(),e},[d,f]),()=>d.getCurrentResult(),()=>d.getCurrentResult()),v.useEffect(()=>{d.setOptions(u)},[u,d]),u?.suspense&&p.isPending)throw R(u,d,a);if((({result:t,errorResetBoundary:e,throwOnError:s,query:i,suspense:r})=>t.isError&&!e.isReset()&&!t.isFetching&&i&&(r&&void 0===t.data||(0,h.GU)(s,[t.error,i])))({result:p,errorResetBoundary:a,throwOnError:u.throwOnError,query:c,suspense:u.suspense}))throw p.error;if(o.getDefaultOptions().queries?._experimental_afterQuery?.(u,p),u.experimental_prefetchInRender&&!h.S$&&p.isLoading&&p.isFetching&&!r){let t=l?R(u,d,a):c?.promise;t?.catch(h.lQ).finally(()=>{d.updateResult()})}return u.notifyOnChangeProps?p:d.trackResult(p)}(t,l,e)}},5531:(t,e,s)=>{s.d(e,{X:()=>o,k:()=>u});var i=s(5858),r=s(1967),n=s(9846),a=s(9190),o=class extends a.k{#U;#k;#D;#r;#o;#q;#A;constructor(t){super(),this.#A=!1,this.#q=t.defaultOptions,this.setOptions(t.options),this.observers=[],this.#r=t.client,this.#D=this.#r.getQueryCache(),this.queryKey=t.queryKey,this.queryHash=t.queryHash,this.#U=c(this.options),this.state=t.state??this.#U,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#o?.promise}setOptions(t){if(this.options={...this.#q,...t},this.updateGcTime(this.options.gcTime),this.state&&void 0===this.state.data){let t=c(this.options);void 0!==t.data&&(this.setState(h(t.data,t.dataUpdatedAt)),this.#U=t)}}optionalRemove(){this.observers.length||"idle"!==this.state.fetchStatus||this.#D.remove(this)}setData(t,e){let s=(0,i.pl)(this.state.data,t,this.options);return this.#u({data:s,type:"success",dataUpdatedAt:e?.updatedAt,manual:e?.manual}),s}setState(t,e){this.#u({type:"setState",state:t,setStateOptions:e})}cancel(t){let e=this.#o?.promise;return this.#o?.cancel(t),e?e.then(i.lQ).catch(i.lQ):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.#U)}isActive(){return this.observers.some(t=>!1!==(0,i.Eh)(t.options.enabled,this))}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===i.hT||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0&&this.observers.some(t=>"static"===(0,i.d2)(t.options.staleTime,this))}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):void 0===this.state.data||this.state.isInvalidated}isStaleByTime(t=0){return void 0===this.state.data||"static"!==t&&(!!this.state.isInvalidated||!(0,i.j3)(this.state.dataUpdatedAt,t))}onFocus(){let t=this.observers.find(t=>t.shouldFetchOnWindowFocus());t?.refetch({cancelRefetch:!1}),this.#o?.continue()}onOnline(){let t=this.observers.find(t=>t.shouldFetchOnReconnect());t?.refetch({cancelRefetch:!1}),this.#o?.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),this.#D.notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(e=>e!==t),this.observers.length||(this.#o&&(this.#A?this.#o.cancel({revert:!0}):this.#o.cancelRetry()),this.scheduleGc()),this.#D.notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#u({type:"invalidate"})}async fetch(t,e){let s;if("idle"!==this.state.fetchStatus&&this.#o?.status()!=="rejected"){if(void 0!==this.state.data&&e?.cancelRefetch)this.cancel({silent:!0});else if(this.#o)return this.#o.continueRetry(),this.#o.promise}if(t&&this.setOptions(t),!this.options.queryFn){let t=this.observers.find(t=>t.options.queryFn);t&&this.setOptions(t.options)}let r=new AbortController,a=t=>{Object.defineProperty(t,"signal",{enumerable:!0,get:()=>(this.#A=!0,r.signal)})},o=()=>{let t,s=(0,i.ZM)(this.options,e),r=(a(t={client:this.#r,queryKey:this.queryKey,meta:this.meta}),t);return(this.#A=!1,this.options.persister)?this.options.persister(s,r,this):s(r)},u=(a(s={fetchOptions:e,options:this.options,queryKey:this.queryKey,client:this.#r,state:this.state,fetchFn:o}),s);this.options.behavior?.onFetch(u,this),this.#k=this.state,("idle"===this.state.fetchStatus||this.state.fetchMeta!==u.fetchOptions?.meta)&&this.#u({type:"fetch",meta:u.fetchOptions?.meta}),this.#o=(0,n.II)({initialPromise:e?.initialPromise,fn:u.fetchFn,onCancel:t=>{t instanceof n.cc&&t.revert&&this.setState({...this.#k,fetchStatus:"idle"}),r.abort()},onFail:(t,e)=>{this.#u({type:"failed",failureCount:t,error:e})},onPause:()=>{this.#u({type:"pause"})},onContinue:()=>{this.#u({type:"continue"})},retry:u.options.retry,retryDelay:u.options.retryDelay,networkMode:u.options.networkMode,canRun:()=>!0});try{let t=await this.#o.start();if(void 0===t)throw Error(`${this.queryHash} data is undefined`);return this.setData(t),this.#D.config.onSuccess?.(t,this),this.#D.config.onSettled?.(t,this.state.error,this),t}catch(t){if(t instanceof n.cc){if(t.silent)return this.#o.promise;else if(t.revert){if(void 0===this.state.data)throw t;return this.state.data}}throw this.#u({type:"error",error:t}),this.#D.config.onError?.(t,this),this.#D.config.onSettled?.(this.state.data,t,this),t}finally{this.scheduleGc()}}#u(t){let e=e=>{switch(t.type){case"failed":return{...e,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...e,fetchStatus:"paused"};case"continue":return{...e,fetchStatus:"fetching"};case"fetch":return{...e,...u(e.data,this.options),fetchMeta:t.meta??null};case"success":let s={...e,...h(t.data,t.dataUpdatedAt),dataUpdateCount:e.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return this.#k=t.manual?s:void 0,s;case"error":let i=t.error;return{...e,error:i,errorUpdateCount:e.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:e.fetchFailureCount+1,fetchFailureReason:i,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...e,isInvalidated:!0};case"setState":return{...e,...t.state}}};this.state=e(this.state),r.jG.batch(()=>{this.observers.forEach(t=>{t.onQueryUpdate()}),this.#D.notify({query:this,type:"updated",action:t})})}};function u(t,e){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:(0,n.v_)(e.networkMode)?"fetching":"paused",...void 0===t&&{error:null,status:"pending"}}}function h(t,e){return{data:t,dataUpdatedAt:e??Date.now(),error:null,isInvalidated:!1,status:"success"}}function c(t){let e="function"==typeof t.initialData?t.initialData():t.initialData,s=void 0!==e,i=s?"function"==typeof t.initialDataUpdatedAt?t.initialDataUpdatedAt():t.initialDataUpdatedAt:0;return{data:e,dataUpdateCount:0,dataUpdatedAt:s?i??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:s?"success":"pending",fetchStatus:"idle"}}},5625:(t,e,s)=>{s.d(e,{Ht:()=>o,jE:()=>a});var i=s(2115),r=s(5155),n=i.createContext(void 0),a=t=>{let e=i.useContext(n);if(t)return t;if(!e)throw Error("No QueryClient set, use QueryClientProvider to set one");return e},o=({client:t,children:e})=>(i.useEffect(()=>(t.mount(),()=>{t.unmount()}),[t]),(0,r.jsx)(n.Provider,{value:t,children:e}))},5858:(t,e,s)=>{s.d(e,{Cp:()=>y,EN:()=>f,Eh:()=>c,F$:()=>p,GU:()=>Q,MK:()=>l,S$:()=>r,ZM:()=>T,ZZ:()=>w,Zw:()=>a,d2:()=>h,f8:()=>m,gn:()=>o,hT:()=>E,j3:()=>u,lQ:()=>n,nJ:()=>d,ox:()=>I,pl:()=>O,y9:()=>C,yy:()=>S});var i=s(3599),r="u"<typeof window||"Deno"in globalThis;function n(){}function a(t,e){return"function"==typeof t?t(e):t}function o(t){return"number"==typeof t&&t>=0&&t!==1/0}function u(t,e){return Math.max(t+(e||0)-Date.now(),0)}function h(t,e){return"function"==typeof t?t(e):t}function c(t,e){return"function"==typeof t?t(e):t}function l(t,e){let{type:s="all",exact:i,fetchStatus:r,predicate:n,queryKey:a,stale:o}=t;if(a){if(i){if(e.queryHash!==p(a,e.options))return!1}else if(!y(e.queryKey,a))return!1}if("all"!==s){let t=e.isActive();if("active"===s&&!t||"inactive"===s&&t)return!1}return("boolean"!=typeof o||e.isStale()===o)&&(!r||r===e.state.fetchStatus)&&(!n||!!n(e))}function d(t,e){let{exact:s,status:i,predicate:r,mutationKey:n}=t;if(n){if(!e.options.mutationKey)return!1;if(s){if(f(e.options.mutationKey)!==f(n))return!1}else if(!y(e.options.mutationKey,n))return!1}return(!i||e.state.status===i)&&(!r||!!r(e))}function p(t,e){return(e?.queryKeyHashFn||f)(t)}function f(t){return JSON.stringify(t,(t,e)=>g(e)?Object.keys(e).sort().reduce((t,s)=>(t[s]=e[s],t),{}):e)}function y(t,e){return t===e||typeof t==typeof e&&!!t&&!!e&&"object"==typeof t&&"object"==typeof e&&Object.keys(e).every(s=>y(t[s],e[s]))}var v=Object.prototype.hasOwnProperty;function m(t,e){if(!e||Object.keys(t).length!==Object.keys(e).length)return!1;for(let s in t)if(t[s]!==e[s])return!1;return!0}function b(t){return Array.isArray(t)&&t.length===Object.keys(t).length}function g(t){if(!R(t))return!1;let e=t.constructor;if(void 0===e)return!0;let s=e.prototype;return!!R(s)&&!!s.hasOwnProperty("isPrototypeOf")&&Object.getPrototypeOf(t)===Object.prototype}function R(t){return"[object Object]"===Object.prototype.toString.call(t)}function S(t){return new Promise(e=>{i.zs.setTimeout(e,t)})}function O(t,e,s){return"function"==typeof s.structuralSharing?s.structuralSharing(t,e):!1!==s.structuralSharing?function t(e,s,i=0){if(e===s)return e;if(i>500)return s;let r=b(e)&&b(s);if(!r&&!(g(e)&&g(s)))return s;let n=(r?e:Object.keys(e)).length,a=r?s:Object.keys(s),o=a.length,u=r?Array(o):{},h=0;for(let c=0;c<o;c++){let o=r?c:a[c],l=e[o],d=s[o];if(l===d){u[o]=l,(r?c<n:v.call(e,o))&&h++;continue}if(null===l||null===d||"object"!=typeof l||"object"!=typeof d){u[o]=d;continue}let p=t(l,d,i+1);u[o]=p,p===l&&h++}return n===o&&h===n?e:u}(t,e):e}function C(t,e,s=0){let i=[...t,e];return s&&i.length>s?i.slice(1):i}function w(t,e,s=0){let i=[e,...t];return s&&i.length>s?i.slice(0,-1):i}var E=Symbol();function T(t,e){return!t.queryFn&&e?.initialPromise?()=>e.initialPromise:t.queryFn&&t.queryFn!==E?t.queryFn:()=>Promise.reject(Error(`Missing queryFn: '${t.queryHash}'`))}function Q(t,e){return"function"==typeof t?t(...e):!!t}function I(t,e,s){let i,r=!1;return Object.defineProperty(t,"signal",{enumerable:!0,get:()=>(i??=e(),r||(r=!0,i.aborted?s():i.addEventListener("abort",s,{once:!0})),i)}),t}},6062:(t,e,s)=>{s.d(e,{T:()=>i});function i(){let t,e,s=new Promise((s,i)=>{t=s,e=i});function i(t){Object.assign(s,t),delete s.resolve,delete s.reject}return s.status="pending",s.catch(()=>{}),s.resolve=e=>{i({status:"fulfilled",value:e}),t(e)},s.reject=t=>{i({status:"rejected",reason:t}),e(t)},s}},8216:(t,e,s)=>{s.d(e,{Q:()=>i});var i=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(t){return this.listeners.add(t),this.onSubscribe(),()=>{this.listeners.delete(t),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}}},8934:(t,e,s)=>{s.d(e,{n:()=>c});var i=s(2115),r=s(3390),n=s(1967),a=s(8216),o=s(5858),u=class extends a.Q{#r;#y=void 0;#G;#L;constructor(t,e){super(),this.#r=t,this.setOptions(e),this.bindMethods(),this.#K()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(t){let e=this.options;this.options=this.#r.defaultMutationOptions(t),(0,o.f8)(this.options,e)||this.#r.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#G,observer:this}),e?.mutationKey&&this.options.mutationKey&&(0,o.EN)(e.mutationKey)!==(0,o.EN)(this.options.mutationKey)?this.reset():this.#G?.state.status==="pending"&&this.#G.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#G?.removeObserver(this)}onMutationUpdate(t){this.#K(),this.#M(t)}getCurrentResult(){return this.#y}reset(){this.#G?.removeObserver(this),this.#G=void 0,this.#K(),this.#M()}mutate(t,e){return this.#L=e,this.#G?.removeObserver(this),this.#G=this.#r.getMutationCache().build(this.#r,this.options),this.#G.addObserver(this),this.#G.execute(t)}#K(){let t=this.#G?.state??(0,r.$)();this.#y={...t,isPending:"pending"===t.status,isSuccess:"success"===t.status,isError:"error"===t.status,isIdle:"idle"===t.status,mutate:this.mutate,reset:this.reset}}#M(t){n.jG.batch(()=>{if(this.#L&&this.hasListeners()){let e=this.#y.variables,s=this.#y.context,i={client:this.#r,meta:this.options.meta,mutationKey:this.options.mutationKey};if(t?.type==="success"){try{this.#L.onSuccess?.(t.data,e,s,i)}catch(t){Promise.reject(t)}try{this.#L.onSettled?.(t.data,null,e,s,i)}catch(t){Promise.reject(t)}}else if(t?.type==="error"){try{this.#L.onError?.(t.error,e,s,i)}catch(t){Promise.reject(t)}try{this.#L.onSettled?.(void 0,t.error,e,s,i)}catch(t){Promise.reject(t)}}}this.listeners.forEach(t=>{t(this.#y)})})}},h=s(5625);function c(t,e){let s=(0,h.jE)(e),[r]=i.useState(()=>new u(s,t));i.useEffect(()=>{r.setOptions(t)},[r,t]);let a=i.useSyncExternalStore(i.useCallback(t=>r.subscribe(n.jG.batchCalls(t)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),c=i.useCallback((t,e)=>{r.mutate(t,e).catch(o.lQ)},[r]);if(a.error&&(0,o.GU)(r.options.throwOnError,[a.error]))throw a.error;return{...a,mutate:c,mutateAsync:a.mutate}}},9190:(t,e,s)=>{s.d(e,{k:()=>n});var i=s(3599),r=s(5858),n=class{#_;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),(0,r.gn)(this.gcTime)&&(this.#_=i.zs.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(t){this.gcTime=Math.max(this.gcTime||0,t??(r.S$?1/0:3e5))}clearGcTimeout(){this.#_&&(i.zs.clearTimeout(this.#_),this.#_=void 0)}}},9846:(t,e,s)=>{s.d(e,{II:()=>c,cc:()=>h,v_:()=>u});var i=s(562),r=s(1681),n=s(6062),a=s(5858);function o(t){return Math.min(1e3*2**t,3e4)}function u(t){return(t??"online")!=="online"||r.t.isOnline()}var h=class extends Error{constructor(t){super("CancelledError"),this.revert=t?.revert,this.silent=t?.silent}};function c(t){let e,s=!1,c=0,l=(0,n.T)(),d=()=>i.m.isFocused()&&("always"===t.networkMode||r.t.isOnline())&&t.canRun(),p=()=>u(t.networkMode)&&t.canRun(),f=t=>{"pending"===l.status&&(e?.(),l.resolve(t))},y=t=>{"pending"===l.status&&(e?.(),l.reject(t))},v=()=>new Promise(s=>{e=t=>{("pending"!==l.status||d())&&s(t)},t.onPause?.()}).then(()=>{e=void 0,"pending"===l.status&&t.onContinue?.()}),m=()=>{let e;if("pending"!==l.status)return;let i=0===c?t.initialPromise:void 0;try{e=i??t.fn()}catch(t){e=Promise.reject(t)}Promise.resolve(e).then(f).catch(e=>{if("pending"!==l.status)return;let i=t.retry??3*!a.S$,r=t.retryDelay??o,n="function"==typeof r?r(c,e):r,u=!0===i||"number"==typeof i&&c<i||"function"==typeof i&&i(c,e);s||!u?y(e):(c++,t.onFail?.(c,e),(0,a.yy)(n).then(()=>d()?void 0:v()).then(()=>{s?y(e):m()}))})};return{promise:l,status:()=>l.status,cancel:e=>{if("pending"===l.status){let s=new h(e);y(s),t.onCancel?.(s)}},continue:()=>(e?.(),l),cancelRetry:()=>{s=!0},continueRetry:()=>{s=!1},canStart:p,start:()=>(p()?m():v().then(m),l)}}}}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[200],{421:e=>{e.exports={style:{fontFamily:"'Geist', 'Geist Fallback'",fontStyle:"normal"},className:"__className_188709",variable:"__variable_188709"}},460:(e,t,s)=>{"use strict";s.d(t,{D:()=>o,N:()=>h});var a=s(2115),r=(e,t,s,a,r,i,n,u)=>{let l=document.documentElement,o=["light","dark"];function h(t){var s;(Array.isArray(e)?e:[e]).forEach(e=>{let s="class"===e,a=s&&i?r.map(e=>i[e]||e):r;s?(l.classList.remove(...a),l.classList.add(i&&i[t]?i[t]:t)):l.setAttribute(e,t)}),s=t,u&&o.includes(s)&&(l.style.colorScheme=s)}if(a)h(a);else try{let e=localStorage.getItem(t)||s,a=n&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;h(a)}catch(e){}},i=["light","dark"],n="(prefers-color-scheme: dark)",u=a.createContext(void 0),l={setTheme:e=>{},themes:[]},o=()=>{var e;return null!=(e=a.useContext(u))?e:l},h=e=>a.useContext(u)?a.createElement(a.Fragment,null,e.children):a.createElement(d,{...e}),c=["light","dark"],d=({forcedTheme:e,disableTransitionOnChange:t=!1,enableSystem:s=!0,enableColorScheme:r=!0,storageKey:l="theme",themes:o=c,defaultTheme:h=s?"system":"light",attribute:d="data-theme",value:g,children:b,nonce:v,scriptProps:C})=>{let[q,Q]=a.useState(()=>f(l,h)),[O,w]=a.useState(()=>"system"===q?p():q),P=g?Object.values(g):o,E=a.useCallback(e=>{let a=e;if(!a)return;"system"===e&&s&&(a=p());let n=g?g[a]:a,u=t?y(v):null,l=document.documentElement,o=e=>{"class"===e?(l.classList.remove(...P),n&&l.classList.add(n)):e.startsWith("data-")&&(n?l.setAttribute(e,n):l.removeAttribute(e))};if(Array.isArray(d)?d.forEach(o):o(d),r){let e=i.includes(h)?h:null,t=i.includes(a)?a:e;l.style.colorScheme=t}null==u||u()},[v]),A=a.useCallback(e=>{let t="function"==typeof e?e(q):e;Q(t);try{localStorage.setItem(l,t)}catch(e){}},[q]),M=a.useCallback(t=>{w(p(t)),"system"===q&&s&&!e&&E("system")},[q,e]);a.useEffect(()=>{let e=window.matchMedia(n);return e.addListener(M),M(e),()=>e.removeListener(M)},[M]),a.useEffect(()=>{let e=e=>{e.key===l&&(e.newValue?Q(e.newValue):A(h))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[A]),a.useEffect(()=>{E(null!=e?e:q)},[e,q]);let D=a.useMemo(()=>({theme:q,setTheme:A,forcedTheme:e,resolvedTheme:"system"===q?O:q,themes:s?[...o,"system"]:o,systemTheme:s?O:void 0}),[q,A,e,O,s,o]);return a.createElement(u.Provider,{value:D},a.createElement(m,{forcedTheme:e,storageKey:l,attribute:d,enableSystem:s,enableColorScheme:r,defaultTheme:h,value:g,themes:o,nonce:v,scriptProps:C}),b)},m=a.memo(({forcedTheme:e,storageKey:t,attribute:s,enableSystem:i,enableColorScheme:n,defaultTheme:u,value:l,themes:o,nonce:h,scriptProps:c})=>{let d=JSON.stringify([s,t,u,e,o,l,i,n]).slice(1,-1);return a.createElement("script",{...c,suppressHydrationWarning:!0,nonce:"",dangerouslySetInnerHTML:{__html:`(${r.toString()})(${d})`}})}),f=(e,t)=>{let s;try{s=localStorage.getItem(e)||void 0}catch(e){}return s||t},y=e=>{let t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(t),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(t)},1)}},p=e=>(e||(e=window.matchMedia(n)),e.matches?"dark":"light")},6887:(e,t,s)=>{"use strict";s.d(t,{E:()=>y});var a=s(5858),r=s(5531),i=s(1967),n=s(8216),u=class extends n.Q{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,s){let i=t.queryKey,n=t.queryHash??(0,a.F$)(i,t),u=this.get(n);return u||(u=new r.X({client:e,queryKey:i,queryHash:n,options:e.defaultQueryOptions(t),state:s,defaultOptions:e.getQueryDefaults(i)}),this.add(u)),u}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){i.jG.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>(0,a.MK)(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>(0,a.MK)(e,t)):t}notify(e){i.jG.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){i.jG.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){i.jG.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},l=s(3390),o=class extends n.Q{constructor(e={}){super(),this.config=e,this.#t=new Set,this.#s=new Map,this.#a=0}#t;#s;#a;build(e,t,s){let a=new l.s({client:e,mutationCache:this,mutationId:++this.#a,options:e.defaultMutationOptions(t),state:s});return this.add(a),a}add(e){this.#t.add(e);let t=h(e);if("string"==typeof t){let s=this.#s.get(t);s?s.push(e):this.#s.set(t,[e])}this.notify({type:"added",mutation:e})}remove(e){if(this.#t.delete(e)){let t=h(e);if("string"==typeof t){let s=this.#s.get(t);if(s)if(s.length>1){let t=s.indexOf(e);-1!==t&&s.splice(t,1)}else s[0]===e&&this.#s.delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){let t=h(e);if("string"!=typeof t)return!0;{let s=this.#s.get(t),a=s?.find(e=>"pending"===e.state.status);return!a||a===e}}runNext(e){let t=h(e);if("string"!=typeof t)return Promise.resolve();{let s=this.#s.get(t)?.find(t=>t!==e&&t.state.isPaused);return s?.continue()??Promise.resolve()}}clear(){i.jG.batch(()=>{this.#t.forEach(e=>{this.notify({type:"removed",mutation:e})}),this.#t.clear(),this.#s.clear()})}getAll(){return Array.from(this.#t)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>(0,a.nJ)(t,e))}findAll(e={}){return this.getAll().filter(t=>(0,a.nJ)(e,t))}notify(e){i.jG.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return i.jG.batch(()=>Promise.all(e.map(e=>e.continue().catch(a.lQ))))}};function h(e){return e.options.scope?.id}var c=s(562),d=s(1681);function m(e){return{onFetch:(t,s)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,n=t.state.data?.pages||[],u=t.state.data?.pageParams||[],l={pages:[],pageParams:[]},o=0,h=async()=>{let s=!1,h=(0,a.ZM)(t.options,t.fetchOptions),c=async(e,r,i)=>{let n;if(s)return Promise.reject();if(null==r&&e.pages.length)return Promise.resolve(e);let u=(n={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?"backward":"forward",meta:t.options.meta},(0,a.ox)(n,()=>t.signal,()=>s=!0),n),l=await h(u),{maxPages:o}=t.options,c=i?a.ZZ:a.y9;return{pages:c(e.pages,l,o),pageParams:c(e.pageParams,r,o)}};if(i&&n.length){let e="backward"===i,t={pages:n,pageParams:u},s=(e?function(e,{pages:t,pageParams:s}){return t.length>0?e.getPreviousPageParam?.(t[0],t,s[0],s):void 0}:f)(r,t);l=await c(t,s,e)}else{let t=e??n.length;do{let e=0===o?u[0]??r.initialPageParam:f(r,l);if(o>0&&null==e)break;l=await c(l,e),o++}while(o<t)}return l};t.options.persister?t.fetchFn=()=>t.options.persister?.(h,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},s):t.fetchFn=h}}}function f(e,{pages:t,pageParams:s}){let a=t.length-1;return t.length>0?e.getNextPageParam(t[a],t,s[a],s):void 0}var y=class{#r;#i;#n;#u;#l;#o;#h;#c;constructor(e={}){this.#r=e.queryCache||new u,this.#i=e.mutationCache||new o,this.#n=e.defaultOptions||{},this.#u=new Map,this.#l=new Map,this.#o=0}mount(){this.#o++,1===this.#o&&(this.#h=c.m.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#r.onFocus())}),this.#c=d.t.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#r.onOnline())}))}unmount(){this.#o--,0===this.#o&&(this.#h?.(),this.#h=void 0,this.#c?.(),this.#c=void 0)}isFetching(e){return this.#r.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#i.findAll({...e,status:"pending"}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#r.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),s=this.#r.build(this,t),r=s.state.data;return void 0===r?this.fetchQuery(e):(e.revalidateIfStale&&s.isStaleByTime((0,a.d2)(t.staleTime,s))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#r.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,s){let r=this.defaultQueryOptions({queryKey:e}),i=this.#r.get(r.queryHash),n=i?.state.data,u=(0,a.Zw)(t,n);if(void 0!==u)return this.#r.build(this,r).setData(u,{...s,manual:!0})}setQueriesData(e,t,s){return i.jG.batch(()=>this.#r.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,s)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#r.get(t.queryHash)?.state}removeQueries(e){let t=this.#r;i.jG.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let s=this.#r;return i.jG.batch(()=>(s.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){let s={revert:!0,...t};return Promise.all(i.jG.batch(()=>this.#r.findAll(e).map(e=>e.cancel(s)))).then(a.lQ).catch(a.lQ)}invalidateQueries(e,t={}){return i.jG.batch(()=>(this.#r.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType==="none")?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??"active"},t))}refetchQueries(e,t={}){let s={...t,cancelRefetch:t.cancelRefetch??!0};return Promise.all(i.jG.batch(()=>this.#r.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,s);return s.throwOnError||(t=t.catch(a.lQ)),"paused"===e.state.fetchStatus?Promise.resolve():t}))).then(a.lQ)}fetchQuery(e){let t=this.defaultQueryOptions(e);void 0===t.retry&&(t.retry=!1);let s=this.#r.build(this,t);return s.isStaleByTime((0,a.d2)(t.staleTime,s))?s.fetch(t):Promise.resolve(s.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(a.lQ).catch(a.lQ)}fetchInfiniteQuery(e){return e.behavior=m(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(a.lQ).catch(a.lQ)}ensureInfiniteQueryData(e){return e.behavior=m(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return d.t.isOnline()?this.#i.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#r}getMutationCache(){return this.#i}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#u.set((0,a.EN)(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#u.values()],s={};return t.forEach(t=>{(0,a.Cp)(e,t.queryKey)&&Object.assign(s,t.defaultOptions)}),s}setMutationDefaults(e,t){this.#l.set((0,a.EN)(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#l.values()],s={};return t.forEach(t=>{(0,a.Cp)(e,t.mutationKey)&&Object.assign(s,t.defaultOptions)}),s}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=(0,a.F$)(t.queryKey,t)),void 0===t.refetchOnReconnect&&(t.refetchOnReconnect="always"!==t.networkMode),void 0===t.throwOnError&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===a.hT&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#r.clear(),this.#i.clear()}}},9695:e=>{e.exports={style:{fontFamily:"'Geist Mono', 'Geist Mono Fallback'",fontStyle:"normal"},className:"__className_9a8899",variable:"__variable_9a8899"}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[26],{696:(t,e,r)=>{r.d(e,{F3:()=>d,GK:()=>p,Jy:()=>j,Lp:()=>h,Ud:()=>v,X0:()=>m,Y5:()=>u,_6:()=>b,_X:()=>g,a3:()=>F,cT:()=>S,en:()=>y,gg:()=>k,st:()=>x,t0:()=>l,uG:()=>f,xV:()=>w});var n=r(2115),a=r(4109),s=r(5625),o=r(8934),i=r(6695);let c="/api";function l(){return(0,a.I)({queryKey:["settings"],queryFn:async()=>{let t=await fetch(`${c}/settings`);if(!t.ok)throw Error("Failed to fetch settings");return t.json()}})}function u(){let t=(0,s.jE)();return(0,o.n)({mutationFn:async t=>{let e=await fetch(`${c}/settings`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!e.ok)throw Error("Failed to update settings");return e.json()},onSuccess:()=>{t.invalidateQueries({queryKey:["settings"]})}})}function f(){return(0,a.I)({queryKey:["repos"],queryFn:async()=>{let t=await fetch(`${c}/repos`);if(!t.ok)throw Error("Failed to fetch repositories");return t.json()}})}function p(t){let{data:e}=f();return(0,n.useMemo)(()=>e?.find(e=>e.path===t)||null,[e,t])}function d(){let t=(0,s.jE)();return(0,o.n)({mutationFn:async({path:t,name:e})=>{let r=await fetch(`${c}/repos`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t,name:e})});if(!r.ok)throw Error((await r.json().catch(()=>({}))).error||"Failed to add repository");return r.json()},onSuccess:()=>{t.invalidateQueries({queryKey:["repos"]})}})}function h(){let t=(0,s.jE)();return(0,o.n)({mutationFn:async({path:t,updates:e})=>{let r=await fetch(`${c}/repos`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t,updates:e})});if(!r.ok)throw Error(await r.text());return r.json()},onSuccess:()=>{t.invalidateQueries({queryKey:["repos"]})}})}function m(){let t=(0,s.jE)();return(0,o.n)({mutationFn:async({path:t})=>{let e=await fetch(`${c}/repos`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});if(!e.ok)throw Error(await e.text());return e.json()},onSuccess:()=>{t.invalidateQueries({queryKey:["repos"]})}})}function y(t){return(0,a.I)({queryKey:["git",t,"status"],queryFn:async()=>{if(!t)return null;let e=await fetch(`${c}/git/status?path=${encodeURIComponent(t)}`);if(!e.ok){let t=Error((await e.json().catch(()=>({}))).error||"Failed to fetch status");throw t.status=e.status,t}return e.json()},enabled:!!t,refetchOnWindowFocus:!0,refetchOnReconnect:!0,retry:(t,e)=>404!==e.status&&400!==e.status&&t<3})}function g(t,e=50){return(0,a.I)({queryKey:["git",t,"log",e],queryFn:async()=>{if(!t)return null;let r=await fetch(`${c}/git/log?path=${encodeURIComponent(t)}&limit=${e}`);if(!r.ok){let t=Error((await r.json().catch(()=>({}))).error||"Failed to fetch log");throw t.status=r.status,t}return r.json()},enabled:!!t,placeholderData:t=>t,retry:(t,e)=>404!==e.status&&400!==e.status&&t<3})}function b(t){return(0,a.I)({queryKey:["git",t,"branches"],queryFn:async()=>{if(!t)return null;let e=await fetch(`${c}/git/branches?path=${encodeURIComponent(t)}`);if(!e.ok)throw Error("Failed to fetch branches");return e.json()},enabled:!!t})}function w(t,e){return(0,a.I)({queryKey:["git",t,"diff",e],queryFn:async()=>{if(!t||!e)return null;let r=await fetch(`${c}/git/diff?path=${encodeURIComponent(t)}&file=${encodeURIComponent(e)}`);if(!r.ok){let t=Error((await r.json().catch(()=>({}))).error||"Failed to fetch diff");throw t.status=r.status,t}return r.json()},enabled:!!t&&!!e,retry:(t,e)=>404!==e.status&&400!==e.status&&t<3})}function k(t,e){return(0,a.I)({queryKey:["git",t,"commit-diff",e],queryFn:async()=>{if(!t||!e)return null;let r=await fetch(`${c}/git/diff?path=${encodeURIComponent(t)}&commit=${encodeURIComponent(e)}`);if(!r.ok){let t=Error((await r.json().catch(()=>({}))).error||"Failed to fetch commit diff");throw t.status=r.status,t}return r.json()},enabled:!!t&&!!e,retry:(t,e)=>404!==e.status&&400!==e.status&&t<3})}function x(t,e,r){return(0,a.I)({queryKey:["git",t,"commit-file-diff",e,r],queryFn:async()=>{if(!t||!e||!r)return null;let n=await fetch(`${c}/git/diff?path=${encodeURIComponent(t)}&commit=${encodeURIComponent(e)}&file=${encodeURIComponent(r)}`);if(!n.ok){let t=Error((await n.json().catch(()=>({}))).error||"Failed to fetch file diff");throw t.status=n.status,t}return n.json()},enabled:!!t&&!!e&&!!r,retry:(t,e)=>404!==e.status&&400!==e.status&&t<3})}function j(t){return(0,a.I)({queryKey:["git",t,"stashes"],queryFn:async()=>{if(!t)return[];let e=await fetch(`${c}/git/action`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoPath:t,action:"stash-list"})});if(!e.ok)throw Error("Failed to fetch stashes");return(await e.json()).stashes||[]},enabled:!!t})}function S(t,e){return(0,a.I)({queryKey:["git",t,"stash-files",e],queryFn:async()=>{if(!t||null===e)return[];let r=await fetch(`${c}/git/action`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoPath:t,action:"stash-files",data:{index:e}})});if(!r.ok)throw Error("Failed to fetch stash files");return(await r.json()).files||[]},enabled:!!t&&null!==e})}function v(t,e,r){return(0,a.I)({queryKey:["git",t,"stash-file-diff",e,r],queryFn:async()=>{if(!t||null===e||!r)return{left:"",right:"",diff:""};let n=await fetch(`${c}/git/action`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoPath:t,action:"stash-file-diff",data:{index:e,file:r}})});if(!n.ok)throw Error("Failed to fetch stash file diff");return n.json()},enabled:!!t&&null!==e&&!!r})}let T={commit:"Commit",push:"Push",pull:"Pull",fetch:"Fetch",stage:"Stage",unstage:"Unstage",checkout:"Checkout","checkout-to-local":"Checkout",branch:"Create Branch","create-tag":"Create Tag","delete-branch":"Delete Branch","delete-remote-branch":"Delete Remote Branch","delete-remote":"Delete Remote","delete-tag":"Delete Tag","delete-remote-tag":"Delete Remote Tag","rename-branch":"Rename Branch","rename-remote-branch":"Rename Remote Branch","rename-remote":"Rename Remote","add-remote":"Add Remote",reset:"Reset",revert:"Revert Commit","cherry-pick":"Cherry Pick","cherry-pick-multiple":"Cherry Pick","cherry-pick-abort":"Cherry Pick",rebase:"Rebase",merge:"Merge","check-merge-conflicts":"Check Merge Conflicts","check-rebase-conflicts":"Check Rebase Conflicts","get-remotes":"Get Remotes","get-remote-branches":"Get Remote Branches","get-tracking-branch":"Get Tracking Branch","get-latest-commit-message":"Get Latest Commit Message","push-to-remote":"Push","pull-from-remote":"Pull",stash:"Stash","stash-apply":"Apply Stash","stash-drop":"Drop Stash","stash-pop":"Pop Stash",reword:"Reword Commit",discard:"Discard Changes","cleanup-lock-file":"Cleanup Lock File"},E=["check-merge-conflicts","check-rebase-conflicts","get-remotes","get-remote-branches","get-tracking-branch","get-latest-commit-message"];async function C(t){let e=await fetch(`${c}/git/action`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoPath:t,action:"cleanup-lock-file"})});if(!e.ok)throw Error("Failed to cleanup lock file");return e.json()}function F(){let t=(0,s.jE)();return(0,o.n)({mutationFn:async({repoPath:t,action:e,data:r})=>{let n=await fetch(`${c}/git/action`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoPath:t,action:e,data:r})});if(!n.ok)throw Error((await n.json()).error||"Failed to execute action");return n.json()},onSuccess:(e,r)=>{E.includes(r.action)||t.invalidateQueries({queryKey:["git",r.repoPath]})},onError:(e,r)=>{if(!E.includes(r.action)&&!r.suppressErrorToast){let n=T[r.action]||r.action;e.message.includes("Unable to create")&&e.message.includes(".git/index.lock")?(0,i.tk)(e,{operation:n,fixLabel:"Remove Lock File",onFix:async()=>{await C(r.repoPath),t.invalidateQueries({queryKey:["git",r.repoPath]})}}):(0,i.tk)(e,{operation:n})}}})}},6695:(t,e,r)=>{r.d(e,{dj:()=>h,oR:()=>d,tk:()=>m});var n=r(2115);let a=5e3;async function s(t){try{return await navigator.clipboard.writeText(t),!0}catch{let e=document.createElement("textarea");e.value=t,e.style.position="fixed",e.style.left="-9999px",document.body.appendChild(e),e.select();try{return document.execCommand("copy"),!0}catch{return!1}finally{document.body.removeChild(e)}}}let o=0;function i(){return(o=(o+1)%Number.MAX_SAFE_INTEGER).toString()}let c=new Map,l=(t,e=a)=>{if(c.has(t))return;let r=setTimeout(()=>{c.delete(t),p({type:"REMOVE_TOAST",toastId:t})},e);c.set(t,r)},u=[],f={toasts:[]};function p(t){f=((t,e)=>{switch(e.type){case"ADD_TOAST":return{...t,toasts:[e.toast,...t.toasts].slice(0,5)};case"UPDATE_TOAST":return{...t,toasts:t.toasts.map(t=>t.id===e.toast.id?{...t,...e.toast}:t)};case"DISMISS_TOAST":{let{toastId:r}=e;return r?l(r,0):t.toasts.forEach(t=>{l(t.id,0)}),{...t,toasts:t.toasts.filter(t=>t.id!==r&&void 0!==r)}}case"REMOVE_TOAST":if(void 0===e.toastId)return{...t,toasts:[]};return{...t,toasts:t.toasts.filter(t=>t.id!==e.toastId)}}})(f,t),u.forEach(t=>{t(f)})}function d(t){let e=i();return p({type:"ADD_TOAST",toast:{...t,id:e}}),l(e,t.duration||a),{id:e,dismiss:()=>p({type:"DISMISS_TOAST",toastId:e}),update:t=>p({type:"UPDATE_TOAST",toast:{...t,id:e}})}}function h(){let[t,e]=n.useState(f);return n.useEffect(()=>(u.push(e),()=>{let t=u.indexOf(e);t>-1&&u.splice(t,1)}),[t]),{...t,toast:d,dismiss:t=>p({type:"DISMISS_TOAST",toastId:t})}}function m(t,e={}){let r="string"==typeof t?t:t.message,a=e.title||(e.operation?`${e.operation} Failed`:"Git Operation Failed"),o=i();return d({type:"error",title:a,description:n.createElement(()=>{let[t,a]=n.useState(!1),[i,c]=n.useState(!1),l=async t=>{t.stopPropagation(),await s(r)&&(a(!0),setTimeout(()=>a(!1),2e3))},u=async t=>{if(t.stopPropagation(),e.onFix){c(!0);try{await e.onFix(),p({type:"DISMISS_TOAST",toastId:o})}catch(t){console.error("Fix failed",t),c(!1)}}};return n.createElement("div",{className:"mt-2 space-y-3"},n.createElement("div",{className:"max-h-[120px] overflow-y-auto whitespace-pre-wrap font-mono text-[11px] leading-relaxed bg-black/20 p-3 rounded-md break-all text-error-content/90 border border-error-content/20"},r),n.createElement("div",{className:"flex gap-2"},n.createElement("button",{onClick:l,type:"button",className:`btn btn-xs ${t?"btn-success text-white":"bg-white/20 hover:bg-white/30 text-white border-white/20"}`},t?"Copied!":"Copy Error"),e.onFix?n.createElement("button",{onClick:u,type:"button",disabled:i,className:"btn btn-xs btn-warning text-white"},i?"Fixing...":e.fixLabel||"Fix Issue"):null))}),duration:1e4}),{id:o,dismiss:()=>p({type:"DISMISS_TOAST",toastId:o})}}},8599:(t,e,r)=>{r.d(e,{L9:()=>y,cn:()=>s,iu:()=>i,kO:()=>d,kj:()=>o,tq:()=>m,u:()=>h});var n=r(9722),a=r(622);function s(...t){return(0,a.QP)((0,n.$)(t))}function o(t){let e=t.replace(/[\\/]+$/,"").split(/[/\\]/).filter(Boolean);return e[e.length-1]||t}function i(t){let e=t.displayName?.trim();return e||(t.name?.trim()?t.name:o(t.path))}function c(t){if(!t)return"";let e=t.split("/").pop()||"",r=e.lastIndexOf(".");return -1===r||0===r?e.toLowerCase():e.slice(r+1).toLowerCase()}let l=new Set(["js","jsx","ts","tsx","mjs","cjs","mts","cts","py","pyw","pyi","pyx","rb","rake","gemspec","java","kt","kts","scala","sc","groovy","gradle","c","h","cpp","cc","cxx","hpp","hh","hxx","c++","h++","cs","fs","fsx","fsi","go","rs","swift","dart","zig","nim","v","odin","php","phtml","php3","php4","php5","php7","phps","pl","pm","pod","t","psgi","lua","tcl","r","R","jl","ex","exs","erl","hrl","clj","cljs","cljc","edn","lisp","lsp","el","scm","ss","rkt","hs","lhs","elm","purs","ml","mli","f90","f95","f03","f08","for","asm","s","S","vhd","vhdl","v","sv","svh","bas","vb","vbs","vba","pas","pp","inc","dpr","dpk","sh","bash","zsh","fish","ksh","csh","tcsh","ps1","psm1","psd1","bat","cmd","html","htm","xhtml","shtml","css","scss","sass","less","styl","stylus","pcss","postcss","svg","xml","xsl","xslt","xsd","dtd","rss","atom","rdf","wsdl","soap","vue","svelte","astro","mdx","hbs","handlebars","mustache","ejs","pug","jade","haml","slim","erb","graphql","gql","json","json5","jsonc","jsonl","ndjson","geojson","yaml","yml","toml","ini","cfg","conf","config","properties","env","csv","tsv","psv","txt","text","log","out","md","markdown","mdown","mkd","mkdn","mdwn","rst","rest","adoc","asciidoc","asc","org","tex","latex","ltx","bib","sty","cls","rtf","diff","patch","gitignore","gitattributes","gitmodules","gitconfig","dockerignore","dockerfile","containerfile","editorconfig","prettierrc","eslintrc","babelrc","stylelintrc","browserslistrc","npmrc","nvmrc","yarnrc","pnpmfile","makefile","mk","cmake","make","mak","rake","podfile","gemfile","fastfile","sql","plsql","pgsql","mysql","sqlite","hql","cql","proto","protobuf","thrift","avro","capnp","fbs","flatc","tf","tfvars","hcl","nomad","sentinel","prisma","graphqls","lock"]),u=new Set(["jpg","jpeg","png","gif","bmp","ico","icns","tiff","tif","webp","avif","heic","heif","psd","ai","eps","raw","cr2","nef","orf","sr2","dng","mp4","avi","mov","wmv","flv","mkv","webm","m4v","mpeg","mpg","3gp","3g2","ogv","mp3","wav","ogg","oga","flac","aac","m4a","wma","aiff","aif","mid","midi","opus","zip","rar","7z","tar","gz","bz2","xz","lz","lzma","lz4","zst","cab","iso","dmg","exe","dll","so","dylib","a","lib","obj","o","app","msi","deb","rpm","apk","ipa","pkg","snap","flatpak","appimage","class","jar","war","ear","pyc","pyo","pyd","beam","wasm","wat","pdf","doc","docx","xls","xlsx","ppt","pptx","odt","ods","odp","pages","numbers","key","ttf","otf","woff","woff2","eot","fon","fnt","db","sqlite","sqlite3","mdb","accdb","frm","myd","myi","ibd","bin","dat","data","sav","bak","swf","fla","blend","fbx","obj","stl","gltf","glb","3ds","dae","ply","sketch","fig","xd","unity","unitypackage","asset","prefab","meta"]),f=new Set(["png","jpg","jpeg","gif","bmp","ico","icns","tiff","tif","webp","avif","heic","heif","svg"]);function p(t){if(!t)return!1;if(t.includes("\0"))return!0;let e=t.slice(0,8192),r=0;for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);n<32&&9!==n&&10!==n&&13!==n&&r++}return e.length>0&&r/e.length>.1}function d(t,e,r){let n=function(t){if(!t)return"unknown";let e=c(t);return l.has(e)?"text":u.has(e)?"binary":"unknown"}(t);return"binary"===n||"text"!==n&&(p(e||"")||p(r||""))}function h(t){return f.has(c(t))}function m(t){return t?t.split("\n").reduce((t,e)=>e.startsWith("+++ ")||e.startsWith("--- ")?t:e.startsWith("+")||e.startsWith("-")?t+1:t,0):0}function y(t){return t.replace(/[\s~^:?*\[\]\\@{}<>|"'`!#$%&()+=;,]/g,"-").replace(/\.{2,}/g,"-").replace(/\/{2,}/g,"/").replace(/-{2,}/g,"-")}}}]);