@rapidmx/web-client 0.21.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (885) hide show
  1. package/README.md +48 -14
  2. package/apps/admin/_layout.tsx +2 -2
  3. package/apps/admin/audit-log/index.tsx +4 -4
  4. package/apps/admin/branding/index.tsx +3 -3
  5. package/apps/admin/data-requests/index.tsx +8 -8
  6. package/apps/admin/distribution-lists/[uid].tsx +3 -3
  7. package/apps/admin/distribution-lists/index.tsx +4 -4
  8. package/apps/admin/distribution-lists/new/index.tsx +5 -5
  9. package/apps/admin/domains/[uid].tsx +6 -6
  10. package/apps/admin/domains/index.tsx +4 -4
  11. package/apps/admin/domains/new/index.tsx +5 -5
  12. package/apps/admin/encryption-policy/index.tsx +1 -1
  13. package/apps/admin/escrow-scopes/[uid].tsx +7 -7
  14. package/apps/admin/escrow-scopes/index.tsx +4 -4
  15. package/apps/admin/escrow-scopes/new/index.tsx +5 -5
  16. package/apps/admin/index.tsx +6 -6
  17. package/apps/admin/ingest-queue/index.tsx +4 -4
  18. package/apps/admin/mailbox-policy/index.tsx +1 -1
  19. package/apps/admin/mailboxes/[uid].tsx +5 -5
  20. package/apps/admin/quarantine/index.tsx +5 -5
  21. package/apps/admin/retention-policy/index.tsx +3 -3
  22. package/apps/admin/signing-certificates/index.tsx +5 -5
  23. package/apps/admin/transport-rules/[uid].tsx +5 -5
  24. package/apps/admin/transport-rules/_transportRuleConfig.tsx +3 -3
  25. package/apps/admin/transport-rules/index.tsx +4 -4
  26. package/apps/admin/transport-rules/new/index.tsx +5 -5
  27. package/apps/escrow/_layout.tsx +1 -1
  28. package/apps/escrow/audit-log/index.tsx +4 -4
  29. package/apps/escrow/index.tsx +4 -4
  30. package/apps/escrow/matters/[uid].tsx +10 -10
  31. package/apps/escrow/matters/new/index.tsx +6 -6
  32. package/apps/shared/appearance/AppearanceForm.tsx +3 -3
  33. package/apps/shared/appearance/AppearanceHead.tsx +1 -1
  34. package/apps/shared/appearance/AppearanceProvider.tsx +3 -3
  35. package/apps/shared/appearance/appearanceCache.ts +1 -1
  36. package/apps/shared/appearance/appearanceContext.ts +1 -1
  37. package/apps/shared/appearance/theme.ts +1 -1
  38. package/apps/shared/auth/adminAccess.ts +1 -1
  39. package/apps/shared/calendar/bookingPlugin.ts +1 -1
  40. package/apps/shared/calendar/calendarLiveUpdates.ts +1 -1
  41. package/apps/shared/calendar/calendarReminders.ts +1 -1
  42. package/apps/shared/calendar/useCalendarReminders.ts +1 -1
  43. package/apps/shared/components/admin/diagnostics/DiagnosticsManager.tsx +1 -1
  44. package/apps/shared/components/admin/diagnostics/InstalledPlugins.tsx +2 -2
  45. package/apps/shared/components/admin/diagnostics/LogsPanel.tsx +2 -2
  46. package/apps/shared/components/admin/diagnostics/PackagesTable.tsx +1 -1
  47. package/apps/shared/components/admin/diagnostics/RuntimePanel.tsx +1 -1
  48. package/apps/shared/components/admin/diagnostics/SystemPanel.tsx +2 -2
  49. package/apps/shared/components/admin/diagnostics/VersionsPanel.tsx +1 -1
  50. package/apps/shared/components/admin/diagnostics/diagnosticsApi.ts +1 -1
  51. package/apps/shared/components/admin/diagnostics/format.ts +1 -1
  52. package/apps/shared/components/admin/diagnostics/logClient.ts +1 -1
  53. package/apps/shared/components/admin/distributionLists/MemberListCard.tsx +4 -4
  54. package/apps/shared/components/admin/elevation.ts +1 -1
  55. package/apps/shared/components/admin/escrowScopes/EscrowScopeKeyAndHoldersFields.tsx +3 -3
  56. package/apps/shared/components/admin/layout/AdminShell.tsx +8 -8
  57. package/apps/shared/components/admin/mailboxes/EraseLeftoverDataDialog.tsx +6 -6
  58. package/apps/shared/components/admin/mailboxes/EscrowScopeCard.tsx +10 -8
  59. package/apps/shared/components/admin/mailboxes/LeftoverMailboxesSection.tsx +4 -4
  60. package/apps/shared/components/admin/mailboxes/MailboxTable.tsx +1 -1
  61. package/apps/shared/components/admin/mailboxes/ResourceSettingsCard.tsx +19 -14
  62. package/apps/shared/components/admin/mailboxes/ShareAccessCard.tsx +5 -5
  63. package/apps/shared/components/admin/settings/BrandingForm.tsx +5 -5
  64. package/apps/shared/components/admin/settings/DomainDnsSetup.tsx +5 -5
  65. package/apps/shared/components/admin/settings/EncryptionPolicyForm.tsx +4 -4
  66. package/apps/shared/components/admin/settings/LoadedSettingsForm.tsx +2 -2
  67. package/apps/shared/components/admin/settings/MailboxCreateForm.tsx +32 -27
  68. package/apps/shared/components/admin/settings/MailboxPolicyForm.tsx +4 -4
  69. package/apps/shared/components/admin/settings/PluginsManager.tsx +5 -5
  70. package/apps/shared/components/admin/settings/RetentionPolicyForm.tsx +5 -5
  71. package/apps/shared/components/admin/setup/EscrowSetupStep.tsx +7 -7
  72. package/apps/shared/components/admin/setup/SetupWizard.tsx +27 -23
  73. package/apps/shared/components/admin/signOut.ts +1 -1
  74. package/apps/shared/components/admin/usePagedList.tsx +2 -2
  75. package/apps/shared/components/calendar/AppointmentQuickForm.tsx +3 -3
  76. package/apps/shared/components/calendar/CalendarListSidebar.tsx +3 -3
  77. package/apps/shared/components/calendar/DescriptionEditor.tsx +1 -1
  78. package/apps/shared/components/calendar/EventDescriptionView.tsx +1 -1
  79. package/apps/shared/components/calendar/EventDetails.tsx +16 -14
  80. package/apps/shared/components/calendar/EventEditor.tsx +54 -39
  81. package/apps/shared/components/calendar/EventExpandedForm.tsx +3 -3
  82. package/apps/shared/components/calendar/EventFormParts.tsx +2 -2
  83. package/apps/shared/components/calendar/EventModal.tsx +5 -5
  84. package/apps/shared/components/calendar/EventQuickForm.tsx +3 -3
  85. package/apps/shared/components/calendar/EventShell.tsx +1 -1
  86. package/apps/shared/components/calendar/FindATime.tsx +6 -4
  87. package/apps/shared/components/calendar/GuestInput.tsx +2 -2
  88. package/apps/shared/components/calendar/MonthView.tsx +2 -2
  89. package/apps/shared/components/calendar/QuickCreateFaces.tsx +1 -1
  90. package/apps/shared/components/calendar/QuickFaceFrame.tsx +1 -1
  91. package/apps/shared/components/calendar/RecurrenceEditor.tsx +2 -2
  92. package/apps/shared/components/calendar/RequestChangeForm.tsx +8 -6
  93. package/apps/shared/components/calendar/ResourcePicker.tsx +7 -5
  94. package/apps/shared/components/calendar/SplitDayView.tsx +1 -1
  95. package/apps/shared/components/calendar/TaskQuickForm.tsx +23 -18
  96. package/apps/shared/components/calendar/TimeGridView.tsx +2 -2
  97. package/apps/shared/components/calendar/allDay.ts +2 -2
  98. package/apps/shared/components/calendar/eventDialogFields.ts +3 -3
  99. package/apps/shared/components/calendar/eventForm.ts +3 -3
  100. package/apps/shared/components/calendar/eventFormat.ts +3 -3
  101. package/apps/shared/components/calendar/findTimeGrid.ts +2 -2
  102. package/apps/shared/components/calendar/layout/CalendarShell.tsx +11 -9
  103. package/apps/shared/components/contacts/ContactDetailPane.tsx +4 -4
  104. package/apps/shared/components/contacts/ContactForm.tsx +27 -17
  105. package/apps/shared/components/contacts/ContactsSidebar.tsx +7 -5
  106. package/apps/shared/components/contacts/KeyChangeReview.tsx +5 -5
  107. package/apps/shared/components/contacts/contactKeys.ts +3 -3
  108. package/apps/shared/components/contacts/layout/ContactsShell.tsx +9 -7
  109. package/apps/shared/components/escrow/layout/EscrowShell.tsx +6 -6
  110. package/apps/shared/components/forms/StringListField.tsx +1 -1
  111. package/apps/shared/components/layout/AppShell.tsx +12 -10
  112. package/apps/shared/components/layout/BrandingChrome.tsx +1 -1
  113. package/apps/shared/components/layout/KeyEnrollmentGate.tsx +9 -9
  114. package/apps/shared/components/layout/MailboxProvisioning.tsx +8 -6
  115. package/apps/shared/components/layout/RecoveryCodeUnlock.tsx +9 -9
  116. package/apps/shared/components/layout/ThemeSwitch.tsx +1 -1
  117. package/apps/shared/components/layout/UnlockPromptProvider.tsx +6 -6
  118. package/apps/shared/components/layout/UserMenu.tsx +6 -4
  119. package/apps/shared/components/mail/ConversationList.tsx +7 -5
  120. package/apps/shared/components/mail/ConversationThreadPane.tsx +26 -15
  121. package/apps/shared/components/mail/InviteCard.tsx +11 -9
  122. package/apps/shared/components/mail/LazyReadingPane.tsx +2 -2
  123. package/apps/shared/components/mail/MailAddress.tsx +1 -1
  124. package/apps/shared/components/mail/MailListToolbar.tsx +2 -2
  125. package/apps/shared/components/mail/MailSelectionBar.tsx +2 -2
  126. package/apps/shared/components/mail/MenuButton.tsx +1 -1
  127. package/apps/shared/components/mail/MessageDetailPane.tsx +32 -30
  128. package/apps/shared/components/mail/MoveToFolderDialog.tsx +8 -6
  129. package/apps/shared/components/mail/OutboxRowStatus.tsx +1 -1
  130. package/apps/shared/components/mail/PermanentDeleteDialog.tsx +2 -2
  131. package/apps/shared/components/mail/compose/ComposeContext.tsx +14 -3
  132. package/apps/shared/components/mail/compose/ComposeWindow.tsx +34 -30
  133. package/apps/shared/components/mail/compose/ComposeWindowPlaceholder.tsx +4 -4
  134. package/apps/shared/components/mail/compose/EmojiPicker.tsx +2 -2
  135. package/apps/shared/components/mail/compose/GifPicker.tsx +3 -3
  136. package/apps/shared/components/mail/compose/RecipientInput.tsx +1 -1
  137. package/apps/shared/components/mail/compose/ScheduleSendPicker.tsx +1 -1
  138. package/apps/shared/components/mail/compose/encryptionRequirement.ts +2 -2
  139. package/apps/shared/components/mail/compose/quotedBody.ts +5 -5
  140. package/apps/shared/components/mail/compose/recipients.ts +1 -1
  141. package/apps/shared/components/mail/invite/InviteRowChip.tsx +2 -2
  142. package/apps/shared/components/mail/invite/InviteRsvpPopover.tsx +9 -7
  143. package/apps/shared/components/mail/invite/InviteTimeline.tsx +1 -1
  144. package/apps/shared/components/mail/invite/ProposeTimeForm.tsx +2 -2
  145. package/apps/shared/components/mail/invite/inviteFormat.ts +2 -2
  146. package/apps/shared/components/mail/invite/inviteStore.ts +14 -6
  147. package/apps/shared/components/mail/labelMenu.tsx +9 -7
  148. package/apps/shared/components/mail/layout/MailShell.tsx +4 -4
  149. package/apps/shared/components/mail/listPreferences.ts +2 -2
  150. package/apps/shared/components/mail/pinnedSigners.ts +45 -19
  151. package/apps/shared/components/mail/reading/EncryptedBody.tsx +2 -2
  152. package/apps/shared/components/mail/reading/MessageBody.tsx +6 -6
  153. package/apps/shared/components/mail/reading/MessageCard.tsx +3 -3
  154. package/apps/shared/components/mail/reading/MessageSourceDialog.tsx +3 -3
  155. package/apps/shared/components/mail/reading/PendingMessageCard.tsx +1 -1
  156. package/apps/shared/components/mail/reading/bodyContent.ts +3 -3
  157. package/apps/shared/components/mail/reading/bodyHtml.ts +1 -1
  158. package/apps/shared/components/mail/reading/messageExport.ts +1 -1
  159. package/apps/shared/components/mail/reading/printMessage.ts +2 -2
  160. package/apps/shared/components/mail/reading/useMessageActions.ts +28 -21
  161. package/apps/shared/components/mail/unreadStyle.tsx +1 -1
  162. package/apps/shared/components/mail/verificationSeals.ts +16 -12
  163. package/apps/shared/components/mail/writableMailboxes.ts +14 -7
  164. package/apps/shared/components/rules/RuleBuilder.tsx +1 -1
  165. package/apps/shared/components/settings/SigningCertificateCard.tsx +4 -4
  166. package/apps/shared/components/settings/layout/SettingsShell.tsx +8 -6
  167. package/apps/shared/components/sharing/PrincipalListField.tsx +1 -1
  168. package/apps/shared/components/sharing/PrincipalPicker.tsx +1 -1
  169. package/apps/shared/components/sharing/PrincipalResolver.tsx +4 -4
  170. package/apps/shared/components/tasks/TasksSidebar.tsx +7 -5
  171. package/apps/shared/components/tasks/layout/TasksShell.tsx +9 -7
  172. package/apps/shared/keyboard/ShortcutsDialog.tsx +1 -1
  173. package/apps/shared/mail/findWellKnownFolderUid.ts +6 -4
  174. package/apps/shared/mail/folderCounts.ts +8 -4
  175. package/apps/shared/mail/folderOfType.ts +5 -3
  176. package/apps/shared/mail/folderTree.ts +1 -1
  177. package/apps/shared/mail/listSnapshots.ts +2 -2
  178. package/apps/shared/mail/messageReadState.ts +6 -5
  179. package/apps/shared/mail/newMailNotifications.ts +2 -2
  180. package/apps/shared/mail/outbox/composeBridge.ts +2 -2
  181. package/apps/shared/mail/outbox/outboxState.ts +1 -1
  182. package/apps/shared/mail/outbox/outgoingReplies.ts +2 -2
  183. package/apps/shared/mail/outbox/sendDecision.ts +2 -2
  184. package/apps/shared/mail/outbox/sendJob.ts +40 -35
  185. package/apps/shared/mail/outbox/sendOutcomes.ts +20 -15
  186. package/apps/shared/mail/outbox/useOutboxStatus.ts +5 -3
  187. package/apps/shared/mail/permanentDelete.ts +8 -7
  188. package/apps/shared/mail/primaryMailbox.ts +1 -1
  189. package/apps/shared/mail/reportNotices.ts +1 -1
  190. package/apps/shared/mail/senderBlocking.ts +36 -20
  191. package/apps/shared/mail/useMailConnection.ts +12 -10
  192. package/apps/shared/mail/useMailLiveUpdates.ts +3 -3
  193. package/apps/shared/mail/useMailboxUpdateAccess.ts +35 -11
  194. package/apps/shared/mail/useMarkMessageRead.ts +14 -7
  195. package/apps/shared/mail/useNewMailNotifications.ts +1 -1
  196. package/apps/shared/mail/usePermanentDelete.tsx +5 -3
  197. package/apps/shared/navigation/pageTitle.ts +1 -1
  198. package/apps/shared/notifications/NotificationCenter.tsx +1 -1
  199. package/apps/shared/notifications/NotificationHistoryDialog.tsx +2 -2
  200. package/apps/shared/notifications/apiErrors.ts +2 -2
  201. package/apps/shared/notifications/pushStatus.ts +1 -1
  202. package/apps/shared/notifications/systemErrors.ts +1 -1
  203. package/apps/shared/search/LocalIndexLifecycle.tsx +18 -12
  204. package/apps/shared/search/crossMailboxSearch.ts +3 -3
  205. package/apps/shared/search/localIndexBuilder.ts +24 -12
  206. package/apps/shared/search/localIndexKey.ts +1 -1
  207. package/apps/shared/search/localIndexRpcClient.ts +150 -30
  208. package/apps/shared/search/localIndexTransport.ts +84 -0
  209. package/apps/shared/search/localIndexWorker.ts +1 -1
  210. package/apps/shared/search/searchTier2.ts +3 -3
  211. package/apps/shared/signing/enrollmentTracker.ts +3 -3
  212. package/apps/shared/signing/enrollmentView.ts +1 -1
  213. package/apps/shared/signing/signingInfo.ts +1 -1
  214. package/apps/shared/signing/useSigningEnrollmentWatcher.ts +6 -4
  215. package/apps/shared/styles/app.css +14 -23
  216. package/apps/www/_layout.tsx +2 -2
  217. package/apps/www/calendar/index.tsx +20 -18
  218. package/apps/www/contacts/[uid].tsx +8 -6
  219. package/apps/www/contacts/index.tsx +19 -17
  220. package/apps/www/index.tsx +57 -48
  221. package/apps/www/messages/[uid].tsx +11 -9
  222. package/apps/www/settings/auto-reply/index.tsx +6 -4
  223. package/apps/www/settings/blocked-senders/index.tsx +9 -7
  224. package/apps/www/settings/encryption/index.tsx +38 -32
  225. package/apps/www/settings/filters/[uid].tsx +19 -14
  226. package/apps/www/settings/filters/_mailFilterRuleConfig.tsx +2 -2
  227. package/apps/www/settings/filters/index.tsx +4 -4
  228. package/apps/www/settings/filters/new/index.tsx +10 -8
  229. package/apps/www/settings/labels/index.tsx +12 -10
  230. package/apps/www/settings/privacy/index.tsx +18 -14
  231. package/apps/www/settings/profile/index.tsx +16 -11
  232. package/apps/www/settings/read-receipts/index.tsx +17 -12
  233. package/apps/www/settings/sharing/index.tsx +6 -6
  234. package/apps/www/settings/signatures/[uid].tsx +5 -5
  235. package/apps/www/settings/signatures/index.tsx +4 -4
  236. package/apps/www/settings/signatures/new/index.tsx +4 -4
  237. package/apps/www/settings/signatures/signatureDefaults.ts +1 -1
  238. package/apps/www/tasks/index.tsx +28 -23
  239. package/dist/apps/admin/_layout.d.ts +1 -1
  240. package/dist/apps/admin/_layout.js +1 -1
  241. package/dist/apps/admin/audit-log/index.d.ts +1 -1
  242. package/dist/apps/admin/audit-log/index.js +4 -4
  243. package/dist/apps/admin/branding/index.js +3 -3
  244. package/dist/apps/admin/data-requests/index.js +8 -8
  245. package/dist/apps/admin/distribution-lists/[uid].js +3 -3
  246. package/dist/apps/admin/distribution-lists/index.js +4 -4
  247. package/dist/apps/admin/distribution-lists/new/index.js +5 -5
  248. package/dist/apps/admin/domains/[uid].js +6 -6
  249. package/dist/apps/admin/domains/index.js +4 -4
  250. package/dist/apps/admin/domains/new/index.js +5 -5
  251. package/dist/apps/admin/encryption-policy/index.js +1 -1
  252. package/dist/apps/admin/escrow-scopes/[uid].d.ts +1 -1
  253. package/dist/apps/admin/escrow-scopes/[uid].js +7 -7
  254. package/dist/apps/admin/escrow-scopes/index.js +4 -4
  255. package/dist/apps/admin/escrow-scopes/new/index.js +5 -5
  256. package/dist/apps/admin/index.js +6 -6
  257. package/dist/apps/admin/ingest-queue/index.js +4 -4
  258. package/dist/apps/admin/mailbox-policy/index.js +1 -1
  259. package/dist/apps/admin/mailboxes/[uid].js +5 -5
  260. package/dist/apps/admin/quarantine/index.js +5 -5
  261. package/dist/apps/admin/retention-policy/index.js +3 -3
  262. package/dist/apps/admin/signing-certificates/index.js +5 -5
  263. package/dist/apps/admin/transport-rules/[uid].js +5 -5
  264. package/dist/apps/admin/transport-rules/_transportRuleConfig.d.ts +1 -1
  265. package/dist/apps/admin/transport-rules/_transportRuleConfig.js +2 -2
  266. package/dist/apps/admin/transport-rules/index.js +4 -4
  267. package/dist/apps/admin/transport-rules/new/index.js +5 -5
  268. package/dist/apps/escrow/_layout.d.ts +1 -1
  269. package/dist/apps/escrow/audit-log/index.d.ts +1 -1
  270. package/dist/apps/escrow/audit-log/index.js +4 -4
  271. package/dist/apps/escrow/index.js +4 -4
  272. package/dist/apps/escrow/matters/[uid].js +10 -10
  273. package/dist/apps/escrow/matters/new/index.js +6 -6
  274. package/dist/apps/shared/appearance/AppearanceForm.js +3 -3
  275. package/dist/apps/shared/appearance/AppearanceHead.js +1 -1
  276. package/dist/apps/shared/appearance/AppearanceProvider.d.ts +1 -1
  277. package/dist/apps/shared/appearance/AppearanceProvider.js +3 -3
  278. package/dist/apps/shared/appearance/appearanceCache.d.ts +1 -1
  279. package/dist/apps/shared/appearance/appearanceCache.js +1 -1
  280. package/dist/apps/shared/appearance/appearanceContext.d.ts +1 -1
  281. package/dist/apps/shared/appearance/theme.d.ts +1 -1
  282. package/dist/apps/shared/auth/adminAccess.js +1 -1
  283. package/dist/apps/shared/calendar/bookingPlugin.js +1 -1
  284. package/dist/apps/shared/calendar/calendarLiveUpdates.d.ts +1 -1
  285. package/dist/apps/shared/calendar/calendarReminders.d.ts +1 -1
  286. package/dist/apps/shared/calendar/useCalendarReminders.js +1 -1
  287. package/dist/apps/shared/components/admin/diagnostics/DiagnosticsManager.js +1 -1
  288. package/dist/apps/shared/components/admin/diagnostics/InstalledPlugins.d.ts +1 -1
  289. package/dist/apps/shared/components/admin/diagnostics/InstalledPlugins.js +2 -2
  290. package/dist/apps/shared/components/admin/diagnostics/LogsPanel.js +2 -2
  291. package/dist/apps/shared/components/admin/diagnostics/PackagesTable.js +1 -1
  292. package/dist/apps/shared/components/admin/diagnostics/RuntimePanel.js +1 -1
  293. package/dist/apps/shared/components/admin/diagnostics/SystemPanel.js +2 -2
  294. package/dist/apps/shared/components/admin/diagnostics/VersionsPanel.js +1 -1
  295. package/dist/apps/shared/components/admin/diagnostics/diagnosticsApi.js +1 -1
  296. package/dist/apps/shared/components/admin/diagnostics/format.js +1 -1
  297. package/dist/apps/shared/components/admin/diagnostics/logClient.js +1 -1
  298. package/dist/apps/shared/components/admin/distributionLists/MemberListCard.d.ts +1 -1
  299. package/dist/apps/shared/components/admin/distributionLists/MemberListCard.js +4 -4
  300. package/dist/apps/shared/components/admin/elevation.js +1 -1
  301. package/dist/apps/shared/components/admin/escrowScopes/EscrowScopeKeyAndHoldersFields.js +3 -3
  302. package/dist/apps/shared/components/admin/layout/AdminShell.d.ts +1 -1
  303. package/dist/apps/shared/components/admin/layout/AdminShell.js +7 -7
  304. package/dist/apps/shared/components/admin/mailboxes/EraseLeftoverDataDialog.d.ts +1 -1
  305. package/dist/apps/shared/components/admin/mailboxes/EraseLeftoverDataDialog.js +6 -6
  306. package/dist/apps/shared/components/admin/mailboxes/EscrowScopeCard.d.ts +1 -1
  307. package/dist/apps/shared/components/admin/mailboxes/EscrowScopeCard.js +10 -8
  308. package/dist/apps/shared/components/admin/mailboxes/LeftoverMailboxesSection.js +4 -4
  309. package/dist/apps/shared/components/admin/mailboxes/MailboxTable.d.ts +1 -1
  310. package/dist/apps/shared/components/admin/mailboxes/ResourceSettingsCard.d.ts +1 -1
  311. package/dist/apps/shared/components/admin/mailboxes/ResourceSettingsCard.js +7 -5
  312. package/dist/apps/shared/components/admin/mailboxes/ShareAccessCard.js +5 -5
  313. package/dist/apps/shared/components/admin/settings/BrandingForm.d.ts +1 -1
  314. package/dist/apps/shared/components/admin/settings/BrandingForm.js +5 -5
  315. package/dist/apps/shared/components/admin/settings/DomainDnsSetup.d.ts +1 -1
  316. package/dist/apps/shared/components/admin/settings/DomainDnsSetup.js +5 -5
  317. package/dist/apps/shared/components/admin/settings/EncryptionPolicyForm.d.ts +1 -1
  318. package/dist/apps/shared/components/admin/settings/EncryptionPolicyForm.js +4 -4
  319. package/dist/apps/shared/components/admin/settings/LoadedSettingsForm.js +2 -2
  320. package/dist/apps/shared/components/admin/settings/MailboxCreateForm.d.ts +1 -1
  321. package/dist/apps/shared/components/admin/settings/MailboxCreateForm.js +14 -12
  322. package/dist/apps/shared/components/admin/settings/MailboxPolicyForm.d.ts +1 -1
  323. package/dist/apps/shared/components/admin/settings/MailboxPolicyForm.js +4 -4
  324. package/dist/apps/shared/components/admin/settings/PluginsManager.js +5 -5
  325. package/dist/apps/shared/components/admin/settings/RetentionPolicyForm.d.ts +1 -1
  326. package/dist/apps/shared/components/admin/settings/RetentionPolicyForm.js +5 -5
  327. package/dist/apps/shared/components/admin/setup/EscrowSetupStep.js +7 -7
  328. package/dist/apps/shared/components/admin/setup/SetupWizard.js +26 -22
  329. package/dist/apps/shared/components/admin/signOut.js +1 -1
  330. package/dist/apps/shared/components/admin/usePagedList.js +2 -2
  331. package/dist/apps/shared/components/calendar/AppointmentQuickForm.js +3 -3
  332. package/dist/apps/shared/components/calendar/CalendarListSidebar.d.ts +1 -1
  333. package/dist/apps/shared/components/calendar/CalendarListSidebar.js +2 -2
  334. package/dist/apps/shared/components/calendar/DescriptionEditor.js +1 -1
  335. package/dist/apps/shared/components/calendar/EventDescriptionView.js +1 -1
  336. package/dist/apps/shared/components/calendar/EventDetails.d.ts +2 -2
  337. package/dist/apps/shared/components/calendar/EventDetails.js +16 -14
  338. package/dist/apps/shared/components/calendar/EventEditor.d.ts +2 -2
  339. package/dist/apps/shared/components/calendar/EventEditor.js +22 -20
  340. package/dist/apps/shared/components/calendar/EventExpandedForm.js +2 -2
  341. package/dist/apps/shared/components/calendar/EventFormParts.d.ts +1 -1
  342. package/dist/apps/shared/components/calendar/EventFormParts.js +1 -1
  343. package/dist/apps/shared/components/calendar/EventModal.d.ts +2 -2
  344. package/dist/apps/shared/components/calendar/EventModal.js +3 -3
  345. package/dist/apps/shared/components/calendar/EventQuickForm.js +3 -3
  346. package/dist/apps/shared/components/calendar/EventShell.js +1 -1
  347. package/dist/apps/shared/components/calendar/FindATime.js +6 -4
  348. package/dist/apps/shared/components/calendar/GuestInput.d.ts +2 -2
  349. package/dist/apps/shared/components/calendar/MonthView.d.ts +1 -1
  350. package/dist/apps/shared/components/calendar/MonthView.js +1 -1
  351. package/dist/apps/shared/components/calendar/QuickCreateFaces.js +1 -1
  352. package/dist/apps/shared/components/calendar/QuickFaceFrame.js +1 -1
  353. package/dist/apps/shared/components/calendar/RecurrenceEditor.d.ts +1 -1
  354. package/dist/apps/shared/components/calendar/RecurrenceEditor.js +1 -1
  355. package/dist/apps/shared/components/calendar/RequestChangeForm.js +8 -6
  356. package/dist/apps/shared/components/calendar/ResourcePicker.d.ts +1 -1
  357. package/dist/apps/shared/components/calendar/ResourcePicker.js +7 -5
  358. package/dist/apps/shared/components/calendar/SplitDayView.d.ts +1 -1
  359. package/dist/apps/shared/components/calendar/TaskQuickForm.d.ts +1 -1
  360. package/dist/apps/shared/components/calendar/TaskQuickForm.js +9 -7
  361. package/dist/apps/shared/components/calendar/TimeGridView.d.ts +1 -1
  362. package/dist/apps/shared/components/calendar/TimeGridView.js +1 -1
  363. package/dist/apps/shared/components/calendar/allDay.d.ts +2 -2
  364. package/dist/apps/shared/components/calendar/allDay.js +1 -1
  365. package/dist/apps/shared/components/calendar/eventDialogFields.d.ts +2 -2
  366. package/dist/apps/shared/components/calendar/eventDialogFields.js +2 -2
  367. package/dist/apps/shared/components/calendar/eventForm.d.ts +3 -3
  368. package/dist/apps/shared/components/calendar/eventFormat.d.ts +1 -1
  369. package/dist/apps/shared/components/calendar/eventFormat.js +2 -2
  370. package/dist/apps/shared/components/calendar/findTimeGrid.d.ts +1 -1
  371. package/dist/apps/shared/components/calendar/findTimeGrid.js +1 -1
  372. package/dist/apps/shared/components/calendar/layout/CalendarShell.d.ts +1 -1
  373. package/dist/apps/shared/components/calendar/layout/CalendarShell.js +11 -9
  374. package/dist/apps/shared/components/contacts/ContactDetailPane.d.ts +1 -1
  375. package/dist/apps/shared/components/contacts/ContactDetailPane.js +2 -2
  376. package/dist/apps/shared/components/contacts/ContactForm.d.ts +2 -2
  377. package/dist/apps/shared/components/contacts/ContactForm.js +12 -8
  378. package/dist/apps/shared/components/contacts/ContactsSidebar.d.ts +1 -1
  379. package/dist/apps/shared/components/contacts/ContactsSidebar.js +7 -5
  380. package/dist/apps/shared/components/contacts/KeyChangeReview.d.ts +1 -1
  381. package/dist/apps/shared/components/contacts/KeyChangeReview.js +5 -5
  382. package/dist/apps/shared/components/contacts/contactKeys.d.ts +2 -2
  383. package/dist/apps/shared/components/contacts/contactKeys.js +2 -2
  384. package/dist/apps/shared/components/contacts/layout/ContactsShell.d.ts +1 -1
  385. package/dist/apps/shared/components/contacts/layout/ContactsShell.js +9 -7
  386. package/dist/apps/shared/components/escrow/layout/EscrowShell.js +6 -6
  387. package/dist/apps/shared/components/forms/StringListField.js +1 -1
  388. package/dist/apps/shared/components/layout/AppShell.d.ts +2 -2
  389. package/dist/apps/shared/components/layout/AppShell.js +11 -9
  390. package/dist/apps/shared/components/layout/BrandingChrome.d.ts +1 -1
  391. package/dist/apps/shared/components/layout/KeyEnrollmentGate.d.ts +1 -1
  392. package/dist/apps/shared/components/layout/KeyEnrollmentGate.js +9 -9
  393. package/dist/apps/shared/components/layout/MailboxProvisioning.js +8 -6
  394. package/dist/apps/shared/components/layout/RecoveryCodeUnlock.d.ts +1 -1
  395. package/dist/apps/shared/components/layout/RecoveryCodeUnlock.js +9 -9
  396. package/dist/apps/shared/components/layout/UnlockPromptProvider.d.ts +2 -2
  397. package/dist/apps/shared/components/layout/UnlockPromptProvider.js +5 -5
  398. package/dist/apps/shared/components/layout/UserMenu.js +6 -4
  399. package/dist/apps/shared/components/mail/ConversationList.d.ts +2 -2
  400. package/dist/apps/shared/components/mail/ConversationList.js +6 -4
  401. package/dist/apps/shared/components/mail/ConversationThreadPane.d.ts +3 -3
  402. package/dist/apps/shared/components/mail/ConversationThreadPane.js +13 -11
  403. package/dist/apps/shared/components/mail/InviteCard.js +10 -8
  404. package/dist/apps/shared/components/mail/LazyReadingPane.js +2 -2
  405. package/dist/apps/shared/components/mail/MailAddress.d.ts +1 -1
  406. package/dist/apps/shared/components/mail/MailAddress.js +1 -1
  407. package/dist/apps/shared/components/mail/MailListToolbar.d.ts +2 -2
  408. package/dist/apps/shared/components/mail/MailSelectionBar.d.ts +2 -2
  409. package/dist/apps/shared/components/mail/MenuButton.js +1 -1
  410. package/dist/apps/shared/components/mail/MessageDetailPane.d.ts +3 -3
  411. package/dist/apps/shared/components/mail/MessageDetailPane.js +30 -28
  412. package/dist/apps/shared/components/mail/MoveToFolderDialog.d.ts +1 -1
  413. package/dist/apps/shared/components/mail/MoveToFolderDialog.js +8 -6
  414. package/dist/apps/shared/components/mail/OutboxRowStatus.d.ts +1 -1
  415. package/dist/apps/shared/components/mail/PermanentDeleteDialog.js +2 -2
  416. package/dist/apps/shared/components/mail/compose/ComposeContext.d.ts +10 -1
  417. package/dist/apps/shared/components/mail/compose/ComposeContext.js +4 -2
  418. package/dist/apps/shared/components/mail/compose/ComposeWindow.js +34 -30
  419. package/dist/apps/shared/components/mail/compose/ComposeWindowPlaceholder.js +4 -4
  420. package/dist/apps/shared/components/mail/compose/EmojiPicker.js +2 -2
  421. package/dist/apps/shared/components/mail/compose/GifPicker.js +3 -3
  422. package/dist/apps/shared/components/mail/compose/RecipientInput.d.ts +1 -1
  423. package/dist/apps/shared/components/mail/compose/RecipientInput.js +1 -1
  424. package/dist/apps/shared/components/mail/compose/ScheduleSendPicker.js +1 -1
  425. package/dist/apps/shared/components/mail/compose/encryptionRequirement.d.ts +2 -2
  426. package/dist/apps/shared/components/mail/compose/encryptionRequirement.js +1 -1
  427. package/dist/apps/shared/components/mail/compose/quotedBody.d.ts +3 -3
  428. package/dist/apps/shared/components/mail/compose/quotedBody.js +3 -3
  429. package/dist/apps/shared/components/mail/compose/recipients.d.ts +1 -1
  430. package/dist/apps/shared/components/mail/invite/InviteRowChip.d.ts +1 -1
  431. package/dist/apps/shared/components/mail/invite/InviteRsvpPopover.d.ts +1 -1
  432. package/dist/apps/shared/components/mail/invite/InviteRsvpPopover.js +9 -7
  433. package/dist/apps/shared/components/mail/invite/InviteTimeline.d.ts +1 -1
  434. package/dist/apps/shared/components/mail/invite/ProposeTimeForm.d.ts +1 -1
  435. package/dist/apps/shared/components/mail/invite/ProposeTimeForm.js +1 -1
  436. package/dist/apps/shared/components/mail/invite/inviteFormat.d.ts +2 -2
  437. package/dist/apps/shared/components/mail/invite/inviteStore.d.ts +9 -3
  438. package/dist/apps/shared/components/mail/invite/inviteStore.js +13 -6
  439. package/dist/apps/shared/components/mail/labelMenu.d.ts +1 -1
  440. package/dist/apps/shared/components/mail/labelMenu.js +9 -7
  441. package/dist/apps/shared/components/mail/layout/MailShell.d.ts +1 -1
  442. package/dist/apps/shared/components/mail/layout/MailShell.js +3 -3
  443. package/dist/apps/shared/components/mail/listPreferences.d.ts +2 -2
  444. package/dist/apps/shared/components/mail/listPreferences.js +1 -1
  445. package/dist/apps/shared/components/mail/pinnedSigners.d.ts +12 -5
  446. package/dist/apps/shared/components/mail/pinnedSigners.js +37 -18
  447. package/dist/apps/shared/components/mail/reading/EncryptedBody.js +2 -2
  448. package/dist/apps/shared/components/mail/reading/MessageBody.d.ts +2 -2
  449. package/dist/apps/shared/components/mail/reading/MessageBody.js +4 -4
  450. package/dist/apps/shared/components/mail/reading/MessageCard.d.ts +1 -1
  451. package/dist/apps/shared/components/mail/reading/MessageCard.js +2 -2
  452. package/dist/apps/shared/components/mail/reading/MessageSourceDialog.js +3 -3
  453. package/dist/apps/shared/components/mail/reading/PendingMessageCard.js +1 -1
  454. package/dist/apps/shared/components/mail/reading/bodyContent.d.ts +2 -2
  455. package/dist/apps/shared/components/mail/reading/bodyContent.js +2 -2
  456. package/dist/apps/shared/components/mail/reading/bodyHtml.js +1 -1
  457. package/dist/apps/shared/components/mail/reading/messageExport.js +1 -1
  458. package/dist/apps/shared/components/mail/reading/printMessage.d.ts +2 -2
  459. package/dist/apps/shared/components/mail/reading/useMessageActions.d.ts +1 -1
  460. package/dist/apps/shared/components/mail/reading/useMessageActions.js +18 -16
  461. package/dist/apps/shared/components/mail/unreadStyle.d.ts +1 -1
  462. package/dist/apps/shared/components/mail/verificationSeals.d.ts +27 -6
  463. package/dist/apps/shared/components/mail/verificationSeals.js +15 -11
  464. package/dist/apps/shared/components/mail/writableMailboxes.d.ts +8 -3
  465. package/dist/apps/shared/components/mail/writableMailboxes.js +12 -6
  466. package/dist/apps/shared/components/rules/RuleBuilder.js +1 -1
  467. package/dist/apps/shared/components/settings/SigningCertificateCard.d.ts +1 -1
  468. package/dist/apps/shared/components/settings/SigningCertificateCard.js +3 -3
  469. package/dist/apps/shared/components/settings/layout/SettingsShell.d.ts +1 -1
  470. package/dist/apps/shared/components/settings/layout/SettingsShell.js +8 -6
  471. package/dist/apps/shared/components/sharing/PrincipalListField.d.ts +1 -1
  472. package/dist/apps/shared/components/sharing/PrincipalPicker.d.ts +1 -1
  473. package/dist/apps/shared/components/sharing/PrincipalPicker.js +1 -1
  474. package/dist/apps/shared/components/sharing/PrincipalResolver.d.ts +1 -1
  475. package/dist/apps/shared/components/sharing/PrincipalResolver.js +3 -3
  476. package/dist/apps/shared/components/tasks/TasksSidebar.d.ts +1 -1
  477. package/dist/apps/shared/components/tasks/TasksSidebar.js +7 -5
  478. package/dist/apps/shared/components/tasks/layout/TasksShell.d.ts +1 -1
  479. package/dist/apps/shared/components/tasks/layout/TasksShell.js +9 -7
  480. package/dist/apps/shared/keyboard/ShortcutsDialog.js +1 -1
  481. package/dist/apps/shared/mail/findWellKnownFolderUid.d.ts +5 -3
  482. package/dist/apps/shared/mail/findWellKnownFolderUid.js +5 -4
  483. package/dist/apps/shared/mail/folderCounts.d.ts +1 -1
  484. package/dist/apps/shared/mail/folderCounts.js +6 -4
  485. package/dist/apps/shared/mail/folderOfType.d.ts +3 -2
  486. package/dist/apps/shared/mail/folderOfType.js +4 -4
  487. package/dist/apps/shared/mail/folderTree.d.ts +1 -1
  488. package/dist/apps/shared/mail/listSnapshots.d.ts +2 -2
  489. package/dist/apps/shared/mail/messageReadState.d.ts +4 -3
  490. package/dist/apps/shared/mail/messageReadState.js +5 -5
  491. package/dist/apps/shared/mail/newMailNotifications.d.ts +1 -1
  492. package/dist/apps/shared/mail/newMailNotifications.js +1 -1
  493. package/dist/apps/shared/mail/outbox/composeBridge.d.ts +2 -2
  494. package/dist/apps/shared/mail/outbox/outboxState.d.ts +1 -1
  495. package/dist/apps/shared/mail/outbox/outgoingReplies.d.ts +2 -2
  496. package/dist/apps/shared/mail/outbox/sendDecision.d.ts +2 -2
  497. package/dist/apps/shared/mail/outbox/sendDecision.js +1 -1
  498. package/dist/apps/shared/mail/outbox/sendJob.d.ts +10 -6
  499. package/dist/apps/shared/mail/outbox/sendJob.js +39 -35
  500. package/dist/apps/shared/mail/outbox/sendOutcomes.d.ts +6 -3
  501. package/dist/apps/shared/mail/outbox/sendOutcomes.js +19 -15
  502. package/dist/apps/shared/mail/outbox/useOutboxStatus.js +5 -3
  503. package/dist/apps/shared/mail/permanentDelete.d.ts +4 -3
  504. package/dist/apps/shared/mail/permanentDelete.js +8 -8
  505. package/dist/apps/shared/mail/primaryMailbox.d.ts +1 -1
  506. package/dist/apps/shared/mail/primaryMailbox.js +1 -1
  507. package/dist/apps/shared/mail/reportNotices.d.ts +1 -1
  508. package/dist/apps/shared/mail/senderBlocking.d.ts +5 -4
  509. package/dist/apps/shared/mail/senderBlocking.js +19 -16
  510. package/dist/apps/shared/mail/useMailConnection.d.ts +1 -1
  511. package/dist/apps/shared/mail/useMailConnection.js +12 -10
  512. package/dist/apps/shared/mail/useMailLiveUpdates.d.ts +2 -2
  513. package/dist/apps/shared/mail/useMailLiveUpdates.js +2 -2
  514. package/dist/apps/shared/mail/useMailboxUpdateAccess.d.ts +3 -2
  515. package/dist/apps/shared/mail/useMailboxUpdateAccess.js +31 -10
  516. package/dist/apps/shared/mail/useMarkMessageRead.d.ts +1 -1
  517. package/dist/apps/shared/mail/useMarkMessageRead.js +5 -3
  518. package/dist/apps/shared/mail/useNewMailNotifications.d.ts +1 -1
  519. package/dist/apps/shared/mail/usePermanentDelete.d.ts +1 -1
  520. package/dist/apps/shared/mail/usePermanentDelete.js +4 -2
  521. package/dist/apps/shared/navigation/pageTitle.d.ts +1 -1
  522. package/dist/apps/shared/notifications/NotificationCenter.js +1 -1
  523. package/dist/apps/shared/notifications/NotificationHistoryDialog.js +2 -2
  524. package/dist/apps/shared/notifications/apiErrors.js +2 -2
  525. package/dist/apps/shared/notifications/pushStatus.js +1 -1
  526. package/dist/apps/shared/notifications/systemErrors.js +1 -1
  527. package/dist/apps/shared/search/LocalIndexLifecycle.d.ts +2 -2
  528. package/dist/apps/shared/search/LocalIndexLifecycle.js +15 -10
  529. package/dist/apps/shared/search/crossMailboxSearch.d.ts +1 -1
  530. package/dist/apps/shared/search/crossMailboxSearch.js +2 -2
  531. package/dist/apps/shared/search/localIndexBuilder.d.ts +4 -3
  532. package/dist/apps/shared/search/localIndexBuilder.js +15 -12
  533. package/dist/apps/shared/search/localIndexKey.js +1 -1
  534. package/dist/apps/shared/search/localIndexRpcClient.d.ts +43 -31
  535. package/dist/apps/shared/search/localIndexRpcClient.js +113 -20
  536. package/dist/apps/shared/search/localIndexTransport.d.ts +77 -0
  537. package/dist/apps/shared/search/localIndexTransport.js +1 -0
  538. package/dist/apps/shared/search/localIndexWorker.d.ts +1 -1
  539. package/dist/apps/shared/search/searchTier2.d.ts +3 -3
  540. package/dist/apps/shared/signing/enrollmentTracker.d.ts +1 -1
  541. package/dist/apps/shared/signing/enrollmentTracker.js +3 -3
  542. package/dist/apps/shared/signing/enrollmentView.d.ts +1 -1
  543. package/dist/apps/shared/signing/signingInfo.d.ts +1 -1
  544. package/dist/apps/shared/signing/signingInfo.js +1 -1
  545. package/dist/apps/shared/signing/useSigningEnrollmentWatcher.d.ts +1 -1
  546. package/dist/apps/shared/signing/useSigningEnrollmentWatcher.js +5 -3
  547. package/dist/apps/shared/styles/app.css +14 -23
  548. package/dist/apps/www/_layout.d.ts +1 -1
  549. package/dist/apps/www/_layout.js +1 -1
  550. package/dist/apps/www/calendar/index.d.ts +1 -1
  551. package/dist/apps/www/calendar/index.js +20 -18
  552. package/dist/apps/www/contacts/[uid].d.ts +1 -1
  553. package/dist/apps/www/contacts/[uid].js +8 -6
  554. package/dist/apps/www/contacts/index.d.ts +1 -1
  555. package/dist/apps/www/contacts/index.js +19 -17
  556. package/dist/apps/www/index.d.ts +1 -1
  557. package/dist/apps/www/index.js +54 -50
  558. package/dist/apps/www/messages/[uid].d.ts +1 -1
  559. package/dist/apps/www/messages/[uid].js +11 -9
  560. package/dist/apps/www/settings/appearance/index.d.ts +1 -1
  561. package/dist/apps/www/settings/auto-reply/index.d.ts +1 -1
  562. package/dist/apps/www/settings/auto-reply/index.js +6 -4
  563. package/dist/apps/www/settings/blocked-senders/index.d.ts +1 -1
  564. package/dist/apps/www/settings/blocked-senders/index.js +6 -4
  565. package/dist/apps/www/settings/encryption/index.d.ts +1 -1
  566. package/dist/apps/www/settings/encryption/index.js +31 -29
  567. package/dist/apps/www/settings/filters/[uid].d.ts +1 -1
  568. package/dist/apps/www/settings/filters/[uid].js +11 -9
  569. package/dist/apps/www/settings/filters/_mailFilterRuleConfig.d.ts +2 -2
  570. package/dist/apps/www/settings/filters/index.d.ts +1 -1
  571. package/dist/apps/www/settings/filters/index.js +4 -4
  572. package/dist/apps/www/settings/filters/new/index.d.ts +1 -1
  573. package/dist/apps/www/settings/filters/new/index.js +10 -8
  574. package/dist/apps/www/settings/labels/index.d.ts +1 -1
  575. package/dist/apps/www/settings/labels/index.js +12 -10
  576. package/dist/apps/www/settings/privacy/index.d.ts +1 -1
  577. package/dist/apps/www/settings/privacy/index.js +18 -14
  578. package/dist/apps/www/settings/profile/index.d.ts +1 -1
  579. package/dist/apps/www/settings/profile/index.js +7 -5
  580. package/dist/apps/www/settings/read-receipts/index.d.ts +1 -1
  581. package/dist/apps/www/settings/read-receipts/index.js +5 -3
  582. package/dist/apps/www/settings/sharing/index.d.ts +1 -1
  583. package/dist/apps/www/settings/sharing/index.js +6 -6
  584. package/dist/apps/www/settings/signatures/[uid].d.ts +1 -1
  585. package/dist/apps/www/settings/signatures/[uid].js +5 -5
  586. package/dist/apps/www/settings/signatures/index.d.ts +1 -1
  587. package/dist/apps/www/settings/signatures/index.js +4 -4
  588. package/dist/apps/www/settings/signatures/new/index.d.ts +1 -1
  589. package/dist/apps/www/settings/signatures/new/index.js +4 -4
  590. package/dist/apps/www/settings/signatures/signatureDefaults.d.ts +1 -1
  591. package/dist/apps/www/settings/signatures/signatureDefaults.js +1 -1
  592. package/dist/apps/www/tasks/index.d.ts +1 -1
  593. package/dist/apps/www/tasks/index.js +17 -15
  594. package/dist/lib/admin/auditLogApi.d.ts +32 -0
  595. package/dist/lib/admin/auditLogApi.js +27 -0
  596. package/dist/lib/admin/distributionListsApi.d.ts +47 -0
  597. package/dist/lib/admin/distributionListsApi.js +34 -0
  598. package/dist/lib/admin/domainsApi.d.ts +75 -0
  599. package/dist/lib/admin/domainsApi.js +44 -0
  600. package/dist/lib/admin/escrowAccessRequestsApi.d.ts +79 -0
  601. package/dist/lib/admin/escrowAccessRequestsApi.js +46 -0
  602. package/dist/lib/admin/escrowAuditLogApi.d.ts +66 -0
  603. package/dist/lib/admin/escrowAuditLogApi.js +31 -0
  604. package/dist/lib/admin/escrowScopesApi.d.ts +78 -0
  605. package/dist/lib/admin/escrowScopesApi.js +50 -0
  606. package/dist/lib/admin/leftoverMailboxApi.d.ts +73 -0
  607. package/dist/lib/admin/leftoverMailboxApi.js +67 -0
  608. package/dist/lib/admin/mailboxPolicyApi.d.ts +27 -0
  609. package/dist/lib/admin/mailboxPolicyApi.js +21 -0
  610. package/dist/lib/admin/matterExportApi.d.ts +40 -0
  611. package/dist/lib/admin/matterExportApi.js +39 -0
  612. package/dist/lib/admin/matterSearchApi.d.ts +20 -0
  613. package/dist/lib/admin/matterSearchApi.js +27 -0
  614. package/dist/lib/admin/mattersApi.d.ts +56 -0
  615. package/dist/lib/admin/mattersApi.js +40 -0
  616. package/dist/lib/admin/pluginsApi.d.ts +265 -0
  617. package/dist/lib/admin/pluginsApi.js +102 -0
  618. package/dist/lib/admin/retentionPolicyApi.d.ts +32 -0
  619. package/dist/lib/admin/retentionPolicyApi.js +29 -0
  620. package/dist/lib/admin/setupApi.d.ts +23 -0
  621. package/dist/lib/admin/setupApi.js +26 -0
  622. package/dist/lib/admin/transportRulesApi.d.ts +66 -0
  623. package/dist/lib/admin/transportRulesApi.js +43 -0
  624. package/dist/lib/appearance/preferencesApi.d.ts +128 -0
  625. package/dist/lib/appearance/preferencesApi.js +257 -0
  626. package/dist/lib/auth/profileApi.d.ts +33 -0
  627. package/dist/lib/auth/profileApi.js +52 -0
  628. package/dist/lib/auth/session.d.ts +70 -0
  629. package/dist/lib/auth/session.js +210 -0
  630. package/dist/lib/branding/brandingApi.d.ts +47 -0
  631. package/dist/lib/branding/brandingApi.js +61 -0
  632. package/dist/lib/branding/useBranding.d.ts +23 -0
  633. package/dist/lib/branding/useBranding.js +65 -0
  634. package/dist/lib/calendar/calendarApi.d.ts +230 -0
  635. package/dist/lib/calendar/calendarApi.js +106 -0
  636. package/dist/lib/calendar/calendarColors.d.ts +18 -0
  637. package/dist/lib/calendar/calendarColors.js +39 -0
  638. package/dist/lib/calendar/calendarDragIds.d.ts +42 -0
  639. package/dist/lib/calendar/calendarDragIds.js +92 -0
  640. package/dist/lib/calendar/calendarMutations.d.ts +68 -0
  641. package/dist/lib/calendar/calendarMutations.js +190 -0
  642. package/dist/lib/calendar/eventDescription.d.ts +43 -0
  643. package/dist/lib/calendar/eventDescription.js +195 -0
  644. package/dist/lib/calendar/freeBusyApi.d.ts +100 -0
  645. package/dist/lib/calendar/freeBusyApi.js +119 -0
  646. package/dist/lib/calendar/inviteApi.d.ts +121 -0
  647. package/dist/lib/calendar/inviteApi.js +54 -0
  648. package/dist/lib/calendar/recurrence.d.ts +60 -0
  649. package/dist/lib/calendar/recurrence.js +225 -0
  650. package/dist/lib/components/avatar/ContactAvatar.d.ts +8 -0
  651. package/dist/lib/components/avatar/ContactAvatar.js +26 -0
  652. package/dist/lib/components/buttons/Button.d.ts +9 -0
  653. package/dist/lib/components/buttons/Button.js +14 -0
  654. package/dist/lib/components/buttons/CopyButton.d.ts +18 -0
  655. package/dist/lib/components/buttons/CopyButton.js +14 -0
  656. package/dist/lib/components/feedback/Alert.d.ts +4 -0
  657. package/dist/lib/components/feedback/Alert.js +4 -0
  658. package/dist/lib/components/feedback/Skeleton.d.ts +21 -0
  659. package/dist/lib/components/feedback/Skeleton.js +14 -0
  660. package/dist/lib/components/forms/FormField.d.ts +8 -0
  661. package/dist/lib/components/forms/FormField.js +5 -0
  662. package/dist/lib/components/navigation/BottomTabBar.d.ts +27 -0
  663. package/dist/lib/components/navigation/BottomTabBar.js +32 -0
  664. package/dist/lib/components/overlays/Drawer.d.ts +20 -0
  665. package/dist/lib/components/overlays/Drawer.js +27 -0
  666. package/dist/lib/components/overlays/Modal.d.ts +17 -0
  667. package/dist/lib/components/overlays/Modal.js +25 -0
  668. package/dist/lib/components/overlays/PopoverPortal.d.ts +23 -0
  669. package/dist/lib/components/overlays/PopoverPortal.js +53 -0
  670. package/dist/lib/components/overlays/overlayStack.d.ts +31 -0
  671. package/dist/lib/components/overlays/overlayStack.js +143 -0
  672. package/dist/lib/components/pickers/MiniDatePicker.d.ts +13 -0
  673. package/dist/lib/components/pickers/MiniDatePicker.js +42 -0
  674. package/dist/lib/contacts/contactsApi.d.ts +174 -0
  675. package/dist/lib/contacts/contactsApi.js +139 -0
  676. package/dist/lib/contacts/vcard.d.ts +23 -0
  677. package/dist/lib/contacts/vcard.js +179 -0
  678. package/dist/lib/crypto/composeSecurity.d.ts +67 -0
  679. package/dist/lib/crypto/composeSecurity.js +93 -0
  680. package/dist/lib/crypto/encoding.d.ts +9 -0
  681. package/dist/lib/crypto/encoding.js +32 -0
  682. package/dist/lib/crypto/escrowKeys.d.ts +25 -0
  683. package/dist/lib/crypto/escrowKeys.js +59 -0
  684. package/dist/lib/crypto/idleTimeout.d.ts +16 -0
  685. package/dist/lib/crypto/idleTimeout.js +47 -0
  686. package/dist/lib/crypto/keySession.d.ts +159 -0
  687. package/dist/lib/crypto/keySession.js +367 -0
  688. package/dist/lib/crypto/keys.d.ts +50 -0
  689. package/dist/lib/crypto/keys.js +89 -0
  690. package/dist/lib/crypto/keyvaultApi.d.ts +394 -0
  691. package/dist/lib/crypto/keyvaultApi.js +350 -0
  692. package/dist/lib/crypto/masterKey.d.ts +59 -0
  693. package/dist/lib/crypto/masterKey.js +104 -0
  694. package/dist/lib/crypto/masterKeyWraps.d.ts +108 -0
  695. package/dist/lib/crypto/masterKeyWraps.js +228 -0
  696. package/dist/lib/crypto/messageSecurity.d.ts +248 -0
  697. package/dist/lib/crypto/messageSecurity.js +367 -0
  698. package/dist/lib/crypto/mime.d.ts +143 -0
  699. package/dist/lib/crypto/mime.js +504 -0
  700. package/dist/lib/crypto/passkeyUnlock.d.ts +20 -0
  701. package/dist/lib/crypto/passkeyUnlock.js +79 -0
  702. package/dist/lib/crypto/passwordUnlock.d.ts +39 -0
  703. package/dist/lib/crypto/passwordUnlock.js +73 -0
  704. package/dist/lib/crypto/recoveryCode.d.ts +28 -0
  705. package/dist/lib/crypto/recoveryCode.js +86 -0
  706. package/dist/lib/crypto/signingProviderApi.d.ts +95 -0
  707. package/dist/lib/crypto/signingProviderApi.js +60 -0
  708. package/dist/lib/crypto/smime.d.ts +128 -0
  709. package/dist/lib/crypto/smime.js +402 -0
  710. package/dist/lib/crypto/smimeMessage.d.ts +132 -0
  711. package/dist/lib/crypto/smimeMessage.js +341 -0
  712. package/dist/lib/crypto/useIdleKeyTimeout.d.ts +10 -0
  713. package/dist/lib/crypto/useIdleKeyTimeout.js +163 -0
  714. package/dist/lib/crypto/verificationSeal.d.ts +56 -0
  715. package/dist/lib/crypto/verificationSeal.js +220 -0
  716. package/dist/lib/mail/compose/composeQuoting.d.ts +88 -0
  717. package/dist/lib/mail/compose/composeQuoting.js +204 -0
  718. package/dist/lib/mail/compose/emojiData.d.ts +9 -0
  719. package/dist/lib/mail/compose/emojiData.js +18 -0
  720. package/dist/lib/mail/compose/giphyApi.d.ts +17 -0
  721. package/dist/lib/mail/compose/giphyApi.js +20 -0
  722. package/dist/lib/mail/conversationsApi.d.ts +80 -0
  723. package/dist/lib/mail/conversationsApi.js +44 -0
  724. package/dist/lib/mail/dataExportApi.d.ts +50 -0
  725. package/dist/lib/mail/dataExportApi.js +40 -0
  726. package/dist/lib/mail/directoryApi.d.ts +49 -0
  727. package/dist/lib/mail/directoryApi.js +101 -0
  728. package/dist/lib/mail/erasureRequestApi.d.ts +45 -0
  729. package/dist/lib/mail/erasureRequestApi.js +43 -0
  730. package/dist/lib/mail/flaggedMessages.d.ts +22 -0
  731. package/dist/lib/mail/flaggedMessages.js +73 -0
  732. package/dist/lib/mail/focusedInboxOverridesApi.d.ts +37 -0
  733. package/dist/lib/mail/focusedInboxOverridesApi.js +34 -0
  734. package/dist/lib/mail/labelsApi.d.ts +47 -0
  735. package/dist/lib/mail/labelsApi.js +38 -0
  736. package/dist/lib/mail/mailAddress.d.ts +27 -0
  737. package/dist/lib/mail/mailAddress.js +54 -0
  738. package/dist/lib/mail/mailApi.d.ts +850 -0
  739. package/dist/lib/mail/mailApi.js +602 -0
  740. package/dist/lib/mail/mailDetailHooks.d.ts +10 -0
  741. package/dist/lib/mail/mailDetailHooks.js +53 -0
  742. package/dist/lib/mail/mailFilterRulesApi.d.ts +76 -0
  743. package/dist/lib/mail/mailFilterRulesApi.js +45 -0
  744. package/dist/lib/mail/mailSignaturesApi.d.ts +49 -0
  745. package/dist/lib/mail/mailSignaturesApi.js +42 -0
  746. package/dist/lib/mail/mailboxAccessApi.d.ts +74 -0
  747. package/dist/lib/mail/mailboxAccessApi.js +56 -0
  748. package/dist/lib/mail/mailboxImportApi.d.ts +53 -0
  749. package/dist/lib/mail/mailboxImportApi.js +51 -0
  750. package/dist/lib/mail/messageBodySanitizer.d.ts +16 -0
  751. package/dist/lib/mail/messageBodySanitizer.js +118 -0
  752. package/dist/lib/mail/pushClient.d.ts +106 -0
  753. package/dist/lib/mail/pushClient.js +317 -0
  754. package/dist/lib/mail/sendEvents.d.ts +33 -0
  755. package/dist/lib/mail/sendEvents.js +44 -0
  756. package/dist/lib/mail/sendFailure.d.ts +16 -0
  757. package/dist/lib/mail/sendFailure.js +86 -0
  758. package/dist/lib/mail/senderListsApi.d.ts +69 -0
  759. package/dist/lib/mail/senderListsApi.js +126 -0
  760. package/dist/lib/search/queryGrammar.d.ts +51 -0
  761. package/dist/lib/search/queryGrammar.js +111 -0
  762. package/dist/lib/search/searchApi.d.ts +100 -0
  763. package/dist/lib/search/searchApi.js +107 -0
  764. package/dist/lib/search/searchScoring.d.ts +34 -0
  765. package/dist/lib/search/searchScoring.js +44 -0
  766. package/dist/lib/search/searchTier3.d.ts +64 -0
  767. package/dist/lib/search/searchTier3.js +335 -0
  768. package/dist/lib/tasks/tasksApi.d.ts +85 -0
  769. package/dist/lib/tasks/tasksApi.js +55 -0
  770. package/dist/lib/util/api.d.ts +160 -0
  771. package/dist/lib/util/api.js +251 -0
  772. package/dist/lib/util/apiClientContext.d.ts +7 -0
  773. package/dist/lib/util/apiClientContext.js +32 -0
  774. package/dist/lib/util/apiQuery.d.ts +32 -0
  775. package/dist/lib/util/apiQuery.js +42 -0
  776. package/dist/lib/util/clipboard.d.ts +7 -0
  777. package/dist/lib/util/clipboard.js +56 -0
  778. package/dist/lib/util/dateInput.d.ts +6 -0
  779. package/dist/lib/util/dateInput.js +14 -0
  780. package/dist/lib/util/timeZone.d.ts +12 -0
  781. package/dist/lib/util/timeZone.js +32 -0
  782. package/dist/lib/util/useCopyToClipboard.d.ts +12 -0
  783. package/dist/lib/util/useCopyToClipboard.js +34 -0
  784. package/dist/lib/util/useIsMobile.d.ts +10 -0
  785. package/dist/lib/util/useIsMobile.js +29 -0
  786. package/dist/lib/videoconf/videoMeetingsApi.d.ts +116 -0
  787. package/dist/lib/videoconf/videoMeetingsApi.js +49 -0
  788. package/lib/admin/auditLogApi.ts +48 -0
  789. package/lib/admin/distributionListsApi.ts +77 -0
  790. package/lib/admin/domainsApi.ts +113 -0
  791. package/lib/admin/escrowAccessRequestsApi.ts +110 -0
  792. package/lib/admin/escrowAuditLogApi.ts +101 -0
  793. package/lib/admin/escrowScopesApi.ts +112 -0
  794. package/lib/admin/leftoverMailboxApi.ts +120 -0
  795. package/lib/admin/mailboxPolicyApi.ts +38 -0
  796. package/lib/admin/matterExportApi.ts +62 -0
  797. package/lib/admin/matterSearchApi.ts +35 -0
  798. package/lib/admin/mattersApi.ts +86 -0
  799. package/lib/admin/pluginsApi.ts +339 -0
  800. package/lib/admin/retentionPolicyApi.ts +46 -0
  801. package/lib/admin/setupApi.ts +40 -0
  802. package/lib/admin/transportRulesApi.ts +106 -0
  803. package/lib/appearance/preferencesApi.ts +335 -0
  804. package/lib/auth/profileApi.ts +77 -0
  805. package/lib/auth/session.ts +238 -0
  806. package/lib/branding/brandingApi.ts +97 -0
  807. package/lib/branding/useBranding.ts +81 -0
  808. package/lib/calendar/calendarApi.ts +309 -0
  809. package/lib/calendar/calendarColors.ts +45 -0
  810. package/lib/calendar/calendarDragIds.ts +112 -0
  811. package/lib/calendar/calendarMutations.ts +236 -0
  812. package/lib/calendar/eventDescription.ts +211 -0
  813. package/lib/calendar/freeBusyApi.ts +197 -0
  814. package/lib/calendar/inviteApi.ts +154 -0
  815. package/lib/calendar/recurrence.ts +285 -0
  816. package/lib/components/avatar/ContactAvatar.tsx +47 -0
  817. package/lib/components/buttons/Button.tsx +40 -0
  818. package/lib/components/buttons/CopyButton.tsx +45 -0
  819. package/lib/components/feedback/Alert.tsx +13 -0
  820. package/lib/components/feedback/Skeleton.tsx +38 -0
  821. package/lib/components/forms/FormField.tsx +23 -0
  822. package/lib/components/navigation/BottomTabBar.tsx +66 -0
  823. package/lib/components/overlays/Drawer.tsx +72 -0
  824. package/lib/components/overlays/Modal.tsx +64 -0
  825. package/lib/components/overlays/PopoverPortal.tsx +74 -0
  826. package/lib/components/overlays/overlayStack.ts +165 -0
  827. package/lib/components/pickers/MiniDatePicker.tsx +90 -0
  828. package/lib/contacts/contactsApi.ts +289 -0
  829. package/lib/contacts/vcard.ts +197 -0
  830. package/lib/crypto/composeSecurity.ts +140 -0
  831. package/lib/crypto/encoding.ts +36 -0
  832. package/lib/crypto/escrowKeys.ts +74 -0
  833. package/lib/crypto/idleTimeout.ts +49 -0
  834. package/lib/crypto/keySession.ts +483 -0
  835. package/lib/crypto/keys.ts +105 -0
  836. package/lib/crypto/keyvaultApi.ts +674 -0
  837. package/lib/crypto/masterKey.ts +134 -0
  838. package/lib/crypto/masterKeyWraps.ts +269 -0
  839. package/lib/crypto/messageSecurity.ts +600 -0
  840. package/lib/crypto/mime.ts +568 -0
  841. package/lib/crypto/passkeyUnlock.ts +103 -0
  842. package/lib/crypto/passwordUnlock.ts +98 -0
  843. package/lib/crypto/recoveryCode.ts +93 -0
  844. package/lib/crypto/signingProviderApi.ts +135 -0
  845. package/lib/crypto/smime.ts +459 -0
  846. package/lib/crypto/smimeMessage.ts +491 -0
  847. package/lib/crypto/useIdleKeyTimeout.ts +176 -0
  848. package/lib/crypto/verificationSeal.ts +288 -0
  849. package/lib/mail/compose/composeQuoting.ts +243 -0
  850. package/lib/mail/compose/emojiData.ts +34 -0
  851. package/lib/mail/compose/giphyApi.ts +31 -0
  852. package/lib/mail/conversationsApi.ts +123 -0
  853. package/lib/mail/dataExportApi.ts +73 -0
  854. package/lib/mail/directoryApi.ts +161 -0
  855. package/lib/mail/erasureRequestApi.ts +71 -0
  856. package/lib/mail/flaggedMessages.ts +80 -0
  857. package/lib/mail/focusedInboxOverridesApi.ts +64 -0
  858. package/lib/mail/labelsApi.ts +71 -0
  859. package/lib/mail/mailAddress.ts +76 -0
  860. package/lib/mail/mailApi.ts +1286 -0
  861. package/lib/mail/mailDetailHooks.ts +57 -0
  862. package/lib/mail/mailFilterRulesApi.ts +116 -0
  863. package/lib/mail/mailSignaturesApi.ts +84 -0
  864. package/lib/mail/mailboxAccessApi.ts +106 -0
  865. package/lib/mail/mailboxImportApi.ts +87 -0
  866. package/lib/mail/messageBodySanitizer.ts +129 -0
  867. package/lib/mail/pushClient.ts +375 -0
  868. package/lib/mail/sendEvents.ts +72 -0
  869. package/lib/mail/sendFailure.ts +98 -0
  870. package/lib/mail/senderListsApi.ts +161 -0
  871. package/lib/search/queryGrammar.ts +179 -0
  872. package/lib/search/searchApi.ts +199 -0
  873. package/lib/search/searchScoring.ts +46 -0
  874. package/lib/search/searchTier3.ts +406 -0
  875. package/lib/tasks/tasksApi.ts +128 -0
  876. package/lib/util/api.ts +318 -0
  877. package/lib/util/apiClientContext.ts +35 -0
  878. package/lib/util/apiQuery.ts +61 -0
  879. package/lib/util/clipboard.ts +55 -0
  880. package/lib/util/dateInput.ts +15 -0
  881. package/lib/util/timeZone.ts +33 -0
  882. package/lib/util/useCopyToClipboard.ts +48 -0
  883. package/lib/util/useIsMobile.ts +34 -0
  884. package/lib/videoconf/videoMeetingsApi.ts +144 -0
  885. package/package.json +10 -4
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { Folder, Message } from "@rapidmx/react-shared/mail/mailApi.js";
3
- import { Label } from "@rapidmx/react-shared/mail/labelsApi.js";
2
+ import { Folder, Message } from "../../../../lib/mail/mailApi.js";
3
+ import { Label } from "../../../../lib/mail/labelsApi.js";
4
4
  export interface MailSelectionBarProps {
5
5
  selected: Message[];
6
6
  /** Every message currently listed - what "Select all" selects and what `allSelected` is measured against. */
@@ -5,7 +5,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
5
5
  ///////////////////////////////////////////////////////////////////////////////
6
6
  import { useEffect, useRef, useState } from "react";
7
7
  import { HiCheck, HiChevronDown, HiChevronLeft, HiChevronRight, HiMinus } from "react-icons/hi2";
8
- import PopoverPortal from "@rapidmx/react-shared/components/overlays/PopoverPortal.js";
8
+ import PopoverPortal from "../../../../lib/components/overlays/PopoverPortal.js";
9
9
  // `PopoverPortal` positions a fixed-size box (it has no auto-height mode), so the menu's height is
10
10
  // computed from its own contents rather than measured - from whichever level is *shown*, so a submenu
11
11
  // isn't left standing in the parent menu's taller box. These are the exact heights the classes below
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
- import { Attachment, Folder, Message } from "@rapidmx/react-shared/mail/mailApi.js";
3
- import { Label } from "@rapidmx/react-shared/mail/labelsApi.js";
4
- import type { MessageSecurityResult } from "@rapidmx/react-shared/crypto/messageSecurity.js";
2
+ import { Attachment, Folder, Message } from "../../../../lib/mail/mailApi.js";
3
+ import { Label } from "../../../../lib/mail/labelsApi.js";
4
+ import type { MessageSecurityResult } from "../../../../lib/crypto/messageSecurity.js";
5
5
  /** The detail line under a `verified_at_first_open` badge. */
6
6
  export declare function verifiedAtFirstOpenMessage(result: MessageSecurityResult): string;
7
7
  export interface SenderNameCheck {
@@ -5,26 +5,27 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
5
5
  ///////////////////////////////////////////////////////////////////////////////
6
6
  import { useEffect, useRef, useState } from "react";
7
7
  import { HiOutlineArchiveBox, HiOutlineArrowUturnLeft, HiOutlineArrowUturnRight, HiOutlineCheck, HiOutlineExclamationTriangle, HiOutlineFolderArrowDown, HiOutlineInboxArrowDown, HiOutlineLockClosed, HiOutlineMoon, HiOutlineNoSymbol, HiOutlineSun, } from "react-icons/hi2";
8
- import { ApiRequestError } from "@rapidmx/react-shared/util/api.js";
9
- import { approveReceipt, archiveMessage, attachmentContentUrl, cancelScheduledSend, declineReceipt, getMailbox, getMessage, getMessageRawContent, moveMessage, recallMessage, setMessageLabels, } from "@rapidmx/react-shared/mail/mailApi.js";
10
- import { buildForwardQuote, buildReplyQuote, buildReplyRecipients, buildReplyThreading, forwardSubject, replySubject, } from "@rapidmx/react-shared/mail/compose/composeQuoting.js";
8
+ import { ApiRequestError } from "../../../../lib/util/api.js";
9
+ import { approveReceipt, archiveMessage, attachmentContentUrl, cancelScheduledSend, declineReceipt, getMailbox, getMessage, getMessageRawContent, moveMessage, recallMessage, setMessageLabels, } from "../../../../lib/mail/mailApi.js";
10
+ import { buildForwardQuote, buildReplyQuote, buildReplyRecipients, buildReplyThreading, forwardSubject, replySubject, } from "../../../../lib/mail/compose/composeQuoting.js";
11
11
  import MoveToFolderDialog from "./MoveToFolderDialog.js";
12
12
  import InviteCard from "./InviteCard.js";
13
13
  import { isCalendarAttachment } from "./invite/inviteFormat.js";
14
14
  import { useMessageInvite } from "./invite/inviteStore.js";
15
- import { getUnlockedKeys, subscribeKeySession } from "@rapidmx/react-shared/crypto/keySession.js";
16
- import { extractAddresses } from "@rapidmx/react-shared/crypto/mime.js";
17
- import { SignerKeyConflictError, signingKeyFingerprints, trustSigner } from "@rapidmx/react-shared/crypto/keyvaultApi.js";
18
- import { isLikelyMailingList } from "@rapidmx/react-shared/crypto/composeSecurity.js";
15
+ import { getUnlockedKeys, subscribeKeySession } from "../../../../lib/crypto/keySession.js";
16
+ import { extractAddresses } from "../../../../lib/crypto/mime.js";
17
+ import { SignerKeyConflictError, signingKeyFingerprints, trustSigner } from "../../../../lib/crypto/keyvaultApi.js";
18
+ import { isLikelyMailingList } from "../../../../lib/crypto/composeSecurity.js";
19
19
  import { clearPinnedSignerCache, getPinnedSignerFingerprints, getSignerKeyState } from "./pinnedSigners.js";
20
20
  import { currentVerificationSeal, getVaultGeneration, sendVerificationSeal } from "./verificationSeals.js";
21
- import { getMyMailboxAccess } from "@rapidmx/react-shared/mail/mailboxAccessApi.js";
21
+ import { getMyMailboxAccess } from "../../../../lib/mail/mailboxAccessApi.js";
22
+ import { useApiClient } from "../../../../lib/util/apiClientContext.js";
22
23
  import KeyChangeReview from "../contacts/KeyChangeReview.js";
23
24
  import { KEY_CHANGE_STALE_MESSAGE, sameFingerprint } from "../contacts/contactKeys.js";
24
25
  import { prefetchComposeWindow, useCompose } from "./compose/ComposeContext.js";
25
26
  import { loadOriginalMessage, prefetchOriginalMessage } from "./compose/quotedBody.js";
26
27
  import { formatRecipient } from "./compose/recipients.js";
27
- import { formatMailAddress } from "@rapidmx/react-shared/mail/mailAddress.js";
28
+ import { formatMailAddress } from "../../../../lib/mail/mailAddress.js";
28
29
  import MailAddress, { RecipientLine } from "./MailAddress.js";
29
30
  import { useMailShell } from "./layout/MailShell.js";
30
31
  import { ariaKeyShortcuts, withHint } from "../../keyboard/format.js";
@@ -37,10 +38,10 @@ import { useNavigate } from "../../navigation/index.js";
37
38
  import { notify } from "../../notifications/store.js";
38
39
  import { notifyApiError } from "../../notifications/apiErrors.js";
39
40
  import { useMailboxUpdateAccess } from "../../mail/useMailboxUpdateAccess.js";
40
- import Modal from "@rapidmx/react-shared/components/overlays/Modal.js";
41
- import Alert from "@rapidmx/react-shared/components/feedback/Alert.js";
41
+ import Modal from "../../../../lib/components/overlays/Modal.js";
42
+ import Alert from "../../../../lib/components/feedback/Alert.js";
42
43
  import LabelMenuButton from "./labelMenu.js";
43
- import Button from "@rapidmx/react-shared/components/buttons/Button.js";
44
+ import Button from "../../../../lib/components/buttons/Button.js";
44
45
  import EncryptedBody from "./reading/EncryptedBody.js";
45
46
  import { displaySubject } from "./reading/EncryptedPreview.js";
46
47
  import MessageBody, { BodySkeleton } from "./reading/MessageBody.js";
@@ -271,6 +272,7 @@ function MessageDetailContent({ message: messageProp, attachments, backHref, isS
271
272
  const [nowMs, setNowMs] = useState(() => Date.now());
272
273
  const { mailboxes, trackMessageChange } = useMailShell();
273
274
  const { requestUnlock } = useUnlockPrompt();
275
+ const client = useApiClient();
274
276
  // Bumped after a successful on-demand unlock to re-run the effect below - it's not a dependency the
275
277
  // effect could read reactively otherwise (getUnlockedKeys() is a plain module-level read, not React
276
278
  // state; see keySession.ts's own doc comment).
@@ -317,14 +319,14 @@ function MessageDetailContent({ message: messageProp, attachments, backHref, isS
317
319
  // mailbox's own signing keys when it sent the message itself. A failed lookup means no pins, which can only
318
320
  // ever make a signature "signer not verified", never verified.
319
321
  const senderAddress = message.from.address;
320
- const pinsPromise = getPinnedSignerFingerprints(message.mailboxUid, senderAddress).then((fingerprints) => ({ loaded: true, fingerprints }), () => ({ loaded: false, fingerprints: [] }));
322
+ const pinsPromise = getPinnedSignerFingerprints(message.mailboxUid, senderAddress, client).then((fingerprints) => ({ loaded: true, fingerprints }), () => ({ loaded: false, fingerprints: [] }));
321
323
  // Verification seals (see `verificationSeals.ts`) need unlocked keys and the vault's current master key
322
324
  // generation; without either the message is evaluated exactly as before, with no seal. The sender's key records
323
325
  // are loaded alongside, so a seal can say when the signer key was later revoked as compromised.
324
326
  let keyStatePromise;
325
- const loadKeyState = () => (keyStatePromise ?? (keyStatePromise = getSignerKeyState(message.mailboxUid, senderAddress).catch(() => undefined)));
327
+ const loadKeyState = () => (keyStatePromise ?? (keyStatePromise = getSignerKeyState(message.mailboxUid, senderAddress, client).catch(() => undefined)));
326
328
  const sealContextPromise = getUnlockedKeys(message.mailboxUid)
327
- ? getVaultGeneration(message.mailboxUid).then(async (generation) => generation === undefined ? undefined : { generation, keyState: await loadKeyState() })
329
+ ? getVaultGeneration(message.mailboxUid, client).then(async (generation) => generation === undefined ? undefined : { generation, keyState: await loadKeyState() })
328
330
  : undefined;
329
331
  getMessageRawContent(message.uid)
330
332
  .then(async (rawMime) => {
@@ -333,7 +335,7 @@ function MessageDetailContent({ message: messageProp, attachments, backHref, isS
333
335
  }
334
336
  // The S/MIME code (PKI.js and the ASN.1/X.509 libraries) loads here, only for a message that is signed or
335
337
  // encrypted - it is over half a megabyte, and the pane opens plain messages without it.
336
- const messageSecurity = await import("@rapidmx/react-shared/crypto/messageSecurity.js");
338
+ const messageSecurity = await import("../../../../lib/crypto/messageSecurity.js");
337
339
  const [primaryAddress, ...aliasAddresses] = readerAddressesKey ? readerAddressesKey.split(" ") : [];
338
340
  const ownAddresses = readerAddressesKey.toLowerCase().split(" ");
339
341
  const ownKeys = ownAddresses.includes(senderAddress.toLowerCase()) ? (readerMailbox.keys ?? []) : [];
@@ -362,7 +364,7 @@ function MessageDetailContent({ message: messageProp, attachments, backHref, isS
362
364
  messageSecurity.evaluateMessageSecurity(rawMime, undefined, pinned, primaryAddress));
363
365
  if (result.sealToWrite) {
364
366
  // Best effort and in the background: never awaited, never shown.
365
- void sendVerificationSeal(message.uid, result.sealToWrite);
367
+ void sendVerificationSeal(message.uid, result.sealToWrite, client);
366
368
  }
367
369
  }
368
370
  else {
@@ -381,7 +383,7 @@ function MessageDetailContent({ message: messageProp, attachments, backHref, isS
381
383
  const keyChanged = signerKeyChanged(result);
382
384
  const [keyState, access] = await Promise.all([
383
385
  keyChanged || (unpinned && UNVERIFIED_SIGNER_STATES.has(result.state)) ? loadKeyState() : undefined,
384
- keyChanged ? getMyMailboxAccess(message.mailboxUid).then((a) => a.canUpdate, () => undefined) : undefined,
386
+ keyChanged ? getMyMailboxAccess(message.mailboxUid, client).then((a) => a.canUpdate, () => undefined) : undefined,
385
387
  ]);
386
388
  if (!cancelled) {
387
389
  setSecurity(result);
@@ -398,7 +400,7 @@ function MessageDetailContent({ message: messageProp, attachments, backHref, isS
398
400
  return () => {
399
401
  cancelled = true;
400
402
  };
401
- }, [message.uid, message.mailboxUid, message.from.address, message.encrypted, rawEvaluationNeeded, unlockRefresh, readerAddressesKey]);
403
+ }, [message.uid, message.mailboxUid, message.from.address, message.encrypted, rawEvaluationNeeded, unlockRefresh, readerAddressesKey, client]);
402
404
  // Whether the body is the locked state right now (an encrypted message this device holds no unlocked keys for), for the subscription below.
403
405
  const lockedRef = useRef(false);
404
406
  lockedRef.current = security?.decryptError !== undefined && !getUnlockedKeys(message.mailboxUid);
@@ -443,7 +445,7 @@ function MessageDetailContent({ message: messageProp, attachments, backHref, isS
443
445
  }, [sendInProgress, leaseExpiresMs, nowMs]);
444
446
  async function reloadMessage() {
445
447
  try {
446
- setReloaded(await getMessage(message.uid));
448
+ setReloaded(await getMessage(message.uid, client));
447
449
  setNowMs(Date.now());
448
450
  }
449
451
  catch {
@@ -478,7 +480,7 @@ function MessageDetailContent({ message: messageProp, attachments, backHref, isS
478
480
  setTrusting(true);
479
481
  setTrustError(null);
480
482
  try {
481
- await trustSigner(message.mailboxUid, { address, certificate });
483
+ await trustSigner(message.mailboxUid, { address, certificate }, client);
482
484
  clearPinnedSignerCache();
483
485
  setTrustConfirmOpen(false);
484
486
  setUnlockRefresh((n) => n + 1);
@@ -504,7 +506,7 @@ function MessageDetailContent({ message: messageProp, attachments, backHref, isS
504
506
  /** The replying mailbox's own addresses (primary and aliases), which a reply never goes to - from the mail shell's
505
507
  * mailbox list, else fetched; none when neither is available. */
506
508
  async function ownAddresses() {
507
- const mailbox = readerMailbox ?? (await getMailbox(message.mailboxUid).catch(() => undefined));
509
+ const mailbox = readerMailbox ?? (await getMailbox(message.mailboxUid, {}, client).catch(() => undefined));
508
510
  return mailbox ? [mailbox.primarySmtpAddress, ...(mailbox.aliasAddresses ?? [])] : [];
509
511
  }
510
512
  /** Starts fetching what Reply/Reply All/Forward will need (the compose window's code, the original's body) as the
@@ -586,7 +588,7 @@ function MessageDetailContent({ message: messageProp, attachments, backHref, isS
586
588
  setRecalling(true);
587
589
  setError(null);
588
590
  try {
589
- const updated = await recallMessage(message.uid);
591
+ const updated = await recallMessage(message.uid, client);
590
592
  setConfirming(false);
591
593
  onRecalled?.(updated);
592
594
  }
@@ -605,7 +607,7 @@ function MessageDetailContent({ message: messageProp, attachments, backHref, isS
605
607
  setCanceling(true);
606
608
  setCancelError(null);
607
609
  try {
608
- const updated = await cancelScheduledSend(message, draftsFolderUid);
610
+ const updated = await cancelScheduledSend(message, draftsFolderUid, client);
609
611
  // Keeps a `folder:`-scoped Tier 2 local search from still finding it in its old folder.
610
612
  void moveLocalEntity(updated.mailboxUid, updated.uid, updated.folderUid);
611
613
  // Out of Outbox, into Drafts: both folders' badges.
@@ -632,7 +634,7 @@ function MessageDetailContent({ message: messageProp, attachments, backHref, isS
632
634
  setArchiving(true);
633
635
  setArchiveError(null);
634
636
  try {
635
- const updated = await archiveMessage(message.uid);
637
+ const updated = await archiveMessage(message.uid, client);
636
638
  void moveLocalEntity(updated.mailboxUid, updated.uid, updated.folderUid);
637
639
  trackMessageChange(message, updated).settle();
638
640
  onArchived?.(updated);
@@ -656,7 +658,7 @@ function MessageDetailContent({ message: messageProp, attachments, backHref, isS
656
658
  setLabelsError(null);
657
659
  try {
658
660
  const base = message.version >= latestLabelsMessageRef.current.version ? message : latestLabelsMessageRef.current;
659
- const updated = await setMessageLabels(base, labelUids);
661
+ const updated = await setMessageLabels(base, labelUids, client);
660
662
  latestLabelsMessageRef.current = updated;
661
663
  setLabelsMessage(updated);
662
664
  onLabelsChanged?.(updated);
@@ -678,7 +680,7 @@ function MessageDetailContent({ message: messageProp, attachments, backHref, isS
678
680
  * passes no `onMoved` would have had nothing moved while the prompt closed as if it had.
679
681
  */
680
682
  async function handleMove(folderUid) {
681
- const updated = await moveMessage(message, folderUid);
683
+ const updated = await moveMessage(message, folderUid, client);
682
684
  // Move to, Delete and Report junk are all this: the source folder's badge goes down, the target's up.
683
685
  trackMessageChange(message, updated).settle();
684
686
  onMoved?.(updated);
@@ -730,7 +732,7 @@ function MessageDetailContent({ message: messageProp, attachments, backHref, isS
730
732
  setReceiptBusy(type);
731
733
  setReceiptError(null);
732
734
  try {
733
- const updated = await (action === "approve" ? approveReceipt : declineReceipt)(message.uid, type);
735
+ const updated = await (action === "approve" ? approveReceipt : declineReceipt)(message.uid, type, client);
734
736
  onReceiptHandled?.(updated);
735
737
  }
736
738
  catch (err) {
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { Folder } from "@rapidmx/react-shared/mail/mailApi.js";
2
+ import { Folder } from "../../../../lib/mail/mailApi.js";
3
3
  /**
4
4
  * The folder types a message can be moved *into* - Outbox is a transient send queue the server owns, and
5
5
  * the non-mail folders (`calendar`/`contacts`/`tasks`/`notes`) aren't message folders at all, so neither is
@@ -5,11 +5,12 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
5
5
  ///////////////////////////////////////////////////////////////////////////////
6
6
  import { useEffect, useRef, useState } from "react";
7
7
  import { HiOutlineFolder, HiOutlineFolderPlus } from "react-icons/hi2";
8
- import { ApiRequestError } from "@rapidmx/react-shared/util/api.js";
9
- import { createFolder } from "@rapidmx/react-shared/mail/mailApi.js";
10
- import Alert from "@rapidmx/react-shared/components/feedback/Alert.js";
11
- import Button from "@rapidmx/react-shared/components/buttons/Button.js";
12
- import Modal from "@rapidmx/react-shared/components/overlays/Modal.js";
8
+ import { ApiRequestError } from "../../../../lib/util/api.js";
9
+ import { createFolder } from "../../../../lib/mail/mailApi.js";
10
+ import { useApiClient } from "../../../../lib/util/apiClientContext.js";
11
+ import Alert from "../../../../lib/components/feedback/Alert.js";
12
+ import Button from "../../../../lib/components/buttons/Button.js";
13
+ import Modal from "../../../../lib/components/overlays/Modal.js";
13
14
  /**
14
15
  * The folder types a message can be moved *into* - Outbox is a transient send queue the server owns, and
15
16
  * the non-mail folders (`calendar`/`contacts`/`tasks`/`notes`) aren't message folders at all, so neither is
@@ -58,6 +59,7 @@ export function folderNameError(name, existing) {
58
59
  * subfolder would be created into a hierarchy nothing here renders.
59
60
  */
60
61
  export default function MoveToFolderDialog({ open, onClose, mailboxUid, folders, currentFolderUid, count = 1, onMove, onFolderCreated, }) {
62
+ const client = useApiClient();
61
63
  const [filter, setFilter] = useState("");
62
64
  const [creating, setCreating] = useState(false);
63
65
  const [newName, setNewName] = useState("");
@@ -112,7 +114,7 @@ export default function MoveToFolderDialog({ open, onClose, mailboxUid, folders,
112
114
  setError(null);
113
115
  let created;
114
116
  try {
115
- created = await createFolder({ mailboxUid, name: newName.trim(), type: "user" });
117
+ created = await createFolder({ mailboxUid, name: newName.trim(), type: "user" }, client);
116
118
  }
117
119
  catch (err) {
118
120
  setError(err instanceof ApiRequestError ? err.message : "Could not create that folder.");
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import type { Message } from "@rapidmx/react-shared/mail/mailApi.js";
2
+ import type { Message } from "../../../../lib/mail/mailApi.js";
3
3
  /**
4
4
  * The state line an Outbox list row carries under its subject: "Sending...", "Retrying (attempt 2, at 10:15)", "Not sent: <reason>" or
5
5
  * "Scheduled for ...". Read from the message's own `scheduledSend*` fields (see `outboxItemStatus()`), so it follows the list as the server's
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import Button from "@rapidmx/react-shared/components/buttons/Button.js";
3
- import Modal from "@rapidmx/react-shared/components/overlays/Modal.js";
2
+ import Button from "../../../../lib/components/buttons/Button.js";
3
+ import Modal from "../../../../lib/components/overlays/Modal.js";
4
4
  /**
5
5
  * The confirmation in front of every permanent delete. A `Modal`, so Escape and the Cancel button dismiss it and Tab stays inside it. Focus
6
6
  * starts on the dialog itself, never on the destructive button, so pressing Enter (or the Delete key again) on a dialog the reader did not
@@ -1,5 +1,6 @@
1
1
  import React, { PropsWithChildren } from "react";
2
- import { DraftThreading } from "@rapidmx/react-shared/mail/mailApi.js";
2
+ import { DraftThreading } from "../../../../../lib/mail/mailApi.js";
3
+ import { ApiClient } from "../../../../../lib/util/api.js";
3
4
  import { ResumeCompose } from "../../../mail/outbox/composeBridge.js";
4
5
  /** The CSS variable (on `<html>`) that holds how far down the screen the open compose windows start, in px. */
5
6
  export declare const COMPOSE_TOP_VAR = "--rr-compose-top";
@@ -95,6 +96,14 @@ export interface OpenComposeInput {
95
96
  export interface ComposeContextValue {
96
97
  /** Opens a new compose window, stacked alongside any already open (Gmail allows several at once). */
97
98
  openCompose: (input: OpenComposeInput) => void;
99
+ /**
100
+ * The active account's `ApiClient` (see `useApiClient()`'s own doc comment), resolved once here rather
101
+ * than by every compose component individually - `ComposeWindow` and everything it renders reach it
102
+ * through this context's own value instead of each calling `useApiClient()` for itself. `useApiClient()`
103
+ * remains independently callable (this is additive, not a replacement) - a future consumer that isn't a
104
+ * descendant of `ComposeProvider` (or doesn't want to depend on it) can still read it directly.
105
+ */
106
+ client?: ApiClient;
98
107
  }
99
108
  /** Opens the floating Compose window from anywhere inside `AppShell` (any of the four webmail apps). */
100
109
  export declare function useCompose(): ComposeContextValue;
@@ -4,7 +4,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  // SPDX-License-Identifier: MPL-2.0
5
5
  ///////////////////////////////////////////////////////////////////////////////
6
6
  import { createContext, useContext, useEffect, useMemo, useRef, useState } from "react";
7
- import useIsMobile from "@rapidmx/react-shared/util/useIsMobile.js";
7
+ import { useApiClient } from "../../../../../lib/util/apiClientContext.js";
8
+ import useIsMobile from "../../../../../lib/util/useIsMobile.js";
8
9
  import { registerComposeOpener } from "../../../mail/outbox/composeBridge.js";
9
10
  import { markComposePhase } from "./composePerf.js";
10
11
  import ComposeWindowPlaceholder from "./ComposeWindowPlaceholder.js";
@@ -81,6 +82,7 @@ export function useCompose() {
81
82
  */
82
83
  export default function ComposeProvider({ children, userUid, trusted }) {
83
84
  const [sessions, setSessions] = useState([]);
85
+ const client = useApiClient();
84
86
  const isMobile = useIsMobile();
85
87
  const { Component: ComposeWindow, failed, retry: retryLoad } = useComposeWindowComponent(sessions.length > 0);
86
88
  // The top edge of the compose windows, published as `--rr-compose-top` so the pop-up stack (`NotificationCenter`) can keep clear of them.
@@ -134,7 +136,7 @@ export default function ComposeProvider({ children, userUid, trusted }) {
134
136
  function toggleMinimize(id) {
135
137
  setSessions((prev) => prev.map((s) => (s.id === id ? { ...s, minimized: !s.minimized } : s)));
136
138
  }
137
- const value = useMemo(() => ({ openCompose }), []);
139
+ const value = useMemo(() => ({ openCompose, client }), [client]);
138
140
  // Code with no React context - a failed send's "Open draft" pop-up - opens windows through this.
139
141
  useEffect(() => registerComposeOpener((input) => value.openCompose(input)), [value]);
140
142
  // On mobile, a non-minimized `ComposeWindow` renders full-screen (see that component's own doc
@@ -5,17 +5,17 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
5
5
  ///////////////////////////////////////////////////////////////////////////////
6
6
  import { useEffect, useRef, useState } from "react";
7
7
  import { HiOutlineArrowsPointingIn, HiOutlineArrowsPointingOut, HiOutlineChevronDown, HiOutlineLockClosed, HiOutlineMinus, HiOutlinePaperClip, HiOutlineTrash, HiOutlineXMark, } from "react-icons/hi2";
8
- import { ApiRequestError } from "@rapidmx/react-shared/util/api.js";
9
- import { assembleDraft, attachmentContentUrl, createDraft, deleteMessage, getMailbox, getMessage, listFolders, listMailboxes, uploadAttachment, } from "@rapidmx/react-shared/mail/mailApi.js";
10
- import { listMailSignatures } from "@rapidmx/react-shared/mail/mailSignaturesApi.js";
11
- import { buildComposeBodyHtml } from "@rapidmx/react-shared/mail/compose/composeQuoting.js";
8
+ import { ApiRequestError } from "../../../../../lib/util/api.js";
9
+ import { assembleDraft, attachmentContentUrl, createDraft, deleteMessage, getMailbox, getMessage, listFolders, listMailboxes, uploadAttachment, } from "../../../../../lib/mail/mailApi.js";
10
+ import { listMailSignatures } from "../../../../../lib/mail/mailSignaturesApi.js";
11
+ import { buildComposeBodyHtml } from "../../../../../lib/mail/compose/composeQuoting.js";
12
12
  import { peekMailboxWritability, useMailboxWritability } from "../writableMailboxes.js";
13
13
  import { orderMailboxes, primaryMailboxUid } from "../../../mail/primaryMailbox.js";
14
- import { resolveRecipientEncryption } from "@rapidmx/react-shared/crypto/composeSecurity.js";
15
- import { getUnlockedKeys, subscribeKeySession } from "@rapidmx/react-shared/crypto/keySession.js";
16
- import { findActivePublicKey, getEncryptionPolicy, lookupKeys } from "@rapidmx/react-shared/crypto/keyvaultApi.js";
14
+ import { resolveRecipientEncryption } from "../../../../../lib/crypto/composeSecurity.js";
15
+ import { getUnlockedKeys, subscribeKeySession } from "../../../../../lib/crypto/keySession.js";
16
+ import { findActivePublicKey, getEncryptionPolicy, lookupKeys } from "../../../../../lib/crypto/keyvaultApi.js";
17
17
  import { useUnlockPrompt } from "../../layout/UnlockPromptProvider.js";
18
- import useIsMobile from "@rapidmx/react-shared/util/useIsMobile.js";
18
+ import useIsMobile from "../../../../../lib/util/useIsMobile.js";
19
19
  import { notify } from "../../../notifications/store.js";
20
20
  import { evaluateEncryptionRequirement } from "./encryptionRequirement.js";
21
21
  import { decideSend } from "../../../mail/outbox/sendDecision.js";
@@ -31,9 +31,9 @@ import RecipientInput from "./RecipientInput.js";
31
31
  import { parseRecipientList } from "./recipients.js";
32
32
  import RichTextEditor from "./RichTextEditor.js";
33
33
  import ScheduleSendPicker from "./ScheduleSendPicker.js";
34
- import Alert from "@rapidmx/react-shared/components/feedback/Alert.js";
35
- import Button from "@rapidmx/react-shared/components/buttons/Button.js";
36
- import Modal from "@rapidmx/react-shared/components/overlays/Modal.js";
34
+ import Alert from "../../../../../lib/components/feedback/Alert.js";
35
+ import Button from "../../../../../lib/components/buttons/Button.js";
36
+ import Modal from "../../../../../lib/components/overlays/Modal.js";
37
37
  /** Debounce between the last edit and the draft autosave. */
38
38
  export const DEFAULT_AUTOSAVE_DELAY_MS = 2000;
39
39
  /** The longest an edit stays unsaved while the user keeps typing (the debounce above restarts on every keystroke, so it alone never fires then). */
@@ -119,7 +119,11 @@ export default function ComposeWindow({ session, onClose, onToggleMinimize, user
119
119
  const [hasUploads, setHasUploads] = useState(!!resume && resume.attachments.length > 0);
120
120
  const isMobile = useIsMobile();
121
121
  const { requestUnlock } = useUnlockPrompt();
122
- const { openCompose } = useCompose();
122
+ // Resolved once by `ComposeProvider` (see `ComposeContext.tsx`'s own doc comment on `ComposeContextValue.client`)
123
+ // rather than calling `useApiClient()` again here - every REST call below (including `startSend()`'s own,
124
+ // see `sendJob.ts`) passes it through as the trailing `client` argument, `undefined` (the default global
125
+ // cookie-based fetch) for every existing caller.
126
+ const { openCompose, client } = useCompose();
123
127
  const keyEnv = useKeyEnvironment();
124
128
  // Bumped after a successful on-demand unlock to force a re-render - `getUnlockedKeys()` below is a
125
129
  // plain read from a module-level store, not React state, so nothing else would pick up the change.
@@ -219,7 +223,7 @@ export default function ComposeWindow({ session, onClose, onToggleMinimize, user
219
223
  // to apply - see the transition rules there.
220
224
  useEffect(() => {
221
225
  let cancelled = false;
222
- listMailboxes({ limit: 100 })
226
+ listMailboxes({ limit: 100 }, client)
223
227
  .then((result) => {
224
228
  if (cancelled) {
225
229
  return;
@@ -256,14 +260,14 @@ export default function ComposeWindow({ session, onClose, onToggleMinimize, user
256
260
  async function load() {
257
261
  await Promise.all([
258
262
  mailboxLoaded ||
259
- getMailbox(mailboxUid).then((result) => {
263
+ getMailbox(mailboxUid, {}, client).then((result) => {
260
264
  mailboxLoaded = true;
261
265
  if (!cancelled) {
262
266
  setMailbox(result);
263
267
  }
264
268
  }, () => undefined),
265
269
  policyLoaded ||
266
- getEncryptionPolicy().then((result) => {
270
+ getEncryptionPolicy(client).then((result) => {
267
271
  policyLoaded = true;
268
272
  if (!cancelled) {
269
273
  setEncryptionPolicy(result);
@@ -287,7 +291,7 @@ export default function ComposeWindow({ session, onClose, onToggleMinimize, user
287
291
  // Cancellable so a slow response for a mailbox the user has since switched away from can't point
288
292
  // the new draft at the wrong mailbox's Drafts folder.
289
293
  let cancelled = false;
290
- listFolders(mailboxUid)
294
+ listFolders(mailboxUid, client)
291
295
  .then((folders) => {
292
296
  if (!cancelled) {
293
297
  setDraftsFolderUid(folders.find((f) => f.type === "drafts")?.uid);
@@ -326,7 +330,7 @@ export default function ComposeWindow({ session, onClose, onToggleMinimize, user
326
330
  for (const recipient of unchecked) {
327
331
  const key = addressCacheKey(recipient.address);
328
332
  inFlight.add(key);
329
- void lookupKeys(mailbox.uid, recipient.address)
333
+ void lookupKeys(mailbox.uid, recipient.address, client)
330
334
  .then((lookup) => ({ lookup }), () => null)
331
335
  .then((result) => {
332
336
  inFlight.delete(key);
@@ -387,7 +391,7 @@ export default function ComposeWindow({ session, onClose, onToggleMinimize, user
387
391
  if (!mailboxUid || contentReady || defaultSignature) {
388
392
  return;
389
393
  }
390
- listMailSignatures(mailboxUid)
394
+ listMailSignatures(mailboxUid, {}, client)
391
395
  .then((signatures) => {
392
396
  const signature = signatures.find((s) => signatureContext === "new" ? s.isDefaultForNewMessages : s.isDefaultForReplyForward);
393
397
  setDefaultSignature({ html: signature?.contentHtml });
@@ -419,11 +423,11 @@ export default function ComposeWindow({ session, onClose, onToggleMinimize, user
419
423
  // `In-Reply-To`/`References` and groups the message into the thread being answered. Recorded on
420
424
  // every draft this window creates, including the replacement one a From switch makes - the thread
421
425
  // doesn't change because the sending mailbox did.
422
- createDraft(mailboxUid, draftsFolderUid, session.threading)
426
+ createDraft(mailboxUid, draftsFolderUid, session.threading, client)
423
427
  .then((created) => {
424
428
  if (cancelled) {
425
429
  // The sender changed while this was in flight - discard the now-orphaned draft.
426
- void deleteMessage(created.uid, created.version).catch(() => undefined);
430
+ void deleteMessage(created.uid, created.version, client).catch(() => undefined);
427
431
  return;
428
432
  }
429
433
  setDraft(created);
@@ -463,13 +467,13 @@ export default function ComposeWindow({ session, onClose, onToggleMinimize, user
463
467
  // Once it's out of `supersededDraftsRef` a landing save can't update `superseded.version` any more.
464
468
  const version = saved?.uid === superseded.uid ? saved.version : superseded.version;
465
469
  try {
466
- await deleteMessage(superseded.uid, version);
470
+ await deleteMessage(superseded.uid, version, client);
467
471
  }
468
472
  catch {
469
473
  try {
470
- const fresh = await getMessage(superseded.uid);
474
+ const fresh = await getMessage(superseded.uid, client);
471
475
  if (isStillDraft(fresh, superseded.folderUid)) {
472
- await deleteMessage(fresh.uid, fresh.version);
476
+ await deleteMessage(fresh.uid, fresh.version, client);
473
477
  }
474
478
  }
475
479
  catch {
@@ -602,7 +606,7 @@ export default function ComposeWindow({ session, onClose, onToggleMinimize, user
602
606
  * current version. */
603
607
  async function refreshDraftVersion(uid) {
604
608
  try {
605
- const fresh = await getMessage(uid);
609
+ const fresh = await getMessage(uid, client);
606
610
  setDraft((prev) => (prev?.uid === fresh.uid && fresh.version > prev.version ? { ...prev, version: fresh.version } : prev));
607
611
  }
608
612
  catch {
@@ -713,7 +717,7 @@ export default function ComposeWindow({ session, onClose, onToggleMinimize, user
713
717
  }
714
718
  pendingSaveRef.current = false;
715
719
  finishedRef.current = true;
716
- if (!startSend(request)) {
720
+ if (!startSend(request, client)) {
717
721
  finishedRef.current = false;
718
722
  setSendError("This message is already being sent.");
719
723
  return;
@@ -778,7 +782,7 @@ export default function ComposeWindow({ session, onClose, onToggleMinimize, user
778
782
  bcc: parseAddresses(current.bcc),
779
783
  subject: current.subject,
780
784
  html: current.html,
781
- });
785
+ }, client);
782
786
  lastSavedRef.current = savedKey;
783
787
  saveErrorRef.current = null;
784
788
  // A From switch may have replaced the draft while this was in flight - never resurrect it,
@@ -818,13 +822,13 @@ export default function ComposeWindow({ session, onClose, onToggleMinimize, user
818
822
  const saved = await saveInFlightRef.current;
819
823
  const version = Math.max(current.version, saved?.uid === current.uid ? saved.version : 0);
820
824
  try {
821
- await deleteMessage(current.uid, version);
825
+ await deleteMessage(current.uid, version, client);
822
826
  }
823
827
  catch (err) {
824
828
  if (!(err instanceof ApiRequestError) || (err.status !== 404 && err.status !== 409)) {
825
829
  throw err;
826
830
  }
827
- const fresh = await getMessage(current.uid).catch((getErr) => {
831
+ const fresh = await getMessage(current.uid, client).catch((getErr) => {
828
832
  if (getErr instanceof ApiRequestError && getErr.status === 404) {
829
833
  return null;
830
834
  }
@@ -837,7 +841,7 @@ export default function ComposeWindow({ session, onClose, onToggleMinimize, user
837
841
  if (!isStillDraft(fresh, current.folderUid)) {
838
842
  throw new ApiRequestError(NO_LONGER_A_DRAFT_MESSAGE, 409);
839
843
  }
840
- await deleteMessage(fresh.uid, fresh.version);
844
+ await deleteMessage(fresh.uid, fresh.version, client);
841
845
  }
842
846
  }
843
847
  /**
@@ -985,7 +989,7 @@ export default function ComposeWindow({ session, onClose, onToggleMinimize, user
985
989
  await previous;
986
990
  try {
987
991
  // Its answer (the new version) is what a later delete waits for through `saveInFlightRef`, like any save's.
988
- return await assembleDraft(target.uid, { to: [], cc: [], bcc: [], subject: "", html: "" });
992
+ return await assembleDraft(target.uid, { to: [], cc: [], bcc: [], subject: "", html: "" }, client);
989
993
  }
990
994
  catch {
991
995
  notify({
@@ -5,10 +5,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  ///////////////////////////////////////////////////////////////////////////////
6
6
  import { useEffect } from "react";
7
7
  import { HiOutlineMinus, HiOutlineXMark } from "react-icons/hi2";
8
- import Skeleton from "@rapidmx/react-shared/components/feedback/Skeleton.js";
9
- import Alert from "@rapidmx/react-shared/components/feedback/Alert.js";
10
- import Button from "@rapidmx/react-shared/components/buttons/Button.js";
11
- import useIsMobile from "@rapidmx/react-shared/util/useIsMobile.js";
8
+ import Skeleton from "../../../../../lib/components/feedback/Skeleton.js";
9
+ import Alert from "../../../../../lib/components/feedback/Alert.js";
10
+ import Button from "../../../../../lib/components/buttons/Button.js";
11
+ import useIsMobile from "../../../../../lib/util/useIsMobile.js";
12
12
  import { markComposePhase } from "./composePerf.js";
13
13
  /**
14
14
  * What stands in for the compose window in the moment between clicking Compose/Reply/Forward and the window's code being
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { EMOJI_CATEGORIES } from "@rapidmx/react-shared/mail/compose/emojiData.js";
3
- import PopoverPortal from "@rapidmx/react-shared/components/overlays/PopoverPortal.js";
2
+ import { EMOJI_CATEGORIES } from "../../../../../lib/mail/compose/emojiData.js";
3
+ import PopoverPortal from "../../../../../lib/components/overlays/PopoverPortal.js";
4
4
  const CATEGORY_LABELS = {
5
5
  people: "Smileys & People",
6
6
  nature: "Animals & Nature",
@@ -4,9 +4,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  // SPDX-License-Identifier: MPL-2.0
5
5
  ///////////////////////////////////////////////////////////////////////////////
6
6
  import { useEffect, useState } from "react";
7
- import { ApiRequestError } from "@rapidmx/react-shared/util/api.js";
8
- import { searchGifs } from "@rapidmx/react-shared/mail/compose/giphyApi.js";
9
- import PopoverPortal from "@rapidmx/react-shared/components/overlays/PopoverPortal.js";
7
+ import { ApiRequestError } from "../../../../../lib/util/api.js";
8
+ import { searchGifs } from "../../../../../lib/mail/compose/giphyApi.js";
9
+ import PopoverPortal from "../../../../../lib/components/overlays/PopoverPortal.js";
10
10
  const SEARCH_DEBOUNCE_MS = 350;
11
11
  const WIDTH = 288;
12
12
  const HEIGHT = 320;
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { type ContactSuggestionOptions, type RecipientSuggestion } from "@rapidmx/react-shared/mail/directoryApi.js";
2
+ import { type ContactSuggestionOptions, type RecipientSuggestion } from "../../../../../lib/mail/directoryApi.js";
3
3
  /** How long typing must pause before suggestions are requested. */
4
4
  export declare const RECIPIENT_SUGGESTION_DEBOUNCE_MS = 150;
5
5
  export interface RecipientInputProps {
@@ -6,7 +6,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
6
  import { useEffect, useLayoutEffect, useRef, useState } from "react";
7
7
  import { createPortal } from "react-dom";
8
8
  import { HiOutlineXMark } from "react-icons/hi2";
9
- import { fetchRecipientSuggestions, RECIPIENT_SUGGESTION_MIN_QUERY_LENGTH, } from "@rapidmx/react-shared/mail/directoryApi.js";
9
+ import { fetchRecipientSuggestions, RECIPIENT_SUGGESTION_MIN_QUERY_LENGTH, } from "../../../../../lib/mail/directoryApi.js";
10
10
  import { formatRecipient, isValidRecipientAddress, parseRecipient, splitRecipientList, splitTypedRecipients } from "./recipients.js";
11
11
  /** How long typing must pause before suggestions are requested. */
12
12
  export const RECIPIENT_SUGGESTION_DEBOUNCE_MS = 150;
@@ -4,7 +4,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  // SPDX-License-Identifier: MPL-2.0
5
5
  ///////////////////////////////////////////////////////////////////////////////
6
6
  import { useState } from "react";
7
- import PopoverPortal from "@rapidmx/react-shared/components/overlays/PopoverPortal.js";
7
+ import PopoverPortal from "../../../../../lib/components/overlays/PopoverPortal.js";
8
8
  /**
9
9
  * The "Send later" popover next to Compose's Send button — same `PopoverPortal` shell
10
10
  * `EmojiPicker`/`GifPicker`/`ResourcePicker` already use, just holding a single `datetime-local` input