@aeolus-fleet/gateway 0.38.0 → 0.38.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 (437) hide show
  1. package/README.md +1 -1
  2. package/dist/adapters/trpc/router.d.ts +10 -0
  3. package/dist/adapters/trpc/router.js +2 -0
  4. package/dist/adapters/trpc/router.js.map +1 -1
  5. package/dist/app.js +2 -0
  6. package/dist/app.js.map +1 -1
  7. package/dist/core/people/read-item.d.ts +31 -0
  8. package/dist/core/people/read-item.js +77 -0
  9. package/dist/core/people/read-item.js.map +1 -0
  10. package/package.json +7 -1
  11. package/web/.next/BUILD_ID +1 -1
  12. package/web/.next/build-manifest.json +3 -3
  13. package/web/.next/diagnostics/route-bundle-stats.json +65 -65
  14. package/web/.next/fallback-build-manifest.json +3 -3
  15. package/web/.next/prerender-manifest.json +3 -3
  16. package/web/.next/server/app/(bridge)/bridge/basket/page/server-reference-manifest.json +10 -10
  17. package/web/.next/server/app/(bridge)/bridge/basket/page.js +5 -4
  18. package/web/.next/server/app/(bridge)/bridge/basket/page.js.nft.json +1 -1
  19. package/web/.next/server/app/(bridge)/bridge/basket/page_client-reference-manifest.js +1 -1
  20. package/web/.next/server/app/(bridge)/bridge/done/page/server-reference-manifest.json +4 -4
  21. package/web/.next/server/app/(bridge)/bridge/done/page.js +6 -5
  22. package/web/.next/server/app/(bridge)/bridge/done/page.js.nft.json +1 -1
  23. package/web/.next/server/app/(bridge)/bridge/done/page_client-reference-manifest.js +1 -1
  24. package/web/.next/server/app/(bridge)/bridge/fleet/page/server-reference-manifest.json +3 -3
  25. package/web/.next/server/app/(bridge)/bridge/fleet/page.js +5 -4
  26. package/web/.next/server/app/(bridge)/bridge/fleet/page.js.nft.json +1 -1
  27. package/web/.next/server/app/(bridge)/bridge/fleet/page_client-reference-manifest.js +1 -1
  28. package/web/.next/server/app/(bridge)/bridge/messages/page/server-reference-manifest.json +11 -11
  29. package/web/.next/server/app/(bridge)/bridge/messages/page.js +5 -4
  30. package/web/.next/server/app/(bridge)/bridge/messages/page.js.nft.json +1 -1
  31. package/web/.next/server/app/(bridge)/bridge/messages/page_client-reference-manifest.js +1 -1
  32. package/web/.next/server/app/(bridge)/bridge/page/server-reference-manifest.json +10 -10
  33. package/web/.next/server/app/(bridge)/bridge/page.js +5 -4
  34. package/web/.next/server/app/(bridge)/bridge/page.js.nft.json +1 -1
  35. package/web/.next/server/app/(bridge)/bridge/page_client-reference-manifest.js +1 -1
  36. package/web/.next/server/app/(bridge)/bridge/settings/page/server-reference-manifest.json +3 -3
  37. package/web/.next/server/app/(bridge)/bridge/settings/page.js +5 -4
  38. package/web/.next/server/app/(bridge)/bridge/settings/page.js.nft.json +1 -1
  39. package/web/.next/server/app/(bridge)/bridge/settings/page_client-reference-manifest.js +1 -1
  40. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page/server-reference-manifest.json +4 -4
  41. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page.js +5 -4
  42. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page.js.nft.json +1 -1
  43. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page_client-reference-manifest.js +1 -1
  44. package/web/.next/server/app/(bridge)/bridge/settings/routing/page/server-reference-manifest.json +7 -7
  45. package/web/.next/server/app/(bridge)/bridge/settings/routing/page.js +5 -4
  46. package/web/.next/server/app/(bridge)/bridge/settings/routing/page.js.nft.json +1 -1
  47. package/web/.next/server/app/(bridge)/bridge/settings/routing/page_client-reference-manifest.js +1 -1
  48. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/server-reference-manifest.json +10 -10
  49. package/web/.next/server/app/(bridge)/bridge/stay-aware/page.js +5 -4
  50. package/web/.next/server/app/(bridge)/bridge/stay-aware/page.js.nft.json +1 -1
  51. package/web/.next/server/app/(bridge)/bridge/stay-aware/page_client-reference-manifest.js +1 -1
  52. package/web/.next/server/app/(bridge)/outside-parties/[name]/change/page/server-reference-manifest.json +17 -17
  53. package/web/.next/server/app/(bridge)/outside-parties/[name]/change/page.js +5 -4
  54. package/web/.next/server/app/(bridge)/outside-parties/[name]/change/page.js.nft.json +1 -1
  55. package/web/.next/server/app/(bridge)/outside-parties/[name]/change/page_client-reference-manifest.js +1 -1
  56. package/web/.next/server/app/(bridge)/outside-parties/[name]/page/server-reference-manifest.json +10 -10
  57. package/web/.next/server/app/(bridge)/outside-parties/[name]/page.js +5 -4
  58. package/web/.next/server/app/(bridge)/outside-parties/[name]/page.js.nft.json +1 -1
  59. package/web/.next/server/app/(bridge)/outside-parties/[name]/page_client-reference-manifest.js +1 -1
  60. package/web/.next/server/app/(bridge)/outside-parties/[name]/retire/page/server-reference-manifest.json +17 -17
  61. package/web/.next/server/app/(bridge)/outside-parties/[name]/retire/page.js +5 -4
  62. package/web/.next/server/app/(bridge)/outside-parties/[name]/retire/page.js.nft.json +1 -1
  63. package/web/.next/server/app/(bridge)/outside-parties/[name]/retire/page_client-reference-manifest.js +1 -1
  64. package/web/.next/server/app/(bridge)/outside-parties/add/page/server-reference-manifest.json +12 -12
  65. package/web/.next/server/app/(bridge)/outside-parties/add/page.js +5 -4
  66. package/web/.next/server/app/(bridge)/outside-parties/add/page.js.nft.json +1 -1
  67. package/web/.next/server/app/(bridge)/outside-parties/add/page_client-reference-manifest.js +1 -1
  68. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-agent/page/server-reference-manifest.json +4 -4
  69. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-agent/page.js +5 -4
  70. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-agent/page.js.nft.json +1 -1
  71. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-agent/page_client-reference-manifest.js +1 -1
  72. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-client/page/server-reference-manifest.json +4 -4
  73. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-client/page.js +5 -4
  74. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-client/page.js.nft.json +1 -1
  75. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-client/page_client-reference-manifest.js +1 -1
  76. package/web/.next/server/app/(bridge)/outside-parties/page/server-reference-manifest.json +4 -4
  77. package/web/.next/server/app/(bridge)/outside-parties/page.js +5 -4
  78. package/web/.next/server/app/(bridge)/outside-parties/page.js.nft.json +1 -1
  79. package/web/.next/server/app/(bridge)/outside-parties/page_client-reference-manifest.js +1 -1
  80. package/web/.next/server/app/(console)/gateway-off/page/server-reference-manifest.json +1 -1
  81. package/web/.next/server/app/(console)/gateway-off/page.js +1 -1
  82. package/web/.next/server/app/(console)/gateway-off/page.js.nft.json +1 -1
  83. package/web/.next/server/app/(console)/gateway-off/page_client-reference-manifest.js +1 -1
  84. package/web/.next/server/app/(console)/meetings/[meetingId]/page/server-reference-manifest.json +3 -3
  85. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js +1 -1
  86. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js.nft.json +1 -1
  87. package/web/.next/server/app/(console)/meetings/[meetingId]/page_client-reference-manifest.js +1 -1
  88. package/web/.next/server/app/(console)/parties/page/server-reference-manifest.json +9 -9
  89. package/web/.next/server/app/(console)/parties/page.js +1 -1
  90. package/web/.next/server/app/(console)/parties/page.js.nft.json +1 -1
  91. package/web/.next/server/app/(console)/parties/page_client-reference-manifest.js +1 -1
  92. package/web/.next/server/app/(console)/sign-in/failed/page/server-reference-manifest.json +1 -1
  93. package/web/.next/server/app/(console)/sign-in/failed/page.js +1 -1
  94. package/web/.next/server/app/(console)/sign-in/failed/page.js.nft.json +1 -1
  95. package/web/.next/server/app/(console)/sign-in/failed/page_client-reference-manifest.js +1 -1
  96. package/web/.next/server/app/(console)/slack/disconnect/page/server-reference-manifest.json +11 -11
  97. package/web/.next/server/app/(console)/slack/disconnect/page.js +1 -1
  98. package/web/.next/server/app/(console)/slack/disconnect/page.js.nft.json +1 -1
  99. package/web/.next/server/app/(console)/slack/disconnect/page_client-reference-manifest.js +1 -1
  100. package/web/.next/server/app/(console)/slack/expose/page/server-reference-manifest.json +11 -11
  101. package/web/.next/server/app/(console)/slack/expose/page.js +3 -3
  102. package/web/.next/server/app/(console)/slack/expose/page.js.nft.json +1 -1
  103. package/web/.next/server/app/(console)/slack/expose/page_client-reference-manifest.js +1 -1
  104. package/web/.next/server/app/(console)/slack/page/server-reference-manifest.json +11 -11
  105. package/web/.next/server/app/(console)/slack/page.js +1 -1
  106. package/web/.next/server/app/(console)/slack/page.js.nft.json +1 -1
  107. package/web/.next/server/app/(console)/slack/page_client-reference-manifest.js +1 -1
  108. package/web/.next/server/app/(console)/slack/remove/page/server-reference-manifest.json +11 -11
  109. package/web/.next/server/app/(console)/slack/remove/page.js +1 -1
  110. package/web/.next/server/app/(console)/slack/remove/page.js.nft.json +1 -1
  111. package/web/.next/server/app/(console)/slack/remove/page_client-reference-manifest.js +1 -1
  112. package/web/.next/server/app/_global-error.html +1 -1
  113. package/web/.next/server/app/_global-error.rsc +1 -1
  114. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  115. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  116. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  117. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  118. package/web/.next/server/app/_not-found/page.js +1 -1
  119. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  120. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  121. package/web/.next/server/app/apple-icon.png/route.js.nft.json +1 -1
  122. package/web/.next/server/app/apple-icon.png.body +0 -0
  123. package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +1 -1
  124. package/web/.next/server/app/authorize/failed/page.js +1 -1
  125. package/web/.next/server/app/authorize/failed/page.js.nft.json +1 -1
  126. package/web/.next/server/app/authorize/failed/page_client-reference-manifest.js +1 -1
  127. package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +1 -1
  128. package/web/.next/server/app/authorize/pick/page.js +1 -1
  129. package/web/.next/server/app/authorize/pick/page.js.nft.json +1 -1
  130. package/web/.next/server/app/authorize/pick/page_client-reference-manifest.js +1 -1
  131. package/web/.next/server/app/authorize/waiting/approval/page/server-reference-manifest.json +1 -1
  132. package/web/.next/server/app/authorize/waiting/approval/page.js +1 -1
  133. package/web/.next/server/app/authorize/waiting/approval/page.js.nft.json +1 -1
  134. package/web/.next/server/app/authorize/waiting/approval/page_client-reference-manifest.js +1 -1
  135. package/web/.next/server/app/icon.svg/route.js.nft.json +1 -1
  136. package/web/.next/server/app/icon.svg.body +1 -19
  137. package/web/.next/server/chunks/_0xw0b7avhvg75._.js +1 -1
  138. package/web/.next/server/chunks/_0xw0b7avhvg75._.js.map +1 -1
  139. package/web/.next/server/chunks/_1w2t6c0hpdsrn._.js +1 -1
  140. package/web/.next/server/chunks/_1w2t6c0hpdsrn._.js.map +1 -1
  141. package/web/.next/server/chunks/ssr/01fr_app_(bridge)_bridge_settings_requests_[requestId]_page_actions_0o8g7_xshtmem.js +1 -1
  142. package/web/.next/server/chunks/ssr/01fr_app_(bridge)_bridge_settings_requests_[requestId]_page_actions_0o8g7_xshtmem.js.map +1 -1
  143. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_messages_page_actions_1tg2-lw0i6g9l.js +1 -1
  144. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_messages_page_actions_1tg2-lw0i6g9l.js.map +1 -1
  145. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_settings_page_actions_0_te6h-2xxp7l.js +1 -1
  146. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_settings_page_actions_0_te6h-2xxp7l.js.map +1 -1
  147. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_stay-aware_page_actions_1u0xo0v3y9c34.js +1 -1
  148. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_stay-aware_page_actions_1u0xo0v3y9c34.js.map +1 -1
  149. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_bridge_settings_routing_page_actions_06_j7s24dy5ee.js +1 -1
  150. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_bridge_settings_routing_page_actions_06_j7s24dy5ee.js.map +1 -1
  151. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_change_page_actions_1is-kjq5bubl4.js +1 -1
  152. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_change_page_actions_1is-kjq5bubl4.js.map +1 -1
  153. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_page_actions_1mctxtlzsa7xi.js +1 -1
  154. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_page_actions_1mctxtlzsa7xi.js.map +1 -1
  155. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_retire_page_actions_0xh6ok1un7s9k.js +1 -1
  156. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_retire_page_actions_0xh6ok1un7s9k.js.map +1 -1
  157. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_add-a2a-agent_page_actions_1w1q5eavo_loo.js +1 -1
  158. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_add-a2a-agent_page_actions_1w1q5eavo_loo.js.map +1 -1
  159. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_add_page_actions_0urcbg_r0lo7j.js +1 -1
  160. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_add_page_actions_0urcbg_r0lo7j.js.map +1 -1
  161. package/web/.next/server/chunks/ssr/[root-of-the-server]__0-h3ug3wdr27n._.js +1 -1
  162. package/web/.next/server/chunks/ssr/[root-of-the-server]__0-h3ug3wdr27n._.js.map +1 -1
  163. package/web/.next/server/chunks/ssr/[root-of-the-server]__03xkymn2kbk1v._.js +1 -1
  164. package/web/.next/server/chunks/ssr/[root-of-the-server]__03xkymn2kbk1v._.js.map +1 -1
  165. package/web/.next/server/chunks/ssr/[root-of-the-server]__048-rfvdrnoze._.js +1 -1
  166. package/web/.next/server/chunks/ssr/[root-of-the-server]__048-rfvdrnoze._.js.map +1 -1
  167. package/web/.next/server/chunks/ssr/[root-of-the-server]__04g-10_lwy-l2._.js +1 -1
  168. package/web/.next/server/chunks/ssr/[root-of-the-server]__06nuuvz8l91mm._.js +10 -0
  169. package/web/.next/server/chunks/ssr/[root-of-the-server]__06nuuvz8l91mm._.js.map +1 -0
  170. package/web/.next/server/chunks/ssr/[root-of-the-server]__07ba2bfe20c_p._.js +1 -1
  171. package/web/.next/server/chunks/ssr/[root-of-the-server]__07ba2bfe20c_p._.js.map +1 -1
  172. package/web/.next/server/chunks/ssr/[root-of-the-server]__0f732g7ojc5-a._.js +1 -1
  173. package/web/.next/server/chunks/ssr/[root-of-the-server]__0f732g7ojc5-a._.js.map +1 -1
  174. package/web/.next/server/chunks/ssr/[root-of-the-server]__0fujyqtfujrz5._.js +1 -1
  175. package/web/.next/server/chunks/ssr/[root-of-the-server]__0fujyqtfujrz5._.js.map +1 -1
  176. package/web/.next/server/chunks/ssr/[root-of-the-server]__0gy9anoap9qnn._.js +1 -1
  177. package/web/.next/server/chunks/ssr/[root-of-the-server]__0gy9anoap9qnn._.js.map +1 -1
  178. package/web/.next/server/chunks/ssr/[root-of-the-server]__0i_m5r9lyffk8._.js +1 -1
  179. package/web/.next/server/chunks/ssr/[root-of-the-server]__0i_m5r9lyffk8._.js.map +1 -1
  180. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ibcjk97mwv4x._.js +1 -1
  181. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ibcjk97mwv4x._.js.map +1 -1
  182. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k-5_al3xk509._.js +1 -1
  183. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k-5_al3xk509._.js.map +1 -1
  184. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k6a9o0872_0x._.js +1 -1
  185. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k6a9o0872_0x._.js.map +1 -1
  186. package/web/.next/server/chunks/ssr/[root-of-the-server]__0khxo9vhpo7sr._.js +1 -1
  187. package/web/.next/server/chunks/ssr/[root-of-the-server]__0khxo9vhpo7sr._.js.map +1 -1
  188. package/web/.next/server/chunks/ssr/[root-of-the-server]__0lz_zcfd17a39._.js +1 -1
  189. package/web/.next/server/chunks/ssr/[root-of-the-server]__0lz_zcfd17a39._.js.map +1 -1
  190. package/web/.next/server/chunks/ssr/[root-of-the-server]__0n-egt7194u1g._.js +1 -1
  191. package/web/.next/server/chunks/ssr/[root-of-the-server]__0n-egt7194u1g._.js.map +1 -1
  192. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ovcg5tg3nh49._.js +1 -1
  193. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ovcg5tg3nh49._.js.map +1 -1
  194. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ro-majrw7piv._.js +1 -1
  195. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ro-majrw7piv._.js.map +1 -1
  196. package/web/.next/server/chunks/ssr/[root-of-the-server]__0zz6fx0keti4r._.js +1 -1
  197. package/web/.next/server/chunks/ssr/[root-of-the-server]__0zz6fx0keti4r._.js.map +1 -1
  198. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js +1 -1
  199. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js.map +1 -1
  200. package/web/.next/server/chunks/ssr/[root-of-the-server]__19p4g16n2nh0b._.js +1 -1
  201. package/web/.next/server/chunks/ssr/[root-of-the-server]__19p4g16n2nh0b._.js.map +1 -1
  202. package/web/.next/server/chunks/ssr/[root-of-the-server]__1a-kyppd8dwmc._.js +1 -1
  203. package/web/.next/server/chunks/ssr/[root-of-the-server]__1a-kyppd8dwmc._.js.map +1 -1
  204. package/web/.next/server/chunks/ssr/[root-of-the-server]__1iqxg48po42ig._.js +1 -1
  205. package/web/.next/server/chunks/ssr/[root-of-the-server]__1iqxg48po42ig._.js.map +1 -1
  206. package/web/.next/server/chunks/ssr/[root-of-the-server]__1k8mb42yj44l0._.js +1 -1
  207. package/web/.next/server/chunks/ssr/[root-of-the-server]__1k8mb42yj44l0._.js.map +1 -1
  208. package/web/.next/server/chunks/ssr/[root-of-the-server]__1kynqd8xcwg2b._.js +1 -1
  209. package/web/.next/server/chunks/ssr/[root-of-the-server]__1kynqd8xcwg2b._.js.map +1 -1
  210. package/web/.next/server/chunks/ssr/[root-of-the-server]__1l_ua7k9ape55._.js +1 -1
  211. package/web/.next/server/chunks/ssr/[root-of-the-server]__1l_ua7k9ape55._.js.map +1 -1
  212. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ncn4wx-1i09m._.js +1 -1
  213. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ncn4wx-1i09m._.js.map +1 -1
  214. package/web/.next/server/chunks/ssr/[root-of-the-server]__1nxy_j9eswr3i._.js +1 -1
  215. package/web/.next/server/chunks/ssr/[root-of-the-server]__1nxy_j9eswr3i._.js.map +1 -1
  216. package/web/.next/server/chunks/ssr/[root-of-the-server]__1r1t1q3fzoqey._.js +1 -1
  217. package/web/.next/server/chunks/ssr/[root-of-the-server]__1r1t1q3fzoqey._.js.map +1 -1
  218. package/web/.next/server/chunks/ssr/[root-of-the-server]__1vrtfw4dxnfxt._.js +1 -1
  219. package/web/.next/server/chunks/ssr/[root-of-the-server]__1xmvo3lr1_qyo._.js +1 -1
  220. package/web/.next/server/chunks/ssr/[root-of-the-server]__1xmvo3lr1_qyo._.js.map +1 -1
  221. package/web/.next/server/chunks/ssr/{_0no4kkaie8a0y._.js → _0-785idcov4j4._.js} +2 -2
  222. package/web/.next/server/chunks/ssr/{_0no4kkaie8a0y._.js.map → _0-785idcov4j4._.js.map} +1 -1
  223. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +1 -1
  224. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -1
  225. package/web/.next/server/chunks/ssr/_0_nfv33ug5g31._.js +1 -1
  226. package/web/.next/server/chunks/ssr/_0_nfv33ug5g31._.js.map +1 -1
  227. package/web/.next/server/chunks/ssr/_0fqd23gyia_8g._.js +1 -1
  228. package/web/.next/server/chunks/ssr/_0fqd23gyia_8g._.js.map +1 -1
  229. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js +1 -1
  230. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js.map +1 -1
  231. package/web/.next/server/chunks/ssr/{_0u-5l6op7xjh0._.js → _0nh9w3mh82f53._.js} +2 -2
  232. package/web/.next/server/chunks/ssr/{_0u-5l6op7xjh0._.js.map → _0nh9w3mh82f53._.js.map} +1 -1
  233. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js +1 -1
  234. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js.map +1 -1
  235. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +1 -1
  236. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -1
  237. package/web/.next/server/chunks/ssr/{_0dnp_nxhcy1tk._.js → _17pnprd-0lxai._.js} +2 -2
  238. package/web/.next/server/chunks/ssr/{_14unkhmeoxqym._.js.map → _17pnprd-0lxai._.js.map} +1 -1
  239. package/web/.next/server/chunks/ssr/_1cs_0d0h7mhw0._.js +1 -1
  240. package/web/.next/server/chunks/ssr/_1cs_0d0h7mhw0._.js.map +1 -1
  241. package/web/.next/server/chunks/ssr/_1cxulh-x54r6v._.js +3 -0
  242. package/web/.next/server/chunks/ssr/{_1h28qsfbdt-ph._.js.map → _1cxulh-x54r6v._.js.map} +1 -1
  243. package/web/.next/server/chunks/ssr/_1j80let80btdj._.js +3 -0
  244. package/web/.next/server/chunks/ssr/{_1o4xyxozurta7._.js.map → _1j80let80btdj._.js.map} +1 -1
  245. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js +1 -1
  246. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js.map +1 -1
  247. package/web/.next/server/chunks/ssr/{_14unkhmeoxqym._.js → _1q5o7l5d6r_f5._.js} +2 -2
  248. package/web/.next/server/chunks/ssr/{_0dnp_nxhcy1tk._.js.map → _1q5o7l5d6r_f5._.js.map} +1 -1
  249. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js +1 -1
  250. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js.map +1 -1
  251. package/web/.next/server/chunks/ssr/_1unzgziqo0j03._.js +57 -0
  252. package/web/.next/server/chunks/ssr/_1unzgziqo0j03._.js.map +1 -0
  253. package/web/.next/server/chunks/ssr/_1yy6lx5ur8mbz._.js +57 -0
  254. package/web/.next/server/chunks/ssr/_1yy6lx5ur8mbz._.js.map +1 -0
  255. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_01dhlues8c7ml.js +3 -0
  256. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_01dhlues8c7ml.js.map +1 -0
  257. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_07y8ae2h21f9p.js +3 -0
  258. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_07y8ae2h21f9p.js.map +1 -0
  259. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08d89iicdayuk.js +3 -0
  260. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08d89iicdayuk.js.map +1 -0
  261. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08sinhjbj9agz.js +3 -0
  262. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08sinhjbj9agz.js.map +1 -0
  263. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0b2haj8_y8lu_.js +3 -0
  264. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0b2haj8_y8lu_.js.map +1 -0
  265. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0me2jx2fwv_8c.js +3 -0
  266. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0me2jx2fwv_8c.js.map +1 -0
  267. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0xxc4eq32ewk5.js +3 -0
  268. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0xxc4eq32ewk5.js.map +1 -0
  269. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1klryi6-w9ur5.js +3 -0
  270. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1klryi6-w9ur5.js.map +1 -0
  271. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1lo_i86tv4z-6.js +3 -0
  272. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1lo_i86tv4z-6.js.map +1 -0
  273. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qmlbi4q1-6b7.js +3 -0
  274. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qmlbi4q1-6b7.js.map +1 -0
  275. package/web/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0g15rgn4n-oiz.js → node_modules_next_dist_esm_build_templates_app-page_1rw6ik0j23aki.js} +2 -2
  276. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1rw6ik0j23aki.js.map +1 -0
  277. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1t0a0nkq0woc8.js +3 -0
  278. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1t0a0nkq0woc8.js.map +1 -0
  279. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1unw2j3tp34id.js +3 -0
  280. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1unw2j3tp34id.js.map +1 -0
  281. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1uzkkryl0w9c4.js +3 -0
  282. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1uzkkryl0w9c4.js.map +1 -0
  283. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1wl_71f8j6j_8.js +3 -0
  284. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1wl_71f8j6j_8.js.map +1 -0
  285. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1z7pcoxf6w70s.js +3 -0
  286. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1z7pcoxf6w70s.js.map +1 -0
  287. package/web/.next/server/chunks/ssr/web_00e7-_y92losl._.js +1 -1
  288. package/web/.next/server/chunks/ssr/web_00e7-_y92losl._.js.map +1 -1
  289. package/web/.next/server/chunks/ssr/web_00r-wf_2cxh1v._.js +1 -1
  290. package/web/.next/server/chunks/ssr/web_00r-wf_2cxh1v._.js.map +1 -1
  291. package/web/.next/server/chunks/ssr/web_03d5ej1xq-7uh._.js +3 -0
  292. package/web/.next/server/chunks/ssr/web_03d5ej1xq-7uh._.js.map +1 -0
  293. package/web/.next/server/chunks/ssr/web_09zipglxee7tv._.js +1 -1
  294. package/web/.next/server/chunks/ssr/web_09zipglxee7tv._.js.map +1 -1
  295. package/web/.next/server/chunks/ssr/web_0a9n7acgjrk5c._.js +1 -1
  296. package/web/.next/server/chunks/ssr/web_0a9n7acgjrk5c._.js.map +1 -1
  297. package/web/.next/server/chunks/ssr/web_0cxcy088wnfmw._.js +1 -1
  298. package/web/.next/server/chunks/ssr/web_0cxcy088wnfmw._.js.map +1 -1
  299. package/web/.next/server/chunks/ssr/web_0oz8bypfxh82g._.js +1 -1
  300. package/web/.next/server/chunks/ssr/web_0oz8bypfxh82g._.js.map +1 -1
  301. package/web/.next/server/chunks/ssr/web_0pk41f5m34jvi._.js +1 -1
  302. package/web/.next/server/chunks/ssr/web_0pk41f5m34jvi._.js.map +1 -1
  303. package/web/.next/server/chunks/ssr/web_0v-7sowo0hupw._.js +1 -1
  304. package/web/.next/server/chunks/ssr/web_0v-7sowo0hupw._.js.map +1 -1
  305. package/web/.next/server/chunks/ssr/web_0zxufwo8cd7v3._.js +1 -1
  306. package/web/.next/server/chunks/ssr/web_0zxufwo8cd7v3._.js.map +1 -1
  307. package/web/.next/server/chunks/ssr/web_1rmcjkj1pjylk._.js +1 -1
  308. package/web/.next/server/chunks/ssr/web_1rmcjkj1pjylk._.js.map +1 -1
  309. package/web/.next/server/chunks/ssr/web_1vvrekkq5mirt._.js +1 -1
  310. package/web/.next/server/chunks/ssr/web_1vvrekkq5mirt._.js.map +1 -1
  311. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_basket_page_actions_0g7q_rc5nma1e.js +1 -1
  312. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_basket_page_actions_0g7q_rc5nma1e.js.map +1 -1
  313. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_done_page_actions_0kjm34arntdzv.js +1 -1
  314. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_done_page_actions_0kjm34arntdzv.js.map +1 -1
  315. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_fleet_page_actions_19wmo6phgvqfk.js +1 -1
  316. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_fleet_page_actions_19wmo6phgvqfk.js.map +1 -1
  317. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_page_actions_1ok64rg3edm_u.js +1 -1
  318. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_page_actions_1ok64rg3edm_u.js.map +1 -1
  319. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_settings_page_tsx_1z5yr8ss25q7n._.js +1 -1
  320. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_settings_page_tsx_1z5yr8ss25q7n._.js.map +1 -1
  321. package/web/.next/server/chunks/ssr/web_app_(bridge)_layout_tsx_0io-giu9m2p0z._.js +3 -0
  322. package/web/.next/server/chunks/ssr/web_app_(bridge)_layout_tsx_0io-giu9m2p0z._.js.map +1 -0
  323. package/web/.next/server/chunks/ssr/web_app_(bridge)_outside-parties_[name]_change_page_tsx_15monuoxw-kse._.js +1 -1
  324. package/web/.next/server/chunks/ssr/web_app_(bridge)_outside-parties_[name]_change_page_tsx_15monuoxw-kse._.js.map +1 -1
  325. package/web/.next/server/chunks/ssr/web_app_(bridge)_outside-parties_[name]_retire_page_tsx_0pljqvw60fh7t._.js +1 -1
  326. package/web/.next/server/chunks/ssr/web_app_(bridge)_outside-parties_[name]_retire_page_tsx_0pljqvw60fh7t._.js.map +1 -1
  327. package/web/.next/server/chunks/ssr/web_app_(console)_parties_page_tsx_0pp63ghly3eyp._.js +1 -1
  328. package/web/.next/server/chunks/ssr/web_app_(console)_parties_page_tsx_0pp63ghly3eyp._.js.map +1 -1
  329. package/web/.next/server/chunks/ssr/web_app_(console)_slack_page_tsx_0ts7fo7pqicq6._.js +1 -1
  330. package/web/.next/server/chunks/ssr/web_app_(console)_slack_page_tsx_0ts7fo7pqicq6._.js.map +1 -1
  331. package/web/.next/server/chunks/ssr/web_app_(console)_slack_remove_page_tsx_15q4ril_on0ed._.js +1 -1
  332. package/web/.next/server/chunks/ssr/web_app_(console)_slack_remove_page_tsx_15q4ril_on0ed._.js.map +1 -1
  333. package/web/.next/server/chunks/ssr/{web_features_16hw9h4_xwpao._.js → web_features_1kv2-nwrqcvkb._.js} +2 -2
  334. package/web/.next/server/chunks/ssr/{web_features_16hw9h4_xwpao._.js.map → web_features_1kv2-nwrqcvkb._.js.map} +1 -1
  335. package/web/.next/server/chunks/ssr/{web_features_1hnchp2y9ily-._.js → web_features_1ldqjm-0yawn-._.js} +2 -2
  336. package/web/.next/server/chunks/ssr/{web_features_1hnchp2y9ily-._.js.map → web_features_1ldqjm-0yawn-._.js.map} +1 -1
  337. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js +1 -1
  338. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js.map +1 -1
  339. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js +1 -1
  340. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js.map +1 -1
  341. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js +1 -1
  342. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js.map +1 -1
  343. package/web/.next/server/chunks/ssr/{web_features_bridge_03kikxozygua1._.js → web_features_bridge_1kjza9vdof095._.js} +2 -2
  344. package/web/.next/server/chunks/ssr/{web_features_bridge_03kikxozygua1._.js.map → web_features_bridge_1kjza9vdof095._.js.map} +1 -1
  345. package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js +1 -1
  346. package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js +1 -1
  347. package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js.map +1 -1
  348. package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js +1 -1
  349. package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js.map +1 -1
  350. package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js +1 -1
  351. package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js.map +1 -1
  352. package/web/.next/server/chunks/ssr/web_features_bridge_state_message-rows_tsx_1ky4-xa4az_yu._.js +1 -1
  353. package/web/.next/server/chunks/ssr/web_features_bridge_state_message-rows_tsx_1ky4-xa4az_yu._.js.map +1 -1
  354. package/web/.next/server/chunks/ssr/web_features_bridge_state_messages-panel_tsx_1yvr_ww639d25._.js +1 -1
  355. package/web/.next/server/chunks/ssr/web_features_bridge_state_messages-panel_tsx_1yvr_ww639d25._.js.map +1 -1
  356. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js +1 -1
  357. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js.map +1 -1
  358. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js +1 -1
  359. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js.map +1 -1
  360. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js +1 -1
  361. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js +1 -1
  362. package/web/.next/server/chunks/ssr/web_features_slack_actions_ts_1l3yg9vl20_vu._.js +1 -1
  363. package/web/.next/server/middleware-build-manifest.js +3 -3
  364. package/web/.next/server/pages/500.html +1 -1
  365. package/web/.next/server/preview-props.json +3 -3
  366. package/web/.next/server/server-reference-manifest.js +1 -1
  367. package/web/.next/server/server-reference-manifest.json +53 -53
  368. package/web/.next/static/chunks/{09y_kqg5jr2to.js → 0d9nwi_5jtx1s.js} +1 -1
  369. package/web/.next/static/chunks/{0j8ndrgty645i.js → 0mgpgj4c1qyd-.js} +1 -1
  370. package/web/.next/static/chunks/{1y32oubd_6md2.js → 0r0gremjx2f00.js} +1 -1
  371. package/web/.next/static/chunks/{0qynje165r8pk.js → 0u8l5qlnqqouz.js} +1 -1
  372. package/web/.next/static/chunks/{1n5114efmpzm8.js → 1-fz8siz2ll12.js} +1 -1
  373. package/web/.next/static/chunks/{3_5r6ivx93es-.js → 1gws30z-w_b5u.js} +1 -1
  374. package/web/.next/static/chunks/{31bq1uh9ulaeu.js → 1l7xdbkkzyg84.js} +1 -1
  375. package/web/.next/static/chunks/{0l4t9n_wkfvga.js → 1qk1rg1nlwibf.js} +1 -1
  376. package/web/.next/static/chunks/{0n99u0tboun9p.js → 1y0i5sfbser7m.js} +1 -1
  377. package/web/.next/static/chunks/{1x87y_kcnt2cq.js → 2bwa_vmicucp7.js} +1 -1
  378. package/web/.next/static/chunks/{0tfn6_lm7dz7s.js → 2h_eln166j2qm.js} +1 -1
  379. package/web/.next/static/chunks/{0scfm0b6ozb25.js → 2uyfitze_si6t.js} +1 -1
  380. package/web/.next/static/chunks/{3azyb0n45b1y9.js → 2xewn4wc6-r89.js} +1 -1
  381. package/web/.next/static/chunks/{1qm1btwpwf1ih.js → 2zy50m3u0ncal.js} +1 -1
  382. package/web/.next/static/chunks/{1vuekfthkmjng.js → 363hplgln_a8l.js} +1 -1
  383. package/web/.next/static/chunks/{0_wc_d56c40gm.js → 3_pcw5v326or4.js} +1 -1
  384. package/web/.next/static/chunks/{0ft62462m_rg0.js → 3jmofkmbej71o.js} +1 -1
  385. package/web/.next/static/chunks/{3jczm4mvyshsf.js → 3qx9pxz84tr19.js} +1 -1
  386. package/web/.next/static/chunks/{0g07rkq-36dl0.js → 3vslm1-mw-xs2.js} +1 -1
  387. package/web/.next/static/media/apple-icon.3r3-hvwfcl7n_.png +0 -0
  388. package/web/.next/static/media/icon.1btn_u3uez_sn.svg +1 -0
  389. package/web/.next/trace +1 -1
  390. package/web/.next/trace-build +1 -1
  391. package/web/.next/types/validator.ts +17 -0
  392. package/web/.next/server/chunks/ssr/[root-of-the-server]__0grpi5wnl9ppf._.js +0 -10
  393. package/web/.next/server/chunks/ssr/[root-of-the-server]__0grpi5wnl9ppf._.js.map +0 -1
  394. package/web/.next/server/chunks/ssr/_16v-4haxv-0-o._.js +0 -57
  395. package/web/.next/server/chunks/ssr/_16v-4haxv-0-o._.js.map +0 -1
  396. package/web/.next/server/chunks/ssr/_1h28qsfbdt-ph._.js +0 -3
  397. package/web/.next/server/chunks/ssr/_1o4xyxozurta7._.js +0 -3
  398. package/web/.next/server/chunks/ssr/_1yl6jrimy685b._.js +0 -57
  399. package/web/.next/server/chunks/ssr/_1yl6jrimy685b._.js.map +0 -1
  400. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_02s6inh4usc9k.js +0 -3
  401. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_02s6inh4usc9k.js.map +0 -1
  402. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ad4b2lkk31jj.js +0 -3
  403. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ad4b2lkk31jj.js.map +0 -1
  404. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ergh-a6r7yu_.js +0 -3
  405. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ergh-a6r7yu_.js.map +0 -1
  406. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0g15rgn4n-oiz.js.map +0 -1
  407. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0hzwtyh-646p2.js +0 -3
  408. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0hzwtyh-646p2.js.map +0 -1
  409. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mm8dt8tws1fz.js +0 -3
  410. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mm8dt8tws1fz.js.map +0 -1
  411. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0tcy7phl8a4gj.js +0 -3
  412. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0tcy7phl8a4gj.js.map +0 -1
  413. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0vfjfe4aq6spg.js +0 -3
  414. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0vfjfe4aq6spg.js.map +0 -1
  415. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0yv3l9ohiylc6.js +0 -3
  416. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0yv3l9ohiylc6.js.map +0 -1
  417. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1-wfs2n5p56lo.js +0 -3
  418. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1-wfs2n5p56lo.js.map +0 -1
  419. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_11x159_oszki3.js +0 -3
  420. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_11x159_oszki3.js.map +0 -1
  421. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1c7q9sxgla_vx.js +0 -3
  422. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1c7q9sxgla_vx.js.map +0 -1
  423. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dcjexx9b9waj.js +0 -3
  424. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dcjexx9b9waj.js.map +0 -1
  425. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dltrn6ii5dd6.js +0 -3
  426. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dltrn6ii5dd6.js.map +0 -1
  427. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1hm1iu016c1fy.js +0 -3
  428. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1hm1iu016c1fy.js.map +0 -1
  429. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1zaoeyy4_vir_.js +0 -3
  430. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1zaoeyy4_vir_.js.map +0 -1
  431. package/web/.next/server/chunks/ssr/web_09rcfto3dw4wd._.js +0 -3
  432. package/web/.next/server/chunks/ssr/web_09rcfto3dw4wd._.js.map +0 -1
  433. package/web/.next/static/media/apple-icon.3jccaq3p5-lh-.png +0 -0
  434. package/web/.next/static/media/icon.1o2ogor9e8-fc.svg +0 -19
  435. /package/web/.next/static/{6etIIH3qFw-_kdbaUFERx → EmsE5wPdK7fJYQ7DzIz5z}/_buildManifest.js +0 -0
  436. /package/web/.next/static/{6etIIH3qFw-_kdbaUFERx → EmsE5wPdK7fJYQ7DzIz5z}/_clientMiddlewareManifest.js +0 -0
  437. /package/web/.next/static/{6etIIH3qFw-_kdbaUFERx → EmsE5wPdK7fJYQ7DzIz5z}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[33540,a=>{var b=a.i(64831);let c={name:"search",size:24,node:[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]};c.node;let d=(0,b.f)(c);a.s(["f",0,d],33540)},69789,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0});var d={actionAsyncStorage:function(){return f.actionAsyncStorage},workAsyncStorage:function(){return g.workAsyncStorage},workUnitAsyncStorage:function(){return h.workUnitAsyncStorage}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20635),g=a.r(56704),h=a.r(32319);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},919,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(5050);let e=(0,d.createServerReference)("40ab6bd38f893b947ce7425fb23bd3633b32ea7611",d.callServer,void 0,d.findSourceMapURL,"setTheme"),f=["light","dark","system"];a.s(["f",0,function({email:a,accountUrl:d,theme:g,entries:h=[]}){let[i,j]=(0,c.useState)(g),[k,l]=(0,c.useState)(!1),m=(0,c.useRef)(null);return{account:{name:a,signedInAs:"account",accountUrl:d,theme:i,themes:f,hasTheme:!0,onThemeChange:a=>{let b;j(a),document.documentElement.dataset.theme=a,b="dark"===a||"system"===a&&window.matchMedia("(prefers-color-scheme: dark)").matches,document.documentElement.classList.toggle("dark",b),e(a)},shortcuts:[],helpUrl:"https://github.com/ThomasHendrickx/aeolus-fleet",onSignOut:()=>{l(!0),m.current?.requestSubmit()},isSigningOut:k,entries:h},signOutForm:(0,b.jsx)("form",{ref:m,method:"post",action:"/sign-in/end",hidden:!0})}}],919)},25959,a=>{let b="fleet";a.s(["n",0,b,"i",0,function(a,c){let[d="",e=""]=a.split("?"),f=new URLSearchParams(e);return f.set(b,c),`${d}?${f.toString()}`}])}]})();
