@aeolus-fleet/console 0.25.1 → 0.25.3

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.
Files changed (157) hide show
  1. package/.next/standalone/THIRD_PARTY_NOTICES +3718 -0
  2. package/.next/standalone/packages/console/.next/BUILD_ID +1 -1
  3. package/.next/standalone/packages/console/.next/build-manifest.json +3 -3
  4. package/.next/standalone/packages/console/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/packages/console/.next/required-server-files.json +2 -1
  6. package/.next/standalone/packages/console/.next/server/app/(console)/inbox/page/server-reference-manifest.json +16 -16
  7. package/.next/standalone/packages/console/.next/server/app/(console)/inbox/page.js.nft.json +1 -1
  8. package/.next/standalone/packages/console/.next/server/app/(console)/inbox/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/packages/console/.next/server/app/(console)/labels/page/server-reference-manifest.json +16 -16
  10. package/.next/standalone/packages/console/.next/server/app/(console)/labels/page.js.nft.json +1 -1
  11. package/.next/standalone/packages/console/.next/server/app/(console)/labels/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/packages/console/.next/server/app/(console)/needs-attention/page/server-reference-manifest.json +16 -16
  13. package/.next/standalone/packages/console/.next/server/app/(console)/needs-attention/page.js.nft.json +1 -1
  14. package/.next/standalone/packages/console/.next/server/app/(console)/needs-attention/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/packages/console/.next/server/app/(console)/needs-crew/page/server-reference-manifest.json +16 -16
  16. package/.next/standalone/packages/console/.next/server/app/(console)/needs-crew/page.js.nft.json +1 -1
  17. package/.next/standalone/packages/console/.next/server/app/(console)/needs-crew/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/packages/console/.next/server/app/(console)/network/page/server-reference-manifest.json +16 -16
  19. package/.next/standalone/packages/console/.next/server/app/(console)/network/page.js.nft.json +1 -1
  20. package/.next/standalone/packages/console/.next/server/app/(console)/network/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/packages/console/.next/server/app/(console)/page/server-reference-manifest.json +16 -16
  22. package/.next/standalone/packages/console/.next/server/app/(console)/page.js.nft.json +1 -1
  23. package/.next/standalone/packages/console/.next/server/app/(console)/page_client-reference-manifest.js +1 -1
  24. package/.next/standalone/packages/console/.next/server/app/(console)/questions/page/server-reference-manifest.json +16 -16
  25. package/.next/standalone/packages/console/.next/server/app/(console)/questions/page.js.nft.json +1 -1
  26. package/.next/standalone/packages/console/.next/server/app/(console)/questions/page_client-reference-manifest.js +1 -1
  27. package/.next/standalone/packages/console/.next/server/app/(console)/settings/page/server-reference-manifest.json +16 -16
  28. package/.next/standalone/packages/console/.next/server/app/(console)/settings/page.js.nft.json +1 -1
  29. package/.next/standalone/packages/console/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/packages/console/.next/server/app/(console)/ships/[shipId]/page/server-reference-manifest.json +16 -16
  31. package/.next/standalone/packages/console/.next/server/app/(console)/ships/[shipId]/page.js.nft.json +1 -1
  32. package/.next/standalone/packages/console/.next/server/app/(console)/ships/[shipId]/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/[squadronId]/page/server-reference-manifest.json +16 -16
  34. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/[squadronId]/page.js.nft.json +1 -1
  35. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/[squadronId]/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/blueprints/[name]/page/server-reference-manifest.json +16 -16
  37. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/blueprints/[name]/page.js.nft.json +1 -1
  38. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/blueprints/[name]/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/page/server-reference-manifest.json +16 -16
  40. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/page.js.nft.json +1 -1
  41. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/templates/[name]/page/server-reference-manifest.json +16 -16
  43. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/templates/[name]/page.js.nft.json +1 -1
  44. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/templates/[name]/page_client-reference-manifest.js +1 -1
  45. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/[shipId]/page/server-reference-manifest.json +16 -16
  46. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/[shipId]/page.js.nft.json +1 -1
  47. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/[shipId]/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/page/server-reference-manifest.json +16 -16
  49. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/page.js.nft.json +1 -1
  50. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/packages/console/.next/server/app/_global-error.html +1 -1
  52. package/.next/standalone/packages/console/.next/server/app/_global-error.rsc +1 -1
  53. package/.next/standalone/packages/console/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  54. package/.next/standalone/packages/console/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  55. package/.next/standalone/packages/console/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  56. package/.next/standalone/packages/console/.next/server/app/_not-found/page.js.nft.json +1 -1
  57. package/.next/standalone/packages/console/.next/server/app/api/reads/[read]/route.js.nft.json +1 -1
  58. package/.next/standalone/packages/console/.next/server/app/sign-in/failed/page.js.nft.json +1 -1
  59. package/.next/standalone/packages/console/.next/server/app/sign-in/page.js.nft.json +1 -1
  60. package/.next/standalone/packages/console/.next/server/app/sign-in/page_client-reference-manifest.js +1 -1
  61. package/.next/standalone/packages/console/.next/server/app/version/route.js.nft.json +1 -1
  62. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__06f_104._.js +1 -1
  63. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__1cfwaji._.js +1 -1
  64. package/.next/standalone/packages/console/.next/server/chunks/packages_console_instrumentation_ts_0x-7ff6._.js +3 -0
  65. package/.next/standalone/packages/console/.next/server/chunks/ssr/0mxb_server_app_(console)_squadrons_blueprints_[name]_page_actions_170owr_.js +1 -1
  66. package/.next/standalone/packages/console/.next/server/chunks/ssr/0mxb_server_app_(console)_squadrons_templates_[name]_page_actions_09abrr0.js +1 -1
  67. 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
  68. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_network_page_actions_1muuv-j.js +1 -1
  69. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_questions_page_actions_12d6yd2.js +1 -1
  70. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_settings_page_actions_0b6qztr.js +1 -1
  71. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_ships_[shipId]_page_actions_0g2nd1p.js +1 -1
  72. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_squadrons_page_actions_1x3afts.js +1 -1
  73. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_trierarchs_page_actions_1ow37mz.js +1 -1
  74. package/.next/standalone/packages/console/.next/server/chunks/ssr/1eui__next-internal_server_app_(console)_needs-attention_page_actions_1jfgclw.js +1 -1
  75. package/.next/standalone/packages/console/.next/server/chunks/ssr/1eui__next-internal_server_app_(console)_squadrons_[squadronId]_page_actions_1lzqlye.js +1 -1
  76. package/.next/standalone/packages/console/.next/server/chunks/ssr/1eui__next-internal_server_app_(console)_trierarchs_[shipId]_page_actions_0l7bxva.js +1 -1
  77. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__197gd9r._.js +1 -1
  78. package/.next/standalone/packages/console/.next/server/chunks/ssr/_01eyvjo._.js +1 -1
  79. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0cak8i7._.js +1 -1
  80. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0i1lwyh._.js +1 -1
  81. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0ll55v1._.js +1 -1
  82. package/.next/standalone/packages/console/.next/server/chunks/ssr/{_127j_99._.js → _0magod9._.js} +1 -1
  83. package/.next/standalone/packages/console/.next/server/chunks/ssr/{_207-ta6._.js → _0r5n0m3._.js} +1 -1
  84. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0rm5fsf._.js +1 -1
  85. package/.next/standalone/packages/console/.next/server/chunks/ssr/{_07bnv77._.js → _0uyde85._.js} +1 -1
  86. package/.next/standalone/packages/console/.next/server/chunks/ssr/{_09we890._.js → _11is74m._.js} +1 -1
  87. package/.next/standalone/packages/console/.next/server/chunks/ssr/_11s1izd._.js +1 -1
  88. package/.next/standalone/packages/console/.next/server/chunks/ssr/_195z53h._.js +1 -1
  89. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1bc8get._.js +1 -1
  90. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1buuyye._.js +1 -1
  91. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1geqwzr._.js +1 -1
  92. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1lbotqi._.js +1 -1
  93. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1lr2spu._.js +1 -1
  94. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1or2awi._.js +1 -1
  95. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1u0h4gj._.js +1 -1
  96. package/.next/standalone/packages/console/.next/server/chunks/ssr/{_0u0wzbz._.js → _1uli30o._.js} +1 -1
  97. package/.next/standalone/packages/console/.next/server/chunks/ssr/{_1p-k4-7._.js → _1v43-d_._.js} +1 -1
  98. package/.next/standalone/packages/console/.next/server/chunks/ssr/_20_rkn3._.js +1 -1
  99. package/.next/standalone/packages/console/.next/server/chunks/ssr/{node_modules_@base-ui_react_0xxx54b._.js → node_modules_@base-ui_react_1of81la._.js} +2 -2
  100. package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_console_0ogk6t7._.js → packages_console_15x3hh_._.js} +2 -2
  101. package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_console_1ey0_d3._.js → packages_console_1hemb_x._.js} +1 -1
  102. package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_console_0sqk26-._.js → packages_console_1jdaua7._.js} +2 -2
  103. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console__next-internal_server_app_(console)_inbox_page_actions_0q9_xye.js +1 -1
  104. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console__next-internal_server_app_(console)_labels_page_actions_0tk7mqs.js +1 -1
  105. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console__next-internal_server_app_(console)_page_actions_1ftjjyq.js +1 -1
  106. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_labels_page_tsx_1qggshd._.js +1 -1
  107. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_needs-attention_page_tsx_03s6y-o._.js +1 -1
  108. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_network_network-page_tsx_0qc3h-9._.js +1 -1
  109. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_overview-page_tsx_15siba6._.js +1 -1
  110. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_questions_questions-page_tsx_0hb7u3u._.js +1 -1
  111. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_settings_page_tsx_1p8ay87._.js +1 -1
  112. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_ships_[shipId]_ship-page_tsx_0oahz0r._.js +1 -1
  113. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_signed-in-layout_tsx_13vv8fo._.js +1 -1
  114. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_squadrons_[squadronId]_page_tsx_0f8nmsh._.js +1 -1
  115. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_squadrons_page_tsx_1xpvx8n._.js +1 -1
  116. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_trierarchs_[shipId]_page_tsx_1u845f4._.js +1 -1
  117. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_providers_tsx_06ai92n._.js +1 -1
  118. package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_console_features_0tur713._.js → packages_console_features_0b8_-rg._.js} +1 -1
  119. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_features_sign-in_organisms_sign-in-form_tsx_16_oswu._.js +1 -1
  120. package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_console_features_squadrons_organisms_form-squadron-dialog_tsx_0la8z4f._.js → packages_console_features_squadrons_organisms_form-squadron-dialog_tsx_05o22-1._.js} +1 -1
  121. package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_console_features_trierarchs_organisms_clear-worktree-dialog_tsx_01eb-00._.js → packages_console_features_trierarchs_organisms_clear-worktree-dialog_tsx_1sub7sd._.js} +1 -1
  122. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_lib_11xnux-._.js +1 -1
  123. package/.next/standalone/packages/console/.next/server/instrumentation.js +4 -0
  124. package/.next/standalone/packages/console/.next/server/middleware-build-manifest.js +3 -3
  125. package/.next/standalone/packages/console/.next/server/pages/500.html +1 -1
  126. package/.next/standalone/packages/console/.next/server/server-reference-manifest.js +1 -1
  127. package/.next/standalone/packages/console/.next/server/server-reference-manifest.json +17 -17
  128. package/.next/standalone/packages/console/.next/static/chunks/{2vnmap15_4ik5.js → 08fntqgo3353u.js} +1 -1
  129. package/.next/standalone/packages/console/.next/static/chunks/{3faqga4wbve_5.js → 0gbe9745rqcvv.js} +1 -1
  130. package/.next/standalone/packages/console/.next/static/chunks/{0rr9rjc_bc3gf.js → 0nztfy7ba1ez4.js} +1 -1
  131. package/.next/standalone/packages/console/.next/static/chunks/{1s_391feiypzt.js → 0xklzua--y-te.js} +1 -1
  132. package/.next/standalone/packages/console/.next/static/chunks/{1jz4bf7w_acy8.js → 1ixzo923d17k5.js} +1 -1
  133. package/.next/standalone/packages/console/.next/static/chunks/{2zu0p9hjzqg_-.js → 1ut35-agyc9m4.js} +1 -1
  134. package/.next/standalone/packages/console/.next/static/chunks/{0jvnv44qtww0y.js → 1vusd9lpo6rtl.js} +1 -1
  135. package/.next/standalone/packages/console/.next/static/chunks/{1ek70m0owmcgq.js → 274y91hwkjxt3.js} +1 -1
  136. package/.next/standalone/packages/console/.next/static/chunks/{14gq9h4bre4zl.js → 2fcx48n2u74f8.js} +1 -1
  137. package/.next/standalone/packages/console/.next/static/chunks/{2mlx4u2m3gj4n.js → 2fqbkmkhj5cfr.js} +1 -1
  138. package/.next/standalone/packages/console/.next/static/chunks/{2vjnc-m734xfm.js → 2fsy26x-aeybj.js} +1 -1
  139. package/.next/standalone/packages/console/.next/static/chunks/{1kzen4nzgfhzx.js → 2nxpt1ggh42xf.js} +1 -1
  140. package/.next/standalone/packages/console/.next/static/chunks/2sdb6_s313-_0.js +1 -0
  141. package/.next/standalone/packages/console/.next/static/chunks/2x_shz1upn2oi.js +1 -0
  142. package/.next/standalone/packages/console/.next/static/chunks/{2iwxdddbd25in.js → 3hfbb6--wbkq6.js} +1 -1
  143. package/.next/standalone/packages/console/.next/static/chunks/{11tuykopff7e_.js → 3lwa1pmekf5yn.js} +1 -1
  144. package/.next/standalone/packages/console/.next/static/chunks/3otcabh_gijq-.js +1 -0
  145. package/.next/standalone/packages/console/.next/static/chunks/{3sgvr4qucbnoq.js → 3pq58846qyog_.js} +1 -1
  146. package/.next/standalone/packages/console/.next/static/chunks/{3fz2o2p_07f9u.js → 3t0b867w1fd16.js} +1 -1
  147. package/.next/standalone/packages/console/.next/static/chunks/{2w9atwkwe6d4r.js → 3yteehwrrznjm.js} +1 -1
  148. package/.next/standalone/packages/console/.next/static/chunks/{1cg31hv7ug_rw.js → 43wruh-j46sq_.js} +1 -1
  149. package/.next/standalone/packages/console/package.json +3 -3
  150. package/README.md +6 -2
  151. package/package.json +3 -3
  152. package/.next/standalone/packages/console/.next/static/chunks/0bb19hfyc42kn.js +0 -1
  153. package/.next/standalone/packages/console/.next/static/chunks/29glfb1y7qwtg.js +0 -1
  154. package/.next/standalone/packages/console/.next/static/chunks/3dmesrmg4eee9.js +0 -1
  155. /package/.next/standalone/packages/console/.next/static/{bXH06v_D0kt92IaQZhnO3 → JdtYaNS7yPdcTRntms065}/_buildManifest.js +0 -0
  156. /package/.next/standalone/packages/console/.next/static/{bXH06v_D0kt92IaQZhnO3 → JdtYaNS7yPdcTRntms065}/_clientMiddlewareManifest.js +0 -0
  157. /package/.next/standalone/packages/console/.next/static/{bXH06v_D0kt92IaQZhnO3 → JdtYaNS7yPdcTRntms065}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
