viba-cli 0.40.0 → 0.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +2 -2
- package/.next/fallback-build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/_global-error/page.js +1 -1
- package/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/server/app/_global-error.html +2 -2
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +2 -2
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/component-source/resolve/route.js +1 -1
- package/.next/server/app/api/component-source/resolve/route.js.nft.json +1 -1
- package/.next/server/app/api/credentials/github/repos/route.js +1 -1
- package/.next/server/app/api/credentials/github/repos/route.js.nft.json +1 -1
- package/.next/server/app/api/credentials/route.js +1 -1
- package/.next/server/app/api/credentials/route.js.nft.json +1 -1
- package/.next/server/app/api/custom-scripts/route.js.nft.json +1 -1
- package/.next/server/app/api/git/action/route.js +1 -1
- package/.next/server/app/api/git/action/route.js.nft.json +1 -1
- package/.next/server/app/api/git/branches/route.js.nft.json +1 -1
- package/.next/server/app/api/git/diff/route.js +1 -1
- package/.next/server/app/api/git/diff/route.js.nft.json +1 -1
- package/.next/server/app/api/git/log/route.js.nft.json +1 -1
- package/.next/server/app/api/git/status/route.js.nft.json +1 -1
- package/.next/server/app/api/preview-proxy/start/route.js +1 -1
- package/.next/server/app/api/preview-proxy/start/route.js.nft.json +1 -1
- package/.next/server/app/api/repos/clone/route.js +1 -1
- package/.next/server/app/api/repos/clone/route.js.nft.json +1 -1
- package/.next/server/app/api/repos/route.js +1 -1
- package/.next/server/app/api/repos/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/route.js +1 -1
- package/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/.next/server/app/credentials/page/server-reference-manifest.json +7 -7
- package/.next/server/app/credentials/page.js +1 -1
- package/.next/server/app/credentials/page.js.nft.json +1 -1
- package/.next/server/app/credentials/page_client-reference-manifest.js +1 -1
- package/.next/server/app/credentials.html +2 -2
- package/.next/server/app/credentials.rsc +4 -4
- package/.next/server/app/credentials.segments/_full.segment.rsc +4 -4
- package/.next/server/app/credentials.segments/_head.segment.rsc +1 -1
- package/.next/server/app/credentials.segments/_index.segment.rsc +2 -2
- package/.next/server/app/credentials.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/credentials.segments/credentials/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/credentials.segments/credentials.segment.rsc +1 -1
- package/.next/server/app/git/changes/page.js +1 -1
- package/.next/server/app/git/changes/page.js.nft.json +1 -1
- package/.next/server/app/git/changes/page_client-reference-manifest.js +1 -1
- package/.next/server/app/git/changes.html +2 -2
- package/.next/server/app/git/changes.rsc +2 -2
- package/.next/server/app/git/changes.segments/_full.segment.rsc +2 -2
- package/.next/server/app/git/changes.segments/_head.segment.rsc +1 -1
- package/.next/server/app/git/changes.segments/_index.segment.rsc +2 -2
- package/.next/server/app/git/changes.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/git/changes.segments/git/changes/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/git/changes.segments/git/changes.segment.rsc +1 -1
- package/.next/server/app/git/changes.segments/git.segment.rsc +1 -1
- package/.next/server/app/git/custom-scripts/page.js +1 -1
- package/.next/server/app/git/custom-scripts/page.js.nft.json +1 -1
- package/.next/server/app/git/custom-scripts/page_client-reference-manifest.js +1 -1
- package/.next/server/app/git/custom-scripts.html +2 -2
- package/.next/server/app/git/custom-scripts.rsc +2 -2
- package/.next/server/app/git/custom-scripts.segments/_full.segment.rsc +2 -2
- package/.next/server/app/git/custom-scripts.segments/_head.segment.rsc +1 -1
- package/.next/server/app/git/custom-scripts.segments/_index.segment.rsc +2 -2
- package/.next/server/app/git/custom-scripts.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/git/custom-scripts.segments/git/custom-scripts/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/git/custom-scripts.segments/git/custom-scripts.segment.rsc +1 -1
- package/.next/server/app/git/custom-scripts.segments/git.segment.rsc +1 -1
- package/.next/server/app/git/history/page/server-reference-manifest.json +17 -1
- package/.next/server/app/git/history/page.js +3 -2
- package/.next/server/app/git/history/page.js.nft.json +1 -1
- package/.next/server/app/git/history/page_client-reference-manifest.js +1 -1
- package/.next/server/app/git/history.html +2 -2
- package/.next/server/app/git/history.rsc +4 -4
- package/.next/server/app/git/history.segments/_full.segment.rsc +4 -4
- package/.next/server/app/git/history.segments/_head.segment.rsc +1 -1
- package/.next/server/app/git/history.segments/_index.segment.rsc +2 -2
- package/.next/server/app/git/history.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/git/history.segments/git/history/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/git/history.segments/git/history.segment.rsc +1 -1
- package/.next/server/app/git/history.segments/git.segment.rsc +1 -1
- package/.next/server/app/git/page/server-reference-manifest.json +17 -1
- package/.next/server/app/git/page.js +3 -2
- package/.next/server/app/git/page.js.nft.json +1 -1
- package/.next/server/app/git/page_client-reference-manifest.js +1 -1
- package/.next/server/app/git/stashes/page.js +1 -1
- package/.next/server/app/git/stashes/page.js.nft.json +1 -1
- package/.next/server/app/git/stashes/page_client-reference-manifest.js +1 -1
- package/.next/server/app/git/stashes.html +2 -2
- package/.next/server/app/git/stashes.rsc +2 -2
- package/.next/server/app/git/stashes.segments/_full.segment.rsc +2 -2
- package/.next/server/app/git/stashes.segments/_head.segment.rsc +1 -1
- package/.next/server/app/git/stashes.segments/_index.segment.rsc +2 -2
- package/.next/server/app/git/stashes.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/git/stashes.segments/git/stashes/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/git/stashes.segments/git/stashes.segment.rsc +1 -1
- package/.next/server/app/git/stashes.segments/git.segment.rsc +1 -1
- package/.next/server/app/git.html +2 -2
- package/.next/server/app/git.rsc +4 -4
- package/.next/server/app/git.segments/_full.segment.rsc +4 -4
- package/.next/server/app/git.segments/_head.segment.rsc +1 -1
- package/.next/server/app/git.segments/_index.segment.rsc +2 -2
- package/.next/server/app/git.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/git.segments/git/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/git.segments/git.segment.rsc +1 -1
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +4 -4
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/new/page/server-reference-manifest.json +29 -29
- package/.next/server/app/new/page.js +3 -3
- package/.next/server/app/new/page.js.nft.json +1 -1
- package/.next/server/app/new/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page/server-reference-manifest.json +29 -29
- package/.next/server/app/page.js +3 -3
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/session/[sessionId]/page/server-reference-manifest.json +34 -19
- package/.next/server/app/session/[sessionId]/page.js +2 -2
- package/.next/server/app/session/[sessionId]/page.js.nft.json +1 -1
- package/.next/server/app/session/[sessionId]/page_client-reference-manifest.js +1 -1
- package/.next/server/chunks/[externals]__4610b07e._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__51f9ab28._.js → [root-of-the-server]__093d29e3._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__f52f1c06._.js → [root-of-the-server]__2bdd2171._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__ceda8fbc._.js → [root-of-the-server]__34da758c._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__9af2c9bf._.js → [root-of-the-server]__5ebd9b2a._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__3ffc9919._.js → [root-of-the-server]__6a2576a8._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__5b08b37e._.js → [root-of-the-server]__7147e7f8._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__1bf60374._.js → [root-of-the-server]__93d494cc._.js} +2 -2
- package/.next/server/chunks/{[root-of-the-server]__8b29248a._.js → [root-of-the-server]__952874bc._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__05e6fb4c._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__2f5cb477._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__0ed2deb1._.js.map → [root-of-the-server]__2f5cb477._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__32cb19cb._.js +3 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__a65a3900._.js.map → [root-of-the-server]__32cb19cb._.js.map} +1 -1
- package/.next/server/chunks/ssr/{[root-of-the-server]__5be652da._.js → [root-of-the-server]__35dc6469._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__46af1502._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__46af1502._.js.map +1 -1
- package/.next/server/chunks/ssr/{_476e86d1._.js → [root-of-the-server]__4928d640._.js} +3 -3
- package/.next/server/chunks/ssr/{_476e86d1._.js.map → [root-of-the-server]__4928d640._.js.map} +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__6e6c1134._.js +4 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__6e6c1134._.js.map +1 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__e86a1b81._.js → [root-of-the-server]__79ab29ee._.js} +2 -2
- package/.next/server/chunks/ssr/[root-of-the-server]__8d19726f._.js +4 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__8d19726f._.js.map +1 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__96a8b4aa._.js → [root-of-the-server]__905c5090._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__1ed5a76d._.js → [root-of-the-server]__afccdb61._.js} +3 -3
- package/.next/server/chunks/ssr/{[root-of-the-server]__1ed5a76d._.js.map → [root-of-the-server]__afccdb61._.js.map} +1 -1
- package/.next/server/chunks/ssr/_1232faca._.js +3 -0
- package/.next/server/chunks/ssr/_1232faca._.js.map +1 -0
- package/.next/server/chunks/ssr/_21376a5e._.js +3 -0
- package/.next/server/chunks/ssr/_21376a5e._.js.map +1 -0
- package/.next/server/chunks/ssr/_25f614f9._.js +3 -0
- package/.next/server/chunks/ssr/_25f614f9._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules_next_dist_0ff44e32._.js → _4e480580._.js} +2 -2
- package/.next/server/chunks/ssr/_4e480580._.js.map +1 -0
- package/.next/server/chunks/ssr/_707e5fab._.js +1 -1
- package/.next/server/chunks/ssr/_707e5fab._.js.map +1 -1
- package/.next/server/chunks/ssr/_7e1d1983._.js +3 -0
- package/.next/server/chunks/ssr/_7e1d1983._.js.map +1 -0
- package/.next/server/chunks/ssr/_9493de08._.js +1 -1
- package/.next/server/chunks/ssr/_9493de08._.js.map +1 -1
- package/.next/server/chunks/ssr/{_ebf4c61c._.js → _979edf0c._.js} +2 -2
- package/.next/server/chunks/ssr/_979edf0c._.js.map +1 -0
- package/.next/server/chunks/ssr/_9db6d532._.js +3 -0
- package/.next/server/chunks/ssr/_9db6d532._.js.map +1 -0
- package/.next/server/chunks/ssr/{_a07f93fb._.js → _a30f8faf._.js} +2 -2
- package/.next/server/chunks/ssr/_a30f8faf._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules_bf7b09f8._.js → node_modules_3aaf320c._.js} +2 -2
- package/.next/server/chunks/ssr/node_modules_3aaf320c._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules_8e38eac2._.js → node_modules_f0d9388d._.js} +2 -2
- package/.next/server/chunks/ssr/node_modules_f0d9388d._.js.map +1 -0
- package/.next/server/chunks/ssr/{node_modules_3e692bb2._.js → node_modules_fae6b458._.js} +2 -2
- package/.next/server/chunks/ssr/node_modules_fae6b458._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_35575f97._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_35575f97._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_b34e0340._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_b34e0340._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_credentials_page_tsx_63d8d34a._.js +1 -1
- package/.next/server/chunks/ssr/src_app_credentials_page_tsx_63d8d34a._.js.map +1 -1
- package/.next/server/chunks/ssr/src_app_session_[sessionId]_SessionPageClient_tsx_dab490d7._.js +1 -1
- package/.next/server/chunks/ssr/src_app_session_[sessionId]_SessionPageClient_tsx_dab490d7._.js.map +1 -1
- package/.next/server/chunks/ssr/src_components_GitRepoSelector_tsx_05c81afa._.js +3 -3
- package/.next/server/chunks/ssr/src_components_GitRepoSelector_tsx_05c81afa._.js.map +1 -1
- package/.next/server/chunks/ssr/src_components_git_history-view_tsx_fd62126a._.js +6 -6
- package/.next/server/chunks/ssr/src_components_git_history-view_tsx_fd62126a._.js.map +1 -1
- package/.next/server/pages/404.html +2 -2
- package/.next/server/pages/500.html +2 -2
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +77 -48
- package/.next/static/chunks/15bbad1a4cefc870.js +3 -0
- package/.next/static/chunks/{db4cb4eb290e3be9.js → 2ca45fcc772c4ea0.js} +2 -2
- package/.next/static/chunks/3df671a7fdd91e3e.js +1 -0
- package/.next/static/chunks/53f66f12a3d0dc7f.js +3 -0
- package/.next/static/chunks/6242d36c3f387ddb.js +1 -0
- package/.next/static/chunks/697655e0e9336655.js +1 -0
- package/.next/static/chunks/c08840e14b1e627c.css +1 -0
- package/.next/static/chunks/d6c7a0b35251160d.js +8 -0
- package/.next/static/chunks/dcba19c95b8bc155.js +1 -0
- package/.next/static/chunks/e45cecb04475a86a.js +9 -0
- package/.next/static/chunks/f31a3f4a435e3f86.js +3 -0
- package/README.md +2 -1
- package/bin/viba.mjs +9 -5
- package/package.json +1 -1
- package/.next/server/chunks/[externals]__7ece43c5._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0ed2deb1._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__a65a3900._.js +0 -3
- package/.next/server/chunks/ssr/_2eaa7035._.js +0 -3
- package/.next/server/chunks/ssr/_2eaa7035._.js.map +0 -1
- package/.next/server/chunks/ssr/_4343fa01._.js +0 -3
- package/.next/server/chunks/ssr/_4343fa01._.js.map +0 -1
- package/.next/server/chunks/ssr/_a07f93fb._.js.map +0 -1
- package/.next/server/chunks/ssr/_ebf4c61c._.js.map +0 -1
- package/.next/server/chunks/ssr/_ff20dbae._.js +0 -3
- package/.next/server/chunks/ssr/_ff20dbae._.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_git_history_page_actions_9e9b26bc.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_git_history_page_actions_9e9b26bc.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_git_page_actions_511f286b.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_git_page_actions_511f286b.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_3e692bb2._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_50fa454f._.js +0 -5
- package/.next/server/chunks/ssr/node_modules_50fa454f._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_8e38eac2._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_bf7b09f8._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_0ff44e32._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_f6fd30d1._.js +0 -3
- package/.next/server/chunks/ssr/node_modules_next_dist_f6fd30d1._.js.map +0 -1
- package/.next/server/chunks/ssr/src_408d74ba._.js +0 -3
- package/.next/server/chunks/ssr/src_408d74ba._.js.map +0 -1
- package/.next/server/chunks/ssr/src_49325427._.js +0 -3
- package/.next/server/chunks/ssr/src_49325427._.js.map +0 -1
- package/.next/static/chunks/1ca050861ead915f.js +0 -3
- package/.next/static/chunks/4aab1f3ea2ed1aef.js +0 -1
- package/.next/static/chunks/4de7bc5a00a1aed9.js +0 -3
- package/.next/static/chunks/5e0dada5236f9065.js +0 -8
- package/.next/static/chunks/73f859ef915277c7.js +0 -3
- package/.next/static/chunks/74f887e69c1fcefa.js +0 -9
- package/.next/static/chunks/977137e155012c13.js +0 -1
- package/.next/static/chunks/b18cc1247b979318.js +0 -1
- package/.next/static/chunks/e5bcfa7f94c34b77.js +0 -1
- package/.next/static/chunks/eec24a7b35c2d7bd.css +0 -1
- /package/.next/server/chunks/{[externals]__7ece43c5._.js.map → [externals]__4610b07e._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__51f9ab28._.js.map → [root-of-the-server]__093d29e3._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__f52f1c06._.js.map → [root-of-the-server]__2bdd2171._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__ceda8fbc._.js.map → [root-of-the-server]__34da758c._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__9af2c9bf._.js.map → [root-of-the-server]__5ebd9b2a._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__3ffc9919._.js.map → [root-of-the-server]__6a2576a8._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__5b08b37e._.js.map → [root-of-the-server]__7147e7f8._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__1bf60374._.js.map → [root-of-the-server]__93d494cc._.js.map} +0 -0
- /package/.next/server/chunks/{[root-of-the-server]__8b29248a._.js.map → [root-of-the-server]__952874bc._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{[root-of-the-server]__5be652da._.js.map → [root-of-the-server]__35dc6469._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{[root-of-the-server]__e86a1b81._.js.map → [root-of-the-server]__79ab29ee._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{[root-of-the-server]__96a8b4aa._.js.map → [root-of-the-server]__905c5090._.js.map} +0 -0
- /package/.next/static/{SPowgKQ4GVFmr1hEouu16 → f6hBCO8U8SWC5F77QTqGY}/_buildManifest.js +0 -0
- /package/.next/static/{SPowgKQ4GVFmr1hEouu16 → f6hBCO8U8SWC5F77QTqGY}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{SPowgKQ4GVFmr1hEouu16 → f6hBCO8U8SWC5F77QTqGY}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,93104,e=>{"use strict";var a=e.i(43476),t=e.i(33794),s=e.i(12598),l=e.i(71645);function n(e){let a=0x811c9dc5;for(let t=0;t<e.length;t++)a^=e.charCodeAt(t),a=Math.imul(a,0x1000193);return a>>>0}var r=e.i(75157);function i({children:e,items:t,containerClassName:s="w-full"}){let[n,i]=(0,l.useState)(!1),[o,c]=(0,l.useState)({x:0,y:0}),d=(0,l.useRef)(null),h=(0,l.useRef)(null);(0,l.useEffect)(()=>{if(!n)return;let e=e=>{d.current&&!d.current.contains(e.target)&&h.current&&!h.current.contains(e.target)&&i(!1)},a=e=>{"Escape"===e.key&&i(!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)}},[n]),(0,l.useEffect)(()=>{if(!n||!d.current)return;let e=d.current;requestAnimationFrame(()=>{let a=document.createElement("div");a.style.position="absolute",a.style.visibility="hidden",a.style.whiteSpace="nowrap",a.style.pointerEvents="none";let s=window.getComputedStyle(e);a.style.fontSize=s.fontSize,a.style.fontFamily=s.fontFamily,a.style.fontWeight=s.fontWeight,a.style.padding="0.5rem 0.75rem",a.style.boxSizing="border-box",document.body.appendChild(a);let l=0;t.forEach(e=>{a.textContent=e.label;let t=a.getBoundingClientRect().width+20*!!e.icon+16*!!e.children?.length;t>l&&(l=t)}),document.body.removeChild(a);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`)})},[n,o,t]);let m=(e,t)=>{let s=!!e.children?.length;return(0,a.jsxs)("li",{className:(0,r.cn)(s&&"relative group/submenu"),children:[(0,a.jsxs)("a",{onClick:a=>{a.stopPropagation(),e.disabled||s||(e.onClick?.(),i(!1))},className:(0,r.cn)("flex items-center gap-2","whitespace-nowrap",e.danger&&"text-error",e.disabled&&"opacity-40 pointer-events-none",s&&"flex items-center justify-between gap-3"),children:[(0,a.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[e.icon&&(0,a.jsx)("span",{className:"inline-flex shrink-0 opacity-80",children:e.icon}),(0,a.jsx)("span",{children:e.labelNode??e.label})]}),s&&(0,a.jsx)("i",{className:"iconoir-nav-arrow-right text-[12px]","aria-hidden":"true"})]}),s&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"hidden group-hover/submenu:block absolute left-full top-0 h-full w-3"}),(0,a.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,a)=>m(e,`${t}-${a}`))})]})]},t)};return(0,a.jsxs)("div",{ref:h,className:s,onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),c({x:e.clientX,y:e.clientY}),i(!0)},children:[e,n&&(0,a.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:t.map((e,a)=>m(e,`menu-${a}`))})]})}function o({text:e,searchQuery:t}){if(!t||!e)return(0,a.jsx)(a.Fragment,{children:e});let s=t.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,a.jsx)(a.Fragment,{children:e}):(0,a.jsx)(a.Fragment,{children:n.map((e,t)=>e.highlighted?(0,a.jsx)("mark",{className:"bg-warning text-warning-content rounded-sm px-0.5",children:e.text},t):(0,a.jsx)("span",{children:e.text},t))})}let c=(0,l.forwardRef)(function({commits:e,onSelectCommit:t,onResetToCommit:s,onRevertCommit:c,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,l.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,l.useCallback)(e=>e.startsWith("tag:")?e.replace(/^tag:\s*/,"").trim():e,[]),S=(0,l.useMemo)(()=>(function(e,a={}){let t=[],s=new Set(a.localBranches??[]),l=[],r=[],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,t=i[e],s=t?(a=n(t),`hsl(${a%360} 82% 52%)`):r[e]??`hsl(${47*e%360} 78% 56%)`;return r[e]=s,s}return e.forEach((e,a)=>{var n;let d=[];for(let a=0;a<l.length;a++)l[a]===e.hash&&d.push(a);let h=d.length>0?d[0]:-1;for(-1===h&&(h=o());l.length<=h;)l.push(null),i.push(null),r.push(void 0);let m=function(e,a){if(0===e.length)return null;let t=e.find(e=>a.has(e));return t||e[0]}((n=e.refs)?n.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)):[],s);if(m){let e=function(e,a){let t,s;if(a.has(e))return e;let l=-1===(s=(t=e.startsWith("remotes/")?e.slice(8):e).indexOf("/"))?null:t.slice(s+1);return l&&a.has(l)?l:e}(m,s);(function(e,a,t){return!a||t.has(e)&&!t.has(a)})(e,i[h],s)&&(i[h]=e)}let u=c(h),x={...e,x:h,y:a,color:u,paths:[],isMerge:e.parents.length>1},p=d.filter(e=>e!==h),b=new Set(p);for(let e=0;e<l.length;e++)e===h||null===l[e]||b.has(e)||x.paths.push({x1:e,y1:a,x2:e,y2:a+1,color:c(e),type:"straight"});for(let e of(l[h]=null,p)){if(a>0){let s=t[t.length-1];s&&(s.paths=s.paths.filter(t=>"straight"!==t.type||t.x1!==e||t.y1!==a-1||t.x2!==e||t.y2!==a))}x.paths.push({x1:e,y1:a-1,x2:h,y2:a,color:c(e),type:"merge"}),l[e]=null,i[e]=null,r[e]=void 0}let f=e.parents;if(f.length>0){let e=f[0];l[h]=e,x.paths.push({x1:h,y1:a,x2:h,y2:a+1,color:u,type:"straight"});for(let e=1;e<f.length;e++){let t=f[e],s=l.indexOf(t);if(-1!==s)x.paths.push({x1:h,y1:a,x2:s,y2:a+1,color:c(s),type:"fork"});else{let e=o();for(;l.length<=e;)l.push(null),i.push(null),r.push(void 0);l[e]=t,x.paths.push({x1:h,y1:a,x2:e,y2:a+1,color:c(e),type:"fork"})}}}null===l[h]&&(i[h]=null,r[h]=void 0),t.push(x)}),t})(e,{localBranches:N}),[e,N]),R=(0,l.useRef)(null),E=(0,l.useRef)(null),[$,B]=(0,l.useState)(!1),[P,M]=(0,l.useState)("");(0,l.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&"f"===e.key&&(e.preventDefault(),B(!0),setTimeout(()=>E.current?.focus(),0)),"Escape"===e.key&&$&&(B(!1),M(""))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[$]);let F=(0,l.useCallback)(()=>{B(!1),M("")},[]);if((0,l.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 T=(Math.max(...S.map(e=>e.x),0)+1)*12+20,D=24*S.length;return(0,a.jsxs)("div",{className:"flex flex-col h-full overflow-hidden bg-white dark:bg-slate-900 font-mono text-sm select-none",children:[$&&(0,a.jsxs)("div",{className:"sticky top-0 z-30 bg-white dark:bg-slate-900 border-b border-base-300 px-2 py-2 flex items-center gap-2",children:[(0,a.jsx)("span",{className:"opacity-50",children:"🔍"}),(0,a.jsx)("input",{ref:E,type:"text",placeholder:"Search in commits...",value:P,onChange:e=>M(e.target.value),className:"input input-bordered input-sm flex-1 text-sm",autoFocus:!0}),(0,a.jsx)("div",{className:"tooltip tooltip-left z-50","data-tip":"Close search (Esc)",children:(0,a.jsx)("button",{onClick:F,className:"btn btn-ghost btn-sm btn-square",children:"✖️"})})]}),(0,a.jsx)("div",{className:"flex-1 overflow-auto h-full max-w-full px-2",onScroll:e=>{let{scrollTop:a,clientHeight:t,scrollHeight:s}=e.currentTarget;s-a-t<100&&b?.()},ref:R,children:(0,a.jsxs)("div",{className:"relative min-w-full",style:{height:D},children:[(0,a.jsxs)("svg",{width:T,height:D,className:"absolute top-0 left-0 pointer-events-none z-10",children:[S.map(e=>(0,a.jsx)("g",{children:e.paths.map((e,t)=>{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,a.jsx)("path",{d:i,stroke:e.color,strokeWidth:2,fill:"none",strokeLinecap:"round"},t)})},e.hash)),S.map(e=>(0,a.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,a.jsxs)("div",{style:{width:"100%"},children:[S.map(e=>{let l=p?p.has(e.hash):x===e.hash,b=p?.size??+!!x,f=[{label:"Reset to here",icon:(0,a.jsx)("i",{className:"iconoir-refresh-circle text-[14px]","aria-hidden":"true"}),onClick:()=>s?.(e.hash)}];if(c&&f.push({label:"Revert commit",icon:(0,a.jsx)("i",{className:"iconoir-u-turn-arrow-left text-[14px]","aria-hidden":"true"}),onClick:()=>c(e.hash,e.message)}),d&&f.push({label:"Create tag",icon:(0,a.jsx)("i",{className:"iconoir-bookmark text-[14px]","aria-hidden":"true"}),onClick:()=>d(e.hash)}),h&&f.push({label:"Cherry-pick commit",icon:(0,a.jsx)("i",{className:"iconoir-git-fork text-[14px]","aria-hidden":"true"}),onClick:()=>h(e.hash,e.message)}),m&&b>1&&l&&f.push({label:`Cherry-pick ${b} selected commits`,icon:(0,a.jsx)("i",{className:"iconoir-git-fork text-[14px]","aria-hidden":"true"}),onClick:m}),u&&N&&N.length>0){let t=e.refs?e.refs.replace(/[()]/g,"").split(",").map(e=>e.trim()):[],s=null;for(let e of t){let a=e.replace(/^HEAD\s*->\s*/,"");if(N.includes(a)&&(s=a,g&&a===g))break}s&&f.push({label:"Reword commit",icon:(0,a.jsx)("i",{className:"iconoir-edit-pencil text-[14px]","aria-hidden":"true"}),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 -> "),t=w(e.replace(/^HEAD\s*->\s*/,"").trim());return{raw:e,name:t,isHead:a}}),t=[],s=new Set,l=e=>j&&(j.has(e)||j.has(`remotes/${e}`));return a.forEach((e,n)=>{if(!s.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&&!s.has(a)&&i.has(e.name));if(-1!==o){let l=a[o],i=r.split("/")[0];t.push({displayName:`${e.name} (${i})`,primaryRef:e.name,secondaryRef:l.name,isHead:e.isHead}),s.add(n),s.add(o);return}}}}),a.forEach((e,a)=>{!s.has(a)&&(l(e.name)||t.push({displayName:C(e.name),primaryRef:e.name,isHead:e.isHead}))}),t})();return(0,a.jsx)(i,{items:f,children:(0,a.jsxs)("div",{className:(0,r.cn)("flex items-center hover:bg-base-200 border-b border-base-200 last:border-0 cursor-pointer transition-colors text-xs",l&&"bg-primary/10"),style:{height:24},onClick:a=>t?.(e.hash,{isMultiSelect:a.metaKey||a.ctrlKey,isRangeSelect:a.shiftKey}),children:[(0,a.jsx)("div",{style:{width:T,flexShrink:0}}),(0,a.jsxs)("div",{className:"flex flex-1 gap-4 overflow-hidden pr-4 items-center",children:[(0,a.jsxs)("div",{className:"flex-1 truncate flex items-center gap-2",children:[v.map((e,t)=>{let s=g&&(e.primaryRef===g||e.isHead&&e.primaryRef===g),l=e.primaryRef.startsWith("tag:")?{textColor:"#374151",backgroundColor:"#e5e7eb"}:function(e){let a,t,s,l,r,i,o,c,d,h=n(e),m=h%360,u=72+(h>>>9)%20,x=84+(h>>>17)%8,p=1.05/((d=function({r:e,g:a,b:t}){let s=e=>{let a=e/255;return a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4)};return .2126*s(e)+.7152*s(a)+.0722*s(t)}((t=u/100*(1-Math.abs(2*(a=x/100)-1)),l=t*(1-Math.abs((s=m/60)%2-1)),r=0,i=0,o=0,s>=0&&s<1?(r=t,i=l):s>=1&&s<2?(r=l,i=t):s>=2&&s<3?(i=t,o=l):s>=3&&s<4?(i=l,o=t):s>=4&&s<5?(r=l,o=t):(r=t,o=l),{r:Math.round((r+(c=a-t/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),c=(0,a.jsx)("span",{className:(0,r.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,a.jsx)(o,{text:e.displayName,searchQuery:P})}),d=k?.(e.primaryRef)||[];return 0===d.length?(0,a.jsx)("span",{className:"shrink-0",children:c},t):(0,a.jsx)(i,{items:d,containerClassName:"inline-flex shrink-0",children:c},t)}),(0,a.jsx)("span",{className:(0,r.cn)("truncate min-w-0 max-w-[600px]",l?"font-semibold":""),title:e.message,children:(0,a.jsx)(o,{text:e.message,searchQuery:P})})]}),(0,a.jsx)("div",{className:"w-32 truncate opacity-70 text-right",children:(0,a.jsx)(o,{text:e.author_name,searchQuery:P})}),(0,a.jsx)("div",{className:"w-20 truncate opacity-50 font-mono text-right",children:(0,a.jsx)(o,{text:e.hash.substring(0,7),searchQuery:P})}),(0,a.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,a.jsxs)("div",{className:"flex items-center justify-center py-8 border-b border-base-300",children:[(0,a.jsx)("span",{className:"loading loading-spinner text-base-content/50"}),(0,a.jsx)("span",{className:"ml-2 text-sm opacity-70",children:"Loading more commits..."})]})]})]})})]})});var d=e.i(28132),h=e.i(8406),m=e.i(89413);function u(e,a=""){let t={name:"",children:new Map};for(let s of e){let e=s.split("/"),l=t;for(let t=0;t<e.length;t++){let n=e[t];l.children.has(n)||l.children.set(n,{name:n,children:new Map}),l=l.children.get(n),t===e.length-1&&(l.fullPath=a?`${a}/${s}`:s)}}return t}function x(e,a,t){if(a[e])return a[e];let s=e.split("/");for(let e=s.length-1;e>0;e--){let t=s.slice(0,e).join("/");if(a[t])return a[t]}if(t){let e=t.split("/");for(let t=e.length;t>0;t--){let s=e.slice(0,t).join("/");if(a[s])return a[s]}}return null}function p(e){return Array.from(e.children.values()).sort((e,a)=>{let t=e.children.size>0&&!e.fullPath,s=a.children.size>0&&!a.fullPath;return t&&!s?-1:!t&&s?1:e.name.localeCompare(a.name)})}function b(e,a,t=""){let s=[];for(let l of p(e)){if(void 0!==l.fullPath){s.push(l.fullPath);continue}let e=t?`${t}/${l.name}`:l.name;a.has(e)&&s.push(...b(l,a,e))}return s}function f(e){let a=[];for(let t of p(e)){if(t.fullPath){a.push(t.fullPath);continue}a.push(...f(t))}return a}function g({type:e,isActive:t,isInherited:s,onClick:l,showOnHover:n}){return(0,a.jsx)("button",{className:(0,r.cn)("p-0.5 rounded hover:bg-base-300 transition-colors shrink-0 cursor-pointer text-xs",t&&"bg-primary/10",s&&"opacity-50",!t&&!n&&"opacity-0 group-hover:opacity-100"),onClick:l,title:"visible"===e?t?"Remove visible filter":"Show only this branch":t?"Remove hide filter":"Hide this branch",children:"visible"===e?(0,a.jsx)("i",{className:"iconoir-eye text-[14px]","aria-hidden":"true"}):(0,a.jsx)("i",{className:"iconoir-eye-closed text-[14px]","aria-hidden":"true"})})}function j({name:e,groupPath:t,icon:s,isExpanded:l,onToggle:n,visibilityMap:i,onToggleVisibility:o,depth:c=0}){let d=i[t],h=t.includes("/")?t.split("/").slice(0,-1).join("/"):void 0,m=h?i[h]:null,u=d||m,x=!d&&null!==m;return(0,a.jsxs)("div",{className:(0,r.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,a.jsxs)("div",{className:"flex items-center gap-1.5 flex-1 min-w-0",onClick:n,children:[(0,a.jsx)("span",{className:"text-xs opacity-70",children:l?"▼":"▶"}),(0,a.jsx)("span",{className:"shrink-0",children:s}),(0,a.jsx)("span",{className:"truncate min-w-0 flex-1",children:e})]}),(0,a.jsxs)("div",{className:"flex items-center gap-0.5 ml-auto",children:[(0,a.jsx)(g,{type:"visible",isActive:"visible"===d||x&&"visible"===u,isInherited:x&&"visible"===u,onClick:e=>{e.stopPropagation(),o(t,"visible")},showOnHover:"visible"===d||x&&"visible"===u}),(0,a.jsx)(g,{type:"hidden",isActive:"hidden"===d||x&&"hidden"===u,isInherited:x&&"hidden"===u,onClick:e=>{e.stopPropagation(),o(t,"hidden")},showOnHover:"hidden"===d||x&&"hidden"===u})]})]})}function N({node:e,currentBranch:t,expandedFolders:s,onToggleFolder:l,onCheckout:n,onCheckoutToLocal:o,onCreateBranch:c,onDeleteBranch:d,onRenameBranch:h,onRenameRemoteBranch:m,onRebase:u,onMerge:p,onPushToRemote:b,onPullFromRemote:j,getBranchContextMenuItems:y,onBranchClick:k,onBranchContextMenu:v,onDeleteBranchGroup:w,selectedBranches:C,visibilityMap:S,onToggleVisibility:R,parentPath:E="",depth:$=0,groupPath:B,isRemote:P=!1,trackingInfo:M}){let F=Array.from(e.children.values()).sort((e,a)=>{let t=e.children.size>0&&!e.fullPath,s=a.children.size>0&&!a.fullPath;return t&&!s?-1:!t&&s?1:e.name.localeCompare(a.name)});return(0,a.jsx)(a.Fragment,{children:F.map(e=>{let F=void 0!==e.fullPath,T=e.children.size>0&&!F,D=e.fullPath||(E?`${E}/${e.name}`:e.name),L=s.has(D),A=F&&e.fullPath===t,O=S[D],I=x(D,S,B),H=!O&&null!==I;if(T){let x=f(e).filter(e=>e!==t);return(0,a.jsxs)("div",{children:[(0,a.jsx)(i,{items:[{label:"Delete",icon:(0,a.jsx)("i",{className:"iconoir-trash text-[14px]","aria-hidden":"true"}),onClick:()=>w(x),danger:!0,disabled:0===x.length}],children:(0,a.jsxs)("div",{className:(0,r.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*$+8}px`},children:[(0,a.jsxs)("div",{className:"flex items-center gap-1 flex-1 min-w-0",onClick:()=>l(D),children:[(0,a.jsx)("span",{className:"text-xs opacity-70",children:L?"▼":"▶"}),(0,a.jsx)("i",{className:"iconoir-folder text-[16px] shrink-0","aria-hidden":"true"}),(0,a.jsx)("span",{className:"truncate min-w-0 flex-1",children:e.name})]}),(0,a.jsxs)("div",{className:"flex items-center gap-0.5 ml-auto",children:[(0,a.jsx)(g,{type:"visible",isActive:"visible"===O||H&&"visible"===I,isInherited:H&&"visible"===I,onClick:e=>{e.stopPropagation(),R(D,"visible")},showOnHover:"visible"===O||H&&"visible"===I}),(0,a.jsx)(g,{type:"hidden",isActive:"hidden"===O||H&&"hidden"===I,isInherited:H&&"hidden"===I,onClick:e=>{e.stopPropagation(),R(D,"hidden")},showOnHover:"hidden"===O||H&&"hidden"===I})]})]})}),L&&(0,a.jsx)(N,{node:e,currentBranch:t,expandedFolders:s,onToggleFolder:l,onCheckout:n,onCheckoutToLocal:o,onCreateBranch:c,onDeleteBranch:d,onRenameBranch:h,onRenameRemoteBranch:m,onRebase:u,onMerge:p,onPushToRemote:b,onPullFromRemote:j,getBranchContextMenuItems:y,onBranchClick:k,onBranchContextMenu:v,onDeleteBranchGroup:w,selectedBranches:C,visibilityMap:S,onToggleVisibility:R,parentPath:D,depth:$+1,groupPath:B,isRemote:P,trackingInfo:M})]},D)}let _=!P&&e.fullPath?M?.[e.fullPath]:void 0,K=_&&(_.ahead>0||_.behind>0),W=y({branchRef:e.fullPath,branchLeafName:e.name,currentBranch:t,isRemote:P,selectedBranchRefs:C.has(e.fullPath)?Array.from(C):[e.fullPath]}),z=C.has(e.fullPath);return(0,a.jsx)(i,{items:W,children:(0,a.jsxs)("div",{className:(0,r.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*$+8}px`},onContextMenu:()=>v?.(e.fullPath),children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 flex-1 min-w-0",onClick:a=>k?.(e.fullPath,{isMultiSelect:a.metaKey||a.ctrlKey,isRangeSelect:a.shiftKey}),onDoubleClick:()=>!A&&n(e.fullPath),children:[A?(0,a.jsx)("span",{className:"w-3 h-3 flex items-center justify-center shrink-0",children:(0,a.jsx)("span",{className:"w-2 h-2 rounded-full bg-primary"})}):P?(0,a.jsx)("i",{className:"iconoir-globe text-[14px] opacity-50 shrink-0","aria-hidden":"true"}):(0,a.jsx)("i",{className:"iconoir-git-branch text-[14px] opacity-50 shrink-0","aria-hidden":"true"}),(0,a.jsx)("span",{className:"truncate min-w-0 flex-1",title:e.fullPath,children:e.name}),K&&(0,a.jsxs)("span",{className:"flex items-center gap-1 text-xs opacity-70 shrink-0",title:`${_.ahead} ahead, ${_.behind} behind ${_.upstream}`,children:[_.ahead>0&&(0,a.jsxs)("span",{className:"flex items-center gap-0.5 text-xs",children:[(0,a.jsx)("i",{className:"iconoir-arrow-up text-[12px]","aria-hidden":"true"}),(0,a.jsx)("span",{children:_.ahead})]}),_.behind>0&&(0,a.jsxs)("span",{className:"flex items-center gap-0.5 text-xs",children:[(0,a.jsx)("i",{className:"iconoir-arrow-down text-[12px]","aria-hidden":"true"}),(0,a.jsx)("span",{children:_.behind})]})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-0.5 ml-auto",children:[(0,a.jsx)(g,{type:"visible",isActive:"visible"===O||H&&"visible"===I,isInherited:H&&"visible"===I,onClick:e=>{e.stopPropagation(),R(D,"visible")},showOnHover:"visible"===O||H&&"visible"===I}),(0,a.jsx)(g,{type:"hidden",isActive:"hidden"===O||H&&"hidden"===I,isInherited:H&&"hidden"===I,onClick:e=>{e.stopPropagation(),R(D,"hidden")},showOnHover:"hidden"===O||H&&"hidden"===I})]})]})},e.fullPath)})})}var y=e.i(18566),k=e.i(21971),v=e.i(63671);function w(e){return Math.min(Math.max(e,100),900)}function C(e){return Math.min(Math.max(e,.15),.75)}function S(e){let a=e.indexOf("/");return a<=0||a>=e.length-1?null:{remote:e.slice(0,a),branch:e.slice(a+1)}}async function R(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 E={isOpen:!1,executionId:null,scriptName:"",branchRef:"",output:"",status:"idle",error:null};function $({repoPath:e}){let n=(0,s.useQueryClient)(),{data:o}=(0,t.useSettings)(),p=(0,t.useUpdateSettings)(),g=(0,y.useRouter)(),$=((0,y.useSearchParams)().get("branch")??"").trim(),B=(0,l.useRef)(null),P=(0,l.useRef)(null),[M,F]=(0,l.useState)(100),{data:T,isLoading:D,isError:L,error:A,refetch:O,isFetching:I}=(0,t.useGitLog)(e,M),{data:H,isLoading:_,refetch:K}=(0,t.useGitBranches)(e),W=H?.current?.trim()??"",{data:z}=(0,t.useGitStatus)(e),[G,U]=(0,l.useState)(null),[q,V]=(0,l.useState)([]),[Y,Q]=(0,l.useState)(null),J=(0,l.useRef)(0),X=(0,l.useCallback)(()=>{let e=Date.now();e-J.current<500||(J.current=e,Promise.all([K(),O()]))},[K,O]);(0,l.useEffect)(()=>{let e=()=>{"visible"===document.visibilityState&&X()},a=()=>{"visible"===document.visibilityState&&X()};return document.addEventListener("visibilitychange",e),window.addEventListener("focus",a),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("focus",a)}},[X]);let Z=(0,l.useCallback)(e=>{U(e),V(e?[e]:[]),Q(e)},[]);(0,l.useEffect)(()=>{Z(null),sw([]),sS(null)},[e,Z]);let{mutateAsync:ee}=(0,t.useGitAction)(),ea=(0,l.useCallback)(e=>{if(!(e instanceof Error))return!1;let a=e.message.toLowerCase();return a.includes("conflict")||a.includes("could not apply")||a.includes("fix conflicts")||a.includes("resolve all conflicts")||a.includes("merge --continue")||a.includes("rebase --continue")},[]);(0,l.useEffect)(()=>{B.current=null,P.current=null},[e]),(0,l.useEffect)(()=>{if(!$||!H)return;let a=`${e}:${$}`;if(B.current!==a){if(H.current===$){B.current=a;return}if(!H.branches.includes($)){B.current=a,(0,h.toast)({type:"error",title:"Branch Not Found",description:`Branch "${$}" does not exist in this repository.`});return}B.current=a,(async()=>{try{await ee({repoPath:e,action:"checkout",data:{branch:$}})}catch(e){console.error(e)}})()}},[H,e,$,ee]);let[et,es]=(0,l.useState)(!1),[el,en]=(0,l.useState)(""),[er,ei]=(0,l.useState)(null),[eo,ec]=(0,l.useState)(!1),[ed,eh]=(0,l.useState)(!1),[em,eu]=(0,l.useState)(null),[ex,ep]=(0,l.useState)(""),[eb,ef]=(0,l.useState)(!1),[eg,ej]=(0,l.useState)(!1),[eN,ey]=(0,l.useState)(!1),[ek,ev]=(0,l.useState)([]),[ew,eC]=(0,l.useState)(!1),[eS,eR]=(0,l.useState)(!1),[eE,e$]=(0,l.useState)(!1),[eB,eP]=(0,l.useState)(null),[eM,eF]=(0,l.useState)(!1),[eT,eD]=(0,l.useState)(!1),[eL,eA]=(0,l.useState)(null),[eO,eI]=(0,l.useState)(!1),[eH,e_]=(0,l.useState)(!1),[eK,eW]=(0,l.useState)(!1),[ez,eG]=(0,l.useState)([]),[eU,eq]=(0,l.useState)(!1),[eV,eY]=(0,l.useState)(!1),[eQ,eJ]=(0,l.useState)(!1),[eX,eZ]=(0,l.useState)(!1),[e0,e1]=(0,l.useState)(null),[e2,e4]=(0,l.useState)(null),[e5,e3]=(0,l.useState)(""),[e8,e7]=(0,l.useState)(!1),[e6,e9]=(0,l.useState)(!1),[ae,aa]=(0,l.useState)(!1),[at,as]=(0,l.useState)(null),[al,an]=(0,l.useState)(""),[ar,ai]=(0,l.useState)(!1),[ao,ac]=(0,l.useState)(!1),[ad,ah]=(0,l.useState)(null),[am,au]=(0,l.useState)(!1),[ax,ap]=(0,l.useState)(!1),[ab,af]=(0,l.useState)("origin"),[ag,aj]=(0,l.useState)(""),[aN,ay]=(0,l.useState)(!1),[ak,av]=(0,l.useState)(!1),[aw,aC]=(0,l.useState)(null),[aS,aR]=(0,l.useState)(null),[aE,a$]=(0,l.useState)(!0),[aB,aP]=(0,l.useState)(!1),[aM,aF]=(0,l.useState)("checking"),aT=(0,l.useCallback)(()=>{av(!1),aC(null),aR(null),aF("checking")},[]),[aD,aL]=(0,l.useState)(!1),[aA,aO]=(0,l.useState)(null),[aI,aH]=(0,l.useState)(null),[a_,aK]=(0,l.useState)(!1),[aW,az]=(0,l.useState)(!1),[aG,aU]=(0,l.useState)(!1),[aq,aV]=(0,l.useState)(""),[aY,aQ]=(0,l.useState)(!1),[aJ,aX]=(0,l.useState)("checking"),aZ=(0,l.useCallback)(()=>{aL(!1),aO(null),aH(null),aX("checking")},[]),[a0,a1]=(0,l.useState)(!1),[a2,a4]=(0,l.useState)(null),[a5,a3]=(0,l.useState)([]),[a8,a7]=(0,l.useState)(""),[a6,a9]=(0,l.useState)([]),[te,ta]=(0,l.useState)(""),[tt,ts]=(0,l.useState)(null),[tl,tn]=(0,l.useState)(!1),[tr,ti]=(0,l.useState)(!1),[to,tc]=(0,l.useState)(!0),[td,th]=(0,l.useState)(!1),[tm,tu]=(0,l.useState)(""),[tx,tp]=(0,l.useState)(!1),[tb,tf]=(0,l.useState)(null),[tg,tj]=(0,l.useState)(!1),[tN,ty]=(0,l.useState)(!1),[tk,tv]=(0,l.useState)(!1),[tw,tC]=(0,l.useState)(null),[tS,tR]=(0,l.useState)([]),[tE,t$]=(0,l.useState)(""),[tB,tP]=(0,l.useState)([]),[tM,tF]=(0,l.useState)(""),[tT,tD]=(0,l.useState)(null),[tL,tA]=(0,l.useState)(!0),[tO,tI]=(0,l.useState)(!1),[tH,t_]=(0,l.useState)(!1),[tK,tW]=(0,l.useState)(null),[tz,tG]=(0,l.useState)(!1),[tU,tq]=(0,l.useState)(!1),[tV,tY]=(0,l.useState)(!1),[tQ,tJ]=(0,l.useState)(!1),[tX,tZ]=(0,l.useState)(!1),[t0,t1]=(0,l.useState)(!1),[t2,t4]=(0,l.useState)(null),[t5,t3]=(0,l.useState)(""),[t8,t7]=(0,l.useState)(!1),[t6,t9]=(0,l.useState)(!1),[se,sa]=(0,l.useState)(null),[st,ss]=(0,l.useState)(!1),[sl,sn]=(0,l.useState)(!1),[sr,si]=(0,l.useState)(null),[so,sc]=(0,l.useState)(!1),[sd,sh]=(0,l.useState)(!1),[sm,su]=(0,l.useState)(null),[sx,sp]=(0,l.useState)(""),[sb,sf]=(0,l.useState)(""),[sg,sj]=(0,l.useState)(!1),sN=(0,l.useRef)(null),[sy,sk]=(0,l.useState)(null),[sv,sw]=(0,l.useState)([]),[sC,sS]=(0,l.useState)(null),[sR,sE]=(0,l.useState)([]),[s$,sB]=(0,l.useState)(!1),sP=(0,l.useRef)(null),[sM,sF]=(0,l.useState)(E),[sT,sD]=(0,l.useState)(!1),[sL,sA]=(0,l.useState)(!1),[sO,sI]=(0,l.useState)(!1),sH="starting"===sM.status||"running"===sM.status,s_="completed"===sM.status||"failed"===sM.status||"canceled"===sM.status;(0,l.useEffect)(()=>{s_&&sM.executionId&&n.invalidateQueries({queryKey:["git",e]})},[s_,sM.executionId,n,e]);let sK=(0,l.useCallback)(()=>{eZ(!1),e1(null),e4(null),e3(""),e7(!1)},[]),sW=(0,l.useCallback)(()=>{aa(!1),as(null),an("")},[]),sz=(0,l.useCallback)(()=>{ac(!1),ah(null)},[]),sG=(0,l.useCallback)(()=>{ap(!1),af("origin"),aj("")},[]),sU=(0,l.useCallback)(()=>{sh(!1),su(null),sp(""),sf("")},[]),sq=(0,l.useCallback)(()=>{sF(E),sI(!1),sD(!1)},[]),sV=(0,l.useCallback)(()=>{if(eV){eY(!1),eG([]);return}if(t0)return void t1(!1);if(et){es(!1),ei(null);return}if(ed){eh(!1),eu(null),ep(""),ef(!1);return}if(tk)return void tv(!1);if(a0)return void a1(!1);if(aD)return void aZ();if(ak)return void aT();if(eX)return void sK();if(ae)return void sW();if(ao)return void sz();if(ax)return void sG();if(eK){eW(!1),eG([]);return}if(eN){ey(!1),ev([]),eC(!1);return}if(eE){e$(!1),eP(null);return}if(eT){eD(!1),eA(null),eI(!1);return}if(sd)return void sU();if(t6)return void t9(!1);if(sl){sn(!1),si(null);return}s$?sB(!1):sM.isOpen&&s_&&sq()},[eV,t0,et,ed,tk,a0,aZ,aD,aT,ak,eX,sK,ae,sW,ao,sz,ax,sG,eK,eN,eE,eT,sd,sU,t6,sl,s$,sM.isOpen,s_,sq]),sY=t6||sl||sd||eN||eE||eT||eV||eK||eX||ae||ao||ax||ak||aD||a0||tk||et||ed||t0||s$||sM.isOpen;(0,d.useEscapeDismiss)(sY,sV,()=>{if(eV){eQ||nC();return}if(t0){t5&&!t8&&no();return}if(et){el&&!eo&&nS();return}if(ed){ex.trim()&&!eg&&nE();return}if(tk){!tO&&tS.length>0&&tE&&tM&&nr();return}if(a0){!tx&&a5.length>0&&a8&&te&&ns();return}if(aD){aY||l9();return}if(ak){aB||l8();return}if(eX){let e=e2?e5===e2.branch:e5===e0;!e5||e||e6||l1();return}if(ae){let e=al.trim();e&&e!==(at??"").trim()&&!ar&&l2();return}if(ao){ad&&!am&&l4();return}if(ax){ab.trim()&&ag.trim()&&!aN&&l5();return}if(eK){eU||nw();return}if(eN){eS||lQ();return}if(eE){eB&&!eM&&lX();return}if(eT){eL&&!eH&&lJ();return}if(sd){sx.trim()&&!sg&&nj();return}if(t6){st||nf();return}if(sl){so||ng();return}sM.isOpen&&s_&&sq()});let sQ="git-web:history-panel-height",sJ="git-web:history-commit-details-message-ratio",[sX,sZ]=(0,l.useState)(300),[s0,s1]=(0,l.useState)(!1),s2=(0,l.useRef)(null),[s4,s5]=(0,l.useState)(.28),[s3,s8]=(0,l.useState)(!1),s7=(0,l.useRef)(null),s6=(0,l.useRef)(!1);(0,l.useEffect)(()=>{if(o?.historyPanelHeight)sZ(w(o.historyPanelHeight));else try{let e=localStorage.getItem(sQ);if(e){let a=parseInt(e,10);!isNaN(a)&&a>=100&&a<=900&&sZ(a)}}catch(e){console.error("Failed to load panel height from localStorage:",e)}},[o?.historyPanelHeight]),(0,l.useEffect)(()=>{try{localStorage.setItem(sQ,String(sX))}catch(e){console.error("Failed to save panel height to localStorage:",e)}},[sX]),(0,l.useEffect)(()=>{try{let e=localStorage.getItem(sJ);if(!e)return;let a=parseFloat(e);Number.isNaN(a)||s5(C(a))}catch(e){console.error("Failed to load commit details ratio from localStorage:",e)}},[]),(0,l.useEffect)(()=>{try{localStorage.setItem(sJ,String(s4))}catch(e){console.error("Failed to save commit details ratio to localStorage:",e)}},[s4]),(0,l.useEffect)(()=>{!s0&&s6.current&&(p.mutate({historyPanelHeight:sX}),s6.current=!1)},[s0,sX,p]);let s9=(0,l.useCallback)(e=>{e.preventDefault(),s1(!0),s2.current={startY:e.clientY,startHeight:sX}},[sX]);(0,l.useEffect)(()=>{if(!s0)return;let e=e=>{if(!s2.current)return;let a=s2.current.startY-e.clientY;sZ(w(s2.current.startHeight+a)),s6.current=!0},a=()=>{s1(!1),s2.current=null};return document.addEventListener("mousemove",e),document.addEventListener("mouseup",a),()=>{document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",a)}},[s0]);let le=(0,l.useCallback)(e=>{e.preventDefault(),s8(!0)},[]);(0,l.useEffect)(()=>{if(!s3)return;let e=e=>{let a=s7.current;if(!a)return;let t=a.getBoundingClientRect();t.height<=0||s5(C((e.clientY-t.top)/t.height))},a=()=>{s8(!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=""}},[s3]),(0,l.useEffect)(()=>{if(!s$)return;let e=e=>{sP.current&&!sP.current.contains(e.target)&&sB(!1)};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[s$]);let la=(0,l.useMemo)(()=>H?.branches?u(H.branches):null,[H?.branches]),lt=(0,l.useMemo)(()=>{if(!H?.remotes)return null;var e=H.remotes;let a=new Map;for(let[t,s]of Object.entries(e))a.set(t,u(s,`remotes/${t}`));return a},[H?.remotes]),ls=(0,l.useMemo)(()=>{let e=new Set;for(let a of H?.branches??[])e.add(a);for(let[a,t]of Object.entries(H?.remotes??{}))for(let s of t)e.add(`remotes/${a}/${s}`);return e},[H?.branches,H?.remotes]),ll=(0,l.useMemo)(()=>new Set(sv),[sv]),ln=(0,l.useMemo)(()=>{let e=new Map;for(let a of sR){let t=a.branchName.trim();!t||e.has(t)||e.set(t,a)}return e},[sR]),lr=(0,t.useRepository)(e),li=(0,t.useUpdateRepository)(),lo=(0,l.useMemo)(()=>(lr?.customScripts??[]).filter(e=>"branch"===e.target&&"run-bash-script"===e.action&&e.name.trim().length>0&&e.content.trim().length>0),[lr?.customScripts]),[lc,ld]=(0,l.useState)(!0),[lh,lm]=(0,l.useState)(!0),[lu,lx]=(0,l.useState)(!0),[lp,lb]=(0,l.useState)({}),[lf,lg]=(0,l.useState)(new Set),lj=(0,l.useMemo)(()=>{let e=[];if(lc&&la&&e.push(...b(la,lf)),lh&<)for(let[a,t]of Array.from(lt.entries())){let s=`__remotes__/${a}`;lf.has(s)&&e.push(...b(t,lf,`remotes/${a}`))}return e},[lf,la,lc,lt,lh]);(0,l.useEffect)(()=>{if(0===sv.length)return;let e=sv.filter(e=>ls.has(e));e.length!==sv.length&&sw(e),sC&&!ls.has(sC)&&sS(e.length>0?e[e.length-1]:null)},[ls,sC,sv]);let lN=(0,l.useRef)(null);(0,l.useEffect)(()=>{lr&&lr.path!==lN.current&&(lN.current=lr.path,void 0!==lr.localGroupExpanded&&ld(lr.localGroupExpanded),void 0!==lr.remotesGroupExpanded&&lm(lr.remotesGroupExpanded),void 0!==lr.worktreesGroupExpanded&&lx(lr.worktreesGroupExpanded),lr.expandedFolders&&lg(new Set(lr.expandedFolders)),lr.visibilityMap&&lb(lr.visibilityMap))},[lr]),(0,l.useEffect)(()=>{let a=!1,t=async()=>{try{let t=await (0,k.listSessions)();if(a)return;sE(t.filter(a=>a.repoPath===e||a.worktreePath===e))}catch(e){console.error("Failed to load sessions for branch menu:",e),a||sE([])}},s=()=>{t()},l=e=>{e.key===v.SESSIONS_UPDATED_STORAGE_KEY&&t()};return t(),window.addEventListener(v.SESSIONS_UPDATED_EVENT,s),window.addEventListener("storage",l),()=>{a=!0,window.removeEventListener(v.SESSIONS_UPDATED_EVENT,s),window.removeEventListener("storage",l)}},[e]);let ly=(0,l.useCallback)(a=>{li.mutate({path:e,updates:a})},[e,li]),lk=(0,l.useCallback)(()=>{let e=!lc;ld(e),ly({localGroupExpanded:e})},[lc,ly]),lv=(0,l.useCallback)(()=>{let e=!lh;lm(e),ly({remotesGroupExpanded:e})},[lh,ly]),lw=(0,l.useCallback)(()=>{let e=!lu;lx(e),ly({worktreesGroupExpanded:e})},[ly,lu]),lC=(0,l.useCallback)(e=>{lg(a=>{let t=new Set(a);return t.has(e)?t.delete(e):t.add(e),ly({expandedFolders:Array.from(t)}),t})},[ly]),lS=(0,l.useCallback)((e,a)=>{lb(t=>{let s={...t};s[e]===a?delete s[e]:s[e]=a;let l={};return Object.entries(s).forEach(([e,a])=>{("visible"===a||"hidden"===a)&&(l[e]=a)}),ly({visibilityMap:l}),s})},[ly]),lR=(0,l.useCallback)(()=>{lb({}),ly({visibilityMap:{}})},[ly]),lE=(0,l.useCallback)((e,a)=>{let t=x(e,lp);if(t)return t;if(a){let a=e.split("/");if(a.length>=2&&"remotes"===a[0]){let e=a[1],t=lp[`__remotes__/${e}`];if(t)return t;let s=lp.__remotes__;if(s)return s}}else{let e=lp.__local__;if(e)return e}return null},[lp]),l$=(0,l.useMemo)(()=>{if(!T?.all||!H?.branches||!H?.branchCommits)return T?.all||[];let e=Object.values(lp).some(e=>"visible"===e),a=Object.values(lp).some(e=>"hidden"===e);if(!e&&!a)return T.all;let t=[...H.branches.map(e=>({branch:e,isRemote:!1}))];if(H.remotes)for(let[e,a]of Object.entries(H.remotes))for(let s of a)t.push({branch:`remotes/${e}/${s}`,isRemote:!0});let s=new Set,l=new Set,n=new Set;for(let{branch:e,isRemote:a}of t){let t=lE(e,a);"visible"===t?s.add(e):"hidden"===t?l.add(e):n.add(e)}let r=new Map(T.all.map(e=>[e.hash,e])),i=(e,a)=>{let t=[e];for(;t.length>0;){let e=t.pop();if(a.has(e))continue;let s=r.get(e);if(s)for(let l of(a.add(e),s.parents||[]))a.has(l)||t.push(l)}},o=new Set;for(let e of s){let a=H.branchCommits[e];a&&i(a,o)}if(e)return T.all.filter(e=>o.has(e.hash));if(a){let e=new Set;for(let a of n){let t=H.branchCommits[a];t&&i(t,e)}return T.all.filter(a=>e.has(a.hash))}return T.all},[T?.all,H?.branches,H?.branchCommits,H?.remotes,lp,lE]),lB=(0,l.useMemo)(()=>new Set(q),[q]),lP=(0,l.useMemo)(()=>l$.map(e=>e.hash),[l$]),lM=(0,l.useMemo)(()=>G?T?.all.find(e=>e.hash===G):null,[T?.all,G]),lF=(0,l.useMemo)(()=>{if(!T?.all||q.length<2)return null;let e=new Map(T.all.map(e=>[e.hash,e])),a=new Map(lP.map((e,a)=>[e,a])),t=Array.from(new Set(q)).filter(e=>a.has(e)).sort((e,t)=>(a.get(e)??Number.MAX_SAFE_INTEGER)-(a.get(t)??Number.MAX_SAFE_INTEGER));if(t.length<2)return null;let s=t[0],l=t[t.length-1],n=e.get(s),r=e.get(l);return n&&r?{latestHash:s,oldestHash:l,latestCommit:n,oldestCommit:r}:null},[lP,T?.all,q]),lT=!!lF;(0,l.useEffect)(()=>{if(0===lP.length){(G||q.length>0||Y)&&Z(null);return}let e=new Set(lP),a=q.filter(a=>e.has(a));a.length!==q.length&&V(a),G&&!e.has(G)&&U(a.length>0?a[a.length-1]:null),Y&&!e.has(Y)&&Q(a.length>0?a[a.length-1]:null)},[lP,G,q,Y,Z]);let lD=(0,l.useCallback)((e,a)=>{let t=a?.isRangeSelect??!1,s=a?.isMultiSelect??!1;if(t){let a=Y??G??e,t=lP.indexOf(a),s=lP.indexOf(e);if(-1!==t&&-1!==s){let[l,n]=t<s?[t,s]:[s,t];V(lP.slice(l,n+1)),U(e),Q(a);return}}if(s){if(lB.has(e)){let a=q.filter(a=>a!==e);V(a),U(t=>t!==e?t:a.length>0?a[a.length-1]:null),Y===e&&Q(a.length>0?a[a.length-1]:null)}else V([...q,e]),U(e),Q(e);return}Z(e)},[lP,lB,q,G,Y,Z]),lL=(0,l.useMemo)(()=>l$.filter(e=>lB.has(e.hash)).reverse(),[l$,lB]),lA=(0,l.useMemo)(()=>Object.values(lp).some(e=>"visible"===e||"hidden"===e),[lp]),lO=(0,l.useMemo)(()=>{let e=new Set;if(H?.branches)for(let a of H.branches)"hidden"===lE(a,!1)&&e.add(a);if(H?.remotes)for(let[a,t]of Object.entries(H.remotes))for(let s of t){let t=`remotes/${a}/${s}`;"hidden"===lE(t,!0)&&e.add(t)}return e},[H?.branches,H?.remotes,lE]);(0,l.useEffect)(()=>{lA&&l$.length<50&&!I&&M<5e3&&T?.all&&T.all.length>=M&&F(e=>Math.min(e+100,5e3))},[lA,l$.length,I,M,T?.all]),(0,l.useEffect)(()=>{sy&&T?.all&&!I&&(T.all.some(e=>e.hash===sy)?requestAnimationFrame(()=>{sN.current?.scrollToCommit(sy)&&(Z(sy),sk(null))}):M<5e3?F(e=>e+100):(console.warn("Could not find commit after loading 5000 commits"),sk(null)))},[sy,T?.all,I,M,Z]);let lI=(0,l.useCallback)(e=>{if(!H?.branchCommits)return;let a=H.branchCommits[e];if(a){if(T?.all?.some(e=>e.hash===a)&&sN.current&&sN.current.scrollToCommit(a))return void Z(a);sk(a),Z(a)}},[H?.branchCommits,T?.all,Z]);(0,l.useEffect)(()=>{if(!$||!H?.branchCommits||W!==$)return;let a=`${e}:${$}`;P.current!==a&&(P.current=a,lI($))},[W,H?.branchCommits,e,$,lI]);let lH=(0,l.useCallback)((e,a)=>{let t=a?.isRangeSelect??!1,s=a?.isMultiSelect??!1;if(t){let a=sC??e,t=lj.indexOf(a),s=lj.indexOf(e);if(-1!==t&&-1!==s){let[l,n]=t<s?[t,s]:[s,t],r=lj.slice(l,n+1);ll.has(e)?sw(sv.filter(e=>!r.includes(e))):sw(Array.from(new Set([...sv,...r]))),sS(a)}else sw([e]),sS(e);return}if(s){ll.has(e)?sw(sv.filter(a=>a!==e)):sw([...sv,e]),sS(e);return}sw([e]),sS(e),lI(e)},[sC,lj,lI,sv,ll]),l_=(0,l.useCallback)(e=>{ll.has(e)||(sw([e]),sS(e))},[ll]),lK=(0,l.useCallback)(async(a,t)=>{sI(!1),sD(!1),sF({isOpen:!0,executionId:null,scriptName:a.name,branchRef:t,output:"",status:"starting",error:null});try{let s=await fetch("/api/custom-scripts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({command:"start",repoPath:e,branchRef:t,scriptContent:a.content})}),l=await s.json();if(!s.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})`),sF(e=>({...e,executionId:l.executionId,output:[n.join("\n"),l.output].filter(Boolean).join("\n"),status:l.status,error:null}))}catch(e){sF(a=>({...a,status:"failed",error:e.message,output:a.output?`${a.output}
|
|
2
|
+
[error] ${e.message}`:`[error] ${e.message}`}))}},[e]),lW=(0,l.useCallback)(async()=>{if(sM.executionId&&sH){sD(!0);try{let e=await fetch("/api/custom-scripts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({command:"cancel",executionId:sM.executionId})}),a=await e.json();if(!e.ok)throw Error(a.error||"Failed to cancel script execution");sF(e=>({...e,output:a.output,status:a.status})),"running"!==a.status&&"starting"!==a.status&&sD(!1)}catch(e){sF(a=>({...a,output:`${a.output}
|
|
3
|
+
[error] ${e.message}`})),sD(!1)}}},[sM.executionId,sH]),lz=(0,l.useCallback)(async()=>{if(sL)return;sA(!0);let e=await R(sM.output);sA(!1),sI(e),e&&setTimeout(()=>sI(!1),1500)},[sL,sM.output]);(0,l.useEffect)(()=>{if(!sM.executionId||!sH)return;let e=!1,a=null,t=async()=>{try{let s=await fetch("/api/custom-scripts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({command:"status",executionId:sM.executionId})}),l=await s.json();if(!s.ok)throw Error(l.error||"Failed to fetch script execution output");if(e)return;let n=l.status;sF(e=>e.executionId!==l.executionId?e:{...e,output:l.output,status:n,error:null}),"running"===n?a=setTimeout(t,450):sD(!1)}catch(a){if(e)return;sD(!1),sF(e=>({...e,status:"failed",error:a.message,output:e.output?`${e.output}
|
|
4
|
+
[error] ${a.message}`:`[error] ${a.message}`}))}};return t(),()=>{e=!0,a&&clearTimeout(a)}},[sM.executionId,sH]);let lG=e=>{let a=e.filter(e=>e!==n$);0!==a.length&&(ev(a),eC(!1),ey(!0))},lU=e=>{lG([e])},lq=(0,l.useCallback)(e=>{let a=e.trim();a&&(eP(a),e$(!0))},[]),lV=(0,l.useCallback)(()=>{eD(!1),eA(null),eI(!1)},[]),lY=(0,l.useCallback)(e=>{e&&(eA(e),eI(!1),eD(!0))},[]),lQ=async()=>{if(0!==ek.length){eR(!0);try{let t=new Map,s=(e,a,s)=>{t.has(e)||t.set(e,{branchRef:a,run:s})},l=new Set;if(ew)for(let e of ek){if(e.startsWith("remotes/"))continue;let a=H?.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,()=>ee({repoPath:e,action:"delete-remote-branch",data:{remote:t,branch:n},suppressErrorToast:!0}))}}for(let a of ek){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,()=>ee({repoPath:e,action:"delete-remote-branch",data:{remote:a,branch:l},suppressErrorToast:!0}))}continue}s(`local:${a}`,a,()=>ee({repoPath:e,action:"delete-branch",data:{branch:a},suppressErrorToast:!0}))}let n=Array.from(t.values()),r=(await Promise.allSettled(n.map(e=>e.run()))).flatMap((e,a)=>{if("fulfilled"===e.status)return[];let t=n[a].branchRef;return console.error(`Failed to delete branch "${t}":`,e.reason),[t]});r.length>0&&(0,h.toast)({type:"error",title:1===r.length?"Failed to Delete 1 Branch":`Failed to Delete ${r.length} Branches`,description:(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{children:"The following branches could not be deleted:"}),(0,a.jsx)("ul",{className:"mt-1 max-h-40 overflow-y-auto list-disc pl-5",children:r.map(e=>(0,a.jsx)("li",{className:"break-all",children:e},e))})]}),duration:1e4}),ey(!1),ev([]),eC(!1),sw([]),sS(null)}catch(e){console.error(e)}finally{eR(!1)}}},lJ=async()=>{if(eL){e_(!0);try{if(await ee({repoPath:e,action:"delete-tag",data:{tag:eL}}),eO&&nP)try{await ee({repoPath:e,action:"delete-remote-tag",data:{remote:nP,tag:eL}})}catch(e){console.error("Failed to delete remote tag:",e)}lV()}catch(e){console.error(e)}finally{e_(!1)}}},lX=async()=>{if(eB){eF(!0);try{await ee({repoPath:e,action:"delete-worktree",data:{path:eB}}),e$(!1),eP(null)}catch(e){console.error(e)}finally{eF(!1)}}},lZ=e=>{e1(e),e4(null),e3(e),e7(!1),eZ(!0)},l0=e=>{let a=e.split("/");if(a.length<3||"remotes"!==a[0])return;let t=a[1],s=a.slice(2).join("/");t&&s&&(e1(e),e4({remote:t,branch:s}),e3(s),e7(!1),eZ(!0))},l1=async()=>{if(e0&&e5){if(e2?e2.branch===e5:e0===e5)return void sK();e9(!0);try{e2?await ee({repoPath:e,action:"rename-remote-branch",data:{remote:e2.remote,oldName:e2.branch,newName:e5}}):await ee({repoPath:e,action:"rename-branch",data:{oldName:e0,newName:e5,renameTrackingRemote:e8}}),sK()}catch(e){console.error(e)}finally{e9(!1)}}},l2=async()=>{if(!at)return;let a=at.trim(),t=al.trim();if(a&&t){if(a===t)return void sW();ai(!0);try{await ee({repoPath:e,action:"rename-remote",data:{oldName:a,newName:t}}),sW()}catch(e){console.error(e)}finally{ai(!1)}}},l4=async()=>{if(!ad)return;let a=ad.trim();if(a){au(!0);try{await ee({repoPath:e,action:"delete-remote",data:{name:a}}),sz()}catch(e){console.error(e)}finally{au(!1)}}},l5=async()=>{let a=ab.trim(),t=ag.trim();if(a&&t){ay(!0);try{await ee({repoPath:e,action:"add-remote",data:{name:a,url:t}}),sG()}catch(e){console.error(e)}finally{ay(!1)}}},l3=({sourceBranch:e,targetBranch:a})=>{aC(e),aR(a),a$(!0),aF("checking"),av(!0)},l8=async()=>{if(aw&&aS){aP(!0);try{await ee({repoPath:e,action:"checkout",data:{branch:aw}}),await ee({repoPath:e,action:"rebase",data:{ontoBranch:aS,stashChanges:aE}}),aT()}catch(e){ea(e)&&(aT(),(0,h.toast)({type:"warning",title:"Rebase Conflict Detected",description:"Rebase conflict detected in the background. Please resolve via CLI since the conflicts tab has been removed.",duration:12e3})),console.error(e)}finally{aP(!1)}}};(0,l.useEffect)(()=>{if(!ak||!aw||!aS)return;let a=!1;return aF("checking"),(async()=>{try{let t=await ee({repoPath:e,action:"check-rebase-conflicts",data:{sourceBranch:aw,ontoBranch:aS}});a||aF(t.hasConflicts?"has-conflicts":"no-conflict")}catch(e){console.error(e),a||aF("has-conflicts")}})(),()=>{a=!0}},[ak,aw,aS,e,ee]);let l7=({sourceBranch:e,targetBranch:a})=>{aO(a),aH(e),aK(!1),az(!1),aU(!1),aV(""),aX("checking"),aL(!0)},l6=(0,l.useCallback)(a=>{if(az(a),a){if(!aI)return void aV("");(async()=>{try{let a=await ee({repoPath:e,action:"get-latest-commit-message",data:{branch:aI}});aV("string"==typeof a?.message?a.message:"")}catch(e){console.error(e),aV("")}})()}},[aI,e,ee]),l9=async()=>{if(aA&&aI){aQ(!0);try{await ee({repoPath:e,action:"checkout",data:{branch:aA}}),await ee({repoPath:e,action:"merge",data:{targetBranch:aI,rebaseBeforeMerge:a_,squash:aW,fastForward:aG,squashMessage:aW?aq:void 0}}),aZ()}catch(e){ea(e)&&(aZ(),(0,h.toast)({type:"warning",title:"Merge Conflict Detected",description:"Merge conflict detected in the background. Please resolve via CLI since the conflicts tab has been removed.",duration:12e3})),console.error(e)}finally{aQ(!1)}}};(0,l.useEffect)(()=>{if(!aD||!aI||!aA)return;let a=!1;return aX("checking"),(async()=>{try{let t=await ee({repoPath:e,action:"check-merge-conflicts",data:{sourceBranch:aI,targetBranch:aA}});a||aX(t.hasConflicts?"has-conflicts":"no-conflict")}catch(e){console.error(e),a||aX("has-conflicts")}})(),()=>{a=!0}},[aD,aI,aA,e,ee]);let ne=async a=>{a4(a),tf(null),a3([]),a9([]),a7(""),ta(""),ts(null),tn(!1),ti(!1),tc(!0),th(!1),tu(""),a1(!0),tj(!0);try{let t=await ee({repoPath:e,action:"get-remotes",data:{}});if(!t.remotes||0===t.remotes.length){tf("No remote repository configured. Please add a remote first."),tj(!1);return}a3(t.remotes);let s=await ee({repoPath:e,action:"get-tracking-branch",data:{branch:a}});ts(s.tracking);let l=s.tracking?.remote,n=l&&t.remotes.includes(l)?l:t.remotes[0];a7(n),ty(!0);let r=await ee({repoPath:e,action:"get-remote-branches",data:{remote:n}});a9(r.branches||[]),s.tracking?.remote===n&&s.tracking?.branch?ta(s.tracking.branch):(r.branches?.includes(a),ta(a))}catch(e){console.error(e),tf(e.message||"Failed to load remote information")}finally{tj(!1),ty(!1)}},na=async a=>{a7(a),ty(!0),a9([]);try{let t=await ee({repoPath:e,action:"get-remote-branches",data:{remote:a}});a9(t.branches||[]),tt?.remote===a&&tt?.branch?ta(tt.branch):ta(a2||"")}catch(e){console.error(e),tf(e.message||"Failed to load remote branches")}finally{ty(!1)}},nt=(0,l.useCallback)(a=>{if(th(a),a){if(!a2)return void tu("");(async()=>{try{let a=await ee({repoPath:e,action:"get-latest-commit-message",data:{branch:a2}});tu("string"==typeof a?.message?a.message:"")}catch(e){console.error(e),tu("")}})()}},[a2,e,ee]),ns=async()=>{if(a2&&a8&&te){tp(!0),tf(null);try{let a=!a6.includes(te)||tt?.remote!==a8||tt?.branch!==te;await ee({repoPath:e,action:"push-to-remote",data:{localBranch:a2,remote:a8,remoteBranch:te,rebaseFirst:!tr&&tl,forcePush:tr,pushLocalOnlyTags:to,setUpstream:a,squash:td,squashMessage:tm}}),await ee({repoPath:e,action:"fetch",data:{remote:a8}}),a1(!1),a4(null)}catch(e){console.error(e),tf(e.message||"Failed to push to remote")}finally{tp(!1)}}},nl=async a=>{tC(a),tW(null),tR([]),tP([]),t$(""),tF(""),tD(null),tA(!0),tv(!0),tG(!0);try{let t=await ee({repoPath:e,action:"get-remotes",data:{}});if(!t.remotes||0===t.remotes.length){tW("No remote repository configured. Please add a remote first."),tG(!1);return}tR(t.remotes);let s=await ee({repoPath:e,action:"get-tracking-branch",data:{branch:a}});tD(s.tracking);let l=s.tracking?.remote,n=l&&t.remotes.includes(l)?l:t.remotes[0];t$(n),tq(!0);let r=await ee({repoPath:e,action:"get-remote-branches",data:{remote:n}});tP(r.branches||[]),s.tracking?.remote===n&&s.tracking?.branch?tF(s.tracking.branch):tF("")}catch(e){console.error(e),tW(e.message||"Failed to load remote information")}finally{tG(!1),tq(!1)}},nn=async a=>{t$(a),tq(!0),tP([]),tF("");try{let t=await ee({repoPath:e,action:"get-remote-branches",data:{remote:a}});tP(t.branches||[]),tT?.remote===a&&tT?.branch?tF(tT.branch):tF("")}catch(e){console.error(e),tW(e.message||"Failed to load remote branches")}finally{tq(!1)}},nr=async()=>{if(tw&&tE&&tM){tI(!0),tW(null);try{await ee({repoPath:e,action:"pull-from-remote",data:{localBranch:tw,remote:tE,remoteBranch:tM,rebase:tL}}),tv(!1),tC(null)}catch(e){console.error(e),tW(e.message||"Failed to pull from remote")}finally{tI(!1)}}},ni=e=>{t4(e),t3(e.split("/").slice(2).join("/")),t1(!0)},no=async()=>{if(t2&&t5){t7(!0);try{await ee({repoPath:e,action:"checkout-to-local",data:{remoteBranch:t2,localBranch:t5}}),t1(!1),t4(null),t3("")}catch(e){console.error(e)}finally{t7(!1)}}},nc=async()=>{tY(!0);try{await ee({repoPath:e,action:"fetch",data:{allRemotes:!0}})}catch(e){console.error(e)}finally{tY(!1)}},nd=(0,l.useCallback)(async()=>{if(!tQ){tJ(!0);try{let a=await fetch("/api/fs/open",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e})}),t=await a.json().catch(()=>({}));if(!a.ok)throw Error(t.error||"Failed to open repository folder")}catch(e){(0,h.toast)({type:"error",title:"Failed to Open Repo Folder",description:e instanceof Error?e.message:"Unknown error"})}finally{tJ(!1)}}},[tQ,e]),nh=(0,l.useCallback)(async()=>{if(!tX){tZ(!0);try{let a=await fetch("/api/fs/open-terminal",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e})}),t=await a.json().catch(()=>({}));if(!a.ok)throw Error(t.error||"Failed to open terminal")}catch(e){(0,h.toast)({type:"error",title:"Failed to Open Terminal",description:e instanceof Error?e.message:"Unknown error"})}finally{tZ(!1)}}},[tX,e]),nm=(0,l.useCallback)((e,a)=>{if(a)return;let t=window.location.origin;try{window.top?.location?.origin&&(t=window.top.location.origin)}catch{}let s=`${t}/git?path=${encodeURIComponent(e)}`;window.open(s,"_blank","noopener,noreferrer")},[]),nu=(0,l.useCallback)(e=>{g.push(`/session/${encodeURIComponent(e)}`)},[g]),nx=async a=>{try{await ee({repoPath:e,action:"fetch",data:{remote:a}})}catch(e){console.error(e)}},np=async a=>{try{await ee({repoPath:e,action:"checkout",data:{branch:a}})}catch(e){console.error(e)}},nb=async e=>{sa(e),t9(!0)},nf=async()=>{if(se){ss(!0);try{await ee({repoPath:e,action:"reset",data:{commitHash:se,mode:"hard"}}),t9(!1),sa(null)}catch(e){console.error(e)}finally{ss(!1)}}},ng=async()=>{if(sr){sc(!0);try{await ee({repoPath:e,action:"revert",data:{commitHash:sr.hash}}),sn(!1),si(null)}catch(e){console.error(e)}finally{sc(!1)}}},nj=async()=>{if(sm&&sx.trim()){sj(!0);try{let a,t;await ee({repoPath:e,action:"reword",data:{commitHash:sm.hash,message:(a=sx.trim(),(t=sb.replace(/\r\n/g,"\n")).trim()?`${a}
|
|
5
|
+
|
|
6
|
+
${t}`:a),branch:sm.branch}}),sU()}catch(e){console.error(e)}finally{sj(!1)}}},nN=e=>{if(!(e instanceof Error))return!1;let a=e.message.toLowerCase();return a.includes("cherry-pick")&&a.includes("already in progress")},ny=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")},nk=(0,l.useCallback)(async a=>{1===a.length?await ee({repoPath:e,action:"cherry-pick",data:{commitHash:a[0]}}):await ee({repoPath:e,action:"cherry-pick-multiple",data:{commitHashes:a}})},[e,ee]),nv=(0,l.useCallback)(async()=>{try{await ee({repoPath:e,action:"cherry-pick-abort"})}catch(e){console.error(e)}finally{eW(!1),eY(!1),eG([])}},[e,ee]),nw=async()=>{if(0!==ez.length){eq(!0);try{let e=ez.map(e=>e.hash);await nk(e),eW(!1),eG([])}catch(e){nN(e)?(eW(!1),eY(!0)):ny(e)&&await nv(),console.error(e)}finally{eq(!1)}}},nC=async()=>{if(0===ez.length)return void eY(!1);eJ(!0);try{await ee({repoPath:e,action:"cherry-pick-abort"});let a=ez.map(e=>e.hash);await nk(a),eY(!1),eG([])}catch(e){nN(e)?eY(!0):ny(e)&&await nv(),console.error(e)}finally{eJ(!1)}},nS=async()=>{if(el){ec(!0);try{await ee({repoPath:e,action:"branch",data:{branch:el,fromRef:er||void 0}}),es(!1),en(""),ei(null)}catch(e){console.error(e)}finally{ec(!1)}}},nR=e=>{ei(e||null),es(!0)},nE=async()=>{if(em&&ex.trim()){ej(!0);try{await ee({repoPath:e,action:"create-tag",data:{tagName:ex.trim(),commitHash:em,pushToRemote:eb}}),eh(!1),eu(null),ep(""),ef(!1)}catch(e){console.error(e)}finally{ej(!1)}}},n$=H?.current,nB=H?.trackingInfo,nP=(0,l.useMemo)(()=>Object.keys(H?.remoteUrls??{}).sort((e,a)=>"origin"===e?-1:"origin"===a?1:e.localeCompare(a)),[H?.remoteUrls])[0]||null,nM=(0,l.useMemo)(()=>{let e=[];for(let a of ek){if(a.startsWith("remotes/"))continue;let t=nB?.[a]?.upstream;t&&e.push(t)}return Array.from(new Set(e))},[ek,nB]),nF=(0,l.useMemo)(()=>!e0||e2?null:nB?.[e0]??null,[e0,e2,nB]),nT=z?.files?.length,nD=n$||(_?"Loading branches...":"Detached HEAD"),nL=n$&&"number"==typeof nT&&nT>0?`${n$} (${nT})`:nD,nA=(0,l.useMemo)(()=>{if(!n$)return null;let e=nB?.[n$];if(!e?.upstream)return null;let a=S(e.upstream);return a?{upstream:e.upstream,...a}:null},[n$,nB]),nO=(0,l.useMemo)(()=>{let e=[];for(let a of H?.branches??[]){let t=nB?.[a]?.upstream;if(!t)continue;let s=S(t);s&&e.push({localBranch:a,remote:s.remote,remoteBranch:s.branch})}return e},[H?.branches,nB]),nI=(0,l.useMemo)(()=>_?"Loading branches...":n$?nA?null:`Branch "${n$}" has no tracking remote branch`:"Not on a local branch",[n$,nA,_]),nH=(0,l.useMemo)(()=>_?"Loading branches...":0===nO.length?"No local branches with tracking remote branches":null,[_,nO.length]),n_=(0,l.useMemo)(()=>_?"Loading branches...":n$?null:"Not on a local branch",[n$,_]),nK=async()=>{if(tH||0===nO.length)return;t_(!0);let a=[];try{for(let t of nO)try{await ee({repoPath:e,action:"pull-from-remote",data:{localBranch:t.localBranch,remote:t.remote,remoteBranch:t.remoteBranch,rebase:!0},suppressErrorToast:!0}),a.push(t.localBranch)}catch(l){let e=l instanceof Error?l.message:"Unknown error",s=a.length>0?`Pulled ${a.length} branch${1===a.length?"":"es"} before failure.`:"No branches were updated.";(0,h.toast)({type:"error",title:`Pull All Failed on "${t.localBranch}"`,description:`${e} ${s}`,duration:12e3});return}(0,h.toast)({type:"success",title:1===a.length?"Pulled 1 Branch":`Pulled ${a.length} Branches`,description:"Updated all local branches that have tracking remote branches."})}finally{t_(!1)}},nW=e=>{let t=function(e,t){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",icon:(0,a.jsx)("i",{className:"iconoir-arrow-right text-[14px]","aria-hidden":"true"}),onClick:()=>t.onCheckout(s)}),r&&h.push({label:"Checkout to local",icon:(0,a.jsx)("i",{className:"iconoir-arrow-down text-[14px]","aria-hidden":"true"}),onClick:()=>t.onCheckoutToLocal(s)}),h.push({label:"Create Branch",icon:(0,a.jsx)("i",{className:"iconoir-plus-circle text-[14px]","aria-hidden":"true"}),onClick:()=>t.onCreateBranch(s)}),r||h.push({label:"Rename Branch",icon:(0,a.jsx)("i",{className:"iconoir-edit-pencil text-[14px]","aria-hidden":"true"}),onClick:()=>t.onRenameBranch(s)}),r&&h.push({label:"Rename branch",icon:(0,a.jsx)("i",{className:"iconoir-edit-pencil text-[14px]","aria-hidden":"true"}),onClick:()=>t.onRenameRemoteBranch(s)}),r||h.push({label:"Push to Remote",icon:(0,a.jsx)("i",{className:"iconoir-arrow-up text-[14px]","aria-hidden":"true"}),onClick:()=>t.onPushToRemote(s)}),r||h.push({label:"Pull from Remote",icon:(0,a.jsx)("i",{className:"iconoir-arrow-down text-[14px]","aria-hidden":"true"}),onClick:()=>t.onPullFromRemote(s)}),!o&&n&&(h.push({label:`Rebase ${n} onto ${l}`,labelNode:(0,a.jsxs)(a.Fragment,{children:["Rebase ",(0,a.jsx)("span",{className:"font-bold",children:n})," onto ",l]}),icon:(0,a.jsx)("i",{className:"iconoir-git-fork text-[14px]","aria-hidden":"true"}),onClick:()=>t.onRebase({sourceBranch:n,targetBranch:s})}),h.push({label:`Rebase ${l} onto ${n}`,labelNode:(0,a.jsxs)(a.Fragment,{children:["Rebase ",l," onto ",(0,a.jsx)("span",{className:"font-bold",children:n})]}),icon:(0,a.jsx)("i",{className:"iconoir-git-fork text-[14px]","aria-hidden":"true"}),onClick:()=>t.onRebase({sourceBranch:s,targetBranch:n})}),h.push({label:`Merge ${n} into ${l}`,labelNode:(0,a.jsxs)(a.Fragment,{children:["Merge ",(0,a.jsx)("span",{className:"font-bold",children:n})," into ",l]}),icon:(0,a.jsx)("i",{className:"iconoir-git-fork text-[14px]","aria-hidden":"true"}),onClick:()=>t.onMerge({sourceBranch:n,targetBranch:s})}),h.push({label:`Merge ${l} into ${n}`,labelNode:(0,a.jsxs)(a.Fragment,{children:["Merge ",l," into ",(0,a.jsx)("span",{className:"font-bold",children:n})]}),icon:(0,a.jsx)("i",{className:"iconoir-git-fork text-[14px]","aria-hidden":"true"}),onClick:()=>t.onMerge({sourceBranch:s,targetBranch:n})})),o||(d?h.push({label:`Delete Selected Branches (${c.length})`,icon:(0,a.jsx)("i",{className:"iconoir-trash text-[14px]","aria-hidden":"true"}),onClick:()=>t.onDeleteBranches(c),danger:!0}):h.push({label:"Delete Branch",icon:(0,a.jsx)("i",{className:"iconoir-trash text-[14px]","aria-hidden":"true"}),onClick:()=>t.onDeleteBranch(s),danger:!0})),h}(e,{onCheckout:np,onCheckoutToLocal:ni,onCreateBranch:nR,onDeleteBranch:lU,onDeleteBranches:lG,onRenameBranch:lZ,onRenameRemoteBranch:l0,onRebase:l3,onMerge:l7,onPushToRemote:ne,onPullFromRemote:nl}),s=e.isRemote?null:ln.get(e.branchRef)??null;return s&&t.push({label:"Open Session",icon:(0,a.jsx)("i",{className:"iconoir-arrow-right text-[14px]","aria-hidden":"true"}),onClick:()=>nu(s.sessionName)}),lo.length>0&&t.push({label:"Custom scripts",icon:(0,a.jsx)("i",{className:"iconoir-terminal text-[14px]","aria-hidden":"true"}),children:lo.map(t=>({label:t.name,icon:(0,a.jsx)("i",{className:"iconoir-play text-[14px]","aria-hidden":"true"}),onClick:()=>{lK(t,e.branchRef)}}))}),t},nz=(0,l.useMemo)(()=>new Set(H?.branches??[]),[H?.branches]),nG=(0,l.useMemo)(()=>{let e=new Map;if(!H?.remotes)return e;for(let[a,t]of Object.entries(H.remotes))for(let s of t)e.set(`${a}/${s}`,`remotes/${a}/${s}`);return e},[H?.remotes]),nU=(0,l.useMemo)(()=>la?f(la).filter(e=>e!==n$):[],[la,n$]),nq=H?.worktrees??[],nV=(0,a.jsxs)("div",{className:"w-[22rem] max-w-[calc(100vw-2rem)] flex flex-col border border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-900 rounded-box shadow-xl overflow-hidden",children:[(0,a.jsxs)("div",{className:"px-4 border-b border-gray-200 dark:border-gray-800 flex items-center justify-between bg-white dark:bg-gray-900 h-[57px] shrink-0",children:[(0,a.jsx)("h3",{className:"font-semibold flex items-center gap-2",children:"Branches"}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[lA&&(0,a.jsx)("div",{className:"tooltip tooltip-left z-20","data-tip":"Clear filters",children:(0,a.jsx)("button",{className:"btn btn-ghost btn-xs btn-square",onClick:lR,children:(0,a.jsx)("i",{className:"iconoir-filter text-[16px]","aria-hidden":"true"})})}),(0,a.jsx)("div",{className:"tooltip tooltip-left z-20","data-tip":"Create Branch",children:(0,a.jsx)("button",{className:"btn btn-ghost btn-xs btn-square",onClick:()=>nR(),children:(0,a.jsx)("i",{className:"iconoir-plus-circle text-[16px]","aria-hidden":"true"})})})]})]}),(0,a.jsx)("div",{className:"max-h-[70vh] overflow-auto",children:(0,a.jsxs)("div",{className:"p-2 space-y-0.5",children:[la&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i,{items:[{label:"Delete",icon:(0,a.jsx)("i",{className:"iconoir-trash text-[14px]","aria-hidden":"true"}),onClick:()=>lG(nU),danger:!0,disabled:0===nU.length}],children:(0,a.jsx)(j,{name:"Branches",groupPath:"__local__",icon:(0,a.jsx)("i",{className:"iconoir-git-branch text-[14px]","aria-hidden":"true"}),isExpanded:lc,onToggle:lk,visibilityMap:lp,onToggleVisibility:lS})}),lc&&(0,a.jsx)(N,{node:la,currentBranch:H?.current,expandedFolders:lf,onToggleFolder:lC,onCheckout:np,onCheckoutToLocal:ni,onCreateBranch:()=>nR(),onDeleteBranch:lU,onRenameBranch:lZ,onRenameRemoteBranch:l0,onRebase:l3,onMerge:l7,onPushToRemote:ne,onPullFromRemote:nl,getBranchContextMenuItems:nW,onBranchClick:lH,onBranchContextMenu:l_,onDeleteBranchGroup:lG,selectedBranches:ll,visibilityMap:lp,onToggleVisibility:lS,depth:1,groupPath:"__local__",trackingInfo:H?.trackingInfo})]}),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i,{items:[{label:"Fetch from all remotes",icon:(0,a.jsx)("i",{className:"iconoir-refresh-circle text-[14px]","aria-hidden":"true"}),onClick:nc},{label:"Add remote",icon:(0,a.jsx)("i",{className:"iconoir-plus-circle text-[14px]","aria-hidden":"true"}),onClick:()=>{af("origin"),aj(""),ap(!0)}}],children:(0,a.jsx)(j,{name:"Remotes",groupPath:"__remotes__",icon:(0,a.jsx)("i",{className:"iconoir-globe text-[14px]","aria-hidden":"true"}),isExpanded:lh,onToggle:lv,visibilityMap:lp,onToggleVisibility:lS})}),lh&&_&&!lt&&(0,a.jsxs)("div",{className:"flex items-center gap-2 px-2 py-2 text-sm opacity-70",style:{paddingLeft:"20px"},children:[(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),(0,a.jsx)("span",{children:"Loading remotes..."})]}),lh&<&&Array.from(lt.entries()).map(([e,t])=>{let s=`__remotes__/${e}`,l=lf.has(s);return(0,a.jsxs)("div",{children:[(0,a.jsx)(i,{items:[{label:`Fetch from ${e}`,icon:(0,a.jsx)("i",{className:"iconoir-refresh-circle text-[14px]","aria-hidden":"true"}),onClick:()=>nx(e)},{label:"Rename",icon:(0,a.jsx)("i",{className:"iconoir-edit-pencil text-[14px]","aria-hidden":"true"}),onClick:()=>{as(e),an(e),aa(!0)}},{label:"Delete",icon:(0,a.jsx)("i",{className:"iconoir-trash text-[14px]","aria-hidden":"true"}),onClick:()=>{e&&(ah(e),ac(!0))},danger:!0}],children:(0,a.jsx)(j,{name:e,groupPath:s,icon:(0,a.jsx)("i",{className:"iconoir-globe text-[14px] opacity-50","aria-hidden":"true"}),isExpanded:l,onToggle:()=>lC(s),visibilityMap:lp,onToggleVisibility:lS,depth:1})}),l&&(0,a.jsx)(N,{node:t,currentBranch:H?.current,expandedFolders:lf,onToggleFolder:lC,onCheckout:np,onCheckoutToLocal:ni,onCreateBranch:()=>nR(),onDeleteBranch:lU,onRenameBranch:lZ,onRenameRemoteBranch:l0,onRebase:l3,onMerge:l7,onPushToRemote:ne,onPullFromRemote:nl,getBranchContextMenuItems:nW,onBranchClick:lH,onBranchContextMenu:l_,onDeleteBranchGroup:lG,selectedBranches:ll,visibilityMap:lp,onToggleVisibility:lS,depth:2,groupPath:s,isRemote:!0,trackingInfo:H?.trackingInfo})]},e)})]}),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"group flex items-center gap-1 px-2 py-1.5 text-sm rounded-md cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors font-medium",onClick:lw,children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5 flex-1 min-w-0",children:[(0,a.jsx)("span",{className:"text-xs opacity-70",children:lu?"▼":"▶"}),(0,a.jsx)("i",{className:"iconoir-folder text-[14px]","aria-hidden":"true"}),(0,a.jsx)("span",{className:"truncate min-w-0 flex-1",children:"Worktrees"})]}),(0,a.jsx)("span",{className:"text-xs opacity-60",children:nq.length})]}),lu&&_&&0===nq.length&&(0,a.jsxs)("div",{className:"flex items-center gap-2 px-2 py-2 text-sm opacity-70",style:{paddingLeft:"20px"},children:[(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),(0,a.jsx)("span",{children:"Loading worktrees..."})]}),lu&&!_&&0===nq.length&&(0,a.jsx)("div",{className:"px-2 py-2 text-sm opacity-70",style:{paddingLeft:"20px"},children:"No worktrees found"}),lu&&nq.map(e=>{let t=(0,a.jsxs)("button",{type:"button",className:(0,r.cn)("group flex w-full items-center gap-2 px-2 py-1.5 text-sm rounded-md transition-colors text-left",e.isCurrent?"cursor-default opacity-85":"cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-800"),style:{paddingLeft:"20px"},onClick:()=>nm(e.path,e.isCurrent),title:e.path,disabled:e.isCurrent,children:[(0,a.jsx)("i",{className:`iconoir-folder text-[14px] shrink-0 ${e.isCurrent?"text-primary":"opacity-60"}`,"aria-hidden":"true"}),(0,a.jsx)("span",{className:"truncate min-w-0 flex-1",children:e.path}),e.branch&&(0,a.jsx)("span",{className:"shrink-0 text-xs opacity-60",children:e.branch}),e.isCurrent&&(0,a.jsx)("span",{className:"shrink-0 text-xs text-primary font-medium",children:"current"})]});return e.isCurrent?(0,a.jsx)("div",{children:t},e.path):(0,a.jsx)(i,{items:[{label:"Delete worktree",icon:(0,a.jsx)("i",{className:"iconoir-trash text-[14px]","aria-hidden":"true"}),onClick:()=>lq(e.path),danger:!0}],children:t},e.path)})]})]})})]});if(D&&100===M)return(0,a.jsx)("div",{className:"flex items-center justify-center p-8 h-full",children:(0,a.jsx)("span",{className:"loading loading-spinner text-base-content/50"})});if(L)return(0,a.jsxs)("div",{className:"flex items-center justify-center p-8 h-full flex-col gap-4",children:[(0,a.jsx)("p",{className:"text-error font-medium",children:"Error Loading History"}),(0,a.jsx)("p",{className:"text-sm opacity-70",children:A?.message||"An unknown error occurred"}),(0,a.jsxs)("button",{onClick:()=>void O(),className:"btn btn-outline btn-sm",children:[(0,a.jsx)("i",{className:"iconoir-refresh-circle text-[16px] mr-1","aria-hidden":"true"}),"Try Again"]})]});if(!T)return(0,a.jsx)("div",{className:"flex items-center justify-center p-8 h-full opacity-70",children:"No history data available"});let nY="flex h-8 items-center gap-1.5 rounded-md border border-slate-200 bg-white px-3 text-sm font-medium text-slate-600 transition-colors hover:bg-slate-50 hover:text-slate-900 disabled:cursor-not-allowed disabled:opacity-50 max-[1199px]:w-8 max-[1199px]:justify-center max-[1199px]:px-0 dark:border-slate-700 dark:bg-slate-900 dark:text-slate-300 dark:hover:bg-slate-800 dark:hover:text-slate-100",nQ="max-[1199px]:hidden";return(0,a.jsxs)("div",{className:"flex h-full overflow-hidden",children:[t6&&(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:"Reset to Commit"}),(0,a.jsxs)("p",{className:"py-4 break-words",children:["Are you sure you want to hard reset branch ",(0,a.jsx)("span",{className:"font-bold break-all",children:H?.current||"Detached HEAD"})," to commit ",(0,a.jsx)("span",{className:"font-mono bg-base-200 px-1 rounded",children:se?.substring(0,7)}),"?",(0,a.jsx)("br",{}),(0,a.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,a.jsxs)("div",{className:"modal-action",children:[(0,a.jsx)("button",{className:"btn",onClick:()=>t9(!1),disabled:st,children:"Cancel"}),(0,a.jsxs)("button",{className:"btn btn-error",onClick:nf,disabled:st,children:[st&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Reset"]})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:()=>t9(!1),children:"close"})})]}),sl&&(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:"Revert Commit"}),(0,a.jsxs)("p",{className:"py-4 break-words",children:["Are you sure you want to revert commit ",(0,a.jsx)("span",{className:"font-mono bg-base-200 px-1 rounded",children:sr?.hash.substring(0,7)})," on ",(0,a.jsx)("span",{className:"font-bold break-all",children:H?.current||"current"}),"?"]}),sr?.message&&(0,a.jsx)("div",{className:"rounded border border-base-300 bg-base-200/40 px-3 py-2 text-xs break-words",children:sr.message}),(0,a.jsxs)("div",{className:"modal-action",children:[(0,a.jsx)("button",{className:"flex h-8 items-center gap-1.5 px-3 rounded-md text-sm font-medium text-gray-600 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-gray-100 transition-colors",onClick:()=>{sn(!1),si(null)},disabled:so,children:"Cancel"}),(0,a.jsxs)("button",{className:"btn btn-primary",onClick:ng,disabled:so,children:[so&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Revert"]})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:()=>{sn(!1),si(null)},children:"close"})})]}),sd&&(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:"Reword Commit"}),(0,a.jsxs)("p",{className:"py-4 break-words",children:["Reword commit ",(0,a.jsx)("span",{className:"font-mono bg-base-200 px-1 rounded",children:sm?.hash.substring(0,7)})," on branch ",(0,a.jsx)("span",{className:"font-bold",children:sm?.branch}),"."]}),(0,a.jsx)("input",{type:"text",className:"input input-bordered w-full font-mono text-sm mb-3",value:sx,onChange:e=>sp(e.target.value),autoFocus:!0,onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&sx.trim()&&!sg&&(e.preventDefault(),nj())},placeholder:"Commit subject",disabled:sg}),(0,a.jsx)("textarea",{className:"textarea textarea-bordered w-full h-32 font-mono text-sm",value:sb,onChange:e=>sf(e.target.value),onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&sx.trim()&&!sg&&(e.preventDefault(),nj())},placeholder:"Commit message body (optional)",disabled:sg}),sm?.branch!==H?.current&&(0,a.jsx)("div",{className:"alert alert-warning text-xs mt-2 py-2",children:(0,a.jsxs)("span",{children:["This will briefly checkout ",(0,a.jsx)("b",{children:sm?.branch})," to amend the commit."]})}),(0,a.jsxs)("div",{className:"modal-action",children:[(0,a.jsx)("button",{className:"btn",onClick:sU,disabled:sg,children:"Cancel"}),(0,a.jsxs)("button",{className:"btn btn-primary",onClick:nj,disabled:!sx.trim()||sg,children:[sg&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Reword"]})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:sU,children:"close"})})]}),eN&&(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:ek.length>1?"Delete Branches":"Delete Branch"}),ek.length>1?(0,a.jsxs)("div",{className:"py-4 space-y-3",children:[(0,a.jsxs)("p",{className:"break-words",children:["Are you sure you want to delete ",(0,a.jsxs)("span",{className:"font-bold",children:[ek.length," selected branches"]}),"? This action cannot be undone."]}),(0,a.jsx)("div",{className:"max-h-44 overflow-auto rounded border border-base-300 bg-base-200/40 p-2 space-y-1",children:ek.map(e=>(0,a.jsx)("div",{className:"text-xs min-w-0 break-all",children:e.startsWith("remotes/")?e.slice(8):e},e))})]}):(0,a.jsxs)("p",{className:"py-4 break-words",children:["Are you sure you want to delete the branch ",(0,a.jsx)("span",{className:"font-bold break-all",children:ek[0]?.startsWith("remotes/")?ek[0].slice(8):ek[0]}),"? This action cannot be undone."]}),nM.length>0&&(0,a.jsx)("div",{className:"form-control",children:(0,a.jsxs)("label",{className:"label cursor-pointer justify-start items-start gap-2 min-w-0",children:[(0,a.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:ew,onChange:e=>eC(e.target.checked),disabled:eS}),(0,a.jsx)("span",{className:"label-text break-words whitespace-normal",children:1===nM.length?(0,a.jsxs)(a.Fragment,{children:["Delete tracking remote branch ",(0,a.jsx)("span",{className:"font-mono opacity-70 break-all",children:nM[0]})]}):(0,a.jsxs)(a.Fragment,{children:["Delete ",nM.length," tracking remote branches"]})})]})}),(0,a.jsxs)("div",{className:"modal-action",children:[(0,a.jsx)("button",{className:"btn",onClick:()=>{ey(!1),ev([]),eC(!1)},disabled:eS,children:"Cancel"}),(0,a.jsxs)("button",{className:"btn btn-error",onClick:lQ,disabled:eS,children:[eS&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Delete"]})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:()=>{ey(!1),ev([]),eC(!1)},children:"close"})})]}),eE&&(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:"Delete Worktree"}),(0,a.jsxs)("p",{className:"py-4 break-words",children:["Are you sure you want to delete the worktree ",(0,a.jsx)("span",{className:"font-bold break-all",children:eB}),"?"]}),(0,a.jsx)("p",{className:"text-sm text-error break-words",children:"This will remove the worktree from git and remove its working directory."}),(0,a.jsxs)("div",{className:"modal-action",children:[(0,a.jsx)("button",{className:"btn",onClick:()=>{e$(!1),eP(null)},disabled:eM,children:"Cancel"}),(0,a.jsxs)("button",{className:"btn btn-error",onClick:()=>void lX(),disabled:eM||!eB,children:[eM&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Delete"]})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:()=>{e$(!1),eP(null)},children:"close"})})]}),eT&&(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:"Delete Tag"}),(0,a.jsxs)("p",{className:"py-4 break-words",children:["Are you sure you want to delete the tag ",(0,a.jsx)("span",{className:"font-bold break-all",children:eL}),"? This action cannot be undone."]}),(0,a.jsx)("div",{className:"form-control",children:(0,a.jsxs)("label",{className:"label cursor-pointer justify-start items-start gap-2 min-w-0",children:[(0,a.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:eO,onChange:e=>eI(e.target.checked),disabled:eH||!nP}),(0,a.jsx)("span",{className:"label-text break-words whitespace-normal",children:nP?(0,a.jsxs)(a.Fragment,{children:["Also delete from remote ",(0,a.jsx)("span",{className:"font-mono opacity-70",children:nP})]}):"No remote configured"})]})}),(0,a.jsxs)("div",{className:"modal-action",children:[(0,a.jsx)("button",{className:"btn",onClick:lV,disabled:eH,children:"Cancel"}),(0,a.jsxs)("button",{className:"btn btn-error",onClick:lJ,disabled:eH||!eL,children:[eH&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Delete"]})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:lV,children:"close"})})]}),eK&&(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:"Cherry Pick"}),(0,a.jsx)("p",{className:"text-sm opacity-70 mt-1",children:ez.length>1?"Apply selected commits from oldest to newest":"Apply changes from the selected commit"}),1===ez.length?(0,a.jsxs)("p",{className:"py-4 break-words",children:["Are you sure to apply ",(0,a.jsx)("span",{className:"font-bold font-mono break-all",children:ez[0]?.hash})," ",(0,a.jsx)("span",{className:"font-bold break-words",children:ez[0]?.message})," to ",(0,a.jsx)("span",{className:"font-bold break-all",children:H?.current||"current"})," branch?"]}):(0,a.jsxs)("div",{className:"py-4 space-y-3",children:[(0,a.jsxs)("p",{className:"break-words",children:["Are you sure to apply ",(0,a.jsxs)("span",{className:"font-bold",children:[ez.length," selected commits"]})," to ",(0,a.jsx)("span",{className:"font-bold break-all",children:H?.current||"current"})," branch?"]}),(0,a.jsx)("div",{className:"max-h-44 overflow-auto rounded border border-base-300 bg-base-200/40 p-2 space-y-1",children:ez.map(e=>(0,a.jsxs)("div",{className:"text-xs min-w-0",children:[(0,a.jsx)("span",{className:"font-mono opacity-70",children:e.hash.slice(0,7)})," ",(0,a.jsx)("span",{className:"break-words",children:e.message})]},e.hash))})]}),(0,a.jsxs)("div",{className:"modal-action",children:[(0,a.jsx)("button",{className:"btn",onClick:()=>{eW(!1),eG([])},disabled:eU,children:"Cancel"}),(0,a.jsxs)("button",{className:"btn btn-primary",onClick:nw,disabled:eU,children:[eU&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Confirm"]})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:()=>{eW(!1),eG([])},children:"close"})})]}),eV&&(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:"Cherry Pick In Progress"}),(0,a.jsx)("p",{className:"text-sm opacity-70 mt-1",children:"Another cherry-pick operation is currently in progress."}),(0,a.jsxs)("p",{className:"py-4 break-words",children:["Abort the in-progress cherry-pick and continue with ",ez.length>1?"the selected commits":"this commit","?"]}),(0,a.jsxs)("div",{className:"modal-action",children:[(0,a.jsx)("button",{className:"btn",onClick:()=>{eY(!1),eG([])},disabled:eQ,children:"Cancel"}),(0,a.jsxs)("button",{className:"btn btn-warning",onClick:()=>void nC(),disabled:eQ,children:[eQ&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Abort and Continue"]})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:()=>{eY(!1),eG([])},children:"close"})})]}),eX&&(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:e2?"Rename Remote Branch":"Rename Branch"}),(0,a.jsxs)("p",{className:"py-4 break-words",children:["Enter a new name for the branch ",(0,a.jsx)("span",{className:"font-bold break-all",children:e0}),". Press ",(0,a.jsx)("kbd",{className:"kbd kbd-sm",children:"Enter"})," to confirm."]}),(0,a.jsx)("input",{type:"text",className:"input input-bordered w-full",value:e5,onChange:e=>e3((0,r.sanitizeBranchName)(e.target.value)),placeholder:"New branch name",disabled:e6,autoFocus:!0,onKeyDown:e=>{let a="Enter"===e.key&&(e.metaKey||e.ctrlKey),t=e2?e5===e2.branch:e5===e0;a&&e5&&!t&&!e6&&l1()}}),!e2&&nF?.upstream&&(0,a.jsx)("div",{className:"form-control mt-2",children:(0,a.jsxs)("label",{className:"label cursor-pointer justify-start items-start gap-2 min-w-0",children:[(0,a.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:e8,onChange:e=>e7(e.target.checked),disabled:e6}),(0,a.jsxs)("span",{className:"label-text break-words whitespace-normal",children:["Also rename tracking remote branch ",(0,a.jsx)("span",{className:"font-mono opacity-70 break-all",children:nF.upstream})]})]})}),(0,a.jsxs)("div",{className:"modal-action",children:[(0,a.jsx)("button",{className:"btn",onClick:sK,disabled:e6,children:"Cancel"}),(0,a.jsxs)("button",{className:"btn btn-primary",onClick:l1,disabled:!e5||(e2?e5===e2.branch:e5===e0)||e6,children:[e6&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Rename"]})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:sK,children:"close"})})]}),ae&&(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:"Rename Remote"}),(0,a.jsxs)("p",{className:"py-4 break-words",children:["Enter a new name for remote ",(0,a.jsx)("span",{className:"font-bold break-all",children:at}),". Press ",(0,a.jsx)("kbd",{className:"kbd kbd-sm",children:"Enter"})," to confirm."]}),(0,a.jsx)("input",{type:"text",className:"input input-bordered w-full",value:al,onChange:e=>an(e.target.value),placeholder:"New remote name",disabled:ar,autoFocus:!0,onKeyDown:e=>{let a="Enter"===e.key&&(e.metaKey||e.ctrlKey),t=al.trim(),s=t===(at??"").trim();a&&t&&!s&&!ar&&l2()}}),(0,a.jsxs)("div",{className:"modal-action",children:[(0,a.jsx)("button",{className:"btn",onClick:sW,disabled:ar,children:"Cancel"}),(0,a.jsxs)("button",{className:"btn btn-primary",onClick:l2,disabled:!al.trim()||al.trim()===(at??"").trim()||ar,children:[ar&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Rename"]})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:sW,children:"close"})})]}),ao&&(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:"Delete Remote"}),(0,a.jsxs)("p",{className:"py-4 break-words",children:["Are you sure you want to delete remote ",(0,a.jsx)("span",{className:"font-bold break-all",children:ad}),"? This removes all tracking branches for that remote."]}),(0,a.jsxs)("div",{className:"modal-action",children:[(0,a.jsx)("button",{className:"btn",onClick:sz,disabled:am,children:"Cancel"}),(0,a.jsxs)("button",{className:"btn btn-error",onClick:l4,disabled:!ad||am,children:[am&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Delete"]})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:sz,children:"close"})})]}),ax&&(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:"Add Remote"}),(0,a.jsxs)("p",{className:"py-4 break-words",children:["Add a new remote by providing a name and URL. Press ",(0,a.jsx)("kbd",{className:"kbd kbd-sm",children:"Enter"})," to confirm."]}),(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"label pt-0",children:(0,a.jsx)("span",{className:"label-text",children:"Remote name"})}),(0,a.jsx)("input",{type:"text",className:"input input-bordered w-full",value:ab,onChange:e=>af(e.target.value),placeholder:"origin",disabled:aN,autoFocus:!0})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"label pt-0",children:(0,a.jsx)("span",{className:"label-text",children:"Remote URL"})}),(0,a.jsx)("input",{type:"text",className:"input input-bordered w-full",value:ag,onChange:e=>aj(e.target.value),placeholder:"https://github.com/owner/repo.git",disabled:aN,onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&ab.trim()&&ag.trim()&&!aN&&l5()}})]})]}),(0,a.jsxs)("div",{className:"modal-action",children:[(0,a.jsx)("button",{className:"btn",onClick:sG,disabled:aN,children:"Cancel"}),(0,a.jsxs)("button",{className:"btn btn-primary",onClick:l5,disabled:!ab.trim()||!ag.trim()||aN,children:[aN&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Add"]})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:sG,children:"close"})})]}),ak&&(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:"Rebase"}),(0,a.jsxs)("p",{className:"py-4 break-words",children:["Copy commits from one branch to another.",(0,a.jsx)("br",{}),"Are you sure to rebase ",(0,a.jsx)("span",{className:"font-bold break-all",children:aw})," onto ",(0,a.jsx)("span",{className:"font-bold break-all",children:aS}),"?"]}),(0,a.jsx)("div",{className:"form-control",children:(0,a.jsxs)("label",{className:"label cursor-pointer justify-start gap-2",children:[(0,a.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:aE,onChange:e=>a$(e.target.checked),disabled:aB}),(0,a.jsx)("span",{className:"label-text",children:"Stash and reapply local changes"})]})}),!aE&&(0,a.jsx)("p",{className:"text-xs text-warning mt-2 ml-6",children:"Warning: All local changes will be discarded."}),"checking"===aM?(0,a.jsxs)("div",{className:"alert alert-info text-sm mt-4 py-2",children:[(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),(0,a.jsxs)("span",{children:["Checking conflicts for rebasing ",(0,a.jsx)("span",{className:"font-bold break-all",children:aw})," onto ",(0,a.jsx)("span",{className:"font-bold break-all",children:aS}),"..."]})]}):"no-conflict"===aM?(0,a.jsxs)("div",{className:"alert alert-success text-sm mt-4 py-2",children:[(0,a.jsx)("i",{className:"iconoir-check-circle-solid text-[18px]","aria-hidden":"true"}),(0,a.jsxs)("span",{children:["No conflict: rebasing ",(0,a.jsx)("span",{className:"font-bold break-all",children:aw})," onto ",(0,a.jsx)("span",{className:"font-bold break-all",children:aS})," will not cause conflicts."]})]}):(0,a.jsxs)("div",{className:"alert alert-warning text-sm mt-4 py-2",children:[(0,a.jsx)("i",{className:"iconoir-warning-circle-solid text-[18px]","aria-hidden":"true"}),(0,a.jsxs)("span",{children:["Conflicts detected: rebasing ",(0,a.jsx)("span",{className:"font-bold break-all",children:aw})," onto ",(0,a.jsx)("span",{className:"font-bold break-all",children:aS})," will cause conflicts."]})]}),(0,a.jsxs)("div",{className:"modal-action",children:[(0,a.jsx)("button",{className:"btn",onClick:aT,disabled:aB,children:"Cancel"}),(0,a.jsxs)("button",{className:"btn btn-primary",onClick:l8,disabled:aB,children:[aB&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Confirm"]})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:aT,children:"close"})})]}),aD&&(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:"Merge"}),(0,a.jsxs)("p",{className:"py-4 break-words",children:["Merge branch into another one.",(0,a.jsx)("br",{}),"Are you sure to merge ",(0,a.jsx)("span",{className:"font-bold break-all",children:aI})," into ",(0,a.jsx)("span",{className:"font-bold break-all",children:aA}),"?"]}),(0,a.jsx)("div",{className:"form-control",children:(0,a.jsxs)("label",{className:"label cursor-pointer justify-start gap-2",children:[(0,a.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:a_,onChange:e=>aK(e.target.checked),disabled:aY}),(0,a.jsx)("span",{className:"label-text",children:"Rebase before merge"})]})}),(0,a.jsx)("div",{className:"form-control",children:(0,a.jsxs)("label",{className:"label cursor-pointer justify-start gap-2",children:[(0,a.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:aW,onChange:e=>l6(e.target.checked),disabled:aY}),(0,a.jsx)("span",{className:"label-text",children:"Squash before merge"})]})}),aW&&(0,a.jsx)("textarea",{className:"textarea textarea-bordered w-full mt-2",placeholder:"Commit message for squash merge",value:aq,onChange:e=>aV(e.target.value),disabled:aY,autoFocus:!0}),(0,a.jsx)("div",{className:"form-control",children:(0,a.jsxs)("label",{className:"label cursor-pointer justify-start gap-2",children:[(0,a.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:aG,onChange:e=>aU(e.target.checked),disabled:aY}),(0,a.jsx)("span",{className:"label-text",children:"Fast forward merge"})]})}),"checking"===aJ?(0,a.jsxs)("div",{className:"alert alert-info text-sm mt-4 py-2",children:[(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),(0,a.jsxs)("span",{children:["Checking conflicts for merging ",(0,a.jsx)("span",{className:"font-bold break-all",children:aI})," into ",(0,a.jsx)("span",{className:"font-bold break-all",children:aA}),"..."]})]}):"no-conflict"===aJ?(0,a.jsxs)("div",{className:"alert alert-success text-sm mt-4 py-2",children:[(0,a.jsx)("i",{className:"iconoir-check-circle-solid text-[18px]","aria-hidden":"true"}),(0,a.jsxs)("span",{children:["No conflict: merging ",(0,a.jsx)("span",{className:"font-bold break-all",children:aI})," into ",(0,a.jsx)("span",{className:"font-bold break-all",children:aA})," will not cause conflicts."]})]}):(0,a.jsxs)("div",{className:"alert alert-warning text-sm mt-4 py-2",children:[(0,a.jsx)("i",{className:"iconoir-warning-circle-solid text-[18px]","aria-hidden":"true"}),(0,a.jsxs)("span",{children:["Conflicts detected: merging ",(0,a.jsx)("span",{className:"font-bold break-all",children:aI})," into ",(0,a.jsx)("span",{className:"font-bold break-all",children:aA})," will cause conflicts."]})]}),(0,a.jsxs)("div",{className:"modal-action",children:[(0,a.jsx)("button",{className:"btn",onClick:aZ,disabled:aY,children:"Cancel"}),(0,a.jsxs)("button",{className:"btn btn-primary",onClick:l9,disabled:aY,children:[aY&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Confirm"]})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:aZ,children:"close"})})]}),a0&&(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:"Push to Remote"}),(0,a.jsxs)("p",{className:"py-4 break-words",children:["Push ",(0,a.jsx)("span",{className:"font-bold break-all",children:a2})," to a remote repository."]}),tb&&0===a5.length?(0,a.jsxs)("div",{className:"alert alert-error",children:[(0,a.jsx)("span",{className:"text-xl",children:"⚠️"}),(0,a.jsx)("span",{children:tb})]}):tg?(0,a.jsx)("div",{className:"flex justify-center py-8",children:(0,a.jsx)("span",{className:"loading loading-spinner loading-lg"})}):(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)("div",{className:"form-control w-full flex flex-row items-center justify-between gap-4",children:[(0,a.jsx)("label",{className:"label flex-shrink-0",children:(0,a.jsx)("span",{className:"label-text",children:"Remote Repository"})}),(0,a.jsx)("select",{className:"select select-bordered w-64",value:a8,onChange:e=>na(e.target.value),disabled:tx,children:a5.map(e=>(0,a.jsx)("option",{value:e,children:e},e))})]}),(0,a.jsxs)("div",{className:"form-control w-full flex flex-row items-center justify-between gap-4",children:[(0,a.jsx)("label",{className:"label flex-shrink-0",children:(0,a.jsx)("span",{className:"label-text",children:"Remote Branch"})}),(0,a.jsxs)("div",{className:"flex flex-col items-end gap-1 w-64",children:[tN?(0,a.jsxs)("div",{className:"flex items-center gap-2 p-3 border rounded-lg bg-base-200 opacity-70 w-full",children:[(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"})," Loading branches..."]}):(0,a.jsxs)("select",{className:"select select-bordered w-full",value:te,onChange:e=>ta(e.target.value),disabled:tx,children:[a2&&!a6.includes(a2)&&(0,a.jsxs)("option",{value:a2,children:[a2," (new)"]}),a6.map(e=>(0,a.jsxs)("option",{value:e,children:[e,tt?.remote===a8&&tt?.branch===e?" (tracking)":""]},e))]}),te&&!a6.includes(te)&&(0,a.jsx)("div",{className:"label",children:(0,a.jsx)("span",{className:"label-text-alt text-warning",children:"New branch will be created"})})]})]}),(0,a.jsx)("div",{className:"form-control",children:(0,a.jsxs)("label",{className:"label cursor-pointer justify-start gap-2",children:[(0,a.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:tl,onChange:e=>tn(e.target.checked),disabled:tx||tr}),(0,a.jsx)("span",{className:"label-text",children:"Rebase onto remote branch before pushing"})]})}),(0,a.jsx)("div",{className:"form-control",children:(0,a.jsxs)("label",{className:"label cursor-pointer justify-start gap-2",children:[(0,a.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm checkbox-error",checked:tr,onChange:e=>ti(e.target.checked),disabled:tx}),(0,a.jsx)("span",{className:"label-text text-error",children:"Force push"})]})}),(0,a.jsx)("div",{className:"form-control",children:(0,a.jsxs)("label",{className:"label cursor-pointer justify-start gap-2",children:[(0,a.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:to,onChange:e=>tc(e.target.checked),disabled:tx}),(0,a.jsx)("span",{className:"label-text",children:"Push all tags"})]})}),(0,a.jsx)("div",{className:"form-control",children:(0,a.jsxs)("label",{className:"label cursor-pointer justify-start gap-2",children:[(0,a.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:td,onChange:e=>nt(e.target.checked),disabled:tx}),(0,a.jsx)("span",{className:"label-text",children:"Squash local commits before push"})]})}),td&&(0,a.jsx)("textarea",{className:"textarea textarea-bordered w-full",placeholder:"Commit message for squash",value:tm,onChange:e=>tu(e.target.value),disabled:tx,autoFocus:!0}),tb&&(0,a.jsx)("div",{className:"alert alert-error text-sm",children:(0,a.jsx)("span",{children:tb})})]}),(0,a.jsxs)("div",{className:"modal-action",children:[(0,a.jsx)("button",{className:"btn",onClick:()=>a1(!1),disabled:tx,children:"Cancel"}),a5.length>0&&(0,a.jsxs)("button",{className:"btn btn-primary",onClick:ns,disabled:tx||!a8||!te,children:[tx&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"})," Push"]})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:()=>a1(!1),children:"close"})})]}),tk&&(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:"Pull from Remote"}),(0,a.jsxs)("p",{className:"py-4 break-words",children:["Pull changes from a remote branch into ",(0,a.jsx)("span",{className:"font-bold break-all",children:tw}),"."]}),tK&&0===tS.length?(0,a.jsx)("div",{className:"alert alert-error",children:(0,a.jsx)("span",{children:tK})}):tz?(0,a.jsx)("div",{className:"flex justify-center py-8",children:(0,a.jsx)("span",{className:"loading loading-spinner loading-lg"})}):(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)("div",{className:"form-control w-full flex flex-row items-center justify-between gap-4",children:[(0,a.jsx)("label",{className:"label flex-shrink-0",children:(0,a.jsx)("span",{className:"label-text",children:"Remote Repository"})}),(0,a.jsx)("select",{className:"select select-bordered w-64",value:tE,onChange:e=>nn(e.target.value),disabled:tO,children:tS.map(e=>(0,a.jsx)("option",{value:e,children:e},e))})]}),(0,a.jsxs)("div",{className:"form-control w-full flex flex-row items-center justify-between gap-4",children:[(0,a.jsx)("label",{className:"label flex-shrink-0",children:(0,a.jsx)("span",{className:"label-text",children:"Remote Branch"})}),tU?(0,a.jsxs)("div",{className:"flex items-center gap-2 p-3 border rounded-lg bg-base-200 opacity-70 w-64",children:[(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"})," Loading branches..."]}):(0,a.jsx)("select",{className:"select select-bordered w-64",value:tM,onChange:e=>tF(e.target.value),disabled:tO,children:tB.map(e=>(0,a.jsxs)("option",{value:e,children:[e,tT?.remote===tE&&tT?.branch===e?" (tracking)":""]},e))})]}),(0,a.jsx)("div",{className:"form-control",children:(0,a.jsxs)("label",{className:"label cursor-pointer justify-start gap-2",children:[(0,a.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:tL,onChange:e=>tA(e.target.checked),disabled:tO}),(0,a.jsx)("span",{className:"label-text",children:"Rebase onto remote branch"})]})}),tK&&(0,a.jsx)("div",{className:"alert alert-error text-sm",children:(0,a.jsx)("span",{children:tK})})]}),(0,a.jsxs)("div",{className:"modal-action",children:[(0,a.jsx)("button",{className:"btn",onClick:()=>tv(!1),disabled:tO,children:"Cancel"}),tS.length>0&&(0,a.jsxs)("button",{className:"btn btn-primary",onClick:nr,disabled:tO||!tE||!tM,children:[tO&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"})," Pull"]})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:()=>tv(!1),children:"close"})})]}),ed&&(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:"Create Tag"}),(0,a.jsxs)("p",{className:"py-4 break-words",children:["Create a new tag at commit ",(0,a.jsx)("span",{className:"font-mono bg-base-200 px-1 rounded",children:em?.substring(0,7)}),"."]}),(0,a.jsx)("input",{type:"text",className:"input input-bordered w-full font-mono",value:ex,onChange:e=>ep(e.target.value),placeholder:"Tag name",disabled:eg,autoFocus:!0,onKeyDown:e=>{"Enter"===e.key&&ex.trim()&&!eg&&(e.preventDefault(),nE())}}),(0,a.jsx)("div",{className:"form-control mt-3",children:(0,a.jsxs)("label",{className:"label cursor-pointer justify-start gap-2",children:[(0,a.jsx)("input",{type:"checkbox",className:"checkbox checkbox-sm",checked:eb,onChange:e=>ef(e.target.checked),disabled:eg}),(0,a.jsx)("span",{className:"label-text",children:"Push tag to remote after creation"})]})}),(0,a.jsxs)("div",{className:"modal-action",children:[(0,a.jsx)("button",{className:"btn",onClick:()=>{eh(!1),eu(null),ep(""),ef(!1)},disabled:eg,children:"Cancel"}),(0,a.jsxs)("button",{className:"btn btn-primary",onClick:nE,disabled:!ex.trim()||eg,children:[eg&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Create"]})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:()=>{eh(!1),eu(null),ep(""),ef(!1)},children:"close"})})]}),et&&(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:"Create New Branch"}),(0,a.jsxs)("p",{className:"py-4 break-words",children:["Create a new branch from"," ",(0,a.jsx)("span",{className:"font-bold break-all",children:er?er.replace(/^remotes\//,""):"current HEAD"}),"."]}),(0,a.jsx)("input",{type:"text",className:"input input-bordered w-full",value:el,onChange:e=>en((0,r.sanitizeBranchName)(e.target.value)),placeholder:"Branch name",disabled:eo,autoFocus:!0,onKeyDown:e=>{"Enter"===e.key&&el&&!eo&&(e.preventDefault(),nS())}}),(0,a.jsxs)("div",{className:"modal-action",children:[(0,a.jsx)("button",{className:"btn",onClick:()=>{es(!1),ei(null)},disabled:eo,children:"Cancel"}),(0,a.jsxs)("button",{className:"btn btn-primary",onClick:nS,disabled:!el||eo,children:[eo&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"})," Create & Checkout"]})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:()=>{es(!1),ei(null)},children:"close"})})]}),t0&&(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box",children:[(0,a.jsx)("h3",{className:"font-bold text-lg",children:"Checkout to Local Branch"}),(0,a.jsxs)("p",{className:"py-4 break-words",children:["Create a local branch from ",(0,a.jsx)("span",{className:"font-bold break-all",children:t2?.replace(/^remotes\//,"")})," and set up tracking."]}),(0,a.jsxs)("div",{className:"form-control w-full",children:[(0,a.jsx)("label",{className:"label",children:(0,a.jsx)("span",{className:"label-text",children:"Local Branch Name"})}),(0,a.jsx)("input",{type:"text",className:"input input-bordered w-full",value:t5,onChange:e=>t3((0,r.sanitizeBranchName)(e.target.value)),placeholder:"Local branch name",disabled:t8,autoFocus:!0,onKeyDown:e=>{"Enter"===e.key&&t5&&!t8&&(e.preventDefault(),no())}})]}),(0,a.jsxs)("div",{className:"modal-action",children:[(0,a.jsx)("button",{className:"btn",onClick:()=>t1(!1),disabled:t8,children:"Cancel"}),(0,a.jsxs)("button",{className:"btn btn-primary",onClick:no,disabled:!t5||t8,children:[t8&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"})," Checkout"]})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:()=>t1(!1),children:"close"})})]}),sM.isOpen&&(0,a.jsxs)("dialog",{className:"modal modal-open",children:[(0,a.jsxs)("div",{className:"modal-box max-w-4xl",children:[(0,a.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsxs)("h3",{className:"font-bold text-lg truncate",children:["Custom Script: ",sM.scriptName]}),(0,a.jsxs)("p",{className:"text-xs opacity-70 mt-1 break-all",children:["Branch: ",sM.branchRef]})]}),(0,a.jsx)("span",{className:(0,r.cn)("badge badge-sm shrink-0","running"===sM.status||"starting"===sM.status?"badge-info":"completed"===sM.status?"badge-success":"failed"===sM.status?"badge-error":"canceled"===sM.status?"badge-warning":"badge-ghost"),children:sM.status})]}),(0,a.jsx)("div",{className:"mt-4 border border-base-300 rounded bg-base-200/40",children:(0,a.jsx)("pre",{className:"p-3 font-mono text-xs overflow-auto max-h-[50vh] whitespace-pre-wrap break-words",children:sM.output||"Waiting for output..."})}),sM.error&&(0,a.jsx)("div",{className:"alert alert-error py-2 mt-3",children:(0,a.jsx)("span",{children:sM.error})}),(0,a.jsxs)("div",{className:"modal-action",children:[(0,a.jsxs)("button",{className:"btn btn-warning",onClick:()=>void lW(),disabled:!sH||sT,children:[sT&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Cancel"]}),(0,a.jsxs)("button",{className:"btn btn-outline",onClick:()=>void lz(),disabled:sL,children:[sL&&(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}),sO?"Copied":"Copy"]}),(0,a.jsx)("button",{className:"btn btn-primary",onClick:()=>{sF(E),sI(!1),sD(!1)},disabled:!s_,children:"Done"})]})]}),(0,a.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,a.jsx)("button",{onClick:e=>{s_?(sF(E),sI(!1),sD(!1)):e.preventDefault()},children:"close"})})]}),(0,a.jsxs)("div",{className:"flex-1 flex min-w-0 flex-col gap-2 overflow-hidden",children:[(0,a.jsxs)("div",{className:"flex min-h-[57px] shrink-0 flex-wrap items-center justify-between gap-2 rounded-xl border border-slate-200 bg-white px-4 py-2 dark:border-slate-800 dark:bg-slate-900",children:[(0,a.jsxs)("div",{className:"flex min-w-0 flex-1 flex-wrap items-center gap-2",children:[(0,a.jsx)("h1",{className:"font-bold text-lg text-slate-900 dark:text-slate-100",children:"History"}),(0,a.jsxs)("div",{className:"relative",ref:sP,children:[(0,a.jsxs)("button",{className:"flex h-8 max-w-[24rem] items-center gap-2 rounded-md border border-slate-200 bg-white px-3 text-sm font-mono font-medium text-slate-700 transition-colors hover:bg-slate-50 dark:border-slate-700 dark:bg-slate-900 dark:text-slate-200 dark:hover:bg-slate-800",onClick:()=>sB(e=>!e),title:nL,children:[(0,a.jsx)("span",{className:"truncate",children:nL}),(0,a.jsx)("i",{className:(0,r.cn)("iconoir-nav-arrow-down text-[16px] shrink-0 transition-transform opacity-60",s$&&"rotate-180"),"aria-hidden":"true"})]}),s$&&(0,a.jsx)("div",{className:"absolute left-0 top-full mt-2 z-50",children:nV})]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 shrink-0",children:[(0,a.jsxs)("button",{className:nY,onClick:()=>void nc(),disabled:tV||tH||tk||a0,title:"Fetch latest changes from all remotes",children:[tV?(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,a.jsx)("i",{className:"iconoir-refresh text-[16px]","aria-hidden":"true"}),(0,a.jsx)("span",{className:nQ,children:"Fetch"})]}),(0,a.jsxs)("button",{className:nY,onClick:()=>{n$&&!nI&&nl(n$)},disabled:!!nI||tH||tk||a0,title:nI||`Pull from ${nA?.upstream}`,children:[tz?(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,a.jsx)("i",{className:"iconoir-arrow-down text-[16px]","aria-hidden":"true"}),(0,a.jsx)("span",{className:nQ,children:"Pull"})]}),(0,a.jsxs)("button",{className:nY,onClick:()=>void nK(),disabled:!!nH||tk||a0||tH,title:nH||"Pull all local branches from tracking remote branches",children:[tH?(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,a.jsx)("i",{className:"iconoir-arrow-down text-[16px]","aria-hidden":"true"}),(0,a.jsx)("span",{className:nQ,children:"Pull All"})]}),(0,a.jsxs)("button",{className:nY,onClick:()=>{n$&&!n_&&ne(n$)},disabled:!!n_||tH||tk||a0,title:n_||(nA?`Push to ${nA.upstream}`:"Push current branch to remote"),children:[tg?(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,a.jsx)("i",{className:"iconoir-arrow-up text-[16px]","aria-hidden":"true"}),(0,a.jsx)("span",{className:nQ,children:"Push"})]})]})]}),(0,a.jsxs)("div",{className:"shrink-0 flex flex-wrap items-center gap-2",children:[(0,a.jsxs)("button",{className:nY,onClick:()=>void nh(),disabled:tX,title:"Open terminal in repository folder",children:[tX?(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,a.jsx)("i",{className:"iconoir-terminal text-[16px]","aria-hidden":"true"}),(0,a.jsx)("span",{className:nQ,children:"Open Terminal"})]}),(0,a.jsxs)("button",{className:nY,onClick:()=>void nd(),disabled:tQ,title:"Open repository folder in Finder",children:[tQ?(0,a.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,a.jsx)("i",{className:"iconoir-folder text-[16px]","aria-hidden":"true"}),(0,a.jsx)("span",{className:nQ,children:"Open Repo Folder"})]})]})]}),(0,a.jsx)("div",{className:"relative flex-1 overflow-hidden rounded-xl border border-slate-200 bg-white dark:border-slate-800 dark:bg-slate-900",children:lA&&_?(0,a.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,a.jsx)("span",{className:"loading loading-spinner loading-lg opacity-50"})}):(0,a.jsx)(c,{ref:sN,commits:l$,selectedHash:G||void 0,selectedHashes:lB,onSelectCommit:lD,onResetToCommit:nb,onRevertCommit:(e,a)=>{si({hash:e,message:a}),sn(!0)},onCreateTag:e=>{eu(e),ep(""),ef(!1),eh(!0)},onCherryPickCommit:(e,a)=>{eG([{hash:e,message:a}]),eW(!0)},onCherryPickSelectedCommits:()=>{lL.length<2||(eG(lL.map(e=>({hash:e.hash,message:e.message}))),eW(!0))},onRewordCommit:(e,a,t,s)=>{su({hash:e,subject:a,body:t,branch:s}),sp(a),sf(t),sh(!0)},localBranches:H?.branches||[],trackingInfo:H?.trackingInfo,onEndReached:()=>{!I&&T.all.length>=M&&F(e=>e+50)},isLoadingMore:I&&M>100,currentBranch:H?.current,hiddenBranches:lO,getBranchTagContextMenuItems:e=>{if(e.startsWith("tag:")){let t=e.replace(/^tag:\s*/,"").trim();return t?[{label:"Delete Tag",icon:(0,a.jsx)("i",{className:"iconoir-trash text-[14px]","aria-hidden":"true"}),onClick:()=>lY(t),danger:!0}]:null}if(nz.has(e))return nW({branchRef:e,branchLeafName:e.split("/").pop()||e,currentBranch:n$,isRemote:!1});let t=nG.get(e);return t?nW({branchRef:t,branchLeafName:t.split("/").pop()||e,currentBranch:n$,isRemote:!0}):null}})}),G&&(0,a.jsxs)("div",{className:"flex flex-col overflow-hidden rounded-xl border border-slate-200 bg-white dark:border-slate-800 dark:bg-slate-900",style:{height:sX},children:[(0,a.jsx)("div",{className:(0,r.cn)("h-1.5 cursor-ns-resize flex items-center justify-center hover:bg-slate-100 transition-colors group shrink-0 dark:hover:bg-slate-800/60",s0&&"bg-slate-100 dark:bg-slate-800/60"),onMouseDown:s9,children:(0,a.jsx)("div",{className:"w-8 h-1 rounded-full bg-base-300 group-hover:bg-base-content/20 transition-colors"})}),(0,a.jsxs)("div",{className:"flex flex-row items-center py-2 px-4 border-b border-slate-200 dark:border-slate-800 bg-slate-50/70 dark:bg-slate-900 shrink-0 justify-between gap-4",children:[(0,a.jsx)("div",{className:"flex items-center gap-4 flex-1 min-w-0",children:lT&&lF?(0,a.jsx)(a.Fragment,{children:(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsxs)("div",{className:"text-sm font-bold truncate",children:[lF.latestHash.substring(0,7),": ",lF.latestCommit.message]}),(0,a.jsxs)("div",{className:"text-sm font-bold truncate opacity-75",children:[lF.oldestHash.substring(0,7),": ",lF.oldestCommit.message]})]})}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"text-sm font-bold truncate",children:lM?.message}),(0,a.jsx)("span",{className:"text-xs font-mono opacity-50 shrink-0",children:G.substring(0,7)})]})}),(0,a.jsx)("div",{className:"flex items-center gap-1 shrink-0",children:(0,a.jsx)("button",{className:"ml-2 flex items-center justify-center h-8 w-8 rounded-md hover:bg-slate-100 dark:hover:bg-slate-800 text-slate-600 hover:text-slate-900 dark:text-slate-400 dark:hover:text-slate-100",onClick:()=>Z(null),title:"Close",children:"✕"})})]}),lT&&lF?(0,a.jsxs)("div",{className:"flex-1 overflow-hidden min-h-0 flex flex-col bg-white dark:bg-slate-900",children:[(0,a.jsx)("div",{className:"px-4 pt-2 pb-1 text-[10px] uppercase tracking-wider font-bold opacity-60 border-b border-slate-200 dark:border-slate-800 bg-slate-50/70 dark:bg-slate-900 shrink-0",children:"Changes"}),(0,a.jsx)("div",{className:"flex-1 min-h-0",children:(0,a.jsx)(m.CommitChangesView,{repoPath:e,fromCommitHash:lF.oldestHash,toCommitHash:lF.latestHash})})]}):(0,a.jsxs)("div",{ref:s7,className:"flex-1 overflow-hidden bg-white dark:bg-slate-900 grid",style:{gridTemplateRows:`${s4}fr 6px ${1-s4}fr`},children:[(0,a.jsxs)("div",{className:"border-b border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-900 min-h-0 flex flex-col",children:[(0,a.jsx)("div",{className:"px-4 pt-3 pb-1 text-[10px] uppercase tracking-wider font-bold opacity-60",children:"Message"}),(0,a.jsx)("div",{className:"px-4 pb-3 overflow-auto flex-1 min-h-0",children:(0,a.jsx)("div",{className:"text-xs opacity-70 whitespace-pre-wrap font-mono",children:lM?(lM.body?.trim()?`${lM.message}
|
|
7
|
+
|
|
8
|
+
${lM.body}`:lM.message).replace(/\r\n/g,"\n").replace(/\\r\\n/g,"\n").replace(/\\n/g,"\n"):"No additional message"})})]}),(0,a.jsx)("div",{className:(0,r.cn)("cursor-ns-resize flex items-center justify-center hover:bg-slate-100 dark:hover:bg-slate-800/60 transition-colors",s3&&"bg-slate-100 dark:bg-slate-800/60"),onMouseDown:le,children:(0,a.jsx)("div",{className:"w-8 h-1 rounded-full bg-base-300"})}),(0,a.jsxs)("div",{className:"flex-1 overflow-hidden min-h-0 flex flex-col",children:[(0,a.jsx)("div",{className:"px-4 pt-2 pb-1 text-[10px] uppercase tracking-wider font-bold opacity-60 border-b border-slate-200 dark:border-slate-800 bg-slate-50/70 dark:bg-slate-900 shrink-0",children:"Changes"}),(0,a.jsx)("div",{className:"flex-1 min-h-0",children:(0,a.jsx)(m.CommitChangesView,{repoPath:e,commitHash:G})})]})]})]})]})]})}e.s(["HistoryView",()=>$],93104)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,33525,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),Object.defineProperty(i,"warnOnce",{enumerable:!0,get:function(){return s}});let s=e=>{}},95187,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});var s={callServer:function(){return r.callServer},createServerReference:function(){return n.createServerReference},findSourceMapURL:function(){return a.findSourceMapURL}};for(var l in s)Object.defineProperty(i,l,{enumerable:!0,get:s[l]});let r=e.r(32120),a=e.r(92245),n=e.r(35326)},63671,e=>{"use strict";let t="viba:sessions-updated-at",i="viba:sessions-updated";function s(){try{localStorage.setItem(t,new Date().toISOString())}catch{}window.dispatchEvent(new CustomEvent(i))}e.s(["SESSIONS_UPDATED_EVENT",0,i,"SESSIONS_UPDATED_STORAGE_KEY",0,t,"notifySessionsUpdated",()=>s])},942,e=>{"use strict";var t=e.i(43476),i=e.i(33794),s=e.i(71645),l=e.i(63178),r=e.i(75157),a=e.i(87724),n=e.i(30660);function c({repoPath:e,filePath:c}){let{data:o,isLoading:f}=(0,i.useGitDiff)(e,c),d=(0,s.useRef)(null),u="git-web:diff-view-split",[h,m]=(0,s.useState)(()=>{try{let e=localStorage.getItem(u);return null===e||JSON.parse(e)}catch(e){return console.error("Failed to load split view preference:",e),!0}}),[x,p]=(0,s.useState)(null),g=x===c,{resolvedTheme:b}=(0,l.useTheme)();if((0,s.useEffect)(()=>{try{localStorage.setItem(u,JSON.stringify(h))}catch(e){console.error("Failed to save split view preference:",e)}},[h]),(0,s.useEffect)(()=>{if(f)return;let e=requestAnimationFrame(()=>{d.current?.scrollTo({top:0,left:0})});return()=>cancelAnimationFrame(e)},[c,f]),f)return(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"})});if(!o)return(0,t.jsx)("div",{className:"flex items-center justify-center h-full opacity-50",children:"No diff available"});if((0,r.isImageFile)(c))return(0,t.jsxs)("div",{className:"flex flex-col h-full bg-base-100",children:[(0,t.jsx)("div",{className:"flex items-center justify-between px-4 h-[57px] border-b border-base-300 shrink-0 bg-base-100",children:(0,t.jsx)("span",{className:"text-sm font-mono truncate max-w-[70%]",title:c,children:c})}),(0,t.jsx)("div",{className:"flex-1 overflow-auto",children:(0,t.jsx)(n.ImageDiffView,{filePath:c,imageDiff:o.imageDiff})})]});if((0,r.isFileBinary)(c,o.left,o.right))return(0,t.jsxs)("div",{className:"flex flex-col h-full bg-base-100",children:[(0,t.jsx)("div",{className:"flex items-center justify-between px-4 h-[57px] border-b border-base-300 shrink-0 bg-base-100",children:(0,t.jsx)("span",{className:"text-sm font-mono truncate max-w-[70%]",title:c,children:c})}),(0,t.jsx)("div",{className:"flex-1 flex items-center justify-center opacity-50",children:"Binary file - diff not available"})]});let j=o.diff||"",v=j.length,w=(0,r.getChangedLineCountFromDiff)(j),y=v>102400||w>3e3;return(0,t.jsxs)("div",{className:"flex flex-col h-full bg-base-100",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 h-[57px] border-b border-base-300 shrink-0 bg-base-100",children:[(0,t.jsx)("span",{className:"text-sm font-mono truncate max-w-[70%]",title:c,children:c}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("label",{htmlFor:"split-view",className:"text-[10px] uppercase tracking-wider font-bold cursor-pointer opacity-70",children:"Split View"}),(0,t.jsx)("input",{type:"checkbox",id:"split-view",checked:h,onChange:e=>m(e.target.checked),className:"toggle toggle-sm toggle-primary"})]})]}),(0,t.jsx)("div",{ref:d,className:"flex-1 overflow-auto diff-viewer-wrapper",children:y&&!g?(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-4 text-center p-4",children:[(0,t.jsx)("i",{className:"iconoir-warning-triangle text-[40px] 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(v/1024),"KB, ~",w," changed lines) and may freeze your browser if rendered."]})]}),(0,t.jsx)("button",{className:"btn btn-outline",onClick:()=>p(c),children:"Show Diff Anyway"})]}):(0,t.jsx)(a.GroupedDiffViewer,{oldValue:o.left||"",newValue:o.right||"",splitView:h,useDarkTheme:"dark"===b})})]})}e.s(["DiffView",()=>c])},89413,e=>{"use strict";var t=e.i(43476),i=e.i(71645),s=e.i(63178),l=e.i(33794),r=e.i(75157),a=e.i(87724),n=e.i(30660),c=e.i(28132);function o({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 f({node:e,selectedFile:i,expandedFolders:s,onToggleFolder:l,onSelectFile:a,depth:n=0}){let c=Array.from(e.children.values()).sort((e,t)=>{let i=e.children.size>0,s=t.children.size>0;return i&&!s?-1:!i&&s?1:e.name.localeCompare(t.name)});return(0,t.jsx)(t.Fragment,{children:c.map(e=>{if(e.children.size>0){let r=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*n+8}px`},onClick:()=>l(e.path),title:e.path,children:[(0,t.jsx)("span",{className:"text-[10px] opacity-70",children:r?"▼":"▶"}),(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})]}),r&&(0,t.jsx)(f,{node:e,selectedFile:i,expandedFolders:s,onToggleFolder:l,onSelectFile:a,depth:n+1})]},e.path)}if(!e.file)return null;let c=e.file;return(0,t.jsxs)("div",{className:(0,r.cn)("flex items-center gap-2 px-2 py-1.5 text-xs rounded cursor-pointer hover:bg-base-200 transition-colors",i===c.path&&"bg-base-200 font-medium"),style:{paddingLeft:`${12*n+8}px`},onClick:()=>a(c.path),title:c.path,children:[(0,t.jsx)(o,{status:c.status}),(0,t.jsx)("span",{className:"truncate flex-1 font-mono",children:e.name})]},e.path)})})}var d=e.i(942);function u({repoPath:e,commitHash:c,fromCommitHash:o,toCommitHash:f,filePath:d,splitView:u}){let{data:h,isLoading:m}=(0,l.useCommitFileDiff)(e,d,{commitHash:c,fromCommitHash:o,toCommitHash:f}),{resolvedTheme:x}=(0,s.useTheme)(),p=`${c??""}:${o??""}:${f??""}:${d}`,[g,b]=(0,i.useState)(null),j=g===p,v=(0,i.useRef)(null);if((0,i.useEffect)(()=>{let e=requestAnimationFrame(()=>{v.current?.scrollTo({top:0,left:0})});return()=>cancelAnimationFrame(e)},[d,c,o,f,m]),m)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(!h)return(0,t.jsx)("div",{className:"flex items-center justify-center p-8 opacity-50",children:"No diff available"});if((0,r.isImageFile)(d))return(0,t.jsx)(n.ImageDiffView,{filePath:d,imageDiff:h.imageDiff});if((0,r.isFileBinary)(d,h.left,h.right))return(0,t.jsx)("div",{className:"flex items-center justify-center p-8 opacity-50",children:"Binary file - diff not available"});let w=h.diff||"",y=w.length,N=(0,r.getChangedLineCountFromDiff)(w);return(y>102400||N>3e3)&&!j?(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(y/1024),"KB, ~",N," changed lines) and may freeze your browser if rendered."]})]}),(0,t.jsx)("button",{className:"btn btn-outline",onClick:()=>b(p),children:"Show Diff Anyway"})]}):(0,t.jsx)("div",{ref:v,className:"overflow-auto h-full",children:(0,t.jsx)(a.GroupedDiffViewer,{oldValue:h.left||"",newValue:h.right||"",splitView:u,useDarkTheme:"dark"===x})})}function h({repoPath:e,commitHash:s=null,fromCommitHash:a=null,toCommitHash:n=null,showWorkingTreeWhenNoCommit:o=!1,fileListWidthClass:h="w-64"}){let m=!!a&&!!n,x=o&&!s&&!a&&!n,p=x?"working-tree":m?`${a}..${n}`:s??"none",{data:g,isLoading:b}=(0,l.useCommitDiff)(e,{commitHash:s,fromCommitHash:a,toCommitHash:n}),{data:j,isLoading:v}=(0,l.useGitStatus)(e),w=j?.files,[y,N]=(0,i.useState)({}),[S,D]=(0,i.useState)(!1),[F,k]=(0,i.useState)({}),E=(0,i.useMemo)(()=>{if(!w||0===w.length)return[];let e=new Map;for(let t of w){let i=[(t.index||"").trim(),(t.working_dir||"").trim()].find(e=>["A","D","R","M"].includes(e))||"M";e.set(t.path,{path:t.path,additions:0,deletions:0,status:i})}return Array.from(e.values())},[w]),C=(0,i.useMemo)(()=>x?E:g?.files??[],[x,E,g?.files]),M=(0,i.useMemo)(()=>(function(e){let t={name:"",path:"",children:new Map};for(let i of e){let e=i.path.split("/").filter(Boolean),s=t,l="";for(let t=0;t<e.length;t++){let r=e[t];l=l?`${l}/${r}`:r,s.children.has(r)||s.children.set(r,{name:r,path:l,children:new Map}),s=s.children.get(r),t===e.length-1&&(s.file=i)}}return t})(C),[C]),T=(0,i.useMemo)(()=>(function e(t){let i=[];return Array.from(t.children.values()).forEach(t=>{t.children.size>0&&(i.push(t.path),i.push(...e(t)))}),i})(M),[M]),A=(0,i.useMemo)(()=>F[p]??new Set,[F,p]),V="git-web:diff-view-split",[O,P]=(0,i.useState)(()=>{try{let e=localStorage.getItem(V);return null===e||JSON.parse(e)}catch(e){return console.error("Failed to load split view preference:",e),!0}}),I=(0,i.useRef)(null),$=(0,i.useMemo)(()=>{if(0===C.length)return null;let e=y[p]??null;return e&&C.some(t=>t.path===e)?e:C[0].path},[C,y,p]),R=(0,i.useCallback)(e=>{N(t=>(t[p]??null)===e?t:{...t,[p]:e})},[p]);(0,i.useEffect)(()=>{try{localStorage.setItem(V,JSON.stringify(O))}catch(e){console.error("Failed to save split view preference:",e)}},[O]),(0,i.useEffect)(()=>{if(!$)return;let e=requestAnimationFrame(()=>{I.current?.scrollTo({top:0,left:0})});return()=>cancelAnimationFrame(e)},[$,p]),(0,c.useEscapeDismiss)(S,()=>D(!1)),(0,i.useEffect)(()=>{if(!S)return;let e=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}},[S]);let B=(0,i.useMemo)(()=>{let e=new Set;return T.forEach(t=>{A.has(t)||e.add(t)}),$&&(function(e){let t=e.split("/").filter(Boolean),i=[];for(let e=1;e<t.length;e++)i.push(t.slice(0,e).join("/"));return i})($).forEach(t=>e.add(t)),e},[T,A,$]),_=(0,i.useCallback)(e=>{k(t=>{let i=new Set(t[p]??new Set);return i.has(e)?i.delete(e):i.add(e),{...t,[p]:i}})},[p]);return(x?v:b)?(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"})}):0===C.length?(0,t.jsx)("div",{className:"flex items-center justify-center p-8 h-full opacity-50",children:x?"No uncommitted local changes":m?"No changes in selected commit range":"No changes in this commit"}):(0,t.jsxs)("div",{className:(0,r.cn)("flex h-full",S&&"fixed inset-0 z-[80] h-auto bg-base-100 shadow-2xl"),children:[(0,t.jsxs)("div",{className:(0,r.cn)(h,"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:[C.length," file",1!==C.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)(f,{node:M,selectedFile:$,expandedFolders:B,onToggleFolder:_,onSelectFile:R})})})]}),(0,t.jsx)("div",{className:"flex-1 overflow-hidden",children:$?(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:$}),(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:O,onChange:e=>P(e.target.checked),className:"toggle toggle-xs toggle-primary"}),(0,t.jsx)("button",{type:"button",className:"btn btn-ghost btn-xs btn-square",onClick:()=>D(e=>!e),"aria-label":S?"Exit full-page diff view":"Expand diff viewer to full page",title:S?"Exit full-page diff view":"Expand diff viewer to full page",children:(0,t.jsx)("i",{className:(0,r.cn)(S?"iconoir-collapse":"iconoir-maximize","text-[14px]"),"aria-hidden":"true"})})]})]}),(0,t.jsx)("div",{ref:I,className:"flex-1 overflow-auto diff-viewer-wrapper",children:x?(0,t.jsx)(d.DiffView,{repoPath:e,filePath:$}):(0,t.jsx)(u,{repoPath:e,commitHash:s,fromCommitHash:a,toCommitHash:n,filePath:$,splitView:O},`${p}:${$}`)})]}):(0,t.jsx)("div",{className:"flex items-center justify-center h-full opacity-70 text-sm",children:"Select a file to view changes"})})]})}e.s(["CommitChangesView",()=>h],89413)}]);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,5951,e=>{"use strict";var t=e.i(43476),a=e.i(71645),r=e.i(75254);let s=(0,r.default)("folder-git-2",[["path",{d:"M18 19a5 5 0 0 1-5-5v8",key:"sz5oeg"}],["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]);var l=e.i(7233),i=e.i(37727),n=e.i(63059),o=e.i(64659);let d=(0,r.default)("folder-cog",[["path",{d:"M10.3 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.98a2 2 0 0 1 1.69.9l.66 1.2A2 2 0 0 0 12 6h8a2 2 0 0 1 2 2v3.3",key:"128dxu"}],["path",{d:"m14.305 19.53.923-.382",key:"3m78fa"}],["path",{d:"m15.228 16.852-.923-.383",key:"npixar"}],["path",{d:"m16.852 15.228-.383-.923",key:"5xggr7"}],["path",{d:"m16.852 20.772-.383.924",key:"dpfhf9"}],["path",{d:"m19.148 15.228.383-.923",key:"1reyyz"}],["path",{d:"m19.53 21.696-.382-.924",key:"1goivc"}],["path",{d:"m20.772 16.852.924-.383",key:"htqkph"}],["path",{d:"m20.772 19.148.924.383",key:"9w9pjp"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]]),c=(0,r.default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);var x=e.i(27612),m=e.i(65261);let h=(0,r.default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var u=e.i(78917);let p=(0,r.default)("cloud-download",[["path",{d:"M12 13v8l-4-4",key:"1f5nwf"}],["path",{d:"m12 21 4-4",key:"1lfcce"}],["path",{d:"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284",key:"ui1hmy"}]]),b=(0,r.default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]),f=(0,r.default)("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]),g=(0,r.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),v=(0,r.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]);var y=e.i(55716),k=e.i(95187);let w=(0,k.createServerReference)("40b67eda0795e9a0247fd06f52d2fdc28ce3f1ee53",k.callServer,void 0,k.findSourceMapURL,"checkDirectoryAccessible"),N=(0,k.createServerReference)("408eeaba46545e12ea20d609bc4f1260ff905d33ad",k.callServer,void 0,k.findSourceMapURL,"listDirectories");var j=e.i(92656),S=e.i(27025),C=e.i(71689);let R=(0,r.default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);var E=e.i(81016),M=e.i(43733);function D({title:e,initialPath:r,onSelect:s,onCancel:l,checkRepo:i}){let[n,o]=(0,a.useState)(""),[d,c]=(0,a.useState)(""),[x,m]=(0,a.useState)([]),[h,u]=(0,a.useState)(!1),[p,b]=(0,a.useState)(null);(0,a.useEffect)(()=>{let e=!0;return(async()=>{try{let t=await (0,j.getHomeDirectory)();if(!e)return;c(t),o(r||t)}catch(t){if(console.error("Failed to resolve home directory:",t),!e)return;b("Failed to access your home directory."),o(r||"/")}})(),()=>{e=!1}},[r]),(0,a.useEffect)(()=>{if(!n)return;let e=!0;return(async()=>{u(!0),b(null);try{let t=await N(n);if(!e)return;if(0===t.length&&d&&n!==d){let t=await w(n);if(!e)return;if(!t){b(`Could not access "${n}". Showing home directory.`),o(d);return}}let a=t.map(e=>({name:e.name,path:e.path,isDirectory:e.isDirectory,isGitRepo:e.isGitRepo}));m(a)}catch(t){if(console.error(t),!e)return;if(d&&n!==d){b(`Could not access "${n}". Showing home directory.`),o(d);return}m([]),b("Failed to load directory contents")}finally{e&&u(!1)}})(),()=>{e=!1}},[n,d]);let f=(0,a.useCallback)(async e=>{if(i&&!await i(e)){b("Selected directory is not a valid git repository."),setTimeout(()=>b(null),3e3);return}await s(e)},[i,s]),g=(0,a.useCallback)(async()=>{await f(n)},[n,f]);return(0,M.useDialogKeyboardShortcuts)({onConfirm:g,onDismiss:l,canConfirm:!!n}),(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm p-4",children:(0,t.jsxs)("div",{className:"bg-base-200 rounded-lg shadow-xl w-full max-w-3xl h-[80vh] flex flex-col",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between p-4 border-b border-base-300",children:[(0,t.jsxs)("h2",{className:"text-xl font-bold flex items-center gap-2",children:[(0,t.jsx)(S.Folder,{className:"w-5 h-5"}),e||"Browse Local Repository"]}),(0,t.jsx)("button",{onClick:l,className:"btn btn-sm btn-ghost btn-circle",children:"✕"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-base-300",children:[(0,t.jsx)("button",{onClick:()=>{let e=(0,E.getDirName)(n);e&&e!==n&&o(e)},className:"btn btn-sm btn-square btn-ghost",title:"Go Up",disabled:"/"===n||!n,children:(0,t.jsx)(C.ArrowLeft,{className:"w-4 h-4"})}),(0,t.jsx)("div",{className:"flex-1 overflow-x-auto whitespace-nowrap px-2 font-mono text-sm",children:n}),(0,t.jsx)("button",{onClick:g,className:"btn btn-sm btn-primary",children:"Select Current Folder"})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto p-2",children:h?(0,t.jsx)("div",{className:"flex justify-center items-center h-full",children:(0,t.jsx)("span",{className:"loading loading-spinner loading-lg"})}):p?(0,t.jsx)("div",{className:"alert alert-error",children:p}):0===x.length?(0,t.jsx)("div",{className:"text-center text-base-content/50 mt-10",children:"Empty directory"}):(0,t.jsx)("div",{className:"grid grid-cols-1 gap-1",children:x.map(e=>(0,t.jsxs)("div",{className:"group flex items-center justify-between p-2 hover:bg-base-100 rounded-md cursor-pointer transition-colors",onClick:()=>{o(e.path)},children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 overflow-hidden",children:[(0,t.jsx)(S.Folder,{className:`w-5 h-5 ${e.isGitRepo?"text-primary":"text-base-content/70"}`}),(0,t.jsx)("span",{className:"truncate",children:e.name}),e.isGitRepo&&(0,t.jsx)("span",{className:"px-1.5 py-0.5 rounded text-[10px] font-bold bg-slate-200 text-slate-600 border border-slate-300 uppercase tracking-wide",children:"GIT"})]}),e.isGitRepo&&(0,t.jsxs)("button",{className:"flex items-center justify-center p-1.5 rounded-md bg-primary/10 text-primary hover:bg-primary hover:text-white transition-colors",onClick:t=>{t.stopPropagation(),f(e.path)},title:`Select ${e.name}`,children:[(0,t.jsx)(R,{className:"h-[18px] w-[18px]"}),(0,t.jsx)("span",{className:"sr-only",children:"Select"})]})]},e.path))})}),(0,t.jsx)("div",{className:"p-3 border-t border-base-300 text-xs text-base-content/50 text-center",children:'Navigate to a folder and click "Select Current Folder" to choose it.'})]})})}let L=(0,k.createServerReference)("4012caea17b47eb1a3e66525da9f605ed00831eaa1",k.callServer,void 0,k.findSourceMapURL,"checkIsGitRepo"),P=(0,k.createServerReference)("40c6812f9b7117d479f53a38ff9c4d93ee2a36e441",k.callServer,void 0,k.findSourceMapURL,"getBranches"),$=(0,k.createServerReference)("60e1900f3b162d274440b6e9dcda3bc04e456c4990",k.callServer,void 0,k.findSourceMapURL,"checkoutBranch");var T=e.i(57112);let A=(0,k.createServerReference)("7f426225d430b57a96d465f4956afee53ef35ce925",k.callServer,void 0,k.findSourceMapURL,"getStartupScript"),_=(0,k.createServerReference)("7fe78908212d15cbd04c86a31bcc76c5c4e10a17bf",k.callServer,void 0,k.findSourceMapURL,"getDefaultDevServerScript"),U=(0,k.createServerReference)("7fb8cdef5fb143cc0be7e0888fcdae8e1214255963",k.callServer,void 0,k.findSourceMapURL,"listRepoFiles"),F=(0,k.createServerReference)("401cefb9f2f0230875166691a524fe6a1c9457b10f",k.callServer,void 0,k.findSourceMapURL,"checkAgentCliInstalled"),I=(0,k.createServerReference)("40a380b3bfd1d08852776603d9b824ccca68aa3497",k.callServer,void 0,k.findSourceMapURL,"installAgentCli"),B=(0,k.createServerReference)("6034f4cb6f9c641315b0b93c4ad6d19cd435b40c2c",k.callServer,void 0,k.findSourceMapURL,"cloneRemoteRepository"),G=(0,k.createServerReference)("4041027bcd06f365363767978a14ebe8d79dc833bb",k.callServer,void 0,k.findSourceMapURL,"resolveRepositoryByName"),K=(0,k.createServerReference)("709d3e1159b28d903cbd543d10dd494a03b2de82fa",k.callServer,void 0,k.findSourceMapURL,"createSession"),H=(0,k.createServerReference)("4020240f2dbe1fdeee222fde06319090eb0534b5d1",k.callServer,void 0,k.findSourceMapURL,"deleteSession"),O=(0,k.createServerReference)("40f34f53981ef162b3c211fe00853beb380e52eacb",k.callServer,void 0,k.findSourceMapURL,"getSessionPrefillContext");var z=e.i(21971);let q=(0,k.createServerReference)("60b2d1ea1848faa022602fefbf20f5e82112955f45",k.callServer,void 0,k.findSourceMapURL,"saveSessionLaunchContext"),V=(0,k.createServerReference)("40d8dd2f28cb52127d582a5fd4b10a0efe2f938d8f",k.callServer,void 0,k.findSourceMapURL,"deleteDraft"),X=(0,k.createServerReference)("401556bf39c72550b87c239401589366f61872b689",k.callServer,void 0,k.findSourceMapURL,"listDrafts"),W=(0,k.createServerReference)("40ab3155e870c7e311a3bfe4c18a6dc8c31ca04cee",k.callServer,void 0,k.findSourceMapURL,"saveDraft");var Y=e.i(2480),J=e.i(87832);let Q=(0,k.createServerReference)("60752430c56f23b5025818800618a799c078518f98",k.callServer,void 0,k.findSourceMapURL,"updateRepoSettings");var Z=e.i(51390),ee=e.i(56385),et=e.i(18566);let ea=[{highlight:"#dce4ff",secondary:"#c7d2fe",baseStart:"#f8fafc",baseEnd:"#f3f6ff",anchorA:[12,10],anchorB:[86,84]},{highlight:"#dcfce7",secondary:"#bbf7d0",baseStart:"#f8fafc",baseEnd:"#effcf4",anchorA:[86,14],anchorB:[14,84]},{highlight:"#fae8ff",secondary:"#f5d0fe",baseStart:"#f8fafc",baseEnd:"#fbf2ff",anchorA:[50,8],anchorB:[50,90]},{highlight:"#ffedd5",secondary:"#fed7aa",baseStart:"#f8fafc",baseEnd:"#fff7ed",anchorA:[35,35],anchorB:[84,86]}];function er(e,t,a){return Math.max(t,Math.min(a,e))}function es(e,t){let a=e.replace("#",""),r=Number.parseInt(3===a.length?a.split("").map(e=>`${e}${e}`).join(""):a,16);return`rgba(${r>>16&255}, ${r>>8&255}, ${255&r}, ${er(t,0,1)})`}function el(e){return[er(e[0],0,100),er(e[1],0,100)]}var ei=e.i(63671),en=e.i(64100),eo=e.i(57688),ed=e.i(74216);let ec="npm install",ex="npm run dev",em=["auto","light","dark"];function eh(e){if("github"===e.type)return`GitHub - ${e.username}`;let t=e.serverUrl;try{t=new URL(e.serverUrl).host}catch{}return`GitLab - ${e.username} @ ${t}`}let eu="viba:new-session-mode",ep={codex:"codex"},eb={codex:"Codex CLI"};function ef({mode:e="home",repoPath:r=null,fromRepoName:k=null,prefillFromSession:w=null,predefinedPrompts:N=[]}){let[j,S]=(0,a.useState)(!1),[C,R]=(0,a.useState)(!1),[er,ef]=(0,a.useState)(!1),[eg,ev]=(0,a.useState)(!1),[ey,ek]=(0,a.useState)(""),[ew,eN]=(0,a.useState)("auto"),[ej,eS]=(0,a.useState)(null),[eC,eR]=(0,a.useState)(!1),[eE,eM]=(0,a.useState)(!1),[eD,eL]=(0,a.useState)("auto"),[eP,e$]=(0,a.useState)(!1),[eT,eA]=(0,a.useState)(null),[e_,eU]=(0,a.useState)(null),[eF,eI]=(0,a.useState)(null),[eB,eG]=(0,a.useState)("auto"),[eK,eH]=(0,a.useState)(ec),[eO,ez]=(0,a.useState)(ex),[eq,eV]=(0,a.useState)([]),eX=(0,et.useRouter)(),[eW,eY]=(0,a.useState)([]),[eJ,eQ]=(0,a.useState)(""),[eZ,e0]=(0,a.useState)([]),[e1,e2]=(0,a.useState)([]),[e3,e4]=(0,a.useState)([]),[e5,e6]=(0,a.useState)([]),[e7,e8]=(0,a.useState)(""),[e9,te]=(0,a.useState)(""),[tt,ta]=(0,a.useState)(!1),[tr,ts]=(0,a.useState)(""),[tl,ti]=(0,a.useState)("fast"),[tn,to]=(0,a.useState)([]),[td,tc]=(0,a.useState)(!1),[tx,tm]=(0,a.useState)(""),[th,tu]=(0,a.useState)([]),[tp,tb]=(0,a.useState)(!1),[tf,tg]=(0,a.useState)(!1),[tv,ty]=(0,a.useState)(null),[tk,tw]=(0,a.useState)(null),[tN,tj]=(0,a.useState)(!1),[tS,tC]=(0,a.useState)(!1),[tR,tE]=(0,a.useState)(!1),[tM,tD]=(0,a.useState)(null),[tL,tP]=(0,a.useState)(!1),[t$,tT]=(0,a.useState)(null),[tA,t_]=(0,a.useState)(""),[tU,tF]=(0,a.useState)(""),[tI,tB]=(0,a.useState)(!1),[tG,tK]=(0,a.useState)(null),[tH,tO]=(0,a.useState)(null),[tz,tq]=(0,a.useState)(!1),[tV,tX]=(0,a.useState)(!1),tW=(0,a.useRef)(null),[tY,tJ]=(0,a.useState)(!1),tQ=(0,a.useRef)(!1),tZ=(0,a.useCallback)(()=>{(0,ei.notifySessionsUpdated)()},[]),t0=(0,a.useCallback)(e=>{tQ.current=!0,window.location.assign(`/session/${e}`)},[]),t1=(0,a.useCallback)(async(e=e_)=>{try{let[t,a,r,s]=await Promise.all([(0,z.listSessions)(),e?(0,z.listSessions)(e):Promise.resolve([]),X(),e?X(e):Promise.resolve([])]);e2(t),e6(r),e&&(e0(a),e4(s))}catch(e){console.error("Failed to refresh sessions and drafts",e)}},[e_]),t2=(0,a.useCallback)((e,t=eq)=>{let a=eT?.repoSettings?.[e];if(!a)return"auto";if(a.credentialId)return a.credentialId;let r=a.credentialPreference;if("github"===r||"gitlab"===r){let e=t.find(e=>e.type===r);if(e)return e.id}return"auto"},[eT,eq]),t3=(0,a.useCallback)(e=>{let t=eT?.repoSettings?.[e];if(!t)return"Auto";if(t.credentialId){let e=eq.find(e=>e.id===t.credentialId);return e?eh(e):"Selected credential"}return"github"===t.credentialPreference?"GitHub (legacy)":"gitlab"===t.credentialPreference?"GitLab (legacy)":"Auto"},[eT,eq]),t4=(0,a.useCallback)(()=>{tV||(ef(!1),eI(null),eG("auto"),eH(ec),ez(ex),tO(null),tq(!1))},[tV]),t5=(0,a.useCallback)(()=>{ev(!0),ek(""),eN("auto"),eS(null),eM(!0),(async()=>{try{let e=await (0,ee.listCredentials)();if(!e.success)return void eS(e.error);eV(e.credentials)}catch(e){console.error(e),eS("Failed to load credentials.")}finally{eM(!1)}})()},[]),t6=(0,a.useCallback)(()=>{eC||(ev(!1),ek(""),eN("auto"),eS(null),eM(!1))},[eC]);(0,a.useEffect)(()=>{(async()=>{try{let[e,t,a,r]=await Promise.all([(0,Y.getConfig)(),(0,z.listSessions)(),X(),(0,ee.listCredentials)()]);eA(e),e2(t),e6(a),r.success&&eV(r.credentials)}catch(e){console.error("Failed to load data",e)}finally{tC(!0)}})()},[]),(0,a.useEffect)(()=>{try{let e=window.localStorage.getItem(en.THEME_MODE_STORAGE_KEY);if("light"===e||"dark"===e||"auto"===e)return void eL(e)}catch{}eL("auto")},[]),(0,a.useEffect)(()=>{let e=window.matchMedia("(prefers-color-scheme: dark)"),t=()=>{let t=(0,en.resolveShouldUseDarkTheme)(eD,e.matches),a=t?en.TERMINAL_THEME_DARK:en.TERMINAL_THEME_LIGHT;document.documentElement.classList.toggle("dark",t),document.documentElement.dataset.themeMode=eD,e$(t),(0,en.applyThemeToTerminalIframe)(tW.current,a)};t();try{window.localStorage.setItem(en.THEME_MODE_STORAGE_KEY,eD)}catch{}if(window.dispatchEvent(new Event(en.THEME_REFRESH_EVENT)),"auto"!==eD)return;let a=()=>{t()};return"function"==typeof e.addEventListener?(e.addEventListener("change",a),()=>{e.removeEventListener("change",a)}):(e.addListener(a),()=>{e.removeListener(a)})},[eD]),(0,a.useEffect)(()=>{if("new"===e)try{let e=window.localStorage.getItem(eu);("fast"===e||"plan"===e)&&ti(e)}catch{}},[e]),(0,a.useEffect)(()=>{let t=()=>{t1("new"===e?e_:null)},a=e=>{e.key===ei.SESSIONS_UPDATED_STORAGE_KEY&&t()},r=()=>{t()},s=()=>{t()};return window.addEventListener("storage",a),window.addEventListener("focus",r),window.addEventListener(ei.SESSIONS_UPDATED_EVENT,s),()=>{window.removeEventListener("storage",a),window.removeEventListener("focus",r),window.removeEventListener(ei.SESSIONS_UPDATED_EVENT,s)}},[e,t1,e_]);let t7=async e=>{eU(e),ay([]),await at(e),await ar(e),await t1(e)},t8=async t=>{tg(!0),tw(null);try{if(!await L(t))return tw("Selected directory is not a valid git repository."),!1;let a=[...(eT||await (0,Y.getConfig)()).recentRepos];a.includes(t)?a=[t,...a.filter(e=>e!==t)]:a.unshift(t);let r=await (0,J.updateConfig)({recentRepos:a});if(eA(r),S(!1),"home"===e)return eX.push(`/new?repo=${encodeURIComponent(t)}`),!0;return await t7(t),!0}catch(e){return console.error(e),tw("Failed to open repository."),!1}finally{tg(!1)}},t9=async()=>{if(eC)return;let e=ey.trim();if(!e)return void eS("Please enter a remote repository URL.");eR(!0),eS(null),tw(null);try{let t=await B(e,"auto"===ew?null:ew);if(!t.success||!t.repoPath)return void eS(t.error||"Failed to clone repository.");if(!await t8(t.repoPath))return void eS("Repository was cloned, but failed to open it.");ev(!1),ek(""),eN("auto"),eS(null)}catch(e){console.error(e),eS("Failed to clone repository.")}finally{eR(!1)}},ae=async t=>{if("new"!==e)return;let a=t.target.value;if(!a||a===e_||!await t8(a)||tQ.current)return;let r=new URLSearchParams;r.set("repo",a),w&&r.set("prefillFromSession",w),eX.replace(`/new?${r.toString()}`)};(0,a.useEffect)(()=>{if("new"===e){if(!r){eU(null),e0([]),eY([]),eQ("");return}r!==e_&&t8(r)}},[e,r,e_]),(0,a.useEffect)(()=>{"new"===e&&e_&&tm(e=>e||e_)},[e,e_]),(0,a.useEffect)(()=>{if("new"!==e)return;if(r)return void tj(!1);let t=k?.trim()??"";if(!t)return void tj(!1);let a=!1;return(async()=>{tw(null),tj(!0);let e=await G(t);if(a)return;if(!e.success){tw(e.error||"Failed to search repositories."),tj(!1);return}if(!e.repoPath){tw(`Could not find a matching repository for "${t}".`),tj(!1);return}let r=new URLSearchParams;r.set("repo",e.repoPath),w&&r.set("prefillFromSession",w),tQ.current||eX.replace(`/new?${r.toString()}`)})(),()=>{a=!0}},[k,e,w,r,eX]),(0,a.useEffect)(()=>{tb(!1),tu([])},[w]),(0,a.useEffect)(()=>{if("new"!==e||!e_||!w||tp)return;let t=!1;return(async()=>{let e=await O(w);if(t)return;if(!e.success||!e.context){e.error&&tw(e.error),tb(!0);return}let a=e.context;a.repoPath!==e_||(ts(a.initialMessage||""),tu(a.attachmentPaths||[]),ta(!0)),tb(!0)})(),()=>{t=!0}},[tp,e,w,e_]);let at=async e=>{let t=eT||await (0,Y.getConfig)();eT||eA(t);let a=t.repoSettings[e]||{},r=a.startupScript,s=a.devServerScript;null!=r?e8(r):e8(await A(e)),null!=s?te(s):te(await _(e))},aa=async e=>{eA(await (0,J.updateConfig)({defaultRoot:e})),R(!1)},ar=async e=>{try{let t=await P(e);eY(t);let a=((eT||await (0,Y.getConfig)()).repoSettings[e]||{}).lastBranch,r=t.find(e=>e.current)?.name;if(a&&t.some(e=>e.name===a)){if(eQ(a),a!==r)try{await $(e,a);let t=await P(e);eY(t)}catch(e){console.warn("Could not auto-checkout to remembered branch",e),r&&eQ(r)}}else r&&eQ(r)}catch(e){console.error("Failed to load branches",e),tw("Failed to load branches.")}},as=async e=>{let t=e.target.value;if(e_){tg(!0);try{await $(e_,t),eQ(t);let e=await Q(e_,{lastBranch:t});eA(e);let a=await P(e_);eY(a)}catch{tw(`Failed to checkout branch ${t}`)}finally{tg(!1)}}},al=async e=>{e8(e.target.value)},ai=async()=>{e_&&eA(await Q(e_,{startupScript:e7}))},an=async e=>{e_&&eA(await Q(e_,{devServerScript:e}))},ao=async()=>{await an(e9)},ad=(0,a.useCallback)(e=>{0!==e.length&&to(t=>Array.from(new Set([...t,...e.map(e=>e.trim()).filter(Boolean)])))},[]),[ac,ax]=(0,a.useState)(!1),[am,ah]=(0,a.useState)([]),[,au]=(0,a.useState)(""),[ap,ab]=(0,a.useState)(0),[af,ag]=(0,a.useState)(0),[av,ay]=(0,a.useState)([]),ak=(0,a.useMemo)(()=>tn.map(e=>(0,E.getBaseName)(e)),[tn]),aw=(0,a.useMemo)(()=>th.map(e=>(0,E.getBaseName)(e)),[th]),aN="new"===e&&N.length>0,aj=(0,a.useCallback)(e=>{ts(e),ab(e.length),ax(!1)},[]),aS=async e=>{let t=e.target.value,a=e.target.selectionStart;ts(t),ab(a);let r=t.substring(0,a),s=r.lastIndexOf("@");if(-1!==s){let e=r.substring(s+1);if(!/\s/.test(e)){if(au(e),ax(!0),e_){var l;let t,a=av;0===av.length&&ay(a=await U(e_)),l=a,t=e.toLowerCase(),ah([...[...ak,...aw].filter(e=>e.toLowerCase().includes(t)),...l.filter(e=>e.toLowerCase().includes(t)).slice(0,20)]),ag(0)}return}}ax(!1)},aC=e=>{let t=tr.substring(0,ap).lastIndexOf("@");if(-1!==t){let a=tr.substring(0,t),r=tr.substring(ap);ts(`${a}@${e} ${r}`),ax(!1)}},aR=async(e,t)=>{if(e.stopPropagation(),eT){let e=eT.recentRepos.filter(e=>e!==t);eA(await (0,J.updateConfig)({recentRepos:e}))}},aE=async(e,t)=>{e.stopPropagation();let a=eT?.repoSettings?.[t];eI(t),eG(t2(t)),eH(a?.startupScript?.trim()?a.startupScript:ec),ez(a?.devServerScript?.trim()?a.devServerScript:ex),tO(null),ef(!0),tq(!0);try{let e=await (0,ee.listCredentials)();e.success?(eV(e.credentials),eG(t2(t,e.credentials))):(tO(e.error),eV([]))}catch(e){console.error(e),tO("Failed to load credentials."),eV([])}finally{tq(!1)}},aM=async()=>{if(!eF)return;let e="auto"===eB?null:eB,t=eK.trim()||ec,a=eO.trim()||ex;if(e&&!eq.some(t=>t.id===e))return void tO("Selected credential no longer exists. Please choose another credential.");tX(!0),tO(null);try{let r=await Q(eF,{credentialId:e,startupScript:t,devServerScript:a,credentialPreference:void 0});eA(r),t4()}catch(e){console.error(e),tO("Failed to save repository settings.")}finally{tX(!1)}},aD=(0,a.useCallback)(()=>{if(!tL||!tA||!tW.current)return;let e=tW.current,t=(a=0)=>{if(a>40)return void tK("Timed out while waiting for terminal to initialize.");try{let r=e.contentWindow;if(r?.term){let e=(0,en.resolveShouldUseDarkTheme)(eD,window.matchMedia("(prefers-color-scheme: dark)").matches);(0,en.applyThemeToTerminalWindow)(r,e?en.TERMINAL_THEME_DARK:en.TERMINAL_THEME_LIGHT),r.term.paste(`${tA}\r`),tB(!0),tK(null),r.focus();return}setTimeout(()=>t(a+1),300)}catch(e){console.error("Failed to inject login command into terminal iframe:",e),tK("Could not access ttyd terminal. Ensure ttyd is running and try again.")}};setTimeout(()=>t(),500)},[tL,tA,eD]),aL=(0,a.useCallback)(async e=>{try{let t=await (0,Z.listAgentApiCredentials)();if(!t.success)return!1;return t.credentials.some(t=>t.agent===e)}catch{return!1}},[]),aP=(0,a.useCallback)(async()=>{let e="codex",t=await F(e);if(!t.success)return tw(t.error||`Failed to verify ${eb[e]} installation status.`),!1;if(t.installed)return!0;tE(!0),tD(e),tw(null);let a=await I(e);if(tE(!1),tD(null),!a.success)return tw(a.error||`Failed to install ${eb[e]}.`),!1;let r=await (0,T.startTtydProcess)();return r.success?!!await aL(e)||(tT(e),t_(ep[e]),tB(!1),tK(null),tP(!0),!1):(tw(r.error||"Failed to start ttyd"),!1)},[aL]),a$=async(e={})=>{if(e_){tg(!0),tw(null);try{if(!e.skipAgentSetup&&!await aP())return void tg(!1);let t=e9.trim();!t&&(t=await _(e_))&&te(t),await ai(),await an(t);let a=await (0,T.startTtydProcess)();if(!a.success){tw(a.error||"Failed to start ttyd"),tg(!1);return}let r=function(e){let t=e.split(/\r?\n/).map(e=>e.trim()).find(e=>e.length>0);if(t)return t.slice(0,120)}(tr),s=await K(e_,eJ||"main",{agent:"codex",model:"",title:r,devServerScript:t||void 0});if(s.success&&s.sessionName&&s.worktreePath&&s.branchName){let e=Array.from(new Set([...tn,...th].map(e=>e.trim()).filter(Boolean))),t=new Map;for(let a of e){let e=(0,E.getBaseName)(a).trim();e&&(t.has(e)||t.set(e,a))}let a=Array.from(t.keys()),l=tr.trim(),i=l;i=i.replace(/@(\S+)/g,(e,a)=>{let r=t.get(a);return r||a});let n=await q(s.sessionName,{title:r,initialMessage:i||void 0,rawInitialMessage:l||void 0,startupScript:e7||void 0,attachmentPaths:e,attachmentNames:a,agentProvider:"codex",model:"",sessionMode:tl});if(!n.success){tw(n.error||"Failed to save session context"),tg(!1);return}tZ(),t0(s.sessionName);return}tw(s.error||"Failed to create session worktree"),tg(!1)}catch(e){console.error(e),tw("Failed to start session"),tg(!1)}}},aT=()=>{a$()},aA=async()=>{if(e_){tJ(!0),tw(null);try{let e=Date.now().toString(),t=tr.split("\n")[0].trim()||"Untitled Draft",a={id:e,repoPath:e_,branchName:eJ,message:tr,attachmentPaths:[...tn,...th],agentProvider:"codex",model:"",timestamp:new Date().toISOString(),title:t,startupScript:e7,devServerScript:e9,sessionMode:tl},r=await W(a);r.success?await t1(e_):tw(r.error||"Failed to save draft")}catch(e){console.error(e),tw("Failed to save draft")}finally{tJ(!1)}}},a_=async e=>{ts(e.message),to(e.attachmentPaths),tu([]),eQ(e.branchName),e8(e.startupScript||""),te(e.devServerScript||""),ti(e.sessionMode||"fast"),await aU(e.id)},aU=async e=>{try{await V(e),await t1(e_)}catch(e){console.error(e)}},aF=(0,a.useCallback)(()=>{tP(!1),tT(null),t_(""),tB(!1),tK(null)},[]),aI=async()=>{aF(),await a$({skipAgentSetup:!0})};(0,M.useDialogKeyboardShortcuts)({enabled:"new"===e&&tL&&!!t$,onConfirm:aI,onDismiss:aF,canConfirm:!tf}),(0,M.useDialogKeyboardShortcuts)({enabled:"home"===e&&er&&!!eF,onConfirm:aM,onDismiss:t4,canConfirm:!tV}),(0,M.useDialogKeyboardShortcuts)({enabled:"home"===e&&eg,onConfirm:t9,onDismiss:t6,canConfirm:!eC&&ey.trim().length>0&&!eE});let aB=async e=>{if(e_){tg(!0);try{let t=await (0,T.startTtydProcess)();if(!t.success){tw(t.error||"Failed to start ttyd"),tg(!1);return}t0(e.sessionName);return}catch(e){console.error(e),tw("Failed to resume session"),tg(!1)}}},aG=async e=>{if(e_&&confirm(`Delete session "${e.sessionName}"?
|
|
2
|
+
|
|
3
|
+
This will remove the worktree, branch, and session metadata.`)){ty(e.sessionName),tw(null);try{let t=await H(e.sessionName);if(!t.success)return void tw(t.error||"Failed to delete session");let a=await (0,z.listSessions)(e_);e0(a);let r=await (0,z.listSessions)();e2(r),tZ()}catch(e){console.error(e),tw("Failed to delete session")}finally{ty(null)}}},aK=(0,a.useMemo)(()=>{let e=new Map;for(let t of e1)e.set(t.repoPath,(e.get(t.repoPath)??0)+1);return e},[e1]),aH=(0,a.useMemo)(()=>{let e=new Map;for(let t of e5)e.set(t.repoPath,(e.get(t.repoPath)??0)+1);return e},[e5]),aO=(0,a.useMemo)(()=>eT?.recentRepos??[],[eT?.recentRepos]),az=(0,a.useMemo)(()=>{let e=tU.trim().toLowerCase();return e?aO.filter(t=>(0,E.getBaseName)(t).toLowerCase().includes(e)||t.toLowerCase().includes(e)):aO},[tU,aO]),aq=e_?aO.includes(e_)?aO:[e_,...aO]:aO,aV=em.indexOf(eD),aX=em[(aV+1)%em.length],aW="auto"===eD?"Auto":"light"===eD?"Bright":"Dark",aY="auto"===aX?"Auto":"light"===aX?"Bright":"Dark",aJ="auto"===eD?f:"light"===eD?g:v,aQ=(0,a.useCallback)(e=>{let t=e.currentTarget,a=t.querySelector(".repo-card-tilt");if(!a)return;let r=t.getBoundingClientRect(),s=e.clientX-r.left,l=e.clientY-r.top,i=r.width/2,n=r.height/2;i<=0||n<=0||(a.style.setProperty("--tilt-mouse-x",`${s}px`),a.style.setProperty("--tilt-mouse-y",`${l}px`),a.style.setProperty("--tilt-bg-pos-x",`${50+(s-i)/i*40}%`),a.style.setProperty("--tilt-bg-pos-y",`${50+(l-n)/n*40}%`),a.style.setProperty("--tilt-rotate-x",`${(-((l-n)/n*12)).toFixed(2)}deg`),a.style.setProperty("--tilt-rotate-y",`${((s-i)/i*12).toFixed(2)}deg`),a.style.setProperty("--tilt-scale","1.02"))},[]),aZ=(0,a.useCallback)(e=>{let t=e.currentTarget.querySelector(".repo-card-tilt");t&&(t.style.setProperty("--tilt-rotate-x","0deg"),t.style.setProperty("--tilt-rotate-y","0deg"),t.style.setProperty("--tilt-scale","1"),t.style.setProperty("--tilt-bg-pos-x","50%"),t.style.setProperty("--tilt-bg-pos-y","50%"))},[]);return(0,t.jsxs)(t.Fragment,{children:["home"===e&&(0,t.jsxs)("div",{className:"w-full max-w-7xl",children:[(0,t.jsxs)("header",{className:"relative z-10 flex flex-col gap-4 rounded-xl border border-slate-200/80 bg-white/82 px-4 py-4 shadow-[0_14px_36px_-24px_rgba(15,23,42,0.4)] backdrop-blur-md transition-colors md:flex-row md:items-center md:justify-between md:px-7 dark:border-slate-700/75 dark:bg-[#131b2b]/72 dark:shadow-[0_18px_44px_-30px_rgba(0,0,0,0.75)]",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"flex h-10 w-10 items-center justify-center rounded-xl bg-slate-100/90 shadow-sm dark:border dark:border-white/5 dark:bg-[#1e2532]",children:(0,t.jsx)(eo.default,{src:"/icon.png",alt:"Viba",width:22,height:22,className:"rounded-sm"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-xl font-semibold tracking-tight text-slate-900 dark:text-white",children:"Viba"}),(0,t.jsx)("p",{className:"text-xs text-slate-500 dark:text-slate-400",children:"AI Coding Agent Dashboard"})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsxs)("label",{className:"input input-sm flex h-10 w-full items-center gap-2 border-slate-200 bg-slate-100/90 text-slate-700 shadow-none transition-colors md:w-72 dark:border-slate-700/70 dark:bg-[#1e2532] dark:text-slate-200",children:[(0,t.jsx)(b,{className:"h-4 w-4 text-slate-400 dark:text-slate-500"}),(0,t.jsx)("input",{type:"text",className:"grow text-sm placeholder:text-slate-400 dark:placeholder:text-slate-500",placeholder:"Search repositories...",value:tU,onChange:e=>tF(e.target.value)})]}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-sm gap-2 text-slate-700 dark:text-slate-300 dark:hover:bg-white/10 dark:hover:text-white",onClick:()=>eX.push("/credentials"),title:"Manage GitHub/GitLab credentials",children:[(0,t.jsx)(m.KeyRound,{className:"h-4 w-4"}),"Credentials"]}),(0,t.jsxs)("button",{className:"btn btn-primary btn-sm gap-2",onClick:t5,children:[(0,t.jsx)(p,{className:"h-4 w-4"}),"New Repository"]}),(0,t.jsx)("button",{className:"btn btn-ghost btn-sm btn-square text-slate-700 dark:border dark:border-slate-700/60 dark:bg-[#1e2532] dark:text-slate-300 dark:hover:bg-[#252d3d] dark:hover:text-white",onClick:()=>{eL(aX)},title:`Theme mode: ${aW}. Click to switch to ${aY}.`,"aria-label":`Theme mode: ${aW}. Click to switch to ${aY}.`,children:(0,t.jsx)(aJ,{className:"h-4 w-4"})})]})]}),(0,t.jsxs)("div",{className:"relative z-10 px-1 py-5 md:py-7",children:[tk&&(0,t.jsx)("div",{className:"mb-4 rounded-xl border border-red-200 bg-red-50 px-4 py-2 text-sm text-red-700 dark:border-red-500/50 dark:bg-red-950/40 dark:text-red-200",children:tk}),tS?0===az.length?(0,t.jsxs)("div",{className:"flex h-56 flex-col items-center justify-center rounded-2xl border border-slate-200 bg-white/70 text-center dark:border-slate-700/55 dark:bg-[#141d2e]/70",children:[(0,t.jsx)("p",{className:"text-sm text-slate-500 dark:text-slate-400",children:tU.trim()?"No repositories match your search.":"No recent repositories found."}),!tU.trim()&&(0,t.jsxs)("button",{className:"btn btn-primary btn-sm mt-3 gap-2",onClick:t5,children:[(0,t.jsx)(l.Plus,{className:"h-4 w-4"}),"Add your first repository"]})]}):(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-5 md:grid-cols-2 xl:grid-cols-3",children:[az.map(e=>{let a,r,l,o,d,c,x=t3(e),m=aK.get(e)??0,u=aH.get(e)??0,p=(r=ea[(a=function(e){let t=0x811c9dc5;for(let a=0;a<e.length;a+=1)t^=e.charCodeAt(a),t=Math.imul(t,0x1000193);return t>>>0}((0,E.getBaseName)(e).trim().toLowerCase()||"repo"))%ea.length],l=[(a>>>3)%13-6,(a>>>7)%13-6],o=[(a>>>11)%13-6,(a>>>15)%13-6],d=el([r.anchorA[0]+l[0],r.anchorA[1]+l[1]]),c=el([r.anchorB[0]+o[0],r.anchorB[1]+o[1]]),{backgroundImage:`radial-gradient(circle at ${d[0]}% ${d[1]}%, ${es(r.highlight,.82)} 0%, transparent 74%), radial-gradient(circle at ${c[0]}% ${c[1]}%, ${es(r.secondary,.78)} 0%, transparent 74%), radial-gradient(circle at 50% 100%, hsla(${a%360} 82% 86% / ${.16+(a>>>20)%10/100}) 0%, transparent 78%), linear-gradient(145deg, ${r.baseStart} 0%, ${r.baseEnd} 100%)`});return(0,t.jsx)("div",{onClick:()=>t8(e),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),t8(e))},onMouseMove:aQ,onMouseLeave:aZ,role:"button",tabIndex:0,className:"repo-card-tilt-wrapper group relative h-[248px] cursor-pointer text-left transition-transform duration-200",children:(0,t.jsxs)("div",{className:"repo-card-tilt relative h-full overflow-hidden rounded-2xl border border-white/70 bg-white/55 dark:border-slate-700/40 dark:bg-[#141a25]/64 dark:hover:border-slate-600/55",style:eP?void 0:p,children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-white/38 dark:bg-[#141a25]/58"}),(0,t.jsxs)("div",{className:"repo-card-tilt-content relative flex h-full flex-col justify-between p-5",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"relative flex items-center",children:[(0,t.jsx)("div",{className:"repo-card-tilt-icon flex h-10 w-10 items-center justify-center rounded-xl bg-white/90 text-slate-700 shadow-sm dark:border dark:border-white/10 dark:bg-[#1e2532] dark:text-slate-200",children:(0,t.jsx)(s,{className:"h-5 w-5"})}),(0,t.jsxs)("div",{className:"absolute -top-2 -right-4 flex gap-1 z-10",children:[u>0&&(0,t.jsx)("span",{className:"inline-flex h-6 min-w-6 items-center justify-center rounded-full bg-blue-500 px-1.5 text-[11px] font-bold text-white shadow-sm border-2 border-white dark:border-[#141a25]",title:`${u} draft${1===u?"":"s"}`,children:u}),m>0&&(0,t.jsx)("span",{className:"inline-flex h-6 min-w-6 items-center justify-center rounded-full bg-emerald-500 px-1.5 text-[11px] font-bold text-white shadow-sm border-2 border-white dark:border-[#141a25]",title:`${m} running session${1===m?"":"s"}`,style:u>0?{marginLeft:"-0.5rem"}:{},children:m})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("button",{onClick:t=>{t.stopPropagation(),eX.push(`/git?path=${encodeURIComponent(e)}`)},className:"btn btn-circle btn-xs border-0 bg-white/70 text-slate-600 opacity-0 shadow-none transition-opacity hover:bg-white hover:text-slate-900 group-hover:opacity-100 dark:bg-[#1e2532]/90 dark:text-slate-300 dark:hover:bg-[#252d3d] dark:hover:text-white",title:"Open Git Workspace",children:(0,t.jsx)(y.GitBranch,{className:"h-3.5 w-3.5"})}),(0,t.jsx)("button",{onClick:t=>{aE(t,e)},className:"btn btn-circle btn-xs border-0 bg-white/70 text-slate-600 opacity-0 shadow-none transition-opacity hover:bg-white hover:text-slate-900 group-hover:opacity-100 dark:bg-[#1e2532]/90 dark:text-slate-300 dark:hover:bg-[#252d3d] dark:hover:text-white",title:"Repository settings",children:(0,t.jsx)(h,{className:"h-3.5 w-3.5"})}),(0,t.jsx)("button",{onClick:t=>aR(t,e),className:"btn btn-circle btn-xs border-0 bg-white/70 text-slate-500 opacity-0 shadow-none transition-opacity hover:bg-white hover:text-rose-600 group-hover:opacity-100 dark:bg-[#1e2532]/90 dark:text-slate-400 dark:hover:bg-[#252d3d] dark:hover:text-rose-300",title:"Remove from history",children:(0,t.jsx)(i.X,{className:"h-3.5 w-3.5"})})]})]}),(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("h3",{className:"truncate text-lg font-bold text-slate-900 dark:text-white",children:(0,E.getBaseName)(e)}),(0,t.jsx)("p",{className:"truncate font-mono text-xs text-slate-600 dark:text-slate-300",children:e}),(0,t.jsxs)("p",{className:"truncate text-[11px] font-medium text-slate-500 dark:text-slate-400",children:["Credential: ",x]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between text-sm font-semibold text-slate-700 dark:text-slate-200",children:[(0,t.jsx)("span",{children:"Open repository"}),(0,t.jsx)(n.ChevronRight,{className:"h-4 w-4 transition-transform group-hover:translate-x-0.5"})]})]})]})},e)}),(0,t.jsxs)("button",{onClick:t5,className:"group flex h-[248px] flex-col items-center justify-center gap-2 rounded-2xl border-2 border-dashed border-slate-300 bg-slate-50/70 text-slate-600 transition-all duration-200 hover:-translate-y-1 hover:border-primary/50 hover:bg-white dark:border-slate-700/35 dark:bg-[#131b2a] dark:text-slate-400 dark:hover:border-slate-600/50 dark:hover:bg-[#1d2638]",children:[(0,t.jsx)("span",{className:"flex h-14 w-14 items-center justify-center rounded-full bg-white shadow-sm transition-transform group-hover:scale-105 dark:border dark:border-slate-700/40 dark:bg-[#1e2532]",children:(0,t.jsx)(l.Plus,{className:"h-7 w-7 text-slate-400 transition-colors group-hover:text-primary"})}),(0,t.jsx)("span",{className:"text-lg font-semibold transition-colors group-hover:text-primary",children:"Add Repository"}),(0,t.jsx)("span",{className:"text-sm text-slate-400 dark:text-slate-500",children:"Import from local or git URL"})]})]}):(0,t.jsx)("div",{className:"flex h-56 items-center justify-center rounded-2xl border border-slate-200 bg-white/70 dark:border-slate-700/55 dark:bg-[#141d2e]/70",children:(0,t.jsx)("span",{className:"loading loading-spinner loading-md text-primary"})})]})]}),"home"===e&&er&&eF&&(0,t.jsx)("div",{className:"fixed inset-0 z-[1002] flex items-center justify-center bg-slate-900/35 p-4 backdrop-blur-sm",children:(0,t.jsxs)("div",{className:"w-full max-w-xl overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-2xl dark:border-white/10 dark:bg-[#151b26]",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-slate-100 bg-slate-50/70 px-5 py-4 md:px-6 dark:border-white/10 dark:bg-[#1e2532]/75",children:[(0,t.jsx)("h3",{className:"text-lg font-bold text-slate-900 dark:text-white",children:"Repository Settings"}),(0,t.jsx)("button",{className:"btn btn-circle btn-ghost btn-sm text-slate-500 dark:text-slate-300 dark:hover:bg-white/10 dark:hover:text-white",onClick:t4,disabled:tV,children:(0,t.jsx)(i.X,{className:"h-4 w-4"})})]}),(0,t.jsxs)("div",{className:"space-y-4 p-5 md:p-6",children:[(0,t.jsx)("p",{className:"text-sm text-slate-600 dark:text-slate-300",children:"Choose which credential this repository should use for authenticated Git operations."}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:"Repository"}),(0,t.jsx)("div",{className:"rounded-lg border border-slate-200 bg-slate-50 px-3 py-2 font-mono text-xs text-slate-700 break-all dark:border-slate-700 dark:bg-[#1e2532] dark:text-slate-200",children:eF})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:"Credential"}),(0,t.jsxs)("select",{className:"select w-full border-slate-200 bg-slate-50 text-slate-700 focus:border-primary focus:outline-none dark:border-slate-700 dark:bg-[#1e2532] dark:text-slate-200",value:eB,onChange:e=>eG(e.target.value),disabled:tV,children:[(0,t.jsx)("option",{value:"auto",children:"Auto (match repository remote)"}),eq.map(e=>(0,t.jsx)("option",{value:e.id,children:eh(e)},e.id))]}),0===eq.length&&!tz&&(0,t.jsx)("div",{className:"text-xs text-slate-500 dark:text-slate-400",children:"No credentials found. Add credentials from the Credentials page."})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:"Start Up Command"}),(0,t.jsx)("input",{className:"input w-full border-slate-200 bg-slate-50 font-mono text-sm text-slate-800 focus:border-primary focus:outline-none dark:border-slate-700 dark:bg-[#1e2532] dark:text-slate-200",value:eK,onChange:e=>eH(e.target.value),placeholder:ec,disabled:tV}),(0,t.jsxs)("div",{className:"text-xs text-slate-500 dark:text-slate-400",children:["Default: ",(0,t.jsx)("span",{className:"font-mono",children:ec})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:"Dev Server Command"}),(0,t.jsx)("input",{className:"input w-full border-slate-200 bg-slate-50 font-mono text-sm text-slate-800 focus:border-primary focus:outline-none dark:border-slate-700 dark:bg-[#1e2532] dark:text-slate-200",value:eO,onChange:e=>ez(e.target.value),placeholder:ex,disabled:tV}),(0,t.jsxs)("div",{className:"text-xs text-slate-500 dark:text-slate-400",children:["Default: ",(0,t.jsx)("span",{className:"font-mono",children:ex})]})]}),tz&&(0,t.jsxs)("div",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-slate-400",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Loading credentials..."]}),tH&&(0,t.jsx)("div",{className:"rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-700",children:tH}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 border-t border-slate-100 pt-4 dark:border-white/10",children:[(0,t.jsx)("button",{className:"btn btn-ghost text-slate-700 dark:text-slate-300 dark:hover:bg-white/10 dark:hover:text-white",onClick:t4,disabled:tV,children:"Cancel"}),(0,t.jsxs)("button",{className:"btn btn-primary",onClick:()=>void aM(),disabled:tV||tz,children:[tV?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):null,"Save"]})]})]})]})}),"home"===e&&eg&&(0,t.jsx)("div",{className:"fixed inset-0 z-[1002] flex items-center justify-center bg-slate-900/40 p-4 backdrop-blur-sm",children:(0,t.jsxs)("div",{className:"flex max-h-[90vh] w-full max-w-5xl flex-col overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-2xl dark:border-white/10 dark:bg-[#151b26]",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-slate-100 bg-slate-50/60 px-5 py-4 md:px-6 dark:border-white/10 dark:bg-[#1e2532]/75",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-lg font-bold text-slate-900 dark:text-white",children:"Add New Repository"}),(0,t.jsx)("p",{className:"text-sm text-slate-500 dark:text-slate-400",children:"Connect a local folder or clone from URL"})]}),(0,t.jsx)("button",{className:"btn btn-circle btn-ghost btn-sm text-slate-500 dark:text-slate-300 dark:hover:bg-white/10 dark:hover:text-white",onClick:t6,disabled:eC,children:(0,t.jsx)(i.X,{className:"h-4 w-4"})})]}),(0,t.jsxs)("div",{className:"flex flex-1 flex-col overflow-y-auto md:flex-row",children:[(0,t.jsxs)("div",{className:"flex-1 space-y-4 border-b border-slate-100 p-5 md:border-b-0 md:border-r md:p-6 dark:border-white/10",children:[(0,t.jsx)("h4",{className:"text-sm font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:"Browse Local"}),(0,t.jsx)("p",{className:"text-sm text-slate-600 dark:text-slate-300",children:"Select an existing Git repository folder from your local machine."}),(0,t.jsxs)("div",{className:"rounded-lg border border-slate-200 bg-slate-50 p-3 text-xs text-slate-600 dark:border-slate-700 dark:bg-[#1e2532] dark:text-slate-300",children:["Default root: ",(0,t.jsx)("span",{className:"font-mono",children:eT?.defaultRoot||"~"})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsxs)("button",{className:"btn btn-primary btn-sm gap-2",onClick:()=>{t6(),S(!0)},children:[(0,t.jsx)(s,{className:"h-4 w-4"}),"Browse Local Repository"]}),(0,t.jsxs)("button",{className:"btn btn-ghost btn-sm gap-2 text-slate-700 dark:text-slate-300 dark:hover:bg-white/10 dark:hover:text-white",onClick:()=>{t6(),R(!0)},children:[(0,t.jsx)(d,{className:"h-4 w-4"}),"Set Default Folder"]})]})]}),(0,t.jsxs)("div",{className:"w-full space-y-4 bg-slate-50/35 p-5 md:w-[420px] md:p-6 dark:bg-[#111722]",children:[(0,t.jsx)("h4",{className:"text-sm font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:"Clone Remote"}),(0,t.jsxs)("p",{className:"text-sm text-slate-600 dark:text-slate-300",children:["Clone into ",(0,t.jsx)("span",{className:"font-mono",children:"~/.viba/repos"})," and open it immediately."]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:"Repository URL"}),(0,t.jsx)("input",{className:"input w-full border-slate-200 bg-white font-mono text-sm text-slate-800 focus:border-primary focus:outline-none dark:border-slate-700 dark:bg-[#1e2532] dark:text-slate-200",placeholder:"https://github.com/org/repo.git",value:ey,onChange:e=>ek(e.target.value),disabled:eC})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("label",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:"Credential"}),(0,t.jsxs)("select",{className:"select w-full border-slate-200 bg-white text-slate-700 focus:border-primary focus:outline-none dark:border-slate-700 dark:bg-[#1e2532] dark:text-slate-200",value:ew,onChange:e=>eN(e.target.value),disabled:eC||eE,children:[(0,t.jsx)("option",{value:"auto",children:"Auto (match repository remote)"}),eq.map(e=>(0,t.jsx)("option",{value:e.id,children:eh(e)},e.id))]}),0===eq.length&&!eE&&(0,t.jsx)("div",{className:"text-xs text-slate-500 dark:text-slate-400",children:"No credentials found. Clone uses anonymous access unless remote auth is configured."})]}),eE&&(0,t.jsxs)("div",{className:"flex items-center gap-2 text-sm text-slate-500 dark:text-slate-400",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Loading credentials..."]}),eC&&(0,t.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-slate-200 bg-white px-3 py-2 text-sm text-slate-600 dark:border-slate-700 dark:bg-[#1e2532] dark:text-slate-300",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Cloning repository..."]}),ej&&(0,t.jsx)("div",{className:"rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-700",children:ej}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 border-t border-slate-100 pt-4 dark:border-white/10",children:[(0,t.jsx)("button",{className:"btn btn-ghost text-slate-700 dark:text-slate-300 dark:hover:bg-white/10 dark:hover:text-white",onClick:t6,disabled:eC,children:"Cancel"}),(0,t.jsxs)("button",{className:"btn btn-primary gap-2",onClick:()=>void t9(),disabled:eC||!ey.trim()||eE,children:[eC?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,t.jsx)(p,{className:"h-4 w-4"}),"Clone Repository"]})]})]})]})]})}),"new"===e&&e_&&(0,t.jsxs)("div",{className:"w-full max-w-[1240px]",children:[tk&&(0,t.jsx)("div",{className:"mb-4 rounded-xl border border-red-200 bg-red-50 px-4 py-2 text-sm text-red-700 dark:border-red-500/40 dark:bg-red-900/30 dark:text-red-200",children:tk}),(0,t.jsxs)("div",{className:"mb-8",children:[(0,t.jsxs)("div",{className:"mb-2 flex items-center gap-4",children:[(0,t.jsx)("button",{type:"button",className:"flex h-10 w-10 items-center justify-center rounded-lg text-slate-500 transition-colors hover:bg-white hover:text-slate-900 dark:text-slate-400 dark:hover:bg-slate-800 dark:hover:text-white",onClick:()=>eX.push("/"),"aria-label":"Back to home",children:(0,t.jsx)(n.ChevronRight,{className:"h-6 w-6 rotate-180"})}),(0,t.jsx)("h1",{className:"text-3xl font-black tracking-[-0.02em] text-slate-900 md:text-4xl dark:text-white",children:"Assign New Task"})]}),(0,t.jsx)("p",{className:"ml-14 text-sm text-slate-500 md:text-base dark:text-slate-400",children:"Configure the environment and describe the work required for your AI agent."})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-6 lg:grid-cols-12",children:[(0,t.jsxs)("div",{className:"space-y-6 lg:col-span-4",children:[(0,t.jsxs)("div",{className:"rounded-2xl border border-slate-200 bg-white p-5 shadow-sm dark:border-[#30363d] dark:bg-[#161b22] dark:shadow-[0_16px_36px_-24px_rgba(2,6,23,0.95)]",children:[(0,t.jsxs)("h3",{className:"mb-5 flex items-center gap-2 text-lg font-bold text-slate-900 dark:text-white",children:[(0,t.jsx)(s,{className:"h-5 w-5 text-primary"}),"Context Setup"]}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("label",{className:"flex flex-col gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-slate-700 dark:text-slate-300",children:"Select Repository"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("select",{className:"h-12 w-full appearance-none rounded-lg border border-slate-300 bg-white px-3 pr-10 font-mono text-sm text-slate-900 outline-none transition focus:border-primary focus:ring-2 focus:ring-primary/20 dark:border-[#30363d] dark:bg-[#0d1117] dark:text-slate-100",value:e_,onChange:e=>{ae(e)},disabled:tf||0===aq.length,children:aq.map(e=>(0,t.jsx)("option",{value:e,children:(0,E.getBaseName)(e)},e))}),(0,t.jsx)(o.ChevronDown,{className:"pointer-events-none absolute right-3 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-500 dark:text-slate-500"})]}),(0,t.jsx)("span",{className:"truncate font-mono text-[11px] text-slate-500 dark:text-slate-400",title:e_,children:e_})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-slate-700 dark:text-slate-300",children:"Base Branch"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("select",{className:"h-12 w-full appearance-none rounded-lg border border-slate-300 bg-white px-3 pr-10 font-mono text-sm text-slate-900 outline-none transition focus:border-primary focus:ring-2 focus:ring-primary/20 dark:border-[#30363d] dark:bg-[#0d1117] dark:text-slate-100",value:eJ,onChange:as,disabled:tf,children:eW.map(e=>(0,t.jsxs)("option",{value:e.name,children:[e.name,e.current?" (checked out)":""]},e.name))}),tf?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs absolute right-3 top-1/2 -translate-y-1/2"}):(0,t.jsx)(o.ChevronDown,{className:"pointer-events-none absolute right-3 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-500 dark:text-slate-500"})]})]}),(0,t.jsxs)("button",{type:"button",className:"inline-flex items-center gap-2 text-sm font-medium text-slate-600 transition-colors hover:text-slate-900 dark:text-slate-400 dark:hover:text-white",onClick:()=>ta(e=>!e),children:[(0,t.jsx)(n.ChevronRight,{className:`h-4 w-4 transition-transform ${tt?"rotate-90":""}`}),tt?"Hide Advanced Setup":"Show Session Setup"]}),tt&&(0,t.jsxs)("div",{className:"space-y-4 rounded-xl border border-slate-200 bg-slate-50 p-3 dark:border-[#30363d] dark:bg-[#0d1117]/55",children:[(0,t.jsxs)("label",{className:"flex flex-col gap-2",children:[(0,t.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:"Start Up Command"}),(0,t.jsx)("input",{type:"text",className:"h-10 rounded-lg border border-slate-300 bg-white px-3 font-mono text-sm text-slate-900 outline-none transition focus:border-primary focus:ring-2 focus:ring-primary/20 dark:border-[#30363d] dark:bg-[#0d1117] dark:text-slate-100",placeholder:"npm install",value:e7,onChange:al,onBlur:ai,onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&(e.preventDefault(),aT())},disabled:tf})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-2",children:[(0,t.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:"Dev Server Command"}),(0,t.jsx)("input",{type:"text",className:"h-10 rounded-lg border border-slate-300 bg-white px-3 font-mono text-sm text-slate-900 outline-none transition focus:border-primary focus:ring-2 focus:ring-primary/20 dark:border-[#30363d] dark:bg-[#0d1117] dark:text-slate-100",placeholder:"npm run dev",value:e9,onChange:e=>{te(e.target.value)},onBlur:ao,onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&(e.preventDefault(),aT())},disabled:tf})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-2",children:[(0,t.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:"Session Mode"}),(0,t.jsxs)("select",{className:"h-10 rounded-lg border border-slate-300 bg-white px-3 text-sm text-slate-900 outline-none transition focus:border-primary focus:ring-2 focus:ring-primary/20 dark:border-[#30363d] dark:bg-[#0d1117] dark:text-slate-100",value:tl,onChange:e=>{let t="plan"===e.target.value?"plan":"fast";ti(t);try{window.localStorage.setItem(eu,t)}catch{}},disabled:tf,children:[(0,t.jsx)("option",{value:"fast",children:"Fast Mode (default)"}),(0,t.jsx)("option",{value:"plan",children:"Plan Mode"})]})]})]})]})]}),(0,t.jsxs)("div",{className:"rounded-2xl border border-slate-200 bg-white p-5 shadow-sm dark:border-[#30363d] dark:bg-[#161b22] dark:shadow-[0_16px_36px_-24px_rgba(2,6,23,0.95)]",children:[(0,t.jsx)("h3",{className:"mb-4 text-lg font-bold text-slate-900 dark:text-white",children:"Drafts"}),(0,t.jsxs)("div",{className:"space-y-2",children:[0===e3.length&&(0,t.jsx)("div",{className:"rounded-lg border border-dashed border-slate-200 bg-slate-50 px-3 py-4 text-sm text-slate-500 dark:border-[#30363d] dark:bg-[#0d1117]/45 dark:text-slate-400",children:"No drafts for this repository."}),e3.map(e=>(0,t.jsxs)("div",{className:"group flex items-center gap-3 rounded-lg border border-transparent px-3 py-3 transition-colors hover:border-slate-100 hover:bg-slate-50 dark:hover:border-slate-700/70 dark:hover:bg-slate-800/50",children:[(0,t.jsx)("div",{className:"h-2 w-2 flex-shrink-0 rounded-full bg-blue-500"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("p",{className:"truncate text-sm font-medium text-slate-900 dark:text-white",children:e.title}),(0,t.jsxs)("p",{className:"truncate text-xs text-slate-500 dark:text-slate-400",children:[(0,E.getBaseName)(e.repoPath)," • ",e.agentProvider]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1 opacity-100 transition-opacity sm:opacity-0 sm:group-hover:opacity-100",children:[(0,t.jsx)("button",{type:"button",className:"rounded p-1 text-slate-400 transition-colors hover:text-primary dark:text-slate-400 dark:hover:text-primary",title:"Open Draft",onClick:()=>a_(e),disabled:tf||tY,children:(0,t.jsx)(u.ExternalLink,{className:"h-4 w-4"})}),(0,t.jsx)("button",{type:"button",className:"rounded p-1 text-slate-400 transition-colors hover:text-red-500 dark:text-slate-400 dark:hover:text-red-400",title:"Delete Draft",onClick:()=>aU(e.id),disabled:tf||tY,children:(0,t.jsx)(x.Trash2,{className:"h-4 w-4"})})]})]},e.id))]})]}),(0,t.jsxs)("div",{className:"rounded-2xl border border-slate-200 bg-white p-5 shadow-sm dark:border-[#30363d] dark:bg-[#161b22] dark:shadow-[0_16px_36px_-24px_rgba(2,6,23,0.95)]",children:[(0,t.jsx)("h3",{className:"mb-4 text-lg font-bold text-slate-900 dark:text-white",children:"Ongoing Tasks"}),(0,t.jsxs)("div",{className:"space-y-2",children:[0===eZ.length&&(0,t.jsx)("div",{className:"rounded-lg border border-dashed border-slate-200 bg-slate-50 px-3 py-4 text-sm text-slate-500 dark:border-[#30363d] dark:bg-[#0d1117]/45 dark:text-slate-400",children:"No ongoing sessions for this repository."}),eZ.map(e=>(0,t.jsxs)("div",{className:"group flex items-center gap-3 rounded-lg border border-transparent px-3 py-3 transition-colors hover:border-slate-100 hover:bg-slate-50 dark:hover:border-slate-700/70 dark:hover:bg-slate-800/50",children:[(0,t.jsx)("div",{className:`h-2 w-2 flex-shrink-0 rounded-full ${tv===e.sessionName?"animate-pulse bg-amber-400":"bg-emerald-500"}`}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("p",{className:"truncate text-sm font-medium text-slate-900 dark:text-white",children:e.title||e.sessionName}),(0,t.jsxs)("p",{className:"truncate text-xs text-slate-500 dark:text-slate-400",children:[(0,E.getBaseName)(e.repoPath)," • ",e.agent]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1 opacity-100 transition-opacity sm:opacity-0 sm:group-hover:opacity-100",children:[(0,t.jsx)("button",{type:"button",className:"rounded p-1 text-slate-400 transition-colors hover:text-primary dark:text-slate-400 dark:hover:text-primary",title:"Open",onClick:()=>aB(e),disabled:tf||tv===e.sessionName,children:(0,t.jsx)(u.ExternalLink,{className:"h-4 w-4"})}),(0,t.jsx)("button",{type:"button",className:"rounded p-1 text-slate-400 transition-colors hover:text-amber-500 dark:text-slate-400 dark:hover:text-amber-400",title:"New Attempt",onClick:()=>(e=>{if(!e_)return;let t=`/new?repo=${encodeURIComponent(e_)}&prefillFromSession=${encodeURIComponent(e.sessionName)}`;eX.push(t)})(e),disabled:tf||tv===e.sessionName,children:(0,t.jsx)(l.Plus,{className:"h-4 w-4"})}),(0,t.jsx)("button",{type:"button",className:"rounded p-1 text-slate-400 transition-colors hover:text-red-500 dark:text-slate-400 dark:hover:text-red-400",title:tv===e.sessionName?"Deleting...":"Delete",onClick:()=>aG(e),disabled:tf||tv===e.sessionName,children:(0,t.jsx)(x.Trash2,{className:"h-4 w-4"})})]})]},e.sessionName))]})]})]}),(0,t.jsx)("div",{className:"flex flex-col lg:col-span-8",children:(0,t.jsxs)("div",{className:"flex h-full flex-col rounded-2xl border border-slate-200 bg-white p-5 shadow-sm dark:border-[#30363d] dark:bg-[#161b22] dark:shadow-[0_16px_36px_-24px_rgba(2,6,23,0.95)]",children:[(0,t.jsxs)("div",{className:"mb-4 flex flex-wrap items-center justify-between gap-3",children:[(0,t.jsxs)("label",{className:"flex items-center gap-2 text-lg font-bold text-slate-900 dark:text-white",htmlFor:"task-description",children:[(0,t.jsx)(c,{className:"h-5 w-5 text-primary"}),"Task Description"]}),aN&&(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:N.map(e=>{let a=tr===e.content;return(0,t.jsx)("button",{type:"button",className:`rounded-full border px-3 py-1 text-xs font-semibold transition-colors ${a?"border-primary bg-primary/10 text-primary dark:border-primary dark:bg-primary/20 dark:text-blue-300":"border-slate-300 bg-white text-slate-700 hover:border-primary hover:text-primary dark:border-slate-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:border-primary dark:hover:text-blue-300"}`,onClick:()=>aj(e.content),disabled:tf,"aria-label":`Fill task description with ${e.label} prompt`,children:e.label},e.id)})})]}),(0,t.jsxs)("div",{className:"group relative mb-4 flex h-[360px] flex-grow flex-col md:h-[420px]",children:[(0,t.jsx)("textarea",{id:"task-description",className:"h-full w-full resize-none rounded-xl border border-slate-200 bg-slate-50 p-5 font-mono text-sm leading-relaxed text-slate-900 outline-none transition focus:border-primary focus:ring-2 focus:ring-primary/30 dark:border-[#30363d] dark:bg-[#0d1117] dark:text-slate-100 dark:placeholder:text-slate-500",placeholder:`Describe the task for the AI agent...
|
|
4
|
+
Example:
|
|
5
|
+
1. Create a new component for the user profile card.
|
|
6
|
+
2. Ensure it fetches data from the /api/user endpoint.
|
|
7
|
+
3. Add error handling for failed requests.
|
|
8
|
+
|
|
9
|
+
Tip: Type @ to mention files.`,value:tr,onChange:aS,onKeyDown:e=>{if((e.metaKey||e.ctrlKey)&&"Enter"===e.key){e.preventDefault(),aT();return}ac&&am.length>0&&("ArrowUp"===e.key?(e.preventDefault(),ag(e=>e>0?e-1:am.length-1)):"ArrowDown"===e.key?(e.preventDefault(),ag(e=>e<am.length-1?e+1:0)):"Enter"===e.key||"Tab"===e.key?(e.preventDefault(),aC(am[af])):"Escape"===e.key&&(e.preventDefault(),ax(!1)))},onClick:e=>{ab(e.currentTarget.selectionStart),ax(!1)},onKeyUp:e=>ab(e.currentTarget.selectionStart),disabled:tf}),ac&&am.length>0&&(0,t.jsx)("div",{className:"absolute left-3 right-3 top-[calc(100%-8rem)] z-50 max-h-48 overflow-y-auto rounded-lg border border-slate-200 bg-white shadow-lg dark:border-[#30363d] dark:bg-[#161b22]",children:am.map((e,a)=>(0,t.jsx)("button",{className:`w-full truncate border-b border-slate-100 px-3 py-2 text-left text-xs last:border-0 ${a===af?"bg-primary text-white":"text-slate-700 hover:bg-slate-50 dark:border-slate-700/60 dark:text-slate-300 dark:hover:bg-slate-800/60"}`,onMouseDown:t=>{t.preventDefault(),aC(e)},children:e},e))})]}),(0,t.jsxs)("div",{className:"border-t border-slate-100 pt-4 dark:border-slate-700/70",children:[(0,t.jsxs)("div",{className:"mb-3 flex flex-col items-start justify-between gap-2 sm:flex-row sm:items-center",children:[(0,t.jsx)("h4",{className:"text-sm font-semibold text-slate-700 dark:text-slate-300",children:"Attachments"}),(0,t.jsxs)("button",{type:"button",className:"inline-flex items-center gap-2 text-sm font-medium text-primary transition-colors hover:text-blue-700 disabled:cursor-not-allowed disabled:opacity-50",onClick:()=>tc(!0),disabled:tf||!e_,children:[(0,t.jsx)(p,{className:"h-4 w-4"}),"Select Attachments"]})]}),(0,t.jsx)("div",{className:"min-h-[88px] rounded-xl border-2 border-dashed border-slate-200 bg-slate-50/70 p-3 dark:border-slate-700 dark:bg-[#0d1117]/40",children:(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[tn.map((e,a)=>(0,t.jsxs)("span",{className:"inline-flex max-w-full items-center gap-2 rounded-full border border-slate-300 bg-white px-3 py-1 text-xs text-slate-700 dark:border-slate-700 dark:bg-slate-800 dark:text-slate-200",title:e,children:[(0,t.jsx)("span",{className:"truncate",children:(0,E.getBaseName)(e)}),(0,t.jsx)("button",{type:"button",className:"rounded text-slate-500 transition hover:text-red-500 dark:text-slate-400 dark:hover:text-red-400",onClick:()=>{to(e=>e.filter((e,t)=>t!==a))},title:"Remove attachment",children:(0,t.jsx)(i.X,{className:"h-3 w-3"})})]},`upload-${e}-${a}`)),th.map((e,a)=>(0,t.jsxs)("span",{className:"inline-flex max-w-full items-center gap-2 rounded-full border border-slate-300 bg-white px-3 py-1 text-xs text-slate-700 dark:border-slate-700 dark:bg-slate-800 dark:text-slate-200",title:e,children:[(0,t.jsx)("span",{className:"truncate",children:(0,E.getBaseName)(e)}),(0,t.jsx)("button",{type:"button",className:"rounded text-slate-500 transition hover:text-red-500 dark:text-slate-400 dark:hover:text-red-400",onClick:()=>{tu(e=>e.filter((e,t)=>t!==a))},title:"Remove carried attachment",children:(0,t.jsx)(i.X,{className:"h-3 w-3"})})]},`prefill-${e}-${a}`)),0===tn.length&&0===th.length&&(0,t.jsx)("span",{className:"text-xs text-slate-500 dark:text-slate-400",children:"No attachments selected."})]})})]}),(0,t.jsxs)("div",{className:"mt-6 flex items-center justify-end gap-3 border-t border-slate-100 pt-5 dark:border-slate-700/70",children:[(0,t.jsxs)("span",{className:"mr-auto hidden text-xs text-slate-400 dark:text-slate-500 sm:block",children:["Press ",(0,t.jsx)("kbd",{className:"rounded border border-slate-200 bg-slate-100 px-2 py-1 font-sans text-[11px] dark:border-slate-700 dark:bg-slate-800 dark:text-slate-300",children:"Ctrl + Enter"})," to submit"]}),(0,t.jsx)("button",{type:"button",className:"inline-flex items-center gap-2 rounded-lg bg-slate-200 px-5 py-2 text-sm font-semibold text-slate-800 shadow-sm transition hover:bg-slate-300 dark:bg-slate-700 dark:text-white dark:hover:bg-slate-600 disabled:cursor-not-allowed disabled:opacity-70",onClick:aA,disabled:tf||tY,children:tY?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):"Save Draft"}),(0,t.jsx)("button",{type:"button",className:"inline-flex items-center gap-2 rounded-lg bg-primary px-5 py-2 text-sm font-semibold text-white shadow-md shadow-primary/20 transition hover:bg-blue-600 disabled:cursor-not-allowed disabled:opacity-70",onClick:aT,disabled:tf||tY,children:tf?(0,t.jsx)("span",{className:"loading loading-spinner loading-xs"}):"Create New Task"})]})]})})]})]}),"new"===e&&!e_&&!!r&&!tk&&(0,t.jsx)("div",{className:"w-full max-w-2xl rounded-2xl border border-slate-200 bg-white p-8 shadow-sm dark:border-[#30363d] dark:bg-[#161b22] dark:shadow-[0_16px_36px_-24px_rgba(2,6,23,0.95)]",children:(0,t.jsxs)("div",{className:"flex flex-col items-center gap-3 text-center",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-lg text-primary"}),(0,t.jsx)("h2",{className:"text-lg font-semibold text-slate-900 dark:text-white",children:"Loading repository..."}),(0,t.jsx)("p",{className:"text-sm text-slate-500 dark:text-slate-400",children:"Preparing your task workspace."})]})}),"new"===e&&tR&&tM&&(0,t.jsx)("div",{className:"fixed inset-0 z-[1000] flex items-center justify-center bg-base-content/45 px-4",children:(0,t.jsx)("div",{className:"w-full max-w-md rounded-xl border border-base-300 bg-base-100 p-6 shadow-2xl",children:(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-lg text-primary"}),(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsxs)("h3",{className:"text-lg font-semibold",children:["Installing ",eb[tM]]}),(0,t.jsx)("p",{className:"text-sm opacity-70",children:"Please wait while we install the coding agent CLI."})]})]})})}),"new"===e&&tL&&t$&&(0,t.jsx)("div",{className:"fixed inset-0 z-[1001] flex items-center justify-center bg-base-content/60 p-4",children:(0,t.jsx)("div",{className:"w-full max-w-5xl rounded-xl border border-base-300 bg-base-100 shadow-2xl",children:(0,t.jsxs)("div",{className:"space-y-4 p-5 md:p-6",children:[(0,t.jsx)("h3",{className:"text-xl font-semibold",children:"Login Required"}),(0,t.jsxs)("p",{className:"text-sm opacity-80",children:[eb[t$]," has been installed. Complete login in the terminal below, then click Done to continue."]}),(0,t.jsxs)("p",{className:"text-xs opacity-60",children:["Command: ",(0,t.jsx)("span",{className:"font-mono",children:tA})]}),(0,t.jsx)("div",{className:"h-[420px] overflow-hidden rounded-lg border border-base-300 bg-base-200",children:(0,t.jsx)("iframe",{ref:tW,src:"/terminal",className:"h-full w-full border-none",allow:"clipboard-read; clipboard-write",onLoad:aD})}),tG&&(0,t.jsx)("div",{className:"alert alert-error text-sm py-2",children:tG}),!tG&&(0,t.jsx)("div",{className:"text-xs opacity-70",children:tI?"Login command was sent to the terminal automatically.":"Waiting for terminal to initialize..."}),(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)("button",{className:"btn btn-primary",onClick:()=>void aI(),disabled:tf,children:"Done"})})]})})}),"new"===e&&!e_&&(!r||!!tk)&&(0,t.jsx)("div",{className:"card w-full max-w-2xl bg-base-200 shadow-xl",children:(0,t.jsxs)("div",{className:"card-body",children:[(0,t.jsxs)("h2",{className:"card-title flex items-center gap-2",children:[(0,t.jsx)(s,{className:"w-6 h-6 text-primary"}),"Git Repository Selector"]}),tN?(0,t.jsxs)("div",{className:"alert text-sm py-2 px-3 mt-2 flex items-center gap-2",children:[(0,t.jsx)("span",{className:"loading loading-spinner loading-sm"}),k?`Searching for repository "${k}"...`:"Searching for repository..."]}):tk?(0,t.jsx)("div",{className:"alert alert-error text-sm py-2 px-3 mt-2",children:tk}):(0,t.jsx)("div",{className:"text-sm opacity-70 mt-2",children:"No repository specified."}),(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)("button",{className:"btn btn-primary btn-sm",onClick:()=>eX.push("/"),children:"Choose Repository"})})]})}),"new"===e&&e_&&td&&(0,t.jsx)(ed.default,{initialPath:tx||e_,onPathChange:tm,onConfirm:async e=>{ad(e),tc(!1)},onCancel:()=>tc(!1)}),"home"===e&&j&&(0,t.jsx)(D,{initialPath:eT?.defaultRoot||void 0,onSelect:t8,onCancel:()=>S(!1),checkRepo:L}),"home"===e&&C&&(0,t.jsx)(D,{title:"Default Root Folder",initialPath:eT?.defaultRoot||void 0,onSelect:aa,onCancel:()=>R(!1)})]})}e.s(["default",()=>ef],5951)}]);
|