1
+ (()=>{"use strict";module.exports=[33540,a=>{var b=a.i(64831);let c={name:"search",size:24,node:[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]};c.node;let d=(0,b.f)(c);a.s(["f",0,d],33540)},69789,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0});var d={actionAsyncStorage:function(){return f.actionAsyncStorage},workAsyncStorage:function(){return g.workAsyncStorage},workUnitAsyncStorage:function(){return h.workUnitAsyncStorage}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20635),g=a.r(56704),h=a.r(32319);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},919,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(5050);let e=(0,d.createServerReference)("406e70c54d0df55ecef3263e68bd02259fd622902e",d.callServer,void 0,d.findSourceMapURL,"setTheme"),f=["light","dark","system"];a.s(["f",0,function({email:a,accountUrl:d,theme:g,entries:h=[]}){let[i,j]=(0,c.useState)(g),[k,l]=(0,c.useState)(!1),m=(0,c.useRef)(null);return{account:{name:a,signedInAs:"account",accountUrl:d,theme:i,themes:f,hasTheme:!0,onThemeChange:a=>{let b;j(a),document.documentElement.dataset.theme=a,b="dark"===a||"system"===a&&window.matchMedia("(prefers-color-scheme: dark)").matches,document.documentElement.classList.toggle("dark",b),e(a)},shortcuts:[],helpUrl:"https://github.com/ThomasHendrickx/aeolus-fleet",onSignOut:()=>{l(!0),m.current?.requestSubmit()},isSigningOut:k,entries:h},signOutForm:(0,b.jsx)("form",{ref:m,method:"post",action:"/sign-in/end",hidden:!0})}}],919)},25959,a=>{let b="fleet";a.s(["n",0,b,"i",0,function(a,c){let[d="",e=""]=a.split("?"),f=new URLSearchParams(e);return f.set(b,c),`${d}?${f.toString()}`}])}]})();
2
2
 