1
  module.exports=[77339,a=>{"use strict";var b=a.i(87924),c=a.i(64831);let d={name:"arrow-down",size:24,node:[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]};d.node;let e=(0,c.default)(d),f={name:"arrow-up",size:24,node:[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]};f.node;let g=(0,c.default)(f);var h=a.i(40345),i=a.i(80487);function j({className:a,...c}){return(0,b.jsx)("th",{"data-slot":"table-head",className:(0,i.classNames)("px-4 text-left align-middle text-caption font-medium whitespace-nowrap text-muted-foreground",a),...c})}a.s(["Table",0,function({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto rounded-lg border border-border bg-card shadow-sm",children:(0,b.jsx)("table",{"data-slot":"table",className:(0,i.classNames)("w-full caption-bottom text-body",a),...c})})},"TableBody",0,function({className:a,...c}){return(0,b.jsx)("tbody",{"data-slot":"table-body",className:(0,i.classNames)("[&_tr:last-child]:border-0",a),...c})},"TableCell",0,function({className:a,...c}){return(0,b.jsx)("td",{"data-slot":"table-cell",className:(0,i.classNames)("px-4 align-middle",a),...c})},"TableHead",0,j,"TableHeader",0,function({className:a,...c}){return(0,b.jsx)("thead",{"data-slot":"table-header",className:(0,i.classNames)("bg-muted [&_tr]:border-b",a),...c})},"TableRow",0,function({className:a,...c}){return(0,b.jsx)("tr",{"data-slot":"table-row",className:(0,i.classNames)("h-(--size-row) border-b border-border transition-colors duration-(--duration-fast) hover:bg-muted has-focus-visible:outline-2 has-focus-visible:-outline-offset-2 has-focus-visible:outline-ring data-new:animate-highlight [thead_&]:h-(--size-row-header) [thead_&]:hover:bg-transparent",a),...c})},"TableSortHead",0,function({direction:a,onSort:c,children:d,className:f,...k}){let l="ascending"===a?g:"descending"===a?e:h.ChevronsUpDown;return(0,b.jsx)(j,{"aria-sort":a??"none",className:(0,i.classNames)("px-2",f),...k,children:(0,b.jsxs)("button",{type:"button",onClick:c,className:"inline-flex h-7 items-center gap-1 rounded-sm px-2 font-medium hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring data-sorted:text-foreground","data-sorted":null===a?void 0:"",children:[d,(0,b.jsx)(l,{"aria-hidden":!0,className:(0,i.classNames)("size-3.5 shrink-0",null===a?"opacity-50":void 0)})]})})}],77339)},75971,a=>{"use strict";var b=a.i(87924),c=a.i(80487);let d={"on-time":{label:"On time",dot:"bg-tone-ok-fg",text:"text-tone-ok-fg"},late:{label:"Late",dot:"bg-tone-waiting-fg",text:"text-tone-waiting-fg"},silent:{label:"Silent",dot:"bg-tone-attention-fg",text:"text-tone-attention-fg"},"standing-down":{label:"Standing down",dot:"bg-tone-active-fg",text:"text-tone-active-fg"},"not-on-station":{label:"Not on station",dot:"border border-dashed border-muted-foreground",text:"text-foreground"}};function e({health:a}){return(0,b.jsx)("span",{"aria-hidden":!0,className:(0,c.classNames)("size-2 shrink-0 rounded-full",d[a].dot)})}a.s(["HealthIndicator",0,function({health:a,detail:f,className:g}){return(0,b.jsxs)("span",{"data-slot":"health-indicator","data-health":a,className:(0,c.classNames)("inline-flex items-center gap-1.5 text-meta",g),children:[(0,b.jsx)(e,{health:a}),(0,b.jsx)("span",{className:(0,c.classNames)("font-medium",d[a].text),children:d[a].label}),void 0!==f&&(0,b.jsx)("span",{className:"text-muted-foreground",children:f})]})},"HealthSummary",0,function({counts:a,className:f}){return(0,b.jsx)("span",{"data-slot":"health-summary",className:(0,c.classNames)("inline-flex flex-wrap items-center gap-x-3 gap-y-1 text-meta",f),children:a.map(({health:a,count:c})=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)(e,{health:a}),(0,b.jsxs)("span",{children:[c," ",d[a].label.toLowerCase()]})]},a))})}])},90468,a=>{"use strict";var b=a.i(87924),c=a.i(187),d=a.i(38246),e=a.i(80487);let f=(0,c.cva)("min-w-0 truncate font-sans font-medium",{variants:{size:{body:"text-body text-foreground",meta:"text-meta text-muted-foreground",title:"text-title font-semibold tracking-tight text-foreground max-sm:text-title-touch"}},defaultVariants:{size:"body"}});a.s(["ShipName",0,function({name:a,shipId:c,size:g,isSuffixShown:h=!1,isOperator:i=!1,href:j,className:k}){let l=j?(0,b.jsx)(d.default,{href:j,className:(0,e.classNames)(f({size:g}),"rounded-xs underline-offset-3 hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring"),title:a,children:a}):(0,b.jsx)("span",{className:f({size:g}),title:a,children:a});return(0,b.jsxs)("span",{"data-slot":"ship-name",className:(0,e.classNames)("inline-flex min-w-0 items-baseline gap-1.5",k),children:[l,i?(0,b.jsx)("span",{className:"shrink-0 font-normal text-muted-foreground",children:"(you)"}):null,h&&!i?(0,b.jsxs)("span",{className:"shrink-0 font-mono text-id text-muted-foreground uppercase",children:[(0,b.jsx)("span",{"aria-hidden":!0,children:"· "}),c.slice(-4)]}):null]})}])},58523,a=>{"use strict";var b=a.i(87924),c=a.i(31668),d=a.i(38246),e=a.i(80487);a.s(["SquadronTag",0,function({squadronId:a,role:f,size:g="md",className:h}){return(0,b.jsxs)(d.default,{href:`/squadrons/${a}`,"data-slot":"squadron-tag",className:(0,e.classNames)("inline-flex max-w-full items-center gap-1 rounded-sm bg-secondary px-1.5 text-secondary-foreground hover:underline [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0","sm"===g?"h-5.5 text-meta":"h-6 text-body",h),children:[(0,b.jsx)(c.Shapes,{"aria-hidden":!0}),(0,b.jsx)("span",{className:"truncate font-medium",children:a}),void 0!==f&&(0,b.jsxs)("span",{className:"shrink-0 text-muted-foreground",children:["· ",f]})]})}])},43020,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_0tree1w._.js"].map(b=>a.l(b))).then(()=>b(52702)))},9854,a=>{"use strict";var b=a.i(31429);function c(a){let b=a.split(";")[0]?.trim().toLowerCase()??"";return"application/json"===b||b.endsWith("+json")}a.s(["formattedPayload",0,function(a,b){if(c(b))try{return JSON.stringify(JSON.parse(a),null,2)}catch{return}},"isJson",0,c,"payloadLabel",0,function(a,d){let e=c(d)?"JSON":d.split(";")[0]?.trim()??d,f=new TextEncoder().encode(a).byteLength;return`${e} \xb7 ${(0,b.counted)(f,{one:"byte",many:"bytes"})}`}])}];
2
2
 
3
- //# sourceMappingURL=packages_console_1ey0_d3._.js.map
3
+ //# sourceMappingURL=packages_console_1hemb_x._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[20195,a=>{"use strict";var b=a.i(87924),c=a.i(3512),d=a.i(72131),e=a.i(76166),f=a.i(12068),g=a.i(98970),h=a.i(91003),i=a.i(38023),j=a.i(34301),k=a.i(65563),l=a.i(90146),m=a.i(67336),n=a.i(10023),o=a.i(68450),p=a.i(10572),q=a.i(93454);let r=(0,j.lazyDialog)(()=>a.A(32322).then(a=>a.JoinMachineDialog),a=>a.isOpen);a.s(["default",0,function(){let a=(0,o.useNow)(),j=(0,i.useConsoleFrame)(),s=(0,n.useNeedsAttention)(),t=(0,m.useLiveFleet)(),u=(0,l.useFleetSnapshot)(),v=(0,q.useTrierarchPluginConnection)(),w=(0,q.useMachines)(),x=(0,q.useTrierarchPluginVersion)(),y=(0,q.useJoinMachine)(),z=(0,k.useAccess)(),[A,B]=(0,d.useState)(!1);(0,p.useSignInWhenSessionEnds)([s.error,t.error]);let C=z.canManage&&"connected"===v,D=()=>{y.reset(),B(!0)};return(0,b.jsxs)(h.ListPage,{...j,title:"Trierarchs",titleMeta:void 0===x?void 0:(0,b.jsxs)(e.Badge,{variant:"outline","data-testid":"trierarchs-plugin-version",children:["trierarch plugin ",x]}),description:"none"===v?"Not set up.":"Machines that run sessions for crew requests. The plugin picks a trierarch for each request.",live:t.live,primaryAction:C?(0,b.jsx)(f.Button,{variant:"primary",icon:(0,b.jsx)(c.Plus,{"aria-hidden":!0}),onClick:D,"data-testid":"trierarchs-join",children:"Join a machine"}):void 0,children:[(0,b.jsx)(g.MachineList,{connection:v,machines:w.data,ships:u.data??[],error:w.isError?w.error.message:void 0,onRetry:()=>{w.refetch()},onJoin:C?D:void 0,now:a}),C&&(0,b.jsx)(r,{activeNames:(u.data??[]).filter(a=>"retired"!==a.status).map(a=>a.name),isOpen:A,onOpenChange:a=>{B(a),a||y.reset()},isPending:y.isPending,error:y.error?.message,joined:y.data,onSubmit:a=>{y.mutate(a)}})]})}])},91003,a=>{"use strict";var b=a.i(87924),c=a.i(17256),d=a.i(12068),e=a.i(82247),f=a.i(63089);a.s(["ListPage",0,function({title:a,description:g,titleMeta:h,primaryAction:i,toolbar:j,live:k,onCompose:l,onSearch:m,account:n,banner:o,children:p}){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.Header,{breadcrumb:a,live:k,onCompose:l,onSearch:m}),o,(0,b.jsx)(f.TopBar,{title:a,live:k,account:n,onSearch:m,actions:l?(0,b.jsx)(d.Button,{variant:"ghost",size:"touch",isIconOnly:!0,"aria-label":"Compose","data-testid":"top-bar-compose",onClick:l,children:(0,b.jsx)(c.SquarePen,{"aria-hidden":!0})}):void 0}),(0,b.jsxs)("main",{className:"flex grow flex-col gap-5 px-8 py-6 max-sm:gap-3.5 max-sm:px-4 max-sm:pt-3.5 max-sm:pb-[calc(var(--size-tabbar)+var(--spacing)*4)]",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-4 max-sm:gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-2.5 gap-y-1",children:[(0,b.jsx)("h1",{className:"text-title font-semibold tracking-tight text-foreground max-sm:hidden",children:a}),h]}),g?(0,b.jsx)("p",{className:"text-meta text-muted-foreground max-sm:text-body-touch",children:g}):null]}),i?(0,b.jsx)("div",{className:"shrink-0 max-sm:w-full max-sm:[&>*]:w-full",children:i}):null]}),j,p]})]})}])},32322,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_158-r1d._.js","server/chunks/ssr/packages_console_components_atoms_input_tsx_0ux0uln._.js","server/chunks/ssr/_0dbxg7m._.js"].map(b=>a.l(b))).then(()=>b(48367)))}];
1
+ module.exports=[20195,a=>{"use strict";var b=a.i(87924),c=a.i(3512),d=a.i(72131),e=a.i(76166),f=a.i(12068),g=a.i(98970),h=a.i(91003),i=a.i(38023),j=a.i(34301),k=a.i(65563),l=a.i(90146),m=a.i(67336),n=a.i(10023),o=a.i(68450),p=a.i(37462),q=a.i(93454);let r=(0,j.lazyDialog)(()=>a.A(32322).then(a=>a.JoinMachineDialog),a=>a.isOpen);a.s(["default",0,function(){let a=(0,o.useNow)(),j=(0,i.useConsoleFrame)(),s=(0,n.useNeedsAttention)(),t=(0,m.useLiveFleet)(),u=(0,l.useFleetSnapshot)(),v=(0,q.useTrierarchPluginConnection)(),w=(0,q.useMachines)(),x=(0,q.useTrierarchPluginVersion)(),y=(0,q.useJoinMachine)(),z=(0,k.useAccess)(),[A,B]=(0,d.useState)(!1);(0,p.useSignInWhenSessionEnds)([s.error,t.error]);let C=z.canManage&&"connected"===v,D=()=>{y.reset(),B(!0)};return(0,b.jsxs)(h.ListPage,{...j,title:"Trierarchs",titleMeta:void 0===x?void 0:(0,b.jsxs)(e.Badge,{variant:"outline","data-testid":"trierarchs-plugin-version",children:["trierarch plugin ",x]}),description:"none"===v?"Not set up.":"Machines that run sessions for crew requests. The plugin picks a trierarch for each request.",live:t.live,primaryAction:C?(0,b.jsx)(f.Button,{variant:"primary",icon:(0,b.jsx)(c.Plus,{"aria-hidden":!0}),onClick:D,"data-testid":"trierarchs-join",children:"Join a machine"}):void 0,children:[(0,b.jsx)(g.MachineList,{connection:v,machines:w.data,ships:u.data??[],error:w.isError?w.error.message:void 0,onRetry:()=>{w.refetch()},onJoin:C?D:void 0,now:a}),C&&(0,b.jsx)(r,{activeNames:(u.data??[]).filter(a=>"retired"!==a.status).map(a=>a.name),isOpen:A,onOpenChange:a=>{B(a),a||y.reset()},isPending:y.isPending,error:y.error?.message,joined:y.data,onSubmit:a=>{y.mutate(a)}})]})}])},91003,a=>{"use strict";var b=a.i(87924),c=a.i(17256),d=a.i(12068),e=a.i(82247),f=a.i(63089);a.s(["ListPage",0,function({title:a,description:g,titleMeta:h,primaryAction:i,toolbar:j,live:k,onCompose:l,onSearch:m,account:n,banner:o,children:p}){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.Header,{breadcrumb:a,live:k,onCompose:l,onSearch:m}),o,(0,b.jsx)(f.TopBar,{title:a,live:k,account:n,onSearch:m,actions:l?(0,b.jsx)(d.Button,{variant:"ghost",size:"touch",isIconOnly:!0,"aria-label":"Compose","data-testid":"top-bar-compose",onClick:l,children:(0,b.jsx)(c.SquarePen,{"aria-hidden":!0})}):void 0}),(0,b.jsxs)("main",{className:"flex grow flex-col gap-5 px-8 py-6 max-sm:gap-3.5 max-sm:px-4 max-sm:pt-3.5 max-sm:pb-[calc(var(--size-tabbar)+var(--spacing)*4)]",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-4 max-sm:gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-2.5 gap-y-1",children:[(0,b.jsx)("h1",{className:"text-title font-semibold tracking-tight text-foreground max-sm:hidden",children:a}),h]}),g?(0,b.jsx)("p",{className:"text-meta text-muted-foreground max-sm:text-body-touch",children:g}):null]}),i?(0,b.jsx)("div",{className:"shrink-0 max-sm:w-full max-sm:[&>*]:w-full",children:i}):null]}),j,p]})]})}])},32322,a=>{a.v(b=>Promise.all(["server/chunks/ssr/_158-r1d._.js","server/chunks/ssr/packages_console_components_atoms_input_tsx_0ux0uln._.js","server/chunks/ssr/_0dbxg7m._.js"].map(b=>a.l(b))).then(()=>b(48367)))}];
2
2
 
3
- //# sourceMappingURL=packages_console_0sqk26-._.js.map
3
+ //# sourceMappingURL=packages_console_1jdaua7._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[1526,a=>{"use strict";var b=a.i(1741),c=a.i(80213),d=a.i(2318),e=a.i(10021);a.s([],67695),a.i(67695),a.s(["0053ff3584a9017f773a75c38e21466b0c83412e4b",()=>c.connectNetworkingPlugin,"006c15aed95e36f3d232fa50bd9fe884d4f8139ef8",()=>b.connectSquadrons,"0077c516816f49a98fe8607bd9d4de6cc99842e71a",()=>b.refreshCatalogue,"00c56341a319e7ccfc7cac02420676928f09a2fe4f",()=>d.connectTrierarchPlugin,"4038355680acd8833fe5c7e074dffd8393c5fa17ce",()=>c.saveNetworkDeclaration,"40455db84fd0d7a2276ef2c53818a6fc9480002a38",()=>d.joinMachine,"40592f0776dbfb364cf627221c253bc237ec79b8cc",()=>e.answerQuestion,"407b0776fb8cb54b50b26bb41330f9c5553949caf5",()=>b.forceStandDown,"408840f91a83b0f13aec53677e530887aac4e09d68",()=>c.saveNetworkRules,"40acab36e3a561cbd2ddde203cf2a3bd12a0a75ac5",()=>b.formSquadron,"40af11b17818f26c794dceeb2d3daef93e09e02f36",()=>b.removeMember,"40c500d6c253b8dfad11ed143e63aa6834ab1c2c58",()=>b.removeRepository,"40ccd7992eeb370fd7bb3126bb413ac43633d6f2e2",()=>b.standDown,"40de805433b2ab7dc6b7e9a548dbcb568b74126afc",()=>b.newCrewLine,"40eda1b7924f9d800700635282f11eda81c103a91b",()=>b.addRepository,"40eed6972409bc72d6d498ee296bc0d98e29c9fb2a",()=>b.addMember],1526)}];
1
+ module.exports=[1526,a=>{"use strict";var b=a.i(1741),c=a.i(80213),d=a.i(2318),e=a.i(10021);a.s([],67695),a.i(67695),a.s(["0023d7d459fc95afae89ebcfd677ec28276a6e0b34",()=>b.refreshCatalogue,"0031712278593dac8ff97509ddba101741c01358a6",()=>c.connectNetworkingPlugin,"0092f99015098f21ed819e0261ce501355b6cbf91d",()=>d.connectTrierarchPlugin,"00bbabdf3d4667be13d96623a45863e32cfe1e44ab",()=>b.connectSquadrons,"4001dc32896801d769ace0ce191ad6edbbc6a67b65",()=>c.saveNetworkRules,"4032ac2635826441207d68e92f417f0ccb35e0d02e",()=>e.answerQuestion,"404a2523cf7704694f7bbb3ffc8e9a6806e7a1dc93",()=>b.formSquadron,"405b3d865fc43cb13c915bf79f744d4c82d9428c9c",()=>b.removeMember,"406397d99697ed37edf76388d4c95c26d007102ed8",()=>b.newCrewLine,"4069098cd17a36949f7c45ff051c9d8b00c7675fa0",()=>c.saveNetworkDeclaration,"4072bf5e28a7446239e115289c3928390d7bcde483",()=>b.standDown,"4074648e7698bff8d918108efa5bb1dc8d0a37fd8e",()=>b.addMember,"4097b5c482a209e5ed7a689f5afb50783d46fcb876",()=>b.addRepository,"40a317af66400e5f577c66c3fdd4a33d642b04efc8",()=>b.forceStandDown,"40afa006fb79d482ac88a1a23772098dfe124e1425",()=>b.removeRepository,"40da4a36ed79c31fdfa5f7cb1408e2581bec0c3e90",()=>d.joinMachine],1526)}];
2
2
 
3
3
  //# sourceMappingURL=packages_console__next-internal_server_app_%28console%29_inbox_page_actions_0q9_xye.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[52489,a=>{"use strict";var b=a.i(1741),c=a.i(80213),d=a.i(2318),e=a.i(10021);a.s([],44277),a.i(44277),a.s(["0053ff3584a9017f773a75c38e21466b0c83412e4b",()=>c.connectNetworkingPlugin,"006c15aed95e36f3d232fa50bd9fe884d4f8139ef8",()=>b.connectSquadrons,"0077c516816f49a98fe8607bd9d4de6cc99842e71a",()=>b.refreshCatalogue,"00c56341a319e7ccfc7cac02420676928f09a2fe4f",()=>d.connectTrierarchPlugin,"4038355680acd8833fe5c7e074dffd8393c5fa17ce",()=>c.saveNetworkDeclaration,"40455db84fd0d7a2276ef2c53818a6fc9480002a38",()=>d.joinMachine,"40592f0776dbfb364cf627221c253bc237ec79b8cc",()=>e.answerQuestion,"407b0776fb8cb54b50b26bb41330f9c5553949caf5",()=>b.forceStandDown,"408840f91a83b0f13aec53677e530887aac4e09d68",()=>c.saveNetworkRules,"40acab36e3a561cbd2ddde203cf2a3bd12a0a75ac5",()=>b.formSquadron,"40af11b17818f26c794dceeb2d3daef93e09e02f36",()=>b.removeMember,"40c500d6c253b8dfad11ed143e63aa6834ab1c2c58",()=>b.removeRepository,"40ccd7992eeb370fd7bb3126bb413ac43633d6f2e2",()=>b.standDown,"40de805433b2ab7dc6b7e9a548dbcb568b74126afc",()=>b.newCrewLine,"40eda1b7924f9d800700635282f11eda81c103a91b",()=>b.addRepository,"40eed6972409bc72d6d498ee296bc0d98e29c9fb2a",()=>b.addMember],52489)}];
1
+ module.exports=[52489,a=>{"use strict";var b=a.i(1741),c=a.i(80213),d=a.i(2318),e=a.i(10021);a.s([],44277),a.i(44277),a.s(["0023d7d459fc95afae89ebcfd677ec28276a6e0b34",()=>b.refreshCatalogue,"0031712278593dac8ff97509ddba101741c01358a6",()=>c.connectNetworkingPlugin,"0092f99015098f21ed819e0261ce501355b6cbf91d",()=>d.connectTrierarchPlugin,"00bbabdf3d4667be13d96623a45863e32cfe1e44ab",()=>b.connectSquadrons,"4001dc32896801d769ace0ce191ad6edbbc6a67b65",()=>c.saveNetworkRules,"4032ac2635826441207d68e92f417f0ccb35e0d02e",()=>e.answerQuestion,"404a2523cf7704694f7bbb3ffc8e9a6806e7a1dc93",()=>b.formSquadron,"405b3d865fc43cb13c915bf79f744d4c82d9428c9c",()=>b.removeMember,"406397d99697ed37edf76388d4c95c26d007102ed8",()=>b.newCrewLine,"4069098cd17a36949f7c45ff051c9d8b00c7675fa0",()=>c.saveNetworkDeclaration,"4072bf5e28a7446239e115289c3928390d7bcde483",()=>b.standDown,"4074648e7698bff8d918108efa5bb1dc8d0a37fd8e",()=>b.addMember,"4097b5c482a209e5ed7a689f5afb50783d46fcb876",()=>b.addRepository,"40a317af66400e5f577c66c3fdd4a33d642b04efc8",()=>b.forceStandDown,"40afa006fb79d482ac88a1a23772098dfe124e1425",()=>b.removeRepository,"40da4a36ed79c31fdfa5f7cb1408e2581bec0c3e90",()=>d.joinMachine],52489)}];
2
2
 
3
3
  //# sourceMappingURL=packages_console__next-internal_server_app_%28console%29_labels_page_actions_0tk7mqs.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[94521,a=>{"use strict";var b=a.i(1741),c=a.i(80213),d=a.i(2318),e=a.i(10021);a.s([],2155),a.i(2155),a.s(["0053ff3584a9017f773a75c38e21466b0c83412e4b",()=>c.connectNetworkingPlugin,"006c15aed95e36f3d232fa50bd9fe884d4f8139ef8",()=>b.connectSquadrons,"0077c516816f49a98fe8607bd9d4de6cc99842e71a",()=>b.refreshCatalogue,"00c56341a319e7ccfc7cac02420676928f09a2fe4f",()=>d.connectTrierarchPlugin,"4038355680acd8833fe5c7e074dffd8393c5fa17ce",()=>c.saveNetworkDeclaration,"40455db84fd0d7a2276ef2c53818a6fc9480002a38",()=>d.joinMachine,"40592f0776dbfb364cf627221c253bc237ec79b8cc",()=>e.answerQuestion,"407b0776fb8cb54b50b26bb41330f9c5553949caf5",()=>b.forceStandDown,"408840f91a83b0f13aec53677e530887aac4e09d68",()=>c.saveNetworkRules,"40acab36e3a561cbd2ddde203cf2a3bd12a0a75ac5",()=>b.formSquadron,"40af11b17818f26c794dceeb2d3daef93e09e02f36",()=>b.removeMember,"40c500d6c253b8dfad11ed143e63aa6834ab1c2c58",()=>b.removeRepository,"40ccd7992eeb370fd7bb3126bb413ac43633d6f2e2",()=>b.standDown,"40de805433b2ab7dc6b7e9a548dbcb568b74126afc",()=>b.newCrewLine,"40eda1b7924f9d800700635282f11eda81c103a91b",()=>b.addRepository,"40eed6972409bc72d6d498ee296bc0d98e29c9fb2a",()=>b.addMember],94521)}];
1
+ module.exports=[94521,a=>{"use strict";var b=a.i(1741),c=a.i(80213),d=a.i(2318),e=a.i(10021);a.s([],2155),a.i(2155),a.s(["0023d7d459fc95afae89ebcfd677ec28276a6e0b34",()=>b.refreshCatalogue,"0031712278593dac8ff97509ddba101741c01358a6",()=>c.connectNetworkingPlugin,"0092f99015098f21ed819e0261ce501355b6cbf91d",()=>d.connectTrierarchPlugin,"00bbabdf3d4667be13d96623a45863e32cfe1e44ab",()=>b.connectSquadrons,"4001dc32896801d769ace0ce191ad6edbbc6a67b65",()=>c.saveNetworkRules,"4032ac2635826441207d68e92f417f0ccb35e0d02e",()=>e.answerQuestion,"404a2523cf7704694f7bbb3ffc8e9a6806e7a1dc93",()=>b.formSquadron,"405b3d865fc43cb13c915bf79f744d4c82d9428c9c",()=>b.removeMember,"406397d99697ed37edf76388d4c95c26d007102ed8",()=>b.newCrewLine,"4069098cd17a36949f7c45ff051c9d8b00c7675fa0",()=>c.saveNetworkDeclaration,"4072bf5e28a7446239e115289c3928390d7bcde483",()=>b.standDown,"4074648e7698bff8d918108efa5bb1dc8d0a37fd8e",()=>b.addMember,"4097b5c482a209e5ed7a689f5afb50783d46fcb876",()=>b.addRepository,"40a317af66400e5f577c66c3fdd4a33d642b04efc8",()=>b.forceStandDown,"40afa006fb79d482ac88a1a23772098dfe124e1425",()=>b.removeRepository,"40da4a36ed79c31fdfa5f7cb1408e2581bec0c3e90",()=>d.joinMachine],94521)}];
2
2
 
3
3
  //# sourceMappingURL=packages_console__next-internal_server_app_%28console%29_page_actions_1ftjjyq.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[32295,a=>{"use strict";var b=a.i(87924),c=a.i(3512),d=a.i(72131),e=a.i(12068),f=a.i(39977),g=a.i(42955),h=a.i(64831);let i={name:"pencil",size:24,node:[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]};i.node;let j=(0,h.default)(i);var k=a.i(33540),l=a.i(98238),m=a.i(23636),n=a.i(3894),o=a.i(51675),p=a.i(38246),q=a.i(80487),r=a.i(1851),s=a.i(65230),t=a.i(55280),u=a.i(75297),v=a.i(48136),w=a.i(77339),x=a.i(24173),y=a.i(40392),z=a.i(50808);let A={"trierarch-plugin":m.ShipWheel,squadrons:f.Boxes,ship:l.Ship};function B(a,b){return`${String(a)} ${1===a?b:`${b}s`}`}function C({value:a}){return(0,b.jsxs)(p.default,{href:`/?label=${a.valueId}`,"data-testid":"labels-value",title:`${a.value}: on ${0===a.shipCount?"no ship":B(a.shipCount,"ship")}`,className:(0,q.classNames)("inline-flex h-6 items-center gap-1.5 rounded-sm border border-border bg-secondary px-2 font-mono text-id hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring",0===a.shipCount?"text-muted-foreground":"text-foreground"),children:[(0,b.jsx)("span",{className:"font-medium",children:a.value}),(0,b.jsx)("span",{className:"font-sans text-caption text-muted-foreground tabular-nums",children:a.shipCount})]})}function D({owner:a}){let c="none"===a.mark?null:A[a.mark];return(0,b.jsxs)("span",{className:"flex min-w-0 flex-col gap-0.5",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 font-medium [&_svg]:size-(--size-icon-sm) [&_svg]:text-muted-foreground",children:[null===c?null:(0,b.jsx)(c,{"aria-hidden":!0}),a.name,a.isYours?(0,b.jsx)("span",{className:"font-normal text-muted-foreground",children:"(you)"}):null]}),(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:a.isYours?"Only you assign it":`Read-only: only ${a.name} assigns it`})]})}function E({row:a,onChangeValues:c,onDelete:d}){if(!a.owner.isYours||void 0===c&&void 0===d)return null;let f=a.shipCount>0;return(0,b.jsxs)(t.DropdownMenu,{children:[(0,b.jsx)(t.DropdownMenuTrigger,{render:(0,b.jsx)(e.Button,{variant:"ghost",size:"sm",isIconOnly:!0,"aria-label":`Actions for ${a.key}`,icon:(0,b.jsx)(g.Ellipsis,{}),"data-testid":"labels-row-menu"})}),(0,b.jsxs)(t.DropdownMenuContent,{align:"end",children:[void 0===c?null:(0,b.jsxs)(t.DropdownMenuItem,{"data-testid":"labels-change-values",onClick:()=>{c(a)},children:[(0,b.jsx)(j,{"aria-hidden":!0}),"Change values…"]}),void 0===d?null:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(t.DropdownMenuSeparator,{}),(0,b.jsxs)(t.DropdownMenuItem,{variant:"destructive",disabled:f,"data-testid":"labels-delete",className:"h-auto min-h-8.5 py-1.5",onClick:()=>{d(a)},children:[(0,b.jsx)(o.Trash2,{"aria-hidden":!0}),(0,b.jsxs)("span",{className:"flex flex-col",children:["Delete label…",f?(0,b.jsx)("span",{className:"text-caption text-muted-foreground",children:"Only when no ship carries it"}):null]})]})]})]})]})}function F({rows:a,shipTotal:f,error:g,onRetry:h,onDefine:i,onChangeValues:j,onDelete:l}){let m=(0,r.useConsoleConstants)(),[o,p]=(0,d.useState)(""),[q,t]=(0,d.useState)("all");if(void 0!==g)return(0,b.jsx)(y.InlineError,{variant:"page",title:"Couldn’t load labels",description:"This page couldn’t reach the fleet server. Nothing changed; your labels are where you left them.",detail:g,onRetry:h});if(void 0===a)return(0,b.jsx)(z.LoadingSkeleton,{variant:"table",rows:5,label:"Loading labels"});if(0===a.length)return(0,b.jsx)(x.EmptyState,{icon:(0,b.jsx)(n.Tags,{"aria-hidden":!0}),title:"No labels yet",description:"A label is a key with a set of values, like os with macos and linux. Define one, then assign it on ship pages to filter the fleet and to place crew requests on machines.",action:void 0===i?void 0:(0,b.jsx)(e.Button,{variant:"primary",icon:(0,b.jsx)(c.Plus,{}),onClick:i,children:"Define a label"})});let A=[...new Set(a.map(a=>a.owner.name))],G=a.filter(a=>(0,s.matchesLabelQuery)(a,o)&&("all"===q||a.owner.name===q)),H={all:"All",...Object.fromEntries(A.map(a=>[a,a]))};return(0,b.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"labels-table",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("div",{className:"w-64 max-sm:min-w-0 max-sm:flex-1",children:(0,b.jsx)(u.Input,{type:"search","aria-label":"Find a key or value",placeholder:"Find a key or value",leadingIcon:(0,b.jsx)(k.Search,{}),value:o,className:"h-(--size-control-sm) text-meta max-sm:h-(--size-control-touch) max-sm:text-input-touch","data-testid":"labels-search",onChange:a=>{p(a.target.value)}})}),(0,b.jsxs)(v.Select,{items:H,value:q,onValueChange:a=>{null!==a&&t(a)},children:[(0,b.jsx)(v.SelectTrigger,{size:"sm","aria-label":"Owner",children:(0,b.jsxs)("span",{className:"flex gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"Owner"}),(0,b.jsx)(v.SelectValue,{className:"font-medium"})]})}),(0,b.jsx)(v.SelectContent,{children:Object.entries(H).map(([a,c])=>(0,b.jsx)(v.SelectItem,{value:a,children:c},a))})]}),(0,b.jsxs)("p",{className:"ml-auto text-meta text-muted-foreground tabular-nums max-sm:w-full",children:[B(a.length,"label")," · ",B(A.length,"owner")]})]}),0===G.length?(0,b.jsx)(x.EmptyState,{variant:"no-results",title:`No label matches “${o.trim()}”.`}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"max-sm:hidden",children:(0,b.jsxs)(w.Table,{"aria-label":"Labels",children:[(0,b.jsx)(w.TableHeader,{children:(0,b.jsxs)(w.TableRow,{children:[(0,b.jsx)(w.TableHead,{children:"Key"}),(0,b.jsx)(w.TableHead,{children:"Values and the ships that carry each"}),(0,b.jsx)(w.TableHead,{children:"Owner"}),(0,b.jsx)(w.TableHead,{children:"Ships"}),(0,b.jsx)(w.TableHead,{children:(0,b.jsx)("span",{className:"sr-only",children:"Actions"})})]})}),(0,b.jsx)(w.TableBody,{children:G.map(a=>(0,b.jsxs)(w.TableRow,{"data-testid":`labels-row-${a.key}`,children:[(0,b.jsx)(w.TableCell,{className:"align-top",children:(0,b.jsxs)("span",{className:"flex flex-col gap-0.5",children:[(0,b.jsx)("span",{className:"font-mono text-body font-medium",children:a.key}),(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:B(a.values.length,"value")})]})}),(0,b.jsx)(w.TableCell,{children:(0,b.jsx)("span",{className:"flex flex-wrap gap-1.5",children:a.values.map(a=>(0,b.jsx)(C,{value:a},a.valueId))})}),(0,b.jsx)(w.TableCell,{className:"max-w-60 align-top",children:(0,b.jsx)(D,{owner:a.owner})}),(0,b.jsx)(w.TableCell,{className:"align-top",children:(0,b.jsxs)("span",{className:"flex flex-col gap-0.5 tabular-nums",children:[(0,b.jsx)("span",{children:a.shipCount}),(0,b.jsxs)("span",{className:"text-meta text-muted-foreground",children:["of ",f]})]})}),(0,b.jsx)(w.TableCell,{className:"w-10 text-right align-top",children:(0,b.jsx)(E,{row:a,onChangeValues:j,onDelete:l})})]},a.labelId))})]})}),(0,b.jsx)("ul",{"aria-label":"Labels",className:"overflow-hidden rounded-lg border border-border bg-card sm:hidden",children:G.map(a=>(0,b.jsxs)("li",{className:"flex flex-col gap-2 border-b border-border px-3.5 py-3 last:border-0","data-testid":`labels-card-${a.key}`,children:[(0,b.jsxs)("span",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"font-mono text-body-touch font-medium",children:a.key}),(0,b.jsxs)("span",{className:"flex items-center gap-1 text-meta text-muted-foreground",children:[B(a.shipCount,"ship"),(0,b.jsx)(E,{row:a,onChangeValues:j,onDelete:l})]})]}),(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:a.owner.isYours?"By you":`By ${a.owner.name} \xb7 read-only`}),(0,b.jsx)("span",{className:"flex flex-wrap gap-1.5",children:a.values.map(a=>(0,b.jsx)(C,{value:a},a.valueId))})]},a.labelId))})]}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:`A value opens the fleet overview filtered by it. Keys and values use lowercase letters, digits and -, up to ${String(m.labelHandleMaxLength)} characters; a label has at most ${String(m.labelValuesMax)} values and a ship at most ${String(m.shipLabelsMax)} labels (decision 0031).`})]})}var G=a.i(35559),H=a.i(38023),I=a.i(34301),J=a.i(65563),K=a.i(90146),L=a.i(67336),M=a.i(10023),N=a.i(10572);let O=(0,I.lazyDialog)(()=>a.A(50005).then(a=>a.DefineLabelDialog),a=>a.isOpen),P=(0,I.lazyDialog)(()=>a.A(14091).then(a=>a.DeleteLabelDialog),a=>void 0!==a.row),Q=(0,I.lazyDialog)(()=>a.A(18294).then(a=>a.LabelValuesDialog),a=>void 0!==a.row);a.s(["default",0,function(){let a=(0,H.useConsoleFrame)(),f=(0,M.useNeedsAttention)(),g=(0,L.useLiveFleet)(),h=(0,J.useAccess)(),i=(0,K.useFleetLabels)(),j=(0,K.useLabelContext)(),k=(0,K.useDefineLabel)(),l=(0,K.useChangeLabelValues)(),m=(0,K.useDeleteLabel)(),[n,o]=(0,d.useState)(!1),[p,q]=(0,d.useState)(void 0),[r,t]=(0,d.useState)(void 0),[u,v]=(0,d.useState)(void 0),[w,x]=(0,d.useState)(void 0);(0,N.useSignInWhenSessionEnds)([f.error,g.error,i.error]);let y=void 0===j?void 0:(0,s.labelRowsOf)(j),z=h.canDefineLabels,A=y?.find(a=>a.labelId===p),B=y?.find(a=>a.labelId===w),C=a=>{void 0!==A&&(t(a.busy),v(void 0),l.mutate({labelId:A.labelId,values:a.values},{onError:b=>{v({...a.refused,message:b.message})},onSettled:()=>{t(void 0)}}))};return(0,b.jsxs)(G.DetailPage,{onCompose:a.onCompose,onSearch:a.onSearch,banner:a.banner,title:"Labels",parents:[{href:"/",label:"Fleet overview"}],live:g.live,header:(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-4 max-sm:gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-1",children:[(0,b.jsx)("h1",{className:"text-title font-semibold tracking-tight max-sm:text-title-touch",children:"Labels"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground max-sm:text-body-touch",children:"An owned vocabulary for selecting ships: filter the fleet with them, and crew requests use them to pick a machine. Only a label’s owner assigns it."})]}),z&&void 0!==y&&y.length>0?(0,b.jsx)(e.Button,{variant:"primary",icon:(0,b.jsx)(c.Plus,{}),className:"max-sm:w-full","data-testid":"labels-define",onClick:()=>{k.reset(),o(!0)},children:"Define a label"}):null]}),children:[(0,b.jsx)(F,{rows:y,shipTotal:void 0===j?0:(0,s.activeShipCount)(j),error:i.isError?i.error.message:void 0,onRetry:()=>{i.refetch()},onDefine:z?()=>{k.reset(),o(!0)}:void 0,onChangeValues:z?a=>{v(void 0),q(a.labelId)}:void 0,onDelete:z?a=>{m.reset(),x(a.labelId)}:void 0}),z?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(O,{isOpen:n,onOpenChange:o,isPending:k.isPending,error:k.error?.message,onSubmit:a=>{k.mutate(a,{onSuccess:()=>{o(!1)}})}}),(0,b.jsx)(Q,{row:A,onOpenChange:a=>{a||q(void 0)},busy:r,error:u,onAdd:a=>{C({values:[...A?.values.map(a=>a.value)??[],a],busy:{action:"add",value:a},refused:{value:a}})},onRemove:a=>{let b=A?.values.find(b=>b.valueId===a);C({values:A?.values.filter(b=>b.valueId!==a).map(a=>a.value)??[],busy:{action:"remove",valueId:a},refused:{valueId:a,value:b?.value??""}})}}),(0,b.jsx)(P,{row:B,onOpenChange:a=>{a||x(void 0)},isPending:m.isPending,error:m.error?.message,onDelete:a=>{m.mutate({labelId:a},{onSuccess:()=>{x(void 0)}})}})]}):null]})}],32295)}];
1
+ module.exports=[32295,a=>{"use strict";var b=a.i(87924),c=a.i(3512),d=a.i(72131),e=a.i(12068),f=a.i(39977),g=a.i(42955),h=a.i(64831);let i={name:"pencil",size:24,node:[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]};i.node;let j=(0,h.default)(i);var k=a.i(33540),l=a.i(98238),m=a.i(23636),n=a.i(3894),o=a.i(51675),p=a.i(38246),q=a.i(80487),r=a.i(1851),s=a.i(65230),t=a.i(55280),u=a.i(75297),v=a.i(48136),w=a.i(77339),x=a.i(24173),y=a.i(40392),z=a.i(50808);let A={"trierarch-plugin":m.ShipWheel,squadrons:f.Boxes,ship:l.Ship};function B(a,b){return`${String(a)} ${1===a?b:`${b}s`}`}function C({value:a}){return(0,b.jsxs)(p.default,{href:`/?label=${a.valueId}`,"data-testid":"labels-value",title:`${a.value}: on ${0===a.shipCount?"no ship":B(a.shipCount,"ship")}`,className:(0,q.classNames)("inline-flex h-6 items-center gap-1.5 rounded-sm border border-border bg-secondary px-2 font-mono text-id hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring",0===a.shipCount?"text-muted-foreground":"text-foreground"),children:[(0,b.jsx)("span",{className:"font-medium",children:a.value}),(0,b.jsx)("span",{className:"font-sans text-caption text-muted-foreground tabular-nums",children:a.shipCount})]})}function D({owner:a}){let c="none"===a.mark?null:A[a.mark];return(0,b.jsxs)("span",{className:"flex min-w-0 flex-col gap-0.5",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 font-medium [&_svg]:size-(--size-icon-sm) [&_svg]:text-muted-foreground",children:[null===c?null:(0,b.jsx)(c,{"aria-hidden":!0}),a.name,a.isYours?(0,b.jsx)("span",{className:"font-normal text-muted-foreground",children:"(you)"}):null]}),(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:a.isYours?"Only you assign it":`Read-only: only ${a.name} assigns it`})]})}function E({row:a,onChangeValues:c,onDelete:d}){if(!a.owner.isYours||void 0===c&&void 0===d)return null;let f=a.shipCount>0;return(0,b.jsxs)(t.DropdownMenu,{children:[(0,b.jsx)(t.DropdownMenuTrigger,{render:(0,b.jsx)(e.Button,{variant:"ghost",size:"sm",isIconOnly:!0,"aria-label":`Actions for ${a.key}`,icon:(0,b.jsx)(g.Ellipsis,{}),"data-testid":"labels-row-menu"})}),(0,b.jsxs)(t.DropdownMenuContent,{align:"end",children:[void 0===c?null:(0,b.jsxs)(t.DropdownMenuItem,{"data-testid":"labels-change-values",onClick:()=>{c(a)},children:[(0,b.jsx)(j,{"aria-hidden":!0}),"Change values…"]}),void 0===d?null:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(t.DropdownMenuSeparator,{}),(0,b.jsxs)(t.DropdownMenuItem,{variant:"destructive",disabled:f,"data-testid":"labels-delete",className:"h-auto min-h-8.5 py-1.5",onClick:()=>{d(a)},children:[(0,b.jsx)(o.Trash2,{"aria-hidden":!0}),(0,b.jsxs)("span",{className:"flex flex-col",children:["Delete label…",f?(0,b.jsx)("span",{className:"text-caption text-muted-foreground",children:"Only when no ship carries it"}):null]})]})]})]})]})}function F({rows:a,shipTotal:f,error:g,onRetry:h,onDefine:i,onChangeValues:j,onDelete:l}){let m=(0,r.useConsoleConstants)(),[o,p]=(0,d.useState)(""),[q,t]=(0,d.useState)("all");if(void 0!==g)return(0,b.jsx)(y.InlineError,{variant:"page",title:"Couldn’t load labels",description:"This page couldn’t reach the fleet server. Nothing changed; your labels are where you left them.",detail:g,onRetry:h});if(void 0===a)return(0,b.jsx)(z.LoadingSkeleton,{variant:"table",rows:5,label:"Loading labels"});if(0===a.length)return(0,b.jsx)(x.EmptyState,{icon:(0,b.jsx)(n.Tags,{"aria-hidden":!0}),title:"No labels yet",description:"A label is a key with a set of values, like os with macos and linux. Define one, then assign it on ship pages to filter the fleet and to place crew requests on machines.",action:void 0===i?void 0:(0,b.jsx)(e.Button,{variant:"primary",icon:(0,b.jsx)(c.Plus,{}),onClick:i,children:"Define a label"})});let A=[...new Set(a.map(a=>a.owner.name))],G=a.filter(a=>(0,s.matchesLabelQuery)(a,o)&&("all"===q||a.owner.name===q)),H={all:"All",...Object.fromEntries(A.map(a=>[a,a]))};return(0,b.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"labels-table",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("div",{className:"w-64 max-sm:min-w-0 max-sm:flex-1",children:(0,b.jsx)(u.Input,{type:"search","aria-label":"Find a key or value",placeholder:"Find a key or value",leadingIcon:(0,b.jsx)(k.Search,{}),value:o,className:"h-(--size-control-sm) text-meta max-sm:h-(--size-control-touch) max-sm:text-input-touch","data-testid":"labels-search",onChange:a=>{p(a.target.value)}})}),(0,b.jsxs)(v.Select,{items:H,value:q,onValueChange:a=>{null!==a&&t(a)},children:[(0,b.jsx)(v.SelectTrigger,{size:"sm","aria-label":"Owner",children:(0,b.jsxs)("span",{className:"flex gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"Owner"}),(0,b.jsx)(v.SelectValue,{className:"font-medium"})]})}),(0,b.jsx)(v.SelectContent,{children:Object.entries(H).map(([a,c])=>(0,b.jsx)(v.SelectItem,{value:a,children:c},a))})]}),(0,b.jsxs)("p",{className:"ml-auto text-meta text-muted-foreground tabular-nums max-sm:w-full",children:[B(a.length,"label")," · ",B(A.length,"owner")]})]}),0===G.length?(0,b.jsx)(x.EmptyState,{variant:"no-results",title:`No label matches “${o.trim()}”.`}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"max-sm:hidden",children:(0,b.jsxs)(w.Table,{"aria-label":"Labels",children:[(0,b.jsx)(w.TableHeader,{children:(0,b.jsxs)(w.TableRow,{children:[(0,b.jsx)(w.TableHead,{children:"Key"}),(0,b.jsx)(w.TableHead,{children:"Values and the ships that carry each"}),(0,b.jsx)(w.TableHead,{children:"Owner"}),(0,b.jsx)(w.TableHead,{children:"Ships"}),(0,b.jsx)(w.TableHead,{children:(0,b.jsx)("span",{className:"sr-only",children:"Actions"})})]})}),(0,b.jsx)(w.TableBody,{children:G.map(a=>(0,b.jsxs)(w.TableRow,{"data-testid":`labels-row-${a.key}`,children:[(0,b.jsx)(w.TableCell,{className:"align-top",children:(0,b.jsxs)("span",{className:"flex flex-col gap-0.5",children:[(0,b.jsx)("span",{className:"font-mono text-body font-medium",children:a.key}),(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:B(a.values.length,"value")})]})}),(0,b.jsx)(w.TableCell,{children:(0,b.jsx)("span",{className:"flex flex-wrap gap-1.5",children:a.values.map(a=>(0,b.jsx)(C,{value:a},a.valueId))})}),(0,b.jsx)(w.TableCell,{className:"max-w-60 align-top",children:(0,b.jsx)(D,{owner:a.owner})}),(0,b.jsx)(w.TableCell,{className:"align-top",children:(0,b.jsxs)("span",{className:"flex flex-col gap-0.5 tabular-nums",children:[(0,b.jsx)("span",{children:a.shipCount}),(0,b.jsxs)("span",{className:"text-meta text-muted-foreground",children:["of ",f]})]})}),(0,b.jsx)(w.TableCell,{className:"w-10 text-right align-top",children:(0,b.jsx)(E,{row:a,onChangeValues:j,onDelete:l})})]},a.labelId))})]})}),(0,b.jsx)("ul",{"aria-label":"Labels",className:"overflow-hidden rounded-lg border border-border bg-card sm:hidden",children:G.map(a=>(0,b.jsxs)("li",{className:"flex flex-col gap-2 border-b border-border px-3.5 py-3 last:border-0","data-testid":`labels-card-${a.key}`,children:[(0,b.jsxs)("span",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"font-mono text-body-touch font-medium",children:a.key}),(0,b.jsxs)("span",{className:"flex items-center gap-1 text-meta text-muted-foreground",children:[B(a.shipCount,"ship"),(0,b.jsx)(E,{row:a,onChangeValues:j,onDelete:l})]})]}),(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:a.owner.isYours?"By you":`By ${a.owner.name} \xb7 read-only`}),(0,b.jsx)("span",{className:"flex flex-wrap gap-1.5",children:a.values.map(a=>(0,b.jsx)(C,{value:a},a.valueId))})]},a.labelId))})]}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:`A value opens the fleet overview filtered by it. Keys and values use lowercase letters, digits and -, up to ${String(m.labelHandleMaxLength)} characters; a label has at most ${String(m.labelValuesMax)} values and a ship at most ${String(m.shipLabelsMax)} labels (decision 0031).`})]})}var G=a.i(35559),H=a.i(38023),I=a.i(34301),J=a.i(65563),K=a.i(90146),L=a.i(67336),M=a.i(10023),N=a.i(37462);let O=(0,I.lazyDialog)(()=>a.A(50005).then(a=>a.DefineLabelDialog),a=>a.isOpen),P=(0,I.lazyDialog)(()=>a.A(14091).then(a=>a.DeleteLabelDialog),a=>void 0!==a.row),Q=(0,I.lazyDialog)(()=>a.A(18294).then(a=>a.LabelValuesDialog),a=>void 0!==a.row);a.s(["default",0,function(){let a=(0,H.useConsoleFrame)(),f=(0,M.useNeedsAttention)(),g=(0,L.useLiveFleet)(),h=(0,J.useAccess)(),i=(0,K.useFleetLabels)(),j=(0,K.useLabelContext)(),k=(0,K.useDefineLabel)(),l=(0,K.useChangeLabelValues)(),m=(0,K.useDeleteLabel)(),[n,o]=(0,d.useState)(!1),[p,q]=(0,d.useState)(void 0),[r,t]=(0,d.useState)(void 0),[u,v]=(0,d.useState)(void 0),[w,x]=(0,d.useState)(void 0);(0,N.useSignInWhenSessionEnds)([f.error,g.error,i.error]);let y=void 0===j?void 0:(0,s.labelRowsOf)(j),z=h.canDefineLabels,A=y?.find(a=>a.labelId===p),B=y?.find(a=>a.labelId===w),C=a=>{void 0!==A&&(t(a.busy),v(void 0),l.mutate({labelId:A.labelId,values:a.values},{onError:b=>{v({...a.refused,message:b.message})},onSettled:()=>{t(void 0)}}))};return(0,b.jsxs)(G.DetailPage,{onCompose:a.onCompose,onSearch:a.onSearch,banner:a.banner,title:"Labels",parents:[{href:"/",label:"Fleet overview"}],live:g.live,header:(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-4 max-sm:gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-1",children:[(0,b.jsx)("h1",{className:"text-title font-semibold tracking-tight max-sm:text-title-touch",children:"Labels"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground max-sm:text-body-touch",children:"An owned vocabulary for selecting ships: filter the fleet with them, and crew requests use them to pick a machine. Only a label’s owner assigns it."})]}),z&&void 0!==y&&y.length>0?(0,b.jsx)(e.Button,{variant:"primary",icon:(0,b.jsx)(c.Plus,{}),className:"max-sm:w-full","data-testid":"labels-define",onClick:()=>{k.reset(),o(!0)},children:"Define a label"}):null]}),children:[(0,b.jsx)(F,{rows:y,shipTotal:void 0===j?0:(0,s.activeShipCount)(j),error:i.isError?i.error.message:void 0,onRetry:()=>{i.refetch()},onDefine:z?()=>{k.reset(),o(!0)}:void 0,onChangeValues:z?a=>{v(void 0),q(a.labelId)}:void 0,onDelete:z?a=>{m.reset(),x(a.labelId)}:void 0}),z?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(O,{isOpen:n,onOpenChange:o,isPending:k.isPending,error:k.error?.message,onSubmit:a=>{k.mutate(a,{onSuccess:()=>{o(!1)}})}}),(0,b.jsx)(Q,{row:A,onOpenChange:a=>{a||q(void 0)},busy:r,error:u,onAdd:a=>{C({values:[...A?.values.map(a=>a.value)??[],a],busy:{action:"add",value:a},refused:{value:a}})},onRemove:a=>{let b=A?.values.find(b=>b.valueId===a);C({values:A?.values.filter(b=>b.valueId!==a).map(a=>a.value)??[],busy:{action:"remove",valueId:a},refused:{valueId:a,value:b?.value??""}})}}),(0,b.jsx)(P,{row:B,onOpenChange:a=>{a||x(void 0)},isPending:m.isPending,error:m.error?.message,onDelete:a=>{m.mutate({labelId:a},{onSuccess:()=>{x(void 0)}})}})]}):null]})}],32295)}];
2
2
 
