@a5c-ai/babysitter-observer-dashboard 5.0.1-staging.7a8768ec
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 -0
- package/.next/app-path-routes-manifest.json +16 -0
- package/.next/build-manifest.json +23 -0
- package/.next/export-marker.json +6 -0
- package/.next/fallback-build-manifest.json +13 -0
- package/.next/images-manifest.json +68 -0
- package/.next/next-minimal-server.js.nft.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +114 -0
- package/.next/required-server-files.json +334 -0
- package/.next/routes-manifest.json +139 -0
- package/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
- package/.next/server/app/_global-error/page/build-manifest.json +19 -0
- package/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
- package/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
- package/.next/server/app/_global-error/page.js +9 -0
- package/.next/server/app/_global-error/page.js.map +5 -0
- package/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/.next/server/app/_global-error/page_client-reference-manifest.js +3 -0
- package/.next/server/app/_global-error.html +1 -0
- package/.next/server/app/_global-error.meta +15 -0
- package/.next/server/app/_global-error.rsc +14 -0
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_full.segment.rsc +14 -0
- package/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_index.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
- package/.next/server/app/_not-found/page/build-manifest.json +19 -0
- package/.next/server/app/_not-found/page/next-font-manifest.json +6 -0
- package/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
- package/.next/server/app/_not-found/page.js +13 -0
- package/.next/server/app/_not-found/page.js.map +5 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +3 -0
- package/.next/server/app/_not-found.html +1 -0
- package/.next/server/app/_not-found.meta +16 -0
- package/.next/server/app/_not-found.rsc +19 -0
- package/.next/server/app/_not-found.segments/_full.segment.rsc +19 -0
- package/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
- package/.next/server/app/_not-found.segments/_index.segment.rsc +8 -0
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +6 -0
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +5 -0
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/api/config/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/config/route/build-manifest.json +9 -0
- package/.next/server/app/api/config/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/config/route.js +8 -0
- package/.next/server/app/api/config/route.js.map +5 -0
- package/.next/server/app/api/config/route.js.nft.json +1 -0
- package/.next/server/app/api/config/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/digest/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/digest/route/build-manifest.json +9 -0
- package/.next/server/app/api/digest/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/digest/route.js +9 -0
- package/.next/server/app/api/digest/route.js.map +5 -0
- package/.next/server/app/api/digest/route.js.nft.json +1 -0
- package/.next/server/app/api/digest/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/runs/[runId]/events/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/runs/[runId]/events/route/build-manifest.json +9 -0
- package/.next/server/app/api/runs/[runId]/events/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/runs/[runId]/events/route.js +8 -0
- package/.next/server/app/api/runs/[runId]/events/route.js.map +5 -0
- package/.next/server/app/api/runs/[runId]/events/route.js.nft.json +1 -0
- package/.next/server/app/api/runs/[runId]/events/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/runs/[runId]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/runs/[runId]/route/build-manifest.json +9 -0
- package/.next/server/app/api/runs/[runId]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/runs/[runId]/route.js +9 -0
- package/.next/server/app/api/runs/[runId]/route.js.map +5 -0
- package/.next/server/app/api/runs/[runId]/route.js.nft.json +1 -0
- package/.next/server/app/api/runs/[runId]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/runs/[runId]/tasks/[effectId]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/runs/[runId]/tasks/[effectId]/route/build-manifest.json +9 -0
- package/.next/server/app/api/runs/[runId]/tasks/[effectId]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/runs/[runId]/tasks/[effectId]/route.js +8 -0
- package/.next/server/app/api/runs/[runId]/tasks/[effectId]/route.js.map +5 -0
- package/.next/server/app/api/runs/[runId]/tasks/[effectId]/route.js.nft.json +1 -0
- package/.next/server/app/api/runs/[runId]/tasks/[effectId]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/runs/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/runs/route/build-manifest.json +9 -0
- package/.next/server/app/api/runs/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/runs/route.js +9 -0
- package/.next/server/app/api/runs/route.js.map +5 -0
- package/.next/server/app/api/runs/route.js.nft.json +1 -0
- package/.next/server/app/api/runs/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/stream/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/stream/route/build-manifest.json +9 -0
- package/.next/server/app/api/stream/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/stream/route.js +8 -0
- package/.next/server/app/api/stream/route.js.map +5 -0
- package/.next/server/app/api/stream/route.js.nft.json +1 -0
- package/.next/server/app/api/stream/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/test/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/test/route/build-manifest.json +9 -0
- package/.next/server/app/api/test/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/test/route.js +6 -0
- package/.next/server/app/api/test/route.js.map +5 -0
- package/.next/server/app/api/test/route.js.nft.json +1 -0
- package/.next/server/app/api/test/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/version/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/version/route/build-manifest.json +9 -0
- package/.next/server/app/api/version/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/version/route.js +7 -0
- package/.next/server/app/api/version/route.js.map +5 -0
- package/.next/server/app/api/version/route.js.nft.json +1 -0
- package/.next/server/app/api/version/route_client-reference-manifest.js +3 -0
- package/.next/server/app/icon.svg/route/app-paths-manifest.json +3 -0
- package/.next/server/app/icon.svg/route/build-manifest.json +9 -0
- package/.next/server/app/icon.svg/route.js +7 -0
- package/.next/server/app/icon.svg/route.js.map +5 -0
- package/.next/server/app/icon.svg/route.js.nft.json +1 -0
- package/.next/server/app/icon.svg.body +20 -0
- package/.next/server/app/icon.svg.meta +1 -0
- package/.next/server/app/index.html +1 -0
- package/.next/server/app/index.meta +14 -0
- package/.next/server/app/index.rsc +21 -0
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/index.segments/_full.segment.rsc +21 -0
- package/.next/server/app/index.segments/_head.segment.rsc +6 -0
- package/.next/server/app/index.segments/_index.segment.rsc +8 -0
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/page/app-paths-manifest.json +3 -0
- package/.next/server/app/page/build-manifest.json +19 -0
- package/.next/server/app/page/next-font-manifest.json +6 -0
- package/.next/server/app/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/page/server-reference-manifest.json +17 -0
- package/.next/server/app/page.js +15 -0
- package/.next/server/app/page.js.map +5 -0
- package/.next/server/app/page.js.nft.json +1 -0
- package/.next/server/app/page_client-reference-manifest.js +3 -0
- package/.next/server/app/runs/[runId]/page/app-paths-manifest.json +3 -0
- package/.next/server/app/runs/[runId]/page/build-manifest.json +19 -0
- package/.next/server/app/runs/[runId]/page/next-font-manifest.json +6 -0
- package/.next/server/app/runs/[runId]/page/react-loadable-manifest.json +22 -0
- package/.next/server/app/runs/[runId]/page/server-reference-manifest.json +17 -0
- package/.next/server/app/runs/[runId]/page.js +15 -0
- package/.next/server/app/runs/[runId]/page.js.map +5 -0
- package/.next/server/app/runs/[runId]/page.js.nft.json +1 -0
- package/.next/server/app/runs/[runId]/page_client-reference-manifest.js +3 -0
- package/.next/server/app-paths-manifest.json +16 -0
- package/.next/server/chunks/01oi_server_app_api_runs_[runId]_tasks_[effectId]_route_actions_0r72yai.js +3 -0
- package/.next/server/chunks/01oi_server_app_api_runs_[runId]_tasks_[effectId]_route_actions_0r72yai.js.map +1 -0
- package/.next/server/chunks/0h.v__next-internal_server_app_api_runs_[runId]_events_route_actions_0~msldk.js +3 -0
- package/.next/server/chunks/0h.v__next-internal_server_app_api_runs_[runId]_events_route_actions_0~msldk.js.map +1 -0
- package/.next/server/chunks/0h.v__next-internal_server_app_api_runs_[runId]_route_actions_09iz0n6.js +3 -0
- package/.next/server/chunks/0h.v__next-internal_server_app_api_runs_[runId]_route_actions_09iz0n6.js.map +1 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_config_route_actions_0~eypoa.js +3 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_config_route_actions_0~eypoa.js.map +1 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_digest_route_actions_04jj5zs.js +3 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_digest_route_actions_04jj5zs.js.map +1 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_runs_route_actions_0~-t-o4.js +3 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_runs_route_actions_0~-t-o4.js.map +1 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_stream_route_actions_0fkmv2_.js +3 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_stream_route_actions_0fkmv2_.js.map +1 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_test_route_actions_00ugava.js +3 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_test_route_actions_00ugava.js.map +1 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_version_route_actions_0~v3ojm.js +3 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_api_version_route_actions_0~v3ojm.js.map +1 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_icon_svg_route_actions_0yypxkm.js +3 -0
- package/.next/server/chunks/0juq_observer-dashboard__next-internal_server_app_icon_svg_route_actions_0yypxkm.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0.6bt.6._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0.6bt.6._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__08kwev1._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__08kwev1._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__096el.d._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__096el.d._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0_bmt4z._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0_bmt4z._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0_ln2d2._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0_ln2d2._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0al3v65._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0al3v65._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0gf516b._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0gf516b._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0kdfw4x._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0kdfw4x._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0pxt00h._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0pxt00h._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0rubnza._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0rubnza._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0tn9iud._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0tn9iud._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0ws5o6i._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0ws5o6i._.js.map +1 -0
- package/.next/server/chunks/[turbopack]_runtime.js +903 -0
- package/.next/server/chunks/[turbopack]_runtime.js.map +11 -0
- package/.next/server/chunks/node_modules_next_04~_e52._.js +13 -0
- package/.next/server/chunks/node_modules_next_04~_e52._.js.map +1 -0
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0nyyph-.js +9 -0
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0nyyph-.js.map +1 -0
- package/.next/server/chunks/packages_observer-dashboard_src_lib_02.vvb.._.js +3 -0
- package/.next/server/chunks/packages_observer-dashboard_src_lib_02.vvb.._.js.map +1 -0
- package/.next/server/chunks/packages_observer-dashboard_src_lib_0rqgpk0._.js +3 -0
- package/.next/server/chunks/packages_observer-dashboard_src_lib_0rqgpk0._.js.map +1 -0
- package/.next/server/chunks/ssr/0juq_observer-dashboard__next-internal_server_app__global-error_page_actions_0ekoxmy.js +3 -0
- package/.next/server/chunks/ssr/0juq_observer-dashboard__next-internal_server_app__global-error_page_actions_0ekoxmy.js.map +1 -0
- package/.next/server/chunks/ssr/0juq_observer-dashboard__next-internal_server_app__not-found_page_actions_09b3ti3.js +3 -0
- package/.next/server/chunks/ssr/0juq_observer-dashboard__next-internal_server_app__not-found_page_actions_09b3ti3.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__006f7~t._.js +4 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__006f7~t._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__02jgvbi._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__02jgvbi._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__04j8t~1._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__04j8t~1._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__09c~s.0._.js +33 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__09c~s.0._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0cpy61n._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0cpy61n._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0cwa32j._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0cwa32j._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0fk_g0j._.js +19 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0fk_g0j._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0pddpic._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0pddpic._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0pvtneq._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0pvtneq._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0xc-2vm._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0xc-2vm._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__10xgshr._.js +33 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__10xgshr._.js.map +1 -0
- package/.next/server/chunks/ssr/[turbopack]_runtime.js +903 -0
- package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +11 -0
- package/.next/server/chunks/ssr/_00yo1im._.js +3 -0
- package/.next/server/chunks/ssr/_00yo1im._.js.map +1 -0
- package/.next/server/chunks/ssr/_03sbc.o._.js +3 -0
- package/.next/server/chunks/ssr/_03sbc.o._.js.map +1 -0
- package/.next/server/chunks/ssr/_04z5ea0._.js +3 -0
- package/.next/server/chunks/ssr/_04z5ea0._.js.map +1 -0
- package/.next/server/chunks/ssr/_0gmb3g_._.js +3 -0
- package/.next/server/chunks/ssr/_0gmb3g_._.js.map +1 -0
- package/.next/server/chunks/ssr/_0okz9j8._.js +6 -0
- package/.next/server/chunks/ssr/_0okz9j8._.js.map +1 -0
- package/.next/server/chunks/ssr/_0wrbwro._.js +6 -0
- package/.next/server/chunks/ssr/_0wrbwro._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_09w7yel._.js +33 -0
- package/.next/server/chunks/ssr/node_modules_09w7yel._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0avqw4q._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0avqw4q._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0h9llsw._.js +6 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0h9llsw._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0i_._k3._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0i_._k3._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0ee1czk._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0ee1czk._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0lgvd_..js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0cjv-23.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0amzg6z.js +4 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0amzg6z.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0dw1x0d.js +4 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0dw1x0d.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0rc3ul_.js +4 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0rc3ul_.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_10iomok.js +4 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_10iomok.js.map +1 -0
- package/.next/server/chunks/ssr/packages_observer-dashboard_0~a2tmu._.js +3 -0
- package/.next/server/chunks/ssr/packages_observer-dashboard_0~a2tmu._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_observer-dashboard_src_0f.ozc-._.js +3 -0
- package/.next/server/chunks/ssr/packages_observer-dashboard_src_0f.ozc-._.js.map +1 -0
- package/.next/server/chunks/ssr/packages_observer-dashboard_src_components_providers_tsx_03_vrrn._.js +7 -0
- package/.next/server/chunks/ssr/packages_observer-dashboard_src_components_providers_tsx_03_vrrn._.js.map +1 -0
- package/.next/server/functions-config-manifest.json +4 -0
- package/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/.next/server/middleware-build-manifest.js +23 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/next-font-manifest.js +1 -0
- package/.next/server/next-font-manifest.json +6 -0
- package/.next/server/pages/404.html +1 -0
- package/.next/server/pages/500.html +1 -0
- package/.next/server/pages-manifest.json +4 -0
- package/.next/server/prefetch-hints.json +1 -0
- package/.next/server/server-reference-manifest.js +1 -0
- package/.next/server/server-reference-manifest.json +24 -0
- package/.next/static/MvfPly4ZXHqaveDVOG1qq/_buildManifest.js +11 -0
- package/.next/static/MvfPly4ZXHqaveDVOG1qq/_clientMiddlewareManifest.js +1 -0
- package/.next/static/MvfPly4ZXHqaveDVOG1qq/_ssgManifest.js +1 -0
- package/.next/static/chunks/00c87uqn~kk2z.js +1 -0
- package/.next/static/chunks/01xlw8hd842-c.js +1 -0
- package/.next/static/chunks/02p9dpa.0oxiz.js +1 -0
- package/.next/static/chunks/034i63v_muq~d.js +1 -0
- package/.next/static/chunks/03mo-6~4pxdio.js +1 -0
- package/.next/static/chunks/03~yq9q893hmn.js +1 -0
- package/.next/static/chunks/04dm5qn77.fc2.js +1 -0
- package/.next/static/chunks/07uz2g0_38qia.js +4 -0
- package/.next/static/chunks/08nqnwvixoxnk.js +2 -0
- package/.next/static/chunks/0d3shmwh5_nmn.js +1 -0
- package/.next/static/chunks/0e_wyjw3nx.a..js +1 -0
- package/.next/static/chunks/0mstyq17cbf8-.js +1 -0
- package/.next/static/chunks/0ntuxw9.how-q.js +1 -0
- package/.next/static/chunks/0t3uzajv1qzmo.js +1 -0
- package/.next/static/chunks/0u~_nwr5-v.xp.js +1 -0
- package/.next/static/chunks/0wxcxh6eyzams.js +1 -0
- package/.next/static/chunks/0x6y7yt4kiddp.css +1 -0
- package/.next/static/chunks/0z6-vonyxr0dn.js +4 -0
- package/.next/static/chunks/0ze4gu236oq96.js +31 -0
- package/.next/static/chunks/0zwozael9msy1.js +1 -0
- package/.next/static/chunks/10qd__0r7a~.l.js +1 -0
- package/.next/static/chunks/11jh_u1ynmatg.js +1 -0
- package/.next/static/chunks/13xer3cb9shu-.js +5 -0
- package/.next/static/chunks/142zlnch_xmgd.js +1 -0
- package/.next/static/chunks/144kcri75qczu.js +1 -0
- package/.next/static/chunks/turbopack-0-ww6fe7b37qt.js +1 -0
- package/.next/static/media/icon.08ljfy7xai2x_.svg +20 -0
- package/LICENSE +21 -0
- package/README.md +490 -0
- package/next.config.mjs +25 -0
- package/package.json +104 -0
- package/postcss.config.mjs +8 -0
- package/src/app/actions/__tests__/approve-breakpoint.test.ts +246 -0
- package/src/app/actions/approve-breakpoint.ts +145 -0
- package/src/app/api/config/route.ts +137 -0
- package/src/app/api/digest/route.ts +45 -0
- package/src/app/api/runs/[runId]/events/route.ts +56 -0
- package/src/app/api/runs/[runId]/route.ts +84 -0
- package/src/app/api/runs/[runId]/tasks/[effectId]/route.ts +44 -0
- package/src/app/api/runs/route.ts +48 -0
- package/src/app/api/stream/route.ts +136 -0
- package/src/app/api/test/route.ts +1 -0
- package/src/app/api/version/route.ts +57 -0
- package/src/app/globals.css +555 -0
- package/src/app/icon.svg +20 -0
- package/src/app/layout.tsx +39 -0
- package/src/app/not-found.tsx +16 -0
- package/src/app/page.tsx +120 -0
- package/src/app/runs/[runId]/page.tsx +279 -0
- package/src/cli.ts +271 -0
- package/src/components/breakpoint/__tests__/breakpoint-approval.test.tsx +212 -0
- package/src/components/breakpoint/__tests__/breakpoint-panel.test.tsx +130 -0
- package/src/components/breakpoint/__tests__/file-preview.test.tsx +313 -0
- package/src/components/breakpoint/breakpoint-approval.tsx +138 -0
- package/src/components/breakpoint/breakpoint-panel.tsx +95 -0
- package/src/components/breakpoint/file-preview.tsx +215 -0
- package/src/components/dashboard/.gitkeep +0 -0
- package/src/components/dashboard/__tests__/breakpoint-banner.test.tsx +177 -0
- package/src/components/dashboard/__tests__/catch-up-banner.test.tsx +141 -0
- package/src/components/dashboard/__tests__/executive-summary-banner.test.tsx +164 -0
- package/src/components/dashboard/__tests__/kpi-grid.test.tsx +101 -0
- package/src/components/dashboard/__tests__/pagination-controls.test.tsx +125 -0
- package/src/components/dashboard/__tests__/project-accordion.test.tsx +97 -0
- package/src/components/dashboard/__tests__/project-list-view.test.tsx +174 -0
- package/src/components/dashboard/__tests__/project-search-input.test.tsx +110 -0
- package/src/components/dashboard/__tests__/project-section-header.test.tsx +91 -0
- package/src/components/dashboard/__tests__/project-section.test.tsx +151 -0
- package/src/components/dashboard/__tests__/run-card.test.tsx +164 -0
- package/src/components/dashboard/__tests__/run-filter-bar.test.tsx +109 -0
- package/src/components/dashboard/__tests__/run-list.test.tsx +123 -0
- package/src/components/dashboard/__tests__/search-filter.test.tsx +150 -0
- package/src/components/dashboard/__tests__/virtualized-run-list.test.tsx +179 -0
- package/src/components/dashboard/breakpoint-banner.tsx +301 -0
- package/src/components/dashboard/catch-up-banner.tsx +88 -0
- package/src/components/dashboard/executive-summary-banner.tsx +174 -0
- package/src/components/dashboard/global-search.tsx +323 -0
- package/src/components/dashboard/kpi-grid.tsx +140 -0
- package/src/components/dashboard/pagination-controls.tsx +100 -0
- package/src/components/dashboard/project-accordion.tsx +72 -0
- package/src/components/dashboard/project-health-card.tsx +536 -0
- package/src/components/dashboard/project-list-view.tsx +246 -0
- package/src/components/dashboard/project-search-input.tsx +41 -0
- package/src/components/dashboard/project-section-header.tsx +73 -0
- package/src/components/dashboard/project-section.tsx +89 -0
- package/src/components/dashboard/run-card.tsx +218 -0
- package/src/components/dashboard/run-filter-bar.tsx +100 -0
- package/src/components/dashboard/run-list.tsx +77 -0
- package/src/components/dashboard/search-filter.tsx +69 -0
- package/src/components/dashboard/virtualized-run-list.tsx +130 -0
- package/src/components/details/.gitkeep +0 -0
- package/src/components/details/__tests__/agent-panel.test.tsx +236 -0
- package/src/components/details/__tests__/json-tree.test.tsx +347 -0
- package/src/components/details/__tests__/log-viewer.test.tsx +168 -0
- package/src/components/details/__tests__/task-detail.test.tsx +212 -0
- package/src/components/details/__tests__/timing-panel.test.tsx +271 -0
- package/src/components/details/agent-panel.tsx +234 -0
- package/src/components/details/json-tree/categorize.ts +131 -0
- package/src/components/details/json-tree/index.tsx +120 -0
- package/src/components/details/json-tree/json-node.tsx +223 -0
- package/src/components/details/json-tree/smart-summary.tsx +596 -0
- package/src/components/details/json-tree/tree-controls.tsx +47 -0
- package/src/components/details/json-tree.tsx +9 -0
- package/src/components/details/log-viewer.tsx +140 -0
- package/src/components/details/task-detail.tsx +114 -0
- package/src/components/details/timing-panel.tsx +247 -0
- package/src/components/events/.gitkeep +0 -0
- package/src/components/events/__tests__/event-item.test.tsx +211 -0
- package/src/components/events/__tests__/event-stream.test.tsx +225 -0
- package/src/components/events/event-item.tsx +121 -0
- package/src/components/events/event-stream.tsx +260 -0
- package/src/components/notifications/.gitkeep +0 -0
- package/src/components/notifications/__tests__/notification-panel.test.tsx +287 -0
- package/src/components/notifications/__tests__/notification-provider.test.tsx +585 -0
- package/src/components/notifications/__tests__/toast-stack.test.tsx +217 -0
- package/src/components/notifications/notification-panel.tsx +124 -0
- package/src/components/notifications/notification-provider.tsx +175 -0
- package/src/components/notifications/toast-stack.tsx +75 -0
- package/src/components/pipeline/.gitkeep +0 -0
- package/src/components/pipeline/__tests__/parallel-group.test.tsx +88 -0
- package/src/components/pipeline/__tests__/pipeline-view.test.tsx +345 -0
- package/src/components/pipeline/__tests__/step-card.test.tsx +330 -0
- package/src/components/pipeline/parallel-group.tsx +39 -0
- package/src/components/pipeline/pipeline-view.tsx +197 -0
- package/src/components/pipeline/step-card.tsx +166 -0
- package/src/components/providers/event-stream-provider.tsx +29 -0
- package/src/components/providers.tsx +24 -0
- package/src/components/shared/.gitkeep +0 -0
- package/src/components/shared/__tests__/empty-state.test.tsx +49 -0
- package/src/components/shared/__tests__/friendly-id.test.tsx +47 -0
- package/src/components/shared/__tests__/kbd.test.tsx +45 -0
- package/src/components/shared/__tests__/kind-badge.test.tsx +71 -0
- package/src/components/shared/__tests__/metrics-row.test.tsx +74 -0
- package/src/components/shared/__tests__/outcome-banner.test.tsx +71 -0
- package/src/components/shared/__tests__/progress-bar.test.tsx +89 -0
- package/src/components/shared/__tests__/session-pill.test.tsx +62 -0
- package/src/components/shared/__tests__/settings-modal.test.tsx +201 -0
- package/src/components/shared/__tests__/shortcuts-help.test.tsx +103 -0
- package/src/components/shared/__tests__/status-badge.test.tsx +98 -0
- package/src/components/shared/__tests__/theme-provider.test.tsx +100 -0
- package/src/components/shared/__tests__/truncated-id.test.tsx +53 -0
- package/src/components/shared/app-footer.tsx +80 -0
- package/src/components/shared/app-header.tsx +160 -0
- package/src/components/shared/empty-state.tsx +18 -0
- package/src/components/shared/error-boundary.tsx +81 -0
- package/src/components/shared/friendly-id.tsx +48 -0
- package/src/components/shared/kbd.tsx +15 -0
- package/src/components/shared/kind-badge.tsx +51 -0
- package/src/components/shared/metrics-row.tsx +106 -0
- package/src/components/shared/outcome-banner.tsx +56 -0
- package/src/components/shared/progress-bar.tsx +42 -0
- package/src/components/shared/session-pill.tsx +69 -0
- package/src/components/shared/settings-modal.tsx +509 -0
- package/src/components/shared/shortcuts-help.tsx +113 -0
- package/src/components/shared/status-badge.tsx +110 -0
- package/src/components/shared/theme-provider.tsx +46 -0
- package/src/components/shared/truncated-id.tsx +51 -0
- package/src/components/ui/.gitkeep +0 -0
- package/src/components/ui/__tests__/accordion.test.tsx +96 -0
- package/src/components/ui/__tests__/badge.test.tsx +69 -0
- package/src/components/ui/__tests__/button.test.tsx +113 -0
- package/src/components/ui/__tests__/tabs.test.tsx +75 -0
- package/src/components/ui/__tests__/tooltip.test.tsx +90 -0
- package/src/components/ui/accordion.tsx +61 -0
- package/src/components/ui/badge.tsx +25 -0
- package/src/components/ui/button.tsx +40 -0
- package/src/components/ui/card.tsx +21 -0
- package/src/components/ui/scroll-area.tsx +35 -0
- package/src/components/ui/separator.tsx +24 -0
- package/src/components/ui/tabs.tsx +64 -0
- package/src/components/ui/tooltip.tsx +37 -0
- package/src/hooks/.gitkeep +0 -0
- package/src/hooks/__tests__/use-animated-number.test.ts +184 -0
- package/src/hooks/__tests__/use-batched-updates.test.ts +315 -0
- package/src/hooks/__tests__/use-event-stream.test.ts +243 -0
- package/src/hooks/__tests__/use-keyboard.test.ts +217 -0
- package/src/hooks/__tests__/use-notifications.test.ts +230 -0
- package/src/hooks/__tests__/use-polling.test.ts +274 -0
- package/src/hooks/__tests__/use-project-runs.test.ts +163 -0
- package/src/hooks/__tests__/use-projects.test.ts +248 -0
- package/src/hooks/__tests__/use-run-dashboard.test.ts +168 -0
- package/src/hooks/__tests__/use-run-detail.test.ts +273 -0
- package/src/hooks/__tests__/use-smart-polling.test.ts +305 -0
- package/src/hooks/use-animated-number.ts +87 -0
- package/src/hooks/use-batched-updates.ts +150 -0
- package/src/hooks/use-event-stream.ts +150 -0
- package/src/hooks/use-keyboard.ts +45 -0
- package/src/hooks/use-notifications.ts +82 -0
- package/src/hooks/use-persisted-state.ts +60 -0
- package/src/hooks/use-polling.ts +60 -0
- package/src/hooks/use-project-runs.ts +51 -0
- package/src/hooks/use-projects.ts +26 -0
- package/src/hooks/use-run-dashboard.ts +207 -0
- package/src/hooks/use-run-detail.ts +77 -0
- package/src/hooks/use-smart-polling.ts +144 -0
- package/src/lib/.gitkeep +0 -0
- package/src/lib/__tests__/cn.test.ts +69 -0
- package/src/lib/__tests__/config-loader.test.ts +210 -0
- package/src/lib/__tests__/config.test.ts +561 -0
- package/src/lib/__tests__/error-handler.test.ts +143 -0
- package/src/lib/__tests__/fetcher.test.ts +517 -0
- package/src/lib/__tests__/global-registry.test.ts +214 -0
- package/src/lib/__tests__/parser.test.ts +1532 -0
- package/src/lib/__tests__/path-resolver.test.ts +112 -0
- package/src/lib/__tests__/run-cache.test.ts +591 -0
- package/src/lib/__tests__/server-init.test.ts +512 -0
- package/src/lib/__tests__/source-discovery.test.ts +246 -0
- package/src/lib/__tests__/utils.test.ts +160 -0
- package/src/lib/__tests__/watcher.test.ts +227 -0
- package/src/lib/cn.ts +6 -0
- package/src/lib/config-loader.ts +195 -0
- package/src/lib/config.ts +20 -0
- package/src/lib/error-handler.ts +76 -0
- package/src/lib/fetcher.ts +394 -0
- package/src/lib/global-registry.ts +117 -0
- package/src/lib/parser.ts +794 -0
- package/src/lib/path-resolver.ts +16 -0
- package/src/lib/run-cache.ts +404 -0
- package/src/lib/server-init.ts +226 -0
- package/src/lib/services/__tests__/run-query-service.test.ts +819 -0
- package/src/lib/services/run-query-service.ts +286 -0
- package/src/lib/source-discovery.ts +216 -0
- package/src/lib/utils.ts +103 -0
- package/src/lib/watcher.ts +265 -0
- package/src/test/fixtures.ts +269 -0
- package/src/test/mocks/handlers.ts +110 -0
- package/src/test/mocks/server.ts +17 -0
- package/src/test/setup.ts +200 -0
- package/src/test/test-utils.tsx +36 -0
- package/src/types/.gitkeep +0 -0
- package/src/types/breakpoint.ts +17 -0
- package/src/types/index.ts +214 -0
- package/tsconfig.json +50 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
module.exports=[5050,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={callServer:function(){return f.callServer},createServerReference:function(){return h.createServerReference},findSourceMapURL:function(){return g.findSourceMapURL}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20611),g=a.r(1722),h=a.r(38783)},23252,a=>{"use strict";let b,c,d,e;var f=a.i(87924),g=a.i(72131),h=a.i(50530),i=a.i(37748);let j="observer:",k=g.useEffect;function l(a,b){let c=a.startsWith(j)?a:`${j}${a}`,[d,e]=(0,g.useState)(b);return k(()=>{try{let a=window.localStorage.getItem(c);if(null!==a){let b=JSON.parse(a);e(b)}}catch{}},[c]),[d,(0,g.useCallback)(a=>{e(b=>"function"==typeof a?a(b):a)},[c])]}var m=a.i(38246),n=a.i(77870),o=a.i(57703);let p=(0,o.default)("Hand",[["path",{d:"M18 11V6a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v0",key:"aigmz7"}],["path",{d:"M14 10V4a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v2",key:"1n6bmn"}],["path",{d:"M10 10.5V6a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v8",key:"a9iiix"}],["path",{d:"M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15",key:"1s1gnw"}]]);var q=a.i(72688),r=a.i(99549),s=a.i(46193),t=a.i(35660),u=a.i(5050);let v=(0,u.createServerReference)("701a9493b87b22bd9e0bf63b5617d5bac85338a858",u.callServer,void 0,u.findSourceMapURL,"approveBreakpoint"),w="observer:dismissed-breakpoints";function x({bp:a,stale:b,onDismiss:c}){let[d,e]=(0,g.useTransition)(),[h,i]=(0,g.useState)(null);return h?.ok?(0,f.jsxs)("div",{className:(0,n.cn)("group relative flex items-center gap-3 px-4 py-3 rounded-lg","bg-success-muted border border-success/30"),children:[(0,f.jsx)(r.CheckCircle2,{className:"h-5 w-5 text-success shrink-0"}),(0,f.jsxs)("span",{className:"text-sm text-success font-medium",children:["Approved — ",a.projectName]})]}):(0,f.jsxs)("div",{className:(0,n.cn)("group relative flex items-center gap-3 px-4 py-3 rounded-lg","bg-warning-muted border border-warning/30","shadow-breakpoint-glow animate-breakpoint-glow",b&&"opacity-70"),children:[(0,f.jsxs)(m.default,{href:`/runs/${a.runId}`,className:"flex items-center gap-3 flex-1 min-w-0",children:[(0,f.jsxs)("div",{className:"relative shrink-0",children:[(0,f.jsx)(p,{className:"h-5 w-5 text-warning animate-pulse-dot"}),(0,f.jsx)("span",{className:"absolute -top-0.5 -right-0.5 h-2 w-2 rounded-full bg-warning animate-ping"})]}),(0,f.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2 mb-0.5",children:[(0,f.jsx)(q.AlertTriangle,{className:"h-3 w-3 text-warning shrink-0"}),(0,f.jsx)("span",{className:"text-xs font-bold text-warning uppercase tracking-wider",children:"Approval Needed"}),b&&(0,f.jsx)("span",{className:"text-xs text-foreground-muted italic","data-testid":"staleness-indicator",children:"(checking...)"}),(0,f.jsx)("span",{className:"text-xs text-foreground-muted font-medium",children:a.projectName}),(0,f.jsx)("span",{className:"font-mono text-xs text-info",children:a.runId.slice(0,8)})]}),(0,f.jsx)("p",{className:"text-sm text-foreground truncate",children:a.breakpointQuestion})]})]}),(0,f.jsxs)("button",{onClick:b=>{b.preventDefault(),b.stopPropagation(),e(async()=>{let b=await v(a.runId,a.effectId,"Approved from dashboard");i(b.success?{ok:!0}:{ok:!1,msg:b.error})})},disabled:d||!a.effectId,className:(0,n.cn)("shrink-0 flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs font-semibold","bg-success/20 text-success border border-success/30","hover:bg-success/30 hover:border-success/50","disabled:opacity-50 disabled:cursor-not-allowed","transition-colors"),title:"Approve this breakpoint",children:[(0,f.jsx)(s.Check,{className:"h-3.5 w-3.5"}),d?"Approving...":"Approve"]}),b&&c&&(0,f.jsx)("button",{onClick:a=>{a.preventDefault(),a.stopPropagation(),c()},className:(0,n.cn)("shrink-0 p-1 rounded text-foreground-muted/50","hover:text-foreground-muted hover:bg-foreground-muted/10","transition-colors"),title:"Dismiss this stale breakpoint","data-testid":"dismiss-breakpoint",children:(0,f.jsx)(t.X,{className:"h-3.5 w-3.5"})}),h&&!h.ok&&(0,f.jsx)("span",{className:"text-xs text-error ml-2",children:h.msg})]})}function y({breakpointRuns:a}){let[b,c]=(0,g.useState)([]),d=(0,g.useRef)(new Map),e=(0,g.useRef)(new Map),[h,i]=(0,g.useState)(new Set);(0,g.useLayoutEffect)(()=>{try{let a=localStorage.getItem(w);a&&i(new Set(JSON.parse(a)))}catch{}},[]);let j=(0,g.useCallback)(a=>{i(b=>{let c=new Set(b);c.add(a);try{localStorage.setItem(w,JSON.stringify([...c]))}catch{}return c})},[]);(0,g.useEffect)(()=>{let b=new Set(a.map(a=>a.runId));i(a=>{let c=new Set([...a].filter(a=>b.has(a)));if(c.size!==a.size){try{localStorage.setItem(w,JSON.stringify([...c]))}catch{}return c}return a})},[a]);let[,k]=(0,g.useState)(0);(0,g.useEffect)(()=>{let b=new Set(a.map(a=>a.runId)),f=Date.now(),g=[];for(let[a,c]of d.current)b.has(a)||(g.push({bp:c,resolvedAt:f}),e.current.delete(a));for(let b of(g.length>0&&c(a=>[...a,...g]),a))e.current.has(b.runId)||e.current.set(b.runId,f);d.current=new Map(a.map(a=>[a.runId,a]))},[a]),(0,g.useEffect)(()=>{if(0===a.length)return;let b=setInterval(()=>{k(a=>a+1)},1e4);return()=>clearInterval(b)},[a.length]);let l=(0,g.useCallback)(a=>{let b=e.current.get(a);return!!b&&Date.now()-b>12e4},[]);(0,g.useEffect)(()=>{if(0===b.length)return;let a=setInterval(()=>{let a=Date.now();c(b=>b.filter(b=>a-b.resolvedAt<2e4))},1e3);return()=>clearInterval(a)},[b.length]);let o=a.filter(a=>!h.has(a.runId)),q=o.length>0,s=b.length>0;return q||s?(0,f.jsxs)("div",{role:"alert","aria-live":"assertive","aria-atomic":"true",className:"flex flex-col gap-2 mb-6","data-testid":"breakpoint-banner",children:[o.map(a=>{let b=l(a.runId);return(0,f.jsx)(x,{bp:a,stale:b,onDismiss:()=>j(a.runId)},a.runId)}),b.map(a=>(0,f.jsxs)(m.default,{href:`/runs/${a.bp.runId}`,className:(0,n.cn)("group relative flex items-center gap-3 px-4 py-3 rounded-lg","bg-success-muted border border-success/30","shadow-glow-success","hover:border-success/50","transition-colors cursor-pointer"),children:[(0,f.jsx)("div",{className:"relative shrink-0",children:(0,f.jsx)(r.CheckCircle2,{className:"h-5 w-5 text-success"})}),(0,f.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2 mb-0.5",children:[(0,f.jsx)(r.CheckCircle2,{className:"h-3 w-3 text-success shrink-0"}),(0,f.jsx)("span",{className:"text-xs font-bold text-success uppercase tracking-wider",children:"Approved"}),(0,f.jsx)("span",{className:"text-xs text-foreground-muted font-medium",children:a.bp.projectName}),(0,f.jsx)("span",{className:"font-mono text-xs text-info",children:a.bp.runId.slice(0,8)})]}),(0,f.jsx)("p",{className:"text-sm text-foreground-muted truncate",children:a.bp.breakpointQuestion})]})]},`resolved-${a.bp.runId}`)),o.length>1&&(0,f.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1",children:[(0,f.jsx)(p,{className:"h-3.5 w-3.5 text-warning"}),(0,f.jsxs)("span",{className:"text-xs font-semibold text-warning",children:[o.length," approvals pending"]})]})]}):null}var z=a.i(41749);let A=(0,o.default)("Inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]);function B({catchUp:a,summary:b}){if(!a.active)return null;let c=function(a){if(!a)return null;let b=[];return(a.failedRuns>0&&b.push(`${a.failedRuns} failed`),a.pendingBreakpoints>0&&b.push(`${a.pendingBreakpoints} awaiting input`),a.completedRuns>0&&b.push(`${a.completedRuns} completed`),0===b.length)?null:b.join(", ")}(b);return(0,f.jsxs)("div",{"data-testid":"catch-up-banner",className:(0,n.cn)("flex items-center gap-3 px-4 py-2.5 mb-4 rounded-lg","bg-info-muted border border-info/20","animate-in fade-in slide-in-from-top-2 duration-300"),children:[(0,f.jsx)("div",{className:"rounded-md p-1.5 bg-info/10",children:(0,f.jsx)(A,{className:"h-4 w-4 text-info"})}),(0,f.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,f.jsxs)("p",{className:"text-sm text-foreground",children:[(0,f.jsx)("span",{className:"font-semibold tabular-nums",children:a.bufferedCount})," ","runs updated while you were away"]}),c&&(0,f.jsx)("p",{"data-testid":"catch-up-summary",className:"text-xs text-foreground-muted mt-0.5 truncate",children:c})]}),(0,f.jsxs)("button",{onClick:a.flush,"data-testid":"catch-up-refresh-btn",className:(0,n.cn)("inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md text-xs font-semibold","bg-info/10 border border-info/20 text-info","hover:bg-info/20 transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-info/50"),children:[(0,f.jsx)(z.RefreshCw,{className:"h-3 w-3"}),"Refresh now"]})]})}var C=a.i(33313);let D={healthy:{container:"border-success/25 bg-success-muted shadow-neon-glow-success-sm",text:"text-success",iconColor:"text-success"},amber:{container:"border-warning/25 bg-warning-muted shadow-neon-glow-warning-sm",text:"text-warning",iconColor:"text-warning"},red:{container:"border-error/25 bg-error-muted shadow-neon-glow-error-sm",text:"text-error",iconColor:"text-error"}};function E({metrics:a,onFilterChange:b,dismissed:c,onDismiss:d}){let e=(0,g.useMemo)(()=>(function(a){let b=[],c="healthy";if(a.failedRuns>0&&(b.push({text:`${a.failedRuns} run${1!==a.failedRuns?"s":""} failing`,filter:"failed"}),c="red"),a.pendingBreakpoints>0&&(b.push({text:`${a.pendingBreakpoints} approval${1!==a.pendingBreakpoints?"s":""} need${1===a.pendingBreakpoints?"s":""} your attention`,filter:"waiting"}),"red"!==c&&(c="amber")),a.staleRuns>0&&(b.push({text:`${a.staleRuns} stale run${1!==a.staleRuns?"s":""}`,filter:"stale"}),"red"!==c&&(c="amber")),0===b.length){let b=1===a.totalProjects?"project":"projects";return{severity:"healthy",issues:[{text:a.activeRuns>0?`All ${a.totalProjects} ${b} healthy \u2014 ${a.activeRuns} run${1!==a.activeRuns?"s":""} in progress`:`All ${a.totalProjects} ${b} healthy`,filter:null}],icon:(0,f.jsx)(r.CheckCircle2,{className:"h-4 w-4 shrink-0","aria-hidden":"true"})}}let d="red"===c?(0,f.jsx)(C.XCircle,{className:"h-4 w-4 shrink-0","aria-hidden":"true"}):(0,f.jsx)(q.AlertTriangle,{className:"h-4 w-4 shrink-0","aria-hidden":"true"});return{severity:c,issues:b,icon:d}})(a),[a]),h=D[e.severity];return c?null:(0,f.jsxs)("div",{role:"status","aria-live":"polite","aria-atomic":"true","data-testid":"executive-summary-banner",className:(0,n.cn)("flex items-center gap-2.5 rounded-xl border px-4 py-3 mb-6 shadow-sm transition-all duration-300",h.container),children:[(0,f.jsx)("span",{className:h.iconColor,children:e.icon}),(0,f.jsx)("p",{className:(0,n.cn)("text-sm font-medium leading-snug flex-1",h.text),children:e.issues.map((a,c)=>(0,f.jsxs)("span",{children:[c>0&&", ",a.filter&&b?(0,f.jsx)("button",{onClick:()=>b(a.filter),className:"underline decoration-dotted underline-offset-2 hover:decoration-solid transition-all",children:a.text}):a.text]},c))}),"healthy"!==e.severity&&d&&(0,f.jsx)("button",{"data-testid":"executive-summary-dismiss",onClick:d,className:(0,n.cn)("rounded-md p-1.5 min-h-[44px] min-w-[44px] flex items-center justify-center transition-colors",h.iconColor,"opacity-60 hover:opacity-100"),"aria-label":"Dismiss banner",children:(0,f.jsx)(t.X,{className:"h-3.5 w-3.5"})})]})}let F=(0,o.default)("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:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]),G=(0,o.default)("Activity",[["path",{d:"M22 12h-4l-3 9L9 3l-3 9H2",key:"d5dnw9"}]]),H=(0,o.default)("AlertCircle",[["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"}]]);var I=a.i(70622);let J={primary:{text:"text-primary",bg:"bg-primary/10",glow:"shadow-neon-glow-primary-xs",borderL:"",ring:"ring-primary/50"},success:{text:"text-success",bg:"bg-success/10",glow:"shadow-neon-glow-success-sm",borderL:"border-l-success/60",ring:"ring-success/50"},warning:{text:"text-warning",bg:"bg-warning/10",glow:"shadow-neon-glow-warning-sm",borderL:"border-l-warning/60",ring:"ring-warning/50"},error:{text:"text-error",bg:"bg-error/10",glow:"shadow-neon-glow-error-sm",borderL:"border-l-error/60",ring:"ring-error/50"},muted:{text:"text-zinc-500",bg:"bg-zinc-500/10",glow:"",borderL:"border-l-zinc-500/60",ring:"ring-zinc-500/50"}};function K({label:a,value:b,icon:c,color:d,pulse:e,testId:h,active:i,onClick:j}){let k=J[d],l=!!j,m=function(a,b=600){let[c,d]=(0,g.useState)(a),e=(0,g.useRef)(null),f=(0,g.useRef)(null),h=(0,g.useRef)(a),i=(0,g.useRef)(a),j=(0,g.useCallback)(a=>1-Math.pow(1-a,3),[]);return(0,g.useEffect)(()=>{let c=h.current;if(h.current=a,c===a)return;null!==e.current&&(cancelAnimationFrame(e.current),e.current=null);let g=i.current,k=a-g;if(0===k||2>=Math.abs(k)){d(a),i.current=a;return}let l=performance.now();return f.current={value:g,time:l},e.current=requestAnimationFrame(function c(f){let h=Math.min((f-l)/b,1),m=Math.round(g+k*j(h));i.current=m,d(m),h<1?e.current=requestAnimationFrame(c):(e.current=null,i.current=a,d(a))}),()=>{null!==e.current&&(cancelAnimationFrame(e.current),e.current=null)}},[a,b,j]),c}(b);return(0,f.jsxs)("div",{"data-testid":h,role:l?"button":void 0,"aria-pressed":l?!!i:void 0,tabIndex:l?0:void 0,onClick:j,onKeyDown:l?a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),j?.())}:void 0,className:(0,n.cn)("rounded-xl border border-border bg-card/90 p-3 flex items-center gap-3 transition-all shadow-sm",b>0&&"primary"!==d&&"border-l-2",b>0&&"primary"!==d&&k.borderL,k.glow,l&&"cursor-pointer hover:bg-background-secondary/65 hover:shadow-md",i&&"ring-2",i&&k.ring),children:[(0,f.jsx)("div",{className:(0,n.cn)("rounded-md p-2",k.bg),children:(0,f.jsx)("span",{className:(0,n.cn)(k.text,e&&"animate-pulse-dot"),children:c})}),(0,f.jsxs)("div",{children:[(0,f.jsx)("p",{className:(0,n.cn)("text-lg font-bold tabular-nums leading-none mb-0.5",k.text),children:m}),(0,f.jsx)("p",{className:"text-[11px] leading-tight text-foreground-muted uppercase tracking-[0.12em] font-medium",children:a})]})]})}function L({metrics:a,statusFilter:b,hasStaleRuns:c,onToggleFilter:d}){return(0,f.jsxs)("div",{"data-testid":"kpi-grid","aria-live":"polite","aria-label":"Key metrics",className:(0,n.cn)("grid gap-3 mb-6",c?"grid-cols-2 sm:grid-cols-5":"grid-cols-2 sm:grid-cols-4"),children:[(0,f.jsx)(K,{label:"Total Runs",value:a.totalRuns,icon:(0,f.jsx)(F,{className:"h-4 w-4"}),color:"primary",testId:"metric-tile-total-runs",onClick:()=>d("all"),active:"all"===b}),(0,f.jsx)(K,{label:"In Progress",value:a.activeRuns,icon:(0,f.jsx)(G,{className:"h-4 w-4"}),color:"warning",pulse:a.activeRuns>0,testId:"metric-tile-active",onClick:()=>d("waiting"),active:"waiting"===b}),c&&(0,f.jsx)(K,{label:"Stale",value:a.staleRuns,icon:(0,f.jsx)(I.Pause,{className:"h-4 w-4"}),color:"muted",testId:"metric-tile-stale",onClick:()=>d("stale"),active:"stale"===b}),(0,f.jsx)(K,{label:"Completed",value:a.completedRuns,icon:(0,f.jsx)(r.CheckCircle2,{className:"h-4 w-4"}),color:"success",testId:"metric-tile-completed",onClick:()=>d("completed"),active:"completed"===b}),(0,f.jsx)(K,{label:"Failed",value:a.failedRuns,icon:(0,f.jsx)(H,{className:"h-4 w-4"}),color:"error",testId:"metric-tile-failed",onClick:()=>d("failed"),active:"failed"===b})]})}let M=(0,o.default)("ArrowUpDown",[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]]);var N=a.i(31141);let O=[{label:"All",value:"all"},{label:"Running",value:"waiting"},{label:"Stale",value:"stale"},{label:"Completed",value:"completed"},{label:"Failed",value:"failed"}];function P({statusFilter:a,onStatusFilterChange:b,filterCounts:c,sortMode:d,onSortModeToggle:e,filteredProjectCount:g}){return(0,f.jsx)("div",{className:"mb-5",children:(0,f.jsxs)("div",{"data-testid":"filter-bar",className:"flex items-center gap-1",children:[O.map(d=>{let e=c[d.value]??0;return"stale"===d.value&&0===e?null:(0,f.jsxs)("button",{"data-testid":`filter-pill-${d.value}`,"aria-pressed":a===d.value,onClick:()=>b(d.value),className:(0,n.cn)("rounded-md px-3 py-1.5 min-h-[44px] text-xs font-medium transition-all inline-flex items-center gap-1.5",a===d.value?"stale"===d.value?"bg-zinc-500/10 text-zinc-500":"bg-primary/10 text-primary shadow-neon-glow-primary-xs":"text-foreground-muted hover:text-foreground-secondary hover:bg-background-secondary"),children:[d.label,e>0&&(0,f.jsx)("span",{className:(0,n.cn)("rounded-full px-1.5 py-px text-xs leading-tight font-semibold tabular-nums",a===d.value?"stale"===d.value?"bg-zinc-500/20 text-zinc-500":"bg-primary/20 text-primary":"bg-background-secondary text-foreground-muted"),children:e})]},d.value)}),(0,f.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,f.jsxs)("button",{"data-testid":"sort-toggle",onClick:e,className:(0,n.cn)("rounded-md px-2.5 py-1.5 min-h-[44px] text-xs font-medium inline-flex items-center gap-1.5","transition-all duration-200 ease-in-out","status"===d?"bg-warning/10 border border-warning/30 text-warning hover:bg-warning/15 hover:border-warning/40 shadow-sm":"bg-primary/10 border border-primary/30 text-primary hover:bg-primary/15 hover:border-primary/40 shadow-sm"),title:"status"===d?"Currently sorting by status priority (active first, then failed, then completed). Click to switch to chronological activity view.":"Currently sorting by most recent activity (newest updates first). Click to switch to status-grouped view.",children:["status"===d?(0,f.jsx)(M,{className:"h-3 w-3 transition-transform duration-200"}):(0,f.jsx)(N.Clock,{className:"h-3 w-3 transition-transform duration-200"}),"status"===d?"By Status":"By Activity"]}),(0,f.jsxs)("span",{"data-testid":"project-count",className:"text-xs text-foreground-muted tabular-nums",children:[g," project",1!==g?"s":""]})]})]})})}var Q=a.i(2468),R=a.i(10169);let S=(0,o.default)("History",[["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"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]),T=(0,o.default)("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]),U=(0,o.default)("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);var V=a.i(43138);function W({className:a,...b}){return(0,f.jsx)("div",{className:(0,n.cn)("rounded-xl border border-card-border bg-card text-card-foreground shadow-sm transition-all duration-200 hover:bg-[var(--card-hover)] hover:border-[var(--border-hover)] hover:shadow-md",a),...b})}var X=a.i(98621);let Y=a=>"boolean"==typeof a?`${a}`:0===a?"0":a,Z=X.clsx,$=(c="inline-flex items-center rounded-full px-2.5 py-1 text-[11px] font-medium uppercase tracking-[0.08em] ring-1 ring-inset transition-all duration-200",d={variants:{variant:{default:"bg-muted text-foreground-secondary ring-border",success:"bg-success-muted text-success ring-success/20 shadow-neon-glow-success-sm",error:"bg-error-muted text-error ring-error/20 shadow-neon-glow-error-sm",warning:"bg-warning-muted text-warning ring-warning/20 shadow-neon-glow-warning-badge",info:"bg-info-muted text-info ring-info/20 shadow-neon-glow-cyan-sm",pending:"bg-pending-muted text-pending ring-pending/20"}},defaultVariants:{variant:"default"}},a=>{var b;if((null==d?void 0:d.variants)==null)return Z(c,null==a?void 0:a.class,null==a?void 0:a.className);let{variants:e,defaultVariants:f}=d,g=Object.keys(e).map(b=>{let c=null==a?void 0:a[b],d=null==f?void 0:f[b];if(null===c)return null;let g=Y(c)||Y(d);return e[b][g]}),h=a&&Object.entries(a).reduce((a,b)=>{let[c,d]=b;return void 0===d||(a[c]=d),a},{});return Z(c,g,null==d||null==(b=d.compoundVariants)?void 0:b.reduce((a,b)=>{let{class:c,className:d,...e}=b;return Object.entries(e).every(a=>{let[b,c]=a;return Array.isArray(c)?c.includes({...f,...h}[b]):({...f,...h})[b]===c})?[...a,c,d]:a},[]),null==a?void 0:a.class,null==a?void 0:a.className)});function _({className:a,variant:b,...c}){return(0,f.jsx)("span",{className:(0,n.cn)($({variant:b}),a),...c})}var aa=a.i(77317);let ab=(0,o.default)("Circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),ac="h-3.5 w-3.5",ad={completed:{variant:"success",icon:(0,f.jsx)(r.CheckCircle2,{className:(0,n.cn)(ac,"drop-shadow-[var(--drop-glow-success)]")}),label:"Completed",extraClass:"ring-success/30 shadow-neon-glow-success-sm"},resolved:{variant:"success",icon:(0,f.jsx)(r.CheckCircle2,{className:(0,n.cn)(ac,"drop-shadow-[var(--drop-glow-success)]")}),label:"Done",extraClass:"ring-success/30 shadow-neon-glow-success-sm"},ok:{variant:"success",icon:(0,f.jsx)(r.CheckCircle2,{className:(0,n.cn)(ac,"drop-shadow-[var(--drop-glow-success)]")}),label:"OK",extraClass:"ring-success/30 shadow-neon-glow-success-sm"},failed:{variant:"error",icon:(0,f.jsx)(C.XCircle,{className:(0,n.cn)(ac,"drop-shadow-[var(--drop-glow-error)]")}),label:"Failed",extraClass:"ring-error/30 shadow-neon-glow-error-sm"},error:{variant:"error",icon:(0,f.jsx)(C.XCircle,{className:(0,n.cn)(ac,"drop-shadow-[var(--drop-glow-error)]")}),label:"Error",extraClass:"ring-error/30 shadow-neon-glow-error-sm"},waiting:{variant:"warning",icon:(0,f.jsx)(N.Clock,{className:(0,n.cn)(ac,"drop-shadow-[var(--drop-glow-warning)]")}),label:"Waiting",extraClass:"ring-warning/30 shadow-neon-glow-warning-sm"},waiting_breakpoint:{variant:"warning",icon:(0,f.jsx)(p,{className:(0,n.cn)(ac,"animate-pulse drop-shadow-[var(--drop-glow-warning)]")}),label:"Approval Needed",extraClass:"ring-warning/40 animate-breakpoint-glow"},waiting_task:{variant:"info",icon:(0,f.jsx)(aa.Loader2,{className:(0,n.cn)(ac,"animate-spin drop-shadow-[var(--drop-glow-cyan)]")}),label:"Working",extraClass:"ring-info/30 shadow-neon-glow-cyan-sm"},breakpoint_awaiting:{variant:"warning",icon:(0,f.jsx)(p,{className:(0,n.cn)(ac,"animate-pulse drop-shadow-[var(--drop-glow-warning)]")}),label:"Needs Approval",extraClass:"ring-warning/40 animate-breakpoint-glow"},requested:{variant:"info",icon:(0,f.jsx)(aa.Loader2,{className:(0,n.cn)(ac,"animate-spin drop-shadow-[var(--drop-glow-cyan)]")}),label:"Running",extraClass:"ring-info/30 shadow-neon-glow-cyan-sm"},pending:{variant:"pending",icon:(0,f.jsx)(ab,{className:ac}),label:"Pending"}};function ae({status:a,className:b,waitingKind:c,isStale:d}){let e=ad[a]||ad.pending;return"waiting"===a&&c&&(e=ad[`waiting_${c}`]||e),(0,f.jsxs)(_,{"data-testid":`status-badge-${a}`,variant:d?"default":e.variant,className:(0,n.cn)("gap-1",d?"opacity-60 text-zinc-500 ring-zinc-500/20 bg-zinc-500/10 shadow-none":e.extraClass,b),children:[e.icon,d&&("pending"===a||"waiting"===a&&!c)?"Interrupted":e.label]})}var af=a.i(97313),ag=a.i(7554),ah=a.i(70121),ai=a.i(50104),aj=a.i(96743),ak=a.i(92843);let al=["top","right","bottom","left"],am=Math.min,an=Math.max,ao=Math.round,ap=Math.floor,aq=a=>({x:a,y:a}),ar={left:"right",right:"left",bottom:"top",top:"bottom"};function as(a,b){return"function"==typeof a?a(b):a}function at(a){return a.split("-")[0]}function au(a){return a.split("-")[1]}function av(a){return"x"===a?"y":"x"}function aw(a){return"y"===a?"height":"width"}function ax(a){let b=a[0];return"t"===b||"b"===b?"y":"x"}function ay(a){return a.includes("start")?a.replace("start","end"):a.replace("end","start")}let az=["left","right"],aA=["right","left"],aB=["top","bottom"],aC=["bottom","top"];function aD(a){let b=at(a);return ar[b]+a.slice(b.length)}function aE(a){return"number"!=typeof a?{top:0,right:0,bottom:0,left:0,...a}:{top:a,right:a,bottom:a,left:a}}function aF(a){let{x:b,y:c,width:d,height:e}=a;return{width:d,height:e,top:c,left:b,right:b+d,bottom:c+e,x:b,y:c}}function aG(a,b,c){let d,{reference:e,floating:f}=a,g=ax(b),h=av(ax(b)),i=aw(h),j=at(b),k="y"===g,l=e.x+e.width/2-f.width/2,m=e.y+e.height/2-f.height/2,n=e[i]/2-f[i]/2;switch(j){case"top":d={x:l,y:e.y-f.height};break;case"bottom":d={x:l,y:e.y+e.height};break;case"right":d={x:e.x+e.width,y:m};break;case"left":d={x:e.x-f.width,y:m};break;default:d={x:e.x,y:e.y}}switch(au(b)){case"start":d[h]-=n*(c&&k?-1:1);break;case"end":d[h]+=n*(c&&k?-1:1)}return d}async function aH(a,b){var c;void 0===b&&(b={});let{x:d,y:e,platform:f,rects:g,elements:h,strategy:i}=a,{boundary:j="clippingAncestors",rootBoundary:k="viewport",elementContext:l="floating",altBoundary:m=!1,padding:n=0}=as(b,a),o=aE(n),p=h[m?"floating"===l?"reference":"floating":l],q=aF(await f.getClippingRect({element:null==(c=await (null==f.isElement?void 0:f.isElement(p)))||c?p:p.contextElement||await (null==f.getDocumentElement?void 0:f.getDocumentElement(h.floating)),boundary:j,rootBoundary:k,strategy:i})),r="floating"===l?{x:d,y:e,width:g.floating.width,height:g.floating.height}:g.reference,s=await (null==f.getOffsetParent?void 0:f.getOffsetParent(h.floating)),t=await (null==f.isElement?void 0:f.isElement(s))&&await (null==f.getScale?void 0:f.getScale(s))||{x:1,y:1},u=aF(f.convertOffsetParentRelativeRectToViewportRelativeRect?await f.convertOffsetParentRelativeRectToViewportRelativeRect({elements:h,rect:r,offsetParent:s,strategy:i}):r);return{top:(q.top-u.top+o.top)/t.y,bottom:(u.bottom-q.bottom+o.bottom)/t.y,left:(q.left-u.left+o.left)/t.x,right:(u.right-q.right+o.right)/t.x}}let aI=async(a,b,c)=>{let{placement:d="bottom",strategy:e="absolute",middleware:f=[],platform:g}=c,h=g.detectOverflow?g:{...g,detectOverflow:aH},i=await (null==g.isRTL?void 0:g.isRTL(b)),j=await g.getElementRects({reference:a,floating:b,strategy:e}),{x:k,y:l}=aG(j,d,i),m=d,n=0,o={};for(let c=0;c<f.length;c++){let p=f[c];if(!p)continue;let{name:q,fn:r}=p,{x:s,y:t,data:u,reset:v}=await r({x:k,y:l,initialPlacement:d,placement:m,strategy:e,middlewareData:o,rects:j,platform:h,elements:{reference:a,floating:b}});k=null!=s?s:k,l=null!=t?t:l,o[q]={...o[q],...u},v&&n<50&&(n++,"object"==typeof v&&(v.placement&&(m=v.placement),v.rects&&(j=!0===v.rects?await g.getElementRects({reference:a,floating:b,strategy:e}):v.rects),{x:k,y:l}=aG(j,m,i)),c=-1)}return{x:k,y:l,placement:m,strategy:e,middlewareData:o}};function aJ(a,b){return{top:a.top-b.height,right:a.right-b.width,bottom:a.bottom-b.height,left:a.left-b.width}}function aK(a){return al.some(b=>a[b]>=0)}let aL=new Set(["left","top"]);async function aM(a,b){let{placement:c,platform:d,elements:e}=a,f=await (null==d.isRTL?void 0:d.isRTL(e.floating)),g=at(c),h=au(c),i="y"===ax(c),j=aL.has(g)?-1:1,k=f&&i?-1:1,l=as(b,a),{mainAxis:m,crossAxis:n,alignmentAxis:o}="number"==typeof l?{mainAxis:l,crossAxis:0,alignmentAxis:null}:{mainAxis:l.mainAxis||0,crossAxis:l.crossAxis||0,alignmentAxis:l.alignmentAxis};return h&&"number"==typeof o&&(n="end"===h?-1*o:o),i?{x:n*k,y:m*j}:{x:m*j,y:n*k}}function aN(a){return function(a){return!1}(a)?(a.nodeName||"").toLowerCase():"#document"}function aO(a){var b;return(null==a||null==(b=a.ownerDocument)?void 0:b.defaultView)||window}function aP(a){var b;return null==(b=(function(a){return!1}(a)?a.ownerDocument:a.document)||window.document)?void 0:b.documentElement}function aQ(a){return!1}function aR(a){let{overflow:b,overflowX:c,overflowY:d,display:e}=aZ(a);return/auto|scroll|overlay|hidden|clip/.test(b+d+c)&&"inline"!==e&&"contents"!==e}function aS(a){try{if(a.matches(":popover-open"))return!0}catch(a){}try{return a.matches(":modal")}catch(a){return!1}}let aT=/transform|translate|scale|rotate|perspective|filter/,aU=/paint|layout|strict|content/,aV=a=>!!a&&"none"!==a;function aW(a){let b=a;return aV(b.transform)||aV(b.translate)||aV(b.scale)||aV(b.rotate)||aV(b.perspective)||!aX()&&(aV(b.backdropFilter)||aV(b.filter))||aT.test(b.willChange||"")||aU.test(b.contain||"")}function aX(){return null==b&&(b="u">typeof CSS&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),b}function aY(a){return/^(html|body|#document)$/.test(aN(a))}function aZ(a){return aO(a).getComputedStyle(a)}function a$(a){return{scrollLeft:a.scrollX,scrollTop:a.scrollY}}function a_(a){if("html"===aN(a))return a;let b=a.assignedSlot||a.parentNode||aP(a);return b}function a0(a,b,c){var d;void 0===b&&(b=[]),void 0===c&&(c=!0);let e=function a(b){let c=a_(b);return aY(c)?b.ownerDocument?b.ownerDocument.body:b.body:a(c)}(a),f=e===(null==(d=a.ownerDocument)?void 0:d.body),g=aO(e);if(!f)return b.concat(e,a0(e,[],c));{let a=a1(g);return b.concat(g,g.visualViewport||[],aR(e)?e:[],a&&c?a0(a):[])}}function a1(a){return a.parent&&Object.getPrototypeOf(a.parent)?a.frameElement:null}function a2(a){let b=aZ(a),c=parseFloat(b.width)||0,d=parseFloat(b.height)||0,e=c,f=d,g=ao(c)!==e||ao(d)!==f;return g&&(c=e,d=f),{width:c,height:d,$:g}}function a3(a){return 0,a.contextElement}function a4(a){let b=a3(a);1;return aq(1)}let a5=aq(0);function a6(a){let b=aO(a);return aX()&&b.visualViewport?{x:b.visualViewport.offsetLeft,y:b.visualViewport.offsetTop}:a5}function a7(a,b,c,d){var e;void 0===b&&(b=!1),void 0===c&&(c=!1);let f=a.getBoundingClientRect(),g=a3(a),h=aq(1);b&&(d||(h=a4(a)));let i=(void 0===(e=c)&&(e=!1),d&&(!e||d===aO(g))&&e)?a6(g):aq(0),j=(f.left+i.x)/h.x,k=(f.top+i.y)/h.y,l=f.width/h.x,m=f.height/h.y;if(g){let a=aO(g),b=d,c=a,e=a1(c);for(;e&&d&&b!==c;){let a=a4(e),b=e.getBoundingClientRect(),d=aZ(e),f=b.left+(e.clientLeft+parseFloat(d.paddingLeft))*a.x,g=b.top+(e.clientTop+parseFloat(d.paddingTop))*a.y;j*=a.x,k*=a.y,l*=a.x,m*=a.y,j+=f,k+=g,e=a1(c=aO(e))}}return aF({width:l,height:m,x:j,y:k})}function a8(a,b){let c=a$(a).scrollLeft;return b?b.left+c:a7(aP(a)).left+c}function a9(a,b){let c=a.getBoundingClientRect();return{x:c.left+b.scrollLeft-a8(a,c),y:c.top+b.scrollTop}}function ba(a,b,c){var d;let e;if("viewport"===b)e=function(a,b){let c=aO(a),d=aP(a),e=c.visualViewport,f=d.clientWidth,g=d.clientHeight,h=0,i=0;if(e){f=e.width,g=e.height;let a=aX();(!a||a&&"fixed"===b)&&(h=e.offsetLeft,i=e.offsetTop)}let j=a8(d);if(j<=0){let a=d.ownerDocument,b=a.body,c=getComputedStyle(b),e="CSS1Compat"===a.compatMode&&parseFloat(c.marginLeft)+parseFloat(c.marginRight)||0,g=Math.abs(d.clientWidth-b.clientWidth-e);g<=25&&(f-=g)}else j<=25&&(f+=j);return{width:f,height:g,x:h,y:i}}(a,c);else if("document"===b){let b,c,f,g,h,i,j;d=aP(a),b=aP(d),c=a$(d),f=d.ownerDocument.body,g=an(b.scrollWidth,b.clientWidth,f.scrollWidth,f.clientWidth),h=an(b.scrollHeight,b.clientHeight,f.scrollHeight,f.clientHeight),i=-c.scrollLeft+a8(d),j=-c.scrollTop,"rtl"===aZ(f).direction&&(i+=an(b.clientWidth,f.clientWidth)-g),e={width:g,height:h,x:i,y:j}}else if(1){let c=a6(a);e={x:b.x-c.x,y:b.y-c.y,width:b.width,height:b.height}}else{let a,d,f,g,h,i;d=(a=a7(b,!0,"fixed"===c)).top+b.clientTop,f=a.left+b.clientLeft,g=aq(1),h=b.clientWidth*g.x,i=b.clientHeight*g.y,e={width:h,height:i,x:f*g.x,y:d*g.y}}return aF(e)}function bb(a){return"static"===aZ(a).position}function bc(a,b){1;return null}function bd(a,b){var c;let d=aO(a);if(aS(a))return d;1;{let b=a_(a);for(;b&&!aY(b);){0;b=a_(b)}return d}}let be=async function(a){let b=this.getOffsetParent||bd,c=this.getDimensions,d=await c(a.floating);return{reference:function(a,b,c){let d=aP(b),e="fixed"===c,f=a7(a,!0,e,b),g={scrollLeft:0,scrollTop:0},h=aq(0);if(!e)if(("body"!==aN(b)||aR(d))&&(g=a$(b)),1)d&&(h.x=a8(d));else{let a=a7(b,!0,e,b);h.x=a.x+b.clientLeft,h.y=a.y+b.clientTop}e&&d&&(h.x=a8(d));let i=!d||e?aq(0):a9(d,g);return{x:f.left+g.scrollLeft-h.x-i.x,y:f.top+g.scrollTop-h.y-i.y,width:f.width,height:f.height}}(a.reference,await b(a.floating),a.strategy),floating:{x:0,y:0,width:d.width,height:d.height}}},bf={convertOffsetParentRelativeRectToViewportRelativeRect:function(a){let{elements:b,rect:c,offsetParent:d,strategy:e}=a,f="fixed"===e,g=aP(d),h=!!b&&aS(b.floating);if(d===g||h&&f)return c;let i={scrollLeft:0,scrollTop:0},j=aq(1),k=aq(0);!f&&(("body"!==aN(d)||aR(g))&&(i=a$(d)),0);let l=!g||f?aq(0):a9(g,i);return{width:c.width*j.x,height:c.height*j.y,x:c.x*j.x-i.scrollLeft*j.x+k.x+l.x,y:c.y*j.y-i.scrollTop*j.y+k.y+l.y}},getDocumentElement:aP,getClippingRect:function(a){let{element:b,boundary:c,rootBoundary:d,strategy:e}=a,f=[..."clippingAncestors"===c?aS(b)?[]:function(a,b){let c=b.get(a);if(c)return c;let d=a0(a,[],!1).filter(a=>!1),e="fixed"===aZ(a).position,f=e?a_(a):a;return b.set(a,d),d}(b,this._c):[].concat(c),d],g=ba(b,f[0],e),h=g.top,i=g.right,j=g.bottom,k=g.left;for(let a=1;a<f.length;a++){let c=ba(b,f[a],e);h=an(c.top,h),i=am(c.right,i),j=am(c.bottom,j),k=an(c.left,k)}return{width:i-k,height:j-h,x:k,y:h}},getOffsetParent:bd,getElementRects:be,getClientRects:function(a){return Array.from(a.getClientRects())},getDimensions:function(a){let{width:b,height:c}=a2(a);return{width:b,height:c}},getScale:a4,isElement:aQ,isRTL:function(a){return"rtl"===aZ(a).direction}};function bg(a,b){return a.x===b.x&&a.y===b.y&&a.width===b.width&&a.height===b.height}let bh=a=>({name:"arrow",options:a,async fn(b){let{x:c,y:d,placement:e,rects:f,platform:g,elements:h,middlewareData:i}=b,{element:j,padding:k=0}=as(a,b)||{};if(null==j)return{};let l=aE(k),m={x:c,y:d},n=av(ax(e)),o=aw(n),p=await g.getDimensions(j),q="y"===n,r=q?"clientHeight":"clientWidth",s=f.reference[o]+f.reference[n]-m[n]-f.floating[o],t=m[n]-f.reference[n],u=await (null==g.getOffsetParent?void 0:g.getOffsetParent(j)),v=u?u[r]:0;v&&await (null==g.isElement?void 0:g.isElement(u))||(v=h.floating[r]||f.floating[o]);let w=v/2-p[o]/2-1,x=am(l[q?"top":"left"],w),y=am(l[q?"bottom":"right"],w),z=v-p[o]-y,A=v/2-p[o]/2+(s/2-t/2),B=an(x,am(A,z)),C=!i.arrow&&null!=au(e)&&A!==B&&f.reference[o]/2-(A<x?x:y)-p[o]/2<0,D=C?A<x?A-x:A-z:0;return{[n]:m[n]+D,data:{[n]:B,centerOffset:A-B-D,...C&&{alignmentOffset:D}},reset:C}}});var bi=a.i(35112),bj="u">typeof document?g.useLayoutEffect:function(){};function bk(a,b){let c,d,e;if(a===b)return!0;if(typeof a!=typeof b)return!1;if("function"==typeof a&&a.toString()===b.toString())return!0;if(a&&b&&"object"==typeof a){if(Array.isArray(a)){if((c=a.length)!==b.length)return!1;for(d=c;0!=d--;)if(!bk(a[d],b[d]))return!1;return!0}if((c=(e=Object.keys(a)).length)!==Object.keys(b).length)return!1;for(d=c;0!=d--;)if(!({}).hasOwnProperty.call(b,e[d]))return!1;for(d=c;0!=d--;){let c=e[d];if(("_owner"!==c||!a.$$typeof)&&!bk(a[c],b[c]))return!1}return!0}return a!=a&&b!=b}function bl(a,b){return Math.round(+b)/1}function bm(a){let b=g.useRef(a);return bj(()=>{b.current=a}),b}var bn=a.i(30553),bo=g.forwardRef((a,b)=>{let{children:c,width:d=10,height:e=5,...g}=a;return(0,f.jsx)(bn.Primitive.svg,{...g,ref:b,width:d,height:e,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:a.asChild?c:(0,f.jsx)("polygon",{points:"0,0 30,0 15,10"})})});bo.displayName="Arrow";var bp=a.i(46872),bq=a.i(72752),br="Popper",[bs,bt]=(0,ai.createContextScope)(br),[bu,bv]=bs(br),bw=a=>{let{__scopePopper:b,children:c}=a,[d,e]=g.useState(null);return(0,f.jsx)(bu,{scope:b,anchor:d,onAnchorChange:e,children:c})};bw.displayName=br;var bx="PopperAnchor",by=g.forwardRef((a,b)=>{let{__scopePopper:c,virtualRef:d,...e}=a,h=bv(bx,c),i=g.useRef(null),j=(0,ah.useComposedRefs)(b,i),k=g.useRef(null);return g.useEffect(()=>{let a=k.current;k.current=d?.current||i.current,a!==k.current&&h.onAnchorChange(k.current)}),d?null:(0,f.jsx)(bn.Primitive.div,{...e,ref:j})});by.displayName=bx;var bz="PopperContent",[bA,bB]=bs(bz),bC=g.forwardRef((a,b)=>{var c,d,e,h,i,j,k,l,m,n,o,p,q;let r,s,t,u,v,w,{__scopePopper:x,side:y="bottom",sideOffset:z=0,align:A="center",alignOffset:B=0,arrowPadding:C=0,avoidCollisions:D=!0,collisionBoundary:E=[],collisionPadding:F=0,sticky:G="partial",hideWhenDetached:H=!1,updatePositionStrategy:I="optimized",onPlaced:J,...K}=a,L=bv(bz,x),[M,N]=g.useState(null),O=(0,ah.useComposedRefs)(b,a=>N(a)),[P,Q]=g.useState(null),R=function(a){let[b,c]=g.useState(void 0);return(0,bq.useLayoutEffect)(()=>{if(a){c({width:a.offsetWidth,height:a.offsetHeight});let b=new ResizeObserver(b=>{let d,e;if(!Array.isArray(b)||!b.length)return;let f=b[0];if("borderBoxSize"in f){let a=f.borderBoxSize,b=Array.isArray(a)?a[0]:a;d=b.inlineSize,e=b.blockSize}else d=a.offsetWidth,e=a.offsetHeight;c({width:d,height:e})});return b.observe(a,{box:"border-box"}),()=>b.unobserve(a)}c(void 0)},[a]),b}(P),S=R?.width??0,T=R?.height??0,U="number"==typeof F?F:{top:0,right:0,bottom:0,left:0,...F},V=Array.isArray(E)?E:[E],W=V.length>0,X={padding:U,boundary:V.filter(bG),altBoundary:W},{refs:Y,floatingStyles:Z,placement:$,isPositioned:_,middlewareData:aa}=function(a){void 0===a&&(a={});let{placement:b="bottom",strategy:c="absolute",middleware:d=[],platform:e,elements:{reference:f,floating:h}={},transform:i=!0,whileElementsMounted:j,open:k}=a,[l,m]=g.useState({x:0,y:0,strategy:c,placement:b,middlewareData:{},isPositioned:!1}),[n,o]=g.useState(d);bk(n,d)||o(d);let[p,q]=g.useState(null),[r,s]=g.useState(null),t=g.useCallback(a=>{a!==x.current&&(x.current=a,q(a))},[]),u=g.useCallback(a=>{a!==y.current&&(y.current=a,s(a))},[]),v=f||p,w=h||r,x=g.useRef(null),y=g.useRef(null),z=g.useRef(l),A=null!=j,B=bm(j),C=bm(e),D=bm(k),E=g.useCallback(()=>{var a,d;let e,f,g;if(!x.current||!y.current)return;let h={placement:b,strategy:c,middleware:n};C.current&&(h.platform=C.current),(a=x.current,d=y.current,e=new Map,g={...(f={platform:bf,...h}).platform,_c:e},aI(a,d,{...f,platform:g})).then(a=>{let b={...a,isPositioned:!1!==D.current};F.current&&!bk(z.current,b)&&(z.current=b,bi.flushSync(()=>{m(b)}))})},[n,b,c,C,D]);bj(()=>{!1===k&&z.current.isPositioned&&(z.current.isPositioned=!1,m(a=>({...a,isPositioned:!1})))},[k]);let F=g.useRef(!1);bj(()=>(F.current=!0,()=>{F.current=!1}),[]),bj(()=>{if(v&&(x.current=v),w&&(y.current=w),v&&w){if(B.current)return B.current(v,w,E);E()}},[v,w,E,B,A]);let G=g.useMemo(()=>({reference:x,floating:y,setReference:t,setFloating:u}),[t,u]),H=g.useMemo(()=>({reference:v,floating:w}),[v,w]),I=g.useMemo(()=>{let a={position:c,left:0,top:0};if(!H.floating)return a;let b=bl(H.floating,l.x),d=bl(H.floating,l.y);if(i)return{...a,transform:"translate("+b+"px, "+d+"px)",...(H.floating,false)};return{position:c,left:b,top:d}},[c,i,H.floating,l.x,l.y]);return g.useMemo(()=>({...l,update:E,refs:G,elements:H,floatingStyles:I}),[l,E,G,H,I])}({strategy:"fixed",placement:y+("center"!==A?"-"+A:""),whileElementsMounted:(...a)=>(function(a,b,c,d){let e;void 0===d&&(d={});let{ancestorScroll:f=!0,ancestorResize:g=!0,elementResize:h="function"==typeof ResizeObserver,layoutShift:i="function"==typeof IntersectionObserver,animationFrame:j=!1}=d,k=a3(a),l=f||g?[...k?a0(k):[],...b?a0(b):[]]:[];l.forEach(a=>{f&&a.addEventListener("scroll",c,{passive:!0}),g&&a.addEventListener("resize",c)});let m=k&&i?function(a,b){let c,d=null,e=aP(a);function f(){var a;clearTimeout(c),null==(a=d)||a.disconnect(),d=null}return!function g(h,i){void 0===h&&(h=!1),void 0===i&&(i=1),f();let j=a.getBoundingClientRect(),{left:k,top:l,width:m,height:n}=j;if(h||b(),!m||!n)return;let o={rootMargin:-ap(l)+"px "+-ap(e.clientWidth-(k+m))+"px "+-ap(e.clientHeight-(l+n))+"px "+-ap(k)+"px",threshold:an(0,am(1,i))||1},p=!0;function q(b){let d=b[0].intersectionRatio;if(d!==i){if(!p)return g();d?g(!1,d):c=setTimeout(()=>{g(!1,1e-7)},1e3)}1!==d||bg(j,a.getBoundingClientRect())||g(),p=!1}try{d=new IntersectionObserver(q,{...o,root:e.ownerDocument})}catch(a){d=new IntersectionObserver(q,o)}d.observe(a)}(!0),f}(k,c):null,n=-1,o=null;h&&(o=new ResizeObserver(a=>{let[d]=a;d&&d.target===k&&o&&b&&(o.unobserve(b),cancelAnimationFrame(n),n=requestAnimationFrame(()=>{var a;null==(a=o)||a.observe(b)})),c()}),k&&!j&&o.observe(k),b&&o.observe(b));let p=j?a7(a):null;return j&&function b(){let d=a7(a);p&&!bg(p,d)&&c(),p=d,e=requestAnimationFrame(b)}(),c(),()=>{var a;l.forEach(a=>{f&&a.removeEventListener("scroll",c),g&&a.removeEventListener("resize",c)}),null==m||m(),null==(a=o)||a.disconnect(),o=null,j&&cancelAnimationFrame(e)}})(...a,{animationFrame:"always"===I}),elements:{reference:L.anchor},middleware:[{name:(r={name:"offset",options:d=c={mainAxis:z+T,alignmentAxis:B},async fn(a){var b,c;let{x:e,y:f,placement:g,middlewareData:h}=a,i=await aM(a,d);return g===(null==(b=h.offset)?void 0:b.placement)&&null!=(c=h.arrow)&&c.alignmentOffset?{}:{x:e+i.x,y:f+i.y,data:{...i,placement:g}}}}).name,fn:r.fn,options:[c,void 0]},D&&{name:(s={name:"shift",options:i=h={mainAxis:!0,crossAxis:!1,limiter:"partial"===G?{fn:(e=void 0,{options:e={},fn(a){let{x:b,y:c,placement:d,rects:f,middlewareData:g}=a,{offset:h=0,mainAxis:i=!0,crossAxis:j=!0}=as(e,a),k={x:b,y:c},l=ax(d),m=av(l),n=k[m],o=k[l],p=as(h,a),q="number"==typeof p?{mainAxis:p,crossAxis:0}:{mainAxis:0,crossAxis:0,...p};if(i){let a="y"===m?"height":"width",b=f.reference[m]-f.floating[a]+q.mainAxis,c=f.reference[m]+f.reference[a]-q.mainAxis;n<b?n=b:n>c&&(n=c)}if(j){var r,s;let a="y"===m?"width":"height",b=aL.has(at(d)),c=f.reference[l]-f.floating[a]+(b&&(null==(r=g.offset)?void 0:r[l])||0)+(b?0:q.crossAxis),e=f.reference[l]+f.reference[a]+(b?0:(null==(s=g.offset)?void 0:s[l])||0)-(b?q.crossAxis:0);o<c?o=c:o>e&&(o=e)}return{[m]:n,[l]:o}}}).fn,options:[void 0,void 0]}:void 0,...X},async fn(a){let{x:b,y:c,placement:d,platform:e}=a,{mainAxis:f=!0,crossAxis:g=!1,limiter:h={fn:a=>{let{x:b,y:c}=a;return{x:b,y:c}}},...j}=as(i,a),k={x:b,y:c},l=await e.detectOverflow(a,j),m=ax(at(d)),n=av(m),o=k[n],p=k[m];if(f){let a="y"===n?"top":"left",b="y"===n?"bottom":"right",c=o+l[a],d=o-l[b];o=an(c,am(o,d))}if(g){let a="y"===m?"top":"left",b="y"===m?"bottom":"right",c=p+l[a],d=p-l[b];p=an(c,am(p,d))}let q=h.fn({...a,[n]:o,[m]:p});return{...q,data:{x:q.x-b,y:q.y-c,enabled:{[n]:f,[m]:g}}}}}).name,fn:s.fn,options:[h,void 0]},D&&{name:(t={name:"flip",options:k=j={...X},async fn(a){var b,c,d,e,f,g,h,i;let j,l,m,{placement:n,middlewareData:o,rects:p,initialPlacement:q,platform:r,elements:s}=a,{mainAxis:t=!0,crossAxis:u=!0,fallbackPlacements:v,fallbackStrategy:w="bestFit",fallbackAxisSideDirection:x="none",flipAlignment:y=!0,...z}=as(k,a);if(null!=(b=o.arrow)&&b.alignmentOffset)return{};let A=at(n),B=ax(q),C=at(q)===q,D=await (null==r.isRTL?void 0:r.isRTL(s.floating)),E=v||(C||!y?[aD(q)]:(j=aD(q),[ay(q),j,ay(j)])),F="none"!==x;!v&&F&&E.push(...(l=au(q),m=function(a,b,c){switch(a){case"top":case"bottom":if(c)return b?aA:az;return b?az:aA;case"left":case"right":return b?aB:aC;default:return[]}}(at(q),"start"===x,D),l&&(m=m.map(a=>a+"-"+l),y&&(m=m.concat(m.map(ay)))),m));let G=[q,...E],H=await r.detectOverflow(a,z),I=[],J=(null==(c=o.flip)?void 0:c.overflows)||[];if(t&&I.push(H[A]),u){let a,b,c,d,e=(g=n,h=p,void 0===(i=D)&&(i=!1),a=au(g),c=aw(b=av(ax(g))),d="x"===b?a===(i?"end":"start")?"right":"left":"start"===a?"bottom":"top",h.reference[c]>h.floating[c]&&(d=aD(d)),[d,aD(d)]);I.push(H[e[0]],H[e[1]])}if(J=[...J,{placement:n,overflows:I}],!I.every(a=>a<=0)){let a=((null==(d=o.flip)?void 0:d.index)||0)+1,b=G[a];if(b&&("alignment"!==u||B===ax(b)||J.every(a=>ax(a.placement)!==B||a.overflows[0]>0)))return{data:{index:a,overflows:J},reset:{placement:b}};let c=null==(e=J.filter(a=>a.overflows[0]<=0).sort((a,b)=>a.overflows[1]-b.overflows[1])[0])?void 0:e.placement;if(!c)switch(w){case"bestFit":{let a=null==(f=J.filter(a=>{if(F){let b=ax(a.placement);return b===B||"y"===b}return!0}).map(a=>[a.placement,a.overflows.filter(a=>a>0).reduce((a,b)=>a+b,0)]).sort((a,b)=>a[1]-b[1])[0])?void 0:f[0];a&&(c=a);break}case"initialPlacement":c=q}if(n!==c)return{reset:{placement:c}}}return{}}}).name,fn:t.fn,options:[j,void 0]},{name:(u={name:"size",options:m=l={...X,apply:({elements:a,rects:b,availableWidth:c,availableHeight:d})=>{let{width:e,height:f}=b.reference,g=a.floating.style;g.setProperty("--radix-popper-available-width",`${c}px`),g.setProperty("--radix-popper-available-height",`${d}px`),g.setProperty("--radix-popper-anchor-width",`${e}px`),g.setProperty("--radix-popper-anchor-height",`${f}px`)}},async fn(a){var b,c;let d,e,{placement:f,rects:g,platform:h,elements:i}=a,{apply:j=()=>{},...k}=as(m,a),l=await h.detectOverflow(a,k),n=at(f),o=au(f),p="y"===ax(f),{width:q,height:r}=g.floating;"top"===n||"bottom"===n?(d=n,e=o===(await (null==h.isRTL?void 0:h.isRTL(i.floating))?"start":"end")?"left":"right"):(e=n,d="end"===o?"top":"bottom");let s=r-l.top-l.bottom,t=q-l.left-l.right,u=am(r-l[d],s),v=am(q-l[e],t),w=!a.middlewareData.shift,x=u,y=v;if(null!=(b=a.middlewareData.shift)&&b.enabled.x&&(y=t),null!=(c=a.middlewareData.shift)&&c.enabled.y&&(x=s),w&&!o){let a=an(l.left,0),b=an(l.right,0),c=an(l.top,0),d=an(l.bottom,0);p?y=q-2*(0!==a||0!==b?a+b:an(l.left,l.right)):x=r-2*(0!==c||0!==d?c+d:an(l.top,l.bottom))}await j({...a,availableWidth:y,availableHeight:x});let z=await h.getDimensions(i.floating);return q!==z.width||r!==z.height?{reset:{rects:!0}}:{}}}).name,fn:u.fn,options:[l,void 0]},P&&{name:(v={name:"arrow",options:o=n={element:P,padding:C},fn(a){let{element:b,padding:c}="function"==typeof o?o(a):o;return b&&({}).hasOwnProperty.call(b,"current")?null!=b.current?bh({element:b.current,padding:c}).fn(a):{}:b?bh({element:b,padding:c}).fn(a):{}}}).name,fn:v.fn,options:[n,void 0]},bH({arrowWidth:S,arrowHeight:T}),H&&{name:(w={name:"hide",options:q=p={strategy:"referenceHidden",...X},async fn(a){let{rects:b,platform:c}=a,{strategy:d="referenceHidden",...e}=as(q,a);switch(d){case"referenceHidden":{let d=aJ(await c.detectOverflow(a,{...e,elementContext:"reference"}),b.reference);return{data:{referenceHiddenOffsets:d,referenceHidden:aK(d)}}}case"escaped":{let d=aJ(await c.detectOverflow(a,{...e,altBoundary:!0}),b.floating);return{data:{escapedOffsets:d,escaped:aK(d)}}}default:return{}}}}).name,fn:w.fn,options:[p,void 0]}]}),[ab,ac]=bI($),ad=(0,bp.useCallbackRef)(J);(0,bq.useLayoutEffect)(()=>{_&&ad?.()},[_,ad]);let ae=aa.arrow?.x,af=aa.arrow?.y,ag=aa.arrow?.centerOffset!==0,[ai,aj]=g.useState();return(0,bq.useLayoutEffect)(()=>{M&&aj(window.getComputedStyle(M).zIndex)},[M]),(0,f.jsx)("div",{ref:Y.setFloating,"data-radix-popper-content-wrapper":"",style:{...Z,transform:_?Z.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:ai,"--radix-popper-transform-origin":[aa.transformOrigin?.x,aa.transformOrigin?.y].join(" "),...aa.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:a.dir,children:(0,f.jsx)(bA,{scope:x,placedSide:ab,onArrowChange:Q,arrowX:ae,arrowY:af,shouldHideArrow:ag,children:(0,f.jsx)(bn.Primitive.div,{"data-side":ab,"data-align":ac,...K,ref:O,style:{...K.style,animation:_?void 0:"none"}})})})});bC.displayName=bz;var bD="PopperArrow",bE={top:"bottom",right:"left",bottom:"top",left:"right"},bF=g.forwardRef(function(a,b){let{__scopePopper:c,...d}=a,e=bB(bD,c),g=bE[e.placedSide];return(0,f.jsx)("span",{ref:e.onArrowChange,style:{position:"absolute",left:e.arrowX,top:e.arrowY,[g]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[e.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[e.placedSide],visibility:e.shouldHideArrow?"hidden":void 0},children:(0,f.jsx)(bo,{...d,ref:b,style:{...d.style,display:"block"}})})});function bG(a){return null!==a}bF.displayName=bD;var bH=a=>({name:"transformOrigin",options:a,fn(b){let{placement:c,rects:d,middlewareData:e}=b,f=e.arrow?.centerOffset!==0,g=f?0:a.arrowWidth,h=f?0:a.arrowHeight,[i,j]=bI(c),k={start:"0%",center:"50%",end:"100%"}[j],l=(e.arrow?.x??0)+g/2,m=(e.arrow?.y??0)+h/2,n="",o="";return"bottom"===i?(n=f?k:`${l}px`,o=`${-h}px`):"top"===i?(n=f?k:`${l}px`,o=`${d.floating.height+h}px`):"right"===i?(n=`${-h}px`,o=f?k:`${m}px`):"left"===i&&(n=`${d.floating.width+h}px`,o=f?k:`${m}px`),{data:{x:n,y:o}}}});function bI(a){let[b,c="center"]=a.split("-");return[b,c]}a.i(92616);var bJ=a.i(77192),bK=Symbol("radix.slottable"),bL=a.i(25152),bM=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"}),bN=g.forwardRef((a,b)=>(0,f.jsx)(bn.Primitive.span,{...a,ref:b,style:{...bM,...a.style}}));bN.displayName="VisuallyHidden";var[bO,bP]=(0,ai.createContextScope)("Tooltip",[bt]),bQ=bt(),bR="TooltipProvider",bS="tooltip.open",[bT,bU]=bO(bR),bV=a=>{let{__scopeTooltip:b,delayDuration:c=700,skipDelayDuration:d=300,disableHoverableContent:e=!1,children:h}=a,i=g.useRef(!0),j=g.useRef(!1),k=g.useRef(0);return g.useEffect(()=>{let a=k.current;return()=>window.clearTimeout(a)},[]),(0,f.jsx)(bT,{scope:b,isOpenDelayedRef:i,delayDuration:c,onOpen:g.useCallback(()=>{window.clearTimeout(k.current),i.current=!1},[]),onClose:g.useCallback(()=>{window.clearTimeout(k.current),k.current=window.setTimeout(()=>i.current=!0,d)},[d]),isPointerInTransitRef:j,onPointerInTransitChange:g.useCallback(a=>{j.current=a},[]),disableHoverableContent:e,children:h})};bV.displayName=bR;var bW="Tooltip",[bX,bY]=bO(bW),bZ=a=>{let{__scopeTooltip:b,children:c,open:d,defaultOpen:e,onOpenChange:h,disableHoverableContent:i,delayDuration:j}=a,k=bU(bW,a.__scopeTooltip),l=bQ(b),[m,n]=g.useState(null),o=(0,ak.useId)(),p=g.useRef(0),q=i??k.disableHoverableContent,r=j??k.delayDuration,s=g.useRef(!1),[t,u]=(0,bL.useControllableState)({prop:d,defaultProp:e??!1,onChange:a=>{a?(k.onOpen(),document.dispatchEvent(new CustomEvent(bS))):k.onClose(),h?.(a)},caller:bW}),v=g.useMemo(()=>t?s.current?"delayed-open":"instant-open":"closed",[t]),w=g.useCallback(()=>{window.clearTimeout(p.current),p.current=0,s.current=!1,u(!0)},[u]),x=g.useCallback(()=>{window.clearTimeout(p.current),p.current=0,u(!1)},[u]),y=g.useCallback(()=>{window.clearTimeout(p.current),p.current=window.setTimeout(()=>{s.current=!0,u(!0),p.current=0},r)},[r,u]);return g.useEffect(()=>()=>{p.current&&(window.clearTimeout(p.current),p.current=0)},[]),(0,f.jsx)(bw,{...l,children:(0,f.jsx)(bX,{scope:b,contentId:o,open:t,stateAttribute:v,trigger:m,onTriggerChange:n,onTriggerEnter:g.useCallback(()=>{k.isOpenDelayedRef.current?y():w()},[k.isOpenDelayedRef,y,w]),onTriggerLeave:g.useCallback(()=>{q?x():(window.clearTimeout(p.current),p.current=0)},[x,q]),onOpen:w,onClose:x,disableHoverableContent:q,children:c})})};bZ.displayName=bW;var b$="TooltipTrigger",b_=g.forwardRef((a,b)=>{let{__scopeTooltip:c,...d}=a,e=bY(b$,c),h=bU(b$,c),i=bQ(c),j=g.useRef(null),k=(0,ah.useComposedRefs)(b,j,e.onTriggerChange),l=g.useRef(!1),m=g.useRef(!1),n=g.useCallback(()=>l.current=!1,[]);return g.useEffect(()=>()=>document.removeEventListener("pointerup",n),[n]),(0,f.jsx)(by,{asChild:!0,...i,children:(0,f.jsx)(bn.Primitive.button,{"aria-describedby":e.open?e.contentId:void 0,"data-state":e.stateAttribute,...d,ref:k,onPointerMove:(0,ag.composeEventHandlers)(a.onPointerMove,a=>{"touch"!==a.pointerType&&(m.current||h.isPointerInTransitRef.current||(e.onTriggerEnter(),m.current=!0))}),onPointerLeave:(0,ag.composeEventHandlers)(a.onPointerLeave,()=>{e.onTriggerLeave(),m.current=!1}),onPointerDown:(0,ag.composeEventHandlers)(a.onPointerDown,()=>{e.open&&e.onClose(),l.current=!0,document.addEventListener("pointerup",n,{once:!0})}),onFocus:(0,ag.composeEventHandlers)(a.onFocus,()=>{l.current||e.onOpen()}),onBlur:(0,ag.composeEventHandlers)(a.onBlur,e.onClose),onClick:(0,ag.composeEventHandlers)(a.onClick,e.onClose)})})});b_.displayName=b$;var[b0,b1]=bO("TooltipPortal",{forceMount:void 0}),b2="TooltipContent",b3=g.forwardRef((a,b)=>{let c=b1(b2,a.__scopeTooltip),{forceMount:d=c.forceMount,side:e="top",...g}=a,h=bY(b2,a.__scopeTooltip);return(0,f.jsx)(bJ.Presence,{present:d||h.open,children:h.disableHoverableContent?(0,f.jsx)(b8,{side:e,...g,ref:b}):(0,f.jsx)(b4,{side:e,...g,ref:b})})}),b4=g.forwardRef((a,b)=>{let c=bY(b2,a.__scopeTooltip),d=bU(b2,a.__scopeTooltip),e=g.useRef(null),h=(0,ah.useComposedRefs)(b,e),[i,j]=g.useState(null),{trigger:k,onClose:l}=c,m=e.current,{onPointerInTransitChange:n}=d,o=g.useCallback(()=>{j(null),n(!1)},[n]),p=g.useCallback((a,b)=>{let c,d=a.currentTarget,e={x:a.clientX,y:a.clientY},f=function(a,b){let c=Math.abs(b.top-a.y),d=Math.abs(b.bottom-a.y),e=Math.abs(b.right-a.x),f=Math.abs(b.left-a.x);switch(Math.min(c,d,e,f)){case f:return"left";case e:return"right";case c:return"top";case d:return"bottom";default:throw Error("unreachable")}}(e,d.getBoundingClientRect());j(((c=[...function(a,b,c=5){let d=[];switch(b){case"top":d.push({x:a.x-c,y:a.y+c},{x:a.x+c,y:a.y+c});break;case"bottom":d.push({x:a.x-c,y:a.y-c},{x:a.x+c,y:a.y-c});break;case"left":d.push({x:a.x+c,y:a.y-c},{x:a.x+c,y:a.y+c});break;case"right":d.push({x:a.x-c,y:a.y-c},{x:a.x-c,y:a.y+c})}return d}(e,f),...function(a){let{top:b,right:c,bottom:d,left:e}=a;return[{x:e,y:b},{x:c,y:b},{x:c,y:d},{x:e,y:d}]}(b.getBoundingClientRect())].slice()).sort((a,b)=>a.x<b.x?-1:a.x>b.x?1:a.y<b.y?-1:1*!!(a.y>b.y)),function(a){if(a.length<=1)return a.slice();let b=[];for(let c=0;c<a.length;c++){let d=a[c];for(;b.length>=2;){let a=b[b.length-1],c=b[b.length-2];if((a.x-c.x)*(d.y-c.y)>=(a.y-c.y)*(d.x-c.x))b.pop();else break}b.push(d)}b.pop();let c=[];for(let b=a.length-1;b>=0;b--){let d=a[b];for(;c.length>=2;){let a=c[c.length-1],b=c[c.length-2];if((a.x-b.x)*(d.y-b.y)>=(a.y-b.y)*(d.x-b.x))c.pop();else break}c.push(d)}return(c.pop(),1===b.length&&1===c.length&&b[0].x===c[0].x&&b[0].y===c[0].y)?b:b.concat(c)}(c))),n(!0)},[n]);return g.useEffect(()=>()=>o(),[o]),g.useEffect(()=>{if(k&&m){let a=a=>p(a,m),b=a=>p(a,k);return k.addEventListener("pointerleave",a),m.addEventListener("pointerleave",b),()=>{k.removeEventListener("pointerleave",a),m.removeEventListener("pointerleave",b)}}},[k,m,p,o]),g.useEffect(()=>{if(i){let a=a=>{let b=a.target,c={x:a.clientX,y:a.clientY},d=k?.contains(b)||m?.contains(b),e=!function(a,b){let{x:c,y:d}=a,e=!1;for(let a=0,f=b.length-1;a<b.length;f=a++){let g=b[a],h=b[f],i=g.x,j=g.y,k=h.x,l=h.y;j>d!=l>d&&c<(k-i)*(d-j)/(l-j)+i&&(e=!e)}return e}(c,i);d?o():e&&(o(),l())};return document.addEventListener("pointermove",a),()=>document.removeEventListener("pointermove",a)}},[k,m,i,l,o]),(0,f.jsx)(b8,{...a,ref:h})}),[b5,b6]=bO(bW,{isInside:!1}),b7=((e=({children:a})=>(0,f.jsx)(f.Fragment,{children:a})).displayName="TooltipContent.Slottable",e.__radixId=bK,e),b8=g.forwardRef((a,b)=>{let{__scopeTooltip:c,children:d,"aria-label":e,onEscapeKeyDown:h,onPointerDownOutside:i,...j}=a,k=bY(b2,c),l=bQ(c),{onClose:m}=k;return g.useEffect(()=>(document.addEventListener(bS,m),()=>document.removeEventListener(bS,m)),[m]),g.useEffect(()=>{if(k.trigger){let a=a=>{let b=a.target;b?.contains(k.trigger)&&m()};return window.addEventListener("scroll",a,{capture:!0}),()=>window.removeEventListener("scroll",a,{capture:!0})}},[k.trigger,m]),(0,f.jsx)(aj.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:h,onPointerDownOutside:i,onFocusOutside:a=>a.preventDefault(),onDismiss:m,children:(0,f.jsxs)(bC,{"data-state":k.stateAttribute,...l,...j,ref:b,style:{...j.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[(0,f.jsx)(b7,{children:d}),(0,f.jsx)(b5,{scope:c,isInside:!0,children:(0,f.jsx)(bN,{id:k.contentId,role:"tooltip",children:e||d})})]})})});b3.displayName=b2;var b9="TooltipArrow";function ca({children:a}){return(0,f.jsx)(bV,{delayDuration:200,children:a})}function cb({children:a,open:b,defaultOpen:c,onOpenChange:d}){return(0,f.jsx)(bZ,{open:b,defaultOpen:c,onOpenChange:d,children:a})}function cc({children:a,asChild:b}){return(0,f.jsx)(b_,{asChild:b,children:a})}function cd({className:a,children:b,sideOffset:c=4}){return(0,f.jsx)(b3,{sideOffset:c,className:(0,n.cn)("z-50 overflow-hidden rounded-md border border-card-border bg-card px-3 py-1.5 text-xs text-foreground-secondary shadow-md backdrop-blur-sm",a),children:b})}function ce({sessionId:a,active:b=!1,className:c}){let[d,e]=(0,g.useState)(!1);return a?(0,f.jsx)(ca,{children:(0,f.jsxs)(cb,{children:[(0,f.jsx)(cc,{asChild:!0,children:(0,f.jsxs)("span",{className:(0,n.cn)("relative inline-flex items-center gap-1.5 rounded-full bg-background-secondary px-2.5 py-0.5 text-xs font-mono text-foreground-muted cursor-pointer transition-all hover:bg-background-tertiary select-none",b&&"shadow-neon-glow-cyan-sm",c),onClick:b=>{b.stopPropagation(),b.preventDefault(),navigator.clipboard.writeText(a),e(!0),setTimeout(()=>e(!1),1500)},children:[(0,f.jsx)("span",{className:(0,n.cn)("h-1.5 w-1.5 rounded-full",b?"bg-secondary shadow-[0_0_6px_var(--secondary)] animate-pulse-dot":"bg-foreground-muted/40")}),(0,af.formatShortId)(a,4),d&&(0,f.jsx)("span",{className:"absolute -top-7 left-1/2 -translate-x-1/2 rounded-md bg-primary px-2 py-0.5 text-xs leading-tight font-sans font-medium text-primary-foreground whitespace-nowrap animate-slide-in-right",children:"Copied!"})]})}),(0,f.jsxs)(cd,{children:[(0,f.jsx)("p",{className:"font-mono text-xs",children:d?"Copied!":`Session: ${a}`}),!d&&(0,f.jsx)("p",{className:"text-foreground-muted text-xs leading-tight mt-0.5",children:"Click to copy"})]})]})}):null}function cf({id:a,chars:b=4,className:c}){let[d,e]=(0,g.useState)(!1),h=b=>{b.stopPropagation(),b.preventDefault(),navigator.clipboard.writeText(a),e(!0),setTimeout(()=>e(!1),1500)};return(0,f.jsx)(ca,{children:(0,f.jsxs)(cb,{children:[(0,f.jsx)(cc,{asChild:!0,children:(0,f.jsx)("span",{className:(0,n.cn)("inline-flex items-center justify-center rounded px-2 py-1 min-h-[44px] min-w-[44px] font-mono text-xs","bg-background-secondary text-info/80","hover:bg-background-tertiary hover:text-info","cursor-pointer transition-colors select-none",d&&"text-primary",c),onClick:h,role:"button",tabIndex:0,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),h(a))},children:(0,af.formatShortId)(a,b)})}),(0,f.jsx)(cd,{children:(0,f.jsx)("p",{className:"font-mono text-xs",children:d?(0,f.jsx)("span",{className:"text-primary font-semibold",children:"Copied!"}):a})})]})})}g.forwardRef((a,b)=>{let{__scopeTooltip:c,...d}=a,e=bQ(c);return b6(b9,c).isInside?null:(0,f.jsx)(bF,{...e,...d,ref:b})}).displayName=b9;let cg={default:"bg-primary",success:"bg-success",error:"bg-error",warning:"bg-warning"},ch={default:"shadow-progress-glow-primary",success:"shadow-progress-glow-success",error:"shadow-progress-glow-error",warning:"shadow-progress-glow-warning"};function ci({value:a,variant:b="default",glow:c=!1,className:d}){let e=Math.min(100,Math.max(0,a));return(0,f.jsx)("div",{className:(0,n.cn)("h-2 w-full overflow-hidden rounded-full bg-background-muted",d),children:(0,f.jsx)("div",{className:(0,n.cn)("h-full transition-all duration-500 ease-out",cg[b],c&&ch[b],100===e?"rounded-full":"rounded-l-full"),style:{width:`${e}%`}})})}let cj=(0,o.default)("Tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);var ck=a.i(77907);let cl=(0,g.memo)(function({run:a,selected:b}){var c;let d,e="completed"===a.status?100:a.totalTasks>0?Math.round(a.completedTasks/a.totalTasks*100):0,g="waiting"===a.status||"pending"===a.status,h=!0===a.isStale,i=a.tasks.find(a=>"breakpoint"===a.kind&&"requested"===a.status),j=a.breakpointQuestion??i?.breakpointQuestion,k=!h&&(!!i||"waiting"===a.status&&"breakpoint"===a.waitingKind),l="failed"===a.status?a.failedStep||(a.failureMessage?`${a.failureMessage}`:void 0):void 0;return(0,f.jsx)(m.default,{href:`/runs/${a.runId}`,children:(0,f.jsxs)(W,{className:(0,n.cn)("cursor-pointer p-4 transition-all card-hover-lift","hover:shadow-md",b&&"ring-1 ring-primary shadow-glow-primary",g&&!h&&!k&&"border-[var(--border-hover)]",k&&"border-warning/40 shadow-glow-warning ring-1 ring-warning/20 animate-breakpoint-glow",h&&"opacity-50"),children:[(0,f.jsx)("div",{className:"flex items-start justify-between gap-3",children:(0,f.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2 mb-1.5",children:[(0,f.jsx)("span",{className:(0,n.cn)("h-2 w-2 rounded-full shrink-0",h?"bg-zinc-500":k?"bg-warning shadow-[0_0_8px_var(--warning)] animate-pulse-dot":"completed"===a.status?"bg-success shadow-[0_0_6px_var(--success)]":"failed"===a.status?"bg-error shadow-[0_0_6px_var(--error)]":"waiting"===a.status?"bg-warning shadow-[0_0_6px_var(--warning)] animate-pulse-dot":"bg-pending")}),(0,f.jsx)("span",{className:"text-lg font-semibold italic font-serif text-foreground truncate",children:(0,af.friendlyProcessName)(a.processId)}),k&&(0,f.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-warning/15 border border-warning/30 px-2.5 py-1 text-[11px] leading-tight font-bold text-warning uppercase tracking-[0.12em] shrink-0 animate-pulse-dot",children:[(0,f.jsx)(p,{className:"h-2.5 w-2.5"}),"Approval Required"]})]}),(0,f.jsxs)("div",{className:"flex items-center gap-2 flex-wrap mb-1",children:[(0,f.jsx)(ae,{status:a.status,waitingKind:a.waitingKind,isStale:h}),h&&(0,f.jsx)("span",{className:"inline-flex items-center rounded-full bg-zinc-500/10 border border-zinc-500/20 px-2 py-0.5 text-xs leading-tight font-medium text-zinc-500 shrink-0",children:(c=a.updatedAt,(d=(0,af.formatRelativeTime)(c))?`Stale (${d})`:"Stale")}),(0,f.jsx)(cf,{id:a.runId,chars:4,className:"text-foreground-secondary"}),a.projectName&&(0,f.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-background-secondary px-2 py-0.5 text-xs leading-tight font-medium text-foreground-muted shrink-0",children:[(0,f.jsx)(cj,{className:"h-2.5 w-2.5"}),a.projectName]})]}),l&&(0,f.jsxs)("div",{className:"flex items-center gap-1.5 mt-2 px-2 py-1 rounded-md bg-error-muted border border-error/20 border-l-2 border-l-error shadow-glow-error",children:[(0,f.jsx)(H,{className:"h-3.5 w-3.5 text-error shrink-0"}),(0,f.jsxs)("span",{className:"text-xs text-error truncate",children:["Failed at: ",l.length>80?l.slice(0,80)+"...":l]})]}),k&&j&&(0,f.jsx)("div",{className:"mt-2 px-3 py-2 rounded-md bg-warning-muted border border-warning/25 border-l-2 border-l-warning shadow-breakpoint-glow",children:(0,f.jsxs)("div",{className:"flex items-start gap-2",children:[(0,f.jsx)(p,{className:"h-4 w-4 text-warning shrink-0 mt-0.5 animate-pulse-dot"}),(0,f.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,f.jsx)("span",{className:"text-xs font-bold text-warning uppercase tracking-wider block mb-0.5",children:"Awaiting approval"}),(0,f.jsx)("span",{className:"text-sm text-foreground leading-snug block",children:j})]}),(0,f.jsxs)("span",{className:(0,n.cn)("shrink-0 inline-flex items-center gap-1 px-2 py-1 rounded-md","bg-warning/10 border border-warning/20","text-xs font-semibold text-warning","hover:bg-warning/20 transition-colors"),children:["Review & Approve",(0,f.jsx)(ck.ExternalLink,{className:"h-2.5 w-2.5"})]})]})}),k&&!j&&(0,f.jsxs)("div",{className:"flex items-center gap-2 mt-2 px-3 py-2 rounded-md bg-warning-muted border border-warning/25 border-l-2 border-l-warning shadow-breakpoint-glow",children:[(0,f.jsx)(p,{className:"h-4 w-4 text-warning shrink-0 animate-pulse-dot"}),(0,f.jsx)("span",{className:"text-xs font-semibold text-warning",children:"Approval needed"}),(0,f.jsxs)("span",{className:(0,n.cn)("ml-auto shrink-0 inline-flex items-center gap-1 px-2 py-1 rounded-md","bg-warning/10 border border-warning/20","text-xs font-semibold text-warning"),children:["Review & Approve",(0,f.jsx)(ck.ExternalLink,{className:"h-2.5 w-2.5"})]})]}),(0,f.jsxs)("div",{className:"flex items-center gap-3 mt-2 text-xs text-foreground-muted",children:[(0,f.jsx)(ce,{sessionId:a.sessionId,active:g&&!h}),(0,f.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,f.jsx)(F,{className:"h-3 w-3"}),a.completedTasks,"/",a.totalTasks," tasks"]}),(0,f.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,f.jsx)(N.Clock,{className:"h-3 w-3"}),(0,af.formatDuration)(a.duration)]})]})]})}),a.totalTasks>0&&(0,f.jsx)(ci,{value:e,variant:function(a){switch(a){case"completed":return"success";case"failed":return"error";case"waiting":return"warning";default:return"default"}}(a.status),glow:g&&!h,className:"mt-4"})]})})},function(a,b){if(a.selected!==b.selected)return!1;let c=a.run,d=b.run;return c.runId===d.runId&&c.status===d.status&&c.updatedAt===d.updatedAt&&c.completedTasks===d.completedTasks&&c.totalTasks===d.totalTasks&&c.duration===d.duration&&c.isStale===d.isStale&&c.waitingKind===d.waitingKind&&c.breakpointQuestion===d.breakpointQuestion&&c.failedStep===d.failedStep&&c.failureMessage===d.failureMessage});function cm(a,b,c){let d,e=c.initialDeps??[],f=!0;function g(){var g,h,i;let j,k;c.key&&(null==(g=c.debug)?void 0:g.call(c))&&(j=Date.now());let l=a();if(!(l.length!==e.length||l.some((a,b)=>e[b]!==a)))return d;if(e=l,c.key&&(null==(h=c.debug)?void 0:h.call(c))&&(k=Date.now()),d=b(...l),c.key&&(null==(i=c.debug)?void 0:i.call(c))){let a=Math.round((Date.now()-j)*100)/100,b=Math.round((Date.now()-k)*100)/100,d=b/16,e=(a,b)=>{for(a=String(a);a.length<b;)a=" "+a;return a};console.info(`%c⏱ ${e(b,5)} /${e(a,5)} ms`,`
|
|
2
|
+
font-size: .6rem;
|
|
3
|
+
font-weight: bold;
|
|
4
|
+
color: hsl(${Math.max(0,Math.min(120-120*d,120))}deg 100% 31%);`,null==c?void 0:c.key)}return(null==c?void 0:c.onChange)&&!(f&&c.skipInitialOnChange)&&c.onChange(d),f=!1,d}return g.updateDeps=a=>{e=a},g}function cn(a,b){if(void 0!==a)return a;throw Error(`Unexpected undefined${b?`: ${b}`:""}`)}let co=a=>{let{offsetWidth:b,offsetHeight:c}=a;return{width:b,height:c}},cp=a=>a,cq=a=>{let b=Math.max(a.startIndex-a.overscan,0),c=Math.min(a.endIndex+a.overscan,a.count-1),d=[];for(let a=b;a<=c;a++)d.push(a);return d},cr=(a,b)=>{let c=a.scrollElement;if(!c)return;let d=a.targetWindow;if(!d)return;let e=a=>{let{width:c,height:d}=a;b({width:Math.round(c),height:Math.round(d)})};if(e(co(c)),!d.ResizeObserver)return()=>{};let f=new d.ResizeObserver(b=>{let d=()=>{let a=b[0];if(null==a?void 0:a.borderBoxSize){let b=a.borderBoxSize[0];if(b)return void e({width:b.inlineSize,height:b.blockSize})}e(co(c))};a.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(d):d()});return f.observe(c,{box:"border-box"}),()=>{f.unobserve(c)}},cs={passive:!0},ct=(a,b)=>{var c,d;let e,f=a.scrollElement;if(!f)return;let g=a.targetWindow;if(!g)return;let h=0,i=a.options.useScrollendEvent&&1?()=>void 0:(c=()=>{b(h,!1)},d=a.options.isScrollingResetDelay,function(...a){g.clearTimeout(e),e=g.setTimeout(()=>c.apply(this,a),d)}),j=c=>()=>{let{horizontal:d,isRtl:e}=a.options;h=d?f.scrollLeft*(e&&-1||1):f.scrollTop,i(),b(h,c)},k=j(!0),l=j(!1);f.addEventListener("scroll",k,cs);let m=a.options.useScrollendEvent&&!0;return m&&f.addEventListener("scrollend",l,cs),()=>{f.removeEventListener("scroll",k),m&&f.removeEventListener("scrollend",l)}},cu=(a,b,c)=>{if(null==b?void 0:b.borderBoxSize){let a=b.borderBoxSize[0];if(a)return Math.round(a[c.options.horizontal?"inlineSize":"blockSize"])}return a[c.options.horizontal?"offsetWidth":"offsetHeight"]},cv=(a,{adjustments:b=0,behavior:c},d)=>{var e,f;null==(f=null==(e=d.scrollElement)?void 0:e.scrollTo)||f.call(e,{[d.options.horizontal?"left":"top"]:a+b,behavior:c})};class cw{constructor(a){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.now=()=>{var a,b,c;return(null==(c=null==(b=null==(a=this.targetWindow)?void 0:a.performance)?void 0:b.now)?void 0:c.call(b))??Date.now()},this.observer=(()=>{let a=null,b=()=>a||(this.targetWindow&&this.targetWindow.ResizeObserver?a=new this.targetWindow.ResizeObserver(a=>{a.forEach(a=>{let b=()=>{let b=a.target,c=this.indexFromElement(b);b.isConnected?this.shouldMeasureDuringScroll(c)&&this.resizeItem(c,this.options.measureElement(b,a,this)):this.observer.unobserve(b)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(b):b()})}):null);return{disconnect:()=>{var c;null==(c=b())||c.disconnect(),a=null},observe:a=>{var c;return null==(c=b())?void 0:c.observe(a,{box:"border-box"})},unobserve:a=>{var c;return null==(c=b())?void 0:c.unobserve(a)}}})(),this.range=null,this.setOptions=a=>{Object.entries(a).forEach(([b,c])=>{void 0===c&&delete a[b]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:cp,rangeExtractor:cq,onChange:()=>{},measureElement:cu,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...a}},this.notify=a=>{var b,c;null==(c=(b=this.options).onChange)||c.call(b,this,a)},this.maybeNotify=cm(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),a=>{this.notify(a)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(a=>a()),this.unsubs=[],this.observer.disconnect(),null!=this.rafId&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var a;let b=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==b){if(this.cleanup(),!b)return void this.maybeNotify();this.scrollElement=b,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(a=this.scrollElement)?void 0:a.window)??null,this.elementsCache.forEach(a=>{this.observer.observe(a)}),this.unsubs.push(this.options.observeElementRect(this,a=>{this.scrollRect=a,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(a,b)=>{this.scrollAdjustments=0,this.scrollDirection=b?this.getScrollOffset()<a?"forward":"backward":null,this.scrollOffset=a,this.isScrolling=b,this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(a,b)=>{let c=new Map,d=new Map;for(let e=b-1;e>=0;e--){let b=a[e];if(c.has(b.lane))continue;let f=d.get(b.lane);if(null==f||b.end>f.end?d.set(b.lane,b):b.end<f.end&&c.set(b.lane,!0),c.size===this.options.lanes)break}return d.size===this.options.lanes?Array.from(d.values()).sort((a,b)=>a.end===b.end?a.index-b.index:a.end-b.end)[0]:void 0},this.getMeasurementOptions=cm(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes],(a,b,c,d,e,f)=>(void 0!==this.prevLanes&&this.prevLanes!==f&&(this.lanesChangedFlag=!0),this.prevLanes=f,this.pendingMeasuredCacheIndexes=[],{count:a,paddingStart:b,scrollMargin:c,getItemKey:d,enabled:e,lanes:f}),{key:!1}),this.getMeasurements=cm(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:a,paddingStart:b,scrollMargin:c,getItemKey:d,enabled:e,lanes:f},g)=>{if(!e)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>a)for(let b of this.laneAssignments.keys())b>=a&&this.laneAssignments.delete(b);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),0!==this.measurementsCache.length||this.lanesSettling||(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(a=>{this.itemSizeCache.set(a.key,a.size)}));let h=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===a&&(this.lanesSettling=!1);let i=this.measurementsCache.slice(0,h),j=Array(f).fill(void 0);for(let a=0;a<h;a++){let b=i[a];b&&(j[b.lane]=a)}for(let e=h;e<a;e++){let a,f,h=d(e),k=this.laneAssignments.get(e);if(void 0!==k&&this.options.lanes>1){let d=j[a=k],e=void 0!==d?i[d]:void 0;f=e?e.end+this.options.gap:b+c}else{let d=1===this.options.lanes?i[e-1]:this.getFurthestMeasurement(i,e);f=d?d.end+this.options.gap:b+c,a=d?d.lane:e%this.options.lanes,this.options.lanes>1&&this.laneAssignments.set(e,a)}let l=g.get(h),m="number"==typeof l?l:this.options.estimateSize(e),n=f+m;i[e]={index:e,start:f,size:m,end:n,key:h,lane:a},j[a]=e}return this.measurementsCache=i,i},{key:!1,debug:()=>this.options.debug}),this.calculateRange=cm(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(a,b,c,d)=>this.range=a.length>0&&b>0?function({measurements:a,outerSize:b,scrollOffset:c,lanes:d}){let e=a.length-1;if(a.length<=d)return{startIndex:0,endIndex:e};let f=cx(0,e,b=>a[b].start,c),g=f;if(1===d)for(;g<e&&a[g].end<c+b;)g++;else if(d>1){let h=Array(d).fill(0);for(;g<e&&h.some(a=>a<c+b);){let b=a[g];h[b.lane]=b.end,g++}let i=Array(d).fill(c+b);for(;f>=0&&i.some(a=>a>=c);){let b=a[f];i[b.lane]=b.start,f--}f=Math.max(0,f-f%d),g=Math.min(e,g+(d-1-g%d))}return{startIndex:f,endIndex:g}}({measurements:a,outerSize:b,scrollOffset:c,lanes:d}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=cm(()=>{let a=null,b=null,c=this.calculateRange();return c&&(a=c.startIndex,b=c.endIndex),this.maybeNotify.updateDeps([this.isScrolling,a,b]),[this.options.rangeExtractor,this.options.overscan,this.options.count,a,b]},(a,b,c,d,e)=>null===d||null===e?[]:a({startIndex:d,endIndex:e,overscan:b,count:c}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=a=>{let b=this.options.indexAttribute,c=a.getAttribute(b);return c?parseInt(c,10):(console.warn(`Missing attribute name '${b}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=a=>{var b;if(!this.scrollState||"smooth"!==this.scrollState.behavior)return!0;let c=this.scrollState.index??(null==(b=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))?void 0:b.index);if(void 0!==c&&this.range){let b=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),d=Math.max(0,c-b),e=Math.min(this.options.count-1,c+b);return a>=d&&a<=e}return!0},this.measureElement=a=>{if(!a)return void this.elementsCache.forEach((a,b)=>{a.isConnected||(this.observer.unobserve(a),this.elementsCache.delete(b))});let b=this.indexFromElement(a),c=this.options.getItemKey(b),d=this.elementsCache.get(c);d!==a&&(d&&this.observer.unobserve(d),this.observer.observe(a),this.elementsCache.set(c,a)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(b)&&this.resizeItem(b,this.options.measureElement(a,void 0,this))},this.resizeItem=(a,b)=>{var c;let d=this.measurementsCache[a];if(!d)return;let e=b-(this.itemSizeCache.get(d.key)??d.size);0!==e&&((null==(c=this.scrollState)?void 0:c.behavior)!=="smooth"&&(void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(d,e,this):d.start<this.getScrollOffset()+this.scrollAdjustments)&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=e,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(d.index),this.itemSizeCache=new Map(this.itemSizeCache.set(d.key,b)),this.notify(!1))},this.getVirtualItems=cm(()=>[this.getVirtualIndexes(),this.getMeasurements()],(a,b)=>{let c=[];for(let d=0,e=a.length;d<e;d++){let e=b[a[d]];c.push(e)}return c},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=a=>{let b=this.getMeasurements();if(0!==b.length)return cn(b[cx(0,b.length-1,a=>cn(b[a]).start,a)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let a=this.scrollElement.document.documentElement;return this.options.horizontal?a.scrollWidth-this.scrollElement.innerWidth:a.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(a,b,c=0)=>{if(!this.scrollElement)return 0;let d=this.getSize(),e=this.getScrollOffset();return"auto"===b&&(b=a>=e+d?"end":"start"),"center"===b?a+=(c-d)/2:"end"===b&&(a-=d),Math.max(Math.min(this.getMaxScrollOffset(),a),0)},this.getOffsetForIndex=(a,b="auto")=>{a=Math.max(0,Math.min(a,this.options.count-1));let c=this.getSize(),d=this.getScrollOffset(),e=this.measurementsCache[a];if(!e)return;if("auto"===b)if(e.end>=d+c-this.options.scrollPaddingEnd)b="end";else{if(!(e.start<=d+this.options.scrollPaddingStart))return[d,b];b="start"}if("end"===b&&a===this.options.count-1)return[this.getMaxScrollOffset(),b];let f="end"===b?e.end+this.options.scrollPaddingEnd:e.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(f,b,e.size),b]},this.scrollToOffset=(a,{align:b="start",behavior:c="auto"}={})=>{let d=this.getOffsetForAlignment(a,b),e=this.now();this.scrollState={index:null,align:b,behavior:c,startedAt:e,lastTargetOffset:d,stableFrames:0},this._scrollToOffset(d,{adjustments:void 0,behavior:c}),this.scheduleScrollReconcile()},this.scrollToIndex=(a,{align:b="auto",behavior:c="auto"}={})=>{a=Math.max(0,Math.min(a,this.options.count-1));let d=this.getOffsetForIndex(a,b);if(!d)return;let[e,f]=d,g=this.now();this.scrollState={index:a,align:f,behavior:c,startedAt:g,lastTargetOffset:e,stableFrames:0},this._scrollToOffset(e,{adjustments:void 0,behavior:c}),this.scheduleScrollReconcile()},this.scrollBy=(a,{behavior:b="auto"}={})=>{let c=this.getScrollOffset()+a,d=this.now();this.scrollState={index:null,align:"start",behavior:b,startedAt:d,lastTargetOffset:c,stableFrames:0},this._scrollToOffset(c,{adjustments:void 0,behavior:b}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{var a;let b,c=this.getMeasurements();if(0===c.length)b=this.options.paddingStart;else if(1===this.options.lanes)b=(null==(a=c[c.length-1])?void 0:a.end)??0;else{let a=Array(this.options.lanes).fill(null),d=c.length-1;for(;d>=0&&a.some(a=>null===a);){let b=c[d];null===a[b.lane]&&(a[b.lane]=b.end),d--}b=Math.max(...a.filter(a=>null!==a))}return Math.max(b-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(a,{adjustments:b,behavior:c})=>{this.options.scrollToFn(a,{behavior:c,adjustments:b},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(a)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}null==this.rafId&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let a=null!=this.scrollState.index?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,b=a?a[0]:this.scrollState.lastTargetOffset,c=b!==this.scrollState.lastTargetOffset;if(!c&&1.01>Math.abs(b-this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.scrollState=null;return}}else this.scrollState.stableFrames=0,c&&(this.scrollState.lastTargetOffset=b,this.scrollState.behavior="auto",this._scrollToOffset(b,{adjustments:void 0,behavior:"auto"}));this.scheduleScrollReconcile()}}let cx=(a,b,c,d)=>{for(;a<=b;){let e=(a+b)/2|0,f=c(e);if(f<d)a=e+1;else{if(!(f>d))return e;b=e-1}}return a>0?a-1:0},cy="u">typeof document?g.useLayoutEffect:g.useEffect;function cz({runs:a,className:b,maxHeight:c=600,renderItem:d}){let e=(0,g.useRef)(null),h=(0,g.useMemo)(()=>a,[a]),i=(0,g.useCallback)(a=>h[a]?.runId??a,[h]),j=function({useFlushSync:a=!0,...b}){let c=g.useReducer(()=>({}),{})[1],d={...b,onChange:(d,e)=>{var f;a&&e?(0,bi.flushSync)(c):c(),null==(f=b.onChange)||f.call(b,d,e)}},[e]=g.useState(()=>new cw(d));return e.setOptions(d),cy(()=>e._didMount(),[]),cy(()=>e._willUpdate()),e}({observeElementRect:cr,observeElementOffset:ct,scrollToFn:cv,...{count:h.length,getScrollElement:()=>e.current,estimateSize:()=>140,overscan:3,getItemKey:i}});if(h.length<15)return(0,f.jsx)("div",{className:b,"data-testid":"run-list-flat",children:(0,f.jsx)("div",{className:"flex flex-col gap-2",children:h.map((a,b)=>d?(0,f.jsx)("div",{children:d(a,b)},a.runId):(0,f.jsx)(cl,{run:a},a.runId))})});let k=j.getVirtualItems();return(0,f.jsx)("div",{ref:e,className:b,"data-testid":"run-list-virtualized",style:{maxHeight:c,overflow:"auto",contain:"strict"},children:(0,f.jsx)("div",{style:{height:`${j.getTotalSize()}px`,width:"100%",position:"relative"},children:k.map(a=>{let b=h[a.index];return b?(0,f.jsx)("div",{"data-index":a.index,ref:j.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${a.start}px)`},children:(0,f.jsx)("div",{style:{paddingBottom:8},children:d?d(b,a.index):(0,f.jsx)(cl,{run:b})})},a.key):null})})})}let cA=(0,o.default)("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]),cB=(0,o.default)("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);function cC({currentPage:a,totalItems:b,itemsPerPage:c,onPageChange:d,className:e}){let g=Math.ceil(b/c),h=Math.min((a+1)*c,b),i=a>0,j=a<g-1;if(0===b)return null;let k=[];if(g<=5)for(let a=0;a<g;a++)k.push(a);else{k.push(0),a>2&&k.push("ellipsis");for(let b=Math.max(1,a-1);b<=Math.min(g-2,a+1);b++)k.push(b);a<g-3&&k.push("ellipsis"),k.push(g-1)}return(0,f.jsxs)("div",{className:(0,n.cn)("flex items-center justify-between border-t border-border pt-3",e),children:[(0,f.jsxs)("span",{className:"text-xs text-foreground-muted tabular-nums",children:[a*c+1,"–",h," of ",b]}),(0,f.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,f.jsx)("button",{onClick:()=>d(a-1),disabled:!i,className:(0,n.cn)("inline-flex h-11 w-11 items-center justify-center rounded-md text-xs transition-all",i?"text-foreground hover:bg-primary-muted hover:text-primary hover:shadow-neon-glow-primary-xs cursor-pointer":"text-foreground-muted cursor-not-allowed opacity-40"),"aria-label":"Previous page",children:(0,f.jsx)(cA,{className:"h-4 w-4"})}),k.map((b,c)=>"ellipsis"===b?(0,f.jsx)("span",{className:"inline-flex h-11 w-5 items-center justify-center text-xs text-foreground-muted",children:"..."},`ellipsis-${c}`):(0,f.jsx)("button",{onClick:()=>d(b),className:(0,n.cn)("inline-flex h-11 min-w-[44px] items-center justify-center rounded-md px-1.5 text-xs font-medium tabular-nums transition-all",b===a?"text-primary bg-primary/10":"text-foreground-muted hover:bg-background-secondary hover:text-foreground-secondary cursor-pointer"),children:b+1},b)),(0,f.jsx)("button",{onClick:()=>d(a+1),disabled:!j,className:(0,n.cn)("inline-flex h-11 w-11 items-center justify-center rounded-md text-xs transition-all",j?"text-foreground hover:bg-primary-muted hover:text-primary hover:shadow-neon-glow-primary-xs cursor-pointer":"text-foreground-muted cursor-not-allowed opacity-40"),"aria-label":"Next page",children:(0,f.jsx)(cB,{className:"h-4 w-4"})})]})]})}var cD=a.i(20498),cE=a.i(85410);let cF={healthy:{dotClass:"bg-success shadow-[0_0_6px_var(--success)]",borderClass:"border-success/20 hover:border-success/40",icon:r.CheckCircle2,label:"Healthy",barColor:"bg-success"},active:{dotClass:"bg-warning shadow-[0_0_6px_var(--warning)] animate-pulse-dot",borderClass:"border-warning/20 hover:border-warning/40",icon:G,label:"Active",barColor:"bg-warning"},stale:{dotClass:"bg-zinc-500",borderClass:"border-zinc-500/20 hover:border-zinc-500/40",icon:I.Pause,label:"Stale",barColor:"bg-zinc-500"},failing:{dotClass:"bg-error shadow-[0_0_6px_var(--error)]",borderClass:"border-error/20 hover:border-error/40",icon:H,label:"Failing",barColor:"bg-error"}};function cG({project:a,statusFilter:b,sortMode:c="status",onHide:d}){let e,i,j,k,m,o,[q,s]=(0,g.useState)(!1),t=(0,g.useCallback)(async b=>{b.stopPropagation(),s(!0);let c=await (0,cD.resilientFetch)("/api/config");if(!c.ok)return void s(!1);let e=c.data.hiddenProjects??[];if(e.includes(a.projectName)){s(!1),d?.(a.projectName);return}let f=[...e,a.projectName],g=await (0,cD.resilientFetch)("/api/config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sources:c.data.sources,pollInterval:c.data.pollInterval,theme:c.data.theme,retentionDays:c.data.retentionDays,hiddenProjects:f})});s(!1),g.ok&&d?.(a.projectName)},[a.projectName,d]),[u,v]=l(`observer:project-expanded:${a.projectName}`,!1),[w,x]=(0,g.useState)(0),[y,z]=(0,g.useState)(!1),[A,B]=(0,g.useState)(!1),[C,D]=(0,g.useState)("all"),E=cF[a.failedRuns>0?"failing":a.activeRuns>0?"active":a.staleRuns>0?"stale":"healthy"],J=E.icon,K=a.totalTasks>0?Math.round(a.completedTasksAggregate/a.totalTasks*100):0,L="all"!==C?C:b,{runs:M,totalCount:O,loading:P}=function(a,b={}){let{limit:c=10,offset:d=0,search:e="",status:f="",sort:g="status",enabled:i=!0}=b,j=new URLSearchParams;j.set("project",a),j.set("limit",String(c)),j.set("offset",String(d)),e&&j.set("search",e),f&&j.set("status",f),g&&"status"!==g&&j.set("sort",g);let k=`/api/runs?${j.toString()}`,{data:l,loading:m,error:n,refresh:o}=(0,h.useSmartPolling)(k,{interval:5e3,sseFilter:()=>!0,enabled:i});return{runs:i&&l?l.runs:[],totalCount:i&&l?l.totalCount:0,loading:m,error:n,refresh:o}}(a.projectName,{limit:5,offset:5*w,status:"all"===L?"":L,sort:c,enabled:u}),Q=a=>{D(b=>b===a?"all":a),x(0)};return(0,f.jsxs)(W,{"data-testid":`project-card-${a.projectName}`,className:(0,n.cn)("transition-all duration-200 overflow-hidden card-hover-lift",E.borderClass,u&&"ring-1 ring-primary/20"),children:[(0,f.jsxs)("button",{onClick:()=>v(a=>!a),className:"w-full text-left p-4 hover:bg-background-secondary/30 transition-colors",children:[(0,f.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2 truncate flex-1",children:[(0,f.jsx)("h3",{className:"text-lg font-semibold text-foreground truncate",children:a.projectName}),a.pendingBreakpoints>0&&(0,f.jsxs)("span",{className:(0,n.cn)("inline-flex items-center gap-1 rounded-full px-2 py-0.5 shrink-0","bg-warning/15 border border-warning/30","text-xs leading-tight font-bold text-warning","animate-pulse-dot"),children:[(0,f.jsx)(p,{className:"h-2.5 w-2.5"}),a.pendingBreakpoints," Pending"]})]}),(0,f.jsxs)("div",{className:"flex items-center shrink-0 ml-2 gap-1",children:[(0,f.jsx)("span",{role:"button",tabIndex:0,onClick:t,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),t(a))},className:(0,n.cn)("rounded-md p-2 min-h-[44px] min-w-[44px] inline-flex items-center justify-center transition-colors",q?"text-foreground-muted cursor-wait":"text-foreground-muted/40 hover:text-foreground-muted hover:bg-background-secondary"),title:"Hide project from dashboard",children:q?(0,f.jsx)(aa.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,f.jsx)(cE.EyeOff,{className:"h-3.5 w-3.5"})}),u?(0,f.jsx)(U,{className:"h-4 w-4 text-foreground-muted"}):(0,f.jsx)(T,{className:"h-4 w-4 text-foreground-muted"})]})]}),(0,f.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,f.jsxs)("div",{className:"flex items-center gap-3 text-xs text-foreground-muted",children:[(0,f.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,f.jsx)("span",{className:(0,n.cn)("h-2.5 w-2.5 rounded-full shrink-0",E.dotClass)}),(0,f.jsx)(J,{className:"h-3 w-3"}),E.label]}),(0,f.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,f.jsx)(F,{className:"h-3 w-3"}),a.totalRuns]}),(0,f.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,f.jsx)(N.Clock,{className:"h-3 w-3"}),(0,af.formatRelativeTime)(a.latestUpdate)]})]}),(0,f.jsxs)("div",{className:"flex items-center gap-1.5 shrink-0",children:[a.activeRuns>0&&(0,f.jsxs)("span",{className:"inline-flex items-center gap-0.5 rounded-full bg-warning/10 border border-warning/20 px-1.5 py-0.5 text-xs leading-tight font-medium text-warning tabular-nums",title:`${a.activeRuns} active`,children:[(0,f.jsx)(G,{className:"h-3 w-3"}),a.activeRuns]}),a.staleRuns>0&&(0,f.jsxs)("span",{className:"inline-flex items-center gap-0.5 rounded-full bg-zinc-500/10 border border-zinc-500/20 px-1.5 py-0.5 text-xs leading-tight font-medium text-zinc-500 tabular-nums",title:`${a.staleRuns} stale`,children:[(0,f.jsx)(I.Pause,{className:"h-3 w-3"}),a.staleRuns]}),a.completedRuns>0&&(0,f.jsxs)("span",{className:"inline-flex items-center gap-0.5 rounded-full bg-success/10 border border-success/20 px-1.5 py-0.5 text-xs leading-tight font-medium text-success tabular-nums",title:`${a.completedRuns} completed`,children:[(0,f.jsx)(r.CheckCircle2,{className:"h-3 w-3"}),a.completedRuns]}),a.failedRuns>0&&(0,f.jsxs)("span",{className:"inline-flex items-center gap-0.5 rounded-full bg-error/10 border border-error/20 px-1.5 py-0.5 text-xs leading-tight font-medium text-error tabular-nums",title:`${a.failedRuns} failed`,children:[(0,f.jsx)(H,{className:"h-3 w-3"}),a.failedRuns]})]})]}),a.totalTasks>0&&(0,f.jsxs)("div",{children:[(0,f.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,f.jsxs)("span",{className:"text-xs leading-tight text-foreground-muted",children:[a.completedTasksAggregate,"/",a.totalTasks," tasks"]}),(0,f.jsxs)("span",{className:"text-xs leading-tight text-foreground-muted tabular-nums",children:[K,"%"]})]}),(0,f.jsx)("div",{className:"h-1.5 w-full rounded-full bg-background-secondary overflow-hidden",children:(0,f.jsx)("div",{className:(0,n.cn)("h-full rounded-full transition-all duration-500",E.barColor),style:{width:`${K}%`}})})]})]}),u&&(e=M.filter(a=>"waiting"===a.status||"pending"===a.status||a.isStale),i=M.filter(a=>"completed"===a.status&&!a.isStale),j=M.filter(a=>"failed"===a.status&&!a.isStale),k=e.length>0,m=i.length>0,o=j.length>0,(0,f.jsxs)("div",{className:"border-t border-border px-4 pb-4 pt-3",children:[P&&0===M.length?(0,f.jsx)("div",{className:"flex flex-col gap-2",children:[1,2].map(a=>(0,f.jsxs)("div",{className:"rounded-lg border border-border bg-background p-3 animate-pulse",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,f.jsx)("div",{className:"h-2 w-2 rounded-full bg-foreground-muted/20"}),(0,f.jsx)("div",{className:"h-3 w-32 rounded bg-foreground-muted/10"})]}),(0,f.jsx)("div",{className:"h-2 w-full rounded bg-foreground-muted/10"})]},a))}):0===M.length?(0,f.jsx)("p",{className:"text-xs text-foreground-muted text-center py-4",children:"No matching runs"}):"activity"===c?(0,f.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,f.jsxs)("div",{className:(0,n.cn)("grid gap-2 mb-3",a.staleRuns>0?"grid-cols-4":"grid-cols-3"),children:[(0,f.jsx)(cH,{icon:(0,f.jsx)(G,{className:"h-3.5 w-3.5"}),count:a.activeRuns,label:"Active",colorClass:"text-warning",bgClass:"bg-warning/10",pulse:a.activeRuns>0,active:"waiting"===C,onClick:a=>{a.stopPropagation(),Q("waiting")}}),a.staleRuns>0&&(0,f.jsx)(cH,{icon:(0,f.jsx)(I.Pause,{className:"h-3.5 w-3.5"}),count:a.staleRuns,label:"Stale",colorClass:"text-zinc-500",bgClass:"bg-zinc-500/10",active:"waiting"===C,onClick:a=>{a.stopPropagation(),Q("waiting")}}),(0,f.jsx)(cH,{icon:(0,f.jsx)(r.CheckCircle2,{className:"h-3.5 w-3.5"}),count:a.completedRuns,label:"Completed",colorClass:"text-success",bgClass:"bg-success/10",active:"completed"===C,onClick:a=>{a.stopPropagation(),Q("completed")}}),(0,f.jsx)(cH,{icon:(0,f.jsx)(H,{className:"h-3.5 w-3.5"}),count:a.failedRuns,label:"Failed",colorClass:"text-error",bgClass:"bg-error/10",active:"failed"===C,onClick:a=>{a.stopPropagation(),Q("failed")}})]}),(0,f.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,f.jsx)(N.Clock,{className:"h-3.5 w-3.5 text-primary"}),(0,f.jsx)("span",{className:"text-xs font-semibold text-foreground",children:"Timeline"}),(0,f.jsx)("span",{className:"rounded-full bg-primary/10 border border-primary/20 px-2 py-px text-xs font-semibold text-primary tabular-nums",children:M.length})]}),(0,f.jsx)(cz,{runs:M,maxHeight:500,renderItem:a=>(0,f.jsxs)("div",{className:"relative",children:[(0,f.jsx)(cl,{run:a}),(0,f.jsxs)("span",{className:"absolute top-2 right-2 inline-flex items-center gap-1 rounded-full bg-background/80 backdrop-blur-sm border border-border px-2 py-0.5 text-xs text-foreground-muted tabular-nums pointer-events-none z-10",children:[(0,f.jsx)(N.Clock,{className:"h-2.5 w-2.5"}),(0,af.formatRelativeTime)(a.updatedAt)]})]})})]}):(0,f.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,f.jsxs)("div",{className:(0,n.cn)("grid gap-2 mb-3",a.staleRuns>0?"grid-cols-4":"grid-cols-3"),children:[(0,f.jsx)(cH,{icon:(0,f.jsx)(G,{className:"h-3.5 w-3.5"}),count:a.activeRuns,label:"Active",colorClass:"text-warning",bgClass:"bg-warning/10",pulse:a.activeRuns>0,active:"waiting"===C,onClick:a=>{a.stopPropagation(),Q("waiting")}}),a.staleRuns>0&&(0,f.jsx)(cH,{icon:(0,f.jsx)(I.Pause,{className:"h-3.5 w-3.5"}),count:a.staleRuns,label:"Stale",colorClass:"text-zinc-500",bgClass:"bg-zinc-500/10",active:"waiting"===C,onClick:a=>{a.stopPropagation(),Q("waiting")}}),(0,f.jsx)(cH,{icon:(0,f.jsx)(r.CheckCircle2,{className:"h-3.5 w-3.5"}),count:a.completedRuns,label:"Completed",colorClass:"text-success",bgClass:"bg-success/10",active:"completed"===C,onClick:a=>{a.stopPropagation(),Q("completed")}}),(0,f.jsx)(cH,{icon:(0,f.jsx)(H,{className:"h-3.5 w-3.5"}),count:a.failedRuns,label:"Failed",colorClass:"text-error",bgClass:"bg-error/10",active:"failed"===C,onClick:a=>{a.stopPropagation(),Q("failed")}})]}),k&&(0,f.jsxs)("div",{className:"mb-2",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,f.jsx)(G,{className:"h-3.5 w-3.5 text-warning animate-pulse-dot"}),(0,f.jsx)("span",{className:"text-xs font-semibold text-foreground",children:"In Progress"}),(0,f.jsx)("span",{className:"rounded-full bg-warning/10 border border-warning/20 px-2 py-px text-xs font-semibold text-warning tabular-nums",children:e.length})]}),(0,f.jsx)(cz,{runs:e,maxHeight:500})]}),o&&(0,f.jsxs)("div",{children:[(0,f.jsxs)("button",{onClick:a=>{a.stopPropagation(),B(a=>!a)},className:"flex items-center gap-2 py-1.5 text-xs group w-fit",children:[(0,f.jsx)(H,{className:"h-3.5 w-3.5 text-error/70"}),(0,f.jsx)("span",{className:"font-semibold text-error/80 group-hover:text-error transition-colors",children:"Failed Runs"}),(0,f.jsx)("span",{className:"rounded-full bg-error/10 border border-error/20 px-2 py-px text-xs font-semibold text-error tabular-nums",children:j.length}),A?(0,f.jsx)(U,{className:"h-3 w-3 text-error/40 group-hover:text-error/60"}):(0,f.jsx)(T,{className:"h-3 w-3 text-error/40 group-hover:text-error/60"})]}),A&&(0,f.jsx)("div",{className:"mt-1 opacity-70",children:(0,f.jsx)(cz,{runs:j,maxHeight:400})})]}),m&&(0,f.jsxs)("div",{children:[(0,f.jsxs)("button",{onClick:a=>{a.stopPropagation(),z(a=>!a)},className:"flex items-center gap-2 py-1.5 text-xs group w-fit",children:[(0,f.jsx)(S,{className:"h-3.5 w-3.5 text-foreground-muted/70"}),(0,f.jsx)("span",{className:"font-semibold text-foreground-muted group-hover:text-foreground-secondary transition-colors",children:"Completed History"}),(0,f.jsx)("span",{className:"rounded-full bg-background-secondary border border-border px-2 py-px text-xs font-semibold text-foreground-muted tabular-nums",children:i.length}),y?(0,f.jsx)(U,{className:"h-3 w-3 text-foreground-muted/60 group-hover:text-foreground-muted"}):(0,f.jsx)(T,{className:"h-3 w-3 text-foreground-muted/60 group-hover:text-foreground-muted"})]}),y&&(0,f.jsx)("div",{className:"mt-1 opacity-60",children:(0,f.jsx)(cz,{runs:i,maxHeight:400})})]})]}),O>5&&(0,f.jsx)(cC,{currentPage:w,totalItems:O,itemsPerPage:5,onPageChange:x,className:"mt-3"})]}))]})}function cH({icon:a,count:b,label:c,colorClass:d,bgClass:e,pulse:g,active:h,onClick:i}){let j=!!i;return(0,f.jsxs)("div",{role:j?"button":void 0,tabIndex:j?0:void 0,onClick:i,onKeyDown:j?a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),i?.(a))}:void 0,className:(0,n.cn)("rounded-md px-2.5 py-1.5 flex items-center gap-2 transition-all",e,j&&"cursor-pointer hover:opacity-80",h&&"ring-2 ring-offset-1 ring-offset-card",h&&d.replace("text-","ring-").replace(/\/\d+$/,"/50")),children:[(0,f.jsx)("span",{className:(0,n.cn)(d,g&&"animate-pulse"),children:a}),(0,f.jsxs)("div",{children:[(0,f.jsx)("p",{className:(0,n.cn)("text-sm font-bold tabular-nums leading-none",d),children:b}),(0,f.jsx)("p",{className:"text-xs leading-tight text-foreground-muted uppercase tracking-wider",children:c})]})]})}function cI(){return(0,f.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 items-start",children:[1,2,3].map(a=>(0,f.jsxs)("div",{className:"rounded-lg border border-border bg-card p-4 animate-pulse",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,f.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-foreground-muted/20"}),(0,f.jsx)("div",{className:"h-4 w-32 rounded bg-foreground-muted/10"})]}),(0,f.jsx)("div",{className:"h-1.5 w-full rounded-full bg-foreground-muted/10 mb-3"}),(0,f.jsxs)("div",{className:"flex items-center gap-3",children:[(0,f.jsx)("div",{className:"h-5 w-16 rounded-full bg-foreground-muted/10"}),(0,f.jsx)("div",{className:"h-5 w-16 rounded-full bg-foreground-muted/10"}),(0,f.jsx)("div",{className:"h-3 w-12 rounded bg-foreground-muted/10"})]})]},a))})}function cJ({error:a}){return(0,f.jsxs)("div",{"data-testid":"error-banner",className:"rounded-lg border border-error/20 bg-error-muted p-4 text-sm text-error",children:["Failed to load projects: ",a]})}function cK(){return(0,f.jsxs)("div",{"data-testid":"empty-state",className:"text-center py-16",children:[(0,f.jsx)(Q.FolderOpen,{className:"h-10 w-10 text-foreground-muted/30 mx-auto mb-3"}),(0,f.jsx)("p",{className:"text-sm text-foreground-muted mb-1",children:"No projects found"}),(0,f.jsxs)("p",{className:"text-xs text-foreground-muted/60",children:["Configure watch sources in"," ",(0,f.jsx)("button",{onClick:()=>window.dispatchEvent(new CustomEvent("open-settings")),className:"text-primary hover:underline",children:"Settings"})," ","or edit ",(0,f.jsx)("span",{className:"font-mono",children:"~/.a5c/observer.json"})]})]})}function cL(){return(0,f.jsxs)("div",{"data-testid":"idle-empty-state",className:"text-center py-16",children:[(0,f.jsx)(R.Eye,{className:"h-10 w-10 text-foreground-muted/30 mx-auto mb-3"}),(0,f.jsx)("p",{className:"text-sm text-foreground-muted mb-1",children:"All quiet — no active orchestration runs"}),(0,f.jsx)("p",{className:"text-xs text-foreground-muted/60",children:"Runs will appear here when babysitter processes are started"})]})}function cM({loading:a,error:b,filteredProjects:c,activeProjects:d,historyProjects:e,statusFilter:g,sortMode:h,cardStatusFilter:i,historyCollapsed:j,onHistoryCollapsedChange:k,onHideProject:l}){return a?(0,f.jsx)(cI,{}):b?(0,f.jsx)(cJ,{error:b}):0===c.length?(0,f.jsx)(cK,{}):(0,f.jsxs)("div",{className:"flex flex-col gap-8",children:[0===d.length&&0===e.length&&(0,f.jsx)(cL,{}),0===d.length&&e.length>0&&("all"===g||"stale"===g)&&(0,f.jsxs)("div",{"data-testid":"idle-with-history-banner",className:"flex items-center gap-2 px-3 py-2 rounded-md bg-background-secondary/50 border border-border w-fit",children:[(0,f.jsx)(G,{className:"h-3.5 w-3.5 text-foreground-muted/50"}),(0,f.jsx)("span",{className:"text-xs text-foreground-muted",children:"activity"===h?"No activity in the last 24 hours":"No runs in progress"})]}),d.length>0&&("all"===g||"stale"===g||"waiting"===g)&&(0,f.jsx)(V.ErrorBoundary,{section:"Active Runs",children:(0,f.jsxs)("section",{"data-testid":"active-runs-section",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:["activity"===h?(0,f.jsx)(N.Clock,{className:"h-4 w-4 text-primary"}):(0,f.jsx)(G,{className:"h-4 w-4 text-warning animate-pulse-dot"}),(0,f.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:"activity"===h?"Recent Activity":"In Progress"}),(0,f.jsx)("span",{className:(0,n.cn)("rounded-full px-2 py-px text-xs font-semibold tabular-nums","activity"===h?"bg-primary/10 border border-primary/20 text-primary":"bg-warning/10 border border-warning/20 text-warning"),children:d.length})]}),(0,f.jsx)("div",{"data-testid":"project-grid-active",className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 items-start",children:d.map(a=>(0,f.jsx)(cG,{project:a,statusFilter:i,sortMode:h,onHide:l},a.projectName))})]})}),("completed"===g||"failed"===g)&&(0,f.jsx)(V.ErrorBoundary,{section:"Filtered Results",children:(0,f.jsx)("div",{"data-testid":"project-grid-filtered",className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 items-start",children:c.map(a=>(0,f.jsx)(cG,{project:a,statusFilter:i,sortMode:h},a.projectName))})}),e.length>0&&("all"===g||"stale"===g)&&(0,f.jsx)(V.ErrorBoundary,{section:"Recent History",children:(0,f.jsxs)("section",{"data-testid":"recent-history-section",children:[(0,f.jsxs)("button",{onClick:()=>k(a=>!a),className:"flex items-center gap-2 mb-3 group w-fit",children:[(0,f.jsx)(S,{className:"h-4 w-4 text-foreground-muted/70"}),(0,f.jsx)("h2",{className:"text-sm font-semibold text-foreground-muted group-hover:text-foreground-secondary transition-colors",children:"activity"===h?"Earlier":"Recent History"}),(0,f.jsx)("span",{className:"rounded-full bg-background-secondary border border-border px-2 py-px text-xs font-semibold text-foreground-muted tabular-nums",children:e.length}),j?(0,f.jsx)(T,{className:"h-3.5 w-3.5 text-foreground-muted/60 group-hover:text-foreground-muted transition-colors"}):(0,f.jsx)(U,{className:"h-3.5 w-3.5 text-foreground-muted/60 group-hover:text-foreground-muted transition-colors"})]}),!j&&(0,f.jsx)("div",{className:"opacity-70",children:(0,f.jsx)("div",{"data-testid":"project-grid-history",className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 items-start",children:e.map(a=>(0,f.jsx)(cG,{project:a,statusFilter:i,sortMode:h},a.projectName))})})]})})]})}var cN=a.i(50944);let cO=(0,o.default)("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]),cP=(0,o.default)("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);function cQ(){let a=(0,cN.useRouter)(),[b,c]=(0,g.useState)(""),[d,e]=(0,g.useState)(""),[h,i]=(0,g.useState)([]),[j,k]=(0,g.useState)(!1),[l,m]=(0,g.useState)(!1),[o,p]=(0,g.useState)(-1),[q,r]=(0,g.useState)(!1),s=(0,g.useRef)(null),u=(0,g.useRef)(null),v=(0,g.useRef)(null);(0,g.useEffect)(()=>{let a=setTimeout(()=>{e(b.trim())},300);return()=>clearTimeout(a)},[b]),(0,g.useEffect)(()=>{if(!d){i([]),r(!1),p(-1);return}let a=!1;return async function(){m(!0);try{let b=new URLSearchParams({search:d,limit:"10"}),c=await fetch(`/api/runs?${b}`);if(!c.ok)throw Error("Search failed");let e=await c.json();a||(i(e.runs??[]),r(!0),p(-1))}catch{a||(i([]),r(!0))}finally{a||m(!1)}}(),()=>{a=!0}},[d]);let w=(0,g.useCallback)(b=>{k(!1),c(""),i([]),r(!1),a.push(`/runs/${b}`)},[a]),x=(0,g.useCallback)(a=>{if(j)switch(a.key){case"ArrowDown":a.preventDefault(),p(a=>a<h.length-1?a+1:0);break;case"ArrowUp":a.preventDefault(),p(a=>a>0?a-1:h.length-1);break;case"Enter":a.preventDefault(),o>=0&&o<h.length&&w(h[o].runId);break;case"Escape":a.preventDefault(),k(!1),s.current?.blur()}},[j,h,o,w]);(0,g.useEffect)(()=>{if(o>=0&&v.current){let a=v.current.querySelectorAll("[data-search-item]");a[o]?.scrollIntoView({block:"nearest"})}},[o]),(0,g.useEffect)(()=>{let a=a=>{(a.metaKey||a.ctrlKey)&&"k"===a.key&&(a.preventDefault(),s.current?.focus(),k(!0)),"/"!==a.key||a.metaKey||a.ctrlKey||a.altKey||a.target instanceof HTMLInputElement||a.target instanceof HTMLTextAreaElement||a.target instanceof HTMLSelectElement||a.target?.isContentEditable||(a.preventDefault(),s.current?.focus(),k(!0))};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[]),(0,g.useEffect)(()=>{let a=a=>{u.current&&!u.current.contains(a.target)&&k(!1)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[]);let y=j&&b.trim().length>0;return(0,f.jsxs)("div",{ref:u,className:"relative w-full max-w-xl mx-auto mb-6",children:[(0,f.jsxs)("div",{className:"relative",children:[(0,f.jsx)(cO,{className:"absolute left-3.5 top-1/2 -translate-y-1/2 h-4 w-4 text-foreground-muted pointer-events-none"}),(0,f.jsx)("input",{ref:s,type:"text",value:b,onChange:a=>{c(a.target.value),k(!0)},onFocus:()=>{b.trim()&&k(!0)},onKeyDown:x,placeholder:"Search runs by ID, process name, or task title...",className:(0,n.cn)("w-full rounded-lg border border-border bg-card/80 backdrop-blur-sm","pl-10 pr-20 py-2.5 text-sm text-foreground","placeholder:text-foreground-muted/60","focus:border-primary/40 focus:outline-none focus:ring-2 focus:ring-primary/30","focus:shadow-neon-glow-primary-focus transition-all"),"data-testid":"global-search-input"}),(0,f.jsxs)("div",{className:"absolute right-3 top-1/2 -translate-y-1/2 flex items-center gap-1.5",children:[b&&(0,f.jsx)("button",{onClick:()=>{c(""),i([]),r(!1),k(!1),s.current?.focus()},className:"rounded-md p-2 min-h-[44px] min-w-[44px] flex items-center justify-center text-foreground-muted hover:text-foreground-secondary transition-colors","aria-label":"Clear search",children:(0,f.jsx)(t.X,{className:"h-3.5 w-3.5"})}),(0,f.jsxs)("kbd",{className:"hidden sm:inline-flex items-center gap-0.5 rounded border border-border bg-background-secondary px-1.5 py-0.5 text-xs font-medium text-foreground-muted",children:[(0,f.jsx)("span",{className:"text-xs",children:"u">typeof navigator&&/Mac/i.test(navigator.userAgent)?"⌘":"Ctrl"}),(0,f.jsx)("span",{children:"K"})]})]})]}),y&&(0,f.jsxs)("div",{className:(0,n.cn)("absolute z-50 top-full left-0 right-0 mt-1.5","rounded-lg border border-border bg-card/95 backdrop-blur-md shadow-xl","overflow-hidden"),"data-testid":"global-search-dropdown",children:[l&&(0,f.jsxs)("div",{className:"flex items-center gap-2 px-4 py-3 text-xs text-foreground-muted",children:[(0,f.jsx)("div",{className:"h-3 w-3 rounded-full border-2 border-primary/40 border-t-primary animate-spin"}),"Searching..."]}),!l&&q&&0===h.length&&(0,f.jsxs)("div",{className:"px-4 py-6 text-center",children:[(0,f.jsx)(cO,{className:"h-5 w-5 text-foreground-muted/30 mx-auto mb-2"}),(0,f.jsxs)("p",{className:"text-xs text-foreground-muted",children:["No runs found for “",d,"”"]})]}),!l&&h.length>0&&(0,f.jsx)("ul",{ref:v,className:"max-h-80 overflow-y-auto py-1",role:"listbox",children:h.map((a,b)=>(0,f.jsxs)("li",{"data-search-item":!0,role:"option","aria-selected":b===o,onClick:()=>w(a.runId),className:(0,n.cn)("flex items-center gap-3 px-4 py-2.5 cursor-pointer transition-colors",b===o?"bg-primary/10":"hover:bg-background-secondary/60"),children:[(0,f.jsx)("span",{className:(0,n.cn)("h-2 w-2 rounded-full shrink-0","completed"===a.status?"bg-success":"failed"===a.status?"bg-error":"waiting"===a.status||"pending"===a.status?"bg-warning":"bg-foreground-muted")}),(0,f.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2",children:[(0,f.jsx)("span",{className:"text-sm font-medium text-foreground truncate",children:(0,af.friendlyProcessName)(a.processId)}),(0,f.jsx)(ae,{status:a.status,waitingKind:a.waitingKind,isStale:a.isStale})]}),(0,f.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[a.projectName&&(0,f.jsx)("span",{className:"text-xs text-foreground-muted",children:a.projectName}),(0,f.jsx)("span",{className:"font-mono text-xs text-info",children:(0,af.formatShortId)(a.runId,8)})]})]}),(0,f.jsx)(cP,{className:(0,n.cn)("h-3.5 w-3.5 shrink-0 transition-colors",b===o?"text-primary":"text-foreground-muted/40")})]},a.runId))})]})]})}a.s(["default",0,function(){let{projects:a,loading:b,error:c,metrics:d,allBreakpointRuns:e,summaryMetrics:j,bannerFingerprint:k,bannerDismissed:m,filterCounts:n,filteredProjects:o,activeProjects:p,historyProjects:q,statusFilter:r,sortMode:s,historyCollapsed:t,cardStatusFilter:u,hasStaleRuns:v,catchUp:w,setStatusFilter:x,setSortMode:z,setHistoryCollapsed:A,setDismissedFingerprint:C,toggleMetricFilter:D,handleHideProject:F}=function(){let a=(0,g.useRef)(()=>{}),b=function(a={}){let{sseFilter:b,onFlush:c,enabled:d=!0}=a,[e,f]=(0,g.useState)(!1),[h,j]=(0,g.useState)(0),k=(0,g.useRef)([]),l=(0,g.useRef)(!1),m=(0,g.useRef)(null),n=(0,g.useRef)(b);n.current=b;let o=(0,g.useRef)(c);o.current=c;let p=(0,g.useCallback)(()=>{l.current=!1,f(!1),j(0),k.current=[],m.current&&(clearTimeout(m.current),m.current=null),o.current?.()},[]),q=(0,g.useCallback)(()=>{l.current&&p()},[p]);return(0,g.useEffect)(()=>{if(!d)return;let a=(0,i.subscribe)(a=>{if("connected"===a.type||"disconnect"===a.type||"error"===a.type||n.current&&!n.current(a))return;let b=Date.now();k.current.push(b),k.current=k.current.filter(a=>b-a<5e3),l.current?(j(a=>a+1),m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{p()},3e3)):k.current.length>=10&&(l.current=!0,f(!0),j(k.current.length),m.current=setTimeout(()=>{p()},3e3))});return()=>{a(),m.current&&(clearTimeout(m.current),m.current=null)}},[d,p]),{active:e,bufferedCount:h,flush:q}}({sseFilter:(0,g.useCallback)(a=>"update"===a.type||"new-run"===a.type,[]),onFlush:()=>a.current()}),{projects:c,recentCompletionWindowMs:d,loading:e,error:f,refresh:j}=function(a=5e3,b=!1){let{data:c,loading:d,error:e,refresh:f}=(0,h.useSmartPolling)("/api/runs?mode=projects",{interval:a,sseFilter:a=>"update"===a.type||"new-run"===a.type,suppressSseRefetch:b});return{projects:c?.projects||[],recentCompletionWindowMs:c?.recentCompletionWindowMs??144e5,loading:d,error:e,refresh:f}}(5e3,b.active);a.current=j;let[k,m]=(0,g.useState)("all"),[n,o]=l("observer:sort-mode","status"),[p,q]=l("banner-dismissed-fingerprint",null),r=(0,g.useCallback)(a=>{m(b=>b===a?"all":a)},[]),s=(0,g.useCallback)(a=>{j()},[j]),t=(0,g.useMemo)(()=>{let a=c.reduce((a,b)=>a+b.totalRuns,0),b=c.reduce((a,b)=>a+b.activeRuns,0),d=c.reduce((a,b)=>a+b.completedRuns,0),e=c.reduce((a,b)=>a+b.failedRuns,0),f=c.reduce((a,b)=>a+b.staleRuns,0);return{totalRuns:a,activeRuns:b,completedRuns:d,failedRuns:e,staleRuns:f,totalTasks:c.reduce((a,b)=>a+b.totalTasks,0),completedTasks:c.reduce((a,b)=>a+b.completedTasksAggregate,0)}},[c]),u=(0,g.useMemo)(()=>c.flatMap(a=>a.breakpointRuns??[]),[c]),v=(0,g.useMemo)(()=>({totalProjects:c.length,activeRuns:t.activeRuns,failedRuns:t.failedRuns,completedRuns:t.completedRuns,staleRuns:t.staleRuns,pendingBreakpoints:c.reduce((a,b)=>a+b.pendingBreakpoints,0)}),[c,t]),w=`${v.failedRuns}-${v.staleRuns}-${v.pendingBreakpoints}`,x=(0,g.useMemo)(()=>({all:t.totalRuns,waiting:t.activeRuns,stale:t.staleRuns,completed:t.completedRuns,failed:t.failedRuns,pending:0}),[t]),y=(0,g.useMemo)(()=>"all"===k?c:"stale"===k?c.filter(a=>a.staleRuns>0):c.filter(a=>"waiting"===k?a.activeRuns>0:"completed"===k?a.completedRuns>0:"failed"===k&&a.failedRuns>0),[c,k]),z="stale"===k?"all":k,{activeProjects:A,historyProjects:B}=(0,g.useMemo)(()=>{let a=Date.now();return"activity"===n?{activeProjects:y.filter(b=>a-new Date(b.latestUpdate).getTime()<864e5),historyProjects:y.filter(b=>a-new Date(b.latestUpdate).getTime()>=864e5)}:{activeProjects:y.filter(b=>b.activeRuns>0||b.staleRuns>0||a-new Date(b.latestUpdate).getTime()<d),historyProjects:y.filter(b=>0===b.activeRuns&&0===b.staleRuns&&a-new Date(b.latestUpdate).getTime()>=d)}},[y,d,n]),[C,D]=l("observer:history-collapsed",B.length>5),E=t.staleRuns>0;return{projects:c,loading:e,error:f,metrics:t,allBreakpointRuns:u,summaryMetrics:v,bannerFingerprint:w,bannerDismissed:p===w,filterCounts:x,filteredProjects:y,activeProjects:A,historyProjects:B,statusFilter:k,sortMode:n,historyCollapsed:C,cardStatusFilter:z,hasStaleRuns:E,catchUp:b,setStatusFilter:m,setSortMode:o,setHistoryCollapsed:D,setDismissedFingerprint:q,toggleMetricFilter:r,handleHideProject:s}}(),G=!b&&!c&&a.length>0;return(0,f.jsx)("div",{className:"bg-gradient-brand flex-1",children:(0,f.jsxs)("div",{className:"mx-auto max-w-[1600px] px-6 py-6",children:[(0,f.jsx)(cQ,{}),G&&(0,f.jsx)(V.ErrorBoundary,{section:"Executive Summary",children:(0,f.jsx)(E,{metrics:j,onFilterChange:x,dismissed:m,onDismiss:()=>C(k)})}),G&&(0,f.jsx)(V.ErrorBoundary,{section:"KPI Metrics",children:(0,f.jsx)(L,{metrics:d,statusFilter:r,hasStaleRuns:v,onToggleFilter:D})}),w.active&&(0,f.jsx)(B,{catchUp:w,summary:{failedRuns:j.failedRuns,completedRuns:j.completedRuns,pendingBreakpoints:j.pendingBreakpoints}}),!b&&!c&&e.length>0&&(0,f.jsx)(V.ErrorBoundary,{section:"Breakpoint Banner",children:(0,f.jsx)("div",{className:"sticky top-0 z-40",children:(0,f.jsx)(y,{breakpointRuns:e})})}),(0,f.jsx)(P,{statusFilter:r,onStatusFilterChange:x,filterCounts:n,sortMode:s,onSortModeToggle:()=>z(a=>"status"===a?"activity":"status"),filteredProjectCount:o.length}),(0,f.jsx)(cM,{loading:b,error:c,filteredProjects:o,activeProjects:p,historyProjects:q,statusFilter:r,sortMode:s,cardStatusFilter:u,historyCollapsed:t,onHistoryCollapsedChange:A,onHideProject:F})]})})}],23252)}];
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=_0wrbwro._.js.map
|