3
3
  //# sourceMappingURL=_1cs_0d0h7mhw0._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../node_modules/lucide-react/src/icons/search.ts","../../../../../node_modules/next/src/client/components/server-async-storage.ts","../../../../../web/features/frame/hooks/use-account-menu.tsx","../../../../../web/features/frame/data%3A3845bc%20%3Ctext/javascript%3E","../../../../../web/features/frame/theme.ts","../../../../../web/lib/gateway-api/page-account.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'search',\n size: 24,\n node: [\n ['path', { d: 'm21 21-4.34-4.34', key: '14j7rj' }],\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgMjEtNC4zNC00LjM0IiAvPgogIDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Search = createLucideIcon(__iconData);\n\nexport default Search;\n","// Client-safe access to the server-only async-storage singletons. On the\n// server these re-export the real storages; in the browser bundle this module\n// is aliased to `./server-async-storage.browser` (see\n// scripts/generate-browser-variant-aliases.mjs), which exports `undefined`\n// stubs so the AsyncLocalStorage modules are never bundled into the client.\n// Consumers must guard usage so the stubs are not dereferenced in the browser.\nexport { actionAsyncStorage } from '../../server/app-render/action-async-storage.external'\nexport { workAsyncStorage } from '../../server/app-render/work-async-storage.external'\nexport { workUnitAsyncStorage } from '../../server/app-render/work-unit-async-storage.external'\n","'use client';\n\nimport type { Theme } from '@aeolus-fleet/common';\nimport type { AvatarMenuEntry, AvatarMenuProps } from '@aeolus-fleet/ui';\nimport { useRef, useState, type ReactNode } from 'react';\n\nimport { setTheme } from '../actions';\nimport { THEMES } from '../theme';\n\n/** Where the avatar menu's Help leads, as in the console. */\nconst HELP_URL = 'https://github.com/ThomasHendrickx/aeolus-fleet';\n\n/** The gateway's server ends the shared sign-in here, in every app at once, for a form sent from its own pages. */\nconst SIGN_OUT_PATH = '/sign-in/end';\n\n/** Applies a theme at once, as the root layout's script does on the next load. */\nfunction applyTheme(theme: Theme): void {\n document.documentElement.dataset.theme = theme;\n const isDark = theme === 'dark' || (theme === 'system' && window.matchMedia('(prefers-color-scheme: dark)').matches);\n document.documentElement.classList.toggle('dark', isDark);\n}\n\nexport interface AccountMenuOf {\n readonly email: string;\n /** Account's address, for the avatar menu's Your account, Your rights and Email updates. */\n readonly accountUrl: string | undefined;\n readonly theme: Theme;\n /** The page's own entries, such as the phone's for what its tab bar lacks. */\n readonly entries?: readonly AvatarMenuEntry[];\n}\n\n/**\n * The avatar menu of the account signed in (header design H8): its theme,\n * applied at once and kept, and sign out, which ends the shared sign-in in\n * every app and says \"Signing out\" until the page leaves. The form that\n * signs out goes on the page beside the menu.\n */\nexport function useAccountMenu({ email, accountUrl, theme, entries = [] }: AccountMenuOf): { account: AvatarMenuProps; signOutForm: ReactNode } {\n const [shownTheme, setShownTheme] = useState(theme);\n const [isSigningOut, setIsSigningOut] = useState(false);\n const form = useRef<HTMLFormElement>(null);\n const account: AvatarMenuProps = {\n name: email,\n signedInAs: 'account',\n accountUrl,\n theme: shownTheme,\n themes: THEMES,\n hasTheme: true,\n onThemeChange: (next) => {\n setShownTheme(next);\n applyTheme(next);\n void setTheme(next);\n },\n shortcuts: [],\n helpUrl: HELP_URL,\n onSignOut: () => {\n setIsSigningOut(true);\n form.current?.requestSubmit();\n },\n isSigningOut,\n entries,\n };\n return { account, signOutForm: <form ref={form} method=\"post\" action={SIGN_OUT_PATH} hidden /> };\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"40ab6bd38f893b947ce7425fb23bd3633b32ea7611\":{\"name\":\"setTheme\"}},\"web/features/frame/actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"40ab6bd38f893b947ce7425fb23bd3633b32ea7611\",callServer,void 0,findSourceMapURL,\"setTheme\");export{$$RSC_SERVER_ACTION_0 as setTheme};","/**\n * The theme this browser chose for the gateway's pages (header design H13:\n * each app keeps its own), System until chosen.\n */\nimport type { Theme } from '@aeolus-fleet/common';\n\n/** The themes, as common names them: written here so the header's browser code loads no schema (decision 0033). */\nexport const THEMES: readonly Theme[] = ['light', 'dark', 'system'];\n\n/** The cookie that keeps it. */\nexport const THEME_COOKIE = 'aeolus_gateway_theme';\n\nexport function isTheme(value: unknown): value is Theme {\n return THEMES.some((theme) => theme === value);\n}\n\n/** The theme a cookie names, or System. */\nexport function themeFrom(value: string | undefined): Theme {\n return isTheme(value) ? value : 'system';\n}\n","/**\n * What a page of the web app does with the API's account.inView (header\n * design H5, H9): show its fleet as the account signed in, or send the\n * browser where it may go: the same page in the fleet the account may open,\n * the app it may open there, or sign-in and back to the page. Where the\n * gateway is off for the account's fleet, the page says so instead.\n */\n\n/** The API's answer to account.inView. */\nexport type InView =\n | { kind: 'signedIn'; fleetId: string; accountId: string; scopes: string[] }\n | { kind: 'goTo'; fleetId: string }\n | { kind: 'off'; fleetName: string; accountUrl: string }\n | { kind: 'elsewhere'; url: string };\n\n/** The API's refusals of account.inView a page answers: signed in to no account, and no shared sign-in at this gateway. */\nexport type InViewRefusal = 'UNAUTHORIZED' | 'NOT_FOUND';\n\nexport type PageAccount =\n | { kind: 'signedIn'; fleetId: string; scopes: readonly string[] }\n | { kind: 'goTo'; location: string }\n | { kind: 'off'; fleetName: string; accountUrl: string }\n | { kind: 'noSignIn' };\n\nconst SIGN_IN_START = '/sign-in/start';\n\n/** The parameter a page names its fleet by. */\nexport const FLEET_PARAMETER = 'fleet';\n\n/** A page of the web app in a fleet: every link keeps the fleet in its address. */\nexport function inFleet(page: string, fleetId: string): string {\n const [path = '', query = ''] = page.split('?');\n const parameters = new URLSearchParams(query);\n parameters.set(FLEET_PARAMETER, fleetId);\n return `${path}?${parameters.toString()}`;\n}\n\n/** Reads the answer for the page asked for, its path and query as the browser sent them. */\nexport function pageAccountOf(read: { inView: InView } | { refusal: InViewRefusal }, page: string): PageAccount {\n if ('refusal' in read) {\n return read.refusal === 'UNAUTHORIZED' ? { kind: 'goTo', location: `${SIGN_IN_START}?${new URLSearchParams({ return_to: page }).toString()}` } : { kind: 'noSignIn' };\n }\n const { inView } = read;\n switch (inView.kind) {\n case 'signedIn':\n return { kind: 'signedIn', fleetId: inView.fleetId, scopes: inView.scopes };\n case 'goTo':\n return { kind: 'goTo', location: inFleet(page, inView.fleetId) };\n case 'off':\n return inView;\n case 'elsewhere':\n return { kind: 'goTo', location: inView.url };\n }\n}\n"],"names":["actionAsyncStorage","workAsyncStorage","workUnitAsyncStorage","$$RSC_SERVER_ACTION_0","SIGN_IN_START","FLEET_PARAMETER","inFleet","page","fleetId","path","query","split","parameters","URLSearchParams","set","toString","pageAccountOf","read","refusal","kind","location","return_to","inView","scopes","url"],"mappings":"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","ignoreList":[0,1]}