3
3
  //# sourceMappingURL=packages_console_app_%28console%29_labels_page_tsx_1qggshd._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[43463,a=>{"use strict";var b=a.i(87924),c=a.i(50944),d=a.i(72131),e=a.i(88191),f=a.i(41146),g=a.i(97024),h=a.i(48819),i=a.i(80487),j=a.i(10023),k=a.i(9854),l=a.i(72872),m=a.i(31429),n=a.i(12068),o=a.i(77339),p=a.i(24173),q=a.i(40392),r=a.i(50808),s=a.i(90468),t=a.i(23063);function u({party:a}){let c=a.name===m.OPERATOR_NAME;return(0,b.jsx)(s.ShipName,{name:a.name,shipId:a.id,size:"meta",isOperator:c,isSuffixShown:!c})}function v({delivery:a}){let{sender:c,recipient:d}=a.message;return(0,b.jsxs)("span",{className:"flex min-w-0 flex-wrap items-baseline gap-x-1.5 text-meta text-muted-foreground",children:[(0,b.jsx)(u,{party:c}),(0,b.jsx)("span",{"aria-hidden":!0,children:"→"}),(0,b.jsx)("span",{className:"sr-only",children:"to"}),"ship"===d.kind?(0,b.jsx)(u,{party:d.ship}):(0,b.jsxs)("span",{children:["any ship of type ",d.type]})]})}function w({delivery:a}){let{payload:c,contentType:d}=a.message;return(0,b.jsx)("span",{className:(0,i.classNames)("block min-w-0 truncate text-foreground",(0,k.isJson)(d)?"font-mono text-id":"text-body max-sm:text-body-touch"),title:c,children:c.split("\n")[0]})}function x(a){return(0,j.attentionReason)(a)}function y(a){var b;return`the message from ${a.message.sender.name} to ${"ship"===(b=a.message.recipient).kind?b.ship.name:`any ship of type ${b.type}`}`}function z({delivery:a,onResend:c,onDismiss:d,pendingIds:e,layout:f}){let g=e.has(a.deliveryId),i="phone"===f;if(void 0===c&&void 0===d)return null;let k=void 0!==c&&(0,j.canResend)(a)?(0,b.jsx)(n.Button,{size:i?"touch":"sm",variant:i?"primary":"secondary",icon:(0,b.jsx)(h.RotateCw,{"aria-hidden":!0}),isLoading:g,"data-testid":"attention-resend","aria-label":`Resend ${y(a)}`,onClick:()=>{c(a.deliveryId)},className:i?"flex-1":void 0,children:"Resend"}):null,l=void 0===d?null:(0,b.jsx)(n.Button,{size:i?"touch":"sm",variant:i?"secondary":"ghost",disabled:g,"data-testid":"attention-dismiss","aria-label":`Dismiss ${y(a)}`,onClick:()=>{d(a.deliveryId)},className:i?"flex-1":void 0,children:"Dismiss"});return i?(0,b.jsxs)("div",{className:"flex gap-2 pt-1",children:[l,k]}):(0,b.jsxs)("div",{className:"flex items-center justify-end gap-1.5",children:[k,l]})}function A({deliveries:a,onOpen:c,now:d,...e}){return(0,b.jsxs)("div",{className:"flex flex-col gap-2 max-sm:hidden",children:[(0,b.jsxs)(o.Table,{"aria-label":"Undeliverable deliveries",children:[(0,b.jsx)(o.TableHeader,{children:(0,b.jsxs)(o.TableRow,{children:[(0,b.jsx)(o.TableHead,{children:"State"}),(0,b.jsx)(o.TableHead,{children:"Message"}),(0,b.jsx)(o.TableHead,{children:"Reason"}),(0,b.jsx)(o.TableHead,{children:"Since"}),(0,b.jsx)(o.TableHead,{children:"Actions"})]})}),(0,b.jsx)(o.TableBody,{children:a.map(a=>{let f=new Date(a.since);return(0,b.jsxs)(o.TableRow,{"data-testid":"attention-row","data-delivery-id":a.deliveryId,children:[(0,b.jsx)(o.TableCell,{className:"align-top",children:(0,b.jsx)(t.StatusBadge,{status:a.state})}),(0,b.jsx)(o.TableCell,{className:"max-w-96 align-top",children:(0,b.jsxs)("button",{type:"button","aria-label":`Open ${y(a)}`,onClick:()=>{c(a)},className:"flex w-full min-w-0 flex-col gap-0.5 rounded-xs text-left focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",children:[(0,b.jsx)(w,{delivery:a}),(0,b.jsx)(v,{delivery:a})]})}),(0,b.jsx)(o.TableCell,{className:"max-w-48 align-top text-meta whitespace-normal text-muted-foreground",children:x(a)}),(0,b.jsx)(o.TableCell,{className:"align-top",children:(0,b.jsxs)("span",{className:"flex flex-col gap-0.5 tabular-nums",children:[(0,b.jsx)("time",{dateTime:a.since,title:(0,l.fullDateTime)(f),className:"text-body text-foreground",children:(0,l.shortDateTime)(f)}),(0,b.jsxs)("span",{className:"text-meta text-muted-foreground",children:[(0,l.duration)(f,d)," ago"]})]})}),(0,b.jsx)(o.TableCell,{className:"align-top",children:(0,b.jsx)(z,{delivery:a,layout:"table",...e})})]},a.deliveryId)})})]}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"Resend creates a new message with the same payload, linked to the original. Dismiss marks the delivery resolved. Abandoned deliveries are not listed here."})]})}function B({deliveries:a,onOpen:c,now:d,...e}){return(0,b.jsx)("ul",{"aria-label":"Undeliverable deliveries",className:"flex flex-col gap-3 sm:hidden",children:a.map(a=>{let g=new Date(a.since),h=d.getTime()-g.getTime()<864e5?(0,l.clockTime)(g):(0,l.shortDateTime)(g);return(0,b.jsxs)("li",{"data-testid":"attention-row","data-delivery-id":a.deliveryId,className:"flex flex-col gap-1.5 rounded-lg border border-border bg-card px-3.5 py-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)(t.StatusBadge,{status:a.state}),(0,b.jsxs)("button",{type:"button","aria-label":`Open ${y(a)}`,onClick:()=>{c(a)},className:"inline-flex items-center gap-1 rounded-xs text-meta text-muted-foreground tabular-nums focus-visible:outline-2 focus-visible:outline-ring [&_svg]:size-(--size-icon-sm)",children:[(0,l.duration)(g,d),(0,b.jsx)(f.ChevronRight,{"aria-hidden":!0})]})]}),(0,b.jsx)(w,{delivery:a}),(0,b.jsx)(v,{delivery:a}),(0,b.jsxs)("p",{className:"text-meta text-muted-foreground",children:[x(a)," Since"," ",(0,b.jsx)("time",{dateTime:a.since,title:(0,l.fullDateTime)(g),className:"tabular-nums",children:h}),"."]}),(0,b.jsx)(z,{delivery:a,layout:"phone",...e})]},a.deliveryId)})})}function C({deliveries:a,state:c,onRetry:d,...e}){return"loading"===c?(0,b.jsxs)("div",{"data-slot":"needs-attention-list","data-state":"loading",children:[(0,b.jsx)(r.LoadingSkeleton,{variant:"table",rows:2,label:"Loading Needs attention",className:"max-sm:hidden"}),(0,b.jsx)(r.LoadingSkeleton,{variant:"list",rows:2,label:"Loading Needs attention",className:"sm:hidden"})]}):"error"===c?(0,b.jsx)("div",{"data-slot":"needs-attention-list","data-state":"error","data-testid":"attention-error",children:(0,b.jsx)(q.InlineError,{variant:"page",title:"Couldn’t load Needs attention",description:"This page couldn’t reach the fleet server. Undeliverable deliveries are kept on the server, so nothing is lost.",onRetry:d})}):0===a.length?(0,b.jsx)("div",{"data-slot":"needs-attention-list","data-state":"empty","data-testid":"attention-empty",children:(0,b.jsx)(p.EmptyState,{icon:(0,b.jsx)(g.CircleCheck,{className:"text-tone-ok-fg"}),title:"Nothing needs your attention",description:"Undeliverable deliveries show up here as soon as they happen."})}):(0,b.jsxs)("div",{"data-slot":"needs-attention-list","data-state":"ready",className:"flex flex-col gap-3",children:[(0,b.jsx)(A,{deliveries:a,...e}),(0,b.jsx)(B,{deliveries:a,...e})]})}var D=a.i(76166);function E({deliveries:a,onOpen:c,now:d}){return(0,b.jsx)("ul",{"data-testid":"no-ship-can-take","aria-label":"Deliveries no ship can take",className:"divide-y divide-border overflow-hidden rounded-lg border border-border",children:a.map(a=>{let{sender:e,payload:g,contentType:h}=a.message,j=new Date(a.message.sentAt),n=e.name===m.OPERATOR_NAME;return(0,b.jsxs)("li",{"data-testid":"no-ship-can-take-row","data-delivery-id":a.deliveryId,className:"flex flex-wrap items-center gap-x-4 gap-y-1.5 px-3 py-2.5",children:[(0,b.jsx)(D.Badge,{variant:"type",children:a.type}),(0,b.jsxs)("span",{className:"flex min-w-0 grow basis-48 flex-col gap-0.5",children:[(0,b.jsx)("span",{className:(0,i.classNames)("block min-w-0 truncate text-foreground",(0,k.isJson)(h)?"font-mono text-id":"text-body max-sm:text-body-touch"),title:g,children:g.split("\n")[0]}),(0,b.jsxs)("span",{className:"flex flex-wrap items-baseline gap-x-1.5 text-meta text-muted-foreground",children:["from ",(0,b.jsx)(s.ShipName,{name:e.name,shipId:e.id,size:"meta",isOperator:n,isSuffixShown:!n})]})]}),(0,b.jsxs)("span",{className:"text-meta text-muted-foreground tabular-nums",children:["waiting"," ",(0,b.jsx)("time",{dateTime:a.message.sentAt,title:(0,l.fullDateTime)(j),children:(0,l.duration)(j,d)})]}),(0,b.jsxs)("button",{type:"button","data-testid":"no-ship-can-take-open","aria-label":`Open the message from ${e.name} to any ship of type ${a.type}`,onClick:()=>{c(a)},className:"inline-flex items-center gap-1 rounded-xs text-meta font-medium hover:underline focus-visible:outline-2 focus-visible:outline-ring",children:["Open",(0,b.jsx)(f.ChevronRight,{"aria-hidden":!0,className:"size-(--size-icon-sm)"})]})]},a.deliveryId)})})}var F=a.i(55325);function G({deliveries:a,onOpen:c,now:d}){return(0,b.jsx)("ul",{"data-testid":"overdue-deliveries","aria-label":"Overdue deliveries",className:"divide-y divide-border overflow-hidden rounded-lg border border-border",children:a.map(a=>{let{payload:e,contentType:g}=a.message,h=new Date(a.toldAt);return(0,b.jsxs)("li",{"data-testid":"overdue-row","data-delivery-id":a.deliveryId,className:"flex flex-wrap items-center gap-x-4 gap-y-1.5 px-3 py-2.5",children:[(0,b.jsx)(t.StatusBadge,{status:"overdue"}),(0,b.jsxs)("span",{className:"flex min-w-0 grow basis-48 flex-col gap-0.5",children:[(0,b.jsxs)("span",{className:"flex flex-wrap items-baseline gap-x-1.5 text-body text-foreground max-sm:text-body-touch",children:[(0,b.jsx)(s.ShipName,{name:a.ship.name,shipId:a.ship.id,size:"meta"}),(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:(0,j.overdueReason)(a)})]}),(0,b.jsx)("span",{className:(0,i.classNames)("block min-w-0 truncate text-muted-foreground",(0,k.isJson)(g)?"font-mono text-id":"text-meta"),title:e,children:e.split("\n")[0]})]}),(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-meta text-tone-attention-fg tabular-nums",children:[(0,b.jsx)(F.AlarmClock,{"aria-hidden":!0,className:"size-3.5 shrink-0"}),(0,b.jsxs)("span",{children:["argo told at ",String(a.minutes)," min ·"," ",(0,b.jsx)("time",{dateTime:a.toldAt,title:(0,l.fullDateTime)(h),children:(0,l.relativeTime)(h,d).toLowerCase()})]})]}),(0,b.jsxs)("button",{type:"button","data-testid":"overdue-open","aria-label":`Open the message overdue on ${a.ship.name}`,onClick:()=>{c(a)},className:"inline-flex items-center gap-1 rounded-xs text-meta font-medium hover:underline focus-visible:outline-2 focus-visible:outline-ring",children:["Open",(0,b.jsx)(f.ChevronRight,{"aria-hidden":!0,className:"size-(--size-icon-sm)"})]})]},a.deliveryId)})})}var H=a.i(71027),I=a.i(38246),J=a.i(8219),K=a.i(75971),L=a.i(92717),M=a.i(58523);function N({members:a,ships:c,now:d,renderAction:e}){return(0,b.jsx)("ul",{"data-testid":"silent-members",className:"divide-y divide-border overflow-hidden rounded-lg border border-border",children:a.map(({squadronId:a,member:g})=>{let{lastSeenAt:h}=g.crew;return(0,b.jsxs)("li",{"data-testid":"silent-member",className:"flex flex-wrap items-center gap-x-4 gap-y-1.5 px-3 py-2.5",children:[(0,b.jsxs)("span",{className:"flex min-w-0 flex-col gap-1",children:[(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsx)(K.HealthIndicator,{health:"silent"}),(0,b.jsx)("span",{className:"font-medium",children:g.name})]}),(0,b.jsx)(M.SquadronTag,{squadronId:a,role:g.role,size:"sm"})]}),(0,b.jsxs)("span",{className:"flex flex-col text-meta",children:[(0,b.jsx)("span",{children:null===h?"never seen":`not seen for ${(0,l.duration)(new Date(h),d)}`}),(0,b.jsxs)("span",{className:"text-muted-foreground",children:["checks in ",(0,J.checkInText)(g.checkInMinutes)]})]}),(0,b.jsx)("span",{className:"grow",children:(0,b.jsx)(L.ReportLine,{report:c.get(g.shipId)?.report??null,now:d,variant:"row",testId:"silent-member-report"})}),e?.({squadronId:a,member:g}),(0,b.jsxs)(I.default,{href:`/squadrons/${a}`,className:"inline-flex items-center gap-1 text-meta font-medium hover:underline",children:["Open",(0,b.jsx)(f.ChevronRight,{"aria-hidden":!0,className:"size-(--size-icon-sm)"})]})]},g.shipId)})})}var O=a.i(91003),P=a.i(38023),Q=a.i(65563),R=a.i(67336),S=a.i(68450),T=a.i(10572),U=a.i(90146),V=a.i(99929),W=a.i(12540);function X(a){return a instanceof Error?a.message:"Try again in a moment."}a.s(["default",0,function(){let a=(0,c.useRouter)(),f=(0,S.useNow)(),g=(0,j.useNeedsAttention)(),h=(0,j.useNoShipCanTake)().data??[],i=(0,j.useOverdue)().data??[],k=(0,j.useResendDelivery)(),l=(0,j.useDismissDelivery)(),m=(0,R.useLiveFleet)(),n=(0,P.useConsoleFrame)(),o=(0,W.useSquadrons)(),p=(0,J.silentMembers)(o.data??[]),q=(0,V.useShips)(p.map(({member:a})=>a.shipId)),r=new Map(((0,U.useFleetSnapshot)().data??[]).map(a=>[a.id,a])),s=(0,Q.useAccess)();(0,T.useSignInWhenSessionEnds)([g.error,m.error]);let[t,u]=(0,d.useState)(new Set),v=(a,b)=>{u(b=>new Set([...b,a])),b().finally(()=>{u(b=>new Set([...b].filter(b=>b!==a)))})},w=(0,b.jsx)(C,{deliveries:g.data??[],state:g.isError?"error":g.data?"ready":"loading",onRetry:()=>{g.refetch()},onResend:s.canManage?a=>{let b=(0,j.deliveryWithId)(g.data,a);v(a,async()=>{try{await k.mutateAsync({deliveryId:a}),b&&(0,e.showToast)({...(0,j.resentToast)(b),tone:"success"})}catch(a){(0,e.showToast)({title:"Couldn’t resend the message",description:X(a),tone:"error"})}})}:void 0,onDismiss:s.canManage?a=>{v(a,async()=>{try{await l.mutateAsync({deliveryId:a}),(0,e.showToast)({...j.DISMISSED_TOAST,tone:"success"})}catch(a){(0,e.showToast)({title:"Couldn’t dismiss the delivery",description:X(a),tone:"error"})}})}:void 0,onOpen:b=>{a.push((0,j.messagePathOf)(b))},pendingIds:t,now:f});return(0,b.jsx)(O.ListPage,{...n,title:"Needs attention",description:"Deliveries no ship acknowledged after five tries, or not handled, oldest first. Resend or dismiss each one.",live:m.live,children:p.length>0||i.length>0||h.length>0?(0,b.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,b.jsxs)("section",{"aria-labelledby":"attention-undeliverable",className:"flex flex-col gap-2",children:[(0,b.jsxs)("h2",{id:"attention-undeliverable",className:"text-body font-semibold",children:["Undeliverable deliveries (",g.data?.length??0,")"]}),g.data?.length===0?(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"None."}):w]}),i.length>0?(0,b.jsxs)("section",{"aria-labelledby":"attention-overdue",className:"flex flex-col gap-2",children:[(0,b.jsxs)("h2",{id:"attention-overdue",className:"text-body font-semibold",children:["Overdue (",i.length,")"]}),(0,b.jsx)(G,{deliveries:i,onOpen:b=>{a.push((0,j.overduePathOf)(b))},now:f}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"Handed and not confirmed for 10 min, or waiting 10 min while the session is idle or 60 while it is busy. They clear by themselves once they move on."})]}):null,h.length>0?(0,b.jsxs)("section",{"aria-labelledby":"attention-no-ship-can-take",className:"flex flex-col gap-2",children:[(0,b.jsxs)("h2",{id:"attention-no-ship-can-take",className:"text-body font-semibold",children:["No ship can take it (",h.length,")"]}),(0,b.jsx)(E,{deliveries:h,onOpen:b=>{a.push((0,j.messagePathOf)(b))},now:f}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"Sent to a type no active ship has, or none its sender may reach. Commission a ship of the type and it takes them; they clear by themselves."})]}):null,p.length>0?(0,b.jsxs)("section",{"aria-labelledby":"attention-silent",className:"flex flex-col gap-2 max-sm:order-first",children:[(0,b.jsxs)("h2",{id:"attention-silent",className:"text-body font-semibold",children:["Silent members (",p.length,")"]}),(0,b.jsx)(N,{members:p,ships:r,now:f,renderAction:s.canManage?({squadronId:a,member:c})=>(0,b.jsx)(H.GetNewCrewLine,{squadronId:a,member:c,ship:q.get(c.shipId),isPrimary:!0,testId:"silent-member-new-crew-line"}):void 0}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"A member is silent after 3 missed check-ins; only you can start its new session. Late members and blocked reports stay on their squadron page."})]}):null]}):w})}],43463)}];
