@oxy.so/services 11.14.0 → 11.15.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.
- package/lib/commonjs/assets/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
- package/lib/commonjs/assets/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
- package/lib/commonjs/assets/assets/fonts/icons/manifest.json +9 -9
- package/lib/commonjs/assets/assets/one/README.md +8 -0
- package/lib/commonjs/assets/assets/one/floral.jpg +0 -0
- package/lib/commonjs/assets/assets/one/floral.jpg.d.ts +2 -0
- package/lib/commonjs/assets/assets/one/floral.mp4 +0 -0
- package/lib/commonjs/assets/assets/one/floral.mp4.d.ts +2 -0
- package/lib/commonjs/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
- package/lib/commonjs/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
- package/lib/commonjs/assets/fonts/icons/manifest.json +9 -9
- package/lib/commonjs/assets/one/README.md +8 -0
- package/lib/commonjs/assets/one/floral.jpg +0 -0
- package/lib/commonjs/assets/one/floral.mp4 +0 -0
- package/lib/commonjs/index.js +3 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/client.js.map +1 -1
- package/lib/commonjs/ui/components/AccountInvitationAcceptance.js +2 -2
- package/lib/commonjs/ui/components/AccountInvitationAcceptance.js.map +1 -1
- package/lib/commonjs/ui/components/BloomLocaleBridge.js +2 -2
- package/lib/commonjs/ui/components/BloomLocaleBridge.js.map +1 -1
- package/lib/commonjs/ui/components/FollowButton.js +2 -2
- package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
- package/lib/commonjs/ui/components/LanguageBridge.js +2 -2
- package/lib/commonjs/ui/components/LanguageBridge.js.map +1 -1
- package/lib/commonjs/ui/components/OxyAccountDialogScreen.js +5 -18
- package/lib/commonjs/ui/components/OxyAccountDialogScreen.js.map +1 -1
- package/lib/commonjs/ui/components/OxyAuthChooser.js +30 -25
- package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -1
- package/lib/commonjs/ui/components/OxyConsentScreen.js +6 -30
- package/lib/commonjs/ui/components/OxyConsentScreen.js.map +1 -1
- package/lib/commonjs/ui/components/OxyOAuthCallback.js +2 -1
- package/lib/commonjs/ui/components/OxyOAuthCallback.js.map +1 -1
- package/lib/commonjs/ui/components/OxyProvider.js +36 -6
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/components/OxySignInButton.js +2 -2
- package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
- package/lib/commonjs/ui/components/ProfileButton.js +7 -5
- package/lib/commonjs/ui/components/ProfileButton.js.map +1 -1
- package/lib/commonjs/ui/components/ProfileSummaryCard.js +24 -57
- package/lib/commonjs/ui/components/ProfileSummaryCard.js.map +1 -1
- package/lib/commonjs/ui/components/RequireOxyAuth.js +17 -43
- package/lib/commonjs/ui/components/RequireOxyAuth.js.map +1 -1
- package/lib/commonjs/ui/components/SettingsIcon.js +14 -25
- package/lib/commonjs/ui/components/SettingsIcon.js.map +1 -1
- package/lib/commonjs/ui/components/SurfaceHeaderAction.js +1 -1
- package/lib/commonjs/ui/components/SurfaceScreen.js +38 -47
- package/lib/commonjs/ui/components/SurfaceScreen.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js +232 -472
- package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/storageUsage.js +62 -0
- package/lib/commonjs/ui/components/authChooser/storageUsage.js.map +1 -0
- package/lib/commonjs/ui/components/authChooser/styles.js +21 -70
- package/lib/commonjs/ui/components/authChooser/styles.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/types.js.map +1 -1
- package/lib/commonjs/ui/components/fileManagement/FileViewer.js +6 -5
- package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -1
- package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +25 -25
- package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -1
- package/lib/commonjs/ui/components/organizations/OrganizationClaimReview.js +4 -4
- package/lib/commonjs/ui/components/organizations/OrganizationClaimReview.js.map +1 -1
- package/lib/commonjs/ui/components/organizations/OrganizationClaims.js +2 -2
- package/lib/commonjs/ui/components/organizations/OrganizationClaims.js.map +1 -1
- package/lib/commonjs/ui/components/organizations/OrganizationDirectorySearch.js +2 -2
- package/lib/commonjs/ui/components/organizations/OrganizationDirectorySearch.js.map +1 -1
- package/lib/commonjs/ui/components/organizations/OrganizationSettings.js +3 -3
- package/lib/commonjs/ui/components/organizations/OrganizationSettings.js.map +1 -1
- package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js +16 -50
- package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js.map +1 -1
- package/lib/commonjs/ui/components/payment/PaymentMethodStep.js +3 -3
- package/lib/commonjs/ui/components/payment/PaymentMethodStep.js.map +1 -1
- package/lib/commonjs/ui/components/payment/PaymentReviewStep.js +10 -12
- package/lib/commonjs/ui/components/payment/PaymentReviewStep.js.map +1 -1
- package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js +3 -3
- package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/InlineCommonsQr.js +13 -6
- package/lib/commonjs/ui/components/signIn/InlineCommonsQr.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/OxyAccountPicker.js +53 -112
- package/lib/commonjs/ui/components/signIn/OxyAccountPicker.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/OxyAuthenticatorPanel.js +2 -2
- package/lib/commonjs/ui/components/signIn/OxyAuthenticatorPanel.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/OxyDeleteAccountPanel.js +2 -2
- package/lib/commonjs/ui/components/signIn/OxyDeleteAccountPanel.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/OxyEmailAccountChoice.js +2 -2
- package/lib/commonjs/ui/components/signIn/OxyEmailAccountChoice.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/OxyLinkCommonsPanel.js +2 -2
- package/lib/commonjs/ui/components/signIn/OxyLinkCommonsPanel.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/OxyPasswordPanel.js +2 -2
- package/lib/commonjs/ui/components/signIn/OxyPasswordPanel.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/OxySignInPanel.js +2 -2
- package/lib/commonjs/ui/components/signIn/OxySignInPanel.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js +2 -2
- package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/ReauthStep.js +31 -13
- package/lib/commonjs/ui/components/signIn/ReauthStep.js.map +1 -1
- package/lib/commonjs/ui/components/signIn/accountFlowParts.js +2 -2
- package/lib/commonjs/ui/components/signIn/accountFlowParts.js.map +1 -1
- package/lib/commonjs/ui/components/supervision/PersonPicker.js +2 -2
- package/lib/commonjs/ui/components/supervision/PersonPicker.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +32 -58
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/oxyRuntimeContext.js +57 -0
- package/lib/commonjs/ui/context/oxyRuntimeContext.js.map +1 -0
- package/lib/commonjs/ui/context/oxySupportContext.js +10 -0
- package/lib/commonjs/ui/context/oxySupportContext.js.map +1 -0
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +10 -10
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
- package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js +6 -6
- package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +13 -10
- package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/useAuthMethods.js +3 -3
- package/lib/commonjs/ui/hooks/queries/useAuthMethods.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/useFileQueries.js +3 -3
- package/lib/commonjs/ui/hooks/queries/useFileQueries.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js +5 -5
- package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/usePersonalPlans.js +3 -3
- package/lib/commonjs/ui/hooks/queries/usePersonalPlans.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js +4 -4
- package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +7 -7
- package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/useSupervision.js +2 -2
- package/lib/commonjs/ui/hooks/queries/useSupervision.js.map +1 -1
- package/lib/commonjs/ui/hooks/useAuth.js +2 -2
- package/lib/commonjs/ui/hooks/useAuth.js.map +1 -1
- package/lib/commonjs/ui/hooks/useDeviceSwitcher.js +2 -2
- package/lib/commonjs/ui/hooks/useDeviceSwitcher.js.map +1 -1
- package/lib/commonjs/ui/hooks/useDisplayCurrency.js +2 -2
- package/lib/commonjs/ui/hooks/useDisplayCurrency.js.map +1 -1
- package/lib/commonjs/ui/hooks/useFollow.js +3 -3
- package/lib/commonjs/ui/hooks/useFollow.js.map +1 -1
- package/lib/commonjs/ui/hooks/useFollowTarget.js +2 -2
- package/lib/commonjs/ui/hooks/useFollowTarget.js.map +1 -1
- package/lib/commonjs/ui/hooks/useI18n.js +2 -2
- package/lib/commonjs/ui/hooks/useI18n.js.map +1 -1
- package/lib/commonjs/ui/hooks/useLanguageManagement.js +33 -18
- package/lib/commonjs/ui/hooks/useLanguageManagement.js.map +1 -1
- package/lib/commonjs/ui/hooks/useOxyEvent.js +2 -2
- package/lib/commonjs/ui/hooks/useOxyEvent.js.map +1 -1
- package/lib/commonjs/ui/hooks/useSurfaceHeader.js +40 -2
- package/lib/commonjs/ui/hooks/useSurfaceHeader.js.map +1 -1
- package/lib/commonjs/ui/hooks/useUsernameAvailability.js +60 -0
- package/lib/commonjs/ui/hooks/useUsernameAvailability.js.map +1 -0
- package/lib/commonjs/ui/icons/subsetGlyphMaps.js +4 -4
- package/lib/commonjs/ui/icons/subsetGlyphMaps.js.map +1 -1
- package/lib/commonjs/ui/index.js +37 -0
- package/lib/commonjs/ui/index.js.map +1 -1
- package/lib/commonjs/ui/navigation/accountDialogManager.js +2 -0
- package/lib/commonjs/ui/navigation/accountDialogManager.js.map +1 -1
- package/lib/commonjs/ui/navigation/bottomSheetManager.js +2 -2
- package/lib/commonjs/ui/navigation/bottomSheetManager.js.map +1 -1
- package/lib/commonjs/ui/navigation/routes.js +27 -101
- package/lib/commonjs/ui/navigation/routes.js.map +1 -1
- package/lib/commonjs/ui/navigation/screenComponents.js +101 -0
- package/lib/commonjs/ui/navigation/screenComponents.js.map +1 -0
- package/lib/commonjs/ui/navigation/surfaceBackBridge.js +1 -1
- package/lib/commonjs/ui/navigation/surfaceBackBridge.js.map +1 -1
- package/lib/commonjs/ui/navigation/surfaceNavStack.js +25 -6
- package/lib/commonjs/ui/navigation/surfaceNavStack.js.map +1 -1
- package/lib/commonjs/ui/navigation/surfaceRegistry.js +4 -0
- package/lib/commonjs/ui/navigation/surfaceRegistry.js.map +1 -1
- package/lib/commonjs/ui/navigation/surfaces.js +19 -7
- package/lib/commonjs/ui/navigation/surfaces.js.map +1 -1
- package/lib/commonjs/ui/one-video.js +50 -0
- package/lib/commonjs/ui/one-video.js.map +1 -0
- package/lib/commonjs/ui/runtime/createOxyRuntime.js +7 -1
- package/lib/commonjs/ui/runtime/createOxyRuntime.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountMembersScreen.js +7 -6
- package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js +10 -10
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountVerificationScreen.js +2 -2
- package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AppInfoScreen.js +36 -35
- package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AvatarCropScreen.js +35 -64
- package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ChangeAvatarScreen.js +8 -8
- package/lib/commonjs/ui/screens/ChangeAvatarScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ConnectedAppsScreen.js +10 -13
- package/lib/commonjs/ui/screens/ConnectedAppsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/CreateAccountScreen.js +10 -10
- package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/DomainsScreen.js +7 -14
- package/lib/commonjs/ui/screens/DomainsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +137 -285
- package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/EditProfileScreen.js +19 -16
- package/lib/commonjs/ui/screens/EditProfileScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FileManagementScreen.js +33 -188
- package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FileTrashScreen.js +2 -2
- package/lib/commonjs/ui/screens/FileTrashScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/HelpSupportScreen.js +74 -62
- package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/HistoryViewScreen.js +9 -14
- package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +35 -36
- package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +9 -17
- package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ManageAccountScreen.js +319 -328
- package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/NotificationsScreen.js +10 -10
- package/lib/commonjs/ui/screens/NotificationsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/OxyOneScreen.js +213 -0
- package/lib/commonjs/ui/screens/OxyOneScreen.js.map +1 -0
- package/lib/commonjs/ui/screens/PreferencesScreen.js +12 -12
- package/lib/commonjs/ui/screens/PreferencesScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +64 -87
- package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ProfileScreen.js +309 -233
- package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ReportBugScreen.js +72 -0
- package/lib/commonjs/ui/screens/ReportBugScreen.js.map +1 -0
- package/lib/commonjs/ui/screens/SearchSettingsScreen.js +32 -61
- package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/SupervisionScreen.js +4 -4
- package/lib/commonjs/ui/screens/SupervisionScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/UserListScreen.js +66 -58
- package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +2 -2
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/fileManagement/FileListSection.js +6 -5
- package/lib/commonjs/ui/screens/fileManagement/FileListSection.js.map +1 -1
- package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js +16 -81
- package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
- package/lib/commonjs/ui/screens/fileManagement/UploadBar.js +3 -1
- package/lib/commonjs/ui/screens/fileManagement/UploadBar.js.map +1 -1
- package/lib/commonjs/ui/screens/index.js +7 -0
- package/lib/commonjs/ui/screens/index.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +12 -22
- package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +37 -67
- package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js +20 -8
- package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +6 -10
- package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
- package/lib/module/assets/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
- package/lib/module/assets/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
- package/lib/module/assets/assets/fonts/icons/manifest.json +9 -9
- package/lib/module/assets/assets/one/README.md +8 -0
- package/lib/module/assets/assets/one/floral.jpg +0 -0
- package/lib/module/assets/assets/one/floral.jpg.d.ts +2 -0
- package/lib/module/assets/assets/one/floral.mp4 +0 -0
- package/lib/module/assets/assets/one/floral.mp4.d.ts +2 -0
- package/lib/module/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
- package/lib/module/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
- package/lib/module/assets/fonts/icons/manifest.json +9 -9
- package/lib/module/assets/one/README.md +8 -0
- package/lib/module/assets/one/floral.jpg +0 -0
- package/lib/module/assets/one/floral.mp4 +0 -0
- package/lib/module/index.js +3 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/client.js +2 -3
- package/lib/module/ui/client.js.map +1 -1
- package/lib/module/ui/components/AccountInvitationAcceptance.js +1 -1
- package/lib/module/ui/components/AccountInvitationAcceptance.js.map +1 -1
- package/lib/module/ui/components/BloomLocaleBridge.js +1 -1
- package/lib/module/ui/components/BloomLocaleBridge.js.map +1 -1
- package/lib/module/ui/components/FollowButton.js +1 -1
- package/lib/module/ui/components/FollowButton.js.map +1 -1
- package/lib/module/ui/components/LanguageBridge.js +1 -1
- package/lib/module/ui/components/LanguageBridge.js.map +1 -1
- package/lib/module/ui/components/OxyAccountDialogScreen.js +4 -17
- package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -1
- package/lib/module/ui/components/OxyAuthChooser.js +29 -24
- package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
- package/lib/module/ui/components/OxyConsentScreen.js +8 -32
- package/lib/module/ui/components/OxyConsentScreen.js.map +1 -1
- package/lib/module/ui/components/OxyOAuthCallback.js +3 -2
- package/lib/module/ui/components/OxyOAuthCallback.js.map +1 -1
- package/lib/module/ui/components/OxyProvider.js +38 -6
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/components/OxySignInButton.js +1 -1
- package/lib/module/ui/components/OxySignInButton.js.map +1 -1
- package/lib/module/ui/components/ProfileButton.js +6 -4
- package/lib/module/ui/components/ProfileButton.js.map +1 -1
- package/lib/module/ui/components/ProfileSummaryCard.js +24 -57
- package/lib/module/ui/components/ProfileSummaryCard.js.map +1 -1
- package/lib/module/ui/components/RequireOxyAuth.js +17 -43
- package/lib/module/ui/components/RequireOxyAuth.js.map +1 -1
- package/lib/module/ui/components/SettingsIcon.js +14 -25
- package/lib/module/ui/components/SettingsIcon.js.map +1 -1
- package/lib/module/ui/components/SurfaceHeaderAction.js +1 -1
- package/lib/module/ui/components/SurfaceScreen.js +39 -48
- package/lib/module/ui/components/SurfaceScreen.js.map +1 -1
- package/lib/module/ui/components/authChooser/AccountsMenuView.js +237 -475
- package/lib/module/ui/components/authChooser/AccountsMenuView.js.map +1 -1
- package/lib/module/ui/components/authChooser/storageUsage.js +56 -0
- package/lib/module/ui/components/authChooser/storageUsage.js.map +1 -0
- package/lib/module/ui/components/authChooser/styles.js +21 -70
- package/lib/module/ui/components/authChooser/styles.js.map +1 -1
- package/lib/module/ui/components/authChooser/types.js.map +1 -1
- package/lib/module/ui/components/fileManagement/FileViewer.js +7 -6
- package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -1
- package/lib/module/ui/components/modals/DeleteAccountModal.js +26 -26
- package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -1
- package/lib/module/ui/components/organizations/OrganizationClaimReview.js +1 -1
- package/lib/module/ui/components/organizations/OrganizationClaimReview.js.map +1 -1
- package/lib/module/ui/components/organizations/OrganizationClaims.js +1 -1
- package/lib/module/ui/components/organizations/OrganizationClaims.js.map +1 -1
- package/lib/module/ui/components/organizations/OrganizationDirectorySearch.js +1 -1
- package/lib/module/ui/components/organizations/OrganizationDirectorySearch.js.map +1 -1
- package/lib/module/ui/components/organizations/OrganizationSettings.js +1 -1
- package/lib/module/ui/components/organizations/OrganizationSettings.js.map +1 -1
- package/lib/module/ui/components/payment/PaymentDetailsStep.js +17 -51
- package/lib/module/ui/components/payment/PaymentDetailsStep.js.map +1 -1
- package/lib/module/ui/components/payment/PaymentMethodStep.js +3 -3
- package/lib/module/ui/components/payment/PaymentMethodStep.js.map +1 -1
- package/lib/module/ui/components/payment/PaymentReviewStep.js +11 -13
- package/lib/module/ui/components/payment/PaymentReviewStep.js.map +1 -1
- package/lib/module/ui/components/payment/PaymentSummaryStep.js +3 -3
- package/lib/module/ui/components/payment/PaymentSummaryStep.js.map +1 -1
- package/lib/module/ui/components/signIn/InlineCommonsQr.js +14 -7
- package/lib/module/ui/components/signIn/InlineCommonsQr.js.map +1 -1
- package/lib/module/ui/components/signIn/OxyAccountPicker.js +54 -113
- package/lib/module/ui/components/signIn/OxyAccountPicker.js.map +1 -1
- package/lib/module/ui/components/signIn/OxyAuthenticatorPanel.js +1 -1
- package/lib/module/ui/components/signIn/OxyAuthenticatorPanel.js.map +1 -1
- package/lib/module/ui/components/signIn/OxyDeleteAccountPanel.js +1 -1
- package/lib/module/ui/components/signIn/OxyDeleteAccountPanel.js.map +1 -1
- package/lib/module/ui/components/signIn/OxyEmailAccountChoice.js +1 -1
- package/lib/module/ui/components/signIn/OxyEmailAccountChoice.js.map +1 -1
- package/lib/module/ui/components/signIn/OxyLinkCommonsPanel.js +1 -1
- package/lib/module/ui/components/signIn/OxyLinkCommonsPanel.js.map +1 -1
- package/lib/module/ui/components/signIn/OxyPasswordPanel.js +1 -1
- package/lib/module/ui/components/signIn/OxyPasswordPanel.js.map +1 -1
- package/lib/module/ui/components/signIn/OxySignInPanel.js +1 -1
- package/lib/module/ui/components/signIn/OxySignInPanel.js.map +1 -1
- package/lib/module/ui/components/signIn/OxySignUpPanel.js +1 -1
- package/lib/module/ui/components/signIn/OxySignUpPanel.js.map +1 -1
- package/lib/module/ui/components/signIn/ReauthStep.js +30 -12
- package/lib/module/ui/components/signIn/ReauthStep.js.map +1 -1
- package/lib/module/ui/components/signIn/accountFlowParts.js +1 -1
- package/lib/module/ui/components/signIn/accountFlowParts.js.map +1 -1
- package/lib/module/ui/components/supervision/PersonPicker.js +1 -1
- package/lib/module/ui/components/supervision/PersonPicker.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +7 -51
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/oxyRuntimeContext.js +49 -0
- package/lib/module/ui/context/oxyRuntimeContext.js.map +1 -0
- package/lib/module/ui/context/oxySupportContext.js +7 -0
- package/lib/module/ui/context/oxySupportContext.js.map +1 -0
- package/lib/module/ui/hooks/mutations/useAccountMutations.js +1 -1
- package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
- package/lib/module/ui/hooks/mutations/useServicesMutations.js +1 -1
- package/lib/module/ui/hooks/mutations/useServicesMutations.js.map +1 -1
- package/lib/module/ui/hooks/queries/useAccountQueries.js +5 -2
- package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
- package/lib/module/ui/hooks/queries/useAuthMethods.js +1 -1
- package/lib/module/ui/hooks/queries/useAuthMethods.js.map +1 -1
- package/lib/module/ui/hooks/queries/useFileQueries.js +1 -1
- package/lib/module/ui/hooks/queries/useFileQueries.js.map +1 -1
- package/lib/module/ui/hooks/queries/usePaymentQueries.js +1 -1
- package/lib/module/ui/hooks/queries/usePaymentQueries.js.map +1 -1
- package/lib/module/ui/hooks/queries/usePersonalPlans.js +1 -1
- package/lib/module/ui/hooks/queries/usePersonalPlans.js.map +1 -1
- package/lib/module/ui/hooks/queries/useSecurityQueries.js +1 -1
- package/lib/module/ui/hooks/queries/useSecurityQueries.js.map +1 -1
- package/lib/module/ui/hooks/queries/useServicesQueries.js +1 -1
- package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
- package/lib/module/ui/hooks/queries/useSupervision.js +1 -1
- package/lib/module/ui/hooks/queries/useSupervision.js.map +1 -1
- package/lib/module/ui/hooks/useAuth.js +1 -1
- package/lib/module/ui/hooks/useAuth.js.map +1 -1
- package/lib/module/ui/hooks/useDeviceSwitcher.js +1 -1
- package/lib/module/ui/hooks/useDeviceSwitcher.js.map +1 -1
- package/lib/module/ui/hooks/useDisplayCurrency.js +1 -1
- package/lib/module/ui/hooks/useDisplayCurrency.js.map +1 -1
- package/lib/module/ui/hooks/useFollow.js +1 -1
- package/lib/module/ui/hooks/useFollow.js.map +1 -1
- package/lib/module/ui/hooks/useFollowTarget.js +1 -1
- package/lib/module/ui/hooks/useFollowTarget.js.map +1 -1
- package/lib/module/ui/hooks/useI18n.js +1 -1
- package/lib/module/ui/hooks/useI18n.js.map +1 -1
- package/lib/module/ui/hooks/useLanguageManagement.js +34 -19
- package/lib/module/ui/hooks/useLanguageManagement.js.map +1 -1
- package/lib/module/ui/hooks/useOxyEvent.js +1 -1
- package/lib/module/ui/hooks/useOxyEvent.js.map +1 -1
- package/lib/module/ui/hooks/useSurfaceHeader.js +41 -3
- package/lib/module/ui/hooks/useSurfaceHeader.js.map +1 -1
- package/lib/module/ui/hooks/useUsernameAvailability.js +56 -0
- package/lib/module/ui/hooks/useUsernameAvailability.js.map +1 -0
- package/lib/module/ui/icons/subsetGlyphMaps.js +4 -4
- package/lib/module/ui/icons/subsetGlyphMaps.js.map +1 -1
- package/lib/module/ui/index.js +4 -0
- package/lib/module/ui/index.js.map +1 -1
- package/lib/module/ui/navigation/accountDialogManager.js +2 -0
- package/lib/module/ui/navigation/accountDialogManager.js.map +1 -1
- package/lib/module/ui/navigation/bottomSheetManager.js +3 -3
- package/lib/module/ui/navigation/bottomSheetManager.js.map +1 -1
- package/lib/module/ui/navigation/routes.js +24 -102
- package/lib/module/ui/navigation/routes.js.map +1 -1
- package/lib/module/ui/navigation/screenComponents.js +96 -0
- package/lib/module/ui/navigation/screenComponents.js.map +1 -0
- package/lib/module/ui/navigation/surfaceBackBridge.js +1 -1
- package/lib/module/ui/navigation/surfaceBackBridge.js.map +1 -1
- package/lib/module/ui/navigation/surfaceNavStack.js +25 -6
- package/lib/module/ui/navigation/surfaceNavStack.js.map +1 -1
- package/lib/module/ui/navigation/surfaceRegistry.js +4 -0
- package/lib/module/ui/navigation/surfaceRegistry.js.map +1 -1
- package/lib/module/ui/navigation/surfaces.js +19 -7
- package/lib/module/ui/navigation/surfaces.js.map +1 -1
- package/lib/module/ui/one-video.js +45 -0
- package/lib/module/ui/one-video.js.map +1 -0
- package/lib/module/ui/runtime/createOxyRuntime.js +7 -1
- package/lib/module/ui/runtime/createOxyRuntime.js.map +1 -1
- package/lib/module/ui/screens/AccountMembersScreen.js +7 -6
- package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js +10 -10
- package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountVerificationScreen.js +1 -1
- package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
- package/lib/module/ui/screens/AppInfoScreen.js +36 -35
- package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
- package/lib/module/ui/screens/AvatarCropScreen.js +35 -64
- package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
- package/lib/module/ui/screens/ChangeAvatarScreen.js +7 -7
- package/lib/module/ui/screens/ChangeAvatarScreen.js.map +1 -1
- package/lib/module/ui/screens/ConnectedAppsScreen.js +10 -13
- package/lib/module/ui/screens/ConnectedAppsScreen.js.map +1 -1
- package/lib/module/ui/screens/CreateAccountScreen.js +9 -9
- package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
- package/lib/module/ui/screens/DomainsScreen.js +6 -13
- package/lib/module/ui/screens/DomainsScreen.js.map +1 -1
- package/lib/module/ui/screens/EditProfileFieldScreen.js +138 -287
- package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
- package/lib/module/ui/screens/EditProfileScreen.js +18 -15
- package/lib/module/ui/screens/EditProfileScreen.js.map +1 -1
- package/lib/module/ui/screens/FileManagementScreen.js +33 -188
- package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/module/ui/screens/FileTrashScreen.js +1 -1
- package/lib/module/ui/screens/FileTrashScreen.js.map +1 -1
- package/lib/module/ui/screens/HelpSupportScreen.js +76 -64
- package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
- package/lib/module/ui/screens/HistoryViewScreen.js +8 -13
- package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
- package/lib/module/ui/screens/LanguageSelectorScreen.js +34 -35
- package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
- package/lib/module/ui/screens/LegalDocumentsScreen.js +9 -17
- package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
- package/lib/module/ui/screens/ManageAccountScreen.js +319 -328
- package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
- package/lib/module/ui/screens/NotificationsScreen.js +9 -9
- package/lib/module/ui/screens/NotificationsScreen.js.map +1 -1
- package/lib/module/ui/screens/OxyOneScreen.js +208 -0
- package/lib/module/ui/screens/OxyOneScreen.js.map +1 -0
- package/lib/module/ui/screens/PreferencesScreen.js +11 -11
- package/lib/module/ui/screens/PreferencesScreen.js.map +1 -1
- package/lib/module/ui/screens/PrivacySettingsScreen.js +64 -87
- package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/ProfileScreen.js +310 -235
- package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/module/ui/screens/ReportBugScreen.js +68 -0
- package/lib/module/ui/screens/ReportBugScreen.js.map +1 -0
- package/lib/module/ui/screens/SearchSettingsScreen.js +33 -62
- package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/SupervisionScreen.js +1 -1
- package/lib/module/ui/screens/SupervisionScreen.js.map +1 -1
- package/lib/module/ui/screens/UserListScreen.js +67 -59
- package/lib/module/ui/screens/UserListScreen.js.map +1 -1
- package/lib/module/ui/screens/WelcomeNewUserScreen.js +1 -1
- package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/module/ui/screens/fileManagement/FileListSection.js +7 -6
- package/lib/module/ui/screens/fileManagement/FileListSection.js.map +1 -1
- package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js +18 -83
- package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
- package/lib/module/ui/screens/fileManagement/UploadBar.js +3 -1
- package/lib/module/ui/screens/fileManagement/UploadBar.js.map +1 -1
- package/lib/module/ui/screens/index.js +1 -0
- package/lib/module/ui/screens/index.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustCenterScreen.js +11 -21
- package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +37 -67
- package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustRewardsScreen.js +20 -8
- package/lib/module/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustRulesScreen.js +5 -9
- package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
- package/lib/typescript/assets/one/floral.jpg.d.ts +2 -0
- package/lib/typescript/assets/one/floral.mp4.d.ts +2 -0
- package/lib/typescript/commonjs/index.d.ts +1 -1
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/client.d.ts +1 -2
- package/lib/typescript/commonjs/ui/client.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyConsentScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyOAuthCallback.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts +3 -1
- package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/ProfileSummaryCard.d.ts +4 -13
- package/lib/typescript/commonjs/ui/components/ProfileSummaryCard.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/RequireOxyAuth.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/SettingsIcon.d.ts +0 -4
- package/lib/typescript/commonjs/ui/components/SettingsIcon.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/SurfaceHeaderAction.d.ts +1 -1
- package/lib/typescript/commonjs/ui/components/SurfaceHeaderAction.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts +8 -1
- package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts +2 -29
- package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/storageUsage.d.ts +11 -0
- package/lib/typescript/commonjs/ui/components/authChooser/storageUsage.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/authChooser/styles.d.ts +19 -68
- package/lib/typescript/commonjs/ui/components/authChooser/styles.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts +6 -6
- package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/payment/PaymentReviewStep.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/signIn/OxyAccountPicker.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/signIn/ReauthStep.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +2 -28
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +1 -0
- package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/oxyRuntimeContext.d.ts +31 -0
- package/lib/typescript/commonjs/ui/context/oxyRuntimeContext.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/context/oxySupportContext.d.ts +9 -0
- package/lib/typescript/commonjs/ui/context/oxySupportContext.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/queries/usePersonalPlans.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts +1 -1
- package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useLanguageManagement.d.ts +4 -2
- package/lib/typescript/commonjs/ui/hooks/useLanguageManagement.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useSurfaceHeader.d.ts +1 -1
- package/lib/typescript/commonjs/ui/hooks/useSurfaceHeader.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useUsernameAvailability.d.ts +9 -0
- package/lib/typescript/commonjs/ui/hooks/useUsernameAvailability.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts +1 -1
- package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts +1 -1
- package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/icons/subsetGlyphMaps.d.ts +4 -4
- package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts +15 -1
- package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/routes.d.ts +10 -18
- package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/screenComponents.d.ts +4 -0
- package/lib/typescript/commonjs/ui/navigation/screenComponents.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/navigation/surfaceNavStack.d.ts +3 -1
- package/lib/typescript/commonjs/ui/navigation/surfaceNavStack.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts +6 -1
- package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts +1 -1
- package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/one-video.d.ts +3 -0
- package/lib/typescript/commonjs/ui/one-video.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/runtime/createOxyRuntime.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AppInfoScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/DomainsScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/EditProfileScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/HelpSupportScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/HistoryViewScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts +4 -1
- package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/OxyOneScreen.d.ts +4 -0
- package/lib/typescript/commonjs/ui/screens/OxyOneScreen.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/ReportBugScreen.d.ts +2 -0
- package/lib/typescript/commonjs/ui/screens/ReportBugScreen.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts +1 -5
- package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/fileManagement/FileListSection.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/fileManagement/PhotoPickerSection.d.ts +1 -1
- package/lib/typescript/commonjs/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/fileManagement/UploadBar.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/index.d.ts +1 -0
- package/lib/typescript/commonjs/ui/screens/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/types/navigation.d.ts +12 -0
- package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +1 -1
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/client.d.ts +1 -2
- package/lib/typescript/module/ui/client.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyConsentScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyOAuthCallback.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/ProfileButton.d.ts +3 -1
- package/lib/typescript/module/ui/components/ProfileButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/ProfileSummaryCard.d.ts +4 -13
- package/lib/typescript/module/ui/components/ProfileSummaryCard.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/RequireOxyAuth.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/SettingsIcon.d.ts +0 -4
- package/lib/typescript/module/ui/components/SettingsIcon.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/SurfaceHeaderAction.d.ts +1 -1
- package/lib/typescript/module/ui/components/SurfaceHeaderAction.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/SurfaceScreen.d.ts +8 -1
- package/lib/typescript/module/ui/components/SurfaceScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts +2 -29
- package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/storageUsage.d.ts +11 -0
- package/lib/typescript/module/ui/components/authChooser/storageUsage.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/authChooser/styles.d.ts +19 -68
- package/lib/typescript/module/ui/components/authChooser/styles.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/types.d.ts +6 -6
- package/lib/typescript/module/ui/components/authChooser/types.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/payment/PaymentReviewStep.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/signIn/OxyAccountPicker.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/signIn/ReauthStep.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/OxyContext.d.ts +2 -28
- package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +1 -0
- package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/oxyRuntimeContext.d.ts +31 -0
- package/lib/typescript/module/ui/context/oxyRuntimeContext.d.ts.map +1 -0
- package/lib/typescript/module/ui/context/oxySupportContext.d.ts +9 -0
- package/lib/typescript/module/ui/context/oxySupportContext.d.ts.map +1 -0
- package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/queries/usePersonalPlans.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useAuth.d.ts +1 -1
- package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useLanguageManagement.d.ts +4 -2
- package/lib/typescript/module/ui/hooks/useLanguageManagement.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useSurfaceHeader.d.ts +1 -1
- package/lib/typescript/module/ui/hooks/useSurfaceHeader.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useUsernameAvailability.d.ts +9 -0
- package/lib/typescript/module/ui/hooks/useUsernameAvailability.d.ts.map +1 -0
- package/lib/typescript/module/ui/icons/Ionicons.d.ts +1 -1
- package/lib/typescript/module/ui/icons/Ionicons.d.ts.map +1 -1
- package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts +1 -1
- package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts.map +1 -1
- package/lib/typescript/module/ui/icons/subsetGlyphMaps.d.ts +4 -4
- package/lib/typescript/module/ui/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts +15 -1
- package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/routes.d.ts +10 -18
- package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/screenComponents.d.ts +4 -0
- package/lib/typescript/module/ui/navigation/screenComponents.d.ts.map +1 -0
- package/lib/typescript/module/ui/navigation/surfaceNavStack.d.ts +3 -1
- package/lib/typescript/module/ui/navigation/surfaceNavStack.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts +6 -1
- package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/surfaces.d.ts +1 -1
- package/lib/typescript/module/ui/navigation/surfaces.d.ts.map +1 -1
- package/lib/typescript/module/ui/one-video.d.ts +3 -0
- package/lib/typescript/module/ui/one-video.d.ts.map +1 -0
- package/lib/typescript/module/ui/runtime/createOxyRuntime.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AppInfoScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/DomainsScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/EditProfileScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts +4 -1
- package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/OxyOneScreen.d.ts +4 -0
- package/lib/typescript/module/ui/screens/OxyOneScreen.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/ReportBugScreen.d.ts +2 -0
- package/lib/typescript/module/ui/screens/ReportBugScreen.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/UserListScreen.d.ts +1 -5
- package/lib/typescript/module/ui/screens/UserListScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/fileManagement/FileListSection.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/fileManagement/PhotoPickerSection.d.ts +1 -1
- package/lib/typescript/module/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/fileManagement/UploadBar.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/index.d.ts +1 -0
- package/lib/typescript/module/ui/screens/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/types/navigation.d.ts +12 -0
- package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
- package/lib/typescript/types/assets.d.ts +10 -0
- package/package.json +28 -12
- package/plugins/withOxySharedPermissions.js +2 -1
- package/plugins/withSharedDeviceSessionProvider.js +2 -1
- package/src/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
- package/src/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
- package/src/assets/fonts/icons/manifest.json +9 -9
- package/src/assets/one/README.md +8 -0
- package/src/assets/one/floral.jpg +0 -0
- package/src/assets/one/floral.jpg.d.ts +2 -0
- package/src/assets/one/floral.mp4 +0 -0
- package/src/assets/one/floral.mp4.d.ts +2 -0
- package/src/index.ts +9 -1
- package/src/types/assets.d.ts +10 -0
- package/src/ui/client.ts +2 -3
- package/src/ui/components/AccountInvitationAcceptance.tsx +1 -1
- package/src/ui/components/BloomLocaleBridge.tsx +1 -1
- package/src/ui/components/FollowButton.tsx +1 -1
- package/src/ui/components/LanguageBridge.tsx +1 -1
- package/src/ui/components/OxyAccountDialogScreen.tsx +3 -14
- package/src/ui/components/OxyAuthChooser.tsx +28 -24
- package/src/ui/components/OxyConsentScreen.tsx +8 -25
- package/src/ui/components/OxyOAuthCallback.tsx +3 -2
- package/src/ui/components/OxyProvider.tsx +34 -8
- package/src/ui/components/OxySignInButton.tsx +1 -1
- package/src/ui/components/ProfileButton.tsx +17 -4
- package/src/ui/components/ProfileSummaryCard.tsx +27 -68
- package/src/ui/components/RequireOxyAuth.tsx +16 -38
- package/src/ui/components/SettingsIcon.tsx +8 -33
- package/src/ui/components/SurfaceHeaderAction.tsx +1 -1
- package/src/ui/components/SurfaceScreen.tsx +56 -49
- package/src/ui/components/__tests__/AccountInvitationAcceptance.test.tsx +1 -1
- package/src/ui/components/__tests__/BloomLocaleBridge.test.tsx +1 -1
- package/src/ui/components/__tests__/LanguageBridge.test.tsx +1 -1
- package/src/ui/components/__tests__/followButtonAccessibility.test.tsx +1 -1
- package/src/ui/components/authChooser/AccountsMenuView.tsx +271 -521
- package/src/ui/components/authChooser/storageUsage.ts +75 -0
- package/src/ui/components/authChooser/styles.ts +14 -76
- package/src/ui/components/authChooser/types.ts +6 -6
- package/src/ui/components/fileManagement/FileViewer.tsx +7 -6
- package/src/ui/components/modals/DeleteAccountModal.tsx +25 -24
- package/src/ui/components/organizations/OrganizationClaimReview.tsx +1 -1
- package/src/ui/components/organizations/OrganizationClaims.tsx +1 -1
- package/src/ui/components/organizations/OrganizationDirectorySearch.tsx +1 -1
- package/src/ui/components/organizations/OrganizationSettings.tsx +1 -1
- package/src/ui/components/payment/PaymentDetailsStep.tsx +13 -51
- package/src/ui/components/payment/PaymentMethodStep.tsx +4 -4
- package/src/ui/components/payment/PaymentReviewStep.tsx +12 -17
- package/src/ui/components/payment/PaymentSummaryStep.tsx +4 -4
- package/src/ui/components/signIn/InlineCommonsQr.tsx +9 -4
- package/src/ui/components/signIn/OxyAccountPicker.tsx +42 -93
- package/src/ui/components/signIn/OxyAuthenticatorPanel.tsx +1 -1
- package/src/ui/components/signIn/OxyDeleteAccountPanel.tsx +1 -1
- package/src/ui/components/signIn/OxyEmailAccountChoice.tsx +1 -1
- package/src/ui/components/signIn/OxyLinkCommonsPanel.tsx +1 -1
- package/src/ui/components/signIn/OxyPasswordPanel.tsx +1 -1
- package/src/ui/components/signIn/OxySignInPanel.tsx +1 -1
- package/src/ui/components/signIn/OxySignUpPanel.tsx +1 -1
- package/src/ui/components/signIn/ReauthStep.tsx +26 -16
- package/src/ui/components/signIn/accountFlowParts.tsx +1 -1
- package/src/ui/components/supervision/PersonPicker.tsx +1 -1
- package/src/ui/context/OxyContext.tsx +15 -79
- package/src/ui/context/oxyContextTypes.ts +1 -0
- package/src/ui/context/oxyRuntimeContext.ts +69 -0
- package/src/ui/context/oxySupportContext.ts +9 -0
- package/src/ui/hooks/mutations/useAccountMutations.ts +1 -1
- package/src/ui/hooks/mutations/useServicesMutations.ts +1 -1
- package/src/ui/hooks/queries/useAccountQueries.ts +4 -2
- package/src/ui/hooks/queries/useAuthMethods.ts +1 -1
- package/src/ui/hooks/queries/useFileQueries.ts +1 -1
- package/src/ui/hooks/queries/usePaymentQueries.ts +1 -1
- package/src/ui/hooks/queries/usePersonalPlans.ts +1 -1
- package/src/ui/hooks/queries/useSecurityQueries.ts +1 -1
- package/src/ui/hooks/queries/useServicesQueries.ts +1 -1
- package/src/ui/hooks/queries/useSupervision.ts +1 -1
- package/src/ui/hooks/useAuth.ts +1 -1
- package/src/ui/hooks/useDeviceSwitcher.ts +1 -1
- package/src/ui/hooks/useDisplayCurrency.ts +1 -1
- package/src/ui/hooks/useFollow.ts +1 -1
- package/src/ui/hooks/useFollowTarget.ts +1 -1
- package/src/ui/hooks/useI18n.ts +1 -1
- package/src/ui/hooks/useLanguageManagement.ts +48 -23
- package/src/ui/hooks/useOxyEvent.ts +1 -1
- package/src/ui/hooks/useSurfaceHeader.ts +50 -2
- package/src/ui/hooks/useUsernameAvailability.ts +57 -0
- package/src/ui/icons/subsetGlyphMaps.ts +4 -4
- package/src/ui/index.ts +5 -0
- package/src/ui/navigation/__tests__/bottomSheetManager.test.ts +37 -0
- package/src/ui/navigation/__tests__/surfaceNavStack.test.ts +27 -0
- package/src/ui/navigation/accountDialogManager.ts +16 -1
- package/src/ui/navigation/bottomSheetManager.ts +3 -3
- package/src/ui/navigation/routes.ts +75 -103
- package/src/ui/navigation/screenComponents.ts +96 -0
- package/src/ui/navigation/surfaceBackBridge.ts +1 -1
- package/src/ui/navigation/surfaceNavStack.ts +33 -6
- package/src/ui/navigation/surfaceRegistry.ts +7 -1
- package/src/ui/navigation/surfaces.ts +30 -15
- package/src/ui/one-video.tsx +44 -0
- package/src/ui/runtime/createOxyRuntime.ts +7 -1
- package/src/ui/screens/AccountMembersScreen.tsx +6 -6
- package/src/ui/screens/AccountSettingsScreen.tsx +14 -14
- package/src/ui/screens/AccountVerificationScreen.tsx +1 -1
- package/src/ui/screens/AppInfoScreen.tsx +41 -42
- package/src/ui/screens/AvatarCropScreen.tsx +33 -57
- package/src/ui/screens/ChangeAvatarScreen.tsx +8 -8
- package/src/ui/screens/ConnectedAppsScreen.tsx +11 -15
- package/src/ui/screens/CreateAccountScreen.tsx +13 -13
- package/src/ui/screens/DomainsScreen.tsx +9 -14
- package/src/ui/screens/EditProfileFieldScreen.tsx +189 -282
- package/src/ui/screens/EditProfileScreen.tsx +21 -18
- package/src/ui/screens/FileManagementScreen.tsx +44 -205
- package/src/ui/screens/FileTrashScreen.tsx +1 -1
- package/src/ui/screens/HelpSupportScreen.tsx +59 -53
- package/src/ui/screens/HistoryViewScreen.tsx +10 -17
- package/src/ui/screens/LanguageSelectorScreen.tsx +37 -35
- package/src/ui/screens/LegalDocumentsScreen.tsx +10 -20
- package/src/ui/screens/ManageAccountScreen.tsx +367 -340
- package/src/ui/screens/NotificationsScreen.tsx +12 -12
- package/src/ui/screens/OxyOneScreen.tsx +223 -0
- package/src/ui/screens/PreferencesScreen.tsx +15 -15
- package/src/ui/screens/PrivacySettingsScreen.tsx +65 -89
- package/src/ui/screens/ProfileScreen.tsx +242 -268
- package/src/ui/screens/ReportBugScreen.tsx +68 -0
- package/src/ui/screens/SearchSettingsScreen.tsx +30 -65
- package/src/ui/screens/SupervisionScreen.tsx +1 -1
- package/src/ui/screens/UserListScreen.tsx +85 -62
- package/src/ui/screens/WelcomeNewUserScreen.tsx +1 -1
- package/src/ui/screens/fileManagement/FileListSection.tsx +7 -6
- package/src/ui/screens/fileManagement/PhotoPickerSection.tsx +15 -78
- package/src/ui/screens/fileManagement/UploadBar.tsx +4 -1
- package/src/ui/screens/index.ts +1 -0
- package/src/ui/screens/trust/TrustCenterScreen.tsx +13 -22
- package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +32 -62
- package/src/ui/screens/trust/TrustRewardsScreen.tsx +10 -5
- package/src/ui/screens/trust/TrustRulesScreen.tsx +6 -9
- package/src/ui/types/navigation.ts +12 -0
- package/lib/commonjs/ui/screens/UserLinksScreen.js +0 -61
- package/lib/commonjs/ui/screens/UserLinksScreen.js.map +0 -1
- package/lib/module/ui/screens/UserLinksScreen.js +0 -57
- package/lib/module/ui/screens/UserLinksScreen.js.map +0 -1
- package/lib/typescript/commonjs/ui/screens/UserLinksScreen.d.ts +0 -15
- package/lib/typescript/commonjs/ui/screens/UserLinksScreen.d.ts.map +0 -1
- package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts +0 -15
- package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts.map +0 -1
- package/lib/typescript/types/expo-document-picker.d.ts +0 -35
- package/lib/typescript/types/expo-image-picker.d.ts +0 -35
- package/src/types/expo-document-picker.d.ts +0 -35
- package/src/types/expo-image-picker.d.ts +0 -35
- package/src/ui/screens/UserLinksScreen.tsx +0 -68
|
@@ -1,48 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
* The signed-in Oxy account MENU (`accounts` view) — a Google-account-menu-style
|
|
3
|
-
* full menu built entirely with NativeWind `className` (the dynamic per-account
|
|
4
|
-
* accent hex is the one inline style NativeWind cannot express). Structure:
|
|
5
|
-
*
|
|
6
|
-
* - HERO on its own chrome-free block: the current account's large pressable
|
|
7
|
-
* avatar (with a camera badge to change the photo), the greeting, the account
|
|
8
|
-
* address, and a "Manage your Oxy account" pill.
|
|
9
|
-
* - SWITCH ACCOUNT: a disclosure row whose corner animates from pill to card as
|
|
10
|
-
* the device's people + "Add another account" + "Manage accounts on this
|
|
11
|
-
* device" reveal beneath it. The list is grouped BY PERSON (ADR 0002): an
|
|
12
|
-
* account sits under the human who can operate it, and the same organization
|
|
13
|
-
* reachable through two people is two rows under two names — the thing a list
|
|
14
|
-
* keyed by account id structurally cannot say.
|
|
15
|
-
* - OXY STORAGE: cloud + used/total + a composition meter + Upgrade / Manage chips.
|
|
16
|
-
* - MENU rows: Your data in Oxy · Oxy settings · Help & feedback · Sign out —
|
|
17
|
-
* Bloom's grouped section, the same component every other SDK settings surface
|
|
18
|
-
* uses, not a local row copy.
|
|
19
|
-
* - FOOTER: Privacy Policy · Terms of Service.
|
|
20
|
-
*
|
|
21
|
-
* All three blocks share ONE rhythm taken from that grouped section: a 12px
|
|
22
|
-
* content inset, a 12px gap after the leading element, 16px between blocks, and
|
|
23
|
-
* a 16px trailing chevron column.
|
|
24
|
-
*
|
|
25
|
-
* Collapse state is a plain `useState` toggled in the row's press handler — no
|
|
26
|
-
* effect hook, no derived-from-props sync.
|
|
27
|
-
*/
|
|
28
|
-
|
|
1
|
+
import { SpinnerIcon } from '@oxy.so/bloom/loading';
|
|
29
2
|
import type React from 'react';
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
32
|
-
import Animated, {
|
|
33
|
-
Extrapolation,
|
|
34
|
-
interpolate,
|
|
35
|
-
useAnimatedStyle,
|
|
36
|
-
useSharedValue,
|
|
37
|
-
withTiming,
|
|
38
|
-
} from 'react-native-reanimated';
|
|
3
|
+
import { useCallback, useState } from 'react';
|
|
4
|
+
import { View } from 'react-native-css/components';
|
|
5
|
+
import Animated, { useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';
|
|
39
6
|
import MaterialCommunityIcons from '../../icons/MaterialCommunityIcons';
|
|
40
7
|
import { Avatar } from '@oxy.so/bloom/avatar';
|
|
41
|
-
import {
|
|
42
|
-
import {
|
|
8
|
+
import { Button, LinkButton } from '@oxy.so/bloom/button';
|
|
9
|
+
import { RiSparklingFill } from '@oxy.so/bloom/icons/RiSparklingFill';
|
|
43
10
|
import { PressableScale } from '@oxy.so/bloom/pressable-scale';
|
|
44
|
-
import {
|
|
45
|
-
import {
|
|
11
|
+
import { UsageCard } from '@oxy.so/bloom/usage-card';
|
|
12
|
+
import {
|
|
13
|
+
GroupedSection,
|
|
14
|
+
GroupedSectionItem,
|
|
15
|
+
GroupedSectionCollapse,
|
|
16
|
+
GroupedSectionIcon,
|
|
17
|
+
} from '@oxy.so/bloom/grouped-section';
|
|
46
18
|
import { Text } from '@oxy.so/bloom/typography';
|
|
47
19
|
import {
|
|
48
20
|
showsPrincipalHeaders,
|
|
@@ -51,7 +23,9 @@ import {
|
|
|
51
23
|
type SwitcherPrincipalRow,
|
|
52
24
|
} from '@oxy.so/core/session';
|
|
53
25
|
import AvatarCameraBadge from '../AvatarCameraBadge';
|
|
26
|
+
import LogoIcon from '../logo/LogoIcon';
|
|
54
27
|
import { authChooserStyles as styles } from './styles';
|
|
28
|
+
import { accountStorageUsage, formatStorageSize, shouldShowStorageActions } from './storageUsage';
|
|
55
29
|
import {
|
|
56
30
|
resolveAccentHex,
|
|
57
31
|
type AccountHeroModel,
|
|
@@ -62,60 +36,7 @@ import {
|
|
|
62
36
|
type Translate,
|
|
63
37
|
} from './types';
|
|
64
38
|
|
|
65
|
-
|
|
66
|
-
baseClassName: string;
|
|
67
|
-
hoverClassName: string;
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* A `Pressable` that appends a hover-tint NativeWind token while pointer-hovered.
|
|
72
|
-
* The Metro web pipeline here does NOT emit NativeWind `hover:` variants, so hover
|
|
73
|
-
* is driven by RN's cross-platform `onHoverIn`/`onHoverOut` (they fire only on web
|
|
74
|
-
* via react-native-web; a no-op on native) toggling a plain background token —
|
|
75
|
-
* the tint stays a NativeWind class, only the trigger is JS.
|
|
76
|
-
*/
|
|
77
|
-
const HoverPressable: React.FC<HoverPressableProps> = ({
|
|
78
|
-
baseClassName,
|
|
79
|
-
hoverClassName,
|
|
80
|
-
...rest
|
|
81
|
-
}) => {
|
|
82
|
-
const [hovered, setHovered] = useState(false);
|
|
83
|
-
return (
|
|
84
|
-
<Pressable
|
|
85
|
-
{...rest}
|
|
86
|
-
className={hovered ? `${baseClassName} ${hoverClassName}` : baseClassName}
|
|
87
|
-
onHoverIn={() => setHovered(true)}
|
|
88
|
-
onHoverOut={() => setHovered(false)}
|
|
89
|
-
/>
|
|
90
|
-
);
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Leading glyph for the rows that live in a Bloom grouped section (the MENU
|
|
95
|
-
* block) and for the storage card's cloud, which lines its title up with them.
|
|
96
|
-
* It is Bloom's OWN icon-slot size: `SettingsListItem` reserves a fixed 20px
|
|
97
|
-
* leading column and Bloom is consumed exactly as it ships, so a menu glyph
|
|
98
|
-
* larger than this would overhang into the row's title.
|
|
99
|
-
*/
|
|
100
|
-
const ROW_ICON_SIZE = 20;
|
|
101
|
-
/**
|
|
102
|
-
* The switch card's two corner states. Collapsed it is one row and reads as a
|
|
103
|
-
* PILL; opened it is a card holding rows, on the same 16px corner the Bloom
|
|
104
|
-
* grouped section below it uses. Interpolated across the reveal, never snapped.
|
|
105
|
-
*/
|
|
106
|
-
const SWITCH_CARD_PILL_RADIUS = 999;
|
|
107
|
-
const SWITCH_CARD_RADIUS = 16;
|
|
108
|
-
/**
|
|
109
|
-
* The fraction of the reveal over which the corner resolves. The corner is a
|
|
110
|
-
* FASTER gesture than the reveal — it has to be finished before the rows read as
|
|
111
|
-
* rows, or the card still looks like a pill while a list falls out of it — so it
|
|
112
|
-
* is clamped to the reveal's opening fraction instead of tracking it end to end.
|
|
113
|
-
* Measured in a browser against the 240ms reveal: the corner reaches its card
|
|
114
|
-
* value ~120ms in, with the list only ~20% revealed, and (mirrored) the pill is
|
|
115
|
-
* back ~250ms into the close, with the list already down to ~0.
|
|
116
|
-
*/
|
|
117
|
-
const SWITCH_CARD_RADIUS_SETTLE = 0.2;
|
|
118
|
-
/** Duration of the switch-list reveal. */
|
|
39
|
+
/** Duration of the disclosure chevron rotation. */
|
|
119
40
|
const SWITCH_REVEAL_MS = 240;
|
|
120
41
|
/** Diameter of an account row's avatar in the switch list (own markup). */
|
|
121
42
|
const SWITCH_AVATAR_SIZE = 36;
|
|
@@ -124,36 +45,16 @@ const SWITCH_AVATAR_SIZE = 36;
|
|
|
124
45
|
* rows beneath it: the header labels the group, the rows are the targets.
|
|
125
46
|
*/
|
|
126
47
|
const PRINCIPAL_AVATAR_SIZE = 24;
|
|
127
|
-
/**
|
|
128
|
-
const
|
|
129
|
-
/** The hero block's large current-account avatar. */
|
|
130
|
-
const HERO_AVATAR_SIZE = 72;
|
|
131
|
-
/** Avatars shown in the switch row's facepile before it collapses into `+N`. */
|
|
132
|
-
const FACEPILE_MAX = 2;
|
|
133
|
-
/** Facepile avatar diameter — one clear step down from a switch-list avatar. */
|
|
134
|
-
const FACEPILE_AVATAR_SIZE = 32;
|
|
135
|
-
/**
|
|
136
|
-
* Facepile overlap. Well under Bloom's `size / 3` default: the stack draws the
|
|
137
|
-
* FIRST item on top, so a deep overlap would bury the trailing `+N` chip's own
|
|
138
|
-
* label under the avatar before it.
|
|
139
|
-
*/
|
|
140
|
-
const FACEPILE_OVERLAP = 4;
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* `bytes` → `"11.6 GB"`. Whole plan sizes read as whole numbers (`"17 GB"`, not
|
|
144
|
-
* `"17.0 GB"`), and anything ≥ 100 GB drops the decimal entirely.
|
|
145
|
-
*/
|
|
146
|
-
function formatStorageGb(bytes: number): string {
|
|
147
|
-
const gb = bytes / 1024 ** 3;
|
|
148
|
-
if (gb >= 100 || Number.isInteger(gb)) return `${Math.round(gb)} GB`;
|
|
149
|
-
return `${gb.toFixed(1)} GB`;
|
|
150
|
-
}
|
|
151
|
-
|
|
48
|
+
/** Current-account avatar in the summary row. */
|
|
49
|
+
const HERO_AVATAR_SIZE = 56;
|
|
152
50
|
interface AccountsMenuViewProps {
|
|
153
|
-
snapshot:
|
|
51
|
+
snapshot: Pick<
|
|
52
|
+
AccountDialogSnapshot,
|
|
53
|
+
'loading' | 'activatingContextId' | 'removingContextId' | 'removingPrincipalId'
|
|
54
|
+
>;
|
|
154
55
|
/** The device's people, each with the accounts they may act as. */
|
|
155
56
|
principals: SwitcherPrincipalRow[];
|
|
156
|
-
/** The current account
|
|
57
|
+
/** The current account in the summary row. `null` before the session resolves. */
|
|
157
58
|
hero: AccountHeroModel | null;
|
|
158
59
|
theme: Theme;
|
|
159
60
|
t: Translate;
|
|
@@ -173,64 +74,19 @@ const AccountsMenuView: React.FC<AccountsMenuViewProps> = ({
|
|
|
173
74
|
menu,
|
|
174
75
|
}) => {
|
|
175
76
|
const [expanded, setExpanded] = useState(false);
|
|
176
|
-
|
|
177
|
-
//
|
|
178
|
-
// guessed max. The measuring wrapper is style-based, NOT className'd — on
|
|
179
|
-
// RN-Web `onLayout` never fires for className'd Views (see AGENTS.md).
|
|
180
|
-
const [listContentHeight, setListContentHeight] = useState(0);
|
|
181
|
-
// 0 = collapsed, 1 = expanded. Set imperatively in the toggle handler (no
|
|
182
|
-
// effect hook). On RN-Web there is no worklets plugin, so every shared value a
|
|
183
|
-
// mapper reads MUST be in its deps array or it freezes on the first frame
|
|
184
|
-
// (AGENTS.md "Reanimated (web)").
|
|
77
|
+
const [summaryHovered, setSummaryHovered] = useState(false);
|
|
78
|
+
// Bloom owns the grouped surface; the dialog owns measured size transitions.
|
|
185
79
|
const listProgress = useSharedValue(0);
|
|
186
|
-
const listStyle = useAnimatedStyle(
|
|
187
|
-
() => ({ height: listProgress.value * listContentHeight, opacity: listProgress.value }),
|
|
188
|
-
[listProgress, listContentHeight],
|
|
189
|
-
);
|
|
190
80
|
const chevronStyle = useAnimatedStyle(
|
|
191
81
|
() => ({ transform: [{ rotate: `${listProgress.value * 180}deg` }] }),
|
|
192
82
|
[listProgress],
|
|
193
83
|
);
|
|
194
|
-
// Collapsed, the switch card is a single row and reads as a PILL; opened, it
|
|
195
|
-
// becomes a card holding rows and takes the grouped-section corner. The corner
|
|
196
|
-
// is driven off the SAME `listProgress` as the reveal — but clamped to its
|
|
197
|
-
// opening fraction, so it resolves early instead of trailing the rows.
|
|
198
|
-
const switchCardStyle = useAnimatedStyle(
|
|
199
|
-
() => ({
|
|
200
|
-
borderRadius: interpolate(
|
|
201
|
-
listProgress.value,
|
|
202
|
-
[0, SWITCH_CARD_RADIUS_SETTLE],
|
|
203
|
-
[SWITCH_CARD_PILL_RADIUS, SWITCH_CARD_RADIUS],
|
|
204
|
-
Extrapolation.CLAMP,
|
|
205
|
-
),
|
|
206
|
-
}),
|
|
207
|
-
[listProgress],
|
|
208
|
-
);
|
|
209
|
-
// `CompositionBar` ships as an interactive breakdown: a selected segment
|
|
210
|
-
// replaces its hint line with that segment's readout. Tapping the selected one
|
|
211
|
-
// again clears it.
|
|
212
|
-
const [storageSegment, setStorageSegment] = useState<string | null>(null);
|
|
213
|
-
const toggleStorageSegment = useCallback(
|
|
214
|
-
(key: string) => setStorageSegment((previous) => (previous === key ? null : key)),
|
|
215
|
-
[],
|
|
216
|
-
);
|
|
217
84
|
const toggleExpanded = useCallback(() => {
|
|
218
85
|
const next = !expanded;
|
|
219
86
|
setExpanded(next);
|
|
220
87
|
listProgress.value = withTiming(next ? 1 : 0, { duration: SWITCH_REVEAL_MS });
|
|
221
88
|
}, [expanded, listProgress]);
|
|
222
89
|
|
|
223
|
-
if (snapshot.loading && principals.length === 0) {
|
|
224
|
-
return (
|
|
225
|
-
<View className="items-center justify-center gap-space-12 py-space-24">
|
|
226
|
-
<MaterialCommunityIcons name="loading" size={24} color={theme.colors.textSecondary} />
|
|
227
|
-
<Text className="text-body text-text-secondary text-center">
|
|
228
|
-
{t('accountSwitcher.loading')}
|
|
229
|
-
</Text>
|
|
230
|
-
</View>
|
|
231
|
-
);
|
|
232
|
-
}
|
|
233
|
-
|
|
234
90
|
// Activation and the two removals all mutate the same device, so any one of
|
|
235
91
|
// them in flight disables every row: a second press would race the first for
|
|
236
92
|
// which context the server ends up electing as active.
|
|
@@ -238,310 +94,246 @@ const AccountsMenuView: React.FC<AccountsMenuViewProps> = ({
|
|
|
238
94
|
snapshot.activatingContextId !== null ||
|
|
239
95
|
snapshot.removingContextId !== null ||
|
|
240
96
|
snapshot.removingPrincipalId !== null;
|
|
241
|
-
const currentAccent = hero?.accentHex ?? theme.colors.primary;
|
|
242
97
|
// Naming the person above each block earns its place only when the grouping
|
|
243
98
|
// carries information — a second person, or somebody with more than one
|
|
244
99
|
// account. On a one-person, one-account device it would just repeat the hero.
|
|
245
100
|
const showPrincipalHeaders = showsPrincipalHeaders(principals);
|
|
246
|
-
const contextRows = principals.flatMap((principal) => principal.contexts);
|
|
247
|
-
// Remounts the measured wrapper when the rows change, so the collapse animates
|
|
248
|
-
// to the new natural height instead of the previous one.
|
|
249
|
-
const switchListKey = contextRows.map((context) => context.contextId).join(':');
|
|
250
|
-
const facepile: AvatarGroupItem[] = contextRows.map((context) => ({
|
|
251
|
-
id: context.contextId,
|
|
252
|
-
uri: context.avatarUrl ?? undefined,
|
|
253
|
-
displayName: context.displayName,
|
|
254
|
-
}));
|
|
255
|
-
|
|
256
|
-
// Used vs free is a two-part COMPOSITION (the parts always fill the bar), not
|
|
257
|
-
// a progress value — exactly what Bloom's `CompositionBar` models. Both colors
|
|
258
|
-
// are theme tokens, so the bar is correct in light and dark.
|
|
259
|
-
const storageCategories: CompositionCategory[] = storage
|
|
260
|
-
? [
|
|
261
|
-
{
|
|
262
|
-
key: 'used',
|
|
263
|
-
name: t('accountMenu.storage.used'),
|
|
264
|
-
amount: storage.usedBytes,
|
|
265
|
-
color: theme.colors.primary,
|
|
266
|
-
},
|
|
267
|
-
{
|
|
268
|
-
key: 'free',
|
|
269
|
-
name: t('accountMenu.storage.free'),
|
|
270
|
-
amount: Math.max(0, storage.limitBytes - storage.usedBytes),
|
|
271
|
-
color: theme.colors.contrast50,
|
|
272
|
-
},
|
|
273
|
-
]
|
|
274
|
-
: [];
|
|
275
|
-
const usageLabel = storage
|
|
276
|
-
? t('accountMenu.storage.usage', {
|
|
277
|
-
used: formatStorageGb(storage.usedBytes),
|
|
278
|
-
total: formatStorageGb(storage.limitBytes),
|
|
279
|
-
})
|
|
280
|
-
: t('accountMenu.storage.unavailable');
|
|
281
101
|
|
|
282
|
-
//
|
|
283
|
-
//
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
{
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
onRemove={() => handlers.onRemoveContext(context.contextId)}
|
|
317
|
-
theme={theme}
|
|
318
|
-
t={t}
|
|
319
|
-
/>
|
|
320
|
-
</Fragment>
|
|
321
|
-
))}
|
|
322
|
-
</Fragment>
|
|
323
|
-
))}
|
|
324
|
-
|
|
325
|
-
<View className="h-px bg-border opacity-30 ml-space-12" />
|
|
326
|
-
<AccountAffordanceRow
|
|
327
|
-
icon="plus"
|
|
328
|
-
label={t('accountMenu.addAnother')}
|
|
329
|
-
onPress={handlers.onAdd}
|
|
330
|
-
disabled={busy}
|
|
331
|
-
theme={theme}
|
|
332
|
-
/>
|
|
333
|
-
<View className="h-px bg-border opacity-30 ml-space-12" />
|
|
334
|
-
<AccountAffordanceRow
|
|
335
|
-
icon="account-multiple-outline"
|
|
336
|
-
label={t('accountSwitcher.manageOnDevice')}
|
|
337
|
-
onPress={handlers.onManage}
|
|
338
|
-
disabled={busy}
|
|
339
|
-
theme={theme}
|
|
340
|
-
/>
|
|
341
|
-
</>
|
|
342
|
-
);
|
|
102
|
+
// Direct children share Bloom's grouped shape and spacing. Keep the
|
|
103
|
+
// principal/context pair as the action identity, even for shared accounts.
|
|
104
|
+
const listItems = principals.flatMap((principal) => [
|
|
105
|
+
...(showPrincipalHeaders
|
|
106
|
+
? [
|
|
107
|
+
<PrincipalHeaderRow
|
|
108
|
+
key={`principal:${principal.principalId}`}
|
|
109
|
+
principal={principal}
|
|
110
|
+
removing={snapshot.removingPrincipalId === principal.principalId}
|
|
111
|
+
disabled={busy}
|
|
112
|
+
onSignOut={() => handlers.onRemovePrincipal(principal.principalId)}
|
|
113
|
+
theme={theme}
|
|
114
|
+
t={t}
|
|
115
|
+
/>,
|
|
116
|
+
]
|
|
117
|
+
: []),
|
|
118
|
+
...principal.contexts
|
|
119
|
+
.filter((context) => !context.isActive)
|
|
120
|
+
.map((context) => (
|
|
121
|
+
<ContextRow
|
|
122
|
+
key={context.contextId}
|
|
123
|
+
context={context}
|
|
124
|
+
principalName={principal.displayName}
|
|
125
|
+
accent={resolveAccentHex(context.color, theme.colors.primary)}
|
|
126
|
+
activating={snapshot.activatingContextId === context.contextId}
|
|
127
|
+
removing={snapshot.removingContextId === context.contextId}
|
|
128
|
+
disabled={busy}
|
|
129
|
+
onActivate={() => handlers.onActivate(context.contextId)}
|
|
130
|
+
onRemove={() => handlers.onRemoveContext(context.contextId)}
|
|
131
|
+
theme={theme}
|
|
132
|
+
t={t}
|
|
133
|
+
/>
|
|
134
|
+
)),
|
|
135
|
+
]);
|
|
343
136
|
|
|
344
137
|
const manageLabel = t('accountMenu.manage');
|
|
345
138
|
const switchLabel = t('accountMenu.switchAccount');
|
|
346
139
|
|
|
347
140
|
return (
|
|
348
141
|
<View>
|
|
349
|
-
{/*
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
142
|
+
{/* The active account is also the switcher disclosure. Avatar editing is
|
|
143
|
+
a sibling button, so it never toggles the list or nests a button. */}
|
|
144
|
+
<GroupedSection style={styles.menuGroup}>
|
|
145
|
+
<View
|
|
146
|
+
testID="account-summary"
|
|
147
|
+
onPointerEnter={() => setSummaryHovered(true)}
|
|
148
|
+
onPointerLeave={() => setSummaryHovered(false)}
|
|
149
|
+
style={[
|
|
150
|
+
styles.accountSummary,
|
|
151
|
+
summaryHovered && !busy && { backgroundColor: theme.colors.contrast50 },
|
|
152
|
+
]}
|
|
153
|
+
>
|
|
154
|
+
{hero ? (
|
|
356
155
|
<PressableScale
|
|
357
156
|
onPress={handlers.onEditAvatar}
|
|
358
157
|
accessibilityRole="button"
|
|
359
158
|
accessibilityLabel={t('editProfile.changeAvatar')}
|
|
360
|
-
style={styles.
|
|
159
|
+
style={styles.accountAvatar}
|
|
361
160
|
>
|
|
362
161
|
<Avatar
|
|
363
162
|
source={hero.avatarUrl ?? undefined}
|
|
364
163
|
name={hero.displayName}
|
|
365
164
|
size={HERO_AVATAR_SIZE}
|
|
366
165
|
/>
|
|
367
|
-
<View
|
|
368
|
-
style={[styles.heroAvatarRing, { borderColor: currentAccent }]}
|
|
369
|
-
pointerEvents="none"
|
|
370
|
-
/>
|
|
371
166
|
<AvatarCameraBadge />
|
|
372
167
|
</PressableScale>
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
168
|
+
) : null}
|
|
169
|
+
<PressableScale
|
|
170
|
+
className={`flex-1 min-w-0 flex-row items-center gap-space-12 py-space-12${busy ? ' opacity-60' : ''}`}
|
|
171
|
+
onPress={toggleExpanded}
|
|
172
|
+
disabled={busy}
|
|
173
|
+
accessibilityRole="button"
|
|
174
|
+
aria-expanded={expanded}
|
|
175
|
+
accessibilityLabel={switchLabel}
|
|
176
|
+
>
|
|
177
|
+
<View style={styles.accountIdentity}>
|
|
178
|
+
<Text style={[styles.accountName, { color: theme.colors.text }]} numberOfLines={1}>
|
|
179
|
+
{hero?.displayName}
|
|
376
180
|
</Text>
|
|
377
|
-
{hero
|
|
181
|
+
{hero?.addressLine ? (
|
|
378
182
|
<Text
|
|
379
|
-
style={[styles.
|
|
183
|
+
style={[styles.accountAddress, { color: theme.colors.textSecondary }]}
|
|
380
184
|
numberOfLines={1}
|
|
381
185
|
>
|
|
382
186
|
{hero.addressLine}
|
|
383
187
|
</Text>
|
|
384
188
|
) : null}
|
|
385
189
|
</View>
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
tone="neutral"
|
|
394
|
-
size="sm"
|
|
395
|
-
onPress={handlers.onManage}
|
|
396
|
-
accessibilityLabel={manageLabel}
|
|
397
|
-
>
|
|
398
|
-
{manageLabel}
|
|
399
|
-
</Button>
|
|
400
|
-
</View>
|
|
190
|
+
<View style={[styles.chevronCircle, { backgroundColor: theme.colors.contrast50 }]}>
|
|
191
|
+
<Animated.View style={chevronStyle}>
|
|
192
|
+
<MaterialCommunityIcons name="chevron-down" size={20} color={theme.colors.text} />
|
|
193
|
+
</Animated.View>
|
|
194
|
+
</View>
|
|
195
|
+
</PressableScale>
|
|
196
|
+
</View>
|
|
401
197
|
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
rows, and the grouped section is not a bare card container. */}
|
|
405
|
-
<View className="mb-space-16">
|
|
406
|
-
<Animated.View style={[{ overflow: 'hidden' }, switchCardStyle]}>
|
|
407
|
-
<View className="bg-fill">
|
|
408
|
-
<HoverPressable
|
|
409
|
-
baseClassName={`flex-row items-center gap-space-12 px-space-12 py-[10px] min-h-[44px]${
|
|
410
|
-
busy ? ' opacity-60' : ''
|
|
411
|
-
}`}
|
|
412
|
-
hoverClassName="bg-fill-secondary"
|
|
413
|
-
onPress={toggleExpanded}
|
|
414
|
-
disabled={busy}
|
|
415
|
-
accessibilityRole="button"
|
|
416
|
-
// The ARIA prop, not `accessibilityState`: react-native-web 0.21
|
|
417
|
-
// forwards only this one, and RN maps it to
|
|
418
|
-
// `accessibilityState.expanded` natively — so the disclosure state
|
|
419
|
-
// reaches assistive tech on BOTH platforms.
|
|
420
|
-
aria-expanded={expanded}
|
|
421
|
-
accessibilityLabel={switchLabel}
|
|
422
|
-
>
|
|
423
|
-
<Text className="flex-1 text-body text-text" numberOfLines={1}>
|
|
424
|
-
{switchLabel}
|
|
425
|
-
</Text>
|
|
426
|
-
{/* The facepile previews who you can switch to; once the list is open
|
|
427
|
-
it would just restate the rows below it. */}
|
|
428
|
-
{expanded ? null : (
|
|
429
|
-
<AvatarGroup
|
|
430
|
-
items={facepile}
|
|
431
|
-
layout="stack"
|
|
432
|
-
size={FACEPILE_AVATAR_SIZE}
|
|
433
|
-
max={FACEPILE_MAX}
|
|
434
|
-
overlap={FACEPILE_OVERLAP}
|
|
435
|
-
variant="thumb"
|
|
436
|
-
showInitials
|
|
437
|
-
ringColor={theme.colors.card}
|
|
438
|
-
/>
|
|
439
|
-
)}
|
|
440
|
-
<View style={[styles.chevronCircle, { backgroundColor: theme.colors.contrast50 }]}>
|
|
441
|
-
<Animated.View style={chevronStyle}>
|
|
442
|
-
<MaterialCommunityIcons name="chevron-down" size={20} color={theme.colors.text} />
|
|
443
|
-
</Animated.View>
|
|
444
|
-
</View>
|
|
445
|
-
</HoverPressable>
|
|
198
|
+
<GroupedSectionCollapse open={expanded} testID="account-switcher-content">
|
|
199
|
+
{listItems}
|
|
446
200
|
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
<View
|
|
455
|
-
key={switchListKey}
|
|
456
|
-
style={styles.collapseMeasure}
|
|
457
|
-
onLayout={(event) => setListContentHeight(event.nativeEvent.layout.height)}
|
|
458
|
-
>
|
|
459
|
-
<View>{listItems}</View>
|
|
460
|
-
</View>
|
|
461
|
-
</Animated.View>
|
|
462
|
-
</View>
|
|
463
|
-
</Animated.View>
|
|
464
|
-
</View>
|
|
201
|
+
<AccountAffordanceRow
|
|
202
|
+
icon="plus"
|
|
203
|
+
label={t('accountMenu.addAnother')}
|
|
204
|
+
onPress={handlers.onAdd}
|
|
205
|
+
disabled={busy}
|
|
206
|
+
theme={theme}
|
|
207
|
+
/>
|
|
465
208
|
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
209
|
+
<AccountAffordanceRow
|
|
210
|
+
icon="logout"
|
|
211
|
+
label={t('accountMenu.signOut')}
|
|
212
|
+
onPress={menu.onSignOut}
|
|
213
|
+
disabled={busy}
|
|
214
|
+
theme={theme}
|
|
215
|
+
/>
|
|
216
|
+
</GroupedSectionCollapse>
|
|
217
|
+
<GroupedSectionItem
|
|
218
|
+
icon={<LogoIcon height={22} />}
|
|
219
|
+
title={manageLabel}
|
|
220
|
+
onPress={handlers.onManage}
|
|
221
|
+
showChevron={false}
|
|
222
|
+
/>
|
|
223
|
+
</GroupedSection>
|
|
224
|
+
|
|
225
|
+
{/* Bloom owns the usage readout, meter and expandable breakdown. */}
|
|
226
|
+
<UsageCard
|
|
227
|
+
title={t('accountMenu.storage.title')}
|
|
228
|
+
style={styles.menuGroup}
|
|
229
|
+
usage={accountStorageUsage(storage, theme.colors, t)}
|
|
230
|
+
formatValue={formatStorageSize}
|
|
231
|
+
labels={{ freeSpace: t('accountMenu.storage.free') }}
|
|
232
|
+
fallback={
|
|
233
|
+
<Text className="text-bodySmall text-text-secondary">
|
|
234
|
+
{t('accountMenu.storage.unavailable')}
|
|
481
235
|
</Text>
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
236
|
+
}
|
|
237
|
+
footer={
|
|
238
|
+
shouldShowStorageActions(storage) ? (
|
|
239
|
+
<View className="flex-row justify-end gap-space-8">
|
|
240
|
+
<StorageChip
|
|
241
|
+
label={t('accountMenu.storage.getStorage')}
|
|
242
|
+
onPress={menu.onUpgradeStorage}
|
|
243
|
+
/>
|
|
244
|
+
<StorageChip
|
|
245
|
+
label={t('accountMenu.storage.cleanUp')}
|
|
246
|
+
onPress={menu.onManageStorage}
|
|
247
|
+
/>
|
|
248
|
+
</View>
|
|
249
|
+
) : undefined
|
|
250
|
+
}
|
|
251
|
+
/>
|
|
252
|
+
|
|
253
|
+
<GroupedSection style={styles.menuGroup}>
|
|
254
|
+
<GroupedSectionItem
|
|
255
|
+
icon={
|
|
256
|
+
<GroupedSectionIcon>
|
|
257
|
+
{({ color, size }) => <RiSparklingFill fill={color} width={size} height={size} />}
|
|
258
|
+
</GroupedSectionIcon>
|
|
259
|
+
}
|
|
260
|
+
title={
|
|
261
|
+
storage?.plan === 'pro' || storage?.plan === 'business'
|
|
262
|
+
? t('accountMenu.plan.current', { plan: storage.plan === 'pro' ? 'Pro' : 'Business' })
|
|
263
|
+
: t(storage?.plan === 'basic' ? 'accountMenu.plan.get' : 'accountMenu.plan.explore')
|
|
264
|
+
}
|
|
265
|
+
description={
|
|
266
|
+
storage?.plan === 'pro' || storage?.plan === 'business'
|
|
267
|
+
? t('accountMenu.plan.manage')
|
|
268
|
+
: undefined
|
|
269
|
+
}
|
|
270
|
+
onPress={menu.onOpenPlan}
|
|
271
|
+
showChevron={false}
|
|
489
272
|
/>
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
273
|
+
</GroupedSection>
|
|
274
|
+
|
|
275
|
+
{menu.sections.map((section) => (
|
|
276
|
+
<GroupedSection key={section.key} title={section.title} style={styles.menuGroup}>
|
|
277
|
+
{section.items.map((item) => (
|
|
278
|
+
<GroupedSectionItem
|
|
279
|
+
key={item.key}
|
|
280
|
+
icon={
|
|
281
|
+
typeof item.icon === 'string' || !item.icon ? (
|
|
282
|
+
<MenuIcon
|
|
283
|
+
name={
|
|
284
|
+
(item.icon ??
|
|
285
|
+
'dots-horizontal') as keyof typeof MaterialCommunityIcons.glyphMap
|
|
286
|
+
}
|
|
287
|
+
/>
|
|
288
|
+
) : (
|
|
289
|
+
item.icon
|
|
290
|
+
)
|
|
291
|
+
}
|
|
292
|
+
title={item.label}
|
|
293
|
+
description={item.description}
|
|
294
|
+
value={item.badge}
|
|
295
|
+
disabled={item.disabled}
|
|
296
|
+
onPress={item.onPress}
|
|
297
|
+
showChevron={false}
|
|
298
|
+
/>
|
|
299
|
+
))}
|
|
300
|
+
</GroupedSection>
|
|
301
|
+
))}
|
|
495
302
|
|
|
496
303
|
{/* MENU — the same stock grouped section. */}
|
|
497
|
-
<
|
|
498
|
-
<
|
|
499
|
-
icon={<MenuIcon name="tray-arrow-down"
|
|
304
|
+
<GroupedSection style={styles.menuGroup}>
|
|
305
|
+
<GroupedSectionItem
|
|
306
|
+
icon={<MenuIcon name="tray-arrow-down" />}
|
|
500
307
|
title={t('accountMenu.data')}
|
|
308
|
+
description={t('accountMenu.dataDescription')}
|
|
501
309
|
onPress={menu.onOpenData}
|
|
310
|
+
showChevron={false}
|
|
502
311
|
/>
|
|
503
|
-
<
|
|
504
|
-
icon={<MenuIcon name="cog-outline"
|
|
312
|
+
<GroupedSectionItem
|
|
313
|
+
icon={<MenuIcon name="cog-outline" tone="info" />}
|
|
505
314
|
title={t('accountMenu.settings')}
|
|
315
|
+
description={t('accountMenu.settingsDescription')}
|
|
506
316
|
onPress={menu.onOpenSettings}
|
|
317
|
+
showChevron={false}
|
|
507
318
|
/>
|
|
508
|
-
<
|
|
509
|
-
icon={<MenuIcon name="help-circle-outline"
|
|
319
|
+
<GroupedSectionItem
|
|
320
|
+
icon={<MenuIcon name="help-circle-outline" />}
|
|
510
321
|
title={t('accountMenu.help')}
|
|
322
|
+
description={t('accountOverview.items.help.subtitle')}
|
|
511
323
|
onPress={menu.onHelp}
|
|
512
|
-
/>
|
|
513
|
-
{menu.customItems.map((item) => (
|
|
514
|
-
<SettingsListItem
|
|
515
|
-
key={item.key}
|
|
516
|
-
icon={
|
|
517
|
-
<MenuIcon
|
|
518
|
-
name={
|
|
519
|
-
(item.icon ?? 'dots-horizontal') as keyof typeof MaterialCommunityIcons.glyphMap
|
|
520
|
-
}
|
|
521
|
-
theme={theme}
|
|
522
|
-
/>
|
|
523
|
-
}
|
|
524
|
-
title={item.label}
|
|
525
|
-
onPress={item.onPress}
|
|
526
|
-
/>
|
|
527
|
-
))}
|
|
528
|
-
<SettingsListItem
|
|
529
|
-
icon={<MenuIcon name="logout" theme={theme} />}
|
|
530
|
-
title={t('accountMenu.signOut')}
|
|
531
|
-
onPress={menu.onSignOut}
|
|
532
324
|
showChevron={false}
|
|
533
325
|
/>
|
|
534
|
-
</
|
|
326
|
+
</GroupedSection>
|
|
535
327
|
|
|
536
328
|
{/* FOOTER. */}
|
|
537
|
-
<View className="flex-row items-center justify-center gap-space-12 px-space-12 pb-space-8">
|
|
538
|
-
<
|
|
539
|
-
|
|
540
|
-
</
|
|
329
|
+
<View className="flex-row items-center justify-center gap-space-12 px-space-12 pt-space-12 pb-space-8">
|
|
330
|
+
<LinkButton size="sm" linkTone="secondary" onPress={menu.onPrivacy}>
|
|
331
|
+
{t('accountMenu.privacy')}
|
|
332
|
+
</LinkButton>
|
|
541
333
|
<Text className="text-bodySmall text-text-tertiary">·</Text>
|
|
542
|
-
<
|
|
543
|
-
|
|
544
|
-
</
|
|
334
|
+
<LinkButton size="sm" linkTone="secondary" onPress={menu.onTerms}>
|
|
335
|
+
{t('accountMenu.terms')}
|
|
336
|
+
</LinkButton>
|
|
545
337
|
</View>
|
|
546
338
|
</View>
|
|
547
339
|
);
|
|
@@ -583,20 +375,17 @@ const PrincipalHeaderRow: React.FC<{
|
|
|
583
375
|
</Text>
|
|
584
376
|
) : null}
|
|
585
377
|
</View>
|
|
586
|
-
<
|
|
587
|
-
|
|
588
|
-
|
|
378
|
+
<Button
|
|
379
|
+
appearance="plain"
|
|
380
|
+
tone="neutral"
|
|
381
|
+
size="sm"
|
|
589
382
|
onPress={onSignOut}
|
|
590
383
|
disabled={disabled}
|
|
591
|
-
|
|
384
|
+
loading={removing}
|
|
592
385
|
accessibilityLabel={signOutLabel}
|
|
593
386
|
>
|
|
594
|
-
{
|
|
595
|
-
|
|
596
|
-
) : (
|
|
597
|
-
<Text className="text-caption text-text-secondary">{t('accountMenu.signOut')}</Text>
|
|
598
|
-
)}
|
|
599
|
-
</HoverPressable>
|
|
387
|
+
{t('accountMenu.signOut')}
|
|
388
|
+
</Button>
|
|
600
389
|
</View>
|
|
601
390
|
);
|
|
602
391
|
};
|
|
@@ -647,70 +436,53 @@ const ContextRow: React.FC<{
|
|
|
647
436
|
});
|
|
648
437
|
return (
|
|
649
438
|
<View className="flex-row items-center">
|
|
650
|
-
<
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
onPress={onActivate}
|
|
656
|
-
disabled={rowDisabled}
|
|
657
|
-
accessibilityRole="button"
|
|
658
|
-
accessibilityState={{ selected: context.isActive, disabled: rowDisabled }}
|
|
659
|
-
accessibilityLabel={context.displayName}
|
|
660
|
-
>
|
|
661
|
-
<View>
|
|
662
|
-
<Avatar
|
|
663
|
-
source={context.avatarUrl ?? undefined}
|
|
664
|
-
variant="thumb"
|
|
665
|
-
name={context.displayName}
|
|
666
|
-
size={SWITCH_AVATAR_SIZE}
|
|
667
|
-
/>
|
|
668
|
-
{/* The accent ring is an OVERLAY: it costs the row no width, so every
|
|
669
|
-
avatar in the list starts on the same content line. */}
|
|
670
|
-
{context.isActive ? (
|
|
671
|
-
<View
|
|
672
|
-
style={[styles.currentAvatarRing, { borderColor: accent }]}
|
|
673
|
-
pointerEvents="none"
|
|
674
|
-
/>
|
|
675
|
-
) : null}
|
|
676
|
-
</View>
|
|
677
|
-
<View className="flex-1 min-w-0">
|
|
678
|
-
<Text className="text-body font-semibold text-text" numberOfLines={1}>
|
|
679
|
-
{context.displayName}
|
|
680
|
-
</Text>
|
|
681
|
-
<Text className="text-caption text-text-secondary" numberOfLines={1}>
|
|
682
|
-
{unavailable
|
|
439
|
+
<View className="flex-1 min-w-0">
|
|
440
|
+
<GroupedSectionItem
|
|
441
|
+
title={context.displayName}
|
|
442
|
+
description={
|
|
443
|
+
unavailable
|
|
683
444
|
? t('accountSwitcher.context.unavailable')
|
|
684
445
|
: context.handle
|
|
685
446
|
? `@${context.handle}`
|
|
686
|
-
:
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
447
|
+
: undefined
|
|
448
|
+
}
|
|
449
|
+
icon={
|
|
450
|
+
<Avatar
|
|
451
|
+
source={context.avatarUrl ?? undefined}
|
|
452
|
+
variant="thumb"
|
|
453
|
+
name={context.displayName}
|
|
454
|
+
size={SWITCH_AVATAR_SIZE}
|
|
455
|
+
/>
|
|
456
|
+
}
|
|
457
|
+
onPress={onActivate}
|
|
458
|
+
disabled={rowDisabled}
|
|
459
|
+
accessibilityState={{
|
|
460
|
+
selected: context.isActive,
|
|
461
|
+
disabled: rowDisabled,
|
|
462
|
+
busy: activating,
|
|
463
|
+
}}
|
|
464
|
+
accessibilityLabel={context.displayName}
|
|
465
|
+
showChevron={false}
|
|
466
|
+
rightElement={activating ? <SpinnerIcon size={20} color={accent} /> : undefined}
|
|
467
|
+
/>
|
|
468
|
+
</View>
|
|
469
|
+
<Button
|
|
470
|
+
appearance="plain"
|
|
471
|
+
tone="neutral"
|
|
472
|
+
size="sm"
|
|
473
|
+
iconOnly
|
|
694
474
|
onPress={onRemove}
|
|
695
475
|
disabled={disabled}
|
|
696
|
-
|
|
476
|
+
loading={removing}
|
|
697
477
|
accessibilityLabel={removeLabel}
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
name={removing ? 'loading' : 'close'}
|
|
701
|
-
size={18}
|
|
702
|
-
color={theme.colors.textTertiary}
|
|
703
|
-
/>
|
|
704
|
-
</HoverPressable>
|
|
478
|
+
icon={<MaterialCommunityIcons name="close" size={18} />}
|
|
479
|
+
/>
|
|
705
480
|
</View>
|
|
706
481
|
);
|
|
707
482
|
};
|
|
708
483
|
|
|
709
484
|
/**
|
|
710
|
-
*
|
|
711
|
-
* this device") — a bordered circle sized to the avatar it stands in for, so its
|
|
712
|
-
* label lands on the same line as every account name above it. Own markup, like
|
|
713
|
-
* the account rows it closes: this list is not a Bloom grouped section.
|
|
485
|
+
* Account actions align with the avatars above them inside the same Bloom group.
|
|
714
486
|
*/
|
|
715
487
|
const AccountAffordanceRow: React.FC<{
|
|
716
488
|
icon: keyof typeof MaterialCommunityIcons.glyphMap;
|
|
@@ -719,51 +491,29 @@ const AccountAffordanceRow: React.FC<{
|
|
|
719
491
|
disabled?: boolean;
|
|
720
492
|
theme: Theme;
|
|
721
493
|
}> = ({ icon, label, onPress, disabled, theme }) => (
|
|
722
|
-
<
|
|
723
|
-
|
|
724
|
-
disabled ? ' opacity-60' : ''
|
|
725
|
-
}`}
|
|
726
|
-
hoverClassName="bg-fill-secondary"
|
|
494
|
+
<GroupedSectionItem
|
|
495
|
+
title={label}
|
|
727
496
|
onPress={onPress}
|
|
728
497
|
disabled={disabled}
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
<View className="w-[36px] h-[36px] items-center justify-center rounded-radius-max border border-border">
|
|
733
|
-
<MaterialCommunityIcons
|
|
734
|
-
name={icon}
|
|
735
|
-
size={BADGE_GLYPH_SIZE}
|
|
736
|
-
color={theme.colors.textSecondary}
|
|
737
|
-
/>
|
|
738
|
-
</View>
|
|
739
|
-
<Text className="flex-1 text-body font-semibold text-text" numberOfLines={1}>
|
|
740
|
-
{label}
|
|
741
|
-
</Text>
|
|
742
|
-
</HoverPressable>
|
|
498
|
+
showChevron={false}
|
|
499
|
+
icon={<MenuIcon name={icon} />}
|
|
500
|
+
/>
|
|
743
501
|
);
|
|
744
502
|
|
|
745
|
-
/**
|
|
746
|
-
* The leading glyph for a grouped-section menu row, sized to Bloom's 20px icon
|
|
747
|
-
* column so the icons, the storage block's cloud and every row title align.
|
|
748
|
-
*/
|
|
503
|
+
/** Bloom owns the icon surface, sizing and contrast. */
|
|
749
504
|
const MenuIcon: React.FC<{
|
|
750
505
|
name: keyof typeof MaterialCommunityIcons.glyphMap;
|
|
751
|
-
|
|
752
|
-
}> = ({ name,
|
|
753
|
-
<
|
|
506
|
+
tone?: React.ComponentProps<typeof GroupedSectionIcon>['tone'];
|
|
507
|
+
}> = ({ name, tone }) => (
|
|
508
|
+
<GroupedSectionIcon tone={tone}>
|
|
509
|
+
{({ color, size }) => <MaterialCommunityIcons name={name} size={size} color={color} />}
|
|
510
|
+
</GroupedSectionIcon>
|
|
754
511
|
);
|
|
755
512
|
|
|
756
|
-
/** A storage action chip — a bordered pill on the sheet background. */
|
|
757
513
|
const StorageChip: React.FC<{ label: string; onPress: () => void }> = ({ label, onPress }) => (
|
|
758
|
-
<
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
onPress={onPress}
|
|
762
|
-
accessibilityRole="button"
|
|
763
|
-
accessibilityLabel={label}
|
|
764
|
-
>
|
|
765
|
-
<Text className="text-bodySmall font-semibold text-text">{label}</Text>
|
|
766
|
-
</HoverPressable>
|
|
514
|
+
<Button appearance="plain" size="sm" onPress={onPress} accessibilityLabel={label}>
|
|
515
|
+
{label}
|
|
516
|
+
</Button>
|
|
767
517
|
);
|
|
768
518
|
|
|
769
519
|
export default AccountsMenuView;
|