@aeolus-fleet/gateway 0.36.0 → 0.36.2

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 (878) hide show
  1. package/dist/adapters/fleet/active-ships.d.ts +8 -0
  2. package/dist/adapters/fleet/active-ships.js +22 -0
  3. package/dist/adapters/fleet/active-ships.js.map +1 -0
  4. package/dist/adapters/fleet/every-listed-ship.d.ts +21 -0
  5. package/dist/adapters/fleet/every-listed-ship.js +28 -0
  6. package/dist/adapters/fleet/every-listed-ship.js.map +1 -0
  7. package/dist/adapters/fleet/fleet-ships.d.ts +1 -3
  8. package/dist/adapters/fleet/fleet-ships.js +5 -22
  9. package/dist/adapters/fleet/fleet-ships.js.map +1 -1
  10. package/dist/adapters/fleet/rest-fleet-door.js +40 -6
  11. package/dist/adapters/fleet/rest-fleet-door.js.map +1 -1
  12. package/dist/adapters/http/party-sign-in-routes.d.ts +7 -0
  13. package/dist/adapters/http/party-sign-in-routes.js +18 -0
  14. package/dist/adapters/http/party-sign-in-routes.js.map +1 -1
  15. package/dist/adapters/http/person-tools.js +3 -2
  16. package/dist/adapters/http/person-tools.js.map +1 -1
  17. package/dist/adapters/http/slack-routes.d.ts +2 -0
  18. package/dist/adapters/http/slack-routes.js +12 -4
  19. package/dist/adapters/http/slack-routes.js.map +1 -1
  20. package/dist/adapters/mcp/mcp-servers.d.ts +8 -2
  21. package/dist/adapters/mcp/mcp-servers.js +8 -4
  22. package/dist/adapters/mcp/mcp-servers.js.map +1 -1
  23. package/dist/adapters/prisma/basket-entries.js +4 -2
  24. package/dist/adapters/prisma/basket-entries.js.map +1 -1
  25. package/dist/adapters/prisma/connected-chats.d.ts +4 -0
  26. package/dist/adapters/prisma/connected-chats.js +21 -0
  27. package/dist/adapters/prisma/connected-chats.js.map +1 -0
  28. package/dist/adapters/prisma/fleet-forgetter.js +1 -1
  29. package/dist/adapters/prisma/fleet-forgetter.js.map +1 -1
  30. package/dist/adapters/prisma/generated/browser.d.ts +6 -1
  31. package/dist/adapters/prisma/generated/client.d.ts +6 -1
  32. package/dist/adapters/prisma/generated/internal/class.d.ts +11 -0
  33. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  34. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  35. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +95 -1
  36. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +19 -1
  37. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  38. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +19 -0
  39. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +19 -1
  40. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  41. package/dist/adapters/prisma/generated/models/BasketEntry.d.ts +114 -18
  42. package/dist/adapters/prisma/generated/models/ItemOutcome.d.ts +91 -1
  43. package/dist/adapters/prisma/generated/models/OpenedDelivery.d.ts +95 -2
  44. package/dist/adapters/prisma/generated/models/Party.d.ts +32 -1
  45. package/dist/adapters/prisma/generated/models/SlackLinkStep.d.ts +1005 -0
  46. package/dist/adapters/prisma/generated/models/SlackLinkStep.js +2 -0
  47. package/dist/adapters/prisma/generated/models/SlackLinkStep.js.map +1 -0
  48. package/dist/adapters/prisma/generated/models.d.ts +1 -0
  49. package/dist/adapters/prisma/item-outcomes.d.ts +6 -1
  50. package/dist/adapters/prisma/item-outcomes.js +19 -3
  51. package/dist/adapters/prisma/item-outcomes.js.map +1 -1
  52. package/dist/adapters/prisma/opened-deliveries.js +5 -0
  53. package/dist/adapters/prisma/opened-deliveries.js.map +1 -1
  54. package/dist/adapters/prisma/party-store.js +4 -1
  55. package/dist/adapters/prisma/party-store.js.map +1 -1
  56. package/dist/adapters/prisma/slack-link-steps.d.ts +8 -0
  57. package/dist/adapters/prisma/slack-link-steps.js +28 -0
  58. package/dist/adapters/prisma/slack-link-steps.js.map +1 -0
  59. package/dist/adapters/prisma/slack-posts.js +4 -3
  60. package/dist/adapters/prisma/slack-posts.js.map +1 -1
  61. package/dist/adapters/slack/slack-messages.d.ts +2 -0
  62. package/dist/adapters/slack/slack-messages.js +124 -18
  63. package/dist/adapters/slack/slack-messages.js.map +1 -1
  64. package/dist/adapters/trpc/router.d.ts +54 -2
  65. package/dist/adapters/trpc/router.js +25 -1
  66. package/dist/adapters/trpc/router.js.map +1 -1
  67. package/dist/app.js +39 -13
  68. package/dist/app.js.map +1 -1
  69. package/dist/core/mcp-out/grant-calls.js +1 -1
  70. package/dist/core/mcp-out/grant-calls.js.map +1 -1
  71. package/dist/core/mcp-out/hand-call.js +1 -1
  72. package/dist/core/mcp-out/hand-call.js.map +1 -1
  73. package/dist/core/mcp-out/keep-server-title.d.ts +13 -0
  74. package/dist/core/mcp-out/keep-server-title.js +14 -0
  75. package/dist/core/mcp-out/keep-server-title.js.map +1 -0
  76. package/dist/core/mcp-out/ports.d.ts +10 -0
  77. package/dist/core/parties/approve-party.js +1 -1
  78. package/dist/core/parties/approve-party.js.map +1 -1
  79. package/dist/core/parties/party.d.ts +2 -0
  80. package/dist/core/parties/party.js.map +1 -1
  81. package/dist/core/parties/ports.d.ts +5 -0
  82. package/dist/core/party-grants/listing-connection.js +2 -2
  83. package/dist/core/party-grants/listing-connection.js.map +1 -1
  84. package/dist/core/party-grants/tell-sign-in-needed.d.ts +2 -0
  85. package/dist/core/party-grants/tell-sign-in-needed.js +16 -4
  86. package/dist/core/party-grants/tell-sign-in-needed.js.map +1 -1
  87. package/dist/core/people/act-in-place.d.ts +42 -0
  88. package/dist/core/people/act-in-place.js +26 -0
  89. package/dist/core/people/act-in-place.js.map +1 -0
  90. package/dist/core/people/answer-delivery.js +13 -1
  91. package/dist/core/people/answer-delivery.js.map +1 -1
  92. package/dist/core/people/basket.d.ts +32 -10
  93. package/dist/core/people/basket.js +24 -6
  94. package/dist/core/people/basket.js.map +1 -1
  95. package/dist/core/people/count-basket.d.ts +4 -3
  96. package/dist/core/people/count-basket.js +9 -3
  97. package/dist/core/people/count-basket.js.map +1 -1
  98. package/dist/core/people/done-delivery.js +1 -1
  99. package/dist/core/people/done-delivery.js.map +1 -1
  100. package/dist/core/people/finish-own-step.js +2 -2
  101. package/dist/core/people/finish-own-step.js.map +1 -1
  102. package/dist/core/people/inbox-entry.d.ts +17 -1
  103. package/dist/core/people/inbox-entry.js +28 -1
  104. package/dist/core/people/inbox-entry.js.map +1 -1
  105. package/dist/core/people/item-job.d.ts +3 -1
  106. package/dist/core/people/item-job.js +5 -1
  107. package/dist/core/people/item-job.js.map +1 -1
  108. package/dist/core/people/item-outcome.d.ts +21 -2
  109. package/dist/core/people/item-outcome.js.map +1 -1
  110. package/dist/core/people/item-places.d.ts +26 -0
  111. package/dist/core/people/item-places.js +12 -0
  112. package/dist/core/people/item-places.js.map +1 -0
  113. package/dist/core/people/open-delivery.d.ts +6 -6
  114. package/dist/core/people/open-delivery.js +13 -10
  115. package/dist/core/people/open-delivery.js.map +1 -1
  116. package/dist/core/people/opened-of.d.ts +5 -1
  117. package/dist/core/people/opened-of.js +5 -1
  118. package/dist/core/people/opened-of.js.map +1 -1
  119. package/dist/core/people/ports.d.ts +40 -3
  120. package/dist/core/people/put-in-basket.d.ts +8 -6
  121. package/dist/core/people/put-in-basket.js +16 -5
  122. package/dist/core/people/put-in-basket.js.map +1 -1
  123. package/dist/core/people/read-basket.d.ts +8 -3
  124. package/dist/core/people/read-basket.js +8 -10
  125. package/dist/core/people/read-basket.js.map +1 -1
  126. package/dist/core/people/read-bridge-home.d.ts +39 -11
  127. package/dist/core/people/read-bridge-home.js +74 -12
  128. package/dist/core/people/read-bridge-home.js.map +1 -1
  129. package/dist/core/people/read-chats.d.ts +21 -0
  130. package/dist/core/people/read-chats.js +20 -0
  131. package/dist/core/people/read-chats.js.map +1 -0
  132. package/dist/core/people/read-inbox.d.ts +19 -9
  133. package/dist/core/people/read-inbox.js +57 -15
  134. package/dist/core/people/read-inbox.js.map +1 -1
  135. package/dist/core/people/read-record.d.ts +37 -11
  136. package/dist/core/people/read-record.js +44 -12
  137. package/dist/core/people/read-record.js.map +1 -1
  138. package/dist/core/people/read-send-to.d.ts +23 -0
  139. package/dist/core/people/read-send-to.js +37 -0
  140. package/dist/core/people/read-send-to.js.map +1 -0
  141. package/dist/core/people/read-your-fleet.d.ts +19 -0
  142. package/dist/core/people/read-your-fleet.js +22 -0
  143. package/dist/core/people/read-your-fleet.js.map +1 -0
  144. package/dist/core/people/remove-from-basket.d.ts +2 -1
  145. package/dist/core/people/remove-from-basket.js +4 -1
  146. package/dist/core/people/remove-from-basket.js.map +1 -1
  147. package/dist/core/people/routing.d.ts +13 -4
  148. package/dist/core/people/routing.js +14 -0
  149. package/dist/core/people/routing.js.map +1 -1
  150. package/dist/core/people/send-basket.d.ts +11 -7
  151. package/dist/core/people/send-basket.js +68 -11
  152. package/dist/core/people/send-basket.js.map +1 -1
  153. package/dist/core/people/send-message.d.ts +3 -1
  154. package/dist/core/people/send-message.js +9 -2
  155. package/dist/core/people/send-message.js.map +1 -1
  156. package/dist/core/people/send-stored-answers.d.ts +4 -3
  157. package/dist/core/people/send-stored-answers.js +62 -12
  158. package/dist/core/people/send-stored-answers.js.map +1 -1
  159. package/dist/core/people/stale-item.d.ts +40 -0
  160. package/dist/core/people/stale-item.js +36 -0
  161. package/dist/core/people/stale-item.js.map +1 -0
  162. package/dist/core/people/wake-person.d.ts +3 -1
  163. package/dist/core/people/wake-person.js +4 -2
  164. package/dist/core/people/wake-person.js.map +1 -1
  165. package/dist/core/people/your-fleet.d.ts +44 -0
  166. package/dist/core/people/your-fleet.js +64 -0
  167. package/dist/core/people/your-fleet.js.map +1 -0
  168. package/dist/core/slack/answer-in-slack.d.ts +15 -9
  169. package/dist/core/slack/answer-in-slack.js +43 -18
  170. package/dist/core/slack/answer-in-slack.js.map +1 -1
  171. package/dist/core/slack/ask-to-link-slack.d.ts +28 -0
  172. package/dist/core/slack/ask-to-link-slack.js +31 -0
  173. package/dist/core/slack/ask-to-link-slack.js.map +1 -0
  174. package/dist/core/slack/complete-link.d.ts +6 -1
  175. package/dist/core/slack/complete-link.js +6 -0
  176. package/dist/core/slack/complete-link.js.map +1 -1
  177. package/dist/core/slack/done-in-slack.d.ts +36 -0
  178. package/dist/core/slack/done-in-slack.js +63 -0
  179. package/dist/core/slack/done-in-slack.js.map +1 -0
  180. package/dist/core/slack/edit-slack-posts.d.ts +7 -5
  181. package/dist/core/slack/edit-slack-posts.js +13 -10
  182. package/dist/core/slack/edit-slack-posts.js.map +1 -1
  183. package/dist/core/slack/edited-post-of.d.ts +19 -0
  184. package/dist/core/slack/edited-post-of.js +77 -0
  185. package/dist/core/slack/edited-post-of.js.map +1 -0
  186. package/dist/core/slack/ports.d.ts +68 -10
  187. package/dist/core/slack/pressed-post-of.d.ts +9 -0
  188. package/dist/core/slack/pressed-post-of.js +18 -0
  189. package/dist/core/slack/pressed-post-of.js.map +1 -0
  190. package/dist/core/slack/read-slack-dropped-out.d.ts +23 -0
  191. package/dist/core/slack/read-slack-dropped-out.js +24 -0
  192. package/dist/core/slack/read-slack-dropped-out.js.map +1 -0
  193. package/dist/core/slack/read-slack-link.d.ts +4 -0
  194. package/dist/core/slack/read-slack-link.js +5 -0
  195. package/dist/core/slack/read-slack-link.js.map +1 -1
  196. package/dist/core/slack/show-in-slack.js +8 -7
  197. package/dist/core/slack/show-in-slack.js.map +1 -1
  198. package/dist/core/slack/slack-post-of.d.ts +24 -12
  199. package/dist/core/slack/slack-post-of.js +118 -37
  200. package/dist/core/slack/slack-post-of.js.map +1 -1
  201. package/dist/core/slack/slack-post.d.ts +13 -1
  202. package/dist/core/slack/slack-post.js +16 -1
  203. package/dist/core/slack/slack-post.js.map +1 -1
  204. package/dist/core/slack/slack-press.d.ts +1 -1
  205. package/dist/core/slack/slack-press.js +2 -1
  206. package/dist/core/slack/slack-press.js.map +1 -1
  207. package/dist/person-waiters.js +3 -1
  208. package/dist/person-waiters.js.map +1 -1
  209. package/package.json +2 -1
  210. package/src/adapters/prisma/migrations/20261104090000_basket_entries_note_alone/migration.sql +2 -0
  211. package/src/adapters/prisma/migrations/20261105090000_slack_link_steps/migration.sql +10 -0
  212. package/src/adapters/prisma/migrations/20261106090000_opened_deliveries_withdrawn_steps/migration.sql +2 -0
  213. package/src/adapters/prisma/migrations/20261107090000_opened_deliveries_step_link/migration.sql +2 -0
  214. package/src/adapters/prisma/migrations/20261107100000_opened_deliveries_opened_in/migration.sql +2 -0
  215. package/src/adapters/prisma/migrations/20261108090000_item_outcomes_note_and_seen/migration.sql +4 -0
  216. package/src/adapters/prisma/migrations/20261108090000_parties_display_name/migration.sql +2 -0
  217. package/src/adapters/prisma/migrations/20261109090000_basket_entries_option_label/migration.sql +2 -0
  218. package/src/adapters/prisma/migrations/20261109100000_basket_entries_sent/migration.sql +3 -0
  219. package/src/adapters/prisma/migrations/20261110090000_connected_chats_indexes/migration.sql +5 -0
  220. package/src/adapters/prisma/schema.prisma +41 -6
  221. package/web/.next/BUILD_ID +1 -1
  222. package/web/.next/app-path-routes-manifest.json +10 -8
  223. package/web/.next/build-manifest.json +114 -90
  224. package/web/.next/diagnostics/route-bundle-stats.json +264 -206
  225. package/web/.next/fallback-build-manifest.json +3 -3
  226. package/web/.next/prerender-manifest.json +3 -3
  227. package/web/.next/routes-manifest.json +12 -0
  228. package/web/.next/server/app/(bridge)/bridge/basket/page/app-paths-manifest.json +3 -0
  229. package/web/.next/server/app/{(console) → (bridge)}/bridge/basket/page/build-manifest.json +4 -4
  230. package/web/.next/server/app/{(console) → (bridge)}/bridge/basket/page/next-font-manifest.json +1 -1
  231. package/web/.next/server/app/(bridge)/bridge/basket/page/server-reference-manifest.json +105 -0
  232. package/web/.next/server/app/{(console)/bridge/settings/requests/[requestId] → (bridge)/bridge/basket}/page.js +14 -13
  233. package/web/.next/server/app/(bridge)/bridge/basket/page.js.nft.json +1 -0
  234. package/web/.next/server/app/(bridge)/bridge/basket/page_client-reference-manifest.js +3 -0
  235. package/web/.next/server/app/(bridge)/bridge/changes/route/app-paths-manifest.json +3 -0
  236. package/web/.next/server/app/(bridge)/bridge/changes/route.js +8 -0
  237. package/web/.next/server/app/{(console) → (bridge)}/bridge/changes/route.js.nft.json +1 -1
  238. package/web/.next/server/app/(bridge)/bridge/changes/route_client-reference-manifest.js +3 -0
  239. package/web/.next/server/app/(bridge)/bridge/done/page/app-paths-manifest.json +3 -0
  240. package/web/.next/server/app/{(console) → (bridge)}/bridge/done/page/build-manifest.json +4 -4
  241. package/web/.next/server/app/{(console) → (bridge)}/bridge/done/page/next-font-manifest.json +1 -1
  242. package/web/.next/server/app/(bridge)/bridge/done/page/server-reference-manifest.json +25 -0
  243. package/web/.next/server/app/{(console) → (bridge)}/bridge/done/page.js +15 -14
  244. package/web/.next/server/app/{(console) → (bridge)}/bridge/done/page.js.nft.json +1 -1
  245. package/web/.next/server/app/(bridge)/bridge/done/page_client-reference-manifest.js +3 -0
  246. package/web/.next/server/app/(bridge)/bridge/fleet/page/app-paths-manifest.json +3 -0
  247. package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge/fleet}/page/build-manifest.json +4 -4
  248. package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge/fleet}/page/next-font-manifest.json +1 -1
  249. package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge/fleet}/page/server-reference-manifest.json +3 -3
  250. package/web/.next/server/app/(bridge)/bridge/fleet/page.js +24 -0
  251. package/web/.next/server/app/{(console)/bridge/basket → (bridge)/bridge/fleet}/page.js.nft.json +1 -1
  252. package/web/.next/server/app/(bridge)/bridge/fleet/page_client-reference-manifest.js +3 -0
  253. package/web/.next/server/app/(bridge)/bridge/focus/route/app-paths-manifest.json +3 -0
  254. package/web/.next/server/app/(bridge)/bridge/focus/route.js +8 -0
  255. package/web/.next/server/app/{(console) → (bridge)}/bridge/focus/route.js.nft.json +1 -1
  256. package/web/.next/server/app/(bridge)/bridge/focus/route_client-reference-manifest.js +3 -0
  257. package/web/.next/server/app/(bridge)/bridge/page/app-paths-manifest.json +3 -0
  258. package/web/.next/server/app/{(console) → (bridge)}/bridge/page/build-manifest.json +4 -4
  259. package/web/.next/server/app/{(console) → (bridge)}/bridge/page/next-font-manifest.json +1 -1
  260. package/web/.next/server/app/(bridge)/bridge/page/server-reference-manifest.json +95 -0
  261. package/web/.next/server/app/{(console) → (bridge)}/bridge/page.js +16 -14
  262. package/web/.next/server/app/{(console) → (bridge)}/bridge/page.js.nft.json +1 -1
  263. package/web/.next/server/app/(bridge)/bridge/page_client-reference-manifest.js +3 -0
  264. package/web/.next/server/app/(bridge)/bridge/settings/page/app-paths-manifest.json +3 -0
  265. package/web/.next/server/app/(bridge)/bridge/settings/page/build-manifest.json +23 -0
  266. package/web/.next/server/app/(bridge)/bridge/settings/page/next-font-manifest.json +11 -0
  267. package/web/.next/server/app/(bridge)/bridge/settings/page/server-reference-manifest.json +15 -0
  268. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/page.js +13 -12
  269. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/page.js.nft.json +1 -1
  270. package/web/.next/server/app/(bridge)/bridge/settings/page_client-reference-manifest.js +3 -0
  271. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page/app-paths-manifest.json +3 -0
  272. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page/build-manifest.json +23 -0
  273. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page/next-font-manifest.json +11 -0
  274. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/requests/[requestId]/page/server-reference-manifest.json +6 -6
  275. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page.js +26 -0
  276. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/requests/[requestId]/page.js.nft.json +1 -1
  277. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page_client-reference-manifest.js +3 -0
  278. package/web/.next/server/app/(bridge)/bridge/settings/routing/page/app-paths-manifest.json +3 -0
  279. package/web/.next/server/app/(bridge)/bridge/settings/routing/page/build-manifest.json +23 -0
  280. package/web/.next/server/app/(bridge)/bridge/settings/routing/page/next-font-manifest.json +11 -0
  281. package/web/.next/server/app/(bridge)/bridge/settings/routing/page/react-loadable-manifest.json +1 -0
  282. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/routing/page/server-reference-manifest.json +15 -15
  283. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/routing/page.js +15 -14
  284. package/web/.next/server/app/(bridge)/bridge/settings/routing/page.js.map +5 -0
  285. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/routing/page.js.nft.json +1 -1
  286. package/web/.next/server/app/(bridge)/bridge/settings/routing/page_client-reference-manifest.js +3 -0
  287. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/app-paths-manifest.json +3 -0
  288. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/build-manifest.json +23 -0
  289. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/next-font-manifest.json +11 -0
  290. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/react-loadable-manifest.json +1 -0
  291. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/server-reference-manifest.json +95 -0
  292. package/web/.next/server/app/{(console)/bridge/basket → (bridge)/bridge/stay-aware}/page.js +15 -14
  293. package/web/.next/server/app/(bridge)/bridge/stay-aware/page.js.map +5 -0
  294. package/web/.next/server/app/(bridge)/bridge/stay-aware/page.js.nft.json +1 -0
  295. package/web/.next/server/app/(bridge)/bridge/stay-aware/page_client-reference-manifest.js +3 -0
  296. package/web/.next/server/app/(console)/gateway-off/page/build-manifest.json +4 -4
  297. package/web/.next/server/app/(console)/gateway-off/page/server-reference-manifest.json +1 -1
  298. package/web/.next/server/app/(console)/gateway-off/page.js +2 -2
  299. package/web/.next/server/app/(console)/gateway-off/page.js.nft.json +1 -1
  300. package/web/.next/server/app/(console)/gateway-off/page_client-reference-manifest.js +1 -1
  301. package/web/.next/server/app/(console)/meetings/[meetingId]/page/build-manifest.json +4 -4
  302. package/web/.next/server/app/(console)/meetings/[meetingId]/page/server-reference-manifest.json +3 -3
  303. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js +2 -2
  304. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js.nft.json +1 -1
  305. package/web/.next/server/app/(console)/meetings/[meetingId]/page_client-reference-manifest.js +1 -1
  306. package/web/.next/server/app/(console)/outside-parties/[name]/change/page/build-manifest.json +4 -4
  307. package/web/.next/server/app/(console)/outside-parties/[name]/change/page/server-reference-manifest.json +18 -18
  308. package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js +2 -2
  309. package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js.nft.json +1 -1
  310. package/web/.next/server/app/(console)/outside-parties/[name]/change/page_client-reference-manifest.js +1 -1
  311. package/web/.next/server/app/(console)/outside-parties/[name]/page/build-manifest.json +4 -4
  312. package/web/.next/server/app/(console)/outside-parties/[name]/page/server-reference-manifest.json +8 -8
  313. package/web/.next/server/app/(console)/outside-parties/[name]/page.js +2 -2
  314. package/web/.next/server/app/(console)/outside-parties/[name]/page.js.nft.json +1 -1
  315. package/web/.next/server/app/(console)/outside-parties/[name]/page_client-reference-manifest.js +1 -1
  316. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/build-manifest.json +4 -4
  317. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/server-reference-manifest.json +18 -18
  318. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js +2 -2
  319. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js.nft.json +1 -1
  320. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page_client-reference-manifest.js +1 -1
  321. package/web/.next/server/app/(console)/outside-parties/add/page/build-manifest.json +4 -4
  322. package/web/.next/server/app/(console)/outside-parties/add/page/server-reference-manifest.json +10 -10
  323. package/web/.next/server/app/(console)/outside-parties/add/page.js +2 -2
  324. package/web/.next/server/app/(console)/outside-parties/add/page.js.nft.json +1 -1
  325. package/web/.next/server/app/(console)/outside-parties/add/page_client-reference-manifest.js +1 -1
  326. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/build-manifest.json +4 -4
  327. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/server-reference-manifest.json +2 -2
  328. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js +2 -2
  329. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js.nft.json +1 -1
  330. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page_client-reference-manifest.js +1 -1
  331. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/build-manifest.json +4 -4
  332. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/server-reference-manifest.json +2 -2
  333. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js +2 -2
  334. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js.nft.json +1 -1
  335. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page_client-reference-manifest.js +1 -1
  336. package/web/.next/server/app/(console)/outside-parties/page/build-manifest.json +4 -4
  337. package/web/.next/server/app/(console)/outside-parties/page/server-reference-manifest.json +2 -2
  338. package/web/.next/server/app/(console)/outside-parties/page.js +2 -2
  339. package/web/.next/server/app/(console)/outside-parties/page.js.nft.json +1 -1
  340. package/web/.next/server/app/(console)/outside-parties/page_client-reference-manifest.js +1 -1
  341. package/web/.next/server/app/(console)/parties/page/build-manifest.json +4 -4
  342. package/web/.next/server/app/(console)/parties/page/server-reference-manifest.json +8 -8
  343. package/web/.next/server/app/(console)/parties/page.js +2 -2
  344. package/web/.next/server/app/(console)/parties/page.js.nft.json +1 -1
  345. package/web/.next/server/app/(console)/parties/page_client-reference-manifest.js +1 -1
  346. package/web/.next/server/app/(console)/sign-in/failed/page/build-manifest.json +4 -4
  347. package/web/.next/server/app/(console)/sign-in/failed/page/server-reference-manifest.json +1 -1
  348. package/web/.next/server/app/(console)/sign-in/failed/page.js +2 -2
  349. package/web/.next/server/app/(console)/sign-in/failed/page.js.nft.json +1 -1
  350. package/web/.next/server/app/(console)/sign-in/failed/page_client-reference-manifest.js +1 -1
  351. package/web/.next/server/app/(console)/slack/disconnect/page/build-manifest.json +4 -4
  352. package/web/.next/server/app/(console)/slack/disconnect/page/server-reference-manifest.json +9 -9
  353. package/web/.next/server/app/(console)/slack/disconnect/page.js +2 -2
  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 +9 -9
  358. package/web/.next/server/app/(console)/slack/expose/page.js +2 -2
  359. package/web/.next/server/app/(console)/slack/expose/page.js.nft.json +1 -1
  360. package/web/.next/server/app/(console)/slack/expose/page_client-reference-manifest.js +1 -1
  361. package/web/.next/server/app/(console)/slack/link/route.js.nft.json +1 -1
  362. package/web/.next/server/app/(console)/slack/page/build-manifest.json +4 -4
  363. package/web/.next/server/app/(console)/slack/page/server-reference-manifest.json +9 -9
  364. package/web/.next/server/app/(console)/slack/page.js +2 -2
  365. package/web/.next/server/app/(console)/slack/page.js.nft.json +1 -1
  366. package/web/.next/server/app/(console)/slack/page_client-reference-manifest.js +1 -1
  367. package/web/.next/server/app/(console)/slack/remove/page/build-manifest.json +4 -4
  368. package/web/.next/server/app/(console)/slack/remove/page/server-reference-manifest.json +9 -9
  369. package/web/.next/server/app/(console)/slack/remove/page.js +4 -4
  370. package/web/.next/server/app/(console)/slack/remove/page.js.nft.json +1 -1
  371. package/web/.next/server/app/(console)/slack/remove/page_client-reference-manifest.js +1 -1
  372. package/web/.next/server/app/_global-error/page/build-manifest.json +4 -4
  373. package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  374. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  375. package/web/.next/server/app/_global-error.html +1 -1
  376. package/web/.next/server/app/_global-error.rsc +1 -1
  377. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  378. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  379. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  380. package/web/.next/server/app/_not-found/page/build-manifest.json +4 -4
  381. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  382. package/web/.next/server/app/_not-found/page.js +2 -2
  383. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  384. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  385. package/web/.next/server/app/apple-icon.png/route.js.nft.json +1 -1
  386. package/web/.next/server/app/authorize/failed/page/build-manifest.json +4 -4
  387. package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +1 -1
  388. package/web/.next/server/app/authorize/failed/page.js +3 -2
  389. package/web/.next/server/app/authorize/failed/page.js.nft.json +1 -1
  390. package/web/.next/server/app/authorize/failed/page_client-reference-manifest.js +1 -1
  391. package/web/.next/server/app/authorize/pick/page/build-manifest.json +4 -4
  392. package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +1 -1
  393. package/web/.next/server/app/authorize/pick/page.js +7 -5
  394. package/web/.next/server/app/authorize/pick/page.js.nft.json +1 -1
  395. package/web/.next/server/app/authorize/pick/page_client-reference-manifest.js +1 -1
  396. package/web/.next/server/app/authorize/waiting/approval/page/build-manifest.json +4 -4
  397. package/web/.next/server/app/authorize/waiting/approval/page/server-reference-manifest.json +1 -1
  398. package/web/.next/server/app/authorize/waiting/approval/page.js +3 -2
  399. package/web/.next/server/app/authorize/waiting/approval/page.js.nft.json +1 -1
  400. package/web/.next/server/app/authorize/waiting/approval/page_client-reference-manifest.js +1 -1
  401. package/web/.next/server/app/icon.svg/route.js.nft.json +1 -1
  402. package/web/.next/server/app-paths-manifest.json +10 -8
  403. package/web/.next/server/chunks/0b9d__next-internal_server_app_(bridge)_bridge_changes_route_actions_0wd1c_8tnx6-f.js +3 -0
  404. package/web/.next/server/chunks/[root-of-the-server]__1j0sdz18lzulo._.js +2 -2
  405. package/web/.next/server/chunks/[root-of-the-server]__1o2xxi_001xql._.js +2 -2
  406. package/web/.next/server/chunks/_0up_7s_05-7vm._.js +3 -0
  407. package/web/.next/server/chunks/_0up_7s_05-7vm._.js.map +1 -0
  408. package/web/.next/server/chunks/_0xw0b7avhvg75._.js +1 -1
  409. package/web/.next/server/chunks/_1w2t6c0hpdsrn._.js +1 -1
  410. package/web/.next/server/chunks/_1xaed_q500ez6._.js +3 -0
  411. package/web/.next/server/chunks/_1xaed_q500ez6._.js.map +1 -0
  412. package/web/.next/server/chunks/_20ne4s-e_jzxp._.js +1 -1
  413. package/web/.next/server/chunks/_20ne4s-e_jzxp._.js.map +1 -1
  414. package/web/.next/server/chunks/ssr/01fr_app_(bridge)_bridge_settings_requests_[requestId]_page_actions_0o8g7_xshtmem.js +3 -0
  415. package/web/.next/server/chunks/ssr/01fr_app_(bridge)_bridge_settings_requests_[requestId]_page_actions_0o8g7_xshtmem.js.map +1 -0
  416. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_stay-aware_page_actions_1u0xo0v3y9c34.js +3 -0
  417. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_stay-aware_page_actions_1u0xo0v3y9c34.js.map +1 -0
  418. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_bridge_settings_routing_page_actions_06_j7s24dy5ee.js +3 -0
  419. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_bridge_settings_routing_page_actions_06_j7s24dy5ee.js.map +1 -0
  420. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js +1 -1
  421. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js.map +1 -1
  422. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js +1 -1
  423. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js.map +1 -1
  424. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js +1 -1
  425. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js.map +1 -1
  426. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js +1 -1
  427. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js.map +1 -1
  428. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js +1 -1
  429. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js.map +1 -1
  430. package/web/.next/server/chunks/ssr/[root-of-the-server]__001xx3sm5ur-e._.js +1 -1
  431. package/web/.next/server/chunks/ssr/[root-of-the-server]__001xx3sm5ur-e._.js.map +1 -1
  432. package/web/.next/server/chunks/ssr/{[root-of-the-server]__1yyaeeylnezpi._.js → [root-of-the-server]__04_bc8g0oe4jt._.js} +1 -1
  433. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a6a1yc_ac-qt._.js +1 -1
  434. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a8db18tyk__5._.js +1 -1
  435. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a8db18tyk__5._.js.map +1 -1
  436. package/web/.next/server/chunks/ssr/[root-of-the-server]__0e4l5gt01o04p._.js +3 -0
  437. package/web/.next/server/chunks/ssr/[root-of-the-server]__0e4l5gt01o04p._.js.map +1 -0
  438. package/web/.next/server/chunks/ssr/[root-of-the-server]__0gptrhg3mj4hs._.js +57 -0
  439. package/web/.next/server/chunks/ssr/[root-of-the-server]__0gptrhg3mj4hs._.js.map +1 -0
  440. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js +1 -1
  441. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js.map +1 -1
  442. package/web/.next/server/chunks/ssr/[root-of-the-server]__0kjcooo3pi4_k._.js +57 -0
  443. package/web/.next/server/chunks/ssr/[root-of-the-server]__0kjcooo3pi4_k._.js.map +1 -0
  444. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rmg7huc074bf._.js +3 -0
  445. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rmg7huc074bf._.js.map +1 -0
  446. package/web/.next/server/chunks/ssr/[root-of-the-server]__10s9e8g5x-ws8._.js +1 -1
  447. package/web/.next/server/chunks/ssr/[root-of-the-server]__10s9e8g5x-ws8._.js.map +1 -1
  448. package/web/.next/server/chunks/ssr/[root-of-the-server]__13v3maun347sn._.js +3 -0
  449. package/web/.next/server/chunks/ssr/[root-of-the-server]__13v3maun347sn._.js.map +1 -0
  450. package/web/.next/server/chunks/ssr/[root-of-the-server]__13yoncr_nx3jc._.js +1 -1
  451. package/web/.next/server/chunks/ssr/[root-of-the-server]__13yoncr_nx3jc._.js.map +1 -1
  452. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0gnfxe62edx95._.js → [root-of-the-server]__179upda-y7uap._.js} +1 -1
  453. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js +1 -1
  454. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js.map +1 -1
  455. package/web/.next/server/chunks/ssr/[root-of-the-server]__1hgu6f5hpnykv._.js +57 -0
  456. package/web/.next/server/chunks/ssr/[root-of-the-server]__1hgu6f5hpnykv._.js.map +1 -0
  457. package/web/.next/server/chunks/ssr/[root-of-the-server]__1j6n8jj7-5t6v._.js +3 -0
  458. package/web/.next/server/chunks/ssr/[root-of-the-server]__1j6n8jj7-5t6v._.js.map +1 -0
  459. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpow96uit9t8._.js +1 -1
  460. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpow96uit9t8._.js.map +1 -1
  461. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qtzvez4cn5be._.js +3 -0
  462. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qtzvez4cn5be._.js.map +1 -0
  463. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ul9rrs2g66lm._.js +4 -0
  464. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ul9rrs2g66lm._.js.map +1 -0
  465. package/web/.next/server/chunks/ssr/[root-of-the-server]__20gvfqy33wcds._.js +57 -0
  466. package/web/.next/server/chunks/ssr/[root-of-the-server]__20gvfqy33wcds._.js.map +1 -0
  467. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +1 -1
  468. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -1
  469. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js +2 -2
  470. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js.map +1 -1
  471. package/web/.next/server/chunks/ssr/_0cnpz5jm2_9xf._.js +3 -0
  472. package/web/.next/server/chunks/ssr/_0cnpz5jm2_9xf._.js.map +1 -0
  473. package/web/.next/server/chunks/ssr/_0f7ucdt7bfmun._.js +3 -0
  474. package/web/.next/server/chunks/ssr/_0f7ucdt7bfmun._.js.map +1 -0
  475. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js +1 -1
  476. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js.map +1 -1
  477. package/web/.next/server/chunks/ssr/_0kk7op86em7z2._.js +3 -0
  478. package/web/.next/server/chunks/ssr/_0kk7op86em7z2._.js.map +1 -0
  479. package/web/.next/server/chunks/ssr/_0oekmfmigr0qv._.js +3 -0
  480. package/web/.next/server/chunks/ssr/_0oekmfmigr0qv._.js.map +1 -0
  481. package/web/.next/server/chunks/ssr/_0pirspvjp3ggl._.js +3 -0
  482. package/web/.next/server/chunks/ssr/_0pirspvjp3ggl._.js.map +1 -0
  483. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js +1 -1
  484. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js.map +1 -1
  485. package/web/.next/server/chunks/ssr/_0v_x6k3ztfvx0._.js +3 -0
  486. package/web/.next/server/chunks/ssr/_0v_x6k3ztfvx0._.js.map +1 -0
  487. package/web/.next/server/chunks/ssr/_0vid8-myyy-_4._.js +3 -0
  488. package/web/.next/server/chunks/ssr/_0vid8-myyy-_4._.js.map +1 -0
  489. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +1 -1
  490. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -1
  491. package/web/.next/server/chunks/ssr/_0y5eahpucp8g_._.js +3 -0
  492. package/web/.next/server/chunks/ssr/_0y5eahpucp8g_._.js.map +1 -0
  493. package/web/.next/server/chunks/ssr/_13fbnlwrl24s3._.js +3 -0
  494. package/web/.next/server/chunks/ssr/_13fbnlwrl24s3._.js.map +1 -0
  495. package/web/.next/server/chunks/ssr/_14k1oldo5chf8._.js +3 -0
  496. package/web/.next/server/chunks/ssr/_14k1oldo5chf8._.js.map +1 -0
  497. package/web/.next/server/chunks/ssr/_15whg3fd67b9x._.js +3 -0
  498. package/web/.next/server/chunks/ssr/_15whg3fd67b9x._.js.map +1 -0
  499. package/web/.next/server/chunks/ssr/_17zzluh48wsdb._.js +3 -0
  500. package/web/.next/server/chunks/ssr/_17zzluh48wsdb._.js.map +1 -0
  501. package/web/.next/server/chunks/ssr/_18xv7kh7i655_._.js +3 -0
  502. package/web/.next/server/chunks/ssr/_18xv7kh7i655_._.js.map +1 -0
  503. package/web/.next/server/chunks/ssr/_1_wav28san6dm._.js +1 -1
  504. package/web/.next/server/chunks/ssr/_1_ym4hwge_4r0._.js +3 -0
  505. package/web/.next/server/chunks/ssr/_1_ym4hwge_4r0._.js.map +1 -0
  506. package/web/.next/server/chunks/ssr/_1a9wrl8uw7x-y._.js +3 -0
  507. package/web/.next/server/chunks/ssr/_1a9wrl8uw7x-y._.js.map +1 -0
  508. package/web/.next/server/chunks/ssr/{_1hmjvjuxx92vo._.js → _1airu8wwf7z1b._.js} +2 -2
  509. package/web/.next/server/chunks/ssr/_1airu8wwf7z1b._.js.map +1 -0
  510. package/web/.next/server/chunks/ssr/_1e2o809f0ekry._.js +1 -1
  511. package/web/.next/server/chunks/ssr/{_0a_nsm-ye2r6v._.js → _1gbkqq8ra1nei._.js} +2 -2
  512. package/web/.next/server/chunks/ssr/_1gbkqq8ra1nei._.js.map +1 -0
  513. package/web/.next/server/chunks/ssr/_1i5zdy3tp2ykh._.js +3 -0
  514. package/web/.next/server/chunks/ssr/_1i5zdy3tp2ykh._.js.map +1 -0
  515. package/web/.next/server/chunks/ssr/_1i8ofnr1a5yle._.js +3 -0
  516. package/web/.next/server/chunks/ssr/_1i8ofnr1a5yle._.js.map +1 -0
  517. package/web/.next/server/chunks/ssr/_1iorutn_o9hja._.js +3 -0
  518. package/web/.next/server/chunks/ssr/_1iorutn_o9hja._.js.map +1 -0
  519. package/web/.next/server/chunks/ssr/_1kdx8a0j5cxyl._.js +3 -0
  520. package/web/.next/server/chunks/ssr/_1kdx8a0j5cxyl._.js.map +1 -0
  521. package/web/.next/server/chunks/ssr/_1mg5oon0wpocg._.js +3 -0
  522. package/web/.next/server/chunks/ssr/_1mg5oon0wpocg._.js.map +1 -0
  523. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js +1 -1
  524. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js.map +1 -1
  525. package/web/.next/server/chunks/ssr/_1pp0z5srqqqyl._.js +3 -0
  526. package/web/.next/server/chunks/ssr/_1pp0z5srqqqyl._.js.map +1 -0
  527. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js +1 -1
  528. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js.map +1 -1
  529. package/web/.next/server/chunks/ssr/_1rfpx4ze-3l8z._.js +3 -0
  530. package/web/.next/server/chunks/ssr/{web_features_0mi9a9pdzkdji._.js.map → _1rfpx4ze-3l8z._.js.map} +1 -1
  531. package/web/.next/server/chunks/ssr/_1t74yvog5g6g2._.js +3 -0
  532. package/web/.next/server/chunks/ssr/_1t74yvog5g6g2._.js.map +1 -0
  533. package/web/.next/server/chunks/ssr/_1ve-ao6odintc._.js +3 -0
  534. package/web/.next/server/chunks/ssr/_1ve-ao6odintc._.js.map +1 -0
  535. package/web/.next/server/chunks/ssr/_1xuikhitica6p._.js +3 -0
  536. package/web/.next/server/chunks/ssr/_1xuikhitica6p._.js.map +1 -0
  537. package/web/.next/server/chunks/ssr/_1zmd3armaxhyu._.js +4 -0
  538. package/web/.next/server/chunks/ssr/_1zmd3armaxhyu._.js.map +1 -0
  539. package/web/.next/server/chunks/ssr/node_modules_0489ke-80obwd._.js +3 -0
  540. package/web/.next/server/chunks/ssr/node_modules_0489ke-80obwd._.js.map +1 -0
  541. package/web/.next/server/chunks/ssr/node_modules_0gpbs01t1c_a4._.js +3 -0
  542. package/web/.next/server/chunks/ssr/node_modules_0gpbs01t1c_a4._.js.map +1 -0
  543. package/web/.next/server/chunks/ssr/node_modules_0ue_35q2cegwf._.js +3 -0
  544. package/web/.next/server/chunks/ssr/node_modules_0ue_35q2cegwf._.js.map +1 -0
  545. package/web/.next/server/chunks/ssr/node_modules_0zgrzr0ui3gi8._.js +3 -0
  546. package/web/.next/server/chunks/ssr/node_modules_0zgrzr0ui3gi8._.js.map +1 -0
  547. package/web/.next/server/chunks/ssr/node_modules_174jf4d4t_bo_._.js +3 -0
  548. package/web/.next/server/chunks/ssr/node_modules_174jf4d4t_bo_._.js.map +1 -0
  549. package/web/.next/server/chunks/ssr/node_modules_1qxtjrbc2-6xd._.js +3 -0
  550. package/web/.next/server/chunks/ssr/node_modules_1qxtjrbc2-6xd._.js.map +1 -0
  551. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_0t_cmi-llaq7g._.js +1 -1
  552. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_0t_cmi-llaq7g._.js.map +1 -1
  553. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_app-switcher_08qq5-uxv7jii.js +3 -0
  554. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_app-switcher_08qq5-uxv7jii.js.map +1 -0
  555. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_class-names_1h5pbm2ucssiq.js +3 -0
  556. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_class-names_1h5pbm2ucssiq.js.map +1 -0
  557. package/web/.next/server/chunks/ssr/node_modules_@base-ui_0jlwmxa9rk8p_._.js +1 -1
  558. package/web/.next/server/chunks/ssr/node_modules_@base-ui_0jlwmxa9rk8p_._.js.map +1 -1
  559. package/web/.next/server/chunks/ssr/node_modules_@base-ui_19e_nxxf4a88q._.js +1 -1
  560. package/web/.next/server/chunks/ssr/node_modules_@base-ui_19e_nxxf4a88q._.js.map +1 -1
  561. package/web/.next/server/chunks/ssr/node_modules_@base-ui_react_1cvjxnw-b3pnv._.js +3 -0
  562. package/web/.next/server/chunks/ssr/{node_modules_@base-ui_react_1lbvjrzg8s2ox._.js.map → node_modules_@base-ui_react_1cvjxnw-b3pnv._.js.map} +1 -1
  563. package/web/.next/server/chunks/ssr/node_modules_@base-ui_react_toast_index_parts_mjs_20gwon7142aop._.js +3 -0
  564. package/web/.next/server/chunks/ssr/node_modules_@base-ui_react_toast_index_parts_mjs_20gwon7142aop._.js.map +1 -0
  565. package/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_bell_mjs_1sxms6d0wfxa2._.js +3 -0
  566. package/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_bell_mjs_1sxms6d0wfxa2._.js.map +1 -0
  567. package/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_search_mjs_047mxu6_po4kl._.js +3 -0
  568. package/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_search_mjs_047mxu6_po4kl._.js.map +1 -0
  569. package/web/.next/server/chunks/ssr/node_modules_next_08hq6z46rczo0._.js +2 -2
  570. package/web/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js +2 -2
  571. package/web/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js.map +1 -1
  572. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0g15rgn4n-oiz.js +3 -0
  573. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0g15rgn4n-oiz.js.map +1 -0
  574. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0hzwtyh-646p2.js +3 -0
  575. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0hzwtyh-646p2.js.map +1 -0
  576. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mm8dt8tws1fz.js +3 -0
  577. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mm8dt8tws1fz.js.map +1 -0
  578. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0tcy7phl8a4gj.js +3 -0
  579. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0tcy7phl8a4gj.js.map +1 -0
  580. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ynno0usi0bwx.js +1 -1
  581. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_11x159_oszki3.js +3 -0
  582. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_11x159_oszki3.js.map +1 -0
  583. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_128zox167vtjm.js +1 -1
  584. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_128zox167vtjm.js.map +1 -1
  585. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dltrn6ii5dd6.js +3 -0
  586. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dltrn6ii5dd6.js.map +1 -0
  587. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1hm1iu016c1fy.js +3 -0
  588. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1hm1iu016c1fy.js.map +1 -0
  589. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1zaoeyy4_vir_.js +3 -0
  590. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1zaoeyy4_vir_.js.map +1 -0
  591. package/web/.next/server/chunks/ssr/web_0_peudz6-o69m._.js +3 -0
  592. package/web/.next/server/chunks/ssr/web_0_peudz6-o69m._.js.map +1 -0
  593. package/web/.next/server/chunks/ssr/web_0cxcy088wnfmw._.js +3 -0
  594. package/web/.next/server/chunks/ssr/web_0cxcy088wnfmw._.js.map +1 -0
  595. package/web/.next/server/chunks/ssr/web_0oz8bypfxh82g._.js +3 -0
  596. package/web/.next/server/chunks/ssr/web_0oz8bypfxh82g._.js.map +1 -0
  597. package/web/.next/server/chunks/ssr/web_0pk41f5m34jvi._.js +3 -0
  598. package/web/.next/server/chunks/ssr/web_0pk41f5m34jvi._.js.map +1 -0
  599. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js +1 -1
  600. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js.map +1 -1
  601. package/web/.next/server/chunks/ssr/web_1fi1x3y7rg7mf._.js +3 -0
  602. package/web/.next/server/chunks/ssr/web_1fi1x3y7rg7mf._.js.map +1 -0
  603. package/web/.next/server/chunks/ssr/web_1irsulms62lzf._.js +3 -0
  604. package/web/.next/server/chunks/ssr/web_1irsulms62lzf._.js.map +1 -0
  605. package/web/.next/server/chunks/ssr/web_1k2rrq-kr6f9k._.js +3 -0
  606. package/web/.next/server/chunks/ssr/web_1k2rrq-kr6f9k._.js.map +1 -0
  607. package/web/.next/server/chunks/ssr/web_1qvxzqmq4aw94._.js +3 -0
  608. package/web/.next/server/chunks/ssr/web_1qvxzqmq4aw94._.js.map +1 -0
  609. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_basket_page_actions_0g7q_rc5nma1e.js +3 -0
  610. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_basket_page_actions_0g7q_rc5nma1e.js.map +1 -0
  611. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_done_page_actions_0kjm34arntdzv.js +3 -0
  612. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_done_page_actions_0kjm34arntdzv.js.map +1 -0
  613. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_page_actions_1ok64rg3edm_u.js +3 -0
  614. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_page_actions_1ok64rg3edm_u.js.map +1 -0
  615. package/web/.next/server/chunks/ssr/{web_app_(console)_bridge_error_tsx_10gkrn3ey8162._.js → web_app_(bridge)_bridge_error_tsx_0-142o0iqsh3j._.js} +2 -2
  616. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_error_tsx_0-142o0iqsh3j._.js.map +1 -0
  617. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_error_tsx_1m86qyp1bl9pi._.js +3 -0
  618. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_error_tsx_1m86qyp1bl9pi._.js.map +1 -0
  619. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_fleet_page_tsx_0uvtx8hiy8g0n._.js +3 -0
  620. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_fleet_page_tsx_0uvtx8hiy8g0n._.js.map +1 -0
  621. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_settings_page_tsx_1z5yr8ss25q7n._.js +3 -0
  622. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_settings_page_tsx_1z5yr8ss25q7n._.js.map +1 -0
  623. package/web/.next/server/chunks/ssr/{web_features_0f6r-m-dq36vf._.js → web_features_025l9l6m2zkya._.js} +2 -2
  624. package/web/.next/server/chunks/ssr/{web_features_0f6r-m-dq36vf._.js.map → web_features_025l9l6m2zkya._.js.map} +1 -1
  625. package/web/.next/server/chunks/ssr/web_features_05aos-xwnl3m_._.js +3 -0
  626. package/web/.next/server/chunks/ssr/web_features_05aos-xwnl3m_._.js.map +1 -0
  627. package/web/.next/server/chunks/ssr/web_features_0bwqcs9wjf4y8._.js +3 -0
  628. package/web/.next/server/chunks/ssr/web_features_0bwqcs9wjf4y8._.js.map +1 -0
  629. package/web/.next/server/chunks/ssr/{web_features_0d48z2epb6oie._.js → web_features_0f2pobf_t4wjt._.js} +2 -2
  630. package/web/.next/server/chunks/ssr/{web_features_0d48z2epb6oie._.js.map → web_features_0f2pobf_t4wjt._.js.map} +1 -1
  631. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js +1 -1
  632. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js.map +1 -1
  633. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js +1 -1
  634. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js.map +1 -1
  635. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js +1 -1
  636. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js.map +1 -1
  637. package/web/.next/server/chunks/ssr/web_features_bridge_0w95y19yk5w14._.js +3 -0
  638. package/web/.next/server/chunks/ssr/web_features_bridge_0w95y19yk5w14._.js.map +1 -0
  639. package/web/.next/server/chunks/ssr/web_features_bridge_1mi9qlb-z5iwt._.js +1 -1
  640. package/web/.next/server/chunks/ssr/web_features_bridge_1mi9qlb-z5iwt._.js.map +1 -1
  641. package/web/.next/server/chunks/ssr/web_features_bridge_fleet_ui_fleet-numbers_tsx_0_afv4j248_w-._.js +3 -0
  642. package/web/.next/server/chunks/ssr/web_features_bridge_fleet_ui_fleet-numbers_tsx_0_afv4j248_w-._.js.map +1 -0
  643. package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js +1 -1
  644. package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js.map +1 -1
  645. package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js +1 -1
  646. package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js.map +1 -1
  647. package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js +1 -1
  648. package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js.map +1 -1
  649. package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js +1 -1
  650. package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js.map +1 -1
  651. package/web/.next/server/chunks/ssr/web_features_bridge_state_home-panel_tsx_1cc5zdhxogl_2._.js +1 -1
  652. package/web/.next/server/chunks/ssr/web_features_bridge_state_home-panel_tsx_1cc5zdhxogl_2._.js.map +1 -1
  653. package/web/.next/server/chunks/ssr/web_features_bridge_ui_1y4g3fe75nqn5._.js +1 -1
  654. package/web/.next/server/chunks/ssr/web_features_bridge_ui_1y4g3fe75nqn5._.js.map +1 -1
  655. package/web/.next/server/chunks/ssr/web_features_bridge_ui_item-row_tsx_0c_a8wjzwsr7j._.js +3 -0
  656. package/web/.next/server/chunks/ssr/web_features_bridge_ui_item-row_tsx_0c_a8wjzwsr7j._.js.map +1 -0
  657. package/web/.next/server/chunks/ssr/web_features_frame_0pe8cwpxe1egb._.js +1 -1
  658. package/web/.next/server/chunks/ssr/web_features_frame_0pe8cwpxe1egb._.js.map +1 -1
  659. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js +1 -1
  660. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js.map +1 -1
  661. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js +1 -1
  662. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js.map +1 -1
  663. package/web/.next/server/chunks/ssr/web_features_outside-parties_paths_ts_0vbj9elyqekpp._.js +3 -0
  664. package/web/.next/server/chunks/ssr/web_features_outside-parties_paths_ts_0vbj9elyqekpp._.js.map +1 -0
  665. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js +1 -1
  666. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js.map +1 -1
  667. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js +1 -1
  668. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js +1 -1
  669. package/web/.next/server/chunks/ssr/web_features_slack_actions_ts_1l3yg9vl20_vu._.js +1 -1
  670. package/web/.next/server/chunks/web__next-internal_server_app_(bridge)_bridge_focus_route_actions_0fx2vmqfq23mq.js +3 -0
  671. package/web/.next/server/middleware-build-manifest.js +114 -90
  672. package/web/.next/server/next-font-manifest.js +1 -1
  673. package/web/.next/server/next-font-manifest.json +14 -6
  674. package/web/.next/server/pages/500.html +1 -1
  675. package/web/.next/server/preview-props.json +3 -3
  676. package/web/.next/server/server-reference-manifest.js +1 -1
  677. package/web/.next/server/server-reference-manifest.json +163 -101
  678. package/web/.next/static/chunks/{40j58bya72xh1.js → 0k33n07zesv12.js} +1 -1
  679. package/web/.next/static/chunks/0ozz8jadgfdrx.js +1 -0
  680. package/web/.next/static/chunks/{1166rxt6h6ilq.js → 1c8q9h-van9r6.js} +1 -1
  681. package/web/.next/static/chunks/1nzfw6ajt5nf9.js +55 -0
  682. package/web/.next/static/chunks/1uhmdmkn5gsk2.js +1 -0
  683. package/web/.next/static/chunks/1v36iovy1f5cj.js +1 -0
  684. package/web/.next/static/chunks/1vhvy8bx4fxur.js +1 -0
  685. package/web/.next/static/chunks/1vhx_nu9nxo1v.js +1 -0
  686. package/web/.next/static/chunks/{3hvw5n04pbwg8.js → 23vvtbj-zoa_f.js} +1 -1
  687. package/web/.next/static/chunks/24vn5i6ojvl8l.js +1 -0
  688. package/web/.next/static/chunks/2dgbb29jkr_tu.js +1 -0
  689. package/web/.next/static/chunks/2ewacyhp73due.js +1 -0
  690. package/web/.next/static/chunks/2fimf0wcjnmpj.js +1 -0
  691. package/web/.next/static/chunks/2fk9ydkphmyna.js +1 -0
  692. package/web/.next/static/chunks/2l6hafvocw-rd.js +1 -0
  693. package/web/.next/static/chunks/2ld8_nap7g_uy.js +1 -0
  694. package/web/.next/static/chunks/2mpwg-t6pat39.js +1 -0
  695. package/web/.next/static/chunks/2pvcbql986wln.js +1 -0
  696. package/web/.next/static/chunks/2s1efgj6gxjgl.js +1 -0
  697. package/web/.next/static/chunks/2zlx-c_0x38uo.css +3 -0
  698. package/web/.next/static/chunks/34u_331hqync_.js +1 -0
  699. package/web/.next/static/chunks/39tst46ewpx_k.js +1 -0
  700. package/web/.next/static/chunks/{322fzslly9wpf.js → 3_bb0g4jkqn8q.js} +1 -1
  701. package/web/.next/static/chunks/3d5z1i-6yksxd.js +1 -0
  702. package/web/.next/static/chunks/3jq9vu8tr29j2.js +1 -0
  703. package/web/.next/static/chunks/3kenmp9pjwgf2.js +1 -0
  704. package/web/.next/static/chunks/3knqujtrdi225.js +1 -0
  705. package/web/.next/static/chunks/{0lzisjsmhlhjf.js → 3zhaqdsq15d1e.js} +1 -1
  706. package/web/.next/trace +1 -1
  707. package/web/.next/trace-build +1 -1
  708. package/web/.next/types/routes.d.ts +3 -1
  709. package/web/.next/types/validator.ts +50 -16
  710. package/dist/core/people/stale-question.d.ts +0 -28
  711. package/dist/core/people/stale-question.js +0 -26
  712. package/dist/core/people/stale-question.js.map +0 -1
  713. package/web/.next/server/app/(console)/bridge/basket/page/app-paths-manifest.json +0 -3
  714. package/web/.next/server/app/(console)/bridge/basket/page/server-reference-manifest.json +0 -75
  715. package/web/.next/server/app/(console)/bridge/basket/page_client-reference-manifest.js +0 -3
  716. package/web/.next/server/app/(console)/bridge/changes/route/app-paths-manifest.json +0 -3
  717. package/web/.next/server/app/(console)/bridge/changes/route.js +0 -8
  718. package/web/.next/server/app/(console)/bridge/changes/route_client-reference-manifest.js +0 -3
  719. package/web/.next/server/app/(console)/bridge/done/page/app-paths-manifest.json +0 -3
  720. package/web/.next/server/app/(console)/bridge/done/page/server-reference-manifest.json +0 -75
  721. package/web/.next/server/app/(console)/bridge/done/page_client-reference-manifest.js +0 -3
  722. package/web/.next/server/app/(console)/bridge/focus/route/app-paths-manifest.json +0 -3
  723. package/web/.next/server/app/(console)/bridge/focus/route.js +0 -8
  724. package/web/.next/server/app/(console)/bridge/focus/route_client-reference-manifest.js +0 -3
  725. package/web/.next/server/app/(console)/bridge/page/app-paths-manifest.json +0 -3
  726. package/web/.next/server/app/(console)/bridge/page/server-reference-manifest.json +0 -65
  727. package/web/.next/server/app/(console)/bridge/page_client-reference-manifest.js +0 -3
  728. package/web/.next/server/app/(console)/bridge/settings/page/app-paths-manifest.json +0 -3
  729. package/web/.next/server/app/(console)/bridge/settings/page_client-reference-manifest.js +0 -3
  730. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/app-paths-manifest.json +0 -3
  731. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/build-manifest.json +0 -23
  732. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/next-font-manifest.json +0 -11
  733. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page_client-reference-manifest.js +0 -3
  734. package/web/.next/server/app/(console)/bridge/settings/routing/page/app-paths-manifest.json +0 -3
  735. package/web/.next/server/app/(console)/bridge/settings/routing/page/build-manifest.json +0 -23
  736. package/web/.next/server/app/(console)/bridge/settings/routing/page/next-font-manifest.json +0 -11
  737. package/web/.next/server/app/(console)/bridge/settings/routing/page_client-reference-manifest.js +0 -3
  738. package/web/.next/server/chunks/0b9d__next-internal_server_app_(console)_bridge_changes_route_actions_0hj8aqohz6bu6.js +0 -3
  739. package/web/.next/server/chunks/_05qgg3__4kdbm._.js +0 -3
  740. package/web/.next/server/chunks/_05qgg3__4kdbm._.js.map +0 -1
  741. package/web/.next/server/chunks/_1uap5tql2vvsb._.js +0 -3
  742. package/web/.next/server/chunks/_1uap5tql2vvsb._.js.map +0 -1
  743. package/web/.next/server/chunks/ssr/01fr_app_(console)_bridge_settings_requests_[requestId]_page_actions_1au-p5lgnv5e-.js +0 -3
  744. package/web/.next/server/chunks/ssr/01fr_app_(console)_bridge_settings_requests_[requestId]_page_actions_1au-p5lgnv5e-.js.map +0 -1
  745. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_bridge_settings_routing_page_actions_136lm_jip4d_x.js +0 -3
  746. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_bridge_settings_routing_page_actions_136lm_jip4d_x.js.map +0 -1
  747. package/web/.next/server/chunks/ssr/[root-of-the-server]__00jy4lqrcvxvc._.js +0 -3
  748. package/web/.next/server/chunks/ssr/[root-of-the-server]__00jy4lqrcvxvc._.js.map +0 -1
  749. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k-5_al3xk509._.js +0 -3
  750. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k-5_al3xk509._.js.map +0 -1
  751. package/web/.next/server/chunks/ssr/[root-of-the-server]__18v7b5ga58a9n._.js +0 -4
  752. package/web/.next/server/chunks/ssr/[root-of-the-server]__18v7b5ga58a9n._.js.map +0 -1
  753. package/web/.next/server/chunks/ssr/[root-of-the-server]__1nxy_j9eswr3i._.js +0 -3
  754. package/web/.next/server/chunks/ssr/[root-of-the-server]__1nxy_j9eswr3i._.js.map +0 -1
  755. package/web/.next/server/chunks/ssr/[root-of-the-server]__1rf344o33bmi4._.js +0 -3
  756. package/web/.next/server/chunks/ssr/[root-of-the-server]__1rf344o33bmi4._.js.map +0 -1
  757. package/web/.next/server/chunks/ssr/_0a_nsm-ye2r6v._.js.map +0 -1
  758. package/web/.next/server/chunks/ssr/_0h-ua-y4p4u1p._.js +0 -3
  759. package/web/.next/server/chunks/ssr/_0h-ua-y4p4u1p._.js.map +0 -1
  760. package/web/.next/server/chunks/ssr/_0swrejvekuzfx._.js +0 -3
  761. package/web/.next/server/chunks/ssr/_0swrejvekuzfx._.js.map +0 -1
  762. package/web/.next/server/chunks/ssr/_12fsn_33ga-n0._.js +0 -3
  763. package/web/.next/server/chunks/ssr/_12fsn_33ga-n0._.js.map +0 -1
  764. package/web/.next/server/chunks/ssr/_1hmjvjuxx92vo._.js.map +0 -1
  765. package/web/.next/server/chunks/ssr/_1jx41z6kmxtt0._.js +0 -3
  766. package/web/.next/server/chunks/ssr/_1jx41z6kmxtt0._.js.map +0 -1
  767. package/web/.next/server/chunks/ssr/_1q2s-hb67yjfb._.js +0 -3
  768. package/web/.next/server/chunks/ssr/_1q2s-hb67yjfb._.js.map +0 -1
  769. package/web/.next/server/chunks/ssr/_1qdpkpsskm5wj._.js +0 -3
  770. package/web/.next/server/chunks/ssr/_1qdpkpsskm5wj._.js.map +0 -1
  771. package/web/.next/server/chunks/ssr/_1yi3j4a16uet-._.js +0 -3
  772. package/web/.next/server/chunks/ssr/_1yi3j4a16uet-._.js.map +0 -1
  773. package/web/.next/server/chunks/ssr/node_modules_01oyodz1bs245._.js +0 -3
  774. package/web/.next/server/chunks/ssr/node_modules_01oyodz1bs245._.js.map +0 -1
  775. package/web/.next/server/chunks/ssr/node_modules_16d4um5s513wz._.js +0 -3
  776. package/web/.next/server/chunks/ssr/node_modules_16d4um5s513wz._.js.map +0 -1
  777. package/web/.next/server/chunks/ssr/node_modules_@base-ui_react_1lbvjrzg8s2ox._.js +0 -3
  778. package/web/.next/server/chunks/ssr/node_modules_next_dist_0hkpfqt9ne626._.js +0 -3
  779. package/web/.next/server/chunks/ssr/node_modules_next_dist_0hkpfqt9ne626._.js.map +0 -1
  780. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_031g89sb4kgzn.js +0 -3
  781. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_031g89sb4kgzn.js.map +0 -1
  782. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09rviehv6rh0n.js +0 -3
  783. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09rviehv6rh0n.js.map +0 -1
  784. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ka8v6_fxug8r.js +0 -3
  785. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ka8v6_fxug8r.js.map +0 -1
  786. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1c8zekuy1gkch.js +0 -3
  787. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1c8zekuy1gkch.js.map +0 -1
  788. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dhzng2nnu0m7.js +0 -3
  789. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dhzng2nnu0m7.js.map +0 -1
  790. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1rya2ag3z4vug.js +0 -3
  791. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1rya2ag3z4vug.js.map +0 -1
  792. package/web/.next/server/chunks/ssr/web_0i_1uraygw2ld._.js +0 -3
  793. package/web/.next/server/chunks/ssr/web_0i_1uraygw2ld._.js.map +0 -1
  794. package/web/.next/server/chunks/ssr/web_0wz4onhfbq359._.js +0 -3
  795. package/web/.next/server/chunks/ssr/web_0wz4onhfbq359._.js.map +0 -1
  796. package/web/.next/server/chunks/ssr/web_1-hlf1xzemd3-._.js +0 -3
  797. package/web/.next/server/chunks/ssr/web_1-hlf1xzemd3-._.js.map +0 -1
  798. package/web/.next/server/chunks/ssr/web_107a79_nx4jdd._.js +0 -3
  799. package/web/.next/server/chunks/ssr/web_107a79_nx4jdd._.js.map +0 -1
  800. package/web/.next/server/chunks/ssr/web_127_b93avkwaq._.js +0 -3
  801. package/web/.next/server/chunks/ssr/web_127_b93avkwaq._.js.map +0 -1
  802. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_basket_page_actions_102xk3g8eko_q.js +0 -3
  803. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_basket_page_actions_102xk3g8eko_q.js.map +0 -1
  804. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_done_page_actions_0mm90xd2feta2.js +0 -3
  805. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_done_page_actions_0mm90xd2feta2.js.map +0 -1
  806. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_page_actions_082880qz6xa5k.js +0 -3
  807. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_page_actions_082880qz6xa5k.js.map +0 -1
  808. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_0ty_yk1robyaj._.js +0 -3
  809. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_0ty_yk1robyaj._.js.map +0 -1
  810. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_10gkrn3ey8162._.js.map +0 -1
  811. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_settings_page_tsx_0xzphp7k9ge1u._.js +0 -3
  812. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_settings_page_tsx_0xzphp7k9ge1u._.js.map +0 -1
  813. package/web/.next/server/chunks/ssr/web_features_0mi9a9pdzkdji._.js +0 -3
  814. package/web/.next/server/chunks/ssr/web_features_0s8erick0xk77._.js +0 -3
  815. package/web/.next/server/chunks/ssr/web_features_0s8erick0xk77._.js.map +0 -1
  816. package/web/.next/server/chunks/ssr/web_features_0wuo5bgp5tabn._.js +0 -3
  817. package/web/.next/server/chunks/ssr/web_features_0wuo5bgp5tabn._.js.map +0 -1
  818. package/web/.next/server/chunks/ssr/web_features_1je122n6carea._.js +0 -3
  819. package/web/.next/server/chunks/ssr/web_features_1je122n6carea._.js.map +0 -1
  820. package/web/.next/server/chunks/ssr/web_features_1n1hy3nwha2vi._.js +0 -3
  821. package/web/.next/server/chunks/ssr/web_features_1n1hy3nwha2vi._.js.map +0 -1
  822. package/web/.next/server/chunks/ssr/web_features_1nrnskep6p8ci._.js +0 -3
  823. package/web/.next/server/chunks/ssr/web_features_1nrnskep6p8ci._.js.map +0 -1
  824. package/web/.next/server/chunks/ssr/web_features_bridge_0-mhu0jaig2u3._.js +0 -3
  825. package/web/.next/server/chunks/ssr/web_features_bridge_0-mhu0jaig2u3._.js.map +0 -1
  826. package/web/.next/server/chunks/ssr/web_features_bridge_0219fbfmsi68-._.js +0 -3
  827. package/web/.next/server/chunks/ssr/web_features_bridge_0219fbfmsi68-._.js.map +0 -1
  828. package/web/.next/server/chunks/ssr/web_features_bridge_11jndonu4o8fq._.js +0 -3
  829. package/web/.next/server/chunks/ssr/web_features_bridge_11jndonu4o8fq._.js.map +0 -1
  830. package/web/.next/server/chunks/ssr/web_features_bridge_state_0354e3wb0dzx1._.js +0 -3
  831. package/web/.next/server/chunks/ssr/web_features_bridge_state_0354e3wb0dzx1._.js.map +0 -1
  832. package/web/.next/server/chunks/ssr/web_features_bridge_state_live-refresh_tsx_1c1xk-oe0kllv._.js +0 -3
  833. package/web/.next/server/chunks/ssr/web_features_bridge_state_live-refresh_tsx_1c1xk-oe0kllv._.js.map +0 -1
  834. package/web/.next/server/chunks/web__next-internal_server_app_(console)_bridge_focus_route_actions_0syd_u8mgzdmi.js +0 -3
  835. package/web/.next/static/chunks/0c1tqlbsvq1dj.js +0 -1
  836. package/web/.next/static/chunks/0fh11dkddwf_2.js +0 -1
  837. package/web/.next/static/chunks/0fu7je2vzzzh7.js +0 -1
  838. package/web/.next/static/chunks/0zbcy0_3jemrv.js +0 -1
  839. package/web/.next/static/chunks/180aowme095ds.js +0 -1
  840. package/web/.next/static/chunks/1ehmzxr697ifa.js +0 -1
  841. package/web/.next/static/chunks/1lyv8ukt_q3ph.js +0 -1
  842. package/web/.next/static/chunks/1ymfhxs-xqiy6.js +0 -1
  843. package/web/.next/static/chunks/2799kv0y5g2va.js +0 -1
  844. package/web/.next/static/chunks/2gghdkr64z9f9.js +0 -1
  845. package/web/.next/static/chunks/2hoi73vy1wqpo.js +0 -1
  846. package/web/.next/static/chunks/2jr8r6g9kk42a.js +0 -1
  847. package/web/.next/static/chunks/2mtfca4qk_s34.js +0 -1
  848. package/web/.next/static/chunks/36fnm0ezsx1eh.js +0 -1
  849. package/web/.next/static/chunks/3f2trjz7_wrzh.js +0 -1
  850. package/web/.next/static/chunks/3ow9h8hreko-p.css +0 -3
  851. package/web/.next/static/chunks/3pd8pele5x1o9.js +0 -1
  852. package/web/.next/static/chunks/3rt603msircrl.js +0 -1
  853. package/web/.next/static/chunks/3srfjz42u14tx.js +0 -1
  854. /package/web/.next/server/app/{(console) → (bridge)}/bridge/basket/page/react-loadable-manifest.json +0 -0
  855. /package/web/.next/server/app/{(console) → (bridge)}/bridge/basket/page.js.map +0 -0
  856. /package/web/.next/server/app/{(console) → (bridge)}/bridge/changes/route/build-manifest.json +0 -0
  857. /package/web/.next/server/app/{(console) → (bridge)}/bridge/changes/route/server-reference-manifest.json +0 -0
  858. /package/web/.next/server/app/{(console) → (bridge)}/bridge/changes/route.js.map +0 -0
  859. /package/web/.next/server/app/{(console) → (bridge)}/bridge/done/page/react-loadable-manifest.json +0 -0
  860. /package/web/.next/server/app/{(console) → (bridge)}/bridge/done/page.js.map +0 -0
  861. /package/web/.next/server/app/{(console)/bridge → (bridge)/bridge/fleet}/page/react-loadable-manifest.json +0 -0
  862. /package/web/.next/server/app/{(console)/bridge → (bridge)/bridge/fleet}/page.js.map +0 -0
  863. /package/web/.next/server/app/{(console) → (bridge)}/bridge/focus/route/build-manifest.json +0 -0
  864. /package/web/.next/server/app/{(console) → (bridge)}/bridge/focus/route/server-reference-manifest.json +0 -0
  865. /package/web/.next/server/app/{(console) → (bridge)}/bridge/focus/route.js.map +0 -0
  866. /package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge}/page/react-loadable-manifest.json +0 -0
  867. /package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge}/page.js.map +0 -0
  868. /package/web/.next/server/app/{(console)/bridge/settings/requests/[requestId] → (bridge)/bridge/settings}/page/react-loadable-manifest.json +0 -0
  869. /package/web/.next/server/app/{(console)/bridge/settings/requests/[requestId] → (bridge)/bridge/settings}/page.js.map +0 -0
  870. /package/web/.next/server/app/{(console)/bridge/settings/routing → (bridge)/bridge/settings/requests/[requestId]}/page/react-loadable-manifest.json +0 -0
  871. /package/web/.next/server/app/{(console)/bridge/settings/routing → (bridge)/bridge/settings/requests/[requestId]}/page.js.map +0 -0
  872. /package/web/.next/server/chunks/{0b9d__next-internal_server_app_(console)_bridge_changes_route_actions_0hj8aqohz6bu6.js.map → 0b9d__next-internal_server_app_(bridge)_bridge_changes_route_actions_0wd1c_8tnx6-f.js.map} +0 -0
  873. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__1yyaeeylnezpi._.js.map → [root-of-the-server]__04_bc8g0oe4jt._.js.map} +0 -0
  874. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__0gnfxe62edx95._.js.map → [root-of-the-server]__179upda-y7uap._.js.map} +0 -0
  875. /package/web/.next/server/chunks/{web__next-internal_server_app_(console)_bridge_focus_route_actions_0syd_u8mgzdmi.js.map → web__next-internal_server_app_(bridge)_bridge_focus_route_actions_0fx2vmqfq23mq.js.map} +0 -0
  876. /package/web/.next/static/{IMWKx2sJwt7EwwpStr8tb → 2O8_FQX7YN47L5_OxojXH}/_buildManifest.js +0 -0
  877. /package/web/.next/static/{IMWKx2sJwt7EwwpStr8tb → 2O8_FQX7YN47L5_OxojXH}/_clientMiddlewareManifest.js +0 -0
  878. /package/web/.next/static/{IMWKx2sJwt7EwwpStr8tb → 2O8_FQX7YN47L5_OxojXH}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../web/features/bridge/paths.ts","../../../../../web/features/bridge/hooks/use-focus-report.ts","../../../../../web/features/bridge/hooks/use-live-refresh.ts","../../../../../web/features/bridge/state/live-refresh.tsx","../../../../../web/features/bridge/ui/action-button.tsx","../../../../../web/features/bridge/services/items.ts","../../../../../web/features/bridge/ui/item-row.tsx","../../../../../web/features/bridge/ui/notice.tsx"],"sourcesContent":["/** Bridge's pages (docs/design/bridge): home, the basket, Done, Bridge's settings and where things show; a module of their own, so a page in the browser names them too. */\nexport const BRIDGE_PATH = '/bridge';\nexport const BRIDGE_BASKET_PATH = '/bridge/basket';\nexport const BRIDGE_DONE_PATH = '/bridge/done';\nexport const BRIDGE_SETTINGS_PATH = '/bridge/settings';\nexport const BRIDGE_ROUTING_PATH = '/bridge/settings/routing';\n","'use client';\n\nimport { useEffect } from 'react';\n\n/** The stream the page holds while in focus, which the web app's server follows on the gateway's API for the browser. */\nexport const FOCUS_PATH = '/bridge/focus';\n\n/**\n * Tells the gateway while the page is in focus (wake a person, W6): it holds\n * the focus stream open while the window has focus and the page shows, and\n * closes it when either ends. While a page of the person is in focus, what\n * arrives is shown there and no wake goes out; an open page not in focus\n * changes nothing. A lost connection no longer counts as in focus.\n */\nexport function useFocusReport(fleetId: string): void {\n useEffect(() => {\n let focus: EventSource | undefined;\n const report = () => {\n const isInFocus = document.visibilityState === 'visible' && document.hasFocus();\n if (isInFocus && focus === undefined) {\n focus = new EventSource(`${FOCUS_PATH}?fleet=${encodeURIComponent(fleetId)}`);\n } else if (!isInFocus && focus !== undefined) {\n focus.close();\n focus = undefined;\n }\n };\n report();\n window.addEventListener('focus', report);\n window.addEventListener('blur', report);\n document.addEventListener('visibilitychange', report);\n return () => {\n window.removeEventListener('focus', report);\n window.removeEventListener('blur', report);\n document.removeEventListener('visibilitychange', report);\n focus?.close();\n };\n }, [fleetId]);\n}\n","'use client';\n\nimport { useRouter } from 'next/navigation';\nimport { useEffect } from 'react';\n\n/** The page's live updates, which the web app's server follows on the gateway's API for the browser. */\nexport const CHANGES_PATH = '/bridge/changes';\n\n/**\n * Keeps the page in step with its fleet's requests: whenever one changes,\n * the page reads itself again on the server, as its own caller. The browser\n * opens the stream again by itself when it drops.\n */\nexport function useLiveRefresh(fleetId: string): void {\n const router = useRouter();\n useEffect(() => {\n const changes = new EventSource(`${CHANGES_PATH}?fleet=${encodeURIComponent(fleetId)}`);\n changes.onmessage = () => {\n router.refresh();\n };\n return () => {\n changes.close();\n };\n }, [fleetId, router]);\n}\n","'use client';\n\nimport { useFocusReport } from '../hooks/use-focus-report';\nimport { useLiveRefresh } from '../hooks/use-live-refresh';\n\n/** Keeps the page it sits in live, and tells the gateway while it is in focus (wake a person, W6): it shows nothing itself. */\nexport function LiveRefresh({ fleetId }: { fleetId: string }) {\n useLiveRefresh(fleetId);\n useFocusReport(fleetId);\n return null;\n}\n","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","/**\n * Bridge's items as its pages show them (docs/design/bridge, section 6):\n * each job's label, and what came of an item and where, in words. Pure view\n * logic, no React and no API client.\n */\nimport type { inferRouterOutputs } from '@trpc/server';\n\nimport type { GatewayRouter } from '../../../../src/adapters/trpc/router.js';\n\n/** Bridge home as the API answers it: what waits with its count, and the stay-aware feed. */\nexport type BridgeHome = inferRouterOutputs<GatewayRouter>['people']['home'];\n\n/** An item on Bridge home: by its title, with its job, new or seen. */\nexport type HomeItem = BridgeHome['waiting']['items'][number];\n\n/** A page of the person ship's record, as the API answers it. */\nexport type RecordPage = inferRouterOutputs<GatewayRouter>['people']['record'];\n\n/** An item of the record, with its state and its outcome once kept. */\nexport type RecordItem = RecordPage['items'][number];\n\ntype Job = RecordItem['job'];\ntype Outcome = NonNullable<RecordItem['outcome']>;\n\nconst JOB_LABELS: Record<Job, string> = {\n decide: 'Decide',\n do: 'Do',\n 'stay-aware': 'Stay aware',\n 'everything-else': 'Message',\n};\n\nconst PLACES: Record<Outcome['place'], string> = {\n bridge: 'in Bridge',\n chat: 'in a chat',\n slack: 'in Slack',\n gateway: 'by the gateway',\n};\n\nconst KINDS: Record<Outcome['kind'], string> = {\n seen: 'Seen',\n answered: 'Answered',\n done: 'Done',\n cannot: 'Marked cannot',\n withdrawn: 'Withdrawn by its asker, seen',\n replaced: 'Replaced by its asker, seen',\n notSent: 'Not sent, removed',\n};\n\nexport function jobLabelOf(job: Job): string {\n return JOB_LABELS[job];\n}\n\n/** What came of an item and where, such as Answered in Slack: option 2; Done alone when no outcome was kept. */\nexport function outcomeTextOf(item: Pick<RecordItem, 'state' | 'outcome'>): string {\n switch (item.state) {\n case 'new':\n return 'New';\n case 'seen':\n return 'Seen, not done yet';\n case 'done': {\n const { outcome } = item;\n if (outcome === null) {\n return 'Done';\n }\n const said = `${KINDS[outcome.kind]} ${PLACES[outcome.place]}`;\n return outcome.option === null ? said : `${said}: option ${String(outcome.option)}`;\n }\n }\n}\n","import type { ReactNode } from 'react';\n\nimport { jobLabelOf, type HomeItem } from '../services/items';\nimport { Notice } from './notice';\n\n/** When an item was sent, in UTC, to the minute. */\nfunction sentAtOf(sentAt: string): string {\n return `${new Date(sentAt).toISOString().slice(0, 16).replace('T', ' ')} UTC`;\n}\n\n/**\n * One item in a Bridge list: a dot while new, its title, its job and who\n * sent it, when, what came of it once said, and its action; faded when stale. The row and its\n * title shrink to a phone's width (aeolus-fleet#1238).\n */\nexport function ItemRow({\n item,\n isNew,\n isStale = false,\n outcome,\n failure,\n children,\n}: {\n item: Pick<HomeItem, 'deliveryId' | 'from' | 'title' | 'sentAt' | 'job'>;\n isNew: boolean;\n /** Whether it is a question its asker withdrew or replaced: shown faded, outside the count. */\n isStale?: boolean;\n outcome: string | undefined;\n failure: string | undefined;\n children: ReactNode;\n}) {\n return (\n <li data-testid=\"bridge-item\" data-stale={isStale} className={`grid min-w-0 gap-2 rounded-md border border-border bg-card p-3 ${isStale ? 'opacity-60' : ''}`}>\n <div className=\"flex min-w-0 items-center gap-3\">\n <span className=\"flex min-w-0 flex-1 flex-col text-left\">\n <span className=\"flex min-w-0 items-center gap-2\">\n {isNew ? <span aria-label=\"New\" className=\"size-2 shrink-0 rounded-full bg-primary\" /> : null}\n <span className=\"truncate font-medium\">{item.title}</span>\n </span>\n <span className=\"text-caption text-muted-foreground\">\n {jobLabelOf(item.job)} · {item.from} · <time dateTime={item.sentAt}>{sentAtOf(item.sentAt)}</time>\n </span>\n {outcome === undefined ? null : <span data-testid=\"bridge-outcome\" className=\"text-caption\">{outcome}</span>}\n </span>\n {children}\n </div>\n {failure === undefined ? null : <Notice message={failure} isFailure />}\n </li>\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=\"bridge-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=\"bridge-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":["BRIDGE_PATH","BRIDGE_BASKET_PATH","BRIDGE_DONE_PATH","BRIDGE_SETTINGS_PATH","BRIDGE_ROUTING_PATH","FOCUS_PATH","useFocusReport","fleetId","focus","report","isInFocus","document","visibilityState","hasFocus","undefined","EventSource","encodeURIComponent","close","window","addEventListener","removeEventListener","VARIANTS","primary","secondary","ActionButton","isPending","pendingLabel","variant","children","className","disabled","button","JOB_LABELS","decide","do","PLACES","bridge","chat","slack","gateway","KINDS","seen","answered","done","cannot","withdrawn","replaced","notSent","jobLabelOf","job","outcomeTextOf","item","state","outcome","said","kind","place","option","String","Notice","message","isFailure","role"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- (()=>{"use strict";module.exports=[3656,a=>{var b=a.i(72131),c=a.i(50944);a.s(["LiveRefresh",0,function({fleetId:a}){let d;return d=(0,c.useRouter)(),(0,b.useEffect)(()=>{let b=new EventSource(`/bridge/changes?fleet=${encodeURIComponent(a)}`);return b.onmessage=()=>{d.refresh()},()=>{b.close()}},[a,d]),(0,b.useEffect)(()=>{let b,c=()=>{let c="visible"===document.visibilityState&&document.hasFocus();c&&void 0===b?b=new EventSource(`/bridge/focus?fleet=${encodeURIComponent(a)}`):c||void 0===b||(b.close(),b=void 0)};return c(),window.addEventListener("focus",c),window.addEventListener("blur",c),document.addEventListener("visibilitychange",c),()=>{window.removeEventListener("focus",c),window.removeEventListener("blur",c),document.removeEventListener("visibilitychange",c),b?.close()}},[a]),null}],3656)},32043,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})}])},10039,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":"bridge-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":"bridge-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_bridge_11jndonu4o8fq._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../web/features/bridge/hooks/use-focus-report.ts","../../../../../web/features/bridge/hooks/use-live-refresh.ts","../../../../../web/features/bridge/state/live-refresh.tsx","../../../../../web/features/bridge/ui/action-button.tsx","../../../../../web/features/bridge/ui/notice.tsx"],"sourcesContent":["'use client';\n\nimport { useEffect } from 'react';\n\n/** The stream the page holds while in focus, which the web app's server follows on the gateway's API for the browser. */\nexport const FOCUS_PATH = '/bridge/focus';\n\n/**\n * Tells the gateway while the page is in focus (wake a person, W6): it holds\n * the focus stream open while the window has focus and the page shows, and\n * closes it when either ends. While a page of the person is in focus, what\n * arrives is shown there and no wake goes out; an open page not in focus\n * changes nothing. A lost connection no longer counts as in focus.\n */\nexport function useFocusReport(fleetId: string): void {\n useEffect(() => {\n let focus: EventSource | undefined;\n const report = () => {\n const isInFocus = document.visibilityState === 'visible' && document.hasFocus();\n if (isInFocus && focus === undefined) {\n focus = new EventSource(`${FOCUS_PATH}?fleet=${encodeURIComponent(fleetId)}`);\n } else if (!isInFocus && focus !== undefined) {\n focus.close();\n focus = undefined;\n }\n };\n report();\n window.addEventListener('focus', report);\n window.addEventListener('blur', report);\n document.addEventListener('visibilitychange', report);\n return () => {\n window.removeEventListener('focus', report);\n window.removeEventListener('blur', report);\n document.removeEventListener('visibilitychange', report);\n focus?.close();\n };\n }, [fleetId]);\n}\n","'use client';\n\nimport { useRouter } from 'next/navigation';\nimport { useEffect } from 'react';\n\n/** The page's live updates, which the web app's server follows on the gateway's API for the browser. */\nexport const CHANGES_PATH = '/bridge/changes';\n\n/**\n * Keeps the page in step with its fleet's requests: whenever one changes,\n * the page reads itself again on the server, as its own caller. The browser\n * opens the stream again by itself when it drops.\n */\nexport function useLiveRefresh(fleetId: string): void {\n const router = useRouter();\n useEffect(() => {\n const changes = new EventSource(`${CHANGES_PATH}?fleet=${encodeURIComponent(fleetId)}`);\n changes.onmessage = () => {\n router.refresh();\n };\n return () => {\n changes.close();\n };\n }, [fleetId, router]);\n}\n","'use client';\n\nimport { useFocusReport } from '../hooks/use-focus-report';\nimport { useLiveRefresh } from '../hooks/use-live-refresh';\n\n/** Keeps the page it sits in live, and tells the gateway while it is in focus (wake a person, W6): it shows nothing itself. */\nexport function LiveRefresh({ fleetId }: { fleetId: string }) {\n useLiveRefresh(fleetId);\n useFocusReport(fleetId);\n return null;\n}\n","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=\"bridge-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=\"bridge-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":["FOCUS_PATH","useFocusReport","fleetId","focus","report","isInFocus","document","visibilityState","hasFocus","undefined","EventSource","encodeURIComponent","close","window","addEventListener","removeEventListener","VARIANTS","primary","secondary","ActionButton","isPending","pendingLabel","variant","children","className","disabled","button","Notice","message","isFailure","role"],"mappings":"4CAEA,IAAA,EAAA,EAAA,CAAA,CAAA,OCAA,EAAA,EAAA,CAAA,CAAA,4BCIO,SAAS,AAAY,SAAE,CAAO,CAAuB,QAG1D,ODKM,EAAS,CAAA,EAAA,EAAA,SAAA,AAAS,IACxB,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,KACR,IAAM,EAAU,IAAI,YAAY,GAAG,aAAa,OAAO,EAAE,mBAAmB,ACT/D,IDSyE,EAItF,OAHA,EAAQ,SAAS,CAAG,KAClB,EAAO,OAAO,EAChB,EACO,KACL,EAAQ,KAAK,EACf,CACFO,EAAG,GAAU,EAAO,EDRpB,CAAA,EAAA,EAAA,SAAS,AAAT,EAAU,KAER,IADIJ,EACEC,EAAS,KACb,IAAMC,EAAyC,YAA7BC,SAASC,eAAe,EAAkBD,SAASE,QAAQ,EACzEH,SAAuBI,IAAVN,EACfA,EAAQ,GAD4B,CACxBO,YAAY,GAAGV,WAAW,OAAO,EAAEW,mBAAmBT,IAAU,EAClEG,QAAuBI,IAAVN,IACvBA,EAAMS,CADsC,IACjC,GACXT,OAAQM,EAEZ,EAKA,OAJAL,IACAS,OAAOC,gBAAgB,CAAC,QAASV,GACjCS,OAAOC,gBAAgB,CAAC,OAAQV,GAChCE,SAASQ,gBAAgB,CAAC,mBAAoBV,GACvC,KACLS,OAAOE,mBAAmB,CAAC,QAASX,GACpCS,OAAOE,mBAAmB,CAAC,OAAQX,GACnCE,SAASS,mBAAmB,CAAC,mBAAoBX,GACjDD,GAAOS,OACT,CACF,EAAG,CE5BY,EF4BH,EE3BL,IACT,qCCRA,IAAMI,EAAW,CACfC,QAAS,4DACTC,UAAW,mEACb,aAMO,SAASC,AAAa,CAC3BC,WAAS,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,iBAAiBN,UAAU,gHACpDI,IAGH,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEE,KAAK,SAAS,cAAY,iBAAiBN,UAAU,2FACrDI,GAGP"}
