@aeolus-fleet/gateway 0.35.0 → 0.36.1

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 (732) hide show
  1. package/README.md +12 -9
  2. package/dist/adapters/fleet/core-version.d.ts +1 -1
  3. package/dist/adapters/fleet/core-version.js +1 -1
  4. package/dist/adapters/fleet/rest-fleet-door.js +51 -7
  5. package/dist/adapters/fleet/rest-fleet-door.js.map +1 -1
  6. package/dist/adapters/http/front-door.d.ts +1 -1
  7. package/dist/adapters/http/front-door.js +5 -3
  8. package/dist/adapters/http/front-door.js.map +1 -1
  9. package/dist/adapters/http/person-tools.js +27 -9
  10. package/dist/adapters/http/person-tools.js.map +1 -1
  11. package/dist/adapters/http/slack-routes.d.ts +2 -0
  12. package/dist/adapters/http/slack-routes.js +11 -10
  13. package/dist/adapters/http/slack-routes.js.map +1 -1
  14. package/dist/adapters/pagasae/email-channel.d.ts +1 -2
  15. package/dist/adapters/pagasae/email-channel.js +3 -3
  16. package/dist/adapters/pagasae/email-channel.js.map +1 -1
  17. package/dist/adapters/prisma/basket-entries.d.ts +4 -0
  18. package/dist/adapters/prisma/basket-entries.js +53 -0
  19. package/dist/adapters/prisma/basket-entries.js.map +1 -0
  20. package/dist/adapters/prisma/fleet-forgetter.d.ts +1 -1
  21. package/dist/adapters/prisma/fleet-forgetter.js +2 -2
  22. package/dist/adapters/prisma/fleet-forgetter.js.map +1 -1
  23. package/dist/adapters/prisma/generated/browser.d.ts +15 -4
  24. package/dist/adapters/prisma/generated/client.d.ts +15 -4
  25. package/dist/adapters/prisma/generated/internal/class.d.ts +26 -4
  26. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  27. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  28. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +228 -43
  29. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +42 -9
  30. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  31. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +42 -7
  32. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +42 -9
  33. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  34. package/dist/adapters/prisma/generated/models/BasketEntry.d.ts +1303 -0
  35. package/dist/adapters/prisma/generated/models/BasketEntry.js +2 -0
  36. package/dist/adapters/prisma/generated/models/BasketEntry.js.map +1 -0
  37. package/dist/adapters/prisma/generated/models/ItemOutcome.d.ts +1106 -0
  38. package/dist/adapters/prisma/generated/models/ItemOutcome.js +2 -0
  39. package/dist/adapters/prisma/generated/models/ItemOutcome.js.map +1 -0
  40. package/dist/adapters/prisma/generated/models/OpenedDelivery.d.ts +125 -1
  41. package/dist/adapters/prisma/generated/models/PartySignInNotice.d.ts +32 -1
  42. package/dist/adapters/prisma/generated/models/Route.d.ts +1038 -0
  43. package/dist/adapters/prisma/generated/models/Route.js +2 -0
  44. package/dist/adapters/prisma/generated/models/Route.js.map +1 -0
  45. package/dist/adapters/prisma/generated/models/SlackLink.d.ts +1 -32
  46. package/dist/adapters/prisma/generated/models/SlackPost.d.ts +33 -58
  47. package/dist/adapters/prisma/generated/models.d.ts +3 -1
  48. package/dist/adapters/prisma/item-outcomes.d.ts +4 -0
  49. package/dist/adapters/prisma/item-outcomes.js +28 -0
  50. package/dist/adapters/prisma/item-outcomes.js.map +1 -0
  51. package/dist/adapters/prisma/opened-deliveries.js +4 -0
  52. package/dist/adapters/prisma/opened-deliveries.js.map +1 -1
  53. package/dist/adapters/prisma/routes.d.ts +4 -0
  54. package/dist/adapters/prisma/routes.js +19 -0
  55. package/dist/adapters/prisma/routes.js.map +1 -0
  56. package/dist/adapters/prisma/sign-in-notices.js +11 -5
  57. package/dist/adapters/prisma/sign-in-notices.js.map +1 -1
  58. package/dist/adapters/prisma/slack-links.js +0 -4
  59. package/dist/adapters/prisma/slack-links.js.map +1 -1
  60. package/dist/adapters/prisma/slack-posts.js +37 -3
  61. package/dist/adapters/prisma/slack-posts.js.map +1 -1
  62. package/dist/adapters/slack/slack-messages.d.ts +2 -0
  63. package/dist/adapters/slack/slack-messages.js +29 -3
  64. package/dist/adapters/slack/slack-messages.js.map +1 -1
  65. package/dist/adapters/trpc/router.d.ts +88 -20
  66. package/dist/adapters/trpc/router.js +47 -18
  67. package/dist/adapters/trpc/router.js.map +1 -1
  68. package/dist/adapters/web-push/web-push.js +1 -1
  69. package/dist/adapters/web-push/web-push.js.map +1 -1
  70. package/dist/app.d.ts +7 -0
  71. package/dist/app.js +88 -22
  72. package/dist/app.js.map +1 -1
  73. package/dist/bin/aeolus-gateway.js +1 -0
  74. package/dist/bin/aeolus-gateway.js.map +1 -1
  75. package/dist/config.d.ts +8 -1
  76. package/dist/config.js +21 -0
  77. package/dist/config.js.map +1 -1
  78. package/dist/core/account-sign-in/start-account-sign-in.d.ts +1 -1
  79. package/dist/core/account-sign-in/start-account-sign-in.js +1 -1
  80. package/dist/core/account-sign-in/start-account-sign-in.js.map +1 -1
  81. package/dist/core/mcp-in/collect-replies.d.ts +2 -0
  82. package/dist/core/mcp-in/collect-replies.js +11 -3
  83. package/dist/core/mcp-in/collect-replies.js.map +1 -1
  84. package/dist/core/mcp-in/ports.d.ts +2 -1
  85. package/dist/core/mcp-out/run-party.d.ts +3 -1
  86. package/dist/core/mcp-out/run-party.js +9 -2
  87. package/dist/core/mcp-out/run-party.js.map +1 -1
  88. package/dist/core/party-grants/complete-party-sign-in.d.ts +5 -3
  89. package/dist/core/party-grants/complete-party-sign-in.js +7 -3
  90. package/dist/core/party-grants/complete-party-sign-in.js.map +1 -1
  91. package/dist/core/party-grants/ports.d.ts +17 -3
  92. package/dist/core/party-grants/tell-sign-in-needed.d.ts +9 -6
  93. package/dist/core/party-grants/tell-sign-in-needed.js +28 -12
  94. package/dist/core/party-grants/tell-sign-in-needed.js.map +1 -1
  95. package/dist/core/people/answer-delivery.d.ts +9 -13
  96. package/dist/core/people/answer-delivery.js +23 -6
  97. package/dist/core/people/answer-delivery.js.map +1 -1
  98. package/dist/core/people/basket.d.ts +104 -0
  99. package/dist/core/people/basket.js +42 -0
  100. package/dist/core/people/basket.js.map +1 -0
  101. package/dist/core/people/count-basket.d.ts +16 -0
  102. package/dist/core/people/count-basket.js +14 -0
  103. package/dist/core/people/count-basket.js.map +1 -0
  104. package/dist/core/people/done-delivery.d.ts +21 -13
  105. package/dist/core/people/done-delivery.js +34 -4
  106. package/dist/core/people/done-delivery.js.map +1 -1
  107. package/dist/core/people/finish-own-step.d.ts +27 -0
  108. package/dist/core/people/finish-own-step.js +67 -0
  109. package/dist/core/people/finish-own-step.js.map +1 -0
  110. package/dist/core/people/inbox-entry.js +1 -1
  111. package/dist/core/people/inbox-entry.js.map +1 -1
  112. package/dist/core/people/item-job.d.ts +9 -0
  113. package/dist/core/people/item-job.js +38 -0
  114. package/dist/core/people/item-job.js.map +1 -0
  115. package/dist/core/people/item-outcome.d.ts +37 -0
  116. package/dist/core/people/item-outcome.js +21 -0
  117. package/dist/core/people/item-outcome.js.map +1 -0
  118. package/dist/core/people/item-state.d.ts +10 -0
  119. package/dist/core/people/item-state.js +17 -0
  120. package/dist/core/people/item-state.js.map +1 -0
  121. package/dist/core/people/open-delivery.d.ts +29 -14
  122. package/dist/core/people/open-delivery.js +108 -19
  123. package/dist/core/people/open-delivery.js.map +1 -1
  124. package/dist/core/people/opened-of.d.ts +30 -9
  125. package/dist/core/people/opened-of.js +25 -4
  126. package/dist/core/people/opened-of.js.map +1 -1
  127. package/dist/core/people/person-crew.d.ts +5 -1
  128. package/dist/core/people/person-crew.js +7 -0
  129. package/dist/core/people/person-crew.js.map +1 -1
  130. package/dist/core/people/ports.d.ts +42 -19
  131. package/dist/core/people/put-in-basket.d.ts +39 -0
  132. package/dist/core/people/put-in-basket.js +57 -0
  133. package/dist/core/people/put-in-basket.js.map +1 -0
  134. package/dist/core/people/read-basket.d.ts +54 -0
  135. package/dist/core/people/read-basket.js +57 -0
  136. package/dist/core/people/read-basket.js.map +1 -0
  137. package/dist/core/people/read-bridge-home.d.ts +47 -0
  138. package/dist/core/people/read-bridge-home.js +53 -0
  139. package/dist/core/people/read-bridge-home.js.map +1 -0
  140. package/dist/core/people/read-inbox.d.ts +11 -6
  141. package/dist/core/people/read-inbox.js +17 -10
  142. package/dist/core/people/read-inbox.js.map +1 -1
  143. package/dist/core/people/read-record.d.ts +48 -0
  144. package/dist/core/people/read-record.js +44 -0
  145. package/dist/core/people/read-record.js.map +1 -0
  146. package/dist/core/people/read-routing.d.ts +26 -0
  147. package/dist/core/people/read-routing.js +22 -0
  148. package/dist/core/people/read-routing.js.map +1 -0
  149. package/dist/core/people/read-wake-channels.d.ts +7 -8
  150. package/dist/core/people/read-wake-channels.js +4 -4
  151. package/dist/core/people/read-wake-channels.js.map +1 -1
  152. package/dist/core/people/remove-from-basket.d.ts +20 -0
  153. package/dist/core/people/remove-from-basket.js +52 -0
  154. package/dist/core/people/remove-from-basket.js.map +1 -0
  155. package/dist/core/people/routing.d.ts +50 -0
  156. package/dist/core/people/routing.js +35 -0
  157. package/dist/core/people/routing.js.map +1 -0
  158. package/dist/core/people/send-basket.d.ts +40 -0
  159. package/dist/core/people/send-basket.js +60 -0
  160. package/dist/core/people/send-basket.js.map +1 -0
  161. package/dist/core/people/send-stored-answers.d.ts +33 -0
  162. package/dist/core/people/send-stored-answers.js +96 -0
  163. package/dist/core/people/send-stored-answers.js.map +1 -0
  164. package/dist/core/people/stale-question.d.ts +28 -0
  165. package/dist/core/people/stale-question.js +26 -0
  166. package/dist/core/people/stale-question.js.map +1 -0
  167. package/dist/core/people/step-outcome.d.ts +18 -0
  168. package/dist/core/people/step-outcome.js +18 -0
  169. package/dist/core/people/step-outcome.js.map +1 -0
  170. package/dist/core/people/turn-route.d.ts +34 -0
  171. package/dist/core/people/turn-route.js +42 -0
  172. package/dist/core/people/turn-route.js.map +1 -0
  173. package/dist/core/people/wake-person.d.ts +15 -7
  174. package/dist/core/people/wake-person.js +54 -28
  175. package/dist/core/people/wake-person.js.map +1 -1
  176. package/dist/core/people/web-push-channel.d.ts +2 -2
  177. package/dist/core/people/web-push-channel.js +3 -3
  178. package/dist/core/people/web-push-channel.js.map +1 -1
  179. package/dist/core/requests/ask-owners.d.ts +1 -1
  180. package/dist/core/requests/ask-owners.js +4 -4
  181. package/dist/core/requests/ask-owners.js.map +1 -1
  182. package/dist/core/requests/list-mine.d.ts +1 -1
  183. package/dist/core/requests/list-mine.js +1 -1
  184. package/dist/core/requests/list-to-decide.d.ts +1 -1
  185. package/dist/core/requests/list-to-decide.js +1 -1
  186. package/dist/core/requests/list-to-decide.js.map +1 -1
  187. package/dist/core/shared/errors.d.ts +1 -1
  188. package/dist/core/shared/errors.js.map +1 -1
  189. package/dist/core/slack/answer-in-slack.d.ts +18 -15
  190. package/dist/core/slack/answer-in-slack.js +39 -20
  191. package/dist/core/slack/answer-in-slack.js.map +1 -1
  192. package/dist/core/slack/complete-link.js +3 -3
  193. package/dist/core/slack/complete-link.js.map +1 -1
  194. package/dist/core/slack/edit-slack-posts.d.ts +23 -0
  195. package/dist/core/slack/edit-slack-posts.js +49 -0
  196. package/dist/core/slack/edit-slack-posts.js.map +1 -0
  197. package/dist/core/slack/ports.d.ts +28 -9
  198. package/dist/core/slack/read-slack-link.d.ts +2 -3
  199. package/dist/core/slack/read-slack-link.js +2 -2
  200. package/dist/core/slack/read-slack-link.js.map +1 -1
  201. package/dist/core/slack/see-in-slack.d.ts +34 -0
  202. package/dist/core/slack/see-in-slack.js +48 -0
  203. package/dist/core/slack/see-in-slack.js.map +1 -0
  204. package/dist/core/slack/send-slack-events.js +1 -1
  205. package/dist/core/slack/send-slack-events.js.map +1 -1
  206. package/dist/core/slack/show-in-slack.d.ts +20 -15
  207. package/dist/core/slack/show-in-slack.js +36 -45
  208. package/dist/core/slack/show-in-slack.js.map +1 -1
  209. package/dist/core/slack/slack-link.d.ts +0 -2
  210. package/dist/core/slack/slack-post-of.d.ts +9 -9
  211. package/dist/core/slack/slack-post-of.js +12 -3
  212. package/dist/core/slack/slack-post-of.js.map +1 -1
  213. package/dist/core/slack/slack-post.d.ts +13 -7
  214. package/dist/core/slack/slack-post.js +2 -2
  215. package/dist/core/slack/slack-post.js.map +1 -1
  216. package/dist/core/slack/slack-press.d.ts +45 -0
  217. package/dist/core/slack/slack-press.js +26 -0
  218. package/dist/core/slack/slack-press.js.map +1 -0
  219. package/dist/core/slack/start-link.d.ts +1 -1
  220. package/dist/core/slack/start-link.js +1 -1
  221. package/dist/core/slack/unlink-slack.d.ts +1 -1
  222. package/dist/core/slack/unlink-slack.js +1 -1
  223. package/dist/core/slack/unlink-slack.js.map +1 -1
  224. package/dist/person-waiters.js +3 -1
  225. package/dist/person-waiters.js.map +1 -1
  226. package/dist/round-worker.d.ts +23 -0
  227. package/dist/round-worker.js +38 -0
  228. package/dist/round-worker.js.map +1 -0
  229. package/package.json +3 -3
  230. package/src/adapters/prisma/migrations/20261101090000_item_outcomes/migration.sql +12 -0
  231. package/src/adapters/prisma/migrations/20261101091000_opened_deliveries_content_type/migration.sql +2 -0
  232. package/src/adapters/prisma/migrations/20261101120000_opened_deliveries_questions/migration.sql +3 -0
  233. package/src/adapters/prisma/migrations/20261101150000_basket_entries/migration.sql +25 -0
  234. package/src/adapters/prisma/migrations/20261101180000_opened_deliveries_steps/migration.sql +2 -0
  235. package/src/adapters/prisma/migrations/20261101181000_party_sign_in_notices_steps/migration.sql +2 -0
  236. package/src/adapters/prisma/migrations/20261102090000_routes/migration.sql +11 -0
  237. package/src/adapters/prisma/migrations/20261102091000_slack_posts_unacknowledged/migration.sql +3 -0
  238. package/src/adapters/prisma/migrations/20261102092000_slack_links_routed/migration.sql +2 -0
  239. package/src/adapters/prisma/migrations/20261102093000_email_channels_routed/migration.sql +2 -0
  240. package/src/adapters/prisma/migrations/20261103090000_slack_posts_edited/migration.sql +5 -0
  241. package/src/adapters/prisma/schema.prisma +71 -15
  242. package/web/.next/BUILD_ID +1 -1
  243. package/web/.next/app-path-routes-manifest.json +8 -4
  244. package/web/.next/build-manifest.json +127 -79
  245. package/web/.next/diagnostics/route-bundle-stats.json +215 -143
  246. package/web/.next/fallback-build-manifest.json +3 -3
  247. package/web/.next/prerender-manifest.json +3 -3
  248. package/web/.next/routes-manifest.json +50 -26
  249. package/web/.next/server/app/(console)/bridge/basket/page/app-paths-manifest.json +3 -0
  250. package/web/.next/server/app/(console)/{overview/requests/[requestId] → bridge/basket}/page/build-manifest.json +4 -4
  251. package/web/.next/server/app/(console)/{overview/requests/[requestId] → bridge/basket}/page/next-font-manifest.json +1 -1
  252. package/web/.next/server/app/(console)/bridge/basket/page/server-reference-manifest.json +75 -0
  253. package/web/.next/server/app/(console)/bridge/basket/page.js +25 -0
  254. package/web/.next/server/app/(console)/bridge/basket/page.js.nft.json +1 -0
  255. package/web/.next/server/app/(console)/bridge/basket/page_client-reference-manifest.js +3 -0
  256. package/web/.next/server/app/(console)/bridge/changes/route/app-paths-manifest.json +3 -0
  257. package/web/.next/server/app/(console)/bridge/changes/route.js +8 -0
  258. package/web/.next/server/app/(console)/{overview/focus → bridge/changes}/route.js.nft.json +1 -1
  259. package/web/.next/server/app/(console)/{overview/focus → bridge/changes}/route_client-reference-manifest.js +1 -1
  260. package/web/.next/server/app/(console)/bridge/done/page/app-paths-manifest.json +3 -0
  261. package/web/.next/server/app/(console)/bridge/done/page/build-manifest.json +23 -0
  262. package/web/.next/server/app/(console)/bridge/done/page/next-font-manifest.json +11 -0
  263. package/web/.next/server/app/(console)/bridge/done/page/server-reference-manifest.json +75 -0
  264. package/web/.next/server/app/(console)/bridge/done/page.js +25 -0
  265. package/web/.next/server/app/(console)/bridge/done/page.js.nft.json +1 -0
  266. package/web/.next/server/app/(console)/bridge/done/page_client-reference-manifest.js +3 -0
  267. package/web/.next/server/app/(console)/bridge/focus/route/app-paths-manifest.json +3 -0
  268. package/web/.next/server/app/(console)/bridge/focus/route.js +8 -0
  269. package/web/.next/server/app/(console)/{overview/changes → bridge/focus}/route.js.nft.json +1 -1
  270. package/web/.next/server/app/(console)/bridge/focus/route_client-reference-manifest.js +3 -0
  271. package/web/.next/server/app/(console)/bridge/page/app-paths-manifest.json +3 -0
  272. package/web/.next/server/app/(console)/{overview → bridge}/page/build-manifest.json +4 -4
  273. package/web/.next/server/app/(console)/{overview → bridge}/page/next-font-manifest.json +1 -1
  274. package/web/.next/server/app/(console)/bridge/page/react-loadable-manifest.json +1 -0
  275. package/web/.next/server/app/(console)/bridge/page/server-reference-manifest.json +65 -0
  276. package/web/.next/server/app/(console)/{overview → bridge}/page.js +11 -11
  277. package/web/.next/server/app/(console)/bridge/page.js.map +5 -0
  278. package/web/.next/server/app/(console)/{overview → bridge}/page.js.nft.json +1 -1
  279. package/web/.next/server/app/(console)/bridge/page_client-reference-manifest.js +3 -0
  280. package/web/.next/server/app/(console)/bridge/settings/page/app-paths-manifest.json +3 -0
  281. package/web/.next/server/app/(console)/bridge/settings/page/build-manifest.json +23 -0
  282. package/web/.next/server/app/(console)/bridge/settings/page/next-font-manifest.json +11 -0
  283. package/web/.next/server/app/(console)/bridge/settings/page/react-loadable-manifest.json +1 -0
  284. package/web/.next/server/app/(console)/bridge/settings/page/server-reference-manifest.json +15 -0
  285. package/web/.next/server/app/(console)/bridge/settings/page.js +23 -0
  286. package/web/.next/server/app/(console)/bridge/settings/page.js.map +5 -0
  287. package/web/.next/server/app/(console)/bridge/settings/page.js.nft.json +1 -0
  288. package/web/.next/server/app/(console)/bridge/settings/page_client-reference-manifest.js +3 -0
  289. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/app-paths-manifest.json +3 -0
  290. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/build-manifest.json +23 -0
  291. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/next-font-manifest.json +11 -0
  292. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/react-loadable-manifest.json +1 -0
  293. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/server-reference-manifest.json +25 -0
  294. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page.js +25 -0
  295. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page.js.map +5 -0
  296. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page.js.nft.json +1 -0
  297. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page_client-reference-manifest.js +3 -0
  298. package/web/.next/server/app/(console)/bridge/settings/routing/page/app-paths-manifest.json +3 -0
  299. package/web/.next/server/app/(console)/bridge/settings/routing/page/build-manifest.json +23 -0
  300. package/web/.next/server/app/(console)/bridge/settings/routing/page/next-font-manifest.json +11 -0
  301. package/web/.next/server/app/(console)/bridge/settings/routing/page/react-loadable-manifest.json +1 -0
  302. package/web/.next/server/app/(console)/bridge/settings/routing/page/server-reference-manifest.json +55 -0
  303. package/web/.next/server/app/(console)/{overview/requests/[requestId] → bridge/settings/routing}/page.js +12 -12
  304. package/web/.next/server/app/(console)/bridge/settings/routing/page.js.map +5 -0
  305. package/web/.next/server/app/(console)/{overview/requests/[requestId] → bridge/settings/routing}/page.js.nft.json +1 -1
  306. package/web/.next/server/app/(console)/bridge/settings/routing/page_client-reference-manifest.js +3 -0
  307. package/web/.next/server/app/(console)/gateway-off/page/build-manifest.json +4 -4
  308. package/web/.next/server/app/(console)/gateway-off/page/server-reference-manifest.json +1 -1
  309. package/web/.next/server/app/(console)/gateway-off/page.js.nft.json +1 -1
  310. package/web/.next/server/app/(console)/gateway-off/page_client-reference-manifest.js +1 -1
  311. package/web/.next/server/app/(console)/meetings/[meetingId]/page/build-manifest.json +4 -4
  312. package/web/.next/server/app/(console)/meetings/[meetingId]/page/server-reference-manifest.json +3 -3
  313. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js +1 -1
  314. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js.nft.json +1 -1
  315. package/web/.next/server/app/(console)/meetings/[meetingId]/page_client-reference-manifest.js +1 -1
  316. package/web/.next/server/app/(console)/outside-parties/[name]/change/page/build-manifest.json +4 -4
  317. package/web/.next/server/app/(console)/outside-parties/[name]/change/page/server-reference-manifest.json +16 -16
  318. package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js.nft.json +1 -1
  319. package/web/.next/server/app/(console)/outside-parties/[name]/change/page_client-reference-manifest.js +1 -1
  320. package/web/.next/server/app/(console)/outside-parties/[name]/page/build-manifest.json +4 -4
  321. package/web/.next/server/app/(console)/outside-parties/[name]/page/server-reference-manifest.json +8 -8
  322. package/web/.next/server/app/(console)/outside-parties/[name]/page.js.nft.json +1 -1
  323. package/web/.next/server/app/(console)/outside-parties/[name]/page_client-reference-manifest.js +1 -1
  324. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/build-manifest.json +4 -4
  325. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/server-reference-manifest.json +16 -16
  326. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js.nft.json +1 -1
  327. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page_client-reference-manifest.js +1 -1
  328. package/web/.next/server/app/(console)/outside-parties/add/page/build-manifest.json +4 -4
  329. package/web/.next/server/app/(console)/outside-parties/add/page/server-reference-manifest.json +10 -10
  330. package/web/.next/server/app/(console)/outside-parties/add/page.js.nft.json +1 -1
  331. package/web/.next/server/app/(console)/outside-parties/add/page_client-reference-manifest.js +1 -1
  332. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/build-manifest.json +4 -4
  333. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/server-reference-manifest.json +2 -2
  334. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js.nft.json +1 -1
  335. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page_client-reference-manifest.js +1 -1
  336. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/build-manifest.json +4 -4
  337. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/server-reference-manifest.json +2 -2
  338. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js.nft.json +1 -1
  339. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page_client-reference-manifest.js +1 -1
  340. package/web/.next/server/app/(console)/outside-parties/page/build-manifest.json +4 -4
  341. package/web/.next/server/app/(console)/outside-parties/page/server-reference-manifest.json +2 -2
  342. package/web/.next/server/app/(console)/outside-parties/page.js.nft.json +1 -1
  343. package/web/.next/server/app/(console)/outside-parties/page_client-reference-manifest.js +1 -1
  344. package/web/.next/server/app/(console)/parties/page/build-manifest.json +4 -4
  345. package/web/.next/server/app/(console)/parties/page/server-reference-manifest.json +8 -8
  346. package/web/.next/server/app/(console)/parties/page.js.nft.json +1 -1
  347. package/web/.next/server/app/(console)/parties/page_client-reference-manifest.js +1 -1
  348. package/web/.next/server/app/(console)/sign-in/failed/page/build-manifest.json +4 -4
  349. package/web/.next/server/app/(console)/sign-in/failed/page/server-reference-manifest.json +1 -1
  350. package/web/.next/server/app/(console)/sign-in/failed/page.js.nft.json +1 -1
  351. package/web/.next/server/app/(console)/sign-in/failed/page_client-reference-manifest.js +1 -1
  352. package/web/.next/server/app/(console)/slack/disconnect/page/build-manifest.json +4 -4
  353. package/web/.next/server/app/(console)/slack/disconnect/page/server-reference-manifest.json +8 -8
  354. package/web/.next/server/app/(console)/slack/disconnect/page.js.nft.json +1 -1
  355. package/web/.next/server/app/(console)/slack/disconnect/page_client-reference-manifest.js +1 -1
  356. package/web/.next/server/app/(console)/slack/expose/page/build-manifest.json +4 -4
  357. package/web/.next/server/app/(console)/slack/expose/page/server-reference-manifest.json +8 -8
  358. package/web/.next/server/app/(console)/slack/expose/page.js.nft.json +1 -1
  359. package/web/.next/server/app/(console)/slack/expose/page_client-reference-manifest.js +1 -1
  360. package/web/.next/server/app/(console)/slack/link/route.js.nft.json +1 -1
  361. package/web/.next/server/app/(console)/slack/page/build-manifest.json +4 -4
  362. package/web/.next/server/app/(console)/slack/page/server-reference-manifest.json +8 -8
  363. package/web/.next/server/app/(console)/slack/page.js.nft.json +1 -1
  364. package/web/.next/server/app/(console)/slack/page_client-reference-manifest.js +1 -1
  365. package/web/.next/server/app/(console)/slack/remove/page/build-manifest.json +4 -4
  366. package/web/.next/server/app/(console)/slack/remove/page/server-reference-manifest.json +8 -8
  367. package/web/.next/server/app/(console)/slack/remove/page.js.nft.json +1 -1
  368. package/web/.next/server/app/(console)/slack/remove/page_client-reference-manifest.js +1 -1
  369. package/web/.next/server/app/_global-error/page/build-manifest.json +4 -4
  370. package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  371. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  372. package/web/.next/server/app/_global-error.html +1 -1
  373. package/web/.next/server/app/_global-error.rsc +1 -1
  374. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  375. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  376. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  377. package/web/.next/server/app/_not-found/page/build-manifest.json +4 -4
  378. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  379. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  380. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  381. package/web/.next/server/app/authorize/failed/page/build-manifest.json +4 -4
  382. package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +1 -1
  383. package/web/.next/server/app/authorize/failed/page.js +1 -1
  384. package/web/.next/server/app/authorize/failed/page.js.nft.json +1 -1
  385. package/web/.next/server/app/authorize/failed/page_client-reference-manifest.js +1 -1
  386. package/web/.next/server/app/authorize/pick/page/build-manifest.json +4 -4
  387. package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +1 -1
  388. package/web/.next/server/app/authorize/pick/page.js +1 -1
  389. package/web/.next/server/app/authorize/pick/page.js.nft.json +1 -1
  390. package/web/.next/server/app/authorize/pick/page_client-reference-manifest.js +1 -1
  391. package/web/.next/server/app/authorize/waiting/approval/page/build-manifest.json +4 -4
  392. package/web/.next/server/app/authorize/waiting/approval/page/server-reference-manifest.json +1 -1
  393. package/web/.next/server/app/authorize/waiting/approval/page.js +1 -1
  394. package/web/.next/server/app/authorize/waiting/approval/page.js.nft.json +1 -1
  395. package/web/.next/server/app/authorize/waiting/approval/page_client-reference-manifest.js +1 -1
  396. package/web/.next/server/app-paths-manifest.json +8 -4
  397. package/web/.next/server/chunks/0b9d__next-internal_server_app_(console)_bridge_changes_route_actions_0hj8aqohz6bu6.js +3 -0
  398. package/web/.next/server/chunks/{[root-of-the-server]__1tfyrijwfgqlk._.js → [root-of-the-server]__13mh3krxil59c._.js} +2 -2
  399. package/web/.next/server/chunks/[root-of-the-server]__13mh3krxil59c._.js.map +1 -0
  400. package/web/.next/server/chunks/_05qgg3__4kdbm._.js +3 -0
  401. package/web/.next/server/chunks/_05qgg3__4kdbm._.js.map +1 -0
  402. package/web/.next/server/chunks/_0_um96p6psnqx._.js +4 -4
  403. package/web/.next/server/chunks/_0_um96p6psnqx._.js.map +1 -1
  404. package/web/.next/server/chunks/_1uap5tql2vvsb._.js +3 -0
  405. package/web/.next/server/chunks/{_04is-uopj3op9._.js.map → _1uap5tql2vvsb._.js.map} +1 -1
  406. package/web/.next/server/chunks/_1xf83h9norhws._.js +4 -4
  407. package/web/.next/server/chunks/_1xf83h9norhws._.js.map +1 -1
  408. package/web/.next/server/chunks/_20ne4s-e_jzxp._.js +1 -1
  409. package/web/.next/server/chunks/_20ne4s-e_jzxp._.js.map +1 -1
  410. package/web/.next/server/chunks/ssr/01fr_app_(console)_bridge_settings_requests_[requestId]_page_actions_1au-p5lgnv5e-.js +3 -0
  411. package/web/.next/server/chunks/ssr/01fr_app_(console)_bridge_settings_requests_[requestId]_page_actions_1au-p5lgnv5e-.js.map +1 -0
  412. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_bridge_settings_routing_page_actions_136lm_jip4d_x.js +3 -0
  413. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_bridge_settings_routing_page_actions_136lm_jip4d_x.js.map +1 -0
  414. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js +1 -1
  415. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js.map +1 -1
  416. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js +1 -1
  417. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js.map +1 -1
  418. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js +1 -1
  419. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js.map +1 -1
  420. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js +1 -1
  421. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js.map +1 -1
  422. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js +1 -1
  423. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js.map +1 -1
  424. package/web/.next/server/chunks/ssr/[root-of-the-server]__001xx3sm5ur-e._.js +1 -1
  425. package/web/.next/server/chunks/ssr/[root-of-the-server]__001xx3sm5ur-e._.js.map +1 -1
  426. package/web/.next/server/chunks/ssr/[root-of-the-server]__00jy4lqrcvxvc._.js +3 -0
  427. package/web/.next/server/chunks/ssr/[root-of-the-server]__00jy4lqrcvxvc._.js.map +1 -0
  428. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a6a1yc_ac-qt._.js +1 -1
  429. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a8db18tyk__5._.js +1 -1
  430. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a8db18tyk__5._.js.map +1 -1
  431. package/web/.next/server/chunks/ssr/{[root-of-the-server]__179upda-y7uap._.js → [root-of-the-server]__0gnfxe62edx95._.js} +1 -1
  432. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k-5_al3xk509._.js +3 -0
  433. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k-5_al3xk509._.js.map +1 -0
  434. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js +1 -1
  435. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js.map +1 -1
  436. package/web/.next/server/chunks/ssr/[root-of-the-server]__10s9e8g5x-ws8._.js +1 -1
  437. package/web/.next/server/chunks/ssr/[root-of-the-server]__10s9e8g5x-ws8._.js.map +1 -1
  438. package/web/.next/server/chunks/ssr/[root-of-the-server]__13yoncr_nx3jc._.js +1 -1
  439. package/web/.next/server/chunks/ssr/[root-of-the-server]__13yoncr_nx3jc._.js.map +1 -1
  440. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js +1 -1
  441. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js.map +1 -1
  442. package/web/.next/server/chunks/ssr/[root-of-the-server]__18v7b5ga58a9n._.js +4 -0
  443. package/web/.next/server/chunks/ssr/[root-of-the-server]__18v7b5ga58a9n._.js.map +1 -0
  444. package/web/.next/server/chunks/ssr/[root-of-the-server]__1iqxg48po42ig._.js +3 -0
  445. package/web/.next/server/chunks/ssr/[root-of-the-server]__1iqxg48po42ig._.js.map +1 -0
  446. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpow96uit9t8._.js +1 -1
  447. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpow96uit9t8._.js.map +1 -1
  448. package/web/.next/server/chunks/ssr/[root-of-the-server]__1rf344o33bmi4._.js +3 -0
  449. package/web/.next/server/chunks/ssr/[root-of-the-server]__1rf344o33bmi4._.js.map +1 -0
  450. package/web/.next/server/chunks/ssr/{[root-of-the-server]__04_bc8g0oe4jt._.js → [root-of-the-server]__1yyaeeylnezpi._.js} +1 -1
  451. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +1 -1
  452. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -1
  453. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js +4 -4
  454. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js.map +1 -1
  455. package/web/.next/server/chunks/ssr/_0a_nsm-ye2r6v._.js +4 -0
  456. package/web/.next/server/chunks/ssr/_0a_nsm-ye2r6v._.js.map +1 -0
  457. package/web/.next/server/chunks/ssr/_0h-ua-y4p4u1p._.js +3 -0
  458. package/web/.next/server/chunks/ssr/_0h-ua-y4p4u1p._.js.map +1 -0
  459. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js +1 -1
  460. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js.map +1 -1
  461. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js +1 -1
  462. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js.map +1 -1
  463. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +1 -1
  464. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -1
  465. package/web/.next/server/chunks/ssr/{_1oy13966tft2_._.js → _10-gn6g9yc63s._.js} +2 -2
  466. package/web/.next/server/chunks/ssr/_10-gn6g9yc63s._.js.map +1 -0
  467. package/web/.next/server/chunks/ssr/{_1pf8x2exvfl1z._.js → _177fdczus39s7._.js} +2 -2
  468. package/web/.next/server/chunks/ssr/_177fdczus39s7._.js.map +1 -0
  469. package/web/.next/server/chunks/ssr/_1_wav28san6dm._.js +1 -1
  470. package/web/.next/server/chunks/ssr/_1e2o809f0ekry._.js +1 -1
  471. package/web/.next/server/chunks/ssr/_1hmjvjuxx92vo._.js +1 -1
  472. package/web/.next/server/chunks/ssr/_1hmjvjuxx92vo._.js.map +1 -1
  473. package/web/.next/server/chunks/ssr/_1jx41z6kmxtt0._.js +3 -0
  474. package/web/.next/server/chunks/ssr/_1jx41z6kmxtt0._.js.map +1 -0
  475. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js +1 -1
  476. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js.map +1 -1
  477. package/web/.next/server/chunks/ssr/_1q2s-hb67yjfb._.js +3 -0
  478. package/web/.next/server/chunks/ssr/_1q2s-hb67yjfb._.js.map +1 -0
  479. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js +1 -1
  480. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js.map +1 -1
  481. package/web/.next/server/chunks/ssr/_1yi3j4a16uet-._.js +3 -0
  482. package/web/.next/server/chunks/ssr/_1yi3j4a16uet-._.js.map +1 -0
  483. package/web/.next/server/chunks/ssr/node_modules_01oyodz1bs245._.js +3 -0
  484. package/web/.next/server/chunks/ssr/node_modules_01oyodz1bs245._.js.map +1 -0
  485. package/web/.next/server/chunks/ssr/node_modules_16d4um5s513wz._.js +3 -0
  486. package/web/.next/server/chunks/ssr/node_modules_16d4um5s513wz._.js.map +1 -0
  487. package/web/.next/server/chunks/ssr/{node_modules_@aeolus-fleet_common_dist_header_1id6g-6m2hh0l._.js → node_modules_@aeolus-fleet_common_dist_header_0t_cmi-llaq7g._.js} +2 -2
  488. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_0t_cmi-llaq7g._.js.map +1 -0
  489. package/web/.next/server/chunks/ssr/{node_modules_@aeolus-fleet_common_dist_header_1jvz31plyg2f-._.js → node_modules_@aeolus-fleet_common_dist_header_1x3s5abk_uj9j._.js} +2 -2
  490. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_1x3s5abk_uj9j._.js.map +1 -0
  491. package/web/.next/server/chunks/ssr/node_modules_next_dist_0hkpfqt9ne626._.js +3 -0
  492. package/web/.next/server/chunks/ssr/node_modules_next_dist_0hkpfqt9ne626._.js.map +1 -0
  493. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_031g89sb4kgzn.js +3 -0
  494. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_031g89sb4kgzn.js.map +1 -0
  495. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09rviehv6rh0n.js +3 -0
  496. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09rviehv6rh0n.js.map +1 -0
  497. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ka8v6_fxug8r.js +3 -0
  498. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ka8v6_fxug8r.js.map +1 -0
  499. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1c8zekuy1gkch.js +3 -0
  500. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1c8zekuy1gkch.js.map +1 -0
  501. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dhzng2nnu0m7.js +3 -0
  502. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dhzng2nnu0m7.js.map +1 -0
  503. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1rya2ag3z4vug.js +3 -0
  504. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1rya2ag3z4vug.js.map +1 -0
  505. package/web/.next/server/chunks/ssr/web_09zipglxee7tv._.js +1 -1
  506. package/web/.next/server/chunks/ssr/web_09zipglxee7tv._.js.map +1 -1
  507. package/web/.next/server/chunks/ssr/web_0i_1uraygw2ld._.js +3 -0
  508. package/web/.next/server/chunks/ssr/web_0i_1uraygw2ld._.js.map +1 -0
  509. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js +1 -1
  510. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js.map +1 -1
  511. package/web/.next/server/chunks/ssr/web_0wz4onhfbq359._.js +3 -0
  512. package/web/.next/server/chunks/ssr/web_0wz4onhfbq359._.js.map +1 -0
  513. package/web/.next/server/chunks/ssr/web_1-hlf1xzemd3-._.js +3 -0
  514. package/web/.next/server/chunks/ssr/web_1-hlf1xzemd3-._.js.map +1 -0
  515. package/web/.next/server/chunks/ssr/web_107a79_nx4jdd._.js +3 -0
  516. package/web/.next/server/chunks/ssr/web_107a79_nx4jdd._.js.map +1 -0
  517. package/web/.next/server/chunks/ssr/web_127_b93avkwaq._.js +3 -0
  518. package/web/.next/server/chunks/ssr/web_127_b93avkwaq._.js.map +1 -0
  519. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_basket_page_actions_102xk3g8eko_q.js +3 -0
  520. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_basket_page_actions_102xk3g8eko_q.js.map +1 -0
  521. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_done_page_actions_0mm90xd2feta2.js +3 -0
  522. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_done_page_actions_0mm90xd2feta2.js.map +1 -0
  523. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_page_actions_082880qz6xa5k.js +3 -0
  524. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_page_actions_082880qz6xa5k.js.map +1 -0
  525. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_0ty_yk1robyaj._.js +3 -0
  526. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_0ty_yk1robyaj._.js.map +1 -0
  527. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_10gkrn3ey8162._.js +3 -0
  528. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_10gkrn3ey8162._.js.map +1 -0
  529. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_settings_page_tsx_0xzphp7k9ge1u._.js +3 -0
  530. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_settings_page_tsx_0xzphp7k9ge1u._.js.map +1 -0
  531. package/web/.next/server/chunks/ssr/web_app_(console)_outside-parties_[name]_change_page_tsx_00bpg0s2eypj9._.js +1 -1
  532. package/web/.next/server/chunks/ssr/web_app_(console)_outside-parties_[name]_retire_page_tsx_1zxy74pr5_2kn._.js +1 -1
  533. package/web/.next/server/chunks/ssr/web_features_0s8erick0xk77._.js +3 -0
  534. package/web/.next/server/chunks/ssr/web_features_0s8erick0xk77._.js.map +1 -0
  535. package/web/.next/server/chunks/ssr/web_features_0wuo5bgp5tabn._.js +3 -0
  536. package/web/.next/server/chunks/ssr/web_features_0wuo5bgp5tabn._.js.map +1 -0
  537. package/web/.next/server/chunks/ssr/web_features_16cy3vmcijydk._.js +3 -0
  538. package/web/.next/server/chunks/ssr/web_features_16cy3vmcijydk._.js.map +1 -0
  539. package/web/.next/server/chunks/ssr/web_features_1iiqi6dhrst33._.js +3 -0
  540. package/web/.next/server/chunks/ssr/web_features_1iiqi6dhrst33._.js.map +1 -0
  541. package/web/.next/server/chunks/ssr/web_features_1n1hy3nwha2vi._.js +3 -0
  542. package/web/.next/server/chunks/ssr/web_features_1n1hy3nwha2vi._.js.map +1 -0
  543. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js +1 -1
  544. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js.map +1 -1
  545. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js +1 -1
  546. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js.map +1 -1
  547. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js +1 -1
  548. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js.map +1 -1
  549. package/web/.next/server/chunks/ssr/web_features_bridge_0-mhu0jaig2u3._.js +3 -0
  550. package/web/.next/server/chunks/ssr/web_features_bridge_0-mhu0jaig2u3._.js.map +1 -0
  551. package/web/.next/server/chunks/ssr/web_features_bridge_0219fbfmsi68-._.js +3 -0
  552. package/web/.next/server/chunks/ssr/web_features_bridge_0219fbfmsi68-._.js.map +1 -0
  553. package/web/.next/server/chunks/ssr/web_features_bridge_11jndonu4o8fq._.js +3 -0
  554. package/web/.next/server/chunks/ssr/web_features_bridge_11jndonu4o8fq._.js.map +1 -0
  555. package/web/.next/server/chunks/ssr/web_features_bridge_1mi9qlb-z5iwt._.js +3 -0
  556. package/web/.next/server/chunks/ssr/web_features_bridge_1mi9qlb-z5iwt._.js.map +1 -0
  557. package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js +3 -0
  558. package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js.map +1 -0
  559. package/web/.next/server/chunks/ssr/web_features_bridge_state_0354e3wb0dzx1._.js +3 -0
  560. package/web/.next/server/chunks/ssr/web_features_bridge_state_0354e3wb0dzx1._.js.map +1 -0
  561. package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js +3 -0
  562. package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js.map +1 -0
  563. package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js +3 -0
  564. package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js.map +1 -0
  565. package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js +3 -0
  566. package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js.map +1 -0
  567. package/web/.next/server/chunks/ssr/web_features_bridge_state_home-panel_tsx_1cc5zdhxogl_2._.js +3 -0
  568. package/web/.next/server/chunks/ssr/web_features_bridge_state_home-panel_tsx_1cc5zdhxogl_2._.js.map +1 -0
  569. package/web/.next/server/chunks/ssr/web_features_bridge_state_live-refresh_tsx_1c1xk-oe0kllv._.js +3 -0
  570. package/web/.next/server/chunks/ssr/web_features_bridge_state_live-refresh_tsx_1c1xk-oe0kllv._.js.map +1 -0
  571. package/web/.next/server/chunks/ssr/web_features_bridge_ui_1y4g3fe75nqn5._.js +3 -0
  572. package/web/.next/server/chunks/ssr/web_features_bridge_ui_1y4g3fe75nqn5._.js.map +1 -0
  573. package/web/.next/server/chunks/ssr/web_features_frame_0pe8cwpxe1egb._.js +1 -1
  574. package/web/.next/server/chunks/ssr/web_features_frame_0pe8cwpxe1egb._.js.map +1 -1
  575. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js +1 -1
  576. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js.map +1 -1
  577. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js +1 -1
  578. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js.map +1 -1
  579. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js +1 -1
  580. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js.map +1 -1
  581. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js +1 -1
  582. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js +1 -1
  583. package/web/.next/server/chunks/ssr/web_features_slack_actions_ts_1l3yg9vl20_vu._.js +1 -1
  584. package/web/.next/server/chunks/web__next-internal_server_app_(console)_bridge_focus_route_actions_0syd_u8mgzdmi.js +3 -0
  585. package/web/.next/server/middleware-build-manifest.js +127 -79
  586. package/web/.next/server/next-font-manifest.js +1 -1
  587. package/web/.next/server/next-font-manifest.json +24 -8
  588. package/web/.next/server/pages/500.html +1 -1
  589. package/web/.next/server/preview-props.json +3 -3
  590. package/web/.next/server/server-reference-manifest.js +1 -1
  591. package/web/.next/server/server-reference-manifest.json +218 -132
  592. package/web/.next/static/chunks/0az9upwm-8_q9.js +1 -0
  593. package/web/.next/static/chunks/0c1tqlbsvq1dj.js +1 -0
  594. package/web/.next/static/chunks/0fh11dkddwf_2.js +1 -0
  595. package/web/.next/static/chunks/0gbozvd_yh421.js +1 -0
  596. package/web/.next/static/chunks/0l9_oie6xi0kd.js +1 -0
  597. package/web/.next/static/chunks/0m512dxdcrv-b.js +1 -0
  598. package/web/.next/static/chunks/1166rxt6h6ilq.js +1 -0
  599. package/web/.next/static/chunks/1485slb5zus5p.js +1 -0
  600. package/web/.next/static/chunks/180aowme095ds.js +1 -0
  601. package/web/.next/static/chunks/{03239gtej3tj0.js → 24olc0btcvn7q.js} +1 -1
  602. package/web/.next/static/chunks/296w-74ry5lzk.js +1 -0
  603. package/web/.next/static/chunks/2hoi73vy1wqpo.js +1 -0
  604. package/web/.next/static/chunks/2mtfca4qk_s34.js +1 -0
  605. package/web/.next/static/chunks/{3ceatffqhpgpu.js → 2z2auwx1s2mgl.js} +1 -1
  606. package/web/.next/static/chunks/397zvdr6xr5pq.js +1 -0
  607. package/web/.next/static/chunks/{2_e-puldye2do.js → 3db90zxmny2y-.js} +1 -1
  608. package/web/.next/static/chunks/3ow9h8hreko-p.css +3 -0
  609. package/web/.next/static/chunks/3pd8pele5x1o9.js +1 -0
  610. package/web/.next/static/chunks/3srfjz42u14tx.js +1 -0
  611. package/web/.next/static/chunks/{0tmvd_zw45u96.js → 3x0p-z3zdrk_b.js} +1 -1
  612. package/web/.next/static/chunks/3yq9jt4p_0uid.js +1 -0
  613. package/web/.next/trace +1 -1
  614. package/web/.next/trace-build +1 -1
  615. package/web/.next/types/routes.d.ts +10 -6
  616. package/web/.next/types/validator.ts +108 -40
  617. package/web/public/wake-worker.js +4 -4
  618. package/dist/adapters/prisma/email-channels.d.ts +0 -4
  619. package/dist/adapters/prisma/email-channels.js +0 -14
  620. package/dist/adapters/prisma/email-channels.js.map +0 -1
  621. package/dist/adapters/prisma/generated/models/EmailChannel.d.ts +0 -946
  622. package/dist/adapters/prisma/generated/models/EmailChannel.js +0 -2
  623. package/dist/adapters/prisma/generated/models/EmailChannel.js.map +0 -1
  624. package/dist/core/people/turn-email-channel.d.ts +0 -21
  625. package/dist/core/people/turn-email-channel.js +0 -22
  626. package/dist/core/people/turn-email-channel.js.map +0 -1
  627. package/dist/core/slack/show-all-in-slack.d.ts +0 -16
  628. package/dist/core/slack/show-all-in-slack.js +0 -18
  629. package/dist/core/slack/show-all-in-slack.js.map +0 -1
  630. package/web/.next/server/app/(console)/overview/changes/route/app-paths-manifest.json +0 -3
  631. package/web/.next/server/app/(console)/overview/changes/route.js +0 -8
  632. package/web/.next/server/app/(console)/overview/changes/route_client-reference-manifest.js +0 -3
  633. package/web/.next/server/app/(console)/overview/focus/route/app-paths-manifest.json +0 -3
  634. package/web/.next/server/app/(console)/overview/focus/route.js +0 -8
  635. package/web/.next/server/app/(console)/overview/page/app-paths-manifest.json +0 -3
  636. package/web/.next/server/app/(console)/overview/page/server-reference-manifest.json +0 -95
  637. package/web/.next/server/app/(console)/overview/page_client-reference-manifest.js +0 -3
  638. package/web/.next/server/app/(console)/overview/requests/[requestId]/page/app-paths-manifest.json +0 -3
  639. package/web/.next/server/app/(console)/overview/requests/[requestId]/page/server-reference-manifest.json +0 -25
  640. package/web/.next/server/app/(console)/overview/requests/[requestId]/page_client-reference-manifest.js +0 -3
  641. package/web/.next/server/chunks/0b9d__next-internal_server_app_(console)_overview_focus_route_actions_10hgyjvv-6fus.js +0 -3
  642. package/web/.next/server/chunks/1mb5_next-internal_server_app_(console)_overview_changes_route_actions_0zbq7lqsf5nng.js +0 -3
  643. package/web/.next/server/chunks/[root-of-the-server]__1tfyrijwfgqlk._.js.map +0 -1
  644. package/web/.next/server/chunks/_04is-uopj3op9._.js +0 -3
  645. package/web/.next/server/chunks/_1-fw4-pwzazl4._.js +0 -3
  646. package/web/.next/server/chunks/_1-fw4-pwzazl4._.js.map +0 -1
  647. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_overview_requests_[requestId]_page_actions_0uki9j3mtuz9e.js +0 -3
  648. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_overview_requests_[requestId]_page_actions_0uki9j3mtuz9e.js.map +0 -1
  649. package/web/.next/server/chunks/ssr/[root-of-the-server]__0icm7kndx480o._.js +0 -4
  650. package/web/.next/server/chunks/ssr/[root-of-the-server]__0icm7kndx480o._.js.map +0 -1
  651. package/web/.next/server/chunks/ssr/[root-of-the-server]__1zlq3zji9v53h._.js +0 -3
  652. package/web/.next/server/chunks/ssr/[root-of-the-server]__1zlq3zji9v53h._.js.map +0 -1
  653. package/web/.next/server/chunks/ssr/_0-boiqan2j4tr._.js +0 -3
  654. package/web/.next/server/chunks/ssr/_0-boiqan2j4tr._.js.map +0 -1
  655. package/web/.next/server/chunks/ssr/_0-lfpqqlgfhzj._.js +0 -3
  656. package/web/.next/server/chunks/ssr/_0-lfpqqlgfhzj._.js.map +0 -1
  657. package/web/.next/server/chunks/ssr/_0bizyb21i2sl8._.js +0 -3
  658. package/web/.next/server/chunks/ssr/_0bizyb21i2sl8._.js.map +0 -1
  659. package/web/.next/server/chunks/ssr/_1oy13966tft2_._.js.map +0 -1
  660. package/web/.next/server/chunks/ssr/_1pf8x2exvfl1z._.js.map +0 -1
  661. package/web/.next/server/chunks/ssr/_1yqu7dcxs2-so._.js +0 -3
  662. package/web/.next/server/chunks/ssr/_1yqu7dcxs2-so._.js.map +0 -1
  663. package/web/.next/server/chunks/ssr/node_modules_0_cxkn6vujxay._.js +0 -3
  664. package/web/.next/server/chunks/ssr/node_modules_0_cxkn6vujxay._.js.map +0 -1
  665. package/web/.next/server/chunks/ssr/node_modules_0ue_35q2cegwf._.js +0 -3
  666. package/web/.next/server/chunks/ssr/node_modules_0ue_35q2cegwf._.js.map +0 -1
  667. package/web/.next/server/chunks/ssr/node_modules_15ceu3jhtifcw._.js +0 -3
  668. package/web/.next/server/chunks/ssr/node_modules_15ceu3jhtifcw._.js.map +0 -1
  669. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_1id6g-6m2hh0l._.js.map +0 -1
  670. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_1jvz31plyg2f-._.js.map +0 -1
  671. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00i8qu9x65r6w.js +0 -3
  672. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00i8qu9x65r6w.js.map +0 -1
  673. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0a3qpq0qt_bi4.js +0 -3
  674. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0a3qpq0qt_bi4.js.map +0 -1
  675. package/web/.next/server/chunks/ssr/web_0plvx3c_1cozb._.js +0 -3
  676. package/web/.next/server/chunks/ssr/web_0plvx3c_1cozb._.js.map +0 -1
  677. package/web/.next/server/chunks/ssr/web_1loiet18xbddu._.js +0 -3
  678. package/web/.next/server/chunks/ssr/web_1loiet18xbddu._.js.map +0 -1
  679. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_overview_page_actions_18on1ziyg1nzy.js +0 -3
  680. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_overview_page_actions_18on1ziyg1nzy.js.map +0 -1
  681. package/web/.next/server/chunks/ssr/web_app_(console)_overview_error_tsx_087e7ba8loavc._.js +0 -3
  682. package/web/.next/server/chunks/ssr/web_app_(console)_overview_error_tsx_087e7ba8loavc._.js.map +0 -1
  683. package/web/.next/server/chunks/ssr/web_app_(console)_overview_error_tsx_1nn1jz5nh77af._.js +0 -3
  684. package/web/.next/server/chunks/ssr/web_app_(console)_overview_error_tsx_1nn1jz5nh77af._.js.map +0 -1
  685. package/web/.next/server/chunks/ssr/web_features_0fxkmm4vqke5q._.js +0 -3
  686. package/web/.next/server/chunks/ssr/web_features_0fxkmm4vqke5q._.js.map +0 -1
  687. package/web/.next/server/chunks/ssr/web_features_1k6q2m0sl54-8._.js +0 -3
  688. package/web/.next/server/chunks/ssr/web_features_1k6q2m0sl54-8._.js.map +0 -1
  689. package/web/.next/server/chunks/ssr/web_features_1utnezwv0xr-l._.js +0 -3
  690. package/web/.next/server/chunks/ssr/web_features_1utnezwv0xr-l._.js.map +0 -1
  691. package/web/.next/server/chunks/ssr/web_features_overview_0udx5lm8igils._.js +0 -3
  692. package/web/.next/server/chunks/ssr/web_features_overview_0udx5lm8igils._.js.map +0 -1
  693. package/web/.next/server/chunks/ssr/web_features_overview_144fx4a-r9_wn._.js +0 -3
  694. package/web/.next/server/chunks/ssr/web_features_overview_144fx4a-r9_wn._.js.map +0 -1
  695. package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js +0 -3
  696. package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js.map +0 -1
  697. package/web/.next/server/chunks/ssr/web_features_overview_state_00l0wkgvv9y6j._.js +0 -3
  698. package/web/.next/server/chunks/ssr/web_features_overview_state_00l0wkgvv9y6j._.js.map +0 -1
  699. package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js +0 -3
  700. package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js.map +0 -1
  701. package/web/.next/server/chunks/ssr/web_features_overview_ui_10mb24kjiffea._.js +0 -3
  702. package/web/.next/server/chunks/ssr/web_features_overview_ui_10mb24kjiffea._.js.map +0 -1
  703. package/web/.next/static/chunks/0nhopjmnw_dqt.js +0 -1
  704. package/web/.next/static/chunks/0vlawcs6_kjs1.js +0 -1
  705. package/web/.next/static/chunks/1se0j0htjyep6.js +0 -1
  706. package/web/.next/static/chunks/26vlpatu47xtw.css +0 -3
  707. package/web/.next/static/chunks/287ofedoj_6xl.js +0 -1
  708. package/web/.next/static/chunks/2cd4e71s711ad.js +0 -1
  709. package/web/.next/static/chunks/2ewacyhp73due.js +0 -1
  710. package/web/.next/static/chunks/34kulpk3a-cka.js +0 -1
  711. package/web/.next/static/chunks/3fd167c0-ot3u.js +0 -1
  712. package/web/.next/static/chunks/3knqujtrdi225.js +0 -1
  713. package/web/.next/static/chunks/3l5jtag3-fukc.js +0 -1
  714. package/web/.next/static/chunks/3rxg2mdhxd6yt.js +0 -1
  715. package/web/.next/static/chunks/3v6tr952p9dba.js +0 -1
  716. /package/web/.next/server/app/(console)/{overview → bridge/basket}/page/react-loadable-manifest.json +0 -0
  717. /package/web/.next/server/app/(console)/{overview → bridge/basket}/page.js.map +0 -0
  718. /package/web/.next/server/app/(console)/{overview → bridge}/changes/route/build-manifest.json +0 -0
  719. /package/web/.next/server/app/(console)/{overview → bridge}/changes/route/server-reference-manifest.json +0 -0
  720. /package/web/.next/server/app/(console)/{overview → bridge}/changes/route.js.map +0 -0
  721. /package/web/.next/server/app/(console)/{overview/requests/[requestId] → bridge/done}/page/react-loadable-manifest.json +0 -0
  722. /package/web/.next/server/app/(console)/{overview/requests/[requestId] → bridge/done}/page.js.map +0 -0
  723. /package/web/.next/server/app/(console)/{overview → bridge}/focus/route/build-manifest.json +0 -0
  724. /package/web/.next/server/app/(console)/{overview → bridge}/focus/route/server-reference-manifest.json +0 -0
  725. /package/web/.next/server/app/(console)/{overview → bridge}/focus/route.js.map +0 -0
  726. /package/web/.next/server/chunks/{0b9d__next-internal_server_app_(console)_overview_focus_route_actions_10hgyjvv-6fus.js.map → 0b9d__next-internal_server_app_(console)_bridge_changes_route_actions_0hj8aqohz6bu6.js.map} +0 -0
  727. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__179upda-y7uap._.js.map → [root-of-the-server]__0gnfxe62edx95._.js.map} +0 -0
  728. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__04_bc8g0oe4jt._.js.map → [root-of-the-server]__1yyaeeylnezpi._.js.map} +0 -0
  729. /package/web/.next/server/chunks/{1mb5_next-internal_server_app_(console)_overview_changes_route_actions_0zbq7lqsf5nng.js.map → web__next-internal_server_app_(console)_bridge_focus_route_actions_0syd_u8mgzdmi.js.map} +0 -0
  730. /package/web/.next/static/{R_nPUtDcDp1BPV3QHhaMZ → CMppMkysNciqc8k4TWwia}/_buildManifest.js +0 -0
  731. /package/web/.next/static/{R_nPUtDcDp1BPV3QHhaMZ → CMppMkysNciqc8k4TWwia}/_clientMiddlewareManifest.js +0 -0
  732. /package/web/.next/static/{R_nPUtDcDp1BPV3QHhaMZ → CMppMkysNciqc8k4TWwia}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../node_modules/%40aeolus-fleet/common/src/schemas/question.ts","../../../../../web/features/overview/hooks/overview-actions.ts","../../../../../web/features/overview/services/deliveries.ts"],"sourcesContent":["unable to read source [project]/node_modules/@aeolus-fleet/common/src/schemas/question.ts","'use server';\n/**\n * The Overview's actions, each one call of the gateway's API as the\n * signed-in account, on the server (0033): opening, answering and being done\n * with a delivery, and deciding a request. The API checks everything; a\n * refusal comes back in its own words for the page to say by the control. A\n * sign-in that ended sends the person to sign in again.\n */\nimport { idSchema } from '@aeolus-fleet/common';\nimport { revalidatePath } from 'next/cache';\nimport { redirect } from 'next/navigation';\n\nimport type { GatewayApi } from '../../../lib/gateway-api/gateway-api';\nimport { FLEET_PARAMETER } from '../../../lib/gateway-api/page-account';\nimport { refusalCodeOf, refusalMessageOf, requestApi } from '../../../lib/gateway-api/page-api';\nimport { serverCredentialOf } from '../../forms/server-credential';\nimport { answerOf, questionOf, type AnswerInput, type FocusedDelivery } from '../services/deliveries';\nimport type { SubscriptionInput } from '../services/web-push';\nimport { EVERY_APP_SHIP_SCOPES, type DecisionInput } from '../services/requests';\nimport { OVERVIEW_PATH } from './read-overview';\n\n/** What an action says when the gateway gave no answer of its own. */\nconst NO_ANSWER = 'The gateway did not answer: try again in a moment';\n\nexport type ActionOutcome<T> = { readonly isOk: true; readonly value: T } | { readonly isOk: false; readonly message: string };\n\nasync function attempt<T>(fleet: string, run: (api: GatewayApi) => Promise<T>): Promise<ActionOutcome<T>> {\n let outcome: ActionOutcome<T>;\n try {\n outcome = { isOk: true, value: await run(await requestApi(fleet)) };\n } catch (error) {\n const code = refusalCodeOf(error);\n if (code === 'UNAUTHORIZED') {\n return redirect(`/sign-in/start?${new URLSearchParams({ return_to: `${OVERVIEW_PATH}?${new URLSearchParams({ [FLEET_PARAMETER]: fleet }).toString()}` }).toString()}`);\n }\n return { isOk: false, message: code === undefined ? NO_ANSWER : refusalMessageOf(error) };\n }\n revalidatePath(OVERVIEW_PATH);\n return outcome;\n}\n\n/** Opens a delivery that waits: the gateway acknowledges it for the person, and it is shown whole, once. */\nexport async function openDelivery(fleet: string, deliveryId: string): Promise<ActionOutcome<FocusedDelivery>> {\n return attempt(fleet, async (api) => {\n const opened = await api.people.open.mutate({ deliveryId });\n const { contentType, payload, meetingId, ...entry } = opened;\n return { ...entry, payload, question: questionOf({ contentType, payload }), meetingId: meetingId ?? undefined };\n });\n}\n\nexport async function answerDelivery({ fleet, deliveryId, input }: { fleet: string; deliveryId: string; input: AnswerInput }): Promise<ActionOutcome<undefined>> {\n const answer = answerOf(input);\n if (!answer.isOk) {\n return answer;\n }\n return attempt(fleet, async (api) => {\n await api.people.answer.mutate({ deliveryId, ...answer.value });\n return undefined;\n });\n}\n\nexport async function doneDelivery(fleet: string, deliveryId: string): Promise<ActionOutcome<undefined>> {\n return attempt(fleet, async (api) => {\n await api.people.done.mutate({ deliveryId });\n return undefined;\n });\n}\n\n/** Turns email on or off, to be woken when something waits for the person's own ship (wake a person, W8). */\nexport async function turnEmail(fleet: string, isOn: boolean): Promise<ActionOutcome<undefined>> {\n return attempt(fleet, async (api) => {\n await api.people.turnEmail.mutate({ isOn });\n return undefined;\n });\n}\n\n/** Turns web push on for the browser that subscribed (wake a person, W8). */\nexport async function turnOnWebPush(fleet: string, subscription: SubscriptionInput): Promise<ActionOutcome<undefined>> {\n return attempt(fleet, async (api) => {\n await api.people.turnOnWebPush.mutate({ endpoint: subscription.endpoint, keys: { p256dh: subscription.keys.p256dh, auth: subscription.keys.auth }, browser: subscription.browser });\n return undefined;\n });\n}\n\n/** Removes a browser the person turned web push on in. */\nexport async function turnOffWebPush(fleet: string, endpoint: string): Promise<ActionOutcome<undefined>> {\n return attempt(fleet, async (api) => {\n await api.people.turnOffWebPush.mutate({ endpoint });\n return undefined;\n });\n}\n\n/** Unlinks the person's Slack account (gateway scopes 9.3). */\nexport async function unlinkSlack(fleet: string): Promise<ActionOutcome<undefined>> {\n return attempt(fleet, async (api) => {\n await api.slack.unlink.mutate();\n return undefined;\n });\n}\n\n/** Turns Show everything that waits in Slack on or off (gateway scopes 9.6, B5). */\nexport async function showAllInSlack(fleet: string, isOn: boolean): Promise<ActionOutcome<undefined>> {\n return attempt(fleet, async (api) => {\n await api.slack.showAll.mutate({ isOn });\n return undefined;\n });\n}\n\n/** Decides a request; approving names the proxy ship, its owner and its scopes, messages:send and messages:receive always among them. */\nexport async function decideRequest({ fleet, requestId, input }: { fleet: string; requestId: string; input: DecisionInput }): Promise<ActionOutcome<undefined>> {\n if (input.kind === 'deny') {\n return attempt(fleet, async (api) => {\n await api.requests.decide.mutate({ requestId, decision: { kind: 'deny' } });\n return undefined;\n });\n }\n const ownerShipId = idSchema('ship').safeParse(input.ownerShipId.trim());\n if (!ownerShipId.success) {\n return { isOk: false, message: \"The owner's ship id is not a ship id (shp_...)\" };\n }\n const party = { name: input.name, ownerShipId: ownerShipId.data, scopes: [...new Set([...EVERY_APP_SHIP_SCOPES, ...input.scopes])] };\n const { server } = input;\n const credential = server === undefined ? undefined : serverCredentialOf(server);\n return attempt(fleet, async (api) => {\n await api.requests.decide.mutate({ requestId, decision: { kind: 'approve', party, ...(server === undefined || credential === undefined ? {} : { server: { credential, concurrencyLimit: server.concurrencyLimit } }) } });\n return undefined;\n });\n}\n","/**\n * A delivery that waits on a person, as the Overview shows it once opened,\n * and the answer its form sends: pure view logic, no React and no API client.\n */\nimport { ANSWER_CONTENT_TYPE, answerSchema, isQuestionContentType, questionSchema, type Question } from '@aeolus-fleet/common';\nimport type { inferRouterOutputs } from '@trpc/server';\n\nimport type { GatewayRouter } from '../../../../src/adapters/trpc/router.js';\n\n/** What waits on a person's own ship, as the API shows it. */\nexport type Inbox = inferRouterOutputs<GatewayRouter>['people']['inbox'];\n\n/** The channels that wake a person when something waits for their person ship, as the API shows them (wake a person, W8). */\nexport type WakeChannels = inferRouterOutputs<GatewayRouter>['people']['wakeChannels'];\n\n/** A delivery as the inbox lists it: by title only. */\nexport type InboxEntry = Inbox['deliveries'][number];\n\n/**\n * A delivery in focus: whole, as the person opened it or opened it again,\n * with its question when it is one.\n */\nexport interface FocusedDelivery {\n readonly deliveryId: string;\n readonly from: string;\n readonly title: string;\n readonly sentAt: string;\n readonly payload: string;\n readonly question: Question | undefined;\n /** The meeting it was contributed to or tells of, when it belongs to one. */\n readonly meetingId: string | undefined;\n}\n\n/** A question, when the delivery is one the fleet's question content type carries. */\nexport function questionOf(opened: { contentType: string; payload: string }): Question | undefined {\n if (!isQuestionContentType(opened.contentType)) {\n return undefined;\n }\n try {\n const question = questionSchema.safeParse(JSON.parse(opened.payload));\n return question.success ? question.data : undefined;\n } catch {\n return undefined;\n }\n}\n\n/** What the person sends: an option they tapped and a note, or a note alone. */\nexport interface AnswerInput {\n readonly questionId: string | undefined;\n readonly option: number | undefined;\n readonly note: string;\n}\n\n/** The answer a form sends: an option and a note, or a note alone, for a question; a note as plain text otherwise. */\nexport function answerOf(input: AnswerInput): { isOk: true; value: { contentType: string; payload: string } } | { isOk: false; message: string } {\n const note = input.note.trim();\n if (input.questionId === undefined) {\n return note === '' ? { isOk: false, message: 'Write your answer first' } : { isOk: true, value: { contentType: 'text/plain', payload: note } };\n }\n const answer = answerSchema.safeParse({ questionId: input.questionId, ...(input.option === undefined ? {} : { option: input.option }), ...(note === '' ? {} : { note }) });\n return answer.success ? { isOk: true, value: { contentType: ANSWER_CONTENT_TYPE, payload: JSON.stringify(answer.data) } } : { isOk: false, message: 'Tap an option, or write a note' };\n}\n"],"names":[],"mappings":"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","ignoreList":[0]}
@@ -1,3 +0,0 @@
1
- (()=>{"use strict";module.exports=[72839,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(5050);let e=(0,d.createServerReference)("40db6d8e8bf7bc28f18e2b6e6b883909a3fd918ba7",d.callServer,void 0,d.findSourceMapURL,"answerDelivery"),f=(0,d.createServerReference)("60e7ce47eb2d23df456a542903519b389ce1ca3d37",d.callServer,void 0,d.findSourceMapURL,"doneDelivery"),g=(0,d.createServerReference)("6076a2215296656c4d1a1b5812e97c6a902490be89",d.callServer,void 0,d.findSourceMapURL,"openDelivery");var h=a.i(1542),i=a.i(24229);function j({delivery:a,meetingHref:c,note:d,working:e,failure:f,onNoteChange:g,onAnswer:k,onDone:l,onBack:m}){let{question:n}=a,o=void 0!==e,p=n?.options.find(a=>a.key===n.pick.option);return(0,b.jsxs)("section",{"data-testid":"overview-delivery",className:"grid gap-3 rounded-lg border border-border bg-card p-6 text-card-foreground shadow-sm",children:[(0,b.jsxs)("span",{className:"text-caption text-muted-foreground",children:[a.from," · ",new Date(a.sentAt).toUTCString()]}),(0,b.jsx)("h2",{className:"text-heading font-semibold",children:n?.title??a.title}),void 0===c?null:(0,b.jsx)("a",{"data-testid":"overview-meeting",href:c,className:"inline-flex h-9 items-center justify-self-start rounded-md bg-primary px-4 text-primary-foreground hover:bg-primary-hover",children:"Go to the meeting"}),void 0===n?(0,b.jsx)("pre",{className:"whitespace-pre-wrap rounded-md bg-muted p-3 font-mono text-caption",children:a.payload}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"whitespace-pre-wrap",children:n.context}),(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:n.options.map(a=>(0,b.jsx)(h.f,{title:a.detail,variant:a.key===n.pick.option?"primary":"secondary",className:a.key===n.pick.option?"outline-2 outline-offset-2 outline-dashed outline-ring":"",isPending:e?.kind==="option"&&e.option===a.key,pendingLabel:"Sending...",disabled:o,onClick:()=>{k(a.key)},children:a.label},a.key))}),void 0===p?null:(0,b.jsxs)("p",{className:"text-muted-foreground",children:[p.label," is the pick of ",a.from,": ",n.pick.why]})]}),(0,b.jsxs)("label",{className:"grid gap-1",children:[(0,b.jsx)("span",{children:void 0===n?"Your answer":"Note"}),(0,b.jsx)("textarea",{"data-testid":"overview-note",rows:2,value:d,onChange:a=>{g(a.target.value)},placeholder:void 0===n?"":"Optional, sent with your answer",className:"rounded-md border border-input bg-background p-2"})]}),void 0===f?null:(0,b.jsx)(i.f,{message:f,isFailure:!0}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)(h.f,{"data-testid":"overview-answer",variant:void 0===n?"primary":"secondary",isPending:e?.kind==="note",pendingLabel:"Sending...",disabled:o,onClick:()=>{k(void 0)},children:void 0===n?"Answer":"Send the note alone"}),void 0===n?(0,b.jsx)(h.f,{"data-testid":"overview-done",isPending:e?.kind==="done",pendingLabel:"Marking done...",disabled:o,onClick:l,children:"Done"}):null,(0,b.jsx)("button",{type:"button",onClick:m,disabled:o,className:"inline-flex h-9 items-center rounded-md px-4 text-muted-foreground hover:bg-accent disabled:opacity-70",children:"Back to the inbox"})]})]})}function k({entry:a}){return(0,b.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col text-left",children:[(0,b.jsx)("span",{className:"truncate",children:a.title}),(0,b.jsxs)("span",{className:"text-caption text-muted-foreground",children:["from ",a.from]})]})}function l({waitingCount:a,waiting:c,opened:d,openingId:e,failure:f,onOpen:g}){return(0,b.jsxs)("div",{className:"grid gap-6",children:[0===c.length?null:(0,b.jsxs)("section",{className:"grid gap-2",children:[(0,b.jsxs)("h2",{className:"text-section font-semibold",children:["Next · ",a]}),c.map(a=>(0,b.jsxs)("div",{className:"grid min-w-0 gap-2 rounded-md border border-border bg-card p-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,b.jsx)(k,{entry:a}),(0,b.jsx)(h.f,{"data-testid":"overview-open",isPending:e===a.deliveryId,pendingLabel:"Opening...",disabled:void 0!==e,onClick:()=>{g(a)},children:"Open"})]}),f?.deliveryId===a.deliveryId?(0,b.jsx)(i.f,{message:f.message,isFailure:!0}):null]},a.deliveryId))]}),0===d.length?null:(0,b.jsxs)("section",{className:"grid gap-2",children:[(0,b.jsxs)("h2",{className:"text-section font-semibold",children:["Opened, not yet dealt with · ",d.length]}),d.map(a=>(0,b.jsxs)("div",{className:"grid min-w-0 gap-2 rounded-md border border-border bg-card p-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,b.jsx)(k,{entry:a}),(0,b.jsx)(h.f,{"data-testid":"overview-deal",isPending:e===a.deliveryId,pendingLabel:"Opening...",disabled:void 0!==e,onClick:()=>{g(a)},children:"Answer or be done"})]}),f?.deliveryId===a.deliveryId?(0,b.jsx)(i.f,{message:f.message,isFailure:!0}):null]},a.deliveryId))]})]})}a.s(["InboxPanel",0,function({fleetId:a,inbox:d}){let[h,k]=(0,c.useState)(),[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(),[q,r]=(0,c.useState)(),[s,t]=(0,c.useState)(),[u,v]=(0,c.useState)(),[w,x]=(0,c.useState)(),[,y]=(0,c.useTransition)(),z=({control:a,action:b,said:c})=>{r(a),v(void 0),y(async()=>{let a=await b();r(void 0),a.isOk?(k(void 0),x(c)):v(a.message)})};if(void 0!==h){var A;let c;return(0,b.jsx)(j,{delivery:h,meetingHref:void 0===h.meetingId?void 0:(c=new URLSearchParams({fleet:(A={fleetId:a,meetingId:h.meetingId}).fleetId,...void 0===A.cursor?{}:{cursor:A.cursor}}),`/meetings/${encodeURIComponent(A.meetingId)}?${c.toString()}`),note:m,working:q,failure:u,onNoteChange:n,onAnswer:b=>{z({control:void 0===b?{kind:"note"}:{kind:"option",option:b},action:()=>e({fleet:a,deliveryId:h.deliveryId,input:{questionId:h.question?.id,option:b,note:m}}),said:`Your answer went to ${h.from}.`})},onDone:()=>{z({control:{kind:"done"},action:()=>f(a,h.deliveryId),said:`Done with “${h.title}”.`})},onBack:()=>{k(void 0)}})}return(0,b.jsxs)("div",{className:"grid gap-4",children:[void 0===w?null:(0,b.jsx)(i.f,{message:w,isFailure:!1}),(0,b.jsx)(l,{waitingCount:d.waiting,waiting:d.deliveries,opened:d.opened,openingId:o,failure:s,onOpen:b=>{p(b.deliveryId),t(void 0),x(void 0),y(async()=>{let c=await g(a,b.deliveryId);(p(void 0),c.isOk)?(k(c.value),n(""),v(void 0),x(void 0)):t({deliveryId:b.deliveryId,message:c.message})})}})]})}],72839)},27383,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(5050);let e=(0,d.createServerReference)("601910062a5e0864a2917cd809b6f8accb362b46d1",d.callServer,void 0,d.findSourceMapURL,"showAllInSlack"),f=(0,d.createServerReference)("40bda0ff816df122642777c895d7e4a5c52172f56a",d.callServer,void 0,d.findSourceMapURL,"unlinkSlack");var g=a.i(1542),h=a.i(24229);a.s(["SlackLinkPanel",0,function({fleetId:a,slackLink:d}){let[i,j]=(0,c.useTransition)(),[k,l]=(0,c.useTransition)(),[m,n]=(0,c.useState)(),{workspaceName:o,link:p}=d;return(0,b.jsxs)("section",{className:"grid gap-2","aria-labelledby":"overview-slack-heading",children:[(0,b.jsx)("h2",{id:"overview-slack-heading",className:"text-section font-semibold",children:"Slack"}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3 rounded-md border border-border bg-card p-3",children:[(0,b.jsx)("span",{"data-testid":"overview-slack-state",className:"min-w-0 flex-1",children:null===p?`Not linked in ${o}`:`Slack linked as @${p.slackName} in ${o}`}),null===p?(0,b.jsx)("a",{href:`/slack/link?${new URLSearchParams({fleet:a}).toString()}`,"data-testid":"overview-slack-link",className:"inline-flex h-9 items-center rounded-md bg-primary px-4 text-primary-foreground hover:bg-primary-hover",children:"Link Slack"}):(0,b.jsx)(g.f,{"data-testid":"overview-slack-unlink",isPending:i,pendingLabel:"Unlinking...",onClick:()=>{n(void 0),j(async()=>{let b=await f(a);b.isOk||n(b.message)})},children:"Unlink"})]}),null===p?null:(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3 rounded-md border border-border bg-card p-3",children:[(0,b.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col",children:[(0,b.jsx)("span",{children:"Show everything that waits in Slack"}),(0,b.jsx)("span",{"data-testid":"overview-slack-show-all-state",className:"text-caption text-muted-foreground",children:p.isShowingAll?"On: every ship's messages show in Slack, the ones from ships that are not bots through the fleet's own bot.":"Off: only the bots' messages show in Slack."})]}),(0,b.jsx)(g.f,{"data-testid":"overview-slack-show-all",isPending:k,pendingLabel:p.isShowingAll?"Turning off...":"Turning on...",onClick:()=>{var b;b=!p.isShowingAll,n(void 0),l(async()=>{let c=await e(a,b);c.isOk||n(c.message)})},children:p.isShowingAll?"Turn off":"Turn on"})]}),void 0===m?null:(0,b.jsx)(h.f,{message:m,isFailure:!0})]})}],27383)},50850,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(5050);let e=(0,d.createServerReference)("601b65024ccb7fc33018510433a7610daeebdbdb3d",d.callServer,void 0,d.findSourceMapURL,"turnEmail");var f=a.i(1542),g=a.i(24229);let h=(0,d.createServerReference)("607887cbdee422db6a9cda69ee2c54629879fb2510",d.callServer,void 0,d.findSourceMapURL,"turnOffWebPush"),i=(0,d.createServerReference)("6099ca5bb6c962ad51b5b316d713691acae0b2e746",d.callServer,void 0,d.findSourceMapURL,"turnOnWebPush"),j=[[/Edg\//,"Edge"],[/Firefox\//,"Firefox"],[/Chrome\//,"Chrome"],[/Safari\//,"Safari"]],k=[[/iPhone|iPad/,"iOS"],[/Android/,"Android"],[/Mac OS X/,"macOS"],[/Windows/,"Windows"],[/Linux/,"Linux"]],l=(a,b)=>b.find(([b])=>b.test(a))?.[1],m="/wake-worker.js";async function n(){let a=await navigator.serviceWorker.getRegistration(m);return await a?.pushManager.getSubscription()??null}async function o(a){let b;if(await Notification.requestPermission()!=="granted")return{isOk:!1,message:"Your browser did not allow notifications from this site: allow them, then turn web push on again"};let c=await navigator.serviceWorker.register(m);return await navigator.serviceWorker.ready,{isOk:!0,value:await c.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:(b=atob(a.replaceAll("-","+").replaceAll("_","/")),Uint8Array.from(b,a=>a.charCodeAt(0)))})}}function p({fleetId:a,webPushKey:d,browsers:e}){let[m,q]=(0,c.useState)(!0),[r,s]=(0,c.useState)(),[t,u]=(0,c.useState)(),[v,w]=(0,c.useState)(),[,x]=(0,c.useTransition)();(0,c.useEffect)(()=>{"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window?n().then(a=>{s(a?.endpoint)}):q(!1)},[]);let y=void 0!==r&&e.some(({endpoint:a,isGone:b})=>a===r&&!b);return(0,b.jsxs)("div",{className:"grid gap-2","data-testid":"overview-wake-web-push",children:[e.map(({endpoint:c,browser:d,addedAt:e,isGone:g})=>(0,b.jsxs)("div",{className:"flex items-center gap-3 rounded-md border border-border bg-card p-3",children:[(0,b.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col",children:[(0,b.jsxs)("span",{className:"truncate",children:["Web push in ",d,c===r?" · this browser":""]}),(0,b.jsx)("span",{className:"text-caption text-muted-foreground",children:g?"No longer takes wakes: its push service ended them. Turn web push on again in that browser, or remove it.":`On since ${new Date(e).toLocaleDateString()}: it tells you when something waits in this fleet, with a link here. Never what waits.`})]}),(0,b.jsx)(f.f,{"data-testid":"overview-web-push-remove",isPending:t===c,pendingLabel:"Removing...",disabled:void 0!==t,onClick:()=>{u(c),w(void 0),x(async()=>{c===r&&(await (await n())?.unsubscribe(),s(void 0));let b=await h(a,c);u(void 0),b.isOk||w(b.message)})},children:"Remove"})]},c)),m?y?null:(0,b.jsx)("div",{children:(0,b.jsx)(f.f,{"data-testid":"overview-web-push-on",variant:"primary",isPending:"on"===t,pendingLabel:"Turning on...",disabled:void 0!==t,onClick:()=>{u("on"),w(void 0),x(async()=>{try{var b;let c,e,f=await o(d);if(!f.isOk)return void w(f.message);let g=function(a,b){let{endpoint:c,keys:d}=a,e=d?.p256dh,f=d?.auth;return void 0===c||void 0===e||void 0===f?void 0:{endpoint:c,keys:{p256dh:e,auth:f},browser:b}}(f.value.toJSON(),(b=navigator.userAgent,c=l(b,j),e=l(b,k),void 0===c?"A browser":void 0===e?c:`${c} on ${e}`));if(void 0===g)return void w("Your browser gave no push subscription: try again");let h=await i(a,g);h.isOk?s(g.endpoint):w(h.message)}catch{w("Your browser could not turn web push on: try again")}finally{u(void 0)}})},children:"Turn on web push in this browser"})}):(0,b.jsx)("p",{className:"text-caption text-muted-foreground",children:"This browser takes no web push."}),void 0===v?null:(0,b.jsx)(g.f,{message:v,isFailure:!0})]})}a.s(["WakePanel",0,function({fleetId:a,channels:d}){let[h,i]=(0,c.useTransition)(),[j,k]=(0,c.useState)(),{email:l,webPush:m}=d;return l.isOffered||null!==m.publicKey?(0,b.jsxs)("section",{className:"grid gap-2","aria-labelledby":"overview-wake-heading",children:[(0,b.jsx)("h2",{id:"overview-wake-heading",className:"text-section font-semibold",children:"When something waits"}),l.isOffered?(0,b.jsxs)("div",{className:"flex items-center gap-3 rounded-md border border-border bg-card p-3",children:[(0,b.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col",children:[(0,b.jsx)("span",{children:"Email"}),(0,b.jsx)("span",{"data-testid":"overview-wake-email-state",className:"text-caption text-muted-foreground",children:l.isOn?"On: you get an email when something waits for you in this fleet, with a link here. Never what waits.":"Off: nothing tells you when something waits while you are away."})]}),(0,b.jsx)(f.f,{"data-testid":"overview-wake-email",isPending:h,pendingLabel:l.isOn?"Turning off...":"Turning on...",onClick:()=>{var b;b=!l.isOn,k(void 0),i(async()=>{let c=await e(a,b);c.isOk||k(c.message)})},children:l.isOn?"Turn off":"Turn on"})]}):null,void 0===j?null:(0,b.jsx)(g.f,{message:j,isFailure:!0}),null===m.publicKey?null:(0,b.jsx)(p,{fleetId:a,webPushKey:m.publicKey,browsers:m.browsers})]}):null}],50850)}]})();
2
-
3
- //# sourceMappingURL=web_features_overview_state_00l0wkgvv9y6j._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../web/features/overview/state/inbox-panel.tsx","../../../../../web/features/meeting/paths.ts","../../../../../web/features/overview/hooks/data%3A2ccc5b%20%3Ctext/javascript%3E","../../../../../web/features/overview/hooks/data%3Af5fbac%20%3Ctext/javascript%3E","../../../../../web/features/overview/hooks/data%3A3a390d%20%3Ctext/javascript%3E","../../../../../web/features/overview/ui/delivery-card.tsx","../../../../../web/features/overview/ui/inbox-list.tsx","../../../../../web/features/overview/state/slack-link-panel.tsx","../../../../../web/features/overview/hooks/data%3A3ec028%20%3Ctext/javascript%3E","../../../../../web/features/overview/hooks/data%3Aa67093%20%3Ctext/javascript%3E","../../../../../web/features/overview/hooks/slack-link-path.ts","../../../../../web/features/overview/state/wake-panel.tsx","../../../../../web/features/overview/hooks/data%3A7e50dc%20%3Ctext/javascript%3E","../../../../../web/features/overview/hooks/data%3A746794%20%3Ctext/javascript%3E","../../../../../web/features/overview/hooks/data%3A3b084c%20%3Ctext/javascript%3E","../../../../../web/features/overview/services/web-push.ts","../../../../../web/features/overview/state/web-push-panel.tsx"],"sourcesContent":["'use client';\n\nimport { useState, useTransition } from 'react';\n\nimport { meetingPathOf } from '../../meeting/paths';\nimport { answerDelivery, doneDelivery, openDelivery, type ActionOutcome } from '../hooks/overview-actions';\nimport type { FocusedDelivery, Inbox, InboxEntry } from '../services/deliveries';\nimport { DeliveryCard, type DeliveryControl } from '../ui/delivery-card';\nimport { InboxList } from '../ui/inbox-list';\nimport { Notice } from '../ui/notice';\n\n/**\n * The person's inbox with one delivery in focus at a time. Opening is their\n * own act, so it is a press, never a link: the gateway acknowledges the\n * delivery for them, and it is shown whole. One they opened before opens\n * again whole, as the fleet reads it again (aeolus-fleet #1046), so the way\n * to its meeting stays. Answering or being done says so in place, and the\n * inbox reads itself again.\n */\nexport function InboxPanel({ fleetId, inbox }: { fleetId: string; inbox: Inbox }) {\n const [focus, setFocus] = useState<FocusedDelivery | undefined>();\n const [note, setNote] = useState('');\n const [openingId, setOpeningId] = useState<string | undefined>();\n const [working, setWorking] = useState<DeliveryControl | undefined>();\n const [openFailure, setOpenFailure] = useState<{ deliveryId: string; message: string } | undefined>();\n const [failure, setFailure] = useState<string | undefined>();\n const [done, setDone] = useState<string | undefined>();\n const [, startTransition] = useTransition();\n\n const show = (delivery: FocusedDelivery) => {\n setFocus(delivery);\n setNote('');\n setFailure(undefined);\n setDone(undefined);\n };\n\n const open = (entry: InboxEntry) => {\n setOpeningId(entry.deliveryId);\n setOpenFailure(undefined);\n setDone(undefined);\n startTransition(async () => {\n const outcome = await openDelivery(fleetId, entry.deliveryId);\n setOpeningId(undefined);\n if (outcome.isOk) {\n show(outcome.value);\n } else {\n setOpenFailure({ deliveryId: entry.deliveryId, message: outcome.message });\n }\n });\n };\n\n const settle = ({ control, action, said }: { control: DeliveryControl; action: () => Promise<ActionOutcome<undefined>>; said: string }) => {\n setWorking(control);\n setFailure(undefined);\n startTransition(async () => {\n const outcome = await action();\n setWorking(undefined);\n if (outcome.isOk) {\n setFocus(undefined);\n setDone(said);\n } else {\n setFailure(outcome.message);\n }\n });\n };\n\n if (focus !== undefined) {\n return (\n <DeliveryCard\n delivery={focus}\n meetingHref={focus.meetingId === undefined ? undefined : meetingPathOf({ fleetId, meetingId: focus.meetingId })}\n note={note}\n working={working}\n failure={failure}\n onNoteChange={setNote}\n onAnswer={(option) => { settle({ control: option === undefined ? { kind: 'note' } : { kind: 'option', option }, action: () => answerDelivery({ fleet: fleetId, deliveryId: focus.deliveryId, input: { questionId: focus.question?.id, option, note } }), said: `Your answer went to ${focus.from}.` }); }\n }\n onDone={() => { settle({ control: { kind: 'done' }, action: () => doneDelivery(fleetId, focus.deliveryId), said: `Done with “${focus.title}”.` }); }}\n onBack={() => { setFocus(undefined); }}\n />\n );\n }\n return (\n <div className=\"grid gap-4\">\n {done === undefined ? null : <Notice message={done} isFailure={false} />}\n <InboxList\n waitingCount={inbox.waiting}\n waiting={inbox.deliveries}\n opened={inbox.opened}\n openingId={openingId}\n failure={openFailure}\n onOpen={open}\n />\n </div>\n );\n}\n","/** Where a meeting's page is, for server and client code alike. */\n\n/** The meeting page's address, before the meeting's id. */\nexport const MEETINGS_PATH = '/meetings';\n\n/** The address of a meeting's page in a fleet, at the page of contributions after the cursor, if one is given. */\nexport function meetingPathOf(meeting: { fleetId: string; meetingId: string; cursor?: string }): string {\n const query = new URLSearchParams({ fleet: meeting.fleetId, ...(meeting.cursor === undefined ? {} : { cursor: meeting.cursor }) });\n return `${MEETINGS_PATH}/${encodeURIComponent(meeting.meetingId)}?${query.toString()}`;\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"40db6d8e8bf7bc28f18e2b6e6b883909a3fd918ba7\":{\"name\":\"answerDelivery\"}},\"web/features/overview/hooks/overview-actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_1=/*#__PURE__*/createServerReference(\"40db6d8e8bf7bc28f18e2b6e6b883909a3fd918ba7\",callServer,void 0,findSourceMapURL,\"answerDelivery\");export{$$RSC_SERVER_ACTION_1 as answerDelivery};","/* __next_internal_action_entry_do_not_use__ [{\"60e7ce47eb2d23df456a542903519b389ce1ca3d37\":{\"name\":\"doneDelivery\"}},\"web/features/overview/hooks/overview-actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_2=/*#__PURE__*/createServerReference(\"60e7ce47eb2d23df456a542903519b389ce1ca3d37\",callServer,void 0,findSourceMapURL,\"doneDelivery\");export{$$RSC_SERVER_ACTION_2 as doneDelivery};","/* __next_internal_action_entry_do_not_use__ [{\"6076a2215296656c4d1a1b5812e97c6a902490be89\":{\"name\":\"openDelivery\"}},\"web/features/overview/hooks/overview-actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"6076a2215296656c4d1a1b5812e97c6a902490be89\",callServer,void 0,findSourceMapURL,\"openDelivery\");export{$$RSC_SERVER_ACTION_0 as openDelivery};","import type { FocusedDelivery } from '../services/deliveries';\nimport { ActionButton } from './action-button';\nimport { Notice } from './notice';\n\n/** Which of the card's controls is working: an option of the question, the note alone, or done. */\nexport type DeliveryControl = { kind: 'option'; option: number } | { kind: 'note' } | { kind: 'done' };\n\n/**\n * One delivery in focus (design B, Signal). A question is answered with one\n * tap on a button that names the option it sends, the asker's pick on a\n * dashed edge; any delivery may get a note as its answer, and a message may\n * be done with; one of a meeting leads to the meeting.\n */\nexport function DeliveryCard({\n delivery,\n meetingHref,\n note,\n working,\n failure,\n onNoteChange,\n onAnswer,\n onDone,\n onBack,\n}: {\n delivery: FocusedDelivery;\n /** The page of the meeting it belongs to, if it belongs to one. */\n meetingHref: string | undefined;\n note: string;\n working: DeliveryControl | undefined;\n failure: string | undefined;\n onNoteChange: (note: string) => void;\n onAnswer: (option: number | undefined) => void;\n onDone: () => void;\n onBack: () => void;\n}) {\n const { question } = delivery;\n const isWorking = working !== undefined;\n const picked = question?.options.find((option) => option.key === question.pick.option);\n return (\n <section data-testid=\"overview-delivery\" className=\"grid gap-3 rounded-lg border border-border bg-card p-6 text-card-foreground shadow-sm\">\n <span className=\"text-caption text-muted-foreground\">\n {delivery.from} · {new Date(delivery.sentAt).toUTCString()}\n </span>\n <h2 className=\"text-heading font-semibold\">{question?.title ?? delivery.title}</h2>\n {meetingHref === undefined ? null : (\n <a data-testid=\"overview-meeting\" href={meetingHref} className=\"inline-flex h-9 items-center justify-self-start rounded-md bg-primary px-4 text-primary-foreground hover:bg-primary-hover\">\n Go to the meeting\n </a>\n )}\n {question === undefined ? (\n <pre className=\"whitespace-pre-wrap rounded-md bg-muted p-3 font-mono text-caption\">{delivery.payload}</pre>\n ) : (\n <>\n <p className=\"whitespace-pre-wrap\">{question.context}</p>\n <div className=\"flex flex-wrap gap-2\">\n {question.options.map((option) => (\n <ActionButton\n key={option.key}\n title={option.detail}\n variant={option.key === question.pick.option ? 'primary' : 'secondary'}\n className={option.key === question.pick.option ? 'outline-2 outline-offset-2 outline-dashed outline-ring' : ''}\n isPending={working?.kind === 'option' && working.option === option.key}\n pendingLabel=\"Sending...\"\n disabled={isWorking}\n onClick={() => { onAnswer(option.key); }}\n >\n {option.label}\n </ActionButton>\n ))}\n </div>\n {picked === undefined ? null : (\n <p className=\"text-muted-foreground\">\n {picked.label} is the pick of {delivery.from}: {question.pick.why}\n </p>\n )}\n </>\n )}\n <label className=\"grid gap-1\">\n <span>{question === undefined ? 'Your answer' : 'Note'}</span>\n <textarea\n data-testid=\"overview-note\"\n rows={2}\n value={note}\n onChange={(event) => { onNoteChange(event.target.value); }}\n placeholder={question === undefined ? '' : 'Optional, sent with your answer'}\n className=\"rounded-md border border-input bg-background p-2\"\n />\n </label>\n {failure === undefined ? null : <Notice message={failure} isFailure />}\n <div className=\"flex flex-wrap gap-2\">\n <ActionButton data-testid=\"overview-answer\" variant={question === undefined ? 'primary' : 'secondary'} isPending={working?.kind === 'note'} pendingLabel=\"Sending...\" disabled={isWorking} onClick={() => { onAnswer(undefined); }}>\n {question === undefined ? 'Answer' : 'Send the note alone'}\n </ActionButton>\n {question === undefined ? (\n <ActionButton data-testid=\"overview-done\" isPending={working?.kind === 'done'} pendingLabel=\"Marking done...\" disabled={isWorking} onClick={onDone}>\n Done\n </ActionButton>\n ) : null}\n <button type=\"button\" onClick={onBack} disabled={isWorking} className=\"inline-flex h-9 items-center rounded-md px-4 text-muted-foreground hover:bg-accent disabled:opacity-70\">\n Back to the inbox\n </button>\n </div>\n </section>\n );\n}\n","import type { InboxEntry } from '../services/deliveries';\nimport { ActionButton } from './action-button';\nimport { Notice } from './notice';\n\nfunction EntryText({ entry }: { entry: InboxEntry }) {\n return (\n <span className=\"flex min-w-0 flex-1 flex-col text-left\">\n <span className=\"truncate\">{entry.title}</span>\n <span className=\"text-caption text-muted-foreground\">from {entry.from}</span>\n </span>\n );\n}\n\n/**\n * The person's inbox in two groups (aeolus-fleet #1046): what waits, which\n * they open one at a time, and what they opened and have not answered or\n * been done with yet, which opens again. A failure to open says why by the\n * delivery.\n */\nexport function InboxList({\n waitingCount,\n waiting,\n opened,\n openingId,\n failure,\n onOpen,\n}: {\n waitingCount: number;\n waiting: readonly InboxEntry[];\n opened: readonly InboxEntry[];\n openingId: string | undefined;\n failure: { deliveryId: string; message: string } | undefined;\n onOpen: (entry: InboxEntry) => void;\n}) {\n return (\n <div className=\"grid gap-6\">\n {waiting.length === 0 ? null : (\n <section className=\"grid gap-2\">\n <h2 className=\"text-section font-semibold\">Next · {waitingCount}</h2>\n {waiting.map((entry) => (\n <div key={entry.deliveryId} className=\"grid min-w-0 gap-2 rounded-md border border-border bg-card p-3\">\n <div className=\"flex min-w-0 items-center gap-3\">\n <EntryText entry={entry} />\n <ActionButton data-testid=\"overview-open\" isPending={openingId === entry.deliveryId} pendingLabel=\"Opening...\" disabled={openingId !== undefined} onClick={() => { onOpen(entry); }}>\n Open\n </ActionButton>\n </div>\n {failure?.deliveryId === entry.deliveryId ? <Notice message={failure.message} isFailure /> : null}\n </div>\n ))}\n </section>\n )}\n {opened.length === 0 ? null : (\n <section className=\"grid gap-2\">\n <h2 className=\"text-section font-semibold\">Opened, not yet dealt with · {opened.length}</h2>\n {opened.map((entry) => (\n <div key={entry.deliveryId} className=\"grid min-w-0 gap-2 rounded-md border border-border bg-card p-3\">\n <div className=\"flex min-w-0 items-center gap-3\">\n <EntryText entry={entry} />\n <ActionButton data-testid=\"overview-deal\" isPending={openingId === entry.deliveryId} pendingLabel=\"Opening...\" disabled={openingId !== undefined} onClick={() => { onOpen(entry); }}>\n Answer or be done\n </ActionButton>\n </div>\n {failure?.deliveryId === entry.deliveryId ? <Notice message={failure.message} isFailure /> : null}\n </div>\n ))}\n </section>\n )}\n </div>\n );\n}\n","'use client';\n\nimport { useState, useTransition } from 'react';\n\nimport { showAllInSlack, unlinkSlack } from '../hooks/overview-actions';\nimport type { SlackLink } from '../hooks/read-overview';\nimport { SLACK_LINK_PATH } from '../hooks/slack-link-path';\nimport { ActionButton } from '../ui/action-button';\nimport { Notice } from '../ui/notice';\n\n/**\n * The person's Slack link (gateway scopes 9.3, 9.6): \"Slack linked as\n * @mathilde in Acme\" with Unlink, or Link Slack, which signs in with Slack.\n * Linked, the person talks to the fleet's bots in Slack, and sees a bot\n * ship's messages there; the switch Show everything that waits in Slack,\n * off until turned on, shows the other ships' messages there too (B5).\n */\nexport function SlackLinkPanel({ fleetId, slackLink }: { fleetId: string; slackLink: SlackLink }) {\n const [isUnlinking, startTransition] = useTransition();\n const [isTurning, startTurning] = useTransition();\n const [failure, setFailure] = useState<string | undefined>();\n const { workspaceName, link } = slackLink;\n\n const unlink = () => {\n setFailure(undefined);\n startTransition(async () => {\n const outcome = await unlinkSlack(fleetId);\n if (!outcome.isOk) {\n setFailure(outcome.message);\n }\n });\n };\n\n const turn = (isOn: boolean) => {\n setFailure(undefined);\n startTurning(async () => {\n const outcome = await showAllInSlack(fleetId, isOn);\n if (!outcome.isOk) {\n setFailure(outcome.message);\n }\n });\n };\n\n return (\n <section className=\"grid gap-2\" aria-labelledby=\"overview-slack-heading\">\n <h2 id=\"overview-slack-heading\" className=\"text-section font-semibold\">\n Slack\n </h2>\n <div className=\"flex flex-wrap items-center gap-3 rounded-md border border-border bg-card p-3\">\n <span data-testid=\"overview-slack-state\" className=\"min-w-0 flex-1\">\n {link === null ? `Not linked in ${workspaceName}` : `Slack linked as @${link.slackName} in ${workspaceName}`}\n </span>\n {link === null ? (\n <a\n href={`${SLACK_LINK_PATH}?${new URLSearchParams({ fleet: fleetId }).toString()}`}\n data-testid=\"overview-slack-link\"\n className=\"inline-flex h-9 items-center rounded-md bg-primary px-4 text-primary-foreground hover:bg-primary-hover\"\n >\n Link Slack\n </a>\n ) : (\n <ActionButton data-testid=\"overview-slack-unlink\" isPending={isUnlinking} pendingLabel=\"Unlinking...\" onClick={unlink}>\n Unlink\n </ActionButton>\n )}\n </div>\n {link === null ? null : (\n <div className=\"flex flex-wrap items-center gap-3 rounded-md border border-border bg-card p-3\">\n <span className=\"flex min-w-0 flex-1 flex-col\">\n <span>Show everything that waits in Slack</span>\n <span data-testid=\"overview-slack-show-all-state\" className=\"text-caption text-muted-foreground\">\n {link.isShowingAll ? \"On: every ship's messages show in Slack, the ones from ships that are not bots through the fleet's own bot.\" : \"Off: only the bots' messages show in Slack.\"}\n </span>\n </span>\n <ActionButton data-testid=\"overview-slack-show-all\" isPending={isTurning} pendingLabel={link.isShowingAll ? 'Turning off...' : 'Turning on...'} onClick={() => { turn(!link.isShowingAll); }}>\n {link.isShowingAll ? 'Turn off' : 'Turn on'}\n </ActionButton>\n </div>\n )}\n {failure === undefined ? null : <Notice message={failure} isFailure />}\n </section>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"601910062a5e0864a2917cd809b6f8accb362b46d1\":{\"name\":\"showAllInSlack\"}},\"web/features/overview/hooks/overview-actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_7=/*#__PURE__*/createServerReference(\"601910062a5e0864a2917cd809b6f8accb362b46d1\",callServer,void 0,findSourceMapURL,\"showAllInSlack\");export{$$RSC_SERVER_ACTION_7 as showAllInSlack};","/* __next_internal_action_entry_do_not_use__ [{\"40bda0ff816df122642777c895d7e4a5c52172f56a\":{\"name\":\"unlinkSlack\"}},\"web/features/overview/hooks/overview-actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_6=/*#__PURE__*/createServerReference(\"40bda0ff816df122642777c895d7e4a5c52172f56a\",callServer,void 0,findSourceMapURL,\"unlinkSlack\");export{$$RSC_SERVER_ACTION_6 as unlinkSlack};","/** Where Link Slack starts (gateway scopes 9.3): the Overview's button and the button in a bot's answer in Slack (src/core/slack/take-slack-event.ts). */\nexport const SLACK_LINK_PATH = '/slack/link';\n","'use client';\n\nimport { useState, useTransition } from 'react';\n\nimport { turnEmail } from '../hooks/overview-actions';\nimport type { WakeChannels } from '../services/deliveries';\nimport { ActionButton } from '../ui/action-button';\nimport { Notice } from '../ui/notice';\nimport { WebPushPanel } from './web-push-panel';\n\n/**\n * Where the person turns on the channels that wake them when something\n * waits for their person ship while they are away (wake a person, W8):\n * email, where the gateway sends it, and web push per browser, where it\n * holds push keys. Nothing is on by default. The wake says only that\n * something waits in the fleet, with a link here. While a page of theirs\n * here is in focus, it shows what arrives and no wake goes out (W6).\n */\nexport function WakePanel({ fleetId, channels }: { fleetId: string; channels: WakeChannels }) {\n const [isTurning, startTransition] = useTransition();\n const [failure, setFailure] = useState<string | undefined>();\n const { email, webPush } = channels;\n if (!email.isOffered && webPush.publicKey === null) {\n return null;\n }\n\n const turn = (isOn: boolean) => {\n setFailure(undefined);\n startTransition(async () => {\n const outcome = await turnEmail(fleetId, isOn);\n if (!outcome.isOk) {\n setFailure(outcome.message);\n }\n });\n };\n\n return (\n <section className=\"grid gap-2\" aria-labelledby=\"overview-wake-heading\">\n <h2 id=\"overview-wake-heading\" className=\"text-section font-semibold\">\n When something waits\n </h2>\n {!email.isOffered ? null : (\n <div className=\"flex items-center gap-3 rounded-md border border-border bg-card p-3\">\n <span className=\"flex min-w-0 flex-1 flex-col\">\n <span>Email</span>\n <span data-testid=\"overview-wake-email-state\" className=\"text-caption text-muted-foreground\">\n {email.isOn ? 'On: you get an email when something waits for you in this fleet, with a link here. Never what waits.' : 'Off: nothing tells you when something waits while you are away.'}\n </span>\n </span>\n <ActionButton data-testid=\"overview-wake-email\" isPending={isTurning} pendingLabel={email.isOn ? 'Turning off...' : 'Turning on...'} onClick={() => { turn(!email.isOn); }}>\n {email.isOn ? 'Turn off' : 'Turn on'}\n </ActionButton>\n </div>\n )}\n {failure === undefined ? null : <Notice message={failure} isFailure />}\n {webPush.publicKey === null ? null : <WebPushPanel fleetId={fleetId} webPushKey={webPush.publicKey} browsers={webPush.browsers} />}\n </section>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"601b65024ccb7fc33018510433a7610daeebdbdb3d\":{\"name\":\"turnEmail\"}},\"web/features/overview/hooks/overview-actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_3=/*#__PURE__*/createServerReference(\"601b65024ccb7fc33018510433a7610daeebdbdb3d\",callServer,void 0,findSourceMapURL,\"turnEmail\");export{$$RSC_SERVER_ACTION_3 as turnEmail};","/* __next_internal_action_entry_do_not_use__ [{\"607887cbdee422db6a9cda69ee2c54629879fb2510\":{\"name\":\"turnOffWebPush\"}},\"web/features/overview/hooks/overview-actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_5=/*#__PURE__*/createServerReference(\"607887cbdee422db6a9cda69ee2c54629879fb2510\",callServer,void 0,findSourceMapURL,\"turnOffWebPush\");export{$$RSC_SERVER_ACTION_5 as turnOffWebPush};","/* __next_internal_action_entry_do_not_use__ [{\"6099ca5bb6c962ad51b5b316d713691acae0b2e746\":{\"name\":\"turnOnWebPush\"}},\"web/features/overview/hooks/overview-actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_4=/*#__PURE__*/createServerReference(\"6099ca5bb6c962ad51b5b316d713691acae0b2e746\",callServer,void 0,findSourceMapURL,\"turnOnWebPush\");export{$$RSC_SERVER_ACTION_4 as turnOnWebPush};","/**\n * What the overview's section of wakes works out in the browser (wake a\n * person, W8): the name a browser it turns web push on in is listed by, the\n * gateway's push key as the browser's push manager takes it, and the\n * subscription the browser sends the gateway.\n */\n\n/** A browser's push subscription as the gateway takes it, with the browser's name. */\nexport interface SubscriptionInput {\n readonly endpoint: string;\n readonly keys: { readonly p256dh: string; readonly auth: string };\n readonly browser: string;\n}\n\n/** The browsers and systems a name is made of, the first that matches counting: Edge and Chrome also say Safari, and Chrome says Chrome. */\nconst BROWSERS: readonly (readonly [RegExp, string])[] = [\n [/Edg\\//, 'Edge'],\n [/Firefox\\//, 'Firefox'],\n [/Chrome\\//, 'Chrome'],\n [/Safari\\//, 'Safari'],\n];\nconst SYSTEMS: readonly (readonly [RegExp, string])[] = [\n [/iPhone|iPad/, 'iOS'],\n [/Android/, 'Android'],\n [/Mac OS X/, 'macOS'],\n [/Windows/, 'Windows'],\n [/Linux/, 'Linux'],\n];\n\nconst firstOf = (userAgent: string, names: readonly (readonly [RegExp, string])[]): string | undefined => names.find(([pattern]) => pattern.test(userAgent))?.[1];\n\n/** The name a browser is listed by, such as Firefox on Linux, from its user agent. */\nexport function browserNameOf(userAgent: string): string {\n const browser = firstOf(userAgent, BROWSERS);\n const system = firstOf(userAgent, SYSTEMS);\n if (browser === undefined) {\n return 'A browser';\n }\n return system === undefined ? browser : `${browser} on ${system}`;\n}\n\n/** The bytes a base64url key stands for, as the browser's push manager takes the gateway's key. */\nexport function applicationServerKeyOf(key: string): Uint8Array<ArrayBuffer> {\n const binary = atob(key.replaceAll('-', '+').replaceAll('_', '/'));\n return Uint8Array.from(binary, (character) => character.charCodeAt(0));\n}\n\n/** The subscription to send, from the push manager's own, or none when it gave no endpoint or keys. */\nexport function subscriptionInputOf(subscription: { endpoint?: string; keys?: Record<string, string> }, browser: string): SubscriptionInput | undefined {\n const { endpoint, keys } = subscription;\n const p256dh = keys?.p256dh;\n const auth = keys?.auth;\n return endpoint === undefined || p256dh === undefined || auth === undefined ? undefined : { endpoint, keys: { p256dh, auth }, browser };\n}\n","'use client';\n\nimport { useEffect, useState, useTransition } from 'react';\n\nimport { turnOffWebPush, turnOnWebPush } from '../hooks/overview-actions';\nimport type { WakeChannels } from '../services/deliveries';\nimport { applicationServerKeyOf, browserNameOf, subscriptionInputOf } from '../services/web-push';\nimport { ActionButton } from '../ui/action-button';\nimport { Notice } from '../ui/notice';\n\n/** The service worker that shows a wake and opens the overview when it is pressed. */\nconst WORKER_PATH = '/wake-worker.js';\n\n/** Whether this browser takes web push at all. */\nfunction isPushTaken(): boolean {\n return 'serviceWorker' in navigator && 'PushManager' in window && 'Notification' in window;\n}\n\n/** This browser's own push subscription with the gateway's worker, if it has one. */\nasync function ownSubscription(): Promise<PushSubscription | null> {\n const registration = await navigator.serviceWorker.getRegistration(WORKER_PATH);\n return (await registration?.pushManager.getSubscription()) ?? null;\n}\n\n/** Asks the browser's permission, then subscribes it with the gateway's key: the subscription to send, or why there is none. */\nasync function subscribed(webPushKey: string): Promise<{ readonly isOk: true; readonly value: PushSubscription } | { readonly isOk: false; readonly message: string }> {\n if ((await Notification.requestPermission()) !== 'granted') {\n return { isOk: false, message: 'Your browser did not allow notifications from this site: allow them, then turn web push on again' };\n }\n const registration = await navigator.serviceWorker.register(WORKER_PATH);\n await navigator.serviceWorker.ready;\n return { isOk: true, value: await registration.pushManager.subscribe({ userVisibleOnly: true, applicationServerKey: applicationServerKeyOf(webPushKey) }) };\n}\n\n/**\n * Web push in the overview's section of wakes (wake a person, W8): the\n * person turns it on for this browser, which asks the browser's permission\n * first, sees the browsers they turned it on in, and removes one. Nothing is\n * on until they turn it on. A browser whose push service ended its\n * subscription is said to be gone.\n */\nexport function WebPushPanel({ fleetId, webPushKey, browsers }: { fleetId: string; webPushKey: string; browsers: WakeChannels['webPush']['browsers'] }) {\n const [isTaken, setIsTaken] = useState(true);\n const [ownEndpoint, setOwnEndpoint] = useState<string | undefined>();\n const [working, setWorking] = useState<string | undefined>();\n const [failure, setFailure] = useState<string | undefined>();\n const [, startTransition] = useTransition();\n\n useEffect(() => {\n if (!isPushTaken()) {\n setIsTaken(false);\n return;\n }\n void ownSubscription().then((own) => {\n setOwnEndpoint(own?.endpoint);\n });\n }, []);\n\n const turnOn = () => {\n setWorking('on');\n setFailure(undefined);\n startTransition(async () => {\n try {\n const subscription = await subscribed(webPushKey);\n if (!subscription.isOk) {\n setFailure(subscription.message);\n return;\n }\n const input = subscriptionInputOf(subscription.value.toJSON(), browserNameOf(navigator.userAgent));\n if (input === undefined) {\n setFailure('Your browser gave no push subscription: try again');\n return;\n }\n const outcome = await turnOnWebPush(fleetId, input);\n if (outcome.isOk) {\n setOwnEndpoint(input.endpoint);\n } else {\n setFailure(outcome.message);\n }\n } catch {\n setFailure('Your browser could not turn web push on: try again');\n } finally {\n setWorking(undefined);\n }\n });\n };\n\n const remove = (endpoint: string) => {\n setWorking(endpoint);\n setFailure(undefined);\n startTransition(async () => {\n if (endpoint === ownEndpoint) {\n await (await ownSubscription())?.unsubscribe();\n setOwnEndpoint(undefined);\n }\n const outcome = await turnOffWebPush(fleetId, endpoint);\n setWorking(undefined);\n if (!outcome.isOk) {\n setFailure(outcome.message);\n }\n });\n };\n\n const isOwnOn = ownEndpoint !== undefined && browsers.some(({ endpoint, isGone }) => endpoint === ownEndpoint && !isGone);\n return (\n <div className=\"grid gap-2\" data-testid=\"overview-wake-web-push\">\n {browsers.map(({ endpoint, browser, addedAt, isGone }) => (\n <div key={endpoint} className=\"flex items-center gap-3 rounded-md border border-border bg-card p-3\">\n <span className=\"flex min-w-0 flex-1 flex-col\">\n <span className=\"truncate\">\n Web push in {browser}\n {endpoint === ownEndpoint ? ' · this browser' : ''}\n </span>\n <span className=\"text-caption text-muted-foreground\">\n {isGone ? 'No longer takes wakes: its push service ended them. Turn web push on again in that browser, or remove it.' : `On since ${new Date(addedAt).toLocaleDateString()}: it tells you when something waits in this fleet, with a link here. Never what waits.`}\n </span>\n </span>\n <ActionButton data-testid=\"overview-web-push-remove\" isPending={working === endpoint} pendingLabel=\"Removing...\" disabled={working !== undefined} onClick={() => { remove(endpoint); }}>\n Remove\n </ActionButton>\n </div>\n ))}\n {!isTaken ? (\n <p className=\"text-caption text-muted-foreground\">This browser takes no web push.</p>\n ) : isOwnOn ? null : (\n <div>\n <ActionButton data-testid=\"overview-web-push-on\" variant=\"primary\" isPending={working === 'on'} pendingLabel=\"Turning on...\" disabled={working !== undefined} onClick={turnOn}>\n Turn on web push in this browser\n </ActionButton>\n </div>\n )}\n {failure === undefined ? null : <Notice message={failure} isFailure />}\n </div>\n );\n}\n"],"names":["MEETINGS_PATH","meetingPathOf","meeting","query","URLSearchParams","fleet","fleetId","cursor","undefined","encodeURIComponent","meetingId","toString","$$RSC_SERVER_ACTION_7","$$RSC_SERVER_ACTION_3"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- module.exports=[91445,a=>{"use strict";var b=a.i(87924),c=a.i(50944),d=a.i(72131),e=a.i(5050);let f=(0,e.createServerReference)("408819c99996290b362a2ea4e8b39d342b6bf79c81",e.callServer,void 0,e.findSourceMapURL,"decideRequest");var g=a.i(51636),h=a.i(35149);let i=["messages:send","messages:receive"],j={"messages:send":"Send","messages:receive":"Receive","fleet:read":"Read the fleet"};var k=a.i(1542),l=a.i(24229);let m="rounded-md border border-input bg-background px-2 py-1.5";function n({scope:a,isLocked:c}){return(0,b.jsxs)("label",{className:"flex items-center gap-2",children:[c?(0,b.jsx)("input",{type:"checkbox",checked:!0,disabled:!0,"aria-label":j[a]??a}):(0,b.jsx)("input",{type:"checkbox",name:"scope",value:a,"aria-label":j[a]??a}),(0,b.jsx)("span",{children:j[a]??a}),(0,b.jsx)("span",{className:"font-mono text-caption text-muted-foreground",children:a}),c?(0,b.jsx)("span",{className:"text-caption text-muted-foreground",children:"(always)"}):null]})}function o(a,b){let c=a.get(b);return"string"==typeof c?c:""}function p({request:a,heldScopes:c,owners:e,working:f,failure:j,onDecide:q}){let[r,s]=(0,d.useState)("bearer"),t=function(a){switch(a.subject.kind){case"client":return a.subject.clientName;case"server":return URL.canParse(a.subject.url)?new URL(a.subject.url).host:a.subject.url}}(a),u="server"===a.subject.kind;return(0,b.jsxs)("section",{className:"grid gap-3 rounded-lg border border-border bg-card p-6 text-card-foreground shadow-sm",children:[(0,b.jsxs)("h2",{className:"text-heading font-semibold",children:["Approve ",t]}),(0,b.jsxs)("form",{onSubmit:a=>{a.preventDefault();let b=new FormData(a.currentTarget),c=b.getAll("scope").filter(a=>"string"==typeof a);q({kind:"approve",name:o(b,"name"),ownerShipId:o(b,"ownerShipId"),scopes:c,server:u?{credentialKind:(0,g.C)(o(b,"credentialKind")),token:o(b,"token"),clientId:o(b,"clientId"),clientSecret:o(b,"clientSecret"),issuer:o(b,"issuer"),scope:o(b,"scope-requested"),concurrencyLimit:Number(o(b,"concurrencyLimit"))}:void 0})},className:"grid gap-3",children:[(0,b.jsxs)("label",{className:"grid gap-1",children:[(0,b.jsx)("span",{children:"Proxy ship's name"}),(0,b.jsx)("input",{name:"name",defaultValue:t.toLowerCase().replaceAll(/[^a-z0-9]+/g,"-").replaceAll(/^-+|-+$/g,""),required:!0,className:m})]}),(0,b.jsx)(h.f,{choices:e.isOk?e.value:[],current:null,help:"A person ship or argo. It answers for this party.",refusal:e.isOk?void 0:e.refusal}),(0,b.jsxs)("fieldset",{className:"grid gap-1",children:[(0,b.jsx)("legend",{children:"Scopes"}),i.map(a=>(0,b.jsx)(n,{scope:a,isLocked:!0},a)),c.filter(a=>!i.includes(a)).map(a=>(0,b.jsx)(n,{scope:a,isLocked:!1},a))]}),u?(0,b.jsxs)("fieldset",{className:"grid gap-2",children:[(0,b.jsx)("legend",{children:"The server's credential"}),(0,b.jsxs)("label",{className:"grid gap-1",children:[(0,b.jsx)("span",{children:"Credential"}),(0,b.jsx)("select",{name:"credentialKind",value:r,onChange:a=>{s((0,g.C)(a.target.value))},className:m,children:g.x.map(({kind:a,label:c})=>(0,b.jsx)("option",{value:a,children:c},a))})]}),"none"===r?null:"bearer"===r?(0,b.jsxs)("label",{className:"grid gap-1",children:[(0,b.jsx)("span",{children:"Bearer token"}),(0,b.jsx)("input",{type:"password",name:"token",className:m})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("label",{className:"grid gap-1",children:[(0,b.jsx)("span",{children:"Client id"}),(0,b.jsx)("input",{name:"clientId",className:m})]}),(0,b.jsxs)("label",{className:"grid gap-1",children:[(0,b.jsx)("span",{children:"Client secret"}),(0,b.jsx)("input",{type:"password",name:"clientSecret",className:m})]}),(0,b.jsxs)("label",{className:"grid gap-1",children:[(0,b.jsx)("span",{children:"Issuer"}),(0,b.jsx)("input",{type:"url",name:"issuer",className:m})]}),(0,b.jsxs)("label",{className:"grid gap-1",children:[(0,b.jsx)("span",{children:"Scope"}),(0,b.jsx)("input",{name:"scope-requested",className:m})]})]}),(0,b.jsxs)("label",{className:"grid gap-1",children:[(0,b.jsx)("span",{children:"Calls at once"}),(0,b.jsx)("input",{type:"number",name:"concurrencyLimit",min:1,max:10,defaultValue:4,className:m})]})]}):null,void 0===j?null:(0,b.jsx)(l.f,{message:j,isFailure:!0}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)(k.f,{type:"submit",variant:"primary","data-testid":"overview-approve",isPending:"approve"===f,pendingLabel:"Approving...",disabled:void 0!==f,children:"Approve"}),(0,b.jsx)(k.f,{type:"button","data-testid":"overview-deny",isPending:"deny"===f,pendingLabel:"Denying...",disabled:void 0!==f,onClick:()=>{q({kind:"deny"})},children:"Deny"})]})]})]})}a.s(["DecisionPanel",0,function({fleetId:a,request:e,heldScopes:g,owners:h}){let i=(0,c.useRouter)(),[j,k]=(0,d.useState)(),[l,m]=(0,d.useState)(),[,n]=(0,d.useTransition)();return(0,b.jsx)(p,{request:e,heldScopes:g,owners:h,working:j,failure:l,onDecide:b=>{k(b.kind),m(void 0),n(async()=>{let c=await f({fleet:a,requestId:e.requestId,input:b});c.isOk?i.push(`/overview?${new URLSearchParams({fleet:a,decided:b.kind}).toString()}`):(k(void 0),m(c.message))})}})}],91445)}];
2
-
3
- //# sourceMappingURL=web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../web/features/overview/state/decision-panel.tsx","../../../../../web/features/overview/hooks/data%3A445fe1%20%3Ctext/javascript%3E","../../../../../web/features/overview/ui/decision-form.tsx","../../../../../web/features/overview/services/requests.ts"],"sourcesContent":["'use client';\n\nimport { useRouter } from 'next/navigation';\nimport { useState, useTransition } from 'react';\n\nimport type { OwnerChoices } from '../../forms/ui/owner-field';\nimport { decideRequest } from '../hooks/overview-actions';\nimport type { DecisionInput, ShownRequest } from '../services/requests';\nimport { DecisionForm } from '../ui/decision-form';\n\n/** Decides one request as the signed-in approver, then goes back to the Overview, which says nothing more waits here. */\nexport function DecisionPanel({ fleetId, request, heldScopes, owners }: { fleetId: string; request: ShownRequest; heldScopes: readonly string[]; owners: OwnerChoices }) {\n const router = useRouter();\n const [working, setWorking] = useState<DecisionInput['kind'] | undefined>();\n const [failure, setFailure] = useState<string | undefined>();\n const [, startTransition] = useTransition();\n const decide = (decision: DecisionInput) => {\n setWorking(decision.kind);\n setFailure(undefined);\n startTransition(async () => {\n const outcome = await decideRequest({ fleet: fleetId, requestId: request.requestId, input: decision });\n if (outcome.isOk) {\n router.push(`/overview?${new URLSearchParams({ fleet: fleetId, decided: decision.kind }).toString()}`);\n return;\n }\n setWorking(undefined);\n setFailure(outcome.message);\n });\n };\n return <DecisionForm request={request} heldScopes={heldScopes} owners={owners} working={working} failure={failure} onDecide={decide} />;\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"408819c99996290b362a2ea4e8b39d342b6bf79c81\":{\"name\":\"decideRequest\"}},\"web/features/overview/hooks/overview-actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_8=/*#__PURE__*/createServerReference(\"408819c99996290b362a2ea4e8b39d342b6bf79c81\",callServer,void 0,findSourceMapURL,\"decideRequest\");export{$$RSC_SERVER_ACTION_8 as decideRequest};","'use client';\n\nimport { useState, type SyntheticEvent } from 'react';\n\nimport { CREDENTIAL_KINDS, credentialKindOf } from '../../forms/server-credential';\nimport { OwnerField, type OwnerChoices } from '../../forms/ui/owner-field';\nimport { EVERY_APP_SHIP_SCOPES, scopeLabel, subjectName, suggestedName, type DecisionInput, type ServerCredentialInput, type ShownRequest } from '../services/requests';\nimport { ActionButton } from './action-button';\nimport { Notice } from './notice';\n\nconst CONCURRENCY_LIMIT_DEFAULT = 4;\n\nconst FIELD = 'rounded-md border border-input bg-background px-2 py-1.5';\n\nfunction ScopeRow({ scope, isLocked }: { scope: string; isLocked: boolean }) {\n return (\n <label className=\"flex items-center gap-2\">\n {isLocked ? <input type=\"checkbox\" checked disabled aria-label={scopeLabel(scope)} /> : <input type=\"checkbox\" name=\"scope\" value={scope} aria-label={scopeLabel(scope)} />}\n <span>{scopeLabel(scope)}</span>\n <span className=\"font-mono text-caption text-muted-foreground\">{scope}</span>\n {isLocked ? <span className=\"text-caption text-muted-foreground\">(always)</span> : null}\n </label>\n );\n}\n\nfunction text(form: FormData, name: string): string {\n const value = form.get(name);\n return typeof value === 'string' ? value : '';\n}\n\nfunction serverOf(form: FormData): ServerCredentialInput {\n return {\n credentialKind: credentialKindOf(text(form, 'credentialKind')),\n token: text(form, 'token'),\n clientId: text(form, 'clientId'),\n clientSecret: text(form, 'clientSecret'),\n issuer: text(form, 'issuer'),\n scope: text(form, 'scope-requested'),\n concurrencyLimit: Number(text(form, 'concurrencyLimit')),\n };\n}\n\n/**\n * The decision on a request: approving names the proxy ship and its owner,\n * and offers as scope rows only the scopes the approver holds, messages:send\n * and messages:receive locked on (0046, 0053); a server's credential too.\n * What was typed stays when the API refuses.\n */\nexport function DecisionForm({\n request,\n heldScopes,\n owners,\n working,\n failure,\n onDecide,\n}: {\n request: ShownRequest;\n heldScopes: readonly string[];\n owners: OwnerChoices;\n working: DecisionInput['kind'] | undefined;\n failure: string | undefined;\n onDecide: (decision: DecisionInput) => void;\n}) {\n const [credentialKind, setCredentialKind] = useState<ServerCredentialInput['credentialKind']>('bearer');\n const name = subjectName(request);\n const isServer = request.subject.kind === 'server';\n const approve = (event: SyntheticEvent<HTMLFormElement>) => {\n event.preventDefault();\n const form = new FormData(event.currentTarget);\n const scopes = form.getAll('scope').filter((scope) => typeof scope === 'string');\n onDecide({ kind: 'approve', name: text(form, 'name'), ownerShipId: text(form, 'ownerShipId'), scopes, server: isServer ? serverOf(form) : undefined });\n };\n return (\n <section className=\"grid gap-3 rounded-lg border border-border bg-card p-6 text-card-foreground shadow-sm\">\n <h2 className=\"text-heading font-semibold\">Approve {name}</h2>\n <form onSubmit={approve} className=\"grid gap-3\">\n <label className=\"grid gap-1\">\n <span>Proxy ship&apos;s name</span>\n <input name=\"name\" defaultValue={suggestedName(name)} required className={FIELD} />\n </label>\n <OwnerField choices={owners.isOk ? owners.value : []} current={null} help=\"A person ship or argo. It answers for this party.\" refusal={owners.isOk ? undefined : owners.refusal} />\n <fieldset className=\"grid gap-1\">\n <legend>Scopes</legend>\n {EVERY_APP_SHIP_SCOPES.map((scope) => (\n <ScopeRow key={scope} scope={scope} isLocked />\n ))}\n {heldScopes\n .filter((scope) => !EVERY_APP_SHIP_SCOPES.includes(scope))\n .map((scope) => (\n <ScopeRow key={scope} scope={scope} isLocked={false} />\n ))}\n </fieldset>\n {isServer ? (\n <fieldset className=\"grid gap-2\">\n <legend>The server&apos;s credential</legend>\n <label className=\"grid gap-1\">\n <span>Credential</span>\n <select name=\"credentialKind\" value={credentialKind} onChange={(event) => { setCredentialKind(credentialKindOf(event.target.value)); }} className={FIELD}>\n {CREDENTIAL_KINDS.map(({ kind, label }) => (\n <option key={kind} value={kind}>\n {label}\n </option>\n ))}\n </select>\n </label>\n {credentialKind === 'none' ? null : credentialKind === 'bearer' ? (\n <label className=\"grid gap-1\">\n <span>Bearer token</span>\n <input type=\"password\" name=\"token\" className={FIELD} />\n </label>\n ) : (\n <>\n <label className=\"grid gap-1\">\n <span>Client id</span>\n <input name=\"clientId\" className={FIELD} />\n </label>\n <label className=\"grid gap-1\">\n <span>Client secret</span>\n <input type=\"password\" name=\"clientSecret\" className={FIELD} />\n </label>\n <label className=\"grid gap-1\">\n <span>Issuer</span>\n <input type=\"url\" name=\"issuer\" className={FIELD} />\n </label>\n <label className=\"grid gap-1\">\n <span>Scope</span>\n <input name=\"scope-requested\" className={FIELD} />\n </label>\n </>\n )}\n <label className=\"grid gap-1\">\n <span>Calls at once</span>\n <input type=\"number\" name=\"concurrencyLimit\" min={1} max={10} defaultValue={CONCURRENCY_LIMIT_DEFAULT} className={FIELD} />\n </label>\n </fieldset>\n ) : null}\n {failure === undefined ? null : <Notice message={failure} isFailure />}\n <div className=\"flex gap-2\">\n <ActionButton type=\"submit\" variant=\"primary\" data-testid=\"overview-approve\" isPending={working === 'approve'} pendingLabel=\"Approving...\" disabled={working !== undefined}>\n Approve\n </ActionButton>\n <ActionButton type=\"button\" data-testid=\"overview-deny\" isPending={working === 'deny'} pendingLabel=\"Denying...\" disabled={working !== undefined} onClick={() => { onDecide({ kind: 'deny' }); }}>\n Deny\n </ActionButton>\n </div>\n </form>\n </section>\n );\n}\n","/**\n * How the Overview names and states a request for an outside party (design\n * B, Signal): pure view logic, no React and no API client.\n */\nimport type { inferRouterOutputs } from '@trpc/server';\n\nimport type { GatewayRouter } from '../../../../src/adapters/trpc/router.js';\nimport type { CredentialKind } from '../../forms/server-credential';\n\n/** A request as the API shows it. */\nexport type ShownRequest = inferRouterOutputs<GatewayRouter>['requests']['toDecide'][number];\n\n/** The tones a status shows, from the design tokens; a status always has its words too. */\nexport type Tone = 'waiting' | 'active' | 'ok' | 'attention' | 'ended';\n\nexport interface Status {\n readonly tone: Tone;\n readonly label: string;\n}\n\nconst DAY_MS = 86_400_000;\n\n/** How an outside party is named before it has a proxy ship: a client by its name, a server by its host. */\nexport function subjectName(request: ShownRequest): string {\n switch (request.subject.kind) {\n case 'client':\n return request.subject.clientName;\n case 'server':\n return URL.canParse(request.subject.url) ? new URL(request.subject.url).host : request.subject.url;\n }\n}\n\nexport function subjectKind(request: ShownRequest): string {\n switch (request.subject.kind) {\n case 'client':\n return 'MCP client';\n case 'server':\n return 'MCP server';\n }\n}\n\n/** Days left of the 7 a request is kept, counted up, so its last day reads as such, in the attention tone. */\nexport function daysLeft(request: ShownRequest, now: Date): Status {\n const days = Math.ceil((Date.parse(request.expiresAt) - now.getTime()) / DAY_MS);\n return days <= 1 ? { tone: 'attention', label: 'Last day' } : { tone: 'waiting', label: `${String(days)} d left` };\n}\n\n/** A request's state as the console shows a status; one still pending shows its days left. */\nexport function requestStatus(request: ShownRequest, now: Date): Status {\n switch (request.state) {\n case 'pending':\n return daysLeft(request, now);\n case 'approving':\n return { tone: 'active', label: 'Approving' };\n case 'approved':\n return { tone: 'ok', label: 'Approved' };\n case 'denied':\n return { tone: 'ended', label: 'Denied' };\n case 'expired':\n return { tone: 'ended', label: 'Expired' };\n }\n}\n\n/** A proxy ship's name offered from the party's own: lower case letters, digits and dashes. */\nexport function suggestedName(name: string): string {\n return name\n .toLowerCase()\n .replaceAll(/[^a-z0-9]+/g, '-')\n .replaceAll(/^-+|-+$/g, '');\n}\n\n/** The scopes every app ship gets (0046): shown locked on, and always sent. */\nexport const EVERY_APP_SHIP_SCOPES: readonly string[] = ['messages:send', 'messages:receive'];\n\nconst SCOPE_LABELS: Record<string, string> = {\n 'messages:send': 'Send',\n 'messages:receive': 'Receive',\n 'fleet:read': 'Read the fleet',\n};\n\n/** A scope's plain label, shown beside the scope itself. */\nexport function scopeLabel(scope: string): string {\n return SCOPE_LABELS[scope] ?? scope;\n}\n\n/** The server's credential as the decision form takes it. */\nexport interface ServerCredentialInput {\n readonly credentialKind: CredentialKind;\n readonly token: string;\n readonly clientId: string;\n readonly clientSecret: string;\n readonly issuer: string;\n readonly scope: string;\n readonly concurrencyLimit: number;\n}\n\nexport type DecisionInput = { readonly kind: 'deny' } | { readonly kind: 'approve'; readonly name: string; readonly ownerShipId: string; readonly scopes: readonly string[]; readonly server: ServerCredentialInput | undefined };\n"],"names":["$$RSC_SERVER_ACTION_8"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- (()=>{"use strict";module.exports=[1542,a=>{var b=a.i(87924);let c={primary:"bg-primary text-primary-foreground hover:bg-primary-hover",secondary:"border border-border bg-card text-card-foreground hover:bg-accent"};a.s(["f",0,function({isPending:a,pendingLabel:d,variant:e="secondary",children:f,className:g="",disabled:h,...i}){return(0,b.jsx)("button",{...i,disabled:!0===h||a,"aria-busy":a,className:`inline-flex h-9 items-center gap-2 rounded-md px-4 disabled:cursor-not-allowed disabled:opacity-70 ${c[e]} ${g}`,children:a?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{"aria-hidden":"true",className:"size-3.5 animate-spin rounded-full border-2 border-current border-t-transparent"}),d]}):f})}])},24229,a=>{var b=a.i(87924);a.s(["f",0,function({message:a,isFailure:c}){return c?(0,b.jsx)("p",{role:"alert","data-testid":"overview-failure",className:"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg",children:a}):(0,b.jsx)("p",{role:"status","data-testid":"overview-success",className:"rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-tone-ok-fg",children:a})}])}]})();
2
-
3
- //# sourceMappingURL=web_features_overview_ui_10mb24kjiffea._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../web/features/overview/ui/action-button.tsx","../../../../../web/features/overview/ui/notice.tsx"],"sourcesContent":["import type { ButtonHTMLAttributes, ReactNode } from 'react';\n\nconst VARIANTS = {\n primary: 'bg-primary text-primary-foreground hover:bg-primary-hover',\n secondary: 'border border-border bg-card text-card-foreground hover:bg-accent',\n} as const;\n\n/**\n * A button for an action: the moment it is pressed and until the answer\n * comes, it shows a spinner and its working label, and cannot run twice.\n */\nexport function ActionButton({\n isPending,\n pendingLabel,\n variant = 'secondary',\n children,\n className = '',\n disabled,\n ...button\n}: ButtonHTMLAttributes<HTMLButtonElement> & { isPending: boolean; pendingLabel: string; variant?: keyof typeof VARIANTS; children: ReactNode }) {\n return (\n <button\n {...button}\n disabled={disabled === true || isPending}\n aria-busy={isPending}\n className={`inline-flex h-9 items-center gap-2 rounded-md px-4 disabled:cursor-not-allowed disabled:opacity-70 ${VARIANTS[variant]} ${className}`}\n >\n {isPending ? (\n <>\n <span aria-hidden=\"true\" className=\"size-3.5 animate-spin rounded-full border-2 border-current border-t-transparent\" />\n {pendingLabel}\n </>\n ) : (\n children\n )}\n </button>\n );\n}\n","/** What an action came to, said in place: a success as a status, a failure as an alert by the control. */\nexport function Notice({ message, isFailure }: { message: string; isFailure: boolean }) {\n return isFailure ? (\n <p role=\"alert\" data-testid=\"overview-failure\" className=\"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg\">\n {message}\n </p>\n ) : (\n <p role=\"status\" data-testid=\"overview-success\" className=\"rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-tone-ok-fg\">\n {message}\n </p>\n );\n}\n"],"names":["VARIANTS","primary","secondary","ActionButton","isPending","pendingLabel","variant","children","className","disabled","button","Notice","message","isFailure","role"],"mappings":"6DAEA,IAAMA,EAAW,CACfC,QAAS,4DACTC,UAAW,mEACb,aAMO,SAASC,AAAa,WAC3BC,CAAS,cACTC,CAAY,SACZC,EAAU,WAAW,UACrBC,CAAQ,WACRC,EAAY,EAAE,UACdC,CAAQ,CACR,GAAGC,EAC0I,EAC7I,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,SAAA,CACE,GAAGA,CAAM,CACVD,UAAuB,IAAbA,GAAqBL,EAC/B,YAAWA,EACXI,UAAW,CAAC,mGAAmG,EAAER,CAAQ,CAACM,EAAQ,CAAC,CAAC,EAAEE,EAAAA,CAAW,UAEhJJ,EACC,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,QAAA,CAAA,WACE,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,cAAY,OAAOI,UAAU,oFAClCH,KAGHE,GAIR,eCrCwG,IAAA,EAAA,EAAA,CAAA,CAAA,kBACjG,SAASI,AAAO,SAAEC,CAAO,WAAEC,CAAS,CAA2C,EACpF,OAAOA,EACL,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEC,KAAK,QAAQ,cAAY,mBAAmBN,UAAU,gHACtDI,IAGH,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEE,KAAK,SAAS,cAAY,mBAAmBN,UAAU,2FACvDI,GAGP"}
@@ -1 +0,0 @@
1
- (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,34982,e=>{var t=e.i(43476),n=e.i(71645),r=e.i(96499),o=e.i(56789),i=e.i(46376),s=e.i(33332);let a=n.createContext(void 0);function l(e){let t=n.useContext(a);if(void 0===t&&!e)throw Error((0,s.f)(72));return t}var u=e.i(74735),p=e.i(67865),c=e.i(29315),d=e.i(84446),f=e.i(57940);function g(e){return null!=e&&null!=e.clientX}var v=e.i(17989),C=e.i(75606),h=e.i(64111),m=e.i(76782),S=e.i(1252),x=e.i(41530),P=e.i(16786),R=e.i(90627);let b={...P.j,disabled:e=>e.disabled,instantType:e=>e.instantType,isInstantPhase:e=>e.isInstantPhase,trackCursorAxis:e=>e.trackCursorAxis,disableHoverablePopup:e=>e.disableHoverablePopup,lastOpenChangeReason:e=>e.openChangeReason,closeOnClick:e=>e.closeOnClick,appliedTriggerProps:(e,t)=>t?e.activeTriggerProps:void 0,closeDelay:e=>e.closeDelay,adaptiveOrigin:e=>e.adaptiveOrigin};class y extends S.f{constructor(e,t,r){var o;let i=new R.f;super(function(e,t,n,r=!1){return{...(0,P.i)(t,n,r),disabled:!1,instantType:void 0,isInstantPhase:!1,trackCursorAxis:"none",disableHoverablePopup:!1,openChangeReason:null,closeOnClick:!0,closeDelay:0,adaptiveOrigin:void 0,...e}}(e,i,t,r),(o=i,{popupRef:n.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerElements:o}),b)}setOpen=(e,t)=>{(0,h.c)(this,e,t,{extraState:{openChangeReason:t.reason}})};cancelPendingOpen(e){this.state.floatingRootContext.dispatchOpenChange(!1,(0,C.j)(x.f.triggerPress,e))}}var O=e.i(16856),O=O,E=e.i(80025),T=e.i(68765);let I=(0,r.U)(function(e){let{disabled:r=!1,defaultOpen:o=!1,open:s,disableHoverablePopup:l=!1,trackCursorAxis:u="none",actionsRef:p,onOpenChange:c,onOpenChangeComplete:d,handle:f,triggerId:g,defaultTriggerId:v=null,children:m}=e,S=(0,h.$)((e,t)=>new y({open:o,openProp:s,activeTriggerId:v,triggerIdProp:g},e,t));S.useControlledProp("openProp",s),S.useControlledProp("triggerIdProp",g),S.useContextCallback("onOpenChange",c),S.useContextCallback("onOpenChangeComplete",d);let x=S.useState("open"),P=!r&&x,R=S.useState("activeTriggerId"),b=S.useState("mounted"),I=S.useState("payload");S.useSyncedValues({trackCursorAxis:u,disableHoverablePopup:l,disabled:r}),(0,h._)(S,{closeOnActiveTriggerUnmount:!0});let{forceUnmount:D,transitionStatus:k}=(0,h.L)(P,S),j=S.useState("isInstantPhase"),M=S.useState("instantType"),A=S.useState("lastOpenChangeReason"),H=n.useRef(null);(0,i.f)(()=>{x&&r&&S.setOpen(!1,(0,C.j)(O.disabled))},[x,r,S]),(0,i.f)(()=>{"ending"===k&&A===E.f.none||"ending"!==k&&j?("delay"!==M&&(H.current=M),S.set("instantType","delay")):null!==H.current&&(S.set("instantType",H.current),H.current=null)},[k,j,A,M,S]),(0,i.f)(()=>{P&&null==R&&S.set("payload",void 0)},[S,R,P]),n.useImperativeHandle(p,()=>({unmount:D,close:()=>S.setOpen(!1,(0,C.j)(T.f.imperativeAction))}),[D,S]);let B=P||b||!r&&"none"!==u;return(0,t.jsxs)(a.Provider,{value:S,children:[f&&(0,t.jsx)(h.d,{handle:f,store:S}),B&&(0,t.jsx)(w,{store:S,disabled:r,trackCursorAxis:u}),"function"==typeof m?m({payload:I}):m]})});function w({store:e,disabled:t,trackCursorAxis:r}){let i=e.useState("floatingRootContext"),s=(0,v.f)(i,{enabled:!t,referencePress:()=>e.select("closeOnClick")}),a=function(e,t={}){let{enabled:r=!0,axis:o="both"}=t,i=e.useState("open"),s=e.useState("floatingElement"),a=e.useState("domReferenceElement"),l=e.context.dataRef,v=n.useRef(!1),C=n.useRef(null),[h,m]=n.useState(),[S,x]=n.useState([]),P=(0,p.f)(t=>{e.set("positionReference",t)}),R=(0,p.f)((t,n,r)=>{if(!v.current&&(!l.current.openEvent||g(l.current.openEvent))){var i,s;let u,p,c;e.set("positionReference",(i=r??a,s={x:t,y:n,axis:o,dataRef:l,pointerType:h},u=null,p=null,c=!1,{contextElement:i||void 0,getBoundingClientRect(){let e=i?.getBoundingClientRect()||{width:0,height:0,x:0,y:0},t="x"===s.axis||"both"===s.axis,n="y"===s.axis||"both"===s.axis,r=["mouseenter","mousemove"].includes(s.dataRef.current.openEvent?.type||"")&&"touch"!==s.pointerType,o="y"===s.axis?e.width:0,a="x"===s.axis?e.height:0,l=e.x,d=e.y;return null==u&&s.x&&t&&(u=e.x-s.x),null==p&&s.y&&n&&(p=e.y-s.y),l-=u||0,d-=p||0,(!c||r)&&(l=t&&null!=s.x?s.x:l,d=n&&null!=s.y?s.y:d),c=!0,{width:o,height:a,x:l,y:d,top:d,right:l+o,bottom:d+a,left:l}}}))}}),b=(0,p.f)(e=>{i?C.current||(R(e.clientX,e.clientY,e.currentTarget),x([])):R(e.clientX,e.clientY,e.currentTarget)}),y=(0,f.J)(h)?s:i;n.useEffect(()=>{if(!r)return void P(a);if(!y)return;function e(){C.current?.(),C.current=null}let t=(0,c.K)(s);return!l.current.openEvent||g(l.current.openEvent)?C.current=(0,u.f)(t,"mousemove",function(t){let n=(0,d.Z)(t);(0,d.I)(s,n)?e():R(t.clientX,t.clientY)}):P(a),e},[y,r,s,l,a,e,R,P,S]),n.useEffect(()=>()=>{e.set("positionReference",null)},[e]),n.useEffect(()=>{r&&!s&&(v.current=!1)},[r,s]),n.useEffect(()=>{!r&&i&&(v.current=!0)},[r,i]);let O=n.useMemo(()=>{function e(e){m(e.pointerType)}return{onPointerDown:e,onPointerEnter:e,onMouseMove:b,onMouseEnter:b}},[b]);return n.useMemo(()=>r?{reference:O,trigger:O}:{},[r,O])}(i,{enabled:!t&&"none"!==r,axis:"none"===r?void 0:r}),l=n.useMemo(()=>(0,m.w)(a.reference,s.reference),[a.reference,s.reference]);return(0,h.y)(e,{activeTriggerProps:l,inactiveTriggerProps:l,popupProps:s.floating??o.w}),null}var D=e.i(39957),k=e.i(46265),j=e.i(79938),M=e.i(52245),A=e.i(59636),H=e.i(88015);let B=n.createContext(void 0);var U=e.i(50316),F=e.i(44681);let X=n.createContext({hasProvider:!1,timeoutMs:0,delayRef:{current:0},initialDelayRef:{current:0},timeout:new D.U,currentIdRef:{current:null},currentContextRef:{current:null}});function K(e){let{children:r,delay:o,timeoutMs:s=0}=e,a=n.useRef(o),l=n.useRef(o),u=n.useRef(null),p=n.useRef(null),c=(0,D.e)();return(0,i.f)(()=>{if(l.current=o,!u.current){a.current=o;return}a.current={open:(0,F.c)(a.current,"open"),close:(0,F.c)(o,"close")}},[o,u,a,l]),(0,t.jsx)(X.Provider,{value:n.useMemo(()=>({hasProvider:!0,delayRef:a,initialDelayRef:l,currentIdRef:u,timeoutMs:s,currentContextRef:p,timeout:c}),[s,c]),children:r})}var N=e.i(13082),V=e.i(72135),W=e.i(22428),J=e.i(73752),L=e.i(22846);let Z="data-base-ui-tooltip-trigger";function Y(e){let t=(0,d.Z)(e);return(0,c.m)(t)?t:null}let $=(0,r.u)(function(e,t){let{render:r,className:o,style:a,handle:u,payload:p,disabled:c,delay:g,closeOnClick:v=!0,closeDelay:m,id:S,...x}=e,P=l(!0),R=(0,A.f)(u)??P;if(!R)throw Error((0,s.f)(82));let b=(0,H.f)(S),y=R.useState("isTriggerActive",b),O=R.useState("isOpenedByTrigger",b),T=R.useState("floatingRootContext"),I=n.useRef(null),w=m??0,{registerTrigger:K,isMountedByThisTrigger:$}=(0,h.F)(b,I,R,{payload:p,closeOnClick:v,closeDelay:w}),_=n.useContext(B),{activeIdRef:z,delayRef:q,isInstantPhase:G,hasProvider:Q}=function(e,t={open:!1}){let{open:r}=t,o=e.useState("floatingId"),{currentIdRef:s,delayRef:a,timeoutMs:l,initialDelayRef:u,currentContextRef:p,hasProvider:c,timeout:d}=n.useContext(X),[f,g]=n.useState(!1),v=n.useRef(r);return(0,i.f)(()=>{v.current=r},[r]),(0,i.f)(()=>{function t(){p.current?.setIsInstantPhase(!1),s.current=null,p.current=null,a.current=u.current,d.clear()}if(s.current&&!r&&s.current===o){if(g(!1),l)return d.start(l,()=>{e.select("open")||s.current&&s.current!==o||t()}),()=>{(v.current||s.current!==o)&&d.clear()};t()}},[r,o,s,a,l,u,p,d,e]),(0,i.f)(()=>{if(!r)return;let t=p.current,n=s.current;d.clear(),p.current={onOpenChange:e.setOpen,setIsInstantPhase:g},s.current=o,a.current={open:0,close:(0,F.c)(u.current,"close")},null!==n&&n!==o?(g(!0),t?.setIsInstantPhase(!0),t?.onOpenChange(!1,(0,C.j)(E.f.none))):(g(!1),t?.setIsInstantPhase(!1))},[r,o,e,s,a,u,p,d]),(0,i.f)(()=>()=>{s.current===o&&(p.current=null,v.current)&&(s.current=null,a.current=u.current,d.clear())},[p,s,a,o,u,d]),n.useMemo(()=>({activeIdRef:s,hasProvider:c,delayRef:a,isInstantPhase:f}),[s,c,a,f])}(T,{open:O}),ee=(0,J.s)(T);R.useSyncedValue("isInstantPhase",G);let et=R.useState("disabled"),en=c??et,er=(0,k.f)(en),eo=R.useState("trackCursorAxis"),ei=R.useState("disableHoverablePopup"),es=n.useRef(!1),ea=(0,D.e)(),el=n.useRef(void 0);function eu(){return Q&&null!=z.current?0:g??_??600}function ep(e){let t=I.current;if(!t||!e)return!1;let n=(0,d.h)(e,`[${Z}]`);return null!==n&&n!==t&&(0,d.I)(t,n)}let ec=(0,V.f)(T,{enabled:!en,mouseOnly:!0,move:!1,handleClose:ei||"both"===eo?null:(0,U.f)(),restMs:eu,delay:()=>null==m&&Q?{close:(0,F.c)(q.current,"close")}:{close:w},triggerElementRef:I,isActiveTrigger:y,isClosing:()=>"ending"===R.select("transitionStatus"),shouldOpen:()=>!es.current}),ed=(0,N.f)(T,{enabled:!en}).reference,ef=R.useState("appliedTriggerProps",$||"none"!==eo);return(0,M.a)("button",e,{state:{open:O},ref:[t,K,I],props:[ec,ed,ef,{onMouseOver(e){(e=>{let t,n=es.current,r=Y(e),o=(es.current=t=ep(r),t&&(ee.openChangeTimeout.clear(),ee.restTimeout.clear(),ee.restTimeoutPending=!1,ea.clear()),t),i=I.current,s=i&&r&&(0,d.I)(i,r);if(o&&R.select("open")&&R.select("lastOpenChangeReason")===W.f.triggerHover)return R.setOpen(!1,(0,C.j)(W.f.triggerHover,e));if(n&&!o&&s&&!er.current&&!R.select("open")&&i&&(0,f.J)(el.current)){let t=()=>{es.current||er.current||R.select("open")||R.setOpen(!0,(0,C.j)(W.f.triggerHover,e,i))},n=eu();0===n?(ea.clear(),t()):ea.start(n,t)}})(e.nativeEvent)},onFocus(e){ep(Y(e.nativeEvent))&&e.preventBaseUIHandler()},onMouseLeave(){es.current=!1,ea.clear(),el.current=void 0},onPointerEnter(e){el.current=e.pointerType},onPointerDown(e){el.current=e.pointerType,R.set("closeOnClick",v),v&&!R.select("open")&&R.cancelPendingOpen(e.nativeEvent)},onClick(e){v&&!R.select("open")&&R.cancelPendingOpen(e.nativeEvent)},id:b,[L.f]:en?"":void 0,[Z]:en?void 0:""},x],stateAttributesMapping:j.J})}),_=n.createContext(void 0);var z=e.i(78680);let q=n.forwardRef(function(e,n){let{keepMounted:r=!1,...o}=e;return l().useState("mounted")||r?(0,t.jsx)(_.Provider,{value:r,children:(0,t.jsx)(z.f,{ref:n,...o})}):null}),G=n.createContext(void 0);var Q=e.i(23706),ee=e.i(38396),et=e.i(89579);let en=n.forwardRef(function(e,r){let{render:o,className:i,anchor:a,positionMethod:u="absolute",side:p="top",align:c="center",sideOffset:d=0,alignOffset:f=0,collisionBoundary:g="clipping-ancestors",collisionPadding:v=5,arrowPadding:C=5,sticky:h=!1,disableAnchorTracking:m=!1,collisionAvoidance:S=ee.n,style:x,...P}=e,R=l(),b=function(){let e=n.useContext(_);if(void 0===e)throw Error((0,s.f)(70));return e}(),y=R.useState("open"),O=R.useState("mounted"),E=R.useState("trackCursorAxis"),T=R.useState("disableHoverablePopup"),I=R.useState("floatingRootContext"),w=R.useState("instantType"),D=R.useState("transitionStatus"),k=R.useState("adaptiveOrigin"),j=(0,Q.f)({anchor:a,positionMethod:u,floatingRootContext:I,mounted:O,side:p,sideOffset:d,align:c,alignOffset:f,collisionBoundary:g,collisionPadding:v,sticky:h,arrowPadding:C,disableAnchorTracking:m,keepMounted:b,collisionAvoidance:S,adaptiveOrigin:k}),M=n.useMemo(()=>({open:y,side:j.side,align:j.align,anchorHidden:j.anchorHidden,instant:"none"!==E?"tracking-cursor":w}),[y,j.side,j.align,j.anchorHidden,E,w]),A=(0,et.f)(e,M,{styles:j.positionerStyles,transitionStatus:D,props:P,refs:[r,R.useStateSetter("positionerElement")],hidden:!O,inert:!y||"both"===E||T});return(0,t.jsx)(G.Provider,{value:j,children:A})});var er=e.i(37584),eo=e.i(53984),ei=e.i(31157);let es=n.forwardRef(function(e,t){let{render:r,className:o,style:i,...a}=e,u=l(),{side:p,align:c}=function(){let e=n.useContext(G);if(void 0===e)throw Error((0,s.f)(71));return e}(),d=u.useState("open"),f=u.useState("instantType"),g=u.useState("transitionStatus"),v=u.useState("popupProps"),C=u.useState("floatingRootContext"),m=u.useState("disabled"),S=u.useState("closeDelay");(0,er.f)({open:d,ref:u.context.popupRef,onComplete(){d&&u.context.onOpenChangeComplete?.(!0)}}),(0,ei.f)(C,{enabled:!m,closeDelay:S});let x=u.useStateSetter("popupElement");return(0,M.a)("div",e,{state:{open:d,side:p,align:c,instant:f,transitionStatus:g},ref:[t,u.context.popupRef,x],props:[h.X,v,(0,eo.f)(g),a],stateAttributesMapping:j.M})});e.s(["Popup",0,es,"Portal",0,q,"Positioner",0,en,"Provider",0,function(e){let{delay:r,closeDelay:o,timeout:i=400}=e,s=n.useMemo(()=>({open:r,close:o}),[r,o]);return(0,t.jsx)(B.Provider,{value:r,children:(0,t.jsx)(K,{delay:s,timeoutMs:i,children:e.children})})},"Root",0,I,"Trigger",0,$],99643),e.i(99643),e.i(71773),e.s([],34982)},49317,e=>{e.i(43476),e.i(71645),e.s([])},26323,8821,56736,25834,35890,64938,80829,6640,10199,64951,66250,77173,13488,28376,9977,41708,93480,9169,52744,e=>{var t=e.i(71645),n=e.i(33332);let r=t.createContext(void 0);function o(e){let o=t.useContext(r);if(!e&&void 0===o)throw Error((0,n.f)(27));return o}e.s(["R",0,r,"x",0,o],8821);var i=e.i(52245),s=e.i(79938);let a=t.forwardRef(function(e,t){let{render:n,className:r,style:a,forceRender:l=!1,...u}=e,p=o(),c=p.useState("open"),d=p.useState("nested"),f=p.useState("mounted"),g=p.useState("transitionStatus");return(0,i.a)("div",e,{state:{open:c,transitionStatus:g},ref:[p.context.backdropRef,t],stateAttributesMapping:s.M,props:[{role:"presentation",hidden:!f,style:{userSelect:"none",WebkitUserSelect:"none"}},u],enabled:l||!d})});var l=e.i(40886),u=e.i(75606),p=e.i(57749);let c=t.forwardRef(function(e,t){let{render:n,className:r,style:s,disabled:a=!1,nativeButton:c=!0,...d}=e,f=o(),g=f.useState("open"),{getButtonProps:v,buttonRef:C}=(0,l.f)({disabled:a,native:c});return(0,i.a)("button",e,{state:{disabled:a},ref:[t,C],props:[{onClick:function(e){g&&f.setOpen(!1,(0,u.j)(p.f.closePress,e.nativeEvent))}},d,v]})});e.s(["f",0,c],56736);var d=e.i(88015);let f=t.forwardRef(function(e,t){let{render:n,className:r,style:s,id:a,...l}=e,u=o(),p=(0,d.f)(a);return u.useSyncedValueWithCleanup("descriptionElementId",p),(0,i.a)("p",e,{ref:t,props:[{id:p},l]})});var g=e.i(61487);let v=t.createContext(void 0);function C(){let e=t.useContext(v);if(void 0===e)throw Error((0,n.f)(26));return e}e.s(["_",0,v,"Z",0,C],25834);var h=e.i(37584),m=e.i(73327),S=e.i(64111),x=e.i(74354),P=e.i(38380);e.s(["f",0,P],35890);var P=P,R=P;e.s(["f",0,R],64938);var R=P,b=P;e.s(["f",0,b],80829);var b=P,y=P;e.s(["f",0,y],6640);var y=P;P.open,R.closed,b.startingStyle,y.endingStyle;let O={...s.E,...x.f,nestedDialogOpen:e=>e?{"data-nested-dialog-open":""}:null};e.s(["f",0,O],10199);var E=e.i(43476);let T=t.forwardRef(function(e,t){let{render:n,className:r,style:s,finalFocus:a,initialFocus:l,...u}=e,p=o(),c=p.useState("descriptionElementId"),d=p.useState("disablePointerDismissal"),f=p.useState("floatingRootContext"),v=p.useState("popupProps"),x=p.useState("modal"),P=p.useState("mounted"),R=p.useState("nested"),b=p.useState("nestedOpenDialogCount"),y=p.useState("open"),T=p.useState("openMethod"),I=p.useState("titleElementId"),w=p.useState("transitionStatus"),D=p.useState("role"),k=f.useState("floatingId");C(),(0,h.f)({open:y,ref:p.context.popupRef,onComplete(){y&&p.context.onOpenChangeComplete?.(!0)}});let j=void 0===l?(0,S.H)(p.context.popupRef):l,M=p.useStateSetter("popupElement"),A=(0,i.a)("div",e,{state:{open:y,nested:R,transitionStatus:w,nestedDialogOpen:b>0},props:[v,{id:k,"aria-labelledby":I,"aria-describedby":c,role:D,...S.X,hidden:!P,onKeyDown(e){m.f.has(e.key)&&e.stopPropagation()},style:{"--nested-dialogs":b}},u],ref:[t,p.context.popupRef,M],stateAttributesMapping:O});return(0,E.jsx)(g.f,{context:f,openInteractionType:T,disabled:!P,closeOnFocusOut:!d,initialFocus:j,returnFocus:a,modal:!1!==x,restoreFocus:"popup",children:A})});var I=e.i(44394),w=e.i(26674),D=e.i(426);let k=t.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e,i=o(),s=i.useState("mounted"),a=i.useState("modal"),l=i.useState("open");return s||n?(0,E.jsx)(v.Provider,{value:n,children:(0,E.jsxs)(w.r,{ref:t,...r,children:[s&&!0===a&&(0,E.jsx)(D.f,{ref:i.context.internalBackdropRef,inert:(0,I.f)(!l)}),e.children]})}):null});e.s(["f",0,k],64951);var j=e.i(96499),M=e.i(46376),A=e.i(45484),H=e.i(17989),B=e.i(84446);function U({store:e,parentContext:n,isDrawer:r}){let o=e.useState("open"),i=e.useState("mounted"),s=e.useState("disablePointerDismissal"),a=e.useState("modal"),l=e.useState("popupElement"),u=e.useState("floatingRootContext"),[p,c]=t.useState(0),[d,f]=t.useState(0),g=0===p,v=(0,H.f)(u,{outsidePressEvent:()=>e.context.internalBackdropRef.current||e.context.backdropRef.current?"intentional":{mouse:"trap-focus"===a?"sloppy":"intentional",touch:"sloppy"},outsidePress(t){if(!e.context.outsidePressEnabledRef.current||"button"in t&&0!==t.button)return!1;if("touches"in t){if("touchend"===t.type){if(1!==t.changedTouches.length||0!==t.touches.length)return!1}else if(1!==t.touches.length)return!1}let n=(0,B.Z)(t);if(g&&!s){if(a){let t=e.context.internalBackdropRef.current,r=e.context.backdropRef.current;return!t&&!r||t===n||r===n||(0,B.I)(n,l)&&!n?.hasAttribute("data-base-ui-portal")}return!0}return!1},escapeKey:g});return(0,A.f)(o&&!0===a,l),e.useContextCallback("onNestedDialogOpen",(t,n)=>{(e.select("open")||e.select("mounted"))&&(c(t),f(n))}),(0,M.f)(()=>{o||i||(c(0),f(0))},[o,i]),(0,M.f)(()=>(n?.onNestedDialogOpen&&o&&n.onNestedDialogOpen(p+1,d+ +!!r),()=>{n?.onNestedDialogOpen&&o&&n.onNestedDialogOpen(0,0)}),[r,o,p,d,n]),(0,S.y)(e,{activeTriggerProps:v.reference,inactiveTriggerProps:v.trigger,popupProps:v.floating,nestedOpenDialogCount:p,nestedOpenDrawerCount:d}),null}var F=e.i(1252),X=e.i(16786),K=e.i(90627);let N={...X.j,modal:e=>e.modal,nested:e=>e.nested,nestedOpenDialogCount:e=>e.nestedOpenDialogCount,nestedOpenDrawerCount:e=>e.nestedOpenDrawerCount,disablePointerDismissal:e=>e.disablePointerDismissal,openMethod:e=>e.openMethod,descriptionElementId:e=>e.descriptionElementId,titleElementId:e=>e.titleElementId,viewportElement:e=>e.viewportElement,role:e=>e.role};class V extends F.f{constructor(e,n,r){var o;let i=new K.f;super(function(e,t,n,r=!1){return{...(0,X.i)(t,n,r),modal:!0,disablePointerDismissal:!1,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,nestedOpenDrawerCount:0,role:"dialog",...e}}(e,i,n,r),(o=i,{popupRef:t.createRef(),backdropRef:t.createRef(),internalBackdropRef:t.createRef(),outsidePressEnabledRef:{current:!0},triggerElements:o,onOpenChange:void 0,onOpenChangeComplete:void 0}),N)}setOpen=(e,t)=>{t.preventUnmountOnClose=()=>{this.set("preventUnmountingOnClose",!0)},e||null!=t.trigger||null==this.state.activeTriggerId||(t.trigger=this.state.activeTriggerElement??void 0),this.context.onOpenChange?.(e,t),t.isCanceled||(this.state.floatingRootContext.dispatchOpenChange(e,t),this.update((0,S.z)(this.state,e,t.trigger)))}}var W=e.i(68765);function J(e,n){let{children:i,open:s,defaultOpen:a=!1,onOpenChange:l,onOpenChangeComplete:p,disablePointerDismissal:c=!1,modal:d=!0,actionsRef:f,handle:g,triggerId:v,defaultTriggerId:C=null}=n,h="alert-dialog"===e,m=o(!0),x={modal:!!h||d,disablePointerDismissal:h||c,nested:null!=m,role:h?"alertdialog":"dialog"},P=(0,S.$)((e,t)=>new V({open:a,openProp:s,activeTriggerId:C,triggerIdProp:v,...x},e,t),!0);P.useControlledProp("openProp",s),P.useControlledProp("triggerIdProp",v),P.useSyncedValues(x),P.useContextCallback("onOpenChange",l),P.useContextCallback("onOpenChangeComplete",p);let R=P.useState("open"),b=P.useState("mounted"),y=P.useState("payload");(0,S.e)(P,R),(0,S._)(P);let{forceUnmount:O}=(0,S.L)(R,P);t.useImperativeHandle(f,()=>({unmount:O,close:()=>P.setOpen(!1,(0,u.j)(W.f.imperativeAction))}),[O,P]);let T=R||b||null!=g;return(0,E.jsxs)(r.Provider,{value:P,children:[g&&(0,E.jsx)(S.d,{handle:g,store:P}),T&&(0,E.jsx)(U,{store:P,parentContext:m?.context,isDrawer:"drawer"===e}),"function"==typeof i?i({payload:y}):i]})}e.s(["f",0,J],66250);let L=(0,j.U)(function(e){return J("dialog",e)}),Z=t.forwardRef(function(e,t){let{render:n,className:r,style:s,id:a,...l}=e,u=o(),p=(0,d.f)(a);return u.useSyncedValueWithCleanup("titleElementId",p),(0,i.a)("h2",e,{ref:t,props:[{id:p},l]})});e.s(["f",0,Z],77173);var Y=e.i(38396),$=e.i(59636),_=e.i(85689),z=e.i(32199);let q=(0,j.u)(function(e,r){let{render:a,className:u,style:p,disabled:c=!1,nativeButton:f=!0,id:g,payload:v,handle:C,...h}=e,m=o(!0),x=(0,$.f)(C)??m;if(!x)throw Error((0,n.f)(79));let P=(0,d.f)(g),R=x.useState("floatingRootContext"),b=x.useState("isOpenedByTrigger",P),y=x.useState("triggerPopupId",P),O=t.useRef(null),{registerTrigger:E,isMountedByThisTrigger:T}=(0,S.F)(P,O,x,{payload:v}),{getButtonProps:I,buttonRef:w}=(0,l.f)({disabled:c,native:f}),D=(0,_.f)(R),k=(0,z.p)(()=>x.select("open"),e=>{x.set("openMethod",e)}),j=x.useState("triggerProps",T);return(0,i.a)("button",e,{state:{disabled:c,open:b},ref:[w,r,E,O],props:[D.reference,j,k,{[Y.j]:"",id:P,"aria-haspopup":"dialog","aria-expanded":b,"aria-controls":y},h,I],stateAttributesMapping:s.J})});e.s(["f",0,q],13488),e.s(["Backdrop",0,a,"Close",0,c,"Description",0,f,"Popup",0,T,"Portal",0,k,"Root",0,L,"Title",0,Z,"Trigger",0,q],28376);var G=e.i(28376);e.s(["f",0,G],26323),e.s(["f",0,G],9977),e.s(["f",0,G],41708),e.s(["f",0,G],93480),e.s(["f",0,G],9169),e.s(["f",0,G],52744)},73327,e=>{let t=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End"]);e.s(["f",0,t])},78680,e=>{e.i(47167);var t=e.i(71645),n=e.i(74080),r=e.i(26674),o=e.i(43476);let i=t.forwardRef(function(e,i){let{children:s,container:a,className:l,render:u,style:p,...c}=e,{node:d,subtree:f}=(0,r.o)({container:a,ref:i,componentProps:e,elementProps:c});return f||d?(0,o.jsxs)(t.Fragment,{children:[f,d&&n.createPortal(s,d)]}):null});e.s(["f",0,i])},16786,59636,e=>{var t=e.i(56789),n=e.i(56341);let r=e=>e.triggerIdProp??e.activeTriggerId,o=e=>e.openProp??e.open,i=e=>(e.popupElement?.id??e.floatingId)||void 0;function s(e,t){return void 0!==t&&o(e)&&r(e)===t}e.s(["i",0,function(e,r,o=!1){return{open:!1,openProp:void 0,mounted:!1,transitionStatus:void 0,floatingRootContext:new n.f({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:e,floatingId:r,syncOnly:!0,nested:o,onOpenChange:void 0}),floatingId:r,triggerCount:0,preventUnmountingOnClose:!1,payload:void 0,activeTriggerId:null,activeTriggerElement:null,openedWithoutTrigger:!1,triggerIdProp:void 0,popupElement:null,positionerElement:null,activeTriggerProps:t.w,inactiveTriggerProps:t.w,popupProps:t.w}},"j",0,{open:o,mounted:e=>e.mounted,transitionStatus:e=>o(e)&&!e.mounted?"starting":e.transitionStatus,floatingRootContext:e=>e.floatingRootContext,triggerCount:e=>e.triggerCount,preventUnmountingOnClose:e=>e.preventUnmountingOnClose,payload:e=>e.payload,activeTriggerId:r,activeTriggerElement:e=>e.mounted?e.activeTriggerElement:null,popupId:i,isTriggerActive:(e,t)=>void 0!==t&&r(e)===t,isOpenedByTrigger:(e,t)=>s(e,t),isMountedByTrigger:(e,t)=>void 0!==t&&r(e)===t&&e.mounted,triggerProps:(e,t)=>t?e.activeTriggerProps:e.inactiveTriggerProps,triggerPopupId:(e,t)=>s(e,t)||void 0!==t&&o(e)&&null==r(e)&&!e.openedWithoutTrigger&&1===e.triggerCount?i(e):void 0,popupProps:e=>e.popupProps,popupElement:e=>e.popupElement,positionerElement:e=>e.positionerElement}],16786);var a=e.i(71645),l=e.i(2239);e.s(["f",0,function(e){let n=a.useCallback(n=>void 0===e?t.x:e.subscribeStore(n),[e]),r=a.useCallback(()=>void 0===e?void 0:e.store,[e]);return(0,l.useSyncExternalStore)(n,r,()=>e?.serverStore)}],59636)}])})();
@@ -1 +0,0 @@
1
- (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,78680,e=>{e.i(47167);var r=e.i(71645),t=e.i(74080),n=e.i(26674),o=e.i(43476);let d=r.forwardRef(function(e,d){let{children:i,container:a,className:s,render:b,style:c,...l}=e,{node:u,subtree:g}=(0,n.o)({container:a,ref:d,componentProps:e,elementProps:l});return g||u?(0,o.jsxs)(r.Fragment,{children:[g,u&&t.createPortal(i,u)]}):null});e.s(["f",0,d])},28008,e=>{e.s(["H",0,"fleet","Q",0,{kind:"idle"}])},30402,e=>{let r="inline-flex h-9 items-center justify-center gap-2 rounded-md px-4 font-medium disabled:opacity-60",t={primary:`${r} bg-primary text-primary-foreground hover:bg-primary-hover`,secondary:`${r} border border-border bg-card hover:bg-accent`,destructive:`${r} bg-destructive text-destructive-foreground`};e.s(["x",0,t,"r",0,"rounded-lg border border-border bg-card p-6 text-card-foreground shadow-sm","w",0,"h-9 w-full rounded-md border border-input bg-background px-3 font-mono text-code","z",0,"grid gap-1"])},94984,e=>{var r=e.i(43476);e.s(["f",0,function({state:e,testId:t}){switch(e.kind){case"idle":return null;case"done":return(0,r.jsx)("p",{role:"status","data-testid":t,className:"rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-tone-ok-fg",children:e.message});case"refused":case"openNetwork":return(0,r.jsx)("p",{role:"alert","data-testid":t,className:"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg",children:e.message})}}])},58107,e=>{var r=e.i(43476),t=e.i(74080),n=e.i(30402);e.s(["f",0,function({children:e,pending:o,kind:d="primary",testId:i}){let a=(0,t.useFormStatus)();return(0,r.jsx)("button",{type:"submit",className:n.x[d],disabled:a.pending,"aria-busy":a.pending,"data-testid":i,children:a.pending?o:e})}])},97e3,e=>{var r=e.i(43476);let t={waiting:"border-tone-waiting-border bg-tone-waiting-bg text-tone-waiting-fg",active:"border-tone-active-border bg-tone-active-bg text-tone-active-fg",ok:"border-tone-ok-border bg-tone-ok-bg text-tone-ok-fg",attention:"border-tone-attention-border bg-tone-attention-bg text-tone-attention-fg",ended:"border-tone-ended-border bg-tone-ended-bg text-tone-ended-fg"};e.s(["T",0,function({tone:e,label:n}){return(0,r.jsx)("span",{className:`inline-flex items-center rounded-full border px-2 text-caption ${t[e]}`,children:n})},"E",0,function({children:e,isMono:t=!1}){return(0,r.jsx)("span",{className:`inline-flex items-center rounded-md border border-border px-2 text-caption ${t?"font-mono":""}`,children:e})}])},38314,e=>{var r=e.i(43476);let t={primary:"bg-primary text-primary-foreground hover:bg-primary-hover",secondary:"border border-border bg-card text-card-foreground hover:bg-accent"};e.s(["f",0,function({isPending:e,pendingLabel:n,variant:o="secondary",children:d,className:i="",disabled:a,...s}){return(0,r.jsx)("button",{...s,disabled:!0===a||e,"aria-busy":e,className:`inline-flex h-9 items-center gap-2 rounded-md px-4 disabled:cursor-not-allowed disabled:opacity-70 ${t[o]} ${i}`,children:e?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{"aria-hidden":"true",className:"size-3.5 animate-spin rounded-full border-2 border-current border-t-transparent"}),n]}):d})}])}])})();
@@ -1 +0,0 @@
1
- (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,88374,e=>{let r=[{kind:"none",label:"No credential"},{kind:"bearer",label:"Bearer token"},{kind:"clientCredentials",label:"OAuth client credentials"}],n={kind:"personSignIn",label:"Each person signs in"},s=[...r,n];e.s(["a",0,s,"x",0,r,"m",0,n,"G",0,function(e){return s.find(({kind:r})=>r===e)?.kind??"bearer"},"C",0,function(e){return r.find(({kind:r})=>r===e)?.kind??"bearer"}])},30402,e=>{let r="inline-flex h-9 items-center justify-center gap-2 rounded-md px-4 font-medium disabled:opacity-60",n={primary:`${r} bg-primary text-primary-foreground hover:bg-primary-hover`,secondary:`${r} border border-border bg-card hover:bg-accent`,destructive:`${r} bg-destructive text-destructive-foreground`};e.s(["x",0,n,"r",0,"rounded-lg border border-border bg-card p-6 text-card-foreground shadow-sm","w",0,"h-9 w-full rounded-md border border-input bg-background px-3 font-mono text-code","z",0,"grid gap-1"])},65818,e=>{var r=e.i(43476),n=e.i(30402);e.s(["f",0,function({choices:e,current:s,help:i,refusal:a}){let t=null===s||e.some(e=>e.shipId===s.shipId)?e:[s,...e];return(0,r.jsxs)("label",{className:n.z,children:[(0,r.jsx)("span",{children:"Owner"}),(0,r.jsxs)("select",{className:n.w,name:"ownerShipId",defaultValue:s?.shipId??"",required:!0,"data-testid":"owner-field",children:[null===s?(0,r.jsx)("option",{value:"",disabled:!0,children:"Pick its owner"}):null,t.map(e=>(0,r.jsx)("option",{value:e.shipId,children:e.name},e.shipId))]}),(0,r.jsx)("span",{className:"text-muted-foreground",children:a??i})]})}])},83928,e=>{var r=e.i(43476),n=e.i(18566),s=e.i(71645),i=e.i(95187);let a=(0,i.createServerReference)("408819c99996290b362a2ea4e8b39d342b6bf79c81",i.callServer,void 0,i.findSourceMapURL,"decideRequest");var t=e.i(88374),d=e.i(65818);let l=["messages:send","messages:receive"],o={"messages:send":"Send","messages:receive":"Receive","fleet:read":"Read the fleet"};var c=e.i(38314),u=e.i(93633);let p="rounded-md border border-input bg-background px-2 py-1.5";function m({scope:e,isLocked:n}){return(0,r.jsxs)("label",{className:"flex items-center gap-2",children:[n?(0,r.jsx)("input",{type:"checkbox",checked:!0,disabled:!0,"aria-label":o[e]??e}):(0,r.jsx)("input",{type:"checkbox",name:"scope",value:e,"aria-label":o[e]??e}),(0,r.jsx)("span",{children:o[e]??e}),(0,r.jsx)("span",{className:"font-mono text-caption text-muted-foreground",children:e}),n?(0,r.jsx)("span",{className:"text-caption text-muted-foreground",children:"(always)"}):null]})}function b(e,r){let n=e.get(r);return"string"==typeof n?n:""}function g({request:e,heldScopes:n,owners:i,working:a,failure:o,onDecide:h}){let[x,v]=(0,s.useState)("bearer"),f=function(e){switch(e.subject.kind){case"client":return e.subject.clientName;case"server":return URL.canParse(e.subject.url)?new URL(e.subject.url).host:e.subject.url}}(e),j="server"===e.subject.kind;return(0,r.jsxs)("section",{className:"grid gap-3 rounded-lg border border-border bg-card p-6 text-card-foreground shadow-sm",children:[(0,r.jsxs)("h2",{className:"text-heading font-semibold",children:["Approve ",f]}),(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault();let r=new FormData(e.currentTarget),n=r.getAll("scope").filter(e=>"string"==typeof e);h({kind:"approve",name:b(r,"name"),ownerShipId:b(r,"ownerShipId"),scopes:n,server:j?{credentialKind:(0,t.C)(b(r,"credentialKind")),token:b(r,"token"),clientId:b(r,"clientId"),clientSecret:b(r,"clientSecret"),issuer:b(r,"issuer"),scope:b(r,"scope-requested"),concurrencyLimit:Number(b(r,"concurrencyLimit"))}:void 0})},className:"grid gap-3",children:[(0,r.jsxs)("label",{className:"grid gap-1",children:[(0,r.jsx)("span",{children:"Proxy ship's name"}),(0,r.jsx)("input",{name:"name",defaultValue:f.toLowerCase().replaceAll(/[^a-z0-9]+/g,"-").replaceAll(/^-+|-+$/g,""),required:!0,className:p})]}),(0,r.jsx)(d.f,{choices:i.isOk?i.value:[],current:null,help:"A person ship or argo. It answers for this party.",refusal:i.isOk?void 0:i.refusal}),(0,r.jsxs)("fieldset",{className:"grid gap-1",children:[(0,r.jsx)("legend",{children:"Scopes"}),l.map(e=>(0,r.jsx)(m,{scope:e,isLocked:!0},e)),n.filter(e=>!l.includes(e)).map(e=>(0,r.jsx)(m,{scope:e,isLocked:!1},e))]}),j?(0,r.jsxs)("fieldset",{className:"grid gap-2",children:[(0,r.jsx)("legend",{children:"The server's credential"}),(0,r.jsxs)("label",{className:"grid gap-1",children:[(0,r.jsx)("span",{children:"Credential"}),(0,r.jsx)("select",{name:"credentialKind",value:x,onChange:e=>{v((0,t.C)(e.target.value))},className:p,children:t.x.map(({kind:e,label:n})=>(0,r.jsx)("option",{value:e,children:n},e))})]}),"none"===x?null:"bearer"===x?(0,r.jsxs)("label",{className:"grid gap-1",children:[(0,r.jsx)("span",{children:"Bearer token"}),(0,r.jsx)("input",{type:"password",name:"token",className:p})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("label",{className:"grid gap-1",children:[(0,r.jsx)("span",{children:"Client id"}),(0,r.jsx)("input",{name:"clientId",className:p})]}),(0,r.jsxs)("label",{className:"grid gap-1",children:[(0,r.jsx)("span",{children:"Client secret"}),(0,r.jsx)("input",{type:"password",name:"clientSecret",className:p})]}),(0,r.jsxs)("label",{className:"grid gap-1",children:[(0,r.jsx)("span",{children:"Issuer"}),(0,r.jsx)("input",{type:"url",name:"issuer",className:p})]}),(0,r.jsxs)("label",{className:"grid gap-1",children:[(0,r.jsx)("span",{children:"Scope"}),(0,r.jsx)("input",{name:"scope-requested",className:p})]})]}),(0,r.jsxs)("label",{className:"grid gap-1",children:[(0,r.jsx)("span",{children:"Calls at once"}),(0,r.jsx)("input",{type:"number",name:"concurrencyLimit",min:1,max:10,defaultValue:4,className:p})]})]}):null,void 0===o?null:(0,r.jsx)(u.f,{message:o,isFailure:!0}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(c.f,{type:"submit",variant:"primary","data-testid":"overview-approve",isPending:"approve"===a,pendingLabel:"Approving...",disabled:void 0!==a,children:"Approve"}),(0,r.jsx)(c.f,{type:"button","data-testid":"overview-deny",isPending:"deny"===a,pendingLabel:"Denying...",disabled:void 0!==a,onClick:()=>{h({kind:"deny"})},children:"Deny"})]})]})]})}e.s(["DecisionPanel",0,function({fleetId:e,request:i,heldScopes:t,owners:d}){let l=(0,n.useRouter)(),[o,c]=(0,s.useState)(),[u,p]=(0,s.useState)(),[,m]=(0,s.useTransition)();return(0,r.jsx)(g,{request:i,heldScopes:t,owners:d,working:o,failure:u,onDecide:r=>{c(r.kind),p(void 0),m(async()=>{let n=await a({fleet:e,requestId:i.requestId,input:r});n.isOk?l.push(`/overview?${new URLSearchParams({fleet:e,decided:r.kind}).toString()}`):(c(void 0),p(n.message))})}})}],83928)},10660,e=>{var r=e.i(71645),n=e.i(18566);e.s(["LiveRefresh",0,function({fleetId:e}){let s;return s=(0,n.useRouter)(),(0,r.useEffect)(()=>{let r=new EventSource(`/overview/changes?fleet=${encodeURIComponent(e)}`);return r.onmessage=()=>{s.refresh()},()=>{r.close()}},[e,s]),(0,r.useEffect)(()=>{let r,n=()=>{let n="visible"===document.visibilityState&&document.hasFocus();n&&void 0===r?r=new EventSource(`/overview/focus?fleet=${encodeURIComponent(e)}`):n||void 0===r||(r.close(),r=void 0)};return n(),window.addEventListener("focus",n),window.addEventListener("blur",n),document.addEventListener("visibilitychange",n),()=>{window.removeEventListener("focus",n),window.removeEventListener("blur",n),document.removeEventListener("visibilitychange",n),r?.close()}},[e]),null}],10660)},38314,e=>{var r=e.i(43476);let n={primary:"bg-primary text-primary-foreground hover:bg-primary-hover",secondary:"border border-border bg-card text-card-foreground hover:bg-accent"};e.s(["f",0,function({isPending:e,pendingLabel:s,variant:i="secondary",children:a,className:t="",disabled:d,...l}){return(0,r.jsx)("button",{...l,disabled:!0===d||e,"aria-busy":e,className:`inline-flex h-9 items-center gap-2 rounded-md px-4 disabled:cursor-not-allowed disabled:opacity-70 ${n[i]} ${t}`,children:e?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{"aria-hidden":"true",className:"size-3.5 animate-spin rounded-full border-2 border-current border-t-transparent"}),s]}):a})}])},93633,e=>{var r=e.i(43476);e.s(["f",0,function({message:e,isFailure:n}){return n?(0,r.jsx)("p",{role:"alert","data-testid":"overview-failure",className:"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg",children:e}):(0,r.jsx)("p",{role:"status","data-testid":"overview-success",className:"rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-tone-ok-fg",children:e})}])}])})();
@@ -1,3 +0,0 @@
1
- @font-face{font-family:geistSans;src:url(../media/geist_variable-s.p.0mrjj4bg00-he.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:geistSans Fallback;src:local(Arial);ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.0%;size-adjust:106.28%}.FBhtWW_className{font-family:geistSans,geistSans Fallback}.FBhtWW_variable{--font-geist-sans:"geistSans", "geistSans Fallback"}
2
- @font-face{font-family:geistMono;src:url(../media/geist_mono_variable-s.p.3ms9vq719j3f8.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:geistMono Fallback;src:local(Arial);ascent-override:76.43%;descent-override:22.43%;line-gap-override:0.0%;size-adjust:131.49%}.oS6g6q_className{font-family:geistMono,geistMono Fallback}.oS6g6q_variable{--font-geist-mono:"geistMono", "geistMono Fallback"}
3
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:var(--font-sans);--font-mono:var(--font-mono);--spacing:.25rem;--container-xs:20rem;--container-5xl:64rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--radius-xs:var(--radius-xs);--radius-sm:var(--radius-sm);--radius-md:var(--radius-md);--radius-lg:var(--radius-lg);--radius-xl:var(--radius-xl);--radius-2xl:var(--radius-2xl);--shadow-sm:var(--shadow-sm);--shadow-md:var(--shadow-md);--shadow-lg:var(--shadow-lg);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--ease-standard:var(--ease-standard);--ease-exit:var(--ease-exit);--text-micro:var(--text-micro);--text-micro--line-height:var(--text-micro--line-height);--text-caption:var(--text-caption);--text-caption--line-height:var(--text-caption--line-height);--text-meta:var(--text-meta);--text-meta--line-height:var(--text-meta--line-height);--text-body:var(--text-body);--text-body--line-height:var(--text-body--line-height);--text-section:var(--text-section);--text-section--line-height:var(--text-section--line-height);--text-body-touch:var(--text-body-touch);--text-body-touch--line-height:var(--text-body-touch--line-height);--text-input-touch:var(--text-input-touch);--text-input-touch--line-height:var(--text-input-touch--line-height);--text-heading:var(--text-heading);--text-heading--line-height:var(--text-heading--line-height);--text-heading-touch:var(--text-heading-touch);--text-heading-touch--line-height:var(--text-heading-touch--line-height);--text-title:var(--text-title);--text-title--line-height:var(--text-title--line-height);--text-title-touch:var(--text-title-touch);--text-title-touch--line-height:var(--text-title-touch--line-height);--text-metric:var(--text-metric);--text-metric--line-height:var(--text-metric--line-height);--text-id:var(--text-id);--text-id--line-height:var(--text-id--line-height);--text-code:var(--text-code);--text-code--line-height:var(--text-code--line-height);--animate-highlight:highlight-fade var(--duration-highlight) var(--ease-standard)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border)}body{background-color:var(--background);font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--tw-leading,var(--text-body--line-height));color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:focus-visible{outline-style:var(--tw-outline-style);outline-offset:2px;outline-width:2px;outline-color:var(--ring)}button,[role=button],[data-slot=button],[role=menuitem],[role=menuitemcheckbox],[role=menuitemradio],[role=option],[role=tab],[role=checkbox],[role=switch]{cursor:pointer}:is(button,[role=button],[data-slot=button],[role=menuitem],[role=menuitemcheckbox],[role=menuitemradio],[role=option],[role=tab],[role=checkbox],[role=switch]):is(:disabled,[aria-disabled=true],[data-disabled]){cursor:default}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;animation-duration:0s!important;animation-iteration-count:1!important}}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-1\/2{top:50%}.top-4{top:calc(var(--spacing) * 4)}.right-0{right:0}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:0}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-1\/2{left:50%}.isolate{isolation:isolate}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-px{margin-top:1px}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.ml-1{margin-left:var(--spacing)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.size-\(--size-control\){width:var(--size-control);height:var(--size-control)}.size-\(--size-control-touch\){width:var(--size-control-touch);height:var(--size-control-touch)}.size-\(--size-icon\){width:var(--size-icon);height:var(--size-icon)}.size-\(--size-icon-sm\){width:var(--size-icon-sm);height:var(--size-icon-sm)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.h-\(--size-control\){height:var(--size-control)}.h-\(--size-control-sm\){height:var(--size-control-sm)}.h-\(--size-control-touch\){height:var(--size-control-touch)}.h-\(--size-control-xs\){height:var(--size-control-xs)}.h-\(--size-header\){height:var(--size-header)}.h-1{height:var(--spacing)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-8\.5{height:calc(var(--spacing) * 8.5)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-\(--available-height\){max-height:var(--available-height)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-\[90dvh\]{max-height:90dvh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[calc\(100dvh-var\(--spacing\)\*8\)\]{max-height:calc(100dvh - var(--spacing) * 8)}.max-h-\[min\(60dvh\,var\(--spacing\)\*100\)\]{max-height:min(60dvh, var(--spacing) * 100)}.min-h-0{min-height:0}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-28{min-height:calc(var(--spacing) * 28)}.min-h-dvh{min-height:100dvh}.w-\(--anchor-width\){width:var(--anchor-width)}.w-\(--size-control\){width:var(--size-control)}.w-\(--size-control-sm\){width:var(--size-control-sm)}.w-\(--size-control-touch\){width:var(--size-control-touch)}.w-\(--size-control-xs\){width:var(--size-control-xs)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-60{width:calc(var(--spacing) * 60)}.w-64{width:calc(var(--spacing) * 64)}.w-\[min\(24rem\,calc\(100vw-2rem\)\)\]{width:min(24rem,100vw - 2rem)}.w-\[min\(36rem\,calc\(100vw-2rem\)\)\]{width:min(36rem,100vw - 2rem)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-5xl{max-width:var(--container-5xl)}.max-w-110{max-width:calc(var(--spacing) * 110)}.max-w-\[calc\(100\%-var\(--spacing\)\*8\)\]{max-width:calc(100% - var(--spacing) * 8)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-5{min-width:calc(var(--spacing) * 5)}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-48{min-width:calc(var(--spacing) * 48)}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-full{flex-basis:100%}.border-collapse{border-collapse:collapse}.origin-\(--transform-origin\){transform-origin:var(--transform-origin)}.-translate-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-highlight{animation:var(--animate-highlight)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.list-disc{list-style-type:disc}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[1rem_1fr\]{grid-template-columns:1rem 1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.content-center{align-content:center}.content-start{align-content:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.justify-items-center{justify-items:center}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.justify-self-start{justify-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-t-2xl{border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl)}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-border{border-color:var(--border)}.border-current{border-color:currentColor}.border-input{border-color:var(--input)}.border-primary{border-color:var(--primary)}.border-tone-active-border{border-color:var(--tone-active-border)}.border-tone-attention-border{border-color:var(--tone-attention-border)}.border-tone-ended-border{border-color:var(--tone-ended-border)}.border-tone-ok-border{border-color:var(--tone-ok-border)}.border-tone-waiting-border{border-color:var(--tone-waiting-border)}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.bg-\(--overlay\){background-color:var(--overlay)}.bg-accent{background-color:var(--accent)}.bg-background{background-color:var(--background)}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive{background-color:var(--destructive)}.bg-foreground{background-color:var(--foreground)}.bg-highlight{background-color:var(--highlight)}.bg-muted{background-color:var(--muted)}.bg-overlay{background-color:var(--overlay)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.bg-tone-active-bg{background-color:var(--tone-active-bg)}.bg-tone-attention-bg{background-color:var(--tone-attention-bg)}.bg-tone-ended-bg{background-color:var(--tone-ended-bg)}.bg-tone-ok-bg{background-color:var(--tone-ok-bg)}.bg-tone-waiting-bg{background-color:var(--tone-waiting-bg)}.bg-transparent{background-color:#0000}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:0}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-1\.25{padding-inline:calc(var(--spacing) * 1.25)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-\[max\(calc\(var\(--spacing\)\*4\)\,env\(safe-area-inset-bottom\)\)\]{padding-bottom:max(calc(var(--spacing) * 4), env(safe-area-inset-bottom))}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-body{font-size:var(--text-body);line-height:var(--tw-leading,var(--text-body--line-height))}.text-body-touch{font-size:var(--text-body-touch);line-height:var(--tw-leading,var(--text-body-touch--line-height))}.text-caption{font-size:var(--text-caption);line-height:var(--tw-leading,var(--text-caption--line-height))}.text-code{font-size:var(--text-code);line-height:var(--tw-leading,var(--text-code--line-height))}.text-heading{font-size:var(--text-heading);line-height:var(--tw-leading,var(--text-heading--line-height))}.text-meta{font-size:var(--text-meta);line-height:var(--tw-leading,var(--text-meta--line-height))}.text-micro{font-size:var(--text-micro);line-height:var(--tw-leading,var(--text-micro--line-height))}.text-section{font-size:var(--text-section);line-height:var(--tw-leading,var(--text-section--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-title{font-size:var(--text-title);line-height:var(--tw-leading,var(--text-title--line-height))}.text-title-touch{font-size:var(--text-title-touch);line-height:var(--tw-leading,var(--text-title-touch--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-background{color:var(--background)}.text-card-foreground{color:var(--card-foreground)}.text-destructive-foreground{color:var(--destructive-foreground)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-tone-active-fg{color:var(--tone-active-fg)}.text-tone-attention-fg{color:var(--tone-attention-fg)}.text-tone-ended-fg{color:var(--tone-ended-fg)}.text-tone-ok-fg{color:var(--tone-ok-fg)}.text-tone-waiting-fg{color:var(--tone-waiting-fg)}.uppercase{text-transform:uppercase}.shadow-lg{--tw-shadow:var(--shadow-lg);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:var(--shadow-md);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:var(--shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline-2{outline-style:var(--tw-outline-style);outline-width:2px}.outline-offset-2{outline-offset:2px}.outline-ring{outline-color:var(--ring)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-\[background-color\,border-color\,opacity\]{transition-property:background-color,border-color,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-\(--duration-base\){--tw-duration:var(--duration-base);transition-duration:var(--duration-base)}.duration-\(--duration-fast\){--tw-duration:var(--duration-fast);transition-duration:var(--duration-fast)}.duration-\(--duration-slow\){--tw-duration:var(--duration-slow);transition-duration:var(--duration-slow)}.ease-\(--ease-standard\){--tw-ease:var(--ease-standard);transition-timing-function:var(--ease-standard)}.outline-dashed{--tw-outline-style:dashed;outline-style:dashed}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:border-primary:hover{border-color:var(--primary)}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-card:hover{background-color:var(--card)}.hover\:bg-primary-hover:hover{background-color:var(--primary-hover)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-70:disabled{opacity:.7}:where([data-side=bottom]) .in-data-\[side\=bottom\]\:py-2{padding-block:calc(var(--spacing) * 2)}:where([data-side=bottom]) .in-data-\[side\=bottom\]\:text-section{font-size:var(--text-section);line-height:var(--tw-leading,var(--text-section--line-height))}:where([data-side=right]) .in-data-\[side\=right\]\:flex-row{flex-direction:row}:where([data-side=right]) .in-data-\[side\=right\]\:justify-end{justify-content:flex-end}:where([data-side=right]) .in-data-\[side\=right\]\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}:where([data-side=right]) .in-data-\[side\=right\]\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}:where([data-side=right]) .in-data-\[side\=right\]\:p-6{padding:calc(var(--spacing) * 6)}:where([data-side=right]) .in-data-\[side\=right\]\:px-6{padding-inline:calc(var(--spacing) * 6)}:where([data-side=right]) .in-data-\[side\=right\]\:py-4{padding-block:calc(var(--spacing) * 4)}:where([data-side=right]) .in-data-\[side\=right\]\:py-5{padding-block:calc(var(--spacing) * 5)}:where([data-side=right]) .in-data-\[side\=right\]\:pr-14{padding-right:calc(var(--spacing) * 14)}.aria-disabled\:opacity-60[aria-disabled=true]{opacity:.6}.aria-expanded\:bg-accent[aria-expanded=true]{background-color:var(--accent)}.aria-\[current\=true\]\:border-ring[aria-current=true]{border-color:var(--ring)}.data-closed\:animate-out[data-closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-closed\:fade-out-0[data-closed]{--tw-exit-opacity:0}.data-closed\:zoom-out-95[data-closed]{--tw-exit-scale:.95}.data-disabled\:pointer-events-none[data-disabled]{pointer-events:none}.data-disabled\:opacity-45[data-disabled],.data-disabled\:not-data-loading\:opacity-45[data-disabled]:not([data-loading]){opacity:.45}.data-highlighted\:bg-accent[data-highlighted]{background-color:var(--accent)}.data-loading\:cursor-progress[data-loading]{cursor:progress}.data-open\:animate-in[data-open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-open\:fade-in-0[data-open]{--tw-enter-opacity:0}.data-open\:zoom-in-95[data-open]{--tw-enter-scale:.95}.data-\[variant\=destructive\]\:text-destructive-text[data-variant=destructive]{color:var(--destructive-text)}@media (prefers-reduced-motion:no-preference){.motion-safe\:data-closed\:slide-out-to-bottom[data-closed]{--tw-exit-translate-y:100%}.motion-safe\:data-closed\:slide-out-to-right[data-closed]{--tw-exit-translate-x:100%}.motion-safe\:data-open\:slide-in-from-bottom[data-open]{--tw-enter-translate-y:100%}.motion-safe\:data-open\:slide-in-from-right[data-open]{--tw-enter-translate-x:100%}}@media (prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}.motion-reduce\:data-closed\:zoom-out-100[data-closed]{--tw-exit-scale:1}.motion-reduce\:data-open\:zoom-in-100[data-open]{--tw-enter-scale:1}}@media not all and (min-width:64rem){.max-lg\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.max-lg\:w-auto{width:auto}}@media not all and (min-width:40rem){.max-sm\:top-0{top:0}.max-sm\:top-auto{top:auto}.max-sm\:bottom-0{bottom:0}.max-sm\:left-0{left:0}.max-sm\:col-span-2{grid-column:span 2/span 2}.max-sm\:col-start-1{grid-column-start:1}.max-sm\:col-start-2{grid-column-start:2}.max-sm\:row-span-4{grid-row:span 4/span 4}.max-sm\:row-start-1{grid-row-start:1}.max-sm\:row-start-2{grid-row-start:2}.max-sm\:row-start-3{grid-row-start:3}.max-sm\:block{display:block}.max-sm\:flex{display:flex}.max-sm\:grid{display:grid}.max-sm\:hidden{display:none}.max-sm\:h-\(--size-control-touch\){height:var(--size-control-touch)}.max-sm\:h-\(--size-header\){height:var(--size-header)}.max-sm\:h-auto{height:auto}.max-sm\:h-dvh{height:100dvh}.max-sm\:max-h-none{max-height:none}.max-sm\:w-2\/5{width:40%}.max-sm\:w-3\/4{width:75%}.max-sm\:max-w-full{max-width:100%}.max-sm\:grow{flex-grow:1}.max-sm\:translate-x-0{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.max-sm\:translate-y-0{--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.max-sm\:grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.max-sm\:grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.max-sm\:flex-col{flex-direction:column}.max-sm\:content-start{align-content:flex-start}.max-sm\:gap-1{gap:var(--spacing)}.max-sm\:gap-2{gap:calc(var(--spacing) * 2)}.max-sm\:gap-x-2{column-gap:calc(var(--spacing) * 2)}.max-sm\:overflow-y-auto{overflow-y:auto}.max-sm\:rounded-md{border-radius:var(--radius-md)}.max-sm\:rounded-none{border-radius:0}.max-sm\:rounded-t-2xl{border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl)}.max-sm\:border{border-style:var(--tw-border-style);border-width:1px}.max-sm\:border-0{border-style:var(--tw-border-style);border-width:0}.max-sm\:border-x-0{border-inline-style:var(--tw-border-style);border-inline-width:0}.max-sm\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.max-sm\:p-2{padding:calc(var(--spacing) * 2)}.max-sm\:px-0{padding-inline:0}.max-sm\:px-4{padding-inline:calc(var(--spacing) * 4)}.max-sm\:py-3{padding-block:calc(var(--spacing) * 3)}.max-sm\:pb-0{padding-bottom:0}.max-sm\:pb-3{padding-bottom:calc(var(--spacing) * 3)}.max-sm\:pb-\[max\(calc\(var\(--spacing\)\*4\)\,env\(safe-area-inset-bottom\)\)\]{padding-bottom:max(calc(var(--spacing) * 4), env(safe-area-inset-bottom))}.max-sm\:text-left{text-align:left}.max-sm\:text-body-touch{font-size:var(--text-body-touch);line-height:var(--tw-leading,var(--text-body-touch--line-height))}.max-sm\:font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.max-sm\:text-muted-foreground{color:var(--muted-foreground)}}@media (min-width:481px){.min-\[481px\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:40rem){.sm\:top-\[12dvh\]{top:12dvh}.sm\:ml-auto{margin-left:auto}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:w-56{width:calc(var(--spacing) * 56)}.sm\:max-w-\(--size-dialog-md\){max-width:var(--size-dialog-md)}.sm\:max-w-\(--size-dialog-sm\){max-width:var(--size-dialog-sm)}.sm\:max-w-\(--size-sheet\){max-width:var(--size-sheet)}.sm\:translate-y-0{--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-\[10rem_1fr\]{grid-template-columns:10rem 1fr}.sm\:flex-row{flex-direction:row}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}}@media (min-width:48rem){.md\:grid-cols-\[1fr_18rem\]{grid-template-columns:1fr 18rem}}@media not all and (min-width:40rem){.max-sm\:\[\&_\[data-slot\=button\]\]\:h-\(--size-control-touch\) [data-slot=button]{height:var(--size-control-touch)}.max-sm\:\[\&_\[data-slot\=button\]\]\:w-full [data-slot=button]{width:100%}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-\(--size-icon\) svg{width:var(--size-icon);height:var(--size-icon)}.\[\&_svg\]\:size-\(--size-icon-sm\) svg{width:var(--size-icon-sm);height:var(--size-icon-sm)}.\[\&_svg\]\:size-3 svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\]\:size-6 svg{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\]\:text-muted-foreground svg{color:var(--muted-foreground)}.data-\[variant\=destructive\]\:\[\&_svg\]\:text-destructive-text[data-variant=destructive] svg{color:var(--destructive-text)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-\(--size-icon\) svg:not([class*=size-]){width:var(--size-icon);height:var(--size-icon)}.\[\&_svg\:not\(\[class\*\=size-\]\)\]\:size-5 svg:not([class*=size-]){width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--background:#fbfcfd;--card:#fff;--popover:#fff;--muted:#f1f4f7;--secondary:#ecf1f5;--accent:#eaeff4;--sidebar:#f5f7fa;--highlight:#e2f0ff;--overlay:#10161f6b;--foreground:#151b24;--muted-foreground:#5c646f;--destructive-text:#c51e21;--border:#dee2e7;--input:#d4dadf;--ring:#4475ba;--primary:#1a3860;--primary-hover:#102b50;--primary-foreground:#f8fafc;--destructive:#c51e21;--destructive-foreground:#fcfcfc;--tone-waiting-bg:#fff2d6;--tone-waiting-fg:#824c11;--tone-waiting-border:#f0cf98;--tone-active-bg:#e5f2ff;--tone-active-fg:#1653a1;--tone-active-border:#b5d4f8;--tone-ok-bg:#defae6;--tone-ok-fg:#136239;--tone-ok-border:#addfbd;--tone-attention-bg:#ffebe9;--tone-attention-fg:#b7191c;--tone-attention-border:#fcc0ba;--tone-ended-bg:#eef1f4;--tone-ended-fg:#565b63;--tone-ended-border:#cfd5db;--card-foreground:var(--foreground);--popover-foreground:var(--foreground);--secondary-foreground:var(--foreground);--accent-foreground:var(--foreground);--sidebar-foreground:var(--foreground);--font-sans:var(--font-geist-sans,"Geist"), ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:var(--font-geist-mono,"Geist Mono"), ui-monospace, "SF Mono", Menlo, Consolas, monospace;--shadow-sm:0 1px 2px #10161f0f;--shadow-md:0 2px 6px #10161f14;--shadow-lg:0 16px 40px #10161f29, 0 2px 8px #10161f14;--radius:8px;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:12px;--radius-2xl:18px;--radius-full:9999px;--spacing:4px;--text-micro:11px;--text-micro--line-height:14px;--text-caption:12px;--text-caption--line-height:16px;--text-meta:13px;--text-meta--line-height:18px;--text-body:14px;--text-body--line-height:20px;--text-section:15px;--text-section--line-height:20px;--text-body-touch:15px;--text-body-touch--line-height:22px;--text-input-touch:16px;--text-input-touch--line-height:24px;--text-heading:18px;--text-heading--line-height:24px;--text-heading-touch:20px;--text-heading-touch--line-height:26px;--text-title:22px;--text-title--line-height:28px;--text-title-touch:24px;--text-title-touch--line-height:30px;--text-metric:28px;--text-metric--line-height:32px;--text-id:12px;--text-id--line-height:16px;--text-code:13px;--text-code--line-height:20px;--size-control-xs:28px;--size-control-sm:32px;--size-control:36px;--size-control-touch:44px;--size-row-header:40px;--size-row:48px;--size-sidebar:256px;--size-rail:64px;--size-header:56px;--size-tabbar:68px;--size-dialog-sm:512px;--size-dialog-md:560px;--size-palette:600px;--size-sheet:560px;--size-toast:380px;--size-icon-sm:14px;--size-icon:16px;--size-icon-lg:20px;--size-icon-tab:22px;--size-icon-xl:24px;--duration-fast:.15s;--duration-base:.2s;--duration-slow:.3s;--duration-highlight:.6s;--duration-pulse:1.8s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-exit:cubic-bezier(.4, 0, 1, 1)}@supports (color:lab(0% 0 0)){:root{--background:lab(98.84% -.25633 -.7025);--card:lab(100% 0 0);--popover:lab(100% 0 0);--muted:lab(96.1718% -.636458 -1.7537);--secondary:lab(94.7795% -.886709 -2.45281);--accent:lab(94.1991% -1.13466 -3.15061);--sidebar:lab(97.2159% -.510335 -1.40365);--highlight:lab(94.1565% -3.55023 -12.359);--overlay:lab(7.15126% -.757448 -7.10759/.42);--foreground:lab(9.44257% -.882573 -7.1811);--muted-foreground:lab(41.9401% -1.20607 -7.30436);--destructive-text:lab(43.4764% 63.0288 44.9792);--border:lab(89.7912% -1.01018 -2.80142);--input:lab(86.6587% -1.25566 -3.49786);--ring:lab(48.2171% -.19902 -41.9777);--primary:lab(22.9108% .477299 -27.9047);--primary-hover:lab(17.1077% 1.09069 -26.0882);--primary-foreground:lab(98.26% -.383556 -1.05326);--destructive:lab(43.4764% 63.0288 44.9792);--destructive-foreground:lab(98.84% .0000298023 -.0000119209);--tone-waiting-bg:lab(96.0934% 1.75816 17.5194);--tone-waiting-fg:lab(38.1407% 20.1792 41.8366);--tone-waiting-border:lab(85.0466% 6.46147 31.8738);--tone-active-bg:lab(94.7452% -3.09145 -10.616);--tone-active-fg:lab(35.0481% 4.78971 -48.4651);--tone-active-border:lab(83.6242% -4.79585 -21.1849);--tone-ok-bg:lab(95.8995% -12.4059 6.35721);--tone-ok-fg:lab(36.333% -32.0338 16.5382);--tone-ok-border:lab(84.6954% -21.8384 11.2033);--tone-attention-bg:lab(94.7535% 8.58074 4.62652);--tone-attention-fg:lab(40.095% 59.891 42.9038);--tone-attention-border:lab(83.1031% 21.6022 11.7713);--tone-ended-bg:lab(95.0118% -.636339 -1.75368);--tone-ended-fg:lab(38.4771% -.941873 -5.49564);--tone-ended-border:lab(84.9187% -1.25512 -3.49756);--shadow-sm:0 1px 2px lab(7.15126% -.757448 -7.10759/.06);--shadow-md:0 2px 6px lab(7.15126% -.757448 -7.10759/.08);--shadow-lg:0 16px 40px lab(7.15126% -.757448 -7.10759/.16), 0 2px 8px lab(7.15126% -.757448 -7.10759/.08)}}.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#0d1015;--card:#12161c;--popover:#161a20;--muted:#191d22;--secondary:#1f2329;--accent:#20242b;--sidebar:#101419;--highlight:#17273c;--overlay:#0102039e;--foreground:#edf0f3;--muted-foreground:#9ea5af;--destructive-text:#f2716a;--border:#272c32;--input:#333840;--ring:#6fa2db;--primary:#b6d5f4;--primary-hover:#d4e7fc;--primary-foreground:#0e1928;--destructive:#cc3336;--destructive-foreground:#fcfcfc;--tone-waiting-bg:#3c2607;--tone-waiting-fg:#f8cd7d;--tone-waiting-border:#634315;--tone-active-bg:#172c49;--tone-active-fg:#a9d2ff;--tone-active-border:#2b4d7d;--tone-ok-bg:#143320;--tone-ok-fg:#9be5b4;--tone-ok-border:#275639;--tone-attention-bg:#4b1d1b;--tone-attention-fg:#ffb4ad;--tone-attention-border:#883835;--tone-ended-bg:#202328;--tone-ended-fg:#b1b8c1;--tone-ended-border:#393d44;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 2px 6px #00000059;--shadow-lg:0 16px 40px #0000008c, 0 2px 8px #0000004d}@supports (color:lab(0% 0 0)){.dark{--background:lab(4.56739% -.417769 -3.37754);--card:lab(7.18491% -.630595 -4.65493);--popover:lab(8.89656% -.700764 -4.71278);--muted:lab(10.4095% -.676453 -4.36219);--secondary:lab(13.5387% -.73956 -4.72851);--accent:lab(14.1148% -.783846 -5.08703);--sidebar:lab(6.16149% -.531338 -4.06672);--highlight:lab(15.107% -1.361 -15.7353);--overlay:lab(.455816% -.0482127 -.653371/.62);--foreground:lab(94.7798% -.636339 -1.75365);--muted-foreground:lab(67.4768% -1.0519 -5.88543);--destructive-text:lab(63.6309% 50.1648 28.8057);--border:lab(17.5961% -.808239 -5.09725);--input:lab(23.394% -.885412 -5.46975);--ring:lab(64.8496% -5.60537 -34.6175);--primary:lab(83.6683% -5.12746 -19.2326);--primary-hover:lab(90.6759% -3.5378 -12.3533);--primary-foreground:lab(8.17586% -.649236 -12.3421);--destructive:lab(47.0381% 60.1094 37.2059);--destructive-foreground:lab(98.84% .0000298023 -.0000119209);--tone-waiting-bg:lab(17.5567% 8.17178 22.7599);--tone-waiting-fg:lab(85.0863% 8.58706 45.6068);--tone-waiting-border:lab(31.4529% 11.0342 32.3777);--tone-active-bg:lab(17.2774% -.258967 -21.012);--tone-active-fg:lab(82.3866% -5.7745 -28.0371);--tone-active-border:lab(32.1629% -.149235 -31.4833);--tone-ok-bg:lab(18.2944% -15.8427 8.15558);--tone-ok-fg:lab(85.0855% -31.3725 16.1132);--tone-ok-border:lab(32.4765% -22.1729 11.4133);--tone-attention-bg:lab(18.1126% 21.9566 12.6385);--tone-attention-fg:lab(80.5887% 27.8621 15.2822);--tone-attention-border:lab(35.1164% 34.5375 19.9972);--tone-ended-bg:lab(13.5502% -.605464 -3.65328);--tone-ended-fg:lab(74.4403% -.999719 -5.52465);--tone-ended-border:lab(25.7254% -.748262 -4.39403);--shadow-sm:0 1px 2px lab(0% 0 0/.3);--shadow-md:0 2px 6px lab(0% 0 0/.35);--shadow-lg:0 16px 40px lab(0% 0 0/.55), 0 2px 8px lab(0% 0 0/.3)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}@keyframes highlight-fade{0%{background-color:var(--highlight)}}
@@ -1 +0,0 @@
1
- (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,17433,e=>{var r=e.i(43476),t=e.i(18566),a=e.i(71645),n=e.i(38314),i=e.i(93633),d=e.i(95187);let s=(0,d.createServerReference)("40280d908ca33fb0cfafc559b986139267743c737f",d.callServer,void 0,d.findSourceMapURL,"changeMic"),o=(0,d.createServerReference)("40741faa851c4e53de3359cd0685cd83bb3fd630eb",d.callServer,void 0,d.findSourceMapURL,"contribute"),l={request:{label:"Request the mic",pending:"Requesting..."},withdraw:{label:"Withdraw my request",pending:"Withdrawing..."},release:{label:"Release the mic",pending:"Releasing..."}};e.s(["MeetingControls",0,function({fleetId:e,meetingId:d,controls:c}){let u=(0,t.useRouter)(),[b,g]=(0,a.useState)(""),[p,m]=(0,a.useState)(()=>crypto.randomUUID()),[f,h]=(0,a.useState)(),[v,x]=(0,a.useState)(),[,y]=(0,a.useTransition)(),j=({control:e,action:r,onDone:t})=>{h(e),x(void 0),y(async()=>{let e=await r();h(void 0),e.isOk?(t?.(),u.refresh()):x(e.message)})},S=void 0!==f,R=c.filter(e=>"contribute"!==e);return(0,r.jsxs)("div",{className:"grid gap-3",children:[c.includes("contribute")?(0,r.jsxs)("div",{className:"grid gap-2",children:[(0,r.jsxs)("label",{className:"grid gap-1",children:[(0,r.jsx)("span",{children:"Your contribution"}),(0,r.jsx)("textarea",{"data-testid":"meeting-text",rows:4,value:b,onChange:e=>{g(e.target.value)},className:"rounded-md border border-input bg-background p-2"})]}),(0,r.jsx)(n.f,{"data-testid":"meeting-contribute",variant:"primary",className:"justify-self-start",isPending:"contribute"===f,pendingLabel:"Sending...",disabled:S,onClick:()=>{j({control:"contribute",action:()=>o({fleet:e,meetingId:d,text:b,idempotencyKey:p}),onDone:()=>{g(""),m(crypto.randomUUID())}})},children:"Contribute"})]}):null,0===R.length?null:(0,r.jsx)("div",{className:"flex flex-wrap gap-2",children:R.map(t=>(0,r.jsx)(n.f,{"data-testid":`meeting-${t}`,variant:"request"===t?"primary":"secondary",isPending:f===t,pendingLabel:l[t].pending,disabled:S,onClick:()=>{j({control:t,action:()=>s({fleet:e,meetingId:d,change:t})})},children:l[t].label},t))}),void 0===v?null:(0,r.jsx)(i.f,{message:v,isFailure:!0})]})}],17433)},38314,e=>{var r=e.i(43476);let t={primary:"bg-primary text-primary-foreground hover:bg-primary-hover",secondary:"border border-border bg-card text-card-foreground hover:bg-accent"};e.s(["f",0,function({isPending:e,pendingLabel:a,variant:n="secondary",children:i,className:d="",disabled:s,...o}){return(0,r.jsx)("button",{...o,disabled:!0===s||e,"aria-busy":e,className:`inline-flex h-9 items-center gap-2 rounded-md px-4 disabled:cursor-not-allowed disabled:opacity-70 ${t[n]} ${d}`,children:e?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{"aria-hidden":"true",className:"size-3.5 animate-spin rounded-full border-2 border-current border-t-transparent"}),a]}):i})}])},93633,e=>{var r=e.i(43476);e.s(["f",0,function({message:e,isFailure:t}){return t?(0,r.jsx)("p",{role:"alert","data-testid":"overview-failure",className:"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg",children:e}):(0,r.jsx)("p",{role:"status","data-testid":"overview-success",className:"rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-tone-ok-fg",children:e})}])}])})();