@aeolus-fleet/console 0.19.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +6 -0
- package/.next/build-manifest.json +3 -3
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- package/.next/routes-manifest.json +40 -0
- package/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/squadrons/[procedure]/route.js +1 -1
- package/.next/server/app/api/squadrons/[procedure]/route.js.nft.json +1 -1
- package/.next/server/app/api/trierarch-plugin/[procedure]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/trierarch-plugin/[procedure]/route/build-manifest.json +12 -0
- package/.next/server/app/api/trierarch-plugin/[procedure]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/trierarch-plugin/[procedure]/route.js +6 -0
- package/.next/server/app/api/trierarch-plugin/[procedure]/route.js.nft.json +1 -0
- package/.next/server/app/api/trierarch-plugin/[procedure]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/health/route.js +1 -1
- package/.next/server/app/health/route.js.nft.json +1 -1
- package/.next/server/app/inbox/page.js.nft.json +1 -1
- package/.next/server/app/inbox/page_client-reference-manifest.js +1 -1
- package/.next/server/app/labels/page/app-paths-manifest.json +3 -0
- package/.next/server/app/labels/page/build-manifest.json +20 -0
- package/.next/server/app/labels/page/next-font-manifest.json +11 -0
- package/.next/server/app/labels/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/labels/page/server-reference-manifest.json +4 -0
- package/.next/server/app/labels/page.js +14 -0
- package/.next/server/app/labels/page.js.nft.json +1 -0
- package/.next/server/app/labels/page_client-reference-manifest.js +3 -0
- package/.next/server/app/needs-attention/page.js.nft.json +1 -1
- package/.next/server/app/needs-attention/page_client-reference-manifest.js +1 -1
- package/.next/server/app/needs-crew/page/app-paths-manifest.json +3 -0
- package/.next/server/app/needs-crew/page/build-manifest.json +20 -0
- package/.next/server/app/needs-crew/page/next-font-manifest.json +11 -0
- package/.next/server/app/needs-crew/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/needs-crew/page/server-reference-manifest.json +4 -0
- package/.next/server/app/needs-crew/page.js +14 -0
- package/.next/server/app/needs-crew/page.js.nft.json +1 -0
- package/.next/server/app/needs-crew/page_client-reference-manifest.js +3 -0
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/ships/[shipId]/page.js.nft.json +1 -1
- package/.next/server/app/ships/[shipId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/sign-in/failed/page.js.nft.json +1 -1
- package/.next/server/app/sign-in/failed/page_client-reference-manifest.js +1 -1
- package/.next/server/app/sign-in/page.js.nft.json +1 -1
- package/.next/server/app/sign-in/page_client-reference-manifest.js +1 -1
- package/.next/server/app/squadrons/[squadronId]/page.js.nft.json +1 -1
- package/.next/server/app/squadrons/[squadronId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/squadrons/blueprints/[name]/page.js.nft.json +1 -1
- package/.next/server/app/squadrons/blueprints/[name]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/squadrons/connection/route.js +3 -3
- package/.next/server/app/squadrons/connection/route.js.nft.json +1 -1
- package/.next/server/app/squadrons/page.js.nft.json +1 -1
- package/.next/server/app/squadrons/page_client-reference-manifest.js +1 -1
- package/.next/server/app/squadrons/templates/[name]/page.js.nft.json +1 -1
- package/.next/server/app/squadrons/templates/[name]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/trierarch-plugin/connection/route/app-paths-manifest.json +3 -0
- package/.next/server/app/trierarch-plugin/connection/route/build-manifest.json +12 -0
- package/.next/server/app/trierarch-plugin/connection/route/server-reference-manifest.json +4 -0
- package/.next/server/app/trierarch-plugin/connection/route.js +8 -0
- package/.next/server/app/trierarch-plugin/connection/route.js.nft.json +1 -0
- package/.next/server/app/trierarch-plugin/connection/route_client-reference-manifest.js +3 -0
- package/.next/server/app/trierarchs/[shipId]/page/app-paths-manifest.json +3 -0
- package/.next/server/app/trierarchs/[shipId]/page/build-manifest.json +20 -0
- package/.next/server/app/trierarchs/[shipId]/page/next-font-manifest.json +11 -0
- package/.next/server/app/trierarchs/[shipId]/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/trierarchs/[shipId]/page/server-reference-manifest.json +4 -0
- package/.next/server/app/trierarchs/[shipId]/page.js +14 -0
- package/.next/server/app/trierarchs/[shipId]/page.js.nft.json +1 -0
- package/.next/server/app/trierarchs/[shipId]/page_client-reference-manifest.js +3 -0
- package/.next/server/app/trierarchs/page/app-paths-manifest.json +3 -0
- package/.next/server/app/trierarchs/page/build-manifest.json +20 -0
- package/.next/server/app/trierarchs/page/next-font-manifest.json +11 -0
- package/.next/server/app/trierarchs/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/trierarchs/page/server-reference-manifest.json +4 -0
- package/.next/server/app/trierarchs/page.js +14 -0
- package/.next/server/app/trierarchs/page.js.nft.json +1 -0
- package/.next/server/app/trierarchs/page_client-reference-manifest.js +3 -0
- package/.next/server/app/version/route.js +3 -2
- package/.next/server/app/version/route.js.nft.json +1 -1
- package/.next/server/app-paths-manifest.json +6 -0
- package/.next/server/chunks/04lx_next-internal_server_app_api_trierarch-plugin_[procedure]_route_actions_0pov8t_.js +3 -0
- package/.next/server/chunks/1eui__next-internal_server_app_trierarch-plugin_connection_route_actions_1jgdi18.js +3 -0
- package/.next/server/chunks/{[root-of-the-server]__0w2mqex._.js → [root-of-the-server]__14rtv1n._.js} +2 -2
- package/.next/server/chunks/[root-of-the-server]__1c6takz._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1f7engf._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1f_8ohl._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1h3r48l._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1kc3njk._.js +3 -0
- package/.next/server/chunks/_0h366h9._.js +3 -0
- package/.next/server/chunks/packages_console_lib_connect-plugin_ts_197hf-1._.js +3 -0
- package/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_trierarchs_[shipId]_page_actions_0e_rw4u.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0qbhnxj._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__18derwo._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__18g_7b-._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1m1u7bl._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1uan58j._.js +3 -3
- package/.next/server/chunks/ssr/_01f7zv3._.js +3 -0
- package/.next/server/chunks/ssr/_06c6zlg._.js +3 -0
- package/.next/server/chunks/ssr/_08f4mzr._.js +3 -0
- package/.next/server/chunks/ssr/_0bmd2ey._.js +3 -0
- package/.next/server/chunks/ssr/{_0plfddz._.js → _0dogq79._.js} +2 -2
- package/.next/server/chunks/ssr/_0exrpxl._.js +3 -0
- package/.next/server/chunks/ssr/_0gt230s._.js +3 -0
- package/.next/server/chunks/ssr/_0i0_i88._.js +3 -0
- package/.next/server/chunks/ssr/_0mob-i2._.js +3 -0
- package/.next/server/chunks/ssr/_0n4kirm._.js +3 -0
- package/.next/server/chunks/ssr/_0rvujxo._.js +3 -0
- package/.next/server/chunks/ssr/{_00yiulp._.js → _0s2b6hb._.js} +2 -2
- package/.next/server/chunks/ssr/{_050suap._.js → _0sko-kt._.js} +2 -2
- package/.next/server/chunks/ssr/_0snpwr0._.js +3 -0
- package/.next/server/chunks/ssr/_0t1jjxf._.js +1 -1
- package/.next/server/chunks/ssr/_0udw2gs._.js +3 -0
- package/.next/server/chunks/ssr/{_0-rsrfr._.js → _0wtj0e-._.js} +2 -2
- package/.next/server/chunks/ssr/_0xi2v5k._.js +3 -0
- package/.next/server/chunks/ssr/{_0igx2qf._.js → _0xvm1ng._.js} +2 -2
- package/.next/server/chunks/ssr/_0ziovn_._.js +3 -0
- package/.next/server/chunks/ssr/_1442xyx._.js +3 -0
- package/.next/server/chunks/ssr/_16jiag3._.js +3 -0
- package/.next/server/chunks/ssr/_181kpys._.js +3 -0
- package/.next/server/chunks/ssr/_19e0e-9._.js +3 -3
- package/.next/server/chunks/ssr/_1bqclkf._.js +3 -0
- package/.next/server/chunks/ssr/_1cn9_0f._.js +3 -0
- package/.next/server/chunks/ssr/_1d6cgif._.js +3 -0
- package/.next/server/chunks/ssr/_1g2wuzd._.js +1 -1
- package/.next/server/chunks/ssr/_1hcta3c._.js +3 -0
- package/.next/server/chunks/ssr/_1kv8ma5._.js +3 -0
- package/.next/server/chunks/ssr/{_1s07u90._.js → _1lu1eda._.js} +2 -2
- package/.next/server/chunks/ssr/_1ntb2un._.js +3 -0
- package/.next/server/chunks/ssr/_1ommvbv._.js +3 -0
- package/.next/server/chunks/ssr/_1oofkty._.js +3 -0
- package/.next/server/chunks/ssr/_1oqoc4e._.js +3 -0
- package/.next/server/chunks/ssr/_1r6ce_7._.js +3 -0
- package/.next/server/chunks/ssr/_1tsejml._.js +3 -0
- package/.next/server/chunks/ssr/{_1s8-j5t._.js → _1ub6rp3._.js} +2 -2
- package/.next/server/chunks/ssr/_20pku2-._.js +3 -0
- package/.next/server/chunks/ssr/packages_console_023iioa._.js +3 -0
- package/.next/server/chunks/ssr/packages_console_03isfmy._.js +3 -0
- package/.next/server/chunks/ssr/packages_console_0lv43wr._.js +3 -0
- package/.next/server/chunks/ssr/packages_console_10fqil_._.js +1 -1
- package/.next/server/chunks/ssr/packages_console__next-internal_server_app_labels_page_actions_0-7_20w.js +3 -0
- package/.next/server/chunks/ssr/packages_console__next-internal_server_app_needs-crew_page_actions_0rw7fgn.js +3 -0
- package/.next/server/chunks/ssr/packages_console__next-internal_server_app_trierarchs_page_actions_1zds6hw.js +3 -0
- package/.next/server/chunks/ssr/packages_console_app_inbox_page_tsx_1bpmlpx._.js +1 -1
- package/.next/server/chunks/ssr/packages_console_app_labels_page_tsx_0xxovjk._.js +3 -0
- package/.next/server/chunks/ssr/packages_console_app_needs-attention_page_tsx_1agfico._.js +1 -1
- package/.next/server/chunks/ssr/packages_console_app_page_tsx_16ln4px._.js +1 -1
- package/.next/server/chunks/ssr/packages_console_app_providers_tsx_06ai92n._.js +1 -1
- package/.next/server/chunks/ssr/packages_console_app_settings_page_tsx_1zqt7sk._.js +1 -1
- package/.next/server/chunks/ssr/packages_console_app_ships_[shipId]_page_tsx_0fudjay._.js +1 -1
- package/.next/server/chunks/ssr/packages_console_app_squadrons_[squadronId]_page_tsx_1umxs1g._.js +1 -1
- package/.next/server/chunks/ssr/packages_console_app_squadrons_page_tsx_1w6ym6z._.js +1 -1
- package/.next/server/chunks/ssr/packages_console_app_trierarchs_[shipId]_page_tsx_1rqyoj3._.js +3 -0
- package/.next/server/chunks/ssr/{packages_console_components_1_4zc74._.js → packages_console_components_1-5gwzg._.js} +2 -2
- package/.next/server/chunks/ssr/packages_console_components_atoms_select_tsx_1v_3j3i._.js +1 -1
- package/.next/server/chunks/ssr/packages_console_lib_crew-settings-form_ts_1_mrtph._.js +3 -0
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/next-font-manifest.json +16 -0
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/00pjrzynt0in-.js +1 -0
- package/.next/static/chunks/038sk3qwghvto.js +1 -0
- package/.next/static/chunks/{1cbzjk-qf984o.js → 0e6zs-5ou_ra4.js} +1 -1
- package/.next/static/chunks/0ez9e35zkfaz5.js +1 -0
- package/.next/static/chunks/0f5-vxw1bk8ym.js +1 -0
- package/.next/static/chunks/0vlyibw4rexm7.js +1 -0
- package/.next/static/chunks/{2ff-56ohrio7h.js → 0z1nza3zgavbi.js} +1 -1
- package/.next/static/chunks/16o3i61aw3cj2.js +1 -0
- package/.next/static/chunks/177iv_tzmr_0a.js +1 -0
- package/.next/static/chunks/17quvh6filhxh.js +1 -0
- package/.next/static/chunks/19x_u3cmb9s_j.js +1 -0
- package/.next/static/chunks/1auwxv_urmljv.js +1 -0
- package/.next/static/chunks/1mbia-jrmgpuu.js +1 -0
- package/.next/static/chunks/1zuzmwfsw_7q0.js +1 -0
- package/.next/static/chunks/{2z2hhi291ems4.js → 21jwgqx67q8ql.js} +12 -12
- package/.next/static/chunks/26dg2z_6kosr0.js +1 -0
- package/.next/static/chunks/2_txjvbug4b86.js +1 -0
- package/.next/static/chunks/2c1daktq2hun-.css +3 -0
- package/.next/static/chunks/{04p19br-6pr3q.js → 2k5tcu7bvrhet.js} +1 -1
- package/.next/static/chunks/2ne-qdcv-7ck1.js +1 -0
- package/.next/static/chunks/2r01e5tqyyrsv.js +1 -0
- package/.next/static/chunks/{0hl9b82m3b_kf.js → 2zu1o4z0tmf0-.js} +1 -1
- package/.next/static/chunks/{22wd2oyjf0iq_.js → 30ux5-xn650iq.js} +1 -1
- package/.next/static/chunks/32oc7qg77tpjj.js +1 -0
- package/.next/static/chunks/36_a72wj7_f-y.js +1 -0
- package/.next/static/chunks/39-cyg4qvxgbm.js +1 -0
- package/.next/static/chunks/3b5uomyz3knol.js +1 -0
- package/.next/static/chunks/3e1veij7vs6ao.js +1 -0
- package/.next/static/chunks/3eaxbdj-y982h.js +1 -0
- package/.next/static/chunks/{0nchi43nyih52.js → 3evbxrltn9tcu.js} +1 -1
- package/.next/static/chunks/3jsj5ozfio3me.js +1 -0
- package/.next/static/chunks/3pkfx52bufv4g.js +1 -0
- package/.next/static/chunks/{2quoh5csh67oz.js → 3t2amxc2hojri.js} +1 -1
- package/.next/static/chunks/3x_52f9if0z-8.js +1 -0
- package/.next/static/chunks/42y_hgylfwlq5.js +1 -0
- package/README.md +1 -0
- package/package.json +3 -3
- package/.next/server/chunks/[root-of-the-server]__0eg7gro._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__11ajlfh._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1w1vtvn._.js +0 -3
- package/.next/server/chunks/_1mul6_v._.js +0 -3
- package/.next/server/chunks/ssr/_01eh2h5._.js +0 -3
- package/.next/server/chunks/ssr/_05wjy-d._.js +0 -3
- package/.next/server/chunks/ssr/_09pq8b7._.js +0 -3
- package/.next/server/chunks/ssr/_0_6abve._.js +0 -3
- package/.next/server/chunks/ssr/_0aqa8e3._.js +0 -3
- package/.next/server/chunks/ssr/_0c1ebla._.js +0 -3
- package/.next/server/chunks/ssr/_0g98qoq._.js +0 -3
- package/.next/server/chunks/ssr/_0k0kffc._.js +0 -3
- package/.next/server/chunks/ssr/_0ksc8ky._.js +0 -3
- package/.next/server/chunks/ssr/_0nxk8e5._.js +0 -3
- package/.next/server/chunks/ssr/_0sh180u._.js +0 -3
- package/.next/server/chunks/ssr/_0vz-_zq._.js +0 -3
- package/.next/server/chunks/ssr/_0y_ez3b._.js +0 -3
- package/.next/server/chunks/ssr/_0zz00ec._.js +0 -3
- package/.next/server/chunks/ssr/_101_mtq._.js +0 -3
- package/.next/server/chunks/ssr/_10vocmg._.js +0 -3
- package/.next/server/chunks/ssr/_16klr-g._.js +0 -3
- package/.next/server/chunks/ssr/_1_hm4gt._.js +0 -3
- package/.next/server/chunks/ssr/_1c2ijn5._.js +0 -3
- package/.next/server/chunks/ssr/_1jgnfkf._.js +0 -3
- package/.next/server/chunks/ssr/_1m_b36m._.js +0 -3
- package/.next/server/chunks/ssr/_1pif908._.js +0 -3
- package/.next/server/chunks/ssr/_20fp5al._.js +0 -3
- package/.next/static/chunks/05xsztb02v-3h.js +0 -1
- package/.next/static/chunks/0atm4wesk-4u8.js +0 -1
- package/.next/static/chunks/0es5vdu6lt-lm.css +0 -3
- package/.next/static/chunks/0jkliy--t1bbh.js +0 -1
- package/.next/static/chunks/0oh4dxohbk7m8.js +0 -1
- package/.next/static/chunks/0w8wux_7extu3.js +0 -1
- package/.next/static/chunks/0xdkx7wg739q7.js +0 -1
- package/.next/static/chunks/1q-shkfypoia-.js +0 -1
- package/.next/static/chunks/1t5mkoni0wrc0.js +0 -1
- package/.next/static/chunks/21py3ha_f_e3-.js +0 -1
- package/.next/static/chunks/2t6jzvnrf9ejw.js +0 -1
- package/.next/static/chunks/32-17dotvltga.js +0 -1
- package/.next/static/chunks/3m4-wgj579r4x.js +0 -1
- package/.next/static/chunks/3tsjbqptivphr.js +0 -1
- package/.next/static/chunks/42-u_9nvmdste.js +0 -1
- /package/.next/static/{4BHf_wBvFUce1tC4Uw_GD → LHmQaS8aizP80vXh3K-ws}/_buildManifest.js +0 -0
- /package/.next/static/{4BHf_wBvFUce1tC4Uw_GD → LHmQaS8aizP80vXh3K-ws}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{4BHf_wBvFUce1tC4Uw_GD → LHmQaS8aizP80vXh3K-ws}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[31702,a=>{"use strict";var b=a.i(87924),c=a.i(50944),d=a.i(72131),e=a.i(88191),f=a.i(15439),g=a.i(2549),h=a.i(83786),i=a.i(68698),j=a.i(41146),k=a.i(97024),l=a.i(48819),m=a.i(80487),n=a.i(10023),o=a.i(9854),p=a.i(72872),q=a.i(31429),r=a.i(12068),s=a.i(77339),t=a.i(24173),u=a.i(40392),v=a.i(50808),w=a.i(90468),x=a.i(23063);function y({party:a}){let c=a.name===q.OPERATOR_NAME;return(0,b.jsx)(w.ShipName,{name:a.name,shipId:a.id,size:"meta",isOperator:c,isSuffixShown:!c})}function z({delivery:a}){let{sender:c,recipient:d}=a.message;return(0,b.jsxs)("span",{className:"flex min-w-0 flex-wrap items-baseline gap-x-1.5 text-meta text-muted-foreground",children:[(0,b.jsx)(y,{party:c}),(0,b.jsx)("span",{"aria-hidden":!0,children:"→"}),(0,b.jsx)("span",{className:"sr-only",children:"to"}),"ship"===d.kind?(0,b.jsx)(y,{party:d.ship}):(0,b.jsxs)("span",{children:["any ship of type ",d.type]})]})}function A({delivery:a}){let{payload:c,contentType:d}=a.message;return(0,b.jsx)("span",{className:(0,m.classNames)("block min-w-0 truncate text-foreground",(0,o.isJson)(d)?"font-mono text-id":"text-body max-sm:text-body-touch"),title:c,children:c.split("\n")[0]})}function B(a){return`Received ${String(a.attempts)} times, never acknowledged.`}function C(a){var b;return`the message from ${a.message.sender.name} to ${"ship"===(b=a.message.recipient).kind?b.ship.name:`any ship of type ${b.type}`}`}function D({delivery:a,onResend:c,onDismiss:d,pendingIds:e,layout:f}){let g=e.has(a.deliveryId),h="phone"===f;if(void 0===c&&void 0===d)return null;let i=void 0!==c&&(0,n.canResend)(a)?(0,b.jsx)(r.Button,{size:h?"touch":"sm",variant:h?"primary":"secondary",icon:(0,b.jsx)(l.RotateCw,{"aria-hidden":!0}),isLoading:g,"data-testid":"attention-resend","aria-label":`Resend ${C(a)}`,onClick:()=>{c(a.deliveryId)},className:h?"flex-1":void 0,children:"Resend"}):null,j=void 0===d?null:(0,b.jsx)(r.Button,{size:h?"touch":"sm",variant:h?"secondary":"ghost",disabled:g,"data-testid":"attention-dismiss","aria-label":`Dismiss ${C(a)}`,onClick:()=>{d(a.deliveryId)},className:h?"flex-1":void 0,children:"Dismiss"});return h?(0,b.jsxs)("div",{className:"flex gap-2 pt-1",children:[j,i]}):(0,b.jsxs)("div",{className:"flex items-center justify-end gap-1.5",children:[i,j]})}function E({deliveries:a,onOpen:c,now:d,...e}){return(0,b.jsxs)("div",{className:"flex flex-col gap-2 max-sm:hidden",children:[(0,b.jsxs)(s.Table,{"aria-label":"Undeliverable deliveries",children:[(0,b.jsx)(s.TableHeader,{children:(0,b.jsxs)(s.TableRow,{children:[(0,b.jsx)(s.TableHead,{children:"State"}),(0,b.jsx)(s.TableHead,{children:"Message"}),(0,b.jsx)(s.TableHead,{children:"Reason"}),(0,b.jsx)(s.TableHead,{children:"Since"}),(0,b.jsx)(s.TableHead,{children:"Actions"})]})}),(0,b.jsx)(s.TableBody,{children:a.map(a=>{let f=new Date(a.since);return(0,b.jsxs)(s.TableRow,{"data-testid":"attention-row","data-delivery-id":a.deliveryId,children:[(0,b.jsx)(s.TableCell,{className:"align-top",children:(0,b.jsx)(x.StatusBadge,{status:"undeliverable"})}),(0,b.jsx)(s.TableCell,{className:"max-w-96 align-top",children:(0,b.jsxs)("button",{type:"button","aria-label":`Open ${C(a)}`,onClick:()=>{c(a)},className:"flex w-full min-w-0 flex-col gap-0.5 rounded-xs text-left focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",children:[(0,b.jsx)(A,{delivery:a}),(0,b.jsx)(z,{delivery:a})]})}),(0,b.jsx)(s.TableCell,{className:"max-w-48 align-top text-meta whitespace-normal text-muted-foreground",children:B(a)}),(0,b.jsx)(s.TableCell,{className:"align-top",children:(0,b.jsxs)("span",{className:"flex flex-col gap-0.5 tabular-nums",children:[(0,b.jsx)("time",{dateTime:a.since,title:(0,p.fullDateTime)(f),className:"text-body text-foreground",children:(0,p.shortDateTime)(f)}),(0,b.jsxs)("span",{className:"text-meta text-muted-foreground",children:[(0,p.duration)(f,d)," ago"]})]})}),(0,b.jsx)(s.TableCell,{className:"align-top",children:(0,b.jsx)(D,{delivery:a,layout:"table",...e})})]},a.deliveryId)})})]}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"Resend creates a new message with the same payload, linked to the original. Dismiss marks the delivery resolved. Abandoned deliveries are not listed here."})]})}function F({deliveries:a,onOpen:c,now:d,...e}){return(0,b.jsx)("ul",{"aria-label":"Undeliverable deliveries",className:"flex flex-col gap-3 sm:hidden",children:a.map(a=>{let f=new Date(a.since),g=d.getTime()-f.getTime()<864e5?(0,p.clockTime)(f):(0,p.shortDateTime)(f);return(0,b.jsxs)("li",{"data-testid":"attention-row","data-delivery-id":a.deliveryId,className:"flex flex-col gap-1.5 rounded-lg border border-border bg-card px-3.5 py-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)(x.StatusBadge,{status:"undeliverable"}),(0,b.jsxs)("button",{type:"button","aria-label":`Open ${C(a)}`,onClick:()=>{c(a)},className:"inline-flex items-center gap-1 rounded-xs text-meta text-muted-foreground tabular-nums focus-visible:outline-2 focus-visible:outline-ring [&_svg]:size-(--size-icon-sm)",children:[(0,p.duration)(f,d),(0,b.jsx)(j.ChevronRight,{"aria-hidden":!0})]})]}),(0,b.jsx)(A,{delivery:a}),(0,b.jsx)(z,{delivery:a}),(0,b.jsxs)("p",{className:"text-meta text-muted-foreground",children:[B(a)," Since"," ",(0,b.jsx)("time",{dateTime:a.since,title:(0,p.fullDateTime)(f),className:"tabular-nums",children:g}),"."]}),(0,b.jsx)(D,{delivery:a,layout:"phone",...e})]},a.deliveryId)})})}function G({deliveries:a,state:c,onRetry:d,...e}){return"loading"===c?(0,b.jsxs)("div",{"data-slot":"needs-attention-list","data-state":"loading",children:[(0,b.jsx)(v.LoadingSkeleton,{variant:"table",rows:2,label:"Loading Needs attention",className:"max-sm:hidden"}),(0,b.jsx)(v.LoadingSkeleton,{variant:"list",rows:2,label:"Loading Needs attention",className:"sm:hidden"})]}):"error"===c?(0,b.jsx)("div",{"data-slot":"needs-attention-list","data-state":"error","data-testid":"attention-error",children:(0,b.jsx)(u.InlineError,{variant:"page",title:"Couldn’t load Needs attention",description:"This page couldn’t reach the fleet server. Undeliverable deliveries are kept on the server, so nothing is lost.",onRetry:d})}):0===a.length?(0,b.jsx)("div",{"data-slot":"needs-attention-list","data-state":"empty","data-testid":"attention-empty",children:(0,b.jsx)(t.EmptyState,{icon:(0,b.jsx)(k.CircleCheck,{className:"text-tone-ok-fg"}),title:"Nothing needs your attention",description:"Undeliverable deliveries show up here as soon as they happen."})}):(0,b.jsxs)("div",{"data-slot":"needs-attention-list","data-state":"ready",className:"flex flex-col gap-3",children:[(0,b.jsx)(E,{deliveries:a,...e}),(0,b.jsx)(F,{deliveries:a,...e})]})}var H=a.i(42231),I=a.i(38246),J=a.i(8219),K=a.i(75971),L=a.i(92717),M=a.i(58523);function N({members:a,ships:c,now:d,renderAction:e}){return(0,b.jsx)("ul",{"data-testid":"silent-members",className:"divide-y divide-border overflow-hidden rounded-lg border border-border",children:a.map(({squadronId:a,member:f})=>{let{lastSeenAt:g}=f.crew;return(0,b.jsxs)("li",{"data-testid":"silent-member",className:"flex flex-wrap items-center gap-x-4 gap-y-1.5 px-3 py-2.5",children:[(0,b.jsxs)("span",{className:"flex min-w-0 flex-col gap-1",children:[(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsx)(K.HealthIndicator,{health:"silent"}),(0,b.jsx)("span",{className:"font-medium",children:f.name})]}),(0,b.jsx)(M.SquadronTag,{squadronId:a,role:f.role,size:"sm"})]}),(0,b.jsxs)("span",{className:"flex flex-col text-meta",children:[(0,b.jsx)("span",{children:null===g?"never seen":`not seen for ${(0,p.duration)(new Date(g),d)}`}),(0,b.jsxs)("span",{className:"text-muted-foreground",children:["checks in ",(0,J.checkInText)(f.checkInMinutes)]})]}),(0,b.jsx)("span",{className:"grow",children:(0,b.jsx)(L.ReportLine,{report:c.get(f.shipId)?.report??null,now:d,variant:"row",testId:"silent-member-report"})}),e?.({squadronId:a,member:f}),(0,b.jsxs)(I.default,{href:`/squadrons/${a}`,className:"inline-flex items-center gap-1 text-meta font-medium hover:underline",children:["Open",(0,b.jsx)(j.ChevronRight,{"aria-hidden":!0,className:"size-(--size-icon-sm)"})]})]},f.shipId)})})}var O=a.i(2466),P=a.i(65563),Q=a.i(26949),R=a.i(67336),S=a.i(68450),T=a.i(94764),U=a.i(10572),V=a.i(90146),W=a.i(54763),X=a.i(99929),Y=a.i(12540);function Z(a){return a instanceof Error?a.message:"Try again in a moment."}a.s(["default",0,function(){let a=(0,c.useRouter)(),j=(0,S.useNow)(),k=(0,n.useNeedsAttention)(),l=(0,n.useResendDelivery)(),m=(0,n.useDismissDelivery)(),o=(0,R.useLiveFleet)(),p=(0,T.useAccountMenu)(j),q=(0,W.useHasSquadrons)(),r=(0,Y.useSquadrons)(),s=(0,J.silentMembers)(r.data??[]),t=(0,X.useShips)(s.map(({member:a})=>a.shipId)),u=new Map(((0,V.useFleetSnapshot)().data??[]).map(a=>[a.id,a])),v=(0,n.useAttentionCount)(),w=(0,Q.useOpenInboxCount)(),x=(0,P.useAccess)(),[y,z]=(0,d.useState)(!1),[A,B]=(0,d.useState)(!1);(0,U.useSignInWhenSessionEnds)([k.error,o.error]);let[C,D]=(0,d.useState)(new Set),E=(a,b)=>{D(b=>new Set([...b,a])),b().finally(()=>{D(b=>new Set([...b].filter(b=>b!==a)))})},F=(0,b.jsx)(G,{deliveries:k.data??[],state:k.isError?"error":k.data?"ready":"loading",onRetry:()=>{k.refetch()},onResend:x.canManage?a=>{let b=(0,n.deliveryWithId)(k.data,a);E(a,async()=>{try{await l.mutateAsync({deliveryId:a}),b&&(0,e.showToast)({...(0,n.resentToast)(b),tone:"success"})}catch(a){(0,e.showToast)({title:"Couldn’t resend the message",description:Z(a),tone:"error"})}})}:void 0,onDismiss:x.canManage?a=>{E(a,async()=>{try{await m.mutateAsync({deliveryId:a}),(0,e.showToast)({...n.DISMISSED_TOAST,tone:"success"})}catch(a){(0,e.showToast)({title:"Couldn’t dismiss the delivery",description:Z(a),tone:"error"})}})}:void 0,onOpen:b=>{a.push((0,n.messagePathOf)(b))},pendingIds:C,now:j});return(0,b.jsxs)(O.ListLayout,{title:"Needs attention",description:"Deliveries no ship acknowledged after five tries, oldest first. Resend or dismiss each one.",live:o.live,nav:{active:"attention",inboxCount:w,attentionCount:v,hasSquadrons:q,hasSettings:q&&x.canManage},onCompose:x.canSend?()=>{z(!0)}:void 0,onSearch:()=>{B(!0)},account:p,banner:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(i.ConsoleNotices,{}),(0,b.jsx)(h.ConsoleGuide,{})]}),children:[s.length>0?(0,b.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,b.jsxs)("section",{"aria-labelledby":"attention-undeliverable",className:"flex flex-col gap-2",children:[(0,b.jsxs)("h2",{id:"attention-undeliverable",className:"text-body font-semibold",children:["Undeliverable deliveries (",k.data?.length??0,")"]}),k.data?.length===0?(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"None."}):F]}),(0,b.jsxs)("section",{"aria-labelledby":"attention-silent",className:"flex flex-col gap-2 max-sm:order-first",children:[(0,b.jsxs)("h2",{id:"attention-silent",className:"text-body font-semibold",children:["Silent members (",s.length,")"]}),(0,b.jsx)(N,{members:s,ships:u,now:j,renderAction:x.canManage?({squadronId:a,member:c})=>(0,b.jsx)(H.GetNewCrewLine,{squadronId:a,member:c,ship:t.get(c.shipId),isPrimary:!0,testId:"silent-member-new-crew-line"}):void 0}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"A member is silent after 3 missed check-ins; only you can start its new session. Late members and blocked reports stay on their squadron page."})]})]}):F,(0,b.jsx)(f.ComposeMessage,{isOpen:y,onOpenChange:z}),(0,b.jsx)(g.ConsoleCommands,{isOpen:A,onOpenChange:B,onCompose:()=>{z(!0)}})]})}],31702)}];
|
|
1
|
+
module.exports=[31702,a=>{"use strict";var b=a.i(87924),c=a.i(50944),d=a.i(72131),e=a.i(88191),f=a.i(15439),g=a.i(2549),h=a.i(83786),i=a.i(68698),j=a.i(41146),k=a.i(97024),l=a.i(48819),m=a.i(80487),n=a.i(10023),o=a.i(9854),p=a.i(72872),q=a.i(31429),r=a.i(12068),s=a.i(77339),t=a.i(24173),u=a.i(40392),v=a.i(50808),w=a.i(90468),x=a.i(23063);function y({party:a}){let c=a.name===q.OPERATOR_NAME;return(0,b.jsx)(w.ShipName,{name:a.name,shipId:a.id,size:"meta",isOperator:c,isSuffixShown:!c})}function z({delivery:a}){let{sender:c,recipient:d}=a.message;return(0,b.jsxs)("span",{className:"flex min-w-0 flex-wrap items-baseline gap-x-1.5 text-meta text-muted-foreground",children:[(0,b.jsx)(y,{party:c}),(0,b.jsx)("span",{"aria-hidden":!0,children:"→"}),(0,b.jsx)("span",{className:"sr-only",children:"to"}),"ship"===d.kind?(0,b.jsx)(y,{party:d.ship}):(0,b.jsxs)("span",{children:["any ship of type ",d.type]})]})}function A({delivery:a}){let{payload:c,contentType:d}=a.message;return(0,b.jsx)("span",{className:(0,m.classNames)("block min-w-0 truncate text-foreground",(0,o.isJson)(d)?"font-mono text-id":"text-body max-sm:text-body-touch"),title:c,children:c.split("\n")[0]})}function B(a){return`Received ${String(a.attempts)} times, never acknowledged.`}function C(a){var b;return`the message from ${a.message.sender.name} to ${"ship"===(b=a.message.recipient).kind?b.ship.name:`any ship of type ${b.type}`}`}function D({delivery:a,onResend:c,onDismiss:d,pendingIds:e,layout:f}){let g=e.has(a.deliveryId),h="phone"===f;if(void 0===c&&void 0===d)return null;let i=void 0!==c&&(0,n.canResend)(a)?(0,b.jsx)(r.Button,{size:h?"touch":"sm",variant:h?"primary":"secondary",icon:(0,b.jsx)(l.RotateCw,{"aria-hidden":!0}),isLoading:g,"data-testid":"attention-resend","aria-label":`Resend ${C(a)}`,onClick:()=>{c(a.deliveryId)},className:h?"flex-1":void 0,children:"Resend"}):null,j=void 0===d?null:(0,b.jsx)(r.Button,{size:h?"touch":"sm",variant:h?"secondary":"ghost",disabled:g,"data-testid":"attention-dismiss","aria-label":`Dismiss ${C(a)}`,onClick:()=>{d(a.deliveryId)},className:h?"flex-1":void 0,children:"Dismiss"});return h?(0,b.jsxs)("div",{className:"flex gap-2 pt-1",children:[j,i]}):(0,b.jsxs)("div",{className:"flex items-center justify-end gap-1.5",children:[i,j]})}function E({deliveries:a,onOpen:c,now:d,...e}){return(0,b.jsxs)("div",{className:"flex flex-col gap-2 max-sm:hidden",children:[(0,b.jsxs)(s.Table,{"aria-label":"Undeliverable deliveries",children:[(0,b.jsx)(s.TableHeader,{children:(0,b.jsxs)(s.TableRow,{children:[(0,b.jsx)(s.TableHead,{children:"State"}),(0,b.jsx)(s.TableHead,{children:"Message"}),(0,b.jsx)(s.TableHead,{children:"Reason"}),(0,b.jsx)(s.TableHead,{children:"Since"}),(0,b.jsx)(s.TableHead,{children:"Actions"})]})}),(0,b.jsx)(s.TableBody,{children:a.map(a=>{let f=new Date(a.since);return(0,b.jsxs)(s.TableRow,{"data-testid":"attention-row","data-delivery-id":a.deliveryId,children:[(0,b.jsx)(s.TableCell,{className:"align-top",children:(0,b.jsx)(x.StatusBadge,{status:"undeliverable"})}),(0,b.jsx)(s.TableCell,{className:"max-w-96 align-top",children:(0,b.jsxs)("button",{type:"button","aria-label":`Open ${C(a)}`,onClick:()=>{c(a)},className:"flex w-full min-w-0 flex-col gap-0.5 rounded-xs text-left focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",children:[(0,b.jsx)(A,{delivery:a}),(0,b.jsx)(z,{delivery:a})]})}),(0,b.jsx)(s.TableCell,{className:"max-w-48 align-top text-meta whitespace-normal text-muted-foreground",children:B(a)}),(0,b.jsx)(s.TableCell,{className:"align-top",children:(0,b.jsxs)("span",{className:"flex flex-col gap-0.5 tabular-nums",children:[(0,b.jsx)("time",{dateTime:a.since,title:(0,p.fullDateTime)(f),className:"text-body text-foreground",children:(0,p.shortDateTime)(f)}),(0,b.jsxs)("span",{className:"text-meta text-muted-foreground",children:[(0,p.duration)(f,d)," ago"]})]})}),(0,b.jsx)(s.TableCell,{className:"align-top",children:(0,b.jsx)(D,{delivery:a,layout:"table",...e})})]},a.deliveryId)})})]}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"Resend creates a new message with the same payload, linked to the original. Dismiss marks the delivery resolved. Abandoned deliveries are not listed here."})]})}function F({deliveries:a,onOpen:c,now:d,...e}){return(0,b.jsx)("ul",{"aria-label":"Undeliverable deliveries",className:"flex flex-col gap-3 sm:hidden",children:a.map(a=>{let f=new Date(a.since),g=d.getTime()-f.getTime()<864e5?(0,p.clockTime)(f):(0,p.shortDateTime)(f);return(0,b.jsxs)("li",{"data-testid":"attention-row","data-delivery-id":a.deliveryId,className:"flex flex-col gap-1.5 rounded-lg border border-border bg-card px-3.5 py-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)(x.StatusBadge,{status:"undeliverable"}),(0,b.jsxs)("button",{type:"button","aria-label":`Open ${C(a)}`,onClick:()=>{c(a)},className:"inline-flex items-center gap-1 rounded-xs text-meta text-muted-foreground tabular-nums focus-visible:outline-2 focus-visible:outline-ring [&_svg]:size-(--size-icon-sm)",children:[(0,p.duration)(f,d),(0,b.jsx)(j.ChevronRight,{"aria-hidden":!0})]})]}),(0,b.jsx)(A,{delivery:a}),(0,b.jsx)(z,{delivery:a}),(0,b.jsxs)("p",{className:"text-meta text-muted-foreground",children:[B(a)," Since"," ",(0,b.jsx)("time",{dateTime:a.since,title:(0,p.fullDateTime)(f),className:"tabular-nums",children:g}),"."]}),(0,b.jsx)(D,{delivery:a,layout:"phone",...e})]},a.deliveryId)})})}function G({deliveries:a,state:c,onRetry:d,...e}){return"loading"===c?(0,b.jsxs)("div",{"data-slot":"needs-attention-list","data-state":"loading",children:[(0,b.jsx)(v.LoadingSkeleton,{variant:"table",rows:2,label:"Loading Needs attention",className:"max-sm:hidden"}),(0,b.jsx)(v.LoadingSkeleton,{variant:"list",rows:2,label:"Loading Needs attention",className:"sm:hidden"})]}):"error"===c?(0,b.jsx)("div",{"data-slot":"needs-attention-list","data-state":"error","data-testid":"attention-error",children:(0,b.jsx)(u.InlineError,{variant:"page",title:"Couldn’t load Needs attention",description:"This page couldn’t reach the fleet server. Undeliverable deliveries are kept on the server, so nothing is lost.",onRetry:d})}):0===a.length?(0,b.jsx)("div",{"data-slot":"needs-attention-list","data-state":"empty","data-testid":"attention-empty",children:(0,b.jsx)(t.EmptyState,{icon:(0,b.jsx)(k.CircleCheck,{className:"text-tone-ok-fg"}),title:"Nothing needs your attention",description:"Undeliverable deliveries show up here as soon as they happen."})}):(0,b.jsxs)("div",{"data-slot":"needs-attention-list","data-state":"ready",className:"flex flex-col gap-3",children:[(0,b.jsx)(E,{deliveries:a,...e}),(0,b.jsx)(F,{deliveries:a,...e})]})}var H=a.i(42231),I=a.i(38246),J=a.i(8219),K=a.i(75971),L=a.i(92717),M=a.i(58523);function N({members:a,ships:c,now:d,renderAction:e}){return(0,b.jsx)("ul",{"data-testid":"silent-members",className:"divide-y divide-border overflow-hidden rounded-lg border border-border",children:a.map(({squadronId:a,member:f})=>{let{lastSeenAt:g}=f.crew;return(0,b.jsxs)("li",{"data-testid":"silent-member",className:"flex flex-wrap items-center gap-x-4 gap-y-1.5 px-3 py-2.5",children:[(0,b.jsxs)("span",{className:"flex min-w-0 flex-col gap-1",children:[(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsx)(K.HealthIndicator,{health:"silent"}),(0,b.jsx)("span",{className:"font-medium",children:f.name})]}),(0,b.jsx)(M.SquadronTag,{squadronId:a,role:f.role,size:"sm"})]}),(0,b.jsxs)("span",{className:"flex flex-col text-meta",children:[(0,b.jsx)("span",{children:null===g?"never seen":`not seen for ${(0,p.duration)(new Date(g),d)}`}),(0,b.jsxs)("span",{className:"text-muted-foreground",children:["checks in ",(0,J.checkInText)(f.checkInMinutes)]})]}),(0,b.jsx)("span",{className:"grow",children:(0,b.jsx)(L.ReportLine,{report:c.get(f.shipId)?.report??null,now:d,variant:"row",testId:"silent-member-report"})}),e?.({squadronId:a,member:f}),(0,b.jsxs)(I.default,{href:`/squadrons/${a}`,className:"inline-flex items-center gap-1 text-meta font-medium hover:underline",children:["Open",(0,b.jsx)(j.ChevronRight,{"aria-hidden":!0,className:"size-(--size-icon-sm)"})]})]},f.shipId)})})}var O=a.i(2466),P=a.i(65563),Q=a.i(26949),R=a.i(67336),S=a.i(68450),T=a.i(94764),U=a.i(10572),V=a.i(90146),W=a.i(99929),X=a.i(12540),Y=a.i(34159);function Z(a){return a instanceof Error?a.message:"Try again in a moment."}a.s(["default",0,function(){let a=(0,c.useRouter)(),j=(0,S.useNow)(),k=(0,n.useNeedsAttention)(),l=(0,n.useResendDelivery)(),m=(0,n.useDismissDelivery)(),o=(0,R.useLiveFleet)(),p=(0,T.useAccountMenu)(j),q=(0,X.useSquadrons)(),r=(0,J.silentMembers)(q.data??[]),s=(0,W.useShips)(r.map(({member:a})=>a.shipId)),t=new Map(((0,V.useFleetSnapshot)().data??[]).map(a=>[a.id,a])),u=(0,n.useAttentionCount)(),v=(0,Q.useOpenInboxCount)(),w=(0,P.useAccess)(),x=(0,Y.usePluginNav)(),[y,z]=(0,d.useState)(!1),[A,B]=(0,d.useState)(!1);(0,U.useSignInWhenSessionEnds)([k.error,o.error]);let[C,D]=(0,d.useState)(new Set),E=(a,b)=>{D(b=>new Set([...b,a])),b().finally(()=>{D(b=>new Set([...b].filter(b=>b!==a)))})},F=(0,b.jsx)(G,{deliveries:k.data??[],state:k.isError?"error":k.data?"ready":"loading",onRetry:()=>{k.refetch()},onResend:w.canManage?a=>{let b=(0,n.deliveryWithId)(k.data,a);E(a,async()=>{try{await l.mutateAsync({deliveryId:a}),b&&(0,e.showToast)({...(0,n.resentToast)(b),tone:"success"})}catch(a){(0,e.showToast)({title:"Couldn’t resend the message",description:Z(a),tone:"error"})}})}:void 0,onDismiss:w.canManage?a=>{E(a,async()=>{try{await m.mutateAsync({deliveryId:a}),(0,e.showToast)({...n.DISMISSED_TOAST,tone:"success"})}catch(a){(0,e.showToast)({title:"Couldn’t dismiss the delivery",description:Z(a),tone:"error"})}})}:void 0,onOpen:b=>{a.push((0,n.messagePathOf)(b))},pendingIds:C,now:j});return(0,b.jsxs)(O.ListLayout,{title:"Needs attention",description:"Deliveries no ship acknowledged after five tries, oldest first. Resend or dismiss each one.",live:o.live,nav:{active:"attention",inboxCount:v,attentionCount:u,...x},onCompose:w.canSend?()=>{z(!0)}:void 0,onSearch:()=>{B(!0)},account:p,banner:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(i.ConsoleNotices,{}),(0,b.jsx)(h.ConsoleGuide,{})]}),children:[r.length>0?(0,b.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,b.jsxs)("section",{"aria-labelledby":"attention-undeliverable",className:"flex flex-col gap-2",children:[(0,b.jsxs)("h2",{id:"attention-undeliverable",className:"text-body font-semibold",children:["Undeliverable deliveries (",k.data?.length??0,")"]}),k.data?.length===0?(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"None."}):F]}),(0,b.jsxs)("section",{"aria-labelledby":"attention-silent",className:"flex flex-col gap-2 max-sm:order-first",children:[(0,b.jsxs)("h2",{id:"attention-silent",className:"text-body font-semibold",children:["Silent members (",r.length,")"]}),(0,b.jsx)(N,{members:r,ships:t,now:j,renderAction:w.canManage?({squadronId:a,member:c})=>(0,b.jsx)(H.GetNewCrewLine,{squadronId:a,member:c,ship:s.get(c.shipId),isPrimary:!0,testId:"silent-member-new-crew-line"}):void 0}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"A member is silent after 3 missed check-ins; only you can start its new session. Late members and blocked reports stay on their squadron page."})]})]}):F,(0,b.jsx)(f.ComposeMessage,{isOpen:y,onOpenChange:z}),(0,b.jsx)(g.ConsoleCommands,{isOpen:A,onOpenChange:B,onCompose:()=>{z(!0)}})]})}],31702)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_console_app_needs-attention_page_tsx_1agfico._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[33634,a=>{"use strict";var b=a.i(87924),c=a.i(50944),d=a.i(72131),e=a.i(15439),f=a.i(2549),g=a.i(83786),h=a.i(68698),i=a.i(56987),j=a.i(26268),k=a.i(88931),l=a.i(38246),m=a.i(80487);let n={ok:"border-tone-ok-border bg-tone-ok-bg text-tone-ok-fg",waiting:"border-tone-waiting-border bg-tone-waiting-bg text-tone-waiting-fg",attention:"border-tone-attention-border bg-tone-attention-bg text-tone-attention-fg"};function o({label:a,shortLabel:c,value:d,detail:e,href:f,icon:g,tone:h,testId:i}){return(0,b.jsxs)(l.default,{href:f,"data-testid":i,className:"flex min-w-0 flex-col gap-2 rounded-lg border border-border bg-card px-4.5 py-4 shadow-sm transition-colors duration-(--duration-fast) hover:bg-accent max-sm:gap-1.5 max-sm:rounded-xl max-sm:px-3.5 max-sm:py-3",children:[(0,b.jsxs)("span",{className:"flex items-center justify-between gap-2 text-meta font-medium text-muted-foreground",children:[(0,b.jsx)("span",{className:"max-sm:hidden",children:a}),(0,b.jsx)("span",{className:"sm:hidden",children:c??a}),(0,b.jsx)("span",{className:(0,m.classNames)("flex size-6.5 shrink-0 items-center justify-center rounded-md border max-sm:size-5.5",n[h]),children:(0,b.jsx)(g,{"aria-hidden":!0,className:"size-3.5"})})]}),(0,b.jsx)("span",{className:"text-[28px] leading-none font-semibold tracking-tight tabular-nums text-foreground max-sm:text-2xl",children:d}),(0,b.jsx)("span",{className:"truncate text-meta text-muted-foreground",children:e})]})}var p=a.i(90146),q=a.i(10023),r=a.i(68450),s=a.i(72872);function t(a){return a.filter(a=>"agent"===a.kind&&"retired"!==a.status)}function u(){var a;let c,d,e,f,g=(0,p.useFleetSnapshot)(),h=(0,q.useNeedsAttention)(),l=(0,q.useAttentionCount)(),m=(0,r.useNow)();if(!g.data)return null;let n=(e=(d=(c=t((a={ships:g.data,undeliverable:h.data??[],now:m}).ships)).filter(a=>"awaitingCrew"===a.status)).flatMap(a=>null===a.awaitingCrewSince?[]:[{name:a.name,since:new Date(a.awaitingCrewSince)}]).sort((a,b)=>a.since.getTime()-b.since.getTime())[0],f=a.undeliverable.map(a=>new Date(a.since)).sort((a,b)=>a.getTime()-b.getTime())[0],{activeCount:c.length,crewedCount:c.filter(a=>"crewed"===a.status).length,awaitingCount:d.length,longestWait:e&&{name:e.name,wait:(0,s.duration)(e.since,a.now)},oldestUndeliverable:f&&(0,s.duration)(f,a.now)});return 0===n.activeCount?null:(0,b.jsxs)("div",{className:"grid grid-cols-3 gap-4 max-sm:grid-cols-2 max-sm:gap-2.5","data-testid":"overview-metrics",children:[(0,b.jsx)(o,{label:"Ships crewed",shortLabel:"Crewed",value:n.crewedCount,detail:`of ${String(n.activeCount)} active ships`,href:"/?status=crewed",icon:k.UserCheck,tone:"ok",testId:"overview-crewed"}),(0,b.jsx)(o,{label:"Awaiting crew",value:n.awaitingCount,detail:n.longestWait?`Longest wait: ${n.longestWait.name}, ${n.longestWait.wait}`:"Every active ship is crewed",href:"/?status=awaitingCrew",icon:i.CircleDashed,tone:"waiting",testId:"overview-awaiting"}),(0,b.jsx)(o,{label:"Needs attention",value:l??0,detail:n.oldestUndeliverable?`Undeliverable deliveries, oldest ${n.oldestUndeliverable}`:"Nothing needs you",href:"/needs-attention",icon:j.TriangleAlert,tone:"attention",testId:"overview-attention"})]})}var v=a.i(3512),w=a.i(12068),x=a.i(64906),y=a.i(47468),z=a.i(82252);a.i(23600);var A=a.i(97011),B=a.i(69040),C=a.i(97024),D=a.i(73370),E=a.i(31247),F=a.i(18691),G=a.i(78398),H=a.i(18441),I=a.i(2374),J=a.i(75297),K=a.i(45098),L=a.i(45469),M=a.i(72309),N=a.i(40392),O=a.i(21521);let P={"fleet:read":"Read the fleet","fleet:manage":"Manage the fleet","crew:assign":"Assign crews","crew:run":"Run crews"};function Q({activeShips:a,isPending:c,error:e,shipLimit:f,accountUrl:g,onSubmit:h}){let i=(0,d.useId)(),j=(0,d.useId)(),k=(0,d.useId)(),l=(0,d.useId)(),n=(0,d.useId)(),[o,p]=(0,d.useState)(""),[q,r]=(0,d.useState)(""),[s,t]=(0,d.useState)(""),[u,v]=(0,d.useState)([]),x=(0,F.checkShipName)(o,{activeNames:a.map(a=>a.name)}),y="invalid"===x.kind||"reserved"===x.kind||"taken"===x.kind,I=q.trim(),R=B.shipHandleSchema.safeParse(I).success,S=""!==I&&!R,T=[...new Set(a.map(a=>a.type))].sort(),U="available"===x.kind&&R&&void 0===f;return(0,b.jsxs)("form",{noValidate:!0,"data-testid":"commission-form",className:"contents",onSubmit:a=>{a.preventDefault(),U&&h({name:o,type:I,...""===s.trim()?{}:{note:s},...0===u.length?{}:{fleetScopes:[...u]}})},children:[(0,b.jsxs)(H.DialogHeader,{children:[(0,b.jsx)(H.DialogTitle,{children:"Commission a ship"}),(0,b.jsx)(H.DialogDescription,{children:"A ship is a durable agent identity with its own inbox. Next, you get the starting prompt."})]}),void 0===f?null:(0,b.jsx)(O.LimitNotice,{...(0,z.shipLimitNotice)(f),accountUrl:g,testId:"commission-ship-limit"}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsxs)("div",{className:"flex items-baseline justify-between",children:[(0,b.jsx)(K.Label,{htmlFor:i,children:"Name"}),(0,b.jsxs)("span",{className:"text-caption text-muted-foreground tabular-nums",children:[o.length," / ",B.SHIP_HANDLE_MAX_LENGTH]})]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(J.Input,{id:i,isMono:!0,autoComplete:"off",autoCapitalize:"off",spellCheck:!1,placeholder:"e.g. reviewer-02","data-testid":"commission-name","aria-invalid":!!y||void 0,"aria-describedby":j,className:"pr-9 max-sm:h-(--size-control-touch) max-sm:text-input-touch",value:o,onChange:a=>{p((0,F.asHandle)(a.target.value))}}),"available"===x.kind?(0,b.jsx)(C.CircleCheck,{"aria-hidden":!0,className:"absolute top-1/2 right-3 size-(--size-icon) -translate-y-1/2 text-tone-ok-fg"}):y?(0,b.jsx)(D.CircleX,{"aria-hidden":!0,className:"absolute top-1/2 right-3 size-(--size-icon) -translate-y-1/2 text-destructive-text"}):null]}),(0,b.jsx)("p",{id:j,"aria-live":"polite",className:(0,m.classNames)("text-meta",y?"text-destructive-text":"text-muted-foreground"),children:x.message})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(K.Label,{htmlFor:k,children:"Type"}),(0,b.jsx)(G.Combobox,{id:k,options:T.map(a=>({value:a,label:a})),value:""===q?null:q,onValueChange:a=>{r(a??"")},isFreeText:!0,toQuery:F.asHandle,leadingIcon:(0,b.jsx)(E.Tag,{}),placeholder:"e.g. reviewer",isInvalid:S,"aria-describedby":l,"data-testid":"commission-type"}),(0,b.jsx)("p",{id:l,className:(0,m.classNames)("text-meta",S?"text-destructive-text":"text-muted-foreground"),children:S?`Use 1 to ${String(B.SHIP_HANDLE_MAX_LENGTH)} lowercase letters, digits, hyphens or colons.`:(0,F.typeHint)(q,a.filter(a=>a.type===I).length)})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(K.Label,{htmlFor:n,children:"Note (optional)"}),(0,b.jsx)(M.Textarea,{id:n,rows:2,"data-testid":"commission-note",value:s,onChange:a=>{t(a.target.value)}})]}),(0,b.jsxs)("fieldset",{className:"flex flex-col gap-2",children:[(0,b.jsx)("legend",{className:"mb-1.5 text-body font-medium text-foreground",children:"Fleet access"}),A.FLEET_SCOPES.map(a=>(0,b.jsxs)("label",{className:"flex items-center justify-between gap-3 text-body text-foreground",children:[(0,b.jsxs)("span",{children:[P[a]," ",(0,b.jsx)("span",{className:"font-mono text-id text-muted-foreground",children:a})]}),(0,b.jsx)(L.Switch,{checked:u.includes(a),onCheckedChange:b=>{v(c=>b?[...c,a]:c.filter(b=>b!==a))},"data-testid":`commission-${a.replace(":","-")}`})]},a)),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"Every ship sends and receives. Fleet access lets its session act as the console does; crew ships lets a trierarch start their sessions. It cannot be changed later."})]}),void 0===e?null:(0,b.jsx)(N.InlineError,{title:"Not commissioned",description:e}),(0,b.jsxs)(H.DialogFooter,{children:[(0,b.jsx)(H.DialogClose,{render:(0,b.jsx)(w.Button,{type:"button",disabled:c}),children:"Cancel"}),(0,b.jsx)(w.Button,{type:"submit",variant:"primary",isLoading:c,disabled:!U,"data-testid":"commission-submit",children:c?"Commissioning":"Commission ship"})]})]})}function R(a){let{isOpen:c,onOpenChange:d,isPending:e}=a;return(0,b.jsx)(H.Dialog,{open:c,onOpenChange:a=>{e||d(a)},children:(0,b.jsx)(H.DialogContent,{size:"md","data-testid":"commission-dialog",className:I.dialogSurface.phoneFullScreen,children:(0,b.jsx)(Q,{...a})})})}var S=a.i(44344);function T({isOpen:a,onOpenChange:c}){let e=(0,p.useFleetSnapshot)(),f=(0,x.useFleetLimits)(),g=(0,y.useHostedAccountUrl)(),h=(0,p.useCommissionShip)(),[i,j]=(0,d.useState)(!1),k=(e.data??[]).filter(a=>"retired"!==a.status);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(w.Button,{variant:"primary",icon:(0,b.jsx)(v.Plus,{}),"data-testid":"fleet-commission",onClick:()=>{h.reset(),c(!0)},children:"Commission ship"}),(0,b.jsx)(R,{activeShips:k,isOpen:a,onOpenChange:c,isPending:h.isPending,error:h.error?.message,shipLimit:(0,z.shipLimitReached)(f.data),accountUrl:g,onSubmit:a=>{h.mutate({...a,idempotencyKey:crypto.randomUUID()},{onSuccess:()=>{c(!1),j(!0)}})}}),(0,b.jsx)(S.StartingPromptDialog,{shipName:h.variables?.name??"",state:"shown",prompt:h.data?.prompt??void 0,crewLines:h.data?.crewLines??void 0,isOpen:i&&void 0!==h.data,onOpenChange:a=>{a||(j(!1),h.reset())},onConfirm:()=>void 0})]})}var U=a.i(64831);let V={name:"infinity",size:24,node:[["path",{d:"M6 16c5 0 7-8 12-8a4 4 0 0 1 0 8c-5 0-7-8-12-8a4 4 0 1 0 0 8",key:"18ogeb"}]]};V.node;let W=(0,U.default)(V);var X=a.i(74746),Y=a.i(98238),Z=a.i(23063);let $={ships:{label:"Ships",unit:"ships",Icon:Y.Ship},messages:{label:"Messages today",unit:"messages",Icon:X.Send}},_={below:"bg-primary",at:"bg-tone-waiting-fg",over:"bg-tone-attention-fg"},aa={at:"at-limit",over:"over-limit"};function ab({kind:a,count:c,limit:d,resetsAt:e}){let{label:f,unit:g,Icon:h}=$[a],i=(0,z.meterState)({count:c,limit:d}),j=aa[i],k=(0,z.meterCaption)({count:c,limit:d}),l=null===d?0:0===d?1:Math.min(c/d,1);return(0,b.jsxs)("div",{"data-testid":`limit-meter-${a}`,"data-state":i,className:"flex flex-col gap-2 rounded-lg border border-border bg-card p-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-meta font-medium text-muted-foreground",children:[(0,b.jsx)(h,{"aria-hidden":!0,className:"size-(--size-icon-sm)"}),f]}),void 0===j?null:(0,b.jsx)(Z.StatusBadge,{status:j})]}),(0,b.jsxs)("p",{className:"flex items-baseline gap-1.5",children:[(0,b.jsx)("span",{className:"text-metric font-semibold tabular-nums",children:(0,z.meterCount)(c)}),(0,b.jsx)("span",{className:"text-body text-muted-foreground",children:null===d?g:`of ${(0,z.meterCount)(d)} ${g}`})]}),null===d?(0,b.jsxs)("p",{className:"inline-flex items-center gap-1.5 text-meta text-muted-foreground",children:[(0,b.jsx)(W,{"aria-hidden":!0,className:"size-(--size-icon-sm)"}),"No limit"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{role:"meter","aria-label":`${f}: ${String(c)} of ${String(d)}`,"aria-valuenow":c,"aria-valuemin":0,"aria-valuemax":d,className:"block h-1.5 overflow-hidden rounded-full bg-secondary",children:(0,b.jsx)("span",{className:(0,m.classNames)("block h-full rounded-full","none"===i?void 0:_[i]),style:{width:`${String(100*l)}%`}})}),(0,b.jsxs)("p",{"data-testid":`limit-meter-${a}-caption`,className:"text-caption text-muted-foreground",children:[k,void 0===e?null:` \xb7 resets at ${(0,z.resetTime)(e)}`]})]})]})}function ac(){let a=(0,x.useFleetLimits)().data,c=(0,y.useHostedAccountUrl)();return(0,z.hasLimits)(a)?(0,b.jsxs)("section",{"aria-labelledby":"overview-limits-title","data-testid":"overview-limits",className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("h2",{id:"overview-limits-title",className:"text-body font-semibold",children:"Limits"}),void 0===c?null:(0,b.jsx)("a",{href:c,"data-testid":"overview-limits-view",className:"text-meta font-medium text-primary underline underline-offset-2",children:"View limits"})]}),(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsx)(ab,{kind:"ships",count:a.ships.count,limit:a.ships.limit}),(0,b.jsx)(ab,{kind:"messages",count:a.dailyMessages.count,limit:a.dailyMessages.limit,resetsAt:a.dailyMessages.resetsAt})]})]}):null}var ad=a.i(12540),ae=a.i(8219);let af={name:"eye",size:24,node:[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]};af.node;let ag=(0,U.default)(af);var ah=a.i(25039),ai=a.i(26766),aj=a.i(33540);let ak={name:"sliders-horizontal",size:24,node:[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]]};ak.node;let al=(0,U.default)(ak);var am=a.i(87005);let an={query:"",filters:{status:"all",type:"all",squadron:"all",isRetiredShown:!1}},ao="status",ap="type",aq="squadron",ar="retired";function as(a,b){return[...new Set(a.filter(a=>b||"retired"!==a.status).map(a=>a.type))].toSorted((a,b)=>a.localeCompare(b))}function at(a){return a.filter(a=>"retired"===a.status).length}function au(a){return[...new Set([...a.values()].map(a=>a.squadronId))].toSorted((a,b)=>a.localeCompare(b))}let av={crewed:"Crewed",awaitingCrew:"Awaiting crew"};function aw(a){return["all"===a.status?void 0:`Status: ${av[a.status]}`,"all"===a.type?void 0:`Type: ${a.type}`,"all"===a.squadron?void 0:`Squadron: ${a.squadron}`,a.isRetiredShown?"Retired shown":void 0].filter(a=>void 0!==a)}var ax=a.i(76166),ay=a.i(48136),az=a.i(4838),aA=a.i(77339),aB=a.i(24173),aC=a.i(50808);let aD={name:"signal",size:24,node:[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}],["path",{d:"M12 20v-8",key:"i3yub9"}],["path",{d:"M17 20V8",key:"1tkaf5"}],["path",{d:"M22 4v16",key:"sih9yq"}]]};aD.node;let aE=(0,U.default)(aD),aF={name:"signal-low",size:24,node:[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}]]};aF.node;let aG=(0,U.default)(aF),aH={name:"signal-medium",size:24,node:[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}],["path",{d:"M12 20v-8",key:"i3yub9"}]]};aH.node;let aI=(0,U.default)(aH);a.s([],65156),a.i(65156);var aJ=a.i(22050),aK=a.i(24715),aL=a.i(57738),aM=a.i(54662);let aN=d.createContext(void 0);function aO(a){let b=d.useContext(aN);if(void 0===b&&!a)throw Error((0,aM.default)(72));return b}var aP=a.i(68536),aQ=a.i(54401),aR=a.i(26476),aS=a.i(30116),aT=a.i(14209);function aU(a){return null!=a&&null!=a.clientX}var aV=a.i(38939),aW=a.i(94552),aX=a.i(84204),aY=a.i(32318),aZ=a.i(17498),a$=a.i(7436),a_=a.i(14239),a0=a.i(17017),a1=a.i(51943);let a2={...a0.popupStoreSelectors,disabled:a=>a.disabled,instantType:a=>a.instantType,isInstantPhase:a=>a.isInstantPhase,trackCursorAxis:a=>a.trackCursorAxis,disableHoverablePopup:a=>a.disableHoverablePopup,lastOpenChangeReason:a=>a.openChangeReason,closeOnClick:a=>a.closeOnClick,closeDelay:a=>a.closeDelay,adaptiveOrigin:a=>a.adaptiveOrigin};class a3 extends aZ.ReactStore{constructor(a,b,c){const d=new a1.PopupTriggerMap;super(a4(a,d,b,c),a5(d),a2)}setOpen=(a,b)=>{(0,aX.applyPopupOpenChange)(this,a,b,{extraState:{openChangeReason:b.reason}})};cancelPendingOpen(a){this.state.floatingRootContext.dispatchOpenChange(!1,(0,aW.createChangeEventDetails)(a$.REASONS.triggerPress,a))}}function a4(a,b,c,d=!1){return{...(0,a0.createInitialPopupStoreState)(b,c,d),disabled:!1,instantType:void 0,isInstantPhase:!1,trackCursorAxis:"none",disableHoverablePopup:!1,openChangeReason:null,closeOnClick:!0,closeDelay:0,adaptiveOrigin:void 0,...a}}function a5(a){return{popupRef:d.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerElements:a}}let a6=(0,aJ.fastComponent)(function(a){let{disabled:c=!1,defaultOpen:e=!1,open:f,disableHoverablePopup:g=!1,trackCursorAxis:h="none",actionsRef:i,onOpenChange:j,onOpenChangeComplete:k,handle:l,triggerId:m,defaultTriggerId:n=null,children:o}=a,p=(0,aX.usePopupRootStore)((a,b)=>new a3({open:e,openProp:f,activeTriggerId:n,triggerIdProp:m},a,b));p.useControlledProp("openProp",f),p.useControlledProp("triggerIdProp",m),p.useContextCallback("onOpenChange",j),p.useContextCallback("onOpenChangeComplete",k);let q=p.useState("open"),r=!c&&q,s=p.useState("activeTriggerId"),t=p.useState("mounted"),u=p.useState("payload");p.useSyncedValues({trackCursorAxis:h,disableHoverablePopup:g,disabled:c}),(0,aX.useImplicitActiveTrigger)(p,{closeOnActiveTriggerUnmount:!0});let{forceUnmount:v,transitionStatus:w}=(0,aX.useOpenStateTransitions)(r,p),x=p.useState("isInstantPhase"),y=p.useState("instantType"),z=p.useState("lastOpenChangeReason"),A=d.useRef(null);(0,aL.useIsoLayoutEffect)(()=>{q&&c&&p.setOpen(!1,(0,aW.createChangeEventDetails)(a$.REASONS.disabled))},[q,c,p]),(0,aL.useIsoLayoutEffect)(()=>{"ending"===w&&z===a$.REASONS.none||"ending"!==w&&x?("delay"!==y&&(A.current=y),p.set("instantType","delay")):null!==A.current&&(p.set("instantType",A.current),A.current=null)},[w,x,z,y,p]),(0,aL.useIsoLayoutEffect)(()=>{r&&null==s&&p.set("payload",void 0)},[p,s,r]),d.useImperativeHandle(i,()=>({unmount:v,close:()=>p.setOpen(!1,(0,aW.createChangeEventDetails)(a$.REASONS.imperativeAction))}),[v,p]);let B=r||t||!c&&"none"!==h;return(0,b.jsxs)(aN.Provider,{value:p,children:[l&&(0,b.jsx)(aX.PopupHandleAttachment,{handle:l,store:p}),B&&(0,b.jsx)(a7,{store:p,disabled:c,trackCursorAxis:h}),"function"==typeof o?o({payload:u}):o]})});function a7({store:a,disabled:b,trackCursorAxis:c}){let e=a.useState("floatingRootContext"),f=(0,aV.useDismiss)(e,{enabled:!b,referencePress:()=>a.select("closeOnClick")}),g=function(a,b={}){let{enabled:c=!0,axis:e="both"}=b,f="rootStore"in a?a.rootStore:a,g=f.useState("open"),h=f.useState("floatingElement"),i=f.useState("domReferenceElement"),j=f.context.dataRef,k=d.useRef(!1),l=d.useRef(null),[m,n]=d.useState(),[o,p]=d.useState([]),q=(0,aQ.useStableCallback)(a=>{f.set("positionReference",a)}),r=(0,aQ.useStableCallback)((a,b,c)=>{if(!k.current&&(!j.current.openEvent||aU(j.current.openEvent))){var d,g;let h,k,l;f.set("positionReference",(d=c??i,g={x:a,y:b,axis:e,dataRef:j,pointerType:m},h=null,k=null,l=!1,{contextElement:d||void 0,getBoundingClientRect(){let a=d?.getBoundingClientRect()||{width:0,height:0,x:0,y:0},b="x"===g.axis||"both"===g.axis,c="y"===g.axis||"both"===g.axis,e=["mouseenter","mousemove"].includes(g.dataRef.current.openEvent?.type||"")&&"touch"!==g.pointerType,f=a.width,i=a.height,j=a.x,m=a.y;return null==h&&g.x&&b&&(h=a.x-g.x),null==k&&g.y&&c&&(k=a.y-g.y),j-=h||0,m-=k||0,f=0,i=0,!l||e?(f="y"===g.axis?a.width:0,i="x"===g.axis?a.height:0,j=b&&null!=g.x?g.x:j,m=c&&null!=g.y?g.y:m):l&&!e&&(i="x"===g.axis?a.height:i,f="y"===g.axis?a.width:f),l=!0,{width:f,height:i,x:j,y:m,top:m,right:j+f,bottom:m+i,left:j}}}))}}),s=(0,aQ.useStableCallback)(a=>{g?l.current||(r(a.clientX,a.clientY,a.currentTarget),p([])):r(a.clientX,a.clientY,a.currentTarget)}),t=(0,aT.isMouseLikePointerType)(m)?h:g;d.useEffect(()=>{if(!c)return void q(i);if(!t)return;function a(){l.current?.(),l.current=null}let b=(0,aR.getWindow)(h);return!j.current.openEvent||aU(j.current.openEvent)?l.current=(0,aP.addEventListener)(b,"mousemove",function(b){let c=(0,aS.getTarget)(b);(0,aS.contains)(h,c)?a():r(b.clientX,b.clientY)}):q(i),a},[t,c,h,j,i,f,r,q,o]),d.useEffect(()=>()=>{f.set("positionReference",null)},[f]),d.useEffect(()=>{c&&!h&&(k.current=!1)},[c,h]),d.useEffect(()=>{!c&&g&&(k.current=!0)},[c,g]);let u=d.useMemo(()=>{function a(a){n(a.pointerType)}return{onPointerDown:a,onPointerEnter:a,onMouseMove:s,onMouseEnter:s}},[s]);return d.useMemo(()=>c?{reference:u,trigger:u}:{},[c,u])}(e,{enabled:!b&&"none"!==c,axis:"none"===c?void 0:c}),h=d.useMemo(()=>(0,aY.mergeProps)(g.reference,f.reference),[g.reference,f.reference]);return(0,aX.usePopupInteractionProps)(a,{activeTriggerProps:h,inactiveTriggerProps:h,popupProps:f.floating??aK.EMPTY_OBJECT}),null}var a8=a.i(36069),a9=a.i(89862),ba=a.i(4478),bb=a.i(26184),bc=a.i(97151),bd=a.i(557);let be=d.createContext(void 0);var bf=a.i(25003),bg=a.i(85252);let bh=d.createContext({hasProvider:!1,timeoutMs:0,delayRef:{current:0},initialDelayRef:{current:0},timeout:new a8.Timeout,currentIdRef:{current:null},currentContextRef:{current:null}});function bi(a){let{children:c,delay:e,timeoutMs:f=0}=a,g=d.useRef(e),h=d.useRef(e),i=d.useRef(null),j=d.useRef(null),k=(0,a8.useTimeout)();return(0,aL.useIsoLayoutEffect)(()=>{if(h.current=e,!i.current){g.current=e;return}g.current={open:(0,bg.getDelay)(g.current,"open"),close:(0,bg.getDelay)(e,"close")}},[e,i,g,h]),(0,b.jsx)(bh.Provider,{value:d.useMemo(()=>({hasProvider:!0,delayRef:g,initialDelayRef:h,currentIdRef:i,timeoutMs:f,currentContextRef:j,timeout:k}),[f,k]),children:c})}var bj=a.i(84842),bk=a.i(5735),bl=a.i(72077),bm=a.i(63734);let bn="data-base-ui-tooltip-trigger";function bo(a){if("composedPath"in a){let b=a.composedPath();for(let a=0;a<b.length;a+=1){let c=b[a];if((0,aR.isElement)(c))return c}}let b=a.target;return(0,aR.isElement)(b)?b:null}let bp=(0,aJ.fastComponentRef)(function(a,b){let{render:c,className:e,style:f,handle:g,payload:h,disabled:i,delay:j,closeOnClick:k=!0,closeDelay:l,id:m,...n}=a,o=aO(!0),p=(0,bc.usePopupHandleStore)(g)??o;if(!p)throw Error((0,aM.default)(82));let q=(0,bd.useBaseUiId)(m),r=p.useState("isTriggerActive",q),s=p.useState("isOpenedByTrigger",q),t=p.useState("floatingRootContext"),u=d.useRef(null),v=l??0,{registerTrigger:w,isMountedByThisTrigger:x}=(0,aX.useTriggerDataForwarding)(q,u,p,{payload:h,closeOnClick:k,closeDelay:v}),y=d.useContext(be),{activeIdRef:z,delayRef:A,isInstantPhase:B,hasProvider:C}=function(a,b={open:!1}){let{open:c}=b,e="rootStore"in a?a.rootStore:a,f=e.useState("floatingId"),{currentIdRef:g,delayRef:h,timeoutMs:i,initialDelayRef:j,currentContextRef:k,hasProvider:l,timeout:m}=d.useContext(bh),[n,o]=d.useState(!1),p=d.useRef(c);return(0,aL.useIsoLayoutEffect)(()=>{p.current=c},[c]),(0,aL.useIsoLayoutEffect)(()=>{function a(){k.current?.setIsInstantPhase(!1),g.current=null,k.current=null,h.current=j.current,m.clear()}if(g.current&&!c&&g.current===f){if(o(!1),i)return m.start(i,()=>{e.select("open")||g.current&&g.current!==f||a()}),()=>{(p.current||g.current!==f)&&m.clear()};a()}},[c,f,g,h,i,j,k,m,e]),(0,aL.useIsoLayoutEffect)(()=>{if(!c)return;let a=k.current,b=g.current;m.clear(),k.current={onOpenChange:e.setOpen,setIsInstantPhase:o},g.current=f,h.current={open:0,close:(0,bg.getDelay)(j.current,"close")},null!==b&&b!==f?(o(!0),a?.setIsInstantPhase(!0),a?.onOpenChange(!1,(0,aW.createChangeEventDetails)(a$.REASONS.none))):(o(!1),a?.setIsInstantPhase(!1))},[c,f,e,g,h,j,k,m]),(0,aL.useIsoLayoutEffect)(()=>()=>{g.current===f&&(k.current=null,p.current)&&(g.current=null,h.current=j.current,m.clear())},[k,g,h,f,j,m]),d.useMemo(()=>({activeIdRef:g,hasProvider:l,delayRef:h,isInstantPhase:n}),[g,l,h,n])}(t,{open:s}),D=(0,bl.useHoverInteractionSharedState)(t);p.useSyncedValue("isInstantPhase",B);let E=p.useState("disabled"),F=i??E,G=(0,a9.useValueAsRef)(F),H=p.useState("trackCursorAxis"),I=p.useState("disableHoverablePopup"),J=d.useRef(!1),K=(0,a8.useTimeout)(),L=d.useRef(void 0);function M(){return C&&null!=z.current?0:j??y??600}function N(a){let b=u.current;if(!b||!a)return!1;let c=function(a){let b=a;for(;b;){let a=b.closest(`[${bn}]`);if(a)return a;let c=b.getRootNode();b="host"in c&&(0,aR.isElement)(c.host)?c.host:null}return null}(a);return null!==c&&c!==b&&(0,aS.contains)(b,c)}let O=(0,bk.useHoverReferenceInteraction)(t,{enabled:!F,mouseOnly:!0,move:!1,handleClose:I||"both"===H?null:(0,bf.safePolygon)(),restMs:M,delay:()=>null==l&&C?{close:(0,bg.getDelay)(A.current,"close")}:{close:v},triggerElementRef:u,isActiveTrigger:r,isClosing:()=>"ending"===p.select("transitionStatus"),shouldOpen:()=>!J.current}),P=(0,bj.useFocus)(t,{enabled:!F}).reference,Q=p.useState("triggerProps",x),R=x||"none"!==H;return(0,bb.useRenderElement)("button",a,{state:{open:s},ref:[b,w,u],props:[O,P,R?Q:void 0,{onMouseOver(a){(a=>{let b,c=J.current,d=bo(a),e=(J.current=b=N(d),b&&(D.openChangeTimeout.clear(),D.restTimeout.clear(),D.restTimeoutPending=!1,K.clear()),b),f=u.current,g=f&&d&&(0,aS.contains)(f,d);if(e&&p.select("open")&&p.select("lastOpenChangeReason")===a$.REASONS.triggerHover)return p.setOpen(!1,(0,aW.createChangeEventDetails)(a$.REASONS.triggerHover,a));if(c&&!e&&g&&!G.current&&!p.select("open")&&f&&(0,aT.isMouseLikePointerType)(L.current)){let b=()=>{J.current||G.current||p.select("open")||p.setOpen(!0,(0,aW.createChangeEventDetails)(a$.REASONS.triggerHover,a,f))},c=M();0===c?(K.clear(),b()):K.start(c,b)}})(a.nativeEvent)},onFocus(a){N(bo(a.nativeEvent))&&a.preventBaseUIHandler()},onMouseLeave(){J.current=!1,K.clear(),L.current=void 0},onPointerEnter(a){L.current=a.pointerType},onPointerDown(a){L.current=a.pointerType,p.set("closeOnClick",k),k&&!p.select("open")&&p.cancelPendingOpen(a.nativeEvent)},onClick(a){k&&!p.select("open")&&p.cancelPendingOpen(a.nativeEvent)},id:q,[bm.triggerDisabled]:F?"":void 0,[bn]:F?void 0:""},n],stateAttributesMapping:ba.triggerOpenStateMapping})}),bq=d.createContext(void 0);var br=a.i(35112),bs=a.i(54098);let bt=d.forwardRef(function(a,c){let{children:e,container:f,className:g,render:h,style:i,...j}=a,{node:k,subtree:l}=(0,bs.useFloatingPortalNode)({container:f,ref:c,componentProps:a,elementProps:j});return l||k?(0,b.jsxs)(d.Fragment,{children:[l,k&&br.createPortal(e,k)]}):null}),bu=d.forwardRef(function(a,c){let{keepMounted:d=!1,...e}=a;return aO().useState("mounted")||d?(0,b.jsx)(bq.Provider,{value:d,children:(0,b.jsx)(bt,{ref:c,...e})}):null}),bv=d.createContext(void 0);function bw(){let a=d.useContext(bv);if(void 0===a)throw Error((0,aM.default)(71));return a}var bx=a.i(44871),by=a.i(82204),bz=a.i(56011);let bA=d.forwardRef(function(a,c){let{render:e,className:f,anchor:g,positionMethod:h="absolute",side:i="top",align:j="center",sideOffset:k=0,alignOffset:l=0,collisionBoundary:m="clipping-ancestors",collisionPadding:n=5,arrowPadding:o=5,sticky:p=!1,disableAnchorTracking:q=!1,collisionAvoidance:r=by.POPUP_COLLISION_AVOIDANCE,style:s,...t}=a,u=aO(),v=function(){let a=d.useContext(bq);if(void 0===a)throw Error((0,aM.default)(70));return a}(),w=u.useState("open"),x=u.useState("mounted"),y=u.useState("trackCursorAxis"),z=u.useState("disableHoverablePopup"),A=u.useState("floatingRootContext"),B=u.useState("instantType"),C=u.useState("transitionStatus"),D=u.useState("adaptiveOrigin"),E=(0,bx.useAnchorPositioning)({anchor:g,positionMethod:h,floatingRootContext:A,mounted:x,side:i,sideOffset:k,align:j,alignOffset:l,collisionBoundary:m,collisionPadding:n,sticky:p,arrowPadding:o,disableAnchorTracking:q,keepMounted:v,collisionAvoidance:r,adaptiveOrigin:D}),F=d.useMemo(()=>({open:w,side:E.side,align:E.align,anchorHidden:E.anchorHidden,instant:"none"!==y?"tracking-cursor":B}),[w,E.side,E.align,E.anchorHidden,y,B]),G=(0,bz.usePositioner)(a,F,{styles:E.positionerStyles,transitionStatus:C,props:t,refs:[c,u.useStateSetter("positionerElement")],hidden:!x,inert:!w||"both"===y||z});return(0,b.jsx)(bv.Provider,{value:E,children:G})});var bB=a.i(5687),bC=a.i(3861),bD=a.i(81673);let bE=d.forwardRef(function(a,b){let{render:c,className:d,style:e,...f}=a,g=aO(),{side:h,align:i}=bw(),j=g.useState("open"),k=g.useState("instantType"),l=g.useState("transitionStatus"),m=g.useState("popupProps"),n=g.useState("floatingRootContext"),o=g.useState("disabled"),p=g.useState("closeDelay");(0,bB.useOpenChangeComplete)({open:j,ref:g.context.popupRef,onComplete(){j&&g.context.onOpenChangeComplete?.(!0)}}),(0,bD.useHoverFloatingInteraction)(n,{enabled:!o,closeDelay:p});let q=g.useStateSetter("popupElement");return(0,bb.useRenderElement)("div",a,{state:{open:j,side:h,align:i,instant:k,transitionStatus:l},ref:[b,g.context.popupRef,q],props:[aX.FOCUSABLE_POPUP_PROPS,m,(0,bC.getDisabledMountTransitionStyles)(l),f],stateAttributesMapping:ba.popupTransitionStateMapping})}),bF=d.forwardRef(function(a,b){let{render:c,className:d,style:e,...f}=a,g=aO(),{arrowRef:h,side:i,align:j,arrowUncentered:k,arrowStyles:l}=bw(),m=g.useState("open"),n=g.useState("instantType");return(0,bb.useRenderElement)("div",a,{state:{open:m,side:i,align:j,uncentered:k,instant:n},ref:[b,h],props:[{style:l,"aria-hidden":!0},f],stateAttributesMapping:ba.popupStateMapping})});var bG=a.i(62092);let bH=d.forwardRef(function(a,b){let{render:c,className:d,style:e,children:f,...g}=a,h=aO(),i=bw(),j=h.useState("instantType"),{children:k,state:l}=(0,bG.usePopupViewport)({store:h,side:i.side,children:f}),m={activationDirection:l.activationDirection,transitioning:l.transitioning,instant:j};return(0,bb.useRenderElement)("div",a,{state:m,ref:b,props:[g,{children:k}],stateAttributesMapping:bG.popupViewportStateMapping})});var bI=a.i(4675);class bJ extends bI.BasePopupHandle{constructor(){super(function(){let a=new a1.PopupTriggerMap;return Object.assign(new a_.NullStore(Object.freeze(a4(void 0,a)),Object.freeze(a5(a)),a2),{setOpen:aK.NOOP,cancelPendingOpen:aK.NOOP})}(),"Tooltip")}open(a){this.openByTrigger(a)}close(){this.closePopup()}get isOpen(){return this.attachedStore?.select("open")??!1}}a.s(["Arrow",0,bF,"Handle",0,bJ,"Popup",0,bE,"Portal",0,bu,"Positioner",0,bA,"Provider",0,function(a){let{delay:c,closeDelay:e,timeout:f=400}=a,g=d.useMemo(()=>({open:c,close:e}),[c,e]);return(0,b.jsx)(be.Provider,{value:c,children:(0,b.jsx)(bi,{delay:g,timeoutMs:f,children:a.children})})},"Root",0,a6,"Trigger",0,bp,"Viewport",0,bH,"createHandle",0,function(){return new bJ}],3191);var bK=a.i(3191),bK=bK;function bL(a){return(0,b.jsx)(bK.Root,{"data-slot":"tooltip",...a})}function bM(a){return(0,b.jsx)(bK.Trigger,{"data-slot":"tooltip-trigger",...a})}function bN({className:a,side:c="top",sideOffset:d=6,align:e="center",...f}){return(0,b.jsx)(bK.Portal,{children:(0,b.jsx)(bK.Positioner,{align:e,side:c,sideOffset:d,className:"isolate z-50 max-sm:hidden",children:(0,b.jsx)(bK.Popup,{"data-slot":"tooltip-content",className:(0,m.classNames)("w-fit max-w-xs origin-(--transform-origin) rounded-sm bg-foreground px-2 py-1 text-caption font-medium text-background shadow-md duration-(--duration-fast) data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",a),...f})})})}let bO={fresh:{Icon:aE,tone:"text-tone-ok-fg"},while:{Icon:aI,tone:"text-muted-foreground"},long:{Icon:aG,tone:"text-tone-waiting-fg"}};function bP({seenAt:a,now:c,testId:d}){let e;if(null===a)return null;let f=new Date(a),g=(e=c.getTime()-f.getTime())<6e4?"fresh":e<=9e5?"while":"long",{Icon:h,tone:i}=bO[g],j=(0,s.lastSeen)(f,c);return(0,b.jsxs)(bL,{children:[(0,b.jsx)(bM,{render:(0,b.jsx)("span",{role:"img","aria-label":j,"data-testid":d,"data-signal":g,className:(0,m.classNames)("inline-flex [&_svg]:size-(--size-icon) max-sm:[&_svg]:size-4",i)}),children:(0,b.jsx)(h,{"aria-hidden":!0})}),(0,b.jsx)(bN,{children:j})]})}var bQ=a.i(40108);let bR={name:"package",size:24,node:[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]};bR.node;let bS=(0,U.default)(bR),bT={name:"sparkles",size:24,node:[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],aliases:["stars"]};bT.node;let bU=(0,U.default)(bT);function bV(a){return a.startsWith("@")||/@\d+\.\d+\.\d+$/.test(a)}function bW({model:a,isCrewed:c,now:d,testId:e}){if(!c)return null;if(null===a)return(0,b.jsx)("span",{"data-testid":e,className:"text-meta text-muted-foreground",children:"Not stated yet"});let f=bV(a.id),g=function(a,b){let c=new Date(a.statedAt),d=Math.max(0,b.getTime()-c.getTime()),e=bV(a.id)?"Software":"Model";if(d<6e4)return`${e}, stated ${String(Math.floor(d/1e3))} s ago`;let f=(0,s.relativeTime)(c,b);return`${e}, stated ${f.charAt(0).toLowerCase()}${f.slice(1)}`}(a,d);return(0,b.jsxs)(bL,{children:[(0,b.jsxs)(bM,{render:(0,b.jsx)("span",{"data-testid":e,"data-slot":"model-tag","data-software":f?"":void 0,className:(0,m.classNames)("inline-flex max-w-44 min-w-0 items-center gap-1 rounded-sm px-1.5 py-0.5 font-mono text-id [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0",f?"border border-dashed border-border text-muted-foreground":"bg-secondary text-secondary-foreground")}),children:[(0,b.jsx)(f?bS:bU,{"aria-hidden":!0}),(0,b.jsx)("span",{className:"truncate",children:a.id}),(0,b.jsxs)("span",{className:"sr-only",children:[", ",g]})]}),(0,b.jsx)(bN,{children:(0,b.jsxs)("span",{className:"flex flex-col gap-0.5",children:[(0,b.jsx)("span",{className:"font-mono",children:a.id}),(0,b.jsx)("span",{className:"opacity-75",children:g})]})})]})}var bX=a.i(92717),bY=a.i(58523),bZ=a.i(90468);let b$={all:"All",crewed:"Crewed",awaitingCrew:"Awaiting crew"};function b_(a){return Object.hasOwn(b$,a)}function b0({ship:a,squadron:c}){return"operator"===a.kind?(0,b.jsxs)(ax.Badge,{variant:"kind",children:[(0,b.jsx)(am.UserRound,{"aria-hidden":!0}),"operator"]}):"viewer"===a.kind?(0,b.jsxs)(ax.Badge,{variant:"kind","data-testid":"fleet-viewer",children:[(0,b.jsx)(ag,{"aria-hidden":!0}),"viewer"]}):c?.role===null?(0,b.jsxs)(ax.Badge,{variant:"kind","data-testid":"fleet-flagship",children:[(0,b.jsx)(ah.Flag,{"aria-hidden":!0}),"flagship"]}):c?(0,b.jsx)(bY.SquadronTag,{squadronId:c.squadronId,role:c.role,size:"sm"}):null}function b1({ship:a,now:c}){let d=a.startingPrompt,e="inline-flex min-w-0 items-center gap-1.5 text-meta text-muted-foreground [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0";if(null===d)return(0,b.jsxs)("span",{className:e,children:[(0,b.jsx)(ai.KeyRound,{"aria-hidden":!0}),"No starting prompt issued"]});let f=new Date(d.issuedAt);return(0,b.jsxs)("span",{className:e,children:[(0,b.jsx)(ai.KeyRound,{"aria-hidden":!0}),(0,b.jsxs)("span",{className:"truncate",children:["Prompt issued"," ",(0,b.jsx)("time",{dateTime:d.issuedAt,title:(0,s.fullDateTime)(f),children:(0,s.relativeTime)(f,c)}),d.isClaimed?", claimed":", not claimed yet"]})]})}function b2({ship:a,now:c}){return"retired"===a.status?null===a.retiredAt?null:(0,b.jsxs)("span",{className:"truncate text-meta text-muted-foreground","data-testid":"fleet-retired-on",title:(0,s.fullDateTime)(new Date(a.retiredAt)),children:["Retired ",(0,s.dayMonth)(new Date(a.retiredAt))]}):"viewer"===a.kind?null:"awaitingCrew"===a.status?(0,b.jsx)(b1,{ship:a,now:c}):(0,b.jsx)(bQ.LocationTag,{kind:"operator"===a.kind&&null!==a.location?"DEVICE":a.location?.kind??null,description:a.location?.description,harness:"operator"===a.kind?"console":a.harness,size:"sm"})}function b3({ship:a,now:c,next:d}){let e="agent"===a.kind&&"crewed"===a.status;return(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2 max-sm:flex-col max-sm:items-stretch",children:[e?(0,b.jsx)(bX.ReportLine,{report:a.report,now:c,variant:"row",isTimeInTitle:!0,testId:"fleet-report"}):null,d]})}function b4({ships:a,view:c,onViewChange:d,size:e,squadronsOf:f}){let{filters:g}=c,h={all:"All",...Object.fromEntries(as(a,g.isRetiredShown).map(a=>[a,a]))},i=at(a),j="sm"===e?"fleet-show-retired":"fleet-show-retired-touch",k=a=>{d({...c,filters:{...g,...a}})},l="touch"===e;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(ay.Select,{items:b$,value:g.status,onValueChange:a=>{null!==a&&b_(a)&&k({status:a})},children:[(0,b.jsx)(ay.SelectTrigger,{size:e,"aria-label":"Status","data-testid":l?void 0:"fleet-filter-status",children:(0,b.jsxs)("span",{className:"flex gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"Status"}),(0,b.jsx)(ay.SelectValue,{className:"font-medium"})]})}),(0,b.jsx)(ay.SelectContent,{children:Object.entries(b$).map(([a,c])=>(0,b.jsx)(ay.SelectItem,{value:a,children:c},a))})]}),(0,b.jsxs)(ay.Select,{items:h,value:g.type,onValueChange:a=>{null!==a&&k({type:a})},children:[(0,b.jsx)(ay.SelectTrigger,{size:e,"aria-label":"Type","data-testid":l?void 0:"fleet-filter-type",children:(0,b.jsxs)("span",{className:"flex gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"Type"}),(0,b.jsx)(ay.SelectValue,{className:"font-medium"})]})}),(0,b.jsx)(ay.SelectContent,{children:Object.entries(h).map(([a,c])=>(0,b.jsx)(ay.SelectItem,{value:a,className:"all"===a?void 0:"font-mono",children:c},a))})]}),f&&(0,b.jsxs)(ay.Select,{items:{all:"All",...Object.fromEntries(au(f).map(a=>[a,a]))},value:g.squadron,onValueChange:a=>{null!==a&&k({squadron:a})},children:[(0,b.jsx)(ay.SelectTrigger,{size:e,"aria-label":"Squadron","data-testid":l?void 0:"fleet-filter-squadron",children:(0,b.jsxs)("span",{className:"flex gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"Squadron"}),(0,b.jsx)(ay.SelectValue,{className:"font-medium"})]})}),(0,b.jsxs)(ay.SelectContent,{children:[(0,b.jsx)(ay.SelectItem,{value:"all",children:"All"}),au(f).map(a=>(0,b.jsx)(ay.SelectItem,{value:a,children:a},a))]})]}),aw(g).length>0&&!l?(0,b.jsx)(w.Button,{variant:"ghost",size:"xs","data-testid":"fleet-filters-clear",onClick:()=>{d({...c,filters:an.filters})},children:"Clear filters"}):null,(0,b.jsxs)("div",{className:(0,m.classNames)("inline-flex items-center gap-2",l?"py-2":"sm:ml-auto"),children:[(0,b.jsx)(L.Switch,{id:j,"data-testid":l?void 0:"fleet-show-retired",checked:g.isRetiredShown,onCheckedChange:a=>{k({isRetiredShown:a})}}),(0,b.jsxs)(K.Label,{htmlFor:j,className:(0,m.classNames)("font-normal text-muted-foreground",l?"text-body-touch":"text-meta"),children:["Show retired (",i,")"]})]})]})}function b5({label:a,isOn:c,kind:d,onPick:e}){return(0,b.jsx)(w.Button,{variant:c?"primary":"secondary",size:"touch",role:"radio"===d?"radio":void 0,"aria-checked":"radio"===d?c:void 0,"aria-pressed":"toggle"===d?c:void 0,onClick:e,children:a})}function b6({ships:a,view:c,onViewChange:d,shownCount:e,squadronsOf:f}){let{filters:g}=c,h=a=>{d({...c,filters:{...g,...a}})},i=aw(g).length,j=at(a);return(0,b.jsxs)(az.Sheet,{children:[(0,b.jsx)(az.SheetTrigger,{render:(0,b.jsx)(w.Button,{size:"touch",isIconOnly:!0,"aria-label":i>0?`Filter ships, ${String(i)} active`:"Filter ships","data-testid":"fleet-filters-open",icon:(0,b.jsx)(al,{}),className:"relative sm:hidden",children:i>0?(0,b.jsx)("span",{"aria-hidden":!0,className:"absolute top-1.5 right-1.5 size-2 rounded-full bg-primary"}):null})}),(0,b.jsxs)(az.SheetContent,{side:"bottom",children:[(0,b.jsxs)(az.SheetHeader,{className:"flex-row items-center justify-between",children:[(0,b.jsx)(az.SheetTitle,{children:"Filter ships"}),(0,b.jsx)(w.Button,{variant:"ghost",size:"touch","data-testid":"fleet-filters-reset",onClick:()=>{d({...c,filters:an.filters})},children:"Reset"})]}),(0,b.jsxs)(az.SheetBody,{className:"flex flex-col gap-4 pb-4",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)("span",{id:"fleet-filter-status-label",className:"text-meta font-medium text-muted-foreground",children:"Status"}),(0,b.jsx)("div",{role:"radiogroup","aria-labelledby":"fleet-filter-status-label",className:"flex gap-1.5 [&>*]:flex-1",children:Object.entries(b$).map(([a,c])=>(0,b.jsx)(b5,{label:c,kind:"radio",isOn:g.status===a,onPick:()=>{b_(a)&&h({status:a})}},a))})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)("span",{className:"text-meta font-medium text-muted-foreground",children:"Type"}),(0,b.jsx)("div",{role:"group","aria-label":"Type",className:"flex flex-wrap gap-1.5",children:["all",...as(a,g.isRetiredShown)].map(a=>(0,b.jsx)(b5,{label:"all"===a?"All types":a,kind:"toggle",isOn:g.type===a,onPick:()=>{h({type:a})}},a))})]}),f&&(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)("span",{id:"fleet-filter-squadron-label",className:"text-meta font-medium text-muted-foreground",children:"Squadron"}),(0,b.jsx)("div",{role:"radiogroup","aria-labelledby":"fleet-filter-squadron-label",className:"flex flex-wrap gap-1.5",children:["all",...au(f)].map(a=>(0,b.jsx)(b5,{label:"all"===a?"All":a,kind:"radio",isOn:g.squadron===a,onPick:()=>{h({squadron:a})}},a))})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 py-1",children:[(0,b.jsxs)(K.Label,{htmlFor:"fleet-show-retired-touch",className:"text-body-touch font-normal",children:["Show retired ships ",(0,b.jsxs)("span",{className:"text-muted-foreground",children:["(",j,")"]})]}),(0,b.jsx)(L.Switch,{id:"fleet-show-retired-touch",checked:g.isRetiredShown,onCheckedChange:a=>{h({isRetiredShown:a})}})]}),(0,b.jsx)(az.SheetClose,{render:(0,b.jsx)(w.Button,{size:"touch","data-testid":"fleet-filters-apply"}),children:1===e?"Show 1 ship":`Show ${String(e)} ships`})]})]})]})}function b7({view:a,onViewChange:c}){let d=aw(a.filters);return 0===d.length?null:(0,b.jsxs)("div",{className:"flex w-full flex-wrap items-center gap-1.5 sm:hidden","data-testid":"fleet-filter-chips",children:[d.map(a=>(0,b.jsx)(ax.Badge,{variant:"outline",className:"max-w-full truncate",children:a},a)),(0,b.jsx)(w.Button,{variant:"ghost",size:"touch",onClick:()=>{c({...a,filters:an.filters})},children:"Clear filters"})]})}function b8({ships:a,view:c,onViewChange:d,shownCount:e,squadronsOf:f}){return(0,b.jsxs)("div",{"data-slot":"fleet-toolbar",className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("div",{className:"w-60 max-sm:min-w-0 max-sm:flex-1",children:(0,b.jsx)(J.Input,{type:"search","aria-label":"Search ships by name or type",placeholder:"Search ships by name","data-testid":"fleet-search",value:c.query,onChange:a=>{d({...c,query:a.target.value})},leadingIcon:(0,b.jsx)(aj.Search,{}),className:"h-(--size-control-sm) text-meta max-sm:h-(--size-control-touch) max-sm:text-input-touch"})}),(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-2 max-sm:hidden sm:flex-1",children:(0,b.jsx)(b4,{ships:a,view:c,onViewChange:d,squadronsOf:f,size:"sm"})}),(0,b.jsx)(b6,{ships:a,view:c,onViewChange:d,shownCount:e,squadronsOf:f}),(0,b.jsx)(b7,{view:c,onViewChange:d}),(0,b.jsxs)("p",{"aria-live":"polite",className:"text-meta text-muted-foreground tabular-nums max-sm:w-full",children:[e," of ",a.length," ships"]})]})}function b9({ship:a}){return(0,b.jsx)(bZ.ShipName,{name:a.name,shipId:a.id,isSuffixShown:"retired"===a.status,href:`/ships/${a.id}`})}function ca({ships:a,highlightedShipIds:c,now:d,renderRowActions:e,squadronsOf:f}){return(0,b.jsx)("div",{className:"max-sm:hidden",children:(0,b.jsxs)(aA.Table,{"aria-label":"Ships",children:[(0,b.jsx)(aA.TableHeader,{children:(0,b.jsxs)(aA.TableRow,{children:[(0,b.jsx)(aA.TableHead,{children:"Name"}),(0,b.jsx)(aA.TableHead,{children:"Status"}),(0,b.jsx)(aA.TableHead,{children:"Report"}),(0,b.jsx)(aA.TableHead,{children:"Runs on"}),(0,b.jsx)(aA.TableHead,{children:"Model"}),(0,b.jsx)(aA.TableHead,{children:"Seen"}),(0,b.jsx)(aA.TableHead,{children:(0,b.jsx)("span",{className:"sr-only",children:"Actions"})})]})}),(0,b.jsx)(aA.TableBody,{children:a.map(a=>(0,b.jsxs)(aA.TableRow,{"data-testid":`fleet-row-${a.name}`,"data-new":c?.has(a.id)?"":void 0,className:"h-12",children:[(0,b.jsx)(aA.TableCell,{className:"max-w-64",children:(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)(b9,{ship:a}),(0,b.jsx)(b0,{ship:a,squadron:f?.get(a.id)})]})}),(0,b.jsx)(aA.TableCell,{children:(0,b.jsx)(Z.StatusBadge,{status:a.status})}),(0,b.jsx)(aA.TableCell,{className:"max-w-72",children:(0,b.jsx)(b3,{ship:a,now:d,next:e?.(a,"next")})}),(0,b.jsx)(aA.TableCell,{className:"max-w-56",children:(0,b.jsx)(b2,{ship:a,now:d})}),(0,b.jsx)(aA.TableCell,{children:"agent"!==a.kind?null:(0,b.jsx)(bW,{model:a.model,isCrewed:"crewed"===a.status,now:d,testId:"fleet-model"})}),(0,b.jsx)(aA.TableCell,{children:(0,b.jsx)(bP,{seenAt:a.lastSeenAt,now:d,testId:"fleet-last-seen"})}),(0,b.jsx)(aA.TableCell,{className:"w-10 text-right",children:e?.(a,"table")})]},a.id))})]})})}function cb({ships:a,highlightedShipIds:c,now:d,renderRowActions:e,squadronsOf:f}){return(0,b.jsx)("ul",{"aria-label":"Ships",className:"overflow-hidden rounded-lg border border-border bg-card sm:hidden",children:a.map(a=>(0,b.jsxs)("li",{"data-testid":`fleet-card-${a.name}`,"data-new":c?.has(a.id)?"":void 0,className:"flex items-start gap-2 border-b border-border px-3.5 py-3 last:border-0 data-new:animate-highlight",children:[(0,b.jsxs)("div",{className:"flex min-w-0 grow flex-col gap-1.5",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 text-body-touch",children:[(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)(b9,{ship:a}),(0,b.jsx)(b0,{ship:a,squadron:f?.get(a.id)})]}),(0,b.jsx)(Z.StatusBadge,{status:a.status})]}),(0,b.jsx)(b3,{ship:a,now:d,next:e?.(a,"next")}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1",children:[(0,b.jsx)(b2,{ship:a,now:d}),"agent"!==a.kind?null:(0,b.jsx)(bW,{model:a.model,isCrewed:"crewed"===a.status,now:d}),(0,b.jsx)(bP,{seenAt:a.lastSeenAt,now:d})]})]}),e?.(a,"phone")]},a.id))})}function cc({ships:a,view:c,onViewChange:d,state:e,error:f,highlightedShipIds:g,now:h,renderRowActions:i,emptyAction:j,squadronsOf:k}){var l;let m;if("loading"===e)return(0,b.jsxs)("div",{"data-slot":"fleet-table","data-state":"loading",className:"flex flex-col gap-3",children:[(0,b.jsx)(aC.LoadingSkeleton,{variant:"table",rows:6,label:"Loading the fleet",className:"max-sm:hidden"}),(0,b.jsx)(aC.LoadingSkeleton,{variant:"list",rows:5,label:"Loading the fleet",className:"sm:hidden"})]});if("error"===e)return(0,b.jsx)(N.InlineError,{variant:"page",title:"Couldn’t load the fleet",description:"This page couldn’t reach the fleet server. Check that the server is running and reachable from this browser, then try again.",detail:f?.detail,retryNote:f?.retryNote,onRetry:f?.onRetry});let n={highlightedShipIds:g,now:h,renderRowActions:i,squadronsOf:k};if(a.every(a=>"operator"===a.kind||"retired"===a.status)){let c=a.filter(a=>"operator"===a.kind);return(0,b.jsxs)("div",{"data-slot":"fleet-table","data-state":"empty",className:"flex flex-col gap-3",children:[(0,b.jsx)(ca,{ships:c,...n}),(0,b.jsx)(cb,{ships:c,...n}),(0,b.jsx)(aB.EmptyState,{icon:(0,b.jsx)(Y.Ship,{}),title:"No ships besides argo yet",description:"argo is your own ship: messages to the operator land in its inbox. Commission a ship to add an agent to the fleet.",action:j})]})}let o=(l={...c,squadronsOf:k},a.filter(a=>{let b;return(""===(b=l.query.trim().toLowerCase())||a.name.toLowerCase().includes(b)||a.type.toLowerCase().includes(b))&&function(a,b){let{filters:c,squadronsOf:d}=b;return("retired"!==a.status||!!c.isRetiredShown)&&("all"===c.squadron||d?.get(a.id)?.squadronId===c.squadron)&&("all"===c.status||a.status===c.status)&&("all"===c.type||a.type===c.type)}(a,l)}).toSorted((a,b)=>a.kind!==b.kind?"operator"===a.kind?-1:1:a.name.localeCompare(b.name)||a.id.localeCompare(b.id))),p=c.query.trim();return(0,b.jsxs)("div",{"data-slot":"fleet-table","data-state":"ready",className:"flex flex-col gap-3",children:[(0,b.jsx)(b8,{ships:a,view:c,onViewChange:d,shownCount:o.length,squadronsOf:k}),0===o.length?(0,b.jsx)(aB.EmptyState,{variant:"no-results",title:""===p?"No ships match these filters.":`No ships match “${p}”.`,action:(0,b.jsx)(w.Button,{size:"xs","data-testid":"fleet-clear-filters",onClick:()=>{d(an)},children:(m=aw(c.filters).length>0,""===p?"Clear filters":m?"Clear search and filters":"Clear search")})}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(ca,{ships:o,...n}),(0,b.jsx)(cb,{ships:o,...n})]})]})}var cd=a.i(73202);function ce({view:a,onViewChange:c,newShipIds:d}){let e=(0,p.useFleetSnapshot)(),f=(0,r.useNow)(),g=(0,ad.useSquadrons)();return(0,b.jsx)("section",{"aria-label":"Fleet",className:"flex flex-col gap-3",children:(0,b.jsx)(cc,{ships:e.data??[],view:a,onViewChange:c,state:e.isPending?"loading":e.isError?"error":"ready",error:{detail:e.error?.message,onRetry:()=>{e.refetch()}},highlightedShipIds:d,now:f,renderRowActions:(a,c)=>(0,b.jsx)(cd.ShipActions,{ship:a,layout:"table"===c?"menu":"phone"===c?"sheet":"next"}),squadronsOf:g.data?(0,ae.shipsInSquadrons)(g.data):void 0})})}var cf=a.i(2466),cg=a.i(65563),ch=a.i(26949),ci=a.i(67336),cj=a.i(94764),ck=a.i(10572),cl=a.i(54763);a.s(["default",0,function({searchParams:a}){var i;let j,k=(0,c.useRouter)(),l=function(a){let b=new URLSearchParams;for(let[c,d]of Object.entries(a)){let a=Array.isArray(d)?d[0]:d;void 0!==a&&b.set(c,a)}return b}((0,d.use)(a)),m={query:l.get("q")??"",filters:{status:(i=l.get(ao),(j=A.shipStatusSchema.safeParse(i)).success&&"retired"!==j.data?j.data:"all"),type:l.get(ap)??"all",squadron:l.get(aq)??"all",isRetiredShown:"1"===l.get(ar)}},n="new"===l.get("commission"),o=(0,p.useFleetSnapshot)(),s=(0,ci.useLiveFleet)(),v=(0,r.useNow)(),w=(0,cj.useAccountMenu)(v),B=(0,cl.useHasSquadrons)(),C=(0,z.messageLimitReached)((0,x.useFleetLimits)().data),D=(0,y.useHostedAccountUrl)(),E=(0,ch.useOpenInboxCount)(),F=(0,cg.useAccess)(),[G,H]=(0,d.useState)(!1),[I,J]=(0,d.useState)(!1),[K,L]=(0,d.useState)(!1),M=(0,q.useAttentionCount)();(0,ck.useSignInWhenSessionEnds)([o.error,s.error]);let N=a=>{let b,c=(b=new URLSearchParams,""!==a.query&&b.set("q",a.query),"all"!==a.filters.status&&b.set(ao,a.filters.status),"all"!==a.filters.type&&b.set(ap,a.filters.type),"all"!==a.filters.squadron&&b.set(aq,a.filters.squadron),a.filters.isRetiredShown&&b.set(ar,"1"),b).toString();k.replace(""===c?"/":`/?${c}`,{scroll:!1})};return(0,b.jsxs)(cf.ListLayout,{title:"Fleet overview",description:o.data?function(a){let b=t(a.ships).length,c=a.ships.filter(a=>"agent"===a.kind&&"retired"===a.status).length;if(0===b&&0===c)return a.canCommission?"Only argo so far. Ships you commission appear here.":"Only argo so far.";let d=0===c?"":`, ${String(c)} retired`;return`${1===b?"1 active ship":`${String(b)} active ships`} and argo${d}. Changes appear as they happen.`}({ships:o.data,canCommission:F.canManage}):"Loading your fleet",primaryAction:F.canManage?(0,b.jsx)(T,{isOpen:K||n,onOpenChange:a=>{L(a),!a&&n&&N(m)}}):void 0,live:s.live,nav:{active:"overview",inboxCount:E,attentionCount:M,hasSquadrons:B,hasSettings:B&&F.canManage},onCompose:F.canSend?()=>{H(!0)}:void 0,onSearch:()=>{J(!0)},account:w,banner:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.ConsoleNotices,{}),(0,b.jsx)(g.ConsoleGuide,{})]}),children:[void 0===C?null:(0,b.jsx)(O.LimitNotice,{...(0,z.messageLimitNotice)(C),accountUrl:D,testId:"overview-message-limit"}),(0,b.jsx)(ac,{}),(0,b.jsx)(u,{}),(0,b.jsx)(ce,{view:m,onViewChange:N,newShipIds:s.newShipIds}),(0,b.jsx)(e.ComposeMessage,{isOpen:G,onOpenChange:H}),(0,b.jsx)(f.ConsoleCommands,{isOpen:I,onOpenChange:J,onCompose:()=>{H(!0)}})]})}],33634)}];
|
|
1
|
+
module.exports=[33634,a=>{"use strict";var b=a.i(87924),c=a.i(31247),d=a.i(38246),e=a.i(50944),f=a.i(72131),g=a.i(12068),h=a.i(15439),i=a.i(2549),j=a.i(83786),k=a.i(68698),l=a.i(56987),m=a.i(26268),n=a.i(88931),o=a.i(80487);let p={ok:"border-tone-ok-border bg-tone-ok-bg text-tone-ok-fg",waiting:"border-tone-waiting-border bg-tone-waiting-bg text-tone-waiting-fg",attention:"border-tone-attention-border bg-tone-attention-bg text-tone-attention-fg"};function q({label:a,shortLabel:c,value:e,detail:f,href:g,icon:h,tone:i,testId:j}){return(0,b.jsxs)(d.default,{href:g,"data-testid":j,className:"flex min-w-0 flex-col gap-2 rounded-lg border border-border bg-card px-4.5 py-4 shadow-sm transition-colors duration-(--duration-fast) hover:bg-accent max-sm:gap-1.5 max-sm:rounded-xl max-sm:px-3.5 max-sm:py-3",children:[(0,b.jsxs)("span",{className:"flex items-center justify-between gap-2 text-meta font-medium text-muted-foreground",children:[(0,b.jsx)("span",{className:"max-sm:hidden",children:a}),(0,b.jsx)("span",{className:"sm:hidden",children:c??a}),(0,b.jsx)("span",{className:(0,o.classNames)("flex size-6.5 shrink-0 items-center justify-center rounded-md border max-sm:size-5.5",p[i]),children:(0,b.jsx)(h,{"aria-hidden":!0,className:"size-3.5"})})]}),(0,b.jsx)("span",{className:"text-[28px] leading-none font-semibold tracking-tight tabular-nums text-foreground max-sm:text-2xl",children:e}),(0,b.jsx)("span",{className:"truncate text-meta text-muted-foreground",children:f})]})}var r=a.i(90146),s=a.i(10023),t=a.i(68450),u=a.i(72872);function v(a){return a.filter(a=>"agent"===a.kind&&"retired"!==a.status)}function w(){var a;let c,d,e,f,g=(0,r.useFleetSnapshot)(),h=(0,s.useNeedsAttention)(),i=(0,s.useAttentionCount)(),j=(0,t.useNow)();if(!g.data)return null;let k=(e=(d=(c=v((a={ships:g.data,undeliverable:h.data??[],now:j}).ships)).filter(a=>"awaitingCrew"===a.status)).flatMap(a=>null===a.awaitingCrewSince?[]:[{name:a.name,since:new Date(a.awaitingCrewSince)}]).sort((a,b)=>a.since.getTime()-b.since.getTime())[0],f=a.undeliverable.map(a=>new Date(a.since)).sort((a,b)=>a.getTime()-b.getTime())[0],{activeCount:c.length,crewedCount:c.filter(a=>"crewed"===a.status).length,awaitingCount:d.length,longestWait:e&&{name:e.name,wait:(0,u.duration)(e.since,a.now)},oldestUndeliverable:f&&(0,u.duration)(f,a.now)});return 0===k.activeCount?null:(0,b.jsxs)("div",{className:"grid grid-cols-3 gap-4 max-sm:grid-cols-2 max-sm:gap-2.5","data-testid":"overview-metrics",children:[(0,b.jsx)(q,{label:"Ships crewed",shortLabel:"Crewed",value:k.crewedCount,detail:`of ${String(k.activeCount)} active ships`,href:"/?status=crewed",icon:n.UserCheck,tone:"ok",testId:"overview-crewed"}),(0,b.jsx)(q,{label:"Awaiting crew",value:k.awaitingCount,detail:k.longestWait?`Longest wait: ${k.longestWait.name}, ${k.longestWait.wait}`:"Every active ship is crewed",href:"/?status=awaitingCrew",icon:l.CircleDashed,tone:"waiting",testId:"overview-awaiting"}),(0,b.jsx)(q,{label:"Needs attention",value:i??0,detail:k.oldestUndeliverable?`Undeliverable deliveries, oldest ${k.oldestUndeliverable}`:"Nothing needs you",href:"/needs-attention",icon:m.TriangleAlert,tone:"attention",testId:"overview-attention"})]})}var x=a.i(3512),y=a.i(96082),z=a.i(82611),A=a.i(88191),B=a.i(64906),C=a.i(47468),D=a.i(82252),E=a.i(54763),F=a.i(12540),G=a.i(93454);a.i(23600);var H=a.i(97011),I=a.i(69040),J=a.i(97024),K=a.i(73370),L=a.i(11708),M=a.i(18691),N=a.i(78398),O=a.i(18441),P=a.i(2374),Q=a.i(75297),R=a.i(45098),S=a.i(45469),T=a.i(72309),U=a.i(71251),V=a.i(40392),W=a.i(21521);let X={"fleet:read":"Read the fleet","fleet:manage":"Manage the fleet","crew:assign":"Assign crews","crew:run":"Run crews","labels:define":"Define labels","labels:assign":"Assign labels"};function Y({activeShips:a,isPending:d,error:e,shipLimit:h,accountUrl:i,crewRequest:j,onSubmit:k}){let l=(0,f.useId)(),m=(0,f.useId)(),n=(0,f.useId)(),p=(0,f.useId)(),q=(0,f.useId)(),r=(0,f.useId)(),[s,t]=(0,f.useState)(""),[u,v]=(0,f.useState)(""),[w,x]=(0,f.useState)(""),[z,A]=(0,f.useState)([]),[B,C]=(0,f.useState)(void 0!==j),[E,F]=(0,f.useState)(()=>(0,y.defaultValues)(j?.offers??[])),G=E.machineLabels.length>0&&j?.machineLabels?.matchOf(E.machineLabels).matching.length===0,P=(0,y.settingsOf)(E),Z=j?.check?.kind==="refused"?j.check:void 0,$=!B||void 0===j||void 0!==P&&void 0===Z&&(0,y.promptBytes)(E.firstPrompt)<=L.FIRST_PROMPT_MAX_BYTES,_=(0,M.checkShipName)(s,{activeNames:a.map(a=>a.name)}),aa="invalid"===_.kind||"reserved"===_.kind||"taken"===_.kind,ab=u.trim(),ac=I.shipHandleSchema.safeParse(ab).success,ad=""!==ab&&!ac,ae=[...new Set(a.map(a=>a.type))].sort(),af="available"===_.kind&&ac&&void 0===h&&$,ag=void 0!==j&&B;return(0,b.jsxs)("form",{noValidate:!0,"data-testid":"commission-form",className:"contents",onSubmit:a=>{a.preventDefault(),af&&k({name:s,type:ab,...""===w.trim()?{}:{note:w},...0===z.length?{}:{fleetScopes:[...z]}},B?void 0===j?{settings:{}}:void 0===P?void 0:{settings:P}:void 0)},children:[(0,b.jsxs)(O.DialogHeader,{children:[(0,b.jsx)(O.DialogTitle,{children:"Commission a ship"}),(0,b.jsx)(O.DialogDescription,{children:ag?"A durable identity with its own inbox, and a crew request so it gets a session right away.":"A ship is a durable agent identity with its own inbox. Next, you get the starting prompt."})]}),void 0===h?null:(0,b.jsx)(W.LimitNotice,{...(0,D.shipLimitNotice)(h),accountUrl:i,testId:"commission-ship-limit"}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsxs)("div",{className:"flex items-baseline justify-between",children:[(0,b.jsx)(R.Label,{htmlFor:l,children:"Name"}),(0,b.jsxs)("span",{className:"text-caption text-muted-foreground tabular-nums",children:[s.length," / ",I.SHIP_HANDLE_MAX_LENGTH]})]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(Q.Input,{id:l,isMono:!0,autoComplete:"off",autoCapitalize:"off",spellCheck:!1,placeholder:"e.g. reviewer-02","data-testid":"commission-name","aria-invalid":!!aa||void 0,"aria-describedby":m,className:"pr-9 max-sm:h-(--size-control-touch) max-sm:text-input-touch",value:s,onChange:a=>{t((0,M.asHandle)(a.target.value))}}),"available"===_.kind?(0,b.jsx)(J.CircleCheck,{"aria-hidden":!0,className:"absolute top-1/2 right-3 size-(--size-icon) -translate-y-1/2 text-tone-ok-fg"}):aa?(0,b.jsx)(K.CircleX,{"aria-hidden":!0,className:"absolute top-1/2 right-3 size-(--size-icon) -translate-y-1/2 text-destructive-text"}):null]}),(0,b.jsx)("p",{id:m,"aria-live":"polite",className:(0,o.classNames)("text-meta",aa?"text-destructive-text":"text-muted-foreground"),children:_.message})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(R.Label,{htmlFor:n,children:"Type"}),(0,b.jsx)(N.Combobox,{id:n,options:ae.map(a=>({value:a,label:a})),value:""===u?null:u,onValueChange:a=>{v(a??"")},isFreeText:!0,toQuery:M.asHandle,leadingIcon:(0,b.jsx)(c.Tag,{}),placeholder:"e.g. reviewer",isInvalid:ad,"aria-describedby":p,"data-testid":"commission-type"}),(0,b.jsx)("p",{id:p,className:(0,o.classNames)("text-meta",ad?"text-destructive-text":"text-muted-foreground"),children:ad?`Use 1 to ${String(I.SHIP_HANDLE_MAX_LENGTH)} lowercase letters, digits, hyphens or colons.`:(0,M.typeHint)(u,a.filter(a=>a.type===ab).length)})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(R.Label,{htmlFor:q,children:"Note (optional)"}),(0,b.jsx)(T.Textarea,{id:q,rows:2,"data-testid":"commission-note",value:w,onChange:a=>{x(a.target.value)}})]}),(0,b.jsxs)("fieldset",{className:"flex flex-col gap-2",children:[(0,b.jsx)("legend",{className:"mb-1.5 text-body font-medium text-foreground",children:"Fleet access"}),H.FLEET_SCOPES.map(a=>(0,b.jsxs)("label",{className:"flex items-center justify-between gap-3 text-body text-foreground",children:[(0,b.jsxs)("span",{children:[X[a]," ",(0,b.jsx)("span",{className:"font-mono text-id text-muted-foreground",children:a})]}),(0,b.jsx)(S.Switch,{checked:z.includes(a),onCheckedChange:b=>{A(c=>b?[...c,a]:c.filter(b=>b!==a))},"data-testid":`commission-${a.replace(":","-")}`})]},a)),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"Every ship sends and receives. Fleet access lets its session act as the console does; crew ships lets a trierarch start their sessions. It cannot be changed later."})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-3 border-t border-border pt-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)(R.Label,{htmlFor:r,children:"Request a crew"}),(0,b.jsx)(S.Switch,{id:r,checked:B,onCheckedChange:C,"data-testid":"commission-request-crew"})]}),(0,b.jsx)("p",{className:"-mt-2 text-meta text-muted-foreground",children:void 0===j?`Puts ${""===s?"the ship":s} on your Needs crew list until you crew it by hand. You get its starting prompt next either way.`:"The trierarch plugin picks a trierarch that starts the session and keeps it crewed."}),ag?(0,b.jsx)(U.CrewSettingsFields,{offers:j.offers,values:E,onChange:a=>{F(a),j.onSettingsChange((0,y.settingsOf)(a))},squadrons:j.squadrons,refusal:Z,isDisabled:d,...void 0===j.machineLabels?{}:{machineLabels:{...j.machineLabels,shipName:""===s.trim()?"this ship":s.trim()}}}):null]}),void 0===e?null:(0,b.jsx)(V.InlineError,{title:"Not commissioned",description:e}),(0,b.jsxs)(O.DialogFooter,{className:"items-center",children:[void 0===j?null:(0,b.jsx)("span",{className:"mr-auto text-meta text-muted-foreground","data-testid":"commission-crew-note",children:B?G?"The request will wait for a machine with these labels.":j.check?.kind==="noRoom"?"The request will wait for room.":"Uncheck Request a crew to get the starting prompt instead.":null}),(0,b.jsx)(O.DialogClose,{render:(0,b.jsx)(g.Button,{type:"button",disabled:d}),children:"Cancel"}),(0,b.jsx)(g.Button,{type:"submit",variant:"primary",isLoading:d,disabled:!af,"data-testid":"commission-submit",children:d?"Commissioning":ag?"Commission and request crew":"Commission ship"})]})]})}function Z(a){let{isOpen:c,onOpenChange:d,isPending:e}=a;return(0,b.jsx)(O.Dialog,{open:c,onOpenChange:a=>{e||d(a)},children:(0,b.jsx)(O.DialogContent,{size:"md","data-testid":"commission-dialog",className:P.dialogSurface.phoneFullScreen,children:(0,b.jsx)(Y,{...a})})})}var $=a.i(44344);function _({isOpen:a,onOpenChange:c}){let d=(0,r.useFleetSnapshot)(),e=(0,B.useFleetLimits)(),h=(0,C.useHostedAccountUrl)(),i=(0,r.useCommissionShip)(),j=(0,r.useRequestCrew)(),k="connected"===(0,G.useTrierarchPluginConnection)(),l=(0,G.useMachines)(),m=(0,E.useSquadronsConnection)(),n=(0,F.useSquadrons)(),[o,p]=(0,f.useState)(!1),[q,s]=(0,f.useState)(null),t=(0,y.offersOf)(l.data??[]),u=(0,r.useLabelContext)(),v=void 0===u||void 0===l.data?void 0:(0,z.machineLabelsInputOf)(u,l.data),w=(0,G.useCrewSettingsCheck)(a&&k?null===q?(0,y.settingsOf)((0,y.defaultValues)(t)):q:void 0),H=(d.data??[]).filter(a=>"retired"!==a.status),I=(a,b)=>{i.mutate(a,{onSuccess:({shipId:d})=>{c(!1);let e=k&&void 0!==b;e||p(!0),void 0!==b&&j.mutate({shipId:d,settings:b.settings},{onSuccess:()=>{e&&(0,A.showToast)({title:`${a.name} commissioned, crew requested`,description:"The trierarch plugin assigns a trierarch that fits.",tone:"success"})},onError:b=>{(0,A.showToast)({title:`Couldn’t request a crew for ${a.name}`,description:`${b.message} The ship is commissioned; request a crew on its page.`,tone:"error"})}})}})};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g.Button,{variant:"primary",icon:(0,b.jsx)(x.Plus,{}),"data-testid":"fleet-commission",onClick:()=>{i.reset(),s(null),c(!0)},children:"Commission ship"}),(0,b.jsx)(Z,{activeShips:H,isOpen:a,onOpenChange:c,isPending:i.isPending,error:i.error?.message,shipLimit:(0,D.shipLimitReached)(e.data),accountUrl:h,...k?{crewRequest:{offers:t,squadrons:"connected"===m?(n.data??[]).filter(a=>"disbanded"!==a.state).map(a=>a.id):void 0,...void 0===v?{}:{machineLabels:v},check:w.data,onSettingsChange:s}}:{},onSubmit:(a,b)=>{let c={...a,idempotencyKey:crypto.randomUUID()};k&&void 0!==b?w.checkNow().catch(()=>void 0).then(a=>{a?.kind!=="refused"&&I(c,b)}).catch(()=>void 0):I(c,b)}}),(0,b.jsx)($.StartingPromptDialog,{shipName:i.variables?.name??"",state:"shown",prompt:i.data?.prompt??void 0,crewLines:i.data?.crewLines??void 0,isOpen:o&&void 0!==i.data,onOpenChange:a=>{a||(p(!1),i.reset())},onConfirm:()=>void 0})]})}var aa=a.i(64831);let ab={name:"infinity",size:24,node:[["path",{d:"M6 16c5 0 7-8 12-8a4 4 0 0 1 0 8c-5 0-7-8-12-8a4 4 0 1 0 0 8",key:"18ogeb"}]]};ab.node;let ac=(0,aa.default)(ab);var ad=a.i(74746),ae=a.i(98238),af=a.i(23063);let ag={ships:{label:"Ships",unit:"ships",Icon:ae.Ship},messages:{label:"Messages today",unit:"messages",Icon:ad.Send}},ah={below:"bg-primary",at:"bg-tone-waiting-fg",over:"bg-tone-attention-fg"},ai={at:"at-limit",over:"over-limit"};function aj({kind:a,count:c,limit:d,resetsAt:e}){let{label:f,unit:g,Icon:h}=ag[a],i=(0,D.meterState)({count:c,limit:d}),j=ai[i],k=(0,D.meterCaption)({count:c,limit:d}),l=null===d?0:0===d?1:Math.min(c/d,1);return(0,b.jsxs)("div",{"data-testid":`limit-meter-${a}`,"data-state":i,className:"flex flex-col gap-2 rounded-lg border border-border bg-card p-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-meta font-medium text-muted-foreground",children:[(0,b.jsx)(h,{"aria-hidden":!0,className:"size-(--size-icon-sm)"}),f]}),void 0===j?null:(0,b.jsx)(af.StatusBadge,{status:j})]}),(0,b.jsxs)("p",{className:"flex items-baseline gap-1.5",children:[(0,b.jsx)("span",{className:"text-metric font-semibold tabular-nums",children:(0,D.meterCount)(c)}),(0,b.jsx)("span",{className:"text-body text-muted-foreground",children:null===d?g:`of ${(0,D.meterCount)(d)} ${g}`})]}),null===d?(0,b.jsxs)("p",{className:"inline-flex items-center gap-1.5 text-meta text-muted-foreground",children:[(0,b.jsx)(ac,{"aria-hidden":!0,className:"size-(--size-icon-sm)"}),"No limit"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{role:"meter","aria-label":`${f}: ${String(c)} of ${String(d)}`,"aria-valuenow":c,"aria-valuemin":0,"aria-valuemax":d,className:"block h-1.5 overflow-hidden rounded-full bg-secondary",children:(0,b.jsx)("span",{className:(0,o.classNames)("block h-full rounded-full","none"===i?void 0:ah[i]),style:{width:`${String(100*l)}%`}})}),(0,b.jsxs)("p",{"data-testid":`limit-meter-${a}-caption`,className:"text-caption text-muted-foreground",children:[k,void 0===e?null:` \xb7 resets at ${(0,D.resetTime)(e)}`]})]})]})}function ak(){let a=(0,B.useFleetLimits)().data,c=(0,C.useHostedAccountUrl)();return(0,D.hasLimits)(a)?(0,b.jsxs)("section",{"aria-labelledby":"overview-limits-title","data-testid":"overview-limits",className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("h2",{id:"overview-limits-title",className:"text-body font-semibold",children:"Limits"}),void 0===c?null:(0,b.jsx)("a",{href:c,"data-testid":"overview-limits-view",className:"text-meta font-medium text-primary underline underline-offset-2",children:"View limits"})]}),(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsx)(aj,{kind:"ships",count:a.ships.count,limit:a.ships.limit}),(0,b.jsx)(aj,{kind:"messages",count:a.dailyMessages.count,limit:a.dailyMessages.limit,resetsAt:a.dailyMessages.resetsAt})]})]}):null}var al=a.i(8219);let am={name:"eye",size:24,node:[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]};am.node;let an=(0,aa.default)(am);var ao=a.i(25039),ap=a.i(26766),aq=a.i(33540);let ar={name:"sliders-horizontal",size:24,node:[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]]};ar.node;let as=(0,aa.default)(ar);var at=a.i(87005),au=a.i(2811),av=a.i(6071),aw=a.i(65230),ax=a.i(60271);let ay={query:"",filters:{status:"all",crewRequest:"all",type:"all",squadron:"all",isRetiredShown:!1,labelValueIds:[]}},az="status",aA="crew",aB="type",aC="squadron",aD="retired",aE="label";function aF(a,b){return[...new Set(a.filter(a=>b||"retired"!==a.status).map(a=>a.type))].toSorted((a,b)=>a.localeCompare(b))}function aG(a){return a.filter(a=>"retired"===a.status).length}function aH(a){return[...new Set([...a.values()].map(a=>a.squadronId))].toSorted((a,b)=>a.localeCompare(b))}let aI={crewed:"Crewed",awaitingCrew:"Awaiting crew"};function aJ(a){return aK(a).length+a.labelValueIds.length}function aK(a){return["all"===a.status?void 0:`Status: ${aI[a.status]}`,"all"===a.crewRequest?void 0:`Crew request: ${(0,ax.crewRequestKeyWord)(a.crewRequest)}`,"all"===a.type?void 0:`Type: ${a.type}`,"all"===a.squadron?void 0:`Squadron: ${a.squadron}`,a.isRetiredShown?"Retired shown":void 0].filter(a=>void 0!==a)}var aL=a.i(76166),aM=a.i(48136),aN=a.i(4838),aO=a.i(77339),aP=a.i(24173),aQ=a.i(36501);function aR({chips:a,width:c,testId:d}){if(0===a.length)return null;let{shown:e,folded:f}=(0,aw.rowChips)(a,c);return(0,b.jsxs)("span",{"data-testid":d,className:"flex min-w-0 items-center gap-1 overflow-hidden",children:[e.map((a,c)=>(0,b.jsx)(aQ.LabelChip,{chip:a,className:0===c?"min-w-0 shrink":void 0},a.valueId)),0===f.length?null:(0,b.jsxs)("span",{title:f.map(a=>`${a.key}=${a.value}`).join(", "),className:"inline-flex h-5.5 shrink-0 items-center rounded-sm bg-secondary px-1.5 text-caption font-medium text-foreground tabular-nums",children:["+",f.length,(0,b.jsx)("span",{className:"sr-only",children:" more labels"})]})]})}var aS=a.i(50808);let aT={name:"signal",size:24,node:[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}],["path",{d:"M12 20v-8",key:"i3yub9"}],["path",{d:"M17 20V8",key:"1tkaf5"}],["path",{d:"M22 4v16",key:"sih9yq"}]]};aT.node;let aU=(0,aa.default)(aT),aV={name:"signal-low",size:24,node:[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}]]};aV.node;let aW=(0,aa.default)(aV),aX={name:"signal-medium",size:24,node:[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}],["path",{d:"M12 20v-8",key:"i3yub9"}]]};aX.node;let aY=(0,aa.default)(aX);a.s([],65156),a.i(65156);var aZ=a.i(22050),a$=a.i(24715),a_=a.i(57738),a0=a.i(54662);let a1=f.createContext(void 0);function a2(a){let b=f.useContext(a1);if(void 0===b&&!a)throw Error((0,a0.default)(72));return b}var a3=a.i(68536),a4=a.i(54401),a5=a.i(26476),a6=a.i(30116),a7=a.i(14209);function a8(a){return null!=a&&null!=a.clientX}var a9=a.i(38939),ba=a.i(94552),bb=a.i(84204),bc=a.i(32318),bd=a.i(17498),be=a.i(7436),bf=a.i(14239),bg=a.i(17017),bh=a.i(51943);let bi={...bg.popupStoreSelectors,disabled:a=>a.disabled,instantType:a=>a.instantType,isInstantPhase:a=>a.isInstantPhase,trackCursorAxis:a=>a.trackCursorAxis,disableHoverablePopup:a=>a.disableHoverablePopup,lastOpenChangeReason:a=>a.openChangeReason,closeOnClick:a=>a.closeOnClick,closeDelay:a=>a.closeDelay,adaptiveOrigin:a=>a.adaptiveOrigin};class bj extends bd.ReactStore{constructor(a,b,c){const d=new bh.PopupTriggerMap;super(bk(a,d,b,c),bl(d),bi)}setOpen=(a,b)=>{(0,bb.applyPopupOpenChange)(this,a,b,{extraState:{openChangeReason:b.reason}})};cancelPendingOpen(a){this.state.floatingRootContext.dispatchOpenChange(!1,(0,ba.createChangeEventDetails)(be.REASONS.triggerPress,a))}}function bk(a,b,c,d=!1){return{...(0,bg.createInitialPopupStoreState)(b,c,d),disabled:!1,instantType:void 0,isInstantPhase:!1,trackCursorAxis:"none",disableHoverablePopup:!1,openChangeReason:null,closeOnClick:!0,closeDelay:0,adaptiveOrigin:void 0,...a}}function bl(a){return{popupRef:f.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerElements:a}}let bm=(0,aZ.fastComponent)(function(a){let{disabled:c=!1,defaultOpen:d=!1,open:e,disableHoverablePopup:g=!1,trackCursorAxis:h="none",actionsRef:i,onOpenChange:j,onOpenChangeComplete:k,handle:l,triggerId:m,defaultTriggerId:n=null,children:o}=a,p=(0,bb.usePopupRootStore)((a,b)=>new bj({open:d,openProp:e,activeTriggerId:n,triggerIdProp:m},a,b));p.useControlledProp("openProp",e),p.useControlledProp("triggerIdProp",m),p.useContextCallback("onOpenChange",j),p.useContextCallback("onOpenChangeComplete",k);let q=p.useState("open"),r=!c&&q,s=p.useState("activeTriggerId"),t=p.useState("mounted"),u=p.useState("payload");p.useSyncedValues({trackCursorAxis:h,disableHoverablePopup:g,disabled:c}),(0,bb.useImplicitActiveTrigger)(p,{closeOnActiveTriggerUnmount:!0});let{forceUnmount:v,transitionStatus:w}=(0,bb.useOpenStateTransitions)(r,p),x=p.useState("isInstantPhase"),y=p.useState("instantType"),z=p.useState("lastOpenChangeReason"),A=f.useRef(null);(0,a_.useIsoLayoutEffect)(()=>{q&&c&&p.setOpen(!1,(0,ba.createChangeEventDetails)(be.REASONS.disabled))},[q,c,p]),(0,a_.useIsoLayoutEffect)(()=>{"ending"===w&&z===be.REASONS.none||"ending"!==w&&x?("delay"!==y&&(A.current=y),p.set("instantType","delay")):null!==A.current&&(p.set("instantType",A.current),A.current=null)},[w,x,z,y,p]),(0,a_.useIsoLayoutEffect)(()=>{r&&null==s&&p.set("payload",void 0)},[p,s,r]),f.useImperativeHandle(i,()=>({unmount:v,close:()=>p.setOpen(!1,(0,ba.createChangeEventDetails)(be.REASONS.imperativeAction))}),[v,p]);let B=r||t||!c&&"none"!==h;return(0,b.jsxs)(a1.Provider,{value:p,children:[l&&(0,b.jsx)(bb.PopupHandleAttachment,{handle:l,store:p}),B&&(0,b.jsx)(bn,{store:p,disabled:c,trackCursorAxis:h}),"function"==typeof o?o({payload:u}):o]})});function bn({store:a,disabled:b,trackCursorAxis:c}){let d=a.useState("floatingRootContext"),e=(0,a9.useDismiss)(d,{enabled:!b,referencePress:()=>a.select("closeOnClick")}),g=function(a,b={}){let{enabled:c=!0,axis:d="both"}=b,e="rootStore"in a?a.rootStore:a,g=e.useState("open"),h=e.useState("floatingElement"),i=e.useState("domReferenceElement"),j=e.context.dataRef,k=f.useRef(!1),l=f.useRef(null),[m,n]=f.useState(),[o,p]=f.useState([]),q=(0,a4.useStableCallback)(a=>{e.set("positionReference",a)}),r=(0,a4.useStableCallback)((a,b,c)=>{if(!k.current&&(!j.current.openEvent||a8(j.current.openEvent))){var f,g;let h,k,l;e.set("positionReference",(f=c??i,g={x:a,y:b,axis:d,dataRef:j,pointerType:m},h=null,k=null,l=!1,{contextElement:f||void 0,getBoundingClientRect(){let a=f?.getBoundingClientRect()||{width:0,height:0,x:0,y:0},b="x"===g.axis||"both"===g.axis,c="y"===g.axis||"both"===g.axis,d=["mouseenter","mousemove"].includes(g.dataRef.current.openEvent?.type||"")&&"touch"!==g.pointerType,e=a.width,i=a.height,j=a.x,m=a.y;return null==h&&g.x&&b&&(h=a.x-g.x),null==k&&g.y&&c&&(k=a.y-g.y),j-=h||0,m-=k||0,e=0,i=0,!l||d?(e="y"===g.axis?a.width:0,i="x"===g.axis?a.height:0,j=b&&null!=g.x?g.x:j,m=c&&null!=g.y?g.y:m):l&&!d&&(i="x"===g.axis?a.height:i,e="y"===g.axis?a.width:e),l=!0,{width:e,height:i,x:j,y:m,top:m,right:j+e,bottom:m+i,left:j}}}))}}),s=(0,a4.useStableCallback)(a=>{g?l.current||(r(a.clientX,a.clientY,a.currentTarget),p([])):r(a.clientX,a.clientY,a.currentTarget)}),t=(0,a7.isMouseLikePointerType)(m)?h:g;f.useEffect(()=>{if(!c)return void q(i);if(!t)return;function a(){l.current?.(),l.current=null}let b=(0,a5.getWindow)(h);return!j.current.openEvent||a8(j.current.openEvent)?l.current=(0,a3.addEventListener)(b,"mousemove",function(b){let c=(0,a6.getTarget)(b);(0,a6.contains)(h,c)?a():r(b.clientX,b.clientY)}):q(i),a},[t,c,h,j,i,e,r,q,o]),f.useEffect(()=>()=>{e.set("positionReference",null)},[e]),f.useEffect(()=>{c&&!h&&(k.current=!1)},[c,h]),f.useEffect(()=>{!c&&g&&(k.current=!0)},[c,g]);let u=f.useMemo(()=>{function a(a){n(a.pointerType)}return{onPointerDown:a,onPointerEnter:a,onMouseMove:s,onMouseEnter:s}},[s]);return f.useMemo(()=>c?{reference:u,trigger:u}:{},[c,u])}(d,{enabled:!b&&"none"!==c,axis:"none"===c?void 0:c}),h=f.useMemo(()=>(0,bc.mergeProps)(g.reference,e.reference),[g.reference,e.reference]);return(0,bb.usePopupInteractionProps)(a,{activeTriggerProps:h,inactiveTriggerProps:h,popupProps:e.floating??a$.EMPTY_OBJECT}),null}var bo=a.i(36069),bp=a.i(89862),bq=a.i(4478),br=a.i(26184),bs=a.i(97151),bt=a.i(557);let bu=f.createContext(void 0);var bv=a.i(25003),bw=a.i(85252);let bx=f.createContext({hasProvider:!1,timeoutMs:0,delayRef:{current:0},initialDelayRef:{current:0},timeout:new bo.Timeout,currentIdRef:{current:null},currentContextRef:{current:null}});function by(a){let{children:c,delay:d,timeoutMs:e=0}=a,g=f.useRef(d),h=f.useRef(d),i=f.useRef(null),j=f.useRef(null),k=(0,bo.useTimeout)();return(0,a_.useIsoLayoutEffect)(()=>{if(h.current=d,!i.current){g.current=d;return}g.current={open:(0,bw.getDelay)(g.current,"open"),close:(0,bw.getDelay)(d,"close")}},[d,i,g,h]),(0,b.jsx)(bx.Provider,{value:f.useMemo(()=>({hasProvider:!0,delayRef:g,initialDelayRef:h,currentIdRef:i,timeoutMs:e,currentContextRef:j,timeout:k}),[e,k]),children:c})}var bz=a.i(84842),bA=a.i(5735),bB=a.i(72077),bC=a.i(63734);let bD="data-base-ui-tooltip-trigger";function bE(a){if("composedPath"in a){let b=a.composedPath();for(let a=0;a<b.length;a+=1){let c=b[a];if((0,a5.isElement)(c))return c}}let b=a.target;return(0,a5.isElement)(b)?b:null}let bF=(0,aZ.fastComponentRef)(function(a,b){let{render:c,className:d,style:e,handle:g,payload:h,disabled:i,delay:j,closeOnClick:k=!0,closeDelay:l,id:m,...n}=a,o=a2(!0),p=(0,bs.usePopupHandleStore)(g)??o;if(!p)throw Error((0,a0.default)(82));let q=(0,bt.useBaseUiId)(m),r=p.useState("isTriggerActive",q),s=p.useState("isOpenedByTrigger",q),t=p.useState("floatingRootContext"),u=f.useRef(null),v=l??0,{registerTrigger:w,isMountedByThisTrigger:x}=(0,bb.useTriggerDataForwarding)(q,u,p,{payload:h,closeOnClick:k,closeDelay:v}),y=f.useContext(bu),{activeIdRef:z,delayRef:A,isInstantPhase:B,hasProvider:C}=function(a,b={open:!1}){let{open:c}=b,d="rootStore"in a?a.rootStore:a,e=d.useState("floatingId"),{currentIdRef:g,delayRef:h,timeoutMs:i,initialDelayRef:j,currentContextRef:k,hasProvider:l,timeout:m}=f.useContext(bx),[n,o]=f.useState(!1),p=f.useRef(c);return(0,a_.useIsoLayoutEffect)(()=>{p.current=c},[c]),(0,a_.useIsoLayoutEffect)(()=>{function a(){k.current?.setIsInstantPhase(!1),g.current=null,k.current=null,h.current=j.current,m.clear()}if(g.current&&!c&&g.current===e){if(o(!1),i)return m.start(i,()=>{d.select("open")||g.current&&g.current!==e||a()}),()=>{(p.current||g.current!==e)&&m.clear()};a()}},[c,e,g,h,i,j,k,m,d]),(0,a_.useIsoLayoutEffect)(()=>{if(!c)return;let a=k.current,b=g.current;m.clear(),k.current={onOpenChange:d.setOpen,setIsInstantPhase:o},g.current=e,h.current={open:0,close:(0,bw.getDelay)(j.current,"close")},null!==b&&b!==e?(o(!0),a?.setIsInstantPhase(!0),a?.onOpenChange(!1,(0,ba.createChangeEventDetails)(be.REASONS.none))):(o(!1),a?.setIsInstantPhase(!1))},[c,e,d,g,h,j,k,m]),(0,a_.useIsoLayoutEffect)(()=>()=>{g.current===e&&(k.current=null,p.current)&&(g.current=null,h.current=j.current,m.clear())},[k,g,h,e,j,m]),f.useMemo(()=>({activeIdRef:g,hasProvider:l,delayRef:h,isInstantPhase:n}),[g,l,h,n])}(t,{open:s}),D=(0,bB.useHoverInteractionSharedState)(t);p.useSyncedValue("isInstantPhase",B);let E=p.useState("disabled"),F=i??E,G=(0,bp.useValueAsRef)(F),H=p.useState("trackCursorAxis"),I=p.useState("disableHoverablePopup"),J=f.useRef(!1),K=(0,bo.useTimeout)(),L=f.useRef(void 0);function M(){return C&&null!=z.current?0:j??y??600}function N(a){let b=u.current;if(!b||!a)return!1;let c=function(a){let b=a;for(;b;){let a=b.closest(`[${bD}]`);if(a)return a;let c=b.getRootNode();b="host"in c&&(0,a5.isElement)(c.host)?c.host:null}return null}(a);return null!==c&&c!==b&&(0,a6.contains)(b,c)}let O=(0,bA.useHoverReferenceInteraction)(t,{enabled:!F,mouseOnly:!0,move:!1,handleClose:I||"both"===H?null:(0,bv.safePolygon)(),restMs:M,delay:()=>null==l&&C?{close:(0,bw.getDelay)(A.current,"close")}:{close:v},triggerElementRef:u,isActiveTrigger:r,isClosing:()=>"ending"===p.select("transitionStatus"),shouldOpen:()=>!J.current}),P=(0,bz.useFocus)(t,{enabled:!F}).reference,Q=p.useState("triggerProps",x),R=x||"none"!==H;return(0,br.useRenderElement)("button",a,{state:{open:s},ref:[b,w,u],props:[O,P,R?Q:void 0,{onMouseOver(a){(a=>{let b,c=J.current,d=bE(a),e=(J.current=b=N(d),b&&(D.openChangeTimeout.clear(),D.restTimeout.clear(),D.restTimeoutPending=!1,K.clear()),b),f=u.current,g=f&&d&&(0,a6.contains)(f,d);if(e&&p.select("open")&&p.select("lastOpenChangeReason")===be.REASONS.triggerHover)return p.setOpen(!1,(0,ba.createChangeEventDetails)(be.REASONS.triggerHover,a));if(c&&!e&&g&&!G.current&&!p.select("open")&&f&&(0,a7.isMouseLikePointerType)(L.current)){let b=()=>{J.current||G.current||p.select("open")||p.setOpen(!0,(0,ba.createChangeEventDetails)(be.REASONS.triggerHover,a,f))},c=M();0===c?(K.clear(),b()):K.start(c,b)}})(a.nativeEvent)},onFocus(a){N(bE(a.nativeEvent))&&a.preventBaseUIHandler()},onMouseLeave(){J.current=!1,K.clear(),L.current=void 0},onPointerEnter(a){L.current=a.pointerType},onPointerDown(a){L.current=a.pointerType,p.set("closeOnClick",k),k&&!p.select("open")&&p.cancelPendingOpen(a.nativeEvent)},onClick(a){k&&!p.select("open")&&p.cancelPendingOpen(a.nativeEvent)},id:q,[bC.triggerDisabled]:F?"":void 0,[bD]:F?void 0:""},n],stateAttributesMapping:bq.triggerOpenStateMapping})}),bG=f.createContext(void 0);var bH=a.i(35112),bI=a.i(54098);let bJ=f.forwardRef(function(a,c){let{children:d,container:e,className:g,render:h,style:i,...j}=a,{node:k,subtree:l}=(0,bI.useFloatingPortalNode)({container:e,ref:c,componentProps:a,elementProps:j});return l||k?(0,b.jsxs)(f.Fragment,{children:[l,k&&bH.createPortal(d,k)]}):null}),bK=f.forwardRef(function(a,c){let{keepMounted:d=!1,...e}=a;return a2().useState("mounted")||d?(0,b.jsx)(bG.Provider,{value:d,children:(0,b.jsx)(bJ,{ref:c,...e})}):null}),bL=f.createContext(void 0);function bM(){let a=f.useContext(bL);if(void 0===a)throw Error((0,a0.default)(71));return a}var bN=a.i(44871),bO=a.i(82204),bP=a.i(56011);let bQ=f.forwardRef(function(a,c){let{render:d,className:e,anchor:g,positionMethod:h="absolute",side:i="top",align:j="center",sideOffset:k=0,alignOffset:l=0,collisionBoundary:m="clipping-ancestors",collisionPadding:n=5,arrowPadding:o=5,sticky:p=!1,disableAnchorTracking:q=!1,collisionAvoidance:r=bO.POPUP_COLLISION_AVOIDANCE,style:s,...t}=a,u=a2(),v=function(){let a=f.useContext(bG);if(void 0===a)throw Error((0,a0.default)(70));return a}(),w=u.useState("open"),x=u.useState("mounted"),y=u.useState("trackCursorAxis"),z=u.useState("disableHoverablePopup"),A=u.useState("floatingRootContext"),B=u.useState("instantType"),C=u.useState("transitionStatus"),D=u.useState("adaptiveOrigin"),E=(0,bN.useAnchorPositioning)({anchor:g,positionMethod:h,floatingRootContext:A,mounted:x,side:i,sideOffset:k,align:j,alignOffset:l,collisionBoundary:m,collisionPadding:n,sticky:p,arrowPadding:o,disableAnchorTracking:q,keepMounted:v,collisionAvoidance:r,adaptiveOrigin:D}),F=f.useMemo(()=>({open:w,side:E.side,align:E.align,anchorHidden:E.anchorHidden,instant:"none"!==y?"tracking-cursor":B}),[w,E.side,E.align,E.anchorHidden,y,B]),G=(0,bP.usePositioner)(a,F,{styles:E.positionerStyles,transitionStatus:C,props:t,refs:[c,u.useStateSetter("positionerElement")],hidden:!x,inert:!w||"both"===y||z});return(0,b.jsx)(bL.Provider,{value:E,children:G})});var bR=a.i(5687),bS=a.i(3861),bT=a.i(81673);let bU=f.forwardRef(function(a,b){let{render:c,className:d,style:e,...f}=a,g=a2(),{side:h,align:i}=bM(),j=g.useState("open"),k=g.useState("instantType"),l=g.useState("transitionStatus"),m=g.useState("popupProps"),n=g.useState("floatingRootContext"),o=g.useState("disabled"),p=g.useState("closeDelay");(0,bR.useOpenChangeComplete)({open:j,ref:g.context.popupRef,onComplete(){j&&g.context.onOpenChangeComplete?.(!0)}}),(0,bT.useHoverFloatingInteraction)(n,{enabled:!o,closeDelay:p});let q=g.useStateSetter("popupElement");return(0,br.useRenderElement)("div",a,{state:{open:j,side:h,align:i,instant:k,transitionStatus:l},ref:[b,g.context.popupRef,q],props:[bb.FOCUSABLE_POPUP_PROPS,m,(0,bS.getDisabledMountTransitionStyles)(l),f],stateAttributesMapping:bq.popupTransitionStateMapping})}),bV=f.forwardRef(function(a,b){let{render:c,className:d,style:e,...f}=a,g=a2(),{arrowRef:h,side:i,align:j,arrowUncentered:k,arrowStyles:l}=bM(),m=g.useState("open"),n=g.useState("instantType");return(0,br.useRenderElement)("div",a,{state:{open:m,side:i,align:j,uncentered:k,instant:n},ref:[b,h],props:[{style:l,"aria-hidden":!0},f],stateAttributesMapping:bq.popupStateMapping})});var bW=a.i(62092);let bX=f.forwardRef(function(a,b){let{render:c,className:d,style:e,children:f,...g}=a,h=a2(),i=bM(),j=h.useState("instantType"),{children:k,state:l}=(0,bW.usePopupViewport)({store:h,side:i.side,children:f}),m={activationDirection:l.activationDirection,transitioning:l.transitioning,instant:j};return(0,br.useRenderElement)("div",a,{state:m,ref:b,props:[g,{children:k}],stateAttributesMapping:bW.popupViewportStateMapping})});var bY=a.i(4675);class bZ extends bY.BasePopupHandle{constructor(){super(function(){let a=new bh.PopupTriggerMap;return Object.assign(new bf.NullStore(Object.freeze(bk(void 0,a)),Object.freeze(bl(a)),bi),{setOpen:a$.NOOP,cancelPendingOpen:a$.NOOP})}(),"Tooltip")}open(a){this.openByTrigger(a)}close(){this.closePopup()}get isOpen(){return this.attachedStore?.select("open")??!1}}a.s(["Arrow",0,bV,"Handle",0,bZ,"Popup",0,bU,"Portal",0,bK,"Positioner",0,bQ,"Provider",0,function(a){let{delay:c,closeDelay:d,timeout:e=400}=a,g=f.useMemo(()=>({open:c,close:d}),[c,d]);return(0,b.jsx)(bu.Provider,{value:c,children:(0,b.jsx)(by,{delay:g,timeoutMs:e,children:a.children})})},"Root",0,bm,"Trigger",0,bF,"Viewport",0,bX,"createHandle",0,function(){return new bZ}],3191);var b$=a.i(3191),b$=b$;function b_(a){return(0,b.jsx)(b$.Root,{"data-slot":"tooltip",...a})}function b0(a){return(0,b.jsx)(b$.Trigger,{"data-slot":"tooltip-trigger",...a})}function b1({className:a,side:c="top",sideOffset:d=6,align:e="center",...f}){return(0,b.jsx)(b$.Portal,{children:(0,b.jsx)(b$.Positioner,{align:e,side:c,sideOffset:d,className:"isolate z-50 max-sm:hidden",children:(0,b.jsx)(b$.Popup,{"data-slot":"tooltip-content",className:(0,o.classNames)("w-fit max-w-xs origin-(--transform-origin) rounded-sm bg-foreground px-2 py-1 text-caption font-medium text-background shadow-md duration-(--duration-fast) data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",a),...f})})})}let b2={fresh:{Icon:aU,tone:"text-tone-ok-fg"},while:{Icon:aY,tone:"text-muted-foreground"},long:{Icon:aW,tone:"text-tone-waiting-fg"}};function b3({seenAt:a,now:c,testId:d}){let e;if(null===a)return null;let f=new Date(a),g=(e=c.getTime()-f.getTime())<6e4?"fresh":e<=9e5?"while":"long",{Icon:h,tone:i}=b2[g],j=(0,u.lastSeen)(f,c);return(0,b.jsxs)(b_,{children:[(0,b.jsx)(b0,{render:(0,b.jsx)("span",{role:"img","aria-label":j,"data-testid":d,"data-signal":g,className:(0,o.classNames)("inline-flex [&_svg]:size-(--size-icon) max-sm:[&_svg]:size-4",i)}),children:(0,b.jsx)(h,{"aria-hidden":!0})}),(0,b.jsx)(b1,{children:j})]})}var b4=a.i(40108);let b5={name:"package",size:24,node:[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]};b5.node;let b6=(0,aa.default)(b5),b7={name:"sparkles",size:24,node:[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],aliases:["stars"]};b7.node;let b8=(0,aa.default)(b7);function b9(a){return a.startsWith("@")||/@\d+\.\d+\.\d+$/.test(a)}function ca({model:a,isCrewed:c,now:d,testId:e}){if(!c)return null;if(null===a)return(0,b.jsx)("span",{"data-testid":e,className:"text-meta text-muted-foreground",children:"Not stated yet"});let f=b9(a.id),g=function(a,b){let c=new Date(a.statedAt),d=Math.max(0,b.getTime()-c.getTime()),e=b9(a.id)?"Software":"Model";if(d<6e4)return`${e}, stated ${String(Math.floor(d/1e3))} s ago`;let f=(0,u.relativeTime)(c,b);return`${e}, stated ${f.charAt(0).toLowerCase()}${f.slice(1)}`}(a,d);return(0,b.jsxs)(b_,{children:[(0,b.jsxs)(b0,{render:(0,b.jsx)("span",{"data-testid":e,"data-slot":"model-tag","data-software":f?"":void 0,className:(0,o.classNames)("inline-flex max-w-44 min-w-0 items-center gap-1 rounded-sm px-1.5 py-0.5 font-mono text-id [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0",f?"border border-dashed border-border text-muted-foreground":"bg-secondary text-secondary-foreground")}),children:[(0,b.jsx)(f?b6:b8,{"aria-hidden":!0}),(0,b.jsx)("span",{className:"truncate",children:a.id}),(0,b.jsxs)("span",{className:"sr-only",children:[", ",g]})]}),(0,b.jsx)(b1,{children:(0,b.jsxs)("span",{className:"flex flex-col gap-0.5",children:[(0,b.jsx)("span",{className:"font-mono",children:a.id}),(0,b.jsx)("span",{className:"opacity-75",children:g})]})})]})}let cb={waiting:"bg-tone-waiting-fg",active:"bg-tone-active-fg",ok:"bg-tone-ok-fg",attention:"bg-tone-attention-fg"};function cc({cell:a,testId:c}){return void 0===a?(0,b.jsxs)("span",{className:"text-meta text-muted-foreground","data-testid":c,children:[(0,b.jsx)("span",{"aria-hidden":!0,children:"–"}),(0,b.jsx)("span",{className:"sr-only",children:"No crew request"})]}):(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-meta whitespace-nowrap","data-testid":c,children:[(0,b.jsx)("span",{"aria-hidden":!0,className:(0,o.classNames)("size-1.5 shrink-0 rounded-full",cb[a.tone])}),a.word]})}var cd=a.i(92717),ce=a.i(58523),cf=a.i(90468),cg=a.i(89027),ch=a.i(3894),ci=a.i(60275),cj=a.i(681);function ck({groups:a,picked:c,onPick:e,trigger:g}){let[h,i]=(0,f.useState)(!1);return(0,b.jsxs)(ci.Popover,{open:h,onOpenChange:i,children:[(0,b.jsx)(ci.PopoverTrigger,{render:g}),(0,b.jsxs)(ci.PopoverContent,{align:"start",sideOffset:6,className:"w-80 p-2","data-testid":"label-filter-popover",children:[(0,b.jsx)("span",{className:"block px-2 pt-1 pb-2 text-body font-medium",children:"Filter by label"}),(0,b.jsx)(cj.LabelPicker,{groups:a,pickedValueIds:c.map(a=>a.valueId),onPick:a=>{e(a),i(!1)}}),(0,b.jsxs)("p",{className:"mt-2 flex items-center justify-between gap-2 border-t border-border px-2 pt-2 text-meta text-muted-foreground",children:["Exact matches, all must hold.",(0,b.jsx)(d.default,{href:"/labels",className:"font-medium text-foreground hover:underline","data-testid":"label-filter-manage",children:"Manage labels"})]})]})]})}function cl({groups:a,picked:d,onPick:e}){return(0,b.jsx)(ck,{groups:a,picked:d,onPick:e,trigger:(0,b.jsxs)(g.Button,{variant:"secondary",size:"sm",icon:(0,b.jsx)(c.Tag,{}),"data-testid":"fleet-filter-labels",children:["Labels",0===d.length?null:(0,b.jsxs)("span",{className:"inline-flex size-5 items-center justify-center rounded-full bg-primary text-caption font-semibold text-primary-foreground tabular-nums",children:[d.length,(0,b.jsx)("span",{className:"sr-only",children:" picked"})]}),(0,b.jsx)(cg.ChevronDown,{"aria-hidden":!0,className:"text-muted-foreground"})]})})}function cm({groups:a,picked:c,onPick:d,onRemove:e,onClear:f}){return 0===c.length?null:(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1.5 text-meta max-sm:hidden","data-testid":"fleet-picked-labels",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"Ships with"}),c.map((a,c)=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[0===c?null:(0,b.jsx)("span",{className:"text-muted-foreground",children:"and"}),(0,b.jsx)(aQ.LabelChip,{chip:a,testId:"fleet-picked-label",onRemove:()=>{e(a.valueId)}})]},a.valueId)),(0,b.jsx)(ck,{groups:a,picked:c,onPick:d,trigger:(0,b.jsx)(g.Button,{variant:"ghost",size:"xs",icon:(0,b.jsx)(x.Plus,{}),children:"Add"})}),(0,b.jsx)("span",{"aria-hidden":!0,className:"h-4 w-px bg-border"}),(0,b.jsx)(g.Button,{variant:"ghost",size:"xs",onClick:f,"data-testid":"fleet-labels-clear",children:"Clear labels"})]})}function cn({groups:a,picked:c,onPick:e,onRemove:h}){let[i,j]=(0,f.useState)(!1);return(0,b.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"fleet-filter-labels-touch",children:[(0,b.jsxs)("span",{className:"flex items-center gap-2 text-meta font-medium text-muted-foreground",children:["Labels ",(0,b.jsx)("span",{className:"font-normal",children:"all must hold"})]}),0===c.length?null:(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-2 text-meta",children:c.map((a,c)=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[0===c?null:(0,b.jsx)("span",{className:"text-muted-foreground",children:"and"}),(0,b.jsx)(aQ.LabelChip,{chip:a,onRemove:()=>{h(a.valueId)}})]},a.valueId))}),i?(0,b.jsx)("div",{className:"rounded-lg border border-border p-2",children:(0,b.jsx)(cj.LabelPicker,{groups:a,pickedValueIds:c.map(a=>a.valueId),size:"touch",onPick:a=>{e(a),j(!1)}})}):(0,b.jsx)(g.Button,{variant:"secondary",size:"touch",icon:(0,b.jsx)(x.Plus,{}),className:"self-start",onClick:()=>{j(!0)},children:"Add label"}),(0,b.jsxs)(d.default,{href:"/labels",className:"inline-flex items-center gap-1.5 self-start text-meta text-muted-foreground hover:underline [&_svg]:size-(--size-icon-sm)",children:[(0,b.jsx)(ch.Tags,{"aria-hidden":!0}),"All labels and their owners"]})]})}function co(a,b){return{...a,filters:{...a.filters,labelValueIds:b}}}let cp={all:"All",crewed:"Crewed",awaitingCrew:"Awaiting crew"};function cq(a){return Object.hasOwn(cp,a)}let cr={all:"All",...Object.fromEntries(ax.CREW_REQUEST_KEYS.map(a=>[a,(0,ax.crewRequestKeyWord)(a)]))};function cs(a){return Object.hasOwn(cr,a)}function ct({ship:a,squadron:c}){return"operator"===a.kind?(0,b.jsxs)(aL.Badge,{variant:"kind",children:[(0,b.jsx)(at.UserRound,{"aria-hidden":!0}),"operator"]}):"viewer"===a.kind?(0,b.jsxs)(aL.Badge,{variant:"kind","data-testid":"fleet-viewer",children:[(0,b.jsx)(an,{"aria-hidden":!0}),"viewer"]}):c?.role===null?(0,b.jsxs)(aL.Badge,{variant:"kind","data-testid":"fleet-flagship",children:[(0,b.jsx)(ao.Flag,{"aria-hidden":!0}),"flagship"]}):c?(0,b.jsx)(ce.SquadronTag,{squadronId:c.squadronId,role:c.role,size:"sm"}):null}function cu({ship:a,now:c}){let d=a.startingPrompt,e="inline-flex min-w-0 items-center gap-1.5 text-meta text-muted-foreground [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0";if(null===d)return(0,b.jsxs)("span",{className:e,children:[(0,b.jsx)(ap.KeyRound,{"aria-hidden":!0}),"No starting prompt issued"]});let f=new Date(d.issuedAt);return(0,b.jsxs)("span",{className:e,children:[(0,b.jsx)(ap.KeyRound,{"aria-hidden":!0}),(0,b.jsxs)("span",{className:"truncate",children:["Prompt issued"," ",(0,b.jsx)("time",{dateTime:d.issuedAt,title:(0,u.fullDateTime)(f),children:(0,u.relativeTime)(f,c)}),d.isClaimed?", claimed":", not claimed yet"]})]})}function cv({ship:a,now:c}){return"retired"===a.status?null===a.retiredAt?null:(0,b.jsxs)("span",{className:"truncate text-meta text-muted-foreground","data-testid":"fleet-retired-on",title:(0,u.fullDateTime)(new Date(a.retiredAt)),children:["Retired ",(0,u.dayMonth)(new Date(a.retiredAt))]}):"viewer"===a.kind?null:"awaitingCrew"===a.status?(0,b.jsx)(cu,{ship:a,now:c}):(0,b.jsx)(b4.LocationTag,{kind:"operator"===a.kind&&null!==a.location?"DEVICE":a.location?.kind??null,description:a.location?.description,harness:"operator"===a.kind?"console":a.harness,size:"sm"})}function cw({ship:a,now:c,next:d}){let e="agent"===a.kind&&"crewed"===a.status;return(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2 max-sm:flex-col max-sm:items-stretch",children:[e?(0,b.jsx)(cd.ReportLine,{report:a.report,now:c,variant:"row",isTimeInTitle:!0,testId:"fleet-report"}):null,d]})}function cx({ships:a,view:c,onViewChange:d,size:e,squadronsOf:f,labels:h}){let{filters:i}=c,j={all:"All",...Object.fromEntries(aF(a,i.isRetiredShown).map(a=>[a,a]))},k=aG(a),l="sm"===e?"fleet-show-retired":"fleet-show-retired-touch",m=a=>{d({...c,filters:{...i,...a}})},n="touch"===e;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(aM.Select,{items:cp,value:i.status,onValueChange:a=>{null!==a&&cq(a)&&m({status:a})},children:[(0,b.jsx)(aM.SelectTrigger,{size:e,"aria-label":"Status","data-testid":n?void 0:"fleet-filter-status",children:(0,b.jsxs)("span",{className:"flex gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"Status"}),(0,b.jsx)(aM.SelectValue,{className:"font-medium"})]})}),(0,b.jsx)(aM.SelectContent,{children:Object.entries(cp).map(([a,c])=>(0,b.jsx)(aM.SelectItem,{value:a,children:c},a))})]}),(0,b.jsxs)(aM.Select,{items:cr,value:i.crewRequest,onValueChange:a=>{null!==a&&cs(a)&&m({crewRequest:a})},children:[(0,b.jsx)(aM.SelectTrigger,{size:e,"aria-label":"Crew request","data-testid":n?void 0:"fleet-filter-crew-request",children:(0,b.jsxs)("span",{className:"flex gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"Crew request"}),(0,b.jsx)(aM.SelectValue,{className:"font-medium"})]})}),(0,b.jsx)(aM.SelectContent,{children:Object.entries(cr).map(([a,c])=>(0,b.jsx)(aM.SelectItem,{value:a,children:c},a))})]}),(0,b.jsxs)(aM.Select,{items:j,value:i.type,onValueChange:a=>{null!==a&&m({type:a})},children:[(0,b.jsx)(aM.SelectTrigger,{size:e,"aria-label":"Type","data-testid":n?void 0:"fleet-filter-type",children:(0,b.jsxs)("span",{className:"flex gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"Type"}),(0,b.jsx)(aM.SelectValue,{className:"font-medium"})]})}),(0,b.jsx)(aM.SelectContent,{children:Object.entries(j).map(([a,c])=>(0,b.jsx)(aM.SelectItem,{value:a,className:"all"===a?void 0:"font-mono",children:c},a))})]}),f&&(0,b.jsxs)(aM.Select,{items:{all:"All",...Object.fromEntries(aH(f).map(a=>[a,a]))},value:i.squadron,onValueChange:a=>{null!==a&&m({squadron:a})},children:[(0,b.jsx)(aM.SelectTrigger,{size:e,"aria-label":"Squadron","data-testid":n?void 0:"fleet-filter-squadron",children:(0,b.jsxs)("span",{className:"flex gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"Squadron"}),(0,b.jsx)(aM.SelectValue,{className:"font-medium"})]})}),(0,b.jsxs)(aM.SelectContent,{children:[(0,b.jsx)(aM.SelectItem,{value:"all",children:"All"}),aH(f).map(a=>(0,b.jsx)(aM.SelectItem,{value:a,children:a},a))]})]}),void 0===h||n?null:(0,b.jsx)(cl,{groups:(0,aw.filterGroupsOf)(h),picked:(0,aw.pickedChips)(i.labelValueIds,h),onPick:a=>{d(co(c,[...i.labelValueIds,a]))}}),aK(i).length>0&&!n?(0,b.jsx)(g.Button,{variant:"ghost",size:"xs","data-testid":"fleet-filters-clear",onClick:()=>{d({...c,filters:ay.filters})},children:"Clear filters"}):null,(0,b.jsxs)("div",{className:(0,o.classNames)("inline-flex items-center gap-2",n?"py-2":"sm:ml-auto"),children:[(0,b.jsx)(S.Switch,{id:l,"data-testid":n?void 0:"fleet-show-retired",checked:i.isRetiredShown,onCheckedChange:a=>{m({isRetiredShown:a})}}),(0,b.jsxs)(R.Label,{htmlFor:l,className:(0,o.classNames)("font-normal text-muted-foreground",n?"text-body-touch":"text-meta"),children:["Show retired (",k,")"]})]})]})}function cy({label:a,isOn:c,kind:d,onPick:e}){return(0,b.jsx)(g.Button,{variant:c?"primary":"secondary",size:"touch",role:"radio"===d?"radio":void 0,"aria-checked":"radio"===d?c:void 0,"aria-pressed":"toggle"===d?c:void 0,onClick:e,children:a})}function cz({ships:a,view:c,onViewChange:d,shownCount:e,squadronsOf:f,labels:h}){let{filters:i}=c,j=a=>{d({...c,filters:{...i,...a}})},k=aJ(i),l=aG(a);return(0,b.jsxs)(aN.Sheet,{children:[(0,b.jsx)(aN.SheetTrigger,{render:(0,b.jsx)(g.Button,{size:"touch",isIconOnly:!0,"aria-label":k>0?`Filter ships, ${String(k)} active`:"Filter ships","data-testid":"fleet-filters-open",icon:(0,b.jsx)(as,{}),className:"relative sm:hidden",children:k>0?(0,b.jsx)("span",{"aria-hidden":!0,className:"absolute top-1.5 right-1.5 size-2 rounded-full bg-primary"}):null})}),(0,b.jsxs)(aN.SheetContent,{side:"bottom",children:[(0,b.jsxs)(aN.SheetHeader,{className:"flex-row items-center justify-between",children:[(0,b.jsx)(aN.SheetTitle,{children:"Filter ships"}),(0,b.jsx)(g.Button,{variant:"ghost",size:"touch","data-testid":"fleet-filters-reset",onClick:()=>{d({...c,filters:ay.filters})},children:"Reset"})]}),(0,b.jsxs)(aN.SheetBody,{className:"flex flex-col gap-4 pb-4",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)("span",{id:"fleet-filter-status-label",className:"text-meta font-medium text-muted-foreground",children:"Status"}),(0,b.jsx)("div",{role:"radiogroup","aria-labelledby":"fleet-filter-status-label",className:"flex gap-1.5 [&>*]:flex-1",children:Object.entries(cp).map(([a,c])=>(0,b.jsx)(cy,{label:c,kind:"radio",isOn:i.status===a,onPick:()=>{cq(a)&&j({status:a})}},a))})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)("span",{id:"fleet-filter-crew-request-label",className:"text-meta font-medium text-muted-foreground",children:"Crew request"}),(0,b.jsx)("div",{role:"radiogroup","aria-labelledby":"fleet-filter-crew-request-label",className:"flex flex-wrap gap-1.5",children:Object.entries(cr).map(([a,c])=>(0,b.jsx)(cy,{label:c,kind:"radio",isOn:i.crewRequest===a,onPick:()=>{cs(a)&&j({crewRequest:a})}},a))})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)("span",{className:"text-meta font-medium text-muted-foreground",children:"Type"}),(0,b.jsx)("div",{role:"group","aria-label":"Type",className:"flex flex-wrap gap-1.5",children:["all",...aF(a,i.isRetiredShown)].map(a=>(0,b.jsx)(cy,{label:"all"===a?"All types":a,kind:"toggle",isOn:i.type===a,onPick:()=>{j({type:a})}},a))})]}),f&&(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)("span",{id:"fleet-filter-squadron-label",className:"text-meta font-medium text-muted-foreground",children:"Squadron"}),(0,b.jsx)("div",{role:"radiogroup","aria-labelledby":"fleet-filter-squadron-label",className:"flex flex-wrap gap-1.5",children:["all",...aH(f)].map(a=>(0,b.jsx)(cy,{label:"all"===a?"All":a,kind:"radio",isOn:i.squadron===a,onPick:()=>{j({squadron:a})}},a))})]}),void 0===h?null:(0,b.jsx)(cn,{groups:(0,aw.filterGroupsOf)(h),picked:(0,aw.pickedChips)(i.labelValueIds,h),onPick:a=>{d(co(c,[...i.labelValueIds,a]))},onRemove:a=>{d(co(c,i.labelValueIds.filter(b=>b!==a)))}}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 py-1",children:[(0,b.jsxs)(R.Label,{htmlFor:"fleet-show-retired-touch",className:"text-body-touch font-normal",children:["Show retired ships ",(0,b.jsxs)("span",{className:"text-muted-foreground",children:["(",l,")"]})]}),(0,b.jsx)(S.Switch,{id:"fleet-show-retired-touch",checked:i.isRetiredShown,onCheckedChange:a=>{j({isRetiredShown:a})}})]}),(0,b.jsx)(aN.SheetClose,{render:(0,b.jsx)(g.Button,{size:"touch","data-testid":"fleet-filters-apply"}),children:1===e?"Show 1 ship":`Show ${String(e)} ships`})]})]})]})}function cA({view:a,onViewChange:c,labels:d}){let e=aK(a.filters),f=void 0===d?[]:(0,aw.pickedChips)(a.filters.labelValueIds,d);return 0===e.length&&0===f.length?null:(0,b.jsxs)("div",{className:"flex w-full flex-wrap items-center gap-1.5 sm:hidden","data-testid":"fleet-filter-chips",children:[e.map(a=>(0,b.jsx)(aL.Badge,{variant:"outline",className:"max-w-full truncate",children:a},a)),f.map(d=>(0,b.jsx)(aQ.LabelChip,{chip:d,onRemove:()=>{c(co(a,a.filters.labelValueIds.filter(a=>a!==d.valueId)))}},d.valueId)),(0,b.jsx)(g.Button,{variant:"ghost",size:"touch",onClick:()=>{c({...a,filters:ay.filters})},children:"Clear filters"})]})}function cB({ships:a,view:c,onViewChange:d,shownCount:e,squadronsOf:f,labels:g}){return(0,b.jsxs)("div",{"data-slot":"fleet-toolbar",className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("div",{className:"w-60 max-sm:min-w-0 max-sm:flex-1",children:(0,b.jsx)(Q.Input,{type:"search","aria-label":"Search ships by name or type",placeholder:"Search ships by name","data-testid":"fleet-search",value:c.query,onChange:a=>{d({...c,query:a.target.value})},leadingIcon:(0,b.jsx)(aq.Search,{}),className:"h-(--size-control-sm) text-meta max-sm:h-(--size-control-touch) max-sm:text-input-touch"})}),(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-2 max-sm:hidden sm:flex-1",children:(0,b.jsx)(cx,{ships:a,view:c,onViewChange:d,squadronsOf:f,labels:g,size:"sm"})}),(0,b.jsx)(cz,{ships:a,view:c,onViewChange:d,shownCount:e,squadronsOf:f,labels:g}),(0,b.jsx)(cA,{view:c,onViewChange:d,labels:g}),(0,b.jsxs)("p",{"aria-live":"polite",className:"text-meta text-muted-foreground tabular-nums max-sm:w-full",children:[e," of ",a.length," ships"]})]})}function cC({ship:a}){return(0,b.jsx)(cf.ShipName,{name:a.name,shipId:a.id,isSuffixShown:"retired"===a.status,href:`/ships/${a.id}`})}function cD({ships:a,highlightedShipIds:c,now:d,renderRowActions:e,squadronsOf:f,labels:g}){return(0,b.jsx)("div",{className:"max-sm:hidden",children:(0,b.jsxs)(aO.Table,{"aria-label":"Ships",children:[(0,b.jsx)(aO.TableHeader,{children:(0,b.jsxs)(aO.TableRow,{children:[(0,b.jsx)(aO.TableHead,{children:void 0===g||0===g.labels.length?"Name":"Name and labels"}),(0,b.jsx)(aO.TableHead,{children:"Status"}),(0,b.jsx)(aO.TableHead,{children:"Crew request"}),(0,b.jsx)(aO.TableHead,{children:"Report"}),(0,b.jsx)(aO.TableHead,{children:"Runs on"}),(0,b.jsx)(aO.TableHead,{children:"Model"}),(0,b.jsx)(aO.TableHead,{children:"Seen"}),(0,b.jsx)(aO.TableHead,{children:(0,b.jsx)("span",{className:"sr-only",children:"Actions"})})]})}),(0,b.jsx)(aO.TableBody,{children:a.map(a=>(0,b.jsxs)(aO.TableRow,{"data-testid":`fleet-row-${a.name}`,"data-new":c?.has(a.id)?"":void 0,className:"h-12",children:[(0,b.jsx)(aO.TableCell,{className:"max-w-64",children:(0,b.jsxs)("span",{className:"flex min-w-0 flex-col gap-1",children:[(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)(cC,{ship:a}),(0,b.jsx)(ct,{ship:a,squadron:f?.get(a.id)})]}),void 0===g?null:(0,b.jsx)(aR,{chips:(0,aw.chipsOf)(a,g),width:22,testId:"fleet-labels"})]})}),(0,b.jsx)(aO.TableCell,{children:(0,b.jsx)(af.StatusBadge,{status:a.status})}),(0,b.jsx)(aO.TableCell,{children:(0,b.jsx)(cc,{cell:(0,ax.crewRequestCell)((0,av.crewRequestStage)(a)),testId:"fleet-crew-request"})}),(0,b.jsx)(aO.TableCell,{className:"max-w-72",children:(0,b.jsx)(cw,{ship:a,now:d,next:e?.(a,"next")})}),(0,b.jsx)(aO.TableCell,{className:"max-w-56",children:(0,b.jsx)(cv,{ship:a,now:d})}),(0,b.jsx)(aO.TableCell,{children:"agent"!==a.kind?null:(0,b.jsx)(ca,{model:a.model,isCrewed:"crewed"===a.status,now:d,testId:"fleet-model"})}),(0,b.jsx)(aO.TableCell,{children:(0,b.jsx)(b3,{seenAt:a.lastSeenAt,now:d,testId:"fleet-last-seen"})}),(0,b.jsx)(aO.TableCell,{className:"w-10 text-right",children:e?.(a,"table")})]},a.id))})]})})}function cE({ships:a,highlightedShipIds:c,now:d,renderRowActions:e,squadronsOf:f}){return(0,b.jsx)("ul",{"aria-label":"Ships",className:"overflow-hidden rounded-lg border border-border bg-card sm:hidden",children:a.map(a=>(0,b.jsxs)("li",{"data-testid":`fleet-card-${a.name}`,"data-new":c?.has(a.id)?"":void 0,className:"flex items-start gap-2 border-b border-border px-3.5 py-3 last:border-0 data-new:animate-highlight",children:[(0,b.jsxs)("div",{className:"flex min-w-0 grow flex-col gap-1.5",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 text-body-touch",children:[(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)(cC,{ship:a}),(0,b.jsx)(ct,{ship:a,squadron:f?.get(a.id)})]}),(0,b.jsx)(af.StatusBadge,{status:a.status})]}),null===a.crewRequest?null:(0,b.jsx)(cc,{cell:(0,ax.crewRequestCell)((0,av.crewRequestStage)(a))}),(0,b.jsx)(cw,{ship:a,now:d,next:e?.(a,"next")}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1",children:[(0,b.jsx)(cv,{ship:a,now:d}),"agent"!==a.kind?null:(0,b.jsx)(ca,{model:a.model,isCrewed:"crewed"===a.status,now:d}),(0,b.jsx)(b3,{seenAt:a.lastSeenAt,now:d})]})]}),e?.(a,"phone")]},a.id))})}function cF({ships:a,view:c,onViewChange:d,state:e,error:f,highlightedShipIds:h,now:i,renderRowActions:j,emptyAction:k,squadronsOf:l,labels:m}){var n;let o;if("loading"===e)return(0,b.jsxs)("div",{"data-slot":"fleet-table","data-state":"loading",className:"flex flex-col gap-3",children:[(0,b.jsx)(aS.LoadingSkeleton,{variant:"table",rows:6,label:"Loading the fleet",className:"max-sm:hidden"}),(0,b.jsx)(aS.LoadingSkeleton,{variant:"list",rows:5,label:"Loading the fleet",className:"sm:hidden"})]});if("error"===e)return(0,b.jsx)(V.InlineError,{variant:"page",title:"Couldn’t load the fleet",description:"This page couldn’t reach the fleet server. Check that the server is running and reachable from this browser, then try again.",detail:f?.detail,retryNote:f?.retryNote,onRetry:f?.onRetry});let p={highlightedShipIds:h,now:i,renderRowActions:j,squadronsOf:l};if(a.every(a=>"operator"===a.kind||"retired"===a.status)){let c=a.filter(a=>"operator"===a.kind);return(0,b.jsxs)("div",{"data-slot":"fleet-table","data-state":"empty",className:"flex flex-col gap-3",children:[(0,b.jsx)(cD,{ships:c,labels:m,...p}),(0,b.jsx)(cE,{ships:c,...p}),(0,b.jsx)(aP.EmptyState,{icon:(0,b.jsx)(ae.Ship,{}),title:"No ships besides argo yet",description:"argo is your own ship: messages to the operator land in its inbox. Commission a ship to add an agent to the fleet.",action:k})]})}let q=(n={...c,squadronsOf:l},a.filter(a=>{let b;return(""===(b=n.query.trim().toLowerCase())||a.name.toLowerCase().includes(b)||a.type.toLowerCase().includes(b))&&function(a,b){let{filters:c,squadronsOf:d}=b;return("retired"!==a.status||!!c.isRetiredShown)&&("all"===c.squadron||d?.get(a.id)?.squadronId===c.squadron)&&("all"===c.status||a.status===c.status)&&("all"===c.crewRequest||(0,ax.crewRequestKey)((0,av.crewRequestStage)(a))===c.crewRequest)&&!!(0,aw.carriesEvery)(a,c.labelValueIds)&&("all"===c.type||a.type===c.type)}(a,n)}).toSorted((a,b)=>a.kind!==b.kind?"operator"===a.kind?-1:1:a.name.localeCompare(b.name)||a.id.localeCompare(b.id))),r=c.query.trim();return(0,b.jsxs)("div",{"data-slot":"fleet-table","data-state":"ready",className:"flex flex-col gap-3",children:[(0,b.jsx)(cB,{ships:a,view:c,onViewChange:d,shownCount:q.length,squadronsOf:l,labels:m}),void 0===m?null:(0,b.jsx)(cm,{groups:(0,aw.filterGroupsOf)(m),picked:(0,aw.pickedChips)(c.filters.labelValueIds,m),onPick:a=>{d(co(c,[...c.filters.labelValueIds,a]))},onRemove:a=>{d(co(c,c.filters.labelValueIds.filter(b=>b!==a)))},onClear:()=>{d(co(c,[]))}}),0===q.length?(0,b.jsx)(aP.EmptyState,{variant:"no-results",title:""===r?"No ships match these filters.":`No ships match “${r}”.`,action:(0,b.jsx)(g.Button,{size:"xs","data-testid":"fleet-clear-filters",onClick:()=>{d(ay)},children:(o=aJ(c.filters)>0,""===r?"Clear filters":o?"Clear search and filters":"Clear search")})}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(cD,{ships:q,labels:m,...p}),(0,b.jsx)(cE,{ships:q,...p})]})]})}var cG=a.i(73202);function cH({view:a,onViewChange:c,newShipIds:d}){let e=(0,r.useFleetSnapshot)(),f=(0,t.useNow)(),g=(0,F.useSquadrons)(),h=(0,r.useLabelContext)();return(0,b.jsx)("section",{"aria-label":"Fleet",className:"flex flex-col gap-3",children:(0,b.jsx)(cF,{ships:e.data??[],view:a,onViewChange:c,state:e.isPending?"loading":e.isError?"error":"ready",error:{detail:e.error?.message,onRetry:()=>{e.refetch()}},highlightedShipIds:d,now:f,renderRowActions:(a,c)=>(0,b.jsx)(cG.ShipActions,{ship:a,layout:"table"===c?"menu":"phone"===c?"sheet":"next"}),squadronsOf:g.data?(0,al.shipsInSquadrons)(g.data):void 0,labels:h})})}var cI=a.i(2466),cJ=a.i(73224),cK=a.i(65563),cL=a.i(26949),cM=a.i(67336),cN=a.i(94764),cO=a.i(10572),cP=a.i(34159);a.s(["default",0,function({searchParams:a}){var l,m;let n,o=(0,e.useRouter)(),p=function(a){let b=new URLSearchParams;for(let[c,d]of Object.entries(a))for(let a of Array.isArray(d)?d:void 0===d?[]:[d])b.append(c,a);return b}((0,f.use)(a)),q={query:p.get("q")??"",filters:{status:(l=p.get(az),(n=H.shipStatusSchema.safeParse(l)).success&&"retired"!==n.data?n.data:"all"),crewRequest:(m=p.get(aA),ax.CREW_REQUEST_KEYS.find(a=>a===m)??"all"),type:p.get(aB)??"all",squadron:p.get(aC)??"all",isRetiredShown:"1"===p.get(aD),labelValueIds:p.getAll(aE).filter(a=>(0,au.idSchema)("labelValue").safeParse(a).success)}},u="new"===p.get("commission"),x=(0,r.useFleetSnapshot)(),y=(0,cM.useLiveFleet)(),z=(0,t.useNow)(),A=(0,cN.useAccountMenu)(z),E=(0,D.messageLimitReached)((0,B.useFleetLimits)().data),F=(0,C.useHostedAccountUrl)(),G=(0,cL.useOpenInboxCount)(),I=(0,cK.useAccess)(),J=(0,cP.usePluginNav)(),[K,L]=(0,f.useState)(!1),[M,N]=(0,f.useState)(!1),[O,P]=(0,f.useState)(!1),Q=(0,s.useAttentionCount)();(0,cO.useSignInWhenSessionEnds)([x.error,y.error]);let R=a=>{let b=(function(a){let b=new URLSearchParams;for(let c of(""!==a.query&&b.set("q",a.query),"all"!==a.filters.status&&b.set(az,a.filters.status),"all"!==a.filters.crewRequest&&b.set(aA,a.filters.crewRequest),"all"!==a.filters.type&&b.set(aB,a.filters.type),"all"!==a.filters.squadron&&b.set(aC,a.filters.squadron),a.filters.isRetiredShown&&b.set(aD,"1"),a.filters.labelValueIds))b.append(aE,c);return b})(a).toString();o.replace(""===b?"/":`/?${b}`,{scroll:!1})};return(0,b.jsxs)(cI.ListLayout,{title:"Fleet overview",description:x.data?function(a){let b=v(a.ships).length,c=a.ships.filter(a=>"agent"===a.kind&&"retired"===a.status).length;if(0===b&&0===c)return a.canCommission?"Only argo so far. Ships you commission appear here.":"Only argo so far.";let d=0===c?"":`, ${String(c)} retired`;return`${1===b?"1 active ship":`${String(b)} active ships`} and argo${d}. Changes appear as they happen.`}({ships:x.data,canCommission:I.canManage}):"Loading your fleet",primaryAction:(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 max-sm:flex-col max-sm:items-stretch",children:[(0,b.jsx)(g.Button,{render:(0,b.jsx)(d.default,{href:"/labels"}),nativeButton:!1,icon:(0,b.jsx)(c.Tag,{}),"data-testid":"overview-labels",children:I.canDefineLabels?"Manage labels":"View labels"}),I.canManage?(0,b.jsx)(_,{isOpen:O||u,onOpenChange:a=>{P(a),!a&&u&&R(q)}}):null]}),live:y.live,nav:{active:"overview",inboxCount:G,attentionCount:Q,...J},onCompose:I.canSend?()=>{L(!0)}:void 0,onSearch:()=>{N(!0)},account:A,banner:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(k.ConsoleNotices,{}),(0,b.jsx)(j.ConsoleGuide,{})]}),children:[(0,b.jsx)(cJ.FleetSegments,{active:"ships",needsCrewCount:J.needsCrewCount}),void 0===E?null:(0,b.jsx)(W.LimitNotice,{...(0,D.messageLimitNotice)(E),accountUrl:F,testId:"overview-message-limit"}),(0,b.jsx)(ak,{}),(0,b.jsx)(w,{}),(0,b.jsx)(cH,{view:q,onViewChange:R,newShipIds:y.newShipIds}),(0,b.jsx)(h.ComposeMessage,{isOpen:K,onOpenChange:L}),(0,b.jsx)(i.ConsoleCommands,{isOpen:M,onOpenChange:N,onCompose:()=>{L(!0)}})]})}],33634)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_console_app_page_tsx_16ln4px._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[74038,a=>{"use strict";var b=a.i(87924),c=a.i(42871),d=a.i(99745),e=a.i(18544),f=a.i(12552),g=a.i(33791),h=a.i(12794),i=class extends g.Subscribable{#a;#b;#c;constructor(a={}){super(),this.config=a,this.#a=new Set,this.#b=new Map,this.#c=0}build(a,b,c){let d=new h.Mutation({client:a,mutationCache:this,mutationId:++this.#c,options:a.defaultMutationOptions(b),state:c});return this.add(d),d}add(a){this.#a.add(a);let b=j(a);if("string"==typeof b){let c=this.#b.get(b);c?c.push(a):this.#b.set(b,[a])}this.notify({type:"added",mutation:a})}remove(a){if(this.#a.delete(a)){let b=j(a);if("string"==typeof b){let c=this.#b.get(b);if(c)if(c.length>1){let b=c.indexOf(a);-1!==b&&c.splice(b,1)}else c[0]===a&&this.#b.delete(b)}}this.notify({type:"removed",mutation:a})}canRun(a){let b=j(a);if("string"!=typeof b)return!0;{let c=this.#b.get(b)?.find(a=>"pending"===a.state.status);return!c||c===a}}runNext(a){let b=j(a);return"string"==typeof b?this.#b.get(b)?.find(b=>b!==a&&b.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){e.notifyManager.batch(()=>{this.#a.forEach(a=>{this.notify({type:"removed",mutation:a})}),this.#a.clear(),this.#b.clear()})}getAll(){return Array.from(this.#a)}find(a){let b={exact:!0,...a};return this.getAll().find(a=>(0,c.matchMutation)(b,a))}findAll(a={}){return this.getAll().filter(b=>(0,c.matchMutation)(a,b))}notify(a){e.notifyManager.batch(()=>{this.listeners.forEach(b=>{b(a)})})}resumePausedMutations(){let a=this.getAll().filter(a=>a.state.isPaused);return e.notifyManager.batch(()=>Promise.all(a.map(a=>a.continue().catch(c.noop))))}};function j(a){return a.options.scope?.id}var k=g,l=a.i(76644),m=class extends k.Subscribable{#d;constructor(a={}){super(),this.config=a,this.#d=new Map}build(a,b,d){let e=b.queryKey,f=b.queryHash??(0,c.hashQueryKeyByOptions)(e,b),g=this.get(f);return g||(g=new l.Query({client:a,queryKey:e,queryHash:f,options:a.defaultQueryOptions(b),state:d,defaultOptions:a.getQueryDefaults(e)}),this.add(g)),g}add(a){this.#d.has(a.queryHash)||(this.#d.set(a.queryHash,a),this.notify({type:"added",query:a}))}remove(a){this.#d.get(a.queryHash)===a&&(a.destroy(),this.#d.delete(a.queryHash),this.notify({type:"removed",query:a}))}clear(){e.notifyManager.batch(()=>{this.getAll().forEach(a=>{this.remove(a)})})}get(a){return this.#d.get(a)}getAll(){return[...this.#d.values()]}find(a){let b={exact:!0,...a};return this.getAll().find(a=>(0,c.matchQuery)(b,a))}findAll(a={}){let b=this.getAll();return Object.keys(a).length>0?b.filter(b=>(0,c.matchQuery)(a,b)):b}notify(a){e.notifyManager.batch(()=>{this.listeners.forEach(b=>{b(a)})})}onFocus(){e.notifyManager.batch(()=>{this.getAll().forEach(a=>{a.onFocus()})})}onOnline(){e.notifyManager.batch(()=>{this.getAll().forEach(a=>{a.onOnline()})})}},n=class{#e;#f;#g;#h;#i;#j;#k;#l;constructor(a={}){this.#e=a.queryCache||new m,this.#f=a.mutationCache||new i,this.#g=a.defaultOptions||{},this.#h=new Map,this.#i=new Map,this.#j=0}mount(){this.#j++,1===this.#j&&(this.#k=d.focusManager.subscribe(async a=>{a&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#l=f.onlineManager.subscribe(async a=>{a&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#j--,0===this.#j&&(this.#k?.(),this.#k=void 0,this.#l?.(),this.#l=void 0)}isFetching(a){return this.#e.findAll({...a,fetchStatus:"fetching"}).length}isMutating(a){return this.#f.findAll({...a,status:"pending"}).length}getQueryData(a){let b=this.defaultQueryOptions({queryKey:a});return this.#e.get(b.queryHash)?.state.data}ensureQueryData(a){let b=this.defaultQueryOptions(a),d=this.#e.build(this,b),e=d.state.data;return void 0===e?this.fetchQuery(a):(a.revalidateIfStale&&d.isStaleByTime((0,c.resolveQueryValue)(b.staleTime,d))&&this.prefetchQuery(b),Promise.resolve(e))}getQueriesData(a){return this.#e.findAll(a).map(({queryKey:a,state:b})=>[a,b.data])}setQueryData(a,b,d){let e=this.defaultQueryOptions({queryKey:a}),f=this.#e.get(e.queryHash)?.state.data,g=(0,c.functionalUpdate)(b,f);if(void 0!==g)return this.#e.build(this,e).setData(g,{...d,manual:!0})}setQueriesData(a,b,c){return e.notifyManager.batch(()=>this.#e.findAll(a).map(({queryKey:a})=>[a,this.setQueryData(a,b,c)]))}getQueryState(a){let b=this.defaultQueryOptions({queryKey:a});return this.#e.get(b.queryHash)?.state}removeQueries(a){let b=this.#e;e.notifyManager.batch(()=>{b.findAll(a).forEach(a=>{b.remove(a)})})}resetQueries(a,b){let c=this.#e;return e.notifyManager.batch(()=>{let d=c.findAll(a),e=new Set(d);return d.forEach(a=>{a.reset()}),this.refetchQueries({type:"active",predicate:a=>e.has(a)},b)})}cancelQueries(a,b={}){let d={revert:!0,...b};return Promise.all(e.notifyManager.batch(()=>this.#e.findAll(a).map(a=>a.cancel(d)))).then(c.noop).catch(c.noop)}invalidateQueries(a,b={}){return e.notifyManager.batch(()=>(this.#e.findAll(a).forEach(a=>{a.invalidate()}),a?.refetchType==="none")?Promise.resolve():this.refetchQueries({...a,type:a?.refetchType??a?.type??"active"},b))}refetchQueries(a,b={}){let d={...b,cancelRefetch:b.cancelRefetch??!0};return Promise.all(e.notifyManager.batch(()=>this.#e.findAll(a).filter(a=>!a.isDisabled()&&!a.isStatic()).map(a=>{let b=a.fetch(void 0,d);return d.throwOnError||(b=b.catch(c.noop)),"paused"===a.state.fetchStatus?Promise.resolve():b}))).then(c.noop)}async query(a){let b=this.defaultQueryOptions(a);void 0===b.retry&&(b.retry=!1);let d=this.#e.build(this,b),e=d.isStaleByTime((0,c.resolveQueryValue)(b.staleTime,d))?await d.fetch(b):d.state.data,f=b.select;return f?f(e):e}fetchQuery(a){let b=this.defaultQueryOptions(a);void 0===b.retry&&(b.retry=!1);let d=this.#e.build(this,b);return d.isStaleByTime((0,c.resolveQueryValue)(b.staleTime,d))?d.fetch(b):Promise.resolve(d.state.data)}prefetchQuery(a){return this.fetchQuery(a).then(c.noop).catch(c.noop)}infiniteQuery(a){return a._type="infinite",this.query(a)}fetchInfiniteQuery(a){return a._type="infinite",this.fetchQuery(a)}prefetchInfiniteQuery(a){return this.fetchInfiniteQuery(a).then(c.noop).catch(c.noop)}ensureInfiniteQueryData(a){return a._type="infinite",this.ensureQueryData(a)}resumePausedMutations(){return f.onlineManager.isOnline()?this.#f.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#f}getDefaultOptions(){return this.#g}setDefaultOptions(a){this.#g=a}setQueryDefaults(a,b){this.#h.set((0,c.hashKey)(a),{queryKey:a,defaultOptions:b})}getQueryDefaults(a){let b=[...this.#h.values()],d={};return b.forEach(b=>{(0,c.partialMatchKey)(a,b.queryKey)&&Object.assign(d,b.defaultOptions)}),d}setMutationDefaults(a,b){this.#i.set((0,c.hashKey)(a),{mutationKey:a,defaultOptions:b})}getMutationDefaults(a){let b=[...this.#i.values()],d={};return b.forEach(b=>{(0,c.partialMatchKey)(a,b.mutationKey)&&Object.assign(d,b.defaultOptions)}),d}defaultQueryOptions(a){if(a._defaulted)return a;let b={...this.#g.queries,...this.getQueryDefaults(a.queryKey),...a,_defaulted:!0};return b.queryHash||(b.queryHash=(0,c.hashQueryKeyByOptions)(b.queryKey,b)),void 0===b.refetchOnReconnect&&(b.refetchOnReconnect="always"!==b.networkMode),void 0===b.throwOnError&&(b.throwOnError=!!b.suspense),!b.networkMode&&b.persister&&(b.networkMode="offlineFirst"),b.queryFn===c.skipToken&&(b.enabled=!1),b}defaultMutationOptions(a){return a?._defaulted?a:{...this.#g.mutations,...a?.mutationKey&&this.getMutationDefaults(a.mutationKey),...a,_defaulted:!0}}clear(){this.#e.clear(),this.#f.clear()}},o=a.i(37927),p=a.i(51809),q=a.i(84178),q=q,r=a.i(20098),r=r,s=a.i(87265),s=s,t=q,u=a.i(72131),v=a.i(88191),w=a.i(46644),x=a.i(91154),y=a.i(47468),z=a.i(54763),A=a.i(14499);function
|
|
1
|
+
module.exports=[74038,a=>{"use strict";var b=a.i(87924),c=a.i(42871),d=a.i(99745),e=a.i(18544),f=a.i(12552),g=a.i(33791),h=a.i(12794),i=class extends g.Subscribable{#a;#b;#c;constructor(a={}){super(),this.config=a,this.#a=new Set,this.#b=new Map,this.#c=0}build(a,b,c){let d=new h.Mutation({client:a,mutationCache:this,mutationId:++this.#c,options:a.defaultMutationOptions(b),state:c});return this.add(d),d}add(a){this.#a.add(a);let b=j(a);if("string"==typeof b){let c=this.#b.get(b);c?c.push(a):this.#b.set(b,[a])}this.notify({type:"added",mutation:a})}remove(a){if(this.#a.delete(a)){let b=j(a);if("string"==typeof b){let c=this.#b.get(b);if(c)if(c.length>1){let b=c.indexOf(a);-1!==b&&c.splice(b,1)}else c[0]===a&&this.#b.delete(b)}}this.notify({type:"removed",mutation:a})}canRun(a){let b=j(a);if("string"!=typeof b)return!0;{let c=this.#b.get(b)?.find(a=>"pending"===a.state.status);return!c||c===a}}runNext(a){let b=j(a);return"string"==typeof b?this.#b.get(b)?.find(b=>b!==a&&b.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){e.notifyManager.batch(()=>{this.#a.forEach(a=>{this.notify({type:"removed",mutation:a})}),this.#a.clear(),this.#b.clear()})}getAll(){return Array.from(this.#a)}find(a){let b={exact:!0,...a};return this.getAll().find(a=>(0,c.matchMutation)(b,a))}findAll(a={}){return this.getAll().filter(b=>(0,c.matchMutation)(a,b))}notify(a){e.notifyManager.batch(()=>{this.listeners.forEach(b=>{b(a)})})}resumePausedMutations(){let a=this.getAll().filter(a=>a.state.isPaused);return e.notifyManager.batch(()=>Promise.all(a.map(a=>a.continue().catch(c.noop))))}};function j(a){return a.options.scope?.id}var k=g,l=a.i(76644),m=class extends k.Subscribable{#d;constructor(a={}){super(),this.config=a,this.#d=new Map}build(a,b,d){let e=b.queryKey,f=b.queryHash??(0,c.hashQueryKeyByOptions)(e,b),g=this.get(f);return g||(g=new l.Query({client:a,queryKey:e,queryHash:f,options:a.defaultQueryOptions(b),state:d,defaultOptions:a.getQueryDefaults(e)}),this.add(g)),g}add(a){this.#d.has(a.queryHash)||(this.#d.set(a.queryHash,a),this.notify({type:"added",query:a}))}remove(a){this.#d.get(a.queryHash)===a&&(a.destroy(),this.#d.delete(a.queryHash),this.notify({type:"removed",query:a}))}clear(){e.notifyManager.batch(()=>{this.getAll().forEach(a=>{this.remove(a)})})}get(a){return this.#d.get(a)}getAll(){return[...this.#d.values()]}find(a){let b={exact:!0,...a};return this.getAll().find(a=>(0,c.matchQuery)(b,a))}findAll(a={}){let b=this.getAll();return Object.keys(a).length>0?b.filter(b=>(0,c.matchQuery)(a,b)):b}notify(a){e.notifyManager.batch(()=>{this.listeners.forEach(b=>{b(a)})})}onFocus(){e.notifyManager.batch(()=>{this.getAll().forEach(a=>{a.onFocus()})})}onOnline(){e.notifyManager.batch(()=>{this.getAll().forEach(a=>{a.onOnline()})})}},n=class{#e;#f;#g;#h;#i;#j;#k;#l;constructor(a={}){this.#e=a.queryCache||new m,this.#f=a.mutationCache||new i,this.#g=a.defaultOptions||{},this.#h=new Map,this.#i=new Map,this.#j=0}mount(){this.#j++,1===this.#j&&(this.#k=d.focusManager.subscribe(async a=>{a&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#l=f.onlineManager.subscribe(async a=>{a&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#j--,0===this.#j&&(this.#k?.(),this.#k=void 0,this.#l?.(),this.#l=void 0)}isFetching(a){return this.#e.findAll({...a,fetchStatus:"fetching"}).length}isMutating(a){return this.#f.findAll({...a,status:"pending"}).length}getQueryData(a){let b=this.defaultQueryOptions({queryKey:a});return this.#e.get(b.queryHash)?.state.data}ensureQueryData(a){let b=this.defaultQueryOptions(a),d=this.#e.build(this,b),e=d.state.data;return void 0===e?this.fetchQuery(a):(a.revalidateIfStale&&d.isStaleByTime((0,c.resolveQueryValue)(b.staleTime,d))&&this.prefetchQuery(b),Promise.resolve(e))}getQueriesData(a){return this.#e.findAll(a).map(({queryKey:a,state:b})=>[a,b.data])}setQueryData(a,b,d){let e=this.defaultQueryOptions({queryKey:a}),f=this.#e.get(e.queryHash)?.state.data,g=(0,c.functionalUpdate)(b,f);if(void 0!==g)return this.#e.build(this,e).setData(g,{...d,manual:!0})}setQueriesData(a,b,c){return e.notifyManager.batch(()=>this.#e.findAll(a).map(({queryKey:a})=>[a,this.setQueryData(a,b,c)]))}getQueryState(a){let b=this.defaultQueryOptions({queryKey:a});return this.#e.get(b.queryHash)?.state}removeQueries(a){let b=this.#e;e.notifyManager.batch(()=>{b.findAll(a).forEach(a=>{b.remove(a)})})}resetQueries(a,b){let c=this.#e;return e.notifyManager.batch(()=>{let d=c.findAll(a),e=new Set(d);return d.forEach(a=>{a.reset()}),this.refetchQueries({type:"active",predicate:a=>e.has(a)},b)})}cancelQueries(a,b={}){let d={revert:!0,...b};return Promise.all(e.notifyManager.batch(()=>this.#e.findAll(a).map(a=>a.cancel(d)))).then(c.noop).catch(c.noop)}invalidateQueries(a,b={}){return e.notifyManager.batch(()=>(this.#e.findAll(a).forEach(a=>{a.invalidate()}),a?.refetchType==="none")?Promise.resolve():this.refetchQueries({...a,type:a?.refetchType??a?.type??"active"},b))}refetchQueries(a,b={}){let d={...b,cancelRefetch:b.cancelRefetch??!0};return Promise.all(e.notifyManager.batch(()=>this.#e.findAll(a).filter(a=>!a.isDisabled()&&!a.isStatic()).map(a=>{let b=a.fetch(void 0,d);return d.throwOnError||(b=b.catch(c.noop)),"paused"===a.state.fetchStatus?Promise.resolve():b}))).then(c.noop)}async query(a){let b=this.defaultQueryOptions(a);void 0===b.retry&&(b.retry=!1);let d=this.#e.build(this,b),e=d.isStaleByTime((0,c.resolveQueryValue)(b.staleTime,d))?await d.fetch(b):d.state.data,f=b.select;return f?f(e):e}fetchQuery(a){let b=this.defaultQueryOptions(a);void 0===b.retry&&(b.retry=!1);let d=this.#e.build(this,b);return d.isStaleByTime((0,c.resolveQueryValue)(b.staleTime,d))?d.fetch(b):Promise.resolve(d.state.data)}prefetchQuery(a){return this.fetchQuery(a).then(c.noop).catch(c.noop)}infiniteQuery(a){return a._type="infinite",this.query(a)}fetchInfiniteQuery(a){return a._type="infinite",this.fetchQuery(a)}prefetchInfiniteQuery(a){return this.fetchInfiniteQuery(a).then(c.noop).catch(c.noop)}ensureInfiniteQueryData(a){return a._type="infinite",this.ensureQueryData(a)}resumePausedMutations(){return f.onlineManager.isOnline()?this.#f.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#f}getDefaultOptions(){return this.#g}setDefaultOptions(a){this.#g=a}setQueryDefaults(a,b){this.#h.set((0,c.hashKey)(a),{queryKey:a,defaultOptions:b})}getQueryDefaults(a){let b=[...this.#h.values()],d={};return b.forEach(b=>{(0,c.partialMatchKey)(a,b.queryKey)&&Object.assign(d,b.defaultOptions)}),d}setMutationDefaults(a,b){this.#i.set((0,c.hashKey)(a),{mutationKey:a,defaultOptions:b})}getMutationDefaults(a){let b=[...this.#i.values()],d={};return b.forEach(b=>{(0,c.partialMatchKey)(a,b.mutationKey)&&Object.assign(d,b.defaultOptions)}),d}defaultQueryOptions(a){if(a._defaulted)return a;let b={...this.#g.queries,...this.getQueryDefaults(a.queryKey),...a,_defaulted:!0};return b.queryHash||(b.queryHash=(0,c.hashQueryKeyByOptions)(b.queryKey,b)),void 0===b.refetchOnReconnect&&(b.refetchOnReconnect="always"!==b.networkMode),void 0===b.throwOnError&&(b.throwOnError=!!b.suspense),!b.networkMode&&b.persister&&(b.networkMode="offlineFirst"),b.queryFn===c.skipToken&&(b.enabled=!1),b}defaultMutationOptions(a){return a?._defaulted?a:{...this.#g.mutations,...a?.mutationKey&&this.getMutationDefaults(a.mutationKey),...a,_defaulted:!0}}clear(){this.#e.clear(),this.#f.clear()}},o=a.i(37927),p=a.i(51809),q=a.i(84178),q=q,r=a.i(20098),r=r,s=a.i(87265),s=s,t=q,u=a.i(72131),v=a.i(88191),w=a.i(46644),x=a.i(91154),y=a.i(47468),z=a.i(54763),A=a.i(93454),B=a.i(14499);function C(a,b){let c=(0,x.trpcErrorCode)(b);return"UNAUTHORIZED"!==c&&"FORBIDDEN"!==c&&a<3}function D(a,b){return fetch(a,{...b,credentials:"include"})}function E(){return(0,w.useAnalyticsPageviews)(),null}a.s(["Providers",0,function({serverUrl:a,isSquadronsConfigured:c,isTrierarchPluginConfigured:d,hostedAccountUrl:e,isAnalyticsOn:f,children:g}){let[h]=(0,u.useState)(()=>new n({defaultOptions:{queries:{retry:C}}})),[i]=(0,u.useState)(()=>{let b;return b=(0,q.n)({url:`${a.replace(/^http/,"ws")}/trpc`,lazy:{enabled:!0,closeMs:0}}),(0,p.createTRPCClient)({links:[(0,s.t)({condition:a=>"subscription"===a.type,true:(0,t.t)({client:b}),false:(0,r.t)({url:`${a}/trpc`,fetch:D})})]})});return(0,b.jsx)(o.QueryClientProvider,{client:h,children:(0,b.jsx)(B.TRPCProvider,{trpcClient:i,queryClient:h,children:(0,b.jsx)(z.SquadronsConfiguredContext,{value:c,children:(0,b.jsx)(A.TrierarchPluginConfiguredContext,{value:d,children:(0,b.jsx)(y.HostedAccountUrlContext,{value:e,children:(0,b.jsxs)(w.AnalyticsContext,{value:f,children:[(0,b.jsx)(E,{}),g,(0,b.jsx)(v.Toaster,{})]})})})})})})}],74038)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_console_app_providers_tsx_06ai92n._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[69619,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(15439),e=a.i(2549),f=a.i(83786),g=a.i(68698),h=a.i(64831);let i={name:"link-2",size:24,node:[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]};i.node;let j=(0,h.default)(i);var k=a.i(12068),l=a.i(40392),m=a.i(50808);function n({settings:a,loadError:c,onRetry:d,isConnecting:e,connectError:f,onConnect:g}){return void 0!==c?(0,b.jsx)(l.InlineError,{title:"Couldn’t read squadrons",description:c,onRetry:d}):void 0===a?(0,b.jsx)(m.LoadingSkeleton,{variant:"detail",rows:2,label:"Loading squadrons"}):a.configured&&a.connection.isEnabled?(0,b.jsxs)("section",{"aria-labelledby":"settings-squadrons","data-testid":"settings-squadrons",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"settings-squadrons",className:"text-body font-semibold",children:"Squadrons"}),"connected"===a.connection.state?(0,b.jsxs)("p",{className:"text-body","data-testid":"settings-squadrons-state",children:["Connected as ",(0,b.jsx)("span",{className:"font-mono",children:a.connection.ship?.name})," ",(0,b.jsxs)("span",{className:"font-mono text-muted-foreground",children:["(",a.connection.ship?.shipId,")"]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"text-body","data-testid":"settings-squadrons-state",children:"Not connected. Connecting commissions the ship squadrons, with fleet read and manage, or gives it a new starting prompt, and hands its secret to squadrons. No one sees the secret."}),(0,b.jsx)("div",{children:(0,b.jsx)(k.Button,{variant:"primary",icon:(0,b.jsx)(j,{"aria-hidden":!0}),isLoading:e,onClick:g,"data-testid":"settings-squadrons-connect",children:"Connect squadrons"})}),void 0!==f&&(0,b.jsx)(l.InlineError,{variant:"field",title:"Couldn’t connect squadrons",description:f})]})]}):null}var o=a.i(93817),p=a.i(26766),q=a.i(3512),r=a.i(48819),s=a.i(26268),t=a.i(72872),u=a.i(47480),v=a.i(59613),w=a.i(2374),x=a.i(75297),y=a.i(45098),z=a.i(24173),A=a.i(20847);let B=".aeolus/squadrons";function C({isAdding:a,addError:d,onAdd:e}){let f=(0,c.useId)(),g=(0,c.useId)(),h=(0,c.useId)(),[i,j]=(0,c.useState)(""),[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)("");return(0,b.jsxs)("form",{noValidate:!0,"data-testid":"repositories-add",className:"flex flex-col gap-3 rounded-md border border-border p-3",onSubmit:a=>{a.preventDefault();let b=m.trim(),c=o.trim();e({url:i.trim(),...""===b?{}:{path:b},...""===c?{}:{token:c}},()=>{j(""),n(""),p("")})},children:[(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(y.Label,{htmlFor:f,children:"Repository URL"}),(0,b.jsx)(x.Input,{id:f,isMono:!0,autoComplete:"off",spellCheck:!1,placeholder:"https://github.com/acme/squadron-templates.git","data-testid":"repositories-url",value:i,onChange:a=>{j(a.target.value)}})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(y.Label,{htmlFor:g,children:"Path (optional)"}),(0,b.jsx)(x.Input,{id:g,isMono:!0,autoComplete:"off",spellCheck:!1,placeholder:B,"data-testid":"repositories-path",value:m,onChange:a=>{n(a.target.value)}})]})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(y.Label,{htmlFor:h,children:"Read token (optional, for a private repository)"}),(0,b.jsx)(x.Input,{id:h,type:"password",autoComplete:"new-password","data-testid":"repositories-token",value:o,onChange:a=>{p(a.target.value)}}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"Entered once and never shown again. To change it, remove the repository and add it again."})]}),void 0===d?null:(0,b.jsx)(l.InlineError,{title:"Couldn’t add the repository",description:`${d} The list shows what squadrons holds.`}),(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsx)(k.Button,{type:"submit",variant:"primary",icon:(0,b.jsx)(q.Plus,{"aria-hidden":!0}),isLoading:a,disabled:""===i.trim(),"data-testid":"repositories-add-submit",children:a?"Adding":"Add repository"})})]})}function D(a,b){return a.map(({name:a,versions:c})=>"template"===b?`${a}@${c.join(", ")}`:`${a} v${c.join(", v")}`).join(" · ")}function E({contents:a,path:c}){let{templates:d,blueprints:e,leftOut:f}=a;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("dl",{"data-testid":"repositories-found",className:"grid grid-cols-[auto_minmax(0,1fr)] gap-x-3 gap-y-0.5 text-meta",children:0===d.length&&0===e.length?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("dt",{className:"text-muted-foreground",children:"Found"}),(0,b.jsxs)("dd",{children:["No templates or blueprints under ",c]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("dt",{className:"text-muted-foreground",children:"Templates"}),(0,b.jsx)("dd",{className:"font-mono",children:0===d.length?"None":D(d,"template")}),(0,b.jsx)("dt",{className:"text-muted-foreground",children:"Blueprints"}),(0,b.jsx)("dd",{className:"font-mono",children:0===e.length?"None":D(e,"blueprint")})]})}),0===f.length?null:(0,b.jsxs)("div",{"data-testid":"repositories-left-out",className:"flex flex-col gap-1.5 rounded-md border border-tone-attention-border bg-tone-attention-bg p-2.5 text-tone-attention-fg",children:[(0,b.jsxs)("p",{className:"flex items-center gap-1.5 text-meta font-medium",children:[(0,b.jsx)(s.TriangleAlert,{"aria-hidden":!0,className:"size-(--size-icon-sm) shrink-0"}),"Left out: ",f.length,". Fix ",1===f.length?"it":"them"," in git, tag again, then refresh."]}),(0,b.jsx)("ul",{className:"flex flex-col gap-1",children:f.map(a=>(0,b.jsxs)("li",{"data-testid":"repositories-left-out-item",className:"text-meta text-foreground",children:[(0,b.jsx)("span",{className:"font-mono",children:(0,u.leftOutLabel)(a)}),": ",a.message]},`${a.kind} ${a.name}@${String(a.version)}`))})]})]})}function F({repository:a,contents:c,now:d,onRemove:e}){let{lastFetch:f}=a;return(0,b.jsxs)("li",{"data-testid":"repositories-row",className:"flex flex-col gap-1.5 px-3 py-2.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)(A.RepositoryName,{name:a.name}),a.path===B?null:(0,b.jsx)("span",{className:"font-mono text-meta text-muted-foreground",children:a.path}),a.hasToken?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-meta text-muted-foreground",children:[(0,b.jsx)(p.KeyRound,{"aria-hidden":!0,className:"size-(--size-icon-sm)"}),"Token"]}):null,(0,b.jsx)("span",{className:"ml-auto text-meta text-muted-foreground","data-testid":"repositories-fetched",children:null===f?"Not fetched yet":`Fetched ${(0,t.relativeTime)(new Date(f.at),d)}`}),(0,b.jsx)(k.Button,{size:"xs",variant:"ghost","data-testid":"repositories-remove",onClick:e,children:"Remove"})]}),f?.error?(0,b.jsxs)("p",{"data-testid":"repositories-error",className:"flex items-start gap-1.5 text-meta text-destructive-text",children:[(0,b.jsx)(o.CircleAlert,{"aria-hidden":!0,className:"mt-0.5 size-(--size-icon-sm) shrink-0"}),(0,b.jsxs)("span",{children:["The last fetch failed: ",(0,b.jsx)("span",{className:"font-mono",children:f.error})]})]}):null,void 0===c||null===f||null!==f.error&&c.templates.length+c.blueprints.length+c.leftOut.length===0?null:(0,b.jsx)(E,{contents:c,path:a.path})]})}function G(a){let{repositories:d,catalogue:e,state:f,error:g,onRetry:h,isRemoving:i,removeError:j,onRemove:n,onRemoveClosed:o,isRefreshing:p,refreshError:q,onRefresh:s,now:t}=a,[x,y]=(0,c.useState)(void 0);return(0,b.jsxs)("section",{"aria-labelledby":"settings-repositories","data-testid":"settings-repositories",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("h2",{id:"settings-repositories",className:"text-body font-semibold",children:"Repositories"}),(0,b.jsx)(k.Button,{size:"xs",icon:(0,b.jsx)(r.RotateCw,{"aria-hidden":!0}),isLoading:p,disabled:0===d.length,onClick:s,"data-testid":"repositories-refresh",children:"Refresh"})]}),(0,b.jsxs)("p",{className:"text-meta text-muted-foreground",children:["squadrons reads templates and blueprints from these repositories, under ",B," unless a repository sets its own path. It fetches one when you add it, when you refresh, and once each time squadrons connects or starts."]}),void 0===q?null:(0,b.jsx)(l.InlineError,{variant:"section",title:"Couldn’t refresh",description:q}),"loading"===f?(0,b.jsx)(m.LoadingSkeleton,{variant:"list",rows:2,label:"Loading the repositories"}):"error"===f?(0,b.jsx)(l.InlineError,{title:"Couldn’t read the repositories",description:g,onRetry:h}):0===d.length?(0,b.jsx)(z.EmptyState,{variant:"section",title:"No repositories yet",description:"Add one to read its templates and blueprints."}):(0,b.jsx)("ul",{className:"divide-y divide-border overflow-hidden rounded-md border border-border",children:d.map(a=>(0,b.jsx)(F,{repository:a,...void 0===e?{}:{contents:(0,u.repositoryContents)(e,a.name)},now:t,onRemove:()=>{y(a.name)}},a.name))}),(0,b.jsx)(C,{isAdding:a.isAdding,addError:a.addError,onAdd:a.onAdd}),(0,b.jsx)(v.AlertDialog,{open:void 0!==x,onOpenChange:a=>{a||i||(y(void 0),o())},children:(0,b.jsxs)(v.AlertDialogContent,{"data-testid":"repositories-remove-dialog",className:w.dialogSurface.phoneSheet,children:[(0,b.jsxs)(v.AlertDialogHeader,{children:[(0,b.jsxs)(v.AlertDialogTitle,{children:["Remove ",x,"?"]}),(0,b.jsx)(v.AlertDialogDescription,{children:"Its templates and blueprints leave the catalogue at once. Squadrons formed from them keep the versions they formed from."})]}),void 0===j?null:(0,b.jsx)(l.InlineError,{title:"Couldn’t remove the repository",description:`${j} The list shows what squadrons holds.`}),(0,b.jsxs)(v.AlertDialogFooter,{children:[(0,b.jsx)(v.AlertDialogClose,{render:(0,b.jsx)(k.Button,{disabled:i}),children:"Cancel"}),(0,b.jsx)(k.Button,{variant:"destructive",isLoading:i,"data-testid":"repositories-remove-confirm",onClick:()=>{void 0!==x&&n(x,()=>{y(void 0),o()})},children:"Remove repository"})]})]})})]})}var H=a.i(2466),I=a.i(65563),J=a.i(94764),K=a.i(26949),L=a.i(10023),M=a.i(68450),N=a.i(10572),O=a.i(67336),P=a.i(54763),Q=a.i(12540);a.s(["default",0,function(){let a=(0,M.useNow)(),h=(0,J.useAccountMenu)(a),i=(0,P.useHasSquadrons)(),j=(0,K.useOpenInboxCount)(),k=(0,L.useNeedsAttention)(),l=(0,L.useAttentionCount)(),m=(0,P.useSquadronsSettings)(),o=(0,P.useConnectSquadrons)(),p=(0,O.useLiveFleet)(),q=(0,P.useSquadronsConnection)(),r=(0,Q.useRepositories)(),s=(0,Q.useCatalogue)(),t=(0,Q.useAddRepository)(),u=(0,Q.useRemoveRepository)(),v=(0,Q.useRefreshCatalogue)(),w=(0,I.useAccess)(),[x,y]=(0,c.useState)(!1),[z,A]=(0,c.useState)(!1);return(0,N.useSignInWhenSessionEnds)([k.error,p.error]),(0,b.jsxs)(H.ListLayout,{title:"Settings",description:"How this installation runs. Only argo, the operator, sees this page.",live:p.live,nav:{active:"settings",inboxCount:j,attentionCount:l,hasSquadrons:i,hasSettings:i&&w.canManage},onCompose:w.canSend?()=>{y(!0)}:void 0,onSearch:()=>{A(!0)},account:h,banner:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g.ConsoleNotices,{}),(0,b.jsx)(f.ConsoleGuide,{})]}),children:[i&&(0,b.jsx)(n,{settings:m.data,loadError:m.isError?m.error.message:void 0,onRetry:()=>{m.refetch()},isConnecting:o.isPending,connectError:o.isError?o.error.message:void 0,onConnect:()=>{o.mutate()}}),"connected"===q&&(0,b.jsx)(G,{repositories:r.data??[],...void 0===s.data?{}:{catalogue:s.data},state:r.isError?"error":r.data?"ready":"loading",error:r.error?.message,onRetry:()=>{r.refetch()},isAdding:t.isPending,addError:t.error?.message,onAdd:(a,b)=>{t.mutate(a,{onSuccess:b})},isRemoving:u.isPending,removeError:u.error?.message,onRemove:(a,b)=>{u.mutate(a,{onSuccess:b})},onRemoveClosed:()=>{u.reset()},isRefreshing:v.isPending,refreshError:v.error?.message,onRefresh:()=>{v.mutate()},now:a}),(0,b.jsx)(d.ComposeMessage,{isOpen:x,onOpenChange:y}),(0,b.jsx)(e.ConsoleCommands,{isOpen:z,onOpenChange:A,onCompose:()=>{y(!0)}})]})}],69619)}];
|
|
1
|
+
module.exports=[69619,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(15439),e=a.i(2549),f=a.i(83786),g=a.i(68698),h=a.i(64831);let i={name:"link-2",size:24,node:[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]};i.node;let j=(0,h.default)(i);var k=a.i(12068),l=a.i(40392),m=a.i(50808);function n({settings:a,loadError:c,onRetry:d,isConnecting:e,connectError:f,onConnect:g}){return void 0!==c?(0,b.jsx)(l.InlineError,{title:"Couldn’t read squadrons",description:c,onRetry:d}):void 0===a?(0,b.jsx)(m.LoadingSkeleton,{variant:"detail",rows:2,label:"Loading squadrons"}):a.configured&&a.connection.isEnabled?(0,b.jsxs)("section",{"aria-labelledby":"settings-squadrons","data-testid":"settings-squadrons",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"settings-squadrons",className:"text-body font-semibold",children:"Squadrons"}),"connected"===a.connection.state?(0,b.jsxs)("p",{className:"text-body","data-testid":"settings-squadrons-state",children:["Connected as ",(0,b.jsx)("span",{className:"font-mono",children:a.connection.ship?.name})," ",(0,b.jsxs)("span",{className:"font-mono text-muted-foreground",children:["(",a.connection.ship?.shipId,")"]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"text-body","data-testid":"settings-squadrons-state",children:"Not connected. Connecting commissions the ship squadrons, with fleet read and manage, or gives it a new starting prompt, and hands its secret to squadrons. No one sees the secret."}),(0,b.jsx)("div",{children:(0,b.jsx)(k.Button,{variant:"primary",icon:(0,b.jsx)(j,{"aria-hidden":!0}),isLoading:e,onClick:g,"data-testid":"settings-squadrons-connect",children:"Connect squadrons"})}),void 0!==f&&(0,b.jsx)(l.InlineError,{variant:"field",title:"Couldn’t connect squadrons",description:f})]})]}):null}var o=a.i(93817),p=a.i(26766),q=a.i(3512),r=a.i(48819),s=a.i(26268),t=a.i(72872),u=a.i(47480),v=a.i(59613),w=a.i(2374),x=a.i(75297),y=a.i(45098),z=a.i(24173),A=a.i(20847);let B=".aeolus/squadrons";function C({isAdding:a,addError:d,onAdd:e}){let f=(0,c.useId)(),g=(0,c.useId)(),h=(0,c.useId)(),[i,j]=(0,c.useState)(""),[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)("");return(0,b.jsxs)("form",{noValidate:!0,"data-testid":"repositories-add",className:"flex flex-col gap-3 rounded-md border border-border p-3",onSubmit:a=>{a.preventDefault();let b=m.trim(),c=o.trim();e({url:i.trim(),...""===b?{}:{path:b},...""===c?{}:{token:c}},()=>{j(""),n(""),p("")})},children:[(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(y.Label,{htmlFor:f,children:"Repository URL"}),(0,b.jsx)(x.Input,{id:f,isMono:!0,autoComplete:"off",spellCheck:!1,placeholder:"https://github.com/acme/squadron-templates.git","data-testid":"repositories-url",value:i,onChange:a=>{j(a.target.value)}})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(y.Label,{htmlFor:g,children:"Path (optional)"}),(0,b.jsx)(x.Input,{id:g,isMono:!0,autoComplete:"off",spellCheck:!1,placeholder:B,"data-testid":"repositories-path",value:m,onChange:a=>{n(a.target.value)}})]})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(y.Label,{htmlFor:h,children:"Read token (optional, for a private repository)"}),(0,b.jsx)(x.Input,{id:h,type:"password",autoComplete:"new-password","data-testid":"repositories-token",value:o,onChange:a=>{p(a.target.value)}}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"Entered once and never shown again. To change it, remove the repository and add it again."})]}),void 0===d?null:(0,b.jsx)(l.InlineError,{title:"Couldn’t add the repository",description:`${d} The list shows what squadrons holds.`}),(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsx)(k.Button,{type:"submit",variant:"primary",icon:(0,b.jsx)(q.Plus,{"aria-hidden":!0}),isLoading:a,disabled:""===i.trim(),"data-testid":"repositories-add-submit",children:a?"Adding":"Add repository"})})]})}function D(a,b){return a.map(({name:a,versions:c})=>"template"===b?`${a}@${c.join(", ")}`:`${a} v${c.join(", v")}`).join(" · ")}function E({contents:a,path:c}){let{templates:d,blueprints:e,leftOut:f}=a;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("dl",{"data-testid":"repositories-found",className:"grid grid-cols-[auto_minmax(0,1fr)] gap-x-3 gap-y-0.5 text-meta",children:0===d.length&&0===e.length?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("dt",{className:"text-muted-foreground",children:"Found"}),(0,b.jsxs)("dd",{children:["No templates or blueprints under ",c]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("dt",{className:"text-muted-foreground",children:"Templates"}),(0,b.jsx)("dd",{className:"font-mono",children:0===d.length?"None":D(d,"template")}),(0,b.jsx)("dt",{className:"text-muted-foreground",children:"Blueprints"}),(0,b.jsx)("dd",{className:"font-mono",children:0===e.length?"None":D(e,"blueprint")})]})}),0===f.length?null:(0,b.jsxs)("div",{"data-testid":"repositories-left-out",className:"flex flex-col gap-1.5 rounded-md border border-tone-attention-border bg-tone-attention-bg p-2.5 text-tone-attention-fg",children:[(0,b.jsxs)("p",{className:"flex items-center gap-1.5 text-meta font-medium",children:[(0,b.jsx)(s.TriangleAlert,{"aria-hidden":!0,className:"size-(--size-icon-sm) shrink-0"}),"Left out: ",f.length,". Fix ",1===f.length?"it":"them"," in git, tag again, then refresh."]}),(0,b.jsx)("ul",{className:"flex flex-col gap-1",children:f.map(a=>(0,b.jsxs)("li",{"data-testid":"repositories-left-out-item",className:"text-meta text-foreground",children:[(0,b.jsx)("span",{className:"font-mono",children:(0,u.leftOutLabel)(a)}),": ",a.message]},`${a.kind} ${a.name}@${String(a.version)}`))})]})]})}function F({repository:a,contents:c,now:d,onRemove:e}){let{lastFetch:f}=a;return(0,b.jsxs)("li",{"data-testid":"repositories-row",className:"flex flex-col gap-1.5 px-3 py-2.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)(A.RepositoryName,{name:a.name}),a.path===B?null:(0,b.jsx)("span",{className:"font-mono text-meta text-muted-foreground",children:a.path}),a.hasToken?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-meta text-muted-foreground",children:[(0,b.jsx)(p.KeyRound,{"aria-hidden":!0,className:"size-(--size-icon-sm)"}),"Token"]}):null,(0,b.jsx)("span",{className:"ml-auto text-meta text-muted-foreground","data-testid":"repositories-fetched",children:null===f?"Not fetched yet":`Fetched ${(0,t.relativeTime)(new Date(f.at),d)}`}),(0,b.jsx)(k.Button,{size:"xs",variant:"ghost","data-testid":"repositories-remove",onClick:e,children:"Remove"})]}),f?.error?(0,b.jsxs)("p",{"data-testid":"repositories-error",className:"flex items-start gap-1.5 text-meta text-destructive-text",children:[(0,b.jsx)(o.CircleAlert,{"aria-hidden":!0,className:"mt-0.5 size-(--size-icon-sm) shrink-0"}),(0,b.jsxs)("span",{children:["The last fetch failed: ",(0,b.jsx)("span",{className:"font-mono",children:f.error})]})]}):null,void 0===c||null===f||null!==f.error&&c.templates.length+c.blueprints.length+c.leftOut.length===0?null:(0,b.jsx)(E,{contents:c,path:a.path})]})}function G(a){let{repositories:d,catalogue:e,state:f,error:g,onRetry:h,isRemoving:i,removeError:j,onRemove:n,onRemoveClosed:o,isRefreshing:p,refreshError:q,onRefresh:s,now:t}=a,[x,y]=(0,c.useState)(void 0);return(0,b.jsxs)("section",{"aria-labelledby":"settings-repositories","data-testid":"settings-repositories",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("h2",{id:"settings-repositories",className:"text-body font-semibold",children:"Repositories"}),(0,b.jsx)(k.Button,{size:"xs",icon:(0,b.jsx)(r.RotateCw,{"aria-hidden":!0}),isLoading:p,disabled:0===d.length,onClick:s,"data-testid":"repositories-refresh",children:"Refresh"})]}),(0,b.jsxs)("p",{className:"text-meta text-muted-foreground",children:["squadrons reads templates and blueprints from these repositories, under ",B," unless a repository sets its own path. It fetches one when you add it, when you refresh, and once each time squadrons connects or starts."]}),void 0===q?null:(0,b.jsx)(l.InlineError,{variant:"section",title:"Couldn’t refresh",description:q}),"loading"===f?(0,b.jsx)(m.LoadingSkeleton,{variant:"list",rows:2,label:"Loading the repositories"}):"error"===f?(0,b.jsx)(l.InlineError,{title:"Couldn’t read the repositories",description:g,onRetry:h}):0===d.length?(0,b.jsx)(z.EmptyState,{variant:"section",title:"No repositories yet",description:"Add one to read its templates and blueprints."}):(0,b.jsx)("ul",{className:"divide-y divide-border overflow-hidden rounded-md border border-border",children:d.map(a=>(0,b.jsx)(F,{repository:a,...void 0===e?{}:{contents:(0,u.repositoryContents)(e,a.name)},now:t,onRemove:()=>{y(a.name)}},a.name))}),(0,b.jsx)(C,{isAdding:a.isAdding,addError:a.addError,onAdd:a.onAdd}),(0,b.jsx)(v.AlertDialog,{open:void 0!==x,onOpenChange:a=>{a||i||(y(void 0),o())},children:(0,b.jsxs)(v.AlertDialogContent,{"data-testid":"repositories-remove-dialog",className:w.dialogSurface.phoneSheet,children:[(0,b.jsxs)(v.AlertDialogHeader,{children:[(0,b.jsxs)(v.AlertDialogTitle,{children:["Remove ",x,"?"]}),(0,b.jsx)(v.AlertDialogDescription,{children:"Its templates and blueprints leave the catalogue at once. Squadrons formed from them keep the versions they formed from."})]}),void 0===j?null:(0,b.jsx)(l.InlineError,{title:"Couldn’t remove the repository",description:`${j} The list shows what squadrons holds.`}),(0,b.jsxs)(v.AlertDialogFooter,{children:[(0,b.jsx)(v.AlertDialogClose,{render:(0,b.jsx)(k.Button,{disabled:i}),children:"Cancel"}),(0,b.jsx)(k.Button,{variant:"destructive",isLoading:i,"data-testid":"repositories-remove-confirm",onClick:()=>{void 0!==x&&n(x,()=>{y(void 0),o()})},children:"Remove repository"})]})]})})]})}var H=a.i(23636),I=a.i(38246);function J({settings:a,loadError:c,onRetry:d,isConnecting:e,connectError:f,onConnect:g}){if(void 0!==c)return(0,b.jsx)(l.InlineError,{title:"Couldn’t read the trierarch plugin",description:c,onRetry:d});if(void 0===a)return(0,b.jsx)(m.LoadingSkeleton,{variant:"detail",rows:2,label:"Loading the trierarch plugin"});let h=a.configured&&a.connection.isEnabled;return(0,b.jsxs)("section",{"aria-labelledby":"settings-trierarchs","data-testid":"settings-trierarchs",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsxs)("h2",{id:"settings-trierarchs",className:"flex items-center gap-2 text-body font-semibold [&_svg]:size-(--size-icon) [&_svg]:text-muted-foreground",children:[(0,b.jsx)(H.ShipWheel,{"aria-hidden":!0}),"Trierarchs"]}),h?"connected"===a.connection.state?(0,b.jsxs)("p",{className:"text-body","data-testid":"settings-trierarchs-state",children:["Connected as ",(0,b.jsx)("span",{className:"font-mono",children:a.connection.ship?.name})," ",(0,b.jsxs)("span",{className:"font-mono text-muted-foreground",children:["(",a.connection.ship?.shipId,")"]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"text-body","data-testid":"settings-trierarchs-state",children:"Not connected. Connecting commissions the ship trierarch-plugin, which reads and manages the fleet and assigns crew requests, or gives it a new starting prompt, and hands its secret to the trierarch plugin. No one sees the secret."}),(0,b.jsx)("div",{children:(0,b.jsx)(k.Button,{variant:"primary",icon:(0,b.jsx)(j,{"aria-hidden":!0}),isLoading:e,onClick:g,"data-testid":"settings-trierarchs-connect",children:"Connect trierarch plugin"})}),void 0!==f&&(0,b.jsx)(l.InlineError,{variant:"field",title:"Couldn’t connect the trierarch plugin",description:f})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("p",{className:"text-body","data-testid":"settings-trierarchs-state",children:["Not set up. ","Starts, restarts and stops sessions for crew requests on your machines. Without it, crew requests wait on Needs crew for you to crew by hand."]}),(0,b.jsx)("div",{children:(0,b.jsx)(k.Button,{size:"sm",nativeButton:!1,render:(0,b.jsx)(I.default,{href:"/trierarchs"}),"data-testid":"settings-trierarchs-how",children:"How to set it up"})})]})]})}var K=a.i(2466),L=a.i(65563),M=a.i(94764),N=a.i(26949),O=a.i(10023),P=a.i(68450),Q=a.i(10572),R=a.i(67336),S=a.i(54763),T=a.i(12540),U=a.i(34159),V=a.i(93454);a.s(["default",0,function(){let a=(0,P.useNow)(),h=(0,M.useAccountMenu)(a),i=(0,S.useHasSquadrons)(),j=(0,N.useOpenInboxCount)(),k=(0,O.useNeedsAttention)(),l=(0,O.useAttentionCount)(),m=(0,S.useSquadronsSettings)(),o=(0,S.useConnectSquadrons)(),p=(0,V.useTrierarchPluginSettings)(),q=(0,V.useConnectTrierarchPlugin)(),r=(0,R.useLiveFleet)(),s=(0,S.useSquadronsConnection)(),t=(0,T.useRepositories)(),u=(0,T.useCatalogue)(),v=(0,T.useAddRepository)(),w=(0,T.useRemoveRepository)(),x=(0,T.useRefreshCatalogue)(),y=(0,L.useAccess)(),z=(0,U.usePluginNav)(),[A,B]=(0,c.useState)(!1),[C,D]=(0,c.useState)(!1);return(0,Q.useSignInWhenSessionEnds)([k.error,r.error]),(0,b.jsxs)(K.ListLayout,{title:"Settings",description:"How this installation runs. Only argo, the operator, sees this page.",live:r.live,nav:{active:"settings",inboxCount:j,attentionCount:l,...z},onCompose:y.canSend?()=>{B(!0)}:void 0,onSearch:()=>{D(!0)},account:h,banner:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g.ConsoleNotices,{}),(0,b.jsx)(f.ConsoleGuide,{})]}),children:[i&&(0,b.jsx)(n,{settings:m.data,loadError:m.isError?m.error.message:void 0,onRetry:()=>{m.refetch()},isConnecting:o.isPending,connectError:o.isError?o.error.message:void 0,onConnect:()=>{o.mutate()}}),z.hasSettings&&(0,b.jsx)(J,{settings:p.data,loadError:p.isError?p.error.message:void 0,onRetry:()=>{p.refetch()},isConnecting:q.isPending,connectError:q.isError?q.error.message:void 0,onConnect:()=>{q.mutate()}}),"connected"===s&&(0,b.jsx)(G,{repositories:t.data??[],...void 0===u.data?{}:{catalogue:u.data},state:t.isError?"error":t.data?"ready":"loading",error:t.error?.message,onRetry:()=>{t.refetch()},isAdding:v.isPending,addError:v.error?.message,onAdd:(a,b)=>{v.mutate(a,{onSuccess:b})},isRemoving:w.isPending,removeError:w.error?.message,onRemove:(a,b)=>{w.mutate(a,{onSuccess:b})},onRemoveClosed:()=>{w.reset()},isRefreshing:x.isPending,refreshError:x.error?.message,onRefresh:()=>{x.mutate()},now:a}),(0,b.jsx)(d.ComposeMessage,{isOpen:A,onOpenChange:B}),(0,b.jsx)(e.ConsoleCommands,{isOpen:C,onOpenChange:D,onCompose:()=>{B(!0)}})]})}],69619)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_console_app_settings_page_tsx_1zqt7sk._.js.map
|