1
+ {"version":3,"sources":["../../../../../node_modules/lucide-react/src/icons/search.ts","../../../../../node_modules/next/src/client/components/server-async-storage.ts","../../../../../web/features/frame/hooks/use-account-menu.tsx","../../../../../web/features/frame/data%3A5461ec%20%3Ctext/javascript%3E","../../../../../web/features/frame/theme.ts","../../../../../web/lib/gateway-api/page-account.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'search',\n size: 24,\n node: [\n ['path', { d: 'm21 21-4.34-4.34', key: '14j7rj' }],\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgMjEtNC4zNC00LjM0IiAvPgogIDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Search = createLucideIcon(__iconData);\n\nexport default Search;\n","// Client-safe access to the server-only async-storage singletons. On the\n// server these re-export the real storages; in the browser bundle this module\n// is aliased to `./server-async-storage.browser` (see\n// scripts/generate-browser-variant-aliases.mjs), which exports `undefined`\n// stubs so the AsyncLocalStorage modules are never bundled into the client.\n// Consumers must guard usage so the stubs are not dereferenced in the browser.\nexport { actionAsyncStorage } from '../../server/app-render/action-async-storage.external'\nexport { workAsyncStorage } from '../../server/app-render/work-async-storage.external'\nexport { workUnitAsyncStorage } from '../../server/app-render/work-unit-async-storage.external'\n","'use client';\n\nimport type { Theme } from '@aeolus-fleet/common';\nimport type { AvatarMenuEntry, AvatarMenuProps } from '@aeolus-fleet/ui';\nimport { useRef, useState, type ReactNode } from 'react';\n\nimport { setTheme } from '../actions';\nimport { THEMES } from '../theme';\n\n/** Where the avatar menu's Help leads, as in the console. */\nconst HELP_URL = 'https://github.com/ThomasHendrickx/aeolus-fleet';\n\n/** The gateway's server ends the shared sign-in here, in every app at once, for a form sent from its own pages. */\nconst SIGN_OUT_PATH = '/sign-in/end';\n\n/** Applies a theme at once, as the root layout's script does on the next load. */\nfunction applyTheme(theme: Theme): void {\n document.documentElement.dataset.theme = theme;\n const isDark = theme === 'dark' || (theme === 'system' && window.matchMedia('(prefers-color-scheme: dark)').matches);\n document.documentElement.classList.toggle('dark', isDark);\n}\n\nexport interface AccountMenuOf {\n readonly email: string;\n /** Account's address, for the avatar menu's Your account, Your rights and Email updates. */\n readonly accountUrl: string | undefined;\n readonly theme: Theme;\n /** The page's own entries, such as the phone's for what its tab bar lacks. */\n readonly entries?: readonly AvatarMenuEntry[];\n}\n\n/**\n * The avatar menu of the account signed in (header design H8): its theme,\n * applied at once and kept, and sign out, which ends the shared sign-in in\n * every app and says \"Signing out\" until the page leaves. The form that\n * signs out goes on the page beside the menu.\n */\nexport function useAccountMenu({ email, accountUrl, theme, entries = [] }: AccountMenuOf): { account: AvatarMenuProps; signOutForm: ReactNode } {\n const [shownTheme, setShownTheme] = useState(theme);\n const [isSigningOut, setIsSigningOut] = useState(false);\n const form = useRef<HTMLFormElement>(null);\n const account: AvatarMenuProps = {\n name: email,\n signedInAs: 'account',\n accountUrl,\n theme: shownTheme,\n themes: THEMES,\n hasTheme: true,\n onThemeChange: (next) => {\n setShownTheme(next);\n applyTheme(next);\n void setTheme(next);\n },\n shortcuts: [],\n helpUrl: HELP_URL,\n onSignOut: () => {\n setIsSigningOut(true);\n form.current?.requestSubmit();\n },\n isSigningOut,\n entries,\n };\n return { account, signOutForm: <form ref={form} method=\"post\" action={SIGN_OUT_PATH} hidden /> };\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"406e70c54d0df55ecef3263e68bd02259fd622902e\":{\"name\":\"setTheme\"}},\"web/features/frame/actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"406e70c54d0df55ecef3263e68bd02259fd622902e\",callServer,void 0,findSourceMapURL,\"setTheme\");export{$$RSC_SERVER_ACTION_0 as setTheme};","/**\n * The theme this browser chose for the gateway's pages (header design H13:\n * each app keeps its own), System until chosen.\n */\nimport type { Theme } from '@aeolus-fleet/common';\n\n/** The themes, as common names them: written here so the header's browser code loads no schema (decision 0033). */\nexport const THEMES: readonly Theme[] = ['light', 'dark', 'system'];\n\n/** The cookie that keeps it. */\nexport const THEME_COOKIE = 'aeolus_gateway_theme';\n\nexport function isTheme(value: unknown): value is Theme {\n return THEMES.some((theme) => theme === value);\n}\n\n/** The theme a cookie names, or System. */\nexport function themeFrom(value: string | undefined): Theme {\n return isTheme(value) ? value : 'system';\n}\n","/**\n * What a page of the web app does with the API's account.inView (header\n * design H5, H9): show its fleet as the account signed in, or send the\n * browser where it may go: the same page in the fleet the account may open,\n * the app it may open there, or sign-in and back to the page. Where the\n * gateway is off for the account's fleet, the page says so instead.\n */\n\n/** The API's answer to account.inView. */\nexport type InView =\n | { kind: 'signedIn'; fleetId: string; accountId: string; scopes: string[] }\n | { kind: 'goTo'; fleetId: string }\n | { kind: 'off'; fleetName: string; accountUrl: string }\n | { kind: 'elsewhere'; url: string };\n\n/** The API's refusals of account.inView a page answers: signed in to no account, and no shared sign-in at this gateway. */\nexport type InViewRefusal = 'UNAUTHORIZED' | 'NOT_FOUND';\n\nexport type PageAccount =\n | { kind: 'signedIn'; fleetId: string; scopes: readonly string[] }\n | { kind: 'goTo'; location: string }\n | { kind: 'off'; fleetName: string; accountUrl: string }\n | { kind: 'noSignIn' };\n\nconst SIGN_IN_START = '/sign-in/start';\n\n/** The parameter a page names its fleet by. */\nexport const FLEET_PARAMETER = 'fleet';\n\n/** A page of the web app in a fleet: every link keeps the fleet in its address. */\nexport function inFleet(page: string, fleetId: string): string {\n const [path = '', query = ''] = page.split('?');\n const parameters = new URLSearchParams(query);\n parameters.set(FLEET_PARAMETER, fleetId);\n return `${path}?${parameters.toString()}`;\n}\n\n/** Reads the answer for the page asked for, its path and query as the browser sent them. */\nexport function pageAccountOf(read: { inView: InView } | { refusal: InViewRefusal }, page: string): PageAccount {\n if ('refusal' in read) {\n return read.refusal === 'UNAUTHORIZED' ? { kind: 'goTo', location: `${SIGN_IN_START}?${new URLSearchParams({ return_to: page }).toString()}` } : { kind: 'noSignIn' };\n }\n const { inView } = read;\n switch (inView.kind) {\n case 'signedIn':\n return { kind: 'signedIn', fleetId: inView.fleetId, scopes: inView.scopes };\n case 'goTo':\n return { kind: 'goTo', location: inFleet(page, inView.fleetId) };\n case 'off':\n return inView;\n case 'elsewhere':\n return { kind: 'goTo', location: inView.url };\n }\n}\n"],"names":["actionAsyncStorage","workAsyncStorage","workUnitAsyncStorage","$$RSC_SERVER_ACTION_0","SIGN_IN_START","FLEET_PARAMETER","inFleet","page","fleetId","path","query","split","parameters","URLSearchParams","set","toString","pageAccountOf","read","refusal","kind","location","return_to","inView","scopes","url"],"mappings":"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","ignoreList":[0,1]}
@@ -0,0 +1,3 @@
1
+ (()=>{"use strict";module.exports=[68667,52779,83019,46085,20581,22182,95015,a=>{a.s(["f",0,function(a,b){a.replaceState(null,"",b)}],68667),a.s(["f",0,function(a){let b=new URLSearchParams({fleet:a.fleetId,...void 0===a.cursor?{}:{cursor:a.cursor}});return`/meetings/${encodeURIComponent(a.meetingId)}?${b.toString()}`}],52779);var b=a.i(5050);let c=(0,b.createServerReference)("40db7d83ab9618e36e567bcf66243a9a52614c933c",b.callServer,void 0,b.findSourceMapURL,"answerDelivery");a.s(["f",0,c],83019);let d=(0,b.createServerReference)("40d1b5efb67059d5ee812d8865798359fb723fb4e4",b.callServer,void 0,b.findSourceMapURL,"doneDelivery");a.s(["f",0,d],46085);let e=(0,b.createServerReference)("602390e5d7f0d17092beab792cafdd485bfb28d868",b.callServer,void 0,b.findSourceMapURL,"openDelivery");a.s(["f",0,e],20581);let f=(0,b.createServerReference)("405f92098d95e14188d3c2e2058e1b73d6468d725b",b.callServer,void 0,b.findSourceMapURL,"putInBasket");a.s(["f",0,f],22182);let g=(0,b.createServerReference)("40d6d035364bed586c26cd7d80196b6f40cc3ed5af",b.callServer,void 0,b.findSourceMapURL,"putPickInBasket");a.s(["f",0,g],95015)},3196,a=>{var b=a.i(5050);let c=(0,b.createServerReference)("60805144861012c3c1c5af3c3730c5ad189ec00cb2",b.callServer,void 0,b.findSourceMapURL,"removeFromBasket");a.s(["f",0,c])},91777,a=>{var b=a.i(87924),c=a.i(99271),d=a.i(76983),e=a.i(72131),f=a.i(68667),g=a.i(52779),h=a.i(25959),i=a.i(83019),j=a.i(46085),k=a.i(20581),l=a.i(22182),m=a.i(95015),n=a.i(3196),o=a.i(16550),p=a.i(99838),q=a.i(51493),r=a.i(17758),s=a.i(805),t=a.i(60232),u=a.i(62043),v=a.i(11591),w=a.i(58710),x=a.i(93294),y=a.i(55596);function z(){let{toasts:a}=d.f.useToastManager();return(0,b.jsx)(s.f.Portal,{children:(0,b.jsx)(t.f.Viewport,{className:"fixed bottom-4 left-4 z-50 hidden w-[min(24rem,calc(100vw-2rem))] gap-2 sm:grid",children:a.map(a=>(0,b.jsxs)(u.f.Root,{toast:a,"data-testid":"bridge-basket-toast",className:"flex items-start gap-3 rounded-lg border border-border bg-popover p-4 text-popover-foreground shadow-lg",children:[(0,b.jsx)(y.f,{"aria-hidden":!0,className:"mt-0.5 size-4 shrink-0"}),(0,b.jsxs)(v.f.Content,{className:"grid flex-1 gap-1",children:[(0,b.jsx)(w.f.Title,{className:"font-medium"}),(0,b.jsx)(x.f.Description,{className:"text-caption text-muted-foreground"})]})]},a.id))})})}var A=a.i(11725),B=a.i(74352),C=a.i(10039),D=a.i(34129),E=a.i(18145);function F({fleetId:a,decidePlaces:c,consoleUrl:s,known:t,children:u}){let v=d.f.useToastManager(),w=(0,D.P)(),[x,y]=(0,e.useState)(),[z,G]=(0,e.useState)(""),[H,I]=(0,e.useState)(),[J,K]=(0,e.useState)(),[L,M]=(0,e.useState)(),[N,O]=(0,e.useState)(),[P,Q]=(0,e.useState)(),[R,S]=(0,e.useState)(),[,T]=(0,e.useTransition)(),[U,V]=(0,e.useState)(0);(0,E.R)(void 0===x?void 0:(0,r.u)(x.opened.job),()=>{y(void 0)});let W=b=>{I(b.deliveryId),O(void 0),S(void 0),T(async()=>{let c=await (0,k.f)(a,b.deliveryId);if(I(void 0),c.isOk){let a=b.inBasket??null;y({delivery:c.value,opened:{job:b.job,isAlert:b.isAlert??!1,wasNew:"seen"!==b.state},inBasket:a,finished:null}),G(a?.note??""),Q(void 0)}else O({deliveryId:b.deliveryId,message:c.message})})},X=(0,e.useRef)(!1);(0,e.useEffect)(()=>{if(X.current)return;X.current=!0;let a=(0,q.L)(window.location.href,t);"open"===a.kind?W(a.item):"gone"===a.kind&&((0,f.f)(window.history,(0,q.v)(window.location.href,void 0)),S("That item is no longer in your inbox."))});let Y=x?.delivery.deliveryId,Z=t.find(({deliveryId:a})=>a===Y)?.stale??null;(0,e.useEffect)(()=>{null!==Z&&void 0!==Y&&y(a=>void 0===a?a:{...a,delivery:(0,p.B)(a.delivery,[{deliveryId:Y,stale:Z}])})},[Z,Y]);let $=(0,e.useRef)(!1);(0,e.useEffect)(()=>{if(!$.current){$.current=!0;return}(0,f.f)(window.history,(0,q.v)(window.location.href,Y))},[Y]);let _=({control:a,action:b,onSettled:c})=>{M(a),Q(void 0),T(async()=>{let a=await b();M(void 0),a.isOk?c(a.value):Q(a.message)})},aa=a=>()=>{y(void 0),S(a)},ab=void 0===x?void 0:{deliveryId:x.delivery.deliveryId,job:x.opened.job};return(0,b.jsx)(B.f,{list:(0,b.jsxs)("div",{className:"grid gap-4",children:[void 0===R?null:(0,b.jsx)(C.f,{message:R,isFailure:!1}),u({open:W,openingId:H,putPick:(b,c)=>{K(b.deliveryId),O(void 0),S(void 0),T(async()=>{let d=await (0,m.f)({fleet:a,deliveryId:b.deliveryId,option:c});K(void 0),d.isOk?(S(`Option ${String(c)} is in the basket, not sent: ${b.from} receives it when you send the basket.`),V(a=>a+1)):O({deliveryId:b.deliveryId,message:d.message})})},puttingId:J,failure:N,opened:ab})]},U),item:void 0===x?void 0:(({delivery:d,inBasket:e,opened:f,finished:k})=>{let m=d.question?.id;return(0,b.jsx)(A.u,{delivery:d,opened:f,meetingHref:void 0===d.meetingId?void 0:(0,g.f)({fleetId:a,meetingId:d.meetingId}),consoleUrl:s,basketHref:(0,h.i)(o.H,a),inBasket:e,finished:k,places:c,note:z,working:L,failure:P,onNoteChange:G,onAnswer:b=>{_({control:void 0===b?{kind:"note"}:{kind:"option",option:b},action:()=>(0,i.f)({fleet:a,deliveryId:d.deliveryId,input:{questionId:d.question?.id,option:b,note:z}}),onSettled:aa(`Your answer went to ${d.from}.`)})},onPut:b=>{_({control:null===b?{kind:"note"}:{kind:"option",option:b},action:()=>(0,l.f)({fleet:a,deliveryId:d.deliveryId,option:b,optionLabel:d.question?.options.find(({key:a})=>a===b)?.label??null,note:z}),onSettled:a=>{var b;y({delivery:d,opened:f,finished:k,inBasket:a}),v.add({title:null===(b=a.option)?"Your note alone in the basket":`Option ${String(b)} in the basket`,description:"Not sent. Still waiting on you until you send it."})}})},onSend:b=>{_({control:{kind:"send"},action:()=>(0,i.f)({fleet:a,deliveryId:d.deliveryId,input:{questionId:m,option:b??void 0,note:z}}),onSettled:aa(`Your answer went to ${d.from}.`)})},onRemove:()=>{void 0!==m&&_({control:{kind:"remove"},action:()=>(0,n.f)(a,m),onSettled:aa(`Your answer to “${d.title}” is out of the basket; the question still waits on you.`)})},onDone:()=>{_({control:{kind:"done"},action:()=>(0,j.f)({fleet:a,deliveryId:d.deliveryId}),onSettled:aa(`Done with “${d.title}”.`)})},onFinishStep:b=>{_({control:{kind:b},action:()=>(0,j.f)({fleet:a,deliveryId:d.deliveryId,step:{outcome:b,note:z}}),onSettled:()=>{y({delivery:d,inBasket:e,opened:f,finished:{outcome:b,note:z.trim(),at:new Date().toISOString()}})}})},onOpen:a=>{W({deliveryId:a,job:f.job})},onSendMessage:void 0===d.alertShip||void 0===w?void 0:a=>{w({alertShip:a})},onBack:()=>{y(void 0)}},d.deliveryId)})(x)})}a.s(["f",0,function({fleetId:a,decidePlaces:d,consoleUrl:e,known:f,children:g}){return(0,b.jsxs)(c.f.Provider,{children:[(0,b.jsx)(F,{fleetId:a,decidePlaces:d,consoleUrl:e,known:f,children:g}),(0,b.jsx)(z,{})]})}],91777)}]})();
2
+
3
+ //# sourceMappingURL=_1cxulh-x54r6v._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../bridge/item-address/hooks/replace-address.ts","../../../../../web/features/meeting/paths.ts","../../../../../web/features/bridge/hooks/data%3A1d98dd%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3Ae5cd2f%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3A9e7156%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3A6c7ff1%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3A107183%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3Ae94dc6%20%3Ctext/javascript%3E","../../../../../web/features/bridge/state/item-focus.tsx","../../../../../web/features/bridge/ui/basket-toast.tsx"],"sourcesContent":["/** The browser's history, as far as Bridge writes the open item's address into it. */\nexport type AddressHistory = Pick<History, 'replaceState'>;\n\n/**\n * Puts the address in place of the current one, with no new history entry and\n * no page read. It writes no state of its own: Next.js's router takes a write\n * carrying its own state as its own and keeps its old address, which its next\n * page re-read would write back (#282).\n */\nexport function replaceAddress(history: AddressHistory, address: string): void {\n history.replaceState(null, '', address);\n}\n","/** Where a meeting's page is, for server and client code alike. */\n\n/** The meeting page's address, before the meeting's id. */\nexport const MEETINGS_PATH = '/meetings';\n\n/** The address of a meeting's page in a fleet, at the page of contributions after the cursor, if one is given. */\nexport function meetingPathOf(meeting: { fleetId: string; meetingId: string; cursor?: string }): string {\n const query = new URLSearchParams({ fleet: meeting.fleetId, ...(meeting.cursor === undefined ? {} : { cursor: meeting.cursor }) });\n return `${MEETINGS_PATH}/${encodeURIComponent(meeting.meetingId)}?${query.toString()}`;\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"40dc940782447fa774ade2cbd00f4f5bb7677a387c\":{\"name\":\"answerDelivery\"}},\"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_2=/*#__PURE__*/createServerReference(\"40dc940782447fa774ade2cbd00f4f5bb7677a387c\",callServer,void 0,findSourceMapURL,\"answerDelivery\");export{$$RSC_SERVER_ACTION_2 as answerDelivery};","/* __next_internal_action_entry_do_not_use__ [{\"40f7d239d4fa7db323b65eee64b38f84dd04f23c94\":{\"name\":\"doneDelivery\"}},\"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(\"40f7d239d4fa7db323b65eee64b38f84dd04f23c94\",callServer,void 0,findSourceMapURL,\"doneDelivery\");export{$$RSC_SERVER_ACTION_7 as doneDelivery};","/* __next_internal_action_entry_do_not_use__ [{\"6094f8831475d7ac21d1dc317952b7d23d22a8110e\":{\"name\":\"openDelivery\"}},\"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_1=/*#__PURE__*/createServerReference(\"6094f8831475d7ac21d1dc317952b7d23d22a8110e\",callServer,void 0,findSourceMapURL,\"openDelivery\");export{$$RSC_SERVER_ACTION_1 as openDelivery};","/* __next_internal_action_entry_do_not_use__ [{\"40a063a0888116f6fe87ec56db167344aea3de800d\":{\"name\":\"putInBasket\"}},\"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_3=/*#__PURE__*/createServerReference(\"40a063a0888116f6fe87ec56db167344aea3de800d\",callServer,void 0,findSourceMapURL,\"putInBasket\");export{$$RSC_SERVER_ACTION_3 as putInBasket};","/* __next_internal_action_entry_do_not_use__ [{\"4044bf5bb9d6e6852f8d646440f2b46c84691dfa43\":{\"name\":\"putPickInBasket\"}},\"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_4=/*#__PURE__*/createServerReference(\"4044bf5bb9d6e6852f8d646440f2b46c84691dfa43\",callServer,void 0,findSourceMapURL,\"putPickInBasket\");export{$$RSC_SERVER_ACTION_4 as putPickInBasket};","/* __next_internal_action_entry_do_not_use__ [{\"60d2401f70d2510a8be450676693583f551f140dd6\":{\"name\":\"removeFromBasket\"}},\"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_5=/*#__PURE__*/createServerReference(\"60d2401f70d2510a8be450676693583f551f140dd6\",callServer,void 0,findSourceMapURL,\"removeFromBasket\");export{$$RSC_SERVER_ACTION_5 as removeFromBasket};","'use client';\n\nimport { Toast } from '@base-ui/react/toast';\nimport { useEffect, useRef, useState, useTransition, type ReactNode } from 'react';\n\nimport { replaceAddress } from '../../../../bridge/item-address/hooks/replace-address';\nimport { meetingPathOf } from '../../meeting/paths';\nimport { inFleet } from '../../../lib/gateway-api/page-account';\nimport { answerDelivery, doneDelivery, openDelivery, putInBasket, putPickInBasket, removeFromBasket, type ActionOutcome } from '../hooks/bridge-actions';\nimport { BRIDGE_BASKET_PATH } from '../paths';\nimport { staleAsListedOf, type FocusedDelivery } from '../services/deliveries';\nimport { addressWithItem, itemOfAddress, type KnownItem } from '../services/item-address';\nimport { openedScreenOf } from '../services/shell';\nimport type { HomeItem } from '../services/items';\nimport type { RoutedPlace } from '../services/routing';\nimport { BasketToasts, putToastOf } from '../ui/basket-toast';\nimport { DeliveryCard, type DeliveryControl, type InBasket, type Opened, type StepFinished } from '../ui/delivery-card';\nimport { ItemSplit } from '../ui/item-split';\nimport { Notice } from '../ui/notice';\nimport { useSendMessage } from './send-message';\nimport { useOpenedItem } from './opened-item';\n\n/** An item to open: by its delivery, with its job, whether an alert, whether it was new, and the answer to it in the basket, if any. A replacement opened from its stale item is new. */\nexport interface ToOpen {\n readonly deliveryId: string;\n readonly job: HomeItem['job'];\n readonly isAlert?: boolean;\n readonly state?: HomeItem['state'];\n readonly inBasket?: InBasket | null;\n}\n\n/** A question to put its asker's pick in the basket from its row: by its delivery, from its asker. */\nexport interface ToPut {\n readonly deliveryId: string;\n readonly from: string;\n}\n\n/** What a list of items gets to open one or put a pick in the basket from its row: the presses, the one opening or putting, and why one could not be. */\nexport interface ItemOpening {\n readonly open: (item: ToOpen) => void;\n readonly openingId: string | undefined;\n readonly putPick: (item: ToPut, option: number) => void;\n readonly puttingId: string | undefined;\n readonly failure: { deliveryId: string; message: string } | undefined;\n /** The item open beside the list, by its delivery and job; none while the list is shown alone. */\n readonly opened: { readonly deliveryId: string; readonly job: HomeItem['job'] } | undefined;\n}\n\n/**\n * A list of Bridge's items with one in focus at a time. Opening is the\n * person's own act, so it is a press, never a link: the gateway acknowledges\n * the item for them, and it is shown whole. An alert or a notice seen is\n * done at once (CC16), so it shows with no answer to give, as does a\n * question its asker withdrew or replaced; a replaced one opens its\n * replacement. A step ends done or cannot with the note, sent at once,\n * never through the basket (CC23), and stays open showing its outcome. A question's answer goes in the basket (CC24): the\n * question stays open saying so, with a toast (basket.html), and comes out\n * of it there; from its row, a new question's pick goes in it at once, opened by the same press. Answering or being done says so in place, and the page reads\n * itself again. A question names where it shows when the page read its places.\n * An opened alert offers to send its ship a message, as home offers to send\n * any ship one (aeolus-fleet #1547). The open item shows beside its list on\n * a desktop, and on its own screen on a phone (aeolus-fleet#1538).\n */\nexport function ItemFocus({ fleetId, decidePlaces, consoleUrl, known, children }: { fleetId: string; decidePlaces?: readonly RoutedPlace[]; /** The fleet's console, where an opened alert's ship shows its Health. */ consoleUrl?: string; /** The items the page lists, where the address finds the one to open again. */ known: readonly KnownItem[]; children: (opening: ItemOpening) => ReactNode }) {\n return (\n <Toast.Provider>\n <FocusedItems fleetId={fleetId} decidePlaces={decidePlaces} consoleUrl={consoleUrl} known={known}>{children}</FocusedItems>\n <BasketToasts />\n </Toast.Provider>\n );\n}\n\nfunction FocusedItems({ fleetId, decidePlaces, consoleUrl, known, children }: { fleetId: string; decidePlaces?: readonly RoutedPlace[]; consoleUrl?: string; known: readonly KnownItem[]; children: (opening: ItemOpening) => ReactNode }) {\n const toasts = Toast.useToastManager();\n const sendMessage = useSendMessage();\n const [focus, setFocus] = useState<{ delivery: FocusedDelivery; opened: Opened; inBasket: InBasket | null; finished: StepFinished | null } | undefined>();\n const [note, setNote] = useState('');\n const [openingId, setOpeningId] = useState<string | undefined>();\n const [puttingId, setPuttingId] = useState<string | undefined>();\n const [working, setWorking] = useState<DeliveryControl | undefined>();\n const [openFailure, setOpenFailure] = useState<{ deliveryId: string; message: string } | undefined>();\n const [failure, setFailure] = useState<string | undefined>();\n const [done, setDone] = useState<string | undefined>();\n const [, startTransition] = useTransition();\n // Each pick put from a row shows the list anew, as it is after a card: it reads the page as the action left it.\n const [shownTimes, setShownTimes] = useState(0);\n useOpenedItem(focus === undefined ? undefined : openedScreenOf(focus.opened.job), () => {\n setFocus(undefined);\n });\n\n const open = (item: ToOpen) => {\n setOpeningId(item.deliveryId);\n setOpenFailure(undefined);\n setDone(undefined);\n startTransition(async () => {\n const outcome = await openDelivery(fleetId, item.deliveryId);\n setOpeningId(undefined);\n if (outcome.isOk) {\n const inBasket = item.inBasket ?? null;\n setFocus({ delivery: outcome.value, opened: { job: item.job, isAlert: item.isAlert ?? false, wasNew: item.state !== 'seen' }, inBasket, finished: null });\n setNote(inBasket?.note ?? '');\n setFailure(undefined);\n } else {\n setOpenFailure({ deliveryId: item.deliveryId, message: outcome.message });\n }\n });\n };\n\n // The address names the open item: a refresh, or the address opened anew, opens it again.\n const wasAddressRead = useRef(false);\n useEffect(() => {\n if (wasAddressRead.current) {\n return;\n }\n wasAddressRead.current = true;\n const addressed = itemOfAddress(window.location.href, known);\n if (addressed.kind === 'open') {\n open(addressed.item);\n } else if (addressed.kind === 'gone') {\n replaceAddress(window.history, addressWithItem(window.location.href, undefined));\n setDone('That item is no longer in your inbox.');\n }\n });\n const focusedId = focus?.delivery.deliveryId;\n // The list reads itself again as the fleet changes: an open item its asker withdrew or replaced meanwhile turns read-only as its row does (#240).\n const listedStale = known.find(({ deliveryId }) => deliveryId === focusedId)?.stale ?? null;\n useEffect(() => {\n if (listedStale !== null && focusedId !== undefined) {\n setFocus((focused) => (focused === undefined ? focused : { ...focused, delivery: staleAsListedOf(focused.delivery, [{ deliveryId: focusedId, stale: listedStale }]) }));\n }\n }, [listedStale, focusedId]);\n const wasFocusSynced = useRef(false);\n useEffect(() => {\n // The first run is the page as the address left it, which the opening above reads.\n if (!wasFocusSynced.current) {\n wasFocusSynced.current = true;\n return;\n }\n replaceAddress(window.history, addressWithItem(window.location.href, focusedId));\n }, [focusedId]);\n\n /** Opens a question and puts its asker's pick in the basket, with no note, from its row: nothing is sent (CC24). */\n const putPick = (item: ToPut, option: number) => {\n setPuttingId(item.deliveryId);\n setOpenFailure(undefined);\n setDone(undefined);\n startTransition(async () => {\n const outcome = await putPickInBasket({ fleet: fleetId, deliveryId: item.deliveryId, option });\n setPuttingId(undefined);\n if (outcome.isOk) {\n setDone(`Option ${String(option)} is in the basket, not sent: ${item.from} receives it when you send the basket.`);\n setShownTimes((times) => times + 1);\n } else {\n setOpenFailure({ deliveryId: item.deliveryId, message: outcome.message });\n }\n });\n };\n\n const settle = <T,>({ control, action, onSettled }: { control: DeliveryControl; action: () => Promise<ActionOutcome<T>>; onSettled: (value: T) => void }) => {\n setWorking(control);\n setFailure(undefined);\n startTransition(async () => {\n const outcome = await action();\n setWorking(undefined);\n if (outcome.isOk) {\n onSettled(outcome.value);\n } else {\n setFailure(outcome.message);\n }\n });\n };\n\n /** Back to the list, saying what was done. */\n const leave = (said: string) => () => {\n setFocus(undefined);\n setDone(said);\n };\n\n const cardOf = ({ delivery, inBasket, opened, finished }: NonNullable<typeof focus>) => {\n const questionId = delivery.question?.id;\n return (\n <DeliveryCard\n key={delivery.deliveryId}\n delivery={delivery}\n opened={opened}\n meetingHref={delivery.meetingId === undefined ? undefined : meetingPathOf({ fleetId, meetingId: delivery.meetingId })}\n consoleUrl={consoleUrl}\n basketHref={inFleet(BRIDGE_BASKET_PATH, fleetId)}\n inBasket={inBasket}\n finished={finished}\n places={decidePlaces}\n note={note}\n working={working}\n failure={failure}\n onNoteChange={setNote}\n onAnswer={(option) => { settle({ control: option === undefined ? { kind: 'note' } : { kind: 'option', option }, action: () => answerDelivery({ fleet: fleetId, deliveryId: delivery.deliveryId, input: { questionId: delivery.question?.id, option, note } }), onSettled: leave(`Your answer went to ${delivery.from}.`) }); }\n }\n onPut={(option) => { settle({ control: option === null ? { kind: 'note' } : { kind: 'option', option }, action: () => putInBasket({ fleet: fleetId, deliveryId: delivery.deliveryId, option, optionLabel: delivery.question?.options.find(({ key }) => key === option)?.label ?? null, note }), onSettled: (put) => {\n setFocus({ delivery, opened, finished, inBasket: put });\n toasts.add(putToastOf(put.option));\n } }); }}\n onSend={(option) => { settle({ control: { kind: 'send' }, action: () => answerDelivery({ fleet: fleetId, deliveryId: delivery.deliveryId, input: { questionId, option: option ?? undefined, note } }), onSettled: leave(`Your answer went to ${delivery.from}.`) }); }}\n onRemove={() => {\n if (questionId !== undefined) {\n settle({ control: { kind: 'remove' }, action: () => removeFromBasket(fleetId, questionId), onSettled: leave(`Your answer to “${delivery.title}” is out of the basket; the question still waits on you.`) });\n }\n }}\n onDone={() => { settle({ control: { kind: 'done' }, action: () => doneDelivery({ fleet: fleetId, deliveryId: delivery.deliveryId }), onSettled: leave(`Done with “${delivery.title}”.`) }); }}\n onFinishStep={(outcome) => {\n settle({\n control: { kind: outcome },\n action: () => doneDelivery({ fleet: fleetId, deliveryId: delivery.deliveryId, step: { outcome, note } }),\n onSettled: () => { setFocus({ delivery, inBasket, opened, finished: { outcome, note: note.trim(), at: new Date().toISOString() } }); },\n });\n }}\n onOpen={(deliveryId) => { open({ deliveryId, job: opened.job }); }}\n onSendMessage={delivery.alertShip === undefined || sendMessage === undefined ? undefined : (alertShip) => { sendMessage({ alertShip }); }}\n onBack={() => { setFocus(undefined); }}\n />\n );\n };\n\n const opened = focus === undefined ? undefined : { deliveryId: focus.delivery.deliveryId, job: focus.opened.job };\n return (\n <ItemSplit\n list={\n <div key={shownTimes} className=\"grid gap-4\">\n {done === undefined ? null : <Notice message={done} isFailure={false} />}\n {children({ open, openingId, putPick, puttingId, failure: openFailure, opened })}\n </div>\n }\n item={focus === undefined ? undefined : cardOf(focus)}\n />\n );\n}\n","'use client';\n\nimport { Toast } from '@base-ui/react/toast';\nimport { ShoppingBasket } from 'lucide-react';\n\n/** What a toast says: what happened, then what it means. */\nexport interface ToastWords {\n readonly title: string;\n readonly description: string;\n}\n\n/** What the toast says once an answer is in the basket (basket.html): what went in, not sent, still waiting. */\nexport function putToastOf(option: number | null): ToastWords {\n return { title: option === null ? 'Your note alone in the basket' : `Option ${String(option)} in the basket`, description: 'Not sent. Still waiting on you until you send it.' };\n}\n\n/** The toasts Bridge raised for the basket, each behind the basket icon, on the popover, gone by themselves: at the left on a desktop and none on a phone, as basket.html draws them. */\nexport function BasketToasts() {\n const { toasts } = Toast.useToastManager();\n return (\n <Toast.Portal>\n <Toast.Viewport className=\"fixed bottom-4 left-4 z-50 hidden w-[min(24rem,calc(100vw-2rem))] gap-2 sm:grid\">\n {toasts.map((toast) => (\n <Toast.Root key={toast.id} toast={toast} data-testid=\"bridge-basket-toast\" className=\"flex items-start gap-3 rounded-lg border border-border bg-popover p-4 text-popover-foreground shadow-lg\">\n <ShoppingBasket aria-hidden className=\"mt-0.5 size-4 shrink-0\" />\n <Toast.Content className=\"grid flex-1 gap-1\">\n <Toast.Title className=\"font-medium\" />\n <Toast.Description className=\"text-caption text-muted-foreground\" />\n </Toast.Content>\n </Toast.Root>\n ))}\n </Toast.Viewport>\n </Toast.Portal>\n );\n}\n"],"names":["replaceAddress","history","address","replaceState","$$RSC_SERVER_ACTION_5","putToastOf","option","title","String","description","BasketToasts","toasts","useToastManager","Portal","Viewport","className","map","toast","Root","Content","Title","Description","id"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../bridge/item-address/hooks/replace-address.ts","../../../../../web/features/meeting/paths.ts","../../../../../web/features/bridge/hooks/data%3A883151%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3Ae7df55%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3Acd7289%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3A09f5a3%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3A2ef5ab%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3A49411d%20%3Ctext/javascript%3E","../../../../../web/features/bridge/state/item-focus.tsx","../../../../../web/features/bridge/ui/basket-toast.tsx"],"sourcesContent":["/** The browser's history, as far as Bridge writes the open item's address into it. */\nexport type AddressHistory = Pick<History, 'replaceState'>;\n\n/**\n * Puts the address in place of the current one, with no new history entry and\n * no page read. It writes no state of its own: Next.js's router takes a write\n * carrying its own state as its own and keeps its old address, which its next\n * page re-read would write back (#282).\n */\nexport function replaceAddress(history: AddressHistory, address: string): void {\n history.replaceState(null, '', address);\n}\n","/** Where a meeting's page is, for server and client code alike. */\n\n/** The meeting page's address, before the meeting's id. */\nexport const MEETINGS_PATH = '/meetings';\n\n/** The address of a meeting's page in a fleet, at the page of contributions after the cursor, if one is given. */\nexport function meetingPathOf(meeting: { fleetId: string; meetingId: string; cursor?: string }): string {\n const query = new URLSearchParams({ fleet: meeting.fleetId, ...(meeting.cursor === undefined ? {} : { cursor: meeting.cursor }) });\n return `${MEETINGS_PATH}/${encodeURIComponent(meeting.meetingId)}?${query.toString()}`;\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"40db7d83ab9618e36e567bcf66243a9a52614c933c\":{\"name\":\"answerDelivery\"}},\"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_2=/*#__PURE__*/createServerReference(\"40db7d83ab9618e36e567bcf66243a9a52614c933c\",callServer,void 0,findSourceMapURL,\"answerDelivery\");export{$$RSC_SERVER_ACTION_2 as answerDelivery};","/* __next_internal_action_entry_do_not_use__ [{\"40d1b5efb67059d5ee812d8865798359fb723fb4e4\":{\"name\":\"doneDelivery\"}},\"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(\"40d1b5efb67059d5ee812d8865798359fb723fb4e4\",callServer,void 0,findSourceMapURL,\"doneDelivery\");export{$$RSC_SERVER_ACTION_7 as doneDelivery};","/* __next_internal_action_entry_do_not_use__ [{\"602390e5d7f0d17092beab792cafdd485bfb28d868\":{\"name\":\"openDelivery\"}},\"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_1=/*#__PURE__*/createServerReference(\"602390e5d7f0d17092beab792cafdd485bfb28d868\",callServer,void 0,findSourceMapURL,\"openDelivery\");export{$$RSC_SERVER_ACTION_1 as openDelivery};","/* __next_internal_action_entry_do_not_use__ [{\"405f92098d95e14188d3c2e2058e1b73d6468d725b\":{\"name\":\"putInBasket\"}},\"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_3=/*#__PURE__*/createServerReference(\"405f92098d95e14188d3c2e2058e1b73d6468d725b\",callServer,void 0,findSourceMapURL,\"putInBasket\");export{$$RSC_SERVER_ACTION_3 as putInBasket};","/* __next_internal_action_entry_do_not_use__ [{\"40d6d035364bed586c26cd7d80196b6f40cc3ed5af\":{\"name\":\"putPickInBasket\"}},\"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_4=/*#__PURE__*/createServerReference(\"40d6d035364bed586c26cd7d80196b6f40cc3ed5af\",callServer,void 0,findSourceMapURL,\"putPickInBasket\");export{$$RSC_SERVER_ACTION_4 as putPickInBasket};","/* __next_internal_action_entry_do_not_use__ [{\"60805144861012c3c1c5af3c3730c5ad189ec00cb2\":{\"name\":\"removeFromBasket\"}},\"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_5=/*#__PURE__*/createServerReference(\"60805144861012c3c1c5af3c3730c5ad189ec00cb2\",callServer,void 0,findSourceMapURL,\"removeFromBasket\");export{$$RSC_SERVER_ACTION_5 as removeFromBasket};","'use client';\n\nimport { Toast } from '@base-ui/react/toast';\nimport { useEffect, useRef, useState, useTransition, type ReactNode } from 'react';\n\nimport { replaceAddress } from '../../../../bridge/item-address/hooks/replace-address';\nimport { meetingPathOf } from '../../meeting/paths';\nimport { inFleet } from '../../../lib/gateway-api/page-account';\nimport { answerDelivery, doneDelivery, openDelivery, putInBasket, putPickInBasket, removeFromBasket, type ActionOutcome } from '../hooks/bridge-actions';\nimport { BRIDGE_BASKET_PATH } from '../paths';\nimport { staleAsListedOf, type FocusedDelivery } from '../services/deliveries';\nimport { addressWithItem, itemOfAddress, type KnownItem } from '../services/item-address';\nimport { openedScreenOf } from '../services/shell';\nimport type { HomeItem } from '../services/items';\nimport type { RoutedPlace } from '../services/routing';\nimport { BasketToasts, putToastOf } from '../ui/basket-toast';\nimport { DeliveryCard, type DeliveryControl, type InBasket, type Opened, type StepFinished } from '../ui/delivery-card';\nimport { ItemSplit } from '../ui/item-split';\nimport { Notice } from '../ui/notice';\nimport { useSendMessage } from './send-message';\nimport { useOpenedItem } from './opened-item';\n\n/** An item to open: by its delivery, with its job, whether an alert, whether it was new, and the answer to it in the basket, if any. A replacement opened from its stale item is new. */\nexport interface ToOpen {\n readonly deliveryId: string;\n readonly job: HomeItem['job'];\n readonly isAlert?: boolean;\n readonly state?: HomeItem['state'];\n readonly inBasket?: InBasket | null;\n}\n\n/** A question to put its asker's pick in the basket from its row: by its delivery, from its asker. */\nexport interface ToPut {\n readonly deliveryId: string;\n readonly from: string;\n}\n\n/** What a list of items gets to open one or put a pick in the basket from its row: the presses, the one opening or putting, and why one could not be. */\nexport interface ItemOpening {\n readonly open: (item: ToOpen) => void;\n readonly openingId: string | undefined;\n readonly putPick: (item: ToPut, option: number) => void;\n readonly puttingId: string | undefined;\n readonly failure: { deliveryId: string; message: string } | undefined;\n /** The item open beside the list, by its delivery and job; none while the list is shown alone. */\n readonly opened: { readonly deliveryId: string; readonly job: HomeItem['job'] } | undefined;\n}\n\n/**\n * A list of Bridge's items with one in focus at a time. Opening is the\n * person's own act, so it is a press, never a link: the gateway acknowledges\n * the item for them, and it is shown whole. An alert or a notice seen is\n * done at once (CC16), so it shows with no answer to give, as does a\n * question its asker withdrew or replaced; a replaced one opens its\n * replacement. A step ends done or cannot with the note, sent at once,\n * never through the basket (CC23), and stays open showing its outcome. A question's answer goes in the basket (CC24): the\n * question stays open saying so, with a toast (basket.html), and comes out\n * of it there; from its row, a new question's pick goes in it at once, opened by the same press. Answering or being done says so in place, and the page reads\n * itself again. A question names where it shows when the page read its places.\n * An opened alert offers to send its ship a message, as home offers to send\n * any ship one (aeolus-fleet #1547). The open item shows beside its list on\n * a desktop, and on its own screen on a phone (aeolus-fleet#1538).\n */\nexport function ItemFocus({ fleetId, decidePlaces, consoleUrl, known, children }: { fleetId: string; decidePlaces?: readonly RoutedPlace[]; /** The fleet's console, where an opened alert's ship shows its Health. */ consoleUrl?: string; /** The items the page lists, where the address finds the one to open again. */ known: readonly KnownItem[]; children: (opening: ItemOpening) => ReactNode }) {\n return (\n <Toast.Provider>\n <FocusedItems fleetId={fleetId} decidePlaces={decidePlaces} consoleUrl={consoleUrl} known={known}>{children}</FocusedItems>\n <BasketToasts />\n </Toast.Provider>\n );\n}\n\nfunction FocusedItems({ fleetId, decidePlaces, consoleUrl, known, children }: { fleetId: string; decidePlaces?: readonly RoutedPlace[]; consoleUrl?: string; known: readonly KnownItem[]; children: (opening: ItemOpening) => ReactNode }) {\n const toasts = Toast.useToastManager();\n const sendMessage = useSendMessage();\n const [focus, setFocus] = useState<{ delivery: FocusedDelivery; opened: Opened; inBasket: InBasket | null; finished: StepFinished | null } | undefined>();\n const [note, setNote] = useState('');\n const [openingId, setOpeningId] = useState<string | undefined>();\n const [puttingId, setPuttingId] = useState<string | undefined>();\n const [working, setWorking] = useState<DeliveryControl | undefined>();\n const [openFailure, setOpenFailure] = useState<{ deliveryId: string; message: string } | undefined>();\n const [failure, setFailure] = useState<string | undefined>();\n const [done, setDone] = useState<string | undefined>();\n const [, startTransition] = useTransition();\n // Each pick put from a row shows the list anew, as it is after a card: it reads the page as the action left it.\n const [shownTimes, setShownTimes] = useState(0);\n useOpenedItem(focus === undefined ? undefined : openedScreenOf(focus.opened.job), () => {\n setFocus(undefined);\n });\n\n const open = (item: ToOpen) => {\n setOpeningId(item.deliveryId);\n setOpenFailure(undefined);\n setDone(undefined);\n startTransition(async () => {\n const outcome = await openDelivery(fleetId, item.deliveryId);\n setOpeningId(undefined);\n if (outcome.isOk) {\n const inBasket = item.inBasket ?? null;\n setFocus({ delivery: outcome.value, opened: { job: item.job, isAlert: item.isAlert ?? false, wasNew: item.state !== 'seen' }, inBasket, finished: null });\n setNote(inBasket?.note ?? '');\n setFailure(undefined);\n } else {\n setOpenFailure({ deliveryId: item.deliveryId, message: outcome.message });\n }\n });\n };\n\n // The address names the open item: a refresh, or the address opened anew, opens it again.\n const wasAddressRead = useRef(false);\n useEffect(() => {\n if (wasAddressRead.current) {\n return;\n }\n wasAddressRead.current = true;\n const addressed = itemOfAddress(window.location.href, known);\n if (addressed.kind === 'open') {\n open(addressed.item);\n } else if (addressed.kind === 'gone') {\n replaceAddress(window.history, addressWithItem(window.location.href, undefined));\n setDone('That item is no longer in your inbox.');\n }\n });\n const focusedId = focus?.delivery.deliveryId;\n // The list reads itself again as the fleet changes: an open item its asker withdrew or replaced meanwhile turns read-only as its row does (#240).\n const listedStale = known.find(({ deliveryId }) => deliveryId === focusedId)?.stale ?? null;\n useEffect(() => {\n if (listedStale !== null && focusedId !== undefined) {\n setFocus((focused) => (focused === undefined ? focused : { ...focused, delivery: staleAsListedOf(focused.delivery, [{ deliveryId: focusedId, stale: listedStale }]) }));\n }\n }, [listedStale, focusedId]);\n const wasFocusSynced = useRef(false);\n useEffect(() => {\n // The first run is the page as the address left it, which the opening above reads.\n if (!wasFocusSynced.current) {\n wasFocusSynced.current = true;\n return;\n }\n replaceAddress(window.history, addressWithItem(window.location.href, focusedId));\n }, [focusedId]);\n\n /** Opens a question and puts its asker's pick in the basket, with no note, from its row: nothing is sent (CC24). */\n const putPick = (item: ToPut, option: number) => {\n setPuttingId(item.deliveryId);\n setOpenFailure(undefined);\n setDone(undefined);\n startTransition(async () => {\n const outcome = await putPickInBasket({ fleet: fleetId, deliveryId: item.deliveryId, option });\n setPuttingId(undefined);\n if (outcome.isOk) {\n setDone(`Option ${String(option)} is in the basket, not sent: ${item.from} receives it when you send the basket.`);\n setShownTimes((times) => times + 1);\n } else {\n setOpenFailure({ deliveryId: item.deliveryId, message: outcome.message });\n }\n });\n };\n\n const settle = <T,>({ control, action, onSettled }: { control: DeliveryControl; action: () => Promise<ActionOutcome<T>>; onSettled: (value: T) => void }) => {\n setWorking(control);\n setFailure(undefined);\n startTransition(async () => {\n const outcome = await action();\n setWorking(undefined);\n if (outcome.isOk) {\n onSettled(outcome.value);\n } else {\n setFailure(outcome.message);\n }\n });\n };\n\n /** Back to the list, saying what was done. */\n const leave = (said: string) => () => {\n setFocus(undefined);\n setDone(said);\n };\n\n const cardOf = ({ delivery, inBasket, opened, finished }: NonNullable<typeof focus>) => {\n const questionId = delivery.question?.id;\n return (\n <DeliveryCard\n key={delivery.deliveryId}\n delivery={delivery}\n opened={opened}\n meetingHref={delivery.meetingId === undefined ? undefined : meetingPathOf({ fleetId, meetingId: delivery.meetingId })}\n consoleUrl={consoleUrl}\n basketHref={inFleet(BRIDGE_BASKET_PATH, fleetId)}\n inBasket={inBasket}\n finished={finished}\n places={decidePlaces}\n note={note}\n working={working}\n failure={failure}\n onNoteChange={setNote}\n onAnswer={(option) => { settle({ control: option === undefined ? { kind: 'note' } : { kind: 'option', option }, action: () => answerDelivery({ fleet: fleetId, deliveryId: delivery.deliveryId, input: { questionId: delivery.question?.id, option, note } }), onSettled: leave(`Your answer went to ${delivery.from}.`) }); }\n }\n onPut={(option) => { settle({ control: option === null ? { kind: 'note' } : { kind: 'option', option }, action: () => putInBasket({ fleet: fleetId, deliveryId: delivery.deliveryId, option, optionLabel: delivery.question?.options.find(({ key }) => key === option)?.label ?? null, note }), onSettled: (put) => {\n setFocus({ delivery, opened, finished, inBasket: put });\n toasts.add(putToastOf(put.option));\n } }); }}\n onSend={(option) => { settle({ control: { kind: 'send' }, action: () => answerDelivery({ fleet: fleetId, deliveryId: delivery.deliveryId, input: { questionId, option: option ?? undefined, note } }), onSettled: leave(`Your answer went to ${delivery.from}.`) }); }}\n onRemove={() => {\n if (questionId !== undefined) {\n settle({ control: { kind: 'remove' }, action: () => removeFromBasket(fleetId, questionId), onSettled: leave(`Your answer to “${delivery.title}” is out of the basket; the question still waits on you.`) });\n }\n }}\n onDone={() => { settle({ control: { kind: 'done' }, action: () => doneDelivery({ fleet: fleetId, deliveryId: delivery.deliveryId }), onSettled: leave(`Done with “${delivery.title}”.`) }); }}\n onFinishStep={(outcome) => {\n settle({\n control: { kind: outcome },\n action: () => doneDelivery({ fleet: fleetId, deliveryId: delivery.deliveryId, step: { outcome, note } }),\n onSettled: () => { setFocus({ delivery, inBasket, opened, finished: { outcome, note: note.trim(), at: new Date().toISOString() } }); },\n });\n }}\n onOpen={(deliveryId) => { open({ deliveryId, job: opened.job }); }}\n onSendMessage={delivery.alertShip === undefined || sendMessage === undefined ? undefined : (alertShip) => { sendMessage({ alertShip }); }}\n onBack={() => { setFocus(undefined); }}\n />\n );\n };\n\n const opened = focus === undefined ? undefined : { deliveryId: focus.delivery.deliveryId, job: focus.opened.job };\n return (\n <ItemSplit\n list={\n <div key={shownTimes} className=\"grid gap-4\">\n {done === undefined ? null : <Notice message={done} isFailure={false} />}\n {children({ open, openingId, putPick, puttingId, failure: openFailure, opened })}\n </div>\n }\n item={focus === undefined ? undefined : cardOf(focus)}\n />\n );\n}\n","'use client';\n\nimport { Toast } from '@base-ui/react/toast';\nimport { ShoppingBasket } from 'lucide-react';\n\n/** What a toast says: what happened, then what it means. */\nexport interface ToastWords {\n readonly title: string;\n readonly description: string;\n}\n\n/** What the toast says once an answer is in the basket (basket.html): what went in, not sent, still waiting. */\nexport function putToastOf(option: number | null): ToastWords {\n return { title: option === null ? 'Your note alone in the basket' : `Option ${String(option)} in the basket`, description: 'Not sent. Still waiting on you until you send it.' };\n}\n\n/** The toasts Bridge raised for the basket, each behind the basket icon, on the popover, gone by themselves: at the left on a desktop and none on a phone, as basket.html draws them. */\nexport function BasketToasts() {\n const { toasts } = Toast.useToastManager();\n return (\n <Toast.Portal>\n <Toast.Viewport className=\"fixed bottom-4 left-4 z-50 hidden w-[min(24rem,calc(100vw-2rem))] gap-2 sm:grid\">\n {toasts.map((toast) => (\n <Toast.Root key={toast.id} toast={toast} data-testid=\"bridge-basket-toast\" className=\"flex items-start gap-3 rounded-lg border border-border bg-popover p-4 text-popover-foreground shadow-lg\">\n <ShoppingBasket aria-hidden className=\"mt-0.5 size-4 shrink-0\" />\n <Toast.Content className=\"grid flex-1 gap-1\">\n <Toast.Title className=\"font-medium\" />\n <Toast.Description className=\"text-caption text-muted-foreground\" />\n </Toast.Content>\n </Toast.Root>\n ))}\n </Toast.Viewport>\n </Toast.Portal>\n );\n}\n"],"names":["replaceAddress","history","address","replaceState","$$RSC_SERVER_ACTION_5","putToastOf","option","title","String","description","BasketToasts","toasts","useToastManager","Portal","Viewport","className","map","toast","Root","Content","Title","Description","id"],"mappings":"4FASO,SAAwBC,AAAfD,CAAsC,CAAEE,CAAe,EACrED,EAAQE,YAAY,CAAC,KAAM,GAAID,EACjC,qBCLO,SAAS,AAAc,CAAgE,EAC5F,IAAM,EAAQ,IAAI,gBAAgB,CAAE,MAAO,EAAQ,OAAO,CAAE,QAAuB,IAAnB,EAAQ,MAAM,CAAiBA,CAAC,EAAI,CAAE,OAAQ,EAAQ,MAAM,AAAC,CAAC,AAAE,GAChI,MAAO,GAAG,UAAiB,IAAH,CAAC,cAAqB,EAAQ,SAAS,EAAE,CAAC,EAAE,EAAM,QAAQ,IACpF,AADwF,UCRoH,IAAA,EAAA,EAAA,CAAA,CAAA,MAAsG,IAAM,EAAmC,CAAA,EAAA,EAAA,iBAAb,IAAa,AAAqB,EAAC,KAAxB,wCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAAC,uCCAjJ,IAAM,EAAmC,CAAA,EAAA,EAAA,iBAAb,IAAa,AAAqB,EAAC,KAAxB,wCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAAC,qCCA/I,IAAM,EAAmC,CAAA,EAAA,EAAA,iBAAb,IAAa,AAAqB,EAAC,KAAxB,wCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAAC,qCCAhJ,IAAM,EAAmC,CAAA,EAAA,EAAA,iBAAb,IAAa,AAAqB,EAAC,KAAxB,wCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAAC,oCCA3I,IAAM,EAAmC,CAAA,EAAA,EAAA,iBAAb,IAAa,AAAqB,EAAC,KAAxB,wCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAACF,kDCApP,IAAA,EAAA,EAAA,CAAA,CAAA,MAAsG,IAAMI,EAAmC,CAAA,EAAA,EAAA,iBAAb,IAAa,AAAqB,EAAC,KAAxB,wCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAAC,+DCEnc,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OCVA,EAAA,EAAA,CAAA,CAAA,KAAA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAcO,SAASM,IACd,GAAM,QAAEC,CAAM,CAAE,CAAG,EAAA,CAAK,CAACC,eAAe,GACxC,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAK,CAACC,MAAM,CAAA,UACX,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAK,CAACC,QAAQ,CAAA,CAACC,UAAU,2FACvBJ,EAAOK,GAAG,CAAC,AAACC,GACX,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,CAAK,CAACC,IAAI,CAAA,CAAgBD,MAAOA,EAAO,cAAY,sBAAsBF,UAAU,oHACnF,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAc,CAAA,CAAC,aAAW,CAAA,CAAA,EAACA,UAAU,2BACtC,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,CAAK,CAACI,OAAO,CAAA,CAACJ,UAAU,8BACvB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAK,CAACK,KAAK,CAAA,CAACL,UAAU,gBACvB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAK,CAACM,WAAW,CAAA,CAACN,UAAU,4CAJhBE,EAAMK,EAAE,MAWnC,CDlBA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAoDA,SAAS,EAAa,SAAE,CAAO,cAAE,CAAY,YAAE,CAAU,OAAE,CAAK,UAAE,CAAQ,CAA+J,EACvO,IAAM,EAAS,EAAA,CAAK,CAAC,eAAe,GAC9B,EAAc,CAAA,EAAA,EAAA,CAAA,AAAc,IAC5B,CAAC,EAAO,EAAS,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,IAC5B,CAAC,EAAM,EAAQ,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAC,IAC3B,CAAC,EAAW,EAAa,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,IACpC,CAAC,EAAW,EAAa,CAAG,CAAA,EAAA,EAAA,QAAQ,AAAR,IAC5B,CAAC,EAAS,EAAW,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,IAChC,CAAC,EAAa,EAAe,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,IACxC,CAAC,EAAS,EAAW,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,IAChC,CAAC,EAAM,EAAQ,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,IAC1B,EAAG,EAAgB,CAAG,CAAA,EAAA,EAAA,aAAa,AAAb,IAEtB,CAAC,EAAY,EAAc,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAC,GAC7C,CAAA,EAAA,EAAA,CAAA,AAAa,OAAW,IAAV,OAAsB,EAAY,CAAA,EAAA,EAAA,CAAA,AAAc,EAAC,EAAM,MAAM,CAAC,GAAG,EAAG,KAChF,OAAS,EACX,GAEA,IAAM,EAAO,AAAC,IACZ,EAAa,EAAK,UAAU,EAC5B,OAAe,GACf,EAAQ,QACR,EAAgB,UACd,IAAM,EAAU,MAAM,CAAA,EAAA,EAAA,CAAA,AAAY,EAAC,EAAS,EAAK,UAAU,EAE3D,GADA,OAAa,GACT,EAAQ,IAAI,CAAE,CAChB,IAAM,EAAW,EAAK,QAAQ,EAAI,KAClC,EAAS,CAAE,SAAU,EAAQ,KAAK,CAAE,OAAQ,CAAE,IAAK,EAAK,GAAG,CAAE,QAAS,EAAK,OAAO,GAAI,EAAO,OAAuB,SAAf,EAAK,KAAK,AAAY,WAAG,EAAU,SAAU,IAAK,GACvJ,EAAQ,GAAU,MAAQ,IAC1B,OAAW,EACb,MACE,CADK,CACU,CAAE,WAAY,EAAK,UAAU,CAAE,QAAS,EAAQ,OAAO,AAAC,EAE3E,EACF,EAGM,EAAiB,CAAA,EAAA,EAAA,MAAM,AAAN,GAAO,GAC9B,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,KACR,GAAI,EAAe,OAAO,CACxB,CAD0B,KAG5B,GAAe,OAAO,EAAG,EACzB,IAAM,EAAY,CAAA,EAAA,EAAA,CAAA,AAAa,EAAC,OAAO,QAAQ,CAAC,IAAI,CAAE,GAC/B,QAAQ,CAA3B,EAAU,IAAI,CAChB,EAAK,EAAU,IAAI,EACS,QAAQ,CAA3B,EAAU,IAAI,GACvB,CAAA,EAAA,EAAA,CAAA,AAAc,EAAC,OAAO,OAAO,CAAE,CAAA,EAAA,EAAA,CAAA,AAAe,EAAC,OAAO,QAAQ,CAAC,IAAI,MAAE,IACrE,EAAQ,yCAEZ,GACA,IAAM,EAAY,GAAO,SAAS,WAE5B,EAAc,EAAM,IAAI,CAAC,CAAC,YAAE,CAAU,CAAE,GAAK,IAAe,IAAY,OAAS,KACvF,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,KACY,OAAhB,QAAsC,IAAd,GAC1B,EAAS,AAAC,EADyC,CAC5B,AAAY,WAAY,EAAU,CAAE,GAAG,CAAO,CAAE,SAAU,CAAA,EAAA,EAAA,CAAA,AAAe,EAAC,EAAQ,QAAQ,CAAE,CAAC,CAAE,WAAY,EAAW,MAAO,CAAY,EAAE,CAAE,EAExK,EAAG,CAAC,EAAa,EAAU,EAC3B,IAAM,EAAiB,CAAA,EAAA,EAAA,MAAA,AAAM,GAAC,GAC9B,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,KAER,GAAI,CAAC,EAAe,OAAO,CAAE,CAC3B,EAAe,OAAO,EAAG,EACzB,MACF,CACA,CAAA,EAAA,EAAA,CAAA,AAAc,EAAC,OAAO,OAAO,CAAE,CAAA,EAAA,EAAA,CAAe,AAAf,EAAgB,OAAO,QAAQ,CAAC,IAAI,CAAE,GACvE,EAAG,CAAC,EAAU,EAmBd,IAAM,EAAS,CAAK,SAAE,CAAO,QAAE,CAAM,WAAE,CAAS,CAAwG,IACtJ,EAAW,GACX,OAAW,GACX,EAAgB,UACd,IAAM,EAAU,MAAM,IACtB,OAAW,GACP,EAAQ,IAAI,CACd,CADgB,CACN,EAAQ,KAAK,EAEvB,EAAW,EAAQ,OAAO,CAE9B,EACF,EAGM,GAAQ,AAAC,GAAiB,KAC9B,OAAS,GACT,EAAQ,EACV,EA8CM,QAAmB,IAAV,OAAsB,EAAY,CAAE,WAAY,EAAM,QAAQ,CAAC,UAAU,CAAE,IAAK,EAAM,MAAM,CAAC,GAAG,AAAC,EAChH,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAS,CAAA,CACR,KACE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAqB,UAAU,uBAC7B,KAAS,MAAY,KAAO,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAM,CAAA,CAAC,QAAS,EAAM,WAAW,IAC9D,EAAS,MAAE,YAAM,EAAW,QAtFrB,CAAC,EAAa,KAC5B,EAAa,EAAK,UAAU,EAC5B,OAAe,GACf,OAAQ,GACR,EAAgB,UACd,IAAM,EAAU,MAAM,CAAA,EAAA,EAAA,CAAA,AAAe,EAAC,CAAE,MAAO,EAAS,WAAY,EAAK,UAAU,QAAE,CAAO,GAC5F,OAAa,GACT,EAAQ,IAAI,EAAE,AAChB,EAAQ,CAAC,OAAO,EAAE,OAAO,GAAQ,6BAA6B,EAAE,EAAK,IAAI,CAAC,sCAAsC,CAAC,EACjH,EAAc,AAAC,GAAU,EAAQ,IAEjC,EAAe,CAAE,WAAY,EAAK,UAAU,CAAE,QAAS,EAAQ,OAAO,AAAC,EAE3E,EACF,YAwE8C,EAAW,QAAS,SAAa,EAAO,KAFtE,GAKZ,UAAgB,IAAV,OAAsB,EAAY,CArD7B,CAAC,UAAE,CAAQ,UAAE,CAAQ,CAAE,QAAM,UAAE,CAAQ,CAA6B,IACjF,IAAM,EAAa,EAAS,QAAQ,EAAE,GACtC,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAY,CAAA,CAEX,SAAU,EACV,OAAQ,EACR,iBAAoC,IAAvB,EAAS,SAAS,MAAiB,EAAY,CAAA,EAAA,EAAA,CAAA,AAAa,EAAC,CAAE,UAAS,UAAW,EAAS,SAAS,AAAC,GACnH,WAAY,EACZ,WAAY,CAAA,EAAA,EAAA,CAAA,AAAO,EAAC,EAAA,CAAkB,CAAE,GACxC,SAAU,EACV,SAAU,EACV,OAAQ,EACR,KAAM,EACN,QAAS,EACT,QAAS,EACT,aAAc,EACd,SAAU,AAAC,IAAa,EAAO,CAAE,aAAoB,IAAX,EAAuB,CAAE,KAAM,MAAO,EAAI,CAAE,KAAM,gBAAU,CAAO,EAAG,OAAQ,IAAM,CAAA,EAAA,EAAA,CAAA,AAAc,EAAC,CAAE,MAAO,EAAS,WAAY,EAAS,UAAU,CAAE,MAAO,CAAE,WAAY,EAAS,QAAQ,EAAE,UAAI,OAAQ,CAAK,CAAE,GAAI,UAAW,GAAM,CAAC,oBAAoB,EAAE,EAAS,IAAI,CAAC,CAAC,CAAC,CAAE,EAAI,EAE7T,MAAO,AAAC,IAAa,EAAO,CAAE,QAAoB,OAAX,EAAkB,CAAE,KAAM,MAAO,EAAI,CAAE,KAAM,gBAAU,CAAO,EAAG,OAAQ,IAAM,CAAA,EAAA,EAAA,CAAW,AAAX,EAAY,CAAE,MAAO,EAAS,WAAY,EAAS,UAAU,QAAE,EAAQ,YAAa,EAAS,QAAQ,EAAE,QAAQ,KAAK,CAAC,CAAE,KAAG,CAAE,GAAK,IAAQ,IAAS,OAAS,UAAM,CAAK,GAAI,UAAW,AAAC,QCzLzRhB,ED0Lb,EAAS,EC1LyB,QD0LvB,SAAU,WAAQ,EAAU,SAAU,CAAI,GACrD,EAAO,GAAG,CAAC,AC1LhB,CAAEC,MAAOD,AAAW,UD0LO,EAAI,MAAM,EC1LV,gCAAkC,CAAC,OAAO,EAAEE,OAAOF,GAAQ,cAAc,CAAC,CAAEG,YAAa,mDAAoD,ED2LrK,CAAE,EAAI,EACV,OAAQ,AAAC,IAAa,EAAO,CAAE,QAAS,CAAE,KAAM,MAAO,EAAG,OAAQ,IAAM,CAAA,EAAA,EAAA,CAAA,AAAc,EAAC,CAAE,MAAO,EAAS,WAAY,EAAS,UAAU,CAAE,MAAO,YAAE,EAAY,OAAQ,QAAU,OAAW,CAAK,CAAE,GAAI,UAAW,GAAM,CAAC,oBAAoB,EAAE,EAAS,IAAI,CAAC,CAAC,CAAC,CAAE,EAAI,EACrQ,SAAU,UACW,IAAf,GACF,EAAO,CAAE,CADmB,OACV,CAAE,KAAM,QAAS,EAAG,OAAQ,IAAM,CAAA,EAAA,EAAA,CAAgB,AAAhB,EAAiB,EAAS,GAAa,UAAW,GAAM,CAAC,gBAAgB,EAAE,EAAS,KAAK,CAAC,wDAAwD,CAAC,CAAE,EAE7M,EACA,OAAQ,KAAQ,EAAO,CAAE,QAAS,CAAE,KAAM,MAAO,EAAG,OAAQ,IAAM,CAAA,EAAA,EAAA,CAAA,AAAY,EAAC,CAAE,MAAO,EAAS,WAAY,EAAS,UAAU,AAAC,GAAI,UAAW,GAAM,CAAC,WAAW,EAAE,EAAS,KAAK,CAAC,EAAE,CAAC,CAAE,EAAI,EAC5L,aAAc,AAAC,IACb,EAAO,CACL,QAAS,CAAE,KAAM,CAAQ,EACzB,OAAQ,IAAM,CAAA,EAAA,EAAA,CAAA,AAAY,EAAC,CAAE,MAAO,EAAS,WAAY,EAAS,UAAU,CAAE,KAAM,SAAE,OAAS,CAAK,CAAE,GACtG,UAAW,KAAQ,EAAS,UAAE,WAAU,SAAU,EAAQ,SAAU,SAAE,EAAS,KAAM,EAAK,IAAI,GAAI,GAAI,IAAI,OAAO,WAAW,EAAG,CAAE,EAAI,CACvI,EACF,EACA,OAAQ,AAAC,IAAiB,EAAK,YAAE,EAAY,IAAK,EAAO,GAAG,AAAC,EAAI,EACjE,mBAAsC,IAAvB,EAAS,SAAS,OAAkC,IAAhB,OAA4B,EAAY,AAAC,IAAgB,EAAY,WAAE,CAAU,EAAI,EACxI,OAAQ,KAAQ,OAAS,EAAY,GAnChC,EAAS,UAAU,EAsC9B,EAWmD,IAGrD,YA3KO,SAAS,AAAU,SAAE,CAAO,cAAE,CAAY,YAAE,CAAU,CAAE,OAAK,UAAE,CAAQ,CAA0T,EACtY,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,CAAK,CAAC,QAAQ,CAAA,WACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAa,QAAS,EAAS,aAAc,EAAc,WAAY,EAAY,MAAO,WAAQ,IACnG,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAA,KAGP"}
@@ -0,0 +1,3 @@
1
+ (()=>{"use strict";module.exports=[68667,52779,83019,46085,20581,22182,95015,a=>{a.s(["f",0,function(a,b){a.replaceState(null,"",b)}],68667),a.s(["f",0,function(a){let b=new URLSearchParams({fleet:a.fleetId,...void 0===a.cursor?{}:{cursor:a.cursor}});return`/meetings/${encodeURIComponent(a.meetingId)}?${b.toString()}`}],52779);var b=a.i(5050);let c=(0,b.createServerReference)("40db7d83ab9618e36e567bcf66243a9a52614c933c",b.callServer,void 0,b.findSourceMapURL,"answerDelivery");a.s(["f",0,c],83019);let d=(0,b.createServerReference)("40d1b5efb67059d5ee812d8865798359fb723fb4e4",b.callServer,void 0,b.findSourceMapURL,"doneDelivery");a.s(["f",0,d],46085);let e=(0,b.createServerReference)("602390e5d7f0d17092beab792cafdd485bfb28d868",b.callServer,void 0,b.findSourceMapURL,"openDelivery");a.s(["f",0,e],20581);let f=(0,b.createServerReference)("405f92098d95e14188d3c2e2058e1b73d6468d725b",b.callServer,void 0,b.findSourceMapURL,"putInBasket");a.s(["f",0,f],22182);let g=(0,b.createServerReference)("40d6d035364bed586c26cd7d80196b6f40cc3ed5af",b.callServer,void 0,b.findSourceMapURL,"putPickInBasket");a.s(["f",0,g],95015)},3196,a=>{var b=a.i(5050);let c=(0,b.createServerReference)("60805144861012c3c1c5af3c3730c5ad189ec00cb2",b.callServer,void 0,b.findSourceMapURL,"removeFromBasket");a.s(["f",0,c])},91777,a=>{var b=a.i(87924),c=a.i(99271),d=a.i(76983),e=a.i(72131),f=a.i(68667),g=a.i(52779),h=a.i(25959),i=a.i(83019),j=a.i(46085),k=a.i(20581),l=a.i(22182),m=a.i(95015),n=a.i(3196),o=a.i(16550),p=a.i(99838),q=a.i(51493),r=a.i(17758),s=a.i(805),t=a.i(60232),u=a.i(62043),v=a.i(11591),w=a.i(58710),x=a.i(93294),y=a.i(55596);function z(){let{toasts:a}=d.f.useToastManager();return(0,b.jsx)(s.f.Portal,{children:(0,b.jsx)(t.f.Viewport,{className:"fixed bottom-4 left-4 z-50 hidden w-[min(24rem,calc(100vw-2rem))] gap-2 sm:grid",children:a.map(a=>(0,b.jsxs)(u.f.Root,{toast:a,"data-testid":"bridge-basket-toast",className:"flex items-start gap-3 rounded-lg border border-border bg-popover p-4 text-popover-foreground shadow-lg",children:[(0,b.jsx)(y.f,{"aria-hidden":!0,className:"mt-0.5 size-4 shrink-0"}),(0,b.jsxs)(v.f.Content,{className:"grid flex-1 gap-1",children:[(0,b.jsx)(w.f.Title,{className:"font-medium"}),(0,b.jsx)(x.f.Description,{className:"text-caption text-muted-foreground"})]})]},a.id))})})}var A=a.i(11725),B=a.i(74352),C=a.i(10039),D=a.i(34129),E=a.i(18145);function F({fleetId:a,decidePlaces:c,consoleUrl:s,known:t,children:u}){let v=d.f.useToastManager(),w=(0,D.P)(),[x,y]=(0,e.useState)(),[z,G]=(0,e.useState)(""),[H,I]=(0,e.useState)(),[J,K]=(0,e.useState)(),[L,M]=(0,e.useState)(),[N,O]=(0,e.useState)(),[P,Q]=(0,e.useState)(),[R,S]=(0,e.useState)(),[,T]=(0,e.useTransition)(),[U,V]=(0,e.useState)(0);(0,E.R)(void 0===x?void 0:(0,r.u)(x.opened.job),()=>{y(void 0)});let W=b=>{I(b.deliveryId),O(void 0),S(void 0),T(async()=>{let c=await (0,k.f)(a,b.deliveryId);if(I(void 0),c.isOk){let a=b.inBasket??null;y({delivery:c.value,opened:{job:b.job,isAlert:b.isAlert??!1,wasNew:"seen"!==b.state},inBasket:a,finished:null}),G(a?.note??""),Q(void 0)}else O({deliveryId:b.deliveryId,message:c.message})})},X=(0,e.useRef)(!1);(0,e.useEffect)(()=>{if(X.current)return;X.current=!0;let a=(0,q.L)(window.location.href,t);"open"===a.kind?W(a.item):"gone"===a.kind&&((0,f.f)(window.history,(0,q.v)(window.location.href,void 0)),S("That item is no longer in your inbox."))});let Y=x?.delivery.deliveryId,Z=t.find(({deliveryId:a})=>a===Y)?.stale??null;(0,e.useEffect)(()=>{null!==Z&&void 0!==Y&&y(a=>void 0===a?a:{...a,delivery:(0,p.B)(a.delivery,[{deliveryId:Y,stale:Z}])})},[Z,Y]);let $=(0,e.useRef)(!1);(0,e.useEffect)(()=>{if(!$.current){$.current=!0;return}(0,f.f)(window.history,(0,q.v)(window.location.href,Y))},[Y]);let _=({control:a,action:b,onSettled:c})=>{M(a),Q(void 0),T(async()=>{let a=await b();M(void 0),a.isOk?c(a.value):Q(a.message)})},aa=a=>()=>{y(void 0),S(a)},ab=void 0===x?void 0:{deliveryId:x.delivery.deliveryId,job:x.opened.job};return(0,b.jsx)(B.f,{list:(0,b.jsxs)("div",{className:"grid gap-4",children:[void 0===R?null:(0,b.jsx)(C.f,{message:R,isFailure:!1}),u({open:W,openingId:H,putPick:(b,c)=>{K(b.deliveryId),O(void 0),S(void 0),T(async()=>{let d=await (0,m.f)({fleet:a,deliveryId:b.deliveryId,option:c});K(void 0),d.isOk?(S(`Option ${String(c)} is in the basket, not sent: ${b.from} receives it when you send the basket.`),V(a=>a+1)):O({deliveryId:b.deliveryId,message:d.message})})},puttingId:J,failure:N,opened:ab})]},U),item:void 0===x?void 0:(({delivery:d,inBasket:e,opened:f,finished:k})=>{let m=d.question?.id;return(0,b.jsx)(A.u,{delivery:d,opened:f,meetingHref:void 0===d.meetingId?void 0:(0,g.f)({fleetId:a,meetingId:d.meetingId}),consoleUrl:s,basketHref:(0,h.i)(o.H,a),inBasket:e,finished:k,places:c,note:z,working:L,failure:P,onNoteChange:G,onAnswer:b=>{_({control:void 0===b?{kind:"note"}:{kind:"option",option:b},action:()=>(0,i.f)({fleet:a,deliveryId:d.deliveryId,input:{questionId:d.question?.id,option:b,note:z}}),onSettled:aa(`Your answer went to ${d.from}.`)})},onPut:b=>{_({control:null===b?{kind:"note"}:{kind:"option",option:b},action:()=>(0,l.f)({fleet:a,deliveryId:d.deliveryId,option:b,optionLabel:d.question?.options.find(({key:a})=>a===b)?.label??null,note:z}),onSettled:a=>{var b;y({delivery:d,opened:f,finished:k,inBasket:a}),v.add({title:null===(b=a.option)?"Your note alone in the basket":`Option ${String(b)} in the basket`,description:"Not sent. Still waiting on you until you send it."})}})},onSend:b=>{_({control:{kind:"send"},action:()=>(0,i.f)({fleet:a,deliveryId:d.deliveryId,input:{questionId:m,option:b??void 0,note:z}}),onSettled:aa(`Your answer went to ${d.from}.`)})},onRemove:()=>{void 0!==m&&_({control:{kind:"remove"},action:()=>(0,n.f)(a,m),onSettled:aa(`Your answer to “${d.title}” is out of the basket; the question still waits on you.`)})},onDone:()=>{_({control:{kind:"done"},action:()=>(0,j.f)({fleet:a,deliveryId:d.deliveryId}),onSettled:aa(`Done with “${d.title}”.`)})},onFinishStep:b=>{_({control:{kind:b},action:()=>(0,j.f)({fleet:a,deliveryId:d.deliveryId,step:{outcome:b,note:z}}),onSettled:()=>{y({delivery:d,inBasket:e,opened:f,finished:{outcome:b,note:z.trim(),at:new Date().toISOString()}})}})},onOpen:a=>{W({deliveryId:a,job:f.job})},onSendMessage:void 0===d.alertShip||void 0===w?void 0:a=>{w({alertShip:a})},onBack:()=>{y(void 0)}},d.deliveryId)})(x)})}a.s(["f",0,function({fleetId:a,decidePlaces:d,consoleUrl:e,known:f,children:g}){return(0,b.jsxs)(c.f.Provider,{children:[(0,b.jsx)(F,{fleetId:a,decidePlaces:d,consoleUrl:e,known:f,children:g}),(0,b.jsx)(z,{})]})}],91777)}]})();
2
+
3
+ //# sourceMappingURL=_1j80let80btdj._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../bridge/item-address/hooks/replace-address.ts","../../../../../web/features/meeting/paths.ts","../../../../../web/features/bridge/hooks/data%3A1d98dd%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3Ae5cd2f%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3A9e7156%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3A6c7ff1%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3A107183%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3Ae94dc6%20%3Ctext/javascript%3E","../../../../../web/features/bridge/state/item-focus.tsx","../../../../../web/features/bridge/ui/basket-toast.tsx"],"sourcesContent":["/** The browser's history, as far as Bridge writes the open item's address into it. */\nexport type AddressHistory = Pick<History, 'replaceState'>;\n\n/**\n * Puts the address in place of the current one, with no new history entry and\n * no page read. It writes no state of its own: Next.js's router takes a write\n * carrying its own state as its own and keeps its old address, which its next\n * page re-read would write back (#282).\n */\nexport function replaceAddress(history: AddressHistory, address: string): void {\n history.replaceState(null, '', address);\n}\n","/** Where a meeting's page is, for server and client code alike. */\n\n/** The meeting page's address, before the meeting's id. */\nexport const MEETINGS_PATH = '/meetings';\n\n/** The address of a meeting's page in a fleet, at the page of contributions after the cursor, if one is given. */\nexport function meetingPathOf(meeting: { fleetId: string; meetingId: string; cursor?: string }): string {\n const query = new URLSearchParams({ fleet: meeting.fleetId, ...(meeting.cursor === undefined ? {} : { cursor: meeting.cursor }) });\n return `${MEETINGS_PATH}/${encodeURIComponent(meeting.meetingId)}?${query.toString()}`;\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"40dc940782447fa774ade2cbd00f4f5bb7677a387c\":{\"name\":\"answerDelivery\"}},\"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_2=/*#__PURE__*/createServerReference(\"40dc940782447fa774ade2cbd00f4f5bb7677a387c\",callServer,void 0,findSourceMapURL,\"answerDelivery\");export{$$RSC_SERVER_ACTION_2 as answerDelivery};","/* __next_internal_action_entry_do_not_use__ [{\"40f7d239d4fa7db323b65eee64b38f84dd04f23c94\":{\"name\":\"doneDelivery\"}},\"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(\"40f7d239d4fa7db323b65eee64b38f84dd04f23c94\",callServer,void 0,findSourceMapURL,\"doneDelivery\");export{$$RSC_SERVER_ACTION_7 as doneDelivery};","/* __next_internal_action_entry_do_not_use__ [{\"6094f8831475d7ac21d1dc317952b7d23d22a8110e\":{\"name\":\"openDelivery\"}},\"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_1=/*#__PURE__*/createServerReference(\"6094f8831475d7ac21d1dc317952b7d23d22a8110e\",callServer,void 0,findSourceMapURL,\"openDelivery\");export{$$RSC_SERVER_ACTION_1 as openDelivery};","/* __next_internal_action_entry_do_not_use__ [{\"40a063a0888116f6fe87ec56db167344aea3de800d\":{\"name\":\"putInBasket\"}},\"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_3=/*#__PURE__*/createServerReference(\"40a063a0888116f6fe87ec56db167344aea3de800d\",callServer,void 0,findSourceMapURL,\"putInBasket\");export{$$RSC_SERVER_ACTION_3 as putInBasket};","/* __next_internal_action_entry_do_not_use__ [{\"4044bf5bb9d6e6852f8d646440f2b46c84691dfa43\":{\"name\":\"putPickInBasket\"}},\"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_4=/*#__PURE__*/createServerReference(\"4044bf5bb9d6e6852f8d646440f2b46c84691dfa43\",callServer,void 0,findSourceMapURL,\"putPickInBasket\");export{$$RSC_SERVER_ACTION_4 as putPickInBasket};","/* __next_internal_action_entry_do_not_use__ [{\"60d2401f70d2510a8be450676693583f551f140dd6\":{\"name\":\"removeFromBasket\"}},\"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_5=/*#__PURE__*/createServerReference(\"60d2401f70d2510a8be450676693583f551f140dd6\",callServer,void 0,findSourceMapURL,\"removeFromBasket\");export{$$RSC_SERVER_ACTION_5 as removeFromBasket};","'use client';\n\nimport { Toast } from '@base-ui/react/toast';\nimport { useEffect, useRef, useState, useTransition, type ReactNode } from 'react';\n\nimport { replaceAddress } from '../../../../bridge/item-address/hooks/replace-address';\nimport { meetingPathOf } from '../../meeting/paths';\nimport { inFleet } from '../../../lib/gateway-api/page-account';\nimport { answerDelivery, doneDelivery, openDelivery, putInBasket, putPickInBasket, removeFromBasket, type ActionOutcome } from '../hooks/bridge-actions';\nimport { BRIDGE_BASKET_PATH } from '../paths';\nimport { staleAsListedOf, type FocusedDelivery } from '../services/deliveries';\nimport { addressWithItem, itemOfAddress, type KnownItem } from '../services/item-address';\nimport { openedScreenOf } from '../services/shell';\nimport type { HomeItem } from '../services/items';\nimport type { RoutedPlace } from '../services/routing';\nimport { BasketToasts, putToastOf } from '../ui/basket-toast';\nimport { DeliveryCard, type DeliveryControl, type InBasket, type Opened, type StepFinished } from '../ui/delivery-card';\nimport { ItemSplit } from '../ui/item-split';\nimport { Notice } from '../ui/notice';\nimport { useSendMessage } from './send-message';\nimport { useOpenedItem } from './opened-item';\n\n/** An item to open: by its delivery, with its job, whether an alert, whether it was new, and the answer to it in the basket, if any. A replacement opened from its stale item is new. */\nexport interface ToOpen {\n readonly deliveryId: string;\n readonly job: HomeItem['job'];\n readonly isAlert?: boolean;\n readonly state?: HomeItem['state'];\n readonly inBasket?: InBasket | null;\n}\n\n/** A question to put its asker's pick in the basket from its row: by its delivery, from its asker. */\nexport interface ToPut {\n readonly deliveryId: string;\n readonly from: string;\n}\n\n/** What a list of items gets to open one or put a pick in the basket from its row: the presses, the one opening or putting, and why one could not be. */\nexport interface ItemOpening {\n readonly open: (item: ToOpen) => void;\n readonly openingId: string | undefined;\n readonly putPick: (item: ToPut, option: number) => void;\n readonly puttingId: string | undefined;\n readonly failure: { deliveryId: string; message: string } | undefined;\n /** The item open beside the list, by its delivery and job; none while the list is shown alone. */\n readonly opened: { readonly deliveryId: string; readonly job: HomeItem['job'] } | undefined;\n}\n\n/**\n * A list of Bridge's items with one in focus at a time. Opening is the\n * person's own act, so it is a press, never a link: the gateway acknowledges\n * the item for them, and it is shown whole. An alert or a notice seen is\n * done at once (CC16), so it shows with no answer to give, as does a\n * question its asker withdrew or replaced; a replaced one opens its\n * replacement. A step ends done or cannot with the note, sent at once,\n * never through the basket (CC23), and stays open showing its outcome. A question's answer goes in the basket (CC24): the\n * question stays open saying so, with a toast (basket.html), and comes out\n * of it there; from its row, a new question's pick goes in it at once, opened by the same press. Answering or being done says so in place, and the page reads\n * itself again. A question names where it shows when the page read its places.\n * An opened alert offers to send its ship a message, as home offers to send\n * any ship one (aeolus-fleet #1547). The open item shows beside its list on\n * a desktop, and on its own screen on a phone (aeolus-fleet#1538).\n */\nexport function ItemFocus({ fleetId, decidePlaces, consoleUrl, known, children }: { fleetId: string; decidePlaces?: readonly RoutedPlace[]; /** The fleet's console, where an opened alert's ship shows its Health. */ consoleUrl?: string; /** The items the page lists, where the address finds the one to open again. */ known: readonly KnownItem[]; children: (opening: ItemOpening) => ReactNode }) {\n return (\n <Toast.Provider>\n <FocusedItems fleetId={fleetId} decidePlaces={decidePlaces} consoleUrl={consoleUrl} known={known}>{children}</FocusedItems>\n <BasketToasts />\n </Toast.Provider>\n );\n}\n\nfunction FocusedItems({ fleetId, decidePlaces, consoleUrl, known, children }: { fleetId: string; decidePlaces?: readonly RoutedPlace[]; consoleUrl?: string; known: readonly KnownItem[]; children: (opening: ItemOpening) => ReactNode }) {\n const toasts = Toast.useToastManager();\n const sendMessage = useSendMessage();\n const [focus, setFocus] = useState<{ delivery: FocusedDelivery; opened: Opened; inBasket: InBasket | null; finished: StepFinished | null } | undefined>();\n const [note, setNote] = useState('');\n const [openingId, setOpeningId] = useState<string | undefined>();\n const [puttingId, setPuttingId] = useState<string | undefined>();\n const [working, setWorking] = useState<DeliveryControl | undefined>();\n const [openFailure, setOpenFailure] = useState<{ deliveryId: string; message: string } | undefined>();\n const [failure, setFailure] = useState<string | undefined>();\n const [done, setDone] = useState<string | undefined>();\n const [, startTransition] = useTransition();\n // Each pick put from a row shows the list anew, as it is after a card: it reads the page as the action left it.\n const [shownTimes, setShownTimes] = useState(0);\n useOpenedItem(focus === undefined ? undefined : openedScreenOf(focus.opened.job), () => {\n setFocus(undefined);\n });\n\n const open = (item: ToOpen) => {\n setOpeningId(item.deliveryId);\n setOpenFailure(undefined);\n setDone(undefined);\n startTransition(async () => {\n const outcome = await openDelivery(fleetId, item.deliveryId);\n setOpeningId(undefined);\n if (outcome.isOk) {\n const inBasket = item.inBasket ?? null;\n setFocus({ delivery: outcome.value, opened: { job: item.job, isAlert: item.isAlert ?? false, wasNew: item.state !== 'seen' }, inBasket, finished: null });\n setNote(inBasket?.note ?? '');\n setFailure(undefined);\n } else {\n setOpenFailure({ deliveryId: item.deliveryId, message: outcome.message });\n }\n });\n };\n\n // The address names the open item: a refresh, or the address opened anew, opens it again.\n const wasAddressRead = useRef(false);\n useEffect(() => {\n if (wasAddressRead.current) {\n return;\n }\n wasAddressRead.current = true;\n const addressed = itemOfAddress(window.location.href, known);\n if (addressed.kind === 'open') {\n open(addressed.item);\n } else if (addressed.kind === 'gone') {\n replaceAddress(window.history, addressWithItem(window.location.href, undefined));\n setDone('That item is no longer in your inbox.');\n }\n });\n const focusedId = focus?.delivery.deliveryId;\n // The list reads itself again as the fleet changes: an open item its asker withdrew or replaced meanwhile turns read-only as its row does (#240).\n const listedStale = known.find(({ deliveryId }) => deliveryId === focusedId)?.stale ?? null;\n useEffect(() => {\n if (listedStale !== null && focusedId !== undefined) {\n setFocus((focused) => (focused === undefined ? focused : { ...focused, delivery: staleAsListedOf(focused.delivery, [{ deliveryId: focusedId, stale: listedStale }]) }));\n }\n }, [listedStale, focusedId]);\n const wasFocusSynced = useRef(false);\n useEffect(() => {\n // The first run is the page as the address left it, which the opening above reads.\n if (!wasFocusSynced.current) {\n wasFocusSynced.current = true;\n return;\n }\n replaceAddress(window.history, addressWithItem(window.location.href, focusedId));\n }, [focusedId]);\n\n /** Opens a question and puts its asker's pick in the basket, with no note, from its row: nothing is sent (CC24). */\n const putPick = (item: ToPut, option: number) => {\n setPuttingId(item.deliveryId);\n setOpenFailure(undefined);\n setDone(undefined);\n startTransition(async () => {\n const outcome = await putPickInBasket({ fleet: fleetId, deliveryId: item.deliveryId, option });\n setPuttingId(undefined);\n if (outcome.isOk) {\n setDone(`Option ${String(option)} is in the basket, not sent: ${item.from} receives it when you send the basket.`);\n setShownTimes((times) => times + 1);\n } else {\n setOpenFailure({ deliveryId: item.deliveryId, message: outcome.message });\n }\n });\n };\n\n const settle = <T,>({ control, action, onSettled }: { control: DeliveryControl; action: () => Promise<ActionOutcome<T>>; onSettled: (value: T) => void }) => {\n setWorking(control);\n setFailure(undefined);\n startTransition(async () => {\n const outcome = await action();\n setWorking(undefined);\n if (outcome.isOk) {\n onSettled(outcome.value);\n } else {\n setFailure(outcome.message);\n }\n });\n };\n\n /** Back to the list, saying what was done. */\n const leave = (said: string) => () => {\n setFocus(undefined);\n setDone(said);\n };\n\n const cardOf = ({ delivery, inBasket, opened, finished }: NonNullable<typeof focus>) => {\n const questionId = delivery.question?.id;\n return (\n <DeliveryCard\n key={delivery.deliveryId}\n delivery={delivery}\n opened={opened}\n meetingHref={delivery.meetingId === undefined ? undefined : meetingPathOf({ fleetId, meetingId: delivery.meetingId })}\n consoleUrl={consoleUrl}\n basketHref={inFleet(BRIDGE_BASKET_PATH, fleetId)}\n inBasket={inBasket}\n finished={finished}\n places={decidePlaces}\n note={note}\n working={working}\n failure={failure}\n onNoteChange={setNote}\n onAnswer={(option) => { settle({ control: option === undefined ? { kind: 'note' } : { kind: 'option', option }, action: () => answerDelivery({ fleet: fleetId, deliveryId: delivery.deliveryId, input: { questionId: delivery.question?.id, option, note } }), onSettled: leave(`Your answer went to ${delivery.from}.`) }); }\n }\n onPut={(option) => { settle({ control: option === null ? { kind: 'note' } : { kind: 'option', option }, action: () => putInBasket({ fleet: fleetId, deliveryId: delivery.deliveryId, option, optionLabel: delivery.question?.options.find(({ key }) => key === option)?.label ?? null, note }), onSettled: (put) => {\n setFocus({ delivery, opened, finished, inBasket: put });\n toasts.add(putToastOf(put.option));\n } }); }}\n onSend={(option) => { settle({ control: { kind: 'send' }, action: () => answerDelivery({ fleet: fleetId, deliveryId: delivery.deliveryId, input: { questionId, option: option ?? undefined, note } }), onSettled: leave(`Your answer went to ${delivery.from}.`) }); }}\n onRemove={() => {\n if (questionId !== undefined) {\n settle({ control: { kind: 'remove' }, action: () => removeFromBasket(fleetId, questionId), onSettled: leave(`Your answer to “${delivery.title}” is out of the basket; the question still waits on you.`) });\n }\n }}\n onDone={() => { settle({ control: { kind: 'done' }, action: () => doneDelivery({ fleet: fleetId, deliveryId: delivery.deliveryId }), onSettled: leave(`Done with “${delivery.title}”.`) }); }}\n onFinishStep={(outcome) => {\n settle({\n control: { kind: outcome },\n action: () => doneDelivery({ fleet: fleetId, deliveryId: delivery.deliveryId, step: { outcome, note } }),\n onSettled: () => { setFocus({ delivery, inBasket, opened, finished: { outcome, note: note.trim(), at: new Date().toISOString() } }); },\n });\n }}\n onOpen={(deliveryId) => { open({ deliveryId, job: opened.job }); }}\n onSendMessage={delivery.alertShip === undefined || sendMessage === undefined ? undefined : (alertShip) => { sendMessage({ alertShip }); }}\n onBack={() => { setFocus(undefined); }}\n />\n );\n };\n\n const opened = focus === undefined ? undefined : { deliveryId: focus.delivery.deliveryId, job: focus.opened.job };\n return (\n <ItemSplit\n list={\n <div key={shownTimes} className=\"grid gap-4\">\n {done === undefined ? null : <Notice message={done} isFailure={false} />}\n {children({ open, openingId, putPick, puttingId, failure: openFailure, opened })}\n </div>\n }\n item={focus === undefined ? undefined : cardOf(focus)}\n />\n );\n}\n","'use client';\n\nimport { Toast } from '@base-ui/react/toast';\nimport { ShoppingBasket } from 'lucide-react';\n\n/** What a toast says: what happened, then what it means. */\nexport interface ToastWords {\n readonly title: string;\n readonly description: string;\n}\n\n/** What the toast says once an answer is in the basket (basket.html): what went in, not sent, still waiting. */\nexport function putToastOf(option: number | null): ToastWords {\n return { title: option === null ? 'Your note alone in the basket' : `Option ${String(option)} in the basket`, description: 'Not sent. Still waiting on you until you send it.' };\n}\n\n/** The toasts Bridge raised for the basket, each behind the basket icon, on the popover, gone by themselves: at the left on a desktop and none on a phone, as basket.html draws them. */\nexport function BasketToasts() {\n const { toasts } = Toast.useToastManager();\n return (\n <Toast.Portal>\n <Toast.Viewport className=\"fixed bottom-4 left-4 z-50 hidden w-[min(24rem,calc(100vw-2rem))] gap-2 sm:grid\">\n {toasts.map((toast) => (\n <Toast.Root key={toast.id} toast={toast} data-testid=\"bridge-basket-toast\" className=\"flex items-start gap-3 rounded-lg border border-border bg-popover p-4 text-popover-foreground shadow-lg\">\n <ShoppingBasket aria-hidden className=\"mt-0.5 size-4 shrink-0\" />\n <Toast.Content className=\"grid flex-1 gap-1\">\n <Toast.Title className=\"font-medium\" />\n <Toast.Description className=\"text-caption text-muted-foreground\" />\n </Toast.Content>\n </Toast.Root>\n ))}\n </Toast.Viewport>\n </Toast.Portal>\n );\n}\n"],"names":["replaceAddress","history","address","replaceState","$$RSC_SERVER_ACTION_5","putToastOf","option","title","String","description","BasketToasts","toasts","useToastManager","Portal","Viewport","className","map","toast","Root","Content","Title","Description","id"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../bridge/item-address/hooks/replace-address.ts","../../../../../web/features/meeting/paths.ts","../../../../../web/features/bridge/hooks/data%3A883151%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3Ae7df55%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3Acd7289%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3A09f5a3%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3A2ef5ab%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3A49411d%20%3Ctext/javascript%3E","../../../../../web/features/bridge/state/item-focus.tsx","../../../../../web/features/bridge/ui/basket-toast.tsx"],"sourcesContent":["/** The browser's history, as far as Bridge writes the open item's address into it. */\nexport type AddressHistory = Pick<History, 'replaceState'>;\n\n/**\n * Puts the address in place of the current one, with no new history entry and\n * no page read. It writes no state of its own: Next.js's router takes a write\n * carrying its own state as its own and keeps its old address, which its next\n * page re-read would write back (#282).\n */\nexport function replaceAddress(history: AddressHistory, address: string): void {\n history.replaceState(null, '', address);\n}\n","/** Where a meeting's page is, for server and client code alike. */\n\n/** The meeting page's address, before the meeting's id. */\nexport const MEETINGS_PATH = '/meetings';\n\n/** The address of a meeting's page in a fleet, at the page of contributions after the cursor, if one is given. */\nexport function meetingPathOf(meeting: { fleetId: string; meetingId: string; cursor?: string }): string {\n const query = new URLSearchParams({ fleet: meeting.fleetId, ...(meeting.cursor === undefined ? {} : { cursor: meeting.cursor }) });\n return `${MEETINGS_PATH}/${encodeURIComponent(meeting.meetingId)}?${query.toString()}`;\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"40db7d83ab9618e36e567bcf66243a9a52614c933c\":{\"name\":\"answerDelivery\"}},\"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_2=/*#__PURE__*/createServerReference(\"40db7d83ab9618e36e567bcf66243a9a52614c933c\",callServer,void 0,findSourceMapURL,\"answerDelivery\");export{$$RSC_SERVER_ACTION_2 as answerDelivery};","/* __next_internal_action_entry_do_not_use__ [{\"40d1b5efb67059d5ee812d8865798359fb723fb4e4\":{\"name\":\"doneDelivery\"}},\"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(\"40d1b5efb67059d5ee812d8865798359fb723fb4e4\",callServer,void 0,findSourceMapURL,\"doneDelivery\");export{$$RSC_SERVER_ACTION_7 as doneDelivery};","/* __next_internal_action_entry_do_not_use__ [{\"602390e5d7f0d17092beab792cafdd485bfb28d868\":{\"name\":\"openDelivery\"}},\"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_1=/*#__PURE__*/createServerReference(\"602390e5d7f0d17092beab792cafdd485bfb28d868\",callServer,void 0,findSourceMapURL,\"openDelivery\");export{$$RSC_SERVER_ACTION_1 as openDelivery};","/* __next_internal_action_entry_do_not_use__ [{\"405f92098d95e14188d3c2e2058e1b73d6468d725b\":{\"name\":\"putInBasket\"}},\"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_3=/*#__PURE__*/createServerReference(\"405f92098d95e14188d3c2e2058e1b73d6468d725b\",callServer,void 0,findSourceMapURL,\"putInBasket\");export{$$RSC_SERVER_ACTION_3 as putInBasket};","/* __next_internal_action_entry_do_not_use__ [{\"40d6d035364bed586c26cd7d80196b6f40cc3ed5af\":{\"name\":\"putPickInBasket\"}},\"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_4=/*#__PURE__*/createServerReference(\"40d6d035364bed586c26cd7d80196b6f40cc3ed5af\",callServer,void 0,findSourceMapURL,\"putPickInBasket\");export{$$RSC_SERVER_ACTION_4 as putPickInBasket};","/* __next_internal_action_entry_do_not_use__ [{\"60805144861012c3c1c5af3c3730c5ad189ec00cb2\":{\"name\":\"removeFromBasket\"}},\"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_5=/*#__PURE__*/createServerReference(\"60805144861012c3c1c5af3c3730c5ad189ec00cb2\",callServer,void 0,findSourceMapURL,\"removeFromBasket\");export{$$RSC_SERVER_ACTION_5 as removeFromBasket};","'use client';\n\nimport { Toast } from '@base-ui/react/toast';\nimport { useEffect, useRef, useState, useTransition, type ReactNode } from 'react';\n\nimport { replaceAddress } from '../../../../bridge/item-address/hooks/replace-address';\nimport { meetingPathOf } from '../../meeting/paths';\nimport { inFleet } from '../../../lib/gateway-api/page-account';\nimport { answerDelivery, doneDelivery, openDelivery, putInBasket, putPickInBasket, removeFromBasket, type ActionOutcome } from '../hooks/bridge-actions';\nimport { BRIDGE_BASKET_PATH } from '../paths';\nimport { staleAsListedOf, type FocusedDelivery } from '../services/deliveries';\nimport { addressWithItem, itemOfAddress, type KnownItem } from '../services/item-address';\nimport { openedScreenOf } from '../services/shell';\nimport type { HomeItem } from '../services/items';\nimport type { RoutedPlace } from '../services/routing';\nimport { BasketToasts, putToastOf } from '../ui/basket-toast';\nimport { DeliveryCard, type DeliveryControl, type InBasket, type Opened, type StepFinished } from '../ui/delivery-card';\nimport { ItemSplit } from '../ui/item-split';\nimport { Notice } from '../ui/notice';\nimport { useSendMessage } from './send-message';\nimport { useOpenedItem } from './opened-item';\n\n/** An item to open: by its delivery, with its job, whether an alert, whether it was new, and the answer to it in the basket, if any. A replacement opened from its stale item is new. */\nexport interface ToOpen {\n readonly deliveryId: string;\n readonly job: HomeItem['job'];\n readonly isAlert?: boolean;\n readonly state?: HomeItem['state'];\n readonly inBasket?: InBasket | null;\n}\n\n/** A question to put its asker's pick in the basket from its row: by its delivery, from its asker. */\nexport interface ToPut {\n readonly deliveryId: string;\n readonly from: string;\n}\n\n/** What a list of items gets to open one or put a pick in the basket from its row: the presses, the one opening or putting, and why one could not be. */\nexport interface ItemOpening {\n readonly open: (item: ToOpen) => void;\n readonly openingId: string | undefined;\n readonly putPick: (item: ToPut, option: number) => void;\n readonly puttingId: string | undefined;\n readonly failure: { deliveryId: string; message: string } | undefined;\n /** The item open beside the list, by its delivery and job; none while the list is shown alone. */\n readonly opened: { readonly deliveryId: string; readonly job: HomeItem['job'] } | undefined;\n}\n\n/**\n * A list of Bridge's items with one in focus at a time. Opening is the\n * person's own act, so it is a press, never a link: the gateway acknowledges\n * the item for them, and it is shown whole. An alert or a notice seen is\n * done at once (CC16), so it shows with no answer to give, as does a\n * question its asker withdrew or replaced; a replaced one opens its\n * replacement. A step ends done or cannot with the note, sent at once,\n * never through the basket (CC23), and stays open showing its outcome. A question's answer goes in the basket (CC24): the\n * question stays open saying so, with a toast (basket.html), and comes out\n * of it there; from its row, a new question's pick goes in it at once, opened by the same press. Answering or being done says so in place, and the page reads\n * itself again. A question names where it shows when the page read its places.\n * An opened alert offers to send its ship a message, as home offers to send\n * any ship one (aeolus-fleet #1547). The open item shows beside its list on\n * a desktop, and on its own screen on a phone (aeolus-fleet#1538).\n */\nexport function ItemFocus({ fleetId, decidePlaces, consoleUrl, known, children }: { fleetId: string; decidePlaces?: readonly RoutedPlace[]; /** The fleet's console, where an opened alert's ship shows its Health. */ consoleUrl?: string; /** The items the page lists, where the address finds the one to open again. */ known: readonly KnownItem[]; children: (opening: ItemOpening) => ReactNode }) {\n return (\n <Toast.Provider>\n <FocusedItems fleetId={fleetId} decidePlaces={decidePlaces} consoleUrl={consoleUrl} known={known}>{children}</FocusedItems>\n <BasketToasts />\n </Toast.Provider>\n );\n}\n\nfunction FocusedItems({ fleetId, decidePlaces, consoleUrl, known, children }: { fleetId: string; decidePlaces?: readonly RoutedPlace[]; consoleUrl?: string; known: readonly KnownItem[]; children: (opening: ItemOpening) => ReactNode }) {\n const toasts = Toast.useToastManager();\n const sendMessage = useSendMessage();\n const [focus, setFocus] = useState<{ delivery: FocusedDelivery; opened: Opened; inBasket: InBasket | null; finished: StepFinished | null } | undefined>();\n const [note, setNote] = useState('');\n const [openingId, setOpeningId] = useState<string | undefined>();\n const [puttingId, setPuttingId] = useState<string | undefined>();\n const [working, setWorking] = useState<DeliveryControl | undefined>();\n const [openFailure, setOpenFailure] = useState<{ deliveryId: string; message: string } | undefined>();\n const [failure, setFailure] = useState<string | undefined>();\n const [done, setDone] = useState<string | undefined>();\n const [, startTransition] = useTransition();\n // Each pick put from a row shows the list anew, as it is after a card: it reads the page as the action left it.\n const [shownTimes, setShownTimes] = useState(0);\n useOpenedItem(focus === undefined ? undefined : openedScreenOf(focus.opened.job), () => {\n setFocus(undefined);\n });\n\n const open = (item: ToOpen) => {\n setOpeningId(item.deliveryId);\n setOpenFailure(undefined);\n setDone(undefined);\n startTransition(async () => {\n const outcome = await openDelivery(fleetId, item.deliveryId);\n setOpeningId(undefined);\n if (outcome.isOk) {\n const inBasket = item.inBasket ?? null;\n setFocus({ delivery: outcome.value, opened: { job: item.job, isAlert: item.isAlert ?? false, wasNew: item.state !== 'seen' }, inBasket, finished: null });\n setNote(inBasket?.note ?? '');\n setFailure(undefined);\n } else {\n setOpenFailure({ deliveryId: item.deliveryId, message: outcome.message });\n }\n });\n };\n\n // The address names the open item: a refresh, or the address opened anew, opens it again.\n const wasAddressRead = useRef(false);\n useEffect(() => {\n if (wasAddressRead.current) {\n return;\n }\n wasAddressRead.current = true;\n const addressed = itemOfAddress(window.location.href, known);\n if (addressed.kind === 'open') {\n open(addressed.item);\n } else if (addressed.kind === 'gone') {\n replaceAddress(window.history, addressWithItem(window.location.href, undefined));\n setDone('That item is no longer in your inbox.');\n }\n });\n const focusedId = focus?.delivery.deliveryId;\n // The list reads itself again as the fleet changes: an open item its asker withdrew or replaced meanwhile turns read-only as its row does (#240).\n const listedStale = known.find(({ deliveryId }) => deliveryId === focusedId)?.stale ?? null;\n useEffect(() => {\n if (listedStale !== null && focusedId !== undefined) {\n setFocus((focused) => (focused === undefined ? focused : { ...focused, delivery: staleAsListedOf(focused.delivery, [{ deliveryId: focusedId, stale: listedStale }]) }));\n }\n }, [listedStale, focusedId]);\n const wasFocusSynced = useRef(false);\n useEffect(() => {\n // The first run is the page as the address left it, which the opening above reads.\n if (!wasFocusSynced.current) {\n wasFocusSynced.current = true;\n return;\n }\n replaceAddress(window.history, addressWithItem(window.location.href, focusedId));\n }, [focusedId]);\n\n /** Opens a question and puts its asker's pick in the basket, with no note, from its row: nothing is sent (CC24). */\n const putPick = (item: ToPut, option: number) => {\n setPuttingId(item.deliveryId);\n setOpenFailure(undefined);\n setDone(undefined);\n startTransition(async () => {\n const outcome = await putPickInBasket({ fleet: fleetId, deliveryId: item.deliveryId, option });\n setPuttingId(undefined);\n if (outcome.isOk) {\n setDone(`Option ${String(option)} is in the basket, not sent: ${item.from} receives it when you send the basket.`);\n setShownTimes((times) => times + 1);\n } else {\n setOpenFailure({ deliveryId: item.deliveryId, message: outcome.message });\n }\n });\n };\n\n const settle = <T,>({ control, action, onSettled }: { control: DeliveryControl; action: () => Promise<ActionOutcome<T>>; onSettled: (value: T) => void }) => {\n setWorking(control);\n setFailure(undefined);\n startTransition(async () => {\n const outcome = await action();\n setWorking(undefined);\n if (outcome.isOk) {\n onSettled(outcome.value);\n } else {\n setFailure(outcome.message);\n }\n });\n };\n\n /** Back to the list, saying what was done. */\n const leave = (said: string) => () => {\n setFocus(undefined);\n setDone(said);\n };\n\n const cardOf = ({ delivery, inBasket, opened, finished }: NonNullable<typeof focus>) => {\n const questionId = delivery.question?.id;\n return (\n <DeliveryCard\n key={delivery.deliveryId}\n delivery={delivery}\n opened={opened}\n meetingHref={delivery.meetingId === undefined ? undefined : meetingPathOf({ fleetId, meetingId: delivery.meetingId })}\n consoleUrl={consoleUrl}\n basketHref={inFleet(BRIDGE_BASKET_PATH, fleetId)}\n inBasket={inBasket}\n finished={finished}\n places={decidePlaces}\n note={note}\n working={working}\n failure={failure}\n onNoteChange={setNote}\n onAnswer={(option) => { settle({ control: option === undefined ? { kind: 'note' } : { kind: 'option', option }, action: () => answerDelivery({ fleet: fleetId, deliveryId: delivery.deliveryId, input: { questionId: delivery.question?.id, option, note } }), onSettled: leave(`Your answer went to ${delivery.from}.`) }); }\n }\n onPut={(option) => { settle({ control: option === null ? { kind: 'note' } : { kind: 'option', option }, action: () => putInBasket({ fleet: fleetId, deliveryId: delivery.deliveryId, option, optionLabel: delivery.question?.options.find(({ key }) => key === option)?.label ?? null, note }), onSettled: (put) => {\n setFocus({ delivery, opened, finished, inBasket: put });\n toasts.add(putToastOf(put.option));\n } }); }}\n onSend={(option) => { settle({ control: { kind: 'send' }, action: () => answerDelivery({ fleet: fleetId, deliveryId: delivery.deliveryId, input: { questionId, option: option ?? undefined, note } }), onSettled: leave(`Your answer went to ${delivery.from}.`) }); }}\n onRemove={() => {\n if (questionId !== undefined) {\n settle({ control: { kind: 'remove' }, action: () => removeFromBasket(fleetId, questionId), onSettled: leave(`Your answer to “${delivery.title}” is out of the basket; the question still waits on you.`) });\n }\n }}\n onDone={() => { settle({ control: { kind: 'done' }, action: () => doneDelivery({ fleet: fleetId, deliveryId: delivery.deliveryId }), onSettled: leave(`Done with “${delivery.title}”.`) }); }}\n onFinishStep={(outcome) => {\n settle({\n control: { kind: outcome },\n action: () => doneDelivery({ fleet: fleetId, deliveryId: delivery.deliveryId, step: { outcome, note } }),\n onSettled: () => { setFocus({ delivery, inBasket, opened, finished: { outcome, note: note.trim(), at: new Date().toISOString() } }); },\n });\n }}\n onOpen={(deliveryId) => { open({ deliveryId, job: opened.job }); }}\n onSendMessage={delivery.alertShip === undefined || sendMessage === undefined ? undefined : (alertShip) => { sendMessage({ alertShip }); }}\n onBack={() => { setFocus(undefined); }}\n />\n );\n };\n\n const opened = focus === undefined ? undefined : { deliveryId: focus.delivery.deliveryId, job: focus.opened.job };\n return (\n <ItemSplit\n list={\n <div key={shownTimes} className=\"grid gap-4\">\n {done === undefined ? null : <Notice message={done} isFailure={false} />}\n {children({ open, openingId, putPick, puttingId, failure: openFailure, opened })}\n </div>\n }\n item={focus === undefined ? undefined : cardOf(focus)}\n />\n );\n}\n","'use client';\n\nimport { Toast } from '@base-ui/react/toast';\nimport { ShoppingBasket } from 'lucide-react';\n\n/** What a toast says: what happened, then what it means. */\nexport interface ToastWords {\n readonly title: string;\n readonly description: string;\n}\n\n/** What the toast says once an answer is in the basket (basket.html): what went in, not sent, still waiting. */\nexport function putToastOf(option: number | null): ToastWords {\n return { title: option === null ? 'Your note alone in the basket' : `Option ${String(option)} in the basket`, description: 'Not sent. Still waiting on you until you send it.' };\n}\n\n/** The toasts Bridge raised for the basket, each behind the basket icon, on the popover, gone by themselves: at the left on a desktop and none on a phone, as basket.html draws them. */\nexport function BasketToasts() {\n const { toasts } = Toast.useToastManager();\n return (\n <Toast.Portal>\n <Toast.Viewport className=\"fixed bottom-4 left-4 z-50 hidden w-[min(24rem,calc(100vw-2rem))] gap-2 sm:grid\">\n {toasts.map((toast) => (\n <Toast.Root key={toast.id} toast={toast} data-testid=\"bridge-basket-toast\" className=\"flex items-start gap-3 rounded-lg border border-border bg-popover p-4 text-popover-foreground shadow-lg\">\n <ShoppingBasket aria-hidden className=\"mt-0.5 size-4 shrink-0\" />\n <Toast.Content className=\"grid flex-1 gap-1\">\n <Toast.Title className=\"font-medium\" />\n <Toast.Description className=\"text-caption text-muted-foreground\" />\n </Toast.Content>\n </Toast.Root>\n ))}\n </Toast.Viewport>\n </Toast.Portal>\n );\n}\n"],"names":["replaceAddress","history","address","replaceState","$$RSC_SERVER_ACTION_5","putToastOf","option","title","String","description","BasketToasts","toasts","useToastManager","Portal","Viewport","className","map","toast","Root","Content","Title","Description","id"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  (()=>{"use strict";module.exports=[13095,(a,b,c)=>{function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},73290,a=>{var b=a.i(70043);a.S([b,"40ab6bd38f893b947ce7425fb23bd3633b32ea7611,f"],73290)},70043,a=>{var b=a.i(37936),c=a.i(5246),d=a.i(67591);async function e(a){(0,d.x)(a)&&(await (0,c.cookies)()).set(d.g,a,{path:"/",sameSite:"lax",maxAge:31536e3})}(0,a.i(13095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"40ab6bd38f893b947ce7425fb23bd3633b32ea7611",null),a.s(["f",0,e])}]})();
2
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},73290,a=>{var b=a.i(70043);a.S([b,"406e70c54d0df55ecef3263e68bd02259fd622902e,f"],73290)},70043,a=>{var b=a.i(37936),c=a.i(5246),d=a.i(67591);async function e(a){(0,d.x)(a)&&(await (0,c.cookies)()).set(d.g,a,{path:"/",sameSite:"lax",maxAge:31536e3})}(0,a.i(13095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"406e70c54d0df55ecef3263e68bd02259fd622902e",null),a.s(["f",0,e])}]})();
3
3
 
