vibepulse 0.2.2 → 0.3.1-beta
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/app-path-routes-manifest.json +1 -0
- package/.next/build-manifest.json +2 -2
- package/.next/cache/.previewinfo +1 -1
- package/.next/cache/.rscinfo +1 -1
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/cache/config.json +3 -3
- package/.next/fallback-build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/routes-manifest.json +8 -0
- 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 +1 -1
- 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/node/events/route.js +2 -2
- package/.next/server/app/api/node/events/route.js.nft.json +1 -1
- package/.next/server/app/api/node/sessions/[id]/delete/route.js +2 -2
- package/.next/server/app/api/node/sessions/[id]/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/node/sessions/[id]/open-editor/route.js +2 -2
- package/.next/server/app/api/node/sessions/[id]/open-editor/route.js.nft.json +1 -1
- package/.next/server/app/api/node/sessions/route.js +6 -4
- package/.next/server/app/api/node/sessions/route.js.nft.json +1 -1
- package/.next/server/app/api/nodes/route.js +2 -2
- package/.next/server/app/api/nodes/route.js.nft.json +1 -1
- package/.next/server/app/api/opencode-config/route.js +2 -2
- package/.next/server/app/api/opencode-config/route.js.nft.json +1 -1
- package/.next/server/app/api/opencode-config/status/route.js +2 -2
- package/.next/server/app/api/opencode-config/status/route.js.nft.json +1 -1
- package/.next/server/app/api/opencode-events/route.js +3 -3
- package/.next/server/app/api/opencode-events/route.js.nft.json +1 -1
- package/.next/server/app/api/profiles/[id]/apply/route.js +2 -2
- package/.next/server/app/api/profiles/[id]/apply/route.js.nft.json +1 -1
- package/.next/server/app/api/profiles/[id]/export/route.js +2 -2
- package/.next/server/app/api/profiles/[id]/export/route.js.nft.json +1 -1
- package/.next/server/app/api/profiles/[id]/route.js +2 -2
- package/.next/server/app/api/profiles/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/profiles/import/route.js +2 -2
- package/.next/server/app/api/profiles/import/route.js.nft.json +1 -1
- package/.next/server/app/api/profiles/route.js +2 -2
- package/.next/server/app/api/profiles/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/archive/route.js +3 -2
- package/.next/server/app/api/sessions/[id]/archive/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/delete/route.js +4 -3
- package/.next/server/app/api/sessions/[id]/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/open-editor/route.js +2 -2
- package/.next/server/app/api/sessions/[id]/open-editor/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/restore/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/sessions/[id]/restore/route/build-manifest.json +11 -0
- package/.next/server/app/api/sessions/[id]/restore/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/sessions/[id]/restore/route.js +8 -0
- package/.next/server/app/api/sessions/[id]/restore/route.js.map +5 -0
- package/.next/server/app/api/sessions/[id]/restore/route.js.nft.json +1 -0
- package/.next/server/app/api/sessions/[id]/restore/route_client-reference-manifest.js +2 -0
- package/.next/server/app/api/sessions/[id]/route.js +2 -2
- package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/route.js +5 -3
- package/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +3 -3
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +3 -3
- 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/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +1 -0
- package/.next/server/chunks/[root-of-the-server]__005eb0c5._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__005eb0c5._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__09e90d57._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__09e90d57._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__18dd0ce9._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__18dd0ce9._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__19468536._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__19468536._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1b87ec42._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1b87ec42._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__2b912935._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__2b912935._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__303d3bac._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__303d3bac._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__3fac2b91._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__3fac2b91._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__43440b8d._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__43440b8d._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__438f8bbe._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__438f8bbe._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__4a0bfb55._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__4a0bfb55._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__534c3949._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__534c3949._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__59160266._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__59160266._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__6f812da0._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__6f812da0._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__71aac504._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__71aac504._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__907a8bf2._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__907a8bf2._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__92089220._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__92089220._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__9b7bc2d0._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__9b7bc2d0._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__b2640944._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__b2640944._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__c2267cf1._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__c2267cf1._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__d7f7e6dd._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__6924c09d._.js.map → [root-of-the-server]__d7f7e6dd._.js.map} +1 -1
- package/.next/server/chunks/[root-of-the-server]__d8e61048._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__d8e61048._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__f6d0d488._.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__192ed2f4._.js.map → [root-of-the-server]__f6d0d488._.js.map} +1 -1
- package/.next/server/chunks/[root-of-the-server]__fa559e1e._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__fa559e1e._.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_sessions_[id]_restore_route_actions_af7d6b6c.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_sessions_[id]_restore_route_actions_af7d6b6c.js.map +1 -0
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_7e181e75.js +1 -1
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_7e181e75.js.map +1 -1
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_aca45402.js +1 -1
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_aca45402.js.map +1 -1
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_b054aff3.js +1 -1
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_b054aff3.js.map +1 -1
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_fa835ac3.js +2 -2
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_fa835ac3.js.map +1 -1
- package/.next/server/chunks/src_lib_opencodeConfig_ts_8e209941._.js +3 -0
- package/.next/server/chunks/src_lib_opencodeConfig_ts_8e209941._.js.map +1 -0
- package/.next/server/chunks/src_lib_session-providers_claudeCode_ts_0f9590ed._.js +3 -0
- package/.next/server/chunks/src_lib_session-providers_claudeCode_ts_0f9590ed._.js.map +1 -0
- package/.next/server/chunks/ssr/{[root-of-the-server]__631e12d0._.js → [root-of-the-server]__c91a8380._.js} +2 -2
- package/.next/server/chunks/ssr/{[root-of-the-server]__631e12d0._.js.map → [root-of-the-server]__c91a8380._.js.map} +1 -1
- package/.next/server/chunks/ssr/src_app_page_tsx_a7111f3e._.js +3 -3
- package/.next/server/chunks/ssr/src_app_page_tsx_a7111f3e._.js.map +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +2 -2
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +1 -0
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/routes-manifest.json +8 -0
- package/.next/standalone/.next/server/app/_global-error/page.js +1 -1
- package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +2 -2
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/api/node/events/route.js +2 -2
- package/.next/standalone/.next/server/app/api/node/events/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/node/sessions/[id]/delete/route.js +2 -2
- package/.next/standalone/.next/server/app/api/node/sessions/[id]/delete/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/node/sessions/[id]/open-editor/route.js +2 -2
- package/.next/standalone/.next/server/app/api/node/sessions/[id]/open-editor/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/node/sessions/route.js +6 -4
- package/.next/standalone/.next/server/app/api/node/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/nodes/route.js +2 -2
- package/.next/standalone/.next/server/app/api/nodes/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/opencode-config/route.js +2 -2
- package/.next/standalone/.next/server/app/api/opencode-config/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/opencode-config/status/route.js +2 -2
- package/.next/standalone/.next/server/app/api/opencode-config/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/opencode-events/route.js +3 -3
- package/.next/standalone/.next/server/app/api/opencode-events/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/profiles/[id]/apply/route.js +2 -2
- package/.next/standalone/.next/server/app/api/profiles/[id]/apply/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/profiles/[id]/export/route.js +2 -2
- package/.next/standalone/.next/server/app/api/profiles/[id]/export/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/profiles/[id]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/profiles/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/profiles/import/route.js +2 -2
- package/.next/standalone/.next/server/app/api/profiles/import/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/profiles/route.js +2 -2
- package/.next/standalone/.next/server/app/api/profiles/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[id]/archive/route.js +3 -2
- package/.next/standalone/.next/server/app/api/sessions/[id]/archive/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[id]/delete/route.js +4 -3
- package/.next/standalone/.next/server/app/api/sessions/[id]/delete/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[id]/open-editor/route.js +2 -2
- package/.next/standalone/.next/server/app/api/sessions/[id]/open-editor/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[id]/restore/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/sessions/[id]/restore/route/build-manifest.json +11 -0
- package/.next/standalone/.next/server/app/api/sessions/[id]/restore/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/sessions/[id]/restore/route.js +8 -0
- package/.next/standalone/.next/server/app/api/sessions/[id]/restore/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/sessions/[id]/restore/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/sessions/[id]/restore/route_client-reference-manifest.js +2 -0
- package/.next/standalone/.next/server/app/api/sessions/[id]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/route.js +5 -3
- package/.next/standalone/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +3 -3
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +1 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__005eb0c5._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__09e90d57._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__18dd0ce9._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__19468536._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1b87ec42._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2b912935._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__303d3bac._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__3fac2b91._.js +5 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__43440b8d._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__438f8bbe._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__4a0bfb55._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__534c3949._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__59160266._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6f812da0._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__71aac504._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__907a8bf2._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__92089220._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__9b7bc2d0._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b2640944._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c2267cf1._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d7f7e6dd._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d8e61048._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__f6d0d488._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__fa559e1e._.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_sessions_[id]_restore_route_actions_af7d6b6c.js +3 -0
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_7e181e75.js +1 -1
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_aca45402.js +1 -1
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_b054aff3.js +1 -1
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_fa835ac3.js +2 -2
- package/.next/standalone/.next/server/chunks/src_lib_opencodeConfig_ts_8e209941._.js +3 -0
- package/.next/standalone/.next/server/chunks/src_lib_session-providers_claudeCode_ts_0f9590ed._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__631e12d0._.js → [root-of-the-server]__c91a8380._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/src_app_page_tsx_a7111f3e._.js +3 -3
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +2 -2
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/9e790b67c80f853c.js +13 -0
- package/.next/standalone/.next/static/chunks/c3dc8cd80979c971.css +3 -0
- package/.next/standalone/AGENTS.md +4 -0
- package/.next/standalone/README.md +54 -5
- package/.next/standalone/check-hsql.mjs +1 -1
- package/.next/standalone/docs/session-status-detection.md +36 -0
- package/.next/standalone/docs/superpowers/specs/2026-04-09-claude-capability-alignment-design.md +39 -0
- package/.next/standalone/eslint.config.mjs +1 -0
- package/.next/standalone/package-lock.json +74 -13
- package/.next/standalone/package.json +2 -2
- package/.next/standalone/src/app/api/node/events/route.ts +3 -3
- package/.next/standalone/src/app/api/node/sessions/[id]/archive/route.test.ts +60 -1
- package/.next/standalone/src/app/api/node/sessions/[id]/archive/route.ts +77 -22
- package/.next/standalone/src/app/api/node/sessions/[id]/delete/route.ts +6 -5
- package/.next/standalone/src/app/api/node/sessions/[id]/open-editor/route.ts +6 -5
- package/.next/standalone/src/app/api/node/sessions/route.test.ts +282 -0
- package/.next/standalone/src/app/api/node/sessions/route.ts +156 -30
- package/.next/standalone/src/app/api/opencode-config/route.test.ts +613 -0
- package/.next/standalone/src/app/api/opencode-config/route.ts +336 -185
- package/.next/standalone/src/app/api/opencode-events/route.test.ts +77 -1
- package/.next/standalone/src/app/api/opencode-events/route.ts +3 -3
- package/.next/standalone/src/app/api/opencode-models/route.test.ts +19 -0
- package/.next/standalone/src/app/api/opencode-models/route.ts +4 -1
- package/.next/standalone/src/app/api/profiles/[id]/apply/route.test.ts +227 -0
- package/.next/standalone/src/app/api/profiles/[id]/apply/route.ts +13 -9
- package/.next/standalone/src/app/api/sessions/[id]/archive/route.test.ts +126 -0
- package/.next/standalone/src/app/api/sessions/[id]/archive/route.ts +47 -12
- package/.next/standalone/src/app/api/sessions/[id]/delete/route.test.ts +140 -0
- package/.next/standalone/src/app/api/sessions/[id]/delete/route.ts +51 -16
- package/.next/standalone/src/app/api/sessions/[id]/open-editor/route.test.ts +74 -0
- package/.next/standalone/src/app/api/sessions/[id]/open-editor/route.ts +22 -2
- package/.next/standalone/src/app/api/sessions/[id]/restore/route.test.ts +186 -0
- package/.next/standalone/src/app/api/sessions/[id]/restore/route.ts +184 -0
- package/.next/standalone/src/app/api/sessions/[id]/route.ts +3 -3
- package/.next/standalone/src/app/api/sessions/route.test.ts +1955 -100
- package/.next/standalone/src/app/api/sessions/route.ts +361 -986
- package/.next/standalone/src/components/KanbanBoard.test.tsx +307 -1
- package/.next/standalone/src/components/KanbanBoard.tsx +106 -19
- package/.next/standalone/src/components/ProjectCard.test.tsx +420 -6
- package/.next/standalone/src/components/ProjectCard.tsx +238 -86
- package/.next/standalone/src/components/SessionCard.test.tsx +259 -8
- package/.next/standalone/src/components/SessionCard.tsx +182 -76
- package/.next/standalone/src/components/opencode-config/AgentConfigForm.test.tsx +141 -1
- package/.next/standalone/src/components/opencode-config/AgentConfigForm.tsx +99 -7
- package/.next/standalone/src/components/opencode-config/GeneralSettingsForm.test.tsx +11 -0
- package/.next/standalone/src/components/opencode-config/GeneralSettingsForm.tsx +41 -2
- package/.next/standalone/src/components/opencode-config/categories/CategoriesManager.tsx +3 -1
- package/.next/standalone/src/components/opencode-config/categories/CategoryConfigForm.test.tsx +106 -8
- package/.next/standalone/src/components/opencode-config/categories/CategoryConfigForm.tsx +82 -5
- package/.next/standalone/src/hooks/useHostSources.test.ts +0 -41
- package/.next/standalone/src/hooks/useOpencodeSync.test.ts +321 -1
- package/.next/standalone/src/hooks/useOpencodeSync.ts +16 -12
- package/.next/standalone/src/lib/claudeSessionOverrides.test.ts +75 -0
- package/.next/standalone/src/lib/claudeSessionOverrides.ts +169 -0
- package/.next/standalone/src/lib/fixtures/opencode-config/oh-my-openagent.v4.jsonc +70 -0
- package/.next/standalone/src/lib/fixtures/opencode-config/oh-my-openagent.v4.secret-like.jsonc +21 -0
- package/.next/standalone/src/lib/fixtures/opencode-config/oh-my-opencode.v3.jsonc +17 -0
- package/.next/standalone/src/lib/opencodeConfig.test.ts +430 -3
- package/.next/standalone/src/lib/opencodeConfig.ts +157 -4
- package/.next/standalone/src/lib/opencodeDiscovery.test.ts +241 -0
- package/.next/standalone/src/lib/opencodeDiscovery.ts +164 -9
- package/.next/standalone/src/lib/profiles/share.test.ts +92 -0
- package/.next/standalone/src/lib/profiles/share.ts +1 -0
- package/.next/standalone/src/lib/profiles/storage.test.ts +77 -1
- package/.next/standalone/src/lib/profiles/storage.ts +10 -9
- package/.next/standalone/src/lib/session-providers/claudeCode.test.ts +2288 -0
- package/.next/standalone/src/lib/session-providers/claudeCode.ts +1083 -0
- package/.next/standalone/src/lib/session-providers/localAggregator.test.ts +322 -0
- package/.next/standalone/src/lib/session-providers/localAggregator.ts +302 -0
- package/.next/standalone/src/lib/session-providers/opencodeProvider.test.ts +170 -0
- package/.next/standalone/src/lib/session-providers/opencodeProvider.ts +721 -0
- package/.next/standalone/src/lib/session-providers/opencodeSdkCompat.ts +92 -0
- package/.next/standalone/src/lib/session-providers/providerIds.test.ts +337 -0
- package/.next/standalone/src/lib/session-providers/providerIds.ts +176 -0
- package/.next/standalone/src/lib/session-providers/types.ts +131 -0
- package/.next/standalone/src/lib/transform.test.ts +253 -0
- package/.next/standalone/src/lib/transform.ts +96 -37
- package/.next/standalone/src/types/index.ts +23 -17
- package/.next/standalone/src/types/opencodeConfig.ts +55 -0
- package/.next/static/chunks/9e790b67c80f853c.js +13 -0
- package/.next/static/chunks/c3dc8cd80979c971.css +3 -0
- package/.next/trace +1 -1
- package/.next/trace-build +1 -1
- package/.next/types/routes.d.ts +2 -1
- package/.next/types/validator.ts +9 -0
- package/README.md +54 -5
- package/package.json +2 -2
- package/.next/server/chunks/[root-of-the-server]__1211da38._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1211da38._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__192ed2f4._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__2b526e7a._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__2b526e7a._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__2f981540._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__2f981540._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__3745b314._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__3745b314._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__56690af0._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__56690af0._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__56f5f249._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__56f5f249._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__59175de4._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__59175de4._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__64fffc02._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__64fffc02._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__6924c09d._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__6c428a24._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__6c428a24._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__73a00b88._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__73a00b88._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__7e757f50._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__7e757f50._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__89c5eeab._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__89c5eeab._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__8da6c5a8._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__8da6c5a8._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__b796d06c._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__b796d06c._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__c2ce5c0f._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__c2ce5c0f._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__db285678._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__db285678._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__e00a9200._.js +0 -5
- package/.next/server/chunks/[root-of-the-server]__e00a9200._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__e5df5e5f._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__e5df5e5f._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__edbc8d9e._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__edbc8d9e._.js.map +0 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1211da38._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__192ed2f4._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2b526e7a._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__2f981540._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__3745b314._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__56690af0._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__56f5f249._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__59175de4._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__64fffc02._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6924c09d._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6c428a24._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__73a00b88._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__7e757f50._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__89c5eeab._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__8da6c5a8._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b796d06c._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__c2ce5c0f._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__db285678._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e00a9200._.js +0 -5
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__e5df5e5f._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__edbc8d9e._.js +0 -3
- package/.next/standalone/.next/static/chunks/65d5354ba0add961.js +0 -13
- package/.next/standalone/.next/static/chunks/f42202943f6742e5.css +0 -3
- package/.next/static/chunks/65d5354ba0add961.js +0 -13
- package/.next/static/chunks/f42202943f6742e5.css +0 -3
- /package/.next/standalone/.next/static/{5kq9DtuBFVxu4jsgmL5Q- → 0WaQ6UjiNBgvh531pJVh0}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{5kq9DtuBFVxu4jsgmL5Q- → 0WaQ6UjiNBgvh531pJVh0}/_clientMiddlewareManifest.json +0 -0
- /package/.next/standalone/.next/static/{5kq9DtuBFVxu4jsgmL5Q- → 0WaQ6UjiNBgvh531pJVh0}/_ssgManifest.js +0 -0
- /package/.next/static/{5kq9DtuBFVxu4jsgmL5Q- → 0WaQ6UjiNBgvh531pJVh0}/_buildManifest.js +0 -0
- /package/.next/static/{5kq9DtuBFVxu4jsgmL5Q- → 0WaQ6UjiNBgvh531pJVh0}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{5kq9DtuBFVxu4jsgmL5Q- → 0WaQ6UjiNBgvh531pJVh0}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,52683,e=>{"use strict";let t,r,n;var a,s,i,o,l,d,c,u,m=e.i(43476),h=e.i(71645),p=e.i(75555),f=e.i(40143),x=e.i(86491),g=e.i(15823),b=e.i(93803),y=e.i(19273),v=e.i(80166),k=class extends g.Subscribable{constructor(e,t){super(),this.options=t,this.#e=e,this.#t=null,this.#r=(0,b.pendingThenable)(),this.bindMethods(),this.setOptions(t)}#e;#n=void 0;#a=void 0;#s=void 0;#i;#o;#r;#t;#l;#d;#c;#u;#m;#h;#p=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#n.addObserver(this),w(this.#n,this.options)?this.#f():this.updateResult(),this.#x())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return j(this.#n,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return j(this.#n,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#g(),this.#b(),this.#n.removeObserver(this)}setOptions(e){let t=this.options,r=this.#n;if(this.options=this.#e.defaultQueryOptions(e),void 0!==this.options.enabled&&"boolean"!=typeof this.options.enabled&&"function"!=typeof this.options.enabled&&"boolean"!=typeof(0,y.resolveEnabled)(this.options.enabled,this.#n))throw Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#y(),this.#n.setOptions(this.options),t._defaulted&&!(0,y.shallowEqualObjects)(this.options,t)&&this.#e.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#n,observer:this});let n=this.hasListeners();n&&z(this.#n,r,this.options,t)&&this.#f(),this.updateResult(),n&&(this.#n!==r||(0,y.resolveEnabled)(this.options.enabled,this.#n)!==(0,y.resolveEnabled)(t.enabled,this.#n)||(0,y.resolveStaleTime)(this.options.staleTime,this.#n)!==(0,y.resolveStaleTime)(t.staleTime,this.#n))&&this.#v();let a=this.#k();n&&(this.#n!==r||(0,y.resolveEnabled)(this.options.enabled,this.#n)!==(0,y.resolveEnabled)(t.enabled,this.#n)||a!==this.#h)&&this.#w(a)}getOptimisticResult(e){var t,r;let n=this.#e.getQueryCache().build(this.#e,e),a=this.createResult(n,e);return t=this,r=a,(0,y.shallowEqualObjects)(t.getCurrentResult(),r)||(this.#s=a,this.#o=this.options,this.#i=this.#n.state),a}getCurrentResult(){return this.#s}trackResult(e,t){return new Proxy(e,{get:(e,r)=>(this.trackProp(r),t?.(r),"promise"===r&&(this.trackProp("data"),this.options.experimental_prefetchInRender||"pending"!==this.#r.status||this.#r.reject(Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(e,r))})}trackProp(e){this.#p.add(e)}getCurrentQuery(){return this.#n}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),r=this.#e.getQueryCache().build(this.#e,t);return r.fetch().then(()=>this.createResult(r,t))}fetch(e){return this.#f({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#s))}#f(e){this.#y();let t=this.#n.fetch(this.options,e);return e?.throwOnError||(t=t.catch(y.noop)),t}#v(){this.#g();let e=(0,y.resolveStaleTime)(this.options.staleTime,this.#n);if(y.isServer||this.#s.isStale||!(0,y.isValidTimeout)(e))return;let t=(0,y.timeUntilStale)(this.#s.dataUpdatedAt,e);this.#u=v.timeoutManager.setTimeout(()=>{this.#s.isStale||this.updateResult()},t+1)}#k(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#n):this.options.refetchInterval)??!1}#w(e){this.#b(),this.#h=e,!y.isServer&&!1!==(0,y.resolveEnabled)(this.options.enabled,this.#n)&&(0,y.isValidTimeout)(this.#h)&&0!==this.#h&&(this.#m=v.timeoutManager.setInterval(()=>{(this.options.refetchIntervalInBackground||p.focusManager.isFocused())&&this.#f()},this.#h))}#x(){this.#v(),this.#w(this.#k())}#g(){this.#u&&(v.timeoutManager.clearTimeout(this.#u),this.#u=void 0)}#b(){this.#m&&(v.timeoutManager.clearInterval(this.#m),this.#m=void 0)}createResult(e,t){let r,n=this.#n,a=this.options,s=this.#s,i=this.#i,o=this.#o,l=e!==n?e.state:this.#a,{state:d}=e,c={...d},u=!1;if(t._optimisticResults){let r=this.hasListeners(),s=!r&&w(e,t),i=r&&z(e,n,t,a);(s||i)&&(c={...c,...(0,x.fetchState)(d.data,e.options)}),"isRestoring"===t._optimisticResults&&(c.fetchStatus="idle")}let{error:m,errorUpdatedAt:h,status:p}=c;r=c.data;let f=!1;if(void 0!==t.placeholderData&&void 0===r&&"pending"===p){let e;s?.isPlaceholderData&&t.placeholderData===o?.placeholderData?(e=s.data,f=!0):e="function"==typeof t.placeholderData?t.placeholderData(this.#c?.state.data,this.#c):t.placeholderData,void 0!==e&&(p="success",r=(0,y.replaceData)(s?.data,e,t),u=!0)}if(t.select&&void 0!==r&&!f)if(s&&r===i?.data&&t.select===this.#l)r=this.#d;else try{this.#l=t.select,r=t.select(r),r=(0,y.replaceData)(s?.data,r,t),this.#d=r,this.#t=null}catch(e){this.#t=e}this.#t&&(m=this.#t,r=this.#d,h=Date.now(),p="error");let g="fetching"===c.fetchStatus,v="pending"===p,k="error"===p,j=v&&g,S=void 0!==r,C={status:p,fetchStatus:c.fetchStatus,isPending:v,isSuccess:"success"===p,isError:k,isInitialLoading:j,isLoading:j,data:r,dataUpdatedAt:c.dataUpdatedAt,error:m,errorUpdatedAt:h,failureCount:c.fetchFailureCount,failureReason:c.fetchFailureReason,errorUpdateCount:c.errorUpdateCount,isFetched:c.dataUpdateCount>0||c.errorUpdateCount>0,isFetchedAfterMount:c.dataUpdateCount>l.dataUpdateCount||c.errorUpdateCount>l.errorUpdateCount,isFetching:g,isRefetching:g&&!v,isLoadingError:k&&!S,isPaused:"paused"===c.fetchStatus,isPlaceholderData:u,isRefetchError:k&&S,isStale:N(e,t),refetch:this.refetch,promise:this.#r,isEnabled:!1!==(0,y.resolveEnabled)(t.enabled,e)};if(this.options.experimental_prefetchInRender){let t=void 0!==C.data,r="error"===C.status&&!t,a=e=>{r?e.reject(C.error):t&&e.resolve(C.data)},s=()=>{a(this.#r=C.promise=(0,b.pendingThenable)())},i=this.#r;switch(i.status){case"pending":e.queryHash===n.queryHash&&a(i);break;case"fulfilled":(r||C.data!==i.value)&&s();break;case"rejected":r&&C.error===i.reason||s()}}return C}updateResult(){let e=this.#s,t=this.createResult(this.#n,this.options);if(this.#i=this.#n.state,this.#o=this.options,void 0!==this.#i.data&&(this.#c=this.#n),(0,y.shallowEqualObjects)(t,e))return;this.#s=t;let r=()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,r="function"==typeof t?t():t;if("all"===r||!r&&!this.#p.size)return!0;let n=new Set(r??this.#p);return this.options.throwOnError&&n.add("error"),Object.keys(this.#s).some(t=>this.#s[t]!==e[t]&&n.has(t))};this.#j({listeners:r()})}#y(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#n)return;let t=this.#n;this.#n=e,this.#a=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#x()}#j(e){f.notifyManager.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#s)}),this.#e.getQueryCache().notify({query:this.#n,type:"observerResultsUpdated"})})}};function w(e,t){return!1!==(0,y.resolveEnabled)(t.enabled,e)&&void 0===e.state.data&&("error"!==e.state.status||!1!==t.retryOnMount)||void 0!==e.state.data&&j(e,t,t.refetchOnMount)}function j(e,t,r){if(!1!==(0,y.resolveEnabled)(t.enabled,e)&&"static"!==(0,y.resolveStaleTime)(t.staleTime,e)){let n="function"==typeof r?r(e):r;return"always"===n||!1!==n&&N(e,t)}return!1}function z(e,t,r,n){return(e!==t||!1===(0,y.resolveEnabled)(n.enabled,e))&&(!r.suspense||"error"!==e.state.status)&&N(e,r)}function N(e,t){return!1!==(0,y.resolveEnabled)(t.enabled,e)&&e.isStaleByTime((0,y.resolveStaleTime)(t.staleTime,e))}e.i(47167);var S=e.i(12598),C=h.createContext((r=!1,{clearReset:()=>{r=!1},reset:()=>{r=!0},isReset:()=>r})),E=h.createContext(!1);E.Provider;var R=(e,t,r)=>t.fetchOptimistic(e).catch(()=>{r.clearReset()});function A(e,t){return function(e,t,r){let n,a=h.useContext(E),s=h.useContext(C),i=(0,S.useQueryClient)(r),o=i.defaultQueryOptions(e);i.getDefaultOptions().queries?._experimental_beforeQuery?.(o);let l=i.getQueryCache().get(o.queryHash);if(o._optimisticResults=a?"isRestoring":"optimistic",o.suspense){let e=e=>"static"===e?e:Math.max(e??1e3,1e3),t=o.staleTime;o.staleTime="function"==typeof t?(...r)=>e(t(...r)):e(t),"number"==typeof o.gcTime&&(o.gcTime=Math.max(o.gcTime,1e3))}n=l?.state.error&&"function"==typeof o.throwOnError?(0,y.shouldThrowError)(o.throwOnError,[l.state.error,l]):o.throwOnError,(o.suspense||o.experimental_prefetchInRender||n)&&!s.isReset()&&(o.retryOnMount=!1),h.useEffect(()=>{s.clearReset()},[s]);let d=!i.getQueryCache().get(o.queryHash),[c]=h.useState(()=>new t(i,o)),u=c.getOptimisticResult(o),m=!a&&!1!==e.subscribed;if(h.useSyncExternalStore(h.useCallback(e=>{let t=m?c.subscribe(f.notifyManager.batchCalls(e)):y.noop;return c.updateResult(),t},[c,m]),()=>c.getCurrentResult(),()=>c.getCurrentResult()),h.useEffect(()=>{c.setOptions(o)},[o,c]),o?.suspense&&u.isPending)throw R(o,c,s);if((({result:e,errorResetBoundary:t,throwOnError:r,query:n,suspense:a})=>e.isError&&!t.isReset()&&!e.isFetching&&n&&(a&&void 0===e.data||(0,y.shouldThrowError)(r,[e.error,n])))({result:u,errorResetBoundary:s,throwOnError:o.throwOnError,query:l,suspense:o.suspense}))throw u.error;if(i.getDefaultOptions().queries?._experimental_afterQuery?.(o,u),o.experimental_prefetchInRender&&!y.isServer&&u.isLoading&&u.isFetching&&!a){let e=d?R(o,c,s):l?.promise;e?.catch(y.noop).finally(()=>{c.updateResult()})}return o.notifyOnChangeProps?u:c.trackResult(u)}(e,k,t)}let T=[{textClass:"text-blue-500 dark:text-blue-400"},{textClass:"text-emerald-500 dark:text-emerald-400"},{textClass:"text-amber-500 dark:text-amber-400"},{textClass:"text-violet-500 dark:text-violet-400"},{textClass:"text-cyan-500 dark:text-cyan-400"}];function O(e,t){return e||t?T[function(e,t){let r=`${e??""}:${t??""}`,n=0;for(let e=0;e<r.length;e+=1)n=31*n+r.charCodeAt(e)>>>0;return n%T.length}(e,t)].textClass:"text-zinc-400 dark:text-zinc-500"}function M(e){return"string"==typeof e&&e.trim()?e:null}function F(e,t){switch(M(e?.reason)){case"unauthorized":return"Remote node rejected the request. Check node access token settings.";case"session_not_found":return"Session was not found.";case"forbidden":case"node_request_failed_403":return"Remote node denied the request.";case"unsupported_node_version":case"node_request_failed_404":case"node_request_failed_501":return"Remote node does not support this action yet.";case"upstream_timeout":return"Remote node did not respond in time.";case"upstream_unreachable":return"Remote node is offline or unreachable.";case"editor_unavailable":return"Remote node could not open the editor on that machine.";case"invalid_action_session_id":return"The selected session id is invalid.";default:return M(e?.error)??M(e?.message)??t}}function I(e){return"idle"!==e.realTimeStatus||!!e.waitingForUser||Date.now()-e.updatedAt<=6e4}function L(e){let t=Date.now()-e,r=Math.floor(t/6e4),n=Math.floor(t/36e5),a=Math.floor(t/864e5);return r<1?"<1m":n<1?`${r}m`:a<1?`${n}h`:`${a}d`}function _(e,t){return t?[...e,`Reason: ${t}`].join("\n"):e.join("\n")}function P({status:e,waitingForUser:t,provider:r}){let n="claude-code"===r,a=n?"rotate-45 rounded-[1px]":"rounded-full",s=n?"h-[7px] w-[7px]":"h-2 w-2";if(t)return(0,m.jsxs)("span",{className:`relative flex ${s} flex-shrink-0`,title:"Waiting",children:[(0,m.jsx)("span",{className:`animate-ping absolute inline-flex h-full w-full ${a} bg-amber-400 opacity-75`}),(0,m.jsx)("span",{className:`relative inline-flex ${s} ${a} bg-amber-500`})]});switch(e){case"busy":return(0,m.jsxs)("span",{className:`relative flex ${s} flex-shrink-0`,title:"Running",children:[(0,m.jsx)("span",{className:`animate-pulse absolute inline-flex h-full w-full ${a} bg-emerald-400 opacity-75`}),(0,m.jsx)("span",{className:`relative inline-flex ${s} ${a} bg-emerald-500`})]});case"retry":return(0,m.jsxs)("span",{className:`relative flex ${s} flex-shrink-0`,title:"Retrying",children:[(0,m.jsx)("span",{className:`animate-ping absolute inline-flex h-full w-full ${a} bg-red-400 opacity-75`}),(0,m.jsx)("span",{className:`relative inline-flex ${s} ${a} bg-red-500`})]});default:return(0,m.jsx)("span",{className:`inline-flex ${s} bg-gray-400 flex-shrink-0 ${a}`,title:"Idle"})}}function D({cards:e,isActionPending:t,onActionError:r,onPendingActionChange:n,readOnlyMode:a}){let s=(0,S.useQueryClient)(),[i,o]=(0,h.useState)(!1),l=(0,h.useRef)(null);(0,h.useEffect)(()=>{if(!i)return;let e=e=>{l.current&&!l.current.contains(e.target)&&o(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[i]);let d=!a&&e.some(e=>e.capabilities?e.capabilities.archive:!e.readOnly),c=!a&&e.some(e=>e.capabilities?e.capabilities.delete:!e.readOnly);if(!d&&!c)return null;let u=new Set(e.map(e=>e.hostId??"local")).size>1,p=async a=>{if(a.stopPropagation(),t)return;if(r(null),u){r("Mixed-host archive is not supported"),o(!1);return}let i=e.filter(e=>"done"!==e.status&&(e.capabilities?e.capabilities.archive:!e.readOnly));if(0===i.length)return void o(!1);n("archive");try{let e=(await Promise.all(i.map(e=>fetch(`/api/sessions/${e.id}/archive`,{method:"POST"})))).find(e=>!e.ok);if(e){let t=await e.json().catch(()=>null);r(F(t,"Failed to archive sessions"))}}catch{r("Remote node is offline or unreachable.")}finally{n(null)}o(!1),await s.invalidateQueries({queryKey:["sessions"]})},f=async a=>{if(a.stopPropagation(),t)return;if(r(null),u){r("Mixed-host restore is not supported"),o(!1);return}let i=e.filter(e=>"done"===e.status&&(e.capabilities?e.capabilities.archive:!e.readOnly));if(0===i.length)return void o(!1);n("restore");try{let e=(await Promise.all(i.map(e=>fetch(`/api/sessions/${e.id}/restore`,{method:"POST"})))).find(e=>!e.ok);if(e){let t=await e.json().catch(()=>null);r(F(t,"Failed to restore sessions"))}}catch{r("Remote node is offline or unreachable.")}finally{n(null)}o(!1),await s.invalidateQueries({queryKey:["sessions"]})},x=async a=>{if(a.stopPropagation(),t)return;if(r(null),u){r("Mixed-host delete is not supported"),o(!1);return}let i=e.filter(e=>e.capabilities?e.capabilities.delete:!e.readOnly);if(0===i.length)return void o(!1);if(confirm(`Delete ${i.length} session(s)? This cannot be undone.`)){n("delete");try{let e=(await Promise.all(i.map(e=>fetch(`/api/sessions/${e.id}/delete`,{method:"POST"})))).find(e=>!e.ok);if(e){let t=await e.json().catch(()=>null);r(F(t,"Failed to delete sessions"))}}catch{r("Remote node is offline or unreachable.")}finally{n(null)}o(!1),await s.invalidateQueries({queryKey:["sessions"]})}},g=!a&&e.some(e=>"done"!==e.status&&(e.capabilities?e.capabilities.archive:!e.readOnly)),b=!a&&e.some(e=>"done"===e.status&&(e.capabilities?e.capabilities.archive:!e.readOnly));return(0,m.jsxs)("div",{className:"relative",ref:l,children:[(0,m.jsx)("button",{type:"button",className:"w-5 h-5 flex items-center justify-center rounded-full text-gray-400 hover:text-gray-700 hover:bg-gray-200/80 dark:text-gray-400 dark:hover:text-gray-200 dark:hover:bg-zinc-600 transition-colors",onClick:e=>{e.stopPropagation(),t||o(!i)},title:"Batch actions",disabled:t,children:(0,m.jsx)("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:(0,m.jsx)("path",{d:"M5 10a2 2 0 110 4 2 2 0 010-4zm7 0a2 2 0 110 4 2 2 0 010-4zm7 0a2 2 0 110 4 2 2 0 010-4z"})})}),i&&(0,m.jsxs)("div",{className:"absolute right-0 top-6 w-32 rounded-md border border-gray-200 bg-white shadow-lg dark:border-zinc-700 dark:bg-zinc-900 z-20",children:[g&&(0,m.jsx)("button",{type:"button",className:"w-full text-left px-3 py-1.5 text-xs text-gray-700 hover:bg-gray-50 dark:text-gray-200 dark:hover:bg-zinc-800",onClick:p,disabled:t,children:"Archive all"}),b&&(0,m.jsx)("button",{type:"button",className:"w-full text-left px-3 py-1.5 text-xs text-gray-700 hover:bg-gray-50 dark:text-gray-200 dark:hover:bg-zinc-800",onClick:f,disabled:t,children:"Restore all"}),c&&(0,m.jsx)("button",{type:"button",className:"w-full text-left px-3 py-1.5 text-xs text-red-600 hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-900/20",onClick:x,disabled:t,children:"Delete all"})]})]})}function V({card:e,isActionPending:t,onActionError:r,onPendingActionChange:n,readOnlyMode:a}){let s=(0,S.useQueryClient)(),[i,o]=(0,h.useState)(!1),l=(0,h.useRef)(null);(0,h.useEffect)(()=>{if(!i)return;let e=e=>{l.current&&!l.current.contains(e.target)&&o(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[i]);let d=!a&&(e.capabilities?e.capabilities.archive:!e.readOnly),c=!a&&(e.capabilities?e.capabilities.delete:!e.readOnly);if(!d&&!c)return null;let u=async a=>{if(a.stopPropagation(),!t){r(null),n("archive");try{let t=await fetch(`/api/sessions/${e.id}/archive`,{method:"POST"});if(!t.ok){let e=await t.json().catch(()=>null);r(F(e,"Failed to archive session"))}}catch{r("Remote node is offline or unreachable.")}finally{n(null),o(!1),await s.invalidateQueries({queryKey:["sessions"]})}}},p=async a=>{if(a.stopPropagation(),!t){r(null),n("restore");try{let t=await fetch(`/api/sessions/${e.id}/restore`,{method:"POST"});if(!t.ok){let e=await t.json().catch(()=>null);r(F(e,"Failed to restore session"))}}catch{r("Remote node is offline or unreachable.")}finally{n(null),o(!1),await s.invalidateQueries({queryKey:["sessions"]})}}},f=async a=>{if(a.stopPropagation(),!t){r(null),n("delete");try{let t=await fetch(`/api/sessions/${e.id}/delete`,{method:"POST"});if(!t.ok){let e=await t.json().catch(()=>null);r(F(e,"Failed to delete session"))}}catch{r("Remote node is offline or unreachable.")}finally{n(null),o(!1),await s.invalidateQueries({queryKey:["sessions"]})}}};return(0,m.jsxs)("div",{className:"relative flex-shrink-0",ref:l,children:[(0,m.jsx)("button",{type:"button",className:"w-5 h-5 flex items-center justify-center rounded text-gray-400 hover:text-gray-600 hover:bg-gray-200 dark:text-gray-500 dark:hover:text-gray-300 dark:hover:bg-zinc-600 transition-colors",onClick:e=>{e.stopPropagation(),t||o(!i)},title:"Actions",disabled:t,children:(0,m.jsx)("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:(0,m.jsx)("path",{d:"M5 10a2 2 0 110 4 2 2 0 010-4zm7 0a2 2 0 110 4 2 2 0 010-4zm7 0a2 2 0 110 4 2 2 0 010-4z"})})}),i&&(0,m.jsxs)("div",{className:"absolute right-0 top-6 w-28 rounded-md border border-gray-200 bg-white shadow-lg dark:border-zinc-700 dark:bg-zinc-900 z-20",children:["done"!==e.status&&d&&(0,m.jsx)("button",{type:"button",className:"w-full text-left px-3 py-1.5 text-xs text-gray-700 hover:bg-gray-50 dark:text-gray-200 dark:hover:bg-zinc-800",onClick:u,disabled:t,children:"Archive"}),"done"===e.status&&d&&(0,m.jsx)("button",{type:"button",className:"w-full text-left px-3 py-1.5 text-xs text-gray-700 hover:bg-gray-50 dark:text-gray-200 dark:hover:bg-zinc-800",onClick:p,disabled:t,children:"Restore"}),c&&(0,m.jsx)("button",{type:"button",className:"w-full text-left px-3 py-1.5 text-xs text-red-600 hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-900/20",onClick:f,disabled:t,children:"Delete"})]})]})}function $({card:e,isLast:t,isActionPending:r,onActionError:n,onPendingActionChange:a,readOnlyMode:s}){let[i,o]=(0,h.useState)(!0),l=(e.children||[]).filter(I),d=l.length>0,c=_([e.title||"Untitled Session",`Active ${L(e.updatedAt)} ago`,`Started ${L(e.createdAt)} ago`],e.debugReason);return(0,m.jsxs)("div",{className:t?"":"border-b border-gray-50 dark:border-zinc-700/30",children:[(0,m.jsxs)("div",{className:"group/row flex items-center gap-2.5 px-3 py-2 hover:bg-gray-50 dark:hover:bg-zinc-700/30 transition-colors",title:c,children:[d&&(0,m.jsx)("button",{type:"button",onClick:e=>{e.stopPropagation(),o(!i)},className:"w-3 h-3 flex items-center justify-center text-gray-400 hover:text-gray-600 dark:text-gray-500 dark:hover:text-gray-300 flex-shrink-0 transition-transform",title:i?"Collapse subagents":"Expand subagents",children:(0,m.jsx)("svg",{className:`w-2.5 h-2.5 transition-transform duration-150 ${i?"rotate-90":""}`,viewBox:"0 0 6 10",fill:"currentColor","aria-hidden":"true",children:(0,m.jsx)("path",{d:"M1 1l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,m.jsx)(P,{status:e.opencodeStatus,waitingForUser:e.waitingForUser,provider:e.provider}),(0,m.jsx)("span",{className:"text-sm text-gray-700 dark:text-gray-300 truncate flex-1 min-w-0",children:e.title||"Untitled Session"}),d&&!i&&(0,m.jsxs)("span",{className:"text-[9px] font-medium text-gray-400 dark:text-gray-500 bg-gray-100 dark:bg-zinc-700 px-1 py-0.5 rounded flex-shrink-0",children:[l.length," sub"]}),(0,m.jsx)("span",{className:"text-[10px] text-gray-400 dark:text-gray-500 flex-shrink-0 tabular-nums group-hover/row:hidden",children:L(e.updatedAt)}),(0,m.jsx)("div",{className:"hidden group-hover/row:flex flex-shrink-0",children:(0,m.jsx)(V,{card:e,isActionPending:r,onActionError:n,onPendingActionChange:a,readOnlyMode:s})})]}),d&&i&&(0,m.jsx)("div",{className:"bg-gray-50/50 dark:bg-zinc-800/30",children:l.map((t,r)=>(0,m.jsxs)("div",{className:"flex items-center gap-2 pl-8 pr-3 py-1.5 hover:bg-gray-100/50 dark:hover:bg-zinc-700/20 transition-colors",title:_([t.title||"Subagent"],t.debugReason),children:[(0,m.jsx)("span",{className:"text-gray-300 dark:text-zinc-600 text-xs flex-shrink-0 font-mono leading-none",children:r===l.length-1?"└":"├"}),(0,m.jsx)(P,{status:t.realTimeStatus,waitingForUser:t.waitingForUser,provider:e.provider}),(0,m.jsx)("span",{className:"text-xs text-gray-500 dark:text-gray-400 truncate flex-1 min-w-0",children:t.title||"Subagent"})]},t.id))})]})}function U({projectName:e,branch:t,cards:r,readOnly:n=!1,hostLabel:a,multipleHostsEnabled:s}){let i=(0,h.useMemo)(()=>{let e=new Set;for(let t of r)for(let r of t.children||[])e.add(r.id);return e},[r]),o=(0,h.useMemo)(()=>r.filter(e=>!i.has(e.id)||(e.children?.length??0)>0),[r,i]),l=o[0]??r[0],d=o[0]??l,c=a??l?.hostLabel,u=d?.hostId??l?.hostId,p=c&&(s||"Local"!==c),f=O(u,c),[x,g]=(0,h.useState)(null),[b,y]=(0,h.useState)(null),[v,k]=(0,h.useState)(()=>window.localStorage.getItem("vibepulse:open-tool")||"vscode"),{data:w,isLoading:j,isError:z}=A({queryKey:["opencode-config"],queryFn:async()=>{let e=await fetch("/api/opencode-config");if(!e.ok)throw Error("Failed to load config");return e.json()},staleTime:3e4}),N=(0,h.useMemo)(()=>{let e=window.localStorage.getItem("vibepulse:ssh-host");if(e)return e;let t=d?.hostBaseUrl;if(t&&d?.hostId!=="local")try{return new URL(t).hostname}catch{}let r=window.location.hostname;return r&&"localhost"!==r&&"127.0.0.1"!==r?r:""},[d?.hostBaseUrl,d?.hostId]),S=null!==b,C=!!n,E="open"===b?"Opening…":"archive"===b?"Archiving…":"restore"===b?"Restoring…":"delete"===b?"Deleting…":null,R=!!d&&void 0!==d.hostId&&"local"!==d.hostId,T=R&&j&&!w,M=R&&!w&&!j;return(0,m.jsxs)("article",{className:"w-full bg-white dark:bg-zinc-800 rounded-xl shadow-sm border border-gray-200 dark:border-zinc-700 hover:shadow-lg hover:border-gray-300 dark:hover:border-zinc-600 transition-all duration-200 overflow-visible",children:[(0,m.jsxs)("div",{className:"group/header flex items-center gap-2 px-3 py-2.5 hover:bg-gray-50 dark:hover:bg-zinc-700/30 transition-colors",children:[(0,m.jsx)("div",{className:`flex items-center justify-center flex-shrink-0 ${p?f:"text-blue-500 dark:text-blue-400"}`,title:p?`Source: ${c}`:void 0,children:(0,m.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,m.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"})})}),(0,m.jsx)("div",{className:"flex-1 min-w-0 flex items-center gap-2",children:(0,m.jsx)("span",{className:"text-sm font-semibold text-gray-800 dark:text-gray-200 truncate",children:e})}),(0,m.jsxs)("div",{className:"flex items-center flex-shrink-0 bg-gray-100 dark:bg-zinc-700/50 rounded-full h-6 border border-gray-200/50 dark:border-zinc-700",children:[o.length>1&&(0,m.jsx)("span",{className:"text-[11px] font-medium text-gray-500 dark:text-gray-400 pl-2.5 pr-1",children:o.length}),(0,m.jsx)("div",{className:`${o.length>1?"pr-0.5":"px-0.5"}`,children:(0,m.jsx)(D,{cards:o,isActionPending:S,onActionError:g,onPendingActionChange:y,readOnlyMode:C})})]})]}),(0,m.jsx)("div",{className:"border-t border-gray-100 dark:border-zinc-700/50",children:o.map((e,t)=>(0,m.jsx)($,{card:e,isLast:t===o.length-1,isActionPending:S,onActionError:g,onPendingActionChange:y,readOnlyMode:C},e.id))}),(t||d?.directory)&&(0,m.jsxs)("div",{className:"flex items-center justify-between gap-2 px-3 py-1.5 border-t border-gray-100 dark:border-zinc-700/50 bg-gray-50/50 dark:bg-zinc-800/50",children:[(0,m.jsx)("div",{className:"min-w-0 flex-1 text-[10px] text-gray-400 dark:text-gray-500 truncate",children:t?(0,m.jsx)("span",{className:"truncate",title:t,children:t}):null}),(0,m.jsxs)("div",{className:"flex items-center justify-end gap-1.5 flex-shrink-0",children:[(0,m.jsxs)("select",{className:"text-[10px] rounded border border-gray-200 bg-white px-1 py-0.5 text-gray-500 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-700 dark:bg-zinc-900 dark:text-gray-400 focus:outline-none",value:v,onClick:e=>e.stopPropagation(),onChange:e=>{k(e.target.value),window.localStorage.setItem("vibepulse:open-tool",e.target.value)},title:"Select open tool",disabled:C||S||T||M,children:[(0,m.jsx)("option",{value:"vscode",children:"VSCode"}),(0,m.jsx)("option",{value:"antigravity",children:"Antigravity"})]}),(0,m.jsxs)("button",{type:"button",onClick:()=>{if(C||S||T)return;if(M)return void g("Failed to load open settings. Remote open is unavailable until configuration loads.");let e=d?.directory;if(!e)return;g(null);let t=w?.vibepulse?.openEditorTargetMode==="hub"?"hub":"remote",r=d?.hostId!==void 0&&"local"!==d.hostId,n=!d?.capabilities||d.capabilities.openEditor;if(r&&"hub"===t&&"antigravity"===v)return void g("Antigravity does not support hub-mode remote opens. Use VS Code or switch target mode to Remote node.");if(r&&"remote"===t&&!n&&"antigravity"===v)return void g("Antigravity cannot open remote sessions without remote editor support. Use VS Code.");let a=r&&"vscode"===v&&("hub"===t||"remote"===t&&!n),s=function(e,t,r={}){let n=encodeURI(t.replace(/\\/g,"/")),a="string"==typeof r.remoteSshHost?r.remoteSshHost.trim():"";return"antigravity"===e?`antigravity://file${n.startsWith("/")?n:`/${n}`}`:a?`vscode://vscode-remote/ssh-remote+${a}${n.startsWith("/")?"":"/"}${n}`:`vscode://file${n.startsWith("/")?n:`/${n}`}`}("antigravity"===v?"antigravity":"vscode",e,{remoteSshHost:a?N:null});r&&"remote"===t&&n?(async()=>{y("open");try{let e=await fetch(`/api/sessions/${d.id}/open-editor`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tool:v})});if(!e.ok){let t=await e.json().catch(()=>null);g(F(t,"Failed to open remote editor"))}}catch{g("Remote node is offline or unreachable.")}finally{y(null)}})():window.location.assign(s)},className:"flex items-center gap-1 px-2 py-0.5 rounded-md text-[10px] font-medium text-gray-500 hover:text-blue-600 hover:bg-blue-50 disabled:cursor-not-allowed disabled:opacity-50 dark:text-gray-400 dark:hover:text-blue-400 dark:hover:bg-blue-900/20 transition-colors",title:"Open project",disabled:C||S||T||M,children:[(0,m.jsx)("svg",{className:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,m.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})}),"Open"]})]})]}),x?(0,m.jsx)("div",{className:"border-t border-red-100 bg-red-50 px-3 py-2 text-xs text-red-700 dark:border-red-900/40 dark:bg-red-900/20 dark:text-red-300",children:x}):null,z&&M?(0,m.jsx)("div",{className:"border-t border-red-100 bg-red-50 px-3 py-2 text-xs text-red-700 dark:border-red-900/40 dark:bg-red-900/20 dark:text-red-300",children:"Failed to load open settings. Remote open is unavailable until configuration loads."}):null,T?(0,m.jsx)("div",{className:"border-t border-blue-100 bg-blue-50 px-3 py-2 text-xs text-blue-700 dark:border-blue-900/40 dark:bg-blue-900/20 dark:text-blue-300",children:"Loading open settings…"}):null,E?(0,m.jsx)("div",{className:"border-t border-blue-100 bg-blue-50 px-3 py-2 text-xs text-blue-700 dark:border-blue-900/40 dark:bg-blue-900/20 dark:text-blue-300",children:E}):null]})}function q(e,t){if(!e||""===e.trim())throw Error("Invalid hostId: cannot be empty");if(!t||""===t.trim())throw Error("Invalid sessionId: cannot be empty");if(e.includes(":")||t.includes(":"))throw Error("Invalid hostId or sessionId: colon character not allowed");return`${e}:${t}`}function B(e){try{let{sessionId:t}=function(e){if("string"!=typeof e)throw Error("Invalid sourceKey: must be a string");let t=e.split(":");if(2!==t.length)throw Error("Invalid sourceKey: must contain exactly one colon separator");let[r,n]=t,a=r.trim(),s=n.trim();if(""===a||""===s)throw Error("Invalid sourceKey: hostId and sessionId cannot be empty");return{hostId:a,sessionId:s}}(e);return t}catch{return null}}let H={provider:"opencode",readOnly:!1,capabilities:{openProject:!0,openEditor:!0,archive:!0,delete:!0},topology:{childSessions:"authoritative"}},W={provider:"claude-code",readOnly:!0,capabilities:{openProject:!0,openEditor:!1,archive:!0,delete:!0},topology:{childSessions:"flat"}};function K(e){return"claude-code"===e?W:H}function Q(e){let t=e?.time?.updated||e?.time?.created;return"number"==typeof t&&t>0?t:void 0}function J(e,t){return"number"==typeof e&&e>0&&t-e<=3e5}function G(e,t){if(!t)return!1;let r=t.realTimeStatus||"idle",n=t?.provider??e.provider??H.provider;return"retry"===r||("claude-code"===n?!!t.waitingForUser:"busy"===r&&!!t.waitingForUser)}function Y(e,t,r){if(!t||!G(e,t))return!1;let n=Q(t);return void 0!==n&&r-n<6e5}function X(e,t,r){if(!t)return;if(t.debugReason)return t.debugReason;let n=t.realTimeStatus||"idle";return G(e,t)?"waiting_for_user":"busy"===n?J(Q(t),r)?"child_recent_activity":"child_unknown_fallback":void 0}function Z(e){let t,r=(e.children||[]).filter(t=>!t||"claude-code"!==t.provider||"claude-code"===(e.provider??H.provider)&&"string"==typeof t.id&&t.id.length>0&&t.id!==e.id&&t.parentID===e.id&&void 0!==Q(t)),n="string"==typeof e.slug?e.slug:"",a=Date.now(),s=e.realTimeStatus||"idle",i=r.some(e=>{let t=e.realTimeStatus||"idle";return"busy"===t||"retry"===t}),o=r.some(t=>Y(e,t,a)),l="retry"===s?"retry":"busy"===s||i||o?"busy":"idle",d=!!e.waitingForUser,c="retry"===l||d||o,u=r.find(e=>{let t=e.realTimeStatus||"idle";return"busy"===t||"retry"===t}),m=r.find(t=>Y(e,t,a)),h=function({session:e,waitingForUser:t,effectiveStatus:r,firstActiveChild:n,firstWaitingChild:a,now:s}){if(e.debugReason)return e.debugReason;if(t)return X(e,a,s)||X(e,n,s)||"waiting_for_user";if("busy"===r){let t=e.realTimeStatus||"idle";return"busy"===t||"retry"===t?J(e.time?.updated||e.time?.created,s)?"direct_status_busy":"sticky_busy":n?"child_recent_activity":"unknown_fallback"}}({session:e,waitingForUser:c,effectiveStatus:l,firstActiveChild:u,firstWaitingChild:m,now:a});t=e.time?.archived?"done":c?"review":"busy"===l?"busy":"idle";let p=K(e.provider??H.provider);return{id:e.id,sessionSlug:n,title:e.title||"Untitled Session",directory:e.directory,projectName:e.projectName||"Unknown Project",branch:e.branch,agents:function(e){if(!e)return[];let t=e.split("_");return t.length>=3?t[t.length-1].split("-").filter(Boolean):[]}(n),messageCount:e.messageCount||0,status:t,opencodeStatus:l,waitingForUser:c,debugReason:h,todosTotal:0,todosCompleted:0,createdAt:e.time.created,updatedAt:e.time.updated,archivedAt:"done"===t?e.time.archived:void 0,sortOrder:0,hostId:e.hostId,hostLabel:e.hostLabel,hostKind:e.hostKind,hostBaseUrl:e.hostBaseUrl,rawSessionId:e.rawSessionId,sourceSessionKey:e.sourceSessionKey,readOnly:e.readOnly??p.readOnly,capabilities:e.capabilities??p.capabilities,provider:e.provider??p.provider,providerRawId:e.providerRawId??e.rawSessionId,children:r.map(t=>{let r=t.realTimeStatus||"idle",n=G(e,t);return{id:t.id,title:t.title,realTimeStatus:r,waitingForUser:n,debugReason:X(e,t,a),createdAt:t.time?.created||0,updatedAt:t.time?.updated||0}})}}function ee(){return(0,m.jsx)("div",{className:"h-[calc(100vh-8rem)] overflow-x-auto",children:(0,m.jsx)("div",{className:"flex gap-4 h-full min-w-max p-4",children:[1,2,3,4].map(e=>(0,m.jsxs)("div",{className:"flex-shrink-0 w-80 bg-gray-100 dark:bg-zinc-800 rounded-lg p-4 animate-pulse",children:[(0,m.jsx)("div",{className:"h-6 bg-gray-200 dark:bg-zinc-700 rounded w-24 mb-4"}),(0,m.jsx)("div",{className:"space-y-3",children:[1,2,3].map(e=>(0,m.jsxs)("div",{className:"p-4 bg-white dark:bg-zinc-900 rounded-lg shadow border border-gray-200 dark:border-zinc-700",children:[(0,m.jsx)("div",{className:"h-5 bg-gray-200 dark:bg-zinc-700 rounded w-3/4 mb-3"}),(0,m.jsxs)("div",{className:"flex gap-2",children:[(0,m.jsx)("div",{className:"h-4 bg-gray-200 dark:bg-zinc-700 rounded w-20"}),(0,m.jsx)("div",{className:"h-4 bg-gray-200 dark:bg-zinc-700 rounded w-16"})]})]},e))})]},e))})})}let et=null,er="vibepulse:sound-muted",en="vibepulse:sound-muted-change",ea=new Map;function es(e){let t=Date.now();return!(t-(ea.get(e)??0)<1e4)&&(ea.set(e,t),!0)}function ei(e,t,r){es(`warn:${e}`)&&console.warn(`[VibePulse sound] ${t}`,r)}function eo(){return et||(et=new AudioContext),et}function el(e,t,r,n){if(ed()){var a;return void(a=`${e}-muted`,es(`info:${a}`)&&console.info(`[VibePulse sound] ${t}`))}try{let t=eo(),a=()=>{try{n(t,t.currentTime)}catch(t){ei(e,r,t)}};if("running"===t.state)return void a();t.resume().then(()=>{"running"===t.state?a():ei(`${e}-state`,`${r} (AudioContext not running after resume)`,Error(t.state))}).catch(t=>{ei(`${e}-resume`,`${r} (AudioContext resume failed)`,t)})}catch(t){ei(e,r,t)}}function ed(){return"true"===window.localStorage.getItem(er)}function ec(e){let t=()=>{e()},r=t=>{t.key===er&&e()};return window.addEventListener(en,t),window.addEventListener("storage",r),()=>{window.removeEventListener(en,t),window.removeEventListener("storage",r)}}function eu(){try{let e=eo(),t=()=>{let t=e.createBuffer(1,1,22050),r=e.createBufferSource();r.buffer=t,r.connect(e.destination),r.start(0)};if("running"===e.state)return void t();e.resume().then(()=>{"running"===e.state?t():ei("unlock-state","unlockAudio() resume did not reach running state",Error(e.state))}).catch(e=>{ei("unlock-resume","Failed to resume AudioContext in unlockAudio()",e)})}catch(e){ei("unlock-audio","unlockAudio() failed",e)}}function em(){el("play-attention","Skipped playAttentionSound() because muted","playAttentionSound() failed",(e,t)=>{let r=e.createOscillator(),n=e.createGain();r.type="sine",r.frequency.value=523,n.gain.setValueAtTime(.3,t),n.gain.exponentialRampToValueAtTime(.001,t+.2),r.connect(n),n.connect(e.destination),r.start(t),r.stop(t+.2);let a=e.createOscillator(),s=e.createGain();a.type="sine",a.frequency.value=659,s.gain.setValueAtTime(.3,t+.15),s.gain.exponentialRampToValueAtTime(.001,t+.4),a.connect(s),s.connect(e.destination),a.start(t+.15),a.stop(t+.4);let i=e.createOscillator(),o=e.createGain();i.type="sine",i.frequency.value=784,o.gain.setValueAtTime(.25,t+.3),o.gain.exponentialRampToValueAtTime(.001,t+.55),i.connect(o),o.connect(e.destination),i.start(t+.3),i.stop(t+.55)})}let eh="vibepulse:waiting-sessions:v2",ep="local",ef={hostId:ep,hostLabel:"Local",hostKind:"local"},ex=new Map;function eg(e,t){let r=function(){try{return JSON.parse(localStorage.getItem(eh)||"{}")}catch{return{}}}();t?r[e]=!0:delete r[e],localStorage.setItem(eh,JSON.stringify(r))}function eb(e){let t=Date.now();return{...e,slug:e.slug||e.id,title:e.title||"Untitled Session",directory:e.directory||"",projectName:e.projectName||function(e){if(!e)return"Unknown Project";let t=e.replace(/\\/g,"/").split("/").filter(Boolean);return t[t.length-1]||"Unknown Project"}(e.directory),time:e.time||{created:t,updated:t},realTimeStatus:e.realTimeStatus||"busy",waitingForUser:!!e.waitingForUser,children:e.children||[]}}function ey(e){return"object"==typeof e&&null!==e&&"source"in e&&"event"in e}let ev="vibepulse:waiting-sessions:v2",ek="vibepulse:last-sessions-snapshot:v2",ew={hostId:"local",hostLabel:"Local",hostKind:"local"},ej=[{id:"idle",title:"Idle"},{id:"busy",title:"Busy"},{id:"review",title:"Needs Attention"},{id:"done",title:"Archived"}];function ez(e){if("claude-code"===e.provider)return null;let t=e.sourceSessionKey||e.id;return"local"===e.hostKind||"local"===e.hostId||t.startsWith("local:")?t:null}function eN(e){return e.sourceSessionKey?e.sourceSessionKey:e.hostId&&e.rawSessionId?q(e.hostId,e.rawSessionId):e.hostId&&!e.id.includes(":")?q(e.hostId,e.id):e.id.includes(":")?e.id:q("local",e.id)}function eS({filterDays:e,onProcessHintsChange:t,hostSources:r,isNodeMode:n=!1,showHostFilter:a=!0,onHostStatusesChange:s}){let i=(0,h.useRef)({}),o=(0,h.useRef)(!1),[l,d]=(0,h.useState)("idle"),[c,u]=(0,h.useState)(null),{enabledSources:p,activeFilter:f,setActiveFilter:x,filteredHostIds:g}=r,b=(0,h.useMemo)(()=>{if(!n)return p;let e=p.filter(e=>"local"===e.hostKind&&"local"===e.hostId);return e.length>0?e:[ew]},[p,n]),{data:y}=A({queryKey:["opencode-config"],queryFn:async()=>{let e=await fetch("/api/opencode-config");if(!e.ok)throw Error("Failed to fetch config");return e.json()}}),v=y?.vibepulse?.sessionsRefreshIntervalMs,k="number"==typeof v&&Number.isFinite(v)&&v>0?v:5e3,{data:w,isLoading:j,error:z,dataUpdatedAt:N,refetch:S,isFetching:C,failureCount:E}=A({queryKey:["sessions",b,n],queryFn:async({signal:e})=>{try{let t=await fetch("/api/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sources:b}),signal:e});if(!t.ok){let e=null;try{e=await t.json()}catch{e=null}if(e&&!0===e.degraded&&Array.isArray(e.sessions))return e;let r=503===t.status&&e?.error==="OpenCode server not found",n=Error(r?e?.error||"OpenCode server not found":e?.error||`Failed to load sessions (${t.status})`);throw n.kind=r?"opencode_unavailable":"request_failed",n.hint=e?.hint,n.status=t.status,n}return t.json()}catch(t){if(t instanceof Error&&"AbortError"===t.name||t instanceof Error&&t.kind)throw t;let e=Error("Unable to connect to session service");throw e.kind="request_failed",e}},refetchInterval:e=>"fetching"!==e.state.fetchStatus&&(!function(e){if(!e||"object"!=typeof e)return!1;let t=e.sessions;if(!Array.isArray(t)||0===t.length)return!1;let r=[];for(let e of t)e&&"object"==typeof e&&r.push(e);for(;r.length>0;){let e=r.shift();if(e){if("claude-code"===e.provider&&!0===e.waitingForUser)return!0;if(Array.isArray(e.children)&&e.children.length>0)for(let t of e.children)t&&"object"==typeof t&&r.push(t)}}return!1}(e.state.data)?k:Math.min(k,1500)),refetchIntervalInBackground:!0,refetchOnReconnect:!0,retry:!1}),R=void 0!==w;(0,h.useEffect)(()=>{try{let e=localStorage.getItem(ek);if(!e)return;let t=JSON.parse(e);if(!t||!Array.isArray(t.sessions)||"number"!=typeof t.savedAt||(Array.isArray(t.processHints)||(t.processHints=[]),Array.isArray(t.hostStatuses)||(t.hostStatuses=[]),0===t.sessions.length))return;u(t)}catch{u(null)}},[]),(0,h.useEffect)(()=>{if(!w?.sessions||0===w.sessions.length||w.degraded&&c?.sessions?.length)return;let e={savedAt:Date.now(),sessions:w.sessions,processHints:w.processHints??[],hostStatuses:w.hostStatuses??[]};try{localStorage.setItem(ek,JSON.stringify(e)),u(e)}catch{u(e)}},[w?.degraded,w?.processHints,w?.sessions,w?.hostStatuses,c?.sessions?.length]);let T=async()=>{try{await navigator.clipboard.writeText("opencode --port <PORT>"),d("copied"),setTimeout(()=>d("idle"),1500)}catch{d("failed"),setTimeout(()=>d("idle"),2e3)}},M=(0,h.useMemo)(()=>{if(w?.sessions){if(w.degraded&&c?.sessions?.length&&Date.now()-c.savedAt<=6e5){let e=[...w.sessions],t=new Set(e.map(e=>eN(e)));for(let r of c.sessions){let n=eN(r);t.has(n)||(e.push(r),t.add(n))}return e}return w.sessions}return z&&c?.sessions?.length?c.sessions:[]},[z,w?.degraded,w?.sessions,c?.savedAt,c?.sessions]),F=!!z&&!w?.sessions&&!!c?.sessions?.length,I=(0,h.useMemo)(()=>w?.hostStatuses?.length?w.hostStatuses:F&&c?.hostStatuses?.length?c.hostStatuses:w&&!z&&1===b.length&&"local"===b[0].hostId&&"local"===b[0].hostKind?[{hostId:"local",hostLabel:"Local",hostKind:"local",online:!0}]:[],[z,w,b,F,c?.hostStatuses]),L=(0,h.useRef)(null);(0,h.useEffect)(()=>{s&&!function(e,t){if(!e||e.length!==t.length)return!1;for(let r=0;r<e.length;r+=1){let n=e[r],a=t[r];if(n.hostId!==a.hostId||n.hostLabel!==a.hostLabel||n.hostKind!==a.hostKind||n.online!==a.online||n.degraded!==a.degraded||n.reason!==a.reason)return!1}return!0}(L.current,I)&&(L.current=I.map(e=>({...e})),s(I))},[I,s]);let _=!!z&&!F&&!R&&E>=3,P=!!z&&!F&&!R&&E>0&&E<3,D=(0,h.useMemo)(()=>w?.processHints?w.processHints:F&&c?.processHints?c.processHints:[],[w?.processHints,F,c?.processHints]);(0,h.useEffect)(()=>{t?.(D)},[t,D]);let V=(0,h.useMemo)(()=>{if(!M.length)return[];let e={};try{e=JSON.parse(localStorage.getItem(ev)||"{}")}catch{e={}}let t=function(){let e=Date.now();for(let[t,r]of ex)e-r.timestamp>5e3&&ex.delete(t);return ex}(),r=Date.now(),n=(e,t,n)=>!!n&&("busy"===e||"retry"===e)&&!!t&&r-t<=6e5;return M.map(r=>{let a=ez(r),s=!!a&&!!e[a],i=r.time?.updated||r.time?.created||0,o=!!a&&n(r.realTimeStatus,i,s),l=a?t.get(a):void 0,d=l?l.status:r.realTimeStatus,c=(r.children||[]).map(r=>{let a=ez(r),s=!!a&&!!e[a],i=r.time?.updated||r.time?.created||0,o=a?t.get(a):void 0,l=o?o.status:r.realTimeStatus,d=!!a&&n(l,i,s);return{...r,realTimeStatus:l,waitingForUser:!!r.waitingForUser||d}});return{...r,realTimeStatus:d,waitingForUser:!!r.waitingForUser||o,children:c}})},[M]);(0,h.useEffect)(()=>{let e={};for(let t of V){let r=ez(t);for(let n of(t.waitingForUser&&r&&(e[r]=!0),t.children||[])){let t=ez(n);n.waitingForUser&&t&&(e[t]=!0)}}localStorage.setItem(ev,JSON.stringify(e))},[V]);let $=(0,h.useMemo)(()=>{let t=V.map(Z),r=new Set;for(let e of t)for(let t of e.children||[])r.add(t.id);let n=t.filter(e=>!r.has(e.id)||(e.children?.length??0)>0);if(g&&(n=n.filter(e=>{let t=e.hostId||"local";return g.has(t)})),0===e)return n;let a=N-24*e*36e5;return n.filter(e=>"busy"===e.status||"review"===e.status||Math.max(e.updatedAt||0,e.createdAt||0,e.archivedAt||0)>=a)},[N,V,e,g]);(0,h.useEffect)(()=>{var e;let t={};for(let e of $)t[e.id]=e.status;if(!o.current){o.current=!0,i.current=t;return}let{shouldPlayReview:r,shouldPlayComplete:n}=(e=i.current,{shouldPlayReview:Object.entries(t).some(([t,r])=>{let n=e[t];return!!n&&"review"!==n&&"review"===r}),shouldPlayComplete:Object.entries(t).some(([t,r])=>{let n=e[t];return!!n&&"idle"!==n&&"idle"===r})});i.current=t,r&&!F&&setTimeout(()=>em(),250),n&&!F&&setTimeout(()=>void el("play-complete","Skipped playCompleteSound() because muted","playCompleteSound() failed",(e,t)=>{let r=e.createOscillator(),n=e.createGain();r.type="sine",r.frequency.setValueAtTime(659,t),r.frequency.exponentialRampToValueAtTime(988,t+.18),n.gain.setValueAtTime(.22,t),n.gain.exponentialRampToValueAtTime(.001,t+.22),r.connect(n),n.connect(e.destination),r.start(t),r.stop(t+.22);let a=e.createOscillator(),s=e.createGain();a.type="sine",a.frequency.setValueAtTime(988,t+.12),a.frequency.exponentialRampToValueAtTime(1318,t+.32),s.gain.setValueAtTime(.18,t+.12),s.gain.exponentialRampToValueAtTime(.001,t+.36),a.connect(s),s.connect(e.destination),a.start(t+.12),a.stop(t+.36)}),250)},[$,F]);let q=a?(0,m.jsx)("div",{className:"shrink-0 flex items-center justify-end px-4 py-2 bg-zinc-50 dark:bg-black border-b border-gray-200 dark:border-zinc-800",children:(0,m.jsxs)("div",{className:"flex items-center gap-1 bg-gray-100 dark:bg-zinc-800 rounded-lg p-0.5","data-testid":"host-filter",children:[(0,m.jsx)("button",{type:"button",onClick:()=>x("all"),className:`px-3 py-1 text-xs font-medium rounded-md transition-all duration-150 ${"all"===f?"bg-white dark:bg-zinc-600 text-gray-900 dark:text-white shadow-sm":"text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200"}`,"data-testid":"host-filter-option-all",children:"All Hosts"}),p.map(e=>{let t=I.find(t=>t.hostId===e.hostId),r=t?.online??!1,n=O(e.hostId,e.hostLabel);return(0,m.jsxs)("button",{type:"button",onClick:()=>x(e.hostId),className:`flex items-center gap-1.5 px-3 py-1 text-xs font-medium rounded-md transition-all duration-150 ${f===e.hostId?"bg-white dark:bg-zinc-600 text-gray-900 dark:text-white shadow-sm":"text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200"}`,"data-testid":`host-filter-option-${e.hostId}`,children:[(0,m.jsx)("span",{className:`inline-flex items-center justify-center flex-shrink-0 ${n}`,"data-testid":`host-identity-${e.hostId}`,title:`Host identity: ${e.hostLabel}`,children:(0,m.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,m.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"})})}),(0,m.jsx)("span",{className:"truncate",children:e.hostLabel}),(0,m.jsx)("span",{className:"ml-auto inline-flex items-center pl-1.5","data-testid":`host-indicators-${e.hostId}`,children:(0,m.jsx)("span",{className:`w-2 h-2 rounded-full ${r?"bg-emerald-500":"bg-gray-400"}`,"data-testid":`host-status-${e.hostId}`,title:r?"Online":"Offline"})})]},e.hostId)})]})}):null;if(j)return(0,m.jsxs)("div",{className:"flex flex-col flex-1 h-full min-h-0",children:[q,(0,m.jsx)(ee,{})]});if(_){let e=z?.kind==="opencode_unavailable",t=e?z?.hint||"Run OpenCode with an exposed API port, for example `opencode --port <PORT>`.":z?.message||"An error occurred while loading sessions";return(0,m.jsxs)("div",{className:"flex flex-col flex-1 h-full min-h-0",children:[q,(0,m.jsx)("div",{className:"flex-1 flex items-center justify-center p-8",children:(0,m.jsxs)("div",{className:"max-w-md w-full text-center",children:[(0,m.jsx)("div",{className:"flex items-center justify-center w-12 h-12 mx-auto mb-4 bg-red-100 dark:bg-red-900/30 rounded-full",children:(0,m.jsx)("svg",{className:"w-6 h-6 text-red-600 dark:text-red-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,m.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})})}),(0,m.jsx)("h2",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-2",children:e?"OpenCode is not running":"Failed to load sessions"}),(0,m.jsx)("p",{className:"text-gray-600 dark:text-gray-400 mb-4",children:t}),(0,m.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,m.jsx)("button",{type:"button",onClick:()=>S(),className:"px-3 py-1.5 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium rounded-md transition-colors disabled:opacity-50 disabled:cursor-not-allowed",disabled:C,children:C?"Retrying...":"Retry"}),e?(0,m.jsx)("button",{type:"button",onClick:T,className:"px-3 py-1.5 bg-gray-100 hover:bg-gray-200 dark:bg-zinc-800 dark:hover:bg-zinc-700 text-gray-700 dark:text-gray-300 text-sm font-medium rounded-md transition-colors",children:"copied"===l?"Copied":"failed"===l?"Copy Failed":"Copy Start Command"}):null]})]})})]})}return P?(0,m.jsxs)("div",{className:"flex flex-col flex-1 h-full min-h-0",children:[q,(0,m.jsx)("div",{className:"flex-1 flex items-center justify-center p-8",children:(0,m.jsxs)("div",{className:"max-w-md w-full text-center",children:[(0,m.jsx)("div",{className:"flex items-center justify-center w-12 h-12 mx-auto mb-4 bg-amber-100 dark:bg-amber-900/30 rounded-full",children:(0,m.jsx)("svg",{className:"w-6 h-6 text-amber-600 dark:text-amber-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,m.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})})}),(0,m.jsx)("h2",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-2",children:"Reconnecting to session service..."}),(0,m.jsxs)("p",{className:"text-gray-600 dark:text-gray-400 mb-4",children:["Temporary fetch failure (",E,"/",3,"). Retrying automatically."]}),(0,m.jsx)("button",{type:"button",onClick:()=>S(),className:"px-3 py-1.5 bg-blue-600 hover:bg-blue-700 text-white text-sm font-medium rounded-md transition-colors disabled:opacity-50 disabled:cursor-not-allowed",disabled:C,children:C?"Retrying...":"Retry now"})]})})]}):$&&0!==$.length?(0,m.jsxs)("div",{className:"flex flex-col flex-1 h-full min-h-0",children:[q,(0,m.jsxs)("div",{className:"flex-1 overflow-x-auto scrollbar-thin scroll-smooth relative",children:[F?(0,m.jsx)("div",{className:"px-4 pt-4 pb-0",children:(0,m.jsx)("div",{className:"rounded-lg border border-amber-200 bg-amber-50 px-3 py-2 text-amber-800 dark:border-amber-900/40 dark:bg-amber-900/20 dark:text-amber-200",children:(0,m.jsxs)("div",{className:"flex items-center gap-2 text-xs font-medium",children:[(0,m.jsx)("span",{className:"inline-flex items-center rounded-full bg-amber-100 px-2 py-0.5 text-[10px] uppercase tracking-wide dark:bg-amber-900/40",children:"Stale Data"}),(0,m.jsxs)("span",{children:["Last seen at ",c?new Date(c.savedAt).toLocaleString():"--"]}),(0,m.jsx)("span",{className:"text-amber-700/80 dark:text-amber-300/80",children:"Read-only snapshot while OpenCode is unreachable."})]})})}):null,(0,m.jsx)("div",{className:"flex gap-6 h-full min-w-max p-4",children:ej.map(e=>{let t=$.filter(t=>t.status===e.id).sort((e,t)=>e.sortOrder-t.sortOrder),r=(e=>{let t=new Map;for(let r of e){let e=r.projectName||"Unknown Project",n=r.hostId||"local",a=`${n}::${e}`;t.has(a)||t.set(a,{projectName:e,branch:r.branch,hostLabel:r.hostLabel,cards:[]});let s=t.get(a);s.cards.push(r),!s.branch&&r.branch&&(s.branch=r.branch),!s.hostLabel&&r.hostLabel&&(s.hostLabel=r.hostLabel)}return t})(t);return(0,m.jsxs)("div",{className:"flex-shrink-0 w-80 bg-gray-100 dark:bg-zinc-800/80 rounded-xl p-4 flex flex-col shadow-sm",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between mb-4 pb-3 border-b border-gray-200 dark:border-zinc-700",children:[(0,m.jsx)("h2",{className:"font-semibold text-gray-700 dark:text-gray-300",children:e.title}),(0,m.jsx)("span",{className:"px-2.5 py-0.5 bg-gray-200 dark:bg-zinc-700 text-gray-600 dark:text-gray-400 text-xs font-medium rounded-full",children:t.length})]}),(0,m.jsx)("div",{className:"flex-1 overflow-y-auto scrollbar-thin pr-1",children:(0,m.jsx)("div",{className:"space-y-3",children:Array.from(r.entries()).map(([e,t])=>(0,m.jsx)(U,{projectName:t.projectName,branch:t.branch,cards:t.cards,readOnly:F,hostLabel:t.hostLabel,multipleHostsEnabled:b.length>1},e))})})]},e.id)})})]})]}):(0,m.jsxs)("div",{className:"flex flex-col flex-1 h-full min-h-0",children:[q,(0,m.jsx)("div",{className:"flex-1 flex items-center justify-center p-8",children:(0,m.jsxs)("div",{className:"max-w-md w-full text-center",children:[(0,m.jsx)("div",{className:"flex items-center justify-center w-12 h-12 mx-auto mb-4 bg-gray-100 dark:bg-zinc-800 rounded-full",children:(0,m.jsx)("svg",{className:"w-6 h-6 text-gray-500 dark:text-gray-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,m.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"})})}),(0,m.jsx)("h2",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-2",children:"No sessions yet"}),(0,m.jsx)("p",{className:"text-gray-600 dark:text-gray-400 mb-4",children:"OpenCode is running, but no sessions are available."}),(0,m.jsx)("p",{className:"text-sm text-gray-500 dark:text-gray-500",children:"Start a conversation in OpenCode and this board will update automatically."})]})})]})}var eC=h;class eE extends eC.Component{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error("ErrorBoundary caught an error:",e,t)}render(){return this.state.hasError?(0,m.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-zinc-50 dark:bg-black",children:(0,m.jsxs)("div",{className:"max-w-md w-full mx-4 p-8 bg-white dark:bg-zinc-900 rounded-lg shadow-lg border border-gray-200 dark:border-zinc-800",children:[(0,m.jsx)("div",{className:"flex items-center justify-center w-12 h-12 mx-auto mb-4 bg-red-100 dark:bg-red-900/30 rounded-full",children:(0,m.jsx)("svg",{className:"w-6 h-6 text-red-600 dark:text-red-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,m.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})})}),(0,m.jsx)("h2",{className:"text-xl font-semibold text-center text-gray-900 dark:text-white mb-2",children:"Something went wrong"}),(0,m.jsx)("p",{className:"text-center text-gray-600 dark:text-gray-400 mb-6",children:"An unexpected error occurred. Please try refreshing the page."}),this.state.error&&(0,m.jsx)("div",{className:"p-3 bg-gray-100 dark:bg-zinc-800 rounded text-sm text-gray-700 dark:text-gray-300 font-mono overflow-auto",children:this.state.error.message}),(0,m.jsx)("button",{onClick:()=>window.location.reload(),className:"mt-6 w-full py-2 px-4 bg-blue-600 hover:bg-blue-700 text-white font-medium rounded-lg transition-colors",children:"Refresh Page"})]})}):this.props.children}}let eR=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim(),eA=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var eT={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let eO=(0,h.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:n,className:a="",children:s,iconNode:i,...o},l)=>(0,h.createElement)("svg",{ref:l,...eT,width:t,height:t,stroke:e,strokeWidth:n?24*Number(r)/Number(t):r,className:eR("lucide",a),...!s&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(o)&&{"aria-hidden":"true"},...o},[...i.map(([e,t])=>(0,h.createElement)(e,t)),...Array.isArray(s)?s:[s]])),eM=(e,t)=>{let r=(0,h.forwardRef)(({className:r,...n},a)=>(0,h.createElement)(eO,{ref:a,iconNode:t,className:eR(`lucide-${eA(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,r),...n}));return r.displayName=eA(e),r},eF=eM("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]),eI=eM("server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]),eL=eM("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"}]]);function e_({onClick:e}){let{data:t}=A({queryKey:["opencode-config","status"],queryFn:async()=>{let e=await fetch("/api/opencode-config/status");if(!e.ok)throw Error("Failed to fetch config status");return e.json()}});return t?.hasOpenCodeCli?(0,m.jsx)("button",{type:"button",onClick:e,className:"inline-flex items-center justify-center w-9 h-9 rounded-lg text-gray-500 hover:text-gray-700 hover:bg-gray-100 dark:text-gray-400 dark:hover:text-gray-200 dark:hover:bg-zinc-800 transition-colors duration-200","aria-label":"Oh My OpenAgent Settings",title:"Oh My OpenAgent Settings",children:(0,m.jsx)(eL,{className:"w-5 h-5"})}):null}let eP=eM("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),eD=eM("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]),eV=eM("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"}]]),e$=eM("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]),eU=eM("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);var eq=e.i(14272),eB=g,eH=class extends eB.Subscribable{#e;#s=void 0;#z;#N;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#S()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),(0,y.shallowEqualObjects)(this.options,t)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#z,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,y.hashKey)(t.mutationKey)!==(0,y.hashKey)(this.options.mutationKey)?this.reset():this.#z?.state.status==="pending"&&this.#z.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#z?.removeObserver(this)}onMutationUpdate(e){this.#S(),this.#j(e)}getCurrentResult(){return this.#s}reset(){this.#z?.removeObserver(this),this.#z=void 0,this.#S(),this.#j()}mutate(e,t){return this.#N=t,this.#z?.removeObserver(this),this.#z=this.#e.getMutationCache().build(this.#e,this.options),this.#z.addObserver(this),this.#z.execute(e)}#S(){let e=this.#z?.state??(0,eq.getDefaultState)();this.#s={...e,isPending:"pending"===e.status,isSuccess:"success"===e.status,isError:"error"===e.status,isIdle:"idle"===e.status,mutate:this.mutate,reset:this.reset}}#j(e){f.notifyManager.batch(()=>{if(this.#N&&this.hasListeners()){let t=this.#s.variables,r=this.#s.context,n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type==="success"){try{this.#N.onSuccess?.(e.data,t,r,n)}catch(e){Promise.reject(e)}try{this.#N.onSettled?.(e.data,null,t,r,n)}catch(e){Promise.reject(e)}}else if(e?.type==="error"){try{this.#N.onError?.(e.error,t,r,n)}catch(e){Promise.reject(e)}try{this.#N.onSettled?.(void 0,e.error,t,r,n)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#s)})})}};function eW(e,t){let r=(0,S.useQueryClient)(t),[n]=h.useState(()=>new eH(r,e));h.useEffect(()=>{n.setOptions(e)},[n,e]);let a=h.useSyncExternalStore(h.useCallback(e=>n.subscribe(f.notifyManager.batchCalls(e)),[n]),()=>n.getCurrentResult(),()=>n.getCurrentResult()),s=h.useCallback((e,t)=>{n.mutate(e,t).catch(y.noop)},[n]);if(a.error&&(0,y.shouldThrowError)(n.options.throwOnError,[a.error]))throw a.error;return{...a,mutate:s,mutateAsync:a.mutate}}let eK=eM("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]),eQ=eM("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]),eJ=eM("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]),eG=eM("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]),eY=eM("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]),eX=eM("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]),eZ={"visual-engineering":["google/gemini-3.1-pro","glm-5","anthropic/claude-opus-4-6"],ultrabrain:["openai/gpt-5.4","google/gemini-3.1-pro","anthropic/claude-opus-4-6","glm-5"],deep:["openai/gpt-5.4","anthropic/claude-opus-4-6","google/gemini-3.1-pro"],artistry:["google/gemini-3.1-pro","anthropic/claude-opus-4-6","openai/gpt-5.4"],quick:["openai/gpt-5.4-mini","anthropic/claude-haiku-4-5","google/gemini-3-flash","minimax-m2.7","gpt-5-nano"],"unspecified-low":["anthropic/claude-sonnet-4-6","openai/gpt-5.3-codex","kimi-k2.5","google/gemini-3-flash","minimax-m2.7"],"unspecified-high":["anthropic/claude-opus-4-6","openai/gpt-5.4","glm-5","k2p5","kimi-k2.5"],writing:["google/gemini-3-flash","kimi-k2.5","anthropic/claude-sonnet-4-6","minimax-m2.7"]},e0=[{key:"visual-engineering",name:"Visual Engineering",description:"Visual and UI component engineering tasks"},{key:"ultrabrain",name:"Ultrabrain",description:"Complex reasoning and deep analysis tasks"},{key:"deep",name:"Deep",description:"Deep research and comprehensive tasks"},{key:"artistry",name:"Artistry",description:"Creative and design-focused tasks"},{key:"quick",name:"Quick",description:"Fast, simple tasks requiring minimal processing"},{key:"unspecified-low",name:"Unspecified Low",description:"Default low-complexity tasks"},{key:"unspecified-high",name:"Unspecified High",description:"Default high-complexity tasks"},{key:"writing",name:"Writing",description:"Content creation and writing tasks"}];function e1({categoryKey:e,config:t,isBuiltIn:r,availableModels:n,onEdit:a,onDelete:s}){var i;let o,l=(o=e0.find(t=>t.key===e))||{key:e,name:e,description:"Custom category"},d=!!(t.model||t.variant),c=t.model&&n&&n.size>0&&!n.has(t.model),u=d?void 0:eZ[e]?.[0],h=t.model||u,p=d?"bg-white border-zinc-200 dark:bg-zinc-900 dark:border-zinc-700 hover:border-zinc-300 dark:hover:border-zinc-600":"bg-zinc-50/50 border-zinc-200/50 dark:bg-zinc-900/50 dark:border-zinc-800/50 hover:border-zinc-300 dark:hover:border-zinc-600";return c&&(p="bg-amber-50/50 border-amber-200 dark:bg-amber-900/10 dark:border-amber-800/50 hover:border-amber-300 dark:hover:border-amber-700"),(0,m.jsxs)("div",{className:`
|
|
2
|
+
group relative flex items-center justify-between p-4 rounded-lg border flex-col sm:flex-row items-start sm:items-center gap-4
|
|
3
|
+
transition-all duration-200
|
|
4
|
+
${p}
|
|
5
|
+
`,children:[(0,m.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)("h4",{className:"text-sm font-medium text-zinc-900 dark:text-zinc-100 truncate",children:l.name}),!r&&(0,m.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-[10px] font-medium bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-300",children:"Custom"}),c&&(0,m.jsxs)("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-[10px] font-medium bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400",children:[(0,m.jsx)(eU,{className:"h-3 w-3"}),"Model Unavailable"]}),!c&&d&&(0,m.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-[10px] font-medium bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-300",children:"Configured"}),!d&&(0,m.jsxs)("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-[10px] font-medium bg-zinc-100 text-zinc-500 dark:bg-zinc-800 dark:text-zinc-400",children:[(0,m.jsx)(eQ,{className:"h-3 w-3"}),"Built-in fallback"]})]}),(0,m.jsx)("p",{className:"mt-0.5 text-xs text-zinc-500 dark:text-zinc-400 truncate",children:l.description}),(0,m.jsxs)("div",{className:"mt-2 flex items-center gap-3 text-xs",children:[(0,m.jsxs)("span",{className:"text-zinc-600 dark:text-zinc-400",children:[(0,m.jsx)("span",{className:"text-zinc-400 dark:text-zinc-500",children:"Provider:"})," ",function(e){if(!e)return"Default provider";let t=e.indexOf("/");return -1===t?"Unknown provider":e.substring(0,t)}(h)]}),(0,m.jsxs)("span",{className:"text-zinc-600 dark:text-zinc-400",children:[(0,m.jsx)("span",{className:"text-zinc-400 dark:text-zinc-500",children:"Model:"})," ",function(e){if(!e)return"Default model";let t=e.split("/");return t[t.length-1]}(h)]}),t.variant&&(0,m.jsxs)("span",{className:"text-zinc-600 dark:text-zinc-400",children:[(0,m.jsx)("span",{className:"text-zinc-400 dark:text-zinc-500",children:"Variant:"})," ",(i=t.variant)?i:"—"]})]})]}),(0,m.jsxs)("div",{className:"flex items-center gap-1 ml-4 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,m.jsx)("button",{type:"button",onClick:()=>a(e,t),className:"p-1.5 rounded-md text-zinc-500 hover:text-zinc-900 hover:bg-zinc-100 dark:text-zinc-400 dark:hover:text-zinc-100 dark:hover:bg-zinc-800 transition-colors","aria-label":`Edit ${l.name} category`,title:`Edit ${l.name}`,children:(0,m.jsx)(eG,{className:"h-4 w-4"})}),!r&&(0,m.jsx)("button",{type:"button",onClick:()=>s(e),className:"p-1.5 rounded-md text-zinc-500 hover:text-red-600 hover:bg-red-50 dark:text-zinc-400 dark:hover:text-red-400 dark:hover:bg-red-900/20 transition-colors","aria-label":`Delete ${l.name} category`,title:`Delete ${l.name}`,children:(0,m.jsx)(eY,{className:"h-4 w-4"})})]})]})}function e2({categories:e,onEdit:t,onDelete:r}){let{data:n}=A({queryKey:["opencode-models"],queryFn:async()=>{var e;let t=await fetch("/api/opencode-models"),r=null;try{r=await t.json()}catch{r=null}let n=r&&"object"==typeof r&&"error"in r&&"string"==typeof r.error?r.error:null;if(!t.ok||n)throw Error(n||`Failed to fetch models (${t.status})`);if(!((e=r)&&"object"==typeof e&&Array.isArray(e.models)))throw Error("Invalid models response");return r},retry:!1}),a=h.useMemo(()=>n?new Set(n.models):null,[n]),{builtIn:s,custom:i}=h.useMemo(()=>{let t=[],r=[];return e0.forEach(r=>{t.push({key:r.key,config:e[r.key]||{}})}),Object.entries(e).forEach(([e,t])=>{e0.some(t=>t.key===e)||r.push({key:e,config:t})}),{builtIn:t,custom:r}},[e]),o=i.length>0;return(0,m.jsxs)("div",{className:"space-y-6",children:[(0,m.jsxs)("section",{children:[(0,m.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,m.jsx)(eX,{className:"h-4 w-4 text-zinc-500 dark:text-zinc-400"}),(0,m.jsx)("h3",{className:"text-sm font-semibold text-zinc-900 dark:text-zinc-100",children:"Built-in Categories"}),(0,m.jsxs)("span",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:["(",s.length,")"]})]}),(0,m.jsx)("div",{className:"space-y-2",children:s.map(({key:e,config:n})=>(0,m.jsx)(e1,{categoryKey:e,config:n,isBuiltIn:!0,availableModels:a,onEdit:t,onDelete:r},e))})]}),o&&(0,m.jsxs)("section",{children:[(0,m.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,m.jsx)(eX,{className:"h-4 w-4 text-blue-500"}),(0,m.jsx)("h3",{className:"text-sm font-semibold text-zinc-900 dark:text-zinc-100",children:"Custom Categories"}),(0,m.jsxs)("span",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:["(",i.length,")"]})]}),(0,m.jsx)("div",{className:"space-y-2",children:i.map(({key:e,config:n})=>(0,m.jsx)(e1,{categoryKey:e,config:n,isBuiltIn:!1,availableModels:a,onEdit:t,onDelete:r},e))})]}),0===s.length&&!o&&(0,m.jsxs)("div",{className:"text-center py-8",children:[(0,m.jsx)(eX,{className:"h-8 w-8 mx-auto text-zinc-300 dark:text-zinc-600 mb-2"}),(0,m.jsx)("p",{className:"text-sm text-zinc-500 dark:text-zinc-400",children:"No categories configured"})]})]})}var e5=e=>e instanceof Date,e4=e=>null==e,e3=e=>!e4(e)&&!Array.isArray(e)&&"object"==typeof e&&!e5(e),e9=e=>e3(e)&&e.target?"checkbox"===e.target.type?e.target.checked:e.target.value:e,e6=(e,t)=>e.has(t.substring(0,t.search(/\.\d+(\.|$)/))||t),e8="u">typeof window&&void 0!==window.HTMLElement&&"u">typeof document;function e7(e){let t;if(e instanceof Date)return new Date(e);let r="u">typeof FileList&&e instanceof FileList;if(e8&&(e instanceof Blob||r))return e;let n=Array.isArray(e);if(!n&&!(e3(e)&&e3(t=e.constructor&&e.constructor.prototype)&&t.hasOwnProperty("isPrototypeOf")))return e;let a=n?[]:Object.create(Object.getPrototypeOf(e));for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(a[t]=e7(e[t]));return a}var te=e=>void 0===e,tt=e=>Array.isArray(e)?e.filter(Boolean):[],tr=e=>tt(e.replace(/["|']|\]/g,"").split(/\.|\[/)),tn=(e,t,r)=>{if(!t||!e3(e))return r;let n=(/^\w*$/.test(t)?[t]:tr(t)).reduce((e,t)=>e4(e)?e:e[t],e);return te(n)||n===e?te(e[t])?r:e[t]:n},ta=e=>"function"==typeof e,ts=(e,t,r)=>{let n=-1,a=/^\w*$/.test(t)?[t]:tr(t),s=a.length,i=s-1;for(;++n<s;){let t=a[n],s=r;if(n!==i){let r=e[t];s=e3(r)||Array.isArray(r)?r:isNaN(+a[n+1])?{}:[]}if("__proto__"===t||"constructor"===t||"prototype"===t)return;e[t]=s,e=e[t]}};let ti="blur",to="onChange",tl="onSubmit",td="maxLength",tc="minLength",tu="pattern",tm="required",th=h.default.createContext(null);th.displayName="HookFormControlContext";var tp=(e,t,r,n=!0)=>{let a={defaultValues:t._defaultValues};for(let s in e)Object.defineProperty(a,s,{get:()=>("all"!==t._proxyFormState[s]&&(t._proxyFormState[s]=!n||"all"),r&&(r[s]=!0),e[s])});return a};let tf="u">typeof window?h.default.useLayoutEffect:h.default.useEffect;var tx=e=>"string"==typeof e,tg=(e,t,r,n,a)=>tx(e)?(n&&t.watch.add(e),tn(r,e,a)):Array.isArray(e)?e.map(e=>(n&&t.watch.add(e),tn(r,e))):(n&&(t.watchAll=!0),r),tb=e=>e4(e)||"object"!=typeof e;function ty(e,t,r=new WeakSet){if(tb(e)||tb(t))return Object.is(e,t);if(e5(e)&&e5(t))return Object.is(e.getTime(),t.getTime());let n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;if(r.has(e)||r.has(t))return!0;for(let s of(r.add(e),r.add(t),n)){let n=e[s];if(!a.includes(s))return!1;if("ref"!==s){let e=t[s];if(e5(n)&&e5(e)||e3(n)&&e3(e)||Array.isArray(n)&&Array.isArray(e)?!ty(n,e,r):!Object.is(n,e))return!1}}return!0}function tv(e){let t=h.default.useContext(th),{control:r=t,name:n,defaultValue:a,disabled:s,exact:i,compute:o}=e||{},l=h.default.useRef(a),d=h.default.useRef(o),c=h.default.useRef(void 0),u=h.default.useRef(r),m=h.default.useRef(n);d.current=o;let[p,f]=h.default.useState(()=>{let e=r._getWatch(n,l.current);return d.current?d.current(e):e}),x=h.default.useCallback(e=>{let t=tg(n,r._names,e||r._formValues,!1,l.current);return d.current?d.current(t):t},[r._formValues,r._names,n]),g=h.default.useCallback(e=>{if(!s){let t=tg(n,r._names,e||r._formValues,!1,l.current);if(d.current){let e=d.current(t);ty(e,c.current)||(f(e),c.current=e)}else f(t)}},[r._formValues,r._names,s,n]);tf(()=>(u.current===r&&ty(m.current,n)||(u.current=r,m.current=n,g()),r._subscribe({name:n,formState:{values:!0},exact:i,callback:e=>{g(e.values)}})),[r,i,n,g]),h.default.useEffect(()=>r._removeUnmounted());let b=u.current!==r,y=m.current,v=h.default.useMemo(()=>{if(s)return null;let e=!b&&!ty(y,n);return b||e?x():null},[s,b,n,y,x]);return null!==v?v:p}let tk=e=>e.render(function(e){let t=h.default.useContext(th),{name:r,disabled:n,control:a=t,shouldUnregister:s,defaultValue:i,exact:o=!0}=e,l=e6(a._names.array,r),d=h.default.useMemo(()=>tn(a._formValues,r,tn(a._defaultValues,r,i)),[a,r,i]),c=tv({control:a,name:r,defaultValue:d,exact:o}),u=function(e){let t=h.default.useContext(th),{control:r=t,disabled:n,name:a,exact:s}=e||{},[i,o]=h.default.useState(r._formState),l=h.default.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1});return tf(()=>r._subscribe({name:a,formState:l.current,exact:s,callback:e=>{n||o({...r._formState,...e})}}),[a,n,s]),h.default.useEffect(()=>{l.current.isValid&&r._setValid(!0)},[r]),h.default.useMemo(()=>tp(i,r,l.current,!1),[i,r])}({control:a,name:r,exact:o}),m=h.default.useRef(e),p=h.default.useRef(void 0),f=h.default.useRef(a.register(r,{...e.rules,value:c,..."boolean"==typeof e.disabled?{disabled:e.disabled}:{}}));m.current=e;let x=h.default.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!tn(u.errors,r)},isDirty:{enumerable:!0,get:()=>!!tn(u.dirtyFields,r)},isTouched:{enumerable:!0,get:()=>!!tn(u.touchedFields,r)},isValidating:{enumerable:!0,get:()=>!!tn(u.validatingFields,r)},error:{enumerable:!0,get:()=>tn(u.errors,r)}}),[u,r]),g=h.default.useCallback(e=>f.current.onChange({target:{value:e9(e),name:r},type:"change"}),[r]),b=h.default.useCallback(()=>f.current.onBlur({target:{value:tn(a._formValues,r),name:r},type:ti}),[r,a._formValues]),y=h.default.useCallback(e=>{let t=tn(a._fields,r);t&&t._f&&e&&(t._f.ref={focus:()=>ta(e.focus)&&e.focus(),select:()=>ta(e.select)&&e.select(),setCustomValidity:t=>ta(e.setCustomValidity)&&e.setCustomValidity(t),reportValidity:()=>ta(e.reportValidity)&&e.reportValidity()})},[a._fields,r]),v=h.default.useMemo(()=>({name:r,value:c,..."boolean"==typeof n||u.disabled?{disabled:u.disabled||n}:{},onChange:g,onBlur:b,ref:y}),[r,n,u.disabled,g,b,y,c]);return h.default.useEffect(()=>{let e=a._options.shouldUnregister||s,t=p.current;t&&t!==r&&!l&&a.unregister(t),a.register(r,{...m.current.rules,..."boolean"==typeof m.current.disabled?{disabled:m.current.disabled}:{}});let n=(e,t)=>{let r=tn(a._fields,e);r&&r._f&&(r._f.mount=t)};if(n(r,!0),e){let e=e7(tn(a._options.defaultValues,r,m.current.defaultValue));ts(a._defaultValues,r,e),te(tn(a._formValues,r))&&ts(a._formValues,r,e)}return l||a.register(r),p.current=r,()=>{(l?e&&!a._state.action:e)?a.unregister(r):n(r,!1)}},[r,a,l,s]),h.default.useEffect(()=>{a._setDisabledField({disabled:n,name:r})},[n,r,a]),h.default.useMemo(()=>({field:v,formState:u,fieldState:x}),[v,u,x])}(e));h.default.createContext(null).displayName="HookFormContext";var tw=(e,t,r,n,a)=>t?{...r[e],types:{...r[e]&&r[e].types?r[e].types:{},[n]:a||!0}}:{},tj=e=>Array.isArray(e)?e:[e],tz=()=>{let e=[];return{get observers(){return e},next:t=>{for(let r of e)r.next&&r.next(t)},subscribe:t=>(e.push(t),{unsubscribe:()=>{e=e.filter(e=>e!==t)}}),unsubscribe:()=>{e=[]}}},tN=e=>e3(e)&&!Object.keys(e).length,tS=e=>{if(!e8)return!1;let t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},tC=e=>tS(e)&&e.isConnected;function tE(e,t){let r=Array.isArray(t)?t:/^\w*$/.test(t)?[t]:tr(t),n=1===r.length?e:function(e,t){let r=t.slice(0,-1).length,n=0;for(;n<r;)e=te(e)?n++:e[t[n++]];return e}(e,r),a=r.length-1,s=r[a];return n&&delete n[s],0!==a&&(e3(n)&&tN(n)||Array.isArray(n)&&function(e){for(let t in e)if(e.hasOwnProperty(t)&&!te(e[t]))return!1;return!0}(n))&&tE(e,r.slice(0,-1)),e}function tR(e){return Array.isArray(e)||e3(e)&&!(e=>{for(let t in e)if(ta(e[t]))return!0;return!1})(e)}function tA(e,t={}){for(let r in e){let n=e[r];tR(n)?(t[r]=Array.isArray(n)?[]:{},tA(n,t[r])):te(n)||(t[r]=!0)}return t}function tT(e,t,r){for(let n in r||(r=tA(t)),e){let a=e[n];if(tR(a))te(t)||tb(r[n])?r[n]=tA(a,Array.isArray(a)?[]:{}):tT(a,e4(t)?{}:t[n],r[n]);else{let e=t[n];r[n]=!ty(a,e)}}return r}let tO={value:!1,isValid:!1},tM={value:!0,isValid:!0};var tF=e=>{if(Array.isArray(e)){if(e.length>1){let t=e.filter(e=>e&&e.checked&&!e.disabled).map(e=>e.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!te(e[0].attributes.value)?te(e[0].value)||""===e[0].value?tM:{value:e[0].value,isValid:!0}:tM:tO}return tO},tI=(e,{valueAsNumber:t,valueAsDate:r,setValueAs:n})=>te(e)?e:t?""===e?NaN:e?+e:e:r&&tx(e)?new Date(e):n?n(e):e;let tL={isValid:!1,value:null};var t_=e=>Array.isArray(e)?e.reduce((e,t)=>t&&t.checked&&!t.disabled?{isValid:!0,value:t.value}:e,tL):tL;function tP(e){let t=e.ref;return"file"===t.type?t.files:"radio"===t.type?t_(e.refs).value:"select-multiple"===t.type?[...t.selectedOptions].map(({value:e})=>e):"checkbox"===t.type?tF(e.refs).value:tI(te(t.value)?e.ref.value:t.value,e)}var tD=e=>te(e)?e:e instanceof RegExp?e.source:e3(e)?e.value instanceof RegExp?e.value.source:e.value:e,tV=e=>({isOnSubmit:!e||e===tl,isOnBlur:"onBlur"===e,isOnChange:e===to,isOnAll:"all"===e,isOnTouch:"onTouched"===e});let t$="AsyncFunction";var tU=e=>!!e&&!!e.validate&&!!(ta(e.validate)&&e.validate.constructor.name===t$||e3(e.validate)&&Object.values(e.validate).find(e=>e.constructor.name===t$)),tq=(e,t,r)=>!r&&(t.watchAll||t.watch.has(e)||[...t.watch].some(t=>e.startsWith(t)&&/^\.\w+/.test(e.slice(t.length))));let tB=(e,t,r,n)=>{for(let a of r||Object.keys(e)){let r=tn(e,a);if(r){let{_f:e,...s}=r;if(e){if(e.refs&&e.refs[0]&&t(e.refs[0],a)&&!n)return!0;else if(e.ref&&t(e.ref,e.name)&&!n)return!0;else if(tB(s,t))break}else if(e3(s)&&tB(s,t))break}}};function tH(e,t,r){let n=tn(e,r);if(n||/^\w*$/.test(r))return{error:n,name:r};let a=r.split(".");for(;a.length;){let n=a.join("."),s=tn(t,n),i=tn(e,n);if(s&&!Array.isArray(s)&&r!==n)break;if(i&&i.type)return{name:n,error:i};if(i&&i.root&&i.root.type)return{name:`${n}.root`,error:i.root};a.pop()}return{name:r}}var tW=(e,t,r)=>{let n=tj(tn(e,r));return ts(n,"root",t[r]),ts(e,r,n),e};function tK(e,t,r="validate"){if(tx(e)||Array.isArray(e)&&e.every(tx)||"boolean"==typeof e&&!e)return{type:r,message:tx(e)?e:"",ref:t}}var tQ=e=>!e3(e)||e instanceof RegExp?{value:e,message:""}:e,tJ=async(e,t,r,n,a,s)=>{let{ref:i,refs:o,required:l,maxLength:d,minLength:c,min:u,max:m,pattern:h,validate:p,name:f,valueAsNumber:x,mount:g}=e._f,b=tn(r,f);if(!g||t.has(f))return{};let y=o?o[0]:i,v=e=>{a&&y.reportValidity&&(y.setCustomValidity("boolean"==typeof e?"":e||""),y.reportValidity())},k={},w="radio"===i.type,j="checkbox"===i.type,z=(x||"file"===i.type)&&te(i.value)&&te(b)||tS(i)&&""===i.value||""===b||Array.isArray(b)&&!b.length,N=tw.bind(null,f,n,k),S=(e,t,r,n=td,a=tc)=>{let s=e?t:r;k[f]={type:e?n:a,message:s,ref:i,...N(e?n:a,s)}};if(s?!Array.isArray(b)||!b.length:l&&(!(w||j)&&(z||e4(b))||"boolean"==typeof b&&!b||j&&!tF(o).isValid||w&&!t_(o).isValid)){let{value:e,message:t}=tx(l)?{value:!!l,message:l}:tQ(l);if(e&&(k[f]={type:tm,message:t,ref:y,...N(tm,t)},!n))return v(t),k}if(!z&&(!e4(u)||!e4(m))){let e,t,r=tQ(m),a=tQ(u);if(e4(b)||isNaN(b)){let n=i.valueAsDate||new Date(b),s=e=>new Date(new Date().toDateString()+" "+e),o="time"==i.type,l="week"==i.type;tx(r.value)&&b&&(e=o?s(b)>s(r.value):l?b>r.value:n>new Date(r.value)),tx(a.value)&&b&&(t=o?s(b)<s(a.value):l?b<a.value:n<new Date(a.value))}else{let n=i.valueAsNumber||(b?+b:b);e4(r.value)||(e=n>r.value),e4(a.value)||(t=n<a.value)}if((e||t)&&(S(!!e,r.message,a.message,"max","min"),!n))return v(k[f].message),k}if((d||c)&&!z&&(tx(b)||s&&Array.isArray(b))){let e=tQ(d),t=tQ(c),r=!e4(e.value)&&b.length>+e.value,a=!e4(t.value)&&b.length<+t.value;if((r||a)&&(S(r,e.message,t.message),!n))return v(k[f].message),k}if(h&&!z&&tx(b)){let{value:e,message:t}=tQ(h);if(e instanceof RegExp&&!b.match(e)&&(k[f]={type:tu,message:t,ref:i,...N(tu,t)},!n))return v(t),k}if(p){if(ta(p)){let e=tK(await p(b,r),y);if(e&&(k[f]={...e,...N("validate",e.message)},!n))return v(e.message),k}else if(e3(p)){let e={};for(let t in p){if(!tN(e)&&!n)break;let a=tK(await p[t](b,r),y,t);a&&(e={...a,...N(t,a.message)},v(a.message),n&&(k[f]=e))}if(!tN(e)&&(k[f]={ref:y,...e},!n))return k}}return v(!0),k};let tG={mode:tl,reValidateMode:to,shouldFocusError:!0};function tY(e={}){let t=h.default.useRef(void 0),r=h.default.useRef(void 0),[n,a]=h.default.useState({isDirty:!1,isValidating:!1,isLoading:ta(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,isReady:!1,defaultValues:ta(e.defaultValues)?void 0:e.defaultValues});if(!t.current)if(e.formControl)t.current={...e.formControl,formState:n},e.defaultValues&&!ta(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{let{formControl:r,...a}=function(e={}){let t,r={...tG,...e},n={submitCount:0,isDirty:!1,isReady:!1,isLoading:ta(r.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:r.errors||{},disabled:r.disabled||!1},a={},s=(e3(r.defaultValues)||e3(r.values))&&e7(r.defaultValues||r.values)||{},i=r.shouldUnregister?{}:e7(s),o={action:!1,mount:!1,watch:!1,keepIsValid:!1},l={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},d=0,c={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},u={...c},m={...u},h={array:tz(),state:tz()},p="all"===r.criteriaMode,f=async e=>{if(!o.keepIsValid&&!r.disabled&&(u.isValid||m.isValid||e)){let e;r.resolver?(e=tN((await y()).errors),x()):e=await k(a,!0),e!==n.isValid&&h.state.next({isValid:e})}},x=(e,t)=>{!r.disabled&&(u.isValidating||u.validatingFields||m.isValidating||m.validatingFields)&&((e||Array.from(l.mount)).forEach(e=>{e&&(t?ts(n.validatingFields,e,t):tE(n.validatingFields,e))}),h.state.next({validatingFields:n.validatingFields,isValidating:!tN(n.validatingFields)}))},g=(e,t,r,n)=>{let l=tn(a,e);if(l){let a=tn(i,e,te(r)?tn(s,e):r);te(a)||n&&n.defaultChecked||t?ts(i,e,t?a:tP(l._f)):z(e,a),o.mount&&!o.action&&f()}},b=(e,t,a,i,o)=>{let l=!1,d=!1,c={name:e};if(!r.disabled){if(!a||i){(u.isDirty||m.isDirty)&&(d=n.isDirty,n.isDirty=c.isDirty=w(),l=d!==c.isDirty);let r=ty(tn(s,e),t);d=!!tn(n.dirtyFields,e),r?tE(n.dirtyFields,e):ts(n.dirtyFields,e,!0),c.dirtyFields=n.dirtyFields,l=l||(u.dirtyFields||m.dirtyFields)&&!r!==d}if(a){let t=tn(n.touchedFields,e);t||(ts(n.touchedFields,e,a),c.touchedFields=n.touchedFields,l=l||(u.touchedFields||m.touchedFields)&&t!==a)}l&&o&&h.state.next(c)}return l?c:{}},y=async e=>(x(e,!0),await r.resolver(i,r.context,((e,t,r,n)=>{let a={};for(let r of e){let e=tn(t,r);e&&ts(a,r,e._f)}return{criteriaMode:r,names:[...e],fields:a,shouldUseNativeValidation:n}})(e||l.mount,a,r.criteriaMode,r.shouldUseNativeValidation))),v=async e=>{let{errors:t}=await y(e);if(x(e),e)for(let r of e){let e=tn(t,r);e?ts(n.errors,r,e):tE(n.errors,r)}else n.errors=t;return t},k=async(t,a,s={valid:!0})=>{for(let o in t){let d=t[o];if(d){let{_f:t,...o}=d;if(t){let o=l.array.has(t.name),c=d._f&&tU(d._f);c&&u.validatingFields&&x([t.name],!0);let m=await tJ(d,l.disabled,i,p,r.shouldUseNativeValidation&&!a,o);if(c&&u.validatingFields&&x([t.name]),m[t.name]&&(s.valid=!1,a||e.shouldUseNativeValidation))break;a||(tn(m,t.name)?o?tW(n.errors,m,t.name):ts(n.errors,t.name,m[t.name]):tE(n.errors,t.name))}tN(o)||await k(o,a,s)}}return s.valid},w=(e,t)=>!r.disabled&&(e&&t&&ts(i,e,t),!ty(A(),s)),j=(e,t,r)=>tg(e,l,{...o.mount?i:te(t)?s:tx(e)?{[e]:t}:t},r,t),z=(e,t,r={})=>{let n=tn(a,e),s=t;if(n){let r=n._f;r&&(r.disabled||ts(i,e,tI(t,r)),s=tS(r.ref)&&e4(t)?"":t,"select-multiple"===r.ref.type?[...r.ref.options].forEach(e=>e.selected=s.includes(e.value)):r.refs?"checkbox"===r.ref.type?r.refs.forEach(e=>{e.defaultChecked&&e.disabled||(Array.isArray(s)?e.checked=!!s.find(t=>t===e.value):e.checked=s===e.value||!!s)}):r.refs.forEach(e=>e.checked=e.value===s):"file"===r.ref.type?r.ref.value="":(r.ref.value=s,r.ref.type||h.state.next({name:e,values:e7(i)})))}(r.shouldDirty||r.shouldTouch)&&b(e,s,r.shouldTouch,r.shouldDirty,!0),r.shouldValidate&&R(e)},N=(e,t,r)=>{for(let n in t){if(!t.hasOwnProperty(n))return;let s=t[n],i=e+"."+n,o=tn(a,i);(l.array.has(e)||e3(s)||o&&!o._f)&&!e5(s)?N(i,s,r):z(i,s,r)}},S=(e,t,r={})=>{let d=tn(a,e),c=l.array.has(e),p=e7(t);ts(i,e,p),c?(h.array.next({name:e,values:e7(i)}),(u.isDirty||u.dirtyFields||m.isDirty||m.dirtyFields)&&r.shouldDirty&&h.state.next({name:e,dirtyFields:tT(s,i),isDirty:w(e,p)})):!d||d._f||e4(p)?z(e,p,r):N(e,p,r),tq(e,l)?h.state.next({...n,name:e,values:e7(i)}):h.state.next({name:o.mount?e:void 0,values:e7(i)})},C=async e=>{o.mount=!0;let s=e.target,c=s.name,g=!0,v=tn(a,c),w=e=>{g=Number.isNaN(e)||e5(e)&&isNaN(e.getTime())||ty(e,tn(i,c,e))},j=tV(r.mode),z=tV(r.reValidateMode);if(v){var N,S,C,E,A;let o,F,I,L=s.type?tP(v._f):e9(e),_=e.type===ti||"focusout"===e.type,P=!((I=v._f).mount&&(I.required||I.min||I.max||I.maxLength||I.minLength||I.pattern||I.validate))&&!r.resolver&&!tn(n.errors,c)&&!v._f.deps||(N=_,S=tn(n.touchedFields,c),C=n.isSubmitted,E=z,!(A=j).isOnAll&&(!C&&A.isOnTouch?!(S||N):(C?E.isOnBlur:A.isOnBlur)?!N:(C?!E.isOnChange:!A.isOnChange)||N)),D=tq(c,l,_);ts(i,c,L),_?s&&s.readOnly||(v._f.onBlur&&v._f.onBlur(e),t&&t(0)):v._f.onChange&&v._f.onChange(e);let V=b(c,L,_),$=!tN(V)||D;if(_||h.state.next({name:c,type:e.type,values:e7(i)}),P)return(u.isValid||m.isValid)&&("onBlur"===r.mode?_&&f():_||f()),$&&h.state.next({name:c,...D?{}:V});if(!_&&D&&h.state.next({...n}),r.resolver){let{errors:e}=await y([c]);if(x([c]),w(L),g){let t=tH(n.errors,a,c),r=tH(e,a,t.name||c);o=r.error,c=r.name,F=tN(e)}}else x([c],!0),o=(await tJ(v,l.disabled,i,p,r.shouldUseNativeValidation))[c],x([c]),w(L),g&&(o?F=!1:(u.isValid||m.isValid)&&(F=await k(a,!0)));if(g){v._f.deps&&(!Array.isArray(v._f.deps)||v._f.deps.length>0)&&R(v._f.deps);var T=c,O=F,M=o;let e=tn(n.errors,T),a=(u.isValid||m.isValid)&&"boolean"==typeof O&&n.isValid!==O;if(r.delayError&&M){let e;e=()=>{ts(n.errors,T,M),h.state.next({errors:n.errors})},(t=t=>{clearTimeout(d),d=setTimeout(e,t)})(r.delayError)}else clearTimeout(d),t=null,M?ts(n.errors,T,M):tE(n.errors,T);if((M?!ty(e,M):e)||!tN(V)||a){let e={...V,...a&&"boolean"==typeof O?{isValid:O}:{},errors:n.errors,name:T};n={...n,...e},h.state.next(e)}}}},E=(e,t)=>{if(tn(n.errors,t)&&e.focus)return e.focus(),1},R=async(e,t={})=>{let s,i,o=tj(e);if(r.resolver){let t=await v(te(e)?e:o);s=tN(t),i=e?!o.some(e=>tn(t,e)):s}else e?((i=(await Promise.all(o.map(async e=>{let t=tn(a,e);return await k(t&&t._f?{[e]:t}:t)}))).every(Boolean))||n.isValid)&&f():i=s=await k(a);return h.state.next({...!tx(e)||(u.isValid||m.isValid)&&s!==n.isValid?{}:{name:e},...r.resolver||!e?{isValid:s}:{},errors:n.errors}),t.shouldFocus&&!i&&tB(a,E,e?o:l.mount),i},A=(e,t)=>{let r={...o.mount?i:s};return t&&(r=function e(t,r){let n={};for(let a in t)if(t.hasOwnProperty(a)){let s=t[a],i=r[a];if(s&&e3(s)&&i){let t=e(s,i);e3(t)&&(n[a]=t)}else t[a]&&(n[a]=i)}return n}(t.dirtyFields?n.dirtyFields:n.touchedFields,r)),te(e)?r:tx(e)?tn(r,e):e.map(e=>tn(r,e))},T=(e,t)=>({invalid:!!tn((t||n).errors,e),isDirty:!!tn((t||n).dirtyFields,e),error:tn((t||n).errors,e),isValidating:!!tn(n.validatingFields,e),isTouched:!!tn((t||n).touchedFields,e)}),O=(e,t,r)=>{let s=(tn(a,e,{_f:{}})._f||{}).ref,{ref:i,message:o,type:l,...d}=tn(n.errors,e)||{};ts(n.errors,e,{...d,...t,ref:s}),h.state.next({name:e,errors:n.errors,isValid:!1}),r&&r.shouldFocus&&s&&s.focus&&s.focus()},M=e=>h.state.subscribe({next:t=>{let r,a,o;r=e.name,a=t.name,o=e.exact,(!r||!a||r===a||tj(r).some(e=>e&&(o?e===a:e.startsWith(a)||a.startsWith(e))))&&((e,t,r,n)=>{r(e);let{name:a,...s}=e;return tN(s)||Object.keys(s).length>=Object.keys(t).length||Object.keys(s).find(e=>t[e]===(!n||"all"))})(t,e.formState||u,$,e.reRenderRoot)&&e.callback({values:{...i},...n,...t,defaultValues:s})}}).unsubscribe,F=(e,t={})=>{for(let o of e?tj(e):l.mount)l.mount.delete(o),l.array.delete(o),t.keepValue||(tE(a,o),tE(i,o)),t.keepError||tE(n.errors,o),t.keepDirty||tE(n.dirtyFields,o),t.keepTouched||tE(n.touchedFields,o),t.keepIsValidating||tE(n.validatingFields,o),r.shouldUnregister||t.keepDefaultValue||tE(s,o);h.state.next({values:e7(i)}),h.state.next({...n,...!t.keepDirty?{}:{isDirty:w()}}),t.keepIsValid||f()},I=({disabled:e,name:t})=>{if("boolean"==typeof e&&o.mount||e||l.disabled.has(t)){let r=l.disabled.has(t);e?l.disabled.add(t):l.disabled.delete(t),!!e!==r&&o.mount&&!o.action&&f()}},L=(e,t={})=>{let n=tn(a,e),i="boolean"==typeof t.disabled||"boolean"==typeof r.disabled;return(ts(a,e,{...n||{},_f:{...n&&n._f?n._f:{ref:{name:e}},name:e,mount:!0,...t}}),l.mount.add(e),n)?I({disabled:"boolean"==typeof t.disabled?t.disabled:r.disabled,name:e}):g(e,!0,t.value),{...i?{disabled:t.disabled||r.disabled}:{},...r.progressive?{required:!!t.required,min:tD(t.min),max:tD(t.max),minLength:tD(t.minLength),maxLength:tD(t.maxLength),pattern:tD(t.pattern)}:{},name:e,onChange:C,onBlur:C,ref:i=>{if(i){let r;L(e,t),n=tn(a,e);let o=te(i.value)&&i.querySelectorAll&&i.querySelectorAll("input,select,textarea")[0]||i,l="radio"===(r=o).type||"checkbox"===r.type,d=n._f.refs||[];(l?d.find(e=>e===o):o===n._f.ref)||(ts(a,e,{_f:{...n._f,...l?{refs:[...d.filter(tC),o,...Array.isArray(tn(s,e))?[{}]:[]],ref:{type:o.type,name:e}}:{ref:o}}}),g(e,!1,void 0,o))}else(n=tn(a,e,{}))._f&&(n._f.mount=!1),(r.shouldUnregister||t.shouldUnregister)&&!(e6(l.array,e)&&o.action)&&l.unMount.add(e)}}},_=()=>r.shouldFocusError&&tB(a,E,l.mount),P=(e,t)=>async s=>{let o;s&&(s.preventDefault&&s.preventDefault(),s.persist&&s.persist());let d=e7(i);if(h.state.next({isSubmitting:!0}),r.resolver){let{errors:e,values:t}=await y();x(),n.errors=e,d=e7(t)}else await k(a);if(l.disabled.size)for(let e of l.disabled)tE(d,e);if(tE(n.errors,"root"),tN(n.errors)){h.state.next({errors:{}});try{await e(d,s)}catch(e){o=e}}else t&&await t({...n.errors},s),_(),setTimeout(_);if(h.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:tN(n.errors)&&!o,submitCount:n.submitCount+1,errors:n.errors}),o)throw o},D=(e,t={})=>{let d=e?e7(e):s,c=e7(d),m=tN(e),p=m?s:c;if(t.keepDefaultValues||(s=d),!t.keepValues){if(t.keepDirtyValues)for(let e of Array.from(new Set([...l.mount,...Object.keys(tT(s,i))]))){let t=tn(n.dirtyFields,e),r=tn(i,e),a=tn(p,e);t&&!te(r)?ts(p,e,r):t||te(a)||S(e,a)}else{if(e8&&te(e))for(let e of l.mount){let t=tn(a,e);if(t&&t._f){let e=Array.isArray(t._f.refs)?t._f.refs[0]:t._f.ref;if(tS(e)){let t=e.closest("form");if(t){t.reset();break}}}}if(t.keepFieldsRef)for(let e of l.mount)S(e,tn(p,e));else a={}}i=r.shouldUnregister?t.keepDefaultValues?e7(s):{}:e7(p),h.array.next({values:{...p}}),h.state.next({values:{...p}})}l={mount:t.keepDirtyValues?l.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},o.mount=!u.isValid||!!t.keepIsValid||!!t.keepDirtyValues||!r.shouldUnregister&&!tN(p),o.watch=!!r.shouldUnregister,o.keepIsValid=!!t.keepIsValid,o.action=!1,t.keepErrors||(n.errors={}),h.state.next({submitCount:t.keepSubmitCount?n.submitCount:0,isDirty:!m&&(t.keepDirty?n.isDirty:!!(t.keepDefaultValues&&!ty(e,s))),isSubmitted:!!t.keepIsSubmitted&&n.isSubmitted,dirtyFields:m?{}:t.keepDirtyValues?t.keepDefaultValues&&i?tT(s,i):n.dirtyFields:t.keepDefaultValues&&e?tT(s,e):t.keepDirty?n.dirtyFields:{},touchedFields:t.keepTouched?n.touchedFields:{},errors:t.keepErrors?n.errors:{},isSubmitSuccessful:!!t.keepIsSubmitSuccessful&&n.isSubmitSuccessful,isSubmitting:!1,defaultValues:s})},V=(e,t)=>D(ta(e)?e(i):e,{...r.resetOptions,...t}),$=e=>{n={...n,...e}},U={control:{register:L,unregister:F,getFieldState:T,handleSubmit:P,setError:O,_subscribe:M,_runSchema:y,_updateIsValidating:x,_focusError:_,_getWatch:j,_getDirty:w,_setValid:f,_setFieldArray:(e,t=[],l,d,c=!0,p=!0)=>{if(d&&l&&!r.disabled){if(o.action=!0,p&&Array.isArray(tn(a,e))){let t=l(tn(a,e),d.argA,d.argB);c&&ts(a,e,t)}if(p&&Array.isArray(tn(n.errors,e))){let t,r=l(tn(n.errors,e),d.argA,d.argB);c&&ts(n.errors,e,r),tt(tn(t=n.errors,e)).length||tE(t,e)}if((u.touchedFields||m.touchedFields)&&p&&Array.isArray(tn(n.touchedFields,e))){let t=l(tn(n.touchedFields,e),d.argA,d.argB);c&&ts(n.touchedFields,e,t)}(u.dirtyFields||m.dirtyFields)&&(n.dirtyFields=tT(s,i)),h.state.next({name:e,isDirty:w(e,t),dirtyFields:n.dirtyFields,errors:n.errors,isValid:n.isValid})}else ts(i,e,t)},_setDisabledField:I,_setErrors:e=>{n.errors=e,h.state.next({errors:n.errors,isValid:!1})},_getFieldArray:e=>tt(tn(o.mount?i:s,e,r.shouldUnregister?tn(s,e,[]):[])),_reset:D,_resetDefaultValues:()=>ta(r.defaultValues)&&r.defaultValues().then(e=>{V(e,r.resetOptions),h.state.next({isLoading:!1})}),_removeUnmounted:()=>{for(let e of l.unMount){let t=tn(a,e);t&&(t._f.refs?t._f.refs.every(e=>!tC(e)):!tC(t._f.ref))&&F(e)}l.unMount=new Set},_disableForm:e=>{"boolean"==typeof e&&(h.state.next({disabled:e}),tB(a,(t,r)=>{let n=tn(a,r);n&&(t.disabled=n._f.disabled||e,Array.isArray(n._f.refs)&&n._f.refs.forEach(t=>{t.disabled=n._f.disabled||e}))},0,!1))},_subjects:h,_proxyFormState:u,get _fields(){return a},get _formValues(){return i},get _state(){return o},set _state(value){o=value},get _defaultValues(){return s},get _names(){return l},set _names(value){l=value},get _formState(){return n},get _options(){return r},set _options(value){r={...r,...value}}},subscribe:e=>(o.mount=!0,m={...m,...e.formState},M({...e,formState:{...c,...e.formState}})),trigger:R,register:L,handleSubmit:P,watch:(e,t)=>ta(e)?h.state.subscribe({next:r=>"values"in r&&e(j(void 0,t),r)}):j(e,t,!0),setValue:S,getValues:A,reset:V,resetField:(e,t={})=>{tn(a,e)&&(te(t.defaultValue)?S(e,e7(tn(s,e))):(S(e,t.defaultValue),ts(s,e,e7(t.defaultValue))),t.keepTouched||tE(n.touchedFields,e),t.keepDirty||(tE(n.dirtyFields,e),n.isDirty=t.defaultValue?w(e,e7(tn(s,e))):w()),!t.keepError&&(tE(n.errors,e),u.isValid&&f()),h.state.next({...n}))},clearErrors:e=>{let t=e?tj(e):void 0;null==t||t.forEach(e=>tE(n.errors,e)),t?t.forEach(e=>{h.state.next({name:e,errors:n.errors})}):h.state.next({errors:{}})},unregister:F,setError:O,setFocus:(e,t={})=>{let r=tn(a,e),n=r&&r._f;if(n){let e=n.refs?n.refs[0]:n.ref;e.focus&&setTimeout(()=>{e.focus(),t.shouldSelect&&ta(e.select)&&e.select()})}},getFieldState:T};return{...U,formControl:U}}(e);t.current={...a,formState:n}}let s=t.current.control;return s._options=e,tf(()=>{let e=s._subscribe({formState:s._proxyFormState,callback:()=>a({...s._formState}),reRenderRoot:!0});return a(e=>({...e,isReady:!0})),s._formState.isReady=!0,e},[s]),h.default.useEffect(()=>s._disableForm(e.disabled),[s,e.disabled]),h.default.useEffect(()=>{e.mode&&(s._options.mode=e.mode),e.reValidateMode&&(s._options.reValidateMode=e.reValidateMode)},[s,e.mode,e.reValidateMode]),h.default.useEffect(()=>{e.errors&&(s._setErrors(e.errors),s._focusError())},[s,e.errors]),h.default.useEffect(()=>{e.shouldUnregister&&s._subjects.state.next({values:s._getWatch()})},[s,e.shouldUnregister]),h.default.useEffect(()=>{if(s._proxyFormState.isDirty){let e=s._getDirty();e!==n.isDirty&&s._subjects.state.next({isDirty:e})}},[s,n.isDirty]),h.default.useEffect(()=>{var t;e.values&&!ty(e.values,r.current)?(s._reset(e.values,{keepFieldsRef:!0,...s._options.resetOptions}),(null==(t=s._options.resetOptions)?void 0:t.keepIsValid)||s._setValid(),r.current=e.values,a(e=>({...e}))):s._resetDefaultValues()},[s,e.values]),h.default.useEffect(()=>{s._state.mount||(s._setValid(),s._state.mount=!0),s._state.watch&&(s._state.watch=!1,s._subjects.state.next({...s._formState})),s._removeUnmounted()}),t.current.formState=h.default.useMemo(()=>tp(n,s),[s,n]),t.current}var tX=e.i(74080);function tZ(e,[t,r]){return Math.min(r,Math.max(t,e))}function t0(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n.defaultPrevented)return t?.(n)}}function t1(e,t=[]){let r=[],n=()=>{let t=r.map(e=>h.createContext(e));return function(r){let n=r?.[e]||t;return h.useMemo(()=>({[`__scope${e}`]:{...r,[e]:n}}),[r,n])}};return n.scopeName=e,[function(t,n){let a=h.createContext(n),s=r.length;r=[...r,n];let i=t=>{let{scope:r,children:n,...i}=t,o=r?.[e]?.[s]||a,l=h.useMemo(()=>i,Object.values(i));return(0,m.jsx)(o.Provider,{value:l,children:n})};return i.displayName=t+"Provider",[i,function(r,i){let o=i?.[e]?.[s]||a,l=h.useContext(o);if(l)return l;if(void 0!==n)return n;throw Error(`\`${r}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let n=r.reduce((t,{useScope:r,scopeName:n})=>{let a=r(e)[`__scope${n}`];return{...t,...a}},{});return h.useMemo(()=>({[`__scope${t.scopeName}`]:n}),[n])}};return r.scopeName=t.scopeName,r}(n,...t)]}function t2(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function t5(...e){return t=>{let r=!1,n=e.map(e=>{let n=t2(e,t);return r||"function"!=typeof n||(r=!0),n});if(r)return()=>{for(let t=0;t<n.length;t++){let r=n[t];"function"==typeof r?r():t2(e[t],null)}}}}function t4(...e){return h.useCallback(t5(...e),e)}function t3(e){var t;let r,n=(t=e,(r=h.forwardRef((e,t)=>{let{children:r,...n}=e;if(h.isValidElement(r)){var a;let e,s,i=(a=r,(s=(e=Object.getOwnPropertyDescriptor(a.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?a.ref:(s=(e=Object.getOwnPropertyDescriptor(a,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?a.props.ref:a.props.ref||a.ref),o=function(e,t){let r={...t};for(let n in t){let a=e[n],s=t[n];/^on[A-Z]/.test(n)?a&&s?r[n]=(...e)=>{let t=s(...e);return a(...e),t}:a&&(r[n]=a):"style"===n?r[n]={...a,...s}:"className"===n&&(r[n]=[a,s].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==h.Fragment&&(o.ref=t?t5(t,i):i),h.cloneElement(r,o)}return h.Children.count(r)>1?h.Children.only(null):null})).displayName=`${t}.SlotClone`,r),a=h.forwardRef((e,t)=>{let{children:r,...a}=e,s=h.Children.toArray(r),i=s.find(t6);if(i){let e=i.props.children,r=s.map(t=>t!==i?t:h.Children.count(e)>1?h.Children.only(null):h.isValidElement(e)?e.props.children:null);return(0,m.jsx)(n,{...a,ref:t,children:h.isValidElement(e)?h.cloneElement(e,void 0,r):null})}return(0,m.jsx)(n,{...a,ref:t,children:r})});return a.displayName=`${e}.Slot`,a}"u">typeof window&&window.document&&window.document.createElement;var t9=Symbol("radix.slottable");function t6(e){return h.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===t9}var t8=new WeakMap;function t7(e,t){var r,n;let a,s,i;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let o=(r=e,n=t,a=r.length,(i=(s=re(n))>=0?s:a+s)<0||i>=a?-1:i);return -1===o?void 0:e[o]}function re(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#C;constructor(e){super(e),this.#C=[...super.keys()],t8.set(this,!0)}set(e,t){return t8.get(this)&&(this.has(e)?this.#C[this.#C.indexOf(e)]=e:this.#C.push(e)),super.set(e,t),this}insert(e,t,r){let n,a=this.has(t),s=this.#C.length,i=re(e),o=i>=0?i:s+i,l=o<0||o>=s?-1:o;if(l===this.size||a&&l===this.size-1||-1===l)return this.set(t,r),this;let d=this.size+ +!a;i<0&&o++;let c=[...this.#C],u=!1;for(let e=o;e<d;e++)if(o===e){let s=c[e];c[e]===t&&(s=c[e+1]),a&&this.delete(t),n=this.get(s),this.set(t,r)}else{u||c[e-1]!==t||(u=!0);let r=c[u?e:e-1],a=n;n=this.get(r),this.delete(r),this.set(r,a)}return this}with(t,r,n){let a=new e(this);return a.insert(t,r,n),a}before(e){let t=this.#C.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,r){let n=this.#C.indexOf(e);return -1===n?this:this.insert(n,t,r)}after(e){let t=this.#C.indexOf(e);if(-1!==(t=-1===t||t===this.size-1?-1:t+1))return this.entryAt(t)}setAfter(e,t,r){let n=this.#C.indexOf(e);return -1===n?this:this.insert(n+1,t,r)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#C=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#C.splice(this.#C.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return void 0!==t&&this.delete(t)}at(e){let t=t7(this.#C,e);if(void 0!==t)return this.get(t)}entryAt(e){let t=t7(this.#C,e);if(void 0!==t)return[t,this.get(t)]}indexOf(e){return this.#C.indexOf(e)}keyAt(e){return t7(this.#C,e)}from(e,t){let r=this.indexOf(e);if(-1===r)return;let n=r+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.at(n)}keyFrom(e,t){let r=this.indexOf(e);if(-1===r)return;let n=r+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.keyAt(n)}find(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return n;r++}}findIndex(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return r;r++}return -1}filter(t,r){let n=[],a=0;for(let e of this)Reflect.apply(t,r,[e,a,this])&&n.push(e),a++;return new e(n)}map(t,r){let n=[],a=0;for(let e of this)n.push([e[0],Reflect.apply(t,r,[e,a,this])]),a++;return new e(n)}reduce(...e){let[t,r]=e,n=0,a=r??this.at(0);for(let r of this)a=0===n&&1===e.length?r:Reflect.apply(t,this,[a,r,n,this]),n++;return a}reduceRight(...e){let[t,r]=e,n=r??this.at(-1);for(let r=this.size-1;r>=0;r--){let a=this.at(r);n=r===this.size-1&&1===e.length?a:Reflect.apply(t,this,[n,a,r,this])}return n}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let r=this.keyAt(e),n=this.get(r);t.set(r,n)}return t}toSpliced(...t){let r=[...this.entries()];return r.splice(...t),new e(r)}slice(t,r){let n=new e,a=this.size-1;if(void 0===t)return n;t<0&&(t+=this.size),void 0!==r&&r>0&&(a=r-1);for(let e=t;e<=a;e++){let t=this.keyAt(e),r=this.get(t);n.set(t,r)}return n}every(e,t){let r=0;for(let n of this){if(!Reflect.apply(e,t,[n,r,this]))return!1;r++}return!0}some(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return!0;r++}return!1}});var rt=h.createContext(void 0),rr=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{let r=t3(`Primitive.${t}`),n=h.forwardRef((e,n)=>{let{asChild:a,...s}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,m.jsx)(a?r:t,{...s,ref:n})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function rn(e){let t=h.useRef(e);return h.useEffect(()=>{t.current=e}),h.useMemo(()=>(...e)=>t.current?.(...e),[])}var ra="dismissableLayer.update",rs=h.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),ri=h.forwardRef((e,t)=>{let{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:n,onPointerDownOutside:a,onFocusOutside:s,onInteractOutside:i,onDismiss:o,...l}=e,d=h.useContext(rs),[u,p]=h.useState(null),f=u?.ownerDocument??globalThis?.document,[,x]=h.useState({}),g=t4(t,e=>p(e)),b=Array.from(d.layers),[y]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),v=b.indexOf(y),k=u?b.indexOf(u):-1,w=d.layersWithOutsidePointerEventsDisabled.size>0,j=k>=v,z=function(e,t=globalThis?.document){let r=rn(e),n=h.useRef(!1),a=h.useRef(()=>{});return h.useEffect(()=>{let e=e=>{if(e.target&&!n.current){let n=function(){rl("dismissableLayer.pointerDownOutside",r,s,{discrete:!0})},s={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",a.current),a.current=n,t.addEventListener("click",a.current,{once:!0})):n()}else t.removeEventListener("click",a.current);n.current=!1},s=window.setTimeout(()=>{t.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(s),t.removeEventListener("pointerdown",e),t.removeEventListener("click",a.current)}},[t,r]),{onPointerDownCapture:()=>n.current=!0}}(e=>{let t=e.target,r=[...d.branches].some(e=>e.contains(t));j&&!r&&(a?.(e),i?.(e),e.defaultPrevented||o?.())},f),N=function(e,t=globalThis?.document){let r=rn(e),n=h.useRef(!1);return h.useEffect(()=>{let e=e=>{e.target&&!n.current&&rl("dismissableLayer.focusOutside",r,{originalEvent:e},{discrete:!1})};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,r]),{onFocusCapture:()=>n.current=!0,onBlurCapture:()=>n.current=!1}}(e=>{let t=e.target;![...d.branches].some(e=>e.contains(t))&&(s?.(e),i?.(e),e.defaultPrevented||o?.())},f);return!function(e,t=globalThis?.document){let r=rn(e);h.useEffect(()=>{let e=e=>{"Escape"===e.key&&r(e)};return t.addEventListener("keydown",e,{capture:!0}),()=>t.removeEventListener("keydown",e,{capture:!0})},[r,t])}(e=>{k===d.layers.size-1&&(n?.(e),!e.defaultPrevented&&o&&(e.preventDefault(),o()))},f),h.useEffect(()=>{if(u)return r&&(0===d.layersWithOutsidePointerEventsDisabled.size&&(c=f.body.style.pointerEvents,f.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(u)),d.layers.add(u),ro(),()=>{r&&1===d.layersWithOutsidePointerEventsDisabled.size&&(f.body.style.pointerEvents=c)}},[u,f,r,d]),h.useEffect(()=>()=>{u&&(d.layers.delete(u),d.layersWithOutsidePointerEventsDisabled.delete(u),ro())},[u,d]),h.useEffect(()=>{let e=()=>x({});return document.addEventListener(ra,e),()=>document.removeEventListener(ra,e)},[]),(0,m.jsx)(rr.div,{...l,ref:g,style:{pointerEvents:w?j?"auto":"none":void 0,...e.style},onFocusCapture:t0(e.onFocusCapture,N.onFocusCapture),onBlurCapture:t0(e.onBlurCapture,N.onBlurCapture),onPointerDownCapture:t0(e.onPointerDownCapture,z.onPointerDownCapture)})});function ro(){let e=new CustomEvent(ra);document.dispatchEvent(e)}function rl(e,t,r,{discrete:n}){let a=r.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:r});if(t&&a.addEventListener(e,t,{once:!0}),n)a&&tX.flushSync(()=>a.dispatchEvent(s));else a.dispatchEvent(s)}ri.displayName="DismissableLayer",h.forwardRef((e,t)=>{let r=h.useContext(rs),n=h.useRef(null),a=t4(t,n);return h.useEffect(()=>{let e=n.current;if(e)return r.branches.add(e),()=>{r.branches.delete(e)}},[r.branches]),(0,m.jsx)(rr.div,{...e,ref:a})}).displayName="DismissableLayerBranch";var rd=0;function rc(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var ru="focusScope.autoFocusOnMount",rm="focusScope.autoFocusOnUnmount",rh={bubbles:!1,cancelable:!0},rp=h.forwardRef((e,t)=>{let{loop:r=!1,trapped:n=!1,onMountAutoFocus:a,onUnmountAutoFocus:s,...i}=e,[o,l]=h.useState(null),d=rn(a),c=rn(s),u=h.useRef(null),p=t4(t,e=>l(e)),f=h.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;h.useEffect(()=>{if(n){let e=function(e){if(f.paused||!o)return;let t=e.target;o.contains(t)?u.current=t:rg(u.current,{select:!0})},t=function(e){if(f.paused||!o)return;let t=e.relatedTarget;null!==t&&(o.contains(t)||rg(u.current,{select:!0}))};document.addEventListener("focusin",e),document.addEventListener("focusout",t);let r=new MutationObserver(function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&rg(o)});return o&&r.observe(o,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),r.disconnect()}}},[n,o,f.paused]),h.useEffect(()=>{if(o){rb.add(f);let e=document.activeElement;if(!o.contains(e)){let t=new CustomEvent(ru,rh);o.addEventListener(ru,d),o.dispatchEvent(t),t.defaultPrevented||(function(e,{select:t=!1}={}){let r=document.activeElement;for(let n of e)if(rg(n,{select:t}),document.activeElement!==r)return}(rf(o).filter(e=>"A"!==e.tagName),{select:!0}),document.activeElement===e&&rg(o))}return()=>{o.removeEventListener(ru,d),setTimeout(()=>{let t=new CustomEvent(rm,rh);o.addEventListener(rm,c),o.dispatchEvent(t),t.defaultPrevented||rg(e??document.body,{select:!0}),o.removeEventListener(rm,c),rb.remove(f)},0)}}},[o,d,c,f]);let x=h.useCallback(e=>{if(!r&&!n||f.paused)return;let t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,a=document.activeElement;if(t&&a){var s;let t,n=e.currentTarget,[i,o]=[rx(t=rf(s=n),s),rx(t.reverse(),s)];i&&o?e.shiftKey||a!==o?e.shiftKey&&a===i&&(e.preventDefault(),r&&rg(o,{select:!0})):(e.preventDefault(),r&&rg(i,{select:!0})):a===n&&e.preventDefault()}},[r,n,f.paused]);return(0,m.jsx)(rr.div,{tabIndex:-1,...i,ref:p,onKeyDown:x})});function rf(e){let t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t}function rx(e,t){for(let r of e)if(!function(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e&&(void 0===t||e!==t);){if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}(r,{upTo:t}))return r}function rg(e,{select:t=!1}={}){if(e&&e.focus){var r;let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&(r=e)instanceof HTMLInputElement&&"select"in r&&t&&e.select()}}rp.displayName="FocusScope";var rb=(n=[],{add(e){let t=n[0];e!==t&&t?.pause(),(n=ry(n,e)).unshift(e)},remove(e){n=ry(n,e),n[0]?.resume()}});function ry(e,t){let r=[...e],n=r.indexOf(t);return -1!==n&&r.splice(n,1),r}var rv=globalThis?.document?h.useLayoutEffect:()=>{},rk=h[" useId ".trim().toString()]||(()=>void 0),rw=0;function rj(e){let[t,r]=h.useState(rk());return rv(()=>{e||r(e=>e??String(rw++))},[e]),e||(t?`radix-${t}`:"")}let rz=["top","right","bottom","left"],rN=Math.min,rS=Math.max,rC=Math.round,rE=Math.floor,rR=e=>({x:e,y:e}),rA={left:"right",right:"left",bottom:"top",top:"bottom"};function rT(e,t){return"function"==typeof e?e(t):e}function rO(e){return e.split("-")[0]}function rM(e){return e.split("-")[1]}function rF(e){return"x"===e?"y":"x"}function rI(e){return"y"===e?"height":"width"}function rL(e){let t=e[0];return"t"===t||"b"===t?"y":"x"}function r_(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}let rP=["left","right"],rD=["right","left"],rV=["top","bottom"],r$=["bottom","top"];function rU(e){let t=rO(e);return rA[t]+e.slice(t.length)}function rq(e){return"number"!=typeof e?{top:0,right:0,bottom:0,left:0,...e}:{top:e,right:e,bottom:e,left:e}}function rB(e){let{x:t,y:r,width:n,height:a}=e;return{width:n,height:a,top:r,left:t,right:t+n,bottom:r+a,x:t,y:r}}function rH(e,t,r){let n,{reference:a,floating:s}=e,i=rL(t),o=rF(rL(t)),l=rI(o),d=rO(t),c="y"===i,u=a.x+a.width/2-s.width/2,m=a.y+a.height/2-s.height/2,h=a[l]/2-s[l]/2;switch(d){case"top":n={x:u,y:a.y-s.height};break;case"bottom":n={x:u,y:a.y+a.height};break;case"right":n={x:a.x+a.width,y:m};break;case"left":n={x:a.x-s.width,y:m};break;default:n={x:a.x,y:a.y}}switch(rM(t)){case"start":n[o]-=h*(r&&c?-1:1);break;case"end":n[o]+=h*(r&&c?-1:1)}return n}async function rW(e,t){var r;void 0===t&&(t={});let{x:n,y:a,platform:s,rects:i,elements:o,strategy:l}=e,{boundary:d="clippingAncestors",rootBoundary:c="viewport",elementContext:u="floating",altBoundary:m=!1,padding:h=0}=rT(t,e),p=rq(h),f=o[m?"floating"===u?"reference":"floating":u],x=rB(await s.getClippingRect({element:null==(r=await (null==s.isElement?void 0:s.isElement(f)))||r?f:f.contextElement||await (null==s.getDocumentElement?void 0:s.getDocumentElement(o.floating)),boundary:d,rootBoundary:c,strategy:l})),g="floating"===u?{x:n,y:a,width:i.floating.width,height:i.floating.height}:i.reference,b=await (null==s.getOffsetParent?void 0:s.getOffsetParent(o.floating)),y=await (null==s.isElement?void 0:s.isElement(b))&&await (null==s.getScale?void 0:s.getScale(b))||{x:1,y:1},v=rB(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:b,strategy:l}):g);return{top:(x.top-v.top+p.top)/y.y,bottom:(v.bottom-x.bottom+p.bottom)/y.y,left:(x.left-v.left+p.left)/y.x,right:(v.right-x.right+p.right)/y.x}}let rK=async(e,t,r)=>{let{placement:n="bottom",strategy:a="absolute",middleware:s=[],platform:i}=r,o=i.detectOverflow?i:{...i,detectOverflow:rW},l=await (null==i.isRTL?void 0:i.isRTL(t)),d=await i.getElementRects({reference:e,floating:t,strategy:a}),{x:c,y:u}=rH(d,n,l),m=n,h=0,p={};for(let r=0;r<s.length;r++){let f=s[r];if(!f)continue;let{name:x,fn:g}=f,{x:b,y:y,data:v,reset:k}=await g({x:c,y:u,initialPlacement:n,placement:m,strategy:a,middlewareData:p,rects:d,platform:o,elements:{reference:e,floating:t}});c=null!=b?b:c,u=null!=y?y:u,p[x]={...p[x],...v},k&&h<50&&(h++,"object"==typeof k&&(k.placement&&(m=k.placement),k.rects&&(d=!0===k.rects?await i.getElementRects({reference:e,floating:t,strategy:a}):k.rects),{x:c,y:u}=rH(d,m,l)),r=-1)}return{x:c,y:u,placement:m,strategy:a,middlewareData:p}};function rQ(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function rJ(e){return rz.some(t=>e[t]>=0)}let rG=new Set(["left","top"]);async function rY(e,t){let{placement:r,platform:n,elements:a}=e,s=await (null==n.isRTL?void 0:n.isRTL(a.floating)),i=rO(r),o=rM(r),l="y"===rL(r),d=rG.has(i)?-1:1,c=s&&l?-1:1,u=rT(t,e),{mainAxis:m,crossAxis:h,alignmentAxis:p}="number"==typeof u?{mainAxis:u,crossAxis:0,alignmentAxis:null}:{mainAxis:u.mainAxis||0,crossAxis:u.crossAxis||0,alignmentAxis:u.alignmentAxis};return o&&"number"==typeof p&&(h="end"===o?-1*p:p),l?{x:h*c,y:m*d}:{x:m*d,y:h*c}}function rX(){return"u">typeof window}function rZ(e){return r2(e)?(e.nodeName||"").toLowerCase():"#document"}function r0(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function r1(e){var t;return null==(t=(r2(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function r2(e){return!!rX()&&(e instanceof Node||e instanceof r0(e).Node)}function r5(e){return!!rX()&&(e instanceof Element||e instanceof r0(e).Element)}function r4(e){return!!rX()&&(e instanceof HTMLElement||e instanceof r0(e).HTMLElement)}function r3(e){return!(!rX()||"u"<typeof ShadowRoot)&&(e instanceof ShadowRoot||e instanceof r0(e).ShadowRoot)}function r9(e){let{overflow:t,overflowX:r,overflowY:n,display:a}=na(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+r)&&"inline"!==a&&"contents"!==a}function r6(e){try{if(e.matches(":popover-open"))return!0}catch(e){}try{return e.matches(":modal")}catch(e){return!1}}let r8=/transform|translate|scale|rotate|perspective|filter/,r7=/paint|layout|strict|content/,ne=e=>!!e&&"none"!==e;function nt(e){let t=r5(e)?na(e):e;return ne(t.transform)||ne(t.translate)||ne(t.scale)||ne(t.rotate)||ne(t.perspective)||!nr()&&(ne(t.backdropFilter)||ne(t.filter))||r8.test(t.willChange||"")||r7.test(t.contain||"")}function nr(){return null==t&&(t="u">typeof CSS&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),t}function nn(e){return/^(html|body|#document)$/.test(rZ(e))}function na(e){return r0(e).getComputedStyle(e)}function ns(e){return r5(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function ni(e){if("html"===rZ(e))return e;let t=e.assignedSlot||e.parentNode||r3(e)&&e.host||r1(e);return r3(t)?t.host:t}function no(e,t,r){var n;void 0===t&&(t=[]),void 0===r&&(r=!0);let a=function e(t){let r=ni(t);return nn(r)?t.ownerDocument?t.ownerDocument.body:t.body:r4(r)&&r9(r)?r:e(r)}(e),s=a===(null==(n=e.ownerDocument)?void 0:n.body),i=r0(a);if(!s)return t.concat(a,no(a,[],r));{let e=nl(i);return t.concat(i,i.visualViewport||[],r9(a)?a:[],e&&r?no(e):[])}}function nl(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function nd(e){let t=na(e),r=parseFloat(t.width)||0,n=parseFloat(t.height)||0,a=r4(e),s=a?e.offsetWidth:r,i=a?e.offsetHeight:n,o=rC(r)!==s||rC(n)!==i;return o&&(r=s,n=i),{width:r,height:n,$:o}}function nc(e){return r5(e)?e:e.contextElement}function nu(e){let t=nc(e);if(!r4(t))return rR(1);let r=t.getBoundingClientRect(),{width:n,height:a,$:s}=nd(t),i=(s?rC(r.width):r.width)/n,o=(s?rC(r.height):r.height)/a;return i&&Number.isFinite(i)||(i=1),o&&Number.isFinite(o)||(o=1),{x:i,y:o}}let nm=rR(0);function nh(e){let t=r0(e);return nr()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:nm}function np(e,t,r,n){var a;void 0===t&&(t=!1),void 0===r&&(r=!1);let s=e.getBoundingClientRect(),i=nc(e),o=rR(1);t&&(n?r5(n)&&(o=nu(n)):o=nu(e));let l=(void 0===(a=r)&&(a=!1),n&&(!a||n===r0(i))&&a)?nh(i):rR(0),d=(s.left+l.x)/o.x,c=(s.top+l.y)/o.y,u=s.width/o.x,m=s.height/o.y;if(i){let e=r0(i),t=n&&r5(n)?r0(n):n,r=e,a=nl(r);for(;a&&n&&t!==r;){let e=nu(a),t=a.getBoundingClientRect(),n=na(a),s=t.left+(a.clientLeft+parseFloat(n.paddingLeft))*e.x,i=t.top+(a.clientTop+parseFloat(n.paddingTop))*e.y;d*=e.x,c*=e.y,u*=e.x,m*=e.y,d+=s,c+=i,a=nl(r=r0(a))}}return rB({width:u,height:m,x:d,y:c})}function nf(e,t){let r=ns(e).scrollLeft;return t?t.left+r:np(r1(e)).left+r}function nx(e,t){let r=e.getBoundingClientRect();return{x:r.left+t.scrollLeft-nf(e,r),y:r.top+t.scrollTop}}function ng(e,t,r){var n;let a;if("viewport"===t)a=function(e,t){let r=r0(e),n=r1(e),a=r.visualViewport,s=n.clientWidth,i=n.clientHeight,o=0,l=0;if(a){s=a.width,i=a.height;let e=nr();(!e||e&&"fixed"===t)&&(o=a.offsetLeft,l=a.offsetTop)}let d=nf(n);if(d<=0){let e=n.ownerDocument,t=e.body,r=getComputedStyle(t),a="CSS1Compat"===e.compatMode&&parseFloat(r.marginLeft)+parseFloat(r.marginRight)||0,i=Math.abs(n.clientWidth-t.clientWidth-a);i<=25&&(s-=i)}else d<=25&&(s+=d);return{width:s,height:i,x:o,y:l}}(e,r);else if("document"===t){let t,r,s,i,o,l,d;n=r1(e),t=r1(n),r=ns(n),s=n.ownerDocument.body,i=rS(t.scrollWidth,t.clientWidth,s.scrollWidth,s.clientWidth),o=rS(t.scrollHeight,t.clientHeight,s.scrollHeight,s.clientHeight),l=-r.scrollLeft+nf(n),d=-r.scrollTop,"rtl"===na(s).direction&&(l+=rS(t.clientWidth,s.clientWidth)-i),a={width:i,height:o,x:l,y:d}}else if(r5(t)){let e,n,s,i,o,l;n=(e=np(t,!0,"fixed"===r)).top+t.clientTop,s=e.left+t.clientLeft,i=r4(t)?nu(t):rR(1),o=t.clientWidth*i.x,l=t.clientHeight*i.y,a={width:o,height:l,x:s*i.x,y:n*i.y}}else{let r=nh(e);a={x:t.x-r.x,y:t.y-r.y,width:t.width,height:t.height}}return rB(a)}function nb(e){return"static"===na(e).position}function ny(e,t){if(!r4(e)||"fixed"===na(e).position)return null;if(t)return t(e);let r=e.offsetParent;return r1(e)===r&&(r=r.ownerDocument.body),r}function nv(e,t){var r;let n=r0(e);if(r6(e))return n;if(!r4(e)){let t=ni(e);for(;t&&!nn(t);){if(r5(t)&&!nb(t))return t;t=ni(t)}return n}let a=ny(e,t);for(;a&&(r=a,/^(table|td|th)$/.test(rZ(r)))&&nb(a);)a=ny(a,t);return a&&nn(a)&&nb(a)&&!nt(a)?n:a||function(e){let t=ni(e);for(;r4(t)&&!nn(t);){if(nt(t))return t;if(r6(t))break;t=ni(t)}return null}(e)||n}let nk=async function(e){let t=this.getOffsetParent||nv,r=this.getDimensions,n=await r(e.floating);return{reference:function(e,t,r){let n=r4(t),a=r1(t),s="fixed"===r,i=np(e,!0,s,t),o={scrollLeft:0,scrollTop:0},l=rR(0);if(n||!n&&!s)if(("body"!==rZ(t)||r9(a))&&(o=ns(t)),n){let e=np(t,!0,s,t);l.x=e.x+t.clientLeft,l.y=e.y+t.clientTop}else a&&(l.x=nf(a));s&&!n&&a&&(l.x=nf(a));let d=!a||n||s?rR(0):nx(a,o);return{x:i.left+o.scrollLeft-l.x-d.x,y:i.top+o.scrollTop-l.y-d.y,width:i.width,height:i.height}}(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:n.width,height:n.height}}},nw={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:r,offsetParent:n,strategy:a}=e,s="fixed"===a,i=r1(n),o=!!t&&r6(t.floating);if(n===i||o&&s)return r;let l={scrollLeft:0,scrollTop:0},d=rR(1),c=rR(0),u=r4(n);if((u||!u&&!s)&&(("body"!==rZ(n)||r9(i))&&(l=ns(n)),u)){let e=np(n);d=nu(n),c.x=e.x+n.clientLeft,c.y=e.y+n.clientTop}let m=!i||u||s?rR(0):nx(i,l);return{width:r.width*d.x,height:r.height*d.y,x:r.x*d.x-l.scrollLeft*d.x+c.x+m.x,y:r.y*d.y-l.scrollTop*d.y+c.y+m.y}},getDocumentElement:r1,getClippingRect:function(e){let{element:t,boundary:r,rootBoundary:n,strategy:a}=e,s=[..."clippingAncestors"===r?r6(t)?[]:function(e,t){let r=t.get(e);if(r)return r;let n=no(e,[],!1).filter(e=>r5(e)&&"body"!==rZ(e)),a=null,s="fixed"===na(e).position,i=s?ni(e):e;for(;r5(i)&&!nn(i);){let t=na(i),r=nt(i);r||"fixed"!==t.position||(a=null),(s?r||a:!(!r&&"static"===t.position&&a&&("absolute"===a.position||"fixed"===a.position)||r9(i)&&!r&&function e(t,r){let n=ni(t);return!(n===r||!r5(n)||nn(n))&&("fixed"===na(n).position||e(n,r))}(e,i)))?a=t:n=n.filter(e=>e!==i),i=ni(i)}return t.set(e,n),n}(t,this._c):[].concat(r),n],i=ng(t,s[0],a),o=i.top,l=i.right,d=i.bottom,c=i.left;for(let e=1;e<s.length;e++){let r=ng(t,s[e],a);o=rS(r.top,o),l=rN(r.right,l),d=rN(r.bottom,d),c=rS(r.left,c)}return{width:l-c,height:d-o,x:c,y:o}},getOffsetParent:nv,getElementRects:nk,getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){let{width:t,height:r}=nd(e);return{width:t,height:r}},getScale:nu,isElement:r5,isRTL:function(e){return"rtl"===na(e).direction}};function nj(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}let nz=e=>({name:"arrow",options:e,async fn(t){let{x:r,y:n,placement:a,rects:s,platform:i,elements:o,middlewareData:l}=t,{element:d,padding:c=0}=rT(e,t)||{};if(null==d)return{};let u=rq(c),m={x:r,y:n},h=rF(rL(a)),p=rI(h),f=await i.getDimensions(d),x="y"===h,g=x?"clientHeight":"clientWidth",b=s.reference[p]+s.reference[h]-m[h]-s.floating[p],y=m[h]-s.reference[h],v=await (null==i.getOffsetParent?void 0:i.getOffsetParent(d)),k=v?v[g]:0;k&&await (null==i.isElement?void 0:i.isElement(v))||(k=o.floating[g]||s.floating[p]);let w=k/2-f[p]/2-1,j=rN(u[x?"top":"left"],w),z=rN(u[x?"bottom":"right"],w),N=k-f[p]-z,S=k/2-f[p]/2+(b/2-y/2),C=rS(j,rN(S,N)),E=!l.arrow&&null!=rM(a)&&S!==C&&s.reference[p]/2-(S<j?j:z)-f[p]/2<0,R=E?S<j?S-j:S-N:0;return{[h]:m[h]+R,data:{[h]:C,centerOffset:S-C-R,...E&&{alignmentOffset:R}},reset:E}}});var nN="u">typeof document?h.useLayoutEffect:function(){};function nS(e,t){let r,n,a;if(e===t)return!0;if(typeof e!=typeof t)return!1;if("function"==typeof e&&e.toString()===t.toString())return!0;if(e&&t&&"object"==typeof e){if(Array.isArray(e)){if((r=e.length)!==t.length)return!1;for(n=r;0!=n--;)if(!nS(e[n],t[n]))return!1;return!0}if((r=(a=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(n=r;0!=n--;)if(!({}).hasOwnProperty.call(t,a[n]))return!1;for(n=r;0!=n--;){let r=a[n];if(("_owner"!==r||!e.$$typeof)&&!nS(e[r],t[r]))return!1}return!0}return e!=e&&t!=t}function nC(e){return"u"<typeof window?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function nE(e,t){let r=nC(e);return Math.round(t*r)/r}function nR(e){let t=h.useRef(e);return nN(()=>{t.current=e}),t}var nA=h.forwardRef((e,t)=>{let{children:r,width:n=10,height:a=5,...s}=e;return(0,m.jsx)(rr.svg,{...s,ref:t,width:n,height:a,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?r:(0,m.jsx)("polygon",{points:"0,0 30,0 15,10"})})});nA.displayName="Arrow";var nT="Popper",[nO,nM]=t1(nT),[nF,nI]=nO(nT),nL=e=>{let{__scopePopper:t,children:r}=e,[n,a]=h.useState(null);return(0,m.jsx)(nF,{scope:t,anchor:n,onAnchorChange:a,children:r})};nL.displayName=nT;var n_="PopperAnchor",nP=h.forwardRef((e,t)=>{let{__scopePopper:r,virtualRef:n,...a}=e,s=nI(n_,r),i=h.useRef(null),o=t4(t,i),l=h.useRef(null);return h.useEffect(()=>{let e=l.current;l.current=n?.current||i.current,e!==l.current&&s.onAnchorChange(l.current)}),n?null:(0,m.jsx)(rr.div,{...a,ref:o})});nP.displayName=n_;var nD="PopperContent",[nV,n$]=nO(nD),nU=h.forwardRef((e,t)=>{var r,n,a,s,i,o,l,d,c,u,p,f,x,g,b,y,v,k,w,j,z;let N,S,C,E,R,A,{__scopePopper:T,side:O="bottom",sideOffset:M=0,align:F="center",alignOffset:I=0,arrowPadding:L=0,avoidCollisions:_=!0,collisionBoundary:P=[],collisionPadding:D=0,sticky:V="partial",hideWhenDetached:$=!1,updatePositionStrategy:U="optimized",onPlaced:q,...B}=e,H=nI(nD,T),[W,K]=h.useState(null),Q=t4(t,e=>K(e)),[J,G]=h.useState(null),Y=function(e){let[t,r]=h.useState(void 0);return rv(()=>{if(e){r({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{let n,a;if(!Array.isArray(t)||!t.length)return;let s=t[0];if("borderBoxSize"in s){let e=s.borderBoxSize,t=Array.isArray(e)?e[0]:e;n=t.inlineSize,a=t.blockSize}else n=e.offsetWidth,a=e.offsetHeight;r({width:n,height:a})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}r(void 0)},[e]),t}(J),X=Y?.width??0,Z=Y?.height??0,ee="number"==typeof D?D:{top:0,right:0,bottom:0,left:0,...D},et=Array.isArray(P)?P:[P],er=et.length>0,en={padding:ee,boundary:et.filter(nW),altBoundary:er},{refs:ea,floatingStyles:es,placement:ei,isPositioned:eo,middlewareData:el}=function(e){void 0===e&&(e={});let{placement:t="bottom",strategy:r="absolute",middleware:n=[],platform:a,elements:{reference:s,floating:i}={},transform:o=!0,whileElementsMounted:l,open:d}=e,[c,u]=h.useState({x:0,y:0,strategy:r,placement:t,middlewareData:{},isPositioned:!1}),[m,p]=h.useState(n);nS(m,n)||p(n);let[f,x]=h.useState(null),[g,b]=h.useState(null),y=h.useCallback(e=>{e!==j.current&&(j.current=e,x(e))},[]),v=h.useCallback(e=>{e!==z.current&&(z.current=e,b(e))},[]),k=s||f,w=i||g,j=h.useRef(null),z=h.useRef(null),N=h.useRef(c),S=null!=l,C=nR(l),E=nR(a),R=nR(d),A=h.useCallback(()=>{var e,n;let a,s,i;if(!j.current||!z.current)return;let o={placement:t,strategy:r,middleware:m};E.current&&(o.platform=E.current),(e=j.current,n=z.current,a=new Map,i={...(s={platform:nw,...o}).platform,_c:a},rK(e,n,{...s,platform:i})).then(e=>{let t={...e,isPositioned:!1!==R.current};T.current&&!nS(N.current,t)&&(N.current=t,tX.flushSync(()=>{u(t)}))})},[m,t,r,E,R]);nN(()=>{!1===d&&N.current.isPositioned&&(N.current.isPositioned=!1,u(e=>({...e,isPositioned:!1})))},[d]);let T=h.useRef(!1);nN(()=>(T.current=!0,()=>{T.current=!1}),[]),nN(()=>{if(k&&(j.current=k),w&&(z.current=w),k&&w){if(C.current)return C.current(k,w,A);A()}},[k,w,A,C,S]);let O=h.useMemo(()=>({reference:j,floating:z,setReference:y,setFloating:v}),[y,v]),M=h.useMemo(()=>({reference:k,floating:w}),[k,w]),F=h.useMemo(()=>{let e={position:r,left:0,top:0};if(!M.floating)return e;let t=nE(M.floating,c.x),n=nE(M.floating,c.y);return o?{...e,transform:"translate("+t+"px, "+n+"px)",...nC(M.floating)>=1.5&&{willChange:"transform"}}:{position:r,left:t,top:n}},[r,o,M.floating,c.x,c.y]);return h.useMemo(()=>({...c,update:A,refs:O,elements:M,floatingStyles:F}),[c,A,O,M,F])}({strategy:"fixed",placement:O+("center"!==F?"-"+F:""),whileElementsMounted:(...e)=>(function(e,t,r,n){let a;void 0===n&&(n={});let{ancestorScroll:s=!0,ancestorResize:i=!0,elementResize:o="function"==typeof ResizeObserver,layoutShift:l="function"==typeof IntersectionObserver,animationFrame:d=!1}=n,c=nc(e),u=s||i?[...c?no(c):[],...t?no(t):[]]:[];u.forEach(e=>{s&&e.addEventListener("scroll",r,{passive:!0}),i&&e.addEventListener("resize",r)});let m=c&&l?function(e,t){let r,n=null,a=r1(e);function s(){var e;clearTimeout(r),null==(e=n)||e.disconnect(),n=null}return!function i(o,l){void 0===o&&(o=!1),void 0===l&&(l=1),s();let d=e.getBoundingClientRect(),{left:c,top:u,width:m,height:h}=d;if(o||t(),!m||!h)return;let p={rootMargin:-rE(u)+"px "+-rE(a.clientWidth-(c+m))+"px "+-rE(a.clientHeight-(u+h))+"px "+-rE(c)+"px",threshold:rS(0,rN(1,l))||1},f=!0;function x(t){let n=t[0].intersectionRatio;if(n!==l){if(!f)return i();n?i(!1,n):r=setTimeout(()=>{i(!1,1e-7)},1e3)}1!==n||nj(d,e.getBoundingClientRect())||i(),f=!1}try{n=new IntersectionObserver(x,{...p,root:a.ownerDocument})}catch(e){n=new IntersectionObserver(x,p)}n.observe(e)}(!0),s}(c,r):null,h=-1,p=null;o&&(p=new ResizeObserver(e=>{let[n]=e;n&&n.target===c&&p&&t&&(p.unobserve(t),cancelAnimationFrame(h),h=requestAnimationFrame(()=>{var e;null==(e=p)||e.observe(t)})),r()}),c&&!d&&p.observe(c),t&&p.observe(t));let f=d?np(e):null;return d&&function t(){let n=np(e);f&&!nj(f,n)&&r(),f=n,a=requestAnimationFrame(t)}(),r(),()=>{var e;u.forEach(e=>{s&&e.removeEventListener("scroll",r),i&&e.removeEventListener("resize",r)}),null==m||m(),null==(e=p)||e.disconnect(),p=null,d&&cancelAnimationFrame(a)}})(...e,{animationFrame:"always"===U}),elements:{reference:H.anchor},middleware:[{name:(N={name:"offset",options:a=r={mainAxis:M+Z,alignmentAxis:I},async fn(e){var t,r;let{x:n,y:s,placement:i,middlewareData:o}=e,l=await rY(e,a);return i===(null==(t=o.offset)?void 0:t.placement)&&null!=(r=o.arrow)&&r.alignmentOffset?{}:{x:n+l.x,y:s+l.y,data:{...l,placement:i}}}}).name,fn:N.fn,options:[r,n]},_&&{name:(S={name:"shift",options:c=l={mainAxis:!0,crossAxis:!1,limiter:"partial"===V?{fn:(void 0===(o=s)&&(o={}),{options:o,fn(e){let{x:t,y:r,placement:n,rects:a,middlewareData:s}=e,{offset:i=0,mainAxis:l=!0,crossAxis:d=!0}=rT(o,e),c={x:t,y:r},u=rL(n),m=rF(u),h=c[m],p=c[u],f=rT(i,e),x="number"==typeof f?{mainAxis:f,crossAxis:0}:{mainAxis:0,crossAxis:0,...f};if(l){let e="y"===m?"height":"width",t=a.reference[m]-a.floating[e]+x.mainAxis,r=a.reference[m]+a.reference[e]-x.mainAxis;h<t?h=t:h>r&&(h=r)}if(d){var g,b;let e="y"===m?"width":"height",t=rG.has(rO(n)),r=a.reference[u]-a.floating[e]+(t&&(null==(g=s.offset)?void 0:g[u])||0)+(t?0:x.crossAxis),i=a.reference[u]+a.reference[e]+(t?0:(null==(b=s.offset)?void 0:b[u])||0)-(t?x.crossAxis:0);p<r?p=r:p>i&&(p=i)}return{[m]:h,[u]:p}}}).fn,options:[s,i]}:void 0,...en},async fn(e){let{x:t,y:r,placement:n,platform:a}=e,{mainAxis:s=!0,crossAxis:i=!1,limiter:o={fn:e=>{let{x:t,y:r}=e;return{x:t,y:r}}},...l}=rT(c,e),d={x:t,y:r},u=await a.detectOverflow(e,l),m=rL(rO(n)),h=rF(m),p=d[h],f=d[m];if(s){let e="y"===h?"top":"left",t="y"===h?"bottom":"right",r=p+u[e],n=p-u[t];p=rS(r,rN(p,n))}if(i){let e="y"===m?"top":"left",t="y"===m?"bottom":"right",r=f+u[e],n=f-u[t];f=rS(r,rN(f,n))}let x=o.fn({...e,[h]:p,[m]:f});return{...x,data:{x:x.x-t,y:x.y-r,enabled:{[h]:s,[m]:i}}}}}).name,fn:S.fn,options:[l,d]},_&&{name:(C={name:"flip",options:f=u={...en},async fn(e){var t,r,n,a,s,i,o,l;let d,c,u,{placement:m,middlewareData:h,rects:p,initialPlacement:x,platform:g,elements:b}=e,{mainAxis:y=!0,crossAxis:v=!0,fallbackPlacements:k,fallbackStrategy:w="bestFit",fallbackAxisSideDirection:j="none",flipAlignment:z=!0,...N}=rT(f,e);if(null!=(t=h.arrow)&&t.alignmentOffset)return{};let S=rO(m),C=rL(x),E=rO(x)===x,R=await (null==g.isRTL?void 0:g.isRTL(b.floating)),A=k||(E||!z?[rU(x)]:(d=rU(x),[r_(x),d,r_(d)])),T="none"!==j;!k&&T&&A.push(...(c=rM(x),u=function(e,t,r){switch(e){case"top":case"bottom":if(r)return t?rD:rP;return t?rP:rD;case"left":case"right":return t?rV:r$;default:return[]}}(rO(x),"start"===j,R),c&&(u=u.map(e=>e+"-"+c),z&&(u=u.concat(u.map(r_)))),u));let O=[x,...A],M=await g.detectOverflow(e,N),F=[],I=(null==(r=h.flip)?void 0:r.overflows)||[];if(y&&F.push(M[S]),v){let e,t,r,n,a=(i=m,o=p,void 0===(l=R)&&(l=!1),e=rM(i),r=rI(t=rF(rL(i))),n="x"===t?e===(l?"end":"start")?"right":"left":"start"===e?"bottom":"top",o.reference[r]>o.floating[r]&&(n=rU(n)),[n,rU(n)]);F.push(M[a[0]],M[a[1]])}if(I=[...I,{placement:m,overflows:F}],!F.every(e=>e<=0)){let e=((null==(n=h.flip)?void 0:n.index)||0)+1,t=O[e];if(t&&("alignment"!==v||C===rL(t)||I.every(e=>rL(e.placement)!==C||e.overflows[0]>0)))return{data:{index:e,overflows:I},reset:{placement:t}};let r=null==(a=I.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:a.placement;if(!r)switch(w){case"bestFit":{let e=null==(s=I.filter(e=>{if(T){let t=rL(e.placement);return t===C||"y"===t}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:s[0];e&&(r=e);break}case"initialPlacement":r=x}if(m!==r)return{reset:{placement:r}}}return{}}}).name,fn:C.fn,options:[u,p]},{name:(E={name:"size",options:b=x={...en,apply:({elements:e,rects:t,availableWidth:r,availableHeight:n})=>{let{width:a,height:s}=t.reference,i=e.floating.style;i.setProperty("--radix-popper-available-width",`${r}px`),i.setProperty("--radix-popper-available-height",`${n}px`),i.setProperty("--radix-popper-anchor-width",`${a}px`),i.setProperty("--radix-popper-anchor-height",`${s}px`)}},async fn(e){var t,r;let n,a,{placement:s,rects:i,platform:o,elements:l}=e,{apply:d=()=>{},...c}=rT(b,e),u=await o.detectOverflow(e,c),m=rO(s),h=rM(s),p="y"===rL(s),{width:f,height:x}=i.floating;"top"===m||"bottom"===m?(n=m,a=h===(await (null==o.isRTL?void 0:o.isRTL(l.floating))?"start":"end")?"left":"right"):(a=m,n="end"===h?"top":"bottom");let g=x-u.top-u.bottom,y=f-u.left-u.right,v=rN(x-u[n],g),k=rN(f-u[a],y),w=!e.middlewareData.shift,j=v,z=k;if(null!=(t=e.middlewareData.shift)&&t.enabled.x&&(z=y),null!=(r=e.middlewareData.shift)&&r.enabled.y&&(j=g),w&&!h){let e=rS(u.left,0),t=rS(u.right,0),r=rS(u.top,0),n=rS(u.bottom,0);p?z=f-2*(0!==e||0!==t?e+t:rS(u.left,u.right)):j=x-2*(0!==r||0!==n?r+n:rS(u.top,u.bottom))}await d({...e,availableWidth:z,availableHeight:j});let N=await o.getDimensions(l.floating);return f!==N.width||x!==N.height?{reset:{rects:!0}}:{}}}).name,fn:E.fn,options:[x,g]},J&&{name:(R={name:"arrow",options:k=y={element:J,padding:L},fn(e){let{element:t,padding:r}="function"==typeof k?k(e):k;return t&&({}).hasOwnProperty.call(t,"current")?null!=t.current?nz({element:t.current,padding:r}).fn(e):{}:t?nz({element:t,padding:r}).fn(e):{}}}).name,fn:R.fn,options:[y,v]},nK({arrowWidth:X,arrowHeight:Z}),$&&{name:(A={name:"hide",options:z=w={strategy:"referenceHidden",...en},async fn(e){let{rects:t,platform:r}=e,{strategy:n="referenceHidden",...a}=rT(z,e);switch(n){case"referenceHidden":{let n=rQ(await r.detectOverflow(e,{...a,elementContext:"reference"}),t.reference);return{data:{referenceHiddenOffsets:n,referenceHidden:rJ(n)}}}case"escaped":{let n=rQ(await r.detectOverflow(e,{...a,altBoundary:!0}),t.floating);return{data:{escapedOffsets:n,escaped:rJ(n)}}}default:return{}}}}).name,fn:A.fn,options:[w,j]}]}),[ed,ec]=nQ(ei),eu=rn(q);rv(()=>{eo&&eu?.()},[eo,eu]);let em=el.arrow?.x,eh=el.arrow?.y,ep=el.arrow?.centerOffset!==0,[ef,ex]=h.useState();return rv(()=>{W&&ex(window.getComputedStyle(W).zIndex)},[W]),(0,m.jsx)("div",{ref:ea.setFloating,"data-radix-popper-content-wrapper":"",style:{...es,transform:eo?es.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:ef,"--radix-popper-transform-origin":[el.transformOrigin?.x,el.transformOrigin?.y].join(" "),...el.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:(0,m.jsx)(nV,{scope:T,placedSide:ed,onArrowChange:G,arrowX:em,arrowY:eh,shouldHideArrow:ep,children:(0,m.jsx)(rr.div,{"data-side":ed,"data-align":ec,...B,ref:Q,style:{...B.style,animation:eo?void 0:"none"}})})})});nU.displayName=nD;var nq="PopperArrow",nB={top:"bottom",right:"left",bottom:"top",left:"right"},nH=h.forwardRef(function(e,t){let{__scopePopper:r,...n}=e,a=n$(nq,r),s=nB[a.placedSide];return(0,m.jsx)("span",{ref:a.onArrowChange,style:{position:"absolute",left:a.arrowX,top:a.arrowY,[s]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[a.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[a.placedSide],visibility:a.shouldHideArrow?"hidden":void 0},children:(0,m.jsx)(nA,{...n,ref:t,style:{...n.style,display:"block"}})})});function nW(e){return null!==e}nH.displayName=nq;var nK=e=>({name:"transformOrigin",options:e,fn(t){let{placement:r,rects:n,middlewareData:a}=t,s=a.arrow?.centerOffset!==0,i=s?0:e.arrowWidth,o=s?0:e.arrowHeight,[l,d]=nQ(r),c={start:"0%",center:"50%",end:"100%"}[d],u=(a.arrow?.x??0)+i/2,m=(a.arrow?.y??0)+o/2,h="",p="";return"bottom"===l?(h=s?c:`${u}px`,p=`${-o}px`):"top"===l?(h=s?c:`${u}px`,p=`${n.floating.height+o}px`):"right"===l?(h=`${-o}px`,p=s?c:`${m}px`):"left"===l&&(h=`${n.floating.width+o}px`,p=s?c:`${m}px`),{data:{x:h,y:p}}}});function nQ(e){let[t,r="center"]=e.split("-");return[t,r]}var nJ=h.forwardRef((e,t)=>{let{container:r,...n}=e,[a,s]=h.useState(!1);rv(()=>s(!0),[]);let i=r||a&&globalThis?.document?.body;return i?tX.default.createPortal((0,m.jsx)(rr.div,{...n,ref:t}),i):null});nJ.displayName="Portal",h[" useEffectEvent ".trim().toString()],h[" useInsertionEffect ".trim().toString()];var nG=h[" useInsertionEffect ".trim().toString()]||rv;function nY({prop:e,defaultProp:t,onChange:r=()=>{},caller:n}){let[a,s,i]=function({defaultProp:e,onChange:t}){let[r,n]=h.useState(e),a=h.useRef(r),s=h.useRef(t);return nG(()=>{s.current=t},[t]),h.useEffect(()=>{a.current!==r&&(s.current?.(r),a.current=r)},[r,a]),[r,n,s]}({defaultProp:t,onChange:r}),o=void 0!==e,l=o?e:a;{let t=h.useRef(void 0!==e);h.useEffect(()=>{let e=t.current;if(e!==o){let t=o?"controlled":"uncontrolled";console.warn(`${n} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}t.current=o},[o,n])}return[l,h.useCallback(t=>{if(o){let r="function"==typeof t?t(e):t;r!==e&&i.current?.(r)}else s(t)},[o,e,s,i])]}Symbol("RADIX:SYNC_STATE");var nX=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"});h.forwardRef((e,t)=>(0,m.jsx)(rr.span,{...e,ref:t,style:{...nX,...e.style}})).displayName="VisuallyHidden";var nZ=new WeakMap,n0=new WeakMap,n1={},n2=0,n5=function(e){return e&&(e.host||n5(e.parentNode))},n4=function(e,t,r,n){var a=(Array.isArray(e)?e:[e]).map(function(e){if(t.contains(e))return e;var r=n5(e);return r&&t.contains(r)?r:(console.error("aria-hidden",e,"in not contained inside",t,". Doing nothing"),null)}).filter(function(e){return!!e});n1[r]||(n1[r]=new WeakMap);var s=n1[r],i=[],o=new Set,l=new Set(a),d=function(e){!e||o.has(e)||(o.add(e),d(e.parentNode))};a.forEach(d);var c=function(e){!e||l.has(e)||Array.prototype.forEach.call(e.children,function(e){if(o.has(e))c(e);else try{var t=e.getAttribute(n),a=null!==t&&"false"!==t,l=(nZ.get(e)||0)+1,d=(s.get(e)||0)+1;nZ.set(e,l),s.set(e,d),i.push(e),1===l&&a&&n0.set(e,!0),1===d&&e.setAttribute(r,"true"),a||e.setAttribute(n,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}})};return c(t),o.clear(),n2++,function(){i.forEach(function(e){var t=nZ.get(e)-1,a=s.get(e)-1;nZ.set(e,t),s.set(e,a),t||(n0.has(e)||e.removeAttribute(n),n0.delete(e)),a||e.removeAttribute(r)}),--n2||(nZ=new WeakMap,nZ=new WeakMap,n0=new WeakMap,n1={})}},n3=function(e,t,r){void 0===r&&(r="data-aria-hidden");var n=Array.from(Array.isArray(e)?e:[e]),a=t||("u"<typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body);return a?(n.push.apply(n,Array.from(a.querySelectorAll("[aria-live], script"))),n4(n,a,r,"aria-hidden")):function(){return null}},n9=function(){return(n9=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var a in t=arguments[r])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)};function n6(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&0>t.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)0>t.indexOf(n[a])&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r}var n8=("function"==typeof SuppressedError&&SuppressedError,"right-scroll-bar-position"),n7="width-before-scroll-bar";function ae(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var at="u">typeof window?h.useLayoutEffect:h.useEffect,ar=new WeakMap,an=(void 0===a&&(a={}),(void 0===s&&(s=function(e){return e}),i=[],o=!1,l={read:function(){if(o)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return i.length?i[i.length-1]:null},useMedium:function(e){var t=s(e,o);return i.push(t),function(){i=i.filter(function(e){return e!==t})}},assignSyncMedium:function(e){for(o=!0;i.length;){var t=i;i=[],t.forEach(e)}i={push:function(t){return e(t)},filter:function(){return i}}},assignMedium:function(e){o=!0;var t=[];if(i.length){var r=i;i=[],r.forEach(e),t=i}var n=function(){var r=t;t=[],r.forEach(e)},a=function(){return Promise.resolve().then(n)};a(),i={push:function(e){t.push(e),a()},filter:function(e){return t=t.filter(e),i}}}}).options=n9({async:!0,ssr:!1},a),l),aa=function(){},as=h.forwardRef(function(e,t){var r,n,a,s,i=h.useRef(null),o=h.useState({onScrollCapture:aa,onWheelCapture:aa,onTouchMoveCapture:aa}),l=o[0],d=o[1],c=e.forwardProps,u=e.children,m=e.className,p=e.removeScrollBar,f=e.enabled,x=e.shards,g=e.sideCar,b=e.noRelative,y=e.noIsolation,v=e.inert,k=e.allowPinchZoom,w=e.as,j=e.gapMode,z=n6(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),N=(r=[i,t],n=function(e){return r.forEach(function(t){return ae(t,e)})},(a=(0,h.useState)(function(){return{value:null,callback:n,facade:{get current(){return a.value},set current(value){var e=a.value;e!==value&&(a.value=value,a.callback(value,e))}}}})[0]).callback=n,s=a.facade,at(function(){var e=ar.get(s);if(e){var t=new Set(e),n=new Set(r),a=s.current;t.forEach(function(e){n.has(e)||ae(e,null)}),n.forEach(function(e){t.has(e)||ae(e,a)})}ar.set(s,r)},[r]),s),S=n9(n9({},z),l);return h.createElement(h.Fragment,null,f&&h.createElement(g,{sideCar:an,removeScrollBar:p,shards:x,noRelative:b,noIsolation:y,inert:v,setCallbacks:d,allowPinchZoom:!!k,lockRef:i,gapMode:j}),c?h.cloneElement(h.Children.only(u),n9(n9({},S),{ref:N})):h.createElement(void 0===w?"div":w,n9({},S,{className:m,ref:N}),u))});as.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},as.classNames={fullWidth:n7,zeroRight:n8};var ai=function(e){var t=e.sideCar,r=n6(e,["sideCar"]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var n=t.read();if(!n)throw Error("Sidecar medium not found");return h.createElement(n,n9({},r))};ai.isSideCarExport=!0;var ao=function(){var e=0,t=null;return{add:function(r){if(0==e&&(t=function(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=u||("u">typeof __webpack_nonce__?__webpack_nonce__:void 0);return t&&e.setAttribute("nonce",t),e}())){var n,a;(n=t).styleSheet?n.styleSheet.cssText=r:n.appendChild(document.createTextNode(r)),a=t,(document.head||document.getElementsByTagName("head")[0]).appendChild(a)}e++},remove:function(){--e||!t||(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},al=function(){var e=ao();return function(t,r){h.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&r])}},ad=function(){var e=al();return function(t){return e(t.styles,t.dynamic),null}},ac={left:0,top:0,right:0,gap:0},au=function(e){return parseInt(e||"",10)||0},am=function(e){var t=window.getComputedStyle(document.body),r=t["padding"===e?"paddingLeft":"marginLeft"],n=t["padding"===e?"paddingTop":"marginTop"],a=t["padding"===e?"paddingRight":"marginRight"];return[au(r),au(n),au(a)]},ah=function(e){if(void 0===e&&(e="margin"),"u"<typeof window)return ac;var t=am(e),r=document.documentElement.clientWidth,n=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,n-r+t[2]-t[0])}},ap=ad(),af="data-scroll-locked",ax=function(e,t,r,n){var a=e.left,s=e.top,i=e.right,o=e.gap;return void 0===r&&(r="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(n,";\n padding-right: ").concat(o,"px ").concat(n,";\n }\n body[").concat(af,"] {\n overflow: hidden ").concat(n,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(n,";"),"margin"===r&&"\n padding-left: ".concat(a,"px;\n padding-top: ").concat(s,"px;\n padding-right: ").concat(i,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(o,"px ").concat(n,";\n "),"padding"===r&&"padding-right: ".concat(o,"px ").concat(n,";")].filter(Boolean).join(""),"\n }\n \n .").concat(n8," {\n right: ").concat(o,"px ").concat(n,";\n }\n \n .").concat(n7," {\n margin-right: ").concat(o,"px ").concat(n,";\n }\n \n .").concat(n8," .").concat(n8," {\n right: 0 ").concat(n,";\n }\n \n .").concat(n7," .").concat(n7," {\n margin-right: 0 ").concat(n,";\n }\n \n body[").concat(af,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(o,"px;\n }\n")},ag=function(){var e=parseInt(document.body.getAttribute(af)||"0",10);return isFinite(e)?e:0},ab=function(){h.useEffect(function(){return document.body.setAttribute(af,(ag()+1).toString()),function(){var e=ag()-1;e<=0?document.body.removeAttribute(af):document.body.setAttribute(af,e.toString())}},[])},ay=function(e){var t=e.noRelative,r=e.noImportant,n=e.gapMode,a=void 0===n?"margin":n;ab();var s=h.useMemo(function(){return ah(a)},[a]);return h.createElement(ap,{styles:ax(s,!t,a,r?"":"!important")})},av=!1;if("u">typeof window)try{var ak=Object.defineProperty({},"passive",{get:function(){return av=!0,!0}});window.addEventListener("test",ak,ak),window.removeEventListener("test",ak,ak)}catch(e){av=!1}var aw=!!av&&{passive:!1},aj=function(e,t){if(!(e instanceof Element))return!1;var r=window.getComputedStyle(e);return"hidden"!==r[t]&&(r.overflowY!==r.overflowX||"TEXTAREA"===e.tagName||"visible"!==r[t])},az=function(e,t){var r=t.ownerDocument,n=t;do{if("u">typeof ShadowRoot&&n instanceof ShadowRoot&&(n=n.host),aN(e,n)){var a=aS(e,n);if(a[1]>a[2])return!0}n=n.parentNode}while(n&&n!==r.body)return!1},aN=function(e,t){return"v"===e?aj(t,"overflowY"):aj(t,"overflowX")},aS=function(e,t){return"v"===e?[t.scrollTop,t.scrollHeight,t.clientHeight]:[t.scrollLeft,t.scrollWidth,t.clientWidth]},aC=function(e,t,r,n,a){var s,i=(s=window.getComputedStyle(t).direction,"h"===e&&"rtl"===s?-1:1),o=i*n,l=r.target,d=t.contains(l),c=!1,u=o>0,m=0,h=0;do{if(!l)break;var p=aS(e,l),f=p[0],x=p[1]-p[2]-i*f;(f||x)&&aN(e,l)&&(m+=x,h+=f);var g=l.parentNode;l=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!d&&l!==document.body||d&&(t.contains(l)||t===l))return u&&(a&&1>Math.abs(m)||!a&&o>m)?c=!0:!u&&(a&&1>Math.abs(h)||!a&&-o>h)&&(c=!0),c},aE=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},aR=function(e){return[e.deltaX,e.deltaY]},aA=function(e){return e&&"current"in e?e.current:e},aT=0,aO=[];let aM=(d=function(e){var t=h.useRef([]),r=h.useRef([0,0]),n=h.useRef(),a=h.useState(aT++)[0],s=h.useState(ad)[0],i=h.useRef(e);h.useEffect(function(){i.current=e},[e]),h.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var t=(function(e,t,r){if(r||2==arguments.length)for(var n,a=0,s=t.length;a<s;a++)!n&&a in t||(n||(n=Array.prototype.slice.call(t,0,a)),n[a]=t[a]);return e.concat(n||Array.prototype.slice.call(t))})([e.lockRef.current],(e.shards||[]).map(aA),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),t.forEach(function(e){return e.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var o=h.useCallback(function(e,t){if("touches"in e&&2===e.touches.length||"wheel"===e.type&&e.ctrlKey)return!i.current.allowPinchZoom;var a,s=aE(e),o=r.current,l="deltaX"in e?e.deltaX:o[0]-s[0],d="deltaY"in e?e.deltaY:o[1]-s[1],c=e.target,u=Math.abs(l)>Math.abs(d)?"h":"v";if("touches"in e&&"h"===u&&"range"===c.type)return!1;var m=window.getSelection(),h=m&&m.anchorNode;if(h&&(h===c||h.contains(c)))return!1;var p=az(u,c);if(!p)return!0;if(p?a=u:(a="v"===u?"h":"v",p=az(u,c)),!p)return!1;if(!n.current&&"changedTouches"in e&&(l||d)&&(n.current=a),!a)return!0;var f=n.current||a;return aC(f,t,e,"h"===f?l:d,!0)},[]),l=h.useCallback(function(e){if(aO.length&&aO[aO.length-1]===s){var r="deltaY"in e?aR(e):aE(e),n=t.current.filter(function(t){var n;return t.name===e.type&&(t.target===e.target||e.target===t.shadowParent)&&(n=t.delta,n[0]===r[0]&&n[1]===r[1])})[0];if(n&&n.should){e.cancelable&&e.preventDefault();return}if(!n){var a=(i.current.shards||[]).map(aA).filter(Boolean).filter(function(t){return t.contains(e.target)});(a.length>0?o(e,a[0]):!i.current.noIsolation)&&e.cancelable&&e.preventDefault()}}},[]),d=h.useCallback(function(e,r,n,a){var s={name:e,delta:r,target:n,should:a,shadowParent:function(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}(n)};t.current.push(s),setTimeout(function(){t.current=t.current.filter(function(e){return e!==s})},1)},[]),c=h.useCallback(function(e){r.current=aE(e),n.current=void 0},[]),u=h.useCallback(function(t){d(t.type,aR(t),t.target,o(t,e.lockRef.current))},[]),m=h.useCallback(function(t){d(t.type,aE(t),t.target,o(t,e.lockRef.current))},[]);h.useEffect(function(){return aO.push(s),e.setCallbacks({onScrollCapture:u,onWheelCapture:u,onTouchMoveCapture:m}),document.addEventListener("wheel",l,aw),document.addEventListener("touchmove",l,aw),document.addEventListener("touchstart",c,aw),function(){aO=aO.filter(function(e){return e!==s}),document.removeEventListener("wheel",l,aw),document.removeEventListener("touchmove",l,aw),document.removeEventListener("touchstart",c,aw)}},[]);var p=e.removeScrollBar,f=e.inert;return h.createElement(h.Fragment,null,f?h.createElement(s,{styles:"\n .block-interactivity-".concat(a," {pointer-events: none;}\n .allow-interactivity-").concat(a," {pointer-events: all;}\n")}):null,p?h.createElement(ay,{noRelative:e.noRelative,gapMode:e.gapMode}):null)},an.useMedium(d),ai);var aF=h.forwardRef(function(e,t){return h.createElement(as,n9({},e,{ref:t,sideCar:aM}))});aF.classNames=as.classNames;var aI=[" ","Enter","ArrowUp","ArrowDown"],aL=[" ","Enter"],a_="Select",[aP,aD,aV]=function(e){let t=e+"CollectionProvider",[r,n]=t1(t),[a,s]=r(t,{collectionRef:{current:null},itemMap:new Map}),i=e=>{let{scope:t,children:r}=e,n=h.default.useRef(null),s=h.default.useRef(new Map).current;return(0,m.jsx)(a,{scope:t,itemMap:s,collectionRef:n,children:r})};i.displayName=t;let o=e+"CollectionSlot",l=t3(o),d=h.default.forwardRef((e,t)=>{let{scope:r,children:n}=e,a=t4(t,s(o,r).collectionRef);return(0,m.jsx)(l,{ref:a,children:n})});d.displayName=o;let c=e+"CollectionItemSlot",u="data-radix-collection-item",p=t3(c),f=h.default.forwardRef((e,t)=>{let{scope:r,children:n,...a}=e,i=h.default.useRef(null),o=t4(t,i),l=s(c,r);return h.default.useEffect(()=>(l.itemMap.set(i,{ref:i,...a}),()=>void l.itemMap.delete(i))),(0,m.jsx)(p,{...{[u]:""},ref:o,children:n})});return f.displayName=c,[{Provider:i,Slot:d,ItemSlot:f},function(t){let r=s(e+"CollectionConsumer",t);return h.default.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${u}]`));return Array.from(r.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[r.collectionRef,r.itemMap])},n]}(a_),[a$,aU]=t1(a_,[aV,nM]),aq=nM(),[aB,aH]=a$(a_),[aW,aK]=a$(a_),aQ=e=>{let t,{__scopeSelect:r,children:n,open:a,defaultOpen:s,onOpenChange:i,value:o,defaultValue:l,onValueChange:d,dir:c,name:u,autoComplete:p,disabled:f,required:x,form:g}=e,b=aq(r),[y,v]=h.useState(null),[k,w]=h.useState(null),[j,z]=h.useState(!1),N=(t=h.useContext(rt),c||t||"ltr"),[S,C]=nY({prop:a,defaultProp:s??!1,onChange:i,caller:a_}),[E,R]=nY({prop:o,defaultProp:l,onChange:d,caller:a_}),A=h.useRef(null),T=!y||g||!!y.closest("form"),[O,M]=h.useState(new Set),F=Array.from(O).map(e=>e.props.value).join(";");return(0,m.jsx)(nL,{...b,children:(0,m.jsxs)(aB,{required:x,scope:r,trigger:y,onTriggerChange:v,valueNode:k,onValueNodeChange:w,valueNodeHasChildren:j,onValueNodeHasChildrenChange:z,contentId:rj(),value:E,onValueChange:R,open:S,onOpenChange:C,dir:N,triggerPointerDownPosRef:A,disabled:f,children:[(0,m.jsx)(aP.Provider,{scope:r,children:(0,m.jsx)(aW,{scope:e.__scopeSelect,onNativeOptionAdd:h.useCallback(e=>{M(t=>new Set(t).add(e))},[]),onNativeOptionRemove:h.useCallback(e=>{M(t=>{let r=new Set(t);return r.delete(e),r})},[]),children:n})}),T?(0,m.jsxs)(sy,{"aria-hidden":!0,required:x,tabIndex:-1,name:u,autoComplete:p,value:E,onChange:e=>R(e.target.value),disabled:f,form:g,children:[void 0===E?(0,m.jsx)("option",{value:""}):null,Array.from(O)]},F):null]})})};aQ.displayName=a_;var aJ="SelectTrigger",aG=h.forwardRef((e,t)=>{let{__scopeSelect:r,disabled:n=!1,...a}=e,s=aq(r),i=aH(aJ,r),o=i.disabled||n,l=t4(t,i.onTriggerChange),d=aD(r),c=h.useRef("touch"),[u,p,f]=sk(e=>{let t=d().filter(e=>!e.disabled),r=t.find(e=>e.value===i.value),n=sw(t,e,r);void 0!==n&&i.onValueChange(n.value)}),x=e=>{o||(i.onOpenChange(!0),f()),e&&(i.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,m.jsx)(nP,{asChild:!0,...s,children:(0,m.jsx)(rr.button,{type:"button",role:"combobox","aria-controls":i.contentId,"aria-expanded":i.open,"aria-required":i.required,"aria-autocomplete":"none",dir:i.dir,"data-state":i.open?"open":"closed",disabled:o,"data-disabled":o?"":void 0,"data-placeholder":sv(i.value)?"":void 0,...a,ref:l,onClick:t0(a.onClick,e=>{e.currentTarget.focus(),"mouse"!==c.current&&x(e)}),onPointerDown:t0(a.onPointerDown,e=>{c.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),0===e.button&&!1===e.ctrlKey&&"mouse"===e.pointerType&&(x(e),e.preventDefault())}),onKeyDown:t0(a.onKeyDown,e=>{let t=""!==u.current;e.ctrlKey||e.altKey||e.metaKey||1!==e.key.length||p(e.key),(!t||" "!==e.key)&&aI.includes(e.key)&&(x(),e.preventDefault())})})})});aG.displayName=aJ;var aY="SelectValue",aX=h.forwardRef((e,t)=>{let{__scopeSelect:r,className:n,style:a,children:s,placeholder:i="",...o}=e,l=aH(aY,r),{onValueNodeHasChildrenChange:d}=l,c=void 0!==s,u=t4(t,l.onValueNodeChange);return rv(()=>{d(c)},[d,c]),(0,m.jsx)(rr.span,{...o,ref:u,style:{pointerEvents:"none"},children:sv(l.value)?(0,m.jsx)(m.Fragment,{children:i}):s})});aX.displayName=aY;var aZ=h.forwardRef((e,t)=>{let{__scopeSelect:r,children:n,...a}=e;return(0,m.jsx)(rr.span,{"aria-hidden":!0,...a,ref:t,children:n||"▼"})});aZ.displayName="SelectIcon";var a0=e=>(0,m.jsx)(nJ,{asChild:!0,...e});a0.displayName="SelectPortal";var a1="SelectContent",a2=h.forwardRef((e,t)=>{let r=aH(a1,e.__scopeSelect),[n,a]=h.useState();return(rv(()=>{a(new DocumentFragment)},[]),r.open)?(0,m.jsx)(a9,{...e,ref:t}):n?tX.createPortal((0,m.jsx)(a5,{scope:e.__scopeSelect,children:(0,m.jsx)(aP.Slot,{scope:e.__scopeSelect,children:(0,m.jsx)("div",{children:e.children})})}),n):null});a2.displayName=a1;var[a5,a4]=a$(a1),a3=t3("SelectContent.RemoveScroll"),a9=h.forwardRef((e,t)=>{let{__scopeSelect:r,position:n="item-aligned",onCloseAutoFocus:a,onEscapeKeyDown:s,onPointerDownOutside:i,side:o,sideOffset:l,align:d,alignOffset:c,arrowPadding:u,collisionBoundary:p,collisionPadding:f,sticky:x,hideWhenDetached:g,avoidCollisions:b,...y}=e,v=aH(a1,r),[k,w]=h.useState(null),[j,z]=h.useState(null),N=t4(t,e=>w(e)),[S,C]=h.useState(null),[E,R]=h.useState(null),A=aD(r),[T,O]=h.useState(!1),M=h.useRef(!1);h.useEffect(()=>{if(k)return n3(k)},[k]),h.useEffect(()=>{let e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??rc()),document.body.insertAdjacentElement("beforeend",e[1]??rc()),rd++,()=>{1===rd&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),rd--}},[]);let F=h.useCallback(e=>{let[t,...r]=A().map(e=>e.ref.current),[n]=r.slice(-1),a=document.activeElement;for(let r of e)if(r===a||(r?.scrollIntoView({block:"nearest"}),r===t&&j&&(j.scrollTop=0),r===n&&j&&(j.scrollTop=j.scrollHeight),r?.focus(),document.activeElement!==a))return},[A,j]),I=h.useCallback(()=>F([S,k]),[F,S,k]);h.useEffect(()=>{T&&I()},[T,I]);let{onOpenChange:L,triggerPointerDownPosRef:_}=v;h.useEffect(()=>{if(k){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(_.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(_.current?.y??0))}},r=r=>{e.x<=10&&e.y<=10?r.preventDefault():k.contains(r.target)||L(!1),document.removeEventListener("pointermove",t),_.current=null};return null!==_.current&&(document.addEventListener("pointermove",t),document.addEventListener("pointerup",r,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",r,{capture:!0})}}},[k,L,_]),h.useEffect(()=>{let e=()=>L(!1);return window.addEventListener("blur",e),window.addEventListener("resize",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("resize",e)}},[L]);let[P,D]=sk(e=>{let t=A().filter(e=>!e.disabled),r=t.find(e=>e.ref.current===document.activeElement),n=sw(t,e,r);n&&setTimeout(()=>n.ref.current.focus())}),V=h.useCallback((e,t,r)=>{let n=!M.current&&!r;(void 0!==v.value&&v.value===t||n)&&(C(e),n&&(M.current=!0))},[v.value]),$=h.useCallback(()=>k?.focus(),[k]),U=h.useCallback((e,t,r)=>{let n=!M.current&&!r;(void 0!==v.value&&v.value===t||n)&&R(e)},[v.value]),q="popper"===n?a8:a6,B=q===a8?{side:o,sideOffset:l,align:d,alignOffset:c,arrowPadding:u,collisionBoundary:p,collisionPadding:f,sticky:x,hideWhenDetached:g,avoidCollisions:b}:{};return(0,m.jsx)(a5,{scope:r,content:k,viewport:j,onViewportChange:z,itemRefCallback:V,selectedItem:S,onItemLeave:$,itemTextRefCallback:U,focusSelectedItem:I,selectedItemText:E,position:n,isPositioned:T,searchRef:P,children:(0,m.jsx)(aF,{as:a3,allowPinchZoom:!0,children:(0,m.jsx)(rp,{asChild:!0,trapped:v.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:t0(a,e=>{v.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,m.jsx)(ri,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:i,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>v.onOpenChange(!1),children:(0,m.jsx)(q,{role:"listbox",id:v.contentId,"data-state":v.open?"open":"closed",dir:v.dir,onContextMenu:e=>e.preventDefault(),...y,...B,onPlaced:()=>O(!0),ref:N,style:{display:"flex",flexDirection:"column",outline:"none",...y.style},onKeyDown:t0(y.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if("Tab"===e.key&&e.preventDefault(),t||1!==e.key.length||D(e.key),["ArrowUp","ArrowDown","Home","End"].includes(e.key)){let t=A().filter(e=>!e.disabled).map(e=>e.ref.current);if(["ArrowUp","End"].includes(e.key)&&(t=t.slice().reverse()),["ArrowUp","ArrowDown"].includes(e.key)){let r=e.target,n=t.indexOf(r);t=t.slice(n+1)}setTimeout(()=>F(t)),e.preventDefault()}})})})})})})});a9.displayName="SelectContentImpl";var a6=h.forwardRef((e,t)=>{let{__scopeSelect:r,onPlaced:n,...a}=e,s=aH(a1,r),i=a4(a1,r),[o,l]=h.useState(null),[d,c]=h.useState(null),u=t4(t,e=>c(e)),p=aD(r),f=h.useRef(!1),x=h.useRef(!0),{viewport:g,selectedItem:b,selectedItemText:y,focusSelectedItem:v}=i,k=h.useCallback(()=>{if(s.trigger&&s.valueNode&&o&&d&&g&&b&&y){let e=s.trigger.getBoundingClientRect(),t=d.getBoundingClientRect(),r=s.valueNode.getBoundingClientRect(),a=y.getBoundingClientRect();if("rtl"!==s.dir){let n=a.left-t.left,s=r.left-n,i=e.left-s,l=e.width+i,d=Math.max(l,t.width),c=tZ(s,[10,Math.max(10,window.innerWidth-10-d)]);o.style.minWidth=l+"px",o.style.left=c+"px"}else{let n=t.right-a.right,s=window.innerWidth-r.right-n,i=window.innerWidth-e.right-s,l=e.width+i,d=Math.max(l,t.width),c=tZ(s,[10,Math.max(10,window.innerWidth-10-d)]);o.style.minWidth=l+"px",o.style.right=c+"px"}let i=p(),l=window.innerHeight-20,c=g.scrollHeight,u=window.getComputedStyle(d),m=parseInt(u.borderTopWidth,10),h=parseInt(u.paddingTop,10),x=parseInt(u.borderBottomWidth,10),v=m+h+c+parseInt(u.paddingBottom,10)+x,k=Math.min(5*b.offsetHeight,v),w=window.getComputedStyle(g),j=parseInt(w.paddingTop,10),z=parseInt(w.paddingBottom,10),N=e.top+e.height/2-10,S=b.offsetHeight/2,C=m+h+(b.offsetTop+S);if(C<=N){let e=i.length>0&&b===i[i.length-1].ref.current;o.style.bottom="0px";let t=Math.max(l-N,S+(e?z:0)+(d.clientHeight-g.offsetTop-g.offsetHeight)+x);o.style.height=C+t+"px"}else{let e=i.length>0&&b===i[0].ref.current;o.style.top="0px";let t=Math.max(N,m+g.offsetTop+(e?j:0)+S);o.style.height=t+(v-C)+"px",g.scrollTop=C-N+g.offsetTop}o.style.margin="10px 0",o.style.minHeight=k+"px",o.style.maxHeight=l+"px",n?.(),requestAnimationFrame(()=>f.current=!0)}},[p,s.trigger,s.valueNode,o,d,g,b,y,s.dir,n]);rv(()=>k(),[k]);let[w,j]=h.useState();rv(()=>{d&&j(window.getComputedStyle(d).zIndex)},[d]);let z=h.useCallback(e=>{e&&!0===x.current&&(k(),v?.(),x.current=!1)},[k,v]);return(0,m.jsx)(a7,{scope:r,contentWrapper:o,shouldExpandOnScrollRef:f,onScrollButtonChange:z,children:(0,m.jsx)("div",{ref:l,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:w},children:(0,m.jsx)(rr.div,{...a,ref:u,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})});a6.displayName="SelectItemAlignedPosition";var a8=h.forwardRef((e,t)=>{let{__scopeSelect:r,align:n="start",collisionPadding:a=10,...s}=e,i=aq(r);return(0,m.jsx)(nU,{...i,...s,ref:t,align:n,collisionPadding:a,style:{boxSizing:"border-box",...s.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});a8.displayName="SelectPopperPosition";var[a7,se]=a$(a1,{}),st="SelectViewport",sr=h.forwardRef((e,t)=>{let{__scopeSelect:r,nonce:n,...a}=e,s=a4(st,r),i=se(st,r),o=t4(t,s.onViewportChange),l=h.useRef(0);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:n}),(0,m.jsx)(aP.Slot,{scope:r,children:(0,m.jsx)(rr.div,{"data-radix-select-viewport":"",role:"presentation",...a,ref:o,style:{position:"relative",flex:1,overflow:"hidden auto",...a.style},onScroll:t0(a.onScroll,e=>{let t=e.currentTarget,{contentWrapper:r,shouldExpandOnScrollRef:n}=i;if(n?.current&&r){let e=Math.abs(l.current-t.scrollTop);if(e>0){let n=window.innerHeight-20,a=Math.max(parseFloat(r.style.minHeight),parseFloat(r.style.height));if(a<n){let s=a+e,i=Math.min(n,s),o=s-i;r.style.height=i+"px","0px"===r.style.bottom&&(t.scrollTop=o>0?o:0,r.style.justifyContent="flex-end")}}}l.current=t.scrollTop})})})]})});sr.displayName=st;var sn="SelectGroup",[sa,ss]=a$(sn);h.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e,a=rj();return(0,m.jsx)(sa,{scope:r,id:a,children:(0,m.jsx)(rr.div,{role:"group","aria-labelledby":a,...n,ref:t})})}).displayName=sn;var si="SelectLabel";h.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e,a=ss(si,r);return(0,m.jsx)(rr.div,{id:a.id,...n,ref:t})}).displayName=si;var so="SelectItem",[sl,sd]=a$(so),sc=h.forwardRef((e,t)=>{let{__scopeSelect:r,value:n,disabled:a=!1,textValue:s,...i}=e,o=aH(so,r),l=a4(so,r),d=o.value===n,[c,u]=h.useState(s??""),[p,f]=h.useState(!1),x=t4(t,e=>l.itemRefCallback?.(e,n,a)),g=rj(),b=h.useRef("touch"),y=()=>{a||(o.onValueChange(n),o.onOpenChange(!1))};if(""===n)throw Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return(0,m.jsx)(sl,{scope:r,value:n,disabled:a,textId:g,isSelected:d,onItemTextChange:h.useCallback(e=>{u(t=>t||(e?.textContent??"").trim())},[]),children:(0,m.jsx)(aP.ItemSlot,{scope:r,value:n,disabled:a,textValue:c,children:(0,m.jsx)(rr.div,{role:"option","aria-labelledby":g,"data-highlighted":p?"":void 0,"aria-selected":d&&p,"data-state":d?"checked":"unchecked","aria-disabled":a||void 0,"data-disabled":a?"":void 0,tabIndex:a?void 0:-1,...i,ref:x,onFocus:t0(i.onFocus,()=>f(!0)),onBlur:t0(i.onBlur,()=>f(!1)),onClick:t0(i.onClick,()=>{"mouse"!==b.current&&y()}),onPointerUp:t0(i.onPointerUp,()=>{"mouse"===b.current&&y()}),onPointerDown:t0(i.onPointerDown,e=>{b.current=e.pointerType}),onPointerMove:t0(i.onPointerMove,e=>{b.current=e.pointerType,a?l.onItemLeave?.():"mouse"===b.current&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:t0(i.onPointerLeave,e=>{e.currentTarget===document.activeElement&&l.onItemLeave?.()}),onKeyDown:t0(i.onKeyDown,e=>{(l.searchRef?.current===""||" "!==e.key)&&(aL.includes(e.key)&&y()," "===e.key&&e.preventDefault())})})})})});sc.displayName=so;var su="SelectItemText",sm=h.forwardRef((e,t)=>{let{__scopeSelect:r,className:n,style:a,...s}=e,i=aH(su,r),o=a4(su,r),l=sd(su,r),d=aK(su,r),[c,u]=h.useState(null),p=t4(t,e=>u(e),l.onItemTextChange,e=>o.itemTextRefCallback?.(e,l.value,l.disabled)),f=c?.textContent,x=h.useMemo(()=>(0,m.jsx)("option",{value:l.value,disabled:l.disabled,children:f},l.value),[l.disabled,l.value,f]),{onNativeOptionAdd:g,onNativeOptionRemove:b}=d;return rv(()=>(g(x),()=>b(x)),[g,b,x]),(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(rr.span,{id:l.textId,...s,ref:p}),l.isSelected&&i.valueNode&&!i.valueNodeHasChildren?tX.createPortal(s.children,i.valueNode):null]})});sm.displayName=su;var sh="SelectItemIndicator",sp=h.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e;return sd(sh,r).isSelected?(0,m.jsx)(rr.span,{"aria-hidden":!0,...n,ref:t}):null});sp.displayName=sh;var sf="SelectScrollUpButton";h.forwardRef((e,t)=>{let r=a4(sf,e.__scopeSelect),n=se(sf,e.__scopeSelect),[a,s]=h.useState(!1),i=t4(t,n.onScrollButtonChange);return rv(()=>{if(r.viewport&&r.isPositioned){let e=function(){s(t.scrollTop>0)},t=r.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[r.viewport,r.isPositioned]),a?(0,m.jsx)(sg,{...e,ref:i,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop-t.offsetHeight)}}):null}).displayName=sf;var sx="SelectScrollDownButton";h.forwardRef((e,t)=>{let r=a4(sx,e.__scopeSelect),n=se(sx,e.__scopeSelect),[a,s]=h.useState(!1),i=t4(t,n.onScrollButtonChange);return rv(()=>{if(r.viewport&&r.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;s(Math.ceil(t.scrollTop)<e)},t=r.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[r.viewport,r.isPositioned]),a?(0,m.jsx)(sg,{...e,ref:i,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop+t.offsetHeight)}}):null}).displayName=sx;var sg=h.forwardRef((e,t)=>{let{__scopeSelect:r,onAutoScroll:n,...a}=e,s=a4("SelectScrollButton",r),i=h.useRef(null),o=aD(r),l=h.useCallback(()=>{null!==i.current&&(window.clearInterval(i.current),i.current=null)},[]);return h.useEffect(()=>()=>l(),[l]),rv(()=>{let e=o().find(e=>e.ref.current===document.activeElement);e?.ref.current?.scrollIntoView({block:"nearest"})},[o]),(0,m.jsx)(rr.div,{"aria-hidden":!0,...a,ref:t,style:{flexShrink:0,...a.style},onPointerDown:t0(a.onPointerDown,()=>{null===i.current&&(i.current=window.setInterval(n,50))}),onPointerMove:t0(a.onPointerMove,()=>{s.onItemLeave?.(),null===i.current&&(i.current=window.setInterval(n,50))}),onPointerLeave:t0(a.onPointerLeave,()=>{l()})})});h.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e;return(0,m.jsx)(rr.div,{"aria-hidden":!0,...n,ref:t})}).displayName="SelectSeparator";var sb="SelectArrow";h.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e,a=aq(r),s=aH(sb,r),i=a4(sb,r);return s.open&&"popper"===i.position?(0,m.jsx)(nH,{...a,...n,ref:t}):null}).displayName=sb;var sy=h.forwardRef(({__scopeSelect:e,value:t,...r},n)=>{let a,s=h.useRef(null),i=t4(n,s),o=(a=h.useRef({value:t,previous:t}),h.useMemo(()=>(a.current.value!==t&&(a.current.previous=a.current.value,a.current.value=t),a.current.previous),[t]));return h.useEffect(()=>{let e=s.current;if(!e)return;let r=Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype,"value").set;if(o!==t&&r){let n=new Event("change",{bubbles:!0});r.call(e,t),e.dispatchEvent(n)}},[o,t]),(0,m.jsx)(rr.select,{...r,style:{...nX,...r.style},ref:i,defaultValue:t})});function sv(e){return""===e||void 0===e}function sk(e){let t=rn(e),r=h.useRef(""),n=h.useRef(0),a=h.useCallback(e=>{let a=r.current+e;t(a),function e(t){r.current=t,window.clearTimeout(n.current),""!==t&&(n.current=window.setTimeout(()=>e(""),1e3))}(a)},[t]),s=h.useCallback(()=>{r.current="",window.clearTimeout(n.current)},[]);return h.useEffect(()=>()=>window.clearTimeout(n.current),[]),[r,a,s]}function sw(e,t,r){var n,a;let s=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=r?e.indexOf(r):-1,o=(n=e,a=Math.max(i,0),n.map((e,t)=>n[(a+t)%n.length]));1===s.length&&(o=o.filter(e=>e!==r));let l=o.find(e=>e.textValue.toLowerCase().startsWith(s.toLowerCase()));return l!==r?l:void 0}sy.displayName="SelectBubbleInput";let sj=eM("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]),sz=eM("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]),sN=(e=new Map,t=null,r)=>({nextPart:e,validators:t,classGroupId:r}),sS=[],sC=(e,t,r)=>{if(0==e.length-t)return r.classGroupId;let n=e[t],a=r.nextPart.get(n);if(a){let r=sC(e,t+1,a);if(r)return r}let s=r.validators;if(null===s)return;let i=0===t?e.join("-"):e.slice(t).join("-"),o=s.length;for(let e=0;e<o;e++){let t=s[e];if(t.validator(i))return t.classGroupId}},sE=(e,t)=>{let r=sN();for(let n in e)sR(e[n],r,n,t);return r},sR=(e,t,r,n)=>{let a=e.length;for(let s=0;s<a;s++)sA(e[s],t,r,n)},sA=(e,t,r,n)=>{"string"==typeof e?sT(e,t,r):"function"==typeof e?sO(e,t,r,n):sM(e,t,r,n)},sT=(e,t,r)=>{(""===e?t:sF(t,e)).classGroupId=r},sO=(e,t,r,n)=>{sI(e)?sR(e(n),t,r,n):(null===t.validators&&(t.validators=[]),t.validators.push({classGroupId:r,validator:e}))},sM=(e,t,r,n)=>{let a=Object.entries(e),s=a.length;for(let e=0;e<s;e++){let[s,i]=a[e];sR(i,sF(t,s),r,n)}},sF=(e,t)=>{let r=e,n=t.split("-"),a=n.length;for(let e=0;e<a;e++){let t=n[e],a=r.nextPart.get(t);a||(a=sN(),r.nextPart.set(t,a)),r=a}return r},sI=e=>"isThemeGetter"in e&&!0===e.isThemeGetter,sL=[],s_=(e,t,r,n,a)=>({modifiers:e,hasImportantModifier:t,baseClassName:r,maybePostfixModifierPosition:n,isExternal:a}),sP=/\s+/,sD=e=>{let t;if("string"==typeof e)return e;let r="";for(let n=0;n<e.length;n++)e[n]&&(t=sD(e[n]))&&(r&&(r+=" "),r+=t);return r},sV=[],s$=e=>{let t=t=>t[e]||sV;return t.isThemeGetter=!0,t},sU=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,sq=/^\((?:(\w[\w-]*):)?(.+)\)$/i,sB=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,sH=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,sW=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,sK=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,sQ=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,sJ=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,sG=e=>sB.test(e),sY=e=>!!e&&!Number.isNaN(Number(e)),sX=e=>!!e&&Number.isInteger(Number(e)),sZ=e=>e.endsWith("%")&&sY(e.slice(0,-1)),s0=e=>sH.test(e),s1=()=>!0,s2=e=>sW.test(e)&&!sK.test(e),s5=()=>!1,s4=e=>sQ.test(e),s3=e=>sJ.test(e),s9=e=>!s8(e)&&!io(e),s6=e=>ix(e,iv,s5),s8=e=>sU.test(e),s7=e=>ix(e,ik,s2),ie=e=>ix(e,iw,sY),it=e=>ix(e,iz,s1),ir=e=>ix(e,ij,s5),ia=e=>ix(e,ib,s5),is=e=>ix(e,iy,s3),ii=e=>ix(e,iN,s4),io=e=>sq.test(e),il=e=>ig(e,ik),id=e=>ig(e,ij),ic=e=>ig(e,ib),iu=e=>ig(e,iv),im=e=>ig(e,iy),ih=e=>ig(e,iN,!0),ip=e=>ig(e,iz,!0),ix=(e,t,r)=>{let n=sU.exec(e);return!!n&&(n[1]?t(n[1]):r(n[2]))},ig=(e,t,r=!1)=>{let n=sq.exec(e);return!!n&&(n[1]?t(n[1]):r)},ib=e=>"position"===e||"percentage"===e,iy=e=>"image"===e||"url"===e,iv=e=>"length"===e||"size"===e||"bg-size"===e,ik=e=>"length"===e,iw=e=>"number"===e,ij=e=>"family-name"===e,iz=e=>"number"===e||"weight"===e,iN=e=>"shadow"===e,iS=((e,...t)=>{let r,n,a,s,i=e=>{let t=n(e);if(t)return t;let s=((e,t)=>{let{parseClassName:r,getClassGroupId:n,getConflictingClassGroupIds:a,sortModifiers:s}=t,i=[],o=e.trim().split(sP),l="";for(let e=o.length-1;e>=0;e-=1){let t=o[e],{isExternal:d,modifiers:c,hasImportantModifier:u,baseClassName:m,maybePostfixModifierPosition:h}=r(t);if(d){l=t+(l.length>0?" "+l:l);continue}let p=!!h,f=n(p?m.substring(0,h):m);if(!f){if(!p||!(f=n(m))){l=t+(l.length>0?" "+l:l);continue}p=!1}let x=0===c.length?"":1===c.length?c[0]:s(c).join(":"),g=u?x+"!":x,b=g+f;if(i.indexOf(b)>-1)continue;i.push(b);let y=a(f,p);for(let e=0;e<y.length;++e){let t=y[e];i.push(g+t)}l=t+(l.length>0?" "+l:l)}return l})(e,r);return a(e,s),s};return s=o=>{var l;let d;return n=(r={cache:(e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,r=Object.create(null),n=Object.create(null),a=(a,s)=>{r[a]=s,++t>e&&(t=0,n=r,r=Object.create(null))};return{get(e){let t=r[e];return void 0!==t?t:void 0!==(t=n[e])?(a(e,t),t):void 0},set(e,t){e in r?r[e]=t:a(e,t)}}})((l=t.reduce((e,t)=>t(e),e())).cacheSize),parseClassName:(e=>{let{prefix:t,experimentalParseClassName:r}=e,n=e=>{let t,r=[],n=0,a=0,s=0,i=e.length;for(let o=0;o<i;o++){let i=e[o];if(0===n&&0===a){if(":"===i){r.push(e.slice(s,o)),s=o+1;continue}if("/"===i){t=o;continue}}"["===i?n++:"]"===i?n--:"("===i?a++:")"===i&&a--}let o=0===r.length?e:e.slice(s),l=o,d=!1;return o.endsWith("!")?(l=o.slice(0,-1),d=!0):o.startsWith("!")&&(l=o.slice(1),d=!0),s_(r,d,l,t&&t>s?t-s:void 0)};if(t){let e=t+":",r=n;n=t=>t.startsWith(e)?r(t.slice(e.length)):s_(sL,!1,t,void 0,!0)}if(r){let e=n;n=t=>r({className:t,parseClassName:e})}return n})(l),sortModifiers:(d=new Map,l.orderSensitiveModifiers.forEach((e,t)=>{d.set(e,1e6+t)}),e=>{let t=[],r=[];for(let n=0;n<e.length;n++){let a=e[n],s="["===a[0],i=d.has(a);s||i?(r.length>0&&(r.sort(),t.push(...r),r=[]),t.push(a)):r.push(a)}return r.length>0&&(r.sort(),t.push(...r)),t}),...(e=>{let t=(e=>{let{theme:t,classGroups:r}=e;return sE(r,t)})(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:e=>{if(e.startsWith("[")&&e.endsWith("]")){var r;let t,n,a;return -1===(r=e).slice(1,-1).indexOf(":")?void 0:(n=(t=r.slice(1,-1)).indexOf(":"),(a=t.slice(0,n))?"arbitrary.."+a:void 0)}let n=e.split("-"),a=+(""===n[0]&&n.length>1);return sC(n,a,t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=n[e],a=r[e];if(t){if(a){let e=Array(a.length+t.length);for(let t=0;t<a.length;t++)e[t]=a[t];for(let r=0;r<t.length;r++)e[a.length+r]=t[r];return e}return t}return a||sS}return r[e]||sS}}})(l)}).cache.get,a=r.cache.set,s=i,i(o)},(...e)=>s(((...e)=>{let t,r,n=0,a="";for(;n<e.length;)(t=e[n++])&&(r=sD(t))&&(a&&(a+=" "),a+=r);return a})(...e))})(()=>{let e=s$("color"),t=s$("font"),r=s$("text"),n=s$("font-weight"),a=s$("tracking"),s=s$("leading"),i=s$("breakpoint"),o=s$("container"),l=s$("spacing"),d=s$("radius"),c=s$("shadow"),u=s$("inset-shadow"),m=s$("text-shadow"),h=s$("drop-shadow"),p=s$("blur"),f=s$("perspective"),x=s$("aspect"),g=s$("ease"),b=s$("animate"),y=()=>["auto","avoid","all","avoid-page","page","left","right","column"],v=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],k=()=>[...v(),io,s8],w=()=>["auto","hidden","clip","visible","scroll"],j=()=>["auto","contain","none"],z=()=>[io,s8,l],N=()=>[sG,"full","auto",...z()],S=()=>[sX,"none","subgrid",io,s8],C=()=>["auto",{span:["full",sX,io,s8]},sX,io,s8],E=()=>[sX,"auto",io,s8],R=()=>["auto","min","max","fr",io,s8],A=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],T=()=>["start","end","center","stretch","center-safe","end-safe"],O=()=>["auto",...z()],M=()=>[sG,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...z()],F=()=>[sG,"screen","full","dvw","lvw","svw","min","max","fit",...z()],I=()=>[sG,"screen","full","lh","dvh","lvh","svh","min","max","fit",...z()],L=()=>[e,io,s8],_=()=>[...v(),ic,ia,{position:[io,s8]}],P=()=>["no-repeat",{repeat:["","x","y","space","round"]}],D=()=>["auto","cover","contain",iu,s6,{size:[io,s8]}],V=()=>[sZ,il,s7],$=()=>["","none","full",d,io,s8],U=()=>["",sY,il,s7],q=()=>["solid","dashed","dotted","double"],B=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],H=()=>[sY,sZ,ic,ia],W=()=>["","none",p,io,s8],K=()=>["none",sY,io,s8],Q=()=>["none",sY,io,s8],J=()=>[sY,io,s8],G=()=>[sG,"full",...z()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[s0],breakpoint:[s0],color:[s1],container:[s0],"drop-shadow":[s0],ease:["in","out","in-out"],font:[s9],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[s0],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[s0],shadow:[s0],spacing:["px",sY],text:[s0],"text-shadow":[s0],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",sG,s8,io,x]}],container:["container"],columns:[{columns:[sY,s8,io,o]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:k()}],overflow:[{overflow:w()}],"overflow-x":[{"overflow-x":w()}],"overflow-y":[{"overflow-y":w()}],overscroll:[{overscroll:j()}],"overscroll-x":[{"overscroll-x":j()}],"overscroll-y":[{"overscroll-y":j()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:N()}],"inset-x":[{"inset-x":N()}],"inset-y":[{"inset-y":N()}],start:[{"inset-s":N(),start:N()}],end:[{"inset-e":N(),end:N()}],"inset-bs":[{"inset-bs":N()}],"inset-be":[{"inset-be":N()}],top:[{top:N()}],right:[{right:N()}],bottom:[{bottom:N()}],left:[{left:N()}],visibility:["visible","invisible","collapse"],z:[{z:[sX,"auto",io,s8]}],basis:[{basis:[sG,"full","auto",o,...z()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[sY,sG,"auto","initial","none",s8]}],grow:[{grow:["",sY,io,s8]}],shrink:[{shrink:["",sY,io,s8]}],order:[{order:[sX,"first","last","none",io,s8]}],"grid-cols":[{"grid-cols":S()}],"col-start-end":[{col:C()}],"col-start":[{"col-start":E()}],"col-end":[{"col-end":E()}],"grid-rows":[{"grid-rows":S()}],"row-start-end":[{row:C()}],"row-start":[{"row-start":E()}],"row-end":[{"row-end":E()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":R()}],"auto-rows":[{"auto-rows":R()}],gap:[{gap:z()}],"gap-x":[{"gap-x":z()}],"gap-y":[{"gap-y":z()}],"justify-content":[{justify:[...A(),"normal"]}],"justify-items":[{"justify-items":[...T(),"normal"]}],"justify-self":[{"justify-self":["auto",...T()]}],"align-content":[{content:["normal",...A()]}],"align-items":[{items:[...T(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...T(),{baseline:["","last"]}]}],"place-content":[{"place-content":A()}],"place-items":[{"place-items":[...T(),"baseline"]}],"place-self":[{"place-self":["auto",...T()]}],p:[{p:z()}],px:[{px:z()}],py:[{py:z()}],ps:[{ps:z()}],pe:[{pe:z()}],pbs:[{pbs:z()}],pbe:[{pbe:z()}],pt:[{pt:z()}],pr:[{pr:z()}],pb:[{pb:z()}],pl:[{pl:z()}],m:[{m:O()}],mx:[{mx:O()}],my:[{my:O()}],ms:[{ms:O()}],me:[{me:O()}],mbs:[{mbs:O()}],mbe:[{mbe:O()}],mt:[{mt:O()}],mr:[{mr:O()}],mb:[{mb:O()}],ml:[{ml:O()}],"space-x":[{"space-x":z()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":z()}],"space-y-reverse":["space-y-reverse"],size:[{size:M()}],"inline-size":[{inline:["auto",...F()]}],"min-inline-size":[{"min-inline":["auto",...F()]}],"max-inline-size":[{"max-inline":["none",...F()]}],"block-size":[{block:["auto",...I()]}],"min-block-size":[{"min-block":["auto",...I()]}],"max-block-size":[{"max-block":["none",...I()]}],w:[{w:[o,"screen",...M()]}],"min-w":[{"min-w":[o,"screen","none",...M()]}],"max-w":[{"max-w":[o,"screen","none","prose",{screen:[i]},...M()]}],h:[{h:["screen","lh",...M()]}],"min-h":[{"min-h":["screen","lh","none",...M()]}],"max-h":[{"max-h":["screen","lh",...M()]}],"font-size":[{text:["base",r,il,s7]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,ip,it]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",sZ,s8]}],"font-family":[{font:[id,ir,t]}],"font-features":[{"font-features":[s8]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[a,io,s8]}],"line-clamp":[{"line-clamp":[sY,"none",io,ie]}],leading:[{leading:[s,...z()]}],"list-image":[{"list-image":["none",io,s8]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",io,s8]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:L()}],"text-color":[{text:L()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...q(),"wavy"]}],"text-decoration-thickness":[{decoration:[sY,"from-font","auto",io,s7]}],"text-decoration-color":[{decoration:L()}],"underline-offset":[{"underline-offset":[sY,"auto",io,s8]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:z()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",io,s8]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",io,s8]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:_()}],"bg-repeat":[{bg:P()}],"bg-size":[{bg:D()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},sX,io,s8],radial:["",io,s8],conic:[sX,io,s8]},im,is]}],"bg-color":[{bg:L()}],"gradient-from-pos":[{from:V()}],"gradient-via-pos":[{via:V()}],"gradient-to-pos":[{to:V()}],"gradient-from":[{from:L()}],"gradient-via":[{via:L()}],"gradient-to":[{to:L()}],rounded:[{rounded:$()}],"rounded-s":[{"rounded-s":$()}],"rounded-e":[{"rounded-e":$()}],"rounded-t":[{"rounded-t":$()}],"rounded-r":[{"rounded-r":$()}],"rounded-b":[{"rounded-b":$()}],"rounded-l":[{"rounded-l":$()}],"rounded-ss":[{"rounded-ss":$()}],"rounded-se":[{"rounded-se":$()}],"rounded-ee":[{"rounded-ee":$()}],"rounded-es":[{"rounded-es":$()}],"rounded-tl":[{"rounded-tl":$()}],"rounded-tr":[{"rounded-tr":$()}],"rounded-br":[{"rounded-br":$()}],"rounded-bl":[{"rounded-bl":$()}],"border-w":[{border:U()}],"border-w-x":[{"border-x":U()}],"border-w-y":[{"border-y":U()}],"border-w-s":[{"border-s":U()}],"border-w-e":[{"border-e":U()}],"border-w-bs":[{"border-bs":U()}],"border-w-be":[{"border-be":U()}],"border-w-t":[{"border-t":U()}],"border-w-r":[{"border-r":U()}],"border-w-b":[{"border-b":U()}],"border-w-l":[{"border-l":U()}],"divide-x":[{"divide-x":U()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":U()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...q(),"hidden","none"]}],"divide-style":[{divide:[...q(),"hidden","none"]}],"border-color":[{border:L()}],"border-color-x":[{"border-x":L()}],"border-color-y":[{"border-y":L()}],"border-color-s":[{"border-s":L()}],"border-color-e":[{"border-e":L()}],"border-color-bs":[{"border-bs":L()}],"border-color-be":[{"border-be":L()}],"border-color-t":[{"border-t":L()}],"border-color-r":[{"border-r":L()}],"border-color-b":[{"border-b":L()}],"border-color-l":[{"border-l":L()}],"divide-color":[{divide:L()}],"outline-style":[{outline:[...q(),"none","hidden"]}],"outline-offset":[{"outline-offset":[sY,io,s8]}],"outline-w":[{outline:["",sY,il,s7]}],"outline-color":[{outline:L()}],shadow:[{shadow:["","none",c,ih,ii]}],"shadow-color":[{shadow:L()}],"inset-shadow":[{"inset-shadow":["none",u,ih,ii]}],"inset-shadow-color":[{"inset-shadow":L()}],"ring-w":[{ring:U()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:L()}],"ring-offset-w":[{"ring-offset":[sY,s7]}],"ring-offset-color":[{"ring-offset":L()}],"inset-ring-w":[{"inset-ring":U()}],"inset-ring-color":[{"inset-ring":L()}],"text-shadow":[{"text-shadow":["none",m,ih,ii]}],"text-shadow-color":[{"text-shadow":L()}],opacity:[{opacity:[sY,io,s8]}],"mix-blend":[{"mix-blend":[...B(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":B()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[sY]}],"mask-image-linear-from-pos":[{"mask-linear-from":H()}],"mask-image-linear-to-pos":[{"mask-linear-to":H()}],"mask-image-linear-from-color":[{"mask-linear-from":L()}],"mask-image-linear-to-color":[{"mask-linear-to":L()}],"mask-image-t-from-pos":[{"mask-t-from":H()}],"mask-image-t-to-pos":[{"mask-t-to":H()}],"mask-image-t-from-color":[{"mask-t-from":L()}],"mask-image-t-to-color":[{"mask-t-to":L()}],"mask-image-r-from-pos":[{"mask-r-from":H()}],"mask-image-r-to-pos":[{"mask-r-to":H()}],"mask-image-r-from-color":[{"mask-r-from":L()}],"mask-image-r-to-color":[{"mask-r-to":L()}],"mask-image-b-from-pos":[{"mask-b-from":H()}],"mask-image-b-to-pos":[{"mask-b-to":H()}],"mask-image-b-from-color":[{"mask-b-from":L()}],"mask-image-b-to-color":[{"mask-b-to":L()}],"mask-image-l-from-pos":[{"mask-l-from":H()}],"mask-image-l-to-pos":[{"mask-l-to":H()}],"mask-image-l-from-color":[{"mask-l-from":L()}],"mask-image-l-to-color":[{"mask-l-to":L()}],"mask-image-x-from-pos":[{"mask-x-from":H()}],"mask-image-x-to-pos":[{"mask-x-to":H()}],"mask-image-x-from-color":[{"mask-x-from":L()}],"mask-image-x-to-color":[{"mask-x-to":L()}],"mask-image-y-from-pos":[{"mask-y-from":H()}],"mask-image-y-to-pos":[{"mask-y-to":H()}],"mask-image-y-from-color":[{"mask-y-from":L()}],"mask-image-y-to-color":[{"mask-y-to":L()}],"mask-image-radial":[{"mask-radial":[io,s8]}],"mask-image-radial-from-pos":[{"mask-radial-from":H()}],"mask-image-radial-to-pos":[{"mask-radial-to":H()}],"mask-image-radial-from-color":[{"mask-radial-from":L()}],"mask-image-radial-to-color":[{"mask-radial-to":L()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":v()}],"mask-image-conic-pos":[{"mask-conic":[sY]}],"mask-image-conic-from-pos":[{"mask-conic-from":H()}],"mask-image-conic-to-pos":[{"mask-conic-to":H()}],"mask-image-conic-from-color":[{"mask-conic-from":L()}],"mask-image-conic-to-color":[{"mask-conic-to":L()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:_()}],"mask-repeat":[{mask:P()}],"mask-size":[{mask:D()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",io,s8]}],filter:[{filter:["","none",io,s8]}],blur:[{blur:W()}],brightness:[{brightness:[sY,io,s8]}],contrast:[{contrast:[sY,io,s8]}],"drop-shadow":[{"drop-shadow":["","none",h,ih,ii]}],"drop-shadow-color":[{"drop-shadow":L()}],grayscale:[{grayscale:["",sY,io,s8]}],"hue-rotate":[{"hue-rotate":[sY,io,s8]}],invert:[{invert:["",sY,io,s8]}],saturate:[{saturate:[sY,io,s8]}],sepia:[{sepia:["",sY,io,s8]}],"backdrop-filter":[{"backdrop-filter":["","none",io,s8]}],"backdrop-blur":[{"backdrop-blur":W()}],"backdrop-brightness":[{"backdrop-brightness":[sY,io,s8]}],"backdrop-contrast":[{"backdrop-contrast":[sY,io,s8]}],"backdrop-grayscale":[{"backdrop-grayscale":["",sY,io,s8]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[sY,io,s8]}],"backdrop-invert":[{"backdrop-invert":["",sY,io,s8]}],"backdrop-opacity":[{"backdrop-opacity":[sY,io,s8]}],"backdrop-saturate":[{"backdrop-saturate":[sY,io,s8]}],"backdrop-sepia":[{"backdrop-sepia":["",sY,io,s8]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":z()}],"border-spacing-x":[{"border-spacing-x":z()}],"border-spacing-y":[{"border-spacing-y":z()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",io,s8]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[sY,"initial",io,s8]}],ease:[{ease:["linear","initial",g,io,s8]}],delay:[{delay:[sY,io,s8]}],animate:[{animate:["none",b,io,s8]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[f,io,s8]}],"perspective-origin":[{"perspective-origin":k()}],rotate:[{rotate:K()}],"rotate-x":[{"rotate-x":K()}],"rotate-y":[{"rotate-y":K()}],"rotate-z":[{"rotate-z":K()}],scale:[{scale:Q()}],"scale-x":[{"scale-x":Q()}],"scale-y":[{"scale-y":Q()}],"scale-z":[{"scale-z":Q()}],"scale-3d":["scale-3d"],skew:[{skew:J()}],"skew-x":[{"skew-x":J()}],"skew-y":[{"skew-y":J()}],transform:[{transform:[io,s8,"","none","gpu","cpu"]}],"transform-origin":[{origin:k()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:G()}],"translate-x":[{"translate-x":G()}],"translate-y":[{"translate-y":G()}],"translate-z":[{"translate-z":G()}],"translate-none":["translate-none"],accent:[{accent:L()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:L()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",io,s8]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":z()}],"scroll-mx":[{"scroll-mx":z()}],"scroll-my":[{"scroll-my":z()}],"scroll-ms":[{"scroll-ms":z()}],"scroll-me":[{"scroll-me":z()}],"scroll-mbs":[{"scroll-mbs":z()}],"scroll-mbe":[{"scroll-mbe":z()}],"scroll-mt":[{"scroll-mt":z()}],"scroll-mr":[{"scroll-mr":z()}],"scroll-mb":[{"scroll-mb":z()}],"scroll-ml":[{"scroll-ml":z()}],"scroll-p":[{"scroll-p":z()}],"scroll-px":[{"scroll-px":z()}],"scroll-py":[{"scroll-py":z()}],"scroll-ps":[{"scroll-ps":z()}],"scroll-pe":[{"scroll-pe":z()}],"scroll-pbs":[{"scroll-pbs":z()}],"scroll-pbe":[{"scroll-pbe":z()}],"scroll-pt":[{"scroll-pt":z()}],"scroll-pr":[{"scroll-pr":z()}],"scroll-pb":[{"scroll-pb":z()}],"scroll-pl":[{"scroll-pl":z()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",io,s8]}],fill:[{fill:["none",...L()]}],"stroke-w":[{stroke:[sY,il,s7,ie]}],stroke:[{stroke:["none",...L()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function iC(...e){return iS(function(){for(var e,t,r=0,n="",a=arguments.length;r<a;r++)(e=arguments[r])&&(t=function e(t){var r,n,a="";if("string"==typeof t||"number"==typeof t)a+=t;else if("object"==typeof t)if(Array.isArray(t)){var s=t.length;for(r=0;r<s;r++)t[r]&&(n=e(t[r]))&&(a&&(a+=" "),a+=n)}else for(n in t)t[n]&&(a&&(a+=" "),a+=n);return a}(e))&&(n&&(n+=" "),n+=t);return n}(e))}let iE=h.forwardRef(({className:e,children:t,...r},n)=>(0,m.jsxs)(aG,{ref:n,className:iC("flex h-10 w-full items-center justify-between rounded-lg border border-zinc-200 bg-white px-3 py-2 text-sm","ring-offset-white placeholder:text-zinc-500 focus:outline-none focus:ring-2 focus:ring-zinc-950 focus:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-800 dark:bg-zinc-950 dark:ring-offset-zinc-950","dark:placeholder:text-zinc-400 dark:focus:ring-zinc-300",e),...r,children:[t,(0,m.jsx)(aZ,{asChild:!0,children:(0,m.jsx)(sj,{className:"h-4 w-4 opacity-50"})})]}));iE.displayName=aG.displayName;let iR=h.forwardRef(({className:e,children:t,position:r="popper",...n},a)=>(0,m.jsx)(a0,{children:(0,m.jsx)(a2,{ref:a,className:iC("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-lg border border-zinc-200 bg-white text-zinc-950 shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2","data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-50","popper"===r&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:r,...n,children:(0,m.jsx)(sr,{className:iC("p-1","popper"===r&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t})})}));iR.displayName=a2.displayName;let iA=h.forwardRef(({className:e,children:t,...r},n)=>(0,m.jsxs)(sc,{ref:n,className:iC("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none","focus:bg-zinc-100 focus:text-zinc-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50","dark:focus:bg-zinc-800 dark:focus:text-zinc-50",e),...r,children:[(0,m.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,m.jsx)(sp,{children:(0,m.jsx)(eJ,{className:"h-4 w-4"})})}),(0,m.jsx)(sm,{children:t})]}));function iT(e){if(!e)return{provider:"unknown",model:""};let t=e.indexOf("/");return -1!==t?{provider:e.substring(0,t),model:e.substring(t+1)}:{provider:"unknown",model:e}}function iO({value:e,onValueChange:t,placeholder:r="Select a model...",disabled:n=!1}){let[a,s]=h.useState(""),{data:i,isLoading:o,isError:l,error:d,refetch:c}=A({queryKey:["opencode-models"],queryFn:async()=>{let e=await fetch("/api/opencode-models"),t=await e.json();if(!e.ok||t.error)throw Error(t.error||"Failed to fetch models");return t},retry:!1}),u=h.useMemo(()=>{let t=new Set(i?.models??[]);return e&&!t.has(e)&&t.add(e),Array.from(t).sort()},[i?.models,e]),p=h.useMemo(()=>{if(!a.trim())return u;let e=a.toLowerCase();return u.filter(t=>t.toLowerCase().includes(e))},[u,a]),f=h.useMemo(()=>{let e={};return p.forEach(t=>{let{provider:r}=iT(t);e[r]||(e[r]=[]),e[r].push(t)}),e},[p]),x=Object.keys(f).sort(),g=h.useCallback(e=>{e||s("")},[]),b=e?iT(e):null;return(0,m.jsxs)(aQ,{value:e,onValueChange:t,disabled:n||o,onOpenChange:g,children:[(0,m.jsx)(iE,{children:(0,m.jsx)(aX,{placeholder:r,children:b&&(0,m.jsxs)("span",{className:"flex items-center gap-2",children:[(0,m.jsx)("span",{className:"text-xs font-medium text-zinc-500 dark:text-zinc-400",children:b.provider}),(0,m.jsx)("span",{className:"text-zinc-500 dark:text-zinc-400",children:"/"}),(0,m.jsx)("span",{className:"text-zinc-900 dark:text-zinc-100",children:b.model})]})})}),(0,m.jsxs)(iR,{children:[(0,m.jsx)("div",{className:"sticky top-0 z-10 border-b border-zinc-200 bg-white px-2 pb-2 pt-1 dark:border-zinc-800 dark:bg-zinc-950",children:(0,m.jsxs)("div",{className:"relative",children:[(0,m.jsx)(eD,{className:"absolute left-2 top-1/2 h-4 w-4 -translate-y-1/2 text-zinc-400"}),(0,m.jsx)("input",{type:"text",value:a,onChange:e=>s(e.target.value),placeholder:"Search models...",className:iC("h-9 w-full rounded-md border border-zinc-200 bg-transparent pl-8 pr-3 text-sm","outline-none placeholder:text-zinc-500 focus:border-zinc-400 focus:ring-0","dark:border-zinc-800 dark:placeholder:text-zinc-400"),onKeyDown:e=>e.stopPropagation()})]})}),(0,m.jsx)("div",{className:"max-h-64 overflow-auto",children:o?(0,m.jsx)("div",{className:"px-2 py-4 text-center text-sm text-zinc-500",children:"Loading models..."}):l?(0,m.jsx)("div",{className:"px-4 py-6 text-center",children:(0,m.jsxs)("div",{className:"flex flex-col items-center gap-3",children:[(0,m.jsx)("div",{className:"w-10 h-10 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:(0,m.jsx)(eQ,{className:"h-5 w-5 text-red-600 dark:text-red-400"})}),(0,m.jsxs)("div",{className:"space-y-1",children:[(0,m.jsx)("p",{className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Failed to load models"}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400 max-w-[200px]",children:d instanceof Error?d.message:"Please check your OpenCode installation"})]}),(0,m.jsxs)("button",{type:"button",onClick:e=>{e.stopPropagation(),c()},className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs font-medium bg-zinc-100 text-zinc-700 hover:bg-zinc-200 dark:bg-zinc-800 dark:text-zinc-300 dark:hover:bg-zinc-700 transition-colors",children:[(0,m.jsx)(sz,{className:"h-3.5 w-3.5"}),"Retry"]})]})}):0===p.length?(0,m.jsx)("div",{className:"px-2 py-4 text-center text-sm text-zinc-500",children:"No models found"}):x.map(e=>(0,m.jsxs)("div",{children:[(0,m.jsx)("div",{className:"px-2 py-1.5 text-xs font-semibold uppercase tracking-wide text-zinc-500 dark:text-zinc-400",children:e}),f[e].map(e=>{let{model:t}=iT(e);return(0,m.jsx)(iA,{value:e,children:(0,m.jsx)("span",{className:"flex items-center gap-2",children:(0,m.jsx)("span",{className:"text-zinc-900 dark:text-zinc-100",children:t})})},e)})]},e))})]})]})}iA.displayName=sc.displayName;let iM={"visual-engineering":["google/gemini-3.1-pro","glm-5","anthropic/claude-opus-4-6"],ultrabrain:["openai/gpt-5.4","google/gemini-3.1-pro","anthropic/claude-opus-4-6","glm-5"],deep:["openai/gpt-5.4","anthropic/claude-opus-4-6","google/gemini-3.1-pro"],artistry:["google/gemini-3.1-pro","anthropic/claude-opus-4-6","openai/gpt-5.4"],quick:["openai/gpt-5.4-mini","anthropic/claude-haiku-4-5","google/gemini-3-flash","minimax-m2.7","gpt-5-nano"],"unspecified-low":["anthropic/claude-sonnet-4-6","openai/gpt-5.3-codex","kimi-k2.5","google/gemini-3-flash","minimax-m2.7"],"unspecified-high":["anthropic/claude-opus-4-6","openai/gpt-5.4","glm-5","k2p5","kimi-k2.5"],writing:["google/gemini-3-flash","kimi-k2.5","anthropic/claude-sonnet-4-6","minimax-m2.7"]};function iF({categoryName:e,initialConfig:t,onSave:r,onCancel:n}){let[a,s]=h.useState(null),{control:i,handleSubmit:o,formState:{isSubmitting:l}}=tY({defaultValues:{model:t?.model||"",variant:t?.variant||"",temperature:t?.temperature??.7,top_p:t?.top_p??1,prompt_append:t?.prompt_append||"",reasoningEffort:t?.reasoningEffort||"",fallbackModelsObj:t?.fallback_models,fallback_models:t?.fallback_models?JSON.stringify(t.fallback_models,null,2):""}}),{data:d}=A({queryKey:["opencode-models"],queryFn:async()=>{var e;let t=await fetch("/api/opencode-models"),r=null;try{r=await t.json()}catch{r=null}let n=r&&"object"==typeof r&&"error"in r&&"string"==typeof r.error?r.error:null;if(!t.ok||n)throw Error(n||`Failed to fetch models (${t.status})`);if(!((e=r)&&"object"==typeof e&&Array.isArray(e.models)))throw Error("Invalid models response");return r},retry:!1}),c=h.useMemo(()=>new Set(d?.models??[]),[d]),u=tv({control:i,name:"model"}),p=u&&c.size>0&&!c.has(u),f=!u,x=iM[e];return h.useEffect(()=>{if(a){let e=setTimeout(()=>s(null),3e3);return()=>clearTimeout(e)}},[a]),(0,m.jsxs)("form",{onSubmit:o(e=>{let t,n=Math.max(0,Math.min(2,e.temperature)),a=Math.max(0,Math.min(1,e.top_p));if(""!==e.fallback_models.trim())try{t=JSON.parse(e.fallback_models)}catch{s({type:"error",message:"Invalid JSON in fallback_models"});return}let i={model:e.model||void 0,variant:e.variant||void 0,temperature:n,top_p:a,prompt_append:e.prompt_append||void 0};e.reasoningEffort?i.reasoningEffort=e.reasoningEffort:i.reasoningEffort=null,void 0!==t?i.fallback_models=t:i.fallback_models=null,r(i),s({type:"success",message:"Configuration saved successfully"})}),className:"space-y-6","aria-label":"Category configuration form",children:[a&&(0,m.jsxs)("div",{role:"alert",className:`flex items-center gap-2 rounded-lg px-4 py-3 text-sm ${"success"===a.type?"bg-emerald-50 text-emerald-800 dark:bg-emerald-900/20 dark:text-emerald-300":"bg-red-50 text-red-800 dark:bg-red-900/20 dark:text-red-300"}`,children:["success"===a.type?(0,m.jsx)(eJ,{className:"h-4 w-4 shrink-0","aria-hidden":"true"}):(0,m.jsx)(eQ,{className:"h-4 w-4 shrink-0","aria-hidden":"true"}),(0,m.jsx)("span",{children:a.message})]}),(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsx)("label",{htmlFor:"category-name",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Category"}),(0,m.jsx)("input",{id:"category-name",type:"text",value:e,disabled:!0,className:"w-full rounded-lg border border-zinc-200 bg-zinc-100 px-3 py-2 text-sm text-zinc-600 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-400"}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"The category identifier for this configuration."})]}),f&&x&&(0,m.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border border-zinc-200 bg-zinc-50 px-4 py-3 dark:border-zinc-800 dark:bg-zinc-900/20",children:[(0,m.jsx)(eQ,{className:"mt-0.5 h-4 w-4 shrink-0 text-zinc-500 dark:text-zinc-400"}),(0,m.jsxs)("div",{className:"text-sm text-zinc-700 dark:text-zinc-300",children:[(0,m.jsx)("span",{className:"font-medium",children:"Using built-in fallback chain"})," — this category will try models in priority order when ",(0,m.jsx)("code",{className:"rounded bg-zinc-200 px-1 py-0.5 text-xs dark:bg-zinc-800",children:"task()"})," is called:",(0,m.jsx)("div",{className:"mt-2 flex flex-wrap items-center gap-1",children:x.map((e,t)=>(0,m.jsxs)(h.Fragment,{children:[(0,m.jsx)("code",{className:`rounded px-1.5 py-0.5 text-xs ${0===t?"bg-blue-100 text-blue-800 dark:bg-blue-900/50 dark:text-blue-200 font-medium":"bg-zinc-100 text-zinc-600 dark:bg-zinc-800 dark:text-zinc-400"}`,children:e}),t<x.length-1&&(0,m.jsx)("span",{className:"text-zinc-400 dark:text-zinc-500",children:"→"})]},e))}),(0,m.jsx)("p",{className:"mt-2 text-xs text-zinc-500 dark:text-zinc-400",children:"Select a model to override the built-in behavior."})]})]}),f&&!x&&(0,m.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border border-zinc-200 bg-zinc-50 px-4 py-3 dark:border-zinc-800 dark:bg-zinc-900/20",children:[(0,m.jsx)(eQ,{className:"mt-0.5 h-4 w-4 shrink-0 text-zinc-500 dark:text-zinc-400"}),(0,m.jsxs)("p",{className:"text-sm text-zinc-700 dark:text-zinc-300",children:[(0,m.jsx)("span",{className:"font-medium",children:"No model configured"})," — this custom category needs a model to be used with ",(0,m.jsx)("code",{className:"rounded bg-zinc-200 px-1 py-0.5 text-xs dark:bg-zinc-800",children:"task()"}),"."]})]}),p&&(0,m.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border border-amber-200 bg-amber-50 px-4 py-3 dark:border-amber-800 dark:bg-amber-900/20",children:[(0,m.jsx)(eU,{className:"mt-0.5 h-4 w-4 shrink-0 text-amber-500 dark:text-amber-400"}),(0,m.jsxs)("p",{className:"text-sm text-amber-700 dark:text-amber-300",children:[(0,m.jsx)("span",{className:"font-medium",children:"Model unavailable"})," — ",(0,m.jsx)("code",{className:"rounded bg-amber-100 px-1 py-0.5 text-xs dark:bg-amber-800",children:u})," is missing from current providers. Please check your provider settings."]})]}),(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsx)("label",{htmlFor:"model-selector",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Model"}),(0,m.jsx)(tk,{name:"model",control:i,render:({field:e})=>(0,m.jsx)("div",{id:"model-selector",children:(0,m.jsx)(iO,{value:e.value,onValueChange:e.onChange,placeholder:"Select a model..."})})}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"The AI model identifier for this category."})]}),(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsx)("label",{htmlFor:"variant-selector",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Variant"}),(0,m.jsx)(tk,{name:"variant",control:i,render:({field:e})=>(0,m.jsxs)("select",{id:"variant-selector",value:e.value,onChange:t=>e.onChange(t.target.value),className:"w-full rounded-lg border border-zinc-200 bg-white px-3 py-2 text-sm dark:border-zinc-800 dark:bg-zinc-950",children:[(0,m.jsx)("option",{value:"",children:"Not set"}),(0,m.jsx)("option",{value:"max",children:"max"}),(0,m.jsx)("option",{value:"high",children:"high"}),(0,m.jsx)("option",{value:"medium",children:"medium"}),(0,m.jsx)("option",{value:"low",children:"low"}),(0,m.jsx)("option",{value:"xhigh",children:"xhigh"})]})}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"Model reasoning variant. Higher values mean more thinking."})]}),(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsx)("label",{htmlFor:"reasoning-effort-selector",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Reasoning Effort"}),(0,m.jsx)(tk,{name:"reasoningEffort",control:i,render:({field:e})=>(0,m.jsxs)("select",{id:"reasoning-effort-selector",value:e.value,onChange:t=>e.onChange(t.target.value),className:"w-full rounded-lg border border-zinc-200 bg-white px-3 py-2 text-sm dark:border-zinc-800 dark:bg-zinc-950",children:[(0,m.jsx)("option",{value:"",children:"Not set"}),(0,m.jsx)("option",{value:"high",children:"high"}),(0,m.jsx)("option",{value:"medium",children:"medium"}),(0,m.jsx)("option",{value:"low",children:"low"}),(0,m.jsx)("option",{value:"max",children:"max"})]})}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"Controls the reasoning effort for compatible models like o1 or o3-mini."})]}),(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between",children:[(0,m.jsx)("label",{htmlFor:"temperature-slider",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Temperature"}),(0,m.jsx)(tk,{name:"temperature",control:i,rules:{min:{value:0,message:"Minimum is 0"},max:{value:2,message:"Maximum is 2"}},render:({field:e})=>(0,m.jsx)("span",{className:"rounded-md bg-zinc-100 px-2 py-0.5 text-xs font-medium text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300",children:e.value.toFixed(1)})})]}),(0,m.jsx)(tk,{name:"temperature",control:i,rules:{min:{value:0,message:"Minimum is 0"},max:{value:2,message:"Maximum is 2"}},render:({field:e,fieldState:t})=>(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsx)("input",{id:"temperature-slider",type:"range",min:0,max:2,step:.1,value:e.value,onChange:t=>e.onChange(parseFloat(t.target.value)),className:"flex-1 h-2 cursor-pointer appearance-none rounded-lg bg-zinc-200 accent-blue-600 dark:bg-zinc-700","aria-label":"Temperature slider"}),(0,m.jsx)("input",{type:"number",min:0,max:2,step:.1,value:e.value,onChange:t=>e.onChange(parseFloat(t.target.value)||0),className:"w-16 rounded-lg border border-zinc-200 bg-white px-2 py-1 text-center text-sm dark:border-zinc-800 dark:bg-zinc-950","aria-label":"Temperature value"})]}),t.error&&(0,m.jsx)("p",{className:"text-xs text-red-600 dark:text-red-400",role:"alert",children:t.error.message})]})}),(0,m.jsxs)("div",{className:"flex justify-between text-xs text-zinc-500 dark:text-zinc-400",children:[(0,m.jsx)("span",{children:"Precise (0)"}),(0,m.jsx)("span",{children:"Balanced (1)"}),(0,m.jsx)("span",{children:"Creative (2)"})]}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"Controls randomness: lower values make responses more deterministic."})]}),(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between",children:[(0,m.jsx)("label",{htmlFor:"top-p-slider",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Top P"}),(0,m.jsx)(tk,{name:"top_p",control:i,rules:{min:{value:0,message:"Minimum is 0"},max:{value:1,message:"Maximum is 1"}},render:({field:e})=>(0,m.jsx)("span",{className:"rounded-md bg-zinc-100 px-2 py-0.5 text-xs font-medium text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300",children:e.value.toFixed(2)})})]}),(0,m.jsx)(tk,{name:"top_p",control:i,rules:{min:{value:0,message:"Minimum is 0"},max:{value:1,message:"Maximum is 1"}},render:({field:e,fieldState:t})=>(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsx)("input",{id:"top-p-slider",type:"range",min:0,max:1,step:.05,value:e.value,onChange:t=>e.onChange(parseFloat(t.target.value)),className:"flex-1 h-2 cursor-pointer appearance-none rounded-lg bg-zinc-200 accent-blue-600 dark:bg-zinc-700","aria-label":"Top P slider"}),(0,m.jsx)("input",{type:"number",min:0,max:1,step:.05,value:e.value,onChange:t=>e.onChange(parseFloat(t.target.value)||0),className:"w-16 rounded-lg border border-zinc-200 bg-white px-2 py-1 text-center text-sm dark:border-zinc-800 dark:bg-zinc-950","aria-label":"Top P value"})]}),t.error&&(0,m.jsx)("p",{className:"text-xs text-red-600 dark:text-red-400",role:"alert",children:t.error.message})]})}),(0,m.jsxs)("div",{className:"flex justify-between text-xs text-zinc-500 dark:text-zinc-400",children:[(0,m.jsx)("span",{children:"Diverse (0)"}),(0,m.jsx)("span",{children:"Default (1)"})]}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"Controls nucleus sampling: lower values sample from more likely tokens."})]}),(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsx)("label",{htmlFor:"prompt-append",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Prompt Append"}),(0,m.jsx)(tk,{name:"prompt_append",control:i,render:({field:e})=>(0,m.jsx)("textarea",{id:"prompt-append",value:e.value,onChange:t=>e.onChange(t.target.value),rows:4,className:"w-full rounded-lg border border-zinc-200 bg-white px-3 py-2 text-sm resize-none dark:border-zinc-800 dark:bg-zinc-950",placeholder:"Additional system instructions to append..."})}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"Additional instructions appended to the system prompt."})]}),(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsx)("label",{htmlFor:"fallback-models",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Fallback Models (JSON)"}),(0,m.jsx)(tk,{name:"fallback_models",control:i,render:({field:e})=>(0,m.jsx)("textarea",{id:"fallback-models",value:e.value,onChange:t=>e.onChange(t.target.value),rows:4,className:"w-full rounded-lg border border-zinc-200 bg-white px-3 py-2 text-sm font-mono resize-none dark:border-zinc-800 dark:bg-zinc-950",placeholder:'["claude-3-opus-20240229", "gpt-4-turbo"]'})}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"Supply a JSON array of model names or an object with rich fallback parameters to use when the primary model fails."})]}),(0,m.jsxs)("div",{className:"flex items-center justify-end gap-3 pt-2",children:[(0,m.jsx)("button",{type:"button",onClick:n,className:"inline-flex items-center gap-2 rounded-lg border border-zinc-200 bg-white px-4 py-2 text-sm font-medium text-zinc-700 hover:bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-300 dark:hover:bg-zinc-800",children:"Cancel"}),(0,m.jsxs)("button",{type:"submit",disabled:l,className:"inline-flex items-center gap-2 rounded-lg bg-blue-600 px-4 py-2 text-sm font-medium text-white hover:bg-blue-700 disabled:cursor-not-allowed disabled:opacity-50 dark:bg-blue-600 dark:hover:bg-blue-500",children:[l&&(0,m.jsx)(eK,{className:"h-4 w-4 animate-spin","aria-hidden":"true"}),"Save Changes"]})]})]})}function iI({onSaveSuccess:e}){let t=(0,S.useQueryClient)(),[r,n]=h.useState(null),[a,s]=h.useState(void 0),[i,o]=h.useState(null),{data:l,isLoading:d,isError:c,error:u}=A({queryKey:["opencode-config"],queryFn:async()=>{let e=await fetch("/api/opencode-config");if(!e.ok)throw Error("Failed to fetch configuration");return e.json()}});h.useEffect(()=>{if(i){let e=setTimeout(()=>o(null),3e3);return()=>clearTimeout(e)}},[i]);let p=eW({mutationFn:async e=>{let t=await fetch("/api/opencode-config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({categories:e})});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to save categories");return t.json()},onSuccess:()=>{t.invalidateQueries({queryKey:["opencode-config"]}),o({type:"success",message:"Categories saved successfully"}),n(null),s(void 0),e?.()},onError:e=>{o({type:"error",message:e.message})}});if(d)return(0,m.jsxs)("div",{className:"flex items-center justify-center py-12",children:[(0,m.jsx)(eK,{className:"h-6 w-6 animate-spin text-zinc-400"}),(0,m.jsx)("span",{className:"ml-2 text-sm text-zinc-500 dark:text-zinc-400",children:"Loading categories..."})]});if(c)return(0,m.jsx)("div",{className:"rounded-lg border border-red-200 bg-red-50 p-4 dark:border-red-800 dark:bg-red-900/20",children:(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)(eQ,{className:"h-5 w-5 text-red-600 dark:text-red-400"}),(0,m.jsxs)("div",{children:[(0,m.jsx)("p",{className:"text-sm font-medium text-red-800 dark:text-red-300",children:"Failed to load categories"}),(0,m.jsx)("p",{className:"text-xs text-red-600 dark:text-red-400",children:u instanceof Error?u.message:"An unknown error occurred"})]})]})});let f=l?.categories||{};return(0,m.jsxs)("div",{className:"space-y-4",children:[i&&(0,m.jsxs)("div",{role:"alert",className:`flex items-center gap-2 rounded-lg px-4 py-3 text-sm ${"success"===i.type?"bg-emerald-50 text-emerald-800 dark:bg-emerald-900/20 dark:text-emerald-300":"bg-red-50 text-red-800 dark:bg-red-900/20 dark:text-red-300"}`,children:["success"===i.type?(0,m.jsx)(eJ,{className:"h-4 w-4 shrink-0","aria-hidden":"true"}):(0,m.jsx)(eQ,{className:"h-4 w-4 shrink-0","aria-hidden":"true"}),(0,m.jsx)("span",{children:i.message})]}),r?(0,m.jsx)(iF,{categoryName:r,initialConfig:a,onSave:e=>{if(!r)return;let t={...l?.categories||{},[r]:e};p.mutate(t)},onCancel:()=>{n(null),s(void 0)}}):(0,m.jsx)(e2,{categories:f,onEdit:(e,t)=>{n(e),s(t)},onDelete:e=>{let t=Object.fromEntries(Object.entries(l?.categories||{}).filter(([t])=>t!==e));p.mutate(t)}})]})}let iL=eM("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]),i_=eM("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]),iP=eM("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),iD=eM("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]);function iV({profiles:e,activeProfileId:t,appliedProfileId:r,onApply:n,onEdit:a,onDelete:s,onExport:i,onImport:o,onCreateNew:l}){let[d,c]=h.useState(""),[u,p]=h.useState(null),f=h.useRef(null),x=(e,t)=>{t?p(e):n(e.id)},g=h.useMemo(()=>{if(!d.trim())return e;let t=d.toLowerCase();return e.filter(e=>e.name.toLowerCase().includes(t)||(e.description?.toLowerCase()||"").includes(t))},[e,d]),{active:b,builtIn:y,custom:v}=h.useMemo(()=>{let e=[],r=[],n=[];return g.forEach(a=>{a.id===t?e.push(a):a.isBuiltIn?r.push(a):n.push(a)}),{active:e,builtIn:r,custom:n}},[g,t]),k=e.length,w=g.length,j=d.trim().length>0;return(0,m.jsxs)("div",{className:"space-y-4",children:[(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsxs)("div",{className:"relative flex-1",children:[(0,m.jsx)(eD,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-zinc-400"}),(0,m.jsx)("input",{type:"text",placeholder:"Search profiles...",value:d,onChange:e=>c(e.target.value),className:"w-full pl-9 pr-3 py-2 text-sm bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-700 rounded-lg placeholder:text-zinc-400 focus:outline-none focus:ring-2 focus:ring-teal-500/20 focus:border-teal-500 transition-all duration-200"})]}),(0,m.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-zinc-500 dark:text-zinc-400 tabular-nums",children:[(0,m.jsx)(i_,{className:"h-3.5 w-3.5"}),(0,m.jsxs)("span",{children:[j?`${w} of ${k}`:`${k}`," profiles"]})]}),(0,m.jsx)("input",{ref:f,type:"file",accept:"application/json,.json",className:"sr-only",onChange:e=>{let t=e.target.files?.[0];t&&o(t),e.target.value=""},"aria-label":"Import profile file"}),(0,m.jsxs)("button",{type:"button",onClick:()=>{f.current?.click()},className:"inline-flex items-center gap-2 rounded-lg border border-zinc-200 bg-white px-3 py-2 text-sm font-medium text-zinc-700 hover:bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-300 dark:hover:bg-zinc-800 transition-colors",children:[(0,m.jsx)(iD,{className:"h-4 w-4"}),"Import File"]})]}),0===g.length&&(0,m.jsxs)("div",{className:"text-center py-12 px-4",children:[(0,m.jsx)("div",{className:"inline-flex items-center justify-center w-12 h-12 rounded-full bg-zinc-100 dark:bg-zinc-800 mb-3",children:(0,m.jsx)(i_,{className:"h-5 w-5 text-zinc-400 dark:text-zinc-500"})}),(0,m.jsx)("p",{className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:j?"No profiles match your search":"No profiles yet"}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400 mt-1",children:j?"Try a different search term":"Create your first profile to get started"})]}),g.length>0&&(0,m.jsxs)("div",{className:"space-y-4",children:[b.length>0&&(0,m.jsxs)("section",{children:[(0,m.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,m.jsxs)("span",{className:"inline-flex items-center gap-1.5 px-2 py-0.5 rounded-full text-[10px] font-semibold bg-teal-100 text-teal-700 dark:bg-teal-900/40 dark:text-teal-300 uppercase tracking-wider",children:[(0,m.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-teal-500 animate-pulse"}),"Active"]}),(0,m.jsx)("span",{className:"text-[10px] text-zinc-400 dark:text-zinc-500 tabular-nums",children:b.length})]}),(0,m.jsx)("div",{className:"space-y-2",children:b.map(e=>(0,m.jsx)(i$,{profile:e,isActive:!0,isApplied:e.id===r,onApply:()=>x(e,e.id===r),onEdit:()=>a(e),onDelete:()=>s(e.id),onExport:()=>i(e)},e.id))})]}),y.length>0&&(0,m.jsxs)("section",{children:[(0,m.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,m.jsx)("span",{className:"text-[10px] font-semibold text-zinc-500 dark:text-zinc-400 uppercase tracking-wider",children:"Built-in"}),(0,m.jsx)("span",{className:"text-[10px] text-zinc-400 dark:text-zinc-500 tabular-nums",children:y.length})]}),(0,m.jsx)("div",{className:"space-y-2",children:y.map(e=>(0,m.jsx)(i$,{profile:e,isActive:!1,isApplied:e.id===r,onApply:()=>x(e,e.id===r),onEdit:()=>a(e),onDelete:()=>s(e.id),onExport:()=>i(e)},e.id))})]}),v.length>0&&(0,m.jsxs)("section",{children:[(0,m.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,m.jsx)("span",{className:"text-[10px] font-semibold text-zinc-500 dark:text-zinc-400 uppercase tracking-wider",children:"Custom"}),(0,m.jsx)("span",{className:"text-[10px] text-zinc-400 dark:text-zinc-500 tabular-nums",children:v.length})]}),(0,m.jsx)("div",{className:"space-y-2",children:v.map(e=>(0,m.jsx)(i$,{profile:e,isActive:!1,isApplied:e.id===r,onApply:()=>x(e,e.id===r),onEdit:()=>a(e),onDelete:()=>s(e.id),onExport:()=>i(e)},e.id))})]})]}),u&&(0,m.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm",children:(0,m.jsx)("div",{className:"w-full max-w-md mx-4 bg-white dark:bg-zinc-900 rounded-xl border border-zinc-200 dark:border-zinc-700 shadow-2xl",children:(0,m.jsxs)("div",{className:"p-6",children:[(0,m.jsxs)("div",{className:"flex items-start gap-4",children:[(0,m.jsx)("div",{className:"flex-shrink-0 w-12 h-12 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center",children:(0,m.jsx)(eU,{className:"h-6 w-6 text-amber-600 dark:text-amber-400"})}),(0,m.jsxs)("div",{className:"flex-1",children:[(0,m.jsx)("h3",{className:"text-lg font-semibold text-zinc-900 dark:text-zinc-100",children:"Reset Profile Configuration"}),(0,m.jsxs)("p",{className:"mt-2 text-sm text-zinc-600 dark:text-zinc-400",children:["This will reset all agent and category configurations back to the ",(0,m.jsx)("strong",{children:u.name})," profile values. Any changes made after applying this profile will be lost."]})]})]}),(0,m.jsxs)("div",{className:"mt-6 flex items-center justify-end gap-3",children:[(0,m.jsxs)("button",{type:"button",onClick:()=>{p(null)},className:"inline-flex items-center gap-2 px-4 py-2 rounded-lg border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800 text-sm font-medium text-zinc-700 dark:text-zinc-300 hover:bg-zinc-50 dark:hover:bg-zinc-700 transition-colors",children:[(0,m.jsx)(eP,{className:"h-4 w-4"}),"Cancel"]}),(0,m.jsxs)("button",{type:"button",onClick:()=>{u&&(n(u.id),p(null))},className:"inline-flex items-center gap-2 px-4 py-2 rounded-lg bg-amber-600 text-sm font-medium text-white hover:bg-amber-700 transition-colors",children:[(0,m.jsx)(eJ,{className:"h-4 w-4"}),"Reset to ",u.name]})]})]})})}),(0,m.jsxs)("button",{type:"button",onClick:l,className:"w-full flex items-center justify-center gap-2 py-3 px-4 rounded-lg border border-dashed border-zinc-300 dark:border-zinc-700 text-sm font-medium text-zinc-600 dark:text-zinc-400 hover:border-teal-400 hover:text-teal-600 dark:hover:border-teal-500 dark:hover:text-teal-400 hover:bg-teal-50/50 dark:hover:bg-teal-900/10 transition-all duration-200",children:[(0,m.jsx)(iL,{className:"h-4 w-4"}),"Create New Profile"]})]})}function i$({profile:e,isActive:t,isApplied:r,onApply:n,onEdit:a,onDelete:s,onExport:i}){return(0,m.jsxs)("div",{className:`
|
|
6
|
+
group relative flex items-center justify-between p-3 rounded-lg border
|
|
7
|
+
transition-all duration-200
|
|
8
|
+
${t?"bg-teal-50/50 border-teal-200 dark:bg-teal-900/20 dark:border-teal-700/50":"bg-white border-zinc-200 dark:bg-zinc-900 dark:border-zinc-700 hover:border-zinc-300 dark:hover:border-zinc-600"}
|
|
9
|
+
`,children:[(0,m.jsxs)("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[(0,m.jsx)("span",{className:"text-xl",role:"img","aria-label":`${e.name} icon`,children:e.emoji}),(0,m.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)("h4",{className:"text-sm font-medium text-zinc-900 dark:text-zinc-100 truncate",children:e.name}),e.isDefault&&(0,m.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-[10px] font-medium bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-300",children:"Default"}),e.isBuiltIn&&(0,m.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-[10px] font-medium bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-300",children:"Built-in"})]}),e.description&&(0,m.jsx)("p",{className:"mt-0.5 text-xs text-zinc-500 dark:text-zinc-400 truncate",children:e.description})]})]}),(0,m.jsxs)("div",{className:"flex items-center gap-1 ml-3",children:[(0,m.jsx)("button",{type:"button",onClick:n,disabled:t&&!r,title:r?"Reset config to this profile":t?"Currently active":"Apply this profile",className:`
|
|
10
|
+
px-2.5 py-1 rounded-md text-xs font-medium
|
|
11
|
+
transition-all duration-200
|
|
12
|
+
${r?"bg-amber-100 text-amber-700 hover:bg-amber-200 dark:bg-amber-900/40 dark:text-amber-300 dark:hover:bg-amber-900/60":t?"bg-teal-100 text-teal-700 dark:bg-teal-900/40 dark:text-teal-300 cursor-default":"bg-zinc-100 text-zinc-700 hover:bg-teal-100 hover:text-teal-700 dark:bg-zinc-800 dark:text-zinc-300 dark:hover:bg-teal-900/30 dark:hover:text-teal-300"}
|
|
13
|
+
`,children:r?"Reset":t?"Active":"Apply"}),(0,m.jsxs)("div",{className:"flex items-center gap-0.5 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,m.jsx)("button",{type:"button",onClick:i,className:"p-1.5 rounded-md text-zinc-400 hover:text-teal-600 hover:bg-teal-50 dark:text-zinc-500 dark:hover:text-teal-300 dark:hover:bg-teal-900/20 transition-colors","aria-label":`Export ${e.name}`,title:`Export ${e.name}`,children:(0,m.jsx)(iP,{className:"h-3.5 w-3.5","aria-hidden":"true"})}),(0,m.jsx)("button",{type:"button",onClick:a,className:"p-1.5 rounded-md text-zinc-400 hover:text-zinc-700 hover:bg-zinc-100 dark:text-zinc-500 dark:hover:text-zinc-200 dark:hover:bg-zinc-800 transition-colors","aria-label":`Edit ${e.name}`,title:`Edit ${e.name}`,children:(0,m.jsxs)("svg",{className:"h-3.5 w-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,role:"img",children:[(0,m.jsx)("title",{children:"Edit"}),(0,m.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"})]})}),!e.isBuiltIn&&!e.isDefault&&(0,m.jsx)("button",{type:"button",onClick:s,className:"p-1.5 rounded-md text-zinc-400 hover:text-red-600 hover:bg-red-50 dark:text-zinc-500 dark:hover:text-red-400 dark:hover:bg-red-900/20 transition-colors","aria-label":`Delete ${e.name}`,title:`Delete ${e.name}`,children:(0,m.jsxs)("svg",{className:"h-3.5 w-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,role:"img",children:[(0,m.jsx)("title",{children:"Delete"}),(0,m.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})]})})]})]})]})}let iU=eM("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]),iq=["⚡","🔥","💎","🚀","🎯","💡","🔧","🎨","📊","🤖","👾","💻","⚙️","🔍","✨","🌟","🎭","🎪","🧩","🎲","📚","🔐","🛠️","⚡️","🌊","🔮","📡","🎸","🏆","🌈"];function iB({profile:e,initialConfig:t,onSave:r,onCancel:n}){let a=!!e,[s,i]=h.useState(null),[o,l]=h.useState(t||{agents:{}}),[d,c]=h.useState(t||{agents:{}});h.useEffect(()=>{t&&(l(t),c(t))},[t]);let[u,p]=h.useState(!1),{control:f,handleSubmit:x,watch:g,formState:{errors:b,isSubmitting:y}}=tY({defaultValues:{id:e?.id||"",name:e?.name||"",emoji:e?.emoji||"⚡",description:e?.description||""}}),v=g("name"),k=g("emoji");h.useEffect(()=>{if(s){let e=setTimeout(()=>i(null),3e3);return()=>clearTimeout(e)}},[s]);let w=async()=>{try{let e=await fetch("/api/opencode-config");if(!e.ok)throw Error("Failed to fetch configuration");let t=await e.json(),r={agents:t.agents||{},categories:t.categories};l(r),i({type:"success",message:"Configuration imported successfully"})}catch{i({type:"error",message:"Failed to import configuration"})}},j=h.useMemo(()=>JSON.stringify(o)!==JSON.stringify(d),[o,d]),z=Object.keys(o.agents||{}).length,N=Object.keys(o.categories||{}).length;return(0,m.jsxs)("form",{onSubmit:x(t=>{let n=new Date().toISOString();r({profile:{id:a?e.id:t.id,name:t.name,emoji:t.emoji,description:t.description||void 0,createdAt:a?e.createdAt:n,updatedAt:n,isDefault:!!a&&e.isDefault,isBuiltIn:!!a&&e.isBuiltIn},config:o}),i({type:"success",message:`Profile ${a?"updated":"created"} successfully`})}),className:"space-y-6","aria-label":"Profile editor form",children:[s&&(0,m.jsxs)("div",{role:"alert",className:`flex items-center gap-2 rounded-lg px-4 py-3 text-sm ${"success"===s.type?"bg-emerald-50 text-emerald-800 dark:bg-emerald-900/20 dark:text-emerald-300":"bg-red-50 text-red-800 dark:bg-red-900/20 dark:text-red-300"}`,children:["success"===s.type?(0,m.jsx)(eJ,{className:"h-4 w-4 shrink-0","aria-hidden":"true"}):(0,m.jsx)(eQ,{className:"h-4 w-4 shrink-0","aria-hidden":"true"}),(0,m.jsx)("span",{children:s.message})]}),!a&&(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsxs)("label",{htmlFor:"profile-id",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:["Profile ID",(0,m.jsx)("span",{className:"ml-1 text-red-500",children:"*"})]}),(0,m.jsx)(tk,{name:"id",control:f,rules:{required:"Profile ID is required",pattern:{value:/^[a-zA-Z0-9_-]+$/,message:"Only alphanumeric characters, hyphens, and underscores allowed"}},render:({field:e})=>(0,m.jsx)("input",{id:"profile-id",type:"text",value:e.value,onChange:t=>e.onChange(t.target.value),placeholder:"e.g., my-custom-profile",className:"w-full rounded-lg border border-zinc-200 bg-white px-3 py-2 text-sm dark:border-zinc-800 dark:bg-zinc-950"})}),b.id&&(0,m.jsx)("p",{className:"text-xs text-red-600 dark:text-red-400",role:"alert",children:b.id.message}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"Unique identifier for this profile. Use only letters, numbers, hyphens, and underscores."})]}),a&&(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsx)("label",{htmlFor:"profile-id-readonly",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Profile ID"}),(0,m.jsx)("input",{id:"profile-id-readonly",type:"text",value:e.id,disabled:!0,className:"w-full rounded-lg border border-zinc-200 bg-zinc-100 px-3 py-2 text-sm text-zinc-600 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-400"}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"Profile ID cannot be changed after creation."})]}),(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsxs)("label",{htmlFor:"profile-name",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:["Name",(0,m.jsx)("span",{className:"ml-1 text-red-500",children:"*"})]}),(0,m.jsx)(tk,{name:"name",control:f,rules:{required:"Name is required",minLength:{value:1,message:"Name cannot be empty"}},render:({field:e})=>(0,m.jsx)("input",{id:"profile-name",type:"text",value:e.value,onChange:t=>e.onChange(t.target.value),placeholder:"e.g., My Custom Profile",className:"w-full rounded-lg border border-zinc-200 bg-white px-3 py-2 text-sm dark:border-zinc-800 dark:bg-zinc-950"})}),b.name&&(0,m.jsx)("p",{className:"text-xs text-red-600 dark:text-red-400",role:"alert",children:b.name.message}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"Display name for this profile."})]}),(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsx)("p",{className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Emoji Icon"}),(0,m.jsx)(tk,{name:"emoji",control:f,render:({field:e})=>(0,m.jsx)("div",{className:"flex flex-wrap gap-2",children:iq.map(t=>(0,m.jsx)("button",{type:"button",onClick:()=>e.onChange(t),className:`h-10 w-10 rounded-lg text-xl transition-all ${e.value===t?"bg-blue-100 ring-2 ring-blue-500 dark:bg-blue-900/30 dark:ring-blue-400":"bg-zinc-100 hover:bg-zinc-200 dark:bg-zinc-800 dark:hover:bg-zinc-700"}`,"aria-label":`Select ${t} emoji`,"aria-pressed":e.value===t,children:t},t))})}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"Choose an emoji to represent this profile."})]}),(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsx)("label",{htmlFor:"profile-description",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Description"}),(0,m.jsx)(tk,{name:"description",control:f,render:({field:e})=>(0,m.jsx)("textarea",{id:"profile-description",value:e.value,onChange:t=>e.onChange(t.target.value),rows:3,className:"w-full rounded-lg border border-zinc-200 bg-white px-3 py-2 text-sm resize-none dark:border-zinc-800 dark:bg-zinc-950",placeholder:"Optional description of this profile..."})}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"Optional description to help identify this profile."})]}),(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsx)("p",{className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Configuration"}),(0,m.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,m.jsxs)("button",{type:"button",onClick:w,className:"inline-flex items-center gap-2 rounded-lg border border-zinc-200 bg-white px-4 py-2 text-sm font-medium text-zinc-700 hover:bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-300 dark:hover:bg-zinc-800",children:[(0,m.jsx)(iD,{className:"h-4 w-4","aria-hidden":"true"}),"Import from Current Config"]}),a&&j&&(0,m.jsxs)("button",{type:"button",onClick:()=>{l(d),i({type:"success",message:"Configuration reset to original values"})},className:"inline-flex items-center gap-2 rounded-lg border border-zinc-200 bg-white px-4 py-2 text-sm font-medium text-zinc-700 hover:bg-zinc-50 hover:text-amber-600 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-300 dark:hover:bg-zinc-800 dark:hover:text-amber-400",children:[(0,m.jsx)(iU,{className:"h-4 w-4","aria-hidden":"true"}),"Reset to Original"]})]}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"Import agent and category configurations from your current settings, or reset to the profile's original values."})]}),(0,m.jsxs)("div",{className:"rounded-lg border border-zinc-200 bg-zinc-50 p-4 dark:border-zinc-700 dark:bg-zinc-900",children:[(0,m.jsx)("h4",{className:"text-sm font-medium text-zinc-900 dark:text-zinc-100 mb-2",children:"Profile Preview"}),(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsx)("span",{className:"text-3xl","aria-hidden":"true",children:k||"⚡"}),(0,m.jsxs)("div",{children:[(0,m.jsx)("p",{className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:v||"Untitled Profile"}),(0,m.jsxs)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:[z," agent",1!==z?"s":"",", ",N," categor",1!==N?"ies":"y"," configured"]})]})]})]}),(0,m.jsxs)("div",{className:"rounded-lg border border-zinc-200 dark:border-zinc-700 overflow-hidden",children:[(0,m.jsxs)("button",{type:"button",onClick:()=>p(!u),className:"w-full flex items-center justify-between p-4 hover:bg-zinc-50 dark:hover:bg-zinc-800/50 transition-colors","aria-expanded":u,children:[(0,m.jsx)("span",{className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Configuration Details"}),(0,m.jsx)(sj,{className:`h-4 w-4 text-zinc-500 transition-transform duration-200 ${u?"rotate-180":""}`,"aria-hidden":"true"})]}),u&&(0,m.jsxs)("div",{className:"border-t border-zinc-200 dark:border-zinc-700 p-4 space-y-4",children:[(0,m.jsxs)("div",{children:[(0,m.jsxs)("h5",{className:"text-xs font-semibold text-zinc-500 dark:text-zinc-400 uppercase tracking-wide mb-2",children:["Agents (",z,")"]}),0===z?(0,m.jsx)("p",{className:"text-sm text-zinc-400 dark:text-zinc-500 italic",children:"No agents configured"}):(0,m.jsx)("ul",{className:"space-y-1.5",children:Object.entries(o.agents||{}).map(([e,t])=>(0,m.jsxs)("li",{className:"text-sm text-zinc-700 dark:text-zinc-300 flex items-center gap-2",children:[(0,m.jsx)("span",{className:"font-medium text-zinc-900 dark:text-zinc-100 min-w-[80px]",children:e}),(0,m.jsx)("span",{className:"text-zinc-400",children:"→"}),(0,m.jsxs)("span",{className:"text-zinc-600 dark:text-zinc-400",children:[t.model,void 0!==t.temperature&&` temp: ${t.temperature}`]})]},e))})]}),(0,m.jsxs)("div",{children:[(0,m.jsxs)("h5",{className:"text-xs font-semibold text-zinc-500 dark:text-zinc-400 uppercase tracking-wide mb-2",children:["Categories (",N,")"]}),0===N?(0,m.jsx)("p",{className:"text-sm text-zinc-400 dark:text-zinc-500 italic",children:"No categories configured"}):(0,m.jsx)("ul",{className:"space-y-1.5",children:Object.entries(o.categories||{}).map(([e,t])=>(0,m.jsxs)("li",{className:"text-sm text-zinc-700 dark:text-zinc-300 flex items-center gap-2",children:[(0,m.jsx)("span",{className:"font-medium text-zinc-900 dark:text-zinc-100 min-w-[80px]",children:e}),(0,m.jsx)("span",{className:"text-zinc-400",children:"→"}),(0,m.jsxs)("span",{className:"text-zinc-600 dark:text-zinc-400",children:[t.model,t.variant&&` (${t.variant})`,void 0!==t.temperature&&` temp: ${t.temperature}`]})]},e))})]})]})]}),(0,m.jsxs)("div",{className:"flex items-center justify-end gap-3 pt-2",children:[(0,m.jsx)("button",{type:"button",onClick:n,className:"inline-flex items-center gap-2 rounded-lg border border-zinc-200 bg-white px-4 py-2 text-sm font-medium text-zinc-700 hover:bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-300 dark:hover:bg-zinc-800",children:"Cancel"}),(0,m.jsxs)("button",{type:"submit",disabled:y||!v.trim(),className:"inline-flex items-center gap-2 rounded-lg bg-blue-600 px-4 py-2 text-sm font-medium text-white hover:bg-blue-700 disabled:cursor-not-allowed disabled:opacity-50 dark:bg-blue-600 dark:hover:bg-blue-500",children:[y&&(0,m.jsx)(eK,{className:"h-4 w-4 animate-spin","aria-hidden":"true"}),a?"Save Changes":"Create Profile"]})]})]})}async function iH(){let e=new AbortController,t=setTimeout(()=>e.abort(),8e3);try{let t=await fetch("/api/profiles",{signal:e.signal});if(!t.ok)throw Error("Failed to fetch profiles");return t.json()}catch(e){if(e instanceof Error&&"AbortError"===e.name)throw Error("Loading profiles timed out. Please try again.");throw e}finally{clearTimeout(t)}}async function iW(e){return"function"==typeof e.text?e.text():new Response(e).text()}function iK({onSaveSuccess:e}){let t=(0,S.useQueryClient)(),[r,n]=h.useState(null),[a,s]=h.useState(void 0),[i,o]=h.useState(!1),[l,d]=h.useState(null),[c,u]=h.useState(null),{data:p,isLoading:f,isError:x,error:g}=A({queryKey:["profiles"],queryFn:iH,retry:!1});h.useEffect(()=>{p?.activeProfileId&&d(p.activeProfileId)},[p?.activeProfileId]),h.useEffect(()=>{if(c){let e=setTimeout(()=>u(null),3e3);return()=>clearTimeout(e)}},[c]);let b=eW({mutationFn:async e=>{let t=await fetch(`/api/profiles/${e}/apply`,{method:"POST"});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to apply profile");return t.json()},onSuccess:(e,r)=>{t.invalidateQueries({queryKey:["profiles"]}),t.invalidateQueries({queryKey:["opencode-config"]}),d(r),u({type:"success",message:"Profile applied successfully"})},onError:e=>{u({type:"error",message:e.message})}}),y=eW({mutationFn:async({profile:e,config:t})=>{let r=await fetch("/api/profiles",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({profile:e,config:t})});if(!r.ok)throw Error((await r.json().catch(()=>({}))).error||"Failed to create profile");return r.json()},onSuccess:()=>{t.invalidateQueries({queryKey:["profiles"]}),u({type:"success",message:"Profile created successfully"}),o(!1),e?.()},onError:e=>{u({type:"error",message:e.message})}}),v=eW({mutationFn:async({id:e,profile:t,config:r})=>{let n=await fetch(`/api/profiles/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({profile:t,config:r})});if(!n.ok)throw Error((await n.json().catch(()=>({}))).error||"Failed to update profile");return n.json()},onSuccess:()=>{t.invalidateQueries({queryKey:["profiles"]}),u({type:"success",message:"Profile updated successfully"}),n(null),e?.()},onError:e=>{u({type:"error",message:e.message})}}),k=eW({mutationFn:async e=>{let t=await fetch(`/api/profiles/${e}`,{method:"DELETE"});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to delete profile");return t.json()},onSuccess:()=>{t.invalidateQueries({queryKey:["profiles"]}),u({type:"success",message:"Profile deleted successfully"})},onError:e=>{u({type:"error",message:e.message})}}),w=eW({mutationFn:async e=>{let t=await fetch(`/api/profiles/${e.id}/export`);if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to export profile");return{blob:await t.blob(),profile:e}},onSuccess:({blob:e,profile:t})=>{var r;let n,a;r=`${t.id}.vibepulse-profile.json`,n=URL.createObjectURL(e),(a=document.createElement("a")).href=n,a.download=r,document.body.appendChild(a),a.click(),a.remove(),URL.revokeObjectURL(n),u({type:"success",message:`Exported ${t.name}`})},onError:e=>{u({type:"error",message:e.message})}}),j=eW({mutationFn:async e=>{let t;try{t=JSON.parse(await iW(e))}catch{throw Error("Profile file must be valid JSON")}let r=await fetch("/api/profiles/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok)throw Error((await r.json().catch(()=>({}))).error||"Failed to import profile");return r.json()},onSuccess:e=>{t.invalidateQueries({queryKey:["profiles"]});let r=e&&"object"==typeof e&&"profile"in e&&e.profile&&"object"==typeof e.profile&&"name"in e.profile&&"string"==typeof e.profile.name?e.profile.name:"profile";u({type:"success",message:`Imported ${r}`})},onError:e=>{u({type:"error",message:e.message})}}),z=async e=>{n(e),o(!1);try{let t=await fetch(`/api/profiles/${e.id}`);if(t.ok){let e=await t.json();s(e.config)}}catch{s(void 0)}};if(f)return(0,m.jsxs)("div",{className:"flex items-center justify-center py-12",children:[(0,m.jsx)(eK,{className:"h-6 w-6 animate-spin text-zinc-400"}),(0,m.jsx)("span",{className:"ml-2 text-sm text-zinc-500 dark:text-zinc-400",children:"Loading profiles..."})]});if(x)return(0,m.jsx)("div",{className:"rounded-lg border border-red-200 bg-red-50 p-4 dark:border-red-800 dark:bg-red-900/20",children:(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)(eQ,{className:"h-5 w-5 text-red-600 dark:text-red-400"}),(0,m.jsxs)("div",{children:[(0,m.jsx)("p",{className:"text-sm font-medium text-red-800 dark:text-red-300",children:"Failed to load profiles"}),(0,m.jsx)("p",{className:"text-xs text-red-600 dark:text-red-400",children:g instanceof Error?g.message:"An unknown error occurred"})]})]})});let N=p?.profiles??[],C=p?.activeProfileId??null;return(0,m.jsxs)("div",{className:"space-y-4",children:[c&&(0,m.jsxs)("div",{role:"alert",className:`flex items-center gap-2 rounded-lg px-4 py-3 text-sm ${"success"===c.type?"bg-emerald-50 text-emerald-800 dark:bg-emerald-900/20 dark:text-emerald-300":"bg-red-50 text-red-800 dark:bg-red-900/20 dark:text-red-300"}`,children:["success"===c.type?(0,m.jsx)(eJ,{className:"h-4 w-4 shrink-0","aria-hidden":"true"}):(0,m.jsx)(eQ,{className:"h-4 w-4 shrink-0","aria-hidden":"true"}),(0,m.jsx)("span",{children:c.message})]}),r||i?(0,m.jsx)(iB,{profile:r??void 0,initialConfig:a,onSave:({profile:e,config:t})=>{i?y.mutate({profile:e,config:t}):r&&v.mutate({id:r.id,profile:e,config:t})},onCancel:()=>{n(null),s(void 0),o(!1)}}):(0,m.jsx)(iV,{profiles:N,activeProfileId:C,appliedProfileId:l,onApply:e=>{b.mutate(e)},onEdit:z,onDelete:e=>{k.mutate(e)},onExport:e=>{w.mutate(e)},onImport:e=>{j.mutate(e)},onCreateNew:()=>{o(!0),n(null)}})]})}let iQ={sisyphus:["anthropic/claude-opus-4-6","kimi-k2.5","openai/gpt-5.4","glm-5","big-pickle"],prometheus:["anthropic/claude-opus-4-6","openai/gpt-5.4","glm-5","google/gemini-3.1-pro"],metis:["anthropic/claude-opus-4-6","openai/gpt-5.4","glm-5","k2p5"],atlas:["anthropic/claude-sonnet-4-6","kimi-k2.5","openai/gpt-5.4","minimax-m2.7"],hephaestus:["openai/gpt-5.4"],oracle:["openai/gpt-5.4","google/gemini-3.1-pro","anthropic/claude-opus-4-6","glm-5"],momus:["openai/gpt-5.4","anthropic/claude-opus-4-6","google/gemini-3.1-pro","glm-5"],explore:["grok-code-fast-1","minimax-m2.7-highspeed","minimax-m2.7","anthropic/claude-haiku-4-5","gpt-5-nano"],librarian:["minimax-m2.7","minimax-m2.7-highspeed","anthropic/claude-haiku-4-5","gpt-5-nano"],default:["anthropic/claude-opus-4-6","openai/gpt-5.4"]};function iJ({agentName:e="default",onSaveSuccess:t}){let r=(0,S.useQueryClient)(),[n,a]=h.useState(null),{data:s,isLoading:i}=A({queryKey:["opencode-config"],queryFn:async()=>{let e=await fetch("/api/opencode-config");if(!e.ok)throw Error("Failed to fetch config");return e.json()}}),{control:o,handleSubmit:l,reset:d,formState:{isSubmitting:c}}=tY({defaultValues:{model:"",temperature:.7,top_p:1,variant:"",prompt_append:"",reasoningEffort:"",fallbackModelsObj:void 0,fallback_models:""}}),{data:u}=A({queryKey:["opencode-models"],queryFn:async()=>{var e;let t=await fetch("/api/opencode-models"),r=null;try{r=await t.json()}catch{r=null}let n=r&&"object"==typeof r&&"error"in r&&"string"==typeof r.error?r.error:null;if(!t.ok||n)throw Error(n||`Failed to fetch models (${t.status})`);if(!((e=r)&&"object"==typeof e&&Array.isArray(e.models)))throw Error("Invalid models response");return r},retry:!1}),p=h.useMemo(()=>new Set(u?.models??[]),[u]);h.useEffect(()=>{if(s){let t=s.agents?.[e]||{};d({model:t.model||"",temperature:t.temperature??.7,top_p:t.top_p??1,variant:t.variant||"",prompt_append:t.prompt_append||"",reasoningEffort:t.reasoningEffort||"",fallbackModelsObj:t.fallback_models,fallback_models:t.fallback_models?JSON.stringify(t.fallback_models,null,2):""})}},[s,e,d]),h.useEffect(()=>{if(n){let e=setTimeout(()=>a(null),3e3);return()=>clearTimeout(e)}},[n]);let f=eW({mutationFn:async t=>{let r=await fetch("/api/opencode-config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agents:{[e]:t}})});if(!r.ok)throw Error((await r.json()).error||"Failed to save config");return r.json()},onSuccess:()=>{r.invalidateQueries({queryKey:["opencode-config"]}),a({type:"success",message:"Configuration saved successfully"}),t?.()},onError:e=>{a({type:"error",message:e.message})}}),x=s?.agents?.[e],g=!!x?.model,b=x?.model,y=b&&p.size>0&&!p.has(b),v=!b,k=iQ[e]||iQ.default;return i?(0,m.jsxs)("div",{className:"flex items-center justify-center py-12",children:[(0,m.jsx)(eK,{className:"h-6 w-6 animate-spin text-zinc-400"}),(0,m.jsx)("span",{className:"ml-2 text-sm text-zinc-500",children:"Loading configuration..."})]}):(0,m.jsxs)("form",{onSubmit:l(e=>{let t;if(""!==e.fallback_models.trim())try{t=JSON.parse(e.fallback_models)}catch{a({type:"error",message:"Invalid JSON in fallback_models"});return}let r={model:e.model,temperature:e.temperature,top_p:e.top_p,variant:e.variant,prompt_append:e.prompt_append};e.reasoningEffort?r.reasoningEffort=e.reasoningEffort:r.reasoningEffort=null,void 0!==t?r.fallback_models=t:r.fallback_models=null,f.mutate(r)}),className:"space-y-6","aria-label":"Agent configuration form",children:[g&&(0,m.jsx)("div",{className:"rounded-lg bg-blue-50 border border-blue-200 px-4 py-3 dark:bg-blue-900/20 dark:border-blue-800",children:(0,m.jsxs)("p",{className:"text-sm text-blue-800 dark:text-blue-300",children:[(0,m.jsx)("span",{className:"font-medium",children:"Preset applied:"})," This agent is configured with model ",(0,m.jsx)("span",{className:"font-mono bg-blue-100 dark:bg-blue-800 px-1.5 py-0.5 rounded",children:x.model}),x.variant&&(0,m.jsxs)("span",{children:[" (variant: ",x.variant,")"]})]})}),n&&(0,m.jsxs)("div",{role:"alert",className:`flex items-center gap-2 rounded-lg px-4 py-3 text-sm ${"success"===n.type?"bg-emerald-50 text-emerald-800 dark:bg-emerald-900/20 dark:text-emerald-300":"bg-red-50 text-red-800 dark:bg-red-900/20 dark:text-red-300"}`,children:["success"===n.type?(0,m.jsx)(eJ,{className:"h-4 w-4 shrink-0","aria-hidden":"true"}):(0,m.jsx)(eQ,{className:"h-4 w-4 shrink-0","aria-hidden":"true"}),(0,m.jsx)("span",{children:n.message})]}),v&&(0,m.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border border-zinc-200 bg-zinc-50 px-4 py-3 dark:border-zinc-800 dark:bg-zinc-900/20",children:[(0,m.jsx)(eQ,{className:"mt-0.5 h-4 w-4 shrink-0 text-zinc-500 dark:text-zinc-400"}),(0,m.jsxs)("div",{className:"text-sm text-zinc-700 dark:text-zinc-300",children:[(0,m.jsx)("span",{className:"font-medium",children:"Using default fallback chain"})," — this agent will try models in priority order:",(0,m.jsx)("div",{className:"mt-2 flex flex-wrap items-center gap-1",children:k.map((e,t)=>(0,m.jsxs)(h.Fragment,{children:[(0,m.jsx)("code",{className:`rounded px-1.5 py-0.5 text-xs ${0===t?"bg-blue-100 text-blue-800 dark:bg-blue-900/50 dark:text-blue-200 font-medium":"bg-zinc-100 text-zinc-600 dark:bg-zinc-800 dark:text-zinc-400"}`,children:e}),t<k.length-1&&(0,m.jsx)("span",{className:"text-zinc-400 dark:text-zinc-500",children:"→"})]},e))}),(0,m.jsx)("p",{className:"mt-2 text-xs text-zinc-500 dark:text-zinc-400",children:"Select a model below to override the default behavior."})]})]}),y&&(0,m.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border border-amber-200 bg-amber-50 px-4 py-3 dark:border-amber-800 dark:bg-amber-900/20",children:[(0,m.jsx)(eU,{className:"mt-0.5 h-4 w-4 shrink-0 text-amber-500 dark:text-amber-400"}),(0,m.jsxs)("p",{className:"text-sm text-amber-700 dark:text-amber-300",children:[(0,m.jsx)("span",{className:"font-medium",children:"Model unavailable"})," — ",(0,m.jsx)("code",{className:"rounded bg-amber-100 px-1 py-0.5 text-xs dark:bg-amber-800",children:b})," is missing from current providers. Please check your provider settings or select a different model."]})]}),(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsx)("label",{htmlFor:"model-selector",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Model"}),(0,m.jsx)(tk,{name:"model",control:o,rules:{required:"Please select a model"},render:({field:e,fieldState:t})=>(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)("div",{id:"model-selector",children:(0,m.jsx)(iO,{value:e.value,onValueChange:t=>{e.onChange(t)},placeholder:"Select a model..."})}),t.error&&(0,m.jsx)("p",{role:"alert",className:"text-xs text-red-600 dark:text-red-400",children:t.error.message})]})}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"The AI model used for this agent."})]}),(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsx)("label",{htmlFor:"variant-selector",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Variant"}),(0,m.jsx)(tk,{name:"variant",control:o,render:({field:e})=>(0,m.jsxs)("select",{id:"variant-selector",value:e.value,onChange:t=>e.onChange(t.target.value),className:"w-full rounded-lg border border-zinc-200 bg-white px-3 py-2 text-sm dark:border-zinc-800 dark:bg-zinc-950",children:[(0,m.jsx)("option",{value:"",children:"Not set"}),(0,m.jsx)("option",{value:"max",children:"max"}),(0,m.jsx)("option",{value:"high",children:"high"}),(0,m.jsx)("option",{value:"medium",children:"medium"}),(0,m.jsx)("option",{value:"low",children:"low"}),(0,m.jsx)("option",{value:"xhigh",children:"xhigh"})]})}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"Model reasoning variant. Higher values mean more thinking."})]}),(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsx)("label",{htmlFor:"reasoning-effort-selector",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Reasoning Effort"}),(0,m.jsx)(tk,{name:"reasoningEffort",control:o,render:({field:e})=>(0,m.jsxs)("select",{id:"reasoning-effort-selector",value:e.value,onChange:t=>e.onChange(t.target.value),className:"w-full rounded-lg border border-zinc-200 bg-white px-3 py-2 text-sm dark:border-zinc-800 dark:bg-zinc-950",children:[(0,m.jsx)("option",{value:"",children:"Not set"}),(0,m.jsx)("option",{value:"high",children:"high"}),(0,m.jsx)("option",{value:"medium",children:"medium"}),(0,m.jsx)("option",{value:"low",children:"low"}),(0,m.jsx)("option",{value:"max",children:"max"})]})}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"Controls the reasoning effort for compatible models like o1 or o3-mini."})]}),(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between",children:[(0,m.jsx)("label",{htmlFor:"temperature-slider",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Temperature"}),(0,m.jsx)(tk,{name:"temperature",control:o,render:({field:e})=>(0,m.jsx)("span",{className:"rounded-md bg-zinc-100 px-2 py-0.5 text-xs font-medium text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300",children:e.value.toFixed(1)})})]}),(0,m.jsx)(tk,{name:"temperature",control:o,render:({field:e})=>(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsx)("input",{id:"temperature-slider",type:"range",min:0,max:2,step:.1,value:e.value,onChange:t=>e.onChange(parseFloat(t.target.value)),className:"flex-1 h-2 cursor-pointer appearance-none rounded-lg bg-zinc-200 accent-blue-600 dark:bg-zinc-700","aria-label":"Temperature slider"}),(0,m.jsx)("input",{type:"number",min:0,max:2,step:.1,value:e.value,onChange:t=>e.onChange(parseFloat(t.target.value)||0),className:"w-16 rounded-lg border border-zinc-200 bg-white px-2 py-1 text-center text-sm dark:border-zinc-800 dark:bg-zinc-950","aria-label":"Temperature value"})]})}),(0,m.jsxs)("div",{className:"flex justify-between text-xs text-zinc-500 dark:text-zinc-400",children:[(0,m.jsx)("span",{children:"Precise (0)"}),(0,m.jsx)("span",{children:"Balanced (1)"}),(0,m.jsx)("span",{children:"Creative (2)"})]}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"Controls randomness: lower values make responses more deterministic."})]}),(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between",children:[(0,m.jsx)("label",{htmlFor:"top-p-slider",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Top P"}),(0,m.jsx)(tk,{name:"top_p",control:o,render:({field:e})=>(0,m.jsx)("span",{className:"rounded-md bg-zinc-100 px-2 py-0.5 text-xs font-medium text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300",children:e.value.toFixed(2)})})]}),(0,m.jsx)(tk,{name:"top_p",control:o,render:({field:e})=>(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsx)("input",{id:"top-p-slider",type:"range",min:0,max:1,step:.05,value:e.value,onChange:t=>e.onChange(parseFloat(t.target.value)),className:"flex-1 h-2 cursor-pointer appearance-none rounded-lg bg-zinc-200 accent-blue-600 dark:bg-zinc-700","aria-label":"Top P slider"}),(0,m.jsx)("input",{type:"number",min:0,max:1,step:.05,value:e.value,onChange:t=>e.onChange(parseFloat(t.target.value)||0),className:"w-16 rounded-lg border border-zinc-200 bg-white px-2 py-1 text-center text-sm dark:border-zinc-800 dark:bg-zinc-950","aria-label":"Top P value"})]})}),(0,m.jsxs)("div",{className:"flex justify-between text-xs text-zinc-500 dark:text-zinc-400",children:[(0,m.jsx)("span",{children:"Diverse (0)"}),(0,m.jsx)("span",{children:"Default (1)"})]}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"Controls nucleus sampling: lower values sample from more likely tokens."})]}),(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsx)("label",{htmlFor:"prompt-append",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Prompt Append"}),(0,m.jsx)(tk,{name:"prompt_append",control:o,render:({field:e})=>(0,m.jsx)("textarea",{id:"prompt-append",value:e.value,onChange:t=>e.onChange(t.target.value),rows:4,className:"w-full rounded-lg border border-zinc-200 bg-white px-3 py-2 text-sm resize-none dark:border-zinc-800 dark:bg-zinc-950",placeholder:"Additional system instructions to append..."})}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"Additional instructions appended to the system prompt."})]}),(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsx)("label",{htmlFor:"fallback-models",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Fallback Models (JSON)"}),(0,m.jsx)(tk,{name:"fallback_models",control:o,render:({field:e})=>(0,m.jsx)("textarea",{id:"fallback-models",value:e.value,onChange:t=>e.onChange(t.target.value),rows:4,className:"w-full rounded-lg border border-zinc-200 bg-white px-3 py-2 text-sm font-mono resize-none dark:border-zinc-800 dark:bg-zinc-950",placeholder:'["claude-3-opus-20240229", "gpt-4-turbo"]'})}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"Supply a JSON array of model names or an object with rich fallback parameters to use when the primary model fails."})]}),(0,m.jsx)("div",{className:"flex items-center justify-end gap-3 pt-2",children:(0,m.jsxs)("button",{type:"submit",disabled:c||f.isPending,className:"inline-flex items-center gap-2 rounded-lg bg-blue-600 px-4 py-2 text-sm font-medium text-white hover:bg-blue-700 disabled:cursor-not-allowed disabled:opacity-50 dark:bg-blue-600 dark:hover:bg-blue-500",children:[(c||f.isPending)&&(0,m.jsx)(eK,{className:"h-4 w-4 animate-spin","aria-hidden":"true"}),"Save Changes"]})})]})}let iG=eM("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);function iY(){let e=(0,S.useQueryClient)(),[t,r]=h.useState(null),{data:n,isLoading:a}=A({queryKey:["opencode-config"],queryFn:async()=>{let e=await fetch("/api/opencode-config");if(!e.ok)throw Error("Failed to fetch config");return e.json()}}),{control:s,handleSubmit:i,reset:o,formState:{isDirty:l,isSubmitting:d}}=tY({defaultValues:{stickyBusyDelaySeconds:1,sessionsRefreshIntervalSeconds:5,openEditorTargetMode:"remote",teamModeEnabled:!1}});h.useEffect(()=>{n&&o({stickyBusyDelaySeconds:"number"==typeof n.vibepulse?.stickyBusyDelayMs?Math.round(n.vibepulse.stickyBusyDelayMs/1e3):1,sessionsRefreshIntervalSeconds:"number"==typeof n.vibepulse?.sessionsRefreshIntervalMs?Math.round(n.vibepulse.sessionsRefreshIntervalMs/1e3):5,openEditorTargetMode:n.vibepulse?.openEditorTargetMode==="hub"?"hub":"remote",teamModeEnabled:n.team_mode?.enabled??!1})},[n,o]),h.useEffect(()=>{if(t){let e=setTimeout(()=>r(null),3e3);return()=>clearTimeout(e)}},[t]);let c=eW({mutationFn:async e=>{let t=await fetch("/api/opencode-config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({vibepulse:{...n?.vibepulse,stickyBusyDelayMs:1e3*e.stickyBusyDelaySeconds,sessionsRefreshIntervalMs:1e3*e.sessionsRefreshIntervalSeconds,openEditorTargetMode:e.openEditorTargetMode},team_mode:{...n?.team_mode??{},enabled:e.teamModeEnabled}})});if(!t.ok)throw Error((await t.json()).error||"Failed to save settings");return t.json()},onSuccess:()=>{e.invalidateQueries({queryKey:["opencode-config"]}),r({type:"success",message:"Settings saved successfully"})},onError:e=>{r({type:"error",message:e.message})}});return a?(0,m.jsx)("div",{className:"flex h-40 items-center justify-center",children:(0,m.jsx)(eK,{className:"h-6 w-6 animate-spin text-zinc-400"})}):(0,m.jsx)("form",{onSubmit:i(e=>{c.mutate(e)}),className:"space-y-6",children:(0,m.jsxs)("div",{className:"rounded-xl border border-zinc-200 bg-white p-6 shadow-sm dark:border-zinc-800 dark:bg-zinc-900",children:[(0,m.jsxs)("div",{className:"mb-6 flex items-center gap-3 border-b border-zinc-100 pb-4 dark:border-zinc-800",children:[(0,m.jsx)("div",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-zinc-100 text-zinc-500 dark:bg-zinc-800 dark:text-zinc-400",children:(0,m.jsx)(eL,{className:"h-4 w-4"})}),(0,m.jsx)("h3",{className:"text-lg font-medium text-zinc-900 dark:text-zinc-100",children:"Application Settings"})]}),t&&(0,m.jsxs)("div",{role:"alert",className:`mb-6 flex items-center gap-2 rounded-lg px-4 py-3 text-sm ${"success"===t.type?"bg-emerald-50 text-emerald-800 dark:bg-emerald-900/20 dark:text-emerald-300":"bg-red-50 text-red-800 dark:bg-red-900/20 dark:text-red-300"}`,children:["success"===t.type?(0,m.jsx)(eJ,{className:"h-4 w-4 shrink-0","aria-hidden":"true"}):(0,m.jsx)(eQ,{className:"h-4 w-4 shrink-0","aria-hidden":"true"}),(0,m.jsx)("span",{children:t.message})]}),(0,m.jsxs)("div",{className:"space-y-8",children:[(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsx)("label",{htmlFor:"open-editor-target-mode",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Remote Open Target"}),(0,m.jsx)(tk,{name:"openEditorTargetMode",control:s,render:({field:e})=>(0,m.jsxs)("select",{id:"open-editor-target-mode",value:e.value,onChange:e.onChange,className:"w-full rounded-lg border border-zinc-200 bg-white px-3 py-2 text-sm text-zinc-900 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-100","aria-label":"Remote open target",children:[(0,m.jsx)("option",{value:"remote",children:"Remote node"}),(0,m.jsx)("option",{value:"hub",children:"Hub browser machine"})]})}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"Choose whether remote session open actions execute on the remote node itself or use the current hub/browser machine editor flow. Default is remote node."})]}),(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between",children:[(0,m.jsx)("label",{htmlFor:"sticky-busy-slider",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Sticky Busy Delay"}),(0,m.jsx)(tk,{name:"stickyBusyDelaySeconds",control:s,render:({field:e})=>(0,m.jsxs)("span",{className:"rounded-md bg-zinc-100 px-2 py-0.5 text-xs font-medium text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300",children:[e.value,"s"]})})]}),(0,m.jsx)(tk,{name:"stickyBusyDelaySeconds",control:s,render:({field:e})=>(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsx)("input",{id:"sticky-busy-slider",type:"range",min:0,max:60,step:1,value:e.value,onChange:t=>e.onChange(parseInt(t.target.value,10)),className:"flex-1 h-2 cursor-pointer appearance-none rounded-lg bg-zinc-200 accent-blue-600 dark:bg-zinc-700","aria-label":"Sticky busy delay slider"}),(0,m.jsx)("input",{type:"number",min:0,max:300,step:1,value:e.value,onChange:t=>e.onChange(parseInt(t.target.value,10)||0),className:"w-20 rounded-lg border border-zinc-200 bg-white px-2 py-1 text-center text-sm dark:border-zinc-800 dark:bg-zinc-950","aria-label":"Sticky busy delay value"})]})}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:'The duration to keep a session marked as "busy" after activity stops. This prevents the UI from flickering when agents pause briefly. Default is 1 second.'})]}),(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsxs)("div",{className:"flex items-center justify-between",children:[(0,m.jsx)("label",{htmlFor:"refresh-interval-slider",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Sessions Refresh Interval"}),(0,m.jsx)(tk,{name:"sessionsRefreshIntervalSeconds",control:s,render:({field:e})=>(0,m.jsxs)("span",{className:"rounded-md bg-zinc-100 px-2 py-0.5 text-xs font-medium text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300",children:[e.value,"s"]})})]}),(0,m.jsx)(tk,{name:"sessionsRefreshIntervalSeconds",control:s,render:({field:e})=>(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsx)("input",{id:"refresh-interval-slider",type:"range",min:1,max:30,step:1,value:e.value,onChange:t=>e.onChange(parseInt(t.target.value,10)),className:"flex-1 h-2 cursor-pointer appearance-none rounded-lg bg-zinc-200 accent-blue-600 dark:bg-zinc-700","aria-label":"Sessions refresh interval slider"}),(0,m.jsx)("input",{type:"number",min:1,max:300,step:1,value:e.value,onChange:t=>e.onChange(parseInt(t.target.value,10)||1),className:"w-20 rounded-lg border border-zinc-200 bg-white px-2 py-1 text-center text-sm dark:border-zinc-800 dark:bg-zinc-950","aria-label":"Sessions refresh interval value"})]})}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"How often the board polls the server for session updates. Lower values provide more real-time feedback but increase server load. Default is 5 seconds."})]}),(0,m.jsxs)("div",{className:"space-y-3 border-t border-zinc-100 pt-6 dark:border-zinc-800",children:[(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsx)(tk,{name:"teamModeEnabled",control:s,render:({field:e})=>(0,m.jsx)("input",{id:"team-mode-enabled",type:"checkbox",checked:e.value,onChange:t=>e.onChange(t.target.checked),className:"h-4 w-4 rounded border-zinc-300 text-blue-600 focus:ring-blue-500 dark:border-zinc-700 dark:bg-zinc-900 dark:focus:ring-blue-600 dark:focus:ring-offset-zinc-900","aria-label":"Enable Team Mode"})}),(0,m.jsx)("label",{htmlFor:"team-mode-enabled",className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Enable Team Mode"})]}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400 pl-7",children:"When enabled, team mode allows multiple developers to collaborate via shared agents and a combined workflow inbox. (Requires oh-my-opencode v4.0.0+)"})]})]}),(0,m.jsx)("div",{className:"mt-8 flex justify-end border-t border-zinc-100 pt-6 dark:border-zinc-800",children:(0,m.jsxs)("button",{type:"submit",disabled:!l||d||c.isPending,className:"flex items-center gap-2 rounded-lg bg-blue-600 px-4 py-2 text-sm font-medium text-white shadow-sm transition-colors hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 dark:hover:bg-blue-500 dark:focus:ring-offset-zinc-900",children:[d||c.isPending?(0,m.jsx)(eK,{className:"h-4 w-4 animate-spin"}):(0,m.jsx)(iG,{className:"h-4 w-4"}),"Save Settings"]})})]})})}let iX=[{key:"default",name:"Default",description:"Fallback configuration"},{key:"sisyphus",name:"Sisyphus",description:"Task execution agent"},{key:"hephaestus",name:"Hephaestus",description:"Build & automation"},{key:"prometheus",name:"Prometheus",description:"Planning agent"},{key:"oracle",name:"Oracle",description:"Knowledge & research"},{key:"metis",name:"Metis",description:"Strategy & consultation"},{key:"momus",name:"Momus",description:"Review & critique"},{key:"atlas",name:"Atlas",description:"Execution-focused"},{key:"librarian",name:"Librarian",description:"Documentation & exploration"},{key:"explore",name:"Explore",description:"Code navigation"}];function iZ({open:e,onClose:t}){let[r,n]=h.useState("general"),[a,s]=h.useState("default"),[i,o]=h.useState(""),l=h.useRef(null),{data:d}=A({queryKey:["opencode-config"],queryFn:async()=>{let e=await fetch("/api/opencode-config");if(!e.ok)throw Error("Failed to fetch config");return e.json()},enabled:e}),{data:c}=A({queryKey:["opencode-models"],queryFn:async()=>{var e;let t=await fetch("/api/opencode-models"),r=null;try{r=await t.json()}catch{r=null}let n=r&&"object"==typeof r&&"error"in r&&"string"==typeof r.error?r.error:null;if(!t.ok||n)throw Error(n||`Failed to fetch models (${t.status})`);if(!((e=r)&&"object"==typeof e&&Array.isArray(e.models)))throw Error("Invalid models response");return r},enabled:e,retry:!1}),u=h.useMemo(()=>new Set(c?.models??[]),[c]),p=h.useCallback(e=>{let t=d?.agents?.[e];return t?.model?u.size>0&&!u.has(t.model)?"invalid":"ok":"unconfigured"},[d,u]),f=h.useMemo(()=>iX.filter(e=>"invalid"===p(e.key)).length,[p]);h.useEffect(()=>{if(!e)return;let r=e=>{"Escape"===e.key&&t()};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[e,t]),h.useEffect(()=>{if(e){let e=window.getComputedStyle(document.body).overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}}},[e]),h.useEffect(()=>{e&&setTimeout(()=>l.current?.focus(),100)},[e]);let x=h.useMemo(()=>{if(!i.trim())return iX;let e=i.toLowerCase();return iX.filter(t=>t.name.toLowerCase().includes(e)||t.description.toLowerCase().includes(e)||(d?.agents?.[t.key]?.model||"").toLowerCase().includes(e))},[i,d]),g=iX.find(e=>e.key===a);return e?(0,m.jsxs)("div",{className:"fixed inset-0 z-50 flex flex-col bg-white dark:bg-zinc-950",children:[(0,m.jsxs)("header",{className:"flex h-16 items-center justify-between border-b border-zinc-200 px-6 dark:border-zinc-800",children:[(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsx)("div",{className:"flex h-9 w-9 items-center justify-center rounded-lg bg-blue-600 text-white",children:(0,m.jsx)(eL,{className:"h-5 w-5"})}),(0,m.jsxs)("div",{children:[(0,m.jsx)("h1",{className:"text-lg font-semibold text-zinc-900 dark:text-zinc-100",children:"Settings"}),(0,m.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"Manage application and agent configuration"})]})]}),(0,m.jsxs)("div",{className:"flex items-center gap-1 rounded-lg bg-zinc-100 p-1 dark:bg-zinc-800",children:[(0,m.jsx)("button",{type:"button",onClick:()=>n("general"),className:`rounded-md px-4 py-1.5 text-sm font-medium transition-colors ${"general"===r?"bg-blue-600 text-white shadow-sm":"text-zinc-600 hover:bg-zinc-200 dark:text-zinc-400 dark:hover:bg-zinc-700"}`,children:"General"}),(0,m.jsx)("button",{type:"button",onClick:()=>n("agents"),className:`rounded-md px-4 py-1.5 text-sm font-medium transition-colors ${"agents"===r?"bg-blue-600 text-white shadow-sm":"text-zinc-600 hover:bg-zinc-200 dark:text-zinc-400 dark:hover:bg-zinc-700"}`,children:"Agents"}),(0,m.jsx)("button",{type:"button",onClick:()=>n("categories"),className:`rounded-md px-4 py-1.5 text-sm font-medium transition-colors ${"categories"===r?"bg-blue-600 text-white shadow-sm":"text-zinc-600 hover:bg-zinc-200 dark:text-zinc-400 dark:hover:bg-zinc-700"}`,children:"Categories"}),(0,m.jsx)("button",{type:"button",onClick:()=>n("profiles"),className:`rounded-md px-4 py-1.5 text-sm font-medium transition-colors ${"profiles"===r?"bg-blue-600 text-white shadow-sm":"text-zinc-600 hover:bg-zinc-200 dark:text-zinc-400 dark:hover:bg-zinc-700"}`,children:"Profiles"})]}),(0,m.jsx)("button",{type:"button",onClick:t,className:"flex h-9 w-9 items-center justify-center rounded-lg text-zinc-500 transition-colors hover:bg-zinc-100 hover:text-zinc-700 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-200","aria-label":"Close panel",children:(0,m.jsx)(eP,{className:"h-5 w-5"})})]}),"general"===r?(0,m.jsx)("main",{className:"flex-1 overflow-y-auto bg-white dark:bg-zinc-950",children:(0,m.jsxs)("div",{className:"mx-auto max-w-4xl p-8",children:[(0,m.jsxs)("div",{className:"mb-8",children:[(0,m.jsx)("h2",{className:"text-2xl font-bold text-zinc-900 dark:text-zinc-100",children:"General Settings"}),(0,m.jsx)("p",{className:"text-zinc-500 dark:text-zinc-400",children:"Manage application-wide behavior and preferences"})]}),(0,m.jsx)(iY,{})]})}):"agents"===r?(0,m.jsxs)("div",{className:"flex flex-1 overflow-hidden",children:[(0,m.jsxs)("aside",{className:"flex w-[280px] flex-col border-r border-zinc-200 bg-zinc-50/50 dark:border-zinc-800 dark:bg-zinc-900/20",children:[(0,m.jsx)("div",{className:"border-b border-zinc-200 p-4 dark:border-zinc-800",children:(0,m.jsxs)("div",{className:"relative",children:[(0,m.jsx)(eD,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-zinc-400"}),(0,m.jsx)("input",{ref:l,type:"text",value:i,onChange:e=>o(e.target.value),placeholder:"Search agents...",className:"h-10 w-full rounded-lg border border-zinc-200 bg-white pl-9 pr-4 text-sm text-zinc-900 placeholder:text-zinc-400 focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-100 dark:placeholder:text-zinc-600"})]})}),(0,m.jsxs)("nav",{className:"flex-1 overflow-y-auto p-2",children:[(0,m.jsx)("div",{className:"space-y-1",children:x.map(e=>{let t,r=d?.agents?.[e.key]?.model;return(0,m.jsxs)("button",{type:"button",onClick:()=>s(e.key),className:`flex w-full items-center gap-3 rounded-lg px-3 py-2.5 text-left transition-colors ${a===e.key?"bg-blue-600 text-white":"text-zinc-700 hover:bg-zinc-100 dark:text-zinc-300 dark:hover:bg-zinc-800"}`,children:[(0,m.jsx)("div",{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-md ${a===e.key?"bg-white/20":"bg-zinc-200 dark:bg-zinc-800"}`,children:(0,m.jsx)(eV,{className:`h-4 w-4 ${a===e.key?"text-white":"text-zinc-600 dark:text-zinc-400"}`})}),(0,m.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2 truncate text-sm font-medium",children:[e.name,"unconfigured"===(t=p(e.key))?(0,m.jsx)("span",{className:`inline-block h-2 w-2 shrink-0 rounded-full ${a===e.key?"bg-zinc-300":"bg-zinc-400 dark:bg-zinc-500"}`,title:"Inherits category configuration"}):"invalid"===t?(0,m.jsx)("span",{className:`inline-block h-2 w-2 shrink-0 rounded-full ${a===e.key?"bg-amber-300":"bg-amber-500"}`,title:"Model not available"}):(0,m.jsx)("span",{className:`inline-block h-2 w-2 shrink-0 rounded-full ${a===e.key?"bg-emerald-300":"bg-emerald-500"}`,title:"Configured"})]}),(0,m.jsx)("div",{className:`truncate text-xs ${a===e.key?"text-blue-100":"text-zinc-500 dark:text-zinc-500"}`,children:e.description}),r&&(0,m.jsx)("div",{className:`mt-1 inline-flex max-w-full items-start rounded-md px-1.5 py-0.5 text-[11px] leading-4 ${a===e.key?"bg-white/15 text-blue-50/95":"bg-zinc-200/70 text-zinc-700 dark:bg-zinc-800/80 dark:text-zinc-300"}`,title:r,children:(0,m.jsx)("span",{className:"font-mono break-all [display:-webkit-box] [-webkit-box-orient:vertical] [-webkit-line-clamp:2] overflow-hidden",children:r})})]}),a===e.key&&(0,m.jsx)(e$,{className:"h-4 w-4 shrink-0 text-blue-200"})]},e.key)})}),0===x.length&&(0,m.jsx)("div",{className:"py-8 text-center",children:(0,m.jsx)("p",{className:"text-sm text-zinc-500 dark:text-zinc-400",children:"No agents found"})})]}),(0,m.jsx)("div",{className:"border-t border-zinc-200 p-4 dark:border-zinc-800",children:(0,m.jsxs)("div",{className:"flex items-center justify-between text-xs text-zinc-500 dark:text-zinc-400",children:[(0,m.jsxs)("span",{className:"flex items-center gap-1.5",children:[iX.length," agents",f>0&&(0,m.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-amber-100 px-1.5 py-0.5 text-[10px] font-medium text-amber-700 dark:bg-amber-900/30 dark:text-amber-400",children:[(0,m.jsx)(eU,{className:"h-2.5 w-2.5"}),f," need attention"]})]}),(0,m.jsx)("kbd",{className:"rounded bg-zinc-200 px-1.5 py-0.5 font-mono dark:bg-zinc-800",children:"ESC"})]})})]}),(0,m.jsx)("main",{className:"flex-1 overflow-y-auto bg-white dark:bg-zinc-950",children:(0,m.jsxs)("div",{className:"mx-auto max-w-3xl p-8",children:[(0,m.jsxs)("div",{className:"mb-8 flex items-center gap-4",children:[(0,m.jsx)("div",{className:"flex h-16 w-16 items-center justify-center rounded-2xl bg-gradient-to-br from-blue-500 to-indigo-600 text-white shadow-lg",children:(0,m.jsx)(eV,{className:"h-8 w-8"})}),(0,m.jsxs)("div",{children:[(0,m.jsx)("h2",{className:"text-2xl font-bold text-zinc-900 dark:text-zinc-100",children:g?.name}),(0,m.jsx)("p",{className:"text-zinc-500 dark:text-zinc-400",children:g?.description})]})]}),(0,m.jsx)(iJ,{agentName:a})]})})]}):"categories"===r?(0,m.jsx)("main",{className:"flex-1 overflow-y-auto bg-white dark:bg-zinc-950",children:(0,m.jsxs)("div",{className:"mx-auto max-w-4xl p-8",children:[(0,m.jsxs)("div",{className:"mb-8",children:[(0,m.jsx)("h2",{className:"text-2xl font-bold text-zinc-900 dark:text-zinc-100",children:"Categories"}),(0,m.jsx)("p",{className:"text-zinc-500 dark:text-zinc-400",children:"Manage agent categories and their configurations"})]}),(0,m.jsx)(iI,{})]})}):(0,m.jsx)("main",{className:"flex-1 overflow-y-auto bg-white dark:bg-zinc-950",children:(0,m.jsxs)("div",{className:"mx-auto max-w-4xl p-8",children:[(0,m.jsxs)("div",{className:"mb-8",children:[(0,m.jsx)("h2",{className:"text-2xl font-bold text-zinc-900 dark:text-zinc-100",children:"Profiles"}),(0,m.jsx)("p",{className:"text-zinc-500 dark:text-zinc-400",children:"Manage configuration profiles for different agent setups"})]}),(0,m.jsx)(iK,{})]})})]}):null}let i0=eM("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]),i1=eM("pen",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]]),i2=eM("key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]]),i5="vibepulse:host-filter:v1",i4="local";function i3(){try{let e=localStorage.getItem(i5);if(!e)return"all";let t=JSON.parse(e);if("string"==typeof t&&""!==t.trim()){let e=t.trim();if(e===i4)return"local";return e}return"all"}catch{return"all"}}function i9({open:e,onClose:t,hostSources:r,isNodeMode:n=!1}){let{remoteHosts:a,addRemoteHost:s,editRemoteHost:i,deleteRemoteHost:o,toggleRemoteHost:l}=r,[d,c]=(0,h.useState)(null),[u,p]=(0,h.useState)(!1),[f,x]=(0,h.useState)({hostLabel:"",baseUrl:"",token:""}),[g,b]=(0,h.useState)(!1),[y,v]=(0,h.useState)(null),[k,w]=(0,h.useState)(!1),j=async(e,t)=>{v(null);try{await e()}catch(e){v(e instanceof Error?e.message:t)}};(0,h.useEffect)(()=>{if(e){let e=window.getComputedStyle(document.body).overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}}p(!1),c(null),v(null),x({hostLabel:"",baseUrl:"",token:""}),b(!1),w(!1)},[e]),(0,h.useEffect)(()=>{if(!e)return;let r=e=>{"Escape"===e.key&&t()};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[e,t]);let z=async()=>{let e;v(null);let t=f.hostLabel.trim();if(!t)return void v("Label is required");let r=(e=function(e){let t=e.trim();if(!t)return{ok:!1,error:"empty"};try{let e=new URL(t);if("http:"!==e.protocol&&"https:"!==e.protocol)return{ok:!1,error:"unsupported_protocol"};if(e.username||e.password)return{ok:!1,error:"credentials_not_allowed"};return{ok:!0,normalizedBaseUrl:(e.search="",e.hash="",e.toString().replace(/\/+$/,""))}}catch{return{ok:!1,error:"invalid"}}}(f.baseUrl)).ok?null:"unsupported_protocol"===e.error?"Node URL must use http:// or https://":"credentials_not_allowed"===e.error?"Node URL must not include a username or password":"A valid Node URL is required (e.g., http://localhost:3000)";if(r)return void v(r);w(!0);try{if(u)await s({hostId:"",hostLabel:t,baseUrl:f.baseUrl,enabled:!0,token:f.token.trim()}),p(!1);else if(d){let e=a.find(e=>e.hostId===d);if(e){let r=f.token.trim(),n=g?"":r||void 0;await i(d,{...e,hostLabel:t,baseUrl:f.baseUrl,token:n})}c(null)}x({hostLabel:"",baseUrl:"",token:""}),b(!1)}catch(e){v(e instanceof Error?e.message:"An error occurred")}finally{w(!1)}},N=()=>{p(!1),c(null),x({hostLabel:"",baseUrl:"",token:""}),b(!1),v(null)};return e?(0,m.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4 backdrop-blur-sm","data-testid":"host-manager",children:(0,m.jsxs)("div",{className:"flex max-h-[85vh] w-full max-w-lg flex-col overflow-hidden rounded-xl border border-zinc-200 bg-white shadow-2xl dark:border-zinc-800 dark:bg-zinc-950",children:[(0,m.jsxs)("header",{className:"flex h-14 items-center justify-between border-b border-zinc-200 px-5 dark:border-zinc-800",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,m.jsx)(eI,{className:"h-5 w-5 text-blue-600 dark:text-blue-500"}),(0,m.jsx)("h2",{className:"text-base font-semibold text-zinc-900 dark:text-zinc-100",children:"Nodes"})]}),(0,m.jsx)("button",{type:"button",onClick:t,className:"flex h-8 w-8 items-center justify-center rounded-lg text-zinc-500 transition-colors hover:bg-zinc-100 hover:text-zinc-700 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-200","aria-label":"Close node manager",children:(0,m.jsx)(eP,{className:"h-4 w-4"})})]}),(0,m.jsx)("main",{className:"flex-1 overflow-y-auto p-5",children:n?(0,m.jsx)("div",{className:"rounded-lg border border-yellow-200 bg-yellow-50 p-4 dark:border-yellow-900/50 dark:bg-yellow-900/20",children:(0,m.jsxs)("div",{className:"flex items-start gap-3",children:[(0,m.jsx)(eQ,{className:"mt-0.5 h-5 w-5 text-yellow-600 dark:text-yellow-500"}),(0,m.jsxs)("div",{children:[(0,m.jsx)("h3",{className:"text-sm font-medium text-yellow-800 dark:text-yellow-400",children:"Node Mode Active"}),(0,m.jsx)("p",{className:"mt-1 text-sm text-yellow-700 dark:text-yellow-500",children:"Remote node configuration is disabled while running in node mode to prevent nested hub configurations."})]})]})}):(0,m.jsxs)("div",{className:"space-y-3",children:[y&&!u&&!d&&(0,m.jsxs)("div",{className:"flex items-center gap-1.5 rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-xs text-red-700 dark:border-red-900/50 dark:bg-red-900/20 dark:text-red-400",children:[(0,m.jsx)(eQ,{className:"h-3.5 w-3.5"}),(0,m.jsx)("span",{children:y})]}),(0,m.jsxs)("div",{"data-testid":"host-row-local",className:"flex items-center justify-between rounded-lg border border-zinc-200 bg-zinc-50/50 p-3 dark:border-zinc-800 dark:bg-zinc-900/20",children:[(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsx)("div",{className:"flex h-8 w-8 items-center justify-center rounded-md bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400",children:(0,m.jsx)(eI,{className:"h-4 w-4"})}),(0,m.jsxs)("div",{children:[(0,m.jsx)("div",{className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Local"}),(0,m.jsx)("div",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:"Auto-discovered processes"})]})]}),(0,m.jsx)("div",{className:"flex items-center",children:(0,m.jsx)("span",{className:"inline-flex items-center rounded-full bg-blue-50 px-2 py-0.5 text-xs font-medium text-blue-700 ring-1 ring-inset ring-blue-700/10 dark:bg-blue-400/10 dark:text-blue-400 dark:ring-blue-400/30",children:"Built-in"})})]}),a.map(e=>{let t=d===e.hostId,r=e.hostId.replace(/[^a-zA-Z0-9-]/g,"-").toLowerCase();return(0,m.jsx)("div",{"data-testid":`host-row-remote-${r}`,className:`flex flex-col gap-3 rounded-lg border p-3 transition-colors ${t?"border-blue-500 bg-blue-50/30 dark:border-blue-500/50 dark:bg-blue-900/10":"border-zinc-200 bg-white hover:border-zinc-300 dark:border-zinc-800 dark:bg-zinc-950 dark:hover:border-zinc-700"}`,children:t?(0,m.jsxs)("div",{className:"space-y-3",children:[(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsx)("label",{htmlFor:"edit-hostLabel",className:"text-xs font-medium text-zinc-700 dark:text-zinc-300",children:"Node Label"}),(0,m.jsx)("input",{id:"edit-hostLabel","data-testid":"host-form-label",type:"text",value:f.hostLabel,onChange:e=>x({...f,hostLabel:e.target.value}),className:"w-full rounded-md border border-zinc-300 bg-white px-3 py-1.5 text-sm text-zinc-900 placeholder:text-zinc-400 focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-100",placeholder:"e.g., Production Node",disabled:k})]}),(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsx)("label",{htmlFor:"edit-baseUrl",className:"text-xs font-medium text-zinc-700 dark:text-zinc-300",children:"Node URL"}),(0,m.jsx)("input",{id:"edit-baseUrl","data-testid":"host-form-base-url",type:"url",value:f.baseUrl,onChange:e=>x({...f,baseUrl:e.target.value}),className:"w-full rounded-md border border-zinc-300 bg-white px-3 py-1.5 text-sm text-zinc-900 placeholder:text-zinc-400 focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-100",placeholder:"https://node.example.com",disabled:k})]}),(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsxs)("label",{htmlFor:"edit-token",className:"text-xs font-medium text-zinc-700 dark:text-zinc-300 flex items-center gap-1.5",children:[(0,m.jsx)(i2,{className:"h-3.5 w-3.5"}),"Update Token (optional)"]}),(0,m.jsx)("input",{id:"edit-token","data-testid":"host-form-token",type:"password",value:f.token,onChange:e=>{let t=e.target.value;x({...f,token:t}),g&&t.trim().length>0&&b(!1)},className:"w-full rounded-md border border-zinc-300 bg-white px-3 py-1.5 text-sm text-zinc-900 placeholder:text-zinc-400 focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-100",placeholder:"Leave blank to keep existing token",disabled:k||g}),(0,m.jsxs)("label",{htmlFor:"edit-clear-token",className:"flex items-center gap-2 text-xs text-zinc-600 dark:text-zinc-400",children:[(0,m.jsx)("input",{id:"edit-clear-token",type:"checkbox",checked:g,onChange:e=>b(e.target.checked),disabled:k,className:"h-3.5 w-3.5 rounded border-zinc-300 text-blue-600 focus:ring-blue-500"}),"Clear saved token on save"]})]}),y&&(0,m.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-red-600 dark:text-red-400",children:[(0,m.jsx)(eQ,{className:"h-3.5 w-3.5"}),(0,m.jsx)("span",{children:y})]}),(0,m.jsxs)("div",{className:"flex justify-end gap-2 pt-1",children:[(0,m.jsx)("button",{type:"button",onClick:N,disabled:k,className:"rounded-md px-3 py-1.5 text-xs font-medium text-zinc-600 hover:bg-zinc-100 disabled:opacity-50 dark:text-zinc-400 dark:hover:bg-zinc-800",children:"Cancel"}),(0,m.jsxs)("button",{type:"button",onClick:z,disabled:k,className:"inline-flex items-center gap-1.5 rounded-md bg-blue-600 px-3 py-1.5 text-xs font-medium text-white hover:bg-blue-700 disabled:opacity-50",children:[(0,m.jsx)(eJ,{className:"h-3.5 w-3.5"}),k?"Saving...":"Save"]})]})]}):(0,m.jsxs)("div",{className:"flex items-center justify-between",children:[(0,m.jsxs)("div",{className:"flex items-center gap-3",children:[(0,m.jsx)("div",{className:`flex h-8 w-8 items-center justify-center rounded-md ${e.enabled?"bg-zinc-100 text-zinc-600 dark:bg-zinc-800 dark:text-zinc-400":"bg-zinc-50 text-zinc-400 dark:bg-zinc-900 dark:text-zinc-600"}`,children:(0,m.jsx)(i0,{className:"h-4 w-4"})}),(0,m.jsxs)("div",{className:e.enabled?"":"opacity-60",children:[(0,m.jsxs)("div",{className:"flex items-center gap-2",children:[(0,m.jsx)("div",{className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:e.hostLabel}),e.tokenConfigured&&(0,m.jsx)(i2,{className:"h-3 w-3 text-zinc-400","aria-label":"Token configured"})]}),(0,m.jsx)("div",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:e.baseUrl})]})]}),(0,m.jsxs)("div",{className:"flex items-center gap-1",children:[(0,m.jsx)("button",{type:"button",onClick:()=>{j(()=>l(e.hostId,!e.enabled),"Failed to toggle node")},className:`rounded-md px-2.5 py-1 text-xs font-medium transition-colors ${e.enabled?"text-zinc-600 hover:bg-zinc-100 dark:text-zinc-400 dark:hover:bg-zinc-800":"text-blue-600 hover:bg-blue-50 dark:text-blue-400 dark:hover:bg-blue-900/20"}`,children:e.enabled?"Disable":"Enable"}),(0,m.jsx)("button",{type:"button",onClick:()=>{c(e.hostId),x({hostLabel:e.hostLabel,baseUrl:e.baseUrl,token:""}),b(!1),p(!1),v(null)},className:"rounded-md p-1.5 text-zinc-400 transition-colors hover:bg-zinc-100 hover:text-zinc-700 dark:hover:bg-zinc-800 dark:hover:text-zinc-200","aria-label":"Edit node",children:(0,m.jsx)(i1,{className:"h-3.5 w-3.5"})}),(0,m.jsx)("button",{type:"button",onClick:()=>{j(()=>o(e.hostId),"Failed to delete node")},className:"rounded-md p-1.5 text-zinc-400 transition-colors hover:bg-red-50 hover:text-red-600 dark:hover:bg-red-900/20 dark:hover:text-red-400","aria-label":"Delete node",children:(0,m.jsx)(eY,{className:"h-3.5 w-3.5"})})]})]})},e.hostId)}),u?(0,m.jsxs)("div",{className:"flex flex-col gap-3 rounded-lg border border-blue-500 bg-blue-50/30 p-3 dark:border-blue-500/50 dark:bg-blue-900/10",children:[(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsx)("label",{htmlFor:"add-hostLabel",className:"text-xs font-medium text-zinc-700 dark:text-zinc-300",children:"Node Label"}),(0,m.jsx)("input",{id:"add-hostLabel","data-testid":"host-form-label",type:"text",value:f.hostLabel,onChange:e=>x({...f,hostLabel:e.target.value}),className:"w-full rounded-md border border-zinc-300 bg-white px-3 py-1.5 text-sm text-zinc-900 placeholder:text-zinc-400 focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-100",placeholder:"e.g., Remote Node",disabled:k})]}),(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsx)("label",{htmlFor:"add-baseUrl",className:"text-xs font-medium text-zinc-700 dark:text-zinc-300",children:"Node URL"}),(0,m.jsx)("input",{id:"add-baseUrl","data-testid":"host-form-base-url",type:"url",value:f.baseUrl,onChange:e=>x({...f,baseUrl:e.target.value}),className:"w-full rounded-md border border-zinc-300 bg-white px-3 py-1.5 text-sm text-zinc-900 placeholder:text-zinc-400 focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-100",placeholder:"https://node.example.com",disabled:k})]}),(0,m.jsxs)("div",{className:"space-y-2",children:[(0,m.jsxs)("label",{htmlFor:"add-token",className:"text-xs font-medium text-zinc-700 dark:text-zinc-300 flex items-center gap-1.5",children:[(0,m.jsx)(i2,{className:"h-3.5 w-3.5"}),"Access Token (optional)"]}),(0,m.jsx)("input",{id:"add-token","data-testid":"host-form-token",type:"password",value:f.token,onChange:e=>x({...f,token:e.target.value}),className:"w-full rounded-md border border-zinc-300 bg-white px-3 py-1.5 text-sm text-zinc-900 placeholder:text-zinc-400 focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-100",placeholder:"Leave blank only on trusted networks",disabled:k}),(0,m.jsx)("p",{className:"text-xs text-amber-700 dark:text-amber-400",children:"Recommended: set a token unless this node is only reachable on a trusted private network."})]}),y&&(0,m.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-red-600 dark:text-red-400",children:[(0,m.jsx)(eQ,{className:"h-3.5 w-3.5"}),(0,m.jsx)("span",{children:y})]}),(0,m.jsxs)("div",{className:"flex justify-end gap-2 pt-1",children:[(0,m.jsx)("button",{type:"button",onClick:N,disabled:k,className:"rounded-md px-3 py-1.5 text-xs font-medium text-zinc-600 hover:bg-zinc-100 disabled:opacity-50 dark:text-zinc-400 dark:hover:bg-zinc-800",children:"Cancel"}),(0,m.jsxs)("button",{type:"button",onClick:z,disabled:k,className:"inline-flex items-center gap-1.5 rounded-md bg-blue-600 px-3 py-1.5 text-xs font-medium text-white hover:bg-blue-700 disabled:opacity-50",children:[(0,m.jsx)(eJ,{className:"h-3.5 w-3.5"}),k?"Adding...":"Add Node"]})]})]}):(0,m.jsxs)("button",{type:"button",onClick:()=>{p(!0),c(null),x({hostLabel:"",baseUrl:"",token:""}),b(!1),v(null)},className:"flex w-full items-center justify-center gap-2 rounded-lg border border-dashed border-zinc-300 py-3 text-sm font-medium text-zinc-600 transition-colors hover:border-zinc-400 hover:bg-zinc-50 hover:text-zinc-900 dark:border-zinc-700 dark:text-zinc-400 dark:hover:border-zinc-600 dark:hover:bg-zinc-900/50 dark:hover:text-zinc-100",children:[(0,m.jsx)(iL,{className:"h-4 w-4"}),"Add Remote Node"]})]})})]})}):null}let i6={hostId:"local",hostLabel:"Local",hostKind:"local"},i8="vibepulse:host-sources-changed";function i7(e){return{...e,hostKind:"remote"}}function oe(e,t){if("all"===e||"local"===e)return e;let r=t.find(t=>t.hostId===e);return r&&r.enabled?r.hostId:"all"}function ot(e){"all"===e||"local"===e?localStorage.setItem(i5,JSON.stringify(e)):"string"==typeof e&&""!==e.trim()&&e!==i4?localStorage.setItem(i5,JSON.stringify(e.trim())):localStorage.setItem(i5,JSON.stringify("all")),window.dispatchEvent(new Event(i8))}async function or(){let e=await fetch("/api/nodes");if(!e.ok)throw Error("Failed to fetch nodes");return((await e.json()).nodes||[]).map(e=>({hostId:e.nodeId,hostLabel:e.nodeLabel,baseUrl:e.baseUrl,enabled:e.enabled,tokenConfigured:e.tokenConfigured}))}let on=[{label:"1d",days:1},{label:"3d",days:3},{label:"7d",days:7},{label:"30d",days:30},{label:"All",days:0}],oa="opencode --port <PORT>";function os(){let e,t,r,n,a,s,i,o,l,d,c,u,p,f,x;e=(0,S.useQueryClient)(),t=(0,h.useRef)(null),r=(0,h.useRef)(0),n=(0,h.useRef)(null),a=(0,h.useRef)(null),s=(0,h.useRef)(!1),i=(0,h.useRef)(!0),o=(0,h.useRef)(null),l=(0,h.useRef)(new Map),d=(0,h.useCallback)(()=>{n.current||(n.current=setTimeout(()=>{e.invalidateQueries({queryKey:["sessions"]},{cancelRefetch:!1}),n.current=null},500))},[e]),c=(0,h.useCallback)(e=>{let t=l.current.get(e);t&&(clearTimeout(t),l.current.delete(e))},[]),u=(0,h.useCallback)(t=>{e.setQueriesData({queryKey:["sessions"]},t)},[e]),p=(0,h.useCallback)((e,t)=>{u(r=>{if(!r?.sessions)return r;let n=!1,a=r.sessions.map(r=>r.id===e?(n=!0,{...r,waitingForUser:t}):r.children?.some(t=>t.id===e)?(n=!0,{...r,children:r.children.map(r=>r.id===e?{...r,waitingForUser:t}:r)}):r);return n?{...r,sessions:a}:r})},[u]),f=(0,h.useCallback)((e,t)=>{c(e);let r=setTimeout(()=>{l.current.delete(e),t&&eg(e,!0),p(e,!0)},1500);l.current.set(e,r)},[c,p]),x=(0,h.useCallback)(e=>{var t;let r=ey(e)?e.source:ef,n=ey(e)?e.event:e,a="payload"in n?n.payload:n,s=a.properties?.sessionID?q(r.hostId,B(t=a.properties.sessionID)??t):null,o=r.hostId===ep;if(!a?.type)return void d();let l="question.asked"===a.type||"permission.asked"===a.type,m="question.replied"===a.type||"question.rejected"===a.type||"permission.replied"===a.type;(s&&l&&o&&eg(s,!0),s&&m&&(c(s),o&&eg(s,!1)),["session.status","session.updated","session.created","session.deleted","question.asked","permission.asked","permission.updated","question.replied","question.rejected","permission.replied","session.archived"].includes(a.type))?u(e=>{if(!e?.sessions)return d(),e;switch(a.type){case"session.updated":case"session.created":{let t=a.properties?.info;if(!t)return d(),e;let n=function e(t,r){let n=K(t.provider??H.provider),a=B(t.rawSessionId??t.id)??t.rawSessionId??t.id,s=q(r.hostId,a),i=t.parentID?B(t.parentID)??t.parentID:t.parentID;return{...t,id:s,parentID:i?q(r.hostId,i):i,hostId:r.hostId,hostLabel:r.hostLabel,hostKind:r.hostKind,hostBaseUrl:r.hostBaseUrl,rawSessionId:a,sourceSessionKey:s,readOnly:t.readOnly??n.readOnly,capabilities:t.capabilities??n.capabilities,provider:t.provider??n.provider,providerRawId:t.providerRawId??a,children:t.children?.map(t=>e({...t,parentID:t.parentID??a},r))}}(t,r);if(n.parentID){let t=!1,r=e.sessions.map(e=>{let r=e.children?.some(e=>e.id===n.id),a=e.id===n.parentID;if(!r&&!a)return e;t=!0;let s=e.children||[],i=s.find(e=>e.id===n.id),o=eb({...i,...n,realTimeStatus:n.realTimeStatus??i?.realTimeStatus??"busy",waitingForUser:n.waitingForUser??i?.waitingForUser});return i?{...e,children:s.map(e=>e.id===n.id?o:e)}:{...e,children:[...s,o]}});if(!t)return d(),e;return{...e,sessions:r}}let s=e.sessions.find(e=>e.id===n.id);if(!s)return d(),{...e,sessions:[eb(n),...e.sessions]};let i={...s,...n,projectName:s.projectName,branch:s.branch,realTimeStatus:n.realTimeStatus??s.realTimeStatus,waitingForUser:n.waitingForUser??s.waitingForUser,children:s.children};return{...e,sessions:e.sessions.map(e=>e.id===n.id?i:e)}}case"session.deleted":{let t=a.properties?.info,n=t?.id??a.properties?.sessionID;if(!n)return d(),e;let s=q(r.hostId,B(n)??n);return{...e,sessions:e.sessions.filter(e=>e.id!==s)}}default:{if(!s)return d(),e;let t=e=>{let t=K(e.provider??H.provider),n={...e,hostId:r.hostId,hostLabel:r.hostLabel,hostKind:r.hostKind,hostBaseUrl:r.hostBaseUrl??e.hostBaseUrl,readOnly:e.readOnly??t.readOnly,capabilities:e.capabilities??t.capabilities,provider:e.provider??t.provider,providerRawId:e.providerRawId??e.rawSessionId};switch(a.type){case"session.status":{var l;let t=a.properties?.status?.type;if(!t)return n;let r="number"==typeof a.timestamp?a.timestamp:Date.now();l=e.id,ex.set(l,{status:t,timestamp:Date.now()});let s=!e.parentID,u="busy"===t||"retry"===t;return"retry"!==t||i.current||el("play-alert","Skipped playAlertSound() because muted","playAlertSound() failed",(e,t)=>{let r=e.createOscillator(),n=e.createGain();r.type="triangle",r.frequency.setValueAtTime(880,t),r.frequency.exponentialRampToValueAtTime(698,t+.25),n.gain.setValueAtTime(.3,t),n.gain.exponentialRampToValueAtTime(.001,t+.35),r.connect(n),n.connect(e.destination),r.start(t),r.stop(t+.35);let a=e.createOscillator(),s=e.createGain();a.type="triangle",a.frequency.setValueAtTime(698,t+.2),a.frequency.exponentialRampToValueAtTime(523,t+.45),s.gain.setValueAtTime(.25,t+.2),s.gain.exponentialRampToValueAtTime(.001,t+.5),a.connect(s),s.connect(e.destination),a.start(t+.2),a.stop(t+.5)}),"idle"===t&&(c(e.id),!s&&o&&eg(e.id,!1)),"retry"===t&&(c(e.id),o&&eg(e.id,!0)),"busy"===t&&c(e.id),"idle"===t&&s&&(e.children?.length||0)>0&&d(),{...n,time:u?{...e.time||{},updated:r,archived:void 0}:{...e.time||{},updated:r},realTimeStatus:t,waitingForUser:"retry"===t||("idle"!==t||!!s)&&e.waitingForUser,children:e.children}}case"question.asked":case"permission.asked":return i.current||setTimeout(()=>em(),250),o&&eg(s,!0),f(s,o),{...n,time:{...e.time||{},archived:void 0},waitingForUser:!0};case"permission.updated":return c(s),d(),n;case"question.replied":case"question.rejected":case"permission.replied":return c(s),o&&eg(s,!1),{...n,waitingForUser:!1};case"session.archived":return{...n,time:{...e.time||{},archived:Date.now()}};default:return n}},n=!1,l=e.sessions.map(e=>e.id===s?(n=!0,t(e)):e.children?.some(e=>e.id===s)?(n=!0,{...e,children:e.children.map(e=>e.id===s?t(e):e)}):e);if(!n)return d(),e;return{...e,sessions:l}}}}):d()},[u,d,c,f]),(0,h.useEffect)(()=>(o.current=setTimeout(()=>{i.current=!1},3e3),()=>{o.current&&clearTimeout(o.current)}),[]),(0,h.useEffect)(()=>{let e=null,n=l.current,i=()=>{t.current&&(clearTimeout(t.current),t.current=null),a.current&&(clearTimeout(a.current),a.current=null),(e=new EventSource("/api/opencode-events")).onopen=()=>{r.current=0,s.current=!1,a.current=setTimeout(()=>{e&&(s.current=!0,e.close(),d(),i())},15e3)},e.onmessage=e=>{try{let t=JSON.parse(e.data);x(t),r.current=0}catch(e){console.error("Failed to parse SSE event:",e)}},e.onerror=()=>{if(e?.close(),a.current&&(clearTimeout(a.current),a.current=null),s.current){s.current=!1;return}r.current<5&&(t.current=setTimeout(()=>{r.current++,i()},1e3*Math.pow(2,r.current)))}};return i(),()=>{for(let r of(e?.close(),t.current&&(clearTimeout(t.current),t.current=null),a.current&&(clearTimeout(a.current),a.current=null),n.values()))clearTimeout(r);n.clear()}},[x,d]);let[g,b]=(0,h.useState)("unknown"),y=function(e={}){let t=e.runtimeRole??"hub",r="hub"!==t,n=(0,S.useQueryClient)(),[a,s]=(0,h.useState)(()=>i3()),{data:i=[],isLoading:o,error:l}=A({queryKey:["nodes"],queryFn:or,enabled:!r}),d=(0,h.useMemo)(()=>oe(a,i),[a,i]),c="unknown"!==t&&(r||!o&&!l);(0,h.useEffect)(()=>{let e=()=>{s(i3())};return window.addEventListener(i8,e),window.addEventListener("storage",e),()=>{window.removeEventListener(i8,e),window.removeEventListener("storage",e)}},[]),(0,h.useEffect)(()=>{d===a||c&&ot(d)},[d,a,c]);let u=(0,h.useCallback)(e=>{let t=oe(e,i);s(t),ot(t)},[i]),m=eW({mutationFn:async e=>{let t=await fetch("/api/nodes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({nodeLabel:e.hostLabel,baseUrl:e.baseUrl,token:e.token||"",enabled:e.enabled})});if(!t.ok)throw Error((await t.json()).error||"Failed to add node");return t.json()},onSuccess:()=>{n.invalidateQueries({queryKey:["nodes"]})}}),p=eW({mutationFn:async({hostId:e,nextHost:t})=>{let r={nodeId:e,nodeLabel:t.hostLabel,baseUrl:t.baseUrl,enabled:t.enabled};void 0!==t.token&&(r.token=t.token);let n=await fetch("/api/nodes",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!n.ok)throw Error((await n.json()).error||"Failed to edit node");return n.json()},onSuccess:()=>{n.invalidateQueries({queryKey:["nodes"]})}}),f=eW({mutationFn:async e=>{let t=await fetch("/api/nodes",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({nodeId:e})});if(!t.ok)throw Error("Failed to delete node");return t.json()},onSuccess:()=>{n.invalidateQueries({queryKey:["nodes"]})}}),x=eW({mutationFn:async({hostId:e,enabled:t})=>{let r=await fetch("/api/nodes",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({nodeId:e,enabled:t})});if(!r.ok)throw Error("Failed to toggle node");return r.json()},onSuccess:()=>{n.invalidateQueries({queryKey:["nodes"]})}}),g=(0,h.useCallback)(async e=>{await m.mutateAsync(e)},[m]),b=(0,h.useCallback)(async(e,t)=>{await p.mutateAsync({hostId:e,nextHost:t})},[p]),y=(0,h.useCallback)(async e=>{await f.mutateAsync(e)},[f]),v=(0,h.useCallback)(async(e,t)=>{let r=i.find(t=>t.hostId===e);r&&await x.mutateAsync({hostId:e,enabled:t??!r.enabled})},[x,i]),k=(0,h.useMemo)(()=>r?[i6]:[i6,...i.map(i7)],[r,i]),w=(0,h.useMemo)(()=>r?[i6]:[i6,...i.filter(e=>e.enabled).map(i7)],[r,i]),j=(0,h.useMemo)(()=>"all"===d?null:k.find(e=>e.hostId===d)??null,[d,k]),z=(0,h.useMemo)(()=>"all"===d?null:new Set([d]),[d]);return{sources:k,enabledSources:w,remoteHosts:i,activeFilter:d,activeSource:j,filteredHostIds:z,setActiveFilter:u,addRemoteHost:g,editRemoteHost:b,deleteRemoteHost:y,toggleRemoteHost:v,isLoading:o,error:l}}({runtimeRole:g}),[v,k]=(0,h.useState)(7),w=(0,h.useSyncExternalStore)(ec,ed,()=>!1),[j,z]=(0,h.useState)([]),[N,C]=(0,h.useState)(!1),[E,R]=(0,h.useState)("idle"),[T,M]=(0,h.useState)(!1),[F,I]=(0,h.useState)(!1),[L,_]=(0,h.useState)([]),P="node"===g,D=(0,h.useRef)(null),V=(0,h.useRef)(null);(0,h.useEffect)(()=>{let e=!1;return fetch("/api/nodes").then(async t=>{var r;if(e)return;let n=null;if(404===t.status)try{n=await t.json()}catch{n=null}b(404===t.status&&"object"==typeof(r=n)&&null!==r&&"Route unavailable in node mode"===n.error?"node":"hub")}).catch(()=>{e||b("hub")}),()=>{e=!0}},[]);let $=(0,h.useMemo)(()=>Array.from(new Set(j.map(e=>e.projectName))),[j]),U=j.length>0,W=1===$.length?`${$[0]} has an OpenCode process without an exposed API port.`:`${$.length} projects have OpenCode processes without exposed API ports.`,Q=(0,h.useMemo)(()=>new Map(L.map(e=>[e.hostId,e])),[L]);(0,h.useEffect)(()=>{let e=()=>{eu(),document.removeEventListener("click",e),document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",e),document.removeEventListener("touchstart",e)};return document.addEventListener("click",e),document.addEventListener("pointerdown",e,{passive:!0}),document.addEventListener("keydown",e),document.addEventListener("touchstart",e,{passive:!0}),()=>{document.removeEventListener("click",e),document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",e),document.removeEventListener("touchstart",e)}},[]),(0,h.useEffect)(()=>{if(!N||!U)return;let e=e=>{let t=e.target,r=V.current,n=D.current;r?.contains(t)||n?.contains(t)||C(!1)},t=e=>{"Escape"===e.key&&(C(!1),D.current?.focus())};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[U,N]);let J=async()=>{try{await navigator.clipboard.writeText(oa),R("copied"),setTimeout(()=>R("idle"),1500)}catch{R("failed"),setTimeout(()=>R("idle"),2e3)}};return(0,m.jsx)("div",{className:"min-h-screen bg-zinc-50 dark:bg-black",children:(0,m.jsxs)("main",{className:"h-screen flex flex-col",children:[(0,m.jsxs)("header",{className:"flex items-center justify-between px-4 py-4 border-b border-gray-200 dark:border-zinc-800",children:[(0,m.jsxs)("h1",{className:"text-2xl font-semibold text-gray-900 dark:text-white",children:["VibePulse ",P?"(Node)":""]}),(0,m.jsxs)("div",{className:"flex items-center gap-3 flex-wrap justify-end",children:[(0,m.jsx)("button",{type:"button",onClick:()=>{eu();let e=!w;window.localStorage.setItem(er,String(e)),window.dispatchEvent(new Event(en)),e||el("play-toggle-feedback","Skipped playToggleFeedbackSound() because muted","playToggleFeedbackSound() failed",(e,t)=>{let r=e.createOscillator(),n=e.createGain();r.type="sine",r.frequency.setValueAtTime(740,t),r.frequency.exponentialRampToValueAtTime(920,t+.1),n.gain.setValueAtTime(.13,t),n.gain.exponentialRampToValueAtTime(.001,t+.13),r.connect(n),n.connect(e.destination),r.start(t),r.stop(t+.13)})},className:`p-1.5 rounded-lg transition-all duration-150 ${w?"text-gray-400 dark:text-gray-500 hover:text-gray-600 dark:hover:text-gray-300 hover:bg-gray-100 dark:hover:bg-zinc-800":"text-blue-500 dark:text-blue-400 hover:text-blue-600 dark:hover:text-blue-300 hover:bg-blue-50 dark:hover:bg-blue-900/20"}`,title:w?"Unmute notifications":"Mute notifications",children:w?(0,m.jsxs)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,m.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z"}),(0,m.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M17 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2"})]}):(0,m.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,m.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15.536 8.464a5 5 0 010 7.072M18.364 5.636a9 9 0 010 12.728M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z"})})}),U?(0,m.jsxs)("div",{className:"relative",children:[(0,m.jsx)("button",{ref:D,type:"button",onClick:()=>C(e=>!e),className:`p-1.5 rounded-lg transition-all duration-150 text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 hover:bg-gray-100 dark:hover:bg-zinc-800 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 ${N?"bg-gray-100 dark:bg-zinc-800":""}`,"aria-label":"OpenCode process hint details","aria-haspopup":"dialog","aria-expanded":U&&N,"aria-controls":"process-hint-popover",children:(0,m.jsx)(eF,{className:"h-3.5 w-3.5"})}),U&&N?(0,m.jsxs)("div",{id:"process-hint-popover",ref:V,role:"dialog","aria-label":"OpenCode process hints",className:"absolute right-0 top-9 z-30 w-80 rounded-lg border border-blue-200 bg-white p-3 shadow-xl dark:border-blue-900/40 dark:bg-zinc-900",children:[(0,m.jsx)("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-200",children:W}),(0,m.jsx)("p",{className:"mt-1 text-[11px] leading-relaxed text-blue-800 dark:text-blue-300",children:"Sessions from these instances become visible once OpenCode starts with an exposed API port."}),(0,m.jsx)("div",{className:"mt-2 rounded-md bg-blue-50 px-2 py-1.5 dark:bg-blue-900/20",children:(0,m.jsx)("code",{className:"text-[11px] text-blue-900 dark:text-blue-200",children:oa})}),(0,m.jsxs)("div",{className:"mt-2 flex items-center justify-between gap-2",children:[(0,m.jsx)("span",{className:"text-[10px] text-blue-700 dark:text-blue-300",children:"VibePulse auto-detects active ports."}),(0,m.jsx)("button",{type:"button",onClick:J,className:"rounded-md border border-blue-200 px-2 py-1 text-[10px] font-medium text-blue-800 transition-colors hover:bg-blue-50 dark:border-blue-900/40 dark:text-blue-200 dark:hover:bg-blue-900/30",children:"copied"===E?"Copied":"failed"===E?"Copy Failed":"Copy"})]})]}):null]}):null,(0,m.jsx)("svg",{className:"w-4 h-4 text-gray-500 dark:text-gray-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,m.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"})}),(0,m.jsx)("div",{className:"flex items-center gap-1 bg-gray-100 dark:bg-zinc-800 rounded-lg p-0.5",children:on.map(e=>(0,m.jsx)("button",{type:"button",onClick:()=>k(e.days),className:`px-3 py-1 text-xs font-medium rounded-md transition-all duration-150 ${v===e.days?"bg-white dark:bg-zinc-600 text-gray-900 dark:text-white shadow-sm":"text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200"}`,children:e.label},e.days))}),(0,m.jsxs)("div",{className:"flex items-center gap-1 bg-gray-100 dark:bg-zinc-800 rounded-lg p-0.5","data-testid":"host-filter",children:[(0,m.jsx)("button",{type:"button",onClick:()=>y.setActiveFilter("all"),className:`px-3 py-1 text-xs font-medium rounded-md transition-all duration-150 ${"all"===y.activeFilter?"bg-white dark:bg-zinc-600 text-gray-900 dark:text-white shadow-sm":"text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200"}`,"data-testid":"host-filter-option-all",children:"All Hosts"}),y.enabledSources.map(e=>{let t=Q.get(e.hostId),r=t?.online??("local"===e.hostId&&1===y.enabledSources.length),n=O(e.hostId,e.hostLabel);return(0,m.jsxs)("button",{type:"button",onClick:()=>y.setActiveFilter(e.hostId),className:`flex items-center gap-1.5 px-3 py-1 text-xs font-medium rounded-md transition-all duration-150 ${y.activeFilter===e.hostId?"bg-white dark:bg-zinc-600 text-gray-900 dark:text-white shadow-sm":"text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200"}`,"data-testid":`host-filter-option-${e.hostId}`,children:[(0,m.jsx)("span",{className:`inline-flex items-center justify-center flex-shrink-0 ${n}`,"data-testid":`host-identity-${e.hostId}`,title:`Host identity: ${e.hostLabel}`,children:(0,m.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,m.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"})})}),(0,m.jsx)("span",{className:"truncate",children:e.hostLabel}),(0,m.jsx)("span",{className:"ml-auto inline-flex items-center pl-1.5","data-testid":`host-indicators-${e.hostId}`,children:(0,m.jsx)("span",{className:`w-2 h-2 rounded-full ${r?"bg-emerald-500":"bg-gray-400"}`,"data-testid":`host-status-${e.hostId}`,title:r?"Online":"Offline"})})]},e.hostId)})]}),!P&&(0,m.jsxs)("button",{type:"button",onClick:()=>I(!0),className:"flex items-center gap-1.5 rounded-lg border border-zinc-200 bg-white px-3 py-1.5 text-xs font-medium text-zinc-700 shadow-sm transition-colors hover:bg-zinc-50 hover:text-zinc-900 dark:border-zinc-700 dark:bg-zinc-800 dark:text-zinc-300 dark:hover:bg-zinc-700 dark:hover:text-white",children:[(0,m.jsx)(eI,{className:"h-3.5 w-3.5"}),"Nodes"]}),(0,m.jsx)(e_,{onClick:()=>M(!0)})]})]}),(0,m.jsx)(eE,{children:(0,m.jsx)(eS,{filterDays:v,onProcessHintsChange:z,hostSources:y,isNodeMode:P,showHostFilter:!1,onHostStatusesChange:_})}),(0,m.jsx)(iZ,{open:T,onClose:()=>M(!1)}),(0,m.jsx)(i9,{hostSources:y,open:F,onClose:()=>I(!1),isNodeMode:P})]})})}e.s(["default",()=>os],52683)}]);
|