@oxy.so/services 3.1.0 → 4.0.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 +5 -11
- 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 +5 -11
- package/lib/commonjs/ui/components/FollowButton.js +15 -28
- package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
- package/lib/commonjs/ui/components/FollowTargetButton.js +10 -11
- package/lib/commonjs/ui/components/FollowTargetButton.js.map +1 -1
- package/lib/commonjs/ui/components/OxyAuthPrompt.js +3 -2
- package/lib/commonjs/ui/components/OxyAuthPrompt.js.map +1 -1
- package/lib/commonjs/ui/components/OxyConsentScreen.js +4 -2
- package/lib/commonjs/ui/components/OxyConsentScreen.js.map +1 -1
- package/lib/commonjs/ui/components/OxySignInButton.js +1 -1
- package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
- package/lib/commonjs/ui/components/OxySignInRequestSurface.js +2 -1
- package/lib/commonjs/ui/components/OxySignInRequestSurface.js.map +1 -1
- package/lib/commonjs/ui/components/ProfileButton.js +67 -267
- package/lib/commonjs/ui/components/ProfileButton.js.map +1 -1
- package/lib/commonjs/ui/components/ProfileSummaryCard.js +2 -2
- package/lib/commonjs/ui/components/ProfileSummaryCard.js.map +1 -1
- package/lib/commonjs/ui/components/SurfaceHeaderAction.js +9 -49
- package/lib/commonjs/ui/components/SurfaceHeaderAction.js.map +1 -1
- package/lib/commonjs/ui/components/SurfaceScreen.js +3 -2
- package/lib/commonjs/ui/components/SurfaceScreen.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js +2 -1
- package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/SignInEntryView.js +2 -1
- package/lib/commonjs/ui/components/authChooser/SignInEntryView.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/SignUpView.js +4 -2
- package/lib/commonjs/ui/components/authChooser/SignUpView.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/requestSurfaces.js +2 -1
- package/lib/commonjs/ui/components/authChooser/requestSurfaces.js.map +1 -1
- package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js +20 -14
- package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
- package/lib/commonjs/ui/components/fileManagement/FileViewer.js +48 -85
- package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -1
- package/lib/commonjs/ui/components/fileManagement/UploadPreview.js +35 -31
- package/lib/commonjs/ui/components/fileManagement/UploadPreview.js.map +1 -1
- package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +9 -6
- package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -1
- package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js +22 -19
- package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js.map +1 -1
- package/lib/commonjs/ui/components/payment/PaymentMethodStep.js +6 -3
- package/lib/commonjs/ui/components/payment/PaymentMethodStep.js.map +1 -1
- package/lib/commonjs/ui/components/payment/PaymentReviewStep.js +6 -3
- package/lib/commonjs/ui/components/payment/PaymentReviewStep.js.map +1 -1
- package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js +7 -5
- package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js.map +1 -1
- package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js +20 -17
- package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js.map +1 -1
- package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.js +2 -1
- package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.js.map +1 -1
- package/lib/commonjs/ui/components/surfaces/ActionSheetSurface.js +5 -3
- package/lib/commonjs/ui/components/surfaces/ActionSheetSurface.js.map +1 -1
- package/lib/commonjs/ui/icons/subsetGlyphMaps.js +0 -6
- package/lib/commonjs/ui/icons/subsetGlyphMaps.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountMembersScreen.js +36 -60
- package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js +2 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountVerificationScreen.js +2 -1
- package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AvatarCropScreen.js +7 -6
- package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/CreateAccountScreen.js +2 -1
- package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FeedbackScreen.js +18 -9
- package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FileManagementScreen.js +99 -200
- package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +8 -9
- package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +2 -1
- package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +20 -10
- package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +4 -2
- package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ProfileScreen.js +2 -1
- package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/UserListScreen.js +31 -33
- package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +22 -11
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/fileManagement/FileLibraryError.js +7 -18
- package/lib/commonjs/ui/screens/fileManagement/FileLibraryError.js.map +1 -1
- package/lib/commonjs/ui/screens/fileManagement/FileListSection.js +7 -16
- package/lib/commonjs/ui/screens/fileManagement/FileListSection.js.map +1 -1
- package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js +6 -6
- package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
- package/lib/commonjs/ui/screens/fileManagement/UploadBar.js +23 -66
- package/lib/commonjs/ui/screens/fileManagement/UploadBar.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +2 -1
- package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +3 -2
- 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 +5 -11
- 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 +5 -11
- package/lib/module/ui/components/FollowButton.js +15 -28
- package/lib/module/ui/components/FollowButton.js.map +1 -1
- package/lib/module/ui/components/FollowTargetButton.js +10 -11
- package/lib/module/ui/components/FollowTargetButton.js.map +1 -1
- package/lib/module/ui/components/OxyAuthPrompt.js +2 -1
- package/lib/module/ui/components/OxyAuthPrompt.js.map +1 -1
- package/lib/module/ui/components/OxyConsentScreen.js +4 -2
- package/lib/module/ui/components/OxyConsentScreen.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/OxySignInRequestSurface.js +2 -1
- package/lib/module/ui/components/OxySignInRequestSurface.js.map +1 -1
- package/lib/module/ui/components/ProfileButton.js +70 -269
- package/lib/module/ui/components/ProfileButton.js.map +1 -1
- package/lib/module/ui/components/ProfileSummaryCard.js +2 -2
- package/lib/module/ui/components/ProfileSummaryCard.js.map +1 -1
- package/lib/module/ui/components/SurfaceHeaderAction.js +8 -48
- package/lib/module/ui/components/SurfaceHeaderAction.js.map +1 -1
- package/lib/module/ui/components/SurfaceScreen.js +2 -1
- package/lib/module/ui/components/SurfaceScreen.js.map +1 -1
- package/lib/module/ui/components/authChooser/AccountsMenuView.js +2 -1
- package/lib/module/ui/components/authChooser/AccountsMenuView.js.map +1 -1
- package/lib/module/ui/components/authChooser/SignInEntryView.js +2 -1
- package/lib/module/ui/components/authChooser/SignInEntryView.js.map +1 -1
- package/lib/module/ui/components/authChooser/SignUpView.js +4 -2
- package/lib/module/ui/components/authChooser/SignUpView.js.map +1 -1
- package/lib/module/ui/components/authChooser/requestSurfaces.js +2 -1
- package/lib/module/ui/components/authChooser/requestSurfaces.js.map +1 -1
- package/lib/module/ui/components/fileManagement/FileDetailsModal.js +12 -6
- package/lib/module/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
- package/lib/module/ui/components/fileManagement/FileViewer.js +38 -75
- package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -1
- package/lib/module/ui/components/fileManagement/UploadPreview.js +31 -27
- package/lib/module/ui/components/fileManagement/UploadPreview.js.map +1 -1
- package/lib/module/ui/components/modals/DeleteAccountModal.js +6 -3
- package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -1
- package/lib/module/ui/components/payment/PaymentDetailsStep.js +6 -3
- package/lib/module/ui/components/payment/PaymentDetailsStep.js.map +1 -1
- package/lib/module/ui/components/payment/PaymentMethodStep.js +6 -3
- package/lib/module/ui/components/payment/PaymentMethodStep.js.map +1 -1
- package/lib/module/ui/components/payment/PaymentReviewStep.js +6 -3
- package/lib/module/ui/components/payment/PaymentReviewStep.js.map +1 -1
- package/lib/module/ui/components/payment/PaymentSuccessStep.js +4 -2
- package/lib/module/ui/components/payment/PaymentSuccessStep.js.map +1 -1
- package/lib/module/ui/components/payment/PaymentSummaryStep.js +6 -3
- package/lib/module/ui/components/payment/PaymentSummaryStep.js.map +1 -1
- package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.js +2 -1
- package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.js.map +1 -1
- package/lib/module/ui/components/surfaces/ActionSheetSurface.js +4 -2
- package/lib/module/ui/components/surfaces/ActionSheetSurface.js.map +1 -1
- package/lib/module/ui/icons/subsetGlyphMaps.js +0 -6
- package/lib/module/ui/icons/subsetGlyphMaps.js.map +1 -1
- package/lib/module/ui/screens/AccountMembersScreen.js +37 -61
- package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js +2 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountVerificationScreen.js +2 -1
- package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
- package/lib/module/ui/screens/AvatarCropScreen.js +2 -1
- package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
- package/lib/module/ui/screens/CreateAccountScreen.js +2 -1
- package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
- package/lib/module/ui/screens/FeedbackScreen.js +18 -9
- package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
- package/lib/module/ui/screens/FileManagementScreen.js +91 -192
- package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/module/ui/screens/LanguageSelectorScreen.js +9 -10
- package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
- package/lib/module/ui/screens/PaymentGatewayScreen.js +2 -1
- package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
- package/lib/module/ui/screens/PremiumSubscriptionScreen.js +20 -10
- package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
- package/lib/module/ui/screens/PrivacySettingsScreen.js +4 -2
- package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/ProfileScreen.js +2 -1
- package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/module/ui/screens/UserListScreen.js +32 -34
- package/lib/module/ui/screens/UserListScreen.js.map +1 -1
- package/lib/module/ui/screens/WelcomeNewUserScreen.js +22 -11
- package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/module/ui/screens/fileManagement/FileLibraryError.js +6 -17
- package/lib/module/ui/screens/fileManagement/FileLibraryError.js.map +1 -1
- package/lib/module/ui/screens/fileManagement/FileListSection.js +5 -14
- package/lib/module/ui/screens/fileManagement/FileListSection.js.map +1 -1
- package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js +3 -3
- package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
- package/lib/module/ui/screens/fileManagement/UploadBar.js +24 -66
- package/lib/module/ui/screens/fileManagement/UploadBar.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +2 -1
- package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustRulesScreen.js +2 -1
- package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
- package/lib/typescript/commonjs/ui/components/FollowButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/FollowTargetButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyAuthPrompt.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts +1 -1
- package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts +1 -20
- package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/ProfileSummaryCard.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/SurfaceHeaderAction.d.ts +1 -5
- package/lib/typescript/commonjs/ui/components/SurfaceHeaderAction.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/fileManagement/UploadPreview.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/PaymentMethodStep.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/payment/PaymentReviewStep.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/payment/PaymentSuccessStep.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/payment/PaymentSummaryStep.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/photogrid/JustifiedPhotoGrid.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/surfaces/ActionSheetSurface.d.ts.map +1 -1
- 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 +0 -6
- package/lib/typescript/commonjs/ui/icons/subsetGlyphMaps.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AccountMembersScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/fileManagement/FileLibraryError.d.ts +0 -2
- package/lib/typescript/commonjs/ui/screens/fileManagement/FileLibraryError.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.map +1 -1
- package/lib/typescript/commonjs/ui/screens/fileManagement/UploadBar.d.ts +1 -14
- package/lib/typescript/commonjs/ui/screens/fileManagement/UploadBar.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/FollowButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/FollowTargetButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyAuthPrompt.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxySignInButton.d.ts +1 -1
- package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/ProfileButton.d.ts +1 -20
- package/lib/typescript/module/ui/components/ProfileButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/ProfileSummaryCard.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/SurfaceHeaderAction.d.ts +1 -5
- package/lib/typescript/module/ui/components/SurfaceHeaderAction.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/SurfaceScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/fileManagement/UploadPreview.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/PaymentMethodStep.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/payment/PaymentReviewStep.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/payment/PaymentSuccessStep.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/payment/PaymentSummaryStep.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/photogrid/JustifiedPhotoGrid.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/surfaces/ActionSheetSurface.d.ts.map +1 -1
- 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 +0 -6
- package/lib/typescript/module/ui/icons/subsetGlyphMaps.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AccountMembersScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/UserListScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/fileManagement/FileLibraryError.d.ts +0 -2
- package/lib/typescript/module/ui/screens/fileManagement/FileLibraryError.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.map +1 -1
- package/lib/typescript/module/ui/screens/fileManagement/UploadBar.d.ts +1 -14
- package/lib/typescript/module/ui/screens/fileManagement/UploadBar.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
- package/package.json +6 -6
- 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 +5 -11
- package/src/ui/components/FollowButton.tsx +14 -29
- package/src/ui/components/FollowTargetButton.tsx +9 -11
- package/src/ui/components/OxyAuthPrompt.tsx +2 -7
- package/src/ui/components/OxyConsentScreen.tsx +2 -2
- package/src/ui/components/OxySignInButton.tsx +2 -2
- package/src/ui/components/OxySignInRequestSurface.tsx +1 -1
- package/src/ui/components/ProfileButton.tsx +30 -297
- package/src/ui/components/ProfileSummaryCard.tsx +1 -2
- package/src/ui/components/SurfaceHeaderAction.tsx +7 -49
- package/src/ui/components/SurfaceScreen.tsx +2 -1
- package/src/ui/components/authChooser/AccountsMenuView.tsx +1 -1
- package/src/ui/components/authChooser/SignInEntryView.tsx +1 -1
- package/src/ui/components/authChooser/SignUpView.tsx +2 -2
- package/src/ui/components/authChooser/requestSurfaces.tsx +1 -1
- package/src/ui/components/fileManagement/FileDetailsModal.tsx +8 -6
- package/src/ui/components/fileManagement/FileViewer.tsx +21 -50
- package/src/ui/components/fileManagement/UploadPreview.tsx +12 -29
- package/src/ui/components/modals/DeleteAccountModal.tsx +4 -3
- package/src/ui/components/payment/PaymentDetailsStep.tsx +4 -3
- package/src/ui/components/payment/PaymentMethodStep.tsx +4 -3
- package/src/ui/components/payment/PaymentReviewStep.tsx +4 -3
- package/src/ui/components/payment/PaymentSuccessStep.tsx +3 -2
- package/src/ui/components/payment/PaymentSummaryStep.tsx +4 -3
- package/src/ui/components/photogrid/JustifiedPhotoGrid.tsx +2 -1
- package/src/ui/components/surfaces/ActionSheetSurface.tsx +3 -2
- package/src/ui/icons/subsetGlyphMaps.ts +0 -6
- package/src/ui/screens/AccountMembersScreen.tsx +17 -65
- package/src/ui/screens/AccountSettingsScreen.tsx +1 -1
- package/src/ui/screens/AccountVerificationScreen.tsx +1 -1
- package/src/ui/screens/AvatarCropScreen.tsx +2 -10
- package/src/ui/screens/CreateAccountScreen.tsx +1 -1
- package/src/ui/screens/FeedbackScreen.tsx +9 -9
- package/src/ui/screens/FileManagementScreen.tsx +37 -184
- package/src/ui/screens/LanguageSelectorScreen.tsx +5 -13
- package/src/ui/screens/PaymentGatewayScreen.tsx +1 -1
- package/src/ui/screens/PremiumSubscriptionScreen.tsx +10 -10
- package/src/ui/screens/PrivacySettingsScreen.tsx +2 -2
- package/src/ui/screens/ProfileScreen.tsx +1 -1
- package/src/ui/screens/UserListScreen.tsx +17 -44
- package/src/ui/screens/WelcomeNewUserScreen.tsx +11 -11
- package/src/ui/screens/fileManagement/FileLibraryError.tsx +6 -14
- package/src/ui/screens/fileManagement/FileListSection.tsx +4 -16
- package/src/ui/screens/fileManagement/PhotoPickerSection.tsx +2 -13
- package/src/ui/screens/fileManagement/UploadBar.tsx +17 -56
- package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +1 -1
- package/src/ui/screens/trust/TrustRulesScreen.tsx +2 -1
- package/lib/commonjs/ui/components/fileManagement/AnimatedButton.js +0 -61
- package/lib/commonjs/ui/components/fileManagement/AnimatedButton.js.map +0 -1
- package/lib/commonjs/ui/components/internal/PinInput.js +0 -118
- package/lib/commonjs/ui/components/internal/PinInput.js.map +0 -1
- package/lib/module/ui/components/fileManagement/AnimatedButton.js +0 -55
- package/lib/module/ui/components/fileManagement/AnimatedButton.js.map +0 -1
- package/lib/module/ui/components/internal/PinInput.js +0 -113
- package/lib/module/ui/components/internal/PinInput.js.map +0 -1
- package/lib/typescript/commonjs/ui/components/fileManagement/AnimatedButton.d.ts +0 -17
- package/lib/typescript/commonjs/ui/components/fileManagement/AnimatedButton.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/internal/PinInput.d.ts +0 -23
- package/lib/typescript/commonjs/ui/components/internal/PinInput.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/fileManagement/AnimatedButton.d.ts +0 -17
- package/lib/typescript/module/ui/components/fileManagement/AnimatedButton.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/internal/PinInput.d.ts +0 -23
- package/lib/typescript/module/ui/components/internal/PinInput.d.ts.map +0 -1
- package/src/ui/components/fileManagement/AnimatedButton.tsx +0 -64
- package/src/ui/components/internal/PinInput.tsx +0 -123
|
@@ -65,7 +65,7 @@ export interface OxySignInButtonProps {
|
|
|
65
65
|
*/
|
|
66
66
|
action?: OxySignInButtonAction;
|
|
67
67
|
|
|
68
|
-
/** `
|
|
68
|
+
/** `md` (36 tall, 300 wide) or `sm` (32 × 250). @default 'md' */
|
|
69
69
|
size?: SocialButtonSize;
|
|
70
70
|
|
|
71
71
|
/** Fill the container's width instead of the fixed 300 / 250. */
|
|
@@ -177,7 +177,7 @@ export const OxySignInButton: React.FC<OxySignInButtonProps> = ({
|
|
|
177
177
|
variant = 'default',
|
|
178
178
|
appearance,
|
|
179
179
|
action = 'signIn',
|
|
180
|
-
size = '
|
|
180
|
+
size = 'md',
|
|
181
181
|
fullWidth = false,
|
|
182
182
|
iconOnly = false,
|
|
183
183
|
onPress,
|
|
@@ -150,7 +150,7 @@ export const OxySignInRequestSurface: React.FC<OxySignInRequestSurfaceProps> = (
|
|
|
150
150
|
return (
|
|
151
151
|
<View style={styles.centeredBlock}>
|
|
152
152
|
{onRetry ? (
|
|
153
|
-
<Button
|
|
153
|
+
<Button appearance="solid" tone="accent" onPress={onRetry} style={styles.primaryButton}>
|
|
154
154
|
{t('common.actions.tryAgain')}
|
|
155
155
|
</Button>
|
|
156
156
|
) : null}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
-
import { useCallback, useEffect, useMemo
|
|
2
|
+
import { useCallback, useEffect, useMemo } from 'react';
|
|
3
3
|
import {
|
|
4
|
-
StyleSheet,
|
|
5
|
-
Platform,
|
|
6
4
|
type StyleProp,
|
|
7
5
|
type ViewStyle,
|
|
8
6
|
} from 'react-native';
|
|
9
|
-
import { View
|
|
10
|
-
import
|
|
7
|
+
import { View } from 'react-native-css/components';
|
|
8
|
+
import * as Icons from '@oxy.so/bloom/icons';
|
|
9
|
+
import { Button } from '@oxy.so/bloom/button';
|
|
11
10
|
import { Avatar } from '@oxy.so/bloom/avatar';
|
|
12
11
|
import * as Skeleton from '@oxy.so/bloom/skeleton';
|
|
13
12
|
import { Text } from '@oxy.so/bloom/typography';
|
|
@@ -19,35 +18,6 @@ import { useI18n } from '../hooks/useI18n';
|
|
|
19
18
|
import { registerAccountDialogConsumerHooks } from '../navigation/accountDialogManager';
|
|
20
19
|
import type { AccountDialogMenuItem } from '../navigation/accountDialogManager';
|
|
21
20
|
|
|
22
|
-
const isWeb = Platform.OS === 'web';
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Web-only Bluesky-style hover animation timings, mirrored from
|
|
26
|
-
* `social-app/src/view/shell/desktop/LeftNav.tsx`. The row background and the
|
|
27
|
-
* name/handle/chevron opacity cross-fade quickly; the avatar shrink+slide is
|
|
28
|
-
* slower and more deliberate. A short delay on the LEAVE transition keeps the
|
|
29
|
-
* row from flickering when the pointer crosses a child boundary.
|
|
30
|
-
*/
|
|
31
|
-
const BG_TRANSITION_MS = 150;
|
|
32
|
-
const AVATAR_TRANSITION_MS = 250;
|
|
33
|
-
const OPACITY_TRANSITION_MS = 150;
|
|
34
|
-
const LEAVE_DELAY_MS = 50;
|
|
35
|
-
|
|
36
|
-
/** Shrunk-avatar scale on hover, matching Bluesky's `scale: 2/3`. */
|
|
37
|
-
const ACTIVE_AVATAR_SCALE = 2 / 3;
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Reads the OS "reduce motion" preference on web. Guards `window`/`matchMedia`
|
|
41
|
-
* so it is safe during SSR and on native (where it is never called). When
|
|
42
|
-
* reduced motion is on, the avatar transform snaps instead of transitioning.
|
|
43
|
-
*/
|
|
44
|
-
const prefersReducedMotion = (): boolean => {
|
|
45
|
-
if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {
|
|
46
|
-
return false;
|
|
47
|
-
}
|
|
48
|
-
return window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
49
|
-
};
|
|
50
|
-
|
|
51
21
|
export interface ProfileButtonProps {
|
|
52
22
|
/**
|
|
53
23
|
* Expanded row (avatar + name + handle + chevron) when `true` (default), or a
|
|
@@ -82,26 +52,7 @@ export interface ProfileButtonProps {
|
|
|
82
52
|
style?: StyleProp<ViewStyle>;
|
|
83
53
|
}
|
|
84
54
|
|
|
85
|
-
/**
|
|
86
|
-
* Self-contained sidebar account trigger, modeled on Bluesky's ProfileCard and
|
|
87
|
-
* the Oxy inbox's `MailboxDrawer` footer. Pressing it opens the unified
|
|
88
|
-
* {@link OxyAccountDialogScreen} — the single account switcher + sign-in surface — via
|
|
89
|
-
* `useOxy().openAccountDialog`.
|
|
90
|
-
*
|
|
91
|
-
* Three auth states from {@link useAuth}:
|
|
92
|
-
* - **Undetermined** (`!isAuthResolved || isPrivateApiPending`): a neutral
|
|
93
|
-
* avatar-sized skeleton circle, no press.
|
|
94
|
-
* - **Signed in**: a pressable row — Bloom `Avatar` + display name + `@handle`
|
|
95
|
-
* + a chevron. Press opens the dialog on its `accounts` view.
|
|
96
|
-
* - **Signed out**: a "Sign in" row that calls `useAuth().signIn()` (which opens
|
|
97
|
-
* the dialog on its `signin` view).
|
|
98
|
-
*
|
|
99
|
-
* Styling uses react-native `StyleSheet` + the Bloom theme (via `useTheme`) so
|
|
100
|
-
* the layout renders identically in EVERY consumer — including apps that do not
|
|
101
|
-
* use NativeWind (e.g. the accounts app). Only the web hover animation keeps
|
|
102
|
-
* dynamic inline `style` (the CSS transition/transform values), which is what
|
|
103
|
-
* the `react-native-web-style.d.ts` augmentation exists for.
|
|
104
|
-
*/
|
|
55
|
+
/** Account business binding over Bloom's shared Button and Avatar. */
|
|
105
56
|
const ProfileButton: React.FC<ProfileButtonProps> = ({
|
|
106
57
|
expanded = true,
|
|
107
58
|
avatarSize,
|
|
@@ -123,11 +74,6 @@ const ProfileButton: React.FC<ProfileButtonProps> = ({
|
|
|
123
74
|
const { colors } = useTheme();
|
|
124
75
|
const { t, locale } = useI18n();
|
|
125
76
|
|
|
126
|
-
// Web-only hover/focus tracking for the Bluesky-style reveal animation.
|
|
127
|
-
// Native has no hover, so these stay false and the row renders statically.
|
|
128
|
-
const [hovered, setHovered] = useState(false);
|
|
129
|
-
const [focused, setFocused] = useState(false);
|
|
130
|
-
|
|
131
77
|
const resolvedAvatarSize = avatarSize ?? (expanded ? 40 : 32);
|
|
132
78
|
|
|
133
79
|
const openDialog = useCallback(() => {
|
|
@@ -165,248 +111,35 @@ const ProfileButton: React.FC<ProfileButtonProps> = ({
|
|
|
165
111
|
);
|
|
166
112
|
}
|
|
167
113
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
style={[styles.row, expanded && styles.rowExpanded, style]}
|
|
175
|
-
onPress={() => { void signIn(); }}
|
|
176
|
-
accessibilityRole="button"
|
|
177
|
-
accessibilityLabel={signInLabel}
|
|
178
|
-
>
|
|
179
|
-
<View
|
|
180
|
-
style={[
|
|
181
|
-
styles.avatarBadge,
|
|
182
|
-
{
|
|
183
|
-
width: resolvedAvatarSize,
|
|
184
|
-
height: resolvedAvatarSize,
|
|
185
|
-
backgroundColor: colors.backgroundSecondary,
|
|
186
|
-
},
|
|
187
|
-
]}
|
|
188
|
-
>
|
|
189
|
-
<MaterialCommunityIcons
|
|
190
|
-
name="login"
|
|
191
|
-
size={Math.round(resolvedAvatarSize * 0.5)}
|
|
192
|
-
color={colors.icon}
|
|
193
|
-
/>
|
|
194
|
-
</View>
|
|
195
|
-
{expanded ? (
|
|
196
|
-
<Text
|
|
197
|
-
style={[styles.signInLabel, { color: colors.text }]}
|
|
198
|
-
numberOfLines={1}
|
|
199
|
-
>
|
|
200
|
-
{signInLabel}
|
|
201
|
-
</Text>
|
|
202
|
-
) : null}
|
|
203
|
-
</Pressable>
|
|
204
|
-
);
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
// ── Signed in: avatar + identity + chevron. ─────────────────────────────
|
|
208
|
-
const displayName =
|
|
209
|
-
user?.name?.displayName ??
|
|
210
|
-
getNormalizedUserHandle(user) ??
|
|
211
|
-
getAccountDisplayName(null, locale);
|
|
212
|
-
const handle = getAccountFallbackHandle(user);
|
|
213
|
-
const handleLine = handle ? `@${handle}` : null;
|
|
214
|
-
|
|
215
|
-
const avatarNode = (
|
|
216
|
-
<Avatar
|
|
217
|
-
source={avatarUrl}
|
|
218
|
-
variant="thumb"
|
|
219
|
-
name={displayName}
|
|
220
|
-
size={resolvedAvatarSize}
|
|
221
|
-
/>
|
|
222
|
-
);
|
|
223
|
-
|
|
224
|
-
// `active` combines hover and keyboard focus — exactly like Bluesky's
|
|
225
|
-
// `state.hovered || state.focused`. Only web ever sets these, so on native
|
|
226
|
-
// the row renders statically.
|
|
227
|
-
const active = hovered || focused;
|
|
228
|
-
const accountLabel = t('accountSwitcher.switchWhileSignedInAs', { name: displayName });
|
|
229
|
-
|
|
230
|
-
// Web-only pointer/focus handlers. RN-Web forwards `onHoverIn`/`onHoverOut`
|
|
231
|
-
// to the underlying element; native Pressable ignores them harmlessly, but
|
|
232
|
-
// we only attach them on web to keep the native path pristine.
|
|
233
|
-
const webInteractionProps = isWeb
|
|
234
|
-
? {
|
|
235
|
-
onHoverIn: () => setHovered(true),
|
|
236
|
-
onHoverOut: () => setHovered(false),
|
|
237
|
-
onFocus: () => setFocused(true),
|
|
238
|
-
onBlur: () => setFocused(false),
|
|
239
|
-
}
|
|
240
|
-
: undefined;
|
|
241
|
-
|
|
242
|
-
if (!expanded) {
|
|
243
|
-
// Collapsed: avatar-only. On web, hovering just fades a subtle round
|
|
244
|
-
// background behind the avatar — no shrink, no text.
|
|
245
|
-
const collapsedBgStyle: ViewStyle | undefined = isWeb
|
|
246
|
-
? {
|
|
247
|
-
backgroundColor: active ? colors.backgroundSecondary : 'transparent',
|
|
248
|
-
transitionProperty: 'background-color',
|
|
249
|
-
transitionDuration: `${BG_TRANSITION_MS}ms`,
|
|
250
|
-
transitionDelay: active ? '0ms' : `${LEAVE_DELAY_MS}ms`,
|
|
251
|
-
}
|
|
252
|
-
: undefined;
|
|
253
|
-
return (
|
|
254
|
-
<View className={className} style={style}>
|
|
255
|
-
<Pressable
|
|
256
|
-
style={[styles.collapsedTrigger, collapsedBgStyle]}
|
|
257
|
-
onPress={openDialog}
|
|
258
|
-
accessibilityRole="button"
|
|
259
|
-
accessibilityLabel={accountLabel}
|
|
260
|
-
{...webInteractionProps}
|
|
261
|
-
>
|
|
262
|
-
{avatarNode}
|
|
263
|
-
</Pressable>
|
|
264
|
-
</View>
|
|
265
|
-
);
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
// ── Expanded row animation ──────────────────────────────────────────────
|
|
269
|
-
// On native everything is statically visible (no hover exists). On web we
|
|
270
|
-
// reproduce Bluesky's reveal: the row fills with a subtle contrast bg, the
|
|
271
|
-
// avatar shrinks + slides left, and the name/handle/actions fade in from
|
|
272
|
-
// behind it. Keeping the identity hidden while inactive is what makes the
|
|
273
|
-
// negative margin intentional instead of an overlap.
|
|
274
|
-
const reducedMotion = isWeb && prefersReducedMotion();
|
|
275
|
-
|
|
276
|
-
// Slide the shrunk avatar left so its visual left edge stays put as it
|
|
277
|
-
// contracts. The avatar loses `size * (1 - scale)` of width; half of that
|
|
278
|
-
// (the left half, since scale is centered) is the offset, plus the row's
|
|
279
|
-
// left padding (8px) so it hugs the row edge like Bluesky's.
|
|
280
|
-
const activeAvatarTranslateX =
|
|
281
|
-
-(resolvedAvatarSize * (1 - ACTIVE_AVATAR_SCALE)) / 2 - 8;
|
|
282
|
-
|
|
283
|
-
const rowStyle: StyleProp<ViewStyle> = isWeb
|
|
284
|
-
? {
|
|
285
|
-
backgroundColor: active ? colors.backgroundSecondary : 'transparent',
|
|
286
|
-
transitionProperty: 'background-color',
|
|
287
|
-
transitionDuration: `${BG_TRANSITION_MS}ms`,
|
|
288
|
-
transitionDelay: active ? '0ms' : `${LEAVE_DELAY_MS}ms`,
|
|
289
|
-
}
|
|
290
|
-
: undefined;
|
|
291
|
-
|
|
292
|
-
const avatarWrapperStyle: ViewStyle | undefined = isWeb
|
|
293
|
-
? {
|
|
294
|
-
zIndex: 10,
|
|
295
|
-
...(reducedMotion
|
|
296
|
-
? {}
|
|
297
|
-
: {
|
|
298
|
-
transitionProperty: 'transform',
|
|
299
|
-
transitionDuration: `${AVATAR_TRANSITION_MS}ms`,
|
|
300
|
-
transitionDelay: active ? '0ms' : `${LEAVE_DELAY_MS}ms`,
|
|
301
|
-
}),
|
|
302
|
-
transform: active
|
|
303
|
-
? [{ scale: ACTIVE_AVATAR_SCALE }, { translateX: activeAvatarTranslateX }]
|
|
304
|
-
: [{ scale: 1 }, { translateX: 0 }],
|
|
305
|
-
}
|
|
306
|
-
: undefined;
|
|
307
|
-
|
|
308
|
-
const identityStyle: ViewStyle | undefined = isWeb
|
|
309
|
-
? {
|
|
310
|
-
marginLeft: -resolvedAvatarSize / 2,
|
|
311
|
-
opacity: active ? 1 : 0,
|
|
312
|
-
transitionProperty: 'opacity',
|
|
313
|
-
transitionDuration: `${OPACITY_TRANSITION_MS}ms`,
|
|
314
|
-
transitionDelay: active ? '0ms' : `${LEAVE_DELAY_MS}ms`,
|
|
315
|
-
}
|
|
316
|
-
: undefined;
|
|
317
|
-
|
|
318
|
-
const actionStyle: ViewStyle | undefined = isWeb
|
|
319
|
-
? {
|
|
320
|
-
opacity: active ? 1 : 0,
|
|
321
|
-
transitionProperty: 'opacity',
|
|
322
|
-
transitionDuration: `${OPACITY_TRANSITION_MS}ms`,
|
|
323
|
-
transitionDelay: active ? '0ms' : `${LEAVE_DELAY_MS}ms`,
|
|
324
|
-
}
|
|
325
|
-
: undefined;
|
|
114
|
+
const signedIn = isAuthenticated && Boolean(user);
|
|
115
|
+
const displayName = signedIn
|
|
116
|
+
? user?.name?.displayName ?? getNormalizedUserHandle(user) ?? getAccountDisplayName(null, locale)
|
|
117
|
+
: t('common.actions.signIn') || 'Sign in';
|
|
118
|
+
const handle = signedIn ? getAccountFallbackHandle(user) : undefined;
|
|
119
|
+
const label = signedIn ? t('accountSwitcher.switchWhileSignedInAs', { name: displayName }) : displayName;
|
|
326
120
|
|
|
327
121
|
return (
|
|
328
|
-
<
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
style={
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
<Text
|
|
346
|
-
style={[styles.handle, { color: colors.textSecondary }]}
|
|
347
|
-
numberOfLines={1}
|
|
348
|
-
>
|
|
349
|
-
{handleLine}
|
|
350
|
-
</Text>
|
|
351
|
-
) : null}
|
|
352
|
-
</View>
|
|
353
|
-
<View style={actionStyle}>
|
|
354
|
-
<MaterialCommunityIcons
|
|
355
|
-
name="dots-horizontal"
|
|
356
|
-
size={18}
|
|
357
|
-
color={colors.textSecondary}
|
|
358
|
-
/>
|
|
122
|
+
<Button
|
|
123
|
+
appearance="plain" tone="neutral"
|
|
124
|
+
className={className}
|
|
125
|
+
accessibilityLabel={label}
|
|
126
|
+
onPress={signedIn ? openDialog : () => { void signIn(); }}
|
|
127
|
+
style={[{ height: resolvedAvatarSize + 16, borderRadius: 9999, paddingLeft: 8, paddingRight: 8, ...(expanded ? { width: '100%' } : { width: resolvedAvatarSize + 16 }) }, style]}
|
|
128
|
+
trailing={
|
|
129
|
+
<View style={{ flexDirection: 'row', alignItems: 'center', gap: 12, ...(expanded ? { flex: 1 } : {}) }}>
|
|
130
|
+
{signedIn ? <Avatar source={avatarUrl} variant="thumb" name={displayName} size={resolvedAvatarSize} />
|
|
131
|
+
: <Icons.RiLoginBoxLine width={resolvedAvatarSize / 2} height={resolvedAvatarSize / 2} color={colors.icon} />}
|
|
132
|
+
{expanded ? <>
|
|
133
|
+
<View style={{ flex: 1, minWidth: 0 }}>
|
|
134
|
+
<Text variant="body-semibold" numberOfLines={1}>{displayName}</Text>
|
|
135
|
+
{handle ? <Text variant="caption-1-regular" numberOfLines={1} style={{ color: colors.textSecondary }}>@{handle}</Text> : null}
|
|
136
|
+
</View>
|
|
137
|
+
{signedIn ? <Icons.RiMoreLine width={18} height={18} color={colors.textSecondary} /> : null}
|
|
138
|
+
</> : null}
|
|
359
139
|
</View>
|
|
360
|
-
|
|
361
|
-
|
|
140
|
+
}
|
|
141
|
+
/>
|
|
362
142
|
);
|
|
363
143
|
};
|
|
364
144
|
|
|
365
|
-
const styles = StyleSheet.create({
|
|
366
|
-
fullWidth: {
|
|
367
|
-
width: '100%',
|
|
368
|
-
},
|
|
369
|
-
// Shared trigger row (`flex-row items-center gap-3 rounded-full px-2 py-2`).
|
|
370
|
-
row: {
|
|
371
|
-
flexDirection: 'row',
|
|
372
|
-
alignItems: 'center',
|
|
373
|
-
gap: 12,
|
|
374
|
-
borderRadius: 9999,
|
|
375
|
-
paddingHorizontal: 8,
|
|
376
|
-
paddingVertical: 8,
|
|
377
|
-
},
|
|
378
|
-
// `w-full` on the expanded row + its signed-out variant.
|
|
379
|
-
rowExpanded: {
|
|
380
|
-
width: '100%',
|
|
381
|
-
},
|
|
382
|
-
// Signed-out login badge (`items-center justify-center rounded-full`).
|
|
383
|
-
avatarBadge: {
|
|
384
|
-
alignItems: 'center',
|
|
385
|
-
justifyContent: 'center',
|
|
386
|
-
borderRadius: 9999,
|
|
387
|
-
},
|
|
388
|
-
// Signed-out label (`flex-1 font-semibold`).
|
|
389
|
-
signInLabel: {
|
|
390
|
-
flex: 1,
|
|
391
|
-
fontWeight: '600',
|
|
392
|
-
},
|
|
393
|
-
// Collapsed avatar-only trigger (`rounded-full`).
|
|
394
|
-
collapsedTrigger: {
|
|
395
|
-
borderRadius: 9999,
|
|
396
|
-
},
|
|
397
|
-
// Identity block (`min-w-0 flex-1`).
|
|
398
|
-
identity: {
|
|
399
|
-
flex: 1,
|
|
400
|
-
minWidth: 0,
|
|
401
|
-
},
|
|
402
|
-
// Display name (`font-bold`).
|
|
403
|
-
displayName: {
|
|
404
|
-
fontWeight: '700',
|
|
405
|
-
},
|
|
406
|
-
// Handle line (`text-xs`).
|
|
407
|
-
handle: {
|
|
408
|
-
fontSize: 12,
|
|
409
|
-
},
|
|
410
|
-
});
|
|
411
|
-
|
|
412
145
|
export default ProfileButton;
|
|
@@ -37,7 +37,6 @@ export interface ProfileSummaryCardProps {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
const cardStyle: ViewStyle = {
|
|
40
|
-
borderRadius: 20,
|
|
41
40
|
marginBottom: 16,
|
|
42
41
|
};
|
|
43
42
|
|
|
@@ -76,7 +75,7 @@ const ProfileSummaryCard: React.FC<ProfileSummaryCardProps> = ({
|
|
|
76
75
|
);
|
|
77
76
|
|
|
78
77
|
return (
|
|
79
|
-
<Card
|
|
78
|
+
<Card appearance="subtle" radius="radius-20" style={cardStyle}>
|
|
80
79
|
<View className="items-center px-space-20 py-space-24">
|
|
81
80
|
{avatarNode}
|
|
82
81
|
<H4 className="text-text" numberOfLines={1}>
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import { useTheme } from '@oxy.so/bloom/theme';
|
|
4
|
-
import { PressableScale } from '@oxy.so/bloom/pressable-scale';
|
|
5
|
-
import { Text } from '@oxy.so/bloom/typography';
|
|
2
|
+
import { Button } from '@oxy.so/bloom/button';
|
|
6
3
|
|
|
7
4
|
export interface SurfaceHeaderActionProps {
|
|
8
5
|
/** Button label (e.g. a translated "Save"). */
|
|
@@ -13,48 +10,9 @@ export interface SurfaceHeaderActionProps {
|
|
|
13
10
|
disabled?: boolean;
|
|
14
11
|
}
|
|
15
12
|
|
|
16
|
-
/**
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
label,
|
|
23
|
-
onPress,
|
|
24
|
-
loading,
|
|
25
|
-
disabled,
|
|
26
|
-
}) => {
|
|
27
|
-
const { colors } = useTheme();
|
|
28
|
-
const isDisabled = disabled || loading;
|
|
29
|
-
return (
|
|
30
|
-
<PressableScale
|
|
31
|
-
onPress={onPress}
|
|
32
|
-
disabled={isDisabled}
|
|
33
|
-
accessibilityRole="button"
|
|
34
|
-
accessibilityLabel={label}
|
|
35
|
-
style={[styles.button, { backgroundColor: colors.primary, opacity: isDisabled ? 0.5 : 1 }]}
|
|
36
|
-
>
|
|
37
|
-
{loading ? (
|
|
38
|
-
<ActivityIndicator size="small" color={colors.primaryForeground} />
|
|
39
|
-
) : (
|
|
40
|
-
<Text style={[styles.label, { color: colors.primaryForeground }]}>{label}</Text>
|
|
41
|
-
)}
|
|
42
|
-
</PressableScale>
|
|
43
|
-
);
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
const styles = StyleSheet.create({
|
|
47
|
-
button: {
|
|
48
|
-
height: 36,
|
|
49
|
-
minWidth: 64,
|
|
50
|
-
paddingHorizontal: 14,
|
|
51
|
-
borderRadius: 18,
|
|
52
|
-
alignItems: 'center',
|
|
53
|
-
justifyContent: 'center',
|
|
54
|
-
},
|
|
55
|
-
label: {
|
|
56
|
-
fontSize: 14,
|
|
57
|
-
fontWeight: '600',
|
|
58
|
-
letterSpacing: -0.2,
|
|
59
|
-
},
|
|
60
|
-
});
|
|
13
|
+
/** Header actions share Bloom's sizing, surface, disabled and loading behavior. */
|
|
14
|
+
export const SurfaceHeaderAction: React.FC<SurfaceHeaderActionProps> = ({ label, onPress, loading, disabled }) => (
|
|
15
|
+
<Button size="medium" onPress={onPress} loading={loading} disabled={disabled}>
|
|
16
|
+
{label}
|
|
17
|
+
</Button>
|
|
18
|
+
);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React, { Suspense, useCallback, useEffect, useMemo, useState, type ErrorInfo } from 'react';
|
|
2
|
-
import { ActivityIndicator, StyleSheet,
|
|
2
|
+
import { ActivityIndicator, StyleSheet, View, useWindowDimensions } from 'react-native';
|
|
3
|
+
import { Text } from '@oxy.so/bloom/typography';
|
|
3
4
|
import { useStore } from 'zustand';
|
|
4
5
|
import { useTheme } from '@oxy.so/bloom/theme';
|
|
5
6
|
import {
|
|
@@ -362,7 +362,7 @@ const AccountsMenuView: React.FC<AccountsMenuViewProps> = ({
|
|
|
362
362
|
variant, `small` the compact height; it hugs its label instead of
|
|
363
363
|
spanning the surface. */}
|
|
364
364
|
<Button
|
|
365
|
-
|
|
365
|
+
appearance="subtle" tone="neutral"
|
|
366
366
|
size="small"
|
|
367
367
|
onPress={handlers.onManage}
|
|
368
368
|
accessibilityLabel={manageLabel}
|
|
@@ -107,7 +107,7 @@ const SignInEntryView: React.FC<SignInEntryViewProps> = ({
|
|
|
107
107
|
) : null}
|
|
108
108
|
|
|
109
109
|
<Button
|
|
110
|
-
|
|
110
|
+
appearance="solid" tone="accent"
|
|
111
111
|
onPress={web ? alternatives.onSignInWithPasskey : onContinueWithOxy}
|
|
112
112
|
style={styles.primaryButton}
|
|
113
113
|
testID="continue-with-oxy"
|
|
@@ -49,7 +49,7 @@ const SignUpView: React.FC<SignUpViewProps> = ({
|
|
|
49
49
|
return (
|
|
50
50
|
<View style={styles.centeredBlock}>
|
|
51
51
|
<Button
|
|
52
|
-
|
|
52
|
+
appearance="solid" tone="accent"
|
|
53
53
|
onPress={commonsInstalled ? onCreateIdentityInCommons : onGetCommons}
|
|
54
54
|
style={styles.primaryButton}
|
|
55
55
|
>
|
|
@@ -65,7 +65,7 @@ const SignUpView: React.FC<SignUpViewProps> = ({
|
|
|
65
65
|
<Text style={[styles.mutedText, { color: theme.colors.textSecondary }]}>
|
|
66
66
|
{t('accountSwitcher.passkeyHint')}
|
|
67
67
|
</Text>
|
|
68
|
-
<Button
|
|
68
|
+
<Button appearance="solid" tone="accent" onPress={onOpenHub} style={styles.primaryButton} testID="signup-open-identity">
|
|
69
69
|
{t('signup.createAccount')}
|
|
70
70
|
</Button>
|
|
71
71
|
<SubtleLink label={t('signup.backToSignInLink')} theme={theme} onPress={onBackToSignIn} />
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
-
import { View
|
|
2
|
+
import { View } from 'react-native';
|
|
3
|
+
import { Card } from '@oxy.so/bloom/card';
|
|
4
|
+
import { Text } from '@oxy.so/bloom/typography';
|
|
3
5
|
import Ionicons from '../../icons/Ionicons';
|
|
4
6
|
import { Button } from '@oxy.so/bloom/button';
|
|
5
7
|
import { useTheme } from '@oxy.so/bloom/theme';
|
|
@@ -35,7 +37,7 @@ export const FileDetailsModal: React.FC<FileDetailsModalProps> = ({
|
|
|
35
37
|
|
|
36
38
|
return (
|
|
37
39
|
<View>
|
|
38
|
-
<
|
|
40
|
+
<Card appearance="subtle" className="p-[18px] items-center">
|
|
39
41
|
<View className="mb-space-16">
|
|
40
42
|
<Ionicons
|
|
41
43
|
name={getFileIcon(file.contentType)}
|
|
@@ -87,11 +89,11 @@ export const FileDetailsModal: React.FC<FileDetailsModalProps> = ({
|
|
|
87
89
|
</View>
|
|
88
90
|
)}
|
|
89
91
|
</View>
|
|
90
|
-
</
|
|
92
|
+
</Card>
|
|
91
93
|
|
|
92
94
|
<View style={{ gap: 8 }}>
|
|
93
95
|
<Button
|
|
94
|
-
|
|
96
|
+
appearance="solid" tone="accent"
|
|
95
97
|
onPress={() => {
|
|
96
98
|
surface.dismiss();
|
|
97
99
|
onDownload(file.id, file.filename);
|
|
@@ -101,7 +103,7 @@ export const FileDetailsModal: React.FC<FileDetailsModalProps> = ({
|
|
|
101
103
|
</Button>
|
|
102
104
|
{isOwner ? (
|
|
103
105
|
<Button
|
|
104
|
-
|
|
106
|
+
appearance="solid" tone="danger"
|
|
105
107
|
onPress={() => {
|
|
106
108
|
surface.dismiss();
|
|
107
109
|
onDelete(file.id, file.filename);
|
|
@@ -110,7 +112,7 @@ export const FileDetailsModal: React.FC<FileDetailsModalProps> = ({
|
|
|
110
112
|
{t('common.actions.delete')}
|
|
111
113
|
</Button>
|
|
112
114
|
) : null}
|
|
113
|
-
<Button
|
|
115
|
+
<Button appearance="subtle" tone="neutral" onPress={() => surface.dismiss()}>
|
|
114
116
|
{t('common.cancel')}
|
|
115
117
|
</Button>
|
|
116
118
|
</View>
|