4
4
  //# sourceMappingURL=_1pjtire7rqla0._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../web/.next-internal/server/app/_not-found/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/frame/actions.ts"],"sourcesContent":["// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","export {setTheme as '40ab6bd38f893b947ce7425fb23bd3633b32ea7611'} from 'ACTIONS_MODULE0'\n","'use server';\n\n/** The header's theme choice, kept for this browser for a year. */\nimport { cookies } from 'next/headers';\n\nimport { isTheme, THEME_COOKIE } from './theme';\n\nconst YEAR_SECONDS = 365 * 24 * 60 * 60;\n\nexport async function setTheme(theme: unknown): Promise<void> {\n if (!isTheme(theme)) {\n return;\n }\n (await cookies()).set(THEME_COOKIE, theme, { path: '/', sameSite: 'lax', maxAge: YEAR_SECONDS });\n}\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","YEAR_SECONDS","setTheme","theme","set","path","sameSite","maxAge"],"mappings":"mDAGO,SAASA,EAAyBC,CAAc,EACrD,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQE,MAAM,CAAED,IAAK,CACvC,IAAME,EAASH,CAAO,CAACC,EAAE,CACzB,GAAsB,YAAlB,AAA8B,OAAvBE,EACT,MAAUC,AAAJ,MACJ,CAAC,2DAA2D,EAAE,OAAOD,EAAO;AAAA,oEAAuE,CAAC,CAG1J,CACF,0EATgBJ,2BAAAA,qCAAAA,sBCHoC,OAAA,cAAA,CAAA,EAAA,aAAA,oCAC3CM,0BAAAA,qCAAAA,EAAAA,uBAAuB,YAAQ,CAAA,CAAA,IAAA,cCDxC,IAAA,EAAA,EAAA,CAAA,CAAA,iGCGA,EAAA,EAAA,CAAA,CAAA,MAEA,EAAA,EAAA,CAAA,CAAA,OAIO,eAAeE,EAASC,CAAc,EACtC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACA,IAGb,CAAC,GAHoB,GAGd,CAAA,EAAA,EAAA,OAAA,AAAO,GAAA,CAAE,CAAEC,GAAG,CAAC,EAAA,CAAY,CAAED,EAAO,CAAEE,KAAM,IAAKC,SAAU,MAAOC,OANtD,CAM8DN,KANxD,CAMqE,EAChG,EAPgC,KAAK,mCAEfC,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA","ignoreList":[0,1]}
