@aeolus-fleet/gateway 0.36.2 → 0.36.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/dist/adapters/fleet/actor-door.d.ts +8 -1
- package/dist/adapters/fleet/actor-door.js +12 -5
- package/dist/adapters/fleet/actor-door.js.map +1 -1
- package/dist/adapters/fleet/argo-inbox-door.d.ts +4 -0
- package/dist/adapters/fleet/argo-inbox-door.js +81 -0
- package/dist/adapters/fleet/argo-inbox-door.js.map +1 -0
- package/dist/adapters/fleet/rest-fleet-door.d.ts +14 -0
- package/dist/adapters/fleet/rest-fleet-door.js +11 -1
- package/dist/adapters/fleet/rest-fleet-door.js.map +1 -1
- package/dist/adapters/http/front-door.js +3 -1
- package/dist/adapters/http/front-door.js.map +1 -1
- package/dist/adapters/http/live.d.ts +10 -1
- package/dist/adapters/http/live.js +10 -1
- package/dist/adapters/http/live.js.map +1 -1
- package/dist/adapters/pagasae/email-channel.js +5 -3
- package/dist/adapters/pagasae/email-channel.js.map +1 -1
- package/dist/adapters/pagasae/pagasae-client.js +1 -0
- package/dist/adapters/pagasae/pagasae-client.js.map +1 -1
- package/dist/adapters/pagasae/shared-sign-in.js +2 -2
- package/dist/adapters/pagasae/shared-sign-in.js.map +1 -1
- package/dist/adapters/prisma/argo-accounts.d.ts +4 -0
- package/dist/adapters/prisma/argo-accounts.js +17 -0
- package/dist/adapters/prisma/argo-accounts.js.map +1 -0
- package/dist/adapters/prisma/argo-slack-posts.d.ts +4 -0
- package/dist/adapters/prisma/argo-slack-posts.js +30 -0
- package/dist/adapters/prisma/argo-slack-posts.js.map +1 -0
- package/dist/adapters/prisma/argo-wakes.d.ts +4 -0
- package/dist/adapters/prisma/argo-wakes.js +54 -0
- package/dist/adapters/prisma/argo-wakes.js.map +1 -0
- package/dist/adapters/prisma/fleet-forgetter.d.ts +1 -1
- package/dist/adapters/prisma/fleet-forgetter.js +2 -2
- package/dist/adapters/prisma/fleet-forgetter.js.map +1 -1
- package/dist/adapters/prisma/generated/browser.d.ts +20 -0
- package/dist/adapters/prisma/generated/client.d.ts +20 -0
- package/dist/adapters/prisma/generated/internal/class.d.ts +44 -0
- package/dist/adapters/prisma/generated/internal/class.js +4 -4
- package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +334 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js +30 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +33 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +30 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
- package/dist/adapters/prisma/generated/models/ArgoAccount.d.ts +946 -0
- package/dist/adapters/prisma/generated/models/ArgoAccount.js +2 -0
- package/dist/adapters/prisma/generated/models/ArgoAccount.js.map +1 -0
- package/dist/adapters/prisma/generated/models/ArgoMessageCovered.d.ts +947 -0
- package/dist/adapters/prisma/generated/models/ArgoMessageCovered.js +2 -0
- package/dist/adapters/prisma/generated/models/ArgoMessageCovered.js.map +1 -0
- package/dist/adapters/prisma/generated/models/ArgoSlackPost.d.ts +1065 -0
- package/dist/adapters/prisma/generated/models/ArgoSlackPost.js +2 -0
- package/dist/adapters/prisma/generated/models/ArgoSlackPost.js.map +1 -0
- package/dist/adapters/prisma/generated/models/ArgoWakeSent.d.ts +975 -0
- package/dist/adapters/prisma/generated/models/ArgoWakeSent.js +2 -0
- package/dist/adapters/prisma/generated/models/ArgoWakeSent.js.map +1 -0
- package/dist/adapters/prisma/generated/models.d.ts +4 -0
- package/dist/adapters/slack/slack-messages.js +5 -4
- package/dist/adapters/slack/slack-messages.js.map +1 -1
- package/dist/adapters/trpc/router.d.ts +24 -0
- package/dist/adapters/trpc/router.js +11 -0
- package/dist/adapters/trpc/router.js.map +1 -1
- package/dist/adapters/web-push/web-push.js +1 -1
- package/dist/adapters/web-push/web-push.js.map +1 -1
- package/dist/app.js +89 -2
- package/dist/app.js.map +1 -1
- package/dist/core/account-sign-in/account-of-sign-in.d.ts +7 -2
- package/dist/core/account-sign-in/account-of-sign-in.js +9 -3
- package/dist/core/account-sign-in/account-of-sign-in.js.map +1 -1
- package/dist/core/account-sign-in/ports.d.ts +2 -0
- package/dist/core/argo-inbox/argo-inbox.d.ts +31 -0
- package/dist/core/argo-inbox/argo-inbox.js +23 -0
- package/dist/core/argo-inbox/argo-inbox.js.map +1 -0
- package/dist/core/argo-inbox/argo-slack-message.d.ts +17 -0
- package/dist/core/argo-inbox/argo-slack-message.js +40 -0
- package/dist/core/argo-inbox/argo-slack-message.js.map +1 -0
- package/dist/core/argo-inbox/argo-slack-post.d.ts +21 -0
- package/dist/core/argo-inbox/argo-slack-post.js +2 -0
- package/dist/core/argo-inbox/argo-slack-post.js.map +1 -0
- package/dist/core/argo-inbox/follow-argo-inbox.d.ts +33 -0
- package/dist/core/argo-inbox/follow-argo-inbox.js +133 -0
- package/dist/core/argo-inbox/follow-argo-inbox.js.map +1 -0
- package/dist/core/argo-inbox/note-argo-account.d.ts +19 -0
- package/dist/core/argo-inbox/note-argo-account.js +18 -0
- package/dist/core/argo-inbox/note-argo-account.js.map +1 -0
- package/dist/core/argo-inbox/ports.d.ts +123 -0
- package/dist/core/argo-inbox/ports.js +2 -0
- package/dist/core/argo-inbox/ports.js.map +1 -0
- package/dist/core/argo-inbox/read-argo-inbox-notice.d.ts +34 -0
- package/dist/core/argo-inbox/read-argo-inbox-notice.js +20 -0
- package/dist/core/argo-inbox/read-argo-inbox-notice.js.map +1 -0
- package/dist/core/argo-inbox/read-argo-section.d.ts +54 -0
- package/dist/core/argo-inbox/read-argo-section.js +67 -0
- package/dist/core/argo-inbox/read-argo-section.js.map +1 -0
- package/dist/core/argo-inbox/show-argo-inbox-in-slack.d.ts +36 -0
- package/dist/core/argo-inbox/show-argo-inbox-in-slack.js +125 -0
- package/dist/core/argo-inbox/show-argo-inbox-in-slack.js.map +1 -0
- package/dist/core/argo-inbox/wake-for-argo.d.ts +37 -0
- package/dist/core/argo-inbox/wake-for-argo.js +139 -0
- package/dist/core/argo-inbox/wake-for-argo.js.map +1 -0
- package/dist/core/oauth/exchange-id-jag.d.ts +4 -1
- package/dist/core/oauth/exchange-id-jag.js +5 -2
- package/dist/core/oauth/exchange-id-jag.js.map +1 -1
- package/dist/core/people/person-wakes.d.ts +49 -0
- package/dist/core/people/person-wakes.js +27 -0
- package/dist/core/people/person-wakes.js.map +1 -0
- package/dist/core/people/ports.d.ts +6 -2
- package/dist/core/people/wake-person.js +1 -1
- package/dist/core/people/wake-person.js.map +1 -1
- package/dist/core/people/web-push-channel.js +2 -2
- package/dist/core/people/web-push-channel.js.map +1 -1
- package/dist/core/sign-in/account-token.d.ts +5 -1
- package/dist/core/sign-in/account-token.js +8 -2
- package/dist/core/sign-in/account-token.js.map +1 -1
- package/dist/core/sign-in/complete-sign-in.d.ts +4 -1
- package/dist/core/sign-in/complete-sign-in.js +5 -2
- package/dist/core/sign-in/complete-sign-in.js.map +1 -1
- package/dist/core/sign-in/ports.d.ts +2 -0
- package/dist/core/slack/edited-post-of.d.ts +2 -0
- package/dist/core/slack/edited-post-of.js +1 -1
- package/dist/core/slack/edited-post-of.js.map +1 -1
- package/dist/core/slack/ports.d.ts +6 -4
- package/package.json +3 -2
- package/src/adapters/prisma/migrations/20261109090000_argo_accounts/migration.sql +8 -0
- package/src/adapters/prisma/migrations/20261110090000_argo_slack_posts/migration.sql +12 -0
- package/src/adapters/prisma/migrations/20261110100000_argo_wakes/migration.sql +18 -0
- package/src/adapters/prisma/schema.prisma +47 -0
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +3 -3
- package/web/.next/diagnostics/route-bundle-stats.json +130 -128
- package/web/.next/fallback-build-manifest.json +3 -3
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/server/app/(bridge)/bridge/basket/page/server-reference-manifest.json +10 -10
- package/web/.next/server/app/(bridge)/bridge/basket/page.js +6 -6
- package/web/.next/server/app/(bridge)/bridge/basket/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/bridge/basket/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(bridge)/bridge/done/page/server-reference-manifest.json +2 -2
- package/web/.next/server/app/(bridge)/bridge/done/page.js +6 -6
- package/web/.next/server/app/(bridge)/bridge/done/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/bridge/done/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(bridge)/bridge/fleet/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/(bridge)/bridge/fleet/page.js +6 -6
- package/web/.next/server/app/(bridge)/bridge/fleet/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/bridge/fleet/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(bridge)/bridge/page/server-reference-manifest.json +9 -9
- package/web/.next/server/app/(bridge)/bridge/page.js +6 -6
- package/web/.next/server/app/(bridge)/bridge/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/bridge/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(bridge)/bridge/settings/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/(bridge)/bridge/settings/page.js +7 -7
- package/web/.next/server/app/(bridge)/bridge/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/bridge/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page/server-reference-manifest.json +2 -2
- package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page.js +6 -6
- package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(bridge)/bridge/settings/routing/page/server-reference-manifest.json +5 -5
- package/web/.next/server/app/(bridge)/bridge/settings/routing/page.js +4 -4
- package/web/.next/server/app/(bridge)/bridge/settings/routing/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/bridge/settings/routing/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(bridge)/bridge/stay-aware/page/server-reference-manifest.json +9 -9
- package/web/.next/server/app/(bridge)/bridge/stay-aware/page.js +5 -5
- package/web/.next/server/app/(bridge)/bridge/stay-aware/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/bridge/stay-aware/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/gateway-off/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/(console)/gateway-off/page.js +2 -2
- package/web/.next/server/app/(console)/gateway-off/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/gateway-off/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/meetings/[meetingId]/page/server-reference-manifest.json +3 -3
- package/web/.next/server/app/(console)/meetings/[meetingId]/page.js +2 -2
- package/web/.next/server/app/(console)/meetings/[meetingId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/meetings/[meetingId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/outside-parties/[name]/change/page/server-reference-manifest.json +15 -15
- package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js +2 -2
- package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/outside-parties/[name]/change/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/outside-parties/[name]/page/server-reference-manifest.json +8 -8
- package/web/.next/server/app/(console)/outside-parties/[name]/page.js +2 -2
- package/web/.next/server/app/(console)/outside-parties/[name]/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/outside-parties/[name]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/server-reference-manifest.json +15 -15
- package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js +2 -2
- package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/outside-parties/[name]/retire/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/outside-parties/add/page/server-reference-manifest.json +10 -10
- package/web/.next/server/app/(console)/outside-parties/add/page.js +2 -2
- package/web/.next/server/app/(console)/outside-parties/add/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/outside-parties/add/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/server-reference-manifest.json +2 -2
- package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js +2 -2
- package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/server-reference-manifest.json +2 -2
- package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js +2 -2
- package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/outside-parties/page/server-reference-manifest.json +2 -2
- package/web/.next/server/app/(console)/outside-parties/page.js +2 -2
- package/web/.next/server/app/(console)/outside-parties/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/outside-parties/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/parties/page/server-reference-manifest.json +7 -7
- package/web/.next/server/app/(console)/parties/page.js +2 -2
- package/web/.next/server/app/(console)/parties/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/parties/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/sign-in/failed/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/(console)/sign-in/failed/page.js +2 -2
- package/web/.next/server/app/(console)/sign-in/failed/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/sign-in/failed/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/slack/disconnect/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/(console)/slack/disconnect/page.js +2 -2
- package/web/.next/server/app/(console)/slack/disconnect/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/slack/disconnect/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/slack/expose/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/(console)/slack/expose/page.js +2 -2
- package/web/.next/server/app/(console)/slack/expose/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/slack/expose/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/slack/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/(console)/slack/page.js +2 -2
- package/web/.next/server/app/(console)/slack/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/slack/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/slack/remove/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/(console)/slack/remove/page.js +2 -2
- package/web/.next/server/app/(console)/slack/remove/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/slack/remove/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +1 -1
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/_not-found/page.js +2 -2
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/authorize/failed/page.js +3 -4
- package/web/.next/server/app/authorize/failed/page.js.nft.json +1 -1
- package/web/.next/server/app/authorize/failed/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/authorize/pick/page.js +3 -4
- package/web/.next/server/app/authorize/pick/page.js.nft.json +1 -1
- package/web/.next/server/app/authorize/pick/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/authorize/waiting/approval/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/authorize/waiting/approval/page.js +3 -4
- package/web/.next/server/app/authorize/waiting/approval/page.js.nft.json +1 -1
- package/web/.next/server/app/authorize/waiting/approval/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/ssr/01fr_app_(bridge)_bridge_settings_requests_[requestId]_page_actions_0o8g7_xshtmem.js +1 -1
- package/web/.next/server/chunks/ssr/01fr_app_(bridge)_bridge_settings_requests_[requestId]_page_actions_0o8g7_xshtmem.js.map +1 -1
- package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_stay-aware_page_actions_1u0xo0v3y9c34.js +1 -1
- package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_stay-aware_page_actions_1u0xo0v3y9c34.js.map +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_bridge_settings_routing_page_actions_06_j7s24dy5ee.js +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_bridge_settings_routing_page_actions_06_j7s24dy5ee.js.map +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js.map +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js.map +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js.map +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js.map +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__001xx3sm5ur-e._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__001xx3sm5ur-e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0a6a1yc_ac-qt._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0a8db18tyk__5._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0a8db18tyk__5._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0e4l5gt01o04p._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0fz0817_b9ljl._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0gptrhg3mj4hs._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0kjcooo3pi4_k._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0rmg7huc074bf._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__10s9e8g5x-ws8._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__10s9e8g5x-ws8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__13v3maun347sn._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__13yoncr_nx3jc._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__13yoncr_nx3jc._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__1qtzvez4cn5be._.js → [root-of-the-server]__1ektgsnjg4btl._.js} +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1hgu6f5hpnykv._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__1j6n8jj7-5t6v._.js → [root-of-the-server]__1nfpyr3ynmwks._.js} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpow96uit9t8._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpow96uit9t8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1ul9rrs2g66lm._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__20gvfqy33wcds._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_00fvst5icgei4._.js +3 -0
- package/web/.next/server/chunks/ssr/_00fvst5icgei4._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +1 -1
- package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_02mwdj1oj1zgm._.js +3 -0
- package/web/.next/server/chunks/ssr/_02mwdj1oj1zgm._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0fqd23gyia_8g._.js +3 -0
- package/web/.next/server/chunks/ssr/_0fqd23gyia_8g._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js +1 -1
- package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js +1 -1
- package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0u0u0owpxx_37._.js +3 -0
- package/web/.next/server/chunks/ssr/_0u0u0owpxx_37._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0v_x6k3ztfvx0._.js +1 -1
- package/web/.next/server/chunks/ssr/_0v_x6k3ztfvx0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0x5-_917zcaj9._.js +3 -0
- package/web/.next/server/chunks/ssr/_0x5-_917zcaj9._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_0cnpz5jm2_9xf._.js → _0xajzaside0sw._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_0cnpz5jm2_9xf._.js.map → _0xajzaside0sw._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +1 -1
- package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0yhvyj-yts7qi._.js +3 -0
- package/web/.next/server/chunks/ssr/_0yhvyj-yts7qi._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_104ilzyn58zw_._.js +3 -0
- package/web/.next/server/chunks/ssr/_104ilzyn58zw_._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_1a9wrl8uw7x-y._.js → _13_ady-a4058y._.js} +1 -1
- package/web/.next/server/chunks/ssr/_14k1oldo5chf8._.js +1 -1
- package/web/.next/server/chunks/ssr/_14k1oldo5chf8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_1_wav28san6dm._.js +1 -1
- package/web/.next/server/chunks/ssr/{_1iorutn_o9hja._.js → _1cc4ie_s4tycq._.js} +1 -1
- package/web/.next/server/chunks/ssr/_1e2o809f0ekry._.js +1 -1
- package/web/.next/server/chunks/ssr/_1gbkqq8ra1nei._.js +1 -1
- package/web/.next/server/chunks/ssr/_1gbkqq8ra1nei._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_1kdx8a0j5cxyl._.js → _1gnk2vqna6c6u._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_1kdx8a0j5cxyl._.js.map → _1gnk2vqna6c6u._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_1k2b80m058vgx._.js +3 -0
- package/web/.next/server/chunks/ssr/_1k2b80m058vgx._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js +1 -1
- package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js +1 -1
- package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_1t74yvog5g6g2._.js +1 -1
- package/web/.next/server/chunks/ssr/_1t74yvog5g6g2._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_1i5zdy3tp2ykh._.js → _1xgivp19ts9hn._.js} +1 -1
- package/web/.next/server/chunks/ssr/_1zmd3armaxhyu._.js +1 -1
- package/web/.next/server/chunks/ssr/_1zmd3armaxhyu._.js.map +1 -1
- package/web/.next/server/chunks/ssr/node_modules_05ni_zu0e0w44._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_05ni_zu0e0w44._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_07vtvfyfo0a6i._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_07vtvfyfo0a6i._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_0ettht2so2tkh._.js +1 -1
- package/web/.next/server/chunks/ssr/node_modules_0keape0zsobyj._.js +1 -1
- package/web/.next/server/chunks/ssr/node_modules_12euo0ncdx1pn._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_12euo0ncdx1pn._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_1722-epjft-rn._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_1722-epjft-rn._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{node_modules_@aeolus-fleet_common_dist_header_1x3s5abk_uj9j._.js → node_modules_@aeolus-fleet_ui_dist_11tn8gozt2_c3._.js} +2 -2
- package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_ui_dist_11tn8gozt2_c3._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_ui_dist_16j49enf275ln._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_ui_dist_16j49enf275ln._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_@base-ui_0jlwmxa9rk8p_._.js +1 -1
- package/web/.next/server/chunks/ssr/node_modules_@base-ui_19e_nxxf4a88q._.js +1 -1
- package/web/.next/server/chunks/ssr/web_0_peudz6-o69m._.js +1 -1
- package/web/.next/server/chunks/ssr/web_0_peudz6-o69m._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_0cxcy088wnfmw._.js +1 -1
- package/web/.next/server/chunks/ssr/web_0oz8bypfxh82g._.js +1 -1
- package/web/.next/server/chunks/ssr/web_0oz8bypfxh82g._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_0qgev3ti257yj._.js +1 -1
- package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js +1 -1
- package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_1fi1x3y7rg7mf._.js +1 -1
- package/web/.next/server/chunks/ssr/web_1ga4pbv72m0ad._.js +1 -1
- package/web/.next/server/chunks/ssr/web_1irsulms62lzf._.js +1 -1
- package/web/.next/server/chunks/ssr/web_1k2rrq-kr6f9k._.js +1 -1
- package/web/.next/server/chunks/ssr/web_1k2rrq-kr6f9k._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_1qvxzqmq4aw94._.js +1 -1
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_basket_page_actions_0g7q_rc5nma1e.js +1 -1
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_basket_page_actions_0g7q_rc5nma1e.js.map +1 -1
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_done_page_actions_0kjm34arntdzv.js +1 -1
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_done_page_actions_0kjm34arntdzv.js.map +1 -1
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_page_actions_1ok64rg3edm_u.js +1 -1
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_page_actions_1ok64rg3edm_u.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_fleet_page_tsx_0uvtx8hiy8g0n._.js +1 -1
- package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_settings_page_tsx_1z5yr8ss25q7n._.js +1 -1
- package/web/.next/server/chunks/ssr/web_app_(console)_parties_page_tsx_0pp63ghly3eyp._.js +1 -1
- package/web/.next/server/chunks/ssr/web_app_authorize_layout_tsx_0gs61_7wzx68y._.js +1 -1
- package/web/.next/server/chunks/ssr/web_app_authorize_layout_tsx_0gs61_7wzx68y._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{web_features_0bwqcs9wjf4y8._.js → web_features_06f9kfi0c4nf8._.js} +2 -2
- package/web/.next/server/chunks/ssr/{web_features_05aos-xwnl3m_._.js.map → web_features_06f9kfi0c4nf8._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/web_features_0rd6357w-eo50._.js +1 -1
- package/web/.next/server/chunks/ssr/{web_features_05aos-xwnl3m_._.js → web_features_12b-75qfhurxi._.js} +2 -2
- package/web/.next/server/chunks/ssr/{web_features_0bwqcs9wjf4y8._.js.map → web_features_12b-75qfhurxi._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/web_features_19r68thirqv1n._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_1m5g9a6mwrsd-._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_authorize_137wk0n1nu3cn._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_authorize_137wk0n1nu3cn._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{web_features_bridge_0w95y19yk5w14._.js → web_features_bridge_0msm42qwm0-jq._.js} +2 -2
- package/web/.next/server/chunks/ssr/{web_features_bridge_0w95y19yk5w14._.js.map → web_features_bridge_0msm42qwm0-jq._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_fleet_ui_fleet-numbers_tsx_0_afv4j248_w-._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_fleet_ui_fleet-numbers_tsx_0_afv4j248_w-._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_state_home-panel_tsx_1cc5zdhxogl_2._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_state_home-panel_tsx_1cc5zdhxogl_2._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{web_features_025l9l6m2zkya._.js → web_features_forms_1u0akr22eh_x_._.js} +2 -2
- package/web/.next/server/chunks/ssr/web_features_forms_1u0akr22eh_x_._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_frame_01uyck6q56an2._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_frame_01uyck6q56an2._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_outside-party_1-lre9nfakki7._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_slack_actions_ts_1l3yg9vl20_vu._.js +1 -1
- package/web/.next/server/middleware-build-manifest.js +3 -3
- package/web/.next/server/pages/500.html +1 -1
- package/web/.next/server/preview-props.json +3 -3
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +49 -49
- package/web/.next/static/chunks/030kay14jcn_y.js +1 -0
- package/web/.next/static/chunks/0ben53l12lrh1.js +1 -0
- package/web/.next/static/chunks/0d1u4n5okodee.css +3 -0
- package/web/.next/static/chunks/0dg4cy4rae-3o.js +1 -0
- package/web/.next/static/chunks/0jwils_670syn.js +1 -0
- package/web/.next/static/chunks/0lnew3mjkd54b.js +1 -0
- package/web/.next/static/chunks/0m95j-t2qmnd_.js +1 -0
- package/web/.next/static/chunks/0r5ujkp-5utsu.js +1 -0
- package/web/.next/static/chunks/{23vvtbj-zoa_f.js → 1jyiwl5szsvgn.js} +1 -1
- package/web/.next/static/chunks/{0k33n07zesv12.js → 1lkcm-iwggfae.js} +1 -1
- package/web/.next/static/chunks/1ml6wx1ya9wwo.js +1 -0
- package/web/.next/static/chunks/22wtc73dzqm8f.js +1 -0
- package/web/.next/static/chunks/2drwxc7-hry0u.js +1 -0
- package/web/.next/static/chunks/{07j7jnfe13wx6.js → 2ich96rzec753.js} +1 -1
- package/web/.next/static/chunks/{3d5z1i-6yksxd.js → 2khjzepn4_2a-.js} +1 -1
- package/web/.next/static/chunks/{1uhmdmkn5gsk2.js → 2ui6n5-n032a3.js} +1 -1
- package/web/.next/static/chunks/2wvdu6-tx1h0l.js +1 -0
- package/web/.next/static/chunks/33qpc2y76i927.js +1 -0
- package/web/.next/static/chunks/3h8spyc73a438.js +1 -0
- package/web/.next/static/chunks/{2dgbb29jkr_tu.js → 3v8s571padqcz.js} +1 -1
- package/web/.next/static/chunks/3wg9zn3lyhf-b.js +1 -0
- package/web/.next/trace +1 -1
- package/web/.next/trace-build +1 -1
- package/web/public/argo-wake-icon.svg +1 -0
- package/web/public/wake-worker.js +8 -2
- package/web/public/wake-worker.test.ts +52 -0
- package/web/.next/server/chunks/ssr/_0oekmfmigr0qv._.js +0 -3
- package/web/.next/server/chunks/ssr/_0oekmfmigr0qv._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0vid8-myyy-_4._.js +0 -3
- package/web/.next/server/chunks/ssr/_0y5eahpucp8g_._.js +0 -3
- package/web/.next/server/chunks/ssr/_0y5eahpucp8g_._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_13fbnlwrl24s3._.js +0 -3
- package/web/.next/server/chunks/ssr/_13fbnlwrl24s3._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_1airu8wwf7z1b._.js +0 -3
- package/web/.next/server/chunks/ssr/_1airu8wwf7z1b._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_1i5zdy3tp2ykh._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_1pp0z5srqqqyl._.js +0 -3
- package/web/.next/server/chunks/ssr/_1pp0z5srqqqyl._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_1xuikhitica6p._.js +0 -3
- package/web/.next/server/chunks/ssr/_1xuikhitica6p._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_0gpbs01t1c_a4._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_0gpbs01t1c_a4._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_0zgrzr0ui3gi8._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_0zgrzr0ui3gi8._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_174jf4d4t_bo_._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_174jf4d4t_bo_._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_1qxtjrbc2-6xd._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_1qxtjrbc2-6xd._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_0t_cmi-llaq7g._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_0t_cmi-llaq7g._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_1x3s5abk_uj9j._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_app-switcher_08qq5-uxv7jii.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_app-switcher_08qq5-uxv7jii.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_class-names_1h5pbm2ucssiq.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_class-names_1h5pbm2ucssiq.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_features_025l9l6m2zkya._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_features_frame_0pe8cwpxe1egb._.js +0 -3
- package/web/.next/server/chunks/ssr/web_features_frame_0pe8cwpxe1egb._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_features_outside-parties_paths_ts_0vbj9elyqekpp._.js +0 -3
- package/web/.next/server/chunks/ssr/web_features_outside-parties_paths_ts_0vbj9elyqekpp._.js.map +0 -1
- package/web/.next/static/chunks/0ozz8jadgfdrx.js +0 -1
- package/web/.next/static/chunks/1v36iovy1f5cj.js +0 -1
- package/web/.next/static/chunks/1vhvy8bx4fxur.js +0 -1
- package/web/.next/static/chunks/1vhx_nu9nxo1v.js +0 -1
- package/web/.next/static/chunks/24vn5i6ojvl8l.js +0 -1
- package/web/.next/static/chunks/2l6hafvocw-rd.js +0 -1
- package/web/.next/static/chunks/2ld8_nap7g_uy.js +0 -1
- package/web/.next/static/chunks/2pvcbql986wln.js +0 -1
- package/web/.next/static/chunks/2s1efgj6gxjgl.js +0 -1
- package/web/.next/static/chunks/2zlx-c_0x38uo.css +0 -3
- package/web/.next/static/chunks/34u_331hqync_.js +0 -1
- package/web/.next/static/chunks/3_bb0g4jkqn8q.js +0 -1
- package/web/.next/static/chunks/3jq9vu8tr29j2.js +0 -1
- /package/web/.next/server/chunks/ssr/{[root-of-the-server]__1qtzvez4cn5be._.js.map → [root-of-the-server]__1ektgsnjg4btl._.js.map} +0 -0
- /package/web/.next/server/chunks/ssr/{[root-of-the-server]__1j6n8jj7-5t6v._.js.map → [root-of-the-server]__1nfpyr3ynmwks._.js.map} +0 -0
- /package/web/.next/server/chunks/ssr/{_1a9wrl8uw7x-y._.js.map → _13_ady-a4058y._.js.map} +0 -0
- /package/web/.next/server/chunks/ssr/{_1iorutn_o9hja._.js.map → _1cc4ie_s4tycq._.js.map} +0 -0
- /package/web/.next/server/chunks/ssr/{_0vid8-myyy-_4._.js.map → _1xgivp19ts9hn._.js.map} +0 -0
- /package/web/.next/static/{2O8_FQX7YN47L5_OxojXH → 79SqN0pBIJ0D-DK1jZmK6}/_buildManifest.js +0 -0
- /package/web/.next/static/{2O8_FQX7YN47L5_OxojXH → 79SqN0pBIJ0D-DK1jZmK6}/_clientMiddlewareManifest.js +0 -0
- /package/web/.next/static/{2O8_FQX7YN47L5_OxojXH → 79SqN0pBIJ0D-DK1jZmK6}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../node_modules/lucide-react/src/icons/chevron-left.ts","../../../../../web/features/bridge/paths.ts","../../../../../web/features/bridge/services/shell.ts","../../../../../web/features/bridge/state/opened-item.tsx","../../../../../web/features/bridge/state/kept-read.tsx","../../../../../web/features/bridge/services/last-read.ts","../../../../../web/features/bridge/state/shell-frame.tsx","../../../../../web/features/bridge/hooks/use-focus-report.ts","../../../../../web/features/bridge/hooks/use-live-refresh.ts","../../../../../web/features/bridge/ui/bridge-top-bar.tsx","../../../../../node_modules/lucide-react/src/icons/sliders-horizontal.ts","../../../../../node_modules/lucide-react/src/icons/globe.ts","../../../../../node_modules/lucide-react/src/icons/route.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'chevron-left',\n size: 24,\n node: [['path', { d: 'm15 18-6-6 6-6', key: '1wnfg3' }]],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name ChevronLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-left\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 ChevronLeft = createLucideIcon(__iconData);\n\nexport default ChevronLeft;\n","/** Bridge's pages (docs/design/bridge): home, the basket, Stay aware, Done, Your fleet, Bridge's settings and where things show; a module of their own, so a page in the browser names them too. */\nexport const BRIDGE_PATH = '/bridge';\nexport const BRIDGE_BASKET_PATH = '/bridge/basket';\nexport const BRIDGE_STAY_AWARE_PATH = '/bridge/stay-aware';\nexport const BRIDGE_DONE_PATH = '/bridge/done';\nexport const BRIDGE_SETTINGS_PATH = '/bridge/settings';\nexport const BRIDGE_ROUTING_PATH = '/bridge/settings/routing';\n","/**\n * Bridge's shell (docs/design/bridge/mockups): the screen in view named as\n * the sidebar names it, in the breadcrumb on desktop and as the phone's\n * screen title, with a back chevron where it leads back to home, and the\n * phone's tab it is under. Pure view logic, no React and no API client.\n */\nimport type { HomeItem } from './items';\n\n/** Bridge's pages, each a screen of the shell. */\nexport type BridgeScreen = 'home' | 'basket' | 'stay-aware' | 'done' | 'fleet' | 'routing' | 'settings';\n\n/** The phone's four tabs. */\nexport type PhoneTab = 'waiting' | 'aware' | 'done' | 'fleet';\n\nexport interface ScreenNaming {\n readonly name: string;\n /** Whether the phone's title leads back to home with a back chevron. */\n readonly hasBack: boolean;\n /** The phone's tab shown current; none for a page under no tab, such as the settings. */\n readonly tab: PhoneTab | null;\n}\n\nconst SCREENS: Record<BridgeScreen, ScreenNaming> = {\n home: { name: 'Bridge', hasBack: false, tab: 'waiting' },\n basket: { name: 'Basket', hasBack: true, tab: 'waiting' },\n 'stay-aware': { name: 'Stay aware', hasBack: false, tab: 'aware' },\n done: { name: 'Done', hasBack: false, tab: 'done' },\n fleet: { name: 'Your fleet', hasBack: false, tab: 'fleet' },\n routing: { name: 'Where things show', hasBack: true, tab: null },\n settings: { name: 'Settings', hasBack: true, tab: null },\n};\n\nconst OPENED: Record<HomeItem['job'], string> = {\n decide: 'Question',\n do: 'Step',\n 'stay-aware': 'Stay aware',\n 'everything-else': 'Message',\n};\n\nexport function screenOf(screen: BridgeScreen): ScreenNaming {\n return SCREENS[screen];\n}\n\n/** The phone's title while an item is open in place of its list, by its job. */\nexport function openedScreenOf(job: HomeItem['job']): string {\n return OPENED[job];\n}\n\n/** The counts the shell shows: what waits, the unseen to stay aware of, the basket's answers and the ships with an alert; one not known now is left out. */\nexport interface ShellCounts {\n readonly waiting: number | undefined;\n readonly stayAware: number | undefined;\n readonly basket: number;\n readonly fleetAlerts: number | undefined;\n}\n\n/** Bridge home as the shell reads it: its counts, none for an account with no person ship, or not readable now. */\nexport type HomeForCounts =\n | { readonly kind: 'read'; readonly value: { readonly waiting: { readonly count: number }; readonly stayAware: readonly { readonly state: string }[] } }\n | { readonly kind: 'none' }\n | { readonly kind: 'unreadable' };\n\n/** What waits as home counts it; of the stay-aware feed only the alerts and notices not seen yet (CC16). */\nexport function shellCountsOf({ home, basket, fleetAlerts }: { home: HomeForCounts; basket: number; fleetAlerts: number | undefined }): ShellCounts {\n switch (home.kind) {\n case 'read':\n return { waiting: home.value.waiting.count, stayAware: home.value.stayAware.filter(({ state }) => state === 'new').length, basket, fleetAlerts };\n case 'none':\n return { waiting: 0, stayAware: 0, basket, fleetAlerts };\n case 'unreadable':\n return { waiting: undefined, stayAware: undefined, basket, fleetAlerts };\n }\n}\n","'use client';\n\nimport { createContext, useContext, useEffect, useRef, useState, type ReactNode } from 'react';\n\nimport type { OpenedItem } from '../ui/bridge-top-bar';\n\nconst OpenedItemContext = createContext<{ opened: OpenedItem | undefined; setOpened: (opened: OpenedItem | undefined) => void } | undefined>(undefined);\n\n/** Holds the item open in place of its list, if any, for the shell's phone title. */\nexport function OpenedItemProvider({ children }: { children: (opened: OpenedItem | undefined) => ReactNode }) {\n const [opened, setOpened] = useState<OpenedItem | undefined>();\n return <OpenedItemContext value={{ opened, setOpened }}>{children(opened)}</OpenedItemContext>;\n}\n\n/**\n * Names the item open in place of its list to the shell, by its title, the\n * back chevron closing it; undefined while none is open. Outside Bridge's\n * shell it does nothing.\n */\nexport function useOpenedItem(title: string | undefined, onBack: () => void): void {\n const setOpened = useContext(OpenedItemContext)?.setOpened;\n const back = useRef(onBack);\n useEffect(() => {\n back.current = onBack;\n });\n useEffect(() => {\n if (setOpened === undefined) {\n return undefined;\n }\n setOpened(title === undefined ? undefined : { title, onBack: () => { back.current(); } });\n return () => {\n setOpened(undefined);\n };\n }, [setOpened, title]);\n}\n","'use client';\n\nimport { createContext, useContext, useState, type ReactNode } from 'react';\n\nimport { nextShownOf, type KeptPart } from '../services/last-read';\n\nconst LastReadContext = createContext<string | undefined>(undefined);\n\n/**\n * A part of a Bridge page the server read, kept in the browser while the\n * page is open (states.html): read now, it shows and is kept; while the\n * record cannot be read, the part last read shows in its place, and what is\n * inside it can tell with useLastReadAt. With nothing read yet, the\n * server's own answer shows, such as nothing at all.\n */\nexport function KeptRead({ readAt, children }: { readAt: string | undefined; children: ReactNode }) {\n const [kept, setKept] = useState<KeptPart<ReactNode> | undefined>();\n const next = nextShownOf(kept, { readAt, part: children });\n // Each read the server answers carries its own time: a new time is a new read to keep.\n if (next.kept?.readAt !== kept?.readAt) {\n setKept(next.kept);\n }\n return <AsLastRead at={next.shown.lastReadAt}>{next.shown.part}</AsLastRead>;\n}\n\n/** Shows what is inside as last read at a time; as read now with none. */\nexport function AsLastRead({ at, children }: { at: string | undefined; children: ReactNode }) {\n return <LastReadContext value={at}>{children}</LastReadContext>;\n}\n\n/** When what shows was last read, while it shows as last read; undefined while it is read now. */\nexport function useLastReadAt(): string | undefined {\n return useContext(LastReadContext);\n}\n","/**\n * A page part as last read (states.html; Bridge, section 9: core does not\n * answer): while the record cannot be read, the page goes on showing what it\n * last read, saying when. The browser keeps what it showed; the gateway keeps\n * no copy of a payload (Bridge, section 6). Pure view logic, no React.\n */\n\n/** What the server answered for a part: read at a time, or, with no time, what to show while it could not be read. */\nexport interface PartAnswer<T> {\n readonly readAt: string | undefined;\n readonly part: T;\n}\n\n/** The last part read, and when. */\nexport interface KeptPart<T> {\n readonly readAt: string;\n readonly part: T;\n}\n\n/** What shows of a part: as read now, or, with a time, as last read then. */\nexport interface ShownPart<T> {\n readonly part: T;\n readonly lastReadAt: string | undefined;\n}\n\nexport function nextShownOf<T>(kept: KeptPart<T> | undefined, answer: PartAnswer<T>): { kept: KeptPart<T> | undefined; shown: ShownPart<T> } {\n if (answer.readAt !== undefined) {\n return { kept: { readAt: answer.readAt, part: answer.part }, shown: { part: answer.part, lastReadAt: undefined } };\n }\n if (kept === undefined) {\n return { kept, shown: { part: answer.part, lastReadAt: undefined } };\n }\n return { kept, shown: { part: kept.part, lastReadAt: kept.readAt } };\n}\n\n/** The time of day a part was last read, in UTC to the minute, as Bridge says its other times. */\nexport function lastReadTimeOf(readAt: string): string {\n return `${new Date(readAt).toISOString().slice(11, 16)} UTC`;\n}\n","'use client';\n\nimport type { Theme } from '@aeolus-fleet/common';\nimport { AvatarMenu, AvatarMenuSheet } from '@aeolus-fleet/common/header';\nimport { Globe, Route, SlidersHorizontal } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { inFleet } from '../../../lib/gateway-api/page-account';\nimport { useAccountMenu } from '../../frame/hooks/use-account-menu';\nimport { OUTSIDE_PARTIES_PATH } from '../../outside-parties/paths';\nimport { useFocusReport } from '../hooks/use-focus-report';\nimport { useLiveRefresh } from '../hooks/use-live-refresh';\nimport { BRIDGE_ROUTING_PATH } from '../paths';\nimport type { BridgeScreen } from '../services/shell';\nimport { BridgeTopBar } from '../ui/bridge-top-bar';\nimport { OpenedItemProvider } from './opened-item';\n\n/** The account signed in, as the shell shows it: its email, the account app's address, the theme it chose. */\nexport interface ShellAccount {\n readonly email: string;\n readonly accountUrl: string | undefined;\n readonly theme: Theme;\n}\n\n/**\n * The person at the sidebar's foot (home.html): the avatar opens the\n * avatar menu, beside the account's email and the fleet in view.\n */\nexport function SidebarPerson({ account: { email, accountUrl, theme }, fleetName }: { account: ShellAccount; fleetName: string | undefined }) {\n const { account, signOutForm } = useAccountMenu({ email, accountUrl, theme });\n return (\n <>\n {signOutForm}\n <AvatarMenu {...account} />\n <span className=\"flex min-w-0 flex-col leading-4\">\n <span data-testid=\"bridge-person\" className=\"truncate font-medium\">\n {email}\n </span>\n <span className=\"truncate text-caption text-muted-foreground\">{fleetName}</span>\n </span>\n </>\n );\n}\n\n/** The phone's avatar: its sheet carries the settings the tab bar lacks (header design H6). */\nfunction PhoneAvatar({ fleetId, account: { email, accountUrl, theme } }: { fleetId: string; account: ShellAccount }) {\n const { account, signOutForm } = useAccountMenu({\n email,\n accountUrl,\n theme,\n entries: [\n { key: 'routing', label: 'Where things show', icon: <Route aria-hidden />, href: inFleet(BRIDGE_ROUTING_PATH, fleetId), isPhoneOnly: true },\n { key: 'outside-parties', label: 'Outside parties', icon: <Globe aria-hidden />, href: inFleet(OUTSIDE_PARTIES_PATH, fleetId), isPhoneOnly: true },\n ...(accountUrl === undefined ? [] : [{ key: 'fleets-and-account', label: 'Fleets and account', icon: <SlidersHorizontal aria-hidden />, href: accountUrl, isPhoneOnly: true }]),\n ],\n });\n return (\n <>\n {signOutForm}\n <AvatarMenuSheet {...account} />\n </>\n );\n}\n\n/**\n * The part of Bridge's shell that lives in the browser: the top bar over\n * the page, Live while the page follows its changes, the phone's title\n * naming an item open in place of its list. It keeps the page live, and\n * tells the gateway while it is in focus (wake a person, W6).\n */\nexport function ShellFrame({ fleetId, fleetName, screen, account, children }: { fleetId: string; fleetName: string | undefined; screen: BridgeScreen; account: ShellAccount | undefined; children: ReactNode }) {\n const isLive = useLiveRefresh(fleetId);\n useFocusReport(fleetId);\n return (\n <OpenedItemProvider>\n {(opened) => (\n <>\n <BridgeTopBar fleetId={fleetId} fleetName={fleetName} screen={screen} isLive={isLive} opened={opened} avatar={account === undefined ? null : <PhoneAvatar fleetId={fleetId} account={account} />} />\n <main className=\"w-full max-w-5xl flex-1 px-4 py-5 sm:px-6\">{children}</main>\n </>\n )}\n </OpenedItemProvider>\n );\n}\n","'use client';\n\nimport { useEffect } from 'react';\n\n/** The stream the page holds while in focus, which the web app's server follows on the gateway's API for the browser. */\nexport const FOCUS_PATH = '/bridge/focus';\n\n/**\n * Tells the gateway while the page is in focus (wake a person, W6): it holds\n * the focus stream open while the window has focus and the page shows, and\n * closes it when either ends. While a page of the person is in focus, what\n * arrives is shown there and no wake goes out; an open page not in focus\n * changes nothing. A lost connection no longer counts as in focus.\n */\nexport function useFocusReport(fleetId: string): void {\n useEffect(() => {\n let focus: EventSource | undefined;\n const report = () => {\n const isInFocus = document.visibilityState === 'visible' && document.hasFocus();\n if (isInFocus && focus === undefined) {\n focus = new EventSource(`${FOCUS_PATH}?fleet=${encodeURIComponent(fleetId)}`);\n } else if (!isInFocus && focus !== undefined) {\n focus.close();\n focus = undefined;\n }\n };\n report();\n window.addEventListener('focus', report);\n window.addEventListener('blur', report);\n document.addEventListener('visibilitychange', report);\n return () => {\n window.removeEventListener('focus', report);\n window.removeEventListener('blur', report);\n document.removeEventListener('visibilitychange', report);\n focus?.close();\n };\n }, [fleetId]);\n}\n","'use client';\n\nimport { useRouter } from 'next/navigation';\nimport { useEffect, useState } from 'react';\n\n/** The page's live updates, which the web app's server follows on the gateway's API for the browser. */\nexport const CHANGES_PATH = '/bridge/changes';\n\n/**\n * Keeps the page in step with its fleet's requests: whenever one changes,\n * the page reads itself again on the server, as its own caller. The browser\n * opens the stream again by itself when it drops. Answers whether the stream\n * is open now, so the page can say it is live.\n */\nexport function useLiveRefresh(fleetId: string): boolean {\n const router = useRouter();\n const [isLive, setIsLive] = useState(false);\n useEffect(() => {\n const changes = new EventSource(`${CHANGES_PATH}?fleet=${encodeURIComponent(fleetId)}`);\n changes.onopen = () => {\n setIsLive(true);\n };\n changes.onerror = () => {\n setIsLive(false);\n };\n changes.onmessage = () => {\n router.refresh();\n };\n return () => {\n changes.close();\n };\n }, [fleetId, router]);\n return isLive;\n}\n","import { ChevronLeft } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { inFleet } from '../../../lib/gateway-api/page-account';\nimport { BRIDGE_PATH } from '../paths';\nimport { screenOf, type BridgeScreen } from '../services/shell';\n\n/** What the breadcrumb names while an item is open from home: the list it was opened from (decide.html, do.html, basket.html). */\nconst OPENED_FROM_HOME = 'Waiting on you';\n\n/** An item open in place of its list: the phone's title names it, and its back chevron closes it. */\nexport interface OpenedItem {\n readonly title: string;\n readonly onBack: () => void;\n}\n\nconst BACK = 'inline-flex size-8 shrink-0 items-center justify-center rounded-md hover:bg-accent sm:hidden';\n\nfunction Back({ fleetId, hasBack, opened }: { fleetId: string; hasBack: boolean; opened: OpenedItem | undefined }) {\n if (opened !== undefined) {\n return (\n <button type=\"button\" data-testid=\"bridge-back\" aria-label=\"Back\" onClick={opened.onBack} className={BACK}>\n <ChevronLeft aria-hidden className=\"size-5\" />\n </button>\n );\n }\n if (!hasBack) {\n return null;\n }\n return (\n <a data-testid=\"bridge-back\" aria-label=\"Back to Bridge\" href={inFleet(BRIDGE_PATH, fleetId)} className={BACK}>\n <ChevronLeft aria-hidden className=\"size-5\" />\n </a>\n );\n}\n\n/**\n * Bridge's top bar (home.html, basket.html, decide.html). On desktop the\n * breadcrumb, the fleet then the page in view (Waiting on you while an item\n * is open from home), and Live. On the phone the\n * screen title, an item open in place of its list named by it, with a back\n * chevron where it leads back, Live and the avatar. Live shows while the\n * page follows its changes.\n */\nexport function BridgeTopBar({ fleetId, fleetName, screen, isLive, opened, avatar }: { fleetId: string; fleetName: string | undefined; screen: BridgeScreen; isLive: boolean; opened: OpenedItem | undefined; avatar: ReactNode }) {\n const { name, hasBack } = screenOf(screen);\n const crumb = opened !== undefined && screen === 'home' ? OPENED_FROM_HOME : name;\n return (\n <header className=\"sticky top-0 z-30 flex h-14 shrink-0 items-center gap-2 border-b border-border bg-background pr-3 pl-4\">\n <Back fleetId={fleetId} hasBack={hasBack} opened={opened} />\n <span data-testid=\"bridge-crumb\" className=\"text-muted-foreground max-sm:hidden\">\n {fleetName === undefined ? null : `${fleetName} / `}\n <b className=\"font-semibold text-foreground\">{crumb}</b>\n </span>\n <span data-testid=\"bridge-title\" className={`min-w-0 flex-1 truncate font-semibold tracking-tight sm:hidden ${hasBack || opened !== undefined ? 'text-lg' : 'text-title-touch'}`}>\n {opened?.title ?? name}\n </span>\n {isLive ? (\n <span data-testid=\"bridge-live\" className=\"inline-flex items-center gap-1.5 text-meta text-muted-foreground\">\n <i aria-hidden className=\"inline-block size-2 rounded-full bg-tone-ok-fg\" />\n Live\n </span>\n ) : null}\n <span className=\"sm:hidden\">{avatar}</span>\n </header>\n );\n}\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'sliders-horizontal',\n size: 24,\n node: [\n ['path', { d: 'M10 5H3', key: '1qgfaw' }],\n ['path', { d: 'M12 19H3', key: 'yhmn1j' }],\n ['path', { d: 'M14 3v4', key: '1sua03' }],\n ['path', { d: 'M16 17v4', key: '1q0r14' }],\n ['path', { d: 'M21 12h-9', key: '1o4lsq' }],\n ['path', { d: 'M21 19h-5', key: '1rlt1p' }],\n ['path', { d: 'M21 5h-7', key: '1oszz2' }],\n ['path', { d: 'M8 10v4', key: 'tgpxqk' }],\n ['path', { d: 'M8 12H3', key: 'a7s4jb' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name SlidersHorizontal\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/sliders-horizontal\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 SlidersHorizontal = createLucideIcon(__iconData);\n\nexport default SlidersHorizontal;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'globe',\n size: 24,\n node: [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20', key: '13o1zl' }],\n ['path', { d: 'M2 12h20', key: '9i4pu4' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Globe\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/globe\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 Globe = createLucideIcon(__iconData);\n\nexport default Globe;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'route',\n size: 24,\n node: [\n ['circle', { cx: '6', cy: '19', r: '3', key: '1kj8tv' }],\n ['path', { d: 'M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15', key: '1d8sl' }],\n ['circle', { cx: '18', cy: '5', r: '3', key: 'gq8acd' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Route\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/route\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 Route = createLucideIcon(__iconData);\n\nexport default Route;\n"],"names":["BRIDGE_PATH","BRIDGE_BASKET_PATH","BRIDGE_STAY_AWARE_PATH","BRIDGE_DONE_PATH","BRIDGE_SETTINGS_PATH","BRIDGE_ROUTING_PATH","SCREENS","home","name","hasBack","tab","basket","done","fleet","routing","settings","OPENED","decide","do","screenOf","screen","openedScreenOf","job","shellCountsOf","fleetAlerts","kind","waiting","value","count","stayAware","filter","state","length","undefined","nextShownOf","kept","answer","readAt","part","shown","lastReadAt","lastReadTimeOf","Date","toISOString","slice"],"mappings":"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","ignoreList":[0,10,11,12]}
|
|
1
|
+
{"version":3,"sources":["../../../../../node_modules/lucide-react/src/icons/chevron-left.ts","../../../../../web/features/bridge/paths.ts","../../../../../web/features/bridge/services/shell.ts","../../../../../web/features/bridge/state/opened-item.tsx","../../../../../web/features/bridge/state/kept-read.tsx","../../../../../web/features/bridge/services/last-read.ts","../../../../../web/features/bridge/hooks/use-focus-report.ts","../../../../../web/features/bridge/hooks/use-live-refresh.ts","../../../../../web/features/bridge/state/shell-frame.tsx","../../../../../web/features/bridge/ui/bridge-top-bar.tsx","../../../../../web/features/bridge/ui/phone-app-entries.tsx","../../../../../node_modules/lucide-react/src/icons/app-window.ts","../../../../../node_modules/lucide-react/src/icons/globe.ts","../../../../../node_modules/lucide-react/src/icons/route.ts","../../../../../node_modules/lucide-react/src/icons/sliders-horizontal.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'chevron-left',\n size: 24,\n node: [['path', { d: 'm15 18-6-6 6-6', key: '1wnfg3' }]],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name ChevronLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-left\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 ChevronLeft = createLucideIcon(__iconData);\n\nexport default ChevronLeft;\n","/** Bridge's pages (docs/design/bridge): home, the basket, Stay aware, Done, Your fleet, Bridge's settings and where things show; a module of their own, so a page in the browser names them too. */\nexport const BRIDGE_PATH = '/bridge';\nexport const BRIDGE_BASKET_PATH = '/bridge/basket';\nexport const BRIDGE_STAY_AWARE_PATH = '/bridge/stay-aware';\nexport const BRIDGE_DONE_PATH = '/bridge/done';\nexport const BRIDGE_SETTINGS_PATH = '/bridge/settings';\nexport const BRIDGE_ROUTING_PATH = '/bridge/settings/routing';\n","/**\n * Bridge's shell (docs/design/bridge/mockups): the screen in view named as\n * the sidebar names it, in the breadcrumb on desktop and as the phone's\n * screen title, with a back chevron where it leads back to home, and the\n * phone's tab it is under. Pure view logic, no React and no API client.\n */\nimport type { HomeItem } from './items';\n\n/** Bridge's pages, each a screen of the shell. */\nexport type BridgeScreen = 'home' | 'basket' | 'stay-aware' | 'done' | 'fleet' | 'routing' | 'settings';\n\n/** The phone's four tabs. */\nexport type PhoneTab = 'waiting' | 'aware' | 'done' | 'fleet';\n\nexport interface ScreenNaming {\n readonly name: string;\n /** Whether the phone's title leads back to home with a back chevron. */\n readonly hasBack: boolean;\n /** The phone's tab shown current; none for a page under no tab, such as the settings. */\n readonly tab: PhoneTab | null;\n}\n\nconst SCREENS: Record<BridgeScreen, ScreenNaming> = {\n home: { name: 'Bridge', hasBack: false, tab: 'waiting' },\n basket: { name: 'Basket', hasBack: true, tab: 'waiting' },\n 'stay-aware': { name: 'Stay aware', hasBack: false, tab: 'aware' },\n done: { name: 'Done', hasBack: false, tab: 'done' },\n fleet: { name: 'Your fleet', hasBack: false, tab: 'fleet' },\n routing: { name: 'Where things show', hasBack: true, tab: null },\n settings: { name: 'Settings', hasBack: true, tab: null },\n};\n\nconst OPENED: Record<HomeItem['job'], string> = {\n decide: 'Question',\n do: 'Step',\n 'stay-aware': 'Stay aware',\n 'everything-else': 'Message',\n};\n\nexport function screenOf(screen: BridgeScreen): ScreenNaming {\n return SCREENS[screen];\n}\n\n/** The phone's title while an item is open in place of its list, by its job. */\nexport function openedScreenOf(job: HomeItem['job']): string {\n return OPENED[job];\n}\n\n/** The counts the shell shows: what waits, the unseen to stay aware of, the basket's answers and the ships with an alert; one not known now is left out. */\nexport interface ShellCounts {\n readonly waiting: number | undefined;\n readonly stayAware: number | undefined;\n readonly basket: number;\n readonly fleetAlerts: number | undefined;\n /** What waits at argo, apart from what waits on the person (argo's inbox, AI4); none for an account not allowed as argo. */\n readonly argo?: number;\n}\n\n/** Bridge home as the shell reads it: its counts, none for an account with no person ship, or not readable now. */\nexport type HomeForCounts =\n | { readonly kind: 'read'; readonly value: { readonly waiting: { readonly count: number }; readonly stayAware: readonly { readonly state: string }[] } }\n | { readonly kind: 'none' }\n | { readonly kind: 'unreadable' };\n\n/** What waits as home counts it; of the stay-aware feed only the alerts and notices not seen yet (CC16); what waits at argo in a count of its own. */\nexport function shellCountsOf({ home, basket, fleetAlerts, argo }: { home: HomeForCounts; basket: number; fleetAlerts: number | undefined; argo?: number | undefined }): ShellCounts {\n const others = { basket, fleetAlerts, ...(argo === undefined ? {} : { argo }) };\n switch (home.kind) {\n case 'read':\n return { waiting: home.value.waiting.count, stayAware: home.value.stayAware.filter(({ state }) => state === 'new').length, ...others };\n case 'none':\n return { waiting: 0, stayAware: 0, ...others };\n case 'unreadable':\n return { waiting: undefined, stayAware: undefined, ...others };\n }\n}\n","'use client';\n\nimport { createContext, useContext, useEffect, useRef, useState, type ReactNode } from 'react';\n\nimport type { OpenedItem } from '../ui/bridge-top-bar';\n\nconst OpenedItemContext = createContext<{ opened: OpenedItem | undefined; setOpened: (opened: OpenedItem | undefined) => void } | undefined>(undefined);\n\n/** Holds the item open in place of its list, if any, for the shell's phone title. */\nexport function OpenedItemProvider({ children }: { children: (opened: OpenedItem | undefined) => ReactNode }) {\n const [opened, setOpened] = useState<OpenedItem | undefined>();\n return <OpenedItemContext value={{ opened, setOpened }}>{children(opened)}</OpenedItemContext>;\n}\n\n/**\n * Names the item open in place of its list to the shell, by its title, the\n * back chevron closing it; undefined while none is open. Outside Bridge's\n * shell it does nothing.\n */\nexport function useOpenedItem(title: string | undefined, onBack: () => void): void {\n const setOpened = useContext(OpenedItemContext)?.setOpened;\n const back = useRef(onBack);\n useEffect(() => {\n back.current = onBack;\n });\n useEffect(() => {\n if (setOpened === undefined) {\n return undefined;\n }\n setOpened(title === undefined ? undefined : { title, onBack: () => { back.current(); } });\n return () => {\n setOpened(undefined);\n };\n }, [setOpened, title]);\n}\n","'use client';\n\nimport { createContext, useContext, useState, type ReactNode } from 'react';\n\nimport { nextShownOf, type KeptPart } from '../services/last-read';\n\nconst LastReadContext = createContext<string | undefined>(undefined);\n\n/**\n * A part of a Bridge page the server read, kept in the browser while the\n * page is open (states.html): read now, it shows and is kept; while the\n * record cannot be read, the part last read shows in its place, and what is\n * inside it can tell with useLastReadAt. With nothing read yet, the\n * server's own answer shows, such as nothing at all.\n */\nexport function KeptRead({ readAt, children }: { readAt: string | undefined; children: ReactNode }) {\n const [kept, setKept] = useState<KeptPart<ReactNode> | undefined>();\n const next = nextShownOf(kept, { readAt, part: children });\n // Each read the server answers carries its own time: a new time is a new read to keep.\n if (next.kept?.readAt !== kept?.readAt) {\n setKept(next.kept);\n }\n return <AsLastRead at={next.shown.lastReadAt}>{next.shown.part}</AsLastRead>;\n}\n\n/** Shows what is inside as last read at a time; as read now with none. */\nexport function AsLastRead({ at, children }: { at: string | undefined; children: ReactNode }) {\n return <LastReadContext value={at}>{children}</LastReadContext>;\n}\n\n/** When what shows was last read, while it shows as last read; undefined while it is read now. */\nexport function useLastReadAt(): string | undefined {\n return useContext(LastReadContext);\n}\n","/**\n * A page part as last read (states.html; Bridge, section 9: core does not\n * answer): while the record cannot be read, the page goes on showing what it\n * last read, saying when. The browser keeps what it showed; the gateway keeps\n * no copy of a payload (Bridge, section 6). Pure view logic, no React.\n */\n\n/** What the server answered for a part: read at a time, or, with no time, what to show while it could not be read. */\nexport interface PartAnswer<T> {\n readonly readAt: string | undefined;\n readonly part: T;\n}\n\n/** The last part read, and when. */\nexport interface KeptPart<T> {\n readonly readAt: string;\n readonly part: T;\n}\n\n/** What shows of a part: as read now, or, with a time, as last read then. */\nexport interface ShownPart<T> {\n readonly part: T;\n readonly lastReadAt: string | undefined;\n}\n\nexport function nextShownOf<T>(kept: KeptPart<T> | undefined, answer: PartAnswer<T>): { kept: KeptPart<T> | undefined; shown: ShownPart<T> } {\n if (answer.readAt !== undefined) {\n return { kept: { readAt: answer.readAt, part: answer.part }, shown: { part: answer.part, lastReadAt: undefined } };\n }\n if (kept === undefined) {\n return { kept, shown: { part: answer.part, lastReadAt: undefined } };\n }\n return { kept, shown: { part: kept.part, lastReadAt: kept.readAt } };\n}\n\n/** The time of day a part was last read, in UTC to the minute, as Bridge says its other times. */\nexport function lastReadTimeOf(readAt: string): string {\n return `${new Date(readAt).toISOString().slice(11, 16)} UTC`;\n}\n","'use client';\n\nimport { useEffect } from 'react';\n\n/** The stream the page holds while in focus, which the web app's server follows on the gateway's API for the browser. */\nexport const FOCUS_PATH = '/bridge/focus';\n\n/**\n * Tells the gateway while the page is in focus (wake a person, W6): it holds\n * the focus stream open while the window has focus and the page shows, and\n * closes it when either ends. While a page of the person is in focus, what\n * arrives is shown there and no wake goes out; an open page not in focus\n * changes nothing. A lost connection no longer counts as in focus.\n */\nexport function useFocusReport(fleetId: string): void {\n useEffect(() => {\n let focus: EventSource | undefined;\n const report = () => {\n const isInFocus = document.visibilityState === 'visible' && document.hasFocus();\n if (isInFocus && focus === undefined) {\n focus = new EventSource(`${FOCUS_PATH}?fleet=${encodeURIComponent(fleetId)}`);\n } else if (!isInFocus && focus !== undefined) {\n focus.close();\n focus = undefined;\n }\n };\n report();\n window.addEventListener('focus', report);\n window.addEventListener('blur', report);\n document.addEventListener('visibilitychange', report);\n return () => {\n window.removeEventListener('focus', report);\n window.removeEventListener('blur', report);\n document.removeEventListener('visibilitychange', report);\n focus?.close();\n };\n }, [fleetId]);\n}\n","'use client';\n\nimport { useRouter } from 'next/navigation';\nimport { useEffect, useState } from 'react';\n\n/** The page's live updates, which the web app's server follows on the gateway's API for the browser. */\nexport const CHANGES_PATH = '/bridge/changes';\n\n/**\n * Keeps the page in step with its fleet's requests: whenever one changes,\n * the page reads itself again on the server, as its own caller. The browser\n * opens the stream again by itself when it drops. Answers whether the stream\n * is open now, so the page can say it is live.\n */\nexport function useLiveRefresh(fleetId: string): boolean {\n const router = useRouter();\n const [isLive, setIsLive] = useState(false);\n useEffect(() => {\n const changes = new EventSource(`${CHANGES_PATH}?fleet=${encodeURIComponent(fleetId)}`);\n changes.onopen = () => {\n setIsLive(true);\n };\n changes.onerror = () => {\n setIsLive(false);\n };\n changes.onmessage = () => {\n router.refresh();\n };\n return () => {\n changes.close();\n };\n }, [fleetId, router]);\n return isLive;\n}\n","'use client';\n\nimport type { Theme } from '@aeolus-fleet/common';\nimport type { AppSwitcherModel } from '@aeolus-fleet/common/rules';\nimport { AvatarMenu, AvatarMenuSheet } from '@aeolus-fleet/ui';\nimport { Globe, Route, SlidersHorizontal } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { inFleet } from '../../../lib/gateway-api/page-account';\nimport { useAccountMenu } from '../../frame/hooks/use-account-menu';\nimport { OUTSIDE_PARTIES_PATH } from '../../outside-parties/paths';\nimport { useFocusReport } from '../hooks/use-focus-report';\nimport { useLiveRefresh } from '../hooks/use-live-refresh';\nimport { BRIDGE_ROUTING_PATH } from '../paths';\nimport type { BridgeScreen } from '../services/shell';\nimport { phoneAppEntries } from '../ui/phone-app-entries';\nimport { BridgeTopBar } from '../ui/bridge-top-bar';\nimport { OpenedItemProvider } from './opened-item';\n\n/** The account signed in, as the shell shows it: its email, the account app's address, the theme it chose. */\nexport interface ShellAccount {\n readonly email: string;\n readonly accountUrl: string | undefined;\n readonly theme: Theme;\n}\n\n/**\n * The person at the sidebar's foot (home.html): the avatar opens the\n * avatar menu, beside the account's email and the fleet in view.\n */\nexport function SidebarPerson({ account: { email, accountUrl, theme }, fleetName, isAllowedAsArgo = false }: { account: ShellAccount; fleetName: string | undefined; isAllowedAsArgo?: boolean }) {\n const { account, signOutForm } = useAccountMenu({ email, accountUrl, theme });\n return (\n <>\n {signOutForm}\n <AvatarMenu {...account} />\n <span className=\"flex min-w-0 flex-col leading-4\">\n <span data-testid=\"bridge-person\" className=\"truncate font-medium\">\n {email}\n </span>\n <span className=\"truncate text-caption text-muted-foreground\">{isAllowedAsArgo ? `${fleetName ?? ''} · allowed as argo` : fleetName}</span>\n </span>\n </>\n );\n}\n\n/** The phone's avatar: its sheet carries the settings the tab bar lacks (header design H6). */\nfunction PhoneAvatar({ fleetId, switcher, account: { email, accountUrl, theme } }: { fleetId: string; switcher?: AppSwitcherModel; account: ShellAccount }) {\n const { account, signOutForm } = useAccountMenu({\n email,\n accountUrl,\n theme,\n entries: [\n ...phoneAppEntries(switcher),\n { key: 'routing', label: 'Where things show', icon: <Route aria-hidden />, href: inFleet(BRIDGE_ROUTING_PATH, fleetId), isPhoneOnly: true },\n { key: 'outside-parties', label: 'Outside parties', icon: <Globe aria-hidden />, href: inFleet(OUTSIDE_PARTIES_PATH, fleetId), isPhoneOnly: true },\n ...(accountUrl === undefined ? [] : [{ key: 'fleets-and-account', label: 'Fleets and account', icon: <SlidersHorizontal aria-hidden />, href: accountUrl, isPhoneOnly: true }]),\n ],\n });\n return (\n <>\n {signOutForm}\n <AvatarMenuSheet {...account} />\n </>\n );\n}\n\n/**\n * The part of Bridge's shell that lives in the browser: the top bar over\n * the page, Live while the page follows its changes, the phone's title\n * naming an item open in place of its list. It keeps the page live, and\n * tells the gateway while it is in focus (wake a person, W6).\n */\nexport function ShellFrame({ fleetId, fleetName, screen, account, switcher, children }: { fleetId: string; fleetName: string | undefined; screen: BridgeScreen; account: ShellAccount | undefined; switcher?: AppSwitcherModel; children: ReactNode }) {\n const isLive = useLiveRefresh(fleetId);\n useFocusReport(fleetId);\n return (\n <OpenedItemProvider>\n {(opened) => (\n <>\n <BridgeTopBar fleetId={fleetId} fleetName={fleetName} screen={screen} isLive={isLive} opened={opened} avatar={account === undefined ? null : <PhoneAvatar fleetId={fleetId} switcher={switcher} account={account} />} />\n <main className=\"w-full max-w-5xl flex-1 px-4 py-5 sm:px-6\">{children}</main>\n </>\n )}\n </OpenedItemProvider>\n );\n}\n","import { ChevronLeft } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { inFleet } from '../../../lib/gateway-api/page-account';\nimport { BRIDGE_PATH } from '../paths';\nimport { screenOf, type BridgeScreen } from '../services/shell';\n\n/** What the breadcrumb names while an item is open from home: the list it was opened from (decide.html, do.html, basket.html). */\nconst OPENED_FROM_HOME = 'Waiting on you';\n\n/** An item open in place of its list: the phone's title names it, and its back chevron closes it. */\nexport interface OpenedItem {\n readonly title: string;\n readonly onBack: () => void;\n}\n\nconst BACK = 'inline-flex size-8 shrink-0 items-center justify-center rounded-md hover:bg-accent sm:hidden';\n\nfunction Back({ fleetId, hasBack, opened }: { fleetId: string; hasBack: boolean; opened: OpenedItem | undefined }) {\n if (opened !== undefined) {\n return (\n <button type=\"button\" data-testid=\"bridge-back\" aria-label=\"Back\" onClick={opened.onBack} className={BACK}>\n <ChevronLeft aria-hidden className=\"size-5\" />\n </button>\n );\n }\n if (!hasBack) {\n return null;\n }\n return (\n <a data-testid=\"bridge-back\" aria-label=\"Back to Bridge\" href={inFleet(BRIDGE_PATH, fleetId)} className={BACK}>\n <ChevronLeft aria-hidden className=\"size-5\" />\n </a>\n );\n}\n\n/**\n * Bridge's top bar (home.html, basket.html, decide.html). On desktop the\n * breadcrumb, the fleet then the page in view (Waiting on you while an item\n * is open from home), and Live. On the phone the\n * screen title, an item open in place of its list named by it, with a back\n * chevron where it leads back, Live and the avatar. Live shows while the\n * page follows its changes.\n */\nexport function BridgeTopBar({ fleetId, fleetName, screen, isLive, opened, avatar }: { fleetId: string; fleetName: string | undefined; screen: BridgeScreen; isLive: boolean; opened: OpenedItem | undefined; avatar: ReactNode }) {\n const { name, hasBack } = screenOf(screen);\n const crumb = opened !== undefined && screen === 'home' ? OPENED_FROM_HOME : name;\n return (\n <header className=\"sticky top-0 z-30 flex h-14 shrink-0 items-center gap-2 border-b border-border bg-background pr-3 pl-4\">\n <Back fleetId={fleetId} hasBack={hasBack} opened={opened} />\n <span data-testid=\"bridge-crumb\" className=\"text-muted-foreground max-sm:hidden\">\n {fleetName === undefined ? null : `${fleetName} / `}\n <b className=\"font-semibold text-foreground\">{crumb}</b>\n </span>\n <span data-testid=\"bridge-title\" className={`min-w-0 flex-1 truncate font-semibold tracking-tight sm:hidden ${hasBack || opened !== undefined ? 'text-lg' : 'text-title-touch'}`}>\n {opened?.title ?? name}\n </span>\n {isLive ? (\n <span data-testid=\"bridge-live\" className=\"inline-flex items-center gap-1.5 text-meta text-muted-foreground\">\n <i aria-hidden className=\"inline-block size-2 rounded-full bg-tone-ok-fg\" />\n Live\n </span>\n ) : null}\n <span className=\"sm:hidden\">{avatar}</span>\n </header>\n );\n}\n","import type { AppSwitcherModel } from '@aeolus-fleet/common/rules';\nimport type { AvatarMenuEntry } from '@aeolus-fleet/ui';\nimport { AppWindow, Check } from 'lucide-react';\n\n/** The shared switcher's permitted apps, offered in the phone avatar sheet without replacing the screen title. */\nexport function phoneAppEntries(switcher: AppSwitcherModel | undefined): AvatarMenuEntry[] {\n return switcher?.apps.map(({ app, label, url, isCurrent }) => ({\n key: `app-${app}`,\n label,\n href: url,\n icon: isCurrent ? <Check aria-hidden /> : <AppWindow aria-hidden />,\n isPhoneOnly: true,\n })) ?? [];\n}\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'app-window',\n size: 24,\n node: [\n ['rect', { x: '2', y: '4', width: '20', height: '16', rx: '2', key: 'izxlao' }],\n ['path', { d: 'M10 4v4', key: 'pp8u80' }],\n ['path', { d: 'M2 8h20', key: 'd11cs7' }],\n ['path', { d: 'M6 4v4', key: '1svtjw' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name AppWindow\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/app-window\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 AppWindow = createLucideIcon(__iconData);\n\nexport default AppWindow;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'globe',\n size: 24,\n node: [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20', key: '13o1zl' }],\n ['path', { d: 'M2 12h20', key: '9i4pu4' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Globe\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/globe\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 Globe = createLucideIcon(__iconData);\n\nexport default Globe;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'route',\n size: 24,\n node: [\n ['circle', { cx: '6', cy: '19', r: '3', key: '1kj8tv' }],\n ['path', { d: 'M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15', key: '1d8sl' }],\n ['circle', { cx: '18', cy: '5', r: '3', key: 'gq8acd' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Route\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/route\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 Route = createLucideIcon(__iconData);\n\nexport default Route;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'sliders-horizontal',\n size: 24,\n node: [\n ['path', { d: 'M10 5H3', key: '1qgfaw' }],\n ['path', { d: 'M12 19H3', key: 'yhmn1j' }],\n ['path', { d: 'M14 3v4', key: '1sua03' }],\n ['path', { d: 'M16 17v4', key: '1q0r14' }],\n ['path', { d: 'M21 12h-9', key: '1o4lsq' }],\n ['path', { d: 'M21 19h-5', key: '1rlt1p' }],\n ['path', { d: 'M21 5h-7', key: '1oszz2' }],\n ['path', { d: 'M8 10v4', key: 'tgpxqk' }],\n ['path', { d: 'M8 12H3', key: 'a7s4jb' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name SlidersHorizontal\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/sliders-horizontal\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 SlidersHorizontal = createLucideIcon(__iconData);\n\nexport default SlidersHorizontal;\n"],"names":["BRIDGE_PATH","BRIDGE_BASKET_PATH","BRIDGE_STAY_AWARE_PATH","BRIDGE_DONE_PATH","BRIDGE_SETTINGS_PATH","BRIDGE_ROUTING_PATH","SCREENS","home","name","hasBack","tab","basket","done","fleet","routing","settings","OPENED","decide","do","screenOf","screen","openedScreenOf","job","shellCountsOf","fleetAlerts","argo","others","undefined","kind","waiting","value","count","stayAware","filter","state","length","nextShownOf","kept","answer","readAt","part","shown","lastReadAt","lastReadTimeOf","Date","toISOString","slice","key"],"mappings":"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","ignoreList":[0,11,12,13,14]}
|
|
@@ -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)},81140,a=>{var b=a.i(18379);a.s(["f",0,function(a){return Object.keys(a).flatMap(a=>a.startsWith(b.u)?[a.slice(b.u.length)]:[])}])},1324,a=>{a.s(["H",0,"fleet","v",0,function(a,b){let c=a.get(b);return"string"==typeof c?c:""},"O",0,function(a){return Object.fromEntries([...a.entries()].flatMap(([a,b])=>"string"==typeof b?[[a,b]]:[]))}])},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,"
|
|
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)},81140,a=>{var b=a.i(18379);a.s(["f",0,function(a){return Object.keys(a).flatMap(a=>a.startsWith(b.u)?[a.slice(b.u.length)]:[])}])},1324,a=>{a.s(["H",0,"fleet","v",0,function(a,b){let c=a.get(b);return"string"==typeof c?c:""},"O",0,function(a){return Object.fromEntries([...a.entries()].flatMap(([a,b])=>"string"==typeof b?[[a,b]]:[]))}])},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,"40ca8029b8207bd47293950b98bdbd89c6c994c5fa",null),a.s(["f",0,e])},18379,a=>{var b=a.i(29517);let c=["messages:send","messages:receive"],d="scope:",e="scopesShown";a.s(["_",0,c,"e",0,e,"u",0,d,"t",0,function(a,f){let g,{form:h,scopes:i}=f,j=h.ownerShipId?.trim();if(void 0!==j&&j!==a.ownerShipId){let a=(0,b.f)("ship").safeParse(j);if(!a.success)return{kind:"refused",message:"The owner's ship id is not a ship id (shp_...)"};g=a.data}let k=void 0===g?{}:{ownerShipId:g},l=a.scopes;if("true"!==h[e]||null===l)return{kind:"changes",...k,grant:[],revoke:[]};let m=i.filter(a=>!c.includes(a)),n=a=>void 0!==h[`${d}${a}`];return{kind:"changes",...k,grant:m.filter(a=>n(a)&&!l.includes(a)),revoke:m.filter(a=>!n(a)&&l.includes(a))}}])}]})();
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=_1_wav28san6dm._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
(()=>{"use strict";module.exports=[22432,21817,43256,27350,a=>{var b=a.i(82360);a.s(["f",0,b],22432),a.s(["f",0,b],21817),a.s(["f",0,b],43256),a.s(["f",0,b],27350)},53116,a=>{var b=a.i(72131),c=a.i(35112),d=a.i(54098),e=a.i(87924);let f=b.forwardRef(function(a,f){let{children:g,container:h,className:i,render:j,style:k,...l}=a,{node:m,subtree:n}=(0,d.o)({container:h,ref:f,componentProps:a,elementProps:l});return n||m?(0,e.jsxs)(b.Fragment,{children:[n,m&&c.createPortal(g,m)]}):null});a.s(["f",0,f])},32043,a=>{var b=a.i(87924);let c={primary:"bg-primary text-primary-foreground hover:bg-primary-hover",secondary:"border border-border bg-card text-card-foreground hover:bg-accent",ghost:"text-foreground hover:bg-accent"},d={regular:"h-9 gap-2 px-4",row:"h-9 gap-2 px-4 text-body sm:h-6 sm:gap-1.5 sm:px-2.5 sm:text-meta",small:"h-8 gap-2 px-3 text-meta",xs:"h-7 gap-1.5 px-2.5 text-caption font-medium"};a.s(["i",0,function({isPending:a,pendingLabel:e,variant:f="secondary",size:g="regular",children:h,className:i="",disabled:j,...k}){return(0,b.jsx)("button",{...k,disabled:!0===j||a,"aria-busy":a,className:`inline-flex items-center rounded-md disabled:cursor-not-allowed disabled:opacity-70 ${d[g]} ${c[f]} ${i}`,children:a?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{"aria-hidden":"true",className:"size-3.5 animate-spin rounded-full border-2 border-current border-t-transparent"}),e]}):h})},"o",0,d])},30587,a=>{a.s(["H",0,"fleet","Q",0,{kind:"idle"}])},31614,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(30587),e=a.i(36855),f=a.i(77237);a.s(["ActionForm",0,function({action:a,fleetId:g,children:h,submit:i,className:j="grid gap-3",testId:k}){let[l,m]=(0,c.useActionState)(a,d.Q);return(0,b.jsxs)("form",{action:m,className:j,"data-testid":k,children:[(0,b.jsx)("input",{type:"hidden",name:d.H,value:g}),h,(0,b.jsx)("div",{children:(0,b.jsx)(f.f,{pending:i.pending,...void 0===i.kind?{}:{kind:i.kind},children:i.label})}),(0,b.jsx)(e.f,{state:l})]})}])},88412,a=>{let b="inline-flex h-9 items-center justify-center gap-2 rounded-md px-4 font-medium disabled:opacity-60",c={primary:`${b} bg-primary text-primary-foreground hover:bg-primary-hover`,secondary:`${b} border border-border bg-card hover:bg-accent`,destructive:`${b} bg-destructive text-destructive-foreground`};a.s(["x",0,c,"r",0,"rounded-lg border border-border bg-card p-6 text-card-foreground shadow-sm","w",0,"h-9 w-full rounded-md border border-input bg-background px-3 font-mono text-code","z",0,"grid gap-1"])},36855,a=>{var b=a.i(87924);a.s(["f",0,function({state:a,testId:c}){switch(a.kind){case"idle":return null;case"done":return(0,b.jsx)("p",{role:"status","data-testid":c,className:"rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-tone-ok-fg",children:a.message});case"refused":case"openNetwork":return(0,b.jsx)("p",{role:"alert","data-testid":c,className:"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg",children:a.message})}}])},77237,a=>{var b=a.i(87924),c=a.i(35112),d=a.i(88412);a.s(["f",0,function({children:a,pending:e,kind:f="primary",testId:g}){let h=(0,c.useFormStatus)();return(0,b.jsx)("button",{type:"submit",className:d.x[f],disabled:h.pending,"aria-busy":h.pending,"data-testid":g,children:h.pending?e:a})}])},47763,a=>{var b=a.i(87924);let c={waiting:"border-tone-waiting-border bg-tone-waiting-bg text-tone-waiting-fg",active:"border-tone-active-border bg-tone-active-bg text-tone-active-fg",ok:"border-tone-ok-border bg-tone-ok-bg text-tone-ok-fg",attention:"border-tone-attention-border bg-tone-attention-bg text-tone-attention-fg",ended:"border-tone-ended-border bg-tone-ended-bg text-tone-ended-fg"};a.s(["T",0,function({tone:a,label:d}){return(0,b.jsx)("span",{className:`inline-flex items-center rounded-full border px-2 text-caption ${c[a]}`,children:d})},"E",0,function({children:a,isMono:c=!1}){return(0,b.jsx)("span",{className:`inline-flex items-center rounded-md border border-border px-2 text-caption ${c?"font-mono":""}`,children:a})}])}]})();
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=_1cc4ie_s4tycq._.js.map
|
|
@@ -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)},1324,a=>{a.s(["H",0,"fleet","v",0,function(a,b){let c=a.get(b);return"string"==typeof c?c:""},"O",0,function(a){return Object.fromEntries([...a.entries()].flatMap(([a,b])=>"string"==typeof b?[[a,b]]:[]))}])},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,"
|
|
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)},1324,a=>{a.s(["H",0,"fleet","v",0,function(a,b){let c=a.get(b);return"string"==typeof c?c:""},"O",0,function(a){return Object.fromEntries([...a.entries()].flatMap(([a,b])=>"string"==typeof b?[[a,b]]:[]))}])},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,"40ca8029b8207bd47293950b98bdbd89c6c994c5fa",null),a.s(["f",0,e])},72913,a=>{let b="/outside-parties",c=`${b}/add`,d=`${b}/add-a2a-client`,e=`${b}/add-a2a-agent`;a.s(["u",0,e,"Z",0,d,"y",0,c,"$",0,b,"N",0,function(a,c){return`${b}/${encodeURIComponent(a)}${void 0===c?"":`/${c}`}`}])},18379,a=>{var b=a.i(29517);let c=["messages:send","messages:receive"],d="scope:",e="scopesShown";a.s(["_",0,c,"e",0,e,"u",0,d,"t",0,function(a,f){let g,{form:h,scopes:i}=f,j=h.ownerShipId?.trim();if(void 0!==j&&j!==a.ownerShipId){let a=(0,b.f)("ship").safeParse(j);if(!a.success)return{kind:"refused",message:"The owner's ship id is not a ship id (shp_...)"};g=a.data}let k=void 0===g?{}:{ownerShipId:g},l=a.scopes;if("true"!==h[e]||null===l)return{kind:"changes",...k,grant:[],revoke:[]};let m=i.filter(a=>!c.includes(a)),n=a=>void 0!==h[`${d}${a}`];return{kind:"changes",...k,grant:m.filter(a=>n(a)&&!l.includes(a)),revoke:m.filter(a=>!n(a)&&l.includes(a))}}])}]})();
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=_1e2o809f0ekry._.js.map
|
|
@@ -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)},33703,a=>{var b=a.i(70043);a.S([b,"
|
|
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)},33703,a=>{var b=a.i(70043);a.S([b,"40ca8029b8207bd47293950b98bdbd89c6c994c5fa,f"],33703)},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,"40ca8029b8207bd47293950b98bdbd89c6c994c5fa",null),a.s(["f",0,e])}]})();
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=_1gbkqq8ra1nei._.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/%28bridge%29/bridge/fleet/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 '
|
|
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/%28bridge%29/bridge/fleet/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 '40ca8029b8207bd47293950b98bdbd89c6c994c5fa'} 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,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[74215,a=>{var b=a.i(76965);a.s(["X",()=>b.f])},69762,a=>{var b=a.i(5050);let c=(0,b.createServerReference)("6050935e24e32a35e279e7c292c8a9aa38508db651",b.callServer,void 0,b.findSourceMapURL,"removeFromBasket");a.s(["f",0,c])},91777,34129,a=>{var b=a.i(87924),c=a.i(99271),d=a.i(76983),e=a.i(72131),f=a.i(52779),g=a.i(25959),h=a.i(50958),i=a.i(83417),j=a.i(26914),k=a.i(84122),l=a.i(41668),m=a.i(69762),n=a.i(16550),o=a.i(17758),p=a.i(86970),q=a.i(11725),r=a.i(74352),s=a.i(10039),t=a.i(40197),u=a.i(21341),v=a.i(68758),w=a.i(5358),x=a.i(32024),y=a.i(95900),z=a.i(48514),A=a.i(21338),B=a.i(37987),C=a.i(69035),D=a.i(21777),E=a.i(85804),F=a.i(93817),G=a.i(52357),H=a.i(58983),I=a.i(48819),J=a.i(33540),K=a.i(74746),L=a.i(98238),M=a.i(74215),N=a.i(88412);let O={alert:"Alert",waiting:"Waiting",working:"Working",idle:"Idle"},P={alert:"bg-tone-attention-bg text-tone-attention-fg",waiting:"bg-tone-waiting-bg text-tone-waiting-fg",working:"bg-tone-ok-bg text-tone-ok-fg",idle:"bg-tone-ended-bg text-tone-ended-fg"},Q="flex min-h-9 w-full items-center gap-2 rounded-md border border-input bg-background px-2";function R({to:a,isLocked:c,onClear:d,isRefused:e}){return(0,b.jsxs)("div",{"data-testid":"bridge-send-to",className:`${Q} justify-between py-1 ${c?"bg-muted":""} ${e?"border-destructive ring-2 ring-tone-attention-border":""}`,children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-sm border border-border bg-secondary px-1.5 py-0.5 font-mono text-code",children:[(0,b.jsx)(L.f,{"aria-hidden":"true",className:"size-3.5 text-muted-foreground"}),a]}),(0,b.jsx)("button",{type:"button","aria-label":`Clear ${a}`,onClick:d,className:"inline-flex size-7 items-center justify-center rounded-md hover:bg-accent disabled:opacity-60",children:(0,b.jsx)(M.X,{"aria-hidden":"true",className:"size-4"})})]})}function S({sendTo:a,onPick:c}){let[d,f]=(0,e.useState)(""),[g,h]=(0,e.useState)(!1),i="read"===a.kind?a.value.ships:[];return(0,b.jsxs)(A.f.Root,{inline:!0,open:g,onOpenChange:h,items:i,filteredItems:(0,z.t)(i,d),inputValue:d,onInputValueChange:a=>{f(a),h(!0)},itemToStringLabel:a=>a.name,value:null,onValueChange:a=>{null!==a&&c(a.name)},autoHighlight:!0,children:[(0,b.jsxs)("div",{className:`${Q} focus-within:border-ring focus-within:ring-2 focus-within:ring-ring/30`,children:[(0,b.jsx)(J.f,{"aria-hidden":"true",className:"size-4 text-muted-foreground"}),(0,b.jsx)(B.f.Input,{id:"bridge-send-to","data-testid":"bridge-send-to-search",placeholder:"Search your fleet's ships",onFocus:()=>{h(!0)},className:"h-9 w-full bg-transparent outline-none"})]}),g?(0,b.jsxs)("div",{"data-testid":"bridge-send-ships",className:"max-h-72 overflow-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md",children:[(0,b.jsx)("div",{className:"px-2 py-1 text-caption text-muted-foreground",children:"Ships you can send to"}),(0,b.jsx)(C.f.Empty,{className:"px-2 py-1 text-muted-foreground",children:"reading"===a.kind?"Reading the ships you can send to...":"unreadable"===a.kind?a.message:"No ship you can send to matches."}),(0,b.jsx)(D.f.List,{children:a=>(0,b.jsxs)(E.f.Item,{value:a,className:"flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 data-highlighted:bg-accent",children:[(0,b.jsx)(L.f,{"aria-hidden":"true",className:"size-4 text-muted-foreground"}),(0,b.jsx)("span",{className:"flex-1",children:a.name}),null===a.state?null:(0,b.jsx)("span",{className:`rounded-sm px-1 text-caption ${P[a.state]}`,children:O[a.state]})]},a.name)})]}):null]})}function T({phase:a}){switch(a.kind){case"writing":return null;case"sending":return(0,b.jsxs)("p",{role:"status","data-testid":"bridge-send-sending",className:"flex items-center gap-2",children:[(0,b.jsx)(H.f,{"aria-hidden":"true",className:"size-4 animate-spin text-tone-waiting-fg"}),"Sending. Bridge waits until the fleet has stored it."]});case"failed":return(0,b.jsxs)("p",{role:"alert","data-testid":"bridge-send-failure",className:"flex items-start gap-2 text-destructive-text",children:[(0,b.jsx)(F.f,{"aria-hidden":"true",className:"mt-0.5 size-4 shrink-0"}),"noAnswer"===a.failure.kind?"The fleet did not answer, so it may not be stored. Your message is kept here. Send again: it carries the same key, so it arrives once.":"Not sent. Your message is kept here: pick another ship, or cancel."]})}}function U({sendTo:a,to:c,isFromAlert:d,message:e,phase:f,onPick:g,onWrite:h,onSend:i,onClose:j}){let k="sending"===f.kind,l="failed"===f.kind?f.failure:void 0,m=l?.kind==="noAnswer",n="read"===a.kind?a.value.sentAs:void 0,o=k?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(H.f,{"aria-hidden":"true",className:"size-4 animate-spin"}),"Sending..."]}):m?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(I.f,{"aria-hidden":"true",className:"size-4"}),"Send again"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(K.f,{"aria-hidden":"true",className:"size-4"}),"Send"]}),p=k||!(0,z.f)({to:c,message:e})||l?.kind==="refused";return(0,b.jsxs)("form",{"data-testid":"bridge-send-form",className:"flex h-full flex-col",onSubmit:a=>{a.preventDefault(),p||i()},children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 border-b border-border px-4 py-3 sm:border-0 sm:px-5 sm:pt-5 sm:pb-0",children:[(0,b.jsx)("button",{type:"button","aria-label":"Close",onClick:j,className:"inline-flex size-8 items-center justify-center rounded-md hover:bg-accent disabled:opacity-60 sm:order-last sm:ml-auto",children:(0,b.jsx)(M.X,{"aria-hidden":"true",className:"size-5"})}),(0,b.jsx)("h2",{className:"text-heading font-semibold",children:"Send a ship a message"})]}),(0,b.jsxs)("div",{className:"grid flex-1 content-start gap-4 overflow-auto px-4 py-4 sm:px-5",children:[(0,b.jsxs)("div",{className:"grid gap-1.5",children:[(0,b.jsx)("label",{htmlFor:"bridge-send-to",className:"font-semibold",children:"To"}),null===c?(0,b.jsx)(S,{sendTo:a,onPick:g}):(0,b.jsx)(R,{to:c,isLocked:k,isRefused:l?.kind==="refused",onClear:()=>{g(null)}}),l?.kind==="refused"?(0,b.jsx)("span",{"data-testid":"bridge-send-refusal",className:"text-destructive-text",children:l.reason}):d&&null!==c&&"writing"===f.kind?(0,b.jsx)("span",{className:"text-caption text-muted-foreground",children:"Filled in from the alert; change it if you like."}):null]}),(0,b.jsxs)("div",{className:"grid gap-1.5",children:[(0,b.jsx)("label",{htmlFor:"bridge-send-message",className:"font-semibold",children:"Message"}),(0,b.jsx)("textarea",{id:"bridge-send-message","data-testid":"bridge-send-message",disabled:k,rows:5,value:e,placeholder:"Write what the ship should know or do.",onChange:a=>{h(a.target.value)},className:"min-h-32 rounded-md border border-input bg-background px-3 py-2 disabled:bg-muted disabled:text-muted-foreground"}),(0,b.jsx)("span",{className:"text-caption text-muted-foreground",children:"Text or Markdown, up to 256 KB."})]}),(0,b.jsx)(T,{phase:f})]}),(0,b.jsxs)("div",{className:"grid gap-3 border-t border-border px-4 py-3 sm:flex sm:items-center sm:justify-between sm:px-5",children:[(0,b.jsxs)("span",{className:"flex items-center gap-2 text-caption text-muted-foreground",children:[(0,b.jsx)(G.f,{"aria-hidden":"true",className:"size-4"}),void 0===n?"Sent as your person ship.":`Sent as ${n}, your person ship.`]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("button",{type:"button",disabled:k,onClick:j,className:"hidden h-9 items-center rounded-md px-4 font-medium hover:bg-accent disabled:opacity-60 sm:inline-flex",children:"Cancel"}),(0,b.jsx)("button",{type:"submit","data-testid":"bridge-send",disabled:p,"aria-busy":k,className:`${N.x.primary} h-11 w-full sm:h-9 sm:w-auto`,children:o})]})]})]})}var V=a.i(805),W=a.i(60232),X=a.i(62043),Y=a.i(11591),Z=a.i(58710),$=a.i(93294),_=a.i(94894),aa=a.i(97024);function ab(){let{toasts:a}=d.f.useToastManager();return(0,b.jsx)(V.f.Portal,{children:(0,b.jsx)(W.f.Viewport,{className:"fixed right-4 bottom-4 z-50 grid w-[min(24rem,calc(100vw-2rem))] gap-2",children:a.map(a=>(0,b.jsx)(X.f.Root,{toast:a,"data-testid":"bridge-send-toast",className:"rounded-lg border border-border bg-popover px-4 py-3 text-popover-foreground shadow-lg",children:(0,b.jsxs)(Y.f.Content,{className:"flex items-start gap-3",children:[(0,b.jsx)(aa.f,{"aria-hidden":"true",className:"mt-0.5 size-4 shrink-0 text-tone-ok-fg"}),(0,b.jsxs)("div",{className:"grid flex-1 gap-1",children:[(0,b.jsx)(Z.f.Title,{className:"font-semibold"}),(0,b.jsx)($.f.Description,{className:"text-muted-foreground"})]}),(0,b.jsx)(_.f.Close,{"aria-label":"Close",className:"inline-flex size-7 items-center justify-center rounded-md hover:bg-accent",children:(0,b.jsx)(M.X,{"aria-hidden":"true",className:"size-4"})})]})},a.id))})})}let ac=(0,e.createContext)(void 0);function ad(){return(0,e.useContext)(ac)}function ae({fleetId:a,children:c}){let[f,g]=(0,e.useState)(),[h,i]=(0,e.useState)({kind:"reading"}),j=(0,e.useRef)(null),k=(0,e.useRef)(0),[,l]=(0,e.useTransition)(),m=d.f.useToastManager(),n=()=>{g(void 0)};return(0,b.jsxs)(ac,{value:b=>{k.current+=1,j.current=null,g({to:b?.alertShip??null,isFromAlert:void 0!==b,message:"",phase:{kind:"writing"}}),i({kind:"reading"}),l(async()=>{let b=await (0,x.f)(a);i(b.isOk?{kind:"read",value:b.value}:{kind:"unreadable",message:b.message})})},children:[c,(0,b.jsx)(t.f.Root,{open:void 0!==f,onOpenChange:a=>{a||n()},children:(0,b.jsxs)(u.f.Portal,{children:[(0,b.jsx)(v.f.Backdrop,{className:"fixed inset-0 z-40 bg-(--overlay)"}),(0,b.jsx)(w.f.Popup,{"data-testid":"bridge-send-dialog","aria-label":"Send a ship a message",initialFocus:()=>document.getElementById(f?.to===null?"bridge-send-to":"bridge-send-message"),className:"fixed inset-0 z-50 bg-popover text-popover-foreground sm:inset-auto sm:top-[10vh] sm:left-1/2 sm:max-h-[80vh] sm:w-[min(34rem,calc(100vw-2rem))] sm:-translate-x-1/2 sm:overflow-auto sm:rounded-lg sm:border sm:border-border sm:shadow-lg",children:void 0===f?null:(0,b.jsx)(U,{sendTo:h,to:f.to,isFromAlert:f.isFromAlert,message:f.message,phase:f.phase,onPick:a=>{g({...f,to:a,isFromAlert:!1,phase:{kind:"writing"}})},onWrite:a=>{g({...f,message:a,phase:"failed"===f.phase.kind&&"refused"===f.phase.failure.kind?f.phase:{kind:"writing"}})},onSend:()=>{var b;let c,d;null!==f.to&&(b={...f,to:f.to},c=(0,z.g)({last:j.current,to:b.to,message:b.message,newKey:crypto.randomUUID()}),j.current={key:c,to:b.to,message:b.message},g({...b,phase:{kind:"sending"}}),d=k.current,l(async()=>{let e=await (0,y.f)({fleet:a,to:b.to,payload:b.message,idempotencyKey:c}),f=k.current!==d;if(e.isOk){f||g(void 0);let a="read"===h.kind?h.value.sentAs:"your person ship";m.add({...(0,z.q)({to:b.to,sentAs:a,storedAt:e.value.storedAt}),timeout:0})}else f||g({...b,phase:{kind:"failed",failure:(0,z.S)(e)}})}))},onClose:n})})]})}),(0,b.jsx)(ab,{})]})}function af({fleetId:a,children:d}){return(0,b.jsx)(c.f.Provider,{children:(0,b.jsx)(ae,{fleetId:a,children:d})})}a.s(["T",0,af,"P",0,ad],34129);var ag=a.i(18145);function ah({fleetId:a,decidePlaces:c,consoleUrl:t,children:u}){let v=d.f.useToastManager(),w=ad(),[x,y]=(0,e.useState)(),[z,A]=(0,e.useState)(""),[B,C]=(0,e.useState)(),[D,E]=(0,e.useState)(),[F,G]=(0,e.useState)(),[H,I]=(0,e.useState)(),[J,K]=(0,e.useState)(),[L,M]=(0,e.useState)(),[,N]=(0,e.useTransition)(),[O,P]=(0,e.useState)(0);(0,ag.R)(void 0===x?void 0:(0,o.u)(x.opened.job),()=>{y(void 0)});let Q=b=>{C(b.deliveryId),I(void 0),M(void 0),N(async()=>{let c=await (0,j.f)(a,b.deliveryId);if(C(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}),A(a?.note??""),K(void 0)}else I({deliveryId:b.deliveryId,message:c.message})})},R=({control:a,action:b,onSettled:c})=>{G(a),K(void 0),N(async()=>{let a=await b();G(void 0),a.isOk?c(a.value):K(a.message)})},S=a=>()=>{y(void 0),M(a)},T=void 0===x?void 0:{deliveryId:x.delivery.deliveryId,job:x.opened.job};return(0,b.jsx)(r.f,{list:(0,b.jsxs)("div",{className:"grid gap-4",children:[void 0===L?null:(0,b.jsx)(s.f,{message:L,isFailure:!1}),u({open:Q,openingId:B,putPick:(b,c)=>{E(b.deliveryId),I(void 0),M(void 0),N(async()=>{let d=await (0,l.f)({fleet:a,deliveryId:b.deliveryId,option:c});E(void 0),d.isOk?(M(`Option ${String(c)} is in the basket, not sent: ${b.from} receives it when you send the basket.`),P(a=>a+1)):I({deliveryId:b.deliveryId,message:d.message})})},puttingId:D,failure:H,opened:T})]},O),item:void 0===x?void 0:(({delivery:d,inBasket:e,opened:j,finished:l})=>{let o=d.question?.id;return(0,b.jsx)(q.u,{delivery:d,opened:j,meetingHref:void 0===d.meetingId?void 0:(0,f.f)({fleetId:a,meetingId:d.meetingId}),consoleUrl:t,basketHref:(0,g.f)(n.H,a),inBasket:e,finished:l,places:c,note:z,working:F,failure:J,onNoteChange:A,onAnswer:b=>{R({control:void 0===b?{kind:"note"}:{kind:"option",option:b},action:()=>(0,h.f)({fleet:a,deliveryId:d.deliveryId,input:{questionId:d.question?.id,option:b,note:z}}),onSettled:S(`Your answer went to ${d.from}.`)})},onPut:b=>{R({control:null===b?{kind:"note"}:{kind:"option",option:b},action:()=>(0,k.f)({fleet:a,deliveryId:d.deliveryId,option:b,optionLabel:d.question?.options.find(({key:a})=>a===b)?.label??null,note:z}),onSettled:a=>{y({delivery:d,opened:j,finished:l,inBasket:a}),v.add((0,p.f)(a.option))}})},onRemove:()=>{void 0!==o&&R({control:{kind:"remove"},action:()=>(0,m.f)(a,o),onSettled:S(`Your answer to “${d.title}” is out of the basket; the question still waits on you.`)})},onDone:()=>{R({control:{kind:"done"},action:()=>(0,i.f)({fleet:a,deliveryId:d.deliveryId}),onSettled:S(`Done with “${d.title}”.`)})},onFinishStep:b=>{R({control:{kind:b},action:()=>(0,i.f)({fleet:a,deliveryId:d.deliveryId,step:{outcome:b,note:z}}),onSettled:()=>{y({delivery:d,inBasket:e,opened:j,finished:{outcome:b,note:z.trim(),at:new Date().toISOString()}})}})},onOpen:a=>{Q({deliveryId:a,job:j.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,children:f}){return(0,b.jsx)(af,{fleetId:a,children:(0,b.jsxs)(c.f.Provider,{children:[(0,b.jsx)(ah,{fleetId:a,decidePlaces:d,consoleUrl:e,children:f}),(0,b.jsx)(p.o,{})]})})}],91777)},86970,93294,32024,95900,48514,48819,a=>{var b=a.i(87924),c=a.i(76983),d=a.i(805),e=a.i(60232),f=a.i(62043),g=a.i(11591),h=a.i(58710),i=a.i(64267);a.s(["f",0,i],93294);var i=i,j=a.i(55596);a.s(["o",0,function(){let{toasts:a}=c.f.useToastManager();return(0,b.jsx)(d.f.Portal,{children:(0,b.jsx)(e.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)(f.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)(j.f,{"aria-hidden":!0,className:"mt-0.5 size-4 shrink-0"}),(0,b.jsxs)(g.f.Content,{className:"grid flex-1 gap-1",children:[(0,b.jsx)(h.f.Title,{className:"font-medium"}),(0,b.jsx)(i.Description,{className:"text-caption text-muted-foreground"})]})]},a.id))})})},"f",0,function(a){return{title:null===a?"Your note alone in the basket":`Option ${String(a)} in the basket`,description:"Not sent. Still waiting on you until you send it."}}],86970);var k=a.i(5050);let l=(0,k.createServerReference)("4053d936439268d18b4bb24ccb80741d4998f4a69e",k.callServer,void 0,k.findSourceMapURL,"readSendTo");a.s(["f",0,l],32024);let m=(0,k.createServerReference)("4085d7bd3cb14a5b63344a43b7dfdb8f4079e95e2a",k.callServer,void 0,k.findSourceMapURL,"sendShipMessage");a.s(["f",0,m],95900);var n=a.i(46059),o=a.i(98868);let p=new Set(["BAD_REQUEST","FORBIDDEN"]);n.z.object({ship:n.z.object({name:o.z.string().min(1)})}),a.s(["f",0,function({to:a,message:b}){return null!==a&&""!==b.trim()},"g",0,function({last:a,to:b,message:c,newKey:d}){return null!==a&&a.to===b&&a.message===c?a.key:d},"S",0,function({code:a,message:b}){return void 0!==a&&p.has(a)?{kind:"refused",reason:b}:{kind:"noAnswer"}},"q",0,function({to:a,sentAs:b,storedAt:c}){return{title:`Sent to ${a}`,description:`Stored by the fleet at ${new Date(c).toISOString().slice(11,16)} UTC, sent as ${b}. ${a} receives it when it next looks.`}},"t",0,function(a,b){let c=b.trim().toLowerCase();return""===c?a:a.filter(({name:a})=>a.toLowerCase().includes(c))}],48514);var q=a.i(64831);let r={name:"rotate-cw",size:24,node:[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]};r.node;let s=(0,q.f)(r);a.s(["f",0,s],48819)},52779,50958,83417,26914,84122,41668,a=>{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)("40fb3c9b60f409e9d7f4301b0cd5dbbb0079b0b5ea",b.callServer,void 0,b.findSourceMapURL,"answerDelivery");a.s(["f",0,c],50958);let d=(0,b.createServerReference)("4012c933c13b7b99c26d61a5bed3d60ed41fd5e253",b.callServer,void 0,b.findSourceMapURL,"doneDelivery");a.s(["f",0,d],83417);let e=(0,b.createServerReference)("609a2b2041824dadd08bf54ae421b7d5f7088bab02",b.callServer,void 0,b.findSourceMapURL,"openDelivery");a.s(["f",0,e],26914);let f=(0,b.createServerReference)("407a6fe3f2e6041fa40819ae482a35a393193dd1b9",b.callServer,void 0,b.findSourceMapURL,"putInBasket");a.s(["f",0,f],84122);let g=(0,b.createServerReference)("40b3a7c25633f32ede1058cdd28484f56b049150d9",b.callServer,void 0,b.findSourceMapURL,"putPickInBasket");a.s(["f",0,g],41668)}]})();
|
|
1
|
+
(()=>{"use strict";module.exports=[74215,a=>{var b=a.i(76965);a.s(["X",()=>b.f])},15562,a=>{var b=a.i(5050);let c=(0,b.createServerReference)("600027e660d1eb6aa8b21edba45ec532d962d5bb53",b.callServer,void 0,b.findSourceMapURL,"removeFromBasket");a.s(["f",0,c])},91777,34129,a=>{var b=a.i(87924),c=a.i(99271),d=a.i(76983),e=a.i(72131),f=a.i(52779),g=a.i(25959),h=a.i(36247),i=a.i(82686),j=a.i(41053),k=a.i(89479),l=a.i(48162),m=a.i(15562),n=a.i(16550),o=a.i(17758),p=a.i(86970),q=a.i(11725),r=a.i(74352),s=a.i(10039),t=a.i(40197),u=a.i(21341),v=a.i(68758),w=a.i(5358),x=a.i(70879),y=a.i(53368),z=a.i(48514),A=a.i(21338),B=a.i(37987),C=a.i(69035),D=a.i(21777),E=a.i(85804),F=a.i(93817),G=a.i(52357),H=a.i(58983),I=a.i(48819),J=a.i(33540),K=a.i(74746),L=a.i(98238),M=a.i(74215),N=a.i(88412);let O={alert:"Alert",waiting:"Waiting",working:"Working",idle:"Idle"},P={alert:"bg-tone-attention-bg text-tone-attention-fg",waiting:"bg-tone-waiting-bg text-tone-waiting-fg",working:"bg-tone-ok-bg text-tone-ok-fg",idle:"bg-tone-ended-bg text-tone-ended-fg"},Q="flex min-h-9 w-full items-center gap-2 rounded-md border border-input bg-background px-2";function R({to:a,isLocked:c,onClear:d,isRefused:e}){return(0,b.jsxs)("div",{"data-testid":"bridge-send-to",className:`${Q} justify-between py-1 ${c?"bg-muted":""} ${e?"border-destructive ring-2 ring-tone-attention-border":""}`,children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-sm border border-border bg-secondary px-1.5 py-0.5 font-mono text-code",children:[(0,b.jsx)(L.f,{"aria-hidden":"true",className:"size-3.5 text-muted-foreground"}),a]}),(0,b.jsx)("button",{type:"button","aria-label":`Clear ${a}`,onClick:d,className:"inline-flex size-7 items-center justify-center rounded-md hover:bg-accent disabled:opacity-60",children:(0,b.jsx)(M.X,{"aria-hidden":"true",className:"size-4"})})]})}function S({sendTo:a,onPick:c}){let[d,f]=(0,e.useState)(""),[g,h]=(0,e.useState)(!1),i="read"===a.kind?a.value.ships:[];return(0,b.jsxs)(A.f.Root,{inline:!0,open:g,onOpenChange:h,items:i,filteredItems:(0,z.t)(i,d),inputValue:d,onInputValueChange:a=>{f(a),h(!0)},itemToStringLabel:a=>a.name,value:null,onValueChange:a=>{null!==a&&c(a.name)},autoHighlight:!0,children:[(0,b.jsxs)("div",{className:`${Q} focus-within:border-ring focus-within:ring-2 focus-within:ring-ring/30`,children:[(0,b.jsx)(J.f,{"aria-hidden":"true",className:"size-4 text-muted-foreground"}),(0,b.jsx)(B.f.Input,{id:"bridge-send-to","data-testid":"bridge-send-to-search",placeholder:"Search your fleet's ships",onFocus:()=>{h(!0)},className:"h-9 w-full bg-transparent outline-none"})]}),g?(0,b.jsxs)("div",{"data-testid":"bridge-send-ships",className:"max-h-72 overflow-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md",children:[(0,b.jsx)("div",{className:"px-2 py-1 text-caption text-muted-foreground",children:"Ships you can send to"}),(0,b.jsx)(C.f.Empty,{className:"px-2 py-1 text-muted-foreground",children:"reading"===a.kind?"Reading the ships you can send to...":"unreadable"===a.kind?a.message:"No ship you can send to matches."}),(0,b.jsx)(D.f.List,{children:a=>(0,b.jsxs)(E.f.Item,{value:a,className:"flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 data-highlighted:bg-accent",children:[(0,b.jsx)(L.f,{"aria-hidden":"true",className:"size-4 text-muted-foreground"}),(0,b.jsx)("span",{className:"flex-1",children:a.name}),null===a.state?null:(0,b.jsx)("span",{className:`rounded-sm px-1 text-caption ${P[a.state]}`,children:O[a.state]})]},a.name)})]}):null]})}function T({phase:a}){switch(a.kind){case"writing":return null;case"sending":return(0,b.jsxs)("p",{role:"status","data-testid":"bridge-send-sending",className:"flex items-center gap-2",children:[(0,b.jsx)(H.f,{"aria-hidden":"true",className:"size-4 animate-spin text-tone-waiting-fg"}),"Sending. Bridge waits until the fleet has stored it."]});case"failed":return(0,b.jsxs)("p",{role:"alert","data-testid":"bridge-send-failure",className:"flex items-start gap-2 text-destructive-text",children:[(0,b.jsx)(F.f,{"aria-hidden":"true",className:"mt-0.5 size-4 shrink-0"}),"noAnswer"===a.failure.kind?"The fleet did not answer, so it may not be stored. Your message is kept here. Send again: it carries the same key, so it arrives once.":"Not sent. Your message is kept here: pick another ship, or cancel."]})}}function U({sendTo:a,to:c,isFromAlert:d,message:e,phase:f,onPick:g,onWrite:h,onSend:i,onClose:j}){let k="sending"===f.kind,l="failed"===f.kind?f.failure:void 0,m=l?.kind==="noAnswer",n="read"===a.kind?a.value.sentAs:void 0,o=k?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(H.f,{"aria-hidden":"true",className:"size-4 animate-spin"}),"Sending..."]}):m?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(I.f,{"aria-hidden":"true",className:"size-4"}),"Send again"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(K.f,{"aria-hidden":"true",className:"size-4"}),"Send"]}),p=k||!(0,z.f)({to:c,message:e})||l?.kind==="refused";return(0,b.jsxs)("form",{"data-testid":"bridge-send-form",className:"flex h-full flex-col",onSubmit:a=>{a.preventDefault(),p||i()},children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 border-b border-border px-4 py-3 sm:border-0 sm:px-5 sm:pt-5 sm:pb-0",children:[(0,b.jsx)("button",{type:"button","aria-label":"Close",onClick:j,className:"inline-flex size-8 items-center justify-center rounded-md hover:bg-accent disabled:opacity-60 sm:order-last sm:ml-auto",children:(0,b.jsx)(M.X,{"aria-hidden":"true",className:"size-5"})}),(0,b.jsx)("h2",{className:"text-heading font-semibold",children:"Send a ship a message"})]}),(0,b.jsxs)("div",{className:"grid flex-1 content-start gap-4 overflow-auto px-4 py-4 sm:px-5",children:[(0,b.jsxs)("div",{className:"grid gap-1.5",children:[(0,b.jsx)("label",{htmlFor:"bridge-send-to",className:"font-semibold",children:"To"}),null===c?(0,b.jsx)(S,{sendTo:a,onPick:g}):(0,b.jsx)(R,{to:c,isLocked:k,isRefused:l?.kind==="refused",onClear:()=>{g(null)}}),l?.kind==="refused"?(0,b.jsx)("span",{"data-testid":"bridge-send-refusal",className:"text-destructive-text",children:l.reason}):d&&null!==c&&"writing"===f.kind?(0,b.jsx)("span",{className:"text-caption text-muted-foreground",children:"Filled in from the alert; change it if you like."}):null]}),(0,b.jsxs)("div",{className:"grid gap-1.5",children:[(0,b.jsx)("label",{htmlFor:"bridge-send-message",className:"font-semibold",children:"Message"}),(0,b.jsx)("textarea",{id:"bridge-send-message","data-testid":"bridge-send-message",disabled:k,rows:5,value:e,placeholder:"Write what the ship should know or do.",onChange:a=>{h(a.target.value)},className:"min-h-32 rounded-md border border-input bg-background px-3 py-2 disabled:bg-muted disabled:text-muted-foreground"}),(0,b.jsx)("span",{className:"text-caption text-muted-foreground",children:"Text or Markdown, up to 256 KB."})]}),(0,b.jsx)(T,{phase:f})]}),(0,b.jsxs)("div",{className:"grid gap-3 border-t border-border px-4 py-3 sm:flex sm:items-center sm:justify-between sm:px-5",children:[(0,b.jsxs)("span",{className:"flex items-center gap-2 text-caption text-muted-foreground",children:[(0,b.jsx)(G.f,{"aria-hidden":"true",className:"size-4"}),void 0===n?"Sent as your person ship.":`Sent as ${n}, your person ship.`]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("button",{type:"button",disabled:k,onClick:j,className:"hidden h-9 items-center rounded-md px-4 font-medium hover:bg-accent disabled:opacity-60 sm:inline-flex",children:"Cancel"}),(0,b.jsx)("button",{type:"submit","data-testid":"bridge-send",disabled:p,"aria-busy":k,className:`${N.x.primary} h-11 w-full sm:h-9 sm:w-auto`,children:o})]})]})]})}var V=a.i(805),W=a.i(60232),X=a.i(62043),Y=a.i(11591),Z=a.i(58710),$=a.i(93294),_=a.i(94894),aa=a.i(97024);function ab(){let{toasts:a}=d.f.useToastManager();return(0,b.jsx)(V.f.Portal,{children:(0,b.jsx)(W.f.Viewport,{className:"fixed right-4 bottom-4 z-50 grid w-[min(24rem,calc(100vw-2rem))] gap-2",children:a.map(a=>(0,b.jsx)(X.f.Root,{toast:a,"data-testid":"bridge-send-toast",className:"rounded-lg border border-border bg-popover px-4 py-3 text-popover-foreground shadow-lg",children:(0,b.jsxs)(Y.f.Content,{className:"flex items-start gap-3",children:[(0,b.jsx)(aa.f,{"aria-hidden":"true",className:"mt-0.5 size-4 shrink-0 text-tone-ok-fg"}),(0,b.jsxs)("div",{className:"grid flex-1 gap-1",children:[(0,b.jsx)(Z.f.Title,{className:"font-semibold"}),(0,b.jsx)($.f.Description,{className:"text-muted-foreground"})]}),(0,b.jsx)(_.f.Close,{"aria-label":"Close",className:"inline-flex size-7 items-center justify-center rounded-md hover:bg-accent",children:(0,b.jsx)(M.X,{"aria-hidden":"true",className:"size-4"})})]})},a.id))})})}let ac=(0,e.createContext)(void 0);function ad(){return(0,e.useContext)(ac)}function ae({fleetId:a,children:c}){let[f,g]=(0,e.useState)(),[h,i]=(0,e.useState)({kind:"reading"}),j=(0,e.useRef)(null),k=(0,e.useRef)(0),[,l]=(0,e.useTransition)(),m=d.f.useToastManager(),n=()=>{g(void 0)};return(0,b.jsxs)(ac,{value:b=>{k.current+=1,j.current=null,g({to:b?.alertShip??null,isFromAlert:void 0!==b,message:"",phase:{kind:"writing"}}),i({kind:"reading"}),l(async()=>{let b=await (0,x.f)(a);i(b.isOk?{kind:"read",value:b.value}:{kind:"unreadable",message:b.message})})},children:[c,(0,b.jsx)(t.f.Root,{open:void 0!==f,onOpenChange:a=>{a||n()},children:(0,b.jsxs)(u.f.Portal,{children:[(0,b.jsx)(v.f.Backdrop,{className:"fixed inset-0 z-40 bg-(--overlay)"}),(0,b.jsx)(w.f.Popup,{"data-testid":"bridge-send-dialog","aria-label":"Send a ship a message",initialFocus:()=>document.getElementById(f?.to===null?"bridge-send-to":"bridge-send-message"),className:"fixed inset-0 z-50 bg-popover text-popover-foreground sm:inset-auto sm:top-[10vh] sm:left-1/2 sm:max-h-[80vh] sm:w-[min(34rem,calc(100vw-2rem))] sm:-translate-x-1/2 sm:overflow-auto sm:rounded-lg sm:border sm:border-border sm:shadow-lg",children:void 0===f?null:(0,b.jsx)(U,{sendTo:h,to:f.to,isFromAlert:f.isFromAlert,message:f.message,phase:f.phase,onPick:a=>{g({...f,to:a,isFromAlert:!1,phase:{kind:"writing"}})},onWrite:a=>{g({...f,message:a,phase:"failed"===f.phase.kind&&"refused"===f.phase.failure.kind?f.phase:{kind:"writing"}})},onSend:()=>{var b;let c,d;null!==f.to&&(b={...f,to:f.to},c=(0,z.g)({last:j.current,to:b.to,message:b.message,newKey:crypto.randomUUID()}),j.current={key:c,to:b.to,message:b.message},g({...b,phase:{kind:"sending"}}),d=k.current,l(async()=>{let e=await (0,y.f)({fleet:a,to:b.to,payload:b.message,idempotencyKey:c}),f=k.current!==d;if(e.isOk){f||g(void 0);let a="read"===h.kind?h.value.sentAs:"your person ship";m.add({...(0,z.q)({to:b.to,sentAs:a,storedAt:e.value.storedAt}),timeout:0})}else f||g({...b,phase:{kind:"failed",failure:(0,z.S)(e)}})}))},onClose:n})})]})}),(0,b.jsx)(ab,{})]})}function af({fleetId:a,children:d}){return(0,b.jsx)(c.f.Provider,{children:(0,b.jsx)(ae,{fleetId:a,children:d})})}a.s(["T",0,af,"P",0,ad],34129);var ag=a.i(18145);function ah({fleetId:a,decidePlaces:c,consoleUrl:t,children:u}){let v=d.f.useToastManager(),w=ad(),[x,y]=(0,e.useState)(),[z,A]=(0,e.useState)(""),[B,C]=(0,e.useState)(),[D,E]=(0,e.useState)(),[F,G]=(0,e.useState)(),[H,I]=(0,e.useState)(),[J,K]=(0,e.useState)(),[L,M]=(0,e.useState)(),[,N]=(0,e.useTransition)(),[O,P]=(0,e.useState)(0);(0,ag.R)(void 0===x?void 0:(0,o.u)(x.opened.job),()=>{y(void 0)});let Q=b=>{C(b.deliveryId),I(void 0),M(void 0),N(async()=>{let c=await (0,j.f)(a,b.deliveryId);if(C(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}),A(a?.note??""),K(void 0)}else I({deliveryId:b.deliveryId,message:c.message})})},R=({control:a,action:b,onSettled:c})=>{G(a),K(void 0),N(async()=>{let a=await b();G(void 0),a.isOk?c(a.value):K(a.message)})},S=a=>()=>{y(void 0),M(a)},T=void 0===x?void 0:{deliveryId:x.delivery.deliveryId,job:x.opened.job};return(0,b.jsx)(r.f,{list:(0,b.jsxs)("div",{className:"grid gap-4",children:[void 0===L?null:(0,b.jsx)(s.f,{message:L,isFailure:!1}),u({open:Q,openingId:B,putPick:(b,c)=>{E(b.deliveryId),I(void 0),M(void 0),N(async()=>{let d=await (0,l.f)({fleet:a,deliveryId:b.deliveryId,option:c});E(void 0),d.isOk?(M(`Option ${String(c)} is in the basket, not sent: ${b.from} receives it when you send the basket.`),P(a=>a+1)):I({deliveryId:b.deliveryId,message:d.message})})},puttingId:D,failure:H,opened:T})]},O),item:void 0===x?void 0:(({delivery:d,inBasket:e,opened:j,finished:l})=>{let o=d.question?.id;return(0,b.jsx)(q.u,{delivery:d,opened:j,meetingHref:void 0===d.meetingId?void 0:(0,f.f)({fleetId:a,meetingId:d.meetingId}),consoleUrl:t,basketHref:(0,g.f)(n.H,a),inBasket:e,finished:l,places:c,note:z,working:F,failure:J,onNoteChange:A,onAnswer:b=>{R({control:void 0===b?{kind:"note"}:{kind:"option",option:b},action:()=>(0,h.f)({fleet:a,deliveryId:d.deliveryId,input:{questionId:d.question?.id,option:b,note:z}}),onSettled:S(`Your answer went to ${d.from}.`)})},onPut:b=>{R({control:null===b?{kind:"note"}:{kind:"option",option:b},action:()=>(0,k.f)({fleet:a,deliveryId:d.deliveryId,option:b,optionLabel:d.question?.options.find(({key:a})=>a===b)?.label??null,note:z}),onSettled:a=>{y({delivery:d,opened:j,finished:l,inBasket:a}),v.add((0,p.f)(a.option))}})},onRemove:()=>{void 0!==o&&R({control:{kind:"remove"},action:()=>(0,m.f)(a,o),onSettled:S(`Your answer to “${d.title}” is out of the basket; the question still waits on you.`)})},onDone:()=>{R({control:{kind:"done"},action:()=>(0,i.f)({fleet:a,deliveryId:d.deliveryId}),onSettled:S(`Done with “${d.title}”.`)})},onFinishStep:b=>{R({control:{kind:b},action:()=>(0,i.f)({fleet:a,deliveryId:d.deliveryId,step:{outcome:b,note:z}}),onSettled:()=>{y({delivery:d,inBasket:e,opened:j,finished:{outcome:b,note:z.trim(),at:new Date().toISOString()}})}})},onOpen:a=>{Q({deliveryId:a,job:j.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,children:f}){return(0,b.jsx)(af,{fleetId:a,children:(0,b.jsxs)(c.f.Provider,{children:[(0,b.jsx)(ah,{fleetId:a,decidePlaces:d,consoleUrl:e,children:f}),(0,b.jsx)(p.o,{})]})})}],91777)},86970,93294,70879,53368,48514,48819,a=>{var b=a.i(87924),c=a.i(76983),d=a.i(805),e=a.i(60232),f=a.i(62043),g=a.i(11591),h=a.i(58710),i=a.i(64267);a.s(["f",0,i],93294);var i=i,j=a.i(55596);a.s(["o",0,function(){let{toasts:a}=c.f.useToastManager();return(0,b.jsx)(d.f.Portal,{children:(0,b.jsx)(e.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)(f.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)(j.f,{"aria-hidden":!0,className:"mt-0.5 size-4 shrink-0"}),(0,b.jsxs)(g.f.Content,{className:"grid flex-1 gap-1",children:[(0,b.jsx)(h.f.Title,{className:"font-medium"}),(0,b.jsx)(i.Description,{className:"text-caption text-muted-foreground"})]})]},a.id))})})},"f",0,function(a){return{title:null===a?"Your note alone in the basket":`Option ${String(a)} in the basket`,description:"Not sent. Still waiting on you until you send it."}}],86970);var k=a.i(5050);let l=(0,k.createServerReference)("400284782d121950f35e1ce856d3d8f0158fbb10f4",k.callServer,void 0,k.findSourceMapURL,"readSendTo");a.s(["f",0,l],70879);let m=(0,k.createServerReference)("4000cf62bc21b02b0dec545692328f576b09e289a7",k.callServer,void 0,k.findSourceMapURL,"sendShipMessage");a.s(["f",0,m],53368);var n=a.i(46059),o=a.i(98868);let p=new Set(["BAD_REQUEST","FORBIDDEN"]);n.z.object({ship:n.z.object({name:o.z.string().min(1)})}),a.s(["f",0,function({to:a,message:b}){return null!==a&&""!==b.trim()},"g",0,function({last:a,to:b,message:c,newKey:d}){return null!==a&&a.to===b&&a.message===c?a.key:d},"S",0,function({code:a,message:b}){return void 0!==a&&p.has(a)?{kind:"refused",reason:b}:{kind:"noAnswer"}},"q",0,function({to:a,sentAs:b,storedAt:c}){return{title:`Sent to ${a}`,description:`Stored by the fleet at ${new Date(c).toISOString().slice(11,16)} UTC, sent as ${b}. ${a} receives it when it next looks.`}},"t",0,function(a,b){let c=b.trim().toLowerCase();return""===c?a:a.filter(({name:a})=>a.toLowerCase().includes(c))}],48514);var q=a.i(64831);let r={name:"rotate-cw",size:24,node:[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]};r.node;let s=(0,q.f)(r);a.s(["f",0,s],48819)},52779,36247,82686,41053,89479,48162,a=>{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)("4001ea780db1ead1cb2c7ef9e012482be9e1166c90",b.callServer,void 0,b.findSourceMapURL,"answerDelivery");a.s(["f",0,c],36247);let d=(0,b.createServerReference)("406cdc77dbf870c019aab6c37c746129540f7344b4",b.callServer,void 0,b.findSourceMapURL,"doneDelivery");a.s(["f",0,d],82686);let e=(0,b.createServerReference)("60a206312560da7e8d3118b69c571db7006f3401ec",b.callServer,void 0,b.findSourceMapURL,"openDelivery");a.s(["f",0,e],41053);let f=(0,b.createServerReference)("409fc33bee7fa9990c372a16941b80a35aef4a2974",b.callServer,void 0,b.findSourceMapURL,"putInBasket");a.s(["f",0,f],89479);let g=(0,b.createServerReference)("40c4bdf099ebf75c7f472730d1a2313320401d4ebd",b.callServer,void 0,b.findSourceMapURL,"putPickInBasket");a.s(["f",0,g],48162)}]})();
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=_1gnk2vqna6c6u._.js.map
|