@aeolus-fleet/console 0.26.0 → 0.27.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/standalone/packages/console/.next/BUILD_ID +1 -1
- package/.next/standalone/packages/console/.next/build-manifest.json +3 -3
- package/.next/standalone/packages/console/.next/prerender-manifest.json +3 -3
- package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/[cause]/page/server-reference-manifest.json +16 -16
- package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/[cause]/page.js.nft.json +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/[cause]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/page/server-reference-manifest.json +16 -16
- package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/page.js.nft.json +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/inbox/page/server-reference-manifest.json +16 -16
- package/.next/standalone/packages/console/.next/server/app/(console)/inbox/page.js.nft.json +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/inbox/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/labels/page/server-reference-manifest.json +16 -16
- package/.next/standalone/packages/console/.next/server/app/(console)/labels/page.js.nft.json +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/labels/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/needs-attention/page/server-reference-manifest.json +16 -16
- package/.next/standalone/packages/console/.next/server/app/(console)/needs-attention/page.js.nft.json +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/needs-attention/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/needs-crew/page/server-reference-manifest.json +16 -16
- package/.next/standalone/packages/console/.next/server/app/(console)/needs-crew/page.js.nft.json +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/needs-crew/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/network/page/server-reference-manifest.json +16 -16
- package/.next/standalone/packages/console/.next/server/app/(console)/network/page.js.nft.json +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/network/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/page/react-loadable-manifest.json +2 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/page/server-reference-manifest.json +16 -16
- package/.next/standalone/packages/console/.next/server/app/(console)/page.js.nft.json +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/settings/page/server-reference-manifest.json +16 -16
- package/.next/standalone/packages/console/.next/server/app/(console)/settings/page.js.nft.json +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/ships/[shipId]/page/react-loadable-manifest.json +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/ships/[shipId]/page/server-reference-manifest.json +16 -16
- package/.next/standalone/packages/console/.next/server/app/(console)/ships/[shipId]/page.js.nft.json +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/ships/[shipId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/[squadronId]/page/server-reference-manifest.json +16 -16
- package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/[squadronId]/page.js.nft.json +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/[squadronId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/blueprints/[name]/page/react-loadable-manifest.json +2 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/blueprints/[name]/page/server-reference-manifest.json +16 -16
- package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/blueprints/[name]/page.js.nft.json +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/blueprints/[name]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/page/react-loadable-manifest.json +2 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/page/server-reference-manifest.json +16 -16
- package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/page.js.nft.json +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/templates/[name]/page/server-reference-manifest.json +16 -16
- package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/templates/[name]/page.js.nft.json +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/templates/[name]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/[shipId]/page/server-reference-manifest.json +16 -16
- package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/[shipId]/page.js.nft.json +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/[shipId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/page/server-reference-manifest.json +16 -16
- package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/page.js.nft.json +1 -1
- package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/console/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/packages/console/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/packages/console/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/packages/console/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/packages/console/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/packages/console/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/packages/console/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/console/.next/server/app/api/reads/[read]/route.js.nft.json +1 -1
- package/.next/standalone/packages/console/.next/server/app/sign-in/failed/page.js.nft.json +1 -1
- package/.next/standalone/packages/console/.next/server/app/sign-in/failed/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/console/.next/server/app/sign-in/page.js.nft.json +1 -1
- package/.next/standalone/packages/console/.next/server/app/sign-in/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/console/.next/server/app/version/route.js.nft.json +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__06f_104._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__1cfwaji._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/_1uqphll._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/0mxb_server_app_(console)_squadrons_blueprints_[name]_page_actions_170owr_.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/0mxb_server_app_(console)_squadrons_templates_[name]_page_actions_09abrr0.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_fleet-health_page_actions_1gb6-fk.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_needs-crew_page_actions_08gu8-f.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_network_page_actions_1muuv-j.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_settings_page_actions_0b6qztr.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_ships_[shipId]_page_actions_0g2nd1p.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_squadrons_page_actions_1x3afts.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_trierarchs_page_actions_1ow37mz.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/1eui__next-internal_server_app_(console)_fleet-health_[cause]_page_actions_1kltvcl.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/1eui__next-internal_server_app_(console)_needs-attention_page_actions_1jfgclw.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/1eui__next-internal_server_app_(console)_squadrons_[squadronId]_page_actions_1lzqlye.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/1eui__next-internal_server_app_(console)_trierarchs_[shipId]_page_actions_0l7bxva.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_0-lk0hi._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/{_0lx73da._.js → _04q8k0c._.js} +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/{_0cgv2dc._.js → _050ulkd._.js} +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_06472wf._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_065633k._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_0bx9rsi._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_0dq16_0._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_0eeox-9._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_0ibcqy0._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/{_13zwdui._.js → _0ictsnq._.js} +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_0q3cblh._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_0qft7s4._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_0qo94ne._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_0tgr0il._.js +3 -0
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_0txw0_-._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_0vwj8z1._.js +3 -0
- package/.next/standalone/packages/console/.next/server/chunks/ssr/{_15d37tz._.js → _0wmw6gw._.js} +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_0z9_vmu._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_1150wmd._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_15_xzod._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_15inzfl._.js +3 -0
- package/.next/standalone/packages/console/.next/server/chunks/ssr/{_1m4ivsp._.js → _167gn91._.js} +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_1_9jlty._.js +3 -0
- package/.next/standalone/packages/console/.next/server/chunks/ssr/{_0_2b2as._.js → _1bvkf-u._.js} +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_1cak3vp._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_1gfvjcx._.js +3 -0
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_1hb5q4e._.js +3 -0
- package/.next/standalone/packages/console/.next/server/chunks/ssr/{_09im7u5._.js → _1j1ejbw._.js} +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_1khnccn._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/{_0um_0ko._.js → _1m738ix._.js} +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_1q4-osx._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_1svohzj._.js +3 -0
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_1t4d5qx._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_1tmr0q5._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_1u0h4gj._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/{_02-lhd9._.js → _1vc4auf._.js} +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_1yjxbcr._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_0nwj88l._.js +3 -0
- package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_common_dist_schemas_ping_043mvb2.js → node_modules_zod_v4_classic_external_15fmmz3.js} +3 -3
- package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_1t6joug._.js +3 -0
- package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_common_dist_1_gq_cl._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_console_16s142_._.js → packages_console_0969g9_._.js} +2 -2
- package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_console_0-cynql._.js → packages_console_11eh-8v._.js} +2 -2
- package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_console_19onaki._.js → packages_console_18f93ie._.js} +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1bm_b0f._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_console_1fjvhg3._.js → packages_console_1clix79._.js} +2 -2
- package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_console_1h3kqc2._.js → packages_console_2004f3v._.js} +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console__next-internal_server_app_(console)_inbox_page_actions_0q9_xye.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console__next-internal_server_app_(console)_labels_page_actions_0tk7mqs.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console__next-internal_server_app_(console)_page_actions_1ftjjyq.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_inbox_inbox-page_tsx_1lm_c0k._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_network_network-page_tsx_0qc3h-9._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_overview-page_tsx_15siba6._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_ships_[shipId]_ship-page_tsx_0oahz0r._.js +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_console_components_organisms_crew-line-dialog_tsx_16f00i2._.js → packages_console_components_organisms_crew-line-dialog_tsx_1qorkk0._.js} +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_features_ship_ui_organisms_message-sheet_tsx_08bg9ly._.js +3 -0
- package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_console_features_squadrons_organisms_form-squadron-dialog_tsx_1em2a6u._.js → packages_console_features_squadrons_organisms_form-squadron-dialog_tsx_0ditu5u._.js} +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_console_features_squadrons_organisms_form-squadron-dialog_tsx_14dtsf9._.js → packages_console_features_squadrons_organisms_form-squadron-dialog_tsx_13oketj._.js} +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_console_features_trierarchs_organisms_clear-worktree-dialog_tsx_182t_8a._.js → packages_console_features_trierarchs_organisms_clear-worktree-dialog_tsx_1vigea_._.js} +1 -1
- package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_lib_1b-azvo._.js +1 -1
- package/.next/standalone/packages/console/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/packages/console/.next/server/pages/500.html +1 -1
- package/.next/standalone/packages/console/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/packages/console/.next/server/server-reference-manifest.json +17 -17
- package/.next/standalone/packages/console/.next/static/chunks/061rac_vo9o5d.js +1 -0
- package/.next/standalone/packages/console/.next/static/chunks/09d3pvbsjtshj.js +1 -0
- package/.next/standalone/packages/console/.next/static/chunks/0c7bjft6zc04t.js +1 -0
- package/.next/standalone/packages/console/.next/static/chunks/{40z-3somzsrdu.js → 0fa8e9n5fw6ti.js} +1 -1
- package/.next/standalone/packages/console/.next/static/chunks/{2r6qbt-3eyyx0.js → 0fj5fpwgxkqx6.js} +1 -1
- package/.next/standalone/packages/console/.next/static/chunks/{0dym46wdgyr8s.js → 0ht5wi5oe5_za.js} +1 -1
- package/.next/standalone/packages/console/.next/static/chunks/{3b-s07jfktn4h.js → 0k-zw0ldc55vf.js} +1 -1
- package/.next/standalone/packages/console/.next/static/chunks/0o8q0d16-yt3a.js +1 -0
- package/.next/standalone/packages/console/.next/static/chunks/0of7ho03vihb8.js +1 -0
- package/.next/standalone/packages/console/.next/static/chunks/0sagpcmh6omoj.js +1 -0
- package/.next/standalone/packages/console/.next/static/chunks/{3tgyz9diu6s8b.js → 101ihp2v2np_3.js} +1 -1
- package/.next/standalone/packages/console/.next/static/chunks/{13dlsye_vo200.js → 126uqxulir3hs.js} +1 -1
- package/.next/standalone/packages/console/.next/static/chunks/14e-f0w_cfqhg.js +1 -0
- package/.next/standalone/packages/console/.next/static/chunks/{27w_ak-u49z7c.js → 169-oge56q06i.js} +1 -1
- package/.next/standalone/packages/console/.next/static/chunks/{3xpa57z5k1j9u.js → 18rsibme2venq.js} +1 -1
- package/.next/standalone/packages/console/.next/static/chunks/{3l9d_pyzbdymw.js → 1a9zf8kv0co9n.js} +1 -1
- package/.next/standalone/packages/console/.next/static/chunks/1bra8hyy6r84a.js +1 -0
- package/.next/standalone/packages/console/.next/static/chunks/{3ndsjj121oi4m.css → 1qpq5_mt8o9ya.css} +1 -1
- package/.next/standalone/packages/console/.next/static/chunks/{1l8zdqmp_9rf5.js → 1rnej87ue7-0n.js} +1 -1
- package/.next/standalone/packages/console/.next/static/chunks/{0f4gp6zc0v7ff.js → 1splzlg79ytml.js} +1 -1
- package/.next/standalone/packages/console/.next/static/chunks/{1da369dzazef6.js → 1wfdv058l23gm.js} +1 -1
- package/.next/standalone/packages/console/.next/static/chunks/20l4-ecv_oo2h.js +1 -0
- package/.next/standalone/packages/console/.next/static/chunks/24bvw3_s7h3f3.js +1 -0
- package/.next/standalone/packages/console/.next/static/chunks/25l_2rj6pvegd.js +1 -0
- package/.next/standalone/packages/console/.next/static/chunks/2600yzum9pa4e.js +1 -0
- package/.next/standalone/packages/console/.next/static/chunks/28pbrg59hx8sb.js +1 -0
- package/.next/standalone/packages/console/.next/static/chunks/2fkwzi80oyuv-.js +1 -0
- package/.next/standalone/packages/console/.next/static/chunks/2k8crfymkve8d.js +1 -0
- package/.next/standalone/packages/console/.next/static/chunks/2n_dccp7oi2ad.js +1 -0
- package/.next/standalone/packages/console/.next/static/chunks/{3elbv63h5fe5x.js → 2qc_m8dbgxc8w.js} +1 -1
- package/.next/standalone/packages/console/.next/static/chunks/308ap36uxw87y.js +1 -0
- package/.next/standalone/packages/console/.next/static/chunks/{1rdp_b6odjqw0.js → 323r-smxvi-fc.js} +1 -1
- package/.next/standalone/packages/console/.next/static/chunks/{03ktpgapfr1fd.js → 32f8-4_7znbir.js} +1 -1
- package/.next/standalone/packages/console/.next/static/chunks/{29n1zw9z_9voe.js → 38klmgk3bgj3s.js} +1 -1
- package/.next/standalone/packages/console/.next/static/chunks/{17odvid17s2tw.js → 3cae8s07yzv_o.js} +1 -1
- package/.next/standalone/packages/console/.next/static/chunks/3jszhx5rvbjvw.js +1 -0
- package/.next/standalone/packages/console/.next/static/chunks/{2l8wcne7b1_zj.js → 3k61es128845f.js} +1 -1
- package/.next/standalone/packages/console/.next/static/chunks/3kvklsjp8y-7e.js +1 -0
- package/.next/standalone/packages/console/.next/static/chunks/{3qr3u05dpx3ge.js → 3vr80dn3nyqqi.js} +2 -2
- package/.next/standalone/packages/console/.next/static/chunks/{2t433o8fl-ml0.js → 3wqzb_30qmu4l.js} +1 -1
- package/.next/standalone/packages/console/.next/static/chunks/3yjner-hzsvhr.js +1 -0
- package/.next/standalone/packages/console/.next/static/chunks/{1o0gz-w01gi32.js → 40js517zsadm9.js} +1 -1
- package/.next/standalone/packages/console/.next/static/chunks/{44uzs2qr-cee1.js → 40kwaybl7nu8j.js} +1 -1
- package/.next/standalone/packages/console/.next/static/chunks/{1hl55s9nte__6.js → 41ur4zm093e1l.js} +1 -1
- package/.next/standalone/packages/console/package.json +3 -3
- package/package.json +3 -3
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_007hyay._.js +0 -3
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_008jzxs._.js +0 -3
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_0v442oo._.js +0 -3
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_10t_dof._.js +0 -3
- package/.next/standalone/packages/console/.next/server/chunks/ssr/_1zryz52._.js +0 -3
- package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_17dse8h._.js +0 -3
- package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_features_ship_organisms_message-sheet_tsx_0quy9k0._.js +0 -3
- package/.next/standalone/packages/console/.next/static/chunks/0774ajv3n2sec.js +0 -1
- package/.next/standalone/packages/console/.next/static/chunks/0c17wq4vgezhs.js +0 -1
- package/.next/standalone/packages/console/.next/static/chunks/0dv6nkmic67qu.js +0 -1
- package/.next/standalone/packages/console/.next/static/chunks/0v7urhig04x47.js +0 -1
- package/.next/standalone/packages/console/.next/static/chunks/0vf_ufda6f5_a.js +0 -1
- package/.next/standalone/packages/console/.next/static/chunks/1_6o6fps43670.js +0 -1
- package/.next/standalone/packages/console/.next/static/chunks/1_esosi4nz45e.js +0 -1
- package/.next/standalone/packages/console/.next/static/chunks/1imn88cebly66.js +0 -1
- package/.next/standalone/packages/console/.next/static/chunks/2a-1xtmi1hx3h.js +0 -1
- package/.next/standalone/packages/console/.next/static/chunks/2egdjg_8otxoe.js +0 -1
- package/.next/standalone/packages/console/.next/static/chunks/2ihkzqv4yg9le.js +0 -1
- package/.next/standalone/packages/console/.next/static/chunks/2wmpsx0-ppato.js +0 -1
- package/.next/standalone/packages/console/.next/static/chunks/2xz2tmogwsyzo.js +0 -1
- package/.next/standalone/packages/console/.next/static/chunks/2ybp2gr6g0hjh.js +0 -1
- package/.next/standalone/packages/console/.next/static/chunks/3fl8vffzef7ta.js +0 -1
- package/.next/standalone/packages/console/.next/static/chunks/3flwn71cq8_6u.js +0 -1
- package/.next/standalone/packages/console/.next/static/chunks/3j7eutn3cr96e.js +0 -1
- package/.next/standalone/packages/console/.next/static/chunks/3v_rd25hyqdcr.js +0 -1
- package/.next/standalone/packages/console/.next/static/chunks/425ol2sav0q-i.js +0 -1
- package/.next/standalone/packages/console/.next/static/chunks/43wzzfkiwha23.js +0 -1
- /package/.next/standalone/packages/console/.next/static/{6wBvYoE9cCp5ppuzev1KN → ZV7FLBaZ7IVExYMj-OJbA}/_buildManifest.js +0 -0
- /package/.next/standalone/packages/console/.next/static/{6wBvYoE9cCp5ppuzev1KN → ZV7FLBaZ7IVExYMj-OJbA}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/packages/console/.next/static/{6wBvYoE9cCp5ppuzev1KN → ZV7FLBaZ7IVExYMj-OJbA}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[78451,a=>{"use strict";var b=a.i(87924),c=a.i(89027),d=a.i(50944),e=a.i(72131),f=a.i(65563),g=a.i(38023),h=a.i(26949),i=a.i(48884),j=a.i(67336),k=a.i(68450),l=a.i(10572),m=a.i(12068),n=a.i(88191),o=a.i(91003),p=a.i(63089),q=a.i(62700),r=a.i(33308),s=a.i(72872);function t(a){return a.toSorted((a,b)=>a.sentAt.localeCompare(b.sentAt))}function u(a){return a.toSorted((a,b)=>b.sentAt.localeCompare(a.sentAt))}function v(a){return a.filter(a=>"question"===a.kind)}function w(a){return a.filter(a=>"message"===a.kind)}function x(a){return t(v(a).filter(i.isOpenEntry))}function y(a,b){switch(b){case"open":return a.filter(i.isOpenEntry);case"done":return a.filter(a=>!(0,i.isOpenEntry)(a));case"all":return[...a]}}function z(a,b){return a.getFullYear()===b.getFullYear()&&a.getMonth()===b.getMonth()&&a.getDate()===b.getDate()}var A=a.i(85650),B=a.i(42955),C=a.i(64831);let D={name:"mail-open",size:24,node:[["path",{d:"M21.2 8.4c.5.38.8.97.8 1.6v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V10a2 2 0 0 1 .8-1.6l8-6a2 2 0 0 1 2.4 0l8 6Z",key:"1jhwl8"}],["path",{d:"m22 10-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 10",key:"1qfld7"}]]};D.node;let E=(0,C.default)(D);var F=a.i(98238),G=a.i(38246),H=a.i(55280);function I({messageId:a,shipId:c,shipName:d,onMarkUnread:e,size:f}){return(0,b.jsxs)(H.DropdownMenu,{children:[(0,b.jsx)(H.DropdownMenuTrigger,{render:(0,b.jsx)(m.Button,{variant:"ghost",size:f,isIconOnly:!0,"aria-label":"Message actions",icon:(0,b.jsx)(B.Ellipsis,{}),"data-testid":"inbox-message-menu"})}),(0,b.jsxs)(H.DropdownMenuContent,{align:"end",children:[void 0===e?null:(0,b.jsxs)(H.DropdownMenuItem,{onClick:e,"data-testid":"inbox-mark-unread",children:[(0,b.jsx)(E,{"aria-hidden":!0}),"Mark as unread"]}),(0,b.jsxs)(H.DropdownMenuItem,{"data-testid":"inbox-copy-message-id",onClick:()=>{navigator.clipboard.writeText(a).then(()=>{(0,n.showToast)({title:"Message id copied"})},()=>{(0,n.showToast)({title:"Couldn’t copy the message id",description:a,tone:"error"})})},children:[(0,b.jsx)(A.Copy,{"aria-hidden":!0}),"Copy message id"]}),(0,b.jsxs)(H.DropdownMenuItem,{render:(0,b.jsx)(G.default,{href:`/ships/${c}`}),"data-testid":"inbox-open-ship",children:[(0,b.jsx)(F.Ship,{"aria-hidden":!0}),"Open ",d]})]})]})}var J=a.i(97024),K=a.i(31429),L=a.i(41689),M=a.i(24173),N=a.i(40392),O=a.i(50808),P=a.i(80487),Q=a.i(76166),R=a.i(94777),S=a.i(48680);let T={name:"replace",size:24,node:[["path",{d:"M14 4a1 1 0 0 1 1-1",key:"dhj8ez"}],["path",{d:"M15 10a1 1 0 0 1-1-1",key:"1mnyi5"}],["path",{d:"M21 4a1 1 0 0 0-1-1",key:"sfs9ap"}],["path",{d:"M21 9a1 1 0 0 1-1 1",key:"mp6qeo"}],["path",{d:"m3 7 3 3 3-3",key:"x25e72"}],["path",{d:"M6 10V5a2 2 0 0 1 2-2h2",key:"15xut4"}],["rect",{x:"3",y:"14",width:"7",height:"7",rx:"1",key:"1bkyp8"}]]};T.node;let U=(0,C.default)(T);function V({entry:a,now:c}){let{question:d,stale:e}=a,f=d.options.find(({key:a})=>a===d.pick.option);if(null!==d.answer){let a=d.options.find(({key:a})=>a===d.answer?.option);return(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5 text-meta text-muted-foreground [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0",children:[(0,b.jsx)(J.CircleCheck,{"aria-hidden":!0}),(0,b.jsx)("span",{className:"truncate",children:void 0===a?"Answered with a note":`Answered: ${String(a.key)}. ${a.label}`})]})}return null!==e?(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5 text-meta text-muted-foreground [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0",children:["withdrawn"===e.kind?(0,b.jsx)(S.CircleSlash,{"aria-hidden":!0}):(0,b.jsx)(U,{"aria-hidden":!0}),(0,b.jsx)("span",{className:"truncate",children:"withdrawn"===e.kind?"Withdrawn":"Replaced"})]}):(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5 text-meta text-muted-foreground max-sm:text-body [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0",children:[(0,b.jsx)(J.CircleCheck,{"aria-hidden":!0}),(0,b.jsxs)("span",{className:"min-w-0 truncate",children:["Pick: ",(0,b.jsx)("span",{className:"font-medium text-foreground",children:void 0===f?String(d.pick.option):`${String(f.key)}. ${f.label}`})]}),(0,b.jsx)(Q.Badge,{variant:"outline",className:"ml-auto shrink-0 tabular-nums","data-testid":"inbox-row-waiting",children:(0,s.duration)(new Date(a.sentAt),c)})]})}function W({entry:a,isSelected:c,onSelect:d,now:e,isNested:f=!1}){let g=new Date(a.sentAt),h=null===a.readAt&&"acknowledged"!==a.state,i="question"===a.kind?a.question.title:a.text.headline;return(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button","data-testid":"question"===a.kind?"inbox-question-row":"inbox-row","data-delivery-id":a.deliveryId,"aria-current":c?"true":void 0,onClick:()=>{d(a.deliveryId)},className:(0,P.classNames)("relative flex w-full min-w-0 flex-col gap-1 border-b border-border py-3 pr-4 pl-7 text-left transition-colors duration-(--duration-fast) outline-none hover:bg-accent focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-ring aria-[current=true]:bg-accent max-sm:py-3.5",f?"pl-10":void 0),children:[h?(0,b.jsx)("span",{"aria-hidden":!0,className:(0,P.classNames)("absolute top-[1.15rem] size-2 rounded-full bg-primary",f?"left-5":"left-2.5")}):null,(0,b.jsxs)("span",{className:"flex min-w-0 items-baseline gap-2",children:[(0,b.jsx)("span",{className:(0,P.classNames)("min-w-0 truncate text-meta text-foreground max-sm:text-body",h?"font-medium":"text-muted-foreground"),children:a.sender.name}),(0,b.jsx)("time",{dateTime:a.sentAt,title:(0,s.fullDateTime)(g),className:"ml-auto shrink-0 text-meta text-muted-foreground tabular-nums",children:e.getTime()-g.getTime()<864e5?(0,s.clockTime)(g):(0,s.shortDateTime)(g)})]}),(0,b.jsx)("span",{className:(0,P.classNames)("line-clamp-2 text-body text-foreground [overflow-wrap:anywhere] max-sm:text-body-touch",h?"font-semibold":"font-medium","question"===a.kind&&null!==a.stale?"text-muted-foreground line-through":void 0),children:""===i?"No text":i}),"question"===a.kind?(0,b.jsx)(V,{entry:a,now:e}):""===a.text.summary?null:(0,b.jsx)("span",{className:"truncate text-meta text-muted-foreground max-sm:text-body",children:a.text.summary}),h?(0,b.jsx)("span",{className:"sr-only",children:"Unread"}):null]})})}var X=a.i(52562),Y=a.i(34532);function Z({messages:a,isExpanded:d,onToggle:e,selectedId:f,onSelect:g,onDoneAll:h,isPending:i=!1,now:j}){let[k]=a;if(void 0===k)return null;let l=[...new Set(a.map(({sender:a})=>a.name))].join(", "),n=new Date(k.sentAt);return(0,b.jsxs)("li",{"data-testid":"inbox-plugin-group",children:[(0,b.jsxs)("div",{className:"flex items-stretch border-b border-border",children:[(0,b.jsxs)("button",{type:"button","aria-expanded":d,"data-testid":"inbox-plugin-group-toggle",onClick:e,className:"flex min-w-0 grow items-start gap-2 py-3 pr-2 pl-7 text-left transition-colors duration-(--duration-fast) outline-none hover:bg-accent focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-ring",children:[(0,b.jsxs)("span",{className:"flex min-w-0 grow flex-col gap-1",children:[(0,b.jsxs)("span",{className:"flex min-w-0 items-baseline gap-2 text-meta text-muted-foreground max-sm:text-body",children:[(0,b.jsx)(Y.Server,{"aria-hidden":!0,className:"size-(--size-icon-sm) shrink-0 self-center"}),(0,b.jsx)("span",{className:"min-w-0 truncate",children:l}),(0,b.jsx)("time",{dateTime:k.sentAt,title:(0,s.fullDateTime)(n),className:"ml-auto shrink-0 tabular-nums",children:(0,s.clockTime)(n)})]}),(0,b.jsx)("span",{className:"text-body font-medium text-foreground max-sm:text-body-touch",children:(0,K.counted)(a.length,{one:"message from a plugin ship",many:"messages from plugin ships"})}),d?null:(0,b.jsx)("span",{className:"line-clamp-2 text-meta text-muted-foreground max-sm:text-body",children:a.map(({text:a})=>a.headline).join(" · ")})]}),(0,b.jsx)(c.ChevronDown,{"aria-hidden":!0,className:(0,P.classNames)("mt-5 size-(--size-icon) shrink-0 text-muted-foreground transition-transform",d?"rotate-180":void 0)})]}),d&&void 0!==h?(0,b.jsx)("span",{className:"flex shrink-0 items-start py-3 pr-3",children:(0,b.jsx)(m.Button,{size:"sm",icon:(0,b.jsx)(X.Check,{"aria-hidden":!0}),isLoading:i,onClick:h,"data-testid":"inbox-plugin-group-done",children:"Done"})}):null]}),d?(0,b.jsx)("ul",{"aria-label":"Messages from plugin ships",children:a.map(a=>(0,b.jsx)(W,{entry:a,isSelected:a.deliveryId===f,onSelect:g,now:j,isNested:!0},a.deliveryId))}):null]})}let $=[{value:"open",label:"Open",isDesktopOnly:!1},{value:"done",label:"Done",isDesktopOnly:!1},{value:"all",label:"All",isDesktopOnly:!0}];function _({segment:a,onSegmentChange:c,counts:d}){return(0,b.jsx)(R.Tabs,{value:a,onValueChange:a=>{let b=$.find(b=>b.value===a);b&&c(b.value)},children:(0,b.jsx)(R.TabsList,{"aria-label":"Show",className:"w-full",children:$.map(({value:a,label:c,isDesktopOnly:e})=>(0,b.jsxs)(R.TabsTrigger,{value:a,"data-testid":`inbox-filter-${a}`,className:(0,P.classNames)("grow",e?"max-sm:hidden":void 0),children:[c,void 0===d[a]||"open"!==a&&0===d[a]?null:(0,b.jsx)(R.TabsCount,{children:d[a]})]},a))})})}function aa({title:a,count:c,isPrimary:d,meta:e}){return(0,b.jsxs)("h2",{className:"flex items-center gap-2 px-4 pt-4 pb-2 text-meta font-semibold text-foreground max-sm:px-1 max-sm:text-body-touch",children:[a,(0,b.jsx)(Q.Badge,{variant:d?"count":"count-neutral",children:c}),void 0===e?null:(0,b.jsx)("span",{className:"ml-auto font-normal text-muted-foreground",children:e})]})}function ab({view:a,segment:c,onSegmentChange:d,counts:e,waiting:f,selectedId:g,onSelect:h,isPluginGroupExpanded:i,onTogglePluginGroup:j,onPluginGroupDone:k,isPluginGroupPending:l,now:m}){let n;return(0,b.jsxs)("div",{"data-slot":"inbox-list",className:"flex flex-col",children:[(0,b.jsx)("div",{className:"p-2.5 max-sm:p-0 max-sm:pb-1",children:(0,b.jsx)(_,{segment:c,onSegmentChange:d,counts:e})}),0===a.questions.length?null:(0,b.jsxs)("section",{"aria-label":"Questions","data-testid":"inbox-questions",children:[(0,b.jsx)(aa,{title:"Questions",count:a.questions.length,isPrimary:"open"===c,meta:"open"===c&&void 0!==f?`Oldest waits ${f}`:void 0}),(n=a.questions,(0,b.jsx)("ul",{"aria-label":"Questions to argo",className:"max-sm:overflow-hidden max-sm:rounded-lg max-sm:border max-sm:border-border max-sm:bg-card",children:n.map(a=>(0,b.jsx)(W,{entry:a,isSelected:a.deliveryId===g,onSelect:h,now:m},a.deliveryId))}))]}),a.messages.length+a.pluginMessages.length===0?null:(0,b.jsxs)("section",{"aria-label":"Messages","data-testid":"inbox-messages",children:[(0,b.jsx)(aa,{title:"Messages",count:a.messages.length+a.pluginMessages.length,isPrimary:!1}),(0,b.jsxs)("ul",{"aria-label":"Messages to argo",className:"max-sm:overflow-hidden max-sm:rounded-lg max-sm:border max-sm:border-border max-sm:bg-card",children:[a.messages.map(a=>(0,b.jsx)(W,{entry:a,isSelected:a.deliveryId===g,onSelect:h,now:m},a.deliveryId)),(0,b.jsx)(Z,{messages:a.pluginMessages,isExpanded:i,onToggle:j,selectedId:g,onSelect:h,onDoneAll:k,isPending:l,now:m})]})]})]})}let ac={name:"external-link",size:24,node:[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]};ac.node;let ad=(0,C.default)(ac),ae={name:"git-pull-request",size:24,node:[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["line",{x1:"6",x2:"6",y1:"9",y2:"21",key:"rroup"}]]};ae.node;let af=(0,C.default)(ae);var ag=a.i(74746);let ah={name:"circle-dot",size:24,node:[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]};ah.node;let ai=(0,C.default)(ah);var aj=a.i(58856),ak=a.i(72309),al=a.i(27530),am=a.i(90468);function an({inline:a}){switch(a.kind){case"text":return a.text;case"strong":return(0,b.jsx)("strong",{className:"font-semibold",children:a.children.map((a,c)=>(0,b.jsx)(an,{inline:a},`${String(c)}-${a.kind}`))});case"emphasis":return(0,b.jsx)("em",{children:a.children.map((a,c)=>(0,b.jsx)(an,{inline:a},`${String(c)}-${a.kind}`))});case"delete":return(0,b.jsx)("del",{children:a.children.map((a,c)=>(0,b.jsx)(an,{inline:a},`${String(c)}-${a.kind}`))});case"code":return(0,b.jsx)("code",{className:"rounded-sm bg-muted px-1 font-mono text-code",children:a.text});case"link":return(0,b.jsx)("a",{href:a.url,target:"_blank",rel:"noreferrer noopener",className:"font-medium text-foreground underline underline-offset-2 [overflow-wrap:anywhere] hover:text-primary focus-visible:outline-2 focus-visible:outline-ring",children:a.children.map((a,c)=>(0,b.jsx)(an,{inline:a},`${String(c)}-${a.kind}`))});case"break":return(0,b.jsx)("br",{})}}function ao({inlines:a}){return a.map((a,c)=>(0,b.jsx)(an,{inline:a},`${String(c)}-${a.kind}`))}function ap({block:a}){switch(a.kind){case"paragraph":return(0,b.jsx)("p",{children:(0,b.jsx)(ao,{inlines:a.children})});case"heading":return(0,b.jsx)("p",{className:"font-semibold",children:(0,b.jsx)(ao,{inlines:a.children})});case"list":{let c=a.isOrdered?"ol":"ul";return(0,b.jsx)(c,{start:a.start??void 0,className:(0,P.classNames)("flex flex-col gap-1 pl-5",a.isOrdered?"list-decimal":"list-disc"),children:a.items.map((a,c)=>(0,b.jsx)("li",{className:"[&>p]:inline",children:(0,b.jsx)(aq,{blocks:a})},`${String(c)}-${String(a.length)}`))})}case"code":return(0,b.jsx)("pre",{className:"overflow-x-auto rounded-md border border-border bg-muted px-3 py-2 font-mono text-code whitespace-pre",children:a.text});case"quote":return(0,b.jsx)("blockquote",{className:"border-l-2 border-border pl-3 text-muted-foreground",children:(0,b.jsx)(aq,{blocks:a.children})});case"table":return(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsx)("table",{className:"text-meta",children:(0,b.jsx)("tbody",{children:a.rows.map((a,c)=>(0,b.jsx)("tr",{className:"border-b border-border",children:a.map((a,c)=>(0,b.jsx)("td",{className:"px-2 py-1 align-top",children:(0,b.jsx)(ao,{inlines:a})},`${String(c)}-${String(a.length)}`))},`${String(c)}-${String(a.length)}`))})})});case"rule":return(0,b.jsx)("hr",{className:"border-border"})}}function aq({blocks:a}){return a.map((a,c)=>(0,b.jsx)(ap,{block:a},`${String(c)}-${a.kind}`))}function ar({blocks:a,lineCount:c,className:d}){let f=c>12,[g,h]=(0,e.useState)(!1);if(0===a.length)return null;let i=f&&!g;return(0,b.jsxs)("div",{className:(0,P.classNames)("flex flex-col gap-2",d),children:[(0,b.jsx)("div",{"data-testid":"inbox-message-body","data-folded":i?"true":void 0,className:(0,P.classNames)("flex flex-col gap-3 text-body text-foreground [overflow-wrap:anywhere] max-sm:text-body-touch",i?"max-h-72 overflow-hidden [mask-image:linear-gradient(to_bottom,black_70%,transparent)]":void 0),children:(0,b.jsx)(aq,{blocks:a})}),i?(0,b.jsxs)(m.Button,{variant:"ghost",size:"sm",className:"self-start","data-testid":"inbox-show-all",onClick:()=>{h(!0)},children:["Show all ",c," lines"]}):null]})}function as({link:a}){return(0,b.jsxs)("a",{href:a.url,target:"_blank",rel:"noreferrer noopener","data-testid":"inbox-link-row",className:"flex max-w-md items-center gap-3 rounded-lg border border-border bg-card px-3.5 py-2.5 transition-colors hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring",children:["pull"===a.kind?(0,b.jsx)(af,{"aria-hidden":!0,className:"size-(--size-icon) shrink-0"}):(0,b.jsx)(ai,{"aria-hidden":!0,className:"size-(--size-icon) shrink-0"}),(0,b.jsxs)("span",{className:"flex min-w-0 grow flex-col",children:[(0,b.jsx)("span",{className:"text-meta font-medium text-foreground",children:"pull"===a.kind?"Pull request":"Issue"}),(0,b.jsxs)("span",{className:"truncate font-mono text-id text-muted-foreground",children:[a.repository," #",a.number]})]}),(0,b.jsx)(ad,{"aria-hidden":!0,className:"size-(--size-icon-sm) shrink-0 text-muted-foreground"})]})}function at({name:a,isArgo:c,sentAt:d,children:e}){let f=new Date(d);return(0,b.jsxs)("li",{"data-testid":"inbox-thread-message",className:(0,P.classNames)("flex flex-col gap-1 rounded-lg border px-3.5 py-2.5",c?"ml-10 border-transparent bg-muted max-sm:ml-8":"mr-10 border-border bg-card max-sm:mr-0"),children:[(0,b.jsxs)("p",{className:"text-meta text-muted-foreground",children:[(0,b.jsx)("span",{className:"font-medium text-foreground",children:c?"argo (you)":a})," ·"," ",(0,b.jsx)("time",{dateTime:d,title:(0,s.fullDateTime)(f),children:(0,s.shortDateTime)(f)})]}),e]})}function au({thread:a,message:c}){return(void 0===a||0===a.length)&&0===c.replies.length?null:(0,b.jsxs)("section",{"aria-label":"In this thread",className:"flex max-w-xl flex-col gap-2",children:[void 0===a||0===a.length?null:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("h2",{className:"text-meta text-muted-foreground",children:"In this thread"}),(0,b.jsx)("ul",{className:"flex flex-col gap-2",children:a.map(a=>(0,b.jsxs)(at,{name:a.sender.name,isArgo:a.isArgo,sentAt:a.sentAt,children:[(0,b.jsx)("p",{className:"text-body font-medium text-foreground [overflow-wrap:anywhere]",children:a.text.headline}),(0,b.jsx)(ar,{blocks:a.text.body,lineCount:a.text.lineCount})]},a.id))})]}),0===c.replies.length?null:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("h2",{className:"text-meta text-muted-foreground",children:"Your replies"}),(0,b.jsx)("ul",{className:"flex flex-col gap-2",children:c.replies.map(a=>(0,b.jsxs)(at,{name:"argo",isArgo:!0,sentAt:a.sentAt,children:[(0,b.jsx)("p",{className:"text-body text-foreground [overflow-wrap:anywhere]",children:a.text.headline}),(0,b.jsx)(ar,{blocks:a.text.body,lineCount:a.text.lineCount})]},a.id))})]})]})}function av({message:a}){if(null===a.doneAt)return null;let c=new Date(a.doneAt);return(0,b.jsxs)("p",{"data-testid":"inbox-done-notice",className:"flex items-center gap-2 rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-meta text-tone-ok-fg [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0",children:[(0,b.jsx)(J.CircleCheck,{"aria-hidden":!0}),"Done at"," ",(0,b.jsx)("time",{dateTime:a.doneAt,title:(0,s.fullDateTime)(c),children:(0,s.clockTime)(c)}),null===a.repliedWith?".":", when you replied."]})}function aw({message:a,onReply:c,onMarkDone:d,isPending:f,isPhone:g}){let[h,i]=(0,e.useState)(""),j=(0,aj.useShortcutPlatform)(),k="acknowledged"===a.state,l=""!==h.trim(),n=a.sender.name;return(0,b.jsxs)("form",{"data-testid":"inbox-action-bar",className:"flex items-end gap-2 border-t border-border bg-background px-5 py-3 max-sm:px-4 max-sm:pb-[calc(env(safe-area-inset-bottom)+var(--spacing)*3)]",onSubmit:a=>{a.preventDefault(),l&&!f&&c(h)},children:[(0,b.jsx)(ak.Textarea,{"data-reply-field":!0,rows:l?3:1,size:g?"touch":"md","aria-label":`Reply to ${n}`,placeholder:`Reply to ${n}`,value:h,onChange:a=>{i(a.target.value)},onKeyDown:aj.submitOnSendShortcut,"data-testid":"inbox-reply"}),l||k?(0,b.jsxs)(m.Button,{type:"submit",variant:"primary",size:g?"touch":"md",icon:(0,b.jsx)(ag.Send,{"aria-hidden":!0}),isLoading:f,disabled:!l&&!f,"aria-keyshortcuts":null===j?void 0:(0,aj.sendShortcutAria)(j),"data-testid":"inbox-reply-send",children:["Send reply",null===j||g?null:(0,b.jsx)(al.SendShortcutHint,{platform:j})]}):(0,b.jsxs)(m.Button,{type:"button",variant:"primary",size:g?"touch":"md",icon:(0,b.jsx)(X.Check,{"aria-hidden":!0}),isLoading:f,"aria-keyshortcuts":"E","data-testid":"inbox-mark-done",onClick:d,children:["Done",g?null:(0,b.jsx)(L.Kbd,{"aria-hidden":!0,className:"border-primary-foreground/25 bg-primary-foreground/10 text-primary-foreground",children:"E"})]})]})}function ax({message:a,thread:c,isPhone:d,onReply:e,onMarkDone:f,onMarkUnread:g,isPending:h,isReadOnly:i=!1}){let j=new Date(a.sentAt),{sender:k,text:l}=a,n="acknowledged"===a.state;return(0,b.jsxs)("article",{"aria-label":""===l.headline?`Message from ${k.name}`:l.headline,"data-testid":"inbox-message",className:"flex min-h-0 grow flex-col",children:[d?null:(0,b.jsxs)("div",{className:"flex items-center gap-2 border-b border-border px-5 py-2.5",children:[(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"Message"}),(0,b.jsxs)("span",{className:"ml-auto flex items-center gap-1",children:[n||i?null:(0,b.jsx)(m.Button,{variant:"ghost",size:"sm",disabled:h,onClick:g,"data-testid":"inbox-mark-unread",children:"Mark as unread"}),(0,b.jsx)(I,{messageId:a.messageId,shipId:k.id,shipName:k.name,size:"sm"})]})]}),(0,b.jsxs)("div",{className:"flex min-h-0 grow flex-col gap-5 overflow-y-auto px-5 py-5 max-sm:px-0 max-sm:py-3.5",children:[(0,b.jsxs)("header",{className:"flex flex-col gap-1.5",children:[a.isFromPlugin?(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"inline-flex size-7 items-center justify-center rounded-md bg-muted",children:(0,b.jsx)(Y.Server,{"aria-hidden":!0,className:"size-(--size-icon-sm)"})}),null===k.type?null:(0,b.jsx)(Q.Badge,{variant:"outline",children:k.type})]}):null,(0,b.jsx)("h2",{className:"text-heading font-semibold [overflow-wrap:anywhere] max-sm:text-title-touch",children:""===l.headline?"No text":l.headline}),(0,b.jsxs)("p",{className:"flex flex-wrap items-center gap-1 text-meta text-muted-foreground",children:[(0,b.jsx)(am.ShipName,{name:k.name,shipId:k.id,isSuffixShown:k.isNameShared,size:"meta",className:"[&>span:first-child]:text-foreground"}),(0,b.jsx)("span",{"aria-hidden":!0,children:"·"}),(0,b.jsx)("time",{dateTime:a.sentAt,title:(0,s.fullDateTime)(j),children:(0,s.shortDateTime)(j)}),null===a.model?null:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{"aria-hidden":!0,children:"·"}),(0,b.jsx)("span",{className:"font-mono text-id",children:a.model})]})]})]}),(0,b.jsx)(av,{message:a}),(0,b.jsx)(ar,{blocks:l.body,lineCount:l.lineCount}),0===l.links.length?null:(0,b.jsx)("div",{className:"flex flex-col gap-2",children:l.links.map(a=>(0,b.jsx)(as,{link:a},a.url))}),(0,b.jsx)(au,{thread:c,message:a})]}),i?(0,b.jsx)("p",{"data-testid":"inbox-read-only",className:"border-t border-border px-5 py-3 text-meta text-muted-foreground",children:"Read-only: you see argo’s inbox, and can’t reply or mark messages done."}):(0,b.jsx)("div",{className:d?"sticky bottom-0 -mx-4":void 0,children:(0,b.jsx)(aw,{message:a,onReply:e,onMarkDone:f,isPending:h,isPhone:d},`${a.deliveryId}-${a.state}`)})]})}var ay=a.i(41146),az=a.i(4803),az=az,aA=a.i(90629),aB=a.i(75297),aC=a.i(45098);a.s([],4434),a.i(4434);var aD=a.i(1811),aE=a.i(57738),aF=a.i(62824),aG=a.i(24715),aH=a.i(94552),aI=a.i(7436),aJ=a.i(7393),aK=a.i(27576);let aL={checked:a=>a?{"data-checked":""}:{"data-unchecked":""},...aJ.transitionStatusMapping,...aK.fieldValidityMapping};var aM=a.i(85933),aN=a.i(557),aO=a.i(26184),aP=a.i(21436),aQ=a.i(79587),aR=a.i(96511),aS=a.i(1230),aT=a.i(32362),aU=a.i(77260),aV=a.i(46919),aW=a.i(69476);let aX=e.createContext(void 0);var aY=a.i(76224),aZ=a.i(54662);let a$=e.createContext(void 0),a_=e.forwardRef(function(a,c){let{render:d,className:f,disabled:g=!1,readOnly:h=!1,required:i=!1,"aria-labelledby":j,value:k,inputRef:l,nativeButton:m=!1,id:n,style:o,...p}=a,q=e.useContext(aX),{disabled:r,readOnly:s,required:t,form:u,checkedValue:v,touched:w=!1,validation:x,name:y,setCheckedValue:z=aG.NOOP,setTouched:A=aG.NOOP,registerInputRef:B=aG.NOOP}=q??{},{setTouched:C,setFilled:D,state:E,disabled:F}=(0,aS.useFieldRootContext)(),G=(0,aT.useFieldItemContext)(),{labelId:H,getDescriptionProps:I}=(0,aU.useLabelableContext)(),J=F||G.disabled||r||g,K=s||h,L=t||i,M=q?v===k:""===k,N=e.useRef(null),O=e.useRef(null),P=x?.registerInput,Q=e.useCallback(a=>P?.(a,{controlRef:N,value:void 0}),[P]),R=(0,aD.useMergedRefs)(l,O,B,Q);(0,aE.useIsoLayoutEffect)(()=>{O.current?.checked&&D(!0)},[D]),(0,aE.useIsoLayoutEffect)(()=>{if(O.current){if(J&&M)return void B(null);B(O.current)}},[M,J,B]);let S=(0,aN.useBaseUiId)(),T=(0,aW.useLabelableId)({id:n}),U=m?void 0:T,V={role:"radio","aria-checked":M,"aria-labelledby":(0,aV.useAriaLabelledBy)(j,H,O,!m,U),[aQ.ACTIVE_COMPOSITE_ITEM]:M?"":void 0,id:m?T:S,onKeyDown(a){"Enter"===a.key&&a.preventDefault()},onClick(a){if(a.defaultPrevented||J||K)return;a.preventDefault();let b=O.current;b&&(0,aM.dispatchClickWithModifiers)(b,a)},onFocus(a){a.defaultPrevented||J||K||!w||(O.current?.click(),A(!1))}},{getButtonProps:W,buttonRef:X}=(0,aP.useButton)({disabled:J,native:m,composite:!1}),Y={type:"radio",ref:R,form:u,id:U,name:y,tabIndex:-1,style:y?aF.visuallyHiddenInput:aF.visuallyHidden,"aria-hidden":!0,...void 0!==k?{value:(0,aY.serializeValue)(k)}:aG.EMPTY_OBJECT,disabled:J,checked:M,required:L,readOnly:K,onChange(a){if(a.nativeEvent.defaultPrevented||J||K||void 0===k)return;let b=(0,aH.createChangeEventDetails)(aI.REASONS.none,a.nativeEvent);z(k,b),b.isCanceled||C(!0)},onClick(a){a.stopPropagation()},onFocus(){N.current?.focus()}},Z=e.useMemo(()=>({...E,required:L,disabled:J,readOnly:K,checked:M}),[E,J,K,M,L]),$=void 0!==q,_=[c,N,X],aa=[V,p,W,I,x?a=>x.getValidationProps(J,a):aG.EMPTY_OBJECT],ab=(0,aO.useRenderElement)("span",a,{enabled:!$,state:Z,ref:_,props:aa,stateAttributesMapping:aL});return(0,b.jsxs)(a$.Provider,{value:Z,children:[$?(0,b.jsx)(aR.CompositeItem,{tag:"span",render:d,className:f,style:o,state:Z,refs:_,props:aa,stateAttributesMapping:aL}):ab,(0,b.jsx)("input",{...Y,suppressHydrationWarning:!0})]})});var a0=a.i(5687),a1=a.i(48250);let a2=e.forwardRef(function(a,b){let{render:c,className:d,style:f,keepMounted:g=!1,...h}=a,i=function(){let a=e.useContext(a$);if(void 0===a)throw Error((0,aZ.default)(52));return a}(),j=i.checked,{mounted:k,transitionStatus:l,setMounted:m}=(0,a1.useTransitionStatus)(j),n={...i,transitionStatus:l},o=e.useRef(null),p=(0,aO.useRenderElement)("span",a,{ref:[b,o],state:n,props:h,stateAttributesMapping:aL});return((0,a0.useOpenChangeComplete)({batch:!0,enabled:!j,open:j,ref:o,onComplete(){j||m(!1)}}),g||k)?p:null});a.s(["Indicator",0,a2,"Root",0,a_],42851);var a3=a.i(42851),a3=a3,a4=a.i(50381),a5=a.i(54401),a6=a.i(30116),a7=a.i(69649),a8=a.i(1548),a9=a.i(58589),ba=a.i(17326),bb=a.i(71154),bc=a.i(41302),bd=a.i(64072);let be=[a7.SHIFT],bf=e.forwardRef(function(a,c){let{render:d,className:f,disabled:g,readOnly:h,required:i,onValueChange:j,value:k,defaultValue:l,form:m,name:n,inputRef:o,id:p,style:q,...r}=a,{setTouched:s,setFocused:t,validationMode:u,name:v,disabled:w,state:x,validation:y,setDirty:z,setFilled:A,validityData:B}=(0,aS.useFieldRootContext)(),{labelId:C}=(0,aU.useLabelableContext)(),{clearErrors:D,elementRef:E}=(0,bc.useFormContext)(),F=(0,bb.useFieldsetRootContext)(!0),G=w||g,H=v??n,I=(0,aN.useBaseUiId)(p),[J,K]=(0,a4.useControlled)({controlled:k,default:l,name:"RadioGroup",state:"value"}),[L,M]=e.useState(!1),N=(0,a5.useStableCallback)((a,b)=>{j?.(a,b),b.isCanceled||K(a)}),O=y.getInputControl,P=e.useMemo(()=>({get current(){return O()}}),[O]),Q=e.useRef(null),R=e.useRef(null);function S(a){let b;return o&&("function"==typeof o?b=o(a):o.current=a),Q.current=a,b}let T=(0,a5.useStableCallback)(a=>{if(!a||a.disabled)return;R.current||(R.current=a);let b=Q.current,c=a.checked||null==b||b.disabled?S(a):void 0;return()=>{R.current===a&&(R.current=null),Q.current===a?c?(c(),Q.current=null):S(null):c?.()}}),U=(0,a5.useStableCallback)(()=>{let a=E.current;if(!a)return J??null;for(let b of y.registeredInputs.keys())if(b.checked&&(0,ba.isEligibleInput)(b,a))return J??null;return null});(0,a9.useRegisterFieldControl)(P,I,J??null,U,!G,n),(0,bd.useValueChanged)(J,()=>{D(H),z(J!==B.initialValue),A(null!=J),y.change(J);let a=R.current;null==J&&a&&!a.disabled&&S(a)});let V=C??F?.legendId,W={...x,disabled:G??!1,required:i??!1,readOnly:h??!1},X=e.useMemo(()=>({checkedValue:J,disabled:G,form:m,validation:y,name:H,readOnly:h,registerInputRef:T,required:i,setCheckedValue:N,setTouched:M,touched:L}),[J,G,m,y,H,h,T,i,N,M,L]);return(0,b.jsx)(aX.Provider,{value:X,children:(0,b.jsx)(a8.CompositeRoot,{render:d,className:f,style:q,state:W,props:[{id:p,role:"radiogroup","aria-required":i||void 0,"aria-disabled":G||void 0,"aria-readonly":h||void 0,"aria-labelledby":V,onFocus(){t(!0)},onBlur(a){(0,a6.contains)(a.currentTarget,a.relatedTarget)||(s(!0),t(!1),"onBlur"===u&&y.commit(J))},onKeyDownCapture(a){a.key.startsWith("Arrow")&&(M(!0),t(!0))}},r,a=>y.getValidationProps(G??!1,a)],refs:[c],stateAttributesMapping:aK.fieldValidityMapping,enableHomeAndEndKeys:!1,modifierKeys:be})})});function bg({className:a,...c}){return(0,b.jsx)(bf,{"data-slot":"radio-group",className:(0,P.classNames)("flex flex-col gap-2",a),...c})}function bh({className:a,...c}){return(0,b.jsx)(a3.Root,{"data-slot":"radio-group-item",className:(0,P.classNames)("inline-flex size-4 shrink-0 items-center justify-center rounded-full border border-input bg-background transition-colors duration-(--duration-fast) outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring data-checked:border-primary data-disabled:opacity-45",a),...c,children:(0,b.jsx)(a3.Indicator,{"data-slot":"radio-group-indicator",className:"size-2 rounded-full bg-primary"})})}function bi({deliveryId:a,title:c,onSelect:d,testId:e}){return(0,b.jsx)("button",{type:"button","data-testid":e,onClick:()=>{d(a)},className:"min-w-0 text-left font-medium text-foreground underline underline-offset-2 [overflow-wrap:anywhere] hover:text-primary focus-visible:outline-2 focus-visible:outline-ring",children:c})}function bj({question:a}){let{answer:c,options:d}=a.question;if(null===c)return null;let e=new Date(c.sentAt),f=d.find(({key:a})=>a===c.option);return(0,b.jsxs)("div",{"data-testid":"inbox-answered",className:"flex flex-col gap-1 rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-meta text-tone-ok-fg max-sm:text-body",children:[(0,b.jsxs)("p",{className:"flex items-start gap-2 [&_svg]:mt-0.5 [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0",children:[(0,b.jsx)(J.CircleCheck,{"aria-hidden":!0}),(0,b.jsxs)("span",{children:["You answered ",void 0===f?"with a note":(0,b.jsx)("span",{className:"font-semibold",children:`${String(f.key)}. ${f.label}`})," at"," ",(0,b.jsx)("time",{dateTime:c.sentAt,title:(0,s.fullDateTime)(e),children:(0,s.clockTime)(e)}),". ",a.sender.name," receives it as a reply."]})]}),null===c.note?null:(0,b.jsx)("p",{className:"pl-6 whitespace-pre-wrap [overflow-wrap:anywhere]",children:c.note})]})}function bk({question:a,onSelect:c}){let{stale:d}=a;if(null===d)return null;let e=new Date(d.sentAt);return(0,b.jsxs)("div",{role:"status","data-testid":"inbox-stale",className:"flex flex-col gap-1 rounded-md border border-tone-ended-border bg-tone-ended-bg px-3 py-2 text-meta text-tone-ended-fg",children:[(0,b.jsxs)("p",{className:"flex items-center gap-2 [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0",children:["withdrawn"===d.kind?(0,b.jsx)(S.CircleSlash,{"aria-hidden":!0}):(0,b.jsx)(U,{"aria-hidden":!0}),(0,b.jsxs)("span",{children:["withdrawn"===d.kind?"Withdrawn":"Replaced"," by ",a.sender.name," at"," ",(0,b.jsx)("time",{dateTime:d.sentAt,title:(0,s.fullDateTime)(e),children:(0,s.clockTime)(e)}),". It can’t be answered."]})]}),"replaced"===d.kind?(0,b.jsxs)("p",{className:"flex flex-wrap items-baseline gap-1",children:["Answer the new question: ",(0,b.jsx)(bi,{deliveryId:d.deliveryId,title:d.by.title,onSelect:c,testId:"inbox-replacement"})]}):null]})}function bl({option:a,question:c,isChosen:d}){let{pick:e}=c.question,f=a.key===e.option;return(0,b.jsxs)("span",{className:"flex min-w-0 flex-col gap-0.5",children:[(0,b.jsxs)("span",{className:"flex flex-wrap items-center gap-2 text-body font-medium text-foreground max-sm:text-body-touch",children:[a.label,f?(0,b.jsxs)(Q.Badge,{variant:"outline",children:[c.sender.name,"’s pick"]}):null]}),""===a.detail?null:(0,b.jsx)("span",{className:"text-meta text-muted-foreground max-sm:text-body",children:a.detail}),f&&d?(0,b.jsxs)("span",{className:"mt-1.5 rounded-md bg-muted px-3 py-2 text-meta text-foreground max-sm:text-body",children:[(0,b.jsx)("span",{className:"font-semibold",children:"Why:"})," ",e.why]}):null]})}let bm="flex items-start gap-3 rounded-lg border px-4 py-3.5";function bn({question:a}){let{options:c,answer:d}=a.question;return(0,b.jsx)("ol",{"aria-label":"Options",className:"flex flex-col gap-2",children:c.map(c=>{let e=d?.option===c.key;return(0,b.jsx)("li",{"data-testid":`inbox-option-${String(c.key)}`,className:(0,P.classNames)(bm,e?"border-2 border-primary bg-card":"border-border bg-card"),children:(0,b.jsx)(bl,{option:c,question:a,isChosen:e})},c.key)})})}function bo({question:a,isPhone:c,onAnswer:d,isPending:f}){let g=(0,e.useId)(),h=`${g}-note`,{options:i,pick:j}=a.question,[k,l]=(0,e.useState)(j.option),[n,o]=(0,e.useState)(""),[p,q]=(0,e.useState)(!c),r=(0,aj.useShortcutPlatform)(),s=a.sender.name,t=n.trim(),u=i.find(({key:a})=>a===k),v=function({option:a,hasNote:b}){return void 0===a?b?"Send note":void 0:b?`Answer: ${a}, with note`:`Answer: ${a}`}({option:u?.label,hasNote:""!==t});return(0,b.jsxs)("form",{className:"flex min-h-0 grow flex-col",onSubmit:a=>{a.preventDefault(),void 0===v||f||d(void 0===k?{note:t}:{option:k,...""===t?{}:{note:t}})},children:[(0,b.jsxs)("div",{className:"flex flex-col gap-4 px-5 pb-5 max-sm:px-0",children:[(0,b.jsx)(bg,{"aria-label":"Options",value:k??0,onValueChange:a=>{l(a)},onClickCapture:a=>{let b=a.target instanceof Element?a.target.closest("[data-option-key]")?.getAttribute("data-option-key"):void 0;null!=b&&Number(b)===k&&(a.preventDefault(),a.stopPropagation(),l(void 0))},className:"flex flex-col gap-2",children:i.map(c=>{let d=`${g}-option-${String(c.key)}`,e=c.key===k;return(0,b.jsxs)("div",{"data-testid":`inbox-option-${String(c.key)}`,"data-option-key":c.key,className:(0,P.classNames)(bm,"bg-card",e?"border-2 border-primary":"border-border"),children:[(0,b.jsx)(bh,{id:d,value:c.key,className:"mt-0.5"}),(0,b.jsx)("label",{htmlFor:d,className:"min-w-0 grow cursor-pointer",children:(0,b.jsx)(bl,{option:c,question:a,isChosen:e})})]},c.key)})}),c&&p?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsxs)(aC.Label,{htmlFor:h,children:["Note to ",s]}),(0,b.jsx)(ak.Textarea,{id:h,rows:3,size:"touch",value:n,onChange:a=>{o(a.target.value)},"data-testid":"inbox-note"}),(0,b.jsx)("p",{className:"text-body text-muted-foreground",children:"Optional with an option. On its own, it asks for more context or says none fits."})]}):null]}),(0,b.jsxs)("div",{className:"mt-auto flex items-center gap-2 border-t border-border bg-background px-5 py-3 max-sm:sticky max-sm:bottom-0 max-sm:-mx-4 max-sm:px-4 max-sm:pb-[calc(env(safe-area-inset-bottom)+var(--spacing)*3)]",children:[c?p?null:(0,b.jsx)(m.Button,{type:"button",variant:"ghost",size:"touch",icon:(0,b.jsx)(aA.Pencil,{"aria-hidden":!0}),"data-testid":"inbox-add-note",onClick:()=>{q(!0)},children:"Add a note"}):(0,b.jsx)(aB.Input,{id:h,"aria-label":`Note to ${s}`,placeholder:`Add a note to ${s} (optional)`,value:n,onChange:a=>{o(a.target.value)},onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),(0,aj.isSendShortcut)(a.nativeEvent)&&a.currentTarget.form?.requestSubmit())},className:"grow","data-testid":"inbox-note"}),(0,b.jsxs)(m.Button,{type:"submit",variant:"primary",size:c?"touch":"md",icon:(0,b.jsx)(ag.Send,{"aria-hidden":!0}),isLoading:f,disabled:void 0===v&&!f,"aria-keyshortcuts":null===r?void 0:(0,aj.sendShortcutAria)(r),className:c?"grow":void 0,"data-testid":"inbox-answer",children:[v??"Pick an option or write a note",null===r||c?null:(0,b.jsx)(al.SendShortcutHint,{platform:r})]})]})]})}function bp({position:a,onSelect:c,isPhone:d}){let{next:e}=a;return void 0===e?null:(0,b.jsxs)("div",{className:"mt-auto flex flex-col items-stretch gap-2 border-t border-border bg-background px-5 py-3 max-sm:sticky max-sm:bottom-0 max-sm:-mx-4 max-sm:px-4 max-sm:pb-[calc(env(safe-area-inset-bottom)+var(--spacing)*3)] sm:flex-row sm:items-center sm:justify-end",children:[(0,b.jsx)("p",{className:"text-center text-meta text-muted-foreground max-sm:text-body",children:(0,K.counted)(a.left,{one:"question left",many:"questions left"})}),(0,b.jsxs)(m.Button,{variant:"primary",size:d?"touch":"md","data-testid":"inbox-next-question",onClick:()=>{c(e)},children:["Next question",(0,b.jsx)(ay.ChevronRight,{"aria-hidden":!0})]})]})}function bq({question:a,position:c,isPhone:d,onAnswer:e,onSelect:f,isPending:g,now:h,isReadOnly:i=!1}){let j=new Date(a.sentAt),{title:k,context:l,answer:m}=a.question,n=null===m&&null===a.stale;return(0,b.jsxs)("article",{"aria-label":k,"data-testid":"inbox-question",className:"flex min-h-0 grow flex-col",children:[(0,b.jsxs)("div",{className:(0,P.classNames)("flex min-h-0 grow flex-col overflow-y-auto",d?void 0:"pt-5"),children:[(0,b.jsxs)("div",{className:"flex flex-col gap-4 px-5 pb-5 max-sm:px-0 max-sm:pt-3.5",children:[(0,b.jsx)(bj,{question:a}),(0,b.jsx)(bk,{question:a,onSelect:f}),(0,b.jsxs)("header",{className:"flex flex-col gap-1.5",children:[n?(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsxs)(Q.Badge,{variant:"outline",className:"gap-1",children:[(0,b.jsx)(az.default,{"aria-hidden":!0,className:"size-(--size-icon-sm)"}),"Question"]}),(0,b.jsxs)("span",{className:"text-meta text-muted-foreground",children:["waiting ",(0,s.duration)(j,h)]})]}):null,(0,b.jsx)("h2",{className:"text-heading font-semibold [overflow-wrap:anywhere] max-sm:text-title-touch",children:k}),(0,b.jsxs)("p",{className:"flex flex-wrap items-center gap-1 text-meta text-muted-foreground",children:[(0,b.jsx)(am.ShipName,{name:a.sender.name,shipId:a.sender.id,isSuffixShown:a.sender.isNameShared,size:"meta",className:"[&>span:first-child]:text-foreground"}),"asks ·"," ",(0,b.jsx)("time",{dateTime:a.sentAt,title:(0,s.fullDateTime)(j),children:(0,s.shortDateTime)(j)})]}),null===a.replaces?null:(0,b.jsxs)("p",{className:"flex flex-wrap items-baseline gap-1 text-meta text-muted-foreground",children:["Replaces ",(0,b.jsx)(bi,{deliveryId:a.replaces.deliveryId,title:a.replaces.title,onSelect:f,testId:"inbox-replaces"})]})]}),""===l?null:(0,b.jsx)("p",{className:"text-body whitespace-pre-wrap text-foreground [overflow-wrap:anywhere] max-sm:text-body-touch",children:l}),!n||i?(0,b.jsx)(bn,{question:a}):null]}),n&&!i?(0,b.jsx)(bo,{question:a,isPhone:d,onAnswer:e,isPending:g},a.deliveryId):null]}),i&&n?(0,b.jsx)("p",{"data-testid":"inbox-read-only",className:"border-t border-border px-5 py-3 text-meta text-muted-foreground",children:"Read-only: you see argo’s questions, and can’t answer them."}):null,n?null:(0,b.jsx)(bp,{position:c,onSelect:f,isPhone:d})]})}function br({selected:a,isPhone:c,...d}){let e=d.pendingIds.has(a.deliveryId);return"question"===a.kind?(0,b.jsx)(bq,{question:a,position:d.questionPosition??{number:void 0,count:0,next:void 0,left:0},isPhone:c,onAnswer:b=>{d.onAnswer({deliveryId:a.deliveryId,answer:b})},onSelect:d.onSelect,isPending:e,now:d.now,isReadOnly:d.isReadOnly},a.deliveryId):(0,b.jsx)(ax,{message:a,thread:d.thread,isPhone:c,onReply:b=>{d.onReply({deliveryId:a.deliveryId,payload:b})},onMarkDone:()=>{d.onMarkDone(a.deliveryId)},onMarkUnread:()=>{d.onMarkUnread(a.deliveryId)},isPending:e,isReadOnly:d.isReadOnly},a.deliveryId)}function bs({selected:a,questionPosition:c,onMove:d}){if(a?.kind!=="question")return null;let e=c?.number;return(0,b.jsxs)("div",{className:"flex items-center gap-1 border-b border-border px-5 py-2.5",children:[(0,b.jsx)("span",{className:"text-meta text-muted-foreground","data-testid":"inbox-question-position",children:void 0===e?"Question":`Question ${String(e)} of ${String(c?.count??0)}`}),(0,b.jsxs)(m.Button,{variant:"ghost",size:"sm",className:"ml-auto","aria-keyshortcuts":"K",onClick:()=>{d("previous")},children:["Previous ",(0,b.jsx)(L.Kbd,{"aria-hidden":!0,children:"K"})]}),(0,b.jsxs)(m.Button,{variant:"ghost",size:"sm","aria-keyshortcuts":"J",onClick:()=>{d("next")},children:["Next ",(0,b.jsx)(L.Kbd,{"aria-hidden":!0,children:"J"})]})]})}function bt({segment:a,today:c,onSegmentChange:d}){if("open"===a){let a=c.answered+c.done===0?"":`You answered ${(0,K.counted)(c.answered,{one:"question",many:"questions"})} and marked ${(0,K.counted)(c.done,{one:"message",many:"messages"})} done today. `;return(0,b.jsx)("div",{"data-testid":"inbox-empty",className:"flex grow items-center justify-center p-6 max-sm:p-0",children:(0,b.jsx)(M.EmptyState,{icon:(0,b.jsx)(J.CircleCheck,{}),title:"Nothing waits for you",description:`${a}New ones show up here as ships send them.`,action:(0,b.jsx)(m.Button,{variant:"ghost",onClick:()=>{d("done")},children:"See done"})})})}return(0,b.jsx)("div",{"data-testid":"inbox-empty",className:"flex grow items-center justify-center p-6 max-sm:p-0",children:(0,b.jsx)(M.EmptyState,{icon:(0,b.jsx)(J.CircleCheck,{}),title:"done"===a?"Nothing done yet":"No messages for you",description:"done"===a?"Questions you answer and messages you mark done show up here.":"When a ship asks argo a question or sends it a message, it shows up here."})})}function bu(a){return a.questions.length+a.messages.length+a.pluginMessages.length===0}function bv(a){let{state:c,onRetry:d,view:f,segment:g,selected:h,onSelect:i}=a;if(!function({selected:a,onMove:b,onMarkDone:c,isReadOnly:d}){(0,e.useEffect)(()=>{let e=e=>{var f;if(!(e.metaKey||e.ctrlKey||e.altKey||e.isComposing||(f=e.target)instanceof HTMLElement&&(f.isContentEditable||null!==f.closest('input, textarea, select, [role="menu"], [role="dialog"]'))))switch(e.key.toLowerCase()){case"j":e.preventDefault(),b("next");return;case"k":e.preventDefault(),b("previous");return;case"e":a?.kind==="message"&&"acknowledged"!==a.state&&!0!==d&&(e.preventDefault(),c(a.deliveryId));return;case"r":{let a=[...document.querySelectorAll("[data-reply-field]")].find(a=>null!==a.offsetParent);void 0!==a&&(e.preventDefault(),a.focus());return}}};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}},[a,b,c,d])}(a),"loading"===c)return(0,b.jsxs)("div",{"data-slot":"operator-inbox","data-state":"loading",className:"grid gap-4 sm:grid-cols-[minmax(0,2fr)_minmax(0,3fr)]",children:[(0,b.jsx)(O.LoadingSkeleton,{variant:"list",rows:5,label:"Loading your inbox"}),(0,b.jsx)(O.LoadingSkeleton,{variant:"detail",label:"Loading the message",className:"max-sm:hidden"})]});if("error"===c)return(0,b.jsx)("div",{"data-slot":"operator-inbox","data-state":"error","data-testid":"inbox-error",children:(0,b.jsx)(N.InlineError,{variant:"page",title:"Couldn’t load your inbox",description:"This page couldn’t reach the fleet server. Messages to argo are stored on the server, so nothing is lost.",onRetry:d})});let j=(0,b.jsx)(ab,{...a,selectedId:h?.deliveryId,onSelect:a=>{i(a)}});return(0,b.jsxs)("div",{"data-slot":"operator-inbox","data-state":"ready",className:"flex grow flex-col",children:[(0,b.jsxs)("div",{className:"grid h-[calc(100dvh-12rem)] min-h-128 grid-cols-[minmax(20rem,24rem)_minmax(0,1fr)] overflow-hidden rounded-lg border border-border bg-card max-sm:hidden",children:[(0,b.jsxs)("div",{className:"flex min-h-0 flex-col overflow-y-auto border-r border-border",children:[j,bu(f)?(0,b.jsx)(bt,{segment:g,today:a.today,onSegmentChange:a.onSegmentChange}):null]}),(0,b.jsx)("div",{className:"flex min-h-0 flex-col bg-background",children:h?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(bs,{selected:h,questionPosition:a.questionPosition,onMove:a.onMove}),(0,b.jsx)(br,{...a,selected:h,isPhone:!1})]}):(0,b.jsx)("p",{className:"m-auto text-meta text-muted-foreground",children:bu(f)?null:!0===a.isReadOnly?"Choose a question or message to read it.":"Choose a question to answer it, or a message to read it. J and K move."})})]}),(0,b.jsx)("div",{className:"flex grow flex-col gap-3 sm:hidden","data-hides-tab-bar":h?"":void 0,children:h?(0,b.jsx)(br,{...a,selected:h,isPhone:!0}):(0,b.jsxs)(b.Fragment,{children:[j,bu(f)?(0,b.jsx)(bt,{segment:g,today:a.today,onSegmentChange:a.onSegmentChange}):null]})})]})}function bw({filterParameter:a,selectedId:A}){var B,C;let D,E,F,G,H,J,K,L,M=(0,d.useRouter)(),N=(0,k.useNow)(),O=(0,h.readInboxFilter)(a),P=(0,h.useInboxEntries)(),Q=(0,h.useMarkRead)(),R=(0,h.useMarkDone)(),S=(0,h.useReply)(),T=(0,h.useAnswer)(),U=(0,j.useLiveFleet)(),V=(0,g.useConsoleFrame)(),W=(0,f.useAccess)();(0,l.useSignInWhenSessionEnds)([U.error]);let[X,Y]=(0,e.useState)(new Set),[Z,$]=(0,e.useState)(!1),[_,aa]=(0,e.useState)(!1),ab=P.data??[],ac=(E=v(D=y(ab,O)),F=u(w(D)),{questions:[...t(E.filter(i.isOpenEntry)),...u(E.filter(a=>!(0,i.isOpenEntry)(a)))],messages:F.filter(a=>!a.isFromPlugin),pluginMessages:F.filter(a=>a.isFromPlugin)}),ad=[...ac.questions,...ac.messages,...ac.pluginMessages].map(({deliveryId:a})=>a),ae=ab.find(a=>a.deliveryId===A),af=x(ab).map(({deliveryId:a})=>a),ag=ae?.kind==="question"?(B=ae.deliveryId,G=af.indexOf(B),H=af.filter(a=>a!==B),J=-1===G?void 0:af[G+1],{number:-1===G?void 0:G+1,count:af.length,next:J??H[0],left:H.length}):void 0,ah=(C=ae?.kind==="message"?ae.inReplyTo:void 0,(0,q.useConsoleRead)({queryKey:[...h.INBOX_KEY,"thread",C],queryFn:()=>null==C?Promise.resolve([]):(0,r.fetchConsoleRead)({read:"inbox-thread",input:{messageId:C}}),enabled:null!=C}).data),ai=a=>{M.replace((0,h.inboxPathOf)({filter:a.segment??O,deliveryId:a.deliveryId}),{scroll:!1})},aj=a=>{ai({deliveryId:a});let b=ab.find(b=>b.deliveryId===a);b?.readAt===null&&"acknowledged"!==b.state&&W.canReceive&&Q.mutate({deliveryId:b.deliveryId,isRead:!0})},ak=({deliveryId:a,run:b,failure:c})=>{Y(b=>new Set([...b,a])),b().catch(a=>{(0,n.showToast)({title:c,description:a instanceof Error?a.message:"Try again in a moment.",tone:"error"})}).finally(()=>{Y(b=>new Set([...b].filter(b=>b!==a)))})},al=a=>{ak({deliveryId:a,run:()=>Q.mutateAsync({deliveryId:a,isRead:!1}),failure:"Couldn’t mark the message unread"}),ai({})},am=ac.pluginMessages.filter(i.isOpenEntry),an=void 0===ae?void 0:(0,b.jsx)(p.TopBar,{title:"",live:U.live,back:{href:(0,h.inboxPathOf)({filter:O}),label:"Inbox"},actions:"question"===ae.kind?ag?.number===void 0?void 0:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{className:"text-body-touch text-muted-foreground","data-testid":"inbox-question-position",children:[ag.number," of ",ag.count]}),void 0===ag.next?null:(0,b.jsx)(m.Button,{variant:"ghost",size:"touch",isIconOnly:!0,"aria-label":"Next question",icon:(0,b.jsx)(c.ChevronDown,{}),"data-testid":"inbox-next-question-top",onClick:()=>{aj(ag.next)}})]}):(0,b.jsx)(I,{messageId:ae.messageId,shipId:ae.sender.id,shipName:ae.sender.name,size:"touch",onMarkUnread:"acknowledged"!==ae.state&&W.canReceive?()=>{al(ae.deliveryId)}:void 0})});return(0,b.jsx)(o.ListPage,{...V,title:"Inbox",live:U.live,phoneTopBar:an,children:(0,b.jsx)(bv,{state:P.isError?"error":void 0===P.data?"loading":"ready",onRetry:()=>{P.refetch()},view:ac,segment:O,onSegmentChange:a=>{ai({segment:a})},counts:void 0===P.data?{}:{open:y(ab,"open").length,done:y(ab,"done").length,all:ab.length},waiting:function(a,b){let[c]=x(a);return void 0===c?void 0:(0,s.duration)(new Date(c.sentAt),b)}(ab,N),today:(K=v(ab).filter(({question:a})=>null!==a.answer&&z(new Date(a.answer.sentAt),N)),L=w(ab).filter(({doneAt:a})=>null!==a&&z(new Date(a),N)),{answered:K.length,done:L.length}),selected:ae,thread:ah,questionPosition:ag,order:ad,onSelect:aj,onMove:a=>{let b=function(a,{current:b,direction:c}){let d=void 0===b?-1:a.indexOf(b);return -1===d?a[0]:a[Math.min(Math.max(d+("next"===c?1:-1),0),a.length-1)]}(ad,{current:ae?.deliveryId,direction:a});void 0!==b&&b!==ae?.deliveryId&&aj(b)},isPluginGroupExpanded:Z,onTogglePluginGroup:()=>{$(a=>!a)},onPluginGroupDone:W.canReceive&&am.length>0?()=>{aa(!0),Promise.allSettled(am.map(({deliveryId:a})=>R.mutateAsync({deliveryId:a}))).then(a=>{let b=a.filter(a=>"rejected"===a.status).length;b>0&&(0,n.showToast)({title:"Couldn’t mark every message done",description:`${String(b)} of ${String(a.length)} were not marked done. Try again in a moment.`,tone:"error"})}).finally(()=>{aa(!1)})}:void 0,isPluginGroupPending:_,onMarkDone:a=>{ak({deliveryId:a,run:()=>R.mutateAsync({deliveryId:a}),failure:"Couldn’t mark the message done"})},onMarkUnread:al,onReply:({deliveryId:a,payload:b})=>{ak({deliveryId:a,run:()=>S.mutateAsync({deliveryId:a,payload:b,idempotencyKey:`reply-${a}-${crypto.randomUUID()}`}),failure:"Couldn’t send the reply"})},onAnswer:({deliveryId:a,answer:b})=>{ak({deliveryId:a,run:()=>T.mutateAsync({deliveryId:a,answer:b,idempotencyKey:`answer-${a}-${crypto.randomUUID()}`}),failure:"Couldn’t send the answer"})},pendingIds:X,now:N,isReadOnly:!W.canReceive})})}a.s(["InboxPageFor",0,function({filterParameter:a,selectedId:c}){return(0,b.jsx)(bw,{...void 0===a?{}:{filterParameter:a},...void 0===c?{}:{selectedId:c}})}],78451)}];
|
|
1
|
+
module.exports=[78451,a=>{"use strict";var b=a.i(87924),c=a.i(89027),d=a.i(50944),e=a.i(72131),f=a.i(65563),g=a.i(38023),h=a.i(26949),i=a.i(48884),j=a.i(67336),k=a.i(68450),l=a.i(10572),m=a.i(12068),n=a.i(88191),o=a.i(91003),p=a.i(63089),q=a.i(62700),r=a.i(33308),s=a.i(72872);function t(a){return a.toSorted((a,b)=>a.sentAt.localeCompare(b.sentAt))}function u(a){return a.toSorted((a,b)=>b.sentAt.localeCompare(a.sentAt))}function v(a){return a.filter(a=>"question"===a.kind)}function w(a){return a.filter(a=>"message"===a.kind)}function x(a){return t(v(a).filter(i.isOpenEntry))}function y(a,b){switch(b){case"open":return a.filter(i.isOpenEntry);case"done":return a.filter(a=>!(0,i.isOpenEntry)(a));case"all":return[...a]}}function z(a,b){return a.getFullYear()===b.getFullYear()&&a.getMonth()===b.getMonth()&&a.getDate()===b.getDate()}var A=a.i(85650),B=a.i(42955),C=a.i(64831);let D={name:"mail-open",size:24,node:[["path",{d:"M21.2 8.4c.5.38.8.97.8 1.6v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V10a2 2 0 0 1 .8-1.6l8-6a2 2 0 0 1 2.4 0l8 6Z",key:"1jhwl8"}],["path",{d:"m22 10-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 10",key:"1qfld7"}]]};D.node;let E=(0,C.default)(D);var F=a.i(98238),G=a.i(38246),H=a.i(55280);function I({messageId:a,shipId:c,shipName:d,onMarkUnread:e,size:f}){return(0,b.jsxs)(H.DropdownMenu,{children:[(0,b.jsx)(H.DropdownMenuTrigger,{render:(0,b.jsx)(m.Button,{variant:"ghost",size:f,isIconOnly:!0,"aria-label":"Message actions",icon:(0,b.jsx)(B.Ellipsis,{}),"data-testid":"inbox-message-menu"})}),(0,b.jsxs)(H.DropdownMenuContent,{align:"end",children:[void 0===e?null:(0,b.jsxs)(H.DropdownMenuItem,{onClick:e,"data-testid":"inbox-mark-unread",children:[(0,b.jsx)(E,{"aria-hidden":!0}),"Mark as unread"]}),(0,b.jsxs)(H.DropdownMenuItem,{"data-testid":"inbox-copy-message-id",onClick:()=>{navigator.clipboard.writeText(a).then(()=>{(0,n.showToast)({title:"Message id copied"})},()=>{(0,n.showToast)({title:"Couldn’t copy the message id",description:a,tone:"error"})})},children:[(0,b.jsx)(A.Copy,{"aria-hidden":!0}),"Copy message id"]}),(0,b.jsxs)(H.DropdownMenuItem,{render:(0,b.jsx)(G.default,{href:`/ships/${c}`}),"data-testid":"inbox-open-ship",children:[(0,b.jsx)(F.Ship,{"aria-hidden":!0}),"Open ",d]})]})]})}var J=a.i(97024),K=a.i(31429),L=a.i(41689),M=a.i(24173),N=a.i(40392),O=a.i(50808),P=a.i(80487),Q=a.i(76166),R=a.i(94777),S=a.i(56987),T=a.i(48680);let U={name:"replace",size:24,node:[["path",{d:"M14 4a1 1 0 0 1 1-1",key:"dhj8ez"}],["path",{d:"M15 10a1 1 0 0 1-1-1",key:"1mnyi5"}],["path",{d:"M21 4a1 1 0 0 0-1-1",key:"sfs9ap"}],["path",{d:"M21 9a1 1 0 0 1-1 1",key:"mp6qeo"}],["path",{d:"m3 7 3 3 3-3",key:"x25e72"}],["path",{d:"M6 10V5a2 2 0 0 1 2-2h2",key:"15xut4"}],["rect",{x:"3",y:"14",width:"7",height:"7",rx:"1",key:"1bkyp8"}]]};U.node;let V=(0,C.default)(U);function W({entry:a,now:c}){let{question:d,stale:e}=a,f=d.options.find(({key:a})=>a===d.pick.option);if(null!==d.answer){let a=d.options.find(({key:a})=>a===d.answer?.option);return(0,b.jsxs)("span",{"data-answered":!0,className:"flex min-w-0 items-center gap-1.5 text-meta text-muted-foreground [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0",children:[(0,b.jsx)(J.CircleCheck,{"aria-hidden":!0}),(0,b.jsx)("span",{className:"truncate",children:void 0===a?"Answered with a note":`Answered: ${String(a.key)}. ${a.label}`})]})}return null!==e?(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5 text-meta text-muted-foreground [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0",children:["withdrawn"===e.kind?(0,b.jsx)(T.CircleSlash,{"aria-hidden":!0}):(0,b.jsx)(V,{"aria-hidden":!0}),(0,b.jsx)("span",{className:"truncate",children:"withdrawn"===e.kind?"Withdrawn":"Replaced"})]}):(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5 text-meta text-muted-foreground max-sm:text-body [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0",children:[(0,b.jsx)(S.CircleDashed,{"aria-hidden":!0}),(0,b.jsxs)("span",{className:"min-w-0 truncate",children:["Not answered, pick: ",(0,b.jsx)("span",{className:"font-medium text-foreground",children:void 0===f?String(d.pick.option):`${String(f.key)}. ${f.label}`})]}),(0,b.jsx)(Q.Badge,{variant:"outline",className:"ml-auto shrink-0 tabular-nums","data-testid":"inbox-row-waiting",children:(0,s.duration)(new Date(a.sentAt),c)})]})}function X({entry:a,isSelected:c,onSelect:d,now:e,isNested:f=!1}){let g=new Date(a.sentAt),h=null===a.readAt&&"acknowledged"!==a.state,i="question"===a.kind?a.question.title:a.text.headline;return(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button","data-testid":"question"===a.kind?"inbox-question-row":"inbox-row","data-delivery-id":a.deliveryId,"aria-current":c?"true":void 0,onClick:()=>{d(a.deliveryId)},className:(0,P.classNames)("relative flex w-full min-w-0 flex-col gap-1 border-b border-border py-3 pr-4 pl-7 text-left transition-colors duration-(--duration-fast) outline-none hover:bg-accent focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-ring aria-[current=true]:bg-accent max-sm:py-3.5",f?"pl-10":void 0),children:[h?(0,b.jsx)("span",{"aria-hidden":!0,className:(0,P.classNames)("absolute top-[1.15rem] size-2 rounded-full bg-primary",f?"left-5":"left-2.5")}):null,(0,b.jsxs)("span",{className:"flex min-w-0 items-baseline gap-2",children:[(0,b.jsx)("span",{className:(0,P.classNames)("min-w-0 truncate text-meta text-foreground max-sm:text-body",h?"font-medium":"text-muted-foreground"),children:a.sender.name}),(0,b.jsx)("time",{dateTime:a.sentAt,title:(0,s.fullDateTime)(g),className:"ml-auto shrink-0 text-meta text-muted-foreground tabular-nums",children:e.getTime()-g.getTime()<864e5?(0,s.clockTime)(g):(0,s.shortDateTime)(g)})]}),(0,b.jsx)("span",{className:(0,P.classNames)("line-clamp-2 text-body text-foreground [overflow-wrap:anywhere] max-sm:text-body-touch",h?"font-semibold":"font-medium","question"===a.kind&&null!==a.stale?"text-muted-foreground line-through":void 0),children:""===i?"No text":i}),"question"===a.kind?(0,b.jsx)(W,{entry:a,now:e}):""===a.text.summary?null:(0,b.jsx)("span",{className:"truncate text-meta text-muted-foreground max-sm:text-body",children:a.text.summary}),h?(0,b.jsx)("span",{className:"sr-only",children:"Unread"}):null]})})}var Y=a.i(52562),Z=a.i(34532);function $({messages:a,isExpanded:d,onToggle:e,selectedId:f,onSelect:g,onDoneAll:h,isPending:i=!1,now:j}){let[k]=a;if(void 0===k)return null;let l=[...new Set(a.map(({sender:a})=>a.name))].join(", "),n=new Date(k.sentAt);return(0,b.jsxs)("li",{"data-testid":"inbox-plugin-group",children:[(0,b.jsxs)("div",{className:"flex items-stretch border-b border-border",children:[(0,b.jsxs)("button",{type:"button","aria-expanded":d,"data-testid":"inbox-plugin-group-toggle",onClick:e,className:"flex min-w-0 grow items-start gap-2 py-3 pr-2 pl-7 text-left transition-colors duration-(--duration-fast) outline-none hover:bg-accent focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-ring",children:[(0,b.jsxs)("span",{className:"flex min-w-0 grow flex-col gap-1",children:[(0,b.jsxs)("span",{className:"flex min-w-0 items-baseline gap-2 text-meta text-muted-foreground max-sm:text-body",children:[(0,b.jsx)(Z.Server,{"aria-hidden":!0,className:"size-(--size-icon-sm) shrink-0 self-center"}),(0,b.jsx)("span",{className:"min-w-0 truncate",children:l}),(0,b.jsx)("time",{dateTime:k.sentAt,title:(0,s.fullDateTime)(n),className:"ml-auto shrink-0 tabular-nums",children:(0,s.clockTime)(n)})]}),(0,b.jsx)("span",{className:"text-body font-medium text-foreground max-sm:text-body-touch",children:(0,K.counted)(a.length,{one:"message from a plugin ship",many:"messages from plugin ships"})}),d?null:(0,b.jsx)("span",{className:"line-clamp-2 text-meta text-muted-foreground max-sm:text-body",children:a.map(({text:a})=>a.headline).join(" · ")})]}),(0,b.jsx)(c.ChevronDown,{"aria-hidden":!0,className:(0,P.classNames)("mt-5 size-(--size-icon) shrink-0 text-muted-foreground transition-transform",d?"rotate-180":void 0)})]}),d&&void 0!==h?(0,b.jsx)("span",{className:"flex shrink-0 items-start py-3 pr-3",children:(0,b.jsx)(m.Button,{size:"sm",icon:(0,b.jsx)(Y.Check,{"aria-hidden":!0}),isLoading:i,onClick:h,"data-testid":"inbox-plugin-group-done",children:"Done"})}):null]}),d?(0,b.jsx)("ul",{"aria-label":"Messages from plugin ships",children:a.map(a=>(0,b.jsx)(X,{entry:a,isSelected:a.deliveryId===f,onSelect:g,now:j,isNested:!0},a.deliveryId))}):null]})}let _=[{value:"open",label:"Open",isDesktopOnly:!1},{value:"done",label:"Done",isDesktopOnly:!1},{value:"all",label:"All",isDesktopOnly:!0}];function aa({segment:a,onSegmentChange:c,counts:d}){return(0,b.jsx)(R.Tabs,{value:a,onValueChange:a=>{let b=_.find(b=>b.value===a);b&&c(b.value)},children:(0,b.jsx)(R.TabsList,{"aria-label":"Show",className:"w-full",children:_.map(({value:a,label:c,isDesktopOnly:e})=>(0,b.jsxs)(R.TabsTrigger,{value:a,"data-testid":`inbox-filter-${a}`,className:(0,P.classNames)("grow",e?"max-sm:hidden":void 0),children:[c,void 0===d[a]||"open"!==a&&0===d[a]?null:(0,b.jsx)(R.TabsCount,{children:d[a]})]},a))})})}function ab({title:a,count:c,isPrimary:d,meta:e}){return(0,b.jsxs)("h2",{className:"flex items-center gap-2 px-4 pt-4 pb-2 text-meta font-semibold text-foreground max-sm:px-1 max-sm:text-body-touch",children:[a,(0,b.jsx)(Q.Badge,{variant:d?"count":"count-neutral",children:c}),void 0===e?null:(0,b.jsx)("span",{className:"ml-auto font-normal text-muted-foreground",children:e})]})}function ac({view:a,segment:c,onSegmentChange:d,counts:e,waiting:f,selectedId:g,onSelect:h,isPluginGroupExpanded:i,onTogglePluginGroup:j,onPluginGroupDone:k,isPluginGroupPending:l,now:m}){let n;return(0,b.jsxs)("div",{"data-slot":"inbox-list",className:"flex flex-col",children:[(0,b.jsx)("div",{className:"p-2.5 max-sm:p-0 max-sm:pb-1",children:(0,b.jsx)(aa,{segment:c,onSegmentChange:d,counts:e})}),0===a.questions.length?null:(0,b.jsxs)("section",{"aria-label":"Questions","data-testid":"inbox-questions",children:[(0,b.jsx)(ab,{title:"Questions",count:a.questions.length,isPrimary:"open"===c,meta:"open"===c&&void 0!==f?`Oldest waits ${f}`:void 0}),(n=a.questions,(0,b.jsx)("ul",{"aria-label":"Questions to argo",className:"max-sm:overflow-hidden max-sm:rounded-lg max-sm:border max-sm:border-border max-sm:bg-card",children:n.map(a=>(0,b.jsx)(X,{entry:a,isSelected:a.deliveryId===g,onSelect:h,now:m},a.deliveryId))}))]}),a.messages.length+a.pluginMessages.length===0?null:(0,b.jsxs)("section",{"aria-label":"Messages","data-testid":"inbox-messages",children:[(0,b.jsx)(ab,{title:"Messages",count:a.messages.length+a.pluginMessages.length,isPrimary:!1}),(0,b.jsxs)("ul",{"aria-label":"Messages to argo",className:"max-sm:overflow-hidden max-sm:rounded-lg max-sm:border max-sm:border-border max-sm:bg-card",children:[a.messages.map(a=>(0,b.jsx)(X,{entry:a,isSelected:a.deliveryId===g,onSelect:h,now:m},a.deliveryId)),(0,b.jsx)($,{messages:a.pluginMessages,isExpanded:i,onToggle:j,selectedId:g,onSelect:h,onDoneAll:k,isPending:l,now:m})]})]})]})}let ad={name:"external-link",size:24,node:[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]};ad.node;let ae=(0,C.default)(ad),af={name:"git-pull-request",size:24,node:[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["line",{x1:"6",x2:"6",y1:"9",y2:"21",key:"rroup"}]]};af.node;let ag=(0,C.default)(af);var ah=a.i(74746);let ai={name:"circle-dot",size:24,node:[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]};ai.node;let aj=(0,C.default)(ai);var ak=a.i(58856),al=a.i(72309),am=a.i(27530),an=a.i(90468);function ao({inline:a}){switch(a.kind){case"text":return a.text;case"strong":return(0,b.jsx)("strong",{className:"font-semibold",children:a.children.map((a,c)=>(0,b.jsx)(ao,{inline:a},`${String(c)}-${a.kind}`))});case"emphasis":return(0,b.jsx)("em",{children:a.children.map((a,c)=>(0,b.jsx)(ao,{inline:a},`${String(c)}-${a.kind}`))});case"delete":return(0,b.jsx)("del",{children:a.children.map((a,c)=>(0,b.jsx)(ao,{inline:a},`${String(c)}-${a.kind}`))});case"code":return(0,b.jsx)("code",{className:"rounded-sm bg-muted px-1 font-mono text-code",children:a.text});case"link":return(0,b.jsx)("a",{href:a.url,target:"_blank",rel:"noreferrer noopener",className:"font-medium text-foreground underline underline-offset-2 [overflow-wrap:anywhere] hover:text-primary focus-visible:outline-2 focus-visible:outline-ring",children:a.children.map((a,c)=>(0,b.jsx)(ao,{inline:a},`${String(c)}-${a.kind}`))});case"break":return(0,b.jsx)("br",{})}}function ap({inlines:a}){return a.map((a,c)=>(0,b.jsx)(ao,{inline:a},`${String(c)}-${a.kind}`))}function aq({block:a}){switch(a.kind){case"paragraph":return(0,b.jsx)("p",{children:(0,b.jsx)(ap,{inlines:a.children})});case"heading":return(0,b.jsx)("p",{className:"font-semibold",children:(0,b.jsx)(ap,{inlines:a.children})});case"list":{let c=a.isOrdered?"ol":"ul";return(0,b.jsx)(c,{start:a.start??void 0,className:(0,P.classNames)("flex flex-col gap-1 pl-5",a.isOrdered?"list-decimal":"list-disc"),children:a.items.map((a,c)=>(0,b.jsx)("li",{className:"[&>p]:inline",children:(0,b.jsx)(ar,{blocks:a})},`${String(c)}-${String(a.length)}`))})}case"code":return(0,b.jsx)("pre",{className:"overflow-x-auto rounded-md border border-border bg-muted px-3 py-2 font-mono text-code whitespace-pre",children:a.text});case"quote":return(0,b.jsx)("blockquote",{className:"border-l-2 border-border pl-3 text-muted-foreground",children:(0,b.jsx)(ar,{blocks:a.children})});case"table":return(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsx)("table",{className:"text-meta",children:(0,b.jsx)("tbody",{children:a.rows.map((a,c)=>(0,b.jsx)("tr",{className:"border-b border-border",children:a.map((a,c)=>(0,b.jsx)("td",{className:"px-2 py-1 align-top",children:(0,b.jsx)(ap,{inlines:a})},`${String(c)}-${String(a.length)}`))},`${String(c)}-${String(a.length)}`))})})});case"rule":return(0,b.jsx)("hr",{className:"border-border"})}}function ar({blocks:a}){return a.map((a,c)=>(0,b.jsx)(aq,{block:a},`${String(c)}-${a.kind}`))}function as({blocks:a,lineCount:c,className:d}){let f=c>12,[g,h]=(0,e.useState)(!1);if(0===a.length)return null;let i=f&&!g;return(0,b.jsxs)("div",{className:(0,P.classNames)("flex flex-col gap-2",d),children:[(0,b.jsx)("div",{"data-testid":"inbox-message-body","data-folded":i?"true":void 0,className:(0,P.classNames)("flex flex-col gap-3 text-body text-foreground [overflow-wrap:anywhere] max-sm:text-body-touch",i?"max-h-72 overflow-hidden [mask-image:linear-gradient(to_bottom,black_70%,transparent)]":void 0),children:(0,b.jsx)(ar,{blocks:a})}),i?(0,b.jsxs)(m.Button,{variant:"ghost",size:"sm",className:"self-start","data-testid":"inbox-show-all",onClick:()=>{h(!0)},children:["Show all ",c," lines"]}):null]})}function at({link:a}){return(0,b.jsxs)("a",{href:a.url,target:"_blank",rel:"noreferrer noopener","data-testid":"inbox-link-row",className:"flex max-w-md items-center gap-3 rounded-lg border border-border bg-card px-3.5 py-2.5 transition-colors hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring",children:["pull"===a.kind?(0,b.jsx)(ag,{"aria-hidden":!0,className:"size-(--size-icon) shrink-0"}):(0,b.jsx)(aj,{"aria-hidden":!0,className:"size-(--size-icon) shrink-0"}),(0,b.jsxs)("span",{className:"flex min-w-0 grow flex-col",children:[(0,b.jsx)("span",{className:"text-meta font-medium text-foreground",children:"pull"===a.kind?"Pull request":"Issue"}),(0,b.jsxs)("span",{className:"truncate font-mono text-id text-muted-foreground",children:[a.repository," #",a.number]})]}),(0,b.jsx)(ae,{"aria-hidden":!0,className:"size-(--size-icon-sm) shrink-0 text-muted-foreground"})]})}function au({name:a,isArgo:c,sentAt:d,children:e}){let f=new Date(d);return(0,b.jsxs)("li",{"data-testid":"inbox-thread-message",className:(0,P.classNames)("flex flex-col gap-1 rounded-lg border px-3.5 py-2.5",c?"ml-10 border-transparent bg-muted max-sm:ml-8":"mr-10 border-border bg-card max-sm:mr-0"),children:[(0,b.jsxs)("p",{className:"text-meta text-muted-foreground",children:[(0,b.jsx)("span",{className:"font-medium text-foreground",children:c?"argo (you)":a})," ·"," ",(0,b.jsx)("time",{dateTime:d,title:(0,s.fullDateTime)(f),children:(0,s.shortDateTime)(f)})]}),e]})}function av({thread:a,message:c}){return(void 0===a||0===a.length)&&0===c.replies.length?null:(0,b.jsxs)("section",{"aria-label":"In this thread",className:"flex max-w-xl flex-col gap-2",children:[void 0===a||0===a.length?null:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("h2",{className:"text-meta text-muted-foreground",children:"In this thread"}),(0,b.jsx)("ul",{className:"flex flex-col gap-2",children:a.map(a=>(0,b.jsxs)(au,{name:a.sender.name,isArgo:a.isArgo,sentAt:a.sentAt,children:[(0,b.jsx)("p",{className:"text-body font-medium text-foreground [overflow-wrap:anywhere]",children:a.text.headline}),(0,b.jsx)(as,{blocks:a.text.body,lineCount:a.text.lineCount})]},a.id))})]}),0===c.replies.length?null:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("h2",{className:"text-meta text-muted-foreground",children:"Your replies"}),(0,b.jsx)("ul",{className:"flex flex-col gap-2",children:c.replies.map(a=>(0,b.jsxs)(au,{name:"argo",isArgo:!0,sentAt:a.sentAt,children:[(0,b.jsx)("p",{className:"text-body text-foreground [overflow-wrap:anywhere]",children:a.text.headline}),(0,b.jsx)(as,{blocks:a.text.body,lineCount:a.text.lineCount})]},a.id))})]})]})}function aw({message:a}){if(null===a.doneAt)return null;let c=new Date(a.doneAt);return(0,b.jsxs)("p",{"data-testid":"inbox-done-notice",className:"flex items-center gap-2 rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-meta text-tone-ok-fg [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0",children:[(0,b.jsx)(J.CircleCheck,{"aria-hidden":!0}),"Done at"," ",(0,b.jsx)("time",{dateTime:a.doneAt,title:(0,s.fullDateTime)(c),children:(0,s.clockTime)(c)}),null===a.repliedWith?".":", when you replied."]})}function ax({message:a,onReply:c,onMarkDone:d,isPending:f,isPhone:g}){let[h,i]=(0,e.useState)(""),j=(0,ak.useShortcutPlatform)(),k="acknowledged"===a.state,l=""!==h.trim(),n=a.sender.name;return(0,b.jsxs)("form",{"data-testid":"inbox-action-bar",className:"flex items-end gap-2 border-t border-border bg-background px-5 py-3 max-sm:px-4 max-sm:pb-[calc(env(safe-area-inset-bottom)+var(--spacing)*3)]",onSubmit:a=>{a.preventDefault(),l&&!f&&c(h)},children:[(0,b.jsx)(al.Textarea,{"data-reply-field":!0,rows:l?3:1,size:g?"touch":"md","aria-label":`Reply to ${n}`,placeholder:`Reply to ${n}`,value:h,onChange:a=>{i(a.target.value)},onKeyDown:ak.submitOnSendShortcut,"data-testid":"inbox-reply"}),l||k?(0,b.jsxs)(m.Button,{type:"submit",variant:"primary",size:g?"touch":"md",icon:(0,b.jsx)(ah.Send,{"aria-hidden":!0}),isLoading:f,disabled:!l&&!f,"aria-keyshortcuts":null===j?void 0:(0,ak.sendShortcutAria)(j),"data-testid":"inbox-reply-send",children:["Send reply",null===j||g?null:(0,b.jsx)(am.SendShortcutHint,{platform:j})]}):(0,b.jsxs)(m.Button,{type:"button",variant:"primary",size:g?"touch":"md",icon:(0,b.jsx)(Y.Check,{"aria-hidden":!0}),isLoading:f,"aria-keyshortcuts":"E","data-testid":"inbox-mark-done",onClick:d,children:["Done",g?null:(0,b.jsx)(L.Kbd,{"aria-hidden":!0,className:"border-primary-foreground/25 bg-primary-foreground/10 text-primary-foreground",children:"E"})]})]})}function ay({message:a,thread:c,isPhone:d,onReply:e,onMarkDone:f,onMarkUnread:g,isPending:h,isReadOnly:i=!1}){let j=new Date(a.sentAt),{sender:k,text:l}=a,n="acknowledged"===a.state;return(0,b.jsxs)("article",{"aria-label":""===l.headline?`Message from ${k.name}`:l.headline,"data-testid":"inbox-message",className:"flex min-h-0 grow flex-col",children:[d?null:(0,b.jsxs)("div",{className:"flex items-center gap-2 border-b border-border px-5 py-2.5",children:[(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"Message"}),(0,b.jsxs)("span",{className:"ml-auto flex items-center gap-1",children:[n||i?null:(0,b.jsx)(m.Button,{variant:"ghost",size:"sm",disabled:h,onClick:g,"data-testid":"inbox-mark-unread",children:"Mark as unread"}),(0,b.jsx)(I,{messageId:a.messageId,shipId:k.id,shipName:k.name,size:"sm"})]})]}),(0,b.jsxs)("div",{className:"flex min-h-0 grow flex-col gap-5 overflow-y-auto px-5 py-5 max-sm:px-0 max-sm:py-3.5",children:[(0,b.jsxs)("header",{className:"flex flex-col gap-1.5",children:[a.isFromPlugin?(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"inline-flex size-7 items-center justify-center rounded-md bg-muted",children:(0,b.jsx)(Z.Server,{"aria-hidden":!0,className:"size-(--size-icon-sm)"})}),null===k.type?null:(0,b.jsx)(Q.Badge,{variant:"outline",children:k.type})]}):null,(0,b.jsx)("h2",{className:"text-heading font-semibold [overflow-wrap:anywhere] max-sm:text-title-touch",children:""===l.headline?"No text":l.headline}),(0,b.jsxs)("p",{className:"flex flex-wrap items-center gap-1 text-meta text-muted-foreground",children:[(0,b.jsx)(an.ShipName,{name:k.name,shipId:k.id,isSuffixShown:k.isNameShared,size:"meta",className:"[&>span:first-child]:text-foreground"}),(0,b.jsx)("span",{"aria-hidden":!0,children:"·"}),(0,b.jsx)("time",{dateTime:a.sentAt,title:(0,s.fullDateTime)(j),children:(0,s.shortDateTime)(j)}),null===a.model?null:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{"aria-hidden":!0,children:"·"}),(0,b.jsx)("span",{className:"font-mono text-id",children:a.model})]})]})]}),(0,b.jsx)(aw,{message:a}),(0,b.jsx)(as,{blocks:l.body,lineCount:l.lineCount}),0===l.links.length?null:(0,b.jsx)("div",{className:"flex flex-col gap-2",children:l.links.map(a=>(0,b.jsx)(at,{link:a},a.url))}),(0,b.jsx)(av,{thread:c,message:a})]}),i?(0,b.jsx)("p",{"data-testid":"inbox-read-only",className:"border-t border-border px-5 py-3 text-meta text-muted-foreground",children:"Read-only: you see argo’s inbox, and can’t reply or mark messages done."}):(0,b.jsx)("div",{className:d?"sticky bottom-0 -mx-4":void 0,children:(0,b.jsx)(ax,{message:a,onReply:e,onMarkDone:f,isPending:h,isPhone:d},`${a.deliveryId}-${a.state}`)})]})}var az=a.i(41146),aA=a.i(93817),aB=a.i(4803),aB=aB,aC=a.i(90629),aD=a.i(75297),aE=a.i(45098);a.s([],4434),a.i(4434);var aF=a.i(1811),aG=a.i(57738),aH=a.i(62824),aI=a.i(24715),aJ=a.i(94552),aK=a.i(7436),aL=a.i(7393),aM=a.i(27576);let aN={checked:a=>a?{"data-checked":""}:{"data-unchecked":""},...aL.transitionStatusMapping,...aM.fieldValidityMapping};var aO=a.i(85933),aP=a.i(557),aQ=a.i(26184),aR=a.i(21436),aS=a.i(79587),aT=a.i(96511),aU=a.i(1230),aV=a.i(32362),aW=a.i(77260),aX=a.i(46919),aY=a.i(69476);let aZ=e.createContext(void 0);var a$=a.i(76224),a_=a.i(54662);let a0=e.createContext(void 0),a1=e.forwardRef(function(a,c){let{render:d,className:f,disabled:g=!1,readOnly:h=!1,required:i=!1,"aria-labelledby":j,value:k,inputRef:l,nativeButton:m=!1,id:n,style:o,...p}=a,q=e.useContext(aZ),{disabled:r,readOnly:s,required:t,form:u,checkedValue:v,touched:w=!1,validation:x,name:y,setCheckedValue:z=aI.NOOP,setTouched:A=aI.NOOP,registerInputRef:B=aI.NOOP}=q??{},{setTouched:C,setFilled:D,state:E,disabled:F}=(0,aU.useFieldRootContext)(),G=(0,aV.useFieldItemContext)(),{labelId:H,getDescriptionProps:I}=(0,aW.useLabelableContext)(),J=F||G.disabled||r||g,K=s||h,L=t||i,M=q?v===k:""===k,N=e.useRef(null),O=e.useRef(null),P=x?.registerInput,Q=e.useCallback(a=>P?.(a,{controlRef:N,value:void 0}),[P]),R=(0,aF.useMergedRefs)(l,O,B,Q);(0,aG.useIsoLayoutEffect)(()=>{O.current?.checked&&D(!0)},[D]),(0,aG.useIsoLayoutEffect)(()=>{if(O.current){if(J&&M)return void B(null);B(O.current)}},[M,J,B]);let S=(0,aP.useBaseUiId)(),T=(0,aY.useLabelableId)({id:n}),U=m?void 0:T,V={role:"radio","aria-checked":M,"aria-labelledby":(0,aX.useAriaLabelledBy)(j,H,O,!m,U),[aS.ACTIVE_COMPOSITE_ITEM]:M?"":void 0,id:m?T:S,onKeyDown(a){"Enter"===a.key&&a.preventDefault()},onClick(a){if(a.defaultPrevented||J||K)return;a.preventDefault();let b=O.current;b&&(0,aO.dispatchClickWithModifiers)(b,a)},onFocus(a){a.defaultPrevented||J||K||!w||(O.current?.click(),A(!1))}},{getButtonProps:W,buttonRef:X}=(0,aR.useButton)({disabled:J,native:m,composite:!1}),Y={type:"radio",ref:R,form:u,id:U,name:y,tabIndex:-1,style:y?aH.visuallyHiddenInput:aH.visuallyHidden,"aria-hidden":!0,...void 0!==k?{value:(0,a$.serializeValue)(k)}:aI.EMPTY_OBJECT,disabled:J,checked:M,required:L,readOnly:K,onChange(a){if(a.nativeEvent.defaultPrevented||J||K||void 0===k)return;let b=(0,aJ.createChangeEventDetails)(aK.REASONS.none,a.nativeEvent);z(k,b),b.isCanceled||C(!0)},onClick(a){a.stopPropagation()},onFocus(){N.current?.focus()}},Z=e.useMemo(()=>({...E,required:L,disabled:J,readOnly:K,checked:M}),[E,J,K,M,L]),$=void 0!==q,_=[c,N,X],aa=[V,p,W,I,x?a=>x.getValidationProps(J,a):aI.EMPTY_OBJECT],ab=(0,aQ.useRenderElement)("span",a,{enabled:!$,state:Z,ref:_,props:aa,stateAttributesMapping:aN});return(0,b.jsxs)(a0.Provider,{value:Z,children:[$?(0,b.jsx)(aT.CompositeItem,{tag:"span",render:d,className:f,style:o,state:Z,refs:_,props:aa,stateAttributesMapping:aN}):ab,(0,b.jsx)("input",{...Y,suppressHydrationWarning:!0})]})});var a2=a.i(5687),a3=a.i(48250);let a4=e.forwardRef(function(a,b){let{render:c,className:d,style:f,keepMounted:g=!1,...h}=a,i=function(){let a=e.useContext(a0);if(void 0===a)throw Error((0,a_.default)(52));return a}(),j=i.checked,{mounted:k,transitionStatus:l,setMounted:m}=(0,a3.useTransitionStatus)(j),n={...i,transitionStatus:l},o=e.useRef(null),p=(0,aQ.useRenderElement)("span",a,{ref:[b,o],state:n,props:h,stateAttributesMapping:aN});return((0,a2.useOpenChangeComplete)({batch:!0,enabled:!j,open:j,ref:o,onComplete(){j||m(!1)}}),g||k)?p:null});a.s(["Indicator",0,a4,"Root",0,a1],42851);var a5=a.i(42851),a5=a5,a6=a.i(50381),a7=a.i(54401),a8=a.i(30116),a9=a.i(69649),ba=a.i(1548),bb=a.i(58589),bc=a.i(17326),bd=a.i(71154),be=a.i(41302),bf=a.i(64072);let bg=[a9.SHIFT],bh=e.forwardRef(function(a,c){let{render:d,className:f,disabled:g,readOnly:h,required:i,onValueChange:j,value:k,defaultValue:l,form:m,name:n,inputRef:o,id:p,style:q,...r}=a,{setTouched:s,setFocused:t,validationMode:u,name:v,disabled:w,state:x,validation:y,setDirty:z,setFilled:A,validityData:B}=(0,aU.useFieldRootContext)(),{labelId:C}=(0,aW.useLabelableContext)(),{clearErrors:D,elementRef:E}=(0,be.useFormContext)(),F=(0,bd.useFieldsetRootContext)(!0),G=w||g,H=v??n,I=(0,aP.useBaseUiId)(p),[J,K]=(0,a6.useControlled)({controlled:k,default:l,name:"RadioGroup",state:"value"}),[L,M]=e.useState(!1),N=(0,a7.useStableCallback)((a,b)=>{j?.(a,b),b.isCanceled||K(a)}),O=y.getInputControl,P=e.useMemo(()=>({get current(){return O()}}),[O]),Q=e.useRef(null),R=e.useRef(null);function S(a){let b;return o&&("function"==typeof o?b=o(a):o.current=a),Q.current=a,b}let T=(0,a7.useStableCallback)(a=>{if(!a||a.disabled)return;R.current||(R.current=a);let b=Q.current,c=a.checked||null==b||b.disabled?S(a):void 0;return()=>{R.current===a&&(R.current=null),Q.current===a?c?(c(),Q.current=null):S(null):c?.()}}),U=(0,a7.useStableCallback)(()=>{let a=E.current;if(!a)return J??null;for(let b of y.registeredInputs.keys())if(b.checked&&(0,bc.isEligibleInput)(b,a))return J??null;return null});(0,bb.useRegisterFieldControl)(P,I,J??null,U,!G,n),(0,bf.useValueChanged)(J,()=>{D(H),z(J!==B.initialValue),A(null!=J),y.change(J);let a=R.current;null==J&&a&&!a.disabled&&S(a)});let V=C??F?.legendId,W={...x,disabled:G??!1,required:i??!1,readOnly:h??!1},X=e.useMemo(()=>({checkedValue:J,disabled:G,form:m,validation:y,name:H,readOnly:h,registerInputRef:T,required:i,setCheckedValue:N,setTouched:M,touched:L}),[J,G,m,y,H,h,T,i,N,M,L]);return(0,b.jsx)(aZ.Provider,{value:X,children:(0,b.jsx)(ba.CompositeRoot,{render:d,className:f,style:q,state:W,props:[{id:p,role:"radiogroup","aria-required":i||void 0,"aria-disabled":G||void 0,"aria-readonly":h||void 0,"aria-labelledby":V,onFocus(){t(!0)},onBlur(a){(0,a8.contains)(a.currentTarget,a.relatedTarget)||(s(!0),t(!1),"onBlur"===u&&y.commit(J))},onKeyDownCapture(a){a.key.startsWith("Arrow")&&(M(!0),t(!0))}},r,a=>y.getValidationProps(G??!1,a)],refs:[c],stateAttributesMapping:aM.fieldValidityMapping,enableHomeAndEndKeys:!1,modifierKeys:bg})})});function bi({className:a,...c}){return(0,b.jsx)(bh,{"data-slot":"radio-group",className:(0,P.classNames)("flex flex-col gap-2",a),...c})}function bj({className:a,...c}){return(0,b.jsx)(a5.Root,{"data-slot":"radio-group-item",className:(0,P.classNames)("inline-flex size-4 shrink-0 items-center justify-center rounded-full border border-input bg-background transition-colors duration-(--duration-fast) outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring data-checked:border-primary data-disabled:opacity-45",a),...c,children:(0,b.jsx)(a5.Indicator,{"data-slot":"radio-group-indicator",className:"size-2 rounded-full bg-primary"})})}function bk({deliveryId:a,title:c,onSelect:d,testId:e}){return(0,b.jsx)("button",{type:"button","data-testid":e,onClick:()=>{d(a)},className:"min-w-0 text-left font-medium text-foreground underline underline-offset-2 [overflow-wrap:anywhere] hover:text-primary focus-visible:outline-2 focus-visible:outline-ring",children:c})}function bl({question:a}){let{answer:c,options:d}=a.question;if(null===c)return null;let e=new Date(c.sentAt),f=d.find(({key:a})=>a===c.option);return(0,b.jsxs)("div",{"data-testid":"inbox-answered",className:"flex flex-col gap-1 rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-meta text-tone-ok-fg max-sm:text-body",children:[(0,b.jsxs)("p",{className:"flex items-start gap-2 [&_svg]:mt-0.5 [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0",children:[(0,b.jsx)(J.CircleCheck,{"aria-hidden":!0}),(0,b.jsxs)("span",{children:["You answered ",void 0===f?"with a note":(0,b.jsx)("span",{className:"font-semibold",children:`${String(f.key)}. ${f.label}`})," at"," ",(0,b.jsx)("time",{dateTime:c.sentAt,title:(0,s.fullDateTime)(e),children:(0,s.clockTime)(e)}),". ",a.sender.name," receives it as a reply."]})]}),null===c.note?null:(0,b.jsx)("p",{className:"pl-6 whitespace-pre-wrap [overflow-wrap:anywhere]",children:c.note})]})}function bm({question:a,onSelect:c}){let{stale:d}=a;if(null===d)return null;let e=new Date(d.sentAt);return(0,b.jsxs)("div",{role:"status","data-testid":"inbox-stale",className:"flex flex-col gap-1 rounded-md border border-tone-ended-border bg-tone-ended-bg px-3 py-2 text-meta text-tone-ended-fg",children:[(0,b.jsxs)("p",{className:"flex items-center gap-2 [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0",children:["withdrawn"===d.kind?(0,b.jsx)(T.CircleSlash,{"aria-hidden":!0}):(0,b.jsx)(V,{"aria-hidden":!0}),(0,b.jsxs)("span",{children:["withdrawn"===d.kind?"Withdrawn":"Replaced"," by ",a.sender.name," at"," ",(0,b.jsx)("time",{dateTime:d.sentAt,title:(0,s.fullDateTime)(e),children:(0,s.clockTime)(e)}),". It can’t be answered."]})]}),"replaced"===d.kind?(0,b.jsxs)("p",{className:"flex flex-wrap items-baseline gap-1",children:["Answer the new question: ",(0,b.jsx)(bk,{deliveryId:d.deliveryId,title:d.by.title,onSelect:c,testId:"inbox-replacement"})]}):null]})}function bn({option:a,question:c,isChosen:d,isSuggested:e=!1}){let{pick:f}=c.question,g=a.key===f.option;return(0,b.jsxs)("span",{className:"flex min-w-0 flex-col gap-0.5",children:[(0,b.jsxs)("span",{className:"flex flex-wrap items-center gap-2 text-body font-medium text-foreground max-sm:text-body-touch",children:[a.label,g?(0,b.jsx)(Q.Badge,{variant:"outline",children:e?`${c.sender.name}’s pick, not sent`:`${c.sender.name}’s pick`}):null]}),""===a.detail?null:(0,b.jsx)("span",{className:"text-meta text-muted-foreground max-sm:text-body",children:a.detail}),g&&d?(0,b.jsxs)("span",{className:"mt-1.5 rounded-md bg-muted px-3 py-2 text-meta text-foreground max-sm:text-body",children:[(0,b.jsx)("span",{className:"font-semibold",children:"Why:"})," ",f.why]}):null]})}let bo="flex items-start gap-3 rounded-lg border px-4 py-3.5";function bp({question:a}){let{options:c,answer:d}=a.question;return(0,b.jsx)("ol",{"aria-label":"Options",className:"flex flex-col gap-2",children:c.map(c=>{let e=d?.option===c.key;return(0,b.jsx)("li",{"data-testid":`inbox-option-${String(c.key)}`,className:(0,P.classNames)(bo,e?"border-2 border-primary bg-card":"border-border bg-card"),children:(0,b.jsx)(bn,{option:c,question:a,isChosen:e})},c.key)})})}function bq({message:a}){return(0,b.jsxs)("p",{role:"alert","data-testid":"inbox-answer-failed",className:"flex gap-2 rounded-lg border border-tone-attention-border bg-tone-attention-bg px-3.5 py-2.5 text-meta text-tone-attention-fg max-sm:text-body [&_svg]:mt-0.5 [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0",children:[(0,b.jsx)(aA.CircleAlert,{"aria-hidden":!0}),(0,b.jsxs)("span",{children:["Your answer was not sent: ",a,". Answer again to send it."]})]})}function br({question:a,isPhone:c,onAnswer:d,isPending:f,failure:g,draft:h,onDraftChange:i}){let j=(0,e.useId)(),k=`${j}-note`,{options:l,pick:n}=a.question,o=function({failure:a,draft:b}){let c=a?.answer;return void 0!==c?{option:"option"in c?c.option:void 0,note:c.note??""}:b}({failure:g,draft:h}),[p,q]=(0,e.useState)(void 0===o?n.option:o.option),[r,s]=(0,e.useState)(o?.note??""),[t,u]=(0,e.useState)(void 0!==o),[v,w]=(0,e.useState)(!c||""!==r),x=a=>{q(a.option),s(a.note),i?.(a.option===n.option&&""===a.note.trim()?void 0:a)},y=a=>{u(!0),x({option:a,note:r})},z=(0,ak.useShortcutPlatform)(),A=a.sender.name,B=r.trim(),C=l.find(({key:a})=>a===p),D=function({option:a,hasNote:b}){return void 0===a?b?"Send note":void 0:b?`Answer: ${a}, with note`:`Answer: ${a}`}({option:C?.label,hasNote:""!==B});return(0,b.jsxs)("form",{className:"flex min-h-0 grow flex-col",onSubmit:a=>{a.preventDefault(),void 0===D||f||d(void 0===p?{note:B}:{option:p,...""===B?{}:{note:B}})},children:[(0,b.jsxs)("div",{className:"flex flex-col gap-4 px-5 pb-5 max-sm:px-0",children:[void 0===g?null:(0,b.jsx)(bq,{message:g.message}),(0,b.jsx)(bi,{"aria-label":"Options",value:p??0,onValueChange:a=>{y(a)},onClickCapture:a=>{let b=a.target instanceof Element?a.target.closest("[data-option-key]")?.getAttribute("data-option-key"):void 0;null!=b&&Number(b)===p&&(a.preventDefault(),a.stopPropagation(),y(void 0))},className:"flex flex-col gap-2",children:l.map(c=>{let d=`${j}-option-${String(c.key)}`,e=c.key===p,f=e&&!t;return(0,b.jsxs)("div",{"data-testid":`inbox-option-${String(c.key)}`,"data-option-key":c.key,"data-suggested":f?"true":void 0,className:(0,P.classNames)(bo,"bg-card",f?"border-2 border-dashed border-primary":e?"border-2 border-primary":"border-border"),children:[(0,b.jsx)(bj,{id:d,value:c.key,className:"mt-0.5"}),(0,b.jsx)("label",{htmlFor:d,className:"min-w-0 grow cursor-pointer",children:(0,b.jsx)(bn,{option:c,question:a,isChosen:e,isSuggested:f})})]},c.key)})}),c&&v?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsxs)(aE.Label,{htmlFor:k,children:["Note to ",A]}),(0,b.jsx)(al.Textarea,{id:k,rows:3,size:"touch",value:r,onChange:a=>{x({option:p,note:a.target.value})},"data-testid":"inbox-note"}),(0,b.jsx)("p",{className:"text-body text-muted-foreground",children:"Optional with an option. On its own, it asks for more context or says none fits."})]}):null]}),(0,b.jsxs)("div",{className:"mt-auto flex items-center gap-2 border-t border-border bg-background px-5 py-3 max-sm:sticky max-sm:bottom-0 max-sm:-mx-4 max-sm:px-4 max-sm:pb-[calc(env(safe-area-inset-bottom)+var(--spacing)*3)]",children:[c?v?null:(0,b.jsx)(m.Button,{type:"button",variant:"ghost",size:"touch",icon:(0,b.jsx)(aC.Pencil,{"aria-hidden":!0}),"data-testid":"inbox-add-note",onClick:()=>{w(!0)},children:"Add a note"}):(0,b.jsx)(aD.Input,{id:k,"aria-label":`Note to ${A}`,placeholder:`Add a note to ${A} (optional)`,value:r,onChange:a=>{x({option:p,note:a.target.value})},onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),(0,ak.isSendShortcut)(a.nativeEvent)&&a.currentTarget.form?.requestSubmit())},className:"grow","data-testid":"inbox-note"}),(0,b.jsxs)(m.Button,{type:"submit",variant:"primary",size:c?"touch":"md",icon:(0,b.jsx)(ah.Send,{"aria-hidden":!0}),isLoading:f,disabled:void 0===D&&!f,"aria-keyshortcuts":null===z?void 0:(0,ak.sendShortcutAria)(z),className:c?"grow":void 0,"data-testid":"inbox-answer",children:[D??"Pick an option or write a note",null===z||c?null:(0,b.jsx)(am.SendShortcutHint,{platform:z})]})]})]})}function bs({position:a,onSelect:c,isPhone:d}){let{next:e}=a;return void 0===e?null:(0,b.jsxs)("div",{className:"mt-auto flex flex-col items-stretch gap-2 border-t border-border bg-background px-5 py-3 max-sm:sticky max-sm:bottom-0 max-sm:-mx-4 max-sm:px-4 max-sm:pb-[calc(env(safe-area-inset-bottom)+var(--spacing)*3)] sm:flex-row sm:items-center sm:justify-end",children:[(0,b.jsx)("p",{className:"text-center text-meta text-muted-foreground max-sm:text-body",children:(0,K.counted)(a.left,{one:"question left",many:"questions left"})}),(0,b.jsxs)(m.Button,{variant:"primary",size:d?"touch":"md","data-testid":"inbox-next-question",onClick:()=>{c(e)},children:["Next question",(0,b.jsx)(az.ChevronRight,{"aria-hidden":!0})]})]})}function bt({question:a,position:c,isPhone:d,onAnswer:e,onSelect:f,isPending:g,now:h,isReadOnly:i=!1,failure:j,draft:k,onDraftChange:l}){let m=new Date(a.sentAt),{title:n,context:o,answer:p}=a.question,q=null===p&&null===a.stale;return(0,b.jsxs)("article",{"aria-label":n,"data-testid":"inbox-question",className:"flex min-h-0 grow flex-col",children:[(0,b.jsxs)("div",{className:(0,P.classNames)("flex min-h-0 grow flex-col overflow-y-auto",d?void 0:"pt-5"),children:[(0,b.jsxs)("div",{className:"flex flex-col gap-4 px-5 pb-5 max-sm:px-0 max-sm:pt-3.5",children:[(0,b.jsx)(bl,{question:a}),(0,b.jsx)(bm,{question:a,onSelect:f}),(0,b.jsxs)("header",{className:"flex flex-col gap-1.5",children:[q?(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsxs)(Q.Badge,{variant:"outline",className:"gap-1",children:[(0,b.jsx)(aB.default,{"aria-hidden":!0,className:"size-(--size-icon-sm)"}),"Question"]}),(0,b.jsxs)("span",{className:"text-meta text-muted-foreground","data-testid":"inbox-question-status",children:[(0,b.jsx)("span",{className:"font-medium text-foreground",children:"Not answered"})," · waiting ",(0,s.duration)(m,h)]})]}):null,(0,b.jsx)("h2",{className:"text-heading font-semibold [overflow-wrap:anywhere] max-sm:text-title-touch",children:n}),(0,b.jsxs)("p",{className:"flex flex-wrap items-center gap-1 text-meta text-muted-foreground",children:[(0,b.jsx)(an.ShipName,{name:a.sender.name,shipId:a.sender.id,isSuffixShown:a.sender.isNameShared,size:"meta",className:"[&>span:first-child]:text-foreground"}),"asks ·"," ",(0,b.jsx)("time",{dateTime:a.sentAt,title:(0,s.fullDateTime)(m),children:(0,s.shortDateTime)(m)})]}),null===a.replaces?null:(0,b.jsxs)("p",{className:"flex flex-wrap items-baseline gap-1 text-meta text-muted-foreground",children:["Replaces ",(0,b.jsx)(bk,{deliveryId:a.replaces.deliveryId,title:a.replaces.title,onSelect:f,testId:"inbox-replaces"})]})]}),""===o?null:(0,b.jsx)("p",{className:"text-body whitespace-pre-wrap text-foreground [overflow-wrap:anywhere] max-sm:text-body-touch",children:o}),!q||i?(0,b.jsx)(bp,{question:a}):null]}),q&&!i?(0,b.jsx)(br,{question:a,isPhone:d,onAnswer:e,isPending:g,failure:j,draft:k,onDraftChange:l},a.deliveryId):null]}),i&&q?(0,b.jsx)("p",{"data-testid":"inbox-read-only",className:"border-t border-border px-5 py-3 text-meta text-muted-foreground",children:"Read-only: you see argo’s questions, and can’t answer them."}):null,q?null:(0,b.jsx)(bs,{position:c,onSelect:f,isPhone:d})]})}function bu({selected:a,isPhone:c,...d}){let e=d.pendingIds.has(a.deliveryId);return"question"===a.kind?(0,b.jsx)(bt,{question:a,position:d.questionPosition??{number:void 0,count:0,next:void 0,left:0},isPhone:c,onAnswer:b=>{d.onAnswer({deliveryId:a.deliveryId,answer:b})},onSelect:d.onSelect,isPending:e,now:d.now,isReadOnly:d.isReadOnly,failure:d.answerFailures?.get(a.deliveryId),draft:d.answerDrafts?.get(a.deliveryId),onDraftChange:b=>{d.onAnswerDraftChange?.({deliveryId:a.deliveryId,draft:b})}},a.deliveryId):(0,b.jsx)(ay,{message:a,thread:d.thread,isPhone:c,onReply:b=>{d.onReply({deliveryId:a.deliveryId,payload:b})},onMarkDone:()=>{d.onMarkDone(a.deliveryId)},onMarkUnread:()=>{d.onMarkUnread(a.deliveryId)},isPending:e,isReadOnly:d.isReadOnly},a.deliveryId)}function bv({selected:a,questionPosition:c,onMove:d}){if(a?.kind!=="question")return null;let e=c?.number;return(0,b.jsxs)("div",{className:"flex items-center gap-1 border-b border-border px-5 py-2.5",children:[(0,b.jsx)("span",{className:"text-meta text-muted-foreground","data-testid":"inbox-question-position",children:void 0===e?"Question":`Question ${String(e)} of ${String(c?.count??0)}`}),(0,b.jsxs)(m.Button,{variant:"ghost",size:"sm",className:"ml-auto","aria-keyshortcuts":"K",onClick:()=>{d("previous")},children:["Previous ",(0,b.jsx)(L.Kbd,{"aria-hidden":!0,children:"K"})]}),(0,b.jsxs)(m.Button,{variant:"ghost",size:"sm","aria-keyshortcuts":"J",onClick:()=>{d("next")},children:["Next ",(0,b.jsx)(L.Kbd,{"aria-hidden":!0,children:"J"})]})]})}function bw({segment:a,today:c,onSegmentChange:d}){if("open"===a){let a=c.answered+c.done===0?"":`You answered ${(0,K.counted)(c.answered,{one:"question",many:"questions"})} and marked ${(0,K.counted)(c.done,{one:"message",many:"messages"})} done today. `;return(0,b.jsx)("div",{"data-testid":"inbox-empty",className:"flex grow items-center justify-center p-6 max-sm:p-0",children:(0,b.jsx)(M.EmptyState,{icon:(0,b.jsx)(J.CircleCheck,{}),title:"Nothing waits for you",description:`${a}New ones show up here as ships send them.`,action:(0,b.jsx)(m.Button,{variant:"ghost",onClick:()=>{d("done")},children:"See done"})})})}return(0,b.jsx)("div",{"data-testid":"inbox-empty",className:"flex grow items-center justify-center p-6 max-sm:p-0",children:(0,b.jsx)(M.EmptyState,{icon:(0,b.jsx)(J.CircleCheck,{}),title:"done"===a?"Nothing done yet":"No messages for you",description:"done"===a?"Questions you answer and messages you mark done show up here.":"When a ship asks argo a question or sends it a message, it shows up here."})})}function bx(a){return a.questions.length+a.messages.length+a.pluginMessages.length===0}function by(a){let{state:c,onRetry:d,view:f,segment:g,selected:h,onSelect:i}=a;if(!function({selected:a,onMove:b,onMarkDone:c,isReadOnly:d}){(0,e.useEffect)(()=>{let e=e=>{var f;if(!(e.metaKey||e.ctrlKey||e.altKey||e.isComposing||(f=e.target)instanceof HTMLElement&&(f.isContentEditable||null!==f.closest('input, textarea, select, [role="menu"], [role="dialog"]'))))switch(e.key.toLowerCase()){case"j":e.preventDefault(),b("next");return;case"k":e.preventDefault(),b("previous");return;case"e":a?.kind==="message"&&"acknowledged"!==a.state&&!0!==d&&(e.preventDefault(),c(a.deliveryId));return;case"r":{let a=[...document.querySelectorAll("[data-reply-field]")].find(a=>null!==a.offsetParent);void 0!==a&&(e.preventDefault(),a.focus());return}}};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}},[a,b,c,d])}(a),"loading"===c)return(0,b.jsxs)("div",{"data-slot":"operator-inbox","data-state":"loading",className:"grid gap-4 sm:grid-cols-[minmax(0,2fr)_minmax(0,3fr)]",children:[(0,b.jsx)(O.LoadingSkeleton,{variant:"list",rows:5,label:"Loading your inbox"}),(0,b.jsx)(O.LoadingSkeleton,{variant:"detail",label:"Loading the message",className:"max-sm:hidden"})]});if("error"===c)return(0,b.jsx)("div",{"data-slot":"operator-inbox","data-state":"error","data-testid":"inbox-error",children:(0,b.jsx)(N.InlineError,{variant:"page",title:"Couldn’t load your inbox",description:"This page couldn’t reach the fleet server. Messages to argo are stored on the server, so nothing is lost.",onRetry:d})});let j=(0,b.jsx)(ac,{...a,selectedId:h?.deliveryId,onSelect:a=>{i(a)}});return(0,b.jsxs)("div",{"data-slot":"operator-inbox","data-state":"ready",className:"flex grow flex-col",children:[(0,b.jsxs)("div",{className:"grid h-[calc(100dvh-12rem)] min-h-128 grid-cols-[minmax(20rem,24rem)_minmax(0,1fr)] overflow-hidden rounded-lg border border-border bg-card max-sm:hidden",children:[(0,b.jsxs)("div",{className:"flex min-h-0 flex-col overflow-y-auto border-r border-border",children:[j,bx(f)?(0,b.jsx)(bw,{segment:g,today:a.today,onSegmentChange:a.onSegmentChange}):null]}),(0,b.jsx)("div",{className:"flex min-h-0 flex-col bg-background",children:h?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(bv,{selected:h,questionPosition:a.questionPosition,onMove:a.onMove}),(0,b.jsx)(bu,{...a,selected:h,isPhone:!1})]}):(0,b.jsx)("p",{className:"m-auto text-meta text-muted-foreground",children:bx(f)?null:!0===a.isReadOnly?"Choose a question or message to read it.":"Choose a question to answer it, or a message to read it. J and K move."})})]}),(0,b.jsx)("div",{className:"flex grow flex-col gap-3 sm:hidden","data-hides-tab-bar":h?"":void 0,children:h?(0,b.jsx)(bu,{...a,selected:h,isPhone:!0}):(0,b.jsxs)(b.Fragment,{children:[j,bx(f)?(0,b.jsx)(bw,{segment:g,today:a.today,onSegmentChange:a.onSegmentChange}):null]})})]})}function bz(a){return a instanceof Error?a.message:"Try again in a moment."}function bA({filterParameter:a,selectedId:A}){var B,C;let D,E,F,G,H,J,K,L,M=(0,d.useRouter)(),N=(0,k.useNow)(),O=(0,h.readInboxFilter)(a),P=(0,h.useInboxEntries)(),Q=(0,h.useMarkRead)(),R=(0,h.useMarkDone)(),S=(0,h.useReply)(),T=(0,h.useAnswer)(),U=(0,j.useLiveFleet)(),V=(0,g.useConsoleFrame)(),W=(0,f.useAccess)();(0,l.useSignInWhenSessionEnds)([U.error]);let[X,Y]=(0,e.useState)(new Set),[Z,$]=(0,e.useState)(!1),[_,aa]=(0,e.useState)(!1),[ab,ac]=(0,e.useState)(new Map),[ad,ae]=(0,e.useState)(new Map),af=(0,e.useRef)(A),ag=P.data??[],ah=(E=v(D=y(ag,O)),F=u(w(D)),{questions:[...t(E.filter(i.isOpenEntry)),...u(E.filter(a=>!(0,i.isOpenEntry)(a)))],messages:F.filter(a=>!a.isFromPlugin),pluginMessages:F.filter(a=>a.isFromPlugin)}),ai=[...ah.questions,...ah.messages,...ah.pluginMessages].map(({deliveryId:a})=>a),aj=ag.find(a=>a.deliveryId===A),ak=x(ag).map(({deliveryId:a})=>a),al=aj?.kind==="question"?(B=aj.deliveryId,G=ak.indexOf(B),H=ak.filter(a=>a!==B),J=-1===G?void 0:ak[G+1],{number:-1===G?void 0:G+1,count:ak.length,next:J??H[0],left:H.length}):void 0,am=(C=aj?.kind==="message"?aj.inReplyTo:void 0,(0,q.useConsoleRead)({queryKey:[...h.INBOX_KEY,"thread",C],queryFn:()=>null==C?Promise.resolve([]):(0,r.fetchConsoleRead)({read:"inbox-thread",input:{messageId:C}}),enabled:null!=C}).data),an=a=>{M.replace((0,h.inboxPathOf)({filter:a.segment??O,deliveryId:a.deliveryId}),{scroll:!1})},ao=a=>{an({deliveryId:a});let b=ag.find(b=>b.deliveryId===a);b?.readAt===null&&"acknowledged"!==b.state&&W.canReceive&&Q.mutate({deliveryId:b.deliveryId,isRead:!0})},ap=({deliveryId:a,run:b,failure:c})=>{Y(b=>new Set([...b,a])),b().catch(a=>{(0,n.showToast)({title:c,description:bz(a),tone:"error"})}).finally(()=>{Y(b=>new Set([...b].filter(b=>b!==a)))})},aq=(a,b)=>{ae(c=>{let d=new Map(c);return void 0===b?d.delete(a):d.set(a,b),d})};(0,e.useEffect)(()=>{let a=af.current;if(af.current=A,void 0===a||a===A||!ad.has(a))return;let b=P.data?.find(b=>b.deliveryId===a);b?.kind==="question"&&(0,i.isOpenEntry)(b)&&(0,n.showToast)({title:`Your answer to “${b.question.title}” is not sent`,description:"Your choice and note wait on the question. Answer sends them.",tone:"info"})},[A,ad,P.data]);let ar=a=>{ap({deliveryId:a,run:()=>Q.mutateAsync({deliveryId:a,isRead:!1}),failure:"Couldn’t mark the message unread"}),an({})},as=ah.pluginMessages.filter(i.isOpenEntry),at=void 0===aj?void 0:(0,b.jsx)(p.TopBar,{title:"",live:U.live,back:{href:(0,h.inboxPathOf)({filter:O}),label:"Inbox"},actions:"question"===aj.kind?al?.number===void 0?void 0:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{className:"text-body-touch text-muted-foreground","data-testid":"inbox-question-position",children:[al.number," of ",al.count]}),void 0===al.next?null:(0,b.jsx)(m.Button,{variant:"ghost",size:"touch",isIconOnly:!0,"aria-label":"Next question",icon:(0,b.jsx)(c.ChevronDown,{}),"data-testid":"inbox-next-question-top",onClick:()=>{ao(al.next)}})]}):(0,b.jsx)(I,{messageId:aj.messageId,shipId:aj.sender.id,shipName:aj.sender.name,size:"touch",onMarkUnread:"acknowledged"!==aj.state&&W.canReceive?()=>{ar(aj.deliveryId)}:void 0})});return(0,b.jsx)(o.ListPage,{...V,title:"Inbox",live:U.live,phoneTopBar:at,children:(0,b.jsx)(by,{state:P.isError?"error":void 0===P.data?"loading":"ready",onRetry:()=>{P.refetch()},view:ah,segment:O,onSegmentChange:a=>{an({segment:a})},counts:void 0===P.data?{}:{open:y(ag,"open").length,done:y(ag,"done").length,all:ag.length},waiting:function(a,b){let[c]=x(a);return void 0===c?void 0:(0,s.duration)(new Date(c.sentAt),b)}(ag,N),today:(K=v(ag).filter(({question:a})=>null!==a.answer&&z(new Date(a.answer.sentAt),N)),L=w(ag).filter(({doneAt:a})=>null!==a&&z(new Date(a),N)),{answered:K.length,done:L.length}),selected:aj,thread:am,questionPosition:al,order:ai,onSelect:ao,onMove:a=>{let b=function(a,{current:b,direction:c}){let d=void 0===b?-1:a.indexOf(b);return -1===d?a[0]:a[Math.min(Math.max(d+("next"===c?1:-1),0),a.length-1)]}(ai,{current:aj?.deliveryId,direction:a});void 0!==b&&b!==aj?.deliveryId&&ao(b)},isPluginGroupExpanded:Z,onTogglePluginGroup:()=>{$(a=>!a)},onPluginGroupDone:W.canReceive&&as.length>0?()=>{aa(!0),Promise.allSettled(as.map(({deliveryId:a})=>R.mutateAsync({deliveryId:a}))).then(a=>{let b=a.filter(a=>"rejected"===a.status).length;b>0&&(0,n.showToast)({title:"Couldn’t mark every message done",description:`${String(b)} of ${String(a.length)} were not marked done. Try again in a moment.`,tone:"error"})}).finally(()=>{aa(!1)})}:void 0,isPluginGroupPending:_,onMarkDone:a=>{ap({deliveryId:a,run:()=>R.mutateAsync({deliveryId:a}),failure:"Couldn’t mark the message done"})},onMarkUnread:ar,onReply:({deliveryId:a,payload:b})=>{ap({deliveryId:a,run:()=>S.mutateAsync({deliveryId:a,payload:b,idempotencyKey:`reply-${a}-${crypto.randomUUID()}`}),failure:"Couldn’t send the reply"})},onAnswer:({deliveryId:a,answer:b})=>{let c=function({previous:a,answer:b,newKey:c}){var d;let e,f=void 0!==a&&(d=a.answer,(e=a=>"option"in a?a.option:void 0)(d)===e(b)&&d.note===b.note)?a.idempotencyKey:c;return{answer:b,idempotencyKey:f,failure:void 0}}({previous:ab.get(a),answer:b,newKey:`answer-${a}-${crypto.randomUUID()}`}),d=b=>{ac(c=>{let d=new Map(c);return void 0===b?d.delete(a):d.set(a,b),d})};d(c),aq(a,void 0);let e=ag.find(b=>b.deliveryId===a),f=e?.kind==="question"?e.question.title:"the question";Y(b=>new Set([...b,a])),T.mutateAsync({deliveryId:a,answer:b,idempotencyKey:c.idempotencyKey}).then(()=>{d(void 0)}).catch(b=>{d({...c,failure:bz(b)}),af.current!==a&&(0,n.showToast)({title:`Your answer to “${f}” was not sent`,description:bz(b),tone:"error"}),P.refetch()}).finally(()=>{Y(b=>new Set([...b].filter(b=>b!==a)))})},pendingIds:X,answerFailures:function(a){let b=new Map;for(let[c,{answer:d,failure:e}]of a)void 0!==e&&b.set(c,{answer:d,message:e});return b}(ab),answerDrafts:ad,onAnswerDraftChange:({deliveryId:a,draft:b})=>{aq(a,b)},now:N,isReadOnly:!W.canReceive})})}a.s(["InboxPageFor",0,function({filterParameter:a,selectedId:c}){return(0,b.jsx)(bA,{...void 0===a?{}:{filterParameter:a},...void 0===c?{}:{selectedId:c}})}],78451)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_console_app_%28console%29_inbox_inbox-page_tsx_1lm_c0k._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[71915,a=>{"use strict";var b=a.i(87924),c=a.i(65913),d=a.i(38246),e=a.i(50944),f=a.i(12068),g=a.i(24173),h=a.i(40392),i=a.i(50808),j=a.i(18783),k=a.i(93817),l=a.i(72131),m=a.i(65230);function n(a,b){return null===a?{kind:"all-to-all"}:{kind:"rules",rules:a.map(a=>({key:b(),from:[...a.from],to:[...a.to]}))}}function o(a){return"all-to-all"===a.kind?null:a.rules.map(a=>({from:[...a.from],to:[...a.to]}))}function p(a,b){return b?"rules"===a.kind?a:{kind:"rules",rules:[]}:{kind:"all-to-all"}}function q(a,b){return"all-to-all"===a.kind?a:{kind:"rules",rules:a.rules.map(a=>a.key===b.key?b.change(a):a)}}function r(a,b){return s(a)===s(b)}function s(a){return"string"==typeof a?a:`${a.labelId}=${a.value}`}let t={"*":"Any value","#":"The same value as the other side"};function u(a,b){let c=[],d=[];for(let e of a){let a=function(a,b){if("string"==typeof a){let[c]=(0,m.pickedChips)([a],b);return void 0===c?void 0:{labelId:c.labelId,key:c.key,value:c.value,mark:c.mark,ownerName:c.ownerName,term:a}}let c=b.labels.find(b=>b.id===a.labelId);if(void 0===c)return;let d=b.ownerOf.get(c.id);return{labelId:c.id,key:c.key,value:a.value,mark:d?.mark??"ship",ownerName:d?.name??c.owner.name,term:a}}(e,b);void 0===a?d.push(e):c.push(a)}return{chips:c,unknown:d}}function v(a,b){let c=a["from"===b?"to":"from"];return a[b].filter(a=>"string"!=typeof a&&"#"===a.value&&!c.some(b=>r(b,a)))}var w=a.i(36501);let x=[{side:"from",label:"From ships with"},{side:"to",label:"To ships with"}];function y({declared:a,error:c,onRetry:d,context:e}){let f;return f=void 0!==c?(0,b.jsx)(h.InlineError,{title:"Couldn’t read the declared rules",description:c,onRetry:d}):void 0===a?(0,b.jsx)(i.LoadingSkeleton,{variant:"list",rows:2,label:"Loading the declared rules"}):0===a.length?(0,b.jsx)(g.EmptyState,{variant:"section",title:"No plugin declares rules."}):(0,b.jsx)("ul",{className:"flex flex-col gap-3",children:a.map(a=>(0,b.jsxs)("li",{"data-testid":"network-declared-plugin",className:"flex flex-col gap-2",children:[(0,b.jsxs)("h3",{className:"text-meta font-medium","data-testid":"network-declared-by",children:["Declared by ",a.declaredBy]}),(0,b.jsx)("ul",{className:"flex flex-col gap-2",children:a.rules.map(a=>(0,b.jsx)("li",{"data-testid":"network-declared-rule",className:"flex flex-col gap-2 rounded-md border border-border p-3 sm:flex-row sm:items-start sm:gap-3",children:x.map(({side:c,label:d})=>(0,b.jsxs)("div",{className:"flex min-w-0 grow basis-0 items-start gap-3",children:["to"===c?(0,b.jsx)(j.ArrowRight,{"aria-hidden":!0,className:"mt-6 hidden size-(--size-icon) shrink-0 text-muted-foreground sm:block"}):null,(0,b.jsx)(z,{label:d,terms:a[c],context:e,testId:`network-declared-rule-${c}`})]},c))},JSON.stringify(a)))})]},a.shipId))}),(0,b.jsxs)("section",{"aria-labelledby":"network-declared","data-testid":"network-declared",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-declared",className:"text-body font-semibold",children:"Declared by plugins"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"Rules plugins need on the labels they own. The networking plugin adds them to your rules; while every ship may message every ship, they change nothing. Only the plugin changes them, and switching it off withdraws them."}),f]})}function z({label:a,terms:c,context:d,testId:e}){let{chips:f,unknown:g}=u(c,d);return(0,b.jsxs)("div",{className:"flex flex-col gap-1","data-testid":e,children:[(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:a}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[f.length+g.length===0?(0,b.jsx)("span",{className:"text-body",children:"Every ship"}):null,f.map((a,c)=>(0,b.jsxs)(l.Fragment,{children:[0===c?null:(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"and"}),(0,b.jsx)(w.LabelChip,{chip:a,testId:`${e}-value`,..."string"==typeof a.term?{}:{meaning:t[a.term.value]}})]},s(a.term))),g.map(a=>(0,b.jsxs)("span",{"data-testid":`${e}-unknown`,title:`${s(a)}: no longer in this fleet`,className:"inline-flex h-5.5 items-center gap-1 rounded-sm border border-tone-attention-border bg-tone-attention-bg px-1.5 text-id text-tone-attention-fg [&_svg]:size-3",children:[(0,b.jsx)(k.CircleAlert,{"aria-hidden":!0}),"A removed label"]},s(a)))]})]})}var A=a.i(70840),B=a.i(52562),C=a.i(64831);let D={name:"crosshair",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"22",x2:"18",y1:"12",y2:"12",key:"l9bcsi"}],["line",{x1:"6",x2:"2",y1:"12",y2:"12",key:"13hhkx"}],["line",{x1:"12",x2:"12",y1:"6",y2:"2",key:"10w3f3"}],["line",{x1:"12",x2:"12",y1:"22",y2:"18",key:"15g9kq"}]]};D.node;let E=(0,C.default)(D);var F=a.i(80487);let G=-Math.PI/2,H=2*Math.PI;function I(a){return Math.round(100*a)/100}let J={picked:"picked",reached:"may be messaged",unreached:"out of reach"};function K({ships:a,pickedShipId:c,reachableShipIds:d,reachError:e,onPick:f,onRetry:g}){var i;let j=(i=void 0===c?void 0:{pickedShipId:c,reachableShipIds:void 0===e?d:void 0},a.map((b,c)=>{var d,e;let f=G+H*c/a.length,g=1===a.length;return{ship:b,x:g?50:I(50+38*Math.cos(f)),y:g?50:I(50+38*Math.sin(f)),mark:(d=b.id,void 0===(e=i)?"none":d===e.pickedShipId?"picked":void 0===e.reachableShipIds?"none":e.reachableShipIds.includes(d)?"reached":"unreached")}})),k=j.find(a=>"picked"===a.mark),l=j.filter(a=>"reached"===a.mark);return(0,b.jsxs)("section",{"aria-labelledby":"network-reach","data-testid":"network-reach",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-reach",className:"text-body font-semibold",children:"Reach"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"The fleet as it stands now: pick a ship to see which ships the rules let it message. Argo reaches every ship, and every ship reaches argo."}),(0,b.jsxs)("div",{className:"relative flex flex-wrap gap-2 md:mx-auto md:block md:aspect-square md:w-full md:max-w-xl","data-testid":"network-reach-graph",children:[void 0===k?null:(0,b.jsx)("svg",{"aria-hidden":!0,viewBox:"0 0 100 100",preserveAspectRatio:"none",className:"pointer-events-none absolute inset-0 hidden size-full md:block",children:l.map(a=>(0,b.jsx)("line",{x1:k.x,y1:k.y,x2:a.x,y2:a.y,vectorEffect:"non-scaling-stroke",className:"stroke-muted-foreground",strokeWidth:1.5},a.ship.id))}),j.map(a=>(0,b.jsx)(L,{node:a,onPick:()=>{f("picked"===a.mark?void 0:a.ship.id)}},a.ship.id))]}),void 0===e?(0,b.jsx)("p",{className:"text-body",role:"status","data-testid":"network-reach-summary",children:function(a){let b=a.find(a=>"picked"===a.mark);if(void 0===b)return"Pick a ship to see which ships it may message.";let c=a.length-1,d=a.filter(a=>"reached"===a.mark).map(a=>a.ship.name);return a.every(a=>"picked"===a.mark||"none"===a.mark)?0===c?`${b.ship.name} is the only ship of the fleet.`:`Finding the ships ${b.ship.name} may message…`:d.length===c?`${b.ship.name} may message every other ship (${String(c)}).`:0===d.length?`${b.ship.name} may message no other ship.`:`${b.ship.name} may message ${String(d.length)} of ${String(c)} ships: ${d.join(", ")}.`}(j)}):(0,b.jsx)(h.InlineError,{title:"Couldn’t explain this ship’s reach",description:e,onRetry:g})]})}function L({node:a,onPick:c}){let{ship:d,mark:e}=a;return(0,b.jsx)(f.Button,{size:"sm",variant:"secondary","aria-pressed":"picked"===e,"aria-label":"none"===e?d.name:`${d.name}, ${J[e]}`,icon:function(a){switch(a){case"picked":return(0,b.jsx)(E,{"aria-hidden":!0});case"reached":return(0,b.jsx)(B.Check,{"aria-hidden":!0});case"unreached":return(0,b.jsx)(A.Ban,{"aria-hidden":!0});case"none":return}}(e),"data-testid":"network-reach-ship","data-mark":e,style:{left:`${String(a.x)}%`,top:`${String(a.y)}%`},className:(0,F.classNames)("md:absolute md:-translate-x-1/2 md:-translate-y-1/2","picked"===e&&"bg-accent ring-2 ring-ring","unreached"===e&&"opacity-45"),onClick:c,children:d.name})}let M={"block-all":{name:"Block all",meaning:"Only argo and answers to a received message get through."},"open-all":{name:"Open all",meaning:"Every ship may message every ship."},"keep-latest":{name:"Keep the latest rules",meaning:"The rules it supplied last stay in force."}};var N=a.i(75297),O=a.i(45098),P=a.i(48136);function Q({declaration:a,options:c,bounds:d,isSaving:e,saveError:g,savedNote:i,onSave:j}){let[k,m]=(0,l.useState)(a.whileUnavailable),[n,o]=(0,l.useState)(String(a.notRespondingAfterSeconds)),p=(0,l.useId)(),q=function(a,b){if(!/^\d+$/.test(a.trim()))return"A whole number of seconds.";let c=Number(a.trim());return c<b.min?`At least ${String(b.min)} seconds.`:c>b.max?`At most ${String(b.max)} seconds.`:void 0}(n,d),r=k!==a.whileUnavailable||n.trim()!==String(a.notRespondingAfterSeconds),s=Object.fromEntries(c.map(a=>[a,M[a].name]));return(0,b.jsxs)("section",{"aria-labelledby":"network-declaration","data-testid":"network-declaration",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-declaration",className:"text-body font-semibold",children:"While the networking plugin does not respond"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"The fleet judges the plugin not responding when its ship makes no call for this long, and then applies what you choose here, at every send."}),(0,b.jsxs)("form",{className:"flex flex-col gap-3",onSubmit:a=>{a.preventDefault(),void 0===q&&j({whileUnavailable:k,notRespondingAfterSeconds:Number(n.trim())})},children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("span",{className:"text-body font-medium",children:"What holds"}),(0,b.jsxs)(P.Select,{items:s,value:k,disabled:e,onValueChange:a=>{let b=c.find(b=>b===a);void 0!==b&&m(b)},children:[(0,b.jsx)(P.SelectTrigger,{"aria-label":"What holds while the plugin does not respond","data-testid":"network-declaration-while",className:"h-(--size-control) text-body",children:(0,b.jsx)(P.SelectValue,{})}),(0,b.jsx)(P.SelectContent,{children:c.map(a=>(0,b.jsx)(P.SelectItem,{value:a,children:M[a].name},a))})]}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground","data-testid":"network-declaration-meaning",children:M[k].meaning})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(O.Label,{htmlFor:p,children:"Not responding after (seconds)"}),(0,b.jsx)(N.Input,{id:p,inputMode:"numeric",className:"w-40",value:n,disabled:e,"aria-invalid":void 0!==q,"aria-describedby":`${p}-hint`,"data-testid":"network-declaration-seconds",onChange:a=>{o(a.target.value)}}),(0,b.jsx)("p",{id:`${p}-hint`,className:void 0===q?"text-meta text-muted-foreground":"text-meta text-destructive",children:q??`From ${String(d.min)} to ${String(d.max)} seconds.`})]}),(0,b.jsx)("div",{children:(0,b.jsx)(f.Button,{type:"submit",variant:"primary",isLoading:e,disabled:!r||void 0!==q,"data-testid":"network-declaration-save",children:"Save"})})]}),void 0===g?null:(0,b.jsx)(h.InlineError,{variant:"field",title:"Couldn’t save",description:g}),void 0===i||r?null:(0,b.jsx)("p",{role:"status",className:"text-meta text-muted-foreground","data-testid":"network-declaration-note",children:i})]})}var R=a.i(3512),S=a.i(51675),T=a.i(59613),U=a.i(2374),V=a.i(74215),W=a.i(19721),X=a.i(60275);let Y=(0,W.default)(async()=>{},{loadableGenerated:{modules:[59068]},ssr:!1});function Z({label:a,picked:c,unknown:e,groups:g,max:h,isDisabled:i,problem:j,onAdd:m,onRemove:n,testId:o,popoverTestId:p}){let[q,r]=(0,l.useState)(!1);return(0,b.jsxs)("div",{className:"flex flex-col gap-1","data-testid":o,children:[(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:a}),(0,b.jsxs)("div",{className:"flex min-h-(--size-control-sm) flex-wrap items-center gap-1.5",children:[c.length+e.length===0?(0,b.jsx)("span",{className:"text-body",children:"Every ship"}):null,c.map((a,c)=>(0,b.jsxs)(l.Fragment,{children:[0===c?null:(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"and"}),(0,b.jsx)(w.LabelChip,{chip:a,testId:`${o}-value`,..."string"==typeof a.term?{}:{meaning:t[a.term.value]},...i?{}:{onRemove:()=>{n(a.term)}}})]},s(a.term))),e.map(a=>(0,b.jsxs)("span",{"data-testid":`${o}-unknown`,title:`${s(a)}: no longer in this fleet`,className:"inline-flex h-5.5 items-center gap-1 rounded-sm border border-tone-attention-border bg-tone-attention-bg px-1.5 text-id text-tone-attention-fg [&_svg]:size-3",children:[(0,b.jsx)(k.CircleAlert,{"aria-hidden":!0}),"A removed label",!0===i?null:(0,b.jsx)("button",{type:"button","aria-label":"Remove the removed label",onClick:()=>{n(a)},className:"-mr-1 ml-0.5 inline-flex size-4 items-center justify-center rounded-xs hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring",children:(0,b.jsx)(V.X,{"aria-hidden":!0})})]},s(a))),c.length+e.length>=h?null:(0,b.jsxs)(X.Popover,{open:q,onOpenChange:r,children:[(0,b.jsx)(X.PopoverTrigger,{render:(0,b.jsx)(f.Button,{type:"button",variant:"ghost",size:"xs",icon:(0,b.jsx)(R.Plus,{}),disabled:i,"data-testid":`${o}-add`}),children:"Add label"}),(0,b.jsxs)(X.PopoverContent,{align:"start",sideOffset:6,className:"w-80 p-2","data-testid":p,children:[(0,b.jsx)("span",{className:"block px-2 pt-1 pb-2 text-body font-medium",children:a}),(0,b.jsx)(Y,{groups:g,pickedValueIds:c.flatMap(a=>"string"==typeof a.term?[a.term]:[]),onPick:a=>{r(!1),m(a)},terms:{picked:c.flatMap(a=>"string"==typeof a.term?[]:[a.term]),onPick:a=>{r(!1),m(a)}}}),(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:["All must hold. * is any value, # the same as the other side.",(0,b.jsx)(d.default,{href:"/labels",className:"font-medium text-foreground hover:underline",children:"Manage labels"})]})]})]})]}),void 0===j?null:(0,b.jsx)("p",{role:"status",className:"text-meta text-tone-attention-fg","data-testid":`${o}-problem`,children:j}),0===e.length?null:(0,b.jsx)("p",{role:"alert",className:"text-meta text-tone-attention-fg",children:"A label here was removed from the fleet: this side matches no ship until you remove it."})]})}let $=[{side:"from",label:"From ships with"},{side:"to",label:"To ships with"}],_=()=>crypto.randomUUID();function aa({rules:a,context:c,limits:d,isSaving:e,saveError:g,savedNote:i,onSave:k}){let[s,t]=(0,l.useState)(()=>n(a,_)),[w,x]=(0,l.useState)(!1),y=(0,m.filterGroupsOf)(c),z=JSON.stringify(o(s))!==JSON.stringify(a);return(0,b.jsxs)("section",{"aria-labelledby":"network-rules","data-testid":"network-rules",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-rules",className:"text-body font-semibold",children:"Rules"}),"all-to-all"===s.kind?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"text-body","data-testid":"network-rules-state",children:"No rules: every ship may message every ship."}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"With rules, a ship may message another only when a rule allows it. Argo always reaches every ship and every ship reaches argo, and a ship may always answer the sender of a message it received."}),(0,b.jsx)("div",{children:(0,b.jsx)(f.Button,{variant:"primary",icon:(0,b.jsx)(R.Plus,{"aria-hidden":!0}),disabled:e,"data-testid":"network-rules-on",onClick:()=>{t(p(s,!0))},children:"Set rules"})})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"text-body","data-testid":"network-rules-state",children:0===s.rules.length?"No rule allows anything yet: once saved, only argo and answers to a received message get through.":"A ship may message another only when a rule allows it. Argo and answers to a received message always get through."}),0===s.rules.length?null:(0,b.jsx)("ul",{className:"flex flex-col gap-2",children:s.rules.map((a,g)=>(0,b.jsxs)("li",{"data-testid":"network-rule",className:"flex flex-col gap-2 rounded-md border border-border p-3 sm:flex-row sm:items-start sm:gap-3",children:[$.map(({side:f,label:g})=>{let h,i=u(a[f],c);return(0,b.jsxs)("div",{className:"flex min-w-0 grow basis-0 items-start gap-3",children:["to"===f?(0,b.jsx)(j.ArrowRight,{"aria-hidden":!0,className:"mt-6 hidden size-(--size-icon) shrink-0 text-muted-foreground sm:block"}):null,(0,b.jsx)(Z,{label:g,picked:i.chips,unknown:i.unknown,groups:y,max:d.selectorMax,isDisabled:e,...void 0===(h=function(a,b){let[c]=v(a,b.side);if(void 0===c||"string"==typeof c)return;let d=b.context.labels.find(a=>a.id===c.labelId)?.key??c.labelId;return`${d}=# needs ${d}=# on the other side: # matches the same value there.`}(a,{side:f,context:c}))?{}:{problem:h},testId:`network-rule-${f}`,popoverTestId:"network-rule-popover",onAdd:b=>{var c;t(q(s,{key:(c={rule:a.key,side:f,term:b,limits:d}).rule,change:a=>{let b=a[c.side];return b.some(a=>r(a,c.term))||b.length>=c.limits.selectorMax?a:{...a,[c.side]:[...b,c.term]}}}))},onRemove:b=>{var c;t(q(s,{key:(c={rule:a.key,side:f,term:b}).rule,change:a=>({...a,[c.side]:a[c.side].filter(a=>!r(a,c.term))})}))}})]},f)}),(0,b.jsx)(f.Button,{variant:"ghost",size:"xs",icon:(0,b.jsx)(S.Trash2,{"aria-hidden":!0}),disabled:e,"aria-label":`Remove rule ${String(g+1)}`,"data-testid":"network-rule-remove",onClick:()=>{var b;t((b=a.key,"all-to-all"===s.kind?s:{kind:"rules",rules:s.rules.filter(a=>a.key!==b)}))}})]},a.key))}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[s.rules.length>=d.rulesMax?null:(0,b.jsx)(f.Button,{size:"sm",icon:(0,b.jsx)(R.Plus,{"aria-hidden":!0}),disabled:e,"data-testid":"network-rules-add",onClick:()=>{var a;t((a={newKey:_,limits:d},"all-to-all"===s.kind||s.rules.length>=a.limits.rulesMax?s:{kind:"rules",rules:[...s.rules,{key:a.newKey(),from:[],to:[]}]}))},children:"Add rule"}),(0,b.jsxs)("span",{className:"text-meta text-muted-foreground tabular-nums","data-testid":"network-rules-count",children:[s.rules.length," of ",d.rulesMax," rules"]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 border-t border-border pt-3",children:[(0,b.jsx)(f.Button,{variant:"primary",isLoading:e,disabled:!z||"rules"===s.kind&&s.rules.some(a=>v(a,"from").length+v(a,"to").length>0),"data-testid":"network-rules-save",onClick:()=>{k(o(s))},children:"Save rules"}),z?(0,b.jsx)(f.Button,{disabled:e,"data-testid":"network-rules-discard",onClick:()=>{t(n(a,_))},children:"Discard changes"}):null,(0,b.jsx)(f.Button,{variant:"ghost",className:"ml-auto",disabled:e,"data-testid":"network-rules-off",onClick:()=>{null===a?t(p(s,!1)):x(!0)},children:"Remove all rules"})]})]}),void 0===g?null:(0,b.jsx)(h.InlineError,{variant:"field",title:"Couldn’t save the rules",description:g}),void 0===i||z?null:(0,b.jsx)("p",{role:"status",className:"text-meta text-muted-foreground","data-testid":"network-rules-note",children:i}),(0,b.jsx)(T.AlertDialog,{open:w,onOpenChange:a=>{a||e||x(!1)},children:(0,b.jsxs)(T.AlertDialogContent,{"data-testid":"network-rules-off-dialog",className:U.dialogSurface.phoneSheet,children:[(0,b.jsxs)(T.AlertDialogHeader,{children:[(0,b.jsx)(T.AlertDialogTitle,{children:"Remove all rules?"}),(0,b.jsx)(T.AlertDialogDescription,{children:"Every ship may message every ship again from now on. The rules are gone: to have them back, set them again."})]}),(0,b.jsxs)(T.AlertDialogFooter,{children:[(0,b.jsx)(T.AlertDialogClose,{render:(0,b.jsx)(f.Button,{disabled:e}),children:"Cancel"}),(0,b.jsx)(f.Button,{variant:"destructive",isLoading:e,"data-testid":"network-rules-off-confirm",onClick:()=>{x(!1),k(null)},children:"Remove all rules"})]})]})})]})}var ab=a.i(33217),ac=a.i(14499),ad=a.i(72872);function ae({refusals:a,error:c,onRetry:d,context:e,now:f}){let j;return j=void 0!==c?(0,b.jsx)(h.InlineError,{title:"Couldn’t read the refusals",description:c,onRetry:d}):void 0===a?(0,b.jsx)(i.LoadingSkeleton,{variant:"list",rows:3,label:"Loading the refusals"}):0===a.length?(0,b.jsx)(g.EmptyState,{variant:"section",title:"No send has been refused."}):(0,b.jsx)("ol",{className:"flex flex-col gap-2","data-testid":"network-refusals-list",children:a.map(a=>(0,b.jsx)(af,{refusal:a,context:e,now:f},a.id))}),(0,b.jsxs)("section",{"aria-labelledby":"network-refusals","data-testid":"network-refusals",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-refusals",className:"text-body font-semibold",children:"Refusals"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"The sends the rules refused, newest first, with both ships’ labels as they were then. The sender was told only that its send was refused."}),j]})}function af({refusal:a,context:c,now:d}){let e,f=new Date(a.at),{recipient:g}=a,h="ship"===g.kind?[g.ship]:g.ships;return(0,b.jsxs)("li",{"data-testid":"network-refusal",className:"flex flex-col gap-2 rounded-md border border-border px-3 py-2.5",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-baseline justify-between gap-x-3 gap-y-0.5",children:[(0,b.jsx)("p",{className:"text-body font-medium",children:function(a){let{sender:b,recipient:c}=a;switch(c.kind){case"ship":return`${b.name} tried to message ${c.ship.name}.`;case"type":return`${b.name} tried to message the type ${c.type}: ${(0,m.listed)(c.ships.map(a=>a.name))}.`}}(a)}),(0,b.jsx)("time",{dateTime:a.at,title:(0,ad.fullDateTime)(f),className:"text-meta text-muted-foreground tabular-nums",children:(0,ad.relativeTime)(f,d)})]}),(0,b.jsxs)("dl",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(ag,{side:"From",ship:a.sender,context:c}),h.map(a=>(0,b.jsx)(ag,{side:"To",ship:a,context:c},a.id))]}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:(e=`Refused by network settings version ${String(a.settingsVersion)}`,null===a.whilePluginUnavailable?`${e}.`:`${e} while the networking plugin was not responding: ${M[a.whilePluginUnavailable].name}.`)})]})}function ag({side:a,ship:c,context:d}){let e=(0,m.chipsOf)(c,d);return(0,b.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1",children:[(0,b.jsxs)("dt",{className:"text-meta text-muted-foreground",children:[a," ",(0,b.jsx)("span",{className:"font-medium text-foreground",children:c.name})]}),(0,b.jsx)("dd",{className:"flex min-w-0 flex-wrap items-center gap-1",children:0===e.length?(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"No labels"}):e.map(a=>(0,b.jsx)(w.LabelChip,{chip:a,testId:"network-refusal-label"},a.valueId))})]})}var ah=a.i(91003),ai=a.i(38023),aj=a.i(65563),ak=a.i(1851),al=a.i(90146),am=a.i(67336),an=a.i(10023),ao=a.i(28562),ap=a.i(68450),aq=a.i(34159),ar=a.i(42871),as=a.i(10572);a.s(["NetworkPageFor",0,function({pickedShipId:a}){var j,k;let l,m,n,o,p=(0,e.useRouter)(),q=(0,ap.useNow)(),r=(0,ai.useConsoleFrame)(),s=(0,an.useNeedsAttention)(),t=(0,am.useLiveFleet)(),u=(0,aj.useAccess)(),v=(0,aq.usePluginNav)(),w=(0,ao.useHasNetwork)(),x=(0,ao.useNetwork)(),z=(0,al.useLabelContext)(),A=(0,al.useFleetSnapshot)(),B=(j=w?a:void 0,m=(0,ac.useTRPC)(),(0,ab.useQuery)(m.fleet.explainReach.queryOptions(void 0===j?ar.skipToken:{fromShipId:j}))),C=(n=(0,ac.useTRPC)(),(0,ab.useQuery)(n.fleet.reachRefusals.queryOptions(void 0,{enabled:w}))),D=(o=(0,ac.useTRPC)(),(0,ab.useQuery)(o.fleet.declaredNetworkRules.queryOptions(void 0,{enabled:w}))),E=(0,ao.useSaveNetworkRules)(),F=(0,ao.useSaveNetworkDeclaration)(),{networkRulesMax:G,shipLabelsMax:H,whileUnavailable:I,notRespondingAfterMinSeconds:J,notRespondingAfterMaxSeconds:L}=(0,ak.useConsoleConstants)();if((0,as.useSignInWhenSessionEnds)([s.error,t.error]),w)if(x.isError)l=(0,b.jsx)(h.InlineError,{title:"Couldn’t read the network",description:x.error.message,onRetry:()=>{x.refetch()}});else if(void 0===x.data||void 0===z||void 0===A.data)l=(0,b.jsx)(i.LoadingSkeleton,{variant:"detail",rows:4,label:"Loading the network"});else{let c;l=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(aa,{rules:x.data.rules,context:z,limits:{rulesMax:G,selectorMax:H},isSaving:E.isPending,saveError:E.error?.message,savedNote:void 0===E.data?void 0:function(a){switch(a){case"supplied":return"Saved. The fleet enforces them from now on.";case"waiting":return"Saved. The fleet does not answer yet: the networking plugin supplies them as soon as it does.";case"not-connected":case"unregistered":return"Saved."}}(E.data.supply),onSave:a=>{E.mutate(a)}},JSON.stringify(x.data.rules)),(0,b.jsx)(y,{declared:void 0===D.data?void 0:(k=D.data,c=new Map(A.data.map(a=>[a.id,a.name])),k.filter(({rules:a})=>a.length>0).map(({shipId:a,rules:b})=>({shipId:a,declaredBy:c.get(a)??a,rules:b})).sort((a,b)=>a.declaredBy.localeCompare(b.declaredBy))),error:D.error?.message,onRetry:()=>{D.refetch()},context:z}),(0,b.jsx)(Q,{declaration:x.data.declaration,options:I,bounds:{min:J,max:L},isSaving:F.isPending,saveError:F.error?.message,savedNote:void 0===F.data?void 0:function(a){switch(a){case"supplied":return"Saved. The networking plugin registered again with it.";case"waiting":return"Saved. The fleet does not answer yet: the networking plugin registers again with it as soon as it does.";case"not-connected":case"unregistered":return"Saved."}}(F.data.supply),onSave:a=>{F.mutate(a)}},JSON.stringify(x.data.declaration)),(0,b.jsx)(K,{ships:A.data.filter(a=>"retired"!==a.status&&"viewer"!==a.kind).map(a=>({id:a.id,name:a.name,isOperator:"operator"===a.kind})).sort((a,b)=>Number(b.isOperator)-Number(a.isOperator)||a.name.localeCompare(b.name)),pickedShipId:a,reachableShipIds:B.data?.reachableShipIds,reachError:B.error?.message,onPick:a=>{p.replace(void 0===a?"/network":`/network?reach=${a}`,{scroll:!1})},onRetry:()=>{B.refetch()}}),(0,b.jsx)(ae,{refusals:C.data,error:C.error?.message,onRetry:()=>{C.refetch()},context:z,now:q})]})}else l=(0,b.jsx)(g.EmptyState,{icon:(0,b.jsx)(c.Network,{"aria-hidden":!0}),title:u.canEditNetwork?"The networking plugin is not connected":"Only argo sees the network rules",description:u.canEditNetwork?"Connect it in Settings. Until it supplies rules, every ship may message every ship.":void 0,action:u.canEditNetwork&&v.hasSettings?(0,b.jsx)(f.Button,{nativeButton:!1,render:(0,b.jsx)(d.default,{href:"/settings"}),"data-testid":"network-open-settings",children:"Open Settings"}):void 0});return(0,b.jsx)(ah.ListPage,{...r,title:"Network",description:"Who may message whom. The networking plugin supplies these rules to the fleet, which checks them on every send. Only argo sees this page.",live:t.live,children:l})}],71915)}];
|
|
1
|
+
module.exports=[71915,a=>{"use strict";var b=a.i(87924),c=a.i(65913),d=a.i(38246),e=a.i(50944),f=a.i(12068),g=a.i(24173),h=a.i(40392),i=a.i(50808),j=a.i(39353),k=a.i(76166),l=a.i(45469);let m={argo:"You turn it on or off.",plugin:"The networking plugin turns it off while your rules apply, and on for all-to-all."};function n({rows:a,error:c,onRetry:d,isTurning:e,turnError:f,onViewerReadChange:g}){let o;return o=void 0!==c?(0,b.jsx)(h.InlineError,{title:"Couldn’t read the built-in rules",description:c,onRetry:d}):void 0===a?(0,b.jsx)(i.LoadingSkeleton,{variant:"list",rows:3,label:"Loading the built-in rules"}):(0,b.jsx)("ul",{className:"flex flex-col divide-y divide-border",children:a.map(a=>(0,b.jsxs)("li",{"data-testid":"network-built-in-rule",className:"flex items-start justify-between gap-3 py-2 first:pt-0 last:pb-0",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-0.5",children:[(0,b.jsx)("span",{className:"text-body font-medium","data-testid":"network-built-in-rule-name",children:a.name}),(0,b.jsxs)("span",{className:"text-meta text-muted-foreground",children:[a.meaning," ","never"===a.turnedBy?null:m[a.turnedBy]]})]}),"argo"===a.turnedBy?(0,b.jsx)(l.Switch,{checked:a.isOn,disabled:e,"aria-label":`${a.name}: ${a.isOn?"on":"off"}`,"data-testid":"network-built-in-viewer-read",onCheckedChange:a=>{g(a)}}):(0,b.jsx)(k.Badge,{variant:"outline","data-testid":"network-built-in-rule-state",children:"never"===a.turnedBy?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(j.Lock,{"aria-hidden":!0}),"Never off"]}):a.isOn?"On":"Off"})]},a.key))}),(0,b.jsxs)("section",{"aria-labelledby":"network-built-in","data-testid":"network-built-in",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-built-in",className:"text-body font-semibold",children:"Built-in rules"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"The fleet’s own rules, beside yours and the declared ones. They hold before any rule below."}),o,void 0===f?null:(0,b.jsx)(h.InlineError,{variant:"field",title:"Couldn’t turn the viewer reading",description:f})]})}var o=a.i(18783),p=a.i(93817),q=a.i(72131),r=a.i(56757),s=a.i(2811);let t=r.z.string(),u=r.z.object({id:(0,s.idSchema)("labelValue"),value:r.z.string()}),v=r.z.object({labelId:(0,s.idSchema)("label"),key:r.z.string(),valueId:(0,s.idSchema)("labelValue"),value:r.z.string()});r.z.object({valueIds:r.z.array((0,s.idSchema)("labelValue")).optional()}).optional(),r.z.object({key:t,values:r.z.array(t)}),r.z.object({labelId:(0,s.idSchema)("label"),values:r.z.array(u)}),r.z.object({labelId:(0,s.idSchema)("label"),values:r.z.array(t)}),r.z.object({values:r.z.array(u)}),r.z.object({labelId:(0,s.idSchema)("label")}),r.z.object({key:t,value:t}),r.z.object({labelId:(0,s.idSchema)("label"),valueId:(0,s.idSchema)("labelValue")}),r.z.object({shipId:(0,s.idSchema)("ship"),valueId:(0,s.idSchema)("labelValue")}),r.z.object({});let w=r.z.object({id:(0,s.idSchema)("label"),key:r.z.string(),values:r.z.array(u),owner:r.z.object({id:(0,s.idSchema)("ship"),name:r.z.string()})});r.z.array(w);let x=r.z.union([(0,s.idSchema)("labelValue"),r.z.object({labelId:(0,s.idSchema)("label"),value:r.z.enum(["*","#"])}),r.z.object({owner:r.z.union([(0,s.idSchema)("ship"),r.z.enum(["*","#"])])})]);function y(a){return"string"!=typeof a&&"owner"in a}let z=r.z.array(x),A=["send","read","manage"],B=r.z.object({verb:r.z.enum(A),from:z,to:z});r.z.object({rules:r.z.array(B)});let C=["argo","owner","answer","viewerRead","open"];r.z.object({rule:r.z.enum(C),verb:r.z.enum(A).optional(),isOn:r.z.boolean()}).refine(a=>"open"===a.rule==(void 0!==a.verb),{message:"open names its verb, and no other built-in rule names one",path:["verb"]});let D=r.z.union([r.z.object({rule:r.z.enum(["argo","owner","answer","viewerRead"]),isOn:r.z.boolean()}),r.z.object({rule:r.z.literal("open"),verb:r.z.enum(A),isOn:r.z.boolean()})]);r.z.array(D),r.z.object({version:r.z.int().min(1)}),r.z.object({rules:r.z.array(B)}),r.z.object({rules:r.z.int().min(0)}),r.z.array(r.z.object({shipId:(0,s.idSchema)("ship"),rules:r.z.array(B)})),r.z.object({whileUnavailable:r.z.enum(["block-all","open-all","keep-latest"]),notRespondingAfterSeconds:r.z.int().min(60).max(86400)});let E=r.z.object({id:(0,s.idSchema)("ship"),name:r.z.string(),labels:r.z.array(v),owner:r.z.object({id:(0,s.idSchema)("ship"),name:r.z.string()}).nullable()}),F=r.z.object({id:(0,s.idSchema)("reachRefusal"),at:r.z.iso.datetime(),sender:E,askedBy:E.nullable(),recipient:r.z.discriminatedUnion("kind",[r.z.object({kind:r.z.literal("ship"),ship:E}),r.z.object({kind:r.z.literal("type"),type:r.z.string(),ships:r.z.array(E)})]),verb:r.z.enum(A),settingsVersion:r.z.int().min(1),whilePluginUnavailable:r.z.enum(["block-all","keep-latest"]).nullable()});r.z.array(F),r.z.object({fromShipId:(0,s.idSchema)("ship"),toShipId:(0,s.idSchema)("ship").optional()});let G=r.z.union([r.z.object({builtIn:r.z.enum(C)}),r.z.object({plugin:r.z.int().min(0)}),r.z.object({declared:(0,s.idSchema)("ship"),index:r.z.int().min(0)})]),H=r.z.array(r.z.object({shipId:(0,s.idSchema)("ship"),rule:G}));r.z.object({send:H,read:H,manage:H});var I=a.i(65230);let J={send:"May send to",read:"May read",manage:"May manage"};function K(a,b){return null===a?{kind:"all-to-all"}:{kind:"rules",rules:a.map(a=>({key:b(),verb:a.verb,from:[...a.from],to:[...a.to]}))}}function L(a){return"all-to-all"===a.kind?null:a.rules.map(a=>({verb:a.verb,from:[...a.from],to:[...a.to]}))}function M(a,b){return b?"rules"===a.kind?a:{kind:"rules",rules:[]}:{kind:"all-to-all"}}function N(a,b){return"all-to-all"===a.kind?a:{kind:"rules",rules:a.rules.map(a=>a.key===b.key?b.change(a):a)}}function O(a,b){return P(a)===P(b)}function P(a){return"string"==typeof a?a:y(a)?`owner=${a.owner}`:`${a.labelId}=${a.value}`}let Q={"*":"Any value","#":"The same value as the other side"},R={"*":"Any owner","#":"The same owner as the other side"};function S(a,b){let c=[],d=[],e=[];for(let f of a){if(y(f)){let a=function(a,b){if("*"===a.owner||"#"===a.owner)return{term:a,text:`owner=${a.owner}`};let c=b.ships.find(b=>b.id===a.owner);return void 0===c?void 0:{term:a,text:`owner=${c.name}`}}(f,b);void 0===a?e.push(f):d.push(a);continue}let a=function(a,b){if("string"==typeof a){let[c]=(0,I.pickedChips)([a],b);return void 0===c?void 0:{labelId:c.labelId,key:c.key,value:c.value,mark:c.mark,ownerName:c.ownerName,term:a}}let c=b.labels.find(b=>b.id===a.labelId);if(void 0===c)return;let d=b.ownerOf.get(c.id);return{labelId:c.id,key:c.key,value:a.value,mark:d?.mark??"ship",ownerName:d?.name??c.owner.name,term:a}}(f,b);void 0===a?e.push(f):c.push(a)}return{chips:c,owners:d,unknown:e}}function T(a,b){let c=a["from"===b?"to":"from"];return a[b].filter(a=>"string"!=typeof a&&!y(a)&&"#"===a.value&&!c.some(b=>O(b,a)))}function U(a,b){let c=a=>a.some(a=>y(a)&&"#"===a.owner);return c(a[b])&&!c(a["from"===b?"to":"from"])}var V=a.i(36501);let W=[{side:"from",label:"From ships with"},{side:"to",label:"To ships with"}];function X({declared:a,error:c,onRetry:d,context:e}){let f;return f=void 0!==c?(0,b.jsx)(h.InlineError,{title:"Couldn’t read the declared rules",description:c,onRetry:d}):void 0===a?(0,b.jsx)(i.LoadingSkeleton,{variant:"list",rows:2,label:"Loading the declared rules"}):0===a.length?(0,b.jsx)(g.EmptyState,{variant:"section",title:"No plugin declares rules."}):(0,b.jsx)("ul",{className:"flex flex-col gap-3",children:a.map(a=>(0,b.jsxs)("li",{"data-testid":"network-declared-plugin",className:"flex flex-col gap-2",children:[(0,b.jsxs)("h3",{className:"text-meta font-medium","data-testid":"network-declared-by",children:["Declared by ",a.declaredBy]}),(0,b.jsx)("ul",{className:"flex flex-col gap-2",children:a.rules.map(a=>(0,b.jsx)("li",{"data-testid":"network-declared-rule",className:"flex flex-col gap-2 rounded-md border border-border p-3 sm:flex-row sm:items-start sm:gap-3",children:W.map(({side:c,label:d})=>(0,b.jsxs)("div",{className:"flex min-w-0 grow basis-0 items-start gap-3",children:["to"===c?(0,b.jsx)("span",{className:"mt-6 shrink-0 text-meta text-muted-foreground","data-testid":"network-declared-rule-verb",children:J[a.verb]}):null,"to"===c?(0,b.jsx)(o.ArrowRight,{"aria-hidden":!0,className:"mt-6 hidden size-(--size-icon) shrink-0 text-muted-foreground sm:block"}):null,(0,b.jsx)(Y,{label:d,terms:a[c],context:e,testId:`network-declared-rule-${c}`})]},c))},JSON.stringify(a)))})]},a.shipId))}),(0,b.jsxs)("section",{"aria-labelledby":"network-declared","data-testid":"network-declared",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-declared",className:"text-body font-semibold",children:"Declared by plugins"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"Rules plugins need on the labels they own. The networking plugin adds them to your rules; while every ship may message every ship, they change nothing. Only the plugin changes them, and switching it off withdraws them."}),f]})}function Y({label:a,terms:c,context:d,testId:e}){let{chips:f,unknown:g}=S(c,d);return(0,b.jsxs)("div",{className:"flex flex-col gap-1","data-testid":e,children:[(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:a}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[f.length+g.length===0?(0,b.jsx)("span",{className:"text-body",children:"Every ship"}):null,f.map((a,c)=>(0,b.jsxs)(q.Fragment,{children:[0===c?null:(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"and"}),(0,b.jsx)(V.LabelChip,{chip:a,testId:`${e}-value`,..."string"==typeof a.term?{}:{meaning:Q[a.term.value]}})]},P(a.term))),g.map(a=>(0,b.jsxs)("span",{"data-testid":`${e}-unknown`,title:`${P(a)}: no longer in this fleet`,className:"inline-flex h-5.5 items-center gap-1 rounded-sm border border-tone-attention-border bg-tone-attention-bg px-1.5 text-id text-tone-attention-fg [&_svg]:size-3",children:[(0,b.jsx)(p.CircleAlert,{"aria-hidden":!0}),"A removed label"]},P(a)))]})]})}var Z=a.i(70840),$=a.i(52562),_=a.i(64831);let aa={name:"crosshair",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"22",x2:"18",y1:"12",y2:"12",key:"l9bcsi"}],["line",{x1:"6",x2:"2",y1:"12",y2:"12",key:"13hhkx"}],["line",{x1:"12",x2:"12",y1:"6",y2:"2",key:"10w3f3"}],["line",{x1:"12",x2:"12",y1:"22",y2:"18",key:"15g9kq"}]]};aa.node;let ab=(0,_.default)(aa);var ac=a.i(80487);function ad(a){return a.send.map(a=>a.shipId)}let ae=-Math.PI/2,af=2*Math.PI;function ag(a){return Math.round(100*a)/100}let ah={picked:"picked",reached:"may be messaged",unreached:"out of reach"};function ai({ships:a,pickedShipId:c,reachableShipIds:d,reachError:e,onPick:f,onRetry:g}){var i;let j=(i=void 0===c?void 0:{pickedShipId:c,reachableShipIds:void 0===e?d:void 0},a.map((b,c)=>{var d,e;let f=ae+af*c/a.length,g=1===a.length;return{ship:b,x:g?50:ag(50+38*Math.cos(f)),y:g?50:ag(50+38*Math.sin(f)),mark:(d=b.id,void 0===(e=i)?"none":d===e.pickedShipId?"picked":void 0===e.reachableShipIds?"none":e.reachableShipIds.includes(d)?"reached":"unreached")}})),k=j.find(a=>"picked"===a.mark),l=j.filter(a=>"reached"===a.mark);return(0,b.jsxs)("section",{"aria-labelledby":"network-reach","data-testid":"network-reach",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-reach",className:"text-body font-semibold",children:"Reach"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"The fleet as it stands now: pick a ship to see which ships the rules let it message. Argo reaches every ship, and every ship reaches argo."}),(0,b.jsxs)("div",{className:"relative flex flex-wrap gap-2 md:mx-auto md:block md:aspect-square md:w-full md:max-w-xl","data-testid":"network-reach-graph",children:[void 0===k?null:(0,b.jsx)("svg",{"aria-hidden":!0,viewBox:"0 0 100 100",preserveAspectRatio:"none",className:"pointer-events-none absolute inset-0 hidden size-full md:block",children:l.map(a=>(0,b.jsx)("line",{x1:k.x,y1:k.y,x2:a.x,y2:a.y,vectorEffect:"non-scaling-stroke",className:"stroke-muted-foreground",strokeWidth:1.5},a.ship.id))}),j.map(a=>(0,b.jsx)(aj,{node:a,onPick:()=>{f("picked"===a.mark?void 0:a.ship.id)}},a.ship.id))]}),void 0===e?(0,b.jsx)("p",{className:"text-body",role:"status","data-testid":"network-reach-summary",children:function(a){let b=a.find(a=>"picked"===a.mark);if(void 0===b)return"Pick a ship to see which ships it may message.";let c=a.length-1,d=a.filter(a=>"reached"===a.mark).map(a=>a.ship.name);return a.every(a=>"picked"===a.mark||"none"===a.mark)?0===c?`${b.ship.name} is the only ship of the fleet.`:`Finding the ships ${b.ship.name} may message…`:d.length===c?`${b.ship.name} may message every other ship (${String(c)}).`:0===d.length?`${b.ship.name} may message no other ship.`:`${b.ship.name} may message ${String(d.length)} of ${String(c)} ships: ${d.join(", ")}.`}(j)}):(0,b.jsx)(h.InlineError,{title:"Couldn’t explain this ship’s reach",description:e,onRetry:g})]})}function aj({node:a,onPick:c}){let{ship:d,mark:e}=a;return(0,b.jsx)(f.Button,{size:"sm",variant:"secondary","aria-pressed":"picked"===e,"aria-label":"none"===e?d.name:`${d.name}, ${ah[e]}`,icon:function(a){switch(a){case"picked":return(0,b.jsx)(ab,{"aria-hidden":!0});case"reached":return(0,b.jsx)($.Check,{"aria-hidden":!0});case"unreached":return(0,b.jsx)(Z.Ban,{"aria-hidden":!0});case"none":return}}(e),"data-testid":"network-reach-ship","data-mark":e,style:{left:`${String(a.x)}%`,top:`${String(a.y)}%`},className:(0,ac.classNames)("md:absolute md:-translate-x-1/2 md:-translate-y-1/2","picked"===e&&"bg-accent ring-2 ring-ring","unreached"===e&&"opacity-45"),onClick:c,children:d.name})}let ak={"block-all":{name:"Block all",meaning:"Only argo and answers to a received message get through."},"open-all":{name:"Open all",meaning:"Every ship may message every ship."},"keep-latest":{name:"Keep the latest rules",meaning:"The rules it supplied last stay in force."}};var al=a.i(75297),am=a.i(45098),an=a.i(48136);function ao({declaration:a,options:c,bounds:d,isSaving:e,saveError:g,savedNote:i,onSave:j}){let[k,l]=(0,q.useState)(a.whileUnavailable),[m,n]=(0,q.useState)(String(a.notRespondingAfterSeconds)),o=(0,q.useId)(),p=function(a,b){if(!/^\d+$/.test(a.trim()))return"A whole number of seconds.";let c=Number(a.trim());return c<b.min?`At least ${String(b.min)} seconds.`:c>b.max?`At most ${String(b.max)} seconds.`:void 0}(m,d),r=k!==a.whileUnavailable||m.trim()!==String(a.notRespondingAfterSeconds),s=Object.fromEntries(c.map(a=>[a,ak[a].name]));return(0,b.jsxs)("section",{"aria-labelledby":"network-declaration","data-testid":"network-declaration",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-declaration",className:"text-body font-semibold",children:"While the networking plugin does not respond"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"The fleet judges the plugin not responding when its ship makes no call for this long, and then applies what you choose here, at every send."}),(0,b.jsxs)("form",{className:"flex flex-col gap-3",onSubmit:a=>{a.preventDefault(),void 0===p&&j({whileUnavailable:k,notRespondingAfterSeconds:Number(m.trim())})},children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("span",{className:"text-body font-medium",children:"What holds"}),(0,b.jsxs)(an.Select,{items:s,value:k,disabled:e,onValueChange:a=>{let b=c.find(b=>b===a);void 0!==b&&l(b)},children:[(0,b.jsx)(an.SelectTrigger,{"aria-label":"What holds while the plugin does not respond","data-testid":"network-declaration-while",className:"h-(--size-control) text-body",children:(0,b.jsx)(an.SelectValue,{})}),(0,b.jsx)(an.SelectContent,{children:c.map(a=>(0,b.jsx)(an.SelectItem,{value:a,children:ak[a].name},a))})]}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground","data-testid":"network-declaration-meaning",children:ak[k].meaning})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(am.Label,{htmlFor:o,children:"Not responding after (seconds)"}),(0,b.jsx)(al.Input,{id:o,inputMode:"numeric",className:"w-40",value:m,disabled:e,"aria-invalid":void 0!==p,"aria-describedby":`${o}-hint`,"data-testid":"network-declaration-seconds",onChange:a=>{n(a.target.value)}}),(0,b.jsx)("p",{id:`${o}-hint`,className:void 0===p?"text-meta text-muted-foreground":"text-meta text-destructive",children:p??`From ${String(d.min)} to ${String(d.max)} seconds.`})]}),(0,b.jsx)("div",{children:(0,b.jsx)(f.Button,{type:"submit",variant:"primary",isLoading:e,disabled:!r||void 0!==p,"data-testid":"network-declaration-save",children:"Save"})})]}),void 0===g?null:(0,b.jsx)(h.InlineError,{variant:"field",title:"Couldn’t save",description:g}),void 0===i||r?null:(0,b.jsx)("p",{role:"status",className:"text-meta text-muted-foreground","data-testid":"network-declaration-note",children:i})]})}var ap=a.i(3512),aq=a.i(51675),ar=a.i(59613),as=a.i(2374),at=a.i(87005),au=a.i(74215),av=a.i(19721),aw=a.i(60275);let ax=(0,av.default)(async()=>{},{loadableGenerated:{modules:[59068]},ssr:!1});function ay({label:a,picked:c,owners:e,ownerChoices:g,unknown:h,groups:i,max:j,isDisabled:k,problem:l,onAdd:m,onRemove:n,testId:o,popoverTestId:r}){let[s,t]=(0,q.useState)(!1),[u,v]=(0,q.useState)(!1),w=c.length+e.length+h.length,x=new Set(e.map(a=>P(a.term))),y=[...["*","#"].map(a=>({term:{owner:a},text:R[a]})),...g.map(a=>({term:{owner:a.shipId},text:a.name}))];return(0,b.jsxs)("div",{className:"flex flex-col gap-1","data-testid":o,children:[(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:a}),(0,b.jsxs)("div",{className:"flex min-h-(--size-control-sm) flex-wrap items-center gap-1.5",children:[0===w?(0,b.jsx)("span",{className:"text-body",children:"Every ship"}):null,c.map((a,c)=>(0,b.jsxs)(q.Fragment,{children:[0===c?null:(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"and"}),(0,b.jsx)(V.LabelChip,{chip:a,testId:`${o}-value`,..."string"==typeof a.term?{}:{meaning:Q[a.term.value]},...k?{}:{onRemove:()=>{n(a.term)}}})]},P(a.term))),e.map((a,d)=>(0,b.jsxs)(q.Fragment,{children:[0===d&&0===c.length?null:(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"and"}),(0,b.jsx)(az,{owner:a,testId:`${o}-owner`,...!0===k?{}:{onRemove:()=>{n(a.term)}}})]},P(a.term))),h.map(a=>(0,b.jsxs)("span",{"data-testid":`${o}-unknown`,title:`${P(a)}: no longer in this fleet`,className:"inline-flex h-5.5 items-center gap-1 rounded-sm border border-tone-attention-border bg-tone-attention-bg px-1.5 text-id text-tone-attention-fg [&_svg]:size-3",children:[(0,b.jsx)(p.CircleAlert,{"aria-hidden":!0}),"string"!=typeof a&&"owner"in a?"A removed owner":"A removed label",!0===k?null:(0,b.jsx)("button",{type:"button","aria-label":"string"!=typeof a&&"owner"in a?"Remove the removed owner":"Remove the removed label",onClick:()=>{n(a)},className:"-mr-1 ml-0.5 inline-flex size-4 items-center justify-center rounded-xs hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring",children:(0,b.jsx)(au.X,{"aria-hidden":!0})})]},P(a))),w>=j?null:(0,b.jsxs)(aw.Popover,{open:s,onOpenChange:t,children:[(0,b.jsx)(aw.PopoverTrigger,{render:(0,b.jsx)(f.Button,{type:"button",variant:"ghost",size:"xs",icon:(0,b.jsx)(ap.Plus,{}),disabled:k,"data-testid":`${o}-add`}),children:"Add label"}),(0,b.jsxs)(aw.PopoverContent,{align:"start",sideOffset:6,className:"w-80 p-2","data-testid":r,children:[(0,b.jsx)("span",{className:"block px-2 pt-1 pb-2 text-body font-medium",children:a}),(0,b.jsx)(ax,{groups:i,pickedValueIds:c.flatMap(a=>"string"==typeof a.term?[a.term]:[]),onPick:a=>{t(!1),m(a)},terms:{picked:c.flatMap(a=>"string"==typeof a.term?[]:[a.term]),onPick:a=>{t(!1),m(a)}}}),(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:["All must hold. * is any value, # the same as the other side.",(0,b.jsx)(d.default,{href:"/labels",className:"font-medium text-foreground hover:underline",children:"Manage labels"})]})]})]}),w>=j?null:(0,b.jsxs)(aw.Popover,{open:u,onOpenChange:v,children:[(0,b.jsx)(aw.PopoverTrigger,{render:(0,b.jsx)(f.Button,{type:"button",variant:"ghost",size:"xs",icon:(0,b.jsx)(ap.Plus,{}),disabled:k,"data-testid":`${o}-owner-add`}),children:"Add owner"}),(0,b.jsxs)(aw.PopoverContent,{align:"start",sideOffset:6,className:"w-72 p-2","data-testid":`${r}-owner`,children:[(0,b.jsxs)("span",{className:"block px-2 pt-1 pb-2 text-body font-medium",children:[a," the owner"]}),(0,b.jsx)("ul",{className:"flex flex-col",children:y.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",disabled:x.has(P(a.term)),"data-testid":`${o}-owner-option`,onClick:()=>{v(!1),m(a.term)},className:"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-body hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring disabled:text-muted-foreground disabled:hover:bg-transparent",children:[(0,b.jsx)(at.UserRound,{"aria-hidden":!0,className:"size-(--size-icon) shrink-0 text-muted-foreground"}),a.text]})},P(a.term)))}),(0,b.jsx)("p",{className:"mt-2 border-t border-border px-2 pt-2 text-meta text-muted-foreground",children:"An owner is argo or a person’s ship. # is the same owner as the other side."})]})]})]}),void 0===l?null:(0,b.jsx)("p",{role:"status",className:"text-meta text-tone-attention-fg","data-testid":`${o}-problem`,children:l}),0===h.length?null:(0,b.jsx)("p",{role:"alert",className:"text-meta text-tone-attention-fg",children:"A label or owner here was removed from the fleet: this side matches no ship until you remove it."})]})}function az({owner:a,onRemove:c,testId:d}){let{owner:e}=a.term,f="*"===e||"#"===e?`${a.text}. ${R[e]}`:`${a.text}: ships it owns`;return(0,b.jsxs)("span",{role:"group","aria-label":f,title:f,"data-testid":d,className:"inline-flex h-5.5 max-w-full min-w-0 shrink-0 items-center gap-1 rounded-sm border border-border bg-secondary px-1.5 font-mono text-id whitespace-nowrap text-foreground [&_svg]:size-3 [&_svg]:shrink-0 [&_svg]:text-muted-foreground",children:[(0,b.jsx)(at.UserRound,{"aria-hidden":!0}),(0,b.jsxs)("span",{className:"truncate",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"owner="}),(0,b.jsx)("span",{className:"font-medium",children:a.text.slice(6)})]}),void 0===c?null:(0,b.jsx)("button",{type:"button","aria-label":`Remove ${a.text}`,onClick:c,className:"-mr-1 ml-0.5 inline-flex size-4 items-center justify-center rounded-xs text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring",children:(0,b.jsx)(au.X,{"aria-hidden":!0})})]})}let aA=[{side:"from",label:"From ships with"},{side:"to",label:"To ships with"}],aB=()=>crypto.randomUUID();function aC({rules:a,context:c,limits:d,isSaving:e,saveError:g,savedNote:i,onSave:j}){let[k,l]=(0,q.useState)(()=>K(a,aB)),[m,n]=(0,q.useState)(!1),p=(0,I.filterGroupsOf)(c),r=c.ships.filter(a=>("operator"===a.kind||"person"===a.kind)&&"retired"!==a.status).map(a=>({shipId:a.id,name:a.name})),s=JSON.stringify(L(k))!==JSON.stringify(a);return(0,b.jsxs)("section",{"aria-labelledby":"network-rules","data-testid":"network-rules",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-rules",className:"text-body font-semibold",children:"Rules"}),"all-to-all"===k.kind?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"text-body","data-testid":"network-rules-state",children:"No rules: every ship may send to, read and manage every ship."}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"With rules, a ship may send to, read or manage another only when a rule of that verb or a built-in rule allows it."}),(0,b.jsx)("div",{children:(0,b.jsx)(f.Button,{variant:"primary",icon:(0,b.jsx)(ap.Plus,{"aria-hidden":!0}),disabled:e,"data-testid":"network-rules-on",onClick:()=>{l(M(k,!0))},children:"Set rules"})})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"text-body","data-testid":"network-rules-state",children:0===k.rules.length?"No rule allows anything yet: once saved, only the built-in rules hold.":"A ship may send to, read or manage another only when a rule of that verb or a built-in rule allows it."}),0===k.rules.length?null:(0,b.jsx)("ul",{className:"flex flex-col gap-2",children:k.rules.map((a,g)=>(0,b.jsxs)("li",{"data-testid":"network-rule",className:"flex flex-col gap-2 rounded-md border border-border p-3 sm:flex-row sm:items-start sm:gap-3",children:[aA.map(({side:f,label:h})=>{let i,j=S(a[f],c);return(0,b.jsxs)("div",{className:"flex min-w-0 grow basis-0 items-start gap-3",children:["to"===f?(0,b.jsxs)("div",{className:"flex shrink-0 flex-col gap-1",children:[(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"Verb"}),(0,b.jsxs)(an.Select,{items:J,value:a.verb,disabled:e,onValueChange:b=>{var c;A.some(a=>a===b)&&l(N(k,{key:(c={rule:a.key,verb:b}).rule,change:a=>({...a,verb:c.verb})}))},children:[(0,b.jsx)(an.SelectTrigger,{"aria-label":`Verb of rule ${String(g+1)}`,"data-testid":"network-rule-verb",size:"sm",children:(0,b.jsx)(an.SelectValue,{})}),(0,b.jsx)(an.SelectContent,{children:A.map(a=>(0,b.jsx)(an.SelectItem,{value:a,children:J[a]},a))})]})]}):null,"to"===f?(0,b.jsx)(o.ArrowRight,{"aria-hidden":!0,className:"mt-6 hidden size-(--size-icon) shrink-0 text-muted-foreground sm:block"}):null,(0,b.jsx)(ay,{label:h,picked:j.chips,owners:j.owners,ownerChoices:r,unknown:j.unknown,groups:p,max:d.selectorMax,isDisabled:e,...void 0===(i=function(a,b){let[c]=T(a,b.side);if(void 0===c)return U(a,b.side)?"owner=# needs owner=# on the other side: # matches the same owner there.":void 0;let d=b.context.labels.find(a=>a.id===c.labelId)?.key??c.labelId;return`${d}=# needs ${d}=# on the other side: # matches the same value there.`}(a,{side:f,context:c}))?{}:{problem:i},testId:`network-rule-${f}`,popoverTestId:"network-rule-popover",onAdd:b=>{var c;l(N(k,{key:(c={rule:a.key,side:f,term:b,limits:d}).rule,change:a=>{let b=a[c.side];return b.some(a=>O(a,c.term))||b.length>=c.limits.selectorMax?a:{...a,[c.side]:[...b,c.term]}}}))},onRemove:b=>{var c;l(N(k,{key:(c={rule:a.key,side:f,term:b}).rule,change:a=>({...a,[c.side]:a[c.side].filter(a=>!O(a,c.term))})}))}})]},f)}),(0,b.jsx)(f.Button,{variant:"ghost",size:"xs",icon:(0,b.jsx)(aq.Trash2,{"aria-hidden":!0}),disabled:e,"aria-label":`Remove rule ${String(g+1)}`,"data-testid":"network-rule-remove",onClick:()=>{var b;l((b=a.key,"all-to-all"===k.kind?k:{kind:"rules",rules:k.rules.filter(a=>a.key!==b)}))}})]},a.key))}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[k.rules.length>=d.rulesMax?null:(0,b.jsx)(f.Button,{size:"sm",icon:(0,b.jsx)(ap.Plus,{"aria-hidden":!0}),disabled:e,"data-testid":"network-rules-add",onClick:()=>{var a;l((a={newKey:aB,limits:d},"all-to-all"===k.kind||k.rules.length>=a.limits.rulesMax?k:{kind:"rules",rules:[...k.rules,{key:a.newKey(),verb:"send",from:[],to:[]}]}))},children:"Add rule"}),(0,b.jsxs)("span",{className:"text-meta text-muted-foreground tabular-nums","data-testid":"network-rules-count",children:[k.rules.length," of ",d.rulesMax," rules"]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 border-t border-border pt-3",children:[(0,b.jsx)(f.Button,{variant:"primary",isLoading:e,disabled:!s||"rules"===k.kind&&k.rules.some(a=>T(a,"from").length+T(a,"to").length>0||U(a,"from")||U(a,"to")),"data-testid":"network-rules-save",onClick:()=>{j(L(k))},children:"Save rules"}),s?(0,b.jsx)(f.Button,{disabled:e,"data-testid":"network-rules-discard",onClick:()=>{l(K(a,aB))},children:"Discard changes"}):null,(0,b.jsx)(f.Button,{variant:"ghost",className:"ml-auto",disabled:e,"data-testid":"network-rules-off",onClick:()=>{null===a?l(M(k,!1)):n(!0)},children:"Remove all rules"})]})]}),void 0===g?null:(0,b.jsx)(h.InlineError,{variant:"field",title:"Couldn’t save the rules",description:g}),void 0===i||s?null:(0,b.jsx)("p",{role:"status",className:"text-meta text-muted-foreground","data-testid":"network-rules-note",children:i}),(0,b.jsx)(ar.AlertDialog,{open:m,onOpenChange:a=>{a||e||n(!1)},children:(0,b.jsxs)(ar.AlertDialogContent,{"data-testid":"network-rules-off-dialog",className:as.dialogSurface.phoneSheet,children:[(0,b.jsxs)(ar.AlertDialogHeader,{children:[(0,b.jsx)(ar.AlertDialogTitle,{children:"Remove all rules?"}),(0,b.jsx)(ar.AlertDialogDescription,{children:"Every ship may send to, read and manage every ship again from now on. The rules are gone: to have them back, set them again."})]}),(0,b.jsxs)(ar.AlertDialogFooter,{children:[(0,b.jsx)(ar.AlertDialogClose,{render:(0,b.jsx)(f.Button,{disabled:e}),children:"Cancel"}),(0,b.jsx)(f.Button,{variant:"destructive",isLoading:e,"data-testid":"network-rules-off-confirm",onClick:()=>{n(!1),j(null)},children:"Remove all rules"})]})]})})]})}var aD=a.i(72872);function aE({refusals:a,error:c,onRetry:d,context:e,now:f}){let j;return j=void 0!==c?(0,b.jsx)(h.InlineError,{title:"Couldn’t read the refusals",description:c,onRetry:d}):void 0===a?(0,b.jsx)(i.LoadingSkeleton,{variant:"list",rows:3,label:"Loading the refusals"}):0===a.length?(0,b.jsx)(g.EmptyState,{variant:"section",title:"No send has been refused."}):(0,b.jsx)("ol",{className:"flex flex-col gap-2","data-testid":"network-refusals-list",children:a.map(a=>(0,b.jsx)(aF,{refusal:a,context:e,now:f},a.id))}),(0,b.jsxs)("section",{"aria-labelledby":"network-refusals","data-testid":"network-refusals",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-refusals",className:"text-body font-semibold",children:"Refusals"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"The sends the rules refused, newest first, with both ships’ labels as they were then. The sender was told only that its send was refused."}),j]})}function aF({refusal:a,context:c,now:d}){let e,f=new Date(a.at),{recipient:g}=a,h="ship"===g.kind?[g.ship]:g.ships;return(0,b.jsxs)("li",{"data-testid":"network-refusal",className:"flex flex-col gap-2 rounded-md border border-border px-3 py-2.5",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-baseline justify-between gap-x-3 gap-y-0.5",children:[(0,b.jsx)("p",{className:"text-body font-medium",children:function(a){let{sender:b,recipient:c}=a;switch(c.kind){case"ship":return`${b.name} tried to message ${c.ship.name}.`;case"type":return`${b.name} tried to message the type ${c.type}: ${(0,I.listed)(c.ships.map(a=>a.name))}.`}}(a)}),(0,b.jsx)("time",{dateTime:a.at,title:(0,aD.fullDateTime)(f),className:"text-meta text-muted-foreground tabular-nums",children:(0,aD.relativeTime)(f,d)})]}),(0,b.jsxs)("dl",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(aG,{side:"From",ship:a.sender,context:c}),h.map(a=>(0,b.jsx)(aG,{side:"To",ship:a,context:c},a.id))]}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:(e=`Refused by network settings version ${String(a.settingsVersion)}`,null===a.whilePluginUnavailable?`${e}.`:`${e} while the networking plugin was not responding: ${ak[a.whilePluginUnavailable].name}.`)})]})}function aG({side:a,ship:c,context:d}){let e=(0,I.chipsOf)(c,d);return(0,b.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1",children:[(0,b.jsxs)("dt",{className:"text-meta text-muted-foreground",children:[a," ",(0,b.jsx)("span",{className:"font-medium text-foreground",children:c.name})]}),(0,b.jsx)("dd",{className:"flex min-w-0 flex-wrap items-center gap-1",children:0===e.length?(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"No labels"}):e.map(a=>(0,b.jsx)(V.LabelChip,{chip:a,testId:"network-refusal-label"},a.valueId))})]})}var aH=a.i(91003),aI=a.i(38023),aJ=a.i(65563),aK=a.i(1851),aL=a.i(90146),aM=a.i(67336),aN=a.i(10023),aO=a.i(28562),aP=a.i(68450),aQ=a.i(34159),aR=a.i(70025),aS=a.i(33217),aT=a.i(37927),aU=a.i(14499);let aV={send:"Every ship may send to every ship.",read:"Every ship may read every ship.",manage:"Every ship may manage every ship."};function aW(a){switch(a.rule){case"argo":return{key:a.rule,name:"argo",meaning:"argo sends to, reads and manages every ship, and every ship reaches argo.",isOn:a.isOn,turnedBy:"never"};case"owner":return{key:a.rule,name:"Owner",meaning:"A ship’s owner sends to, reads and manages the ships it owns.",isOn:a.isOn,turnedBy:"never"};case"answer":return{key:a.rule,name:"Answer",meaning:"A ship may always answer the sender of a message it received.",isOn:a.isOn,turnedBy:"never"};case"viewerRead":return{key:a.rule,name:"Viewer reads",meaning:"The viewer reads every ship.",isOn:a.isOn,turnedBy:"argo"};case"open":return{key:`open-${a.verb}`,name:`Open for ${a.verb}`,meaning:aV[a.verb],isOn:a.isOn,turnedBy:"plugin"}}}var aX=a.i(42871),aY=a.i(10572);a.s(["NetworkPageFor",0,function({pickedShipId:a}){var j,k;let l,m,o,p,q,r,s,t,u=(0,e.useRouter)(),v=(0,aP.useNow)(),w=(0,aI.useConsoleFrame)(),x=(0,aN.useNeedsAttention)(),y=(0,aM.useLiveFleet)(),z=(0,aJ.useAccess)(),A=(0,aQ.usePluginNav)(),B=(0,aO.useHasNetwork)(),C=(0,aO.useNetwork)(),D=(0,aL.useLabelContext)(),E=(0,aL.useFleetSnapshot)(),F=(j=B?a:void 0,m=(0,aU.useTRPC)(),(0,aS.useQuery)({...m.fleet.explainReach.queryOptions(void 0===j?aX.skipToken:{fromShipId:j}),select:ad})),G=(o=(0,aU.useTRPC)(),(0,aS.useQuery)(o.fleet.reachRefusals.queryOptions(void 0,{enabled:B}))),H=(p=(0,aU.useTRPC)(),(0,aS.useQuery)(p.fleet.declaredNetworkRules.queryOptions(void 0,{enabled:B}))),I=(q=(0,aU.useTRPC)(),(0,aS.useQuery)(q.fleet.builtInRules.queryOptions(void 0,{enabled:B}))),J=(r=(0,aU.useTRPC)(),s=(0,aT.useQueryClient)(),{setViewerRead:a=>{t.mutate({rule:"viewerRead",isOn:a})},isPending:(t=(0,aR.useMutation)(r.fleet.setBuiltInRule.mutationOptions({onSuccess:()=>s.invalidateQueries({queryKey:r.fleet.builtInRules.queryKey()})}))).isPending,error:t.error?.message}),K=(0,aO.useSaveNetworkRules)(),L=(0,aO.useSaveNetworkDeclaration)(),{networkRulesMax:M,shipLabelsMax:N,whileUnavailable:O,notRespondingAfterMinSeconds:P,notRespondingAfterMaxSeconds:Q}=(0,aK.useConsoleConstants)();if((0,aY.useSignInWhenSessionEnds)([x.error,y.error]),B)if(C.isError)l=(0,b.jsx)(h.InlineError,{title:"Couldn’t read the network",description:C.error.message,onRetry:()=>{C.refetch()}});else if(void 0===C.data||void 0===D||void 0===E.data)l=(0,b.jsx)(i.LoadingSkeleton,{variant:"detail",rows:4,label:"Loading the network"});else{let c;l=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(n,{rows:void 0===I.data?void 0:I.data.map(aW),error:I.error?.message,onRetry:()=>{I.refetch()},isTurning:J.isPending,turnError:J.error,onViewerReadChange:J.setViewerRead}),(0,b.jsx)(aC,{rules:C.data.rules,context:D,limits:{rulesMax:M,selectorMax:N},isSaving:K.isPending,saveError:K.error?.message,savedNote:void 0===K.data?void 0:function(a){switch(a){case"supplied":return"Saved. The fleet enforces them from now on.";case"waiting":return"Saved. The fleet does not answer yet: the networking plugin supplies them as soon as it does.";case"not-connected":case"unregistered":return"Saved."}}(K.data.supply),onSave:a=>{K.mutate(a)}},JSON.stringify(C.data.rules)),(0,b.jsx)(X,{declared:void 0===H.data?void 0:(k=H.data,c=new Map(E.data.map(a=>[a.id,a.name])),k.filter(({rules:a})=>a.length>0).map(({shipId:a,rules:b})=>({shipId:a,declaredBy:c.get(a)??a,rules:b})).sort((a,b)=>a.declaredBy.localeCompare(b.declaredBy))),error:H.error?.message,onRetry:()=>{H.refetch()},context:D}),(0,b.jsx)(ao,{declaration:C.data.declaration,options:O,bounds:{min:P,max:Q},isSaving:L.isPending,saveError:L.error?.message,savedNote:void 0===L.data?void 0:function(a){switch(a){case"supplied":return"Saved. The networking plugin registered again with it.";case"waiting":return"Saved. The fleet does not answer yet: the networking plugin registers again with it as soon as it does.";case"not-connected":case"unregistered":return"Saved."}}(L.data.supply),onSave:a=>{L.mutate(a)}},JSON.stringify(C.data.declaration)),(0,b.jsx)(ai,{ships:E.data.filter(a=>"retired"!==a.status&&"viewer"!==a.kind).map(a=>({id:a.id,name:a.name,isOperator:"operator"===a.kind})).sort((a,b)=>Number(b.isOperator)-Number(a.isOperator)||a.name.localeCompare(b.name)),pickedShipId:a,reachableShipIds:F.data,reachError:F.error?.message,onPick:a=>{u.replace(void 0===a?"/network":`/network?reach=${a}`,{scroll:!1})},onRetry:()=>{F.refetch()}}),(0,b.jsx)(aE,{refusals:G.data,error:G.error?.message,onRetry:()=>{G.refetch()},context:D,now:v})]})}else l=(0,b.jsx)(g.EmptyState,{icon:(0,b.jsx)(c.Network,{"aria-hidden":!0}),title:z.canEditNetwork?"The networking plugin is not connected":"Only argo sees the network rules",description:z.canEditNetwork?"Connect it in Settings. Until it supplies rules, every ship may message every ship.":void 0,action:z.canEditNetwork&&A.hasSettings?(0,b.jsx)(f.Button,{nativeButton:!1,render:(0,b.jsx)(d.default,{href:"/settings"}),"data-testid":"network-open-settings",children:"Open Settings"}):void 0});return(0,b.jsx)(aH.ListPage,{...w,title:"Network",description:"Who may send to, read or manage whom. The networking plugin supplies these rules to the fleet, which checks them on every send. Only argo sees this page.",live:y.live,children:l})}],71915)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_console_app_%28console%29_network_network-page_tsx_0qc3h-9._.js.map
|