@@ -1,3 +0,0 @@
1
- (()=>{"use strict";module.exports=[87952,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(5050);let e=(0,d.createServerReference)("40720a2e7f7a70673a75e3a4c0d8b553caf05d2f9f",d.callServer,void 0,d.findSourceMapURL,"turnRoute"),f=["slack","chat","web-push","email"],g={decide:{name:"Decide",holds:"Questions from your ships",item:"question",items:"questions"},do:{name:"Do what only you can",holds:"Steps: sign in, create, approve",item:"step",items:"steps"},"stay-aware":{name:"Stay aware",holds:"Alerts and notices",item:"alert or notice",items:"alerts and notices"},"everything-else":{name:"Everything else",holds:"Replies and other messages",item:"message",items:"messages"}},h={slack:"Slack",chat:"A chat","web-push":"Web push",email:"Email"},i="Bridge keeps every item.";var j=a.i(10039);a.s(["RoutingPanel",0,function({fleetId:a,routing:d,isSlackLinked:k}){let[l,m]=(0,c.useTransition)(),[n,o]=(0,c.useState)(),[p,q]=(0,c.useState)();return(0,b.jsxs)("section",{className:"grid gap-2","aria-labelledby":"bridge-routing-heading",children:[(0,b.jsx)("h2",{id:"bridge-routing-heading",className:"text-section font-semibold",children:"Per job"}),(0,b.jsx)("div",{className:"overflow-x-auto rounded-md border border-border bg-card",children:(0,b.jsxs)("table",{className:"w-full text-left",children:[(0,b.jsx)("thead",{children:(0,b.jsxs)("tr",{className:"border-b border-border text-caption text-muted-foreground",children:[(0,b.jsx)("th",{scope:"col",className:"p-3 font-medium",children:"Job"}),(0,b.jsx)("th",{scope:"col",className:"p-3 font-medium",children:"Bridge"}),f.map(a=>(0,b.jsx)("th",{scope:"col",className:"p-3 font-medium",children:h[a]},a))]})}),(0,b.jsx)("tbody",{children:d.jobs.map(({job:c,places:j})=>(0,b.jsxs)("tr",{"data-testid":"bridge-routing-job",className:"border-b border-border last:border-b-0",children:[(0,b.jsx)("th",{scope:"row",className:"p-3 font-normal",children:(0,b.jsxs)("span",{className:"flex flex-col",children:[(0,b.jsx)("span",{children:g[c].name}),(0,b.jsx)("span",{className:"text-caption text-muted-foreground",children:g[c].holds})]})}),(0,b.jsx)("td",{className:"p-3 text-caption text-muted-foreground",children:"Always"}),f.map(f=>{let p=j[f],r=`${c}-${f}`;return(0,b.jsx)("td",{className:"p-3",children:(0,b.jsx)("button",{type:"button","data-testid":`bridge-routing-${r}`,"aria-pressed":p,"aria-label":`${h[f]} for ${g[c].name}`,"aria-busy":l&&n===r,disabled:l||!p&&(!d.offered[f]||"slack"===f&&!k),onClick:()=>{var b;b={job:c,place:f,isOn:!p},q(void 0),o(`${b.job}-${b.place}`),m(async()=>{let c=await e({fleet:a,...b});q(c.isOk?{message:function({job:a,place:b,isOn:c}){let{name:d,item:e,items:f}=g[a],j=`${h[b]} is ${c?"on":"off"} for ${d}`;return c?"chat"===b?`${j}: it lists every ${e} not done when you ask it.`:`${j}: it shows ${f} that arrive from now on. Those already waiting stay in Bridge.`:"everything-else"===a&&"slack"===b?`${j}: only a bot ship's messages and replies to Slack show there. ${i}`:`${j}. ${i}`}(b),isFailure:!1}:{message:c.message,isFailure:!0})})},className:`inline-flex h-7 min-w-12 items-center justify-center rounded-full px-3 text-caption disabled:cursor-not-allowed disabled:opacity-50 ${p?"bg-primary text-primary-foreground":"border border-border bg-card text-muted-foreground hover:bg-accent"}`,children:p?"On":"Off"})},f)})]},c))})]})}),void 0===p?null:(0,b.jsx)(j.f,{message:p.message,isFailure:p.isFailure}),(0,b.jsx)("p",{className:"text-caption text-muted-foreground",children:"While a Bridge page is open in focus, web push and email do not wake you. Slack still posts: you turned it on, and Bridge keeps every item."})]})}],87952)},15970,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(5050);let e=(0,d.createServerReference)("40bc48a9fabe75ea0125a8969f993153e9f0a9f644",d.callServer,void 0,d.findSourceMapURL,"unlinkSlack");var f=a.i(32043),g=a.i(10039);a.s(["SlackLinkPanel",0,function({fleetId:a,slackLink:d}){let[h,i]=(0,c.useTransition)(),[j,k]=(0,c.useState)(),{workspaceName:l,link:m}=d;return(0,b.jsxs)("section",{className:"grid gap-2","aria-labelledby":"bridge-slack-heading",children:[(0,b.jsx)("h2",{id:"bridge-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":"bridge-slack-state",className:"min-w-0 flex-1",children:null===m?`Not linked in ${l}`:`Slack linked as @${m.slackName} in ${l}`}),null===m?(0,b.jsx)("a",{href:`/slack/link?${new URLSearchParams({fleet:a}).toString()}`,"data-testid":"bridge-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)(f.f,{"data-testid":"bridge-slack-unlink",isPending:h,pendingLabel:"Unlinking...",onClick:()=>{k(void 0),i(async()=>{let b=await e(a);b.isOk||k(b.message)})},children:"Unlink"})]}),void 0===j?null:(0,b.jsx)(g.f,{message:j,isFailure:!0})]})}],15970)},62887,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(5050);let e=(0,d.createServerReference)("60eaa9c806d6593a0208abff2bc4d470472e235af0",d.callServer,void 0,d.findSourceMapURL,"turnOffWebPush"),f=(0,d.createServerReference)("60c97fa100defe2ce2abac96196c23f10c622fd02d",d.callServer,void 0,d.findSourceMapURL,"turnOnWebPush"),g=[[/Edg\//,"Edge"],[/Firefox\//,"Firefox"],[/Chrome\//,"Chrome"],[/Safari\//,"Safari"]],h=[[/iPhone|iPad/,"iOS"],[/Android/,"Android"],[/Mac OS X/,"macOS"],[/Windows/,"Windows"],[/Linux/,"Linux"]],i=(a,b)=>b.find(([b])=>b.test(a))?.[1];var j=a.i(32043),k=a.i(10039);let l="/wake-worker.js";async function m(){let a=await navigator.serviceWorker.getRegistration(l);return await a?.pushManager.getSubscription()??null}async function n(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(l);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)))})}}a.s(["WebPushPanel",0,function({fleetId:a,webPushKey:d,browsers:l}){let[o,p]=(0,c.useState)(!0),[q,r]=(0,c.useState)(),[s,t]=(0,c.useState)(),[u,v]=(0,c.useState)(),[,w]=(0,c.useTransition)();(0,c.useEffect)(()=>{"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window?m().then(a=>{r(a?.endpoint)}):p(!1)},[]);let x=void 0!==q&&l.some(({endpoint:a,isGone:b})=>a===q&&!b);return(0,b.jsxs)("div",{className:"grid gap-2","data-testid":"bridge-wake-web-push",children:[l.map(({endpoint:c,browser:d,addedAt:f,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===q?" · 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(f).toLocaleDateString()}: it tells you when something waits in this fleet, with a link here. Never what waits.`})]}),(0,b.jsx)(j.f,{"data-testid":"bridge-web-push-remove",isPending:s===c,pendingLabel:"Removing...",disabled:void 0!==s,onClick:()=>{t(c),v(void 0),w(async()=>{c===q&&(await (await m())?.unsubscribe(),r(void 0));let b=await e(a,c);t(void 0),b.isOk||v(b.message)})},children:"Remove"})]},c)),o?x?null:(0,b.jsx)("div",{children:(0,b.jsx)(j.f,{"data-testid":"bridge-web-push-on",variant:"primary",isPending:"on"===s,pendingLabel:"Turning on...",disabled:void 0!==s,onClick:()=>{t("on"),v(void 0),w(async()=>{try{var b;let c,e,j=await n(d);if(!j.isOk)return void v(j.message);let k=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}}(j.value.toJSON(),(b=navigator.userAgent,c=i(b,g),e=i(b,h),void 0===c?"A browser":void 0===e?c:`${c} on ${e}`));if(void 0===k)return void v("Your browser gave no push subscription: try again");let l=await f(a,k);l.isOk?r(k.endpoint):v(l.message)}catch{v("Your browser could not turn web push on: try again")}finally{t(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===u?null:(0,b.jsx)(k.f,{message:u,isFailure:!0})]})}],62887)}]})();
2
-
3
- //# sourceMappingURL=web_features_bridge_state_0354e3wb0dzx1._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../web/features/bridge/state/routing-panel.tsx","../../../../../web/features/bridge/hooks/data%3A24f2e5%20%3Ctext/javascript%3E","../../../../../web/features/bridge/services/routing.ts","../../../../../web/features/bridge/state/slack-link-panel.tsx","../../../../../web/features/bridge/hooks/data%3Af76815%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/slack-link-path.ts","../../../../../web/features/bridge/state/web-push-panel.tsx","../../../../../web/features/bridge/hooks/data%3A285584%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3A13e6d4%20%3Ctext/javascript%3E","../../../../../web/features/bridge/services/web-push.ts"],"sourcesContent":["'use client';\n\nimport { useState, useTransition } from 'react';\n\nimport { turnRoute } from '../hooks/bridge-actions';\nimport { JOB_NAMES, PLACE_NAMES, ROUTED_PLACES, turnedMessageOf, type RoutedJob, type RoutedPlace, type RoutingView } from '../services/routing';\nimport { Notice } from '../ui/notice';\n\n/** What a change came to, said by the grid. */\ninterface Said {\n readonly message: string;\n readonly isFailure: boolean;\n}\n\n/**\n * Routing per job (Bridge, section 8; the routing mockup): per job, the\n * places that show it besides Bridge, which always does. A switch turns a\n * place on or off at once; what it then shows is said beside the grid\n * (CC20). A place the gateway does not offer, or Slack before it is linked,\n * cannot be turned on; one on can always be turned off.\n */\nexport function RoutingPanel({ fleetId, routing, isSlackLinked }: { fleetId: string; routing: RoutingView; isSlackLinked: boolean }) {\n const [isTurning, startTransition] = useTransition();\n const [turning, setTurning] = useState<string | undefined>();\n const [said, setSaid] = useState<Said | undefined>();\n const isUsable = (place: RoutedPlace): boolean => routing.offered[place] && (place !== 'slack' || isSlackLinked);\n\n const turn = (change: { job: RoutedJob; place: RoutedPlace; isOn: boolean }) => {\n setSaid(undefined);\n setTurning(`${change.job}-${change.place}`);\n startTransition(async () => {\n const outcome = await turnRoute({ fleet: fleetId, ...change });\n setSaid(outcome.isOk ? { message: turnedMessageOf(change), isFailure: false } : { message: outcome.message, isFailure: true });\n });\n };\n\n return (\n <section className=\"grid gap-2\" aria-labelledby=\"bridge-routing-heading\">\n <h2 id=\"bridge-routing-heading\" className=\"text-section font-semibold\">\n Per job\n </h2>\n <div className=\"overflow-x-auto rounded-md border border-border bg-card\">\n <table className=\"w-full text-left\">\n <thead>\n <tr className=\"border-b border-border text-caption text-muted-foreground\">\n <th scope=\"col\" className=\"p-3 font-medium\">\n Job\n </th>\n <th scope=\"col\" className=\"p-3 font-medium\">\n Bridge\n </th>\n {ROUTED_PLACES.map((place) => (\n <th key={place} scope=\"col\" className=\"p-3 font-medium\">\n {PLACE_NAMES[place]}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {routing.jobs.map(({ job, places }) => (\n <tr key={job} data-testid=\"bridge-routing-job\" className=\"border-b border-border last:border-b-0\">\n <th scope=\"row\" className=\"p-3 font-normal\">\n <span className=\"flex flex-col\">\n <span>{JOB_NAMES[job].name}</span>\n <span className=\"text-caption text-muted-foreground\">{JOB_NAMES[job].holds}</span>\n </span>\n </th>\n <td className=\"p-3 text-caption text-muted-foreground\">Always</td>\n {ROUTED_PLACES.map((place) => {\n const isOn = places[place];\n const key = `${job}-${place}`;\n return (\n <td key={place} className=\"p-3\">\n <button\n type=\"button\"\n data-testid={`bridge-routing-${key}`}\n aria-pressed={isOn}\n aria-label={`${PLACE_NAMES[place]} for ${JOB_NAMES[job].name}`}\n aria-busy={isTurning && turning === key}\n disabled={isTurning || (!isOn && !isUsable(place))}\n onClick={() => {\n turn({ job, place, isOn: !isOn });\n }}\n className={`inline-flex h-7 min-w-12 items-center justify-center rounded-full px-3 text-caption disabled:cursor-not-allowed disabled:opacity-50 ${isOn ? 'bg-primary text-primary-foreground' : 'border border-border bg-card text-muted-foreground hover:bg-accent'}`}\n >\n {isOn ? 'On' : 'Off'}\n </button>\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n {said === undefined ? null : <Notice message={said.message} isFailure={said.isFailure} />}\n <p className=\"text-caption text-muted-foreground\">While a Bridge page is open in focus, web push and email do not wake you. Slack still posts: you turned it on, and Bridge keeps every item.</p>\n </section>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"40720a2e7f7a70673a75e3a4c0d8b553caf05d2f9f\":{\"name\":\"turnRoute\"}},\"web/features/bridge/hooks/bridge-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(\"40720a2e7f7a70673a75e3a4c0d8b553caf05d2f9f\",callServer,void 0,findSourceMapURL,\"turnRoute\");export{$$RSC_SERVER_ACTION_7 as turnRoute};","/**\n * Routing per job as Bridge's routing page shows it (Bridge, section 8):\n * the jobs and places by the names the person reads, and what a change\n * says it does (CC20).\n */\nimport type { inferRouterOutputs } from '@trpc/server';\n\nimport type { GatewayRouter } from '../../../../src/adapters/trpc/router.js';\n\n/** Where each job shows besides Bridge, per place, as the API answers it. */\nexport type RoutingView = inferRouterOutputs<GatewayRouter>['people']['routing'];\nexport type RoutedJob = RoutingView['jobs'][number]['job'];\nexport type RoutedPlace = keyof RoutingView['offered'];\n\nexport const ROUTED_PLACES: readonly RoutedPlace[] = ['slack', 'chat', 'web-push', 'email'];\n\nexport const JOB_NAMES: Readonly<Record<RoutedJob, { readonly name: string; readonly holds: string; readonly item: string; readonly items: string }>> = {\n decide: { name: 'Decide', holds: 'Questions from your ships', item: 'question', items: 'questions' },\n do: { name: 'Do what only you can', holds: 'Steps: sign in, create, approve', item: 'step', items: 'steps' },\n 'stay-aware': { name: 'Stay aware', holds: 'Alerts and notices', item: 'alert or notice', items: 'alerts and notices' },\n 'everything-else': { name: 'Everything else', holds: 'Replies and other messages', item: 'message', items: 'messages' },\n};\n\nexport const PLACE_NAMES: Readonly<Record<RoutedPlace, string>> = { slack: 'Slack', chat: 'A chat', 'web-push': 'Web push', email: 'Email' };\n\nconst KEEPS_EVERY_ITEM = 'Bridge keeps every item.';\n\n/** What turning a place on or off for a job does: a chat lists what is not done, a place that pushes only what arrives after. */\nexport function turnedMessageOf({ job, place, isOn }: { job: RoutedJob; place: RoutedPlace; isOn: boolean }): string {\n const { name, item, items } = JOB_NAMES[job];\n const turned = `${PLACE_NAMES[place]} is ${isOn ? 'on' : 'off'} for ${name}`;\n if (!isOn) {\n return job === 'everything-else' && place === 'slack' ? `${turned}: only a bot ship's messages and replies to Slack show there. ${KEEPS_EVERY_ITEM}` : `${turned}. ${KEEPS_EVERY_ITEM}`;\n }\n if (place === 'chat') {\n return `${turned}: it lists every ${item} not done when you ask it.`;\n }\n return `${turned}: it shows ${items} that arrive from now on. Those already waiting stay in Bridge.`;\n}\n","'use client';\n\nimport { useState, useTransition } from 'react';\n\nimport { unlinkSlack } from '../hooks/bridge-actions';\nimport type { SlackLink } from '../hooks/read-bridge';\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; what else shows\n * there is routed per job, beside it (Bridge, section 8).\n */\nexport function SlackLinkPanel({ fleetId, slackLink }: { fleetId: string; slackLink: SlackLink }) {\n const [isUnlinking, startTransition] = 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 return (\n <section className=\"grid gap-2\" aria-labelledby=\"bridge-slack-heading\">\n <h2 id=\"bridge-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=\"bridge-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=\"bridge-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=\"bridge-slack-unlink\" isPending={isUnlinking} pendingLabel=\"Unlinking...\" onClick={unlink}>\n Unlink\n </ActionButton>\n )}\n </div>\n {failure === undefined ? null : <Notice message={failure} isFailure />}\n </section>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"40bc48a9fabe75ea0125a8969f993153e9f0a9f644\":{\"name\":\"unlinkSlack\"}},\"web/features/bridge/hooks/bridge-actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_10=/*#__PURE__*/createServerReference(\"40bc48a9fabe75ea0125a8969f993153e9f0a9f644\",callServer,void 0,findSourceMapURL,\"unlinkSlack\");export{$$RSC_SERVER_ACTION_10 as unlinkSlack};","/** Where Link Slack starts (gateway scopes 9.3): the button in Bridge's settings 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 { useEffect, useState, useTransition } from 'react';\n\nimport { turnOffWebPush, turnOnWebPush } from '../hooks/bridge-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 Bridge 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 section of wakes of Bridge's settings (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=\"bridge-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=\"bridge-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=\"bridge-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","/* __next_internal_action_entry_do_not_use__ [{\"60eaa9c806d6593a0208abff2bc4d470472e235af0\":{\"name\":\"turnOffWebPush\"}},\"web/features/bridge/hooks/bridge-actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_9=/*#__PURE__*/createServerReference(\"60eaa9c806d6593a0208abff2bc4d470472e235af0\",callServer,void 0,findSourceMapURL,\"turnOffWebPush\");export{$$RSC_SERVER_ACTION_9 as turnOffWebPush};","/* __next_internal_action_entry_do_not_use__ [{\"60c97fa100defe2ce2abac96196c23f10c622fd02d\":{\"name\":\"turnOnWebPush\"}},\"web/features/bridge/hooks/bridge-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(\"60c97fa100defe2ce2abac96196c23f10c622fd02d\",callServer,void 0,findSourceMapURL,\"turnOnWebPush\");export{$$RSC_SERVER_ACTION_8 as turnOnWebPush};","/**\n * What the section of wakes of Bridge's settings 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"],"names":["$$RSC_SERVER_ACTION_7","$$RSC_SERVER_ACTION_10","$$RSC_SERVER_ACTION_9"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- module.exports=[3656,a=>{"use strict";var b=a.i(72131),c=a.i(50944);a.s(["LiveRefresh",0,function({fleetId:a}){let d;return d=(0,c.useRouter)(),(0,b.useEffect)(()=>{let b=new EventSource(`/bridge/changes?fleet=${encodeURIComponent(a)}`);return b.onmessage=()=>{d.refresh()},()=>{b.close()}},[a,d]),(0,b.useEffect)(()=>{let b,c=()=>{let c="visible"===document.visibilityState&&document.hasFocus();c&&void 0===b?b=new EventSource(`/bridge/focus?fleet=${encodeURIComponent(a)}`):c||void 0===b||(b.close(),b=void 0)};return c(),window.addEventListener("focus",c),window.addEventListener("blur",c),document.addEventListener("visibilitychange",c),()=>{window.removeEventListener("focus",c),window.removeEventListener("blur",c),document.removeEventListener("visibilitychange",c),b?.close()}},[a]),null}],3656)}];
2
-
3
- //# sourceMappingURL=web_features_bridge_state_live-refresh_tsx_1c1xk-oe0kllv._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../web/features/bridge/hooks/use-focus-report.ts","../../../../../web/features/bridge/hooks/use-live-refresh.ts","../../../../../web/features/bridge/state/live-refresh.tsx"],"sourcesContent":["'use client';\n\nimport { useEffect } from 'react';\n\n/** The stream the page holds while in focus, which the web app's server follows on the gateway's API for the browser. */\nexport const FOCUS_PATH = '/bridge/focus';\n\n/**\n * Tells the gateway while the page is in focus (wake a person, W6): it holds\n * the focus stream open while the window has focus and the page shows, and\n * closes it when either ends. While a page of the person is in focus, what\n * arrives is shown there and no wake goes out; an open page not in focus\n * changes nothing. A lost connection no longer counts as in focus.\n */\nexport function useFocusReport(fleetId: string): void {\n useEffect(() => {\n let focus: EventSource | undefined;\n const report = () => {\n const isInFocus = document.visibilityState === 'visible' && document.hasFocus();\n if (isInFocus && focus === undefined) {\n focus = new EventSource(`${FOCUS_PATH}?fleet=${encodeURIComponent(fleetId)}`);\n } else if (!isInFocus && focus !== undefined) {\n focus.close();\n focus = undefined;\n }\n };\n report();\n window.addEventListener('focus', report);\n window.addEventListener('blur', report);\n document.addEventListener('visibilitychange', report);\n return () => {\n window.removeEventListener('focus', report);\n window.removeEventListener('blur', report);\n document.removeEventListener('visibilitychange', report);\n focus?.close();\n };\n }, [fleetId]);\n}\n","'use client';\n\nimport { useRouter } from 'next/navigation';\nimport { useEffect } from 'react';\n\n/** The page's live updates, which the web app's server follows on the gateway's API for the browser. */\nexport const CHANGES_PATH = '/bridge/changes';\n\n/**\n * Keeps the page in step with its fleet's requests: whenever one changes,\n * the page reads itself again on the server, as its own caller. The browser\n * opens the stream again by itself when it drops.\n */\nexport function useLiveRefresh(fleetId: string): void {\n const router = useRouter();\n useEffect(() => {\n const changes = new EventSource(`${CHANGES_PATH}?fleet=${encodeURIComponent(fleetId)}`);\n changes.onmessage = () => {\n router.refresh();\n };\n return () => {\n changes.close();\n };\n }, [fleetId, router]);\n}\n","'use client';\n\nimport { useFocusReport } from '../hooks/use-focus-report';\nimport { useLiveRefresh } from '../hooks/use-live-refresh';\n\n/** Keeps the page it sits in live, and tells the gateway while it is in focus (wake a person, W6): it shows nothing itself. */\nexport function LiveRefresh({ fleetId }: { fleetId: string }) {\n useLiveRefresh(fleetId);\n useFocusReport(fleetId);\n return null;\n}\n"],"names":["FOCUS_PATH","useFocusReport","fleetId","focus","report","isInFocus","document","visibilityState","hasFocus","undefined","EventSource","encodeURIComponent","close","window","addEventListener","removeEventListener"],"mappings":"sCAEA,IAAA,EAAA,EAAA,CAAA,CAAA,OCAA,EAAA,EAAA,CAAA,CAAA,4BCIO,SAAS,AAAY,SAAE,CAAO,CAAuB,QAG1D,ODKM,EAAS,CAAA,EAAA,EAAA,SAAA,AAAS,IACxB,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,KACR,IAAM,EAAU,IAAI,YAAY,GAAG,aAAa,OAAO,EAAE,mBAAmB,ACT/D,IDSyE,EAItF,OAHA,EAAQ,SAAS,CAAG,KAClB,EAAO,OAAO,EAChB,EACO,KACL,EAAQ,KAAK,EACf,CACFO,EAAG,GAAU,EAAO,EDRpB,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,KAER,IADIJ,EACEC,EAAS,KACb,IAAMC,EAAyC,YAA7BC,SAASC,eAAe,EAAkBD,SAASE,QAAQ,GACzEH,QAAuBI,IAAVN,EACfA,EAAQ,GAD4B,CACxBO,YAAY,GAAGV,WAAW,OAAO,EAAEW,mBAAmBT,IAAU,EAClEG,QAAuBI,IAAVN,IACvBA,EAAMS,CADsC,IACjC,GACXT,OAAQM,EAEZ,EAKA,OAJAL,IACAS,OAAOC,gBAAgB,CAAC,QAASV,GACjCS,OAAOC,gBAAgB,CAAC,OAAQV,GAChCE,SAASQ,gBAAgB,CAAC,mBAAoBV,GACvC,KACLS,OAAOE,mBAAmB,CAAC,QAASX,GACpCS,OAAOE,mBAAmB,CAAC,OAAQX,GACnCE,SAASS,mBAAmB,CAAC,mBAAoBX,GACjDD,GAAOS,OACT,CACF,EAAG,CE5BY,EF4BH,EE3BL,IACT"}
@@ -1,3 +0,0 @@
1
- module.exports=[48913,s=>{"use strict";s.s([])}];
2
-
3
- //# sourceMappingURL=web__next-internal_server_app_%28console%29_bridge_focus_route_actions_0syd_u8mgzdmi.js.map
@@ -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),h=e.i(75606),m=e.i(64111),C=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,m.c)(this,e,t,{extraState:{openChangeReason:t.reason}})};cancelPendingOpen(e){this.state.floatingRootContext.dispatchOpenChange(!1,(0,h.j)(x.f.triggerPress,e))}}var O=e.i(16856),O=O,E=e.i(80025),T=e.i(68765);let w=(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:C}=e,S=(0,m.$)((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"),w=S.useState("payload");S.useSyncedValues({trackCursorAxis:u,disableHoverablePopup:l,disabled:r}),(0,m._)(S,{closeOnActiveTriggerUnmount:!0});let{forceUnmount:k,transitionStatus:D}=(0,m.L)(P,S),M=S.useState("isInstantPhase"),j=S.useState("instantType"),A=S.useState("lastOpenChangeReason"),_=n.useRef(null);(0,i.f)(()=>{x&&r&&S.setOpen(!1,(0,h.j)(O.disabled))},[x,r,S]),(0,i.f)(()=>{"ending"===D&&A===E.f.none||"ending"!==D&&M?("delay"!==j&&(_.current=j),S.set("instantType","delay")):null!==_.current&&(S.set("instantType",_.current),_.current=null)},[D,M,A,j,S]),(0,i.f)(()=>{P&&null==R&&S.set("payload",void 0)},[S,R,P]),n.useImperativeHandle(p,()=>({unmount:k,close:()=>S.setOpen(!1,(0,h.j)(T.f.imperativeAction))}),[k,S]);let H=P||b||!r&&"none"!==u;return(0,t.jsxs)(a.Provider,{value:S,children:[f&&(0,t.jsx)(m.d,{handle:f,store:S}),H&&(0,t.jsx)(I,{store:S,disabled:r,trackCursorAxis:u}),"function"==typeof C?C({payload:w}):C]})});function I({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),h=n.useRef(null),[m,C]=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:m},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?h.current||(R(e.clientX,e.clientY,e.currentTarget),x([])):R(e.clientX,e.clientY,e.currentTarget)}),y=(0,f.J)(m)?s:i;n.useEffect(()=>{if(!r)return void P(a);if(!y)return;function e(){h.current?.(),h.current=null}let t=(0,c.K)(s);return!l.current.openEvent||g(l.current.openEvent)?h.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){C(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,C.w)(a.reference,s.reference),[a.reference,s.reference]);return(0,m.y)(e,{activeTriggerProps:l,inactiveTriggerProps:l,popupProps:s.floating??o.w}),null}var k=e.i(39957),D=e.i(46265),M=e.i(79938),j=e.i(52245),A=e.i(59636),_=e.i(88015);let H=n.createContext(void 0);var B=e.i(50316),U=e.i(44681);let F=n.createContext({hasProvider:!1,timeoutMs:0,delayRef:{current:0},initialDelayRef:{current:0},timeout:new k.U,currentIdRef:{current:null},currentContextRef:{current:null}});function X(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,k.e)();return(0,i.f)(()=>{if(l.current=o,!u.current){a.current=o;return}a.current={open:(0,U.c)(a.current,"open"),close:(0,U.c)(o,"close")}},[o,u,a,l]),(0,t.jsx)(F.Provider,{value:n.useMemo(()=>({hasProvider:!0,delayRef:a,initialDelayRef:l,currentIdRef:u,timeoutMs:s,currentContextRef:p,timeout:c}),[s,c]),children:r})}var q=e.i(13082),K=e.i(72135),N=e.i(22428),V=e.i(73752),W=e.i(22846);let J="data-base-ui-tooltip-trigger";function L(e){let t=(0,d.Z)(e);return(0,c.m)(t)?t:null}let Z=(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:C,id:S,...x}=e,P=l(!0),R=(0,A.f)(u)??P;if(!R)throw Error((0,s.f)(82));let b=(0,_.f)(S),y=R.useState("isTriggerActive",b),O=R.useState("isOpenedByTrigger",b),T=R.useState("floatingRootContext"),w=n.useRef(null),I=C??0,{registerTrigger:X,isMountedByThisTrigger:Z}=(0,m.F)(b,w,R,{payload:p,closeOnClick:v,closeDelay:I}),Y=n.useContext(H),{activeIdRef:$,delayRef:z,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(F),[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,U.c)(u.current,"close")},null!==n&&n!==o?(g(!0),t?.setIsInstantPhase(!0),t?.onOpenChange(!1,(0,h.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,V.s)(T);R.useSyncedValue("isInstantPhase",G);let et=R.useState("disabled"),en=c??et,er=(0,D.f)(en),eo=R.useState("trackCursorAxis"),ei=R.useState("disableHoverablePopup"),es=n.useRef(!1),ea=(0,k.e)(),el=n.useRef(void 0);function eu(){return Q&&null!=$.current?0:g??Y??600}function ep(e){let t=w.current;if(!t||!e)return!1;let n=(0,d.h)(e,`[${J}]`);return null!==n&&n!==t&&(0,d.I)(t,n)}let ec=(0,K.f)(T,{enabled:!en,mouseOnly:!0,move:!1,handleClose:ei||"both"===eo?null:(0,B.f)(),restMs:eu,delay:()=>null==C&&Q?{close:(0,U.c)(z.current,"close")}:{close:I},triggerElementRef:w,isActiveTrigger:y,isClosing:()=>"ending"===R.select("transitionStatus"),shouldOpen:()=>!es.current}),ed=(0,q.f)(T,{enabled:!en}).reference,ef=R.useState("appliedTriggerProps",Z||"none"!==eo);return(0,j.a)("button",e,{state:{open:O},ref:[t,X,w],props:[ec,ed,ef,{onMouseOver(e){(e=>{let t,n=es.current,r=L(e),o=(es.current=t=ep(r),t&&(ee.openChangeTimeout.clear(),ee.restTimeout.clear(),ee.restTimeoutPending=!1,ea.clear()),t),i=w.current,s=i&&r&&(0,d.I)(i,r);if(o&&R.select("open")&&R.select("lastOpenChangeReason")===N.f.triggerHover)return R.setOpen(!1,(0,h.j)(N.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,h.j)(N.f.triggerHover,e,i))},n=eu();0===n?(ea.clear(),t()):ea.start(n,t)}})(e.nativeEvent)},onFocus(e){ep(L(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,[W.f]:en?"":void 0,[J]:en?void 0:""},x],stateAttributesMapping:M.J})}),Y=n.createContext(void 0);var $=e.i(78680);let z=n.forwardRef(function(e,n){let{keepMounted:r=!1,...o}=e;return l().useState("mounted")||r?(0,t.jsx)(Y.Provider,{value:r,children:(0,t.jsx)($.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:h=5,sticky:m=!1,disableAnchorTracking:C=!1,collisionAvoidance:S=ee.n,style:x,...P}=e,R=l(),b=function(){let e=n.useContext(Y);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"),w=R.useState("floatingRootContext"),I=R.useState("instantType"),k=R.useState("transitionStatus"),D=R.useState("adaptiveOrigin"),M=(0,Q.f)({anchor:a,positionMethod:u,floatingRootContext:w,mounted:O,side:p,sideOffset:d,align:c,alignOffset:f,collisionBoundary:g,collisionPadding:v,sticky:m,arrowPadding:h,disableAnchorTracking:C,keepMounted:b,collisionAvoidance:S,adaptiveOrigin:D}),j=n.useMemo(()=>({open:y,side:M.side,align:M.align,anchorHidden:M.anchorHidden,instant:"none"!==E?"tracking-cursor":I}),[y,M.side,M.align,M.anchorHidden,E,I]),A=(0,et.f)(e,j,{styles:M.positionerStyles,transitionStatus:k,props:P,refs:[r,R.useStateSetter("positionerElement")],hidden:!O,inert:!y||"both"===E||T});return(0,t.jsx)(G.Provider,{value:M,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"),h=u.useState("floatingRootContext"),C=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)(h,{enabled:!C,closeDelay:S});let x=u.useStateSetter("popupElement");return(0,j.a)("div",e,{state:{open:d,side:p,align:c,instant:f,transitionStatus:g},ref:[t,u.context.popupRef,x],props:[m.X,v,(0,eo.f)(g),a],stateAttributesMapping:M.M})});e.s(["Popup",0,es,"Portal",0,z,"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)(H.Provider,{value:r,children:(0,t.jsx)(X,{delay:s,timeoutMs:i,children:e.children})})},"Root",0,w,"Trigger",0,Z],99643),e.i(99643),e.i(71773),e.s([],34982)},49317,e=>{e.i(43476),e.i(71645),e.s([])},93270,e=>{let t;e.i(43476),e.i(71645);var n=e.i(71773);let r=["from-above-1","squadrons-1","squadrons-3","squadrons-4","squadrons-5","squadrons-6"],o={width:1600,height:1e3},i=.2*o.height;t=Math.min(r.length-1,Math.floor((0,Math.random)()*r.length)),r[t],(0,n.f)("[--sign-in-faint:color-mix(in_oklch,var(--foreground)_11%,transparent)] [--sign-in-brand:color-mix(in_oklch,var(--primary)_22%,transparent)]","[--sign-in-warm:oklch(0.88_0.06_60)] [--sign-in-sky:oklch(0.9_0.04_255)]","dark:[--sign-in-faint:color-mix(in_oklch,var(--foreground)_9%,transparent)] dark:[--sign-in-brand:color-mix(in_oklch,var(--primary)_20%,transparent)]","dark:[--sign-in-warm:oklch(0.55_0.06_55)] dark:[--sign-in-sky:oklch(0.3_0.05_260)]");let{width:s,height:a}=o;String(i/a*100),String(i),String(s),String(s),String(i),String(.68),String(-.68),e.s([],93270)},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:h}=(0,l.f)({disabled:a,native:c});return(0,i.a)("button",e,{state:{disabled:a},ref:[t,h],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 h(){let e=t.useContext(v);if(void 0===e)throw Error((0,n.f)(26));return e}e.s(["_",0,v,"Z",0,h],25834);var m=e.i(37584),C=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"),w=p.useState("titleElementId"),I=p.useState("transitionStatus"),k=p.useState("role"),D=f.useState("floatingId");h(),(0,m.f)({open:y,ref:p.context.popupRef,onComplete(){y&&p.context.onOpenChangeComplete?.(!0)}});let M=void 0===l?(0,S.H)(p.context.popupRef):l,j=p.useStateSetter("popupElement"),A=(0,i.a)("div",e,{state:{open:y,nested:R,transitionStatus:I,nestedDialogOpen:b>0},props:[v,{id:D,"aria-labelledby":w,"aria-describedby":c,role:k,...S.X,hidden:!P,onKeyDown(e){C.f.has(e.key)&&e.stopPropagation()},style:{"--nested-dialogs":b}},u],ref:[t,p.context.popupRef,j],stateAttributesMapping:O});return(0,E.jsx)(g.f,{context:f,openInteractionType:T,disabled:!P,closeOnFocusOut:!d,initialFocus:M,returnFocus:a,modal:!1!==x,restoreFocus:"popup",children:A})});var w=e.i(44394),I=e.i(26674),k=e.i(426);let D=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)(I.r,{ref:t,...r,children:[s&&!0===a&&(0,E.jsx)(k.f,{ref:i.context.internalBackdropRef,inert:(0,w.f)(!l)}),e.children]})}):null});e.s(["f",0,D],64951);var M=e.i(96499),j=e.i(46376),A=e.i(45484),_=e.i(17989),H=e.i(84446);function B({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,_.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,H.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,H.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,j.f)(()=>{o||i||(c(0),f(0))},[o,i]),(0,j.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 U=e.i(1252),F=e.i(16786),X=e.i(90627);let q={...F.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 K extends U.f{constructor(e,n,r){var o;let i=new X.f;super(function(e,t,n,r=!1){return{...(0,F.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}),q)}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 N=e.i(68765);function V(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:h=null}=n,m="alert-dialog"===e,C=o(!0),x={modal:!!m||d,disablePointerDismissal:m||c,nested:null!=C,role:m?"alertdialog":"dialog"},P=(0,S.$)((e,t)=>new K({open:a,openProp:s,activeTriggerId:h,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)(N.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)(B,{store:P,parentContext:C?.context,isDrawer:"drawer"===e}),"function"==typeof i?i({payload:y}):i]})}e.s(["f",0,V],66250);let W=(0,M.U)(function(e){return V("dialog",e)}),J=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,J],77173);var L=e.i(38396),Z=e.i(59636),Y=e.i(85689),$=e.i(32199);let z=(0,M.u)(function(e,r){let{render:a,className:u,style:p,disabled:c=!1,nativeButton:f=!0,id:g,payload:v,handle:h,...m}=e,C=o(!0),x=(0,Z.f)(h)??C;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:w,buttonRef:I}=(0,l.f)({disabled:c,native:f}),k=(0,Y.f)(R),D=(0,$.p)(()=>x.select("open"),e=>{x.set("openMethod",e)}),M=x.useState("triggerProps",T);return(0,i.a)("button",e,{state:{disabled:c,open:b},ref:[I,r,E,O],props:[k.reference,M,D,{[L.j]:"",id:P,"aria-haspopup":"dialog","aria-expanded":b,"aria-controls":y},m,w],stateAttributesMapping:s.J})});e.s(["f",0,z],13488),e.s(["Backdrop",0,a,"Close",0,c,"Description",0,f,"Popup",0,T,"Portal",0,D,"Root",0,W,"Title",0,J,"Trigger",0,z],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])},55070,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})}])},28008,e=>{e.s(["H",0,"fleet","Q",0,{kind:"idle"}])},76427,e=>{var r=e.i(43476),t=e.i(71645),n=e.i(28008),o=e.i(94984),d=e.i(58107);e.s(["ActionForm",0,function({action:e,fleetId:i,children:a,submit:s,className:b="grid gap-3",testId:c}){let[l,u]=(0,t.useActionState)(e,n.Q);return(0,r.jsxs)("form",{action:u,className:b,"data-testid":c,children:[(0,r.jsx)("input",{type:"hidden",name:n.H,value:i}),a,(0,r.jsx)("div",{children:(0,r.jsx)(d.f,{pending:s.pending,...void 0===s.kind?{}:{kind:s.kind},children:s.label})}),(0,r.jsx)(o.f,{state:l})]})}])},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})}])}])})();
@@ -1 +0,0 @@
1
- (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,26217,e=>{var n=e.i(95187);let i=(0,n.createServerReference)("60573c940559fe36ec3489b04906d9407ddf5822ef",n.callServer,void 0,n.findSourceMapURL,"removeFromBasket");e.s(["f",0,i])},57228,e=>{e.s(["H",0,"/bridge/basket","T",0,"/bridge/settings"])},22141,e=>{var n=e.i(43476),i=e.i(71645),t=e.i(26217),s=e.i(95187);let r=(0,s.createServerReference)("40b44086e3707ca8b788d4ad4b3ef6615138ffe27a",s.callServer,void 0,s.findSourceMapURL,"sendBasket"),d={bridge:"in Bridge",chat:"in a chat",slack:"in Slack",gateway:"by the gateway"},a={withdrawn:"withdrawn",replaced:"replaced",dealtElsewhere:"answered elsewhere"};function o(e){return 1===e?"1 answer":`${String(e)} answers`}var l=e.i(55070),c=e.i(63132),g=e.i(3523);function u({entry:e,opening:i,working:t,onRemove:s}){var r;let{standing:a}=e,o=function(e){let{standing:n}=e;switch(n.kind){case"waiting":return;case"sending":return"Sending... The gateway keeps sending what is stored as sending, with the same key, until it is stored; you can close Bridge.";case"refused":return`Not sent: ${n.reason}. The others were sent.`;case"withdrawn":return`Withdrawn by ${e.from}. Not sent; Send skips it.`;case"replaced":return`Replaced by ${e.from}. Not sent: its options may differ, so answer the new question.`;case"dealtElsewhere":return null===n.option?`Done ${d[n.place]}. Nothing is sent from it.`:`Answered ${d[n.place]}: option ${String(n.option)}. Nothing is sent from it.`}}(e),g=void 0!==t||void 0!==i.openingId,p="replaced"===a.kind?a.replacementId:null;return(0,n.jsxs)("li",{"data-testid":"bridge-basket-entry","data-standing":a.kind,className:`grid min-w-0 gap-2 rounded-md border border-border bg-card p-3 ${"withdrawn"===a.kind||"replaced"===a.kind||"dealtElsewhere"===a.kind?"opacity-60":""}`,children:[(0,n.jsx)("span",{className:"font-medium",children:e.title}),(0,n.jsxs)("span",{className:"text-caption text-muted-foreground",children:["to ",e.from," · asked at ",(0,n.jsx)("time",{dateTime:e.sentAt,children:(r=e.sentAt,`${new Date(r).toISOString().slice(0,16).replace("T"," ")} UTC`)})]}),(0,n.jsxs)("span",{children:["Option ",e.option]}),null===e.note?null:(0,n.jsxs)("span",{className:"text-caption",children:["“",e.note,"”"]}),void 0===o?null:(0,n.jsx)("span",{"data-testid":"bridge-basket-standing",className:"text-caption",children:o}),i.failure?.deliveryId===e.deliveryId?(0,n.jsx)(c.f,{message:i.failure.message,isFailure:!0}):null,(0,n.jsxs)("div",{className:"flex flex-wrap gap-2",children:["waiting"===a.kind?(0,n.jsx)(l.f,{"data-testid":"bridge-basket-change",isPending:i.openingId===e.deliveryId,pendingLabel:"Opening...",disabled:g,onClick:()=>{i.open({deliveryId:e.deliveryId,job:"decide",inBasket:{option:e.option,note:e.note}})},children:"Change"}):null,null===p?null:(0,n.jsx)(l.f,{"data-testid":"bridge-replacement",isPending:i.openingId===p,pendingLabel:"Opening...",disabled:g,onClick:()=>{i.open({deliveryId:p,job:"decide"})},children:"Answer the new question"}),"sending"===a.kind?null:(0,n.jsx)(l.f,{"data-testid":"bridge-basket-remove",isPending:t?.kind==="remove"&&t.questionId===e.questionId,pendingLabel:"Removing...",disabled:g,onClick:()=>{s(e.questionId)},children:"refused"===a.kind?"Remove and mark done":"Remove"})]})]})}e.s(["BasketPanel",0,function({fleetId:e,basket:s}){let[d,p]=(0,i.useState)(),[m,b]=(0,i.useState)(),[,h]=(0,i.useTransition)(),{entries:f,toSend:x}=s,v=n=>{p({kind:"remove",questionId:n}),b(void 0),h(async()=>{let i=await (0,t.f)(e,n);p(void 0),b(i.isOk?void 0:{message:i.message,isFailure:!0})})},k=()=>{p({kind:"send"}),b(void 0),h(async()=>{var n;let i,t=await r(e);p(void 0),b(t.isOk?{message:(i=0===(n=t.value).sending?"Nothing to send.":1===n.sending?"1 answer is being sent.":`${o(n.sending)} are being sent, each on its own, in the order you added them.`,0===n.skipped.length?i:`${i} Not sent: ${n.skipped.map(({title:e,kind:n})=>`“${e}”, ${a[n]}`).join("; ")}.`),isFailure:!1}:{message:t.message,isFailure:!0})})};return(0,n.jsx)(g.f,{fleetId:e,children:e=>(0,n.jsxs)("section",{className:"grid gap-3","aria-labelledby":"bridge-basket-heading",children:[(0,n.jsxs)("div",{children:[(0,n.jsxs)("h1",{id:"bridge-basket-heading",className:"text-heading font-semibold",children:["Basket ",(0,n.jsx)("span",{"data-testid":"bridge-basket-count",children:f.length})]}),(0,n.jsx)("p",{className:"text-muted-foreground",children:"Answers you picked in Bridge, not sent yet. Nothing goes until you press Send."})]}),void 0===m?null:(0,n.jsx)(c.f,{message:m.message,isFailure:m.isFailure}),0===f.length?(0,n.jsxs)("div",{"data-testid":"bridge-basket-empty",className:"grid justify-items-center gap-1 rounded-lg border border-border bg-card p-6 text-center",children:[(0,n.jsx)("span",{className:"font-semibold",children:"The basket is empty"}),(0,n.jsx)("span",{className:"text-muted-foreground",children:"Open a question in Waiting on you and put your answer in the basket."})]}):(0,n.jsx)("ul",{className:"grid gap-2",children:f.map(i=>(0,n.jsx)(u,{entry:i,opening:e,working:d,onRemove:v},i.questionId))}),0===x?null:(0,n.jsxs)("div",{className:"grid gap-1",children:[(0,n.jsx)("p",{className:"text-caption text-muted-foreground",children:"Each asker receives its own answer, as you, as if sent one by one."}),(0,n.jsx)(l.f,{"data-testid":"bridge-basket-send",variant:"primary",className:"justify-self-start",isPending:d?.kind==="send",pendingLabel:"Sending...",disabled:void 0!==d||void 0!==e.openingId,onClick:k,children:`Send ${o(x)}`})]})]})})}],22141)},3523,e=>{var n=e.i(43476),i=e.i(71645),t=e.i(73459),s=e.i(65894),r=e.i(35004),d=e.i(75222),a=e.i(73383),o=e.i(2708),l=e.i(26217),c=e.i(57228),g=e.i(55070),u=e.i(63132);function p({inBasket:e,basketHref:i,isRemoving:t,isWorking:s,onRemove:r}){return(0,n.jsxs)("div",{"data-testid":"bridge-in-basket",className:"grid gap-2 rounded-md border border-border bg-muted p-3",children:[(0,n.jsxs)("span",{className:"font-medium",children:["In the basket: option ",e.option,", not sent"]}),null===e.note?null:(0,n.jsxs)("span",{className:"text-caption",children:["“",e.note,"”"]}),(0,n.jsx)("span",{className:"text-caption text-muted-foreground",children:"Pick another option to change it."}),(0,n.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,n.jsx)("a",{"data-testid":"bridge-basket-open",href:i,className:"inline-flex h-9 items-center rounded-md border border-border px-4 hover:bg-accent",children:"Open the basket"}),(0,n.jsx)(g.f,{"data-testid":"bridge-basket-remove",isPending:t,pendingLabel:"Removing...",disabled:s,onClick:r,children:"Remove"})]})]})}function m({question:e,chosen:i,isStale:t,onChoose:s}){return(0,n.jsxs)("fieldset",{className:`grid gap-2 ${t?"opacity-60":""}`,disabled:t,children:[(0,n.jsx)("legend",{className:"sr-only",children:"Options"}),e.options.map(r=>(0,n.jsxs)("label",{className:`flex items-start gap-3 rounded-md border p-3 ${r.key===i&&!t?"border-ring bg-accent":"border-border"}`,children:[(0,n.jsx)("input",{type:"radio",name:"option",value:r.key,checked:r.key===i&&!t,onChange:()=>{s(r.key)},className:"mt-1"}),(0,n.jsxs)("span",{className:"grid flex-1 gap-0.5",children:[(0,n.jsxs)("span",{className:"font-medium",children:[r.key,". ",r.label]}),""===r.detail?null:(0,n.jsx)("span",{className:"text-caption text-muted-foreground",children:r.detail})]}),r.key===e.pick.option?(0,n.jsx)("span",{className:"rounded-sm border border-border px-1.5 text-caption",children:"Their pick"}):null]},r.key))]})}function b({stale:e,from:i,onOpen:t}){let{replacementId:s}=e;return(0,n.jsxs)("div",{"data-testid":"bridge-stale",className:"grid gap-2 rounded-md border border-border bg-muted p-3",children:[(0,n.jsx)("span",{children:"withdrawn"===e.kind?`Withdrawn by ${i}. Nothing to answer: it is done.`:`Replaced by ${i}. Answer the new question.`}),null===s?null:(0,n.jsx)(g.f,{"data-testid":"bridge-replacement",className:"justify-self-start",isPending:!1,pendingLabel:"Opening...",onClick:()=>{t(s)},children:"Open the new question"})]})}function h({step:e}){return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{className:"whitespace-pre-wrap",children:e.why}),void 0===e.link?null:(0,n.jsxs)("a",{"data-testid":"bridge-step-link",href:e.link.href,target:"_blank",rel:"noopener noreferrer",className:"inline-flex h-9 items-center justify-self-start rounded-md border border-border px-4 hover:bg-accent",children:["Open on ",e.link.host]})]})}function f({from:e,note:i,working:t,failure:s,onNoteChange:r,onFinish:d}){let a=void 0!==t;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("label",{className:"grid gap-1",children:[(0,n.jsx)("span",{children:"Note"}),(0,n.jsx)("textarea",{"data-testid":"bridge-note",rows:2,value:i,onChange:e=>{r(e.target.value)},placeholder:"Optional, goes with Done or Cannot",className:"rounded-md border border-input bg-background p-2"})]}),void 0===s?null:(0,n.jsx)(u.f,{message:s,isFailure:!0}),(0,n.jsxs)("div",{className:"grid gap-1",children:[(0,n.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,n.jsx)(g.f,{"data-testid":"bridge-step-done",variant:"primary",isPending:t?.kind==="done",pendingLabel:"Sending...",disabled:a,onClick:()=>{d("done")},children:"Done"}),(0,n.jsx)(g.f,{"data-testid":"bridge-step-cannot",isPending:t?.kind==="cannot",pendingLabel:"Sending...",disabled:a,onClick:()=>{d("cannot")},children:"Cannot"})]}),(0,n.jsxs)("span",{className:"text-caption text-muted-foreground",children:[e," is told at once, with your note."]})]})]})}function x({delivery:e,isDoneOnSeeing:t,meetingHref:s,basketHref:r,inBasket:d,note:a,working:o,failure:l,onNoteChange:c,onAnswer:v,onPut:k,onRemove:j,onDone:w,onFinishStep:y,onOpen:N,onBack:S}){let{question:I,step:$,stale:R}=e,[C,L]=(0,i.useState)(d?.option??I?.pick.option),O=void 0!==o;return(0,n.jsxs)("section",{"data-testid":"bridge-delivery",className:"grid gap-3 rounded-lg border border-border bg-card p-6 text-card-foreground shadow-sm",children:[(0,n.jsxs)("span",{className:"text-caption text-muted-foreground",children:[e.from," · ",new Date(e.sentAt).toUTCString()]}),(0,n.jsx)("h2",{className:"text-heading font-semibold",children:I?.title??e.title}),void 0===s?null:(0,n.jsx)("a",{"data-testid":"bridge-meeting",href:s,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!==$?(0,n.jsx)(h,{step:$}):void 0===I?(0,n.jsx)("pre",{className:"whitespace-pre-wrap rounded-md bg-muted p-3 font-mono text-caption",children:e.body}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{className:"whitespace-pre-wrap",children:I.context}),(0,n.jsx)(m,{question:I,chosen:C,isStale:null!==R,onChoose:L}),(0,n.jsxs)("p",{className:"text-caption text-muted-foreground",children:[e.from," picks ",I.pick.option,": ",I.pick.why]})]}),null===R?null:(0,n.jsx)(b,{stale:R,from:e.from,onOpen:N}),null===d||null!==R?null:(0,n.jsx)(p,{inBasket:d,basketHref:r,isRemoving:o?.kind==="remove",isWorking:O,onRemove:j}),t?(0,n.jsx)("p",{"data-testid":"bridge-seen-done",className:"text-muted-foreground",children:"Seen now, so done: it asks nothing more."}):null!==R?null:void 0!==$?(0,n.jsx)(f,{from:e.from,note:a,working:o,failure:l,onNoteChange:c,onFinish:y}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("label",{className:"grid gap-1",children:[(0,n.jsx)("span",{children:void 0===I?"Your answer":"Note"}),(0,n.jsx)("textarea",{"data-testid":"bridge-note",rows:2,value:a,onChange:e=>{c(e.target.value)},placeholder:void 0===I?"":"Optional, goes with the answer",className:"rounded-md border border-input bg-background p-2"})]}),void 0===l?null:(0,n.jsx)(u.f,{message:l,isFailure:!0}),void 0===I?(0,n.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,n.jsx)(g.f,{"data-testid":"bridge-answer",variant:"primary",isPending:o?.kind==="note",pendingLabel:"Sending...",disabled:O,onClick:()=>{v(void 0)},children:"Answer"}),(0,n.jsx)(g.f,{"data-testid":"bridge-done",isPending:o?.kind==="done",pendingLabel:"Marking done...",disabled:O,onClick:w,children:"Done"})]}):void 0===C?null:(0,n.jsxs)("div",{className:"grid gap-1",children:[(0,n.jsxs)(g.f,{"data-testid":"bridge-put-in-basket",variant:"primary",className:"justify-self-start",isPending:o?.kind==="option",pendingLabel:"Putting in the basket...",disabled:O,onClick:()=>{k(C)},children:["Put option ",C," in the basket"]}),(0,n.jsxs)("span",{className:"text-caption text-muted-foreground",children:["Nothing is sent yet. ",e.from," receives this answer when you send the basket."]})]})]}),(0,n.jsx)("div",{className:"flex flex-wrap gap-2",children:(0,n.jsx)("button",{type:"button",onClick:S,disabled:O,className:"inline-flex h-9 items-center rounded-md px-4 text-muted-foreground hover:bg-accent disabled:opacity-70",children:"Back"})})]})}e.s(["f",0,function({fleetId:e,children:g}){let[p,m]=(0,i.useState)(),[b,h]=(0,i.useState)(""),[f,v]=(0,i.useState)(),[k,j]=(0,i.useState)(),[w,y]=(0,i.useState)(),[N,S]=(0,i.useState)(),[I,$]=(0,i.useState)(),[,R]=(0,i.useTransition)(),C=n=>{v(n.deliveryId),y(void 0),$(void 0),R(async()=>{let i=await (0,a.f)(e,n.deliveryId);if(v(void 0),i.isOk){let e=n.inBasket??null;m({delivery:i.value,isDoneOnSeeing:"stay-aware"===n.job,inBasket:e}),h(e?.note??""),S(void 0)}else y({deliveryId:n.deliveryId,message:i.message})})},L=({control:e,action:n,said:i})=>{j(e),S(void 0),R(async()=>{let e=await n();j(void 0),e.isOk?(m(void 0),$(i)):S(e.message)})};if(void 0!==p){let{delivery:i,inBasket:a}=p,g=i.question?.id;return(0,n.jsx)(x,{delivery:i,isDoneOnSeeing:p.isDoneOnSeeing,meetingHref:void 0===i.meetingId?void 0:(0,t.f)({fleetId:e,meetingId:i.meetingId}),basketHref:(0,s.f)(c.H,e),inBasket:a,note:b,working:k,failure:N,onNoteChange:h,onAnswer:n=>{L({control:void 0===n?{kind:"note"}:{kind:"option",option:n},action:()=>(0,r.f)({fleet:e,deliveryId:i.deliveryId,input:{questionId:i.question?.id,option:n,note:b}}),said:`Your answer went to ${i.from}.`})},onPut:n=>{L({control:{kind:"option",option:n},action:()=>(0,o.f)({fleet:e,deliveryId:i.deliveryId,option:n,note:b}),said:`Option ${String(n)} is in the basket, not sent: ${i.from} receives it when you send the basket.`})},onRemove:()=>{void 0!==g&&L({control:{kind:"remove"},action:()=>(0,l.f)(e,g),said:`Your answer to “${i.title}” is out of the basket; the question still waits on you.`})},onDone:()=>{L({control:{kind:"done"},action:()=>(0,d.f)({fleet:e,deliveryId:i.deliveryId}),said:`Done with “${i.title}”.`})},onFinishStep:n=>{L({control:{kind:n},action:()=>(0,d.f)({fleet:e,deliveryId:i.deliveryId,step:{outcome:n,note:b}}),said:"done"===n?`Done: ${i.from} is told “${i.title}” is done.`:`Cannot: ${i.from} is told you cannot do “${i.title}”.`})},onOpen:e=>{C({deliveryId:e,job:"decide"})},onBack:()=>{m(void 0)}},i.deliveryId)}return(0,n.jsxs)("div",{className:"grid gap-4",children:[void 0===I?null:(0,n.jsx)(u.f,{message:I,isFailure:!1}),g({open:C,openingId:f,failure:w})]})}],3523)},10629,e=>{var n=e.i(71645),i=e.i(18566);e.s(["LiveRefresh",0,function({fleetId:e}){let t;return t=(0,i.useRouter)(),(0,n.useEffect)(()=>{let n=new EventSource(`/bridge/changes?fleet=${encodeURIComponent(e)}`);return n.onmessage=()=>{t.refresh()},()=>{n.close()}},[e,t]),(0,n.useEffect)(()=>{let n,i=()=>{let i="visible"===document.visibilityState&&document.hasFocus();i&&void 0===n?n=new EventSource(`/bridge/focus?fleet=${encodeURIComponent(e)}`):i||void 0===n||(n.close(),n=void 0)};return i(),window.addEventListener("focus",i),window.addEventListener("blur",i),document.addEventListener("visibilitychange",i),()=>{window.removeEventListener("focus",i),window.removeEventListener("blur",i),document.removeEventListener("visibilitychange",i),n?.close()}},[e]),null}],10629)},84238,e=>{var n=e.i(43476),i=e.i(18566),t=e.i(71645);e.s(["RecordUnreadable",0,function({message:e}){let s=(0,i.useRouter)();return(0,t.useEffect)(()=>{let e=setInterval(()=>{s.refresh()},1e4);return()=>{clearInterval(e)}},[s]),(0,n.jsxs)("section",{role:"alert","data-testid":"bridge-unreadable",className:"flex flex-wrap items-center gap-3 rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg",children:[(0,n.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col",children:[(0,n.jsx)("span",{className:"font-semibold",children:"The record cannot be read now"}),(0,n.jsxs)("span",{className:"text-caption",children:[e," Nothing was opened or answered, so nothing is lost: Bridge tries again in 10 s."]})]}),(0,n.jsx)("button",{type:"button","data-testid":"bridge-try-now",onClick:()=>{s.refresh()},className:"inline-flex h-9 items-center rounded-md border border-border bg-card px-4 text-card-foreground hover:bg-accent",children:"Try now"})]})}])},55070,e=>{var n=e.i(43476);let i={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:t,variant:s="secondary",children:r,className:d="",disabled:a,...o}){return(0,n.jsx)("button",{...o,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 ${i[s]} ${d}`,children:e?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{"aria-hidden":"true",className:"size-3.5 animate-spin rounded-full border-2 border-current border-t-transparent"}),t]}):r})}])},63132,e=>{var n=e.i(43476);e.s(["f",0,function({message:e,isFailure:i}){return i?(0,n.jsx)("p",{role:"alert","data-testid":"bridge-failure",className:"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg",children:e}):(0,n.jsx)("p",{role:"status","data-testid":"bridge-success",className:"rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-tone-ok-fg",children:e})}])},73459,35004,75222,73383,2708,e=>{e.s(["f",0,function(e){let n=new URLSearchParams({fleet:e.fleetId,...void 0===e.cursor?{}:{cursor:e.cursor}});return`/meetings/${encodeURIComponent(e.meetingId)}?${n.toString()}`}],73459);var n=e.i(95187);let i=(0,n.createServerReference)("40edad5bc6caa482ec57bdf504a9545c453e286344",n.callServer,void 0,n.findSourceMapURL,"answerDelivery");e.s(["f",0,i],35004);let t=(0,n.createServerReference)("409343274cfb1997696f97d13e70128feeaadc81b0",n.callServer,void 0,n.findSourceMapURL,"doneDelivery");e.s(["f",0,t],75222);let s=(0,n.createServerReference)("6013ebd954e4b9b9c2c4a85c94c4fc1f4786952324",n.callServer,void 0,n.findSourceMapURL,"openDelivery");e.s(["f",0,s],73383);let r=(0,n.createServerReference)("408a5fadf58977f6b55557119e3557d884605ebbcf",n.callServer,void 0,n.findSourceMapURL,"putInBasket");e.s(["f",0,r],2708)}])})();
@@ -1 +0,0 @@
1
- (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,93976,24189,37134,62050,45017,47125,10030,58998,94313,53535,e=>{var t=e.i(71645),n=e.i(33332),r=e.i(51437),l=e.i(46376),i=e.i(13203),u=e.i(67865),o=e.i(28918),a=e.i(46265),s=e.i(2077),f=e.i(88940),c=e.i(1252),d=e.i(56789),p=e.i(29315),v=e.i(17989),m=e.i(65858),g=e.i(60891),x=e.i(85689),h=e.i(64132),I=e.i(84446),y=e.i(75606),S=e.i(87773),b=e.i(80025),C=e.i(26410),R=e.i(40609),E=e.i(50446),w=e.i(19074),P=e.i(6304),j=e.i(90098),M=e.i(68765),V=e.i(6793),A=e.i(2672),O=e.i(62156),k=e.i(64111),T=e.i(69690),D=e.i(81104),F=e.i(84708),G=e.i(38489),L=e.i(36523),H=e.i(56970),q=e.i(20045),B=e.i(32199),U=e.i(96545),K=e.i(6039),W=e.i(76782),N=e.i(42191),$=e.i(84325);let z=Symbol("none"),Y={value:z,index:-1};var Z=e.i(72855),Q=e.i(43476);function X(e){let X,{id:J,onOpenChangeComplete:_,defaultSelectedValue:ee=null,selectedValue:et,onSelectedValueChange:en,defaultInputValue:er,inputValue:el,open:ei,defaultOpen:eu=!1,selectionMode:eo,onItemHighlighted:ea,name:es,form:ef,disabled:ec=!1,readOnly:ed=!1,required:ep=!1,inputRef:ev,grid:em=!1,items:eg,filteredItems:ex,filter:eh,filterQuery:eI,openOnInputClick:ey=!0,autoHighlight:eS=!1,keepHighlight:eb=!1,highlightItemOnHover:eC=!0,loopFocus:eR=!0,itemToStringLabel:eE,itemToStringValue:ew,isItemEqualToValue:eP=$.t,virtualized:ej=!1,inline:eM=!1,fillInputOnItemPress:eV=!0,modal:eA=!1,limit:eO=-1,autoComplete:ek="list",formAutoComplete:eT,locale:eD,submitOnItemClick:eF=!1}=e,{clearErrors:eG}=(0,F.f)(),{setDirty:eL,validityData:eH,setFilled:eq,name:eB,disabled:eU,setTouched:eK,setFocused:eW,validationMode:eN,validation:e$}=(0,T.U)(),ez=(0,Z.f)(),eY=(0,G.f)({id:J}),eZ=(0,H._)({locale:eD}),eQ=Array.isArray(eg)?null:eg;if(eQ&&"function"!=typeof eQ.label)throw Error((0,n.f)(100));let eX=eQ?eQ.data:eg,eJ=eQ?.value,e_=eJ?void 0:eX,e0=t.useMemo(()=>{let e;if(!ex||!eJ)return;let t=(0,N.j)(ex),n=t.map(eJ);return{values:n,findItem(r,l){if(!e){e=new Map;for(let r=0;r<n.length;r+=1)e.has(n[r])||e.set(n[r],t[r])}var i=e;let u=i.get(r);if(void 0!==u||l===$.t)return u;for(let[e,t]of i)if((0,$.i)(e,r,l))return t}}},[ex,eJ]),e1=t.useMemo(()=>eQ?e=>eQ.label(e,eP,e=>{let t=e0?.findItem(e,eP);return null!=t?eQ.itemLabel(t):(0,N.B)(e,eE)}):eE,[eQ,eE,e0,eP]),e6=t.useMemo(()=>eQ?Object.assign(e=>eQ.itemLabel(e),{selected:e=>(0,N.B)(e,e1)}):eE,[eQ,e1,eE]);function e8(e){return(0,N.B)(e,e1)}let[e4,e3]=t.useState(!1),[e5,e2]=t.useState(null),e7=t.useRef(e5),e9=t.useRef([]),te=t.useRef([]),tt=t.useRef(null),tn=t.useRef(null),tr=t.useRef(null),tl=t.useRef(null),ti=t.useRef(null),tu=t.useRef(!1),to=t.useRef(null),ta=t.useRef(null),ts=t.useRef(null),tf=t.useRef(Y),tc=t.useRef(null),td=t.useRef([]),tp=t.useRef(null),tv=eU||ec,tm=eB??es,tg="multiple"===eo,tx="single"===eo,th=void 0!==el||void 0!==er,tI=void 0!==eX,ty=void 0!==ex;X="always"===eS?"always":!!eS&&"input-change";let[tS,tb]=(0,r.f)({controlled:et,default:tg?ee??d.v:ee,name:"Combobox",state:"selectedValue"}),tC=t.useMemo(()=>null===eh?()=>!0:void 0!==eh?eh:(0,L.r)(eZ,e6),[eh,eZ,e6]),tR=(0,f.f)(()=>th?er??"":tx?e8(tS):"").current,[tE,tw]=(0,r.f)({controlled:el,default:tR,name:"Combobox",state:"inputValue"}),[tP,tj]=(0,r.f)({controlled:ei,default:eu,name:"Combobox",state:"open"}),tM=(0,N.i)(eX),tV=tP||null===e5?String(tE).trim():e5,tA=tx?e8(tS):"",tO=tx&&!e4&&""!==tV&&tA.length===tV.length&&eZ.contains(tA,tV),tk=tO?"":eI??tV,tT=tI&&ty&&tO&&(!eQ||eQ.hasValue(tS,eP)),tD=t.useMemo(()=>eX?(0,N.j)(eX):d.v,[eX]),tF=t.useMemo(()=>{if(ex&&!tT)return ex;if(!eX)return d.v;if(tM){let e=[],t=0;for(let n of eX){if(eO>-1&&t>=eO)break;let r=eO>-1?eO-t:1/0,l=""===tk?n.items.slice(0,r):[];if(""!==tk)for(let e of n.items){if(l.length>=r)break;tC(e,tk,e6)&&l.push(e)}if(l.length>0){let r={...n,items:l};e.push(r),t+=l.length}}return e}if(""===tk)return eO>-1?tD.slice(0,eO):tD;let e=[];for(let t of tD){if(eO>-1&&e.length>=eO)break;tC(t,tk,e6)&&e.push(t)}return e},[ex,tT,eX,tM,tk,eO,tC,e6,tD]),tG=t.useMemo(()=>{if(e0&&tF===ex)return e0.values;let e=(0,N.j)(tF);return eJ?e.map(e=>eJ(e)):e},[tF,ex,e0,eJ]),tL=(0,f.f)(()=>{let e=null;return eM&&tP&&tI&&"none"!==eo&&(e=(0,$.m)(tG,tS,eP,tg)),new c.f({id:eY,labelId:void 0,selectedValue:tS,open:tP,items:e_,selectionMode:eo,name:tm,form:ef,disabled:tv,readOnly:ed,required:ep,grid:em,virtualized:ej,openOnInputClick:ey,itemToStringLabel:e1,isItemEqualToValue:eP,modal:eA,autoHighlight:X,submitOnItemClick:eF,hasInputValue:th,mounted:!1,forceMounted:!1,transitionStatus:"idle",inline:eM,activeIndex:null,selectedIndex:e,popupProps:{},listProps:{},inputProps:{},triggerProps:{},itemRoot:{props:d.w,id:eY,selectionMode:eo,disabled:tv,readOnly:ed,isItemEqualToValue:eP},positionerElement:null,listElement:null,popupId:void 0,triggerElement:null,inputElement:null,inputGroupElement:null,popupSide:null,openMethod:null,inputInsidePopup:!0,inputOwnsFormValue:"none"===eo},{onOpenChangeComplete:d.x,setOpen:d.x,setInputValue:d.x,setSelectedValue:d.x,setIndices:d.x,handleSelection:d.x,forceMount:d.x,requestSubmit:d.x,listRef:e9,labelsRef:te,popupRef:tt,emptyRef:ti,inputRef:tn,startDismissRef:tr,endDismissRef:tl,chipsContainerRef:to,clearRef:ta,valuesRef:td,pointerDownItemRef:tp,selectionEventRef:ts},O.f)}).current,tH="none"===eo?tE:tS,tq=t.useMemo(()=>"none"===eo?tH:Array.isArray(tS)?tS.map(e=>(0,N.P)(e,ew)):(0,N.P)(tS,ew),[tH,ew,eo,tS]),tB=(0,u.f)(ea),tU=(0,u.f)(_),tK=tL.useState("activeIndex"),tW=tL.useState("selectedIndex"),tN=tL.useState("positionerElement"),t$=tL.useState("listElement"),tz=tL.useState("triggerElement"),tY=tL.useState("inputElement"),tZ=tL.useState("inputGroupElement"),tQ=tL.useState("inline"),tX=tL.useState("inputInsidePopup"),tJ=tL.useState("inputOwnsFormValue"),t_=tx&&!tX&&tE===tA,t0=(0,a.f)(tz),{openMethod:t1,triggerProps:t6}=(0,B.$)(tP),t8=(0,u.f)(()=>tq);(0,D.f)(tX?t0:tn,eY,tH,t8,!tv,es);let t4=(0,u.f)(()=>{eX?te.current=tG.map(e8):tL.set("forceMounted",!0)}),t3=(0,u.f)((e,t,n,r)=>{if(-1===t){if(tf.current===Y)return;tf.current=Y}else tf.current={value:e,index:t};tB(e,(0,y.U)(n,r,{index:t}))}),t5=(0,u.f)(e=>{let t={};void 0!==e.activeIndex&&(t.activeIndex=e.activeIndex),void 0!==e.selectedIndex&&(t.selectedIndex=e.selectedIndex),tL.update(t);let n=e.activeIndex;if(void 0===n)return;let r=e.type||b.f.none;null===n?t3(void 0,-1,r,e.event):t3(td.current[n],n,r,e.event)}),t2=(0,u.f)((t,n)=>{if(e.onInputValueChange?.(t,n),!n.isCanceled){if(tu.current=n.reason===C.f.inputClear,n.reason===R.f.inputChange){tP&&null!==e5&&e2(null);let e=n.event,r=e.inputType;if("compositionend"===e.type||null!=r&&""!==r&&"insertReplacementText"!==r){let e=""!==t.trim();e&&e3(!0),tc.current={hasQuery:e};let n=tL.state.listElement;if(!tL.state.virtualized&&n){let e=tt.current;for(let t of(0,p.G)(n.firstElementChild??n)){if(!(0,p.E)(t)||(e?!(0,I.I)(e,t):"dialog"===t.getAttribute("role")))break;if((0,U.k)(t)){t.scrollTop=0;break}}}e&&X&&null==tL.state.activeIndex&&(tP||tQ)&&tL.set("activeIndex",0)}}else n.reason===C.f.inputClear&&""===t&&tL.state.inputInsidePopup&&(tc.current={hasQuery:!1,selection:!0});tw(t)}}),t7=(0,u.f)(e=>{let t=!e&&tX&&!tQ&&""!==tE&&(String(tE).trim()===e5||tE===tA);!e&&(t||""===tE||t_)&&e3(!1),e2(null),t&&t2("",(0,y.j)(C.f.inputClear))}),[t9,ne]=t.useState(!1),nt=(0,u.f)((t,n)=>{if(tP===t)return;n.reason===E.f.escapeKey&&tI&&0===tG.length&&!ti.current&&n.allowPropagation();let r=(0,k.x)(n);if(e.onOpenChange?.(t,n),tc.current?.hasQuery&&n.reason===R.f.inputChange===n.isCanceled&&(tc.current=null),!n.isCanceled&&(t&&null!==e5&&t7(n.reason===R.f.inputChange),!t&&e4&&(tx?(tQ||e2(tV),""===tV&&e3(!1)):tg&&(tQ||e2(tV),tX&&t5({activeIndex:null}),(!tX||tQ)&&t2("",(0,y.j)(C.f.inputClear,n.event,void 0,{isItemPress:n.reason===w.f.itemPress})))),t||ne(r()),tj(t),!t&&tX&&(n.reason===P.f.focusOut||n.reason===j.f.outsidePress))&&(eK(!0),eW(!1),"onBlur"===eN)){let e="none"===eo?tE:tS;e$.commit(e)}}),nn=(0,u.f)((e,t)=>{en?.(e,t),t.isCanceled||(tb(e),("none"===eo&&tt.current&&eV||tx&&!tL.state.inputInsidePopup)&&t2(e8(e),(0,y.j)(t.reason,t.event)))}),nr=(0,u.f)((e,t)=>{let n=(0,I.Z)(e),r=ts.current??e;ts.current=null;let l=(0,y.j)(w.f.itemPress,r),i=(0,I.h)(n,"a")?.getAttribute("href");if(i){i.startsWith("#")&&nt(!1,l);return}if(tg){let e=Array.isArray(tS)?tS:[],n=(0,$.v)(e,t,eP);if(nn(n?(0,$.j)(e,t,eP):[...e,t],l),l.isCanceled||!(tn.current&&""!==tn.current.value.trim()))return;if(tL.state.inputInsidePopup){t2("",(0,y.j)(C.f.inputClear,l.event,void 0,{isItemPress:!0}));let e=tc.current;e&&!n&&(e.toggledValue=t)}else nt(!1,l)}else{if(nn(t,l),l.isCanceled)return;nt(!1,l)}}),nl=(0,u.f)(()=>{let e=e$.inputRef.current?.form??tL.state.inputElement?.form;e&&"function"==typeof e.requestSubmit&&e.requestSubmit()}),ni=(0,u.f)(()=>{if(tU?.(!1),e3(!1),e2(null),"none"===eo?t5({activeIndex:null,selectedIndex:null}):t5({activeIndex:null}),tg&&tn.current&&""!==tn.current.value&&!tu.current&&t2("",(0,y.j)(C.f.inputClear)),tx)if(tL.state.inputInsidePopup)tn.current&&""!==tn.current.value&&t2("",(0,y.j)(C.f.inputClear));else{let e=e8(tS);if(tn.current&&tn.current.value!==e){let t=""===e?C.f.inputClear:b.f.none;t2(e,(0,y.j)(t))}}}),nu=t.useMemo(()=>tQ&&tN?{current:(0,I.h)(tN,'[role="dialog"]')}:tt,[tQ,tN]),{mounted:no,transitionStatus:na,forceUnmount:ns}=(0,q.f)({open:tP,ref:nu,preventUnmountOnClose:t9,setPreventUnmountOnClose:ne,onUnmount:ni});t.useImperativeHandle(e.actionsRef,()=>({unmount:ns,close:()=>nt(!1,(0,y.j)(M.f.imperativeAction))}),[ns,nt]),(0,l.f)(function(){let e=null!==e7.current&&null===e5;if(e7.current=e5,tP&&(!e||!tI)||(tP||(tp.current=null),"none"===eo))return;let t=tI?tG:td.current;t5({selectedIndex:(0,$.m)(t,tS,eP,tg)})},[tP,e5,tS,eo,tg,tI,tG,eP,t5]),(0,l.f)(()=>{eX&&(td.current=tG,e9.current.length=tG.length)},[eX,tG]),(0,l.f)(()=>{!tP&&tc.current?.hasQuery&&(tc.current=null)},[tP]),(0,l.f)(()=>{if(!tP&&tQ&&nu.current){tc.current=null;return}let e=tI||ty?tG:td.current,t=tc.current;if(t){let n=tP||tQ||tL.state.positionerElement?.hidden===!1;if(t.hasQuery){let t=tn.current;X&&""!==String(tE).trim()&&(!tQ||"always"===X||t&&(0,I.T)(t.ownerDocument)===t)?!n||void 0===e[0]&&(tI||ty)||(tL.set("activeIndex",0),tc.current=null):tc.current=null}else if(""===String(tE).trim()&&(tc.current=null,n)){let e=t.selection;"always"!==X||e||"none"!==tL.state.selectionMode||tL.set("activeIndex",0),queueMicrotask(()=>{if(!tL.state.open&&(!tL.state.inline||nu.current)||tn.current&&""!==tn.current.value.trim())return;let n=tL.state.selectedValue,r="multiple"===tL.state.selectionMode;if(r&&Array.isArray(n)?n.length>0:"none"!==tL.state.selectionMode&&null!=n){let e=tI||ty?tG:td.current,l=(0,$.u)(e,t.toggledValue,tL.state.isItemEqualToValue);tL.set("activeIndex",-1!==l?l:(0,$.m)(e,n,tL.state.isItemEqualToValue,r))}else e?tL.set("activeIndex",null):"always"===X&&tL.set("activeIndex",0)})}}if(!tP&&!tQ)return;let n=tL.state.activeIndex;if(null==n)return"always"===X&&e.length>0?void tL.set("activeIndex",0):void t3(void 0,-1,b.f.none);if(n>=e.length){t3(void 0,-1,b.f.none),tL.set("activeIndex",null);return}let r=e[n],l=tf.current.value,i=l!==z&&(0,$.i)(r,l,tL.state.isItemEqualToValue);tf.current.index===n&&i||t3(r,n,b.f.none)},[tK,X,t3,ty,tI,tG,tQ,tP,nu,tL,tE]),(0,l.f)(()=>{"none"===eo?eq(""!==String(tE)):eq(tg?Array.isArray(tS)&&tS.length>0:null!=tS)},[eq,eo,tE,tS,tg]),t.useEffect(()=>{tI&&X&&0===tG.length&&t5({activeIndex:null})},[tI,X,tG.length,t5]);let nf=!1;function nc(){nf||tE===tA||(nf=!0,t2(tA,(0,y.j)(b.f.none)))}function nd(){!tx||th||tX||e4||nc()}(0,K.f)(tV,function(){tP&&""!==tV&&tV!==String(tR)&&!t_&&e3(!0)}),(0,K.f)(tP,function(){tP&&null!==e5&&t7(!1)}),(0,K.f)(tS,function(){"none"!==eo&&(eG(tm),eL((0,$.H)(tS,eH.initialValue,eP)),e$.change(tS),!tx||th||tX||nc())}),(0,K.f)(tA,nd),(0,K.f)(eX,nd),(0,K.f)(tE,function(){"none"===eo&&(eG(tm),eL(tE!==eH.initialValue),e$.change(tE))});let np=(0,m.f)({open:!!tQ||tP,onOpenChange:nt,elements:{reference:tX?tz:tY,floating:tN}}),nv=em?"grid":"listbox",nm=tP||tQ,ng=nm?"true":"false",nx=t.useMemo(()=>{let e=tY?.tagName==="INPUT",t=null==tY||e,n=t||nm,r=t?{autoComplete:"off",spellCheck:"false",autoCorrect:"off",autoCapitalize:"none"}:{};return n&&(r.role="combobox",r["aria-expanded"]=ng,r["aria-haspopup"]=nv,r["aria-controls"]=nm?t$?.id:void 0,r["aria-autocomplete"]=ed?"none":ek),{reference:r,floating:{role:"presentation"}}},[tY,nm,ng,nv,t$?.id,ek,ed]),nh=(0,x.f)(np,{enabled:!tv&&ey,event:"mousedown-only",toggle:!1,touchOpenDelay:100*!tX,reason:S.f.inputPress}),nI=(0,v.f)(np,{enabled:!tv&&!tQ,outsidePressEvent:{mouse:"sloppy",touch:"intentional"},bubbles:!!tQ||void 0,outsidePress(e){let t=(0,I.Z)(e);return!(0,I.I)(tz,t)&&!(0,I.I)(ta.current,t)&&!(0,I.I)(to.current,t)&&!(0,I.I)(tZ,t)}}),ny=(0,g.f)(np,{enabled:!tv,id:eY,listRef:e9,activeIndex:tK,selectedIndex:tW,virtual:!0,loopFocus:eR,allowEscape:eR&&!X,focusItemOnOpen:!e4&&("none"!==eo||!!X)&&"auto",focusItemOnHover:eC,resetOnPointerLeave:!eb,orientation:em?"horizontal":void 0,rtl:"rtl"===ez,disabledIndices:d.v,grid:em?h.f:void 0,onNavigate(e,t){(t||tP||tQ&&null===e)&&"ending"!==na&&t5({activeIndex:e,type:(0,V.f)(t),event:t?.nativeEvent})}}),nS=t.useMemo(()=>(0,W.w)(ny.reference,{onKeyDown(e){em&&null==tL.state.activeIndex&&("ArrowLeft"===e.key||"ArrowRight"===e.key)&&e.preventBaseUIHandler()}},nI.reference,nh.reference,nx.reference),[ny.reference,nI.reference,nh.reference,nx.reference,em,tL]),nb=t.useMemo(()=>(0,W.w)(k.X,nI.floating),[nI.floating]),nC=t.useMemo(()=>(0,W.w)(ny.floating,nx.floating),[ny.floating,nx.floating]),nR=t.useMemo(()=>{let e=ny.item;return{props:e?{...e,onFocus:void 0}:d.w,id:eY,selectionMode:eo,disabled:tv,readOnly:ed,isItemEqualToValue:eP}},[ny.item,eY,eo,tv,ed,eP]);tL.useContextCallback("setOpen",nt),tL.useContextCallback("setInputValue",t2),tL.useContextCallback("setSelectedValue",nn),tL.useContextCallback("setIndices",t5),tL.useContextCallback("handleSelection",nr),tL.useContextCallback("forceMount",t4),tL.useContextCallback("requestSubmit",nl),tL.useContextCallback("onOpenChangeComplete",_),(0,i.f)(()=>{tL.update({inline:eM,popupProps:nb,listProps:nC,inputProps:nS,triggerProps:t6,itemRoot:nR})});let nE={id:eY,selectedValue:tS,open:tP,mounted:no,transitionStatus:na,items:e_,inline:eM,popupProps:nb,listProps:nC,inputProps:nS,triggerProps:t6,itemRoot:nR,openMethod:t1,selectionMode:eo,name:tm,form:ef,disabled:tv,readOnly:ed,required:ep,grid:em,virtualized:ej,openOnInputClick:ey,itemToStringLabel:e1,modal:eA,autoHighlight:X,isItemEqualToValue:eP,submitOnItemClick:eF,hasInputValue:th};(0,l.f)(()=>{tL.update({...nE,inputOwnsFormValue:"none"===eo&&(eM||!tL.state.inputInsidePopup)})},[tL,...Object.values(nE)]);let nw=(0,o.A)(ev,e$.inputRef),nP=t.useMemo(()=>({query:tV,hasItems:tI,filteredItems:tF,flatFilteredValues:tG}),[tV,tI,tF,tG]),nj=t.useMemo(()=>Array.isArray(tH)?"":(0,N.P)(tH,ew),[tH,ew]),nM=tg&&Array.isArray(tS)&&tS.length>0,nV=tg||"none"===eo&&tJ?void 0:tm,nA=t.useMemo(()=>tg&&Array.isArray(tS)&&tm?tS.map(e=>{let t=(0,N.P)(e,ew);return(0,Q.jsx)("input",{type:"hidden",form:ef,name:tm,value:t,disabled:tv},t)}):null,[tg,tS,ef,tm,ew,tv]),nO=(0,Q.jsxs)(t.Fragment,{children:[e.children,(0,Q.jsx)("input",{...e$.getValidationProps(tv,{onFocus(){tX?tz?.focus():(tn.current||tz)?.focus()},onChange(e){if(e.nativeEvent.defaultPrevented||tv||ed)return;let t=e.currentTarget.value,n=t.toLowerCase(),r=(0,y.j)(b.f.none,e.nativeEvent),l=()=>td.current.findIndex(e=>(0,N.P)(e,ew).toLowerCase()===n||e8(e).toLowerCase()===n);tx&&(t4(),eX&&-1===l()&&tL.set("forceMounted",!0)),queueMicrotask(function(){if(tg)return;if("none"===eo)return void t2(t,r);let e=l();-1===e&&(e=td.current.findIndex((e,t)=>{let r=te.current[t];return null!=r&&r.toLowerCase()===n}));let i=-1===e?void 0:td.current[e];null!=i&&nn?.(i,r)})}}),id:eY&&null==nV?`${eY}-hidden-input`:void 0,form:ef,name:nV,autoComplete:eT,disabled:tv,required:ep&&!nM,readOnly:ed,value:nj,ref:nw,style:nV?s.L:s.p,tabIndex:-1,"aria-hidden":!0,suppressHydrationWarning:!0}),nA]});return(0,Q.jsx)(A.$.Provider,{value:tL,children:(0,Q.jsx)(A.v.Provider,{value:np,children:(0,Q.jsx)(A.I.Provider,{value:tI,children:(0,Q.jsx)(A.Z.Provider,{value:nP,children:(0,Q.jsx)(A.f.Provider,{value:tE,children:nO})})})})})}var J=e.i(52245),_=e.i(75812),ee=e.i(8868),et=e.i(88015),en=e.i(47778);let er=t.forwardRef(function(e,t){let{render:n,className:r,style:i,...o}=e;delete o.id;let a=(0,T.U)(),s=(0,A.G)(),f=s.useState("inputInsidePopup"),c=s.useState("triggerElement");s.useState("inputElement");let d=s.useState("id"),v=function(e={}){let t,{id:n,fallbackControlId:r,native:i=!1,setLabelId:o,focusControl:a}=e,{controlId:s,setLabelId:f}=(0,en.f)(),c=(0,u.f)(e=>{f(e),o?.(e)}),d=(t=(0,et.f)(n),(0,l.f)(()=>(c(t),()=>{c(e=>e===t?void 0:e)}),[t,c]),t),v=s??r;function m(e){let t=(0,I.Z)(e.nativeEvent);(0,I.h)(t,"button,input,select,textarea")||(!e.defaultPrevented&&e.detail>1&&e.preventDefault(),i||function(e){if(a)return a(e,v);if(!v)return;let t=function(e,t){let n=e.getRootNode();for(;(0,p.R)(n);){let e=n.getElementById(t);if(e)return e;n=n.host.getRootNode()}return(0,ee.f)(e).getElementById(t)}(e.currentTarget,v);(0,p.E)(t)&&t.focus({focusVisible:!0})}(e))}return i?{id:d,htmlFor:v,onMouseDown:m}:{id:d,onClick:m,onPointerDown(e){e.preventDefault()}}}({id:null==d?void 0:`${d}-label`,fallbackControlId:c?.id??(f?d:void 0),setLabelId(e){let t="function"==typeof e?e(s.state.labelId):e;s.set("labelId",t)}});return(0,J.a)("div",e,{ref:t,state:a.state,props:[v,o],stateAttributesMapping:_.s})});var el=e.i(22162),ei=e.i(18663),eu=e.i(79938),eo=e.i(5869),ea=e.i(15618),ea=ea;eo.f.popupOpen,ea.pressed;let es={...eu.f,..._.s,popupSide:e=>e?{"data-popup-side":e}:null,listEmpty:e=>e?{"data-list-empty":""}:null},ef=t.createContext(void 0);function ec(){return t.useContext(ef)}var ed=e.i(57940);let ep=t.createContext(void 0);function ev(e){let r=t.useContext(ep);if(void 0===r&&!e)throw Error((0,n.f)(21));return r}var em=e.i(40886),eg=e.i(57749);let ex=t.forwardRef(function(e,t){let n=(0,A.G)(),{buttonRef:r,getButtonProps:l}=(0,em.f)({native:!1}),i=(0,o.A)(t,r),u=l({onClick:function(e){n.context.setOpen(!1,(0,y.j)(eg.f.closePress,e.nativeEvent,e.currentTarget))}});return(0,Q.jsx)("span",{ref:i,...u,"aria-label":"Dismiss",tabIndex:void 0,style:s.L})});function eh(e){let t=e.useState("mounted"),n=e.useState("popupSide"),r=e.useState("positionerElement");return t&&r?n:null}function eI(){return 0===(0,A.R)().filteredItems.length}function ey(e){return"rtl"===e?["ArrowRight","ArrowLeft"]:["ArrowLeft","ArrowRight"]}function eS(e,t,n){let r=e.context.listRef.current[t];r&&(e.context.selectionEventRef.current=n,r.click(),e.context.selectionEventRef.current=null)}let eb=t.forwardRef(function(e,n){let{render:r,className:i,disabled:o=!1,id:a,style:s,...f}=e,{state:c,disabled:d,setTouched:p,validationMode:v,validation:m}=(0,T.U)(),{labelId:g}=(0,en.f)(),x=ec(),h=!!ev(!0),I=(0,A.G)(),S=(0,A.a)(),w=(0,Z.f)(),P=I.useState("required"),j=I.useState("disabled"),M=I.useState("readOnly"),O=I.useState("name"),k=I.useState("form"),D=I.useState("selectionMode"),F=I.useState("autoHighlight"),G=I.useState("inputProps"),L=I.useState("triggerProps"),H=I.useState("open"),q=I.useState("mounted"),B=I.useState("selectedValue"),U=I.useState("id"),K=I.useState("inline"),W=I.useState("modal"),N=!!F,$=eh(I),z=d||j||o,Y=eI(),X=function(e,t){let{setFocused:n,focusOwnerRef:r}=(0,T.U)(),i=(0,u.f)(t=>{(t?e:r.current!==i)||(r.current=t&&i,n(t))});return(0,l.f)(()=>{let e=t.current,n=e?.getRootNode();return n?.activeElement===e&&i(!0),()=>i(!1)},[e,t,i]),i}(z,I.context.inputRef),ee=h||K,er=(0,et.f)(a??(ee?void 0:U)),eu=h?_.S:c,[eo,ea]=t.useState(null),ef=t.useRef(!1),ep=t.useRef(null);(0,l.f)(()=>{H||(ep.current=null)},[H]);let em="none"===D&&!h,eg=(0,u.f)(e=>{let t=h||I.state.inline;t&&!I.state.hasInputValue&&I.context.setInputValue("",(0,y.j)(b.f.none)),I.update({inputElement:e,inputInsidePopup:t,inputOwnsFormValue:em})}),eb=h?f:m.getValidationProps(z,f);function eC(e){I.context.setIndices({activeIndex:null,selectedIndex:null,type:(0,V.f)(e),event:e})}let eR={...eu,open:H,disabled:z,readOnly:M,popupSide:$,listEmpty:Y},eE=(0,J.a)("input",e,{state:eR,ref:[n,I.context.inputRef,eg],props:[G,L,{value:eo??S,"aria-readonly":M||void 0,"aria-required":P||void 0,"aria-labelledby":g,disabled:z,readOnly:M,required:"none"===D?P:void 0,form:k,...em&&O&&{name:O},id:er,onFocus(){if(X(!0),!K)return;let e=ep.current;ep.current=null,null!=e&&Object.hasOwn(I.context.valuesRef.current,e)&&I.context.setIndices({activeIndex:e})},onBlur(){p(!0),X(!1);let e=I.state.activeIndex;if(K&&null!==e&&"always"!==F&&(ep.current=e,I.context.setIndices({activeIndex:null})),"onBlur"===v){let e="none"===D?S:B;m.commit(e)}},onCompositionStart(e){el.f.os.android||(ef.current=!0,ea(e.currentTarget.value))},onCompositionEnd(e){ef.current=!1;let t=e.currentTarget.value;ea(null),I.context.setInputValue(t,(0,y.j)(R.f.inputChange,e.nativeEvent))},onChange(e){let t=e.nativeEvent,n=t.inputType,r=ef.current||!(!n||"insertReplacementText"===n);function l(e){!M&&!z&&e&&r&&(I.context.setOpen(!0,(0,y.j)(R.f.inputChange,t)),N||eC(t))}if(ef.current){let n=e.currentTarget.value;ea(n),""!==n||I.state.openOnInputClick||I.state.inputInsidePopup||I.context.setOpen(!1,(0,y.j)(C.f.inputClear,t));let r=n.trim(),i=N&&""!==r;l(r),H&&null!==I.state.activeIndex&&!i&&eC(t);return}let i=(0,y.j)(R.f.inputChange,t);if(I.context.setInputValue(e.currentTarget.value,i),i.isCanceled)return;let u=""===e.currentTarget.value,o=(0,y.j)(C.f.inputClear,t);u&&!I.state.inputInsidePopup&&("single"===D&&I.context.setSelectedValue(null,o),I.state.openOnInputClick||I.context.setOpen(!1,o)),l(e.currentTarget.value.trim()),H&&null!==I.state.activeIndex&&!N&&eC(t)},onKeyDown(e){if(e.ctrlKey||e.shiftKey||e.altKey||e.metaKey)return;if(z||M){M&&"Enter"===e.key&&H&&null!==I.state.activeIndex&&(0,ed.Y)(e);return}let t=e.currentTarget,n=t.scrollWidth-t.clientWidth,r="rtl"===w;if("Home"===e.key){(0,ed.Y)(e);let n=ei.f.engine.gecko&&r?t.value.length:0;t.setSelectionRange(n,n),t.scrollLeft=0;return}if("End"===e.key){(0,ed.Y)(e);let l=ei.f.engine.gecko&&r?0:t.value.length;t.setSelectionRange(l,l),t.scrollLeft=r?-n:n;return}if(!q&&"Escape"===e.key){let t="multiple"===D&&Array.isArray(B)?0===B.length:null===B,n=(0,y.j)(E.f.escapeKey,e.nativeEvent);I.context.setInputValue("",n),I.context.setSelectedValue("multiple"===D?[]:null,n),t||I.state.inline||n.isPropagationAllowed||e.stopPropagation();return}if(x&&"Backspace"===e.key&&""===t.value&&Array.isArray(B)&&B.length>0){let t=x.chipsRef.current.length,n=t>0?t-1:B.length-1,r=B.filter((e,t)=>t!==n);eC(e.nativeEvent),I.context.setSelectedValue(r,(0,y.j)(b.f.none,e.nativeEvent));return}let l=function(e){let t;if(!x)return;let n=x.chipsRef.current.length,[r]=ey(w);return e.key===r&&(e.currentTarget.selectionStart??0)===0&&B.length>0&&(e.preventDefault(),t=n>0?n-1:void 0),t}(e);if(void 0!==l&&x?.chipsRef.current[l]?.focus(),229!==e.which&&"Enter"===e.key&&H){let t=I.state.activeIndex,n=e.nativeEvent;if(null===t){if(K)return;I.context.setOpen(!1,(0,y.j)(b.f.none,n));return}(0,ed.Y)(e),eS(I,t,n)}}},eb],stateAttributesMapping:es}),ew=h?(0,Q.jsx)(T.H.Provider,{value:T.T,children:eE}):eE;return(0,Q.jsxs)(t.Fragment,{children:[H&&(!ee||W)&&(0,Q.jsx)(ex,{ref:I.context.startDismissRef}),ew]})});var eC=e.i(96296);function eR(e,t,n,r){if(e.baseUIHandlerPrevented)return;let l=(0,I.Z)(e.nativeEvent),i=(0,p.m)(l)?l:null;i!==e.currentTarget&&(r?.(i)||(0,eC.W)(i))||(e.preventDefault(),!n&&(t.context.inputRef.current?.focus(),t.state.openOnInputClick&&t.context.setOpen(!0,(0,y.j)(S.f.inputPress,e.nativeEvent))))}let eE=t.forwardRef(function(e,t){let{render:n,className:r,style:l,...i}=e,{state:o}=(0,T.U)(),a=(0,A.G)(),s=a.useState("open"),f=a.useState("disabled"),c=a.useState("readOnly"),d=a.useState("hasSelectedValue"),p=a.useState("selectionMode"),v=eh(a),m=eI(),g={...o,open:s,disabled:f,readOnly:c,popupSide:v,listEmpty:m,placeholder:"none"!==p&&!d},x=(0,u.f)(e=>{a.set("inputGroupElement",e)});return(0,J.a)("div",e,{ref:[t,x],props:[{role:"group",onMouseDown(e){eR(e,a,f,e=>(0,I.I)(a.context.chipsContainerRef.current,e))}},i],state:g,stateAttributesMapping:es})}),ew=t.createContext(null);function eP(e){let{children:n}=e,{filteredItems:r}=(0,A.R)(),l=t.useContext(ew),i=l?l.items:r;return(0,Q.jsx)(t.Fragment,{children:i.map(n)})}var ej=e.i(53687);let eM=t.forwardRef(function(e,n){var r;let{render:l,className:i,style:o,children:a,...s}=e,f=(0,A.G)(),c=(0,A.B)(),d=!!ev(!0),{filteredItems:p,hasItems:v}=(0,A.R)(),m=f.useState("selectionMode"),g=f.useState("grid"),x=f.useState("readOnly"),h=f.useState("listProps"),I=f.useState("virtualized"),y=f.useState("forceMounted"),S=0===p.length,b=(0,u.f)(e=>{f.set("positionerElement",e)}),C=(0,u.f)(e=>{f.set("listElement",e)}),R=t.useMemo(()=>"function"==typeof a?r||(r=(0,Q.jsx)(eP,{children:a})):a,[a]),E=c.useState("floatingId"),w=(0,J.a)("div",e,{state:{empty:S},ref:[n,C,d?null:b],props:[h,{children:R,tabIndex:-1,id:E,role:g?"grid":"listbox","aria-multiselectable":"multiple"===m?"true":void 0,"aria-readonly":!g&&!!x||void 0,onKeyDown(e){if(!f.state.disabled&&!f.state.readOnly&&"Enter"===e.key){let t=f.state.activeIndex;null!=t&&((0,ed.Y)(e),eS(f,t,e.nativeEvent))}}},s]});if(I)return w;let P=v&&!y?void 0:f.context.labelsRef;return(0,Q.jsx)(ej.f,{elementsRef:f.context.listRef,labelsRef:P,children:w})});var eV=e.i(26674);let eA=t.createContext(void 0),eO=t.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e,l=(0,A.G)(),i=l.useState("mounted"),u=l.useState("forceMounted");return i||n||u?(0,Q.jsx)(eA.Provider,{value:n,children:(0,Q.jsx)(eV.r,{ref:t,...r})}):null});var ek=e.i(44394),eT=e.i(23706),eD=e.i(38396),eF=e.i(426),eG=e.i(89579),eL=e.i(33383);let eH=t.forwardRef(function(e,r){let{render:i,className:o,anchor:a,positionMethod:s,side:f,align:c,sideOffset:d,alignOffset:p,collisionBoundary:v="clipping-ancestors",collisionPadding:m,arrowPadding:g,sticky:x,disableAnchorTracking:h=!1,collisionAvoidance:I=eD.B,style:y,...S}=e,b=(0,A.G)(),C=(0,A.B)(),R=function(){let e=t.useContext(eA);if(void 0===e)throw Error((0,n.f)(20));return e}(),E=b.useState("modal"),w=b.useState("open"),P=b.useState("mounted"),j=b.useState("openMethod"),M=b.useState("positionerElement"),V=b.useState("triggerElement"),O=b.useState("inputElement"),k=b.useState("inputGroupElement"),T=b.useState("inputInsidePopup"),D=b.useState("transitionStatus"),F=eI(),G=(0,eT.f)({anchor:a??(T?V:k??O),floatingRootContext:C,positionMethod:s,mounted:P,side:f,sideOffset:d,align:c,alignOffset:p,arrowPadding:g,collisionBoundary:v,collisionPadding:m,sticky:x,disableAnchorTracking:h,keepMounted:R,collisionAvoidance:I,lazyFlip:!0});(0,eL.f)(w&&E,"touch"===j,M,V);let L={open:w,side:G.side,align:G.align,anchorHidden:G.anchorHidden,empty:F};(0,l.f)(()=>{b.set("popupSide",G.side)},[b,G.side]);let H=(0,u.f)(e=>{b.set("positionerElement",e)}),q=(0,eG.f)(e,L,{styles:G.positionerStyles,transitionStatus:D,props:S,refs:[r,H],hidden:!P,inert:!w});return(0,Q.jsxs)(ep.Provider,{value:G,children:[P&&E&&(0,Q.jsx)(eF.f,{inert:(0,ek.f)(!w),cutout:k??O??V}),q]})});var eq=e.i(61487),eB=e.i(37584),eU=e.i(74354),eK=e.i(53984);let eW={...eu.E,...eU.f},eN=t.forwardRef(function(e,n){let{render:r,className:i,style:u,initialFocus:o,finalFocus:a,...s}=e,f=(0,A.G)(),c=ev(),d=(0,A.B)(),p=f.useState("mounted"),v=f.useState("open"),m=f.useState("openMethod"),g=f.useState("popupProps"),x=f.useState("transitionStatus"),h=f.useState("inputInsidePopup"),y=f.useState("inputElement"),S=f.useState("modal"),b=f.useState("id"),C=eI(),R=s.id??(h?(0,L.t)(b):void 0);(0,l.f)(()=>(f.set("popupId",f.context.popupRef.current?.id||R),()=>{f.set("popupId",void 0)}),[f,R]),(0,eB.f)({open:v,ref:f.context.popupRef,onComplete(){v&&f.context.onOpenChangeComplete(!0)}});let E={open:v,side:c.side,align:c.align,anchorHidden:c.anchorHidden,transitionStatus:x,empty:C},w=(0,J.a)("div",e,{state:E,ref:[n,f.context.popupRef],props:[g,{id:R,role:h?"dialog":"presentation",onFocus(e){let t=(0,I.Z)(e.nativeEvent);"touch"!==m&&((0,I.I)(f.state.listElement,t)||t===e.currentTarget)&&f.context.inputRef.current?.focus()}},(0,eK.f)(x),s],stateAttributesMapping:eW}),P=!!h&&(e=>"touch"===e?f.context.popupRef.current:y),j=!h||S;return(0,Q.jsx)(eq.f,{context:d,disabled:!p,modal:j,openInteractionType:m,initialFocus:void 0===o?P:o,returnFocus:null!=a?a:!!h&&void 0,getInsideElements:()=>[f.context.startDismissRef.current,f.context.endDismissRef.current],children:(0,Q.jsxs)(t.Fragment,{children:[w,j&&(0,Q.jsx)(ex,{ref:f.context.endDismissRef})]})})});var e$=e.i(74080),ez=e.i(73553);let eY=t.createContext(void 0),eZ=t.createContext(!1);function eQ(e){let{componentProps:n,forwardedRef:r,virtualized:i,indexFromFilter:u}=e,{render:o,className:a,style:s,value:f=null,index:c,disabled:d=!1,nativeButton:p=!1,...v}=n,m=t.useRef(null),g=(0,ez.f)({guess:!0,index:c,textRef:m}),x=(0,A.G)(),h=t.useContext(eZ),I=(0,A.C)(),{props:y,id:S,selectionMode:b,disabled:C,readOnly:R,isItemEqualToValue:E}=x.useState("itemRoot"),w=C||d,P="none"!==b,j=c??u??g.index,M=-1!==j,V=x.useState("isActive",j),O=x.useState("isSelected",f),k=t.useRef(null),T=null!=S&&M?`${S}-${j}`:void 0,D=O&&P;(0,l.f)(()=>{if(!(M&&(i||null!=c)))return;let e=x.context.listRef.current;return e[j]=k.current,()=>{delete e[j]}},[M,i,j,c,x]),(0,l.f)(()=>{if(!M||I)return;let e=x.context.valuesRef.current;return e[j]=f,()=>{delete e[j]}},[M,I,j,f,x]),(0,l.f)(()=>{if(!M||I)return;let e=x.state.selectedValue,t=x.state.selectedIndex;"multiple"===x.state.selectionMode&&Array.isArray(e)?t=(0,$.b)(j,f,x.context.valuesRef.current,e,E,t):(0,$.i)(f,e,E)&&(t=j),x.set("selectedIndex",t)},[M,I,x,j,f,E]);let{getButtonProps:F,buttonRef:G}=(0,em.f)({disabled:w,focusableWhenDisabled:!0,native:p,composite:!0});function L(e){function t(){x.context.handleSelection(e,f)}x.state.submitOnItemClick?(e$.flushSync(t),x.context.requestSubmit()):t()}let H=(0,J.a)("div",n,{ref:[G,r,g.ref,k],state:{disabled:w,selected:D,highlighted:V},props:[y,{id:T,role:h?"gridcell":"option","aria-selected":P?D:void 0,tabIndex:void 0,onPointerDownCapture(e){e.isPrimary&&(x.context.pointerDownItemRef.current=e.currentTarget),e.preventDefault()},onMouseDown(e){e.preventDefault()},onClick(e){w||R||L(e.nativeEvent)},onMouseUp(e){let t=x.context.pointerDownItemRef.current===e.currentTarget;x.context.pointerDownItemRef.current=null,w||R||0!==e.button||t||!V||L(e.nativeEvent)}},v,F]}),q=t.useMemo(()=>({selected:D,textRef:m}),[D,m]);return(0,Q.jsx)(eY.Provider,{value:q,children:H})}function eX(e){let{componentProps:t,forwardedRef:n}=e,r=(0,A.G)().useState("isItemEqualToValue"),{flatFilteredValues:l}=(0,A.R)(),i=t.value??null,u=(0,$.u)(l,i,r);return(0,Q.jsx)(eQ,{componentProps:t,forwardedRef:n,virtualized:!0,indexFromFilter:u})}let eJ=t.memo(t.forwardRef(function(e,t){let n=(0,A.G)().useState("virtualized");return n&&null==e.index?(0,Q.jsx)(eX,{componentProps:e,forwardedRef:t}):(0,Q.jsx)(eQ,{componentProps:e,forwardedRef:t,virtualized:n,indexFromFilter:void 0})}));var e_=e.i(23910);let e0=t.memo(t.forwardRef(function(e,n){let{render:r,className:l,style:i,keepMounted:u,selected:o,...a}=e,s=t.useRef(null),{transitionStatus:f,setMounted:c}=(0,e_.f)(o),d=(0,J.a)("span",e,{ref:[n,s],state:{selected:o,transitionStatus:f},props:[{"aria-hidden":!0,children:"✔️"},a],stateAttributesMapping:eU.f});return(0,eB.f)({batch:!0,enabled:!o,open:o,ref:s,onComplete(){o||c(!1)}}),d})),e1=t.forwardRef(function(e,r){let{selected:l}=function(){let e=t.useContext(eY);if(!e)throw Error((0,n.f)(19));return e}();return e.keepMounted||l?(0,Q.jsx)(e0,{...e,selected:l,ref:r}):null}),e6=t.forwardRef(function(e,n){let{render:r,className:l,style:i,...u}=e,o=(0,A.G)(),a=o.useState("hasSelectionChips"),s=t.useRef([]),f=(0,J.a)("div",e,{ref:[n,o.context.chipsContainerRef],props:[a?{role:"toolbar"}:d.w,{onMouseDown(e){eR(e,o,o.state.disabled)}},u]}),c=t.useMemo(()=>({chipsRef:s}),[]);return(0,Q.jsx)(ef.Provider,{value:c,children:(0,Q.jsx)(ej.f,{elementsRef:s,children:f})})}),e8=t.createContext(void 0);var e4=e.i(14878),e3=e.i(45066);let e5=t.forwardRef(function(e,n){let{render:r,className:l,style:i,...u}=e,o=(0,A.G)(),{chipsRef:a}=ec(),s=(0,Z.f)(),f=o.useState("disabled"),c=o.useState("readOnly"),d=o.useState("selectedValue"),{ref:p,index:v}=(0,ez.f)(),m=(0,J.a)("div",e,{ref:[n,p],state:{disabled:f},props:[{tabIndex:-1,"aria-disabled":f||void 0,"aria-readonly":c||void 0,onKeyDown(e){if(f||c)return;let t=function(e){let t=v,[n,r]=ey(s);if(e.key===n)e.preventDefault(),t=v>0?v-1:void 0;else if(e.key===r)e.preventDefault(),t=v<a.current.length-1?v+1:void 0;else if("Backspace"===e.key||"Delete"===e.key){var l;let n;t=(n=v>=(l=d.length)-1?l-2:v)>=0?n:void 0,(0,ed.Y)(e),e$.flushSync(()=>{o.context.setIndices({activeIndex:null,selectedIndex:null,type:e3.f.keyboard,event:e.nativeEvent}),o.context.setSelectedValue(d.filter((e,t)=>t!==v),(0,y.j)(b.f.none,e.nativeEvent))})}else"Enter"===e.key||" "===e.key?((0,ed.Y)(e),t=void 0):"ArrowDown"===e.key||"ArrowUp"===e.key?((0,ed.Y)(e),e$.flushSync(()=>{o.context.setOpen(!0,(0,y.j)(e4.f.listNavigation,e.nativeEvent))}),t=void 0):1!==e.key.length||e.ctrlKey||e.metaKey||e.altKey||(t=void 0);return t}(e);void 0===t?o.context.inputRef.current?.focus():a.current[t]?.focus()}},u]}),g=t.useMemo(()=>({index:v}),[v]);return(0,Q.jsx)(e8.Provider,{value:g,children:m})});var e2=e.i(16856),e2=e2;let e7=t.forwardRef(function(e,r){let{render:l,className:i,disabled:u=!1,nativeButton:o=!0,style:a,...s}=e,f=(0,A.G)(),{index:c}=function(){let e=t.useContext(e8);if(!e)throw Error((0,n.f)(17));return e}(),d=f.useState("disabled"),p=f.useState("readOnly"),v=f.useState("selectedValue"),m=f.useState("isItemEqualToValue"),g=d||u,{buttonRef:x,getButtonProps:h}=(0,em.f)({native:o,disabled:g||p,focusableWhenDisabled:!0});function I(e){let t=(0,y.j)(e2.chipRemovePress,e.nativeEvent);return!function(e,t){let n=f.state.activeIndex;if(null==n)return;let r=(0,$.u)(f.context.valuesRef.current,e,m);-1!==r&&n===r&&f.context.setIndices({activeIndex:null,type:(0,V.f)(t),event:t})}(v[c],e.nativeEvent),f.context.setSelectedValue(v.filter((e,t)=>t!==c),t),f.context.inputRef.current?.focus(),t}return(0,J.a)("button",e,{ref:[r,x],state:{disabled:g},props:[{tabIndex:-1,onMouseDown(e){e.preventDefault()},onClick(e){I(e).isPropagationAllowed||e.stopPropagation()},onKeyDown(e){("Enter"===e.key||" "===e.key)&&(I(e).isPropagationAllowed||(0,ed.Y)(e))}},s,h]})});var e9=e.i(39957);let te=t.forwardRef(function(e,n){let{render:r,className:l,style:i,children:u,...o}=e,{filteredItems:a}=(0,A.R)(),s=(0,A.G)(),f=function(e=!0){let n=(0,e9.e)(),r=t.useRef(null);return t.useEffect(()=>{if(!e||el.f.os.ios)return;let t=r.current;if(null==t)return;let l=function(e){let t=e.ownerDocument.createTreeWalker(e,NodeFilter.SHOW_TEXT),n=null;for(;t.nextNode();){let e=t.currentNode;""!==e.nodeValue&&(n=e)}return n}(t);if(null==l)return;let i=l.data,u=`${i}⁠`;return l.nodeValue=u,n.start(200,()=>{l.nodeValue===u&&(l.nodeValue=i)}),()=>{n.clear(),l.nodeValue===u&&(l.nodeValue=i)}},[e,r,n]),r}(),c=0===a.length?u:null;return(0,J.a)("div",e,{ref:[n,s.context.emptyRef,f],props:[{children:c,role:"status","aria-live":"polite","aria-atomic":!0},o]})});e.s(["Chip",0,e5,"ChipRemove",0,e7,"Chips",0,e6,"Empty",0,te,"Input",0,eb,"InputGroup",0,eE,"Item",0,eJ,"ItemIndicator",0,e1,"Label",0,er,"List",0,eM,"Popup",0,eN,"Portal",0,eO,"Positioner",0,eH,"Root",0,function(e){let{multiple:t=!1,defaultValue:n,value:r,onValueChange:l,autoComplete:i,...u}=e;return(0,Q.jsx)(X,{...u,selectionMode:t?"multiple":"single",selectedValue:r,defaultSelectedValue:n,onSelectedValueChange:l,formAutoComplete:i})},"useFilter",()=>H.w],24189);var tt=e.i(24189);e.s(["f",0,tt],93976),e.s(["f",0,tt],37134),e.s(["f",0,tt],62050),e.s(["f",0,tt],45017),e.s(["f",0,tt],47125),e.s(["f",0,tt],10030),e.s(["f",0,tt],58998),e.s(["f",0,tt],94313),e.s(["f",0,tt],53535)},96545,e=>{var t=e.i(29315);function n(e,r=!1){let{overflowY:l}=(0,t.X)(e);return("auto"===l||"scroll"===l)&&(r?e.clientHeight>0:e.scrollHeight>e.clientHeight)}function r(e,l,i=!1){return"vertical"===l?n(e,i):function(e,n=!1){let{overflowX:r}=(0,t.X)(e);return("auto"===r||"scroll"===r)&&(n?e.clientWidth>0:e.scrollWidth>e.clientWidth)}(e,i)}function l(e,n,i,u=!1){let o=e;for(;(0,t.m)(o)&&o!==n&&!(0,t.Z)(o);){if((0,t.E)(o)&&r(o,i,u))return o;o=(0,t.J)(o)}return null}e.s(["i",0,l,"U",0,function(e,t,n="vertical",i=!1){return l(e,t,n,i)??(r(t,n,i)?t:null)},"k",0,n])},13203,65858,64132,87773,26410,40609,2672,84325,42191,62156,75812,69690,81104,84708,47778,38489,36523,56970,e=>{var t=e.i(71645);e.s(["f",0,function(e){let n=t.useRef(!0);n.current&&(n.current=!1,e())}],13203);var n=e.i(29315),r=e.i(83977),l=e.i(46376),i=e.i(88940),u=e.i(90627),o=e.i(46420),a=e.i(56341);e.s(["f",0,function(e){let{open:t=!1,onOpenChange:s,elements:f={}}=e,c=(0,r.f)(),d=null!=(0,o.G)(),p=(0,i.f)(()=>new a.f({open:t,transitionStatus:void 0,onOpenChange:s,referenceElement:f.reference??null,floatingElement:f.floating??null,triggerElements:new u.f,floatingId:c,syncOnly:!1,nested:d})).current;return(0,l.f)(()=>{let e={open:t,floatingId:c};void 0!==f.reference&&(e.referenceElement=f.reference,e.domReferenceElement=(0,n.m)(f.reference)?f.reference:null),void 0!==f.floating&&(e.floatingElement=f.floating),p.update(e)},[t,c,f.reference,f.floating,p]),p.context.onOpenChange=s,p.context.nested=d,p}],65858);var s=e.i(21082);e.s(["f",0,function(e,t,n,r,l,i,u,o,a,f=2){let c=(0,s.n)(n.current,{event:e,orientation:r,loopFocus:l,rtl:i,cols:f,disabledIndices:u,minIndex:o,maxIndex:a,prevIndex:t>a?o:t,stopEvent:!0});return(0,s.c)(n.current,c)?void 0:c}],64132);var f=e.i(16856);e.s(["f",0,f],87773),e.s(["f",0,f],26410),e.s(["f",0,f],40609);var c=e.i(33332);let d=t.createContext(void 0),p=t.createContext(void 0),v=t.createContext(void 0),m=t.createContext(!1),g=t.createContext("");e.s(["Z",0,v,"v",0,p,"I",0,m,"f",0,g,"$",0,d,"R",0,function(){let e=t.useContext(v);if(!e)throw Error((0,c.f)(24));return e},"B",0,function(){let e=t.useContext(p);if(!e)throw Error((0,c.f)(23));return e},"C",0,function(){return t.useContext(m)},"a",0,function(){return t.useContext(g)},"G",0,function(){let e=t.useContext(d);if(!e)throw Error((0,c.f)(22));return e}],2672);let x=(e,t)=>Object.is(e,t);function h(e,t,n){return null==e||null==t?Object.is(e,t):n(e,t)}function I(e,t,n){return!!e&&e.some(e=>void 0!==e&&h(t,e,n))}function y(e,t,n){return e?e.findIndex(e=>void 0!==e&&h(e,t,n)):-1}function S(e,t,n,r){let l=r&&Array.isArray(t)?e.findIndex(function(e,t){if(t!==x)return n=>I(e,n,t);let n=new Set(e);return n.delete(void 0),t=>n.has(t)&&(0!==t||e.some(e=>Object.is(t,e)))}(t,n)):y(e,t,n);return -1===l?null:l}function b(e){if(null==e)return"";if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}}function C(e){var t;return"object"==typeof(t=e?.[0])&&null!=t&&Array.isArray(t.items)}function R(e){if(!Array.isArray(e))return null!=e&&"null"in e;if(C(e)){for(let t of e)for(let e of t.items)if(e&&null==e.value&&null!=e.label)return!0;return!1}for(let t of e)if(t&&null==t.value&&null!=t.label)return!0;return!1}function E(e,t){if(t&&null!=e)return t(e)??"";if(e&&"object"==typeof e){if("label"in e&&null!=e.label)return String(e.label);if("value"in e)return String(e.value)}return b(e)}e.s(["i",0,h,"t",0,x,"u",0,y,"m",0,S,"H",0,function(e,t,n){return Array.isArray(e)&&Array.isArray(t)?!function(e,t,n=Object.is){let{length:r}=e;if(r!==t.length)return!1;for(let l=0;l<r;l+=1)if(!n(e[l],t[l]))return!1;return!0}(e,t,(e,t)=>h(e,t,n)):e!==t},"j",0,function(e,t,n){return e.filter(e=>!h(t,e,n))},"b",0,function(e,t,n,r,l,i){return I(r,t,l)?null!=i&&e>i&&I(r,n[i],l)?i:e:e===i?S(n,r,l,!0):i},"v",0,I],84325),e.i(43476),e.s(["j",0,function(e){return C(e)?e.flatMap(e=>e.items):e},"Y",0,R,"i",0,C,"B",0,E,"P",0,function(e,t){return t&&null!=e?t(e)??"":e&&"object"==typeof e&&"value"in e&&"label"in e?b(e.value):b(e)}],42191),e.s(["f",0,{id:e=>e.id,labelId:e=>e.labelId,items:e=>e.items,selectedValue:e=>e.selectedValue,hasSelectionChips:e=>{let t=e.selectedValue;return Array.isArray(t)&&t.length>0},hasSelectedValue:e=>{let{selectedValue:t,selectionMode:n}=e;return null!=t&&(!("multiple"===n&&Array.isArray(t))||t.length>0)},hasNullItemLabel:(e,t)=>!!t&&R(e.items),open:e=>e.open,mounted:e=>e.mounted,forceMounted:e=>e.forceMounted,inline:e=>e.inline,activeIndex:e=>e.activeIndex,selectedIndex:e=>e.selectedIndex,isActive:(e,t)=>e.activeIndex===t,isSelected:(e,t)=>{let n=e.isItemEqualToValue,r=e.selectedValue;return Array.isArray(r)?r.some(e=>h(t,e,n)):h(t,r,n)},transitionStatus:e=>e.transitionStatus,popupProps:e=>e.popupProps,listProps:e=>e.listProps,inputProps:e=>e.inputProps,triggerProps:e=>e.triggerProps,itemRoot:e=>e.itemRoot,positionerElement:e=>e.positionerElement,listElement:e=>e.listElement,popupId:e=>e.popupId,triggerElement:e=>e.triggerElement,inputElement:e=>e.inputElement,inputGroupElement:e=>e.inputGroupElement,popupSide:e=>e.popupSide,openMethod:e=>e.openMethod,inputInsidePopup:e=>e.inputInsidePopup,inputOwnsFormValue:e=>e.inputOwnsFormValue,selectionMode:e=>e.selectionMode,name:e=>e.name,form:e=>e.form,disabled:e=>e.disabled,readOnly:e=>e.readOnly,required:e=>e.required,grid:e=>e.grid,virtualized:e=>e.virtualized,itemToStringLabel:e=>e.itemToStringLabel,isItemEqualToValue:e=>e.isItemEqualToValue,modal:e=>e.modal,autoHighlight:e=>e.autoHighlight}],62156);var w=e.i(56789);let P={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},j={valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},M={disabled:!1,...j};e.s(["q",0,M,"S",0,j,"t",0,P,"s",0,{valid:e=>null===e?null:e?{"data-valid":""}:{"data-invalid":""}}],75812);let V={invalid:void 0,name:void 0,validityData:{state:P,errors:[],error:"",value:"",initialValue:null},setValidityData:w.x,disabled:void 0,setTouched:w.x,setDirty:w.x,setFilled:w.x,setFocused:w.x,focusOwnerRef:{current:void 0},validationMode:"onSubmit",shouldValidateOnChange:()=>!1,state:M,registerFieldControl:w.x,validation:{getValidationProps:(e,t=w.w)=>t,inputRef:{current:null},registeredInputs:new Map,registerInput:w.x,getInputControl:()=>null,commit:async()=>{},change:w.x}},A=t.createContext(V);function O(e=!0){let n=t.useContext(A);if(n.setValidityData===w.x&&!e)throw Error((0,c.f)(28));return n}e.s(["T",0,V,"H",0,A,"U",0,O],69690),e.s(["f",0,function(e,t,n,r,u=!0,o){let{registerFieldControl:a}=O(),s=(0,i.f)(()=>Symbol());(0,l.f)(()=>{let l=s.current;u?a(l,{controlRef:e,getValue:r,id:t,name:o,value:n}):a(l,void 0)},[e,u,r,t,o,a,s,n]),(0,l.f)(()=>{let e=s.current;return()=>{a(e,void 0)}},[a,s])}],81104);let k=t.createContext({elementRef:{current:null},formRef:{current:{fields:new Map}},errors:{},clearErrors:w.x,validationMode:"onSubmit",submitCountRef:{current:0}});e.s(["f",0,function(){return t.useContext(k)}],84708);var T=e.i(67865),D=e.i(88015);let F=t.createContext({controlId:void 0,registerControlId:w.x,resetControlId:w.x,labelId:void 0,setLabelId:w.x,messageIds:[],setMessageIds:w.x,getDescriptionProps:e=>e});function G(){return t.useContext(F)}function L(e,t){return(n,r)=>null!=n&&e.contains(n,r,t)}function H(e,t,n){return(r,l)=>{if(null==r)return!1;if(!l)return!0;let i=t?.selected??t,u=null!=n?E(n,i):"";return!!(u&&e.contains(u,l))&&u.length===l.length||e.contains(r,l,t)}}e.s(["f",0,G],47778),e.s(["f",0,function(e={}){let{id:n,enabled:r=!0}=e,{controlId:u,registerControlId:o,resetControlId:a}=G(),s=(0,D.f)(),f=(0,i.f)(()=>Symbol()),c=t.useRef(!1),d=t.useRef(!1),p=(0,T.f)(()=>{c.current&&o!==w.x&&(c.current=!1,o(f.current,void 0))});return(0,l.f)(()=>{let e;if(!r||o===w.x)return void p();if(void 0!==n)d.current=!0,e=n;else{if(!d.current)return void a();e=s}void 0===e?p():(c.current=!0,o(f.current,e))},[n,r,o,a,s,f,p]),(0,l.f)(()=>p,[p]),(r?u:void 0)??n??s}],38489),e.s(["r",0,L,"R",0,H,"t",0,function(e){return null==e?void 0:`${e}-popup`}],36523);let q=new Map;function B(e={}){let{locale:t,...n}=e,r={usage:"search",sensitivity:"base",ignorePunctuation:!0,...n},l=`${function e(t){return Array.isArray(t)?t.map(t=>e(t)).join(","):null==t?"":String(t)}(t)}|${JSON.stringify(r)}`,i=q.get(l);if(i)return i;let u=new Intl.Collator(t,r),o={contains(e,t,n){if(!t)return!0;let r=E(e,n);for(let e=0;e<=r.length-t.length;e+=1)if(0===u.compare(r.slice(e,e+t.length),t))return!0;return!1},startsWith(e,t,n){if(!t)return!0;let r=E(e,n);return 0===u.compare(r.slice(0,t.length),t)},endsWith(e,t,n){if(!t)return!0;let r=E(e,n),l=t.length;return r.length>=l&&0===u.compare(r.slice(r.length-l),t)}};return q.set(l,o),o}e.s(["w",0,function(e={}){let{multiple:n=!1,value:r,...l}=e,i=B(l),u=t.useCallback((e,t,l)=>n?L(i,l)(e,t):H(i,l,r)(e,t),[i,r,n]);return t.useMemo(()=>({...i,contains:u}),[u,i])},"_",0,B],56970)}])})();
@@ -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])},55070,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})}])},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})}])}])})();
@@ -1 +0,0 @@
1
- (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,26217,e=>{var n=e.i(95187);let t=(0,n.createServerReference)("60573c940559fe36ec3489b04906d9407ddf5822ef",n.callServer,void 0,n.findSourceMapURL,"removeFromBasket");e.s(["f",0,t])},57228,e=>{e.s(["H",0,"/bridge/basket","T",0,"/bridge/settings"])},15685,e=>{var n=e.i(43476),t=e.i(71645),i=e.i(95187);let r=(0,i.createServerReference)("603b4af3b6ef322d88de132c92a8286173f7a791b6",i.callServer,void 0,i.findSourceMapURL,"readMoreRecord");var s=e.i(12497),d=e.i(55070),a=e.i(19015),o=e.i(63132),l=e.i(3523);e.s(["DonePanel",0,function({fleetId:e,first:i}){let[c,u]=(0,t.useState)(i.items),[g,m]=(0,t.useState)(i.nextCursor),[p,b]=(0,t.useState)(),[f,h]=(0,t.useTransition)();return(0,n.jsx)(l.f,{fleetId:e,children:t=>(0,n.jsxs)("section",{className:"grid gap-3","aria-labelledby":"bridge-done-heading",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h1",{id:"bridge-done-heading",className:"text-heading font-semibold",children:"Done"}),(0,n.jsx)("p",{className:"text-muted-foreground",children:"Everything that reached you, with what came of it and where."})]}),0===c.length?(0,n.jsx)("p",{"data-testid":"bridge-record-empty",className:"rounded-md border border-border bg-card p-3 text-muted-foreground",children:"Nothing has reached you yet."}):(0,n.jsx)("ul",{className:"grid gap-2",children:c.map(e=>(0,n.jsx)(a.f,{item:e,isNew:"new"===e.state,outcome:(0,s.s)(e),failure:t.failure?.deliveryId===e.deliveryId?t.failure.message:void 0,children:"done"===e.state?null:(0,n.jsx)(d.f,{"data-testid":"bridge-open",isPending:t.openingId===e.deliveryId,pendingLabel:"Opening...",disabled:void 0!==t.openingId,onClick:()=>{t.open(e)},children:"Open"})},e.deliveryId))}),void 0===p?null:(0,n.jsx)(o.f,{message:p,isFailure:!0}),null===g?null:(0,n.jsx)(d.f,{"data-testid":"bridge-more",className:"justify-self-start",isPending:f,pendingLabel:"Reading...",onClick:()=>{b(void 0),h(async()=>{let n=await r(e,g);n.isOk?(u(e=>[...e,...n.value.items]),m(n.value.nextCursor)):b(n.message)})},children:"Show older"})]})})}],15685)},3523,e=>{var n=e.i(43476),t=e.i(71645),i=e.i(73459),r=e.i(65894),s=e.i(35004),d=e.i(75222),a=e.i(73383),o=e.i(2708),l=e.i(26217),c=e.i(57228),u=e.i(55070),g=e.i(63132);function m({inBasket:e,basketHref:t,isRemoving:i,isWorking:r,onRemove:s}){return(0,n.jsxs)("div",{"data-testid":"bridge-in-basket",className:"grid gap-2 rounded-md border border-border bg-muted p-3",children:[(0,n.jsxs)("span",{className:"font-medium",children:["In the basket: option ",e.option,", not sent"]}),null===e.note?null:(0,n.jsxs)("span",{className:"text-caption",children:["“",e.note,"”"]}),(0,n.jsx)("span",{className:"text-caption text-muted-foreground",children:"Pick another option to change it."}),(0,n.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,n.jsx)("a",{"data-testid":"bridge-basket-open",href:t,className:"inline-flex h-9 items-center rounded-md border border-border px-4 hover:bg-accent",children:"Open the basket"}),(0,n.jsx)(u.f,{"data-testid":"bridge-basket-remove",isPending:i,pendingLabel:"Removing...",disabled:r,onClick:s,children:"Remove"})]})]})}function p({question:e,chosen:t,isStale:i,onChoose:r}){return(0,n.jsxs)("fieldset",{className:`grid gap-2 ${i?"opacity-60":""}`,disabled:i,children:[(0,n.jsx)("legend",{className:"sr-only",children:"Options"}),e.options.map(s=>(0,n.jsxs)("label",{className:`flex items-start gap-3 rounded-md border p-3 ${s.key===t&&!i?"border-ring bg-accent":"border-border"}`,children:[(0,n.jsx)("input",{type:"radio",name:"option",value:s.key,checked:s.key===t&&!i,onChange:()=>{r(s.key)},className:"mt-1"}),(0,n.jsxs)("span",{className:"grid flex-1 gap-0.5",children:[(0,n.jsxs)("span",{className:"font-medium",children:[s.key,". ",s.label]}),""===s.detail?null:(0,n.jsx)("span",{className:"text-caption text-muted-foreground",children:s.detail})]}),s.key===e.pick.option?(0,n.jsx)("span",{className:"rounded-sm border border-border px-1.5 text-caption",children:"Their pick"}):null]},s.key))]})}function b({stale:e,from:t,onOpen:i}){let{replacementId:r}=e;return(0,n.jsxs)("div",{"data-testid":"bridge-stale",className:"grid gap-2 rounded-md border border-border bg-muted p-3",children:[(0,n.jsx)("span",{children:"withdrawn"===e.kind?`Withdrawn by ${t}. Nothing to answer: it is done.`:`Replaced by ${t}. Answer the new question.`}),null===r?null:(0,n.jsx)(u.f,{"data-testid":"bridge-replacement",className:"justify-self-start",isPending:!1,pendingLabel:"Opening...",onClick:()=>{i(r)},children:"Open the new question"})]})}function f({step:e}){return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{className:"whitespace-pre-wrap",children:e.why}),void 0===e.link?null:(0,n.jsxs)("a",{"data-testid":"bridge-step-link",href:e.link.href,target:"_blank",rel:"noopener noreferrer",className:"inline-flex h-9 items-center justify-self-start rounded-md border border-border px-4 hover:bg-accent",children:["Open on ",e.link.host]})]})}function h({from:e,note:t,working:i,failure:r,onNoteChange:s,onFinish:d}){let a=void 0!==i;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("label",{className:"grid gap-1",children:[(0,n.jsx)("span",{children:"Note"}),(0,n.jsx)("textarea",{"data-testid":"bridge-note",rows:2,value:t,onChange:e=>{s(e.target.value)},placeholder:"Optional, goes with Done or Cannot",className:"rounded-md border border-input bg-background p-2"})]}),void 0===r?null:(0,n.jsx)(g.f,{message:r,isFailure:!0}),(0,n.jsxs)("div",{className:"grid gap-1",children:[(0,n.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,n.jsx)(u.f,{"data-testid":"bridge-step-done",variant:"primary",isPending:i?.kind==="done",pendingLabel:"Sending...",disabled:a,onClick:()=>{d("done")},children:"Done"}),(0,n.jsx)(u.f,{"data-testid":"bridge-step-cannot",isPending:i?.kind==="cannot",pendingLabel:"Sending...",disabled:a,onClick:()=>{d("cannot")},children:"Cannot"})]}),(0,n.jsxs)("span",{className:"text-caption text-muted-foreground",children:[e," is told at once, with your note."]})]})]})}function x({delivery:e,isDoneOnSeeing:i,meetingHref:r,basketHref:s,inBasket:d,note:a,working:o,failure:l,onNoteChange:c,onAnswer:v,onPut:j,onRemove:y,onDone:w,onFinishStep:k,onOpen:N,onBack:S}){let{question:I,step:R,stale:C}=e,[$,L]=(0,t.useState)(d?.option??I?.pick.option),O=void 0!==o;return(0,n.jsxs)("section",{"data-testid":"bridge-delivery",className:"grid gap-3 rounded-lg border border-border bg-card p-6 text-card-foreground shadow-sm",children:[(0,n.jsxs)("span",{className:"text-caption text-muted-foreground",children:[e.from," · ",new Date(e.sentAt).toUTCString()]}),(0,n.jsx)("h2",{className:"text-heading font-semibold",children:I?.title??e.title}),void 0===r?null:(0,n.jsx)("a",{"data-testid":"bridge-meeting",href:r,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!==R?(0,n.jsx)(f,{step:R}):void 0===I?(0,n.jsx)("pre",{className:"whitespace-pre-wrap rounded-md bg-muted p-3 font-mono text-caption",children:e.body}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{className:"whitespace-pre-wrap",children:I.context}),(0,n.jsx)(p,{question:I,chosen:$,isStale:null!==C,onChoose:L}),(0,n.jsxs)("p",{className:"text-caption text-muted-foreground",children:[e.from," picks ",I.pick.option,": ",I.pick.why]})]}),null===C?null:(0,n.jsx)(b,{stale:C,from:e.from,onOpen:N}),null===d||null!==C?null:(0,n.jsx)(m,{inBasket:d,basketHref:s,isRemoving:o?.kind==="remove",isWorking:O,onRemove:y}),i?(0,n.jsx)("p",{"data-testid":"bridge-seen-done",className:"text-muted-foreground",children:"Seen now, so done: it asks nothing more."}):null!==C?null:void 0!==R?(0,n.jsx)(h,{from:e.from,note:a,working:o,failure:l,onNoteChange:c,onFinish:k}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("label",{className:"grid gap-1",children:[(0,n.jsx)("span",{children:void 0===I?"Your answer":"Note"}),(0,n.jsx)("textarea",{"data-testid":"bridge-note",rows:2,value:a,onChange:e=>{c(e.target.value)},placeholder:void 0===I?"":"Optional, goes with the answer",className:"rounded-md border border-input bg-background p-2"})]}),void 0===l?null:(0,n.jsx)(g.f,{message:l,isFailure:!0}),void 0===I?(0,n.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,n.jsx)(u.f,{"data-testid":"bridge-answer",variant:"primary",isPending:o?.kind==="note",pendingLabel:"Sending...",disabled:O,onClick:()=>{v(void 0)},children:"Answer"}),(0,n.jsx)(u.f,{"data-testid":"bridge-done",isPending:o?.kind==="done",pendingLabel:"Marking done...",disabled:O,onClick:w,children:"Done"})]}):void 0===$?null:(0,n.jsxs)("div",{className:"grid gap-1",children:[(0,n.jsxs)(u.f,{"data-testid":"bridge-put-in-basket",variant:"primary",className:"justify-self-start",isPending:o?.kind==="option",pendingLabel:"Putting in the basket...",disabled:O,onClick:()=>{j($)},children:["Put option ",$," in the basket"]}),(0,n.jsxs)("span",{className:"text-caption text-muted-foreground",children:["Nothing is sent yet. ",e.from," receives this answer when you send the basket."]})]})]}),(0,n.jsx)("div",{className:"flex flex-wrap gap-2",children:(0,n.jsx)("button",{type:"button",onClick:S,disabled:O,className:"inline-flex h-9 items-center rounded-md px-4 text-muted-foreground hover:bg-accent disabled:opacity-70",children:"Back"})})]})}e.s(["f",0,function({fleetId:e,children:u}){let[m,p]=(0,t.useState)(),[b,f]=(0,t.useState)(""),[h,v]=(0,t.useState)(),[j,y]=(0,t.useState)(),[w,k]=(0,t.useState)(),[N,S]=(0,t.useState)(),[I,R]=(0,t.useState)(),[,C]=(0,t.useTransition)(),$=n=>{v(n.deliveryId),k(void 0),R(void 0),C(async()=>{let t=await (0,a.f)(e,n.deliveryId);if(v(void 0),t.isOk){let e=n.inBasket??null;p({delivery:t.value,isDoneOnSeeing:"stay-aware"===n.job,inBasket:e}),f(e?.note??""),S(void 0)}else k({deliveryId:n.deliveryId,message:t.message})})},L=({control:e,action:n,said:t})=>{y(e),S(void 0),C(async()=>{let e=await n();y(void 0),e.isOk?(p(void 0),R(t)):S(e.message)})};if(void 0!==m){let{delivery:t,inBasket:a}=m,u=t.question?.id;return(0,n.jsx)(x,{delivery:t,isDoneOnSeeing:m.isDoneOnSeeing,meetingHref:void 0===t.meetingId?void 0:(0,i.f)({fleetId:e,meetingId:t.meetingId}),basketHref:(0,r.f)(c.H,e),inBasket:a,note:b,working:j,failure:N,onNoteChange:f,onAnswer:n=>{L({control:void 0===n?{kind:"note"}:{kind:"option",option:n},action:()=>(0,s.f)({fleet:e,deliveryId:t.deliveryId,input:{questionId:t.question?.id,option:n,note:b}}),said:`Your answer went to ${t.from}.`})},onPut:n=>{L({control:{kind:"option",option:n},action:()=>(0,o.f)({fleet:e,deliveryId:t.deliveryId,option:n,note:b}),said:`Option ${String(n)} is in the basket, not sent: ${t.from} receives it when you send the basket.`})},onRemove:()=>{void 0!==u&&L({control:{kind:"remove"},action:()=>(0,l.f)(e,u),said:`Your answer to “${t.title}” is out of the basket; the question still waits on you.`})},onDone:()=>{L({control:{kind:"done"},action:()=>(0,d.f)({fleet:e,deliveryId:t.deliveryId}),said:`Done with “${t.title}”.`})},onFinishStep:n=>{L({control:{kind:n},action:()=>(0,d.f)({fleet:e,deliveryId:t.deliveryId,step:{outcome:n,note:b}}),said:"done"===n?`Done: ${t.from} is told “${t.title}” is done.`:`Cannot: ${t.from} is told you cannot do “${t.title}”.`})},onOpen:e=>{$({deliveryId:e,job:"decide"})},onBack:()=>{p(void 0)}},t.deliveryId)}return(0,n.jsxs)("div",{className:"grid gap-4",children:[void 0===I?null:(0,n.jsx)(g.f,{message:I,isFailure:!1}),u({open:$,openingId:h,failure:w})]})}],3523)},10629,e=>{var n=e.i(71645),t=e.i(18566);e.s(["LiveRefresh",0,function({fleetId:e}){let i;return i=(0,t.useRouter)(),(0,n.useEffect)(()=>{let n=new EventSource(`/bridge/changes?fleet=${encodeURIComponent(e)}`);return n.onmessage=()=>{i.refresh()},()=>{n.close()}},[e,i]),(0,n.useEffect)(()=>{let n,t=()=>{let t="visible"===document.visibilityState&&document.hasFocus();t&&void 0===n?n=new EventSource(`/bridge/focus?fleet=${encodeURIComponent(e)}`):t||void 0===n||(n.close(),n=void 0)};return t(),window.addEventListener("focus",t),window.addEventListener("blur",t),document.addEventListener("visibilitychange",t),()=>{window.removeEventListener("focus",t),window.removeEventListener("blur",t),document.removeEventListener("visibilitychange",t),n?.close()}},[e]),null}],10629)},84238,e=>{var n=e.i(43476),t=e.i(18566),i=e.i(71645);e.s(["RecordUnreadable",0,function({message:e}){let r=(0,t.useRouter)();return(0,i.useEffect)(()=>{let e=setInterval(()=>{r.refresh()},1e4);return()=>{clearInterval(e)}},[r]),(0,n.jsxs)("section",{role:"alert","data-testid":"bridge-unreadable",className:"flex flex-wrap items-center gap-3 rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg",children:[(0,n.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col",children:[(0,n.jsx)("span",{className:"font-semibold",children:"The record cannot be read now"}),(0,n.jsxs)("span",{className:"text-caption",children:[e," Nothing was opened or answered, so nothing is lost: Bridge tries again in 10 s."]})]}),(0,n.jsx)("button",{type:"button","data-testid":"bridge-try-now",onClick:()=>{r.refresh()},className:"inline-flex h-9 items-center rounded-md border border-border bg-card px-4 text-card-foreground hover:bg-accent",children:"Try now"})]})}])},55070,e=>{var n=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:i,variant:r="secondary",children:s,className:d="",disabled:a,...o}){return(0,n.jsx)("button",{...o,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[r]} ${d}`,children:e?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{"aria-hidden":"true",className:"size-3.5 animate-spin rounded-full border-2 border-current border-t-transparent"}),i]}):s})}])},19015,12497,e=>{var n=e.i(43476);let t={decide:"Decide",do:"Do","stay-aware":"Stay aware","everything-else":"Message"},i={bridge:"in Bridge",chat:"in a chat",slack:"in Slack",gateway:"by the gateway"},r={seen:"Seen",answered:"Answered",done:"Done",cannot:"Marked cannot",withdrawn:"Withdrawn by its asker, seen",replaced:"Replaced by its asker, seen",notSent:"Not sent, removed"};function s(e){return t[e]}e.s(["y",0,s,"s",0,function(e){switch(e.state){case"new":return"New";case"seen":return"Seen, not done yet";case"done":{let{outcome:n}=e;if(null===n)return"Done";let t=`${r[n.kind]} ${i[n.place]}`;return null===n.option?t:`${t}: option ${String(n.option)}`}}}],12497);var d=e.i(63132);e.s(["f",0,function({item:e,isNew:t,isStale:i=!1,outcome:r,failure:a,children:o}){var l;return(0,n.jsxs)("li",{"data-testid":"bridge-item","data-stale":i,className:`grid min-w-0 gap-2 rounded-md border border-border bg-card p-3 ${i?"opacity-60":""}`,children:[(0,n.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,n.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col text-left",children:[(0,n.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[t?(0,n.jsx)("span",{"aria-label":"New",className:"size-2 shrink-0 rounded-full bg-primary"}):null,(0,n.jsx)("span",{className:"truncate font-medium",children:e.title})]}),(0,n.jsxs)("span",{className:"text-caption text-muted-foreground",children:[s(e.job)," · ",e.from," · ",(0,n.jsx)("time",{dateTime:e.sentAt,children:(l=e.sentAt,`${new Date(l).toISOString().slice(0,16).replace("T"," ")} UTC`)})]}),void 0===r?null:(0,n.jsx)("span",{"data-testid":"bridge-outcome",className:"text-caption",children:r})]}),o]}),void 0===a?null:(0,n.jsx)(d.f,{message:a,isFailure:!0})]})}],19015)},63132,e=>{var n=e.i(43476);e.s(["f",0,function({message:e,isFailure:t}){return t?(0,n.jsx)("p",{role:"alert","data-testid":"bridge-failure",className:"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg",children:e}):(0,n.jsx)("p",{role:"status","data-testid":"bridge-success",className:"rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-tone-ok-fg",children:e})}])},73459,35004,75222,73383,2708,e=>{e.s(["f",0,function(e){let n=new URLSearchParams({fleet:e.fleetId,...void 0===e.cursor?{}:{cursor:e.cursor}});return`/meetings/${encodeURIComponent(e.meetingId)}?${n.toString()}`}],73459);var n=e.i(95187);let t=(0,n.createServerReference)("40edad5bc6caa482ec57bdf504a9545c453e286344",n.callServer,void 0,n.findSourceMapURL,"answerDelivery");e.s(["f",0,t],35004);let i=(0,n.createServerReference)("409343274cfb1997696f97d13e70128feeaadc81b0",n.callServer,void 0,n.findSourceMapURL,"doneDelivery");e.s(["f",0,i],75222);let r=(0,n.createServerReference)("6013ebd954e4b9b9c2c4a85c94c4fc1f4786952324",n.callServer,void 0,n.findSourceMapURL,"openDelivery");e.s(["f",0,r],73383);let s=(0,n.createServerReference)("408a5fadf58977f6b55557119e3557d884605ebbcf",n.callServer,void 0,n.findSourceMapURL,"putInBasket");e.s(["f",0,s],2708)}])})();
@@ -1 +0,0 @@
1
- (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,57228,e=>{e.s(["H",0,"/bridge/basket","T",0,"/bridge/settings"])},95893,e=>{var r=e.i(43476),n=e.i(18566),s=e.i(71645),i=e.i(95187);let a=(0,i.createServerReference)("4080e6f6510c124a1b0598c7303e7858de44a8b40b",i.callServer,void 0,i.findSourceMapURL,"decideRequest");var t=e.i(57228),d=e.i(88374),l=e.i(65818);let c=["messages:send","messages:receive"],o={"messages:send":"Send","messages:receive":"Receive","fleet:read":"Read the fleet"};var u=e.i(55070),p=e.i(63132);let m="rounded-md border border-input bg-background px-2 py-1.5";function b({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 g(e,r){let n=e.get(r);return"string"==typeof n?n:""}function h({request:e,heldScopes:n,owners:i,working:a,failure:t,onDecide:o}){let[x,f]=(0,s.useState)("bearer"),v=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 ",v]}),(0,r.jsxs)("form",{onSubmit:e=>{e.preventDefault();let r=new FormData(e.currentTarget),n=r.getAll("scope").filter(e=>"string"==typeof e);o({kind:"approve",name:g(r,"name"),ownerShipId:g(r,"ownerShipId"),scopes:n,server:j?{credentialKind:(0,d.C)(g(r,"credentialKind")),token:g(r,"token"),clientId:g(r,"clientId"),clientSecret:g(r,"clientSecret"),issuer:g(r,"issuer"),scope:g(r,"scope-requested"),concurrencyLimit:Number(g(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:v.toLowerCase().replaceAll(/[^a-z0-9]+/g,"-").replaceAll(/^-+|-+$/g,""),required:!0,className:m})]}),(0,r.jsx)(l.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"}),c.map(e=>(0,r.jsx)(b,{scope:e,isLocked:!0},e)),n.filter(e=>!c.includes(e)).map(e=>(0,r.jsx)(b,{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=>{f((0,d.C)(e.target.value))},className:m,children:d.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:m})]}):(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:m})]}),(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:m})]}),(0,r.jsxs)("label",{className:"grid gap-1",children:[(0,r.jsx)("span",{children:"Issuer"}),(0,r.jsx)("input",{type:"url",name:"issuer",className:m})]}),(0,r.jsxs)("label",{className:"grid gap-1",children:[(0,r.jsx)("span",{children:"Scope"}),(0,r.jsx)("input",{name:"scope-requested",className:m})]})]}),(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:m})]})]}):null,void 0===t?null:(0,r.jsx)(p.f,{message:t,isFailure:!0}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(u.f,{type:"submit",variant:"primary","data-testid":"bridge-approve",isPending:"approve"===a,pendingLabel:"Approving...",disabled:void 0!==a,children:"Approve"}),(0,r.jsx)(u.f,{type:"button","data-testid":"bridge-deny",isPending:"deny"===a,pendingLabel:"Denying...",disabled:void 0!==a,onClick:()=>{o({kind:"deny"})},children:"Deny"})]})]})]})}e.s(["DecisionPanel",0,function({fleetId:e,request:i,heldScopes:d,owners:l}){let c=(0,n.useRouter)(),[o,u]=(0,s.useState)(),[p,m]=(0,s.useState)(),[,b]=(0,s.useTransition)();return(0,r.jsx)(h,{request:i,heldScopes:d,owners:l,working:o,failure:p,onDecide:r=>{u(r.kind),m(void 0),b(async()=>{let n=await a({fleet:e,requestId:i.requestId,input:r});n.isOk?c.push(`${t.T}?${new URLSearchParams({fleet:e,decided:r.kind}).toString()}`):(u(void 0),m(n.message))})}})}],95893)},10629,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(`/bridge/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(`/bridge/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}],10629)},55070,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})}])},63132,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":"bridge-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":"bridge-success",className:"rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-tone-ok-fg",children:e})}])},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})]})}])}])})();
@@ -1 +0,0 @@
1
- (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,10629,e=>{var r=e.i(71645),i=e.i(18566);e.s(["LiveRefresh",0,function({fleetId:e}){let a;return a=(0,i.useRouter)(),(0,r.useEffect)(()=>{let r=new EventSource(`/bridge/changes?fleet=${encodeURIComponent(e)}`);return r.onmessage=()=>{a.refresh()},()=>{r.close()}},[e,a]),(0,r.useEffect)(()=>{let r,i=()=>{let i="visible"===document.visibilityState&&document.hasFocus();i&&void 0===r?r=new EventSource(`/bridge/focus?fleet=${encodeURIComponent(e)}`):i||void 0===r||(r.close(),r=void 0)};return i(),window.addEventListener("focus",i),window.addEventListener("blur",i),document.addEventListener("visibilitychange",i),()=>{window.removeEventListener("focus",i),window.removeEventListener("blur",i),document.removeEventListener("visibilitychange",i),r?.close()}},[e]),null}],10629)},85678,e=>{var r=e.i(43476),i=e.i(71645),a=e.i(95187);let t=(0,a.createServerReference)("40720a2e7f7a70673a75e3a4c0d8b553caf05d2f9f",a.callServer,void 0,a.findSourceMapURL,"turnRoute"),s=["slack","chat","web-push","email"],n={decide:{name:"Decide",holds:"Questions from your ships",item:"question",items:"questions"},do:{name:"Do what only you can",holds:"Steps: sign in, create, approve",item:"step",items:"steps"},"stay-aware":{name:"Stay aware",holds:"Alerts and notices",item:"alert or notice",items:"alerts and notices"},"everything-else":{name:"Everything else",holds:"Replies and other messages",item:"message",items:"messages"}},o={slack:"Slack",chat:"A chat","web-push":"Web push",email:"Email"},d="Bridge keeps every item.";var l=e.i(63132);e.s(["RoutingPanel",0,function({fleetId:e,routing:a,isSlackLinked:c}){let[u,b]=(0,i.useTransition)(),[m,h]=(0,i.useState)(),[g,f]=(0,i.useState)();return(0,r.jsxs)("section",{className:"grid gap-2","aria-labelledby":"bridge-routing-heading",children:[(0,r.jsx)("h2",{id:"bridge-routing-heading",className:"text-section font-semibold",children:"Per job"}),(0,r.jsx)("div",{className:"overflow-x-auto rounded-md border border-border bg-card",children:(0,r.jsxs)("table",{className:"w-full text-left",children:[(0,r.jsx)("thead",{children:(0,r.jsxs)("tr",{className:"border-b border-border text-caption text-muted-foreground",children:[(0,r.jsx)("th",{scope:"col",className:"p-3 font-medium",children:"Job"}),(0,r.jsx)("th",{scope:"col",className:"p-3 font-medium",children:"Bridge"}),s.map(e=>(0,r.jsx)("th",{scope:"col",className:"p-3 font-medium",children:o[e]},e))]})}),(0,r.jsx)("tbody",{children:a.jobs.map(({job:i,places:l})=>(0,r.jsxs)("tr",{"data-testid":"bridge-routing-job",className:"border-b border-border last:border-b-0",children:[(0,r.jsx)("th",{scope:"row",className:"p-3 font-normal",children:(0,r.jsxs)("span",{className:"flex flex-col",children:[(0,r.jsx)("span",{children:n[i].name}),(0,r.jsx)("span",{className:"text-caption text-muted-foreground",children:n[i].holds})]})}),(0,r.jsx)("td",{className:"p-3 text-caption text-muted-foreground",children:"Always"}),s.map(s=>{let g=l[s],p=`${i}-${s}`;return(0,r.jsx)("td",{className:"p-3",children:(0,r.jsx)("button",{type:"button","data-testid":`bridge-routing-${p}`,"aria-pressed":g,"aria-label":`${o[s]} for ${n[i].name}`,"aria-busy":u&&m===p,disabled:u||!g&&(!a.offered[s]||"slack"===s&&!c),onClick:()=>{var r;r={job:i,place:s,isOn:!g},f(void 0),h(`${r.job}-${r.place}`),b(async()=>{let i=await t({fleet:e,...r});f(i.isOk?{message:function({job:e,place:r,isOn:i}){let{name:a,item:t,items:s}=n[e],l=`${o[r]} is ${i?"on":"off"} for ${a}`;return i?"chat"===r?`${l}: it lists every ${t} not done when you ask it.`:`${l}: it shows ${s} that arrive from now on. Those already waiting stay in Bridge.`:"everything-else"===e&&"slack"===r?`${l}: only a bot ship's messages and replies to Slack show there. ${d}`:`${l}. ${d}`}(r),isFailure:!1}:{message:i.message,isFailure:!0})})},className:`inline-flex h-7 min-w-12 items-center justify-center rounded-full px-3 text-caption disabled:cursor-not-allowed disabled:opacity-50 ${g?"bg-primary text-primary-foreground":"border border-border bg-card text-muted-foreground hover:bg-accent"}`,children:g?"On":"Off"})},s)})]},i))})]})}),void 0===g?null:(0,r.jsx)(l.f,{message:g.message,isFailure:g.isFailure}),(0,r.jsx)("p",{className:"text-caption text-muted-foreground",children:"While a Bridge page is open in focus, web push and email do not wake you. Slack still posts: you turned it on, and Bridge keeps every item."})]})}],85678)},61641,e=>{var r=e.i(43476),i=e.i(71645),a=e.i(95187);let t=(0,a.createServerReference)("40bc48a9fabe75ea0125a8969f993153e9f0a9f644",a.callServer,void 0,a.findSourceMapURL,"unlinkSlack");var s=e.i(55070),n=e.i(63132);e.s(["SlackLinkPanel",0,function({fleetId:e,slackLink:a}){let[o,d]=(0,i.useTransition)(),[l,c]=(0,i.useState)(),{workspaceName:u,link:b}=a;return(0,r.jsxs)("section",{className:"grid gap-2","aria-labelledby":"bridge-slack-heading",children:[(0,r.jsx)("h2",{id:"bridge-slack-heading",className:"text-section font-semibold",children:"Slack"}),(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-3 rounded-md border border-border bg-card p-3",children:[(0,r.jsx)("span",{"data-testid":"bridge-slack-state",className:"min-w-0 flex-1",children:null===b?`Not linked in ${u}`:`Slack linked as @${b.slackName} in ${u}`}),null===b?(0,r.jsx)("a",{href:`/slack/link?${new URLSearchParams({fleet:e}).toString()}`,"data-testid":"bridge-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,r.jsx)(s.f,{"data-testid":"bridge-slack-unlink",isPending:o,pendingLabel:"Unlinking...",onClick:()=>{c(void 0),d(async()=>{let r=await t(e);r.isOk||c(r.message)})},children:"Unlink"})]}),void 0===l?null:(0,r.jsx)(n.f,{message:l,isFailure:!0})]})}],61641)},32036,e=>{var r=e.i(43476),i=e.i(71645),a=e.i(95187);let t=(0,a.createServerReference)("60eaa9c806d6593a0208abff2bc4d470472e235af0",a.callServer,void 0,a.findSourceMapURL,"turnOffWebPush"),s=(0,a.createServerReference)("60c97fa100defe2ce2abac96196c23f10c622fd02d",a.callServer,void 0,a.findSourceMapURL,"turnOnWebPush"),n=[[/Edg\//,"Edge"],[/Firefox\//,"Firefox"],[/Chrome\//,"Chrome"],[/Safari\//,"Safari"]],o=[[/iPhone|iPad/,"iOS"],[/Android/,"Android"],[/Mac OS X/,"macOS"],[/Windows/,"Windows"],[/Linux/,"Linux"]],d=(e,r)=>r.find(([r])=>r.test(e))?.[1];var l=e.i(55070),c=e.i(63132);let u="/wake-worker.js";async function b(){let e=await navigator.serviceWorker.getRegistration(u);return await e?.pushManager.getSubscription()??null}async function m(e){let r;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 i=await navigator.serviceWorker.register(u);return await navigator.serviceWorker.ready,{isOk:!0,value:await i.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:(r=atob(e.replaceAll("-","+").replaceAll("_","/")),Uint8Array.from(r,e=>e.charCodeAt(0)))})}}e.s(["WebPushPanel",0,function({fleetId:e,webPushKey:a,browsers:u}){let[h,g]=(0,i.useState)(!0),[f,p]=(0,i.useState)(),[v,x]=(0,i.useState)(),[w,y]=(0,i.useState)(),[,k]=(0,i.useTransition)();(0,i.useEffect)(()=>{"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window?b().then(e=>{p(e?.endpoint)}):g(!1)},[]);let j=void 0!==f&&u.some(({endpoint:e,isGone:r})=>e===f&&!r);return(0,r.jsxs)("div",{className:"grid gap-2","data-testid":"bridge-wake-web-push",children:[u.map(({endpoint:i,browser:a,addedAt:s,isGone:n})=>(0,r.jsxs)("div",{className:"flex items-center gap-3 rounded-md border border-border bg-card p-3",children:[(0,r.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col",children:[(0,r.jsxs)("span",{className:"truncate",children:["Web push in ",a,i===f?" · this browser":""]}),(0,r.jsx)("span",{className:"text-caption text-muted-foreground",children:n?"No longer takes wakes: its push service ended them. Turn web push on again in that browser, or remove it.":`On since ${new Date(s).toLocaleDateString()}: it tells you when something waits in this fleet, with a link here. Never what waits.`})]}),(0,r.jsx)(l.f,{"data-testid":"bridge-web-push-remove",isPending:v===i,pendingLabel:"Removing...",disabled:void 0!==v,onClick:()=>{x(i),y(void 0),k(async()=>{i===f&&(await (await b())?.unsubscribe(),p(void 0));let r=await t(e,i);x(void 0),r.isOk||y(r.message)})},children:"Remove"})]},i)),h?j?null:(0,r.jsx)("div",{children:(0,r.jsx)(l.f,{"data-testid":"bridge-web-push-on",variant:"primary",isPending:"on"===v,pendingLabel:"Turning on...",disabled:void 0!==v,onClick:()=>{x("on"),y(void 0),k(async()=>{try{var r;let i,t,l=await m(a);if(!l.isOk)return void y(l.message);let c=function(e,r){let{endpoint:i,keys:a}=e,t=a?.p256dh,s=a?.auth;return void 0===i||void 0===t||void 0===s?void 0:{endpoint:i,keys:{p256dh:t,auth:s},browser:r}}(l.value.toJSON(),(r=navigator.userAgent,i=d(r,n),t=d(r,o),void 0===i?"A browser":void 0===t?i:`${i} on ${t}`));if(void 0===c)return void y("Your browser gave no push subscription: try again");let u=await s(e,c);u.isOk?p(c.endpoint):y(u.message)}catch{y("Your browser could not turn web push on: try again")}finally{x(void 0)}})},children:"Turn on web push in this browser"})}):(0,r.jsx)("p",{className:"text-caption text-muted-foreground",children:"This browser takes no web push."}),void 0===w?null:(0,r.jsx)(c.f,{message:w,isFailure:!0})]})}],32036)},55070,e=>{var r=e.i(43476);let i={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:t="secondary",children:s,className:n="",disabled:o,...d}){return(0,r.jsx)("button",{...d,disabled:!0===o||e,"aria-busy":e,className:`inline-flex h-9 items-center gap-2 rounded-md px-4 disabled:cursor-not-allowed disabled:opacity-70 ${i[t]} ${n}`,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]}):s})}])},63132,e=>{var r=e.i(43476);e.s(["f",0,function({message:e,isFailure:i}){return i?(0,r.jsx)("p",{role:"alert","data-testid":"bridge-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":"bridge-success",className:"rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-tone-ok-fg",children:e})}])}])})();