@remit/web-client 0.0.325 → 0.0.326
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/dist/harness/index.html +50 -0
- package/dist/harness/vite-preset.d.ts +10 -0
- package/dist/harness/vite-preset.js +151 -0
- package/dist/spellcheck/languages.d.ts +33 -0
- package/dist/spellcheck/languages.js +66 -0
- package/dist/spellcheck/vite-plugin.d.ts +43 -0
- package/dist/spellcheck/vite-plugin.js +294 -0
- package/dist/spellcheck/worker-stub.d.ts +15 -0
- package/dist/spellcheck/worker-stub.js +33 -0
- package/dist/src/auth/AccountMenu.d.ts +1 -0
- package/dist/src/auth/AccountMenu.js +4 -0
- package/dist/src/auth/AccountSession.d.ts +14 -0
- package/dist/src/auth/AccountSession.js +12 -0
- package/dist/src/auth/BetterAuthShell.d.ts +18 -0
- package/dist/src/auth/BetterAuthShell.js +88 -0
- package/dist/src/auth/SessionRateLimited.d.ts +12 -0
- package/dist/src/auth/SessionRateLimited.js +10 -0
- package/dist/src/auth/SignInAgain.d.ts +1 -0
- package/dist/src/auth/SignInAgain.js +6 -0
- package/dist/src/auth/account-menu-mode.d.ts +13 -0
- package/dist/src/auth/account-menu-mode.js +15 -0
- package/dist/src/auth/amplify-config.d.ts +9 -0
- package/dist/src/auth/amplify-config.js +43 -0
- package/dist/src/auth/auth-error.d.ts +42 -0
- package/dist/src/auth/auth-error.js +81 -0
- package/dist/src/auth/auth-interceptor.d.ts +12 -0
- package/dist/src/auth/auth-interceptor.js +24 -0
- package/dist/src/auth/better-auth/BetterAuthAccount.d.ts +7 -0
- package/dist/src/auth/better-auth/BetterAuthAccount.js +18 -0
- package/dist/src/auth/better-auth-config.d.ts +43 -0
- package/dist/src/auth/better-auth-config.js +215 -0
- package/dist/src/auth/better-auth-provider.d.ts +7 -0
- package/dist/src/auth/better-auth-provider.js +15 -0
- package/dist/src/auth/cognito/CognitoAccount.d.ts +8 -0
- package/dist/src/auth/cognito/CognitoAccount.js +32 -0
- package/dist/src/auth/cognito/CognitoShell.d.ts +6 -0
- package/dist/src/auth/cognito/CognitoShell.js +204 -0
- package/dist/src/auth/cognito/cognito-token.d.ts +9 -0
- package/dist/src/auth/cognito/cognito-token.js +36 -0
- package/dist/src/auth/cognito-provider.d.ts +8 -0
- package/dist/src/auth/cognito-provider.js +17 -0
- package/dist/src/auth/combined-provider.d.ts +2 -0
- package/dist/src/auth/combined-provider.js +27 -0
- package/dist/src/auth/provider.d.ts +51 -0
- package/dist/src/auth/provider.js +18 -0
- package/dist/src/auth/session-state.d.ts +29 -0
- package/dist/src/auth/session-state.js +16 -0
- package/dist/src/auth/sign-out-visibility.d.ts +5 -0
- package/dist/src/auth/sign-out-visibility.js +1 -0
- package/dist/src/components/calendar/AgendaStrip.d.ts +64 -0
- package/dist/src/components/calendar/AgendaStrip.js +19 -0
- package/dist/src/components/calendar/AgendaView.d.ts +42 -0
- package/dist/src/components/calendar/AgendaView.js +131 -0
- package/dist/src/components/calendar/CalendarComposePane.d.ts +49 -0
- package/dist/src/components/calendar/CalendarComposePane.js +8 -0
- package/dist/src/components/calendar/CalendarComposeSeed.d.ts +7 -0
- package/dist/src/components/calendar/CalendarComposeSeed.js +19 -0
- package/dist/src/components/calendar/CalendarEventPane.d.ts +48 -0
- package/dist/src/components/calendar/CalendarEventPane.js +48 -0
- package/dist/src/components/calendar/CalendarShell.d.ts +43 -0
- package/dist/src/components/calendar/CalendarShell.js +35 -0
- package/dist/src/components/calendar/CalendarUnavailable.d.ts +13 -0
- package/dist/src/components/calendar/CalendarUnavailable.js +24 -0
- package/dist/src/components/calendar/CalendarViewPlaceholder.d.ts +1 -0
- package/dist/src/components/calendar/CalendarViewPlaceholder.js +5 -0
- package/dist/src/components/calendar/CalendarWaiting.d.ts +25 -0
- package/dist/src/components/calendar/CalendarWaiting.js +14 -0
- package/dist/src/components/calendar/CalendarWorkspace.d.ts +49 -0
- package/dist/src/components/calendar/CalendarWorkspace.js +65 -0
- package/dist/src/components/calendar/ChangeCalendarSuggestion.d.ts +5 -0
- package/dist/src/components/calendar/ChangeCalendarSuggestion.js +66 -0
- package/dist/src/components/calendar/OpenCalendarEvent.d.ts +20 -0
- package/dist/src/components/calendar/OpenCalendarEvent.js +169 -0
- package/dist/src/components/calendar/PendingSuggestions.d.ts +9 -0
- package/dist/src/components/calendar/PendingSuggestions.js +50 -0
- package/dist/src/components/calendar/WriteCalendarEvent.d.ts +13 -0
- package/dist/src/components/calendar/WriteCalendarEvent.js +59 -0
- package/dist/src/components/calendar/calendar-story-fixtures.d.ts +21 -0
- package/dist/src/components/calendar/calendar-story-fixtures.js +95 -0
- package/dist/src/components/calendar/calendar-story-server.d.ts +37 -0
- package/dist/src/components/calendar/calendar-story-server.js +108 -0
- package/dist/src/components/compose/AddressField.d.ts +13 -0
- package/dist/src/components/compose/AddressField.js +23 -0
- package/dist/src/components/compose/ComposeForm.d.ts +31 -0
- package/dist/src/components/compose/ComposeForm.js +925 -0
- package/dist/src/components/compose/ComposeProvider.d.ts +38 -0
- package/dist/src/components/compose/ComposeProvider.js +101 -0
- package/dist/src/components/compose/ComposeSmtpMissingBanner.d.ts +8 -0
- package/dist/src/components/compose/ComposeSmtpMissingBanner.js +10 -0
- package/dist/src/components/compose/ConversationCompose.d.ts +17 -0
- package/dist/src/components/compose/ConversationCompose.js +46 -0
- package/dist/src/components/compose/FromSelector.d.ts +7 -0
- package/dist/src/components/compose/FromSelector.js +29 -0
- package/dist/src/components/compose/FullCompose.d.ts +6 -0
- package/dist/src/components/compose/FullCompose.js +38 -0
- package/dist/src/components/compose/MobileComposeSheet.d.ts +1 -0
- package/dist/src/components/compose/MobileComposeSheet.js +65 -0
- package/dist/src/components/compose/compose-spellcheck.d.ts +17 -0
- package/dist/src/components/compose/compose-spellcheck.js +43 -0
- package/dist/src/components/compose/compose-title.d.ts +9 -0
- package/dist/src/components/compose/compose-title.js +9 -0
- package/dist/src/components/compose/mail-sync-off-refusal.d.ts +1 -0
- package/dist/src/components/compose/mail-sync-off-refusal.js +7 -0
- package/dist/src/components/compose/quoted-message.d.ts +59 -0
- package/dist/src/components/compose/quoted-message.js +162 -0
- package/dist/src/components/compose/reply-with-times.d.ts +6 -0
- package/dist/src/components/compose/reply-with-times.js +12 -0
- package/dist/src/components/config-import/ConfigImportWizard.d.ts +24 -0
- package/dist/src/components/config-import/ConfigImportWizard.js +425 -0
- package/dist/src/components/config-import/config-import.fixtures.d.ts +27 -0
- package/dist/src/components/config-import/config-import.fixtures.js +167 -0
- package/dist/src/components/config-import/steps.d.ts +100 -0
- package/dist/src/components/config-import/steps.js +143 -0
- package/dist/src/components/layout/AppShellSkeleton.d.ts +9 -0
- package/dist/src/components/layout/AppShellSkeleton.js +12 -0
- package/dist/src/components/layout/ComposeFab.d.ts +12 -0
- package/dist/src/components/layout/ComposeFab.js +21 -0
- package/dist/src/components/layout/Drawer.d.ts +28 -0
- package/dist/src/components/layout/Drawer.js +37 -0
- package/dist/src/components/layout/MailShell.d.ts +51 -0
- package/dist/src/components/layout/MailShell.js +39 -0
- package/dist/src/components/layout/MailTopBar.d.ts +14 -0
- package/dist/src/components/layout/MailTopBar.js +44 -0
- package/dist/src/components/mail/AuthenticityBanner.d.ts +14 -0
- package/dist/src/components/mail/AuthenticityBanner.js +18 -0
- package/dist/src/components/mail/AutoMovedIndicator.d.ts +20 -0
- package/dist/src/components/mail/AutoMovedIndicator.js +25 -0
- package/dist/src/components/mail/BlockedImagesNotice.d.ts +17 -0
- package/dist/src/components/mail/BlockedImagesNotice.js +8 -0
- package/dist/src/components/mail/BriefPane.d.ts +33 -0
- package/dist/src/components/mail/BriefPane.js +255 -0
- package/dist/src/components/mail/BulkRunProvider.d.ts +90 -0
- package/dist/src/components/mail/BulkRunProvider.js +203 -0
- package/dist/src/components/mail/ConversationView.d.ts +52 -0
- package/dist/src/components/mail/ConversationView.js +279 -0
- package/dist/src/components/mail/DailyBrief.d.ts +46 -0
- package/dist/src/components/mail/DailyBrief.js +584 -0
- package/dist/src/components/mail/DeleteConfirmDialog.d.ts +25 -0
- package/dist/src/components/mail/DeleteConfirmDialog.js +70 -0
- package/dist/src/components/mail/DraftsView.d.ts +15 -0
- package/dist/src/components/mail/DraftsView.js +84 -0
- package/dist/src/components/mail/EmptyTrashBar.d.ts +47 -0
- package/dist/src/components/mail/EmptyTrashBar.js +73 -0
- package/dist/src/components/mail/FlaggedList.d.ts +20 -0
- package/dist/src/components/mail/FlaggedList.js +173 -0
- package/dist/src/components/mail/FlaggedPane.d.ts +29 -0
- package/dist/src/components/mail/FlaggedPane.js +225 -0
- package/dist/src/components/mail/IntelligenceDrawer.d.ts +19 -0
- package/dist/src/components/mail/IntelligenceDrawer.js +16 -0
- package/dist/src/components/mail/IntelligencePane.d.ts +59 -0
- package/dist/src/components/mail/IntelligencePane.js +130 -0
- package/dist/src/components/mail/LabelApplyTrigger.d.ts +15 -0
- package/dist/src/components/mail/LabelApplyTrigger.js +29 -0
- package/dist/src/components/mail/MailListHeader.d.ts +102 -0
- package/dist/src/components/mail/MailListHeader.js +303 -0
- package/dist/src/components/mail/MailNav.d.ts +17 -0
- package/dist/src/components/mail/MailNav.js +20 -0
- package/dist/src/components/mail/MailSidebarAdapter.d.ts +23 -0
- package/dist/src/components/mail/MailSidebarAdapter.js +161 -0
- package/dist/src/components/mail/MailViewChrome.d.ts +54 -0
- package/dist/src/components/mail/MailViewChrome.js +43 -0
- package/dist/src/components/mail/MailboxPane.d.ts +36 -0
- package/dist/src/components/mail/MailboxPane.js +705 -0
- package/dist/src/components/mail/MessageActionMenu.d.ts +36 -0
- package/dist/src/components/mail/MessageActionMenu.js +129 -0
- package/dist/src/components/mail/MessageAttachments.d.ts +21 -0
- package/dist/src/components/mail/MessageAttachments.js +96 -0
- package/dist/src/components/mail/MessageBody.d.ts +72 -0
- package/dist/src/components/mail/MessageBody.js +68 -0
- package/dist/src/components/mail/MessageBodyErrorBanner.d.ts +20 -0
- package/dist/src/components/mail/MessageBodyErrorBanner.js +29 -0
- package/dist/src/components/mail/MessageCard.d.ts +29 -0
- package/dist/src/components/mail/MessageCard.js +77 -0
- package/dist/src/components/mail/MessageList.d.ts +130 -0
- package/dist/src/components/mail/MessageList.js +896 -0
- package/dist/src/components/mail/MessageListItem.d.ts +32 -0
- package/dist/src/components/mail/MessageListItem.js +41 -0
- package/dist/src/components/mail/MessageRow.d.ts +57 -0
- package/dist/src/components/mail/MessageRow.js +137 -0
- package/dist/src/components/mail/MessageSettlementAlert.d.ts +27 -0
- package/dist/src/components/mail/MessageSettlementAlert.js +79 -0
- package/dist/src/components/mail/MessageToolbar.d.ts +58 -0
- package/dist/src/components/mail/MessageToolbar.js +80 -0
- package/dist/src/components/mail/MobileMessageBar.d.ts +25 -0
- package/dist/src/components/mail/MobileMessageBar.js +61 -0
- package/dist/src/components/mail/MoveToTrigger.d.ts +30 -0
- package/dist/src/components/mail/MoveToTrigger.js +114 -0
- package/dist/src/components/mail/NavMenuButton.d.ts +1 -0
- package/dist/src/components/mail/NavMenuButton.js +17 -0
- package/dist/src/components/mail/OutboxPane.d.ts +27 -0
- package/dist/src/components/mail/OutboxPane.js +247 -0
- package/dist/src/components/mail/PullToRefresh.d.ts +12 -0
- package/dist/src/components/mail/PullToRefresh.js +12 -0
- package/dist/src/components/mail/RawMessageView.d.ts +18 -0
- package/dist/src/components/mail/RawMessageView.js +30 -0
- package/dist/src/components/mail/RoleAppointmentPromptProvider.d.ts +39 -0
- package/dist/src/components/mail/RoleAppointmentPromptProvider.js +137 -0
- package/dist/src/components/mail/SelectionWizardHost.d.ts +110 -0
- package/dist/src/components/mail/SelectionWizardHost.js +721 -0
- package/dist/src/components/mail/SpamRescue.d.ts +17 -0
- package/dist/src/components/mail/SpamRescue.js +64 -0
- package/dist/src/components/mail/SwipeableMessageRow.d.ts +31 -0
- package/dist/src/components/mail/SwipeableMessageRow.js +69 -0
- package/dist/src/components/mail/ThreadListInteraction.d.ts +106 -0
- package/dist/src/components/mail/ThreadListInteraction.js +319 -0
- package/dist/src/components/mail/bulk-run-state.d.ts +37 -0
- package/dist/src/components/mail/bulk-run-state.js +64 -0
- package/dist/src/components/mail/intelligence-story-calendar.d.ts +7 -0
- package/dist/src/components/mail/intelligence-story-calendar.js +17 -0
- package/dist/src/components/mail/message-body-error-banner-content.d.ts +31 -0
- package/dist/src/components/mail/message-body-error-banner-content.js +70 -0
- package/dist/src/components/mail/organize-run-state.d.ts +26 -0
- package/dist/src/components/mail/organize-run-state.js +24 -0
- package/dist/src/components/mail/selection-wizard-run-controls.d.ts +66 -0
- package/dist/src/components/mail/selection-wizard-run-controls.js +65 -0
- package/dist/src/components/mail/useModifierSelect.d.ts +35 -0
- package/dist/src/components/mail/useModifierSelect.js +75 -0
- package/dist/src/components/onboarding/OnboardingWizard.d.ts +83 -0
- package/dist/src/components/onboarding/OnboardingWizard.js +661 -0
- package/dist/src/components/onboarding/credential-steps.d.ts +58 -0
- package/dist/src/components/onboarding/credential-steps.js +198 -0
- package/dist/src/components/self-update/SelfUpdateOverlay.d.ts +1 -0
- package/dist/src/components/self-update/SelfUpdateOverlay.js +25 -0
- package/dist/src/components/settings/AccountFormPanel.d.ts +29 -0
- package/dist/src/components/settings/AccountFormPanel.js +337 -0
- package/dist/src/components/settings/AccountServices.d.ts +6 -0
- package/dist/src/components/settings/AccountServices.js +100 -0
- package/dist/src/components/settings/AccountServicesCard.d.ts +16 -0
- package/dist/src/components/settings/AccountServicesCard.js +13 -0
- package/dist/src/components/settings/AdvancedNavIcon.d.ts +1 -0
- package/dist/src/components/settings/AdvancedNavIcon.js +17 -0
- package/dist/src/components/settings/CalendarCreateCard.d.ts +12 -0
- package/dist/src/components/settings/CalendarCreateCard.js +42 -0
- package/dist/src/components/settings/CalendarDetailsForm.d.ts +15 -0
- package/dist/src/components/settings/CalendarDetailsForm.js +34 -0
- package/dist/src/components/settings/CalendarFeedCard.d.ts +18 -0
- package/dist/src/components/settings/CalendarFeedCard.js +58 -0
- package/dist/src/components/settings/CalendarFeedPanel.d.ts +13 -0
- package/dist/src/components/settings/CalendarFeedPanel.js +7 -0
- package/dist/src/components/settings/CalendarSettingsPanel.d.ts +13 -0
- package/dist/src/components/settings/CalendarSettingsPanel.js +21 -0
- package/dist/src/components/settings/CalendarSubscribeCard.d.ts +11 -0
- package/dist/src/components/settings/CalendarSubscribeCard.js +30 -0
- package/dist/src/components/settings/CalendarSubscriptionStatus.d.ts +12 -0
- package/dist/src/components/settings/CalendarSubscriptionStatus.js +20 -0
- package/dist/src/components/settings/ConfigExportCard.d.ts +18 -0
- package/dist/src/components/settings/ConfigExportCard.js +16 -0
- package/dist/src/components/settings/ConfigTransferPanel.d.ts +15 -0
- package/dist/src/components/settings/ConfigTransferPanel.js +55 -0
- package/dist/src/components/settings/DangerZone.d.ts +1 -0
- package/dist/src/components/settings/DangerZone.js +8 -0
- package/dist/src/components/settings/DeleteAccountDialog.d.ts +13 -0
- package/dist/src/components/settings/DeleteAccountDialog.js +62 -0
- package/dist/src/components/settings/DeleteFolderDialog.d.ts +21 -0
- package/dist/src/components/settings/DeleteFolderDialog.js +116 -0
- package/dist/src/components/settings/FilterActionError.d.ts +8 -0
- package/dist/src/components/settings/FilterActionError.js +10 -0
- package/dist/src/components/settings/FilterEditor.d.ts +22 -0
- package/dist/src/components/settings/FilterEditor.js +143 -0
- package/dist/src/components/settings/FilterEditorSurface.d.ts +18 -0
- package/dist/src/components/settings/FilterEditorSurface.js +18 -0
- package/dist/src/components/settings/FiltersList.d.ts +31 -0
- package/dist/src/components/settings/FiltersList.js +58 -0
- package/dist/src/components/settings/LabelsList.d.ts +15 -0
- package/dist/src/components/settings/LabelsList.js +37 -0
- package/dist/src/components/settings/SelfUpdatePanel.d.ts +1 -0
- package/dist/src/components/settings/SelfUpdatePanel.js +19 -0
- package/dist/src/components/settings/TimeZoneSelect.d.ts +12 -0
- package/dist/src/components/settings/TimeZoneSelect.js +10 -0
- package/dist/src/components/settings/TlsRootCaDownload.d.ts +1 -0
- package/dist/src/components/settings/TlsRootCaDownload.js +15 -0
- package/dist/src/components/settings/WarningsNavIcon.d.ts +1 -0
- package/dist/src/components/settings/WarningsNavIcon.js +8 -0
- package/dist/src/components/settings/WarningsPanel.d.ts +21 -0
- package/dist/src/components/settings/WarningsPanel.js +93 -0
- package/dist/src/components/settings/account-form-helpers.d.ts +53 -0
- package/dist/src/components/settings/account-form-helpers.js +78 -0
- package/dist/src/components/ui/AppVersion.d.ts +12 -0
- package/dist/src/components/ui/AppVersion.js +19 -0
- package/dist/src/components/ui/BugReportButton.d.ts +6 -0
- package/dist/src/components/ui/BugReportButton.js +11 -0
- package/dist/src/components/ui/ErrorBannerProvider.d.ts +27 -0
- package/dist/src/components/ui/ErrorBannerProvider.js +82 -0
- package/dist/src/components/ui/FatalErrorOverlay.d.ts +31 -0
- package/dist/src/components/ui/FatalErrorOverlay.js +71 -0
- package/dist/src/components/ui/error-banners.d.ts +43 -0
- package/dist/src/components/ui/error-banners.js +69 -0
- package/dist/src/components/ui/folder-role-refusal.d.ts +29 -0
- package/dist/src/components/ui/folder-role-refusal.js +44 -0
- package/dist/src/components/ui/placement-refusal.d.ts +31 -0
- package/dist/src/components/ui/placement-refusal.js +39 -0
- package/dist/src/hooks/calendar/agenda-window.d.ts +110 -0
- package/dist/src/hooks/calendar/agenda-window.js +159 -0
- package/dist/src/hooks/calendar/draft.d.ts +59 -0
- package/dist/src/hooks/calendar/draft.js +142 -0
- package/dist/src/hooks/calendar/index.d.ts +24 -0
- package/dist/src/hooks/calendar/index.js +24 -0
- package/dist/src/hooks/calendar/instance.d.ts +61 -0
- package/dist/src/hooks/calendar/instance.js +145 -0
- package/dist/src/hooks/calendar/recurrence-rule.d.ts +29 -0
- package/dist/src/hooks/calendar/recurrence-rule.js +159 -0
- package/dist/src/hooks/calendar/resource.d.ts +14 -0
- package/dist/src/hooks/calendar/resource.js +87 -0
- package/dist/src/hooks/calendar/selection.d.ts +38 -0
- package/dist/src/hooks/calendar/selection.js +54 -0
- package/dist/src/hooks/calendar/suggestion-draft.d.ts +11 -0
- package/dist/src/hooks/calendar/suggestion-draft.js +45 -0
- package/dist/src/hooks/calendar/useCalendarCollectionWrites.d.ts +26 -0
- package/dist/src/hooks/calendar/useCalendarCollectionWrites.js +75 -0
- package/dist/src/hooks/calendar/useCalendarEvent.d.ts +8 -0
- package/dist/src/hooks/calendar/useCalendarEvent.js +32 -0
- package/dist/src/hooks/calendar/useCalendarEvents.d.ts +58 -0
- package/dist/src/hooks/calendar/useCalendarEvents.js +128 -0
- package/dist/src/hooks/calendar/useCalendarFeed.d.ts +29 -0
- package/dist/src/hooks/calendar/useCalendarFeed.js +115 -0
- package/dist/src/hooks/calendar/useCalendarFreeBusy.d.ts +15 -0
- package/dist/src/hooks/calendar/useCalendarFreeBusy.js +61 -0
- package/dist/src/hooks/calendar/useCalendarJump.d.ts +24 -0
- package/dist/src/hooks/calendar/useCalendarJump.js +95 -0
- package/dist/src/hooks/calendar/useCalendarSubscriptions.d.ts +17 -0
- package/dist/src/hooks/calendar/useCalendarSubscriptions.js +66 -0
- package/dist/src/hooks/calendar/useCalendarSuggestions.d.ts +45 -0
- package/dist/src/hooks/calendar/useCalendarSuggestions.js +171 -0
- package/dist/src/hooks/calendar/useCalendarWrites.d.ts +44 -0
- package/dist/src/hooks/calendar/useCalendarWrites.js +109 -0
- package/dist/src/hooks/calendar/useCalendars.d.ts +20 -0
- package/dist/src/hooks/calendar/useCalendars.js +30 -0
- package/dist/src/hooks/calendar/useDraftClashes.d.ts +15 -0
- package/dist/src/hooks/calendar/useDraftClashes.js +68 -0
- package/dist/src/hooks/calendar/window.d.ts +57 -0
- package/dist/src/hooks/calendar/window.js +135 -0
- package/dist/src/hooks/queries/keys.d.ts +5 -0
- package/dist/src/hooks/queries/keys.js +5 -0
- package/dist/src/hooks/use-system-update.d.ts +40 -0
- package/dist/src/hooks/use-system-update.js +237 -0
- package/dist/src/hooks/useApplyLabel.d.ts +17 -0
- package/dist/src/hooks/useApplyLabel.js +41 -0
- package/dist/src/hooks/useArchiveMailbox.d.ts +74 -0
- package/dist/src/hooks/useArchiveMailbox.js +120 -0
- package/dist/src/hooks/useAutoMovedBadge.d.ts +56 -0
- package/dist/src/hooks/useAutoMovedBadge.js +86 -0
- package/dist/src/hooks/useBriefSections.d.ts +70 -0
- package/dist/src/hooks/useBriefSections.js +210 -0
- package/dist/src/hooks/useCalendarData.d.ts +37 -0
- package/dist/src/hooks/useCalendarData.js +23 -0
- package/dist/src/hooks/useClauseSuggestions.d.ts +14 -0
- package/dist/src/hooks/useClauseSuggestions.js +39 -0
- package/dist/src/hooks/useComposeAttachments.d.ts +20 -0
- package/dist/src/hooks/useComposeAttachments.js +72 -0
- package/dist/src/hooks/useComposeLanguages.d.ts +11 -0
- package/dist/src/hooks/useComposeLanguages.js +44 -0
- package/dist/src/hooks/useCreateMailbox.d.ts +40 -0
- package/dist/src/hooks/useCreateMailbox.js +123 -0
- package/dist/src/hooks/useCurrentMailboxName.d.ts +39 -0
- package/dist/src/hooks/useCurrentMailboxName.js +109 -0
- package/dist/src/hooks/useDebouncedValue.d.ts +1 -0
- package/dist/src/hooks/useDebouncedValue.js +9 -0
- package/dist/src/hooks/useDeleteFolder.d.ts +36 -0
- package/dist/src/hooks/useDeleteFolder.js +280 -0
- package/dist/src/hooks/useDeleteMessages.d.ts +41 -0
- package/dist/src/hooks/useDeleteMessages.js +171 -0
- package/dist/src/hooks/useDeleteOutcome.d.ts +14 -0
- package/dist/src/hooks/useDeleteOutcome.js +46 -0
- package/dist/src/hooks/useEmptyTrash.d.ts +16 -0
- package/dist/src/hooks/useEmptyTrash.js +130 -0
- package/dist/src/hooks/useEscalatedActions.d.ts +83 -0
- package/dist/src/hooks/useEscalatedActions.js +175 -0
- package/dist/src/hooks/useFilters.d.ts +57 -0
- package/dist/src/hooks/useFilters.js +147 -0
- package/dist/src/hooks/useFolderLabelTranslator.d.ts +6 -0
- package/dist/src/hooks/useFolderLabelTranslator.js +11 -0
- package/dist/src/hooks/useFollowFocusOpen.d.ts +28 -0
- package/dist/src/hooks/useFollowFocusOpen.js +52 -0
- package/dist/src/hooks/useInitialSyncProgress.d.ts +41 -0
- package/dist/src/hooks/useInitialSyncProgress.js +111 -0
- package/dist/src/hooks/useInlineImages.d.ts +16 -0
- package/dist/src/hooks/useInlineImages.js +52 -0
- package/dist/src/hooks/useIntelligenceCalendar.d.ts +20 -0
- package/dist/src/hooks/useIntelligenceCalendar.js +230 -0
- package/dist/src/hooks/useIntelligenceData.d.ts +58 -0
- package/dist/src/hooks/useIntelligenceData.js +242 -0
- package/dist/src/hooks/useIntelligenceDrawer.d.ts +21 -0
- package/dist/src/hooks/useIntelligenceDrawer.js +22 -0
- package/dist/src/hooks/useIntelligenceSurface.d.ts +44 -0
- package/dist/src/hooks/useIntelligenceSurface.js +57 -0
- package/dist/src/hooks/useIsDark.d.ts +8 -0
- package/dist/src/hooks/useIsDark.js +21 -0
- package/dist/src/hooks/useKeyboardNavigation.d.ts +57 -0
- package/dist/src/hooks/useKeyboardNavigation.js +61 -0
- package/dist/src/hooks/useLabels.d.ts +40 -0
- package/dist/src/hooks/useLabels.js +98 -0
- package/dist/src/hooks/useLayoutTier.d.ts +33 -0
- package/dist/src/hooks/useLayoutTier.js +33 -0
- package/dist/src/hooks/useMailboxAccount.d.ts +18 -0
- package/dist/src/hooks/useMailboxAccount.js +48 -0
- package/dist/src/hooks/useMailboxNameIndex.d.ts +2 -0
- package/dist/src/hooks/useMailboxNameIndex.js +21 -0
- package/dist/src/hooks/useMarkAsRead.d.ts +59 -0
- package/dist/src/hooks/useMarkAsRead.js +206 -0
- package/dist/src/hooks/useMatchSample.d.ts +30 -0
- package/dist/src/hooks/useMatchSample.js +74 -0
- package/dist/src/hooks/useMediaQuery.d.ts +11 -0
- package/dist/src/hooks/useMediaQuery.js +12 -0
- package/dist/src/hooks/useMessageBodyContent.d.ts +148 -0
- package/dist/src/hooks/useMessageBodyContent.js +272 -0
- package/dist/src/hooks/useMoveMessages.d.ts +27 -0
- package/dist/src/hooks/useMoveMessages.js +128 -0
- package/dist/src/hooks/useOrganizeJob.d.ts +39 -0
- package/dist/src/hooks/useOrganizeJob.js +95 -0
- package/dist/src/hooks/useRailPanels.d.ts +17 -0
- package/dist/src/hooks/useRailPanels.js +94 -0
- package/dist/src/hooks/useRedirectEnded.d.ts +41 -0
- package/dist/src/hooks/useRedirectEnded.js +106 -0
- package/dist/src/hooks/useRefreshControl.d.ts +97 -0
- package/dist/src/hooks/useRefreshControl.js +234 -0
- package/dist/src/hooks/useReportSpam.d.ts +102 -0
- package/dist/src/hooks/useReportSpam.js +173 -0
- package/dist/src/hooks/useRescueCandidates.d.ts +15 -0
- package/dist/src/hooks/useRescueCandidates.js +41 -0
- package/dist/src/hooks/useResultCount.d.ts +26 -0
- package/dist/src/hooks/useResultCount.js +40 -0
- package/dist/src/hooks/useResultFolderIndex.d.ts +8 -0
- package/dist/src/hooks/useResultFolderIndex.js +45 -0
- package/dist/src/hooks/useReturnFromRedirect.d.ts +19 -0
- package/dist/src/hooks/useReturnFromRedirect.js +38 -0
- package/dist/src/hooks/useRulePreview.d.ts +28 -0
- package/dist/src/hooks/useRulePreview.js +77 -0
- package/dist/src/hooks/useSaveDraft.d.ts +31 -0
- package/dist/src/hooks/useSaveDraft.js +183 -0
- package/dist/src/hooks/useSearchScope.d.ts +15 -0
- package/dist/src/hooks/useSearchScope.js +30 -0
- package/dist/src/hooks/useSearchSuggestions.d.ts +12 -0
- package/dist/src/hooks/useSearchSuggestions.js +77 -0
- package/dist/src/hooks/useSearchTokenContext.d.ts +16 -0
- package/dist/src/hooks/useSearchTokenContext.js +26 -0
- package/dist/src/hooks/useSelectedSubjects.d.ts +6 -0
- package/dist/src/hooks/useSelectedSubjects.js +62 -0
- package/dist/src/hooks/useSignature.d.ts +9 -0
- package/dist/src/hooks/useSignature.js +47 -0
- package/dist/src/hooks/useSpamMatchCounts.d.ts +15 -0
- package/dist/src/hooks/useSpamMatchCounts.js +74 -0
- package/dist/src/hooks/useStaleAccountSync.d.ts +101 -0
- package/dist/src/hooks/useStaleAccountSync.js +252 -0
- package/dist/src/hooks/useStarredThreads.d.ts +42 -0
- package/dist/src/hooks/useStarredThreads.js +100 -0
- package/dist/src/hooks/useThreadActions.d.ts +41 -0
- package/dist/src/hooks/useThreadActions.js +64 -0
- package/dist/src/hooks/useThreadMessageIds.d.ts +10 -0
- package/dist/src/hooks/useThreadMessageIds.js +22 -0
- package/dist/src/hooks/useThreadRow.d.ts +23 -0
- package/dist/src/hooks/useThreadRow.js +40 -0
- package/dist/src/hooks/useToggleStar.d.ts +31 -0
- package/dist/src/hooks/useToggleStar.js +96 -0
- package/dist/src/hooks/useToggleTrusted.d.ts +23 -0
- package/dist/src/hooks/useToggleTrusted.js +100 -0
- package/dist/src/hooks/useTriageLayer.d.ts +80 -0
- package/dist/src/hooks/useTriageLayer.js +99 -0
- package/dist/src/hooks/useTriggerSync.d.ts +30 -0
- package/dist/src/hooks/useTriggerSync.js +42 -0
- package/dist/src/hooks/useUpdateAddressFlags.d.ts +18 -0
- package/dist/src/hooks/useUpdateAddressFlags.js +93 -0
- package/dist/src/hooks/useUpdateFilter.d.ts +16 -0
- package/dist/src/hooks/useUpdateFilter.js +45 -0
- package/dist/src/hooks/useVisualViewport.d.ts +13 -0
- package/dist/src/hooks/useVisualViewport.js +37 -0
- package/dist/src/hooks/useWarningsAttention.d.ts +9 -0
- package/dist/src/hooks/useWarningsAttention.js +31 -0
- package/dist/src/index.css +27 -0
- package/dist/src/lib/account-order.d.ts +3 -0
- package/dist/src/lib/account-order.js +6 -0
- package/dist/src/lib/adjacent-message.d.ts +9 -0
- package/dist/src/lib/adjacent-message.js +19 -0
- package/dist/src/lib/api.d.ts +35 -0
- package/dist/src/lib/api.js +73 -0
- package/dist/src/lib/app-info.d.ts +24 -0
- package/dist/src/lib/app-info.js +26 -0
- package/dist/src/lib/attachment-download.d.ts +63 -0
- package/dist/src/lib/attachment-download.js +130 -0
- package/dist/src/lib/auto-moved.d.ts +46 -0
- package/dist/src/lib/auto-moved.js +82 -0
- package/dist/src/lib/autodiscovery.d.ts +42 -0
- package/dist/src/lib/autodiscovery.js +320 -0
- package/dist/src/lib/brief-criteria.d.ts +69 -0
- package/dist/src/lib/brief-criteria.js +62 -0
- package/dist/src/lib/brief.d.ts +98 -0
- package/dist/src/lib/brief.js +164 -0
- package/dist/src/lib/bug-report.d.ts +67 -0
- package/dist/src/lib/bug-report.js +212 -0
- package/dist/src/lib/bulk-action-copy.d.ts +67 -0
- package/dist/src/lib/bulk-action-copy.js +106 -0
- package/dist/src/lib/bulk-actions.d.ts +228 -0
- package/dist/src/lib/bulk-actions.js +242 -0
- package/dist/src/lib/calendar-collection-copy.d.ts +7 -0
- package/dist/src/lib/calendar-collection-copy.js +12 -0
- package/dist/src/lib/calendar-density.d.ts +26 -0
- package/dist/src/lib/calendar-density.js +31 -0
- package/dist/src/lib/calendar-feed-copy.d.ts +14 -0
- package/dist/src/lib/calendar-feed-copy.js +16 -0
- package/dist/src/lib/calendar-feed-url.d.ts +9 -0
- package/dist/src/lib/calendar-feed-url.js +11 -0
- package/dist/src/lib/calendar-format.d.ts +25 -0
- package/dist/src/lib/calendar-format.js +57 -0
- package/dist/src/lib/calendar-report.d.ts +4 -0
- package/dist/src/lib/calendar-report.js +15 -0
- package/dist/src/lib/calendar-route.d.ts +93 -0
- package/dist/src/lib/calendar-route.js +145 -0
- package/dist/src/lib/calendar-subscription.d.ts +6 -0
- package/dist/src/lib/calendar-subscription.js +8 -0
- package/dist/src/lib/calendar-suggestion.d.ts +56 -0
- package/dist/src/lib/calendar-suggestion.js +165 -0
- package/dist/src/lib/client.d.ts +2 -0
- package/dist/src/lib/client.js +30 -0
- package/dist/src/lib/compose-attachment-controller.d.ts +90 -0
- package/dist/src/lib/compose-attachment-controller.js +359 -0
- package/dist/src/lib/config-import.d.ts +136 -0
- package/dist/src/lib/config-import.js +371 -0
- package/dist/src/lib/console-errors.d.ts +16 -0
- package/dist/src/lib/console-errors.js +80 -0
- package/dist/src/lib/conversation-target.d.ts +16 -0
- package/dist/src/lib/conversation-target.js +1 -0
- package/dist/src/lib/dedupe-thread-messages.d.ts +14 -0
- package/dist/src/lib/dedupe-thread-messages.js +23 -0
- package/dist/src/lib/delete-folder.d.ts +66 -0
- package/dist/src/lib/delete-folder.js +110 -0
- package/dist/src/lib/display-category.d.ts +18 -0
- package/dist/src/lib/display-category.js +20 -0
- package/dist/src/lib/drafts.d.ts +50 -0
- package/dist/src/lib/drafts.js +91 -0
- package/dist/src/lib/error-classifier.d.ts +155 -0
- package/dist/src/lib/error-classifier.js +213 -0
- package/dist/src/lib/escalation-label.d.ts +18 -0
- package/dist/src/lib/escalation-label.js +20 -0
- package/dist/src/lib/fatal-error.d.ts +68 -0
- package/dist/src/lib/fatal-error.js +88 -0
- package/dist/src/lib/filter-report.d.ts +2 -0
- package/dist/src/lib/filter-report.js +13 -0
- package/dist/src/lib/flagged-criteria.d.ts +36 -0
- package/dist/src/lib/flagged-criteria.js +22 -0
- package/dist/src/lib/folder-failure.d.ts +2 -0
- package/dist/src/lib/folder-failure.js +8 -0
- package/dist/src/lib/folder-roles.d.ts +33 -0
- package/dist/src/lib/folder-roles.js +83 -0
- package/dist/src/lib/format.d.ts +156 -0
- package/dist/src/lib/format.js +269 -0
- package/dist/src/lib/fresh-mailbox-count.d.ts +76 -0
- package/dist/src/lib/fresh-mailbox-count.js +37 -0
- package/dist/src/lib/hot-sync-window.d.ts +28 -0
- package/dist/src/lib/hot-sync-window.js +41 -0
- package/dist/src/lib/i18n.d.ts +2 -0
- package/dist/src/lib/i18n.js +29 -0
- package/dist/src/lib/inbox-filters.d.ts +76 -0
- package/dist/src/lib/inbox-filters.js +95 -0
- package/dist/src/lib/intelligence-pref.d.ts +43 -0
- package/dist/src/lib/intelligence-pref.js +41 -0
- package/dist/src/lib/json.d.ts +8 -0
- package/dist/src/lib/json.js +10 -0
- package/dist/src/lib/junk-destination.d.ts +15 -0
- package/dist/src/lib/junk-destination.js +24 -0
- package/dist/src/lib/list-focus.d.ts +14 -0
- package/dist/src/lib/list-focus.js +21 -0
- package/dist/src/lib/list-header-chrome.d.ts +40 -0
- package/dist/src/lib/list-header-chrome.js +12 -0
- package/dist/src/lib/list-narrowing.d.ts +35 -0
- package/dist/src/lib/list-narrowing.js +133 -0
- package/dist/src/lib/list-verb-request.d.ts +43 -0
- package/dist/src/lib/list-verb-request.js +24 -0
- package/dist/src/lib/mail-context.d.ts +61 -0
- package/dist/src/lib/mail-context.js +24 -0
- package/dist/src/lib/mail-freshness.d.ts +57 -0
- package/dist/src/lib/mail-freshness.js +158 -0
- package/dist/src/lib/mail-route.d.ts +103 -0
- package/dist/src/lib/mail-route.js +115 -0
- package/dist/src/lib/mail-search.d.ts +141 -0
- package/dist/src/lib/mail-search.js +55 -0
- package/dist/src/lib/mailbox-sync-wait.d.ts +54 -0
- package/dist/src/lib/mailbox-sync-wait.js +44 -0
- package/dist/src/lib/message-attachments.d.ts +20 -0
- package/dist/src/lib/message-attachments.js +37 -0
- package/dist/src/lib/message-body-source.d.ts +30 -0
- package/dist/src/lib/message-body-source.js +30 -0
- package/dist/src/lib/move-options.d.ts +30 -0
- package/dist/src/lib/move-options.js +33 -0
- package/dist/src/lib/move-targets.d.ts +16 -0
- package/dist/src/lib/move-targets.js +61 -0
- package/dist/src/lib/network-error.d.ts +31 -0
- package/dist/src/lib/network-error.js +68 -0
- package/dist/src/lib/new-folder.d.ts +23 -0
- package/dist/src/lib/new-folder.js +41 -0
- package/dist/src/lib/onboarding-completion.d.ts +15 -0
- package/dist/src/lib/onboarding-completion.js +17 -0
- package/dist/src/lib/organize/clause-suggestions.d.ts +40 -0
- package/dist/src/lib/organize/clause-suggestions.js +61 -0
- package/dist/src/lib/organize/filter-edit-model.d.ts +47 -0
- package/dist/src/lib/organize/filter-edit-model.js +104 -0
- package/dist/src/lib/organize/filter-run.d.ts +27 -0
- package/dist/src/lib/organize/filter-run.js +27 -0
- package/dist/src/lib/organize/filter-status.d.ts +30 -0
- package/dist/src/lib/organize/filter-status.js +84 -0
- package/dist/src/lib/organize/label-delete-copy.d.ts +11 -0
- package/dist/src/lib/organize/label-delete-copy.js +17 -0
- package/dist/src/lib/organize/organize-model.d.ts +110 -0
- package/dist/src/lib/organize/organize-model.js +81 -0
- package/dist/src/lib/organize/organize-poll.d.ts +11 -0
- package/dist/src/lib/organize/organize-poll.js +21 -0
- package/dist/src/lib/organize/rule-model.d.ts +69 -0
- package/dist/src/lib/organize/rule-model.js +98 -0
- package/dist/src/lib/organize/search-to-rule.d.ts +19 -0
- package/dist/src/lib/organize/search-to-rule.js +65 -0
- package/dist/src/lib/outbox-search.d.ts +34 -0
- package/dist/src/lib/outbox-search.js +26 -0
- package/dist/src/lib/outbox-status.d.ts +47 -0
- package/dist/src/lib/outbox-status.js +45 -0
- package/dist/src/lib/provider-presets.d.ts +16 -0
- package/dist/src/lib/provider-presets.js +82 -0
- package/dist/src/lib/quarantine-entries.d.ts +15 -0
- package/dist/src/lib/quarantine-entries.js +40 -0
- package/dist/src/lib/query-error-handler.d.ts +21 -0
- package/dist/src/lib/query-error-handler.js +30 -0
- package/dist/src/lib/recent-searches.d.ts +2 -0
- package/dist/src/lib/recent-searches.js +37 -0
- package/dist/src/lib/recipient-suggestions.d.ts +2 -0
- package/dist/src/lib/recipient-suggestions.js +11 -0
- package/dist/src/lib/request-breadcrumbs.d.ts +59 -0
- package/dist/src/lib/request-breadcrumbs.js +114 -0
- package/dist/src/lib/rescue-candidates.d.ts +17 -0
- package/dist/src/lib/rescue-candidates.js +27 -0
- package/dist/src/lib/rescue-telemetry.d.ts +26 -0
- package/dist/src/lib/rescue-telemetry.js +32 -0
- package/dist/src/lib/result-count.d.ts +43 -0
- package/dist/src/lib/result-count.js +37 -0
- package/dist/src/lib/result-folder.d.ts +57 -0
- package/dist/src/lib/result-folder.js +67 -0
- package/dist/src/lib/route-breadcrumbs.d.ts +27 -0
- package/dist/src/lib/route-breadcrumbs.js +36 -0
- package/dist/src/lib/row-settlement.d.ts +11 -0
- package/dist/src/lib/row-settlement.js +20 -0
- package/dist/src/lib/rum-adapter.d.ts +4 -0
- package/dist/src/lib/rum-adapter.js +84 -0
- package/dist/src/lib/search-conversion.d.ts +17 -0
- package/dist/src/lib/search-conversion.js +17 -0
- package/dist/src/lib/search-params.d.ts +23 -0
- package/dist/src/lib/search-params.js +58 -0
- package/dist/src/lib/search-query.d.ts +1 -0
- package/dist/src/lib/search-query.js +10 -0
- package/dist/src/lib/search-result.d.ts +10 -0
- package/dist/src/lib/search-result.js +34 -0
- package/dist/src/lib/search-scope.d.ts +94 -0
- package/dist/src/lib/search-scope.js +86 -0
- package/dist/src/lib/search-suggestions.d.ts +98 -0
- package/dist/src/lib/search-suggestions.js +202 -0
- package/dist/src/lib/search-surface.d.ts +30 -0
- package/dist/src/lib/search-surface.js +23 -0
- package/dist/src/lib/search-token-index.d.ts +43 -0
- package/dist/src/lib/search-token-index.js +92 -0
- package/dist/src/lib/search-tokens.d.ts +136 -0
- package/dist/src/lib/search-tokens.js +206 -0
- package/dist/src/lib/search-view.d.ts +53 -0
- package/dist/src/lib/search-view.js +71 -0
- package/dist/src/lib/selection-account-scope.d.ts +18 -0
- package/dist/src/lib/selection-account-scope.js +26 -0
- package/dist/src/lib/selection-mode.d.ts +17 -0
- package/dist/src/lib/selection-mode.js +14 -0
- package/dist/src/lib/self-update-state.d.ts +156 -0
- package/dist/src/lib/self-update-state.js +384 -0
- package/dist/src/lib/sender-address.d.ts +24 -0
- package/dist/src/lib/sender-address.js +28 -0
- package/dist/src/lib/session-storage.d.ts +1 -0
- package/dist/src/lib/session-storage.js +8 -0
- package/dist/src/lib/spam-offer.d.ts +69 -0
- package/dist/src/lib/spam-offer.js +90 -0
- package/dist/src/lib/stale-build.d.ts +10 -0
- package/dist/src/lib/stale-build.js +24 -0
- package/dist/src/lib/starred-rows.d.ts +24 -0
- package/dist/src/lib/starred-rows.js +32 -0
- package/dist/src/lib/sync-warning-entries.d.ts +4 -0
- package/dist/src/lib/sync-warning-entries.js +22 -0
- package/dist/src/lib/telemetry-context.d.ts +3 -0
- package/dist/src/lib/telemetry-context.js +6 -0
- package/dist/src/lib/telemetry.d.ts +7 -0
- package/dist/src/lib/telemetry.js +6 -0
- package/dist/src/lib/theme-preference.d.ts +16 -0
- package/dist/src/lib/theme-preference.js +40 -0
- package/dist/src/lib/theme.d.ts +11 -0
- package/dist/src/lib/theme.js +31 -0
- package/dist/src/lib/thread-cache.d.ts +41 -0
- package/dist/src/lib/thread-cache.js +34 -0
- package/dist/src/lib/thread-list-cache.d.ts +51 -0
- package/dist/src/lib/thread-list-cache.js +51 -0
- package/dist/src/lib/thread-search-tokens.d.ts +61 -0
- package/dist/src/lib/thread-search-tokens.js +116 -0
- package/dist/src/lib/wizard-selection.d.ts +27 -0
- package/dist/src/lib/wizard-selection.js +17 -0
- package/dist/src/main.d.ts +1 -0
- package/dist/src/main.js +9 -0
- package/dist/src/routeTree.gen.d.ts +1596 -0
- package/dist/src/routeTree.gen.js +414 -0
- package/dist/src/router.d.ts +12 -0
- package/dist/src/router.js +40 -0
- package/dist/src/routes/__root.d.ts +2 -0
- package/dist/src/routes/__root.js +46 -0
- package/dist/src/routes/calendar/$view.$date/$calendarObjectId/$recurrenceId.d.ts +13 -0
- package/dist/src/routes/calendar/$view.$date/$calendarObjectId/$recurrenceId.js +18 -0
- package/dist/src/routes/calendar/$view.$date/$calendarObjectId/index.d.ts +13 -0
- package/dist/src/routes/calendar/$view.$date/$calendarObjectId/index.js +15 -0
- package/dist/src/routes/calendar/$view.$date/$calendarObjectId.d.ts +13 -0
- package/dist/src/routes/calendar/$view.$date/$calendarObjectId.js +12 -0
- package/dist/src/routes/calendar/$view.$date/index.d.ts +18 -0
- package/dist/src/routes/calendar/$view.$date/index.js +16 -0
- package/dist/src/routes/calendar/$view.$date/new.d.ts +13 -0
- package/dist/src/routes/calendar/$view.$date/new.js +19 -0
- package/dist/src/routes/calendar/$view.$date/suggestion.$suggestionId.d.ts +13 -0
- package/dist/src/routes/calendar/$view.$date/suggestion.$suggestionId.js +15 -0
- package/dist/src/routes/calendar/$view.$date.d.ts +13 -0
- package/dist/src/routes/calendar/$view.$date.js +69 -0
- package/dist/src/routes/calendar/index.d.ts +13 -0
- package/dist/src/routes/calendar/index.js +22 -0
- package/dist/src/routes/calendar.d.ts +14 -0
- package/dist/src/routes/calendar.js +68 -0
- package/dist/src/routes/import.d.ts +1 -0
- package/dist/src/routes/import.js +45 -0
- package/dist/src/routes/index.d.ts +1 -0
- package/dist/src/routes/index.js +6 -0
- package/dist/src/routes/mail/$mailboxId/$threadId/$messageId/$mode.{-$outboxMessageId}.d.ts +29 -0
- package/dist/src/routes/mail/$mailboxId/$threadId/$messageId/$mode.{-$outboxMessageId}.js +12 -0
- package/dist/src/routes/mail/$mailboxId/$threadId/$messageId.d.ts +19 -0
- package/dist/src/routes/mail/$mailboxId/$threadId/$messageId.js +22 -0
- package/dist/src/routes/mail/$mailboxId/$threadId/index.d.ts +19 -0
- package/dist/src/routes/mail/$mailboxId/$threadId/index.js +13 -0
- package/dist/src/routes/mail/$mailboxId/$threadId.d.ts +19 -0
- package/dist/src/routes/mail/$mailboxId/$threadId.js +11 -0
- package/dist/src/routes/mail/$mailboxId/compose.{-$outboxMessageId}.d.ts +19 -0
- package/dist/src/routes/mail/$mailboxId/compose.{-$outboxMessageId}.js +11 -0
- package/dist/src/routes/mail/$mailboxId/index.d.ts +19 -0
- package/dist/src/routes/mail/$mailboxId/index.js +9 -0
- package/dist/src/routes/mail/$mailboxId.d.ts +19 -0
- package/dist/src/routes/mail/$mailboxId.js +26 -0
- package/dist/src/routes/mail/brief/$threadId/$messageId/$mode.{-$outboxMessageId}.d.ts +29 -0
- package/dist/src/routes/mail/brief/$threadId/$messageId/$mode.{-$outboxMessageId}.js +24 -0
- package/dist/src/routes/mail/brief/$threadId/$messageId.d.ts +19 -0
- package/dist/src/routes/mail/brief/$threadId/$messageId.js +22 -0
- package/dist/src/routes/mail/brief/$threadId/index.d.ts +19 -0
- package/dist/src/routes/mail/brief/$threadId/index.js +13 -0
- package/dist/src/routes/mail/brief/$threadId.d.ts +19 -0
- package/dist/src/routes/mail/brief/$threadId.js +15 -0
- package/dist/src/routes/mail/brief/compose.{-$outboxMessageId}.d.ts +19 -0
- package/dist/src/routes/mail/brief/compose.{-$outboxMessageId}.js +19 -0
- package/dist/src/routes/mail/brief/index.d.ts +19 -0
- package/dist/src/routes/mail/brief/index.js +13 -0
- package/dist/src/routes/mail/brief.d.ts +19 -0
- package/dist/src/routes/mail/brief.js +27 -0
- package/dist/src/routes/mail/flagged/$threadId/$messageId/$mode.{-$outboxMessageId}.d.ts +29 -0
- package/dist/src/routes/mail/flagged/$threadId/$messageId/$mode.{-$outboxMessageId}.js +12 -0
- package/dist/src/routes/mail/flagged/$threadId/$messageId.d.ts +19 -0
- package/dist/src/routes/mail/flagged/$threadId/$messageId.js +22 -0
- package/dist/src/routes/mail/flagged/$threadId/index.d.ts +19 -0
- package/dist/src/routes/mail/flagged/$threadId/index.js +13 -0
- package/dist/src/routes/mail/flagged/$threadId.d.ts +19 -0
- package/dist/src/routes/mail/flagged/$threadId.js +15 -0
- package/dist/src/routes/mail/flagged/compose.{-$outboxMessageId}.d.ts +19 -0
- package/dist/src/routes/mail/flagged/compose.{-$outboxMessageId}.js +10 -0
- package/dist/src/routes/mail/flagged/index.d.ts +19 -0
- package/dist/src/routes/mail/flagged/index.js +9 -0
- package/dist/src/routes/mail/flagged.d.ts +19 -0
- package/dist/src/routes/mail/flagged.js +26 -0
- package/dist/src/routes/mail/index.d.ts +37 -0
- package/dist/src/routes/mail/index.js +13 -0
- package/dist/src/routes/mail/outbox/compose.{-$outboxMessageId}.d.ts +19 -0
- package/dist/src/routes/mail/outbox/compose.{-$outboxMessageId}.js +14 -0
- package/dist/src/routes/mail/outbox/draft/$outboxMessageId.d.ts +19 -0
- package/dist/src/routes/mail/outbox/draft/$outboxMessageId.js +18 -0
- package/dist/src/routes/mail/outbox/index.d.ts +19 -0
- package/dist/src/routes/mail/outbox/index.js +9 -0
- package/dist/src/routes/mail/outbox.d.ts +19 -0
- package/dist/src/routes/mail/outbox.js +22 -0
- package/dist/src/routes/mail.d.ts +16 -0
- package/dist/src/routes/mail.js +187 -0
- package/dist/src/routes/onboarding.d.ts +7 -0
- package/dist/src/routes/onboarding.js +35 -0
- package/dist/src/routes/settings/-shared/help-copy.d.ts +5 -0
- package/dist/src/routes/settings/-shared/help-copy.js +7 -0
- package/dist/src/routes/settings/accounts.d.ts +38 -0
- package/dist/src/routes/settings/accounts.js +396 -0
- package/dist/src/routes/settings/advanced.d.ts +1 -0
- package/dist/src/routes/settings/advanced.js +28 -0
- package/dist/src/routes/settings/appearance.d.ts +1 -0
- package/dist/src/routes/settings/appearance.js +61 -0
- package/dist/src/routes/settings/calendars.d.ts +1 -0
- package/dist/src/routes/settings/calendars.js +44 -0
- package/dist/src/routes/settings/filters.d.ts +5 -0
- package/dist/src/routes/settings/filters.js +88 -0
- package/dist/src/routes/settings/folders.d.ts +1 -0
- package/dist/src/routes/settings/folders.js +142 -0
- package/dist/src/routes/settings/index.d.ts +1 -0
- package/dist/src/routes/settings/index.js +5 -0
- package/dist/src/routes/settings/labels.d.ts +1 -0
- package/dist/src/routes/settings/labels.js +71 -0
- package/dist/src/routes/settings/senders.d.ts +6 -0
- package/dist/src/routes/settings/senders.js +202 -0
- package/dist/src/routes/settings/suggested-vips.d.ts +1 -0
- package/dist/src/routes/settings/suggested-vips.js +10 -0
- package/dist/src/routes/settings/warnings.d.ts +1 -0
- package/dist/src/routes/settings/warnings.js +20 -0
- package/dist/src/routes/settings.d.ts +14 -0
- package/dist/src/routes/settings.js +64 -0
- package/dist/src/routing/browsed-list.d.ts +28 -0
- package/dist/src/routing/browsed-list.js +61 -0
- package/dist/src/routing/calendar.d.ts +69 -0
- package/dist/src/routing/calendar.js +152 -0
- package/dist/src/routing/compose.d.ts +52 -0
- package/dist/src/routing/compose.js +139 -0
- package/dist/src/routing/fragment.d.ts +64 -0
- package/dist/src/routing/fragment.js +112 -0
- package/dist/src/routing/index.d.ts +14 -0
- package/dist/src/routing/index.js +14 -0
- package/dist/src/routing/nav-link.d.ts +28 -0
- package/dist/src/routing/nav-link.js +9 -0
- package/dist/src/routing/nav-selection.d.ts +13 -0
- package/dist/src/routing/nav-selection.js +29 -0
- package/dist/src/routing/open-thread.d.ts +65 -0
- package/dist/src/routing/open-thread.js +100 -0
- package/dist/src/routing/outbox-draft.d.ts +13 -0
- package/dist/src/routing/outbox-draft.js +37 -0
- package/dist/src/routing/reply.d.ts +102 -0
- package/dist/src/routing/reply.js +238 -0
- package/dist/src/routing/search-field.d.ts +45 -0
- package/dist/src/routing/search-field.js +67 -0
- package/dist/src/routing/search-mirror.d.ts +63 -0
- package/dist/src/routing/search-mirror.js +120 -0
- package/dist/src/routing/search-navigation.d.ts +16 -0
- package/dist/src/routing/search-navigation.js +32 -0
- package/dist/src/routing/sections.d.ts +16 -0
- package/dist/src/routing/sections.js +33 -0
- package/dist/src/routing/wizard-history.d.ts +83 -0
- package/dist/src/routing/wizard-history.js +153 -0
- package/dist/src/runtime-config.d.ts +59 -0
- package/dist/src/runtime-config.js +42 -0
- package/dist/src/shell/index.d.ts +17 -0
- package/dist/src/shell/index.js +61 -0
- package/package.json +145 -127
- package/harness/build.mjs +0 -121
- package/harness/index.html +0 -52
- package/harness/vite-preset.ts +0 -31
- package/index.html +0 -54
- package/spellcheck/empty-build.test.ts +0 -160
- package/spellcheck/languages.test.ts +0 -80
- package/spellcheck/languages.ts +0 -86
- package/spellcheck/vite-plugin-licence.test.ts +0 -140
- package/spellcheck/vite-plugin.test.ts +0 -230
- package/spellcheck/vite-plugin.ts +0 -385
- package/spellcheck/worker-stub.ts +0 -36
- package/src/auth/AccountMenu.tsx +0 -10
- package/src/auth/AccountSession.tsx +0 -19
- package/src/auth/BetterAuthShell.tsx +0 -233
- package/src/auth/SessionRateLimited.stories.tsx +0 -26
- package/src/auth/SessionRateLimited.tsx +0 -39
- package/src/auth/SignInAgain.tsx +0 -18
- package/src/auth/account-menu-mode.test.ts +0 -64
- package/src/auth/account-menu-mode.ts +0 -28
- package/src/auth/amplify-config.test.ts +0 -50
- package/src/auth/amplify-config.ts +0 -59
- package/src/auth/auth-error.test.ts +0 -129
- package/src/auth/auth-error.ts +0 -120
- package/src/auth/auth-interceptor.test.ts +0 -104
- package/src/auth/auth-interceptor.ts +0 -28
- package/src/auth/better-auth/BetterAuthAccount.tsx +0 -25
- package/src/auth/better-auth-config.ts +0 -253
- package/src/auth/better-auth-provider.tsx +0 -20
- package/src/auth/better-auth-token.test.ts +0 -349
- package/src/auth/cognito/CognitoAccount.tsx +0 -48
- package/src/auth/cognito/CognitoShell.tsx +0 -266
- package/src/auth/cognito/cognito-token.test.ts +0 -106
- package/src/auth/cognito/cognito-token.ts +0 -47
- package/src/auth/cognito-provider.tsx +0 -22
- package/src/auth/cognito-sign-in.stories.tsx +0 -90
- package/src/auth/combined-provider.tsx +0 -42
- package/src/auth/composition.test.ts +0 -59
- package/src/auth/email-sign-in.stories.tsx +0 -128
- package/src/auth/provider.tsx +0 -68
- package/src/auth/session-gate.render.test.ts +0 -77
- package/src/auth/session-state.test.ts +0 -66
- package/src/auth/session-state.ts +0 -41
- package/src/auth/sign-out-visibility.test.ts +0 -40
- package/src/auth/sign-out-visibility.ts +0 -10
- package/src/auth/sign-up-disabled.test.ts +0 -23
- package/src/components/calendar/AgendaStrip.stories.tsx +0 -291
- package/src/components/calendar/AgendaStrip.tsx +0 -162
- package/src/components/calendar/AgendaView.stories.tsx +0 -112
- package/src/components/calendar/AgendaView.tsx +0 -241
- package/src/components/calendar/CalendarComposePane.stories.tsx +0 -151
- package/src/components/calendar/CalendarComposePane.tsx +0 -127
- package/src/components/calendar/CalendarComposeSeed.tsx +0 -35
- package/src/components/calendar/CalendarEventPane.stories.tsx +0 -200
- package/src/components/calendar/CalendarEventPane.tsx +0 -167
- package/src/components/calendar/CalendarShell.stories.tsx +0 -177
- package/src/components/calendar/CalendarShell.tsx +0 -83
- package/src/components/calendar/CalendarUnavailable.tsx +0 -56
- package/src/components/calendar/CalendarViewPlaceholder.stories.tsx +0 -41
- package/src/components/calendar/CalendarViewPlaceholder.tsx +0 -17
- package/src/components/calendar/CalendarWaiting.tsx +0 -102
- package/src/components/calendar/CalendarWorkspace.stories.tsx +0 -374
- package/src/components/calendar/CalendarWorkspace.tsx +0 -258
- package/src/components/calendar/ChangeCalendarSuggestion.stories.tsx +0 -187
- package/src/components/calendar/ChangeCalendarSuggestion.tsx +0 -159
- package/src/components/calendar/OpenCalendarEvent.stories.tsx +0 -273
- package/src/components/calendar/OpenCalendarEvent.tsx +0 -353
- package/src/components/calendar/PendingSuggestions.tsx +0 -100
- package/src/components/calendar/WriteCalendarEvent.stories.tsx +0 -90
- package/src/components/calendar/WriteCalendarEvent.tsx +0 -104
- package/src/components/calendar/agenda-address.render.test.ts +0 -493
- package/src/components/calendar/agenda-strip.render.test.ts +0 -241
- package/src/components/calendar/calendar-app.stories.tsx +0 -122
- package/src/components/calendar/calendar-story-fixtures.ts +0 -118
- package/src/components/calendar/calendar-story-server.tsx +0 -157
- package/src/components/calendar/calendar-workspace.render.test.ts +0 -221
- package/src/components/calendar/calendar-write-flow.render.test.ts +0 -373
- package/src/components/calendar/change-suggestion-first.render.test.ts +0 -304
- package/src/components/calendar/pending-suggestions.render.test.ts +0 -206
- package/src/components/compose/AddressField.tsx +0 -64
- package/src/components/compose/ComposeForm.tsx +0 -1427
- package/src/components/compose/ComposeProvider.tsx +0 -174
- package/src/components/compose/ComposeSmtpMissingBanner.tsx +0 -25
- package/src/components/compose/ConversationCompose.tsx +0 -88
- package/src/components/compose/FromSelector.render.test.ts +0 -99
- package/src/components/compose/FromSelector.stories.tsx +0 -61
- package/src/components/compose/FromSelector.tsx +0 -74
- package/src/components/compose/FullCompose.tsx +0 -93
- package/src/components/compose/MobileComposeSheet.tsx +0 -134
- package/src/components/compose/attachment-only-source.render.test.ts +0 -234
- package/src/components/compose/compose-inline-image.render.test.ts +0 -542
- package/src/components/compose/compose-send-stops-autosave.render.test.ts +0 -328
- package/src/components/compose/compose-spellcheck-failure.render.test.ts +0 -114
- package/src/components/compose/compose-spellcheck.test.ts +0 -157
- package/src/components/compose/compose-spellcheck.ts +0 -56
- package/src/components/compose/compose-starts-a-second-message.render.test.ts +0 -171
- package/src/components/compose/compose-title.ts +0 -10
- package/src/components/compose/compose.stories.tsx +0 -405
- package/src/components/compose/draft-discard-failure.render.test.ts +0 -138
- package/src/components/compose/forward-autosave-is-not-fatal.render.test.ts +0 -358
- package/src/components/compose/mail-sync-off-refusal.ts +0 -7
- package/src/components/compose/mobile-header-stays-expanded.render.test.ts +0 -229
- package/src/components/compose/quote-leaves-with-the-send.render.test.ts +0 -235
- package/src/components/compose/quoted-message.test.ts +0 -158
- package/src/components/compose/quoted-message.ts +0 -216
- package/src/components/compose/reopened-draft-writes-nothing.render.test.ts +0 -148
- package/src/components/compose/reply-all-on-resumed-draft.render.test.ts +0 -250
- package/src/components/compose/reply-with-times.ts +0 -22
- package/src/components/compose/send-from-mail-off-account.render.test.ts +0 -173
- package/src/components/compose/send-poll-server-error.render.test.ts +0 -120
- package/src/components/compose/send-watch-outlives-sent.render.test.ts +0 -121
- package/src/components/config-import/ConfigImportWizard.flow.test.ts +0 -326
- package/src/components/config-import/ConfigImportWizard.tsx +0 -721
- package/src/components/config-import/config-import.fixtures.ts +0 -254
- package/src/components/config-import/config-import.stories.tsx +0 -486
- package/src/components/config-import/steps.import-failure.test.ts +0 -91
- package/src/components/config-import/steps.tsx +0 -784
- package/src/components/config-import/steps.viewport.test.ts +0 -216
- package/src/components/layout/AppShellSkeleton.tsx +0 -53
- package/src/components/layout/ComposeFab.tsx +0 -22
- package/src/components/layout/Drawer.focus.test.ts +0 -253
- package/src/components/layout/Drawer.tsx +0 -108
- package/src/components/layout/MailShell.tsx +0 -106
- package/src/components/layout/MailTopBar.tsx +0 -99
- package/src/components/layout/mail-shell.stories.tsx +0 -142
- package/src/components/mail/AuthenticityBanner.tsx +0 -45
- package/src/components/mail/AutoMovedIndicator.tsx +0 -53
- package/src/components/mail/BlockedImagesNotice.render.test.ts +0 -114
- package/src/components/mail/BlockedImagesNotice.tsx +0 -63
- package/src/components/mail/BriefPane.tsx +0 -477
- package/src/components/mail/BulkRunProvider.tsx +0 -344
- package/src/components/mail/ConversationView.tsx +0 -519
- package/src/components/mail/DailyBrief.scope.test.ts +0 -76
- package/src/components/mail/DailyBrief.tsx +0 -1094
- package/src/components/mail/DeleteConfirmDialog.render.test.ts +0 -412
- package/src/components/mail/DeleteConfirmDialog.tsx +0 -143
- package/src/components/mail/DraftsView.tsx +0 -255
- package/src/components/mail/EmptyTrashBar.render.test.ts +0 -133
- package/src/components/mail/EmptyTrashBar.tsx +0 -181
- package/src/components/mail/FlaggedList.tsx +0 -359
- package/src/components/mail/FlaggedPane.tsx +0 -473
- package/src/components/mail/IntelligenceDrawer.tsx +0 -52
- package/src/components/mail/IntelligencePane.render.test.ts +0 -116
- package/src/components/mail/IntelligencePane.test.ts +0 -16
- package/src/components/mail/IntelligencePane.tsx +0 -391
- package/src/components/mail/LabelApplyTrigger.tsx +0 -67
- package/src/components/mail/MailListHeader.chrome-stability.render.test.ts +0 -323
- package/src/components/mail/MailListHeader.tsx +0 -613
- package/src/components/mail/MailNav.tsx +0 -70
- package/src/components/mail/MailSidebarAdapter.tsx +0 -319
- package/src/components/mail/MailViewChrome.tsx +0 -124
- package/src/components/mail/MailboxPane.tsx +0 -1285
- package/src/components/mail/MessageActionMenu.tsx +0 -296
- package/src/components/mail/MessageAttachments.interaction.test.ts +0 -245
- package/src/components/mail/MessageAttachments.tsx +0 -188
- package/src/components/mail/MessageBody.blocked-sender.test.ts +0 -193
- package/src/components/mail/MessageBody.tsx +0 -226
- package/src/components/mail/MessageBodyErrorBanner.render.test.ts +0 -85
- package/src/components/mail/MessageBodyErrorBanner.test.ts +0 -56
- package/src/components/mail/MessageBodyErrorBanner.tsx +0 -90
- package/src/components/mail/MessageCard.blocked-sender.test.ts +0 -246
- package/src/components/mail/MessageCard.tsx +0 -430
- package/src/components/mail/MessageList.move-guard.test.ts +0 -64
- package/src/components/mail/MessageList.run-reporting.test.ts +0 -87
- package/src/components/mail/MessageList.tsx +0 -1383
- package/src/components/mail/MessageListItem.test.ts +0 -153
- package/src/components/mail/MessageListItem.tsx +0 -106
- package/src/components/mail/MessageRow.render.test.ts +0 -54
- package/src/components/mail/MessageRow.tsx +0 -269
- package/src/components/mail/MessageSettlementAlert.render.test.ts +0 -182
- package/src/components/mail/MessageSettlementAlert.tsx +0 -126
- package/src/components/mail/MessageToolbar.interaction.test.ts +0 -250
- package/src/components/mail/MessageToolbar.render.test.ts +0 -124
- package/src/components/mail/MessageToolbar.tsx +0 -215
- package/src/components/mail/MobileMessageBar.tsx +0 -140
- package/src/components/mail/MoveToTrigger.render.test.ts +0 -310
- package/src/components/mail/MoveToTrigger.tsx +0 -298
- package/src/components/mail/NavMenuButton.tsx +0 -25
- package/src/components/mail/OutboxPane.tsx +0 -584
- package/src/components/mail/PullToRefresh.tsx +0 -24
- package/src/components/mail/RawMessageView.tsx +0 -84
- package/src/components/mail/RoleAppointmentPromptProvider.render.test.ts +0 -294
- package/src/components/mail/RoleAppointmentPromptProvider.tsx +0 -251
- package/src/components/mail/SelectionWizardHost.search-entry.test.ts +0 -81
- package/src/components/mail/SelectionWizardHost.tsx +0 -1078
- package/src/components/mail/SpamRescue.tsx +0 -126
- package/src/components/mail/SwipeableMessageRow.modifier-select.test.ts +0 -243
- package/src/components/mail/SwipeableMessageRow.render.test.ts +0 -110
- package/src/components/mail/SwipeableMessageRow.tsx +0 -160
- package/src/components/mail/ThreadListInteraction.test.ts +0 -546
- package/src/components/mail/ThreadListInteraction.tsx +0 -538
- package/src/components/mail/authenticity-warning.stories.tsx +0 -116
- package/src/components/mail/blocked-images-notice.stories.tsx +0 -90
- package/src/components/mail/brief-server-sections.render.test.ts +0 -656
- package/src/components/mail/bulk-run-state.test.ts +0 -101
- package/src/components/mail/bulk-run-state.ts +0 -99
- package/src/components/mail/conversation-reply-identity.render.test.ts +0 -307
- package/src/components/mail/conversation-reply-reach.render.test.ts +0 -414
- package/src/components/mail/daily-brief.stories.tsx +0 -264
- package/src/components/mail/delete-open-message-keeps-the-list.render.test.ts +0 -154
- package/src/components/mail/detail-surface.stories.tsx +0 -171
- package/src/components/mail/drafts.stories.tsx +0 -61
- package/src/components/mail/empty-trash-bar.stories.tsx +0 -121
- package/src/components/mail/enter-cursor-late-open.render.test.ts +0 -197
- package/src/components/mail/filtered-empty-state.render.test.ts +0 -240
- package/src/components/mail/flagged-search-reach.render.test.ts +0 -272
- package/src/components/mail/flagged.stories.tsx +0 -159
- package/src/components/mail/intelligence-auto-open-pref.render.test.ts +0 -412
- package/src/components/mail/intelligence-drawer.stories.tsx +0 -353
- package/src/components/mail/intelligence-shortcut-surface.render.test.ts +0 -373
- package/src/components/mail/intelligence-story-calendar.ts +0 -19
- package/src/components/mail/intelligence-surface-reach.render.test.ts +0 -220
- package/src/components/mail/mail-pickers.stories.tsx +0 -82
- package/src/components/mail/message-body-error-banner-content.ts +0 -87
- package/src/components/mail/message-gone.stories.tsx +0 -44
- package/src/components/mail/offer-times-reply.render.test.ts +0 -557
- package/src/components/mail/organize-run-state.test.ts +0 -115
- package/src/components/mail/organize-run-state.ts +0 -44
- package/src/components/mail/outbox.stories.tsx +0 -59
- package/src/components/mail/reclassify-remove-override.render.test.ts +0 -138
- package/src/components/mail/reply-verbs-reach.render.test.ts +0 -235
- package/src/components/mail/search.stories.tsx +0 -280
- package/src/components/mail/selection-wizard-run-controls.test.ts +0 -231
- package/src/components/mail/selection-wizard-run-controls.ts +0 -101
- package/src/components/mail/selection-wizard.stories.tsx +0 -160
- package/src/components/mail/spam-offer-server-count.render.test.ts +0 -349
- package/src/components/mail/two-window-listeners-one-key.render.test.ts +0 -593
- package/src/components/mail/useModifierSelect.render.test.ts +0 -223
- package/src/components/mail/useModifierSelect.ts +0 -100
- package/src/components/onboarding/OnboardingWizard.flow.test.ts +0 -709
- package/src/components/onboarding/OnboardingWizard.tsx +0 -1599
- package/src/components/onboarding/credential-steps.tsx +0 -441
- package/src/components/onboarding/onboarding-servers.stories.tsx +0 -49
- package/src/components/onboarding/onboarding.stories.tsx +0 -550
- package/src/components/overlay-escape.render.test.ts +0 -155
- package/src/components/self-update/SelfUpdateOverlay.tsx +0 -45
- package/src/components/settings/AccountFormPanel.render.test.ts +0 -269
- package/src/components/settings/AccountFormPanel.test.ts +0 -37
- package/src/components/settings/AccountFormPanel.tsx +0 -949
- package/src/components/settings/AccountServices.render.test.ts +0 -257
- package/src/components/settings/AccountServices.tsx +0 -181
- package/src/components/settings/AccountServicesCard.stories.tsx +0 -71
- package/src/components/settings/AccountServicesCard.tsx +0 -76
- package/src/components/settings/AdvancedNavIcon.tsx +0 -23
- package/src/components/settings/CalendarCreateCard.stories.tsx +0 -33
- package/src/components/settings/CalendarCreateCard.tsx +0 -149
- package/src/components/settings/CalendarDetailsForm.stories.tsx +0 -57
- package/src/components/settings/CalendarDetailsForm.tsx +0 -136
- package/src/components/settings/CalendarFeedCard.render.test.ts +0 -154
- package/src/components/settings/CalendarFeedCard.stories.tsx +0 -152
- package/src/components/settings/CalendarFeedCard.tsx +0 -289
- package/src/components/settings/CalendarFeedPanel.tsx +0 -38
- package/src/components/settings/CalendarSettingsPanel.tsx +0 -60
- package/src/components/settings/CalendarSubscribeCard.stories.tsx +0 -89
- package/src/components/settings/CalendarSubscribeCard.tsx +0 -115
- package/src/components/settings/CalendarSubscriptionStatus.stories.tsx +0 -77
- package/src/components/settings/CalendarSubscriptionStatus.tsx +0 -87
- package/src/components/settings/ConfigExportCard.tsx +0 -114
- package/src/components/settings/ConfigTransferPanel.tsx +0 -72
- package/src/components/settings/DangerZone.tsx +0 -30
- package/src/components/settings/DeleteAccountDialog.render.test.ts +0 -47
- package/src/components/settings/DeleteAccountDialog.tsx +0 -224
- package/src/components/settings/DeleteFolderDialog.render.test.ts +0 -836
- package/src/components/settings/DeleteFolderDialog.tsx +0 -406
- package/src/components/settings/FilterActionError.render.test.ts +0 -46
- package/src/components/settings/FilterActionError.stories.tsx +0 -50
- package/src/components/settings/FilterActionError.tsx +0 -40
- package/src/components/settings/FilterEditor.render.test.ts +0 -307
- package/src/components/settings/FilterEditor.tsx +0 -364
- package/src/components/settings/FilterEditorSurface.tsx +0 -65
- package/src/components/settings/FiltersList.render.test.ts +0 -202
- package/src/components/settings/FiltersList.stories.tsx +0 -113
- package/src/components/settings/FiltersList.tsx +0 -191
- package/src/components/settings/LabelsList.stories.tsx +0 -134
- package/src/components/settings/LabelsList.tsx +0 -112
- package/src/components/settings/SelfUpdatePanel.tsx +0 -47
- package/src/components/settings/TimeZoneSelect.tsx +0 -43
- package/src/components/settings/TlsRootCaDownload.render.test.ts +0 -37
- package/src/components/settings/TlsRootCaDownload.tsx +0 -33
- package/src/components/settings/WarningsNavIcon.tsx +0 -12
- package/src/components/settings/WarningsPanel.dom.test.ts +0 -201
- package/src/components/settings/WarningsPanel.render.test.ts +0 -56
- package/src/components/settings/WarningsPanel.tsx +0 -244
- package/src/components/settings/account-form-helpers.test.ts +0 -172
- package/src/components/settings/account-form-helpers.ts +0 -105
- package/src/components/settings/accounts.stories.tsx +0 -386
- package/src/components/settings/advanced.stories.tsx +0 -40
- package/src/components/settings/appearance.stories.tsx +0 -33
- package/src/components/settings/calendar-collection-cards.render.test.ts +0 -149
- package/src/components/settings/calendar-feed-flow.render.test.ts +0 -449
- package/src/components/settings/folders.stories.tsx +0 -89
- package/src/components/settings/label-delete-confirm.stories.tsx +0 -83
- package/src/components/settings/self-update.stories.tsx +0 -288
- package/src/components/settings/senders.stories.tsx +0 -155
- package/src/components/settings/settings-filter.stories.tsx +0 -145
- package/src/components/settings/warnings.stories.tsx +0 -290
- package/src/components/ui/AppVersion.stories.tsx +0 -31
- package/src/components/ui/AppVersion.tsx +0 -57
- package/src/components/ui/BugReportButton.stories.tsx +0 -19
- package/src/components/ui/BugReportButton.tsx +0 -20
- package/src/components/ui/ErrorBannerProvider.render.test.ts +0 -85
- package/src/components/ui/ErrorBannerProvider.tsx +0 -134
- package/src/components/ui/FatalErrorOverlay.render.test.ts +0 -66
- package/src/components/ui/FatalErrorOverlay.stories.tsx +0 -55
- package/src/components/ui/FatalErrorOverlay.tsx +0 -158
- package/src/components/ui/banner-way-out.test.ts +0 -71
- package/src/components/ui/error-banners.test.ts +0 -186
- package/src/components/ui/error-banners.ts +0 -121
- package/src/components/ui/folder-role-refusal.test.ts +0 -124
- package/src/components/ui/folder-role-refusal.ts +0 -69
- package/src/components/ui/placement-refusal.test.ts +0 -98
- package/src/components/ui/placement-refusal.ts +0 -71
- package/src/hooks/bulk-chunking.render.test.ts +0 -157
- package/src/hooks/calendar/agenda-window.test.ts +0 -392
- package/src/hooks/calendar/agenda-window.ts +0 -210
- package/src/hooks/calendar/calendar-collections.render.test.ts +0 -281
- package/src/hooks/calendar/calendar-reads.render.test.ts +0 -265
- package/src/hooks/calendar/calendar-writes.render.test.ts +0 -326
- package/src/hooks/calendar/draft.test.ts +0 -537
- package/src/hooks/calendar/draft.ts +0 -204
- package/src/hooks/calendar/index.ts +0 -122
- package/src/hooks/calendar/instance.test.ts +0 -206
- package/src/hooks/calendar/instance.ts +0 -224
- package/src/hooks/calendar/recurrence-rule.test.ts +0 -134
- package/src/hooks/calendar/recurrence-rule.ts +0 -177
- package/src/hooks/calendar/resource.test.ts +0 -141
- package/src/hooks/calendar/resource.ts +0 -104
- package/src/hooks/calendar/selection.ts +0 -110
- package/src/hooks/calendar/suggestion-draft.ts +0 -77
- package/src/hooks/calendar/useCalendarCollectionWrites.ts +0 -131
- package/src/hooks/calendar/useCalendarEvent.ts +0 -46
- package/src/hooks/calendar/useCalendarEvents.ts +0 -195
- package/src/hooks/calendar/useCalendarFeed.ts +0 -163
- package/src/hooks/calendar/useCalendarFreeBusy.ts +0 -80
- package/src/hooks/calendar/useCalendarJump.ts +0 -117
- package/src/hooks/calendar/useCalendarSubscriptions.ts +0 -103
- package/src/hooks/calendar/useCalendarSuggestions.ts +0 -279
- package/src/hooks/calendar/useCalendarWrites.ts +0 -177
- package/src/hooks/calendar/useCalendars.ts +0 -59
- package/src/hooks/calendar/useDraftClashes.ts +0 -93
- package/src/hooks/calendar/window.test.ts +0 -189
- package/src/hooks/calendar/window.ts +0 -188
- package/src/hooks/cross-account-bulk.render.test.ts +0 -164
- package/src/hooks/escalated-run-lifetime.render.test.ts +0 -349
- package/src/hooks/escalated-run-refusal.render.test.ts +0 -373
- package/src/hooks/escalated-run-survives-navigation.render.test.ts +0 -524
- package/src/hooks/intelligence-calendar.render.test.ts +0 -497
- package/src/hooks/intelligence-drawer.render.test.ts +0 -99
- package/src/hooks/mutation-optimism.test.ts +0 -278
- package/src/hooks/queries/keys.ts +0 -9
- package/src/hooks/refusal-escalation.render.test.ts +0 -243
- package/src/hooks/signed-out-poll-is-not-fatal.render.test.ts +0 -126
- package/src/hooks/stale-account-sync-visibility.test.ts +0 -166
- package/src/hooks/update-restart-escalation.render.test.ts +0 -340
- package/src/hooks/use-system-update.test.ts +0 -686
- package/src/hooks/use-system-update.ts +0 -341
- package/src/hooks/useApplyLabel.ts +0 -71
- package/src/hooks/useArchiveMailbox.ts +0 -162
- package/src/hooks/useAutoMovedBadge.ts +0 -145
- package/src/hooks/useBriefSections.ts +0 -320
- package/src/hooks/useCalendarData.ts +0 -94
- package/src/hooks/useClauseSuggestions.ts +0 -57
- package/src/hooks/useComposeAttachments.ts +0 -108
- package/src/hooks/useComposeLanguages.ts +0 -69
- package/src/hooks/useCreateMailbox.render.test.ts +0 -233
- package/src/hooks/useCreateMailbox.ts +0 -153
- package/src/hooks/useCurrentMailboxName.ts +0 -128
- package/src/hooks/useDebouncedValue.ts +0 -12
- package/src/hooks/useDeleteFolder.ts +0 -380
- package/src/hooks/useDeleteMessages.test.ts +0 -62
- package/src/hooks/useDeleteMessages.ts +0 -260
- package/src/hooks/useDeleteOutcome.ts +0 -70
- package/src/hooks/useEmptyTrash.render.test.ts +0 -194
- package/src/hooks/useEmptyTrash.ts +0 -191
- package/src/hooks/useEscalatedActions.test.ts +0 -36
- package/src/hooks/useEscalatedActions.ts +0 -334
- package/src/hooks/useFilters.test.ts +0 -106
- package/src/hooks/useFilters.ts +0 -188
- package/src/hooks/useFolderLabelTranslator.ts +0 -19
- package/src/hooks/useFollowFocusOpen.render.test.ts +0 -145
- package/src/hooks/useFollowFocusOpen.ts +0 -81
- package/src/hooks/useInitialSyncProgress.render.test.ts +0 -314
- package/src/hooks/useInitialSyncProgress.ts +0 -134
- package/src/hooks/useInlineImages.ts +0 -93
- package/src/hooks/useIntelligenceCalendar.ts +0 -394
- package/src/hooks/useIntelligenceData.test.ts +0 -403
- package/src/hooks/useIntelligenceData.ts +0 -325
- package/src/hooks/useIntelligenceDrawer.ts +0 -54
- package/src/hooks/useIntelligenceSurface.ts +0 -103
- package/src/hooks/useIsDark.ts +0 -27
- package/src/hooks/useKeyboardNavigation.ts +0 -130
- package/src/hooks/useLabels.ts +0 -124
- package/src/hooks/useLayoutTier.test.ts +0 -96
- package/src/hooks/useLayoutTier.ts +0 -60
- package/src/hooks/useMailboxAccount.ts +0 -67
- package/src/hooks/useMailboxNameIndex.ts +0 -32
- package/src/hooks/useMarkAsRead.test.ts +0 -307
- package/src/hooks/useMarkAsRead.ts +0 -333
- package/src/hooks/useMatchSample.ts +0 -104
- package/src/hooks/useMediaQuery.ts +0 -13
- package/src/hooks/useMessageBodyContent.test.ts +0 -370
- package/src/hooks/useMessageBodyContent.ts +0 -388
- package/src/hooks/useMoveMessages.ts +0 -193
- package/src/hooks/useOrganizeJob.render.test.ts +0 -190
- package/src/hooks/useOrganizeJob.ts +0 -146
- package/src/hooks/useRailPanels.ts +0 -128
- package/src/hooks/useRedirectEnded.ts +0 -116
- package/src/hooks/useRefreshControl.test.ts +0 -287
- package/src/hooks/useRefreshControl.ts +0 -347
- package/src/hooks/useReportSpam.escalation.test.ts +0 -135
- package/src/hooks/useReportSpam.render.test.ts +0 -113
- package/src/hooks/useReportSpam.test.ts +0 -115
- package/src/hooks/useReportSpam.ts +0 -244
- package/src/hooks/useRescueCandidates.test.ts +0 -194
- package/src/hooks/useRescueCandidates.ts +0 -48
- package/src/hooks/useResultCount.render.test.ts +0 -161
- package/src/hooks/useResultCount.ts +0 -68
- package/src/hooks/useResultFolderIndex.ts +0 -88
- package/src/hooks/useReturnFromRedirect.ts +0 -41
- package/src/hooks/useRulePreview.ts +0 -122
- package/src/hooks/useSaveDraft.ts +0 -244
- package/src/hooks/useSearchScope.ts +0 -46
- package/src/hooks/useSearchSuggestions.ts +0 -126
- package/src/hooks/useSearchTokenContext.ts +0 -28
- package/src/hooks/useSelectedSubjects.ts +0 -79
- package/src/hooks/useSignature.ts +0 -69
- package/src/hooks/useSpamMatchCounts.ts +0 -102
- package/src/hooks/useStaleAccountSync.test.ts +0 -300
- package/src/hooks/useStaleAccountSync.ts +0 -325
- package/src/hooks/useStarredThreads.test.ts +0 -209
- package/src/hooks/useStarredThreads.ts +0 -146
- package/src/hooks/useThreadActions.star.test.ts +0 -200
- package/src/hooks/useThreadActions.ts +0 -127
- package/src/hooks/useThreadMessageIds.ts +0 -33
- package/src/hooks/useThreadRow.ts +0 -49
- package/src/hooks/useToggleStar.test.ts +0 -131
- package/src/hooks/useToggleStar.ts +0 -164
- package/src/hooks/useToggleTrusted.test.ts +0 -106
- package/src/hooks/useToggleTrusted.ts +0 -157
- package/src/hooks/useTriageLayer.ts +0 -167
- package/src/hooks/useTriggerSync.test.ts +0 -18
- package/src/hooks/useTriggerSync.ts +0 -64
- package/src/hooks/useUpdateAddressFlags.ts +0 -152
- package/src/hooks/useUpdateFilter.ts +0 -56
- package/src/hooks/useVisualViewport.render.test.ts +0 -63
- package/src/hooks/useVisualViewport.ts +0 -51
- package/src/hooks/useWarningsAttention.ts +0 -37
- package/src/index.css +0 -28
- package/src/index.css.test.ts +0 -97
- package/src/kit-stylesheets.test.ts +0 -64
- package/src/lib/account-order.test.ts +0 -74
- package/src/lib/account-order.ts +0 -13
- package/src/lib/adjacent-message.test.ts +0 -34
- package/src/lib/adjacent-message.ts +0 -20
- package/src/lib/api.ts +0 -121
- package/src/lib/app-info.ts +0 -32
- package/src/lib/attachment-download.test.ts +0 -207
- package/src/lib/attachment-download.ts +0 -195
- package/src/lib/auto-moved.test.ts +0 -234
- package/src/lib/auto-moved.ts +0 -103
- package/src/lib/autodiscovery.test.ts +0 -47
- package/src/lib/autodiscovery.ts +0 -354
- package/src/lib/brief-chip-query.test.ts +0 -85
- package/src/lib/brief-criteria.test.ts +0 -168
- package/src/lib/brief-criteria.ts +0 -129
- package/src/lib/brief.test.ts +0 -493
- package/src/lib/brief.ts +0 -205
- package/src/lib/bug-report.test.ts +0 -487
- package/src/lib/bug-report.ts +0 -320
- package/src/lib/bulk-action-copy.test.ts +0 -123
- package/src/lib/bulk-action-copy.ts +0 -182
- package/src/lib/bulk-actions.test.ts +0 -612
- package/src/lib/bulk-actions.ts +0 -400
- package/src/lib/calendar-collection-copy.test.ts +0 -23
- package/src/lib/calendar-collection-copy.ts +0 -21
- package/src/lib/calendar-density.ts +0 -46
- package/src/lib/calendar-feed-copy.ts +0 -29
- package/src/lib/calendar-feed-url.ts +0 -14
- package/src/lib/calendar-format.ts +0 -74
- package/src/lib/calendar-report.ts +0 -21
- package/src/lib/calendar-route.test.ts +0 -224
- package/src/lib/calendar-route.ts +0 -197
- package/src/lib/calendar-subscription.ts +0 -11
- package/src/lib/calendar-suggestion.test.ts +0 -189
- package/src/lib/calendar-suggestion.ts +0 -263
- package/src/lib/calendar-suggestion.west.test.ts +0 -61
- package/src/lib/client.test.ts +0 -114
- package/src/lib/client.ts +0 -33
- package/src/lib/compose-attachment-controller.test.ts +0 -352
- package/src/lib/compose-attachment-controller.ts +0 -519
- package/src/lib/config-import.test.ts +0 -339
- package/src/lib/config-import.ts +0 -512
- package/src/lib/console-errors.test.ts +0 -64
- package/src/lib/console-errors.ts +0 -92
- package/src/lib/conversation-target.ts +0 -17
- package/src/lib/dedupe-thread-messages.test.ts +0 -79
- package/src/lib/dedupe-thread-messages.ts +0 -26
- package/src/lib/delete-folder.test.ts +0 -304
- package/src/lib/delete-folder.ts +0 -188
- package/src/lib/desktop-breakpoint.test.ts +0 -76
- package/src/lib/display-category.test.ts +0 -32
- package/src/lib/display-category.ts +0 -24
- package/src/lib/drafts.test.ts +0 -218
- package/src/lib/drafts.ts +0 -122
- package/src/lib/error-classifier.test.ts +0 -434
- package/src/lib/error-classifier.ts +0 -260
- package/src/lib/escalation-label.test.ts +0 -49
- package/src/lib/escalation-label.ts +0 -32
- package/src/lib/fatal-error.test.ts +0 -78
- package/src/lib/fatal-error.ts +0 -165
- package/src/lib/filter-report.ts +0 -19
- package/src/lib/flagged-criteria.test.ts +0 -114
- package/src/lib/flagged-criteria.ts +0 -62
- package/src/lib/folder-failure.test.ts +0 -29
- package/src/lib/folder-failure.ts +0 -10
- package/src/lib/folder-roles.test.ts +0 -152
- package/src/lib/folder-roles.ts +0 -110
- package/src/lib/format.test.ts +0 -470
- package/src/lib/format.ts +0 -397
- package/src/lib/fresh-mailbox-count.test.ts +0 -145
- package/src/lib/fresh-mailbox-count.ts +0 -114
- package/src/lib/hot-sync-window.test.ts +0 -59
- package/src/lib/hot-sync-window.ts +0 -48
- package/src/lib/i18n.ts +0 -36
- package/src/lib/inbox-filters.test.ts +0 -134
- package/src/lib/inbox-filters.ts +0 -154
- package/src/lib/intelligence-pref.test.ts +0 -201
- package/src/lib/intelligence-pref.ts +0 -71
- package/src/lib/json.ts +0 -11
- package/src/lib/junk-destination.test.ts +0 -40
- package/src/lib/junk-destination.ts +0 -37
- package/src/lib/list-focus.test.ts +0 -25
- package/src/lib/list-focus.ts +0 -24
- package/src/lib/list-header-chrome.ts +0 -55
- package/src/lib/list-narrowing.test.ts +0 -88
- package/src/lib/list-narrowing.ts +0 -172
- package/src/lib/list-verb-request.test.ts +0 -124
- package/src/lib/list-verb-request.ts +0 -62
- package/src/lib/mail-context.ts +0 -91
- package/src/lib/mail-freshness.test.ts +0 -165
- package/src/lib/mail-freshness.tsx +0 -244
- package/src/lib/mail-route.test.ts +0 -261
- package/src/lib/mail-route.ts +0 -140
- package/src/lib/mail-search.ts +0 -69
- package/src/lib/mailbox-sync-wait.test.ts +0 -186
- package/src/lib/mailbox-sync-wait.ts +0 -102
- package/src/lib/message-attachments.test.ts +0 -163
- package/src/lib/message-attachments.ts +0 -70
- package/src/lib/message-body-source.test.ts +0 -115
- package/src/lib/message-body-source.ts +0 -51
- package/src/lib/move-options.test.ts +0 -154
- package/src/lib/move-options.ts +0 -60
- package/src/lib/move-targets.test.ts +0 -235
- package/src/lib/move-targets.ts +0 -70
- package/src/lib/network-error.ts +0 -74
- package/src/lib/new-folder.test.ts +0 -127
- package/src/lib/new-folder.ts +0 -59
- package/src/lib/onboarding-completion.test.ts +0 -48
- package/src/lib/onboarding-completion.ts +0 -23
- package/src/lib/organize/clause-suggestions.test.ts +0 -114
- package/src/lib/organize/clause-suggestions.ts +0 -89
- package/src/lib/organize/filter-edit-model.test.ts +0 -271
- package/src/lib/organize/filter-edit-model.ts +0 -129
- package/src/lib/organize/filter-run.test.ts +0 -79
- package/src/lib/organize/filter-run.ts +0 -48
- package/src/lib/organize/filter-status.test.ts +0 -120
- package/src/lib/organize/filter-status.ts +0 -115
- package/src/lib/organize/label-delete-copy.test.ts +0 -21
- package/src/lib/organize/label-delete-copy.ts +0 -22
- package/src/lib/organize/organize-model.test.ts +0 -209
- package/src/lib/organize/organize-model.ts +0 -198
- package/src/lib/organize/organize-poll.test.ts +0 -37
- package/src/lib/organize/organize-poll.ts +0 -28
- package/src/lib/organize/rule-model.test.ts +0 -211
- package/src/lib/organize/rule-model.ts +0 -140
- package/src/lib/organize/search-to-rule.test.ts +0 -142
- package/src/lib/organize/search-to-rule.ts +0 -105
- package/src/lib/outbox-search.test.ts +0 -75
- package/src/lib/outbox-search.ts +0 -58
- package/src/lib/outbox-status.test.ts +0 -79
- package/src/lib/outbox-status.ts +0 -79
- package/src/lib/provider-presets.test.ts +0 -51
- package/src/lib/provider-presets.ts +0 -94
- package/src/lib/quarantine-entries.test.ts +0 -77
- package/src/lib/quarantine-entries.ts +0 -46
- package/src/lib/query-error-handler.test.ts +0 -87
- package/src/lib/query-error-handler.ts +0 -41
- package/src/lib/query-escalation.integration.test.ts +0 -139
- package/src/lib/recent-searches.test.ts +0 -53
- package/src/lib/recent-searches.ts +0 -34
- package/src/lib/recipient-suggestions.test.ts +0 -109
- package/src/lib/recipient-suggestions.ts +0 -15
- package/src/lib/request-breadcrumbs.test.ts +0 -162
- package/src/lib/request-breadcrumbs.ts +0 -138
- package/src/lib/rescue-candidates.test.ts +0 -94
- package/src/lib/rescue-candidates.ts +0 -35
- package/src/lib/rescue-telemetry.ts +0 -55
- package/src/lib/result-count.test.ts +0 -97
- package/src/lib/result-count.ts +0 -57
- package/src/lib/result-folder.test.ts +0 -133
- package/src/lib/result-folder.ts +0 -111
- package/src/lib/route-breadcrumbs.test.ts +0 -41
- package/src/lib/route-breadcrumbs.ts +0 -45
- package/src/lib/route-search-query.test.ts +0 -70
- package/src/lib/row-settlement.ts +0 -28
- package/src/lib/rum-adapter.test.ts +0 -195
- package/src/lib/rum-adapter.ts +0 -107
- package/src/lib/search-conversion.ts +0 -23
- package/src/lib/search-params.test.ts +0 -77
- package/src/lib/search-params.ts +0 -59
- package/src/lib/search-query.test.ts +0 -24
- package/src/lib/search-query.ts +0 -11
- package/src/lib/search-result.test.ts +0 -20
- package/src/lib/search-result.ts +0 -55
- package/src/lib/search-scope.test.ts +0 -174
- package/src/lib/search-scope.ts +0 -140
- package/src/lib/search-suggestions.test.ts +0 -249
- package/src/lib/search-suggestions.ts +0 -296
- package/src/lib/search-surface.test.ts +0 -74
- package/src/lib/search-surface.ts +0 -34
- package/src/lib/search-token-index.test.ts +0 -232
- package/src/lib/search-token-index.ts +0 -120
- package/src/lib/search-tokens.test.ts +0 -454
- package/src/lib/search-tokens.ts +0 -319
- package/src/lib/search-view.test.ts +0 -320
- package/src/lib/search-view.ts +0 -97
- package/src/lib/selection-account-scope.ts +0 -40
- package/src/lib/selection-mode.test.ts +0 -34
- package/src/lib/selection-mode.ts +0 -24
- package/src/lib/self-update-state.test.ts +0 -552
- package/src/lib/self-update-state.ts +0 -658
- package/src/lib/sender-address.test.ts +0 -60
- package/src/lib/sender-address.ts +0 -36
- package/src/lib/session-storage.ts +0 -7
- package/src/lib/spam-offer.test.ts +0 -192
- package/src/lib/spam-offer.ts +0 -163
- package/src/lib/stale-build.test.ts +0 -52
- package/src/lib/stale-build.ts +0 -36
- package/src/lib/starred-rows.test.ts +0 -67
- package/src/lib/starred-rows.ts +0 -32
- package/src/lib/sync-warning-entries.ts +0 -33
- package/src/lib/telemetry-context.tsx +0 -9
- package/src/lib/telemetry.ts +0 -17
- package/src/lib/theme-preference.ts +0 -46
- package/src/lib/theme.ts +0 -33
- package/src/lib/thread-cache.test.ts +0 -65
- package/src/lib/thread-cache.ts +0 -76
- package/src/lib/thread-list-cache.test.ts +0 -147
- package/src/lib/thread-list-cache.ts +0 -119
- package/src/lib/thread-search-tokens.test.ts +0 -196
- package/src/lib/thread-search-tokens.ts +0 -177
- package/src/lib/wizard-selection.test.ts +0 -50
- package/src/lib/wizard-selection.ts +0 -43
- package/src/main.tsx +0 -10
- package/src/mocks/story-frame/AppStory.tsx +0 -62
- package/src/mocks/story-frame/calendar-window.ts +0 -21
- package/src/mocks/story-frame/compose-world.ts +0 -191
- package/src/mocks/story-frame/mail-handlers.ts +0 -556
- package/src/mocks/story-frame/mail-world.ts +0 -447
- package/src/mocks/story-frame/onboarding-handlers.ts +0 -97
- package/src/mocks/story-frame/session.tsx +0 -19
- package/src/mocks/story-frame/touch.ts +0 -22
- package/src/routeTree.gen.ts +0 -1279
- package/src/router.tsx +0 -59
- package/src/routes/__root.tsx +0 -92
- package/src/routes/calendar/$view.$date/$calendarObjectId/$recurrenceId.tsx +0 -26
- package/src/routes/calendar/$view.$date/$calendarObjectId/index.tsx +0 -18
- package/src/routes/calendar/$view.$date/$calendarObjectId.tsx +0 -15
- package/src/routes/calendar/$view.$date/index.tsx +0 -25
- package/src/routes/calendar/$view.$date/new.tsx +0 -20
- package/src/routes/calendar/$view.$date/suggestion.$suggestionId.tsx +0 -22
- package/src/routes/calendar/$view.$date.tsx +0 -170
- package/src/routes/calendar/-calendar-tree.test.ts +0 -285
- package/src/routes/calendar/index.tsx +0 -27
- package/src/routes/calendar.tsx +0 -99
- package/src/routes/import.tsx +0 -51
- package/src/routes/index.tsx +0 -7
- package/src/routes/mail/$mailboxId/$threadId/$messageId/$mode.{-$outboxMessageId}.tsx +0 -15
- package/src/routes/mail/$mailboxId/$threadId/$messageId.tsx +0 -23
- package/src/routes/mail/$mailboxId/$threadId/index.tsx +0 -14
- package/src/routes/mail/$mailboxId/$threadId.tsx +0 -12
- package/src/routes/mail/$mailboxId/compose.{-$outboxMessageId}.tsx +0 -14
- package/src/routes/mail/$mailboxId/index.tsx +0 -10
- package/src/routes/mail/$mailboxId.tsx +0 -38
- package/src/routes/mail/brief/$threadId/$messageId/$mode.{-$outboxMessageId}.tsx +0 -27
- package/src/routes/mail/brief/$threadId/$messageId.tsx +0 -23
- package/src/routes/mail/brief/$threadId/index.tsx +0 -14
- package/src/routes/mail/brief/$threadId.tsx +0 -16
- package/src/routes/mail/brief/compose.{-$outboxMessageId}.tsx +0 -22
- package/src/routes/mail/brief/index.tsx +0 -14
- package/src/routes/mail/brief.tsx +0 -52
- package/src/routes/mail/flagged/$threadId/$messageId/$mode.{-$outboxMessageId}.tsx +0 -15
- package/src/routes/mail/flagged/$threadId/$messageId.tsx +0 -23
- package/src/routes/mail/flagged/$threadId/index.tsx +0 -14
- package/src/routes/mail/flagged/$threadId.tsx +0 -16
- package/src/routes/mail/flagged/compose.{-$outboxMessageId}.tsx +0 -13
- package/src/routes/mail/flagged/index.tsx +0 -10
- package/src/routes/mail/flagged.tsx +0 -51
- package/src/routes/mail/index.tsx +0 -14
- package/src/routes/mail/outbox/compose.{-$outboxMessageId}.tsx +0 -17
- package/src/routes/mail/outbox/draft/$outboxMessageId.tsx +0 -19
- package/src/routes/mail/outbox/index.tsx +0 -10
- package/src/routes/mail/outbox.tsx +0 -32
- package/src/routes/mail.tsx +0 -262
- package/src/routes/onboarding.tsx +0 -47
- package/src/routes/settings/-accounts.test.ts +0 -340
- package/src/routes/settings/-filters.test.ts +0 -209
- package/src/routes/settings/-senders-remove-flag.render.test.ts +0 -105
- package/src/routes/settings/-shared/help-copy.tsx +0 -91
- package/src/routes/settings/accounts.tsx +0 -692
- package/src/routes/settings/advanced.tsx +0 -57
- package/src/routes/settings/appearance.tsx +0 -118
- package/src/routes/settings/calendars.tsx +0 -134
- package/src/routes/settings/filters.tsx +0 -259
- package/src/routes/settings/folders.tsx +0 -330
- package/src/routes/settings/index.tsx +0 -5
- package/src/routes/settings/labels.tsx +0 -242
- package/src/routes/settings/senders.tsx +0 -444
- package/src/routes/settings/suggested-vips.tsx +0 -10
- package/src/routes/settings/warnings.tsx +0 -36
- package/src/routes/settings.tsx +0 -87
- package/src/routing/browsed-list.ts +0 -76
- package/src/routing/calendar-fragment.test.ts +0 -66
- package/src/routing/calendar.ts +0 -250
- package/src/routing/compose-press-opens.render.test.ts +0 -179
- package/src/routing/compose.ts +0 -181
- package/src/routing/fragment.render.test.ts +0 -98
- package/src/routing/fragment.test.ts +0 -113
- package/src/routing/fragment.ts +0 -145
- package/src/routing/index.ts +0 -93
- package/src/routing/nav-link.tsx +0 -64
- package/src/routing/nav-selection.ts +0 -26
- package/src/routing/open-thread.ts +0 -157
- package/src/routing/outbox-draft.ts +0 -44
- package/src/routing/reply.ts +0 -335
- package/src/routing/search-field.render.test.ts +0 -216
- package/src/routing/search-field.ts +0 -85
- package/src/routing/search-mirror-convergence.render.test.ts +0 -198
- package/src/routing/search-mirror-detail.render.test.ts +0 -226
- package/src/routing/search-mirror.ts +0 -130
- package/src/routing/search-navigation.ts +0 -43
- package/src/routing/sections.ts +0 -55
- package/src/routing/wizard-history.test.ts +0 -163
- package/src/routing/wizard-history.ts +0 -219
- package/src/runtime-config.test.ts +0 -43
- package/src/runtime-config.ts +0 -104
- package/src/shell/index.tsx +0 -101
- package/src/test-support/bulk-run.ts +0 -13
- package/src/test-support/dom.ts +0 -232
- package/src/test-support/fixtures.ts +0 -109
- package/src/test-support/http.ts +0 -82
- package/src/test-support/intelligence-surface.ts +0 -42
- package/src/test-support/list-search-binding.ts +0 -34
- package/src/test-support/test-bundle-app.ts +0 -102
- package/src/test-support/thread-router.ts +0 -54
- package/vite.base.ts +0 -61
- /package/{src → dist/src}/auth/auth.css +0 -0
- /package/{src → dist/src}/auth/cognito/cognito.css +0 -0
- /package/{src → dist/src}/vite-env.d.ts +0 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { configOperationsGetConfigOptions } from "@remit/api-http-client/@tanstack/react-query.gen.ts";
|
|
2
|
+
import { useQuery } from "@tanstack/react-query";
|
|
3
|
+
import { useMemo } from "react";
|
|
4
|
+
/**
|
|
5
|
+
* RFC 032 exclusive-folder-appointment (#976): every "which mailbox plays
|
|
6
|
+
* role X" question resolves from the account's `folderAppointments` map, not
|
|
7
|
+
* from independently re-detecting SPECIAL-USE flags or hardcoded name lists.
|
|
8
|
+
* The map is server-resolved (persisted user choice, or a proposal for
|
|
9
|
+
* anything unfilled), so a single shared lookup replaces what used to be four
|
|
10
|
+
* near-identical flag-then-name detectors.
|
|
11
|
+
*/
|
|
12
|
+
const useFolderRoleMailbox = (accountId, role) => {
|
|
13
|
+
const { data: config, isLoading } = useQuery({
|
|
14
|
+
...configOperationsGetConfigOptions(),
|
|
15
|
+
staleTime: Infinity,
|
|
16
|
+
enabled: !!accountId,
|
|
17
|
+
});
|
|
18
|
+
const mailboxId = useMemo(() => {
|
|
19
|
+
if (!accountId)
|
|
20
|
+
return undefined;
|
|
21
|
+
const account = config?.accounts.find((a) => a.accountId === accountId);
|
|
22
|
+
return account?.folderAppointments.find((fa) => fa.role === role)
|
|
23
|
+
?.mailboxId;
|
|
24
|
+
}, [config, accountId, role]);
|
|
25
|
+
return { mailboxId, isLoading };
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Returns the account's appointed Archive mailbox id. `undefined` while
|
|
29
|
+
* loading or when no folder is appointed to (or proposed for) the role.
|
|
30
|
+
*/
|
|
31
|
+
export const useArchiveMailbox = (accountId) => {
|
|
32
|
+
const { mailboxId, isLoading } = useFolderRoleMailbox(accountId, "Archive");
|
|
33
|
+
return { archiveMailboxId: mailboxId, isLoading };
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Returns the account's appointed Drafts mailbox id. Used by the mailbox
|
|
37
|
+
* route to decide whether to render the segmented Drafts view (Remit drafts +
|
|
38
|
+
* IMAP Drafts) in place of the flat message list (issue #505).
|
|
39
|
+
*/
|
|
40
|
+
export const useDraftsMailbox = (accountId) => {
|
|
41
|
+
const { mailboxId, isLoading } = useFolderRoleMailbox(accountId, "Drafts");
|
|
42
|
+
return { draftsMailboxId: mailboxId, isLoading };
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Returns the account's Inbox mailbox id — the destination for "Not spam"
|
|
46
|
+
* (issue #594), which moves a message out of Junk back to the inbox.
|
|
47
|
+
*/
|
|
48
|
+
export const useInboxMailbox = (accountId) => {
|
|
49
|
+
const { mailboxId, isLoading } = useFolderRoleMailbox(accountId, "Inbox");
|
|
50
|
+
return { inboxMailboxId: mailboxId, isLoading };
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Returns the account's appointed Junk/Spam mailbox id, used by the triage
|
|
54
|
+
* `!` (mark junk) key (#429). The message-flags API has no `$Junk` keyword
|
|
55
|
+
* field, so "mark junk" is realized as a move to the Junk mailbox.
|
|
56
|
+
*/
|
|
57
|
+
export const useJunkMailbox = (accountId) => {
|
|
58
|
+
const { mailboxId, isLoading } = useFolderRoleMailbox(accountId, "Junk");
|
|
59
|
+
return { junkMailboxId: mailboxId, isLoading };
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Returns the account's appointed Trash mailbox id, which is how the mailbox
|
|
63
|
+
* pane tells it is looking at Trash and may offer to empty it (#847).
|
|
64
|
+
*/
|
|
65
|
+
export const useTrashMailbox = (accountId) => {
|
|
66
|
+
const { mailboxId, isLoading } = useFolderRoleMailbox(accountId, "Trash");
|
|
67
|
+
return { trashMailboxId: mailboxId, isLoading };
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Each account's appointed Trash mailbox, keyed by account. The delete
|
|
71
|
+
* confirmation needs it to tell a move-to-Trash apart from a delete inside
|
|
72
|
+
* Trash, which is an unrecoverable expunge and has to be asked as one (#845),
|
|
73
|
+
* and apart from an account that appoints no Trash at all, where the server
|
|
74
|
+
* refuses the delete outright (#846).
|
|
75
|
+
*
|
|
76
|
+
* A map rather than a set of ids, because the brief and Flagged answer for
|
|
77
|
+
* selections that span accounts (#855): "is this row in Trash" is a question
|
|
78
|
+
* about the row's own account, and "does any Trash exist" has to be answerable
|
|
79
|
+
* as "no" rather than as silence.
|
|
80
|
+
*
|
|
81
|
+
* `hasAppointments` is data presence, never `!isLoading`. React Query v5
|
|
82
|
+
* computes `isLoading` as `isPending && isFetching`, so an offline query is
|
|
83
|
+
* paused and reports neither loading nor error while `data` is still
|
|
84
|
+
* undefined — which read as "no Trash anywhere", and promised a reversible
|
|
85
|
+
* move over an expunge that would replay on reconnect.
|
|
86
|
+
*/
|
|
87
|
+
export const useTrashByAccount = () => {
|
|
88
|
+
const { data: config, isError } = useQuery({
|
|
89
|
+
...configOperationsGetConfigOptions(),
|
|
90
|
+
staleTime: Infinity,
|
|
91
|
+
});
|
|
92
|
+
const trashByAccount = useMemo(() => {
|
|
93
|
+
const byAccount = new Map();
|
|
94
|
+
for (const account of config?.accounts ?? []) {
|
|
95
|
+
const trash = account.folderAppointments.find((appointment) => appointment.role === "Trash");
|
|
96
|
+
byAccount.set(account.accountId, {
|
|
97
|
+
mailboxId: trash?.mailboxId,
|
|
98
|
+
source: trash?.source ?? "None",
|
|
99
|
+
staleFolderPath: trash?.staleAppointmentPath,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
return byAccount;
|
|
103
|
+
}, [config]);
|
|
104
|
+
return { trashByAccount, hasAppointments: config !== undefined, isError };
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Returns an account's full role→mailbox appointment map, for callers that
|
|
108
|
+
* need more than one role at once (e.g. the Move-to picker excluding both
|
|
109
|
+
* Drafts and Sent, and ordering system folders by role). Empty while loading
|
|
110
|
+
* or when `accountId` is undefined.
|
|
111
|
+
*/
|
|
112
|
+
export const useFolderAppointments = (accountId) => {
|
|
113
|
+
const { data: config } = useQuery({
|
|
114
|
+
...configOperationsGetConfigOptions(),
|
|
115
|
+
staleTime: Infinity,
|
|
116
|
+
enabled: !!accountId,
|
|
117
|
+
});
|
|
118
|
+
return useMemo(() => config?.accounts.find((a) => a.accountId === accountId)
|
|
119
|
+
?.folderAppointments ?? [], [config, accountId]);
|
|
120
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { RemitImapAutoMovedInfo, RemitImapMessageSpamReport } from "@remit/api-http-client/types.gen.ts";
|
|
2
|
+
interface UseAutoMovedBadgeOptions {
|
|
3
|
+
accountId: string | undefined;
|
|
4
|
+
messageId: string;
|
|
5
|
+
threadId: string;
|
|
6
|
+
/** The message's current mailbox — the row/card it's rendered in. */
|
|
7
|
+
mailboxId: string;
|
|
8
|
+
autoMoved: RemitImapAutoMovedInfo | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Present when the user reported this message as spam and the report has
|
|
11
|
+
* not been undone (issue #648). Takes precedence over `autoMoved`: a
|
|
12
|
+
* report can be a no-op move (the provider's own filter already placed the
|
|
13
|
+
* message in Junk), so it carries its own badge independent of the
|
|
14
|
+
* message's current folder, unlike a classifier/filter move.
|
|
15
|
+
*/
|
|
16
|
+
spamReport: RemitImapMessageSpamReport | undefined;
|
|
17
|
+
}
|
|
18
|
+
export interface AutoMovedBadgeState {
|
|
19
|
+
/** Whether the move is still in effect and the badge should render. */
|
|
20
|
+
show: boolean;
|
|
21
|
+
label: string;
|
|
22
|
+
/** Present only when the undo target mailbox resolved. */
|
|
23
|
+
onUndo?: () => void;
|
|
24
|
+
isUndoing: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Settings › Filters link, present only for a standing-filter move — undo
|
|
27
|
+
* returns the message but never disables the filter, so the badge points to
|
|
28
|
+
* where the filter can be managed.
|
|
29
|
+
*/
|
|
30
|
+
filtersHref?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Composes the account's mailboxes with the message's `autoMoved` and
|
|
34
|
+
* `spamReport` projections into everything the `AutoMovedBadge` kit component
|
|
35
|
+
* needs: the derived "still in effect" gate, the plain-language label, and a
|
|
36
|
+
* one-click undo.
|
|
37
|
+
*
|
|
38
|
+
* Three provenances are handled, `spamReport` taking priority when present:
|
|
39
|
+
* - A spam report (issue #648) undoes via `POST /messages/not-spam`, which
|
|
40
|
+
* resolves its own restore target server-side — the client never needs an
|
|
41
|
+
* Inbox/Junk lookup for it, and the badge shows regardless of the message's
|
|
42
|
+
* current folder (a report can be a no-op move).
|
|
43
|
+
* - A classifier move resolves its Inbox/Junk role mailboxes and undoes via a
|
|
44
|
+
* plain move back to the source role.
|
|
45
|
+
* - A standing-filter move names an arbitrary source folder, whose display
|
|
46
|
+
* name is resolved from the account's mailbox list, and carries a
|
|
47
|
+
* Settings › Filters link so the filter that keeps moving mail is one tap
|
|
48
|
+
* away — undo does not disable it.
|
|
49
|
+
*
|
|
50
|
+
* `show` re-derives on every render from `mailboxId` (or from `spamReport`'s
|
|
51
|
+
* presence) — no local dismissed flag. Once the undo mutation settles, its
|
|
52
|
+
* query invalidation refetches the thread row with its updated state, and the
|
|
53
|
+
* badge naturally stops showing (doc/rules/data-flow.md).
|
|
54
|
+
*/
|
|
55
|
+
export declare const useAutoMovedBadge: ({ accountId, messageId, threadId, mailboxId, autoMoved, spamReport, }: UseAutoMovedBadgeOptions) => AutoMovedBadgeState;
|
|
56
|
+
export {};
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { mailboxOperationsListMailboxesOptions } from "@remit/api-http-client/@tanstack/react-query.gen.ts";
|
|
2
|
+
import { mailboxLeafName } from "@remit/data-ports/mailbox-name";
|
|
3
|
+
import { useQuery } from "@tanstack/react-query";
|
|
4
|
+
import { useCallback } from "react";
|
|
5
|
+
import { autoMovedLabel, isAutoMoveInEffect, resolveUndoTargetMailboxId, spamReportLabel, } from "../lib/auto-moved";
|
|
6
|
+
import { useInboxMailbox, useJunkMailbox } from "./useArchiveMailbox";
|
|
7
|
+
import { useMoveMessages } from "./useMoveMessages";
|
|
8
|
+
import { useReportSpam } from "./useReportSpam";
|
|
9
|
+
/**
|
|
10
|
+
* Composes the account's mailboxes with the message's `autoMoved` and
|
|
11
|
+
* `spamReport` projections into everything the `AutoMovedBadge` kit component
|
|
12
|
+
* needs: the derived "still in effect" gate, the plain-language label, and a
|
|
13
|
+
* one-click undo.
|
|
14
|
+
*
|
|
15
|
+
* Three provenances are handled, `spamReport` taking priority when present:
|
|
16
|
+
* - A spam report (issue #648) undoes via `POST /messages/not-spam`, which
|
|
17
|
+
* resolves its own restore target server-side — the client never needs an
|
|
18
|
+
* Inbox/Junk lookup for it, and the badge shows regardless of the message's
|
|
19
|
+
* current folder (a report can be a no-op move).
|
|
20
|
+
* - A classifier move resolves its Inbox/Junk role mailboxes and undoes via a
|
|
21
|
+
* plain move back to the source role.
|
|
22
|
+
* - A standing-filter move names an arbitrary source folder, whose display
|
|
23
|
+
* name is resolved from the account's mailbox list, and carries a
|
|
24
|
+
* Settings › Filters link so the filter that keeps moving mail is one tap
|
|
25
|
+
* away — undo does not disable it.
|
|
26
|
+
*
|
|
27
|
+
* `show` re-derives on every render from `mailboxId` (or from `spamReport`'s
|
|
28
|
+
* presence) — no local dismissed flag. Once the undo mutation settles, its
|
|
29
|
+
* query invalidation refetches the thread row with its updated state, and the
|
|
30
|
+
* badge naturally stops showing (doc/rules/data-flow.md).
|
|
31
|
+
*/
|
|
32
|
+
export const useAutoMovedBadge = ({ accountId, messageId, threadId, mailboxId, autoMoved, spamReport, }) => {
|
|
33
|
+
const { inboxMailboxId } = useInboxMailbox(accountId);
|
|
34
|
+
const { junkMailboxId } = useJunkMailbox(accountId);
|
|
35
|
+
const { moveMessages, isPending: isMoveUndoing } = useMoveMessages({
|
|
36
|
+
mailboxId,
|
|
37
|
+
threadId,
|
|
38
|
+
accountId,
|
|
39
|
+
});
|
|
40
|
+
const { notSpam, isRestoring: isSpamUndoing } = useReportSpam({
|
|
41
|
+
mailboxId,
|
|
42
|
+
threadId,
|
|
43
|
+
accountId,
|
|
44
|
+
});
|
|
45
|
+
const { data: mailboxes } = useQuery({
|
|
46
|
+
...mailboxOperationsListMailboxesOptions({
|
|
47
|
+
path: { accountId: accountId ?? "" },
|
|
48
|
+
}),
|
|
49
|
+
staleTime: Infinity,
|
|
50
|
+
enabled: !!accountId && autoMoved?.fromMailboxId !== undefined,
|
|
51
|
+
});
|
|
52
|
+
const roleMailboxes = { inboxMailboxId, junkMailboxId };
|
|
53
|
+
const undoTargetMailboxId = resolveUndoTargetMailboxId(autoMoved, roleMailboxes);
|
|
54
|
+
const handleUndoMove = useCallback(() => {
|
|
55
|
+
if (!undoTargetMailboxId)
|
|
56
|
+
return;
|
|
57
|
+
moveMessages([messageId], undoTargetMailboxId);
|
|
58
|
+
}, [moveMessages, messageId, undoTargetMailboxId]);
|
|
59
|
+
const handleUndoReport = useCallback(() => {
|
|
60
|
+
notSpam([messageId]);
|
|
61
|
+
}, [notSpam, messageId]);
|
|
62
|
+
if (spamReport) {
|
|
63
|
+
return {
|
|
64
|
+
show: true,
|
|
65
|
+
label: spamReportLabel,
|
|
66
|
+
onUndo: handleUndoReport,
|
|
67
|
+
isUndoing: isSpamUndoing,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
const show = isAutoMoveInEffect(autoMoved, mailboxId, roleMailboxes);
|
|
71
|
+
if (!show || !autoMoved) {
|
|
72
|
+
return { show: false, label: "", isUndoing: false };
|
|
73
|
+
}
|
|
74
|
+
const sourceFolderName = autoMoved.fromMailboxId
|
|
75
|
+
? mailboxes?.items
|
|
76
|
+
.filter((mailbox) => mailbox.mailboxId === autoMoved.fromMailboxId)
|
|
77
|
+
.map((mailbox) => mailboxLeafName(mailbox))[0]
|
|
78
|
+
: undefined;
|
|
79
|
+
return {
|
|
80
|
+
show: true,
|
|
81
|
+
label: autoMovedLabel(autoMoved, sourceFolderName),
|
|
82
|
+
onUndo: undoTargetMailboxId ? handleUndoMove : undefined,
|
|
83
|
+
isUndoing: isMoveUndoing,
|
|
84
|
+
...(autoMoved.filterId ? { filtersHref: "/settings/filters" } : {}),
|
|
85
|
+
};
|
|
86
|
+
};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { RemitImapMessageCategory, RemitImapThreadMessageResponse } from "@remit/api-http-client/types.gen.ts";
|
|
2
|
+
import type { ResultCount } from "@remit/ui";
|
|
3
|
+
import type { BriefSectionParams } from "../lib/brief-criteria";
|
|
4
|
+
/** The criteria every section request carries, its own category aside. */
|
|
5
|
+
export interface BriefSectionsCriteria extends BriefSectionParams {
|
|
6
|
+
/**
|
|
7
|
+
* Committed free text, matched against subject, From and the body preview
|
|
8
|
+
* across folders.
|
|
9
|
+
*/
|
|
10
|
+
query?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface BriefSectionRows {
|
|
13
|
+
category: RemitImapMessageCategory;
|
|
14
|
+
rows: RemitImapThreadMessageResponse[];
|
|
15
|
+
total: ResultCount;
|
|
16
|
+
/** The request came back full, so the category holds more than these rows. */
|
|
17
|
+
atCap: boolean;
|
|
18
|
+
/** Nothing has arrived for this section yet. */
|
|
19
|
+
loading: boolean;
|
|
20
|
+
/** This section's own request failed; the others are unaffected. */
|
|
21
|
+
failed: boolean;
|
|
22
|
+
/** Ask this one section again. */
|
|
23
|
+
retry: () => void;
|
|
24
|
+
}
|
|
25
|
+
export interface UseBriefSectionsOptions {
|
|
26
|
+
/** The categories the brief is showing, in display order. */
|
|
27
|
+
categories: readonly RemitImapMessageCategory[];
|
|
28
|
+
criteria: BriefSectionsCriteria;
|
|
29
|
+
/** Rows per section. */
|
|
30
|
+
limit: number;
|
|
31
|
+
/**
|
|
32
|
+
* Whether the request saw every criterion on screen. False, no count is asked
|
|
33
|
+
* for and every section reports no number — see `briefCountsMatchRows`.
|
|
34
|
+
*/
|
|
35
|
+
counted: boolean;
|
|
36
|
+
}
|
|
37
|
+
export interface UseBriefSections {
|
|
38
|
+
sections: BriefSectionRows[];
|
|
39
|
+
/** Nothing has arrived for any section — the brief has nothing to render. */
|
|
40
|
+
isLoading: boolean;
|
|
41
|
+
/** Every section failed. One failing section is the section's own state. */
|
|
42
|
+
isError: boolean;
|
|
43
|
+
refetch: () => void;
|
|
44
|
+
}
|
|
45
|
+
export declare function useBriefSections({ categories, criteria, limit, counted, }: UseBriefSectionsOptions): UseBriefSections;
|
|
46
|
+
/** What a searched brief holds before the reader is told to narrow it. */
|
|
47
|
+
export interface BriefSearchCriteria extends BriefSectionsCriteria {
|
|
48
|
+
/** A category the chips or a `category:` term narrowed the search to. */
|
|
49
|
+
category?: RemitImapMessageCategory[];
|
|
50
|
+
}
|
|
51
|
+
export interface UseBriefSearchRows {
|
|
52
|
+
/** Every match the request returned, in the order the server returned them. */
|
|
53
|
+
rows: RemitImapThreadMessageResponse[];
|
|
54
|
+
isLoading: boolean;
|
|
55
|
+
isError: boolean;
|
|
56
|
+
refetch: () => void;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The brief under a search: one request, one list — sender matches first, then
|
|
60
|
+
* mentions, each newest first.
|
|
61
|
+
*
|
|
62
|
+
* Not seven category queries stitched back together. A match's category must not
|
|
63
|
+
* lift it above a newer match, and section headers between the rows would do
|
|
64
|
+
* exactly that — an old newsletter above a mail that arrived this morning. The
|
|
65
|
+
* server orders the whole match set; the client renders it in that order (#312).
|
|
66
|
+
*
|
|
67
|
+
* Search mode also widens the scope past INBOX to every non-muted folder of every
|
|
68
|
+
* account, so this is the only request that reaches Archive, Sent and Spam.
|
|
69
|
+
*/
|
|
70
|
+
export declare function useBriefSearchRows(criteria: BriefSearchCriteria, limit: number, enabled: boolean): UseBriefSearchRows;
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The daily brief's rows: one `listAllThreads` request per section it shows,
|
|
3
|
+
* scoped to that section's category, plus one count of the whole category.
|
|
4
|
+
*
|
|
5
|
+
* The brief used to be a single non-paginated page of the newest 50 unified
|
|
6
|
+
* rows, and every section was "the Marketing rows among those 50" presented as
|
|
7
|
+
* Marketing. On a mailbox whose Marketing mail is all older than that window the
|
|
8
|
+
* section rendered empty above a header reading zero (#312). A category-scoped
|
|
9
|
+
* request answers over the whole scope, so a section holds that category's
|
|
10
|
+
* newest mail however far down the unified order it sits.
|
|
11
|
+
*
|
|
12
|
+
* The brief does not paginate as a whole; it paginates by section. Each section
|
|
13
|
+
* takes its newest {@link SECTION_ROW_CAP} rows and states its real size, and
|
|
14
|
+
* the way to the rest is the brief's own filtered list for that category — no
|
|
15
|
+
* cursor here, and no request that walks a mailbox.
|
|
16
|
+
*
|
|
17
|
+
* The counts are the second read. One per displayed section, keyed on the
|
|
18
|
+
* criteria alone so no page, cursor or expansion can trigger another, and held
|
|
19
|
+
* for a minute. The criteria are the caller's committed state — the query as it
|
|
20
|
+
* was submitted, and the chips as that query and the panel leave them — so
|
|
21
|
+
* nothing here is on a keystroke path.
|
|
22
|
+
*
|
|
23
|
+
* Each section loads and fails on its own. Seven requests are seven answers, and
|
|
24
|
+
* one category's failed request is not a reason to blank the six that came back:
|
|
25
|
+
* a section carries its own pending and error state, and the brief renders what
|
|
26
|
+
* it has. What reaches that state is a transport failure — a request that never
|
|
27
|
+
* got an answer. A 5xx is the API breaking rather than this section failing, and
|
|
28
|
+
* escalates globally on the fail-fast contract (`shouldEscalate`, #1059); there
|
|
29
|
+
* is no `meta` opt-out here and there must not be one.
|
|
30
|
+
*
|
|
31
|
+
* A refetch under the same predicate keeps the rows already on screen. Under a
|
|
32
|
+
* different one it does not — the previous chip's mail under the new chip is the
|
|
33
|
+
* defect `sameInboxFilter` exists to stop — so only a change of free text holds
|
|
34
|
+
* the previous answer while the next one is in flight.
|
|
35
|
+
*
|
|
36
|
+
* Sections are the unsearched brief only. Under a query the brief is one list in
|
|
37
|
+
* one order — see `useBriefSearchRows`.
|
|
38
|
+
*/
|
|
39
|
+
import { unifiedThreadOperationsListAllThreadsQueryKey } from "@remit/api-http-client/@tanstack/react-query.gen.ts";
|
|
40
|
+
import { unifiedThreadOperationsListAllThreads } from "@remit/api-http-client/sdk.gen.ts";
|
|
41
|
+
import { useQueries, useQuery } from "@tanstack/react-query";
|
|
42
|
+
import { useCallback, useMemo } from "react";
|
|
43
|
+
import { sameInboxFilter } from "../lib/inbox-filters";
|
|
44
|
+
import { toResultCount } from "../lib/result-count";
|
|
45
|
+
/** A minute: a brief reopened straight away costs nothing. */
|
|
46
|
+
const BRIEF_STALE_TIME_MS = 60_000;
|
|
47
|
+
/** Half a minute: a query being refined re-asks sooner than the brief does. */
|
|
48
|
+
const SEARCH_STALE_TIME_MS = 30_000;
|
|
49
|
+
/** No number at all, which is what a section shows when nobody counted it. */
|
|
50
|
+
const UNCOUNTED = { kind: "unknown" };
|
|
51
|
+
/**
|
|
52
|
+
* Hold the previous answer while the next one is in flight, but only where the
|
|
53
|
+
* predicate is unchanged. A chip that changes what is being asked for takes its
|
|
54
|
+
* rows with it: the previous chip's mail under the new chip, for one round trip,
|
|
55
|
+
* is what `sameInboxFilter` was written to stop (design D18).
|
|
56
|
+
*/
|
|
57
|
+
const keepUnderSameFilter = (filter) => (previous, previousQuery) => sameInboxFilter(previousQuery?.queryKey, filter) ? previous : undefined;
|
|
58
|
+
const sectionRowsQuery = (criteria, category, limit) => ({
|
|
59
|
+
...criteria,
|
|
60
|
+
category: [category],
|
|
61
|
+
limit,
|
|
62
|
+
order: "desc",
|
|
63
|
+
});
|
|
64
|
+
// No `limit` and no cursor: the count is a property of the criteria, so growing
|
|
65
|
+
// the page cannot change it and cannot ask for it again.
|
|
66
|
+
const sectionCountQuery = (criteria, category) => ({
|
|
67
|
+
...criteria,
|
|
68
|
+
category: [category],
|
|
69
|
+
order: "desc",
|
|
70
|
+
count: true,
|
|
71
|
+
results: false,
|
|
72
|
+
});
|
|
73
|
+
/**
|
|
74
|
+
* What a request under these criteria asks for, as `sameInboxFilter` reads it.
|
|
75
|
+
* Free text is deliberately not part of it: a query being refined is the one
|
|
76
|
+
* change that may keep the previous answer on screen.
|
|
77
|
+
*/
|
|
78
|
+
const sectionFilter = (criteria, category) => ({
|
|
79
|
+
category: [category],
|
|
80
|
+
...(criteria.unread !== undefined ? { unread: criteria.unread } : {}),
|
|
81
|
+
...(criteria.starred !== undefined ? { starred: criteria.starred } : {}),
|
|
82
|
+
...(criteria.attachments !== undefined
|
|
83
|
+
? { attachments: criteria.attachments }
|
|
84
|
+
: {}),
|
|
85
|
+
// The account pill is a scope, not text: switching it must take the previous
|
|
86
|
+
// account's rows off screen rather than render them for one round trip.
|
|
87
|
+
...(criteria.accountId !== undefined
|
|
88
|
+
? { accountId: criteria.accountId }
|
|
89
|
+
: {}),
|
|
90
|
+
...(criteria.muted !== undefined ? { muted: criteria.muted } : {}),
|
|
91
|
+
});
|
|
92
|
+
export function useBriefSections({ categories, criteria, limit, counted, }) {
|
|
93
|
+
const rowQueries = useQueries({
|
|
94
|
+
queries: categories.map((category) => {
|
|
95
|
+
const query = sectionRowsQuery(criteria, category, limit);
|
|
96
|
+
const filter = sectionFilter(criteria, category);
|
|
97
|
+
return {
|
|
98
|
+
queryKey: unifiedThreadOperationsListAllThreadsQueryKey({ query }),
|
|
99
|
+
queryFn: async () => {
|
|
100
|
+
const { data } = await unifiedThreadOperationsListAllThreads({
|
|
101
|
+
query,
|
|
102
|
+
throwOnError: true,
|
|
103
|
+
});
|
|
104
|
+
return data;
|
|
105
|
+
},
|
|
106
|
+
placeholderData: keepUnderSameFilter(filter),
|
|
107
|
+
staleTime: BRIEF_STALE_TIME_MS,
|
|
108
|
+
};
|
|
109
|
+
}),
|
|
110
|
+
});
|
|
111
|
+
const countQueries = useQueries({
|
|
112
|
+
queries: categories.map((category) => {
|
|
113
|
+
const query = sectionCountQuery(criteria, category);
|
|
114
|
+
const filter = sectionFilter(criteria, category);
|
|
115
|
+
return {
|
|
116
|
+
queryKey: unifiedThreadOperationsListAllThreadsQueryKey({ query }),
|
|
117
|
+
queryFn: async () => {
|
|
118
|
+
const { data } = await unifiedThreadOperationsListAllThreads({
|
|
119
|
+
query,
|
|
120
|
+
throwOnError: true,
|
|
121
|
+
});
|
|
122
|
+
return data;
|
|
123
|
+
},
|
|
124
|
+
enabled: counted,
|
|
125
|
+
placeholderData: keepUnderSameFilter(filter),
|
|
126
|
+
staleTime: BRIEF_STALE_TIME_MS,
|
|
127
|
+
};
|
|
128
|
+
}),
|
|
129
|
+
});
|
|
130
|
+
const sections = useMemo(() => categories.map((category, index) => {
|
|
131
|
+
const rows = rowQueries[index];
|
|
132
|
+
const count = countQueries[index];
|
|
133
|
+
const items = rows?.data?.items ?? [];
|
|
134
|
+
return {
|
|
135
|
+
category,
|
|
136
|
+
rows: items,
|
|
137
|
+
// Read off the page rather than the rendered rows: muting and the
|
|
138
|
+
// thread collapse both shrink what is rendered, and neither means the
|
|
139
|
+
// category holds no more.
|
|
140
|
+
atCap: items.length >= limit,
|
|
141
|
+
// `enabled` gates the request, not the cache: a brief that asks for
|
|
142
|
+
// no count must not render the one an earlier, narrower brief left
|
|
143
|
+
// behind.
|
|
144
|
+
total: counted ? toResultCount(count?.data?.count) : UNCOUNTED,
|
|
145
|
+
// Pending, not fetching: a section holding the previous query's rows
|
|
146
|
+
// has something to render, and replacing it with a skeleton takes the
|
|
147
|
+
// brief off screen every time the search field is cleared.
|
|
148
|
+
loading: rows?.isPending ?? true,
|
|
149
|
+
failed: rows?.isError ?? false,
|
|
150
|
+
retry: () => {
|
|
151
|
+
rows?.refetch();
|
|
152
|
+
// `refetch` ignores `enabled`, so an uncounted brief would fetch a
|
|
153
|
+
// count it has already decided not to render.
|
|
154
|
+
if (counted)
|
|
155
|
+
count?.refetch();
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
}), [categories, rowQueries, countQueries, counted, limit]);
|
|
159
|
+
const refetch = useCallback(() => {
|
|
160
|
+
for (const query of rowQueries)
|
|
161
|
+
query.refetch();
|
|
162
|
+
for (const query of countQueries)
|
|
163
|
+
query.refetch();
|
|
164
|
+
}, [rowQueries, countQueries]);
|
|
165
|
+
return {
|
|
166
|
+
sections,
|
|
167
|
+
// The whole-body states are the ones where there is genuinely nothing to
|
|
168
|
+
// show. A section that is still loading, or that failed on its own, says so
|
|
169
|
+
// in its own place while the rest of the brief stands.
|
|
170
|
+
isLoading: rowQueries.length > 0 && rowQueries.every((query) => query.isPending),
|
|
171
|
+
isError: rowQueries.length > 0 && rowQueries.every((query) => query.isError),
|
|
172
|
+
refetch,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* The brief under a search: one request, one list — sender matches first, then
|
|
177
|
+
* mentions, each newest first.
|
|
178
|
+
*
|
|
179
|
+
* Not seven category queries stitched back together. A match's category must not
|
|
180
|
+
* lift it above a newer match, and section headers between the rows would do
|
|
181
|
+
* exactly that — an old newsletter above a mail that arrived this morning. The
|
|
182
|
+
* server orders the whole match set; the client renders it in that order (#312).
|
|
183
|
+
*
|
|
184
|
+
* Search mode also widens the scope past INBOX to every non-muted folder of every
|
|
185
|
+
* account, so this is the only request that reaches Archive, Sent and Spam.
|
|
186
|
+
*/
|
|
187
|
+
export function useBriefSearchRows(criteria, limit, enabled) {
|
|
188
|
+
const query = { ...criteria, limit, order: "desc" };
|
|
189
|
+
const { data, isLoading, isError, refetch } = useQuery({
|
|
190
|
+
queryKey: unifiedThreadOperationsListAllThreadsQueryKey({ query }),
|
|
191
|
+
queryFn: async () => {
|
|
192
|
+
const { data: page } = await unifiedThreadOperationsListAllThreads({
|
|
193
|
+
query,
|
|
194
|
+
throwOnError: true,
|
|
195
|
+
});
|
|
196
|
+
return page;
|
|
197
|
+
},
|
|
198
|
+
enabled,
|
|
199
|
+
staleTime: SEARCH_STALE_TIME_MS,
|
|
200
|
+
});
|
|
201
|
+
const rows = useMemo(() => (enabled ? (data?.items ?? []) : []), [data, enabled]);
|
|
202
|
+
return {
|
|
203
|
+
rows,
|
|
204
|
+
isLoading: enabled && isLoading,
|
|
205
|
+
isError: enabled && isError,
|
|
206
|
+
refetch: useCallback(() => {
|
|
207
|
+
refetch();
|
|
208
|
+
}, [refetch]),
|
|
209
|
+
};
|
|
210
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the calendar surfaces read, and the only place they read it from.
|
|
3
|
+
*
|
|
4
|
+
* The seam is here, and not inside the grid, because the grid is presentational
|
|
5
|
+
* and expands no recurrence of its own — the server returns instances and this
|
|
6
|
+
* turns them into what the kit draws. Every caller keeps the call it makes.
|
|
7
|
+
*/
|
|
8
|
+
import type { CalendarColorId, CalendarDescriptor, CalendarEventData, CalendarViewId } from "@remit/ui";
|
|
9
|
+
import { type CalendarInstanceRef } from "./calendar";
|
|
10
|
+
export interface CalendarDataRequest {
|
|
11
|
+
view: CalendarViewId;
|
|
12
|
+
/** The day the view is centred on, `YYYY-MM-DD`. */
|
|
13
|
+
date: string;
|
|
14
|
+
/** The calendars the address has ticked; empty means every one of them. */
|
|
15
|
+
calendarIds: readonly string[];
|
|
16
|
+
/**
|
|
17
|
+
* False where the zoom on screen draws nothing from this window. The agenda
|
|
18
|
+
* rolls its own range a week at a time, so asking for this view's week as
|
|
19
|
+
* well would fetch a window nothing renders — and the address rewriting on
|
|
20
|
+
* every scroll would ask again, with its neighbours, all the way down.
|
|
21
|
+
*/
|
|
22
|
+
enabled?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface CalendarData {
|
|
25
|
+
calendars: CalendarDescriptor[];
|
|
26
|
+
events: CalendarEventData[];
|
|
27
|
+
colorByCalendarId: Record<string, CalendarColorId>;
|
|
28
|
+
/** The zone each collection's times are read on — never the device's. */
|
|
29
|
+
timeZoneByCalendarId: Record<string, string>;
|
|
30
|
+
isLoading: boolean;
|
|
31
|
+
/** A refusal the calendar renders itself. Null when the read succeeded. */
|
|
32
|
+
error: unknown;
|
|
33
|
+
retry: () => void;
|
|
34
|
+
/** The resource and occurrence behind an event the grid selected. */
|
|
35
|
+
instanceOf: (eventId: string) => CalendarInstanceRef;
|
|
36
|
+
}
|
|
37
|
+
export declare function useCalendarData({ view, date, calendarIds, enabled, }: CalendarDataRequest): CalendarData;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { calendarWindow, readCalendarInstanceId, useCalendarEventWindow, useCalendarSelection, useDrawnEvents, usePrefetchAdjacentWindows, } from "./calendar";
|
|
2
|
+
export function useCalendarData({ view, date, calendarIds, enabled = true, }) {
|
|
3
|
+
const { calendars, colorByCalendarId, timeZoneByCalendarId, shown, narrowed, resolved, isLoading, } = useCalendarSelection(calendarIds);
|
|
4
|
+
const window = calendarWindow(view, date);
|
|
5
|
+
const active = enabled && resolved;
|
|
6
|
+
const events = useCalendarEventWindow({
|
|
7
|
+
...window,
|
|
8
|
+
calendarIds: narrowed,
|
|
9
|
+
enabled: active,
|
|
10
|
+
});
|
|
11
|
+
usePrefetchAdjacentWindows(view, date, narrowed, active);
|
|
12
|
+
const eventData = useDrawnEvents(events.instances, timeZoneByCalendarId, shown);
|
|
13
|
+
return {
|
|
14
|
+
calendars,
|
|
15
|
+
events: eventData,
|
|
16
|
+
colorByCalendarId,
|
|
17
|
+
timeZoneByCalendarId,
|
|
18
|
+
isLoading: isLoading || events.isLoading,
|
|
19
|
+
error: events.error,
|
|
20
|
+
retry: events.refetch,
|
|
21
|
+
instanceOf: readCalendarInstanceId,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ClauseField, Suggestion } from "@remit/ui";
|
|
2
|
+
/** How long typing settles before the address lookup fires. */
|
|
3
|
+
export declare const CLAUSE_SUGGESTION_DEBOUNCE_MS = 250;
|
|
4
|
+
/**
|
|
5
|
+
* Values to offer for the clause being edited: the senders of the messages the
|
|
6
|
+
* user selected first — already in hand, and the likeliest answer — then the
|
|
7
|
+
* known addresses a lookup turns up for what has been typed.
|
|
8
|
+
*
|
|
9
|
+
* The lookup is the address search the compose recipient field already uses, on
|
|
10
|
+
* a debounce so a request does not fire per keystroke. The list narrows against
|
|
11
|
+
* the live value while a request is still out, so it never lags what is on
|
|
12
|
+
* screen; nothing it returns can change what the user typed.
|
|
13
|
+
*/
|
|
14
|
+
export declare const useClauseSuggestions: (field: ClauseField | undefined, value: string, selectionSenders: readonly string[]) => Suggestion[];
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { addressOperationsSearchAddressesOptions } from "@remit/api-http-client/@tanstack/react-query.gen.ts";
|
|
2
|
+
import { useQuery } from "@tanstack/react-query";
|
|
3
|
+
import { buildClauseSuggestions, CLAUSE_SUGGESTION_LIMIT, fieldTakesAddressSuggestions, } from "../lib/organize/clause-suggestions";
|
|
4
|
+
import { useDebouncedValue } from "./useDebouncedValue";
|
|
5
|
+
/** How long typing settles before the address lookup fires. */
|
|
6
|
+
export const CLAUSE_SUGGESTION_DEBOUNCE_MS = 250;
|
|
7
|
+
/** The shortest query worth a round-trip. */
|
|
8
|
+
const MIN_QUERY_LENGTH = 2;
|
|
9
|
+
/**
|
|
10
|
+
* Values to offer for the clause being edited: the senders of the messages the
|
|
11
|
+
* user selected first — already in hand, and the likeliest answer — then the
|
|
12
|
+
* known addresses a lookup turns up for what has been typed.
|
|
13
|
+
*
|
|
14
|
+
* The lookup is the address search the compose recipient field already uses, on
|
|
15
|
+
* a debounce so a request does not fire per keystroke. The list narrows against
|
|
16
|
+
* the live value while a request is still out, so it never lags what is on
|
|
17
|
+
* screen; nothing it returns can change what the user typed.
|
|
18
|
+
*/
|
|
19
|
+
export const useClauseSuggestions = (field, value, selectionSenders) => {
|
|
20
|
+
const query = value.trim();
|
|
21
|
+
const debouncedQuery = useDebouncedValue(query, CLAUSE_SUGGESTION_DEBOUNCE_MS);
|
|
22
|
+
const offersAddresses = field !== undefined && fieldTakesAddressSuggestions(field);
|
|
23
|
+
const { data } = useQuery({
|
|
24
|
+
...addressOperationsSearchAddressesOptions({
|
|
25
|
+
query: { q: debouncedQuery, limit: CLAUSE_SUGGESTION_LIMIT },
|
|
26
|
+
}),
|
|
27
|
+
enabled: offersAddresses && debouncedQuery.length >= MIN_QUERY_LENGTH,
|
|
28
|
+
});
|
|
29
|
+
if (!offersAddresses || field === undefined)
|
|
30
|
+
return [];
|
|
31
|
+
const addresses = [
|
|
32
|
+
...selectionSenders.map((email) => ({ email, fromSelection: true })),
|
|
33
|
+
...(data?.items ?? []).map((address) => ({
|
|
34
|
+
email: address.normalizedEmail,
|
|
35
|
+
...(address.displayName ? { displayName: address.displayName } : {}),
|
|
36
|
+
})),
|
|
37
|
+
];
|
|
38
|
+
return buildClauseSuggestions(field, query, addresses);
|
|
39
|
+
};
|