1
+ module.exports=[43463,a=>{"use strict";var b=a.i(87924),c=a.i(50944),d=a.i(72131),e=a.i(88191),f=a.i(41146),g=a.i(97024),h=a.i(48819),i=a.i(80487),j=a.i(10023),k=a.i(9854),l=a.i(72872),m=a.i(31429),n=a.i(12068),o=a.i(77339),p=a.i(24173),q=a.i(40392),r=a.i(50808),s=a.i(90468),t=a.i(23063);function u({party:a}){let c=a.name===m.OPERATOR_NAME;return(0,b.jsx)(s.ShipName,{name:a.name,shipId:a.id,size:"meta",isOperator:c,isSuffixShown:!c})}function v({delivery:a}){let{sender:c,recipient:d}=a.message;return(0,b.jsxs)("span",{className:"flex min-w-0 flex-wrap items-baseline gap-x-1.5 text-meta text-muted-foreground",children:[(0,b.jsx)(u,{party:c}),(0,b.jsx)("span",{"aria-hidden":!0,children:"→"}),(0,b.jsx)("span",{className:"sr-only",children:"to"}),"ship"===d.kind?(0,b.jsx)(u,{party:d.ship}):(0,b.jsxs)("span",{children:["any ship of type ",d.type]})]})}function w({delivery:a}){let{payload:c,contentType:d}=a.message;return(0,b.jsx)("span",{className:(0,i.classNames)("block min-w-0 truncate text-foreground",(0,k.isJson)(d)?"font-mono text-id":"text-body max-sm:text-body-touch"),title:c,children:c.split("\n")[0]})}function x(a){return(0,j.attentionReason)(a)}function y(a){var b;return`the message from ${a.message.sender.name} to ${"ship"===(b=a.message.recipient).kind?b.ship.name:`any ship of type ${b.type}`}`}function z({delivery:a,onResend:c,onDismiss:d,pendingIds:e,layout:f}){let g=e.has(a.deliveryId),i="phone"===f;if(void 0===c&&void 0===d)return null;let k=void 0!==c&&(0,j.canResend)(a)?(0,b.jsx)(n.Button,{size:i?"touch":"sm",variant:i?"primary":"secondary",icon:(0,b.jsx)(h.RotateCw,{"aria-hidden":!0}),isLoading:g,"data-testid":"attention-resend","aria-label":`Resend ${y(a)}`,onClick:()=>{c(a.deliveryId)},className:i?"flex-1":void 0,children:"Resend"}):null,l=void 0===d?null:(0,b.jsx)(n.Button,{size:i?"touch":"sm",variant:i?"secondary":"ghost",disabled:g,"data-testid":"attention-dismiss","aria-label":`Dismiss ${y(a)}`,onClick:()=>{d(a.deliveryId)},className:i?"flex-1":void 0,children:"Dismiss"});return i?(0,b.jsxs)("div",{className:"flex gap-2 pt-1",children:[l,k]}):(0,b.jsxs)("div",{className:"flex items-center justify-end gap-1.5",children:[k,l]})}function A({deliveries:a,onOpen:c,now:d,...e}){return(0,b.jsxs)("div",{className:"flex flex-col gap-2 max-sm:hidden",children:[(0,b.jsxs)(o.Table,{"aria-label":"Undeliverable and not handled deliveries",children:[(0,b.jsx)(o.TableHeader,{children:(0,b.jsxs)(o.TableRow,{children:[(0,b.jsx)(o.TableHead,{children:"State"}),(0,b.jsx)(o.TableHead,{children:"Message"}),(0,b.jsx)(o.TableHead,{children:"Reason"}),(0,b.jsx)(o.TableHead,{children:"Since"}),(0,b.jsx)(o.TableHead,{children:"Actions"})]})}),(0,b.jsx)(o.TableBody,{children:a.map(a=>{let f=new Date(a.since);return(0,b.jsxs)(o.TableRow,{"data-testid":"attention-row","data-delivery-id":a.deliveryId,children:[(0,b.jsx)(o.TableCell,{className:"align-top",children:(0,b.jsx)(t.StatusBadge,{status:a.state})}),(0,b.jsx)(o.TableCell,{className:"max-w-96 align-top",children:(0,b.jsxs)("button",{type:"button","aria-label":`Open ${y(a)}`,onClick:()=>{c(a)},className:"flex w-full min-w-0 flex-col gap-0.5 rounded-xs text-left focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",children:[(0,b.jsx)(w,{delivery:a}),(0,b.jsx)(v,{delivery:a})]})}),(0,b.jsx)(o.TableCell,{className:"max-w-48 align-top text-meta whitespace-normal text-muted-foreground",children:x(a)}),(0,b.jsx)(o.TableCell,{className:"align-top",children:(0,b.jsxs)("span",{className:"flex flex-col gap-0.5 tabular-nums",children:[(0,b.jsx)("time",{dateTime:a.since,title:(0,l.fullDateTime)(f),className:"text-body text-foreground",children:(0,l.shortDateTime)(f)}),(0,b.jsxs)("span",{className:"text-meta text-muted-foreground",children:[(0,l.duration)(f,d)," ago"]})]})}),(0,b.jsx)(o.TableCell,{className:"align-top",children:(0,b.jsx)(z,{delivery:a,layout:"table",...e})})]},a.deliveryId)})})]}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"Resend creates a new message with the same payload, linked to the original. Dismiss marks the delivery resolved. Abandoned deliveries are not listed here."})]})}function B({deliveries:a,onOpen:c,now:d,...e}){return(0,b.jsx)("ul",{"aria-label":"Undeliverable and not handled deliveries",className:"flex flex-col gap-3 sm:hidden",children:a.map(a=>{let g=new Date(a.since),h=d.getTime()-g.getTime()<864e5?(0,l.clockTime)(g):(0,l.shortDateTime)(g);return(0,b.jsxs)("li",{"data-testid":"attention-row","data-delivery-id":a.deliveryId,className:"flex flex-col gap-1.5 rounded-lg border border-border bg-card px-3.5 py-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)(t.StatusBadge,{status:a.state}),(0,b.jsxs)("button",{type:"button","aria-label":`Open ${y(a)}`,onClick:()=>{c(a)},className:"inline-flex items-center gap-1 rounded-xs text-meta text-muted-foreground tabular-nums focus-visible:outline-2 focus-visible:outline-ring [&_svg]:size-(--size-icon-sm)",children:[(0,l.duration)(g,d),(0,b.jsx)(f.ChevronRight,{"aria-hidden":!0})]})]}),(0,b.jsx)(w,{delivery:a}),(0,b.jsx)(v,{delivery:a}),(0,b.jsxs)("p",{className:"text-meta text-muted-foreground",children:[x(a)," Since"," ",(0,b.jsx)("time",{dateTime:a.since,title:(0,l.fullDateTime)(g),className:"tabular-nums",children:h}),"."]}),(0,b.jsx)(z,{delivery:a,layout:"phone",...e})]},a.deliveryId)})})}function C({deliveries:a,state:c,onRetry:d,...e}){return"loading"===c?(0,b.jsxs)("div",{"data-slot":"needs-attention-list","data-state":"loading",children:[(0,b.jsx)(r.LoadingSkeleton,{variant:"table",rows:2,label:"Loading Needs attention",className:"max-sm:hidden"}),(0,b.jsx)(r.LoadingSkeleton,{variant:"list",rows:2,label:"Loading Needs attention",className:"sm:hidden"})]}):"error"===c?(0,b.jsx)("div",{"data-slot":"needs-attention-list","data-state":"error","data-testid":"attention-error",children:(0,b.jsx)(q.InlineError,{variant:"page",title:"Couldn’t load Needs attention",description:"This page couldn’t reach the fleet server. Undeliverable deliveries are kept on the server, so nothing is lost.",onRetry:d})}):0===a.length?(0,b.jsx)("div",{"data-slot":"needs-attention-list","data-state":"empty","data-testid":"attention-empty",children:(0,b.jsx)(p.EmptyState,{icon:(0,b.jsx)(g.CircleCheck,{className:"text-tone-ok-fg"}),title:"Nothing needs your attention",description:"Undeliverable deliveries show up here as soon as they happen."})}):(0,b.jsxs)("div",{"data-slot":"needs-attention-list","data-state":"ready",className:"flex flex-col gap-3",children:[(0,b.jsx)(A,{deliveries:a,...e}),(0,b.jsx)(B,{deliveries:a,...e})]})}var D=a.i(76166);function E({deliveries:a,onOpen:c,now:d}){return(0,b.jsx)("ul",{"data-testid":"no-ship-can-take","aria-label":"Deliveries no ship can take",className:"divide-y divide-border overflow-hidden rounded-lg border border-border",children:a.map(a=>{let{sender:e,payload:g,contentType:h}=a.message,j=new Date(a.message.sentAt),n=e.name===m.OPERATOR_NAME;return(0,b.jsxs)("li",{"data-testid":"no-ship-can-take-row","data-delivery-id":a.deliveryId,className:"flex flex-wrap items-center gap-x-4 gap-y-1.5 px-3 py-2.5",children:[(0,b.jsx)(D.Badge,{variant:"type",children:a.type}),(0,b.jsxs)("span",{className:"flex min-w-0 grow basis-48 flex-col gap-0.5",children:[(0,b.jsx)("span",{className:(0,i.classNames)("block min-w-0 truncate text-foreground",(0,k.isJson)(h)?"font-mono text-id":"text-body max-sm:text-body-touch"),title:g,children:g.split("\n")[0]}),(0,b.jsxs)("span",{className:"flex flex-wrap items-baseline gap-x-1.5 text-meta text-muted-foreground",children:["from ",(0,b.jsx)(s.ShipName,{name:e.name,shipId:e.id,size:"meta",isOperator:n,isSuffixShown:!n})]})]}),(0,b.jsxs)("span",{className:"text-meta text-muted-foreground tabular-nums",children:["waiting"," ",(0,b.jsx)("time",{dateTime:a.message.sentAt,title:(0,l.fullDateTime)(j),children:(0,l.duration)(j,d)})]}),(0,b.jsxs)("button",{type:"button","data-testid":"no-ship-can-take-open","aria-label":`Open the message from ${e.name} to any ship of type ${a.type}`,onClick:()=>{c(a)},className:"inline-flex items-center gap-1 rounded-xs text-meta font-medium hover:underline focus-visible:outline-2 focus-visible:outline-ring",children:["Open",(0,b.jsx)(f.ChevronRight,{"aria-hidden":!0,className:"size-(--size-icon-sm)"})]})]},a.deliveryId)})})}var F=a.i(55325);function G({deliveries:a,onOpen:c,now:d}){return(0,b.jsx)("ul",{"data-testid":"overdue-deliveries","aria-label":"Overdue deliveries",className:"divide-y divide-border overflow-hidden rounded-lg border border-border",children:a.map(a=>{let{payload:e,contentType:g}=a.message,h=new Date(a.toldAt);return(0,b.jsxs)("li",{"data-testid":"overdue-row","data-delivery-id":a.deliveryId,className:"flex flex-wrap items-center gap-x-4 gap-y-1.5 px-3 py-2.5",children:[(0,b.jsx)(t.StatusBadge,{status:"overdue"}),(0,b.jsxs)("span",{className:"flex min-w-0 grow basis-48 flex-col gap-0.5",children:[(0,b.jsxs)("span",{className:"flex flex-wrap items-baseline gap-x-1.5 text-body text-foreground max-sm:text-body-touch",children:[(0,b.jsx)(s.ShipName,{name:a.ship.name,shipId:a.ship.id,size:"meta"}),(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:(0,j.overdueReason)(a)})]}),(0,b.jsx)("span",{className:(0,i.classNames)("block min-w-0 truncate text-muted-foreground",(0,k.isJson)(g)?"font-mono text-id":"text-meta"),title:e,children:e.split("\n")[0]})]}),(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-meta text-tone-attention-fg tabular-nums",children:[(0,b.jsx)(F.AlarmClock,{"aria-hidden":!0,className:"size-3.5 shrink-0"}),(0,b.jsxs)("span",{children:["argo told at ",String(a.minutes)," min ·"," ",(0,b.jsx)("time",{dateTime:a.toldAt,title:(0,l.fullDateTime)(h),children:(0,l.relativeTime)(h,d).toLowerCase()})]})]}),(0,b.jsxs)("button",{type:"button","data-testid":"overdue-open","aria-label":`Open the message overdue on ${a.ship.name}`,onClick:()=>{c(a)},className:"inline-flex items-center gap-1 rounded-xs text-meta font-medium hover:underline focus-visible:outline-2 focus-visible:outline-ring",children:["Open",(0,b.jsx)(f.ChevronRight,{"aria-hidden":!0,className:"size-(--size-icon-sm)"})]})]},a.deliveryId)})})}var H=a.i(71027),I=a.i(38246),J=a.i(8219),K=a.i(75971),L=a.i(92717),M=a.i(58523);function N({members:a,ships:c,now:d,renderAction:e}){return(0,b.jsx)("ul",{"data-testid":"silent-members",className:"divide-y divide-border overflow-hidden rounded-lg border border-border",children:a.map(({squadronId:a,member:g})=>{let{lastSeenAt:h}=g.crew;return(0,b.jsxs)("li",{"data-testid":"silent-member",className:"flex flex-wrap items-center gap-x-4 gap-y-1.5 px-3 py-2.5",children:[(0,b.jsxs)("span",{className:"flex min-w-0 flex-col gap-1",children:[(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsx)(K.HealthIndicator,{health:"silent"}),(0,b.jsx)("span",{className:"font-medium",children:g.name})]}),(0,b.jsx)(M.SquadronTag,{squadronId:a,role:g.role,size:"sm"})]}),(0,b.jsxs)("span",{className:"flex flex-col text-meta",children:[(0,b.jsx)("span",{children:null===h?"never seen":`not seen for ${(0,l.duration)(new Date(h),d)}`}),(0,b.jsxs)("span",{className:"text-muted-foreground",children:["checks in ",(0,J.checkInText)(g.checkInMinutes)]})]}),(0,b.jsx)("span",{className:"grow",children:(0,b.jsx)(L.ReportLine,{report:c.get(g.shipId)?.report??null,now:d,variant:"row",testId:"silent-member-report"})}),e?.({squadronId:a,member:g}),(0,b.jsxs)(I.default,{href:`/squadrons/${a}`,className:"inline-flex items-center gap-1 text-meta font-medium hover:underline",children:["Open",(0,b.jsx)(f.ChevronRight,{"aria-hidden":!0,className:"size-(--size-icon-sm)"})]})]},g.shipId)})})}var O=a.i(91003),P=a.i(38023),Q=a.i(65563),R=a.i(67336),S=a.i(68450),T=a.i(37462),U=a.i(90146),V=a.i(99929),W=a.i(12540);function X(a){return a instanceof Error?a.message:"Try again in a moment."}a.s(["default",0,function(){let a=(0,c.useRouter)(),f=(0,S.useNow)(),g=(0,j.useNeedsAttention)(),h=(0,j.useNoShipCanTake)().data??[],i=(0,j.useOverdue)().data??[],k=(0,j.useResendDelivery)(),l=(0,j.useDismissDelivery)(),m=(0,R.useLiveFleet)(),n=(0,P.useConsoleFrame)(),o=(0,W.useSquadrons)(),p=(0,J.silentMembers)(o.data??[]),q=(0,V.useShips)(p.map(({member:a})=>a.shipId)),r=new Map(((0,U.useFleetSnapshot)().data??[]).map(a=>[a.id,a])),s=(0,Q.useAccess)();(0,T.useSignInWhenSessionEnds)([g.error,m.error]);let[t,u]=(0,d.useState)(new Set),v=(a,b)=>{u(b=>new Set([...b,a])),b().finally(()=>{u(b=>new Set([...b].filter(b=>b!==a)))})},w=(0,b.jsx)(C,{deliveries:g.data??[],state:g.isError?"error":g.data?"ready":"loading",onRetry:()=>{g.refetch()},onResend:s.canManage?a=>{let b=(0,j.deliveryWithId)(g.data,a);v(a,async()=>{try{await k.mutateAsync({deliveryId:a}),b&&(0,e.showToast)({...(0,j.resentToast)(b),tone:"success"})}catch(a){(0,e.showToast)({title:"Couldn’t resend the message",description:X(a),tone:"error"})}})}:void 0,onDismiss:s.canManage?a=>{v(a,async()=>{try{await l.mutateAsync({deliveryId:a}),(0,e.showToast)({...j.DISMISSED_TOAST,tone:"success"})}catch(a){(0,e.showToast)({title:"Couldn’t dismiss the delivery",description:X(a),tone:"error"})}})}:void 0,onOpen:b=>{a.push((0,j.messagePathOf)(b))},pendingIds:t,now:f});return(0,b.jsx)(O.ListPage,{...n,title:"Needs attention",description:"Deliveries no ship acknowledged after five tries, or not handled, oldest first. Resend or dismiss each one.",live:m.live,children:p.length>0||i.length>0||h.length>0?(0,b.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,b.jsxs)("section",{"aria-labelledby":"attention-undeliverable",className:"flex flex-col gap-2",children:[(0,b.jsxs)("h2",{id:"attention-undeliverable",className:"text-body font-semibold",children:["Undeliverable and not handled deliveries (",g.data?.length??0,")"]}),g.data?.length===0?(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"None."}):w]}),i.length>0?(0,b.jsxs)("section",{"aria-labelledby":"attention-overdue",className:"flex flex-col gap-2",children:[(0,b.jsxs)("h2",{id:"attention-overdue",className:"text-body font-semibold",children:["Overdue (",i.length,")"]}),(0,b.jsx)(G,{deliveries:i,onOpen:b=>{a.push((0,j.overduePathOf)(b))},now:f}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"Handed and not confirmed for 10 min, or waiting 10 min while the session is idle or 60 while it is busy. They clear by themselves once they move on."})]}):null,h.length>0?(0,b.jsxs)("section",{"aria-labelledby":"attention-no-ship-can-take",className:"flex flex-col gap-2",children:[(0,b.jsxs)("h2",{id:"attention-no-ship-can-take",className:"text-body font-semibold",children:["No ship can take it (",h.length,")"]}),(0,b.jsx)(E,{deliveries:h,onOpen:b=>{a.push((0,j.messagePathOf)(b))},now:f}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"Sent to a type no active ship has, or none its sender may reach. Commission a ship of the type and it takes them; they clear by themselves."})]}):null,p.length>0?(0,b.jsxs)("section",{"aria-labelledby":"attention-silent",className:"flex flex-col gap-2 max-sm:order-first",children:[(0,b.jsxs)("h2",{id:"attention-silent",className:"text-body font-semibold",children:["Silent members (",p.length,")"]}),(0,b.jsx)(N,{members:p,ships:r,now:f,renderAction:s.canManage?({squadronId:a,member:c})=>(0,b.jsx)(H.GetNewCrewLine,{squadronId:a,member:c,ship:q.get(c.shipId),isPrimary:!0,testId:"silent-member-new-crew-line"}):void 0}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"A member is silent after 3 missed check-ins; only you can start its new session. Late members and blocked reports stay on their squadron page."})]}):null]}):w})}],43463)}];
2
2
 
3
3
  //# sourceMappingURL=packages_console_app_%28console%29_needs-attention_page_tsx_03s6y-o._.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(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(37462);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)}];
2
2
 
3
3
  //# sourceMappingURL=packages_console_app_%28console%29_network_network-page_tsx_0qc3h-9._.js.map