1
+ {"version":3,"sources":["../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../web/.next-internal/server/app/_not-found/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/frame/actions.ts"],"sourcesContent":["// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","export {setTheme as '406e70c54d0df55ecef3263e68bd02259fd622902e'} from 'ACTIONS_MODULE0'\n","'use server';\n\n/** The header's theme choice, kept for this browser for a year. */\nimport { cookies } from 'next/headers';\n\nimport { isTheme, THEME_COOKIE } from './theme';\n\nconst YEAR_SECONDS = 365 * 24 * 60 * 60;\n\nexport async function setTheme(theme: unknown): Promise<void> {\n if (!isTheme(theme)) {\n return;\n }\n (await cookies()).set(THEME_COOKIE, theme, { path: '/', sameSite: 'lax', maxAge: YEAR_SECONDS });\n}\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","YEAR_SECONDS","setTheme","theme","set","path","sameSite","maxAge"],"mappings":"mDAGO,SAASA,EAAyBC,CAAc,EACrD,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQE,MAAM,CAAED,IAAK,CACvC,IAAME,EAASH,CAAO,CAACC,EAAE,CACzB,GAAsB,YAAlB,AAA8B,OAAvBE,EACT,MAAUC,AAAJ,MACJ,CAAC,2DAA2D,EAAE,OAAOD,EAAO;AAAA,oEAAuE,CAAC,CAG1J,CACF,0EATgBJ,2BAAAA,qCAAAA,sBCHoC,OAAA,cAAA,CAAA,EAAA,aAAA,oCAC3CM,0BAAAA,qCAAAA,EAAAA,uBAAuB,YAAQ,CAAA,CAAA,IAAA,cCDxC,IAAA,EAAA,EAAA,CAAA,CAAA,iGCGA,EAAA,EAAA,CAAA,CAAA,MAEA,EAAA,EAAA,CAAA,CAAA,OAIO,eAAeE,EAASC,CAAc,EACtC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACA,IAGb,CAAC,GAHoB,GAGd,CAAA,EAAA,EAAA,OAAA,AAAO,GAAA,CAAE,CAAEC,GAAG,CAAC,EAAA,CAAY,CAAED,EAAO,CAAEE,KAAM,IAAKC,SAAU,MAAOC,OANtD,CAM8DN,KANxD,CAMqE,EAChG,EAPgC,KAAK,mCAEfC,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA","ignoreList":[0,1]}