@oxyhq/services 5.13.40 → 5.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/README.md +130 -54
- package/lib/commonjs/assets/assets/lottie/welcomeheader_background_op1.json +1 -0
- package/lib/commonjs/assets/lottie/welcomeheader_background_op1.json +1 -0
- package/lib/commonjs/core/HttpService.js +94 -4
- package/lib/commonjs/core/HttpService.js.map +1 -1
- package/lib/commonjs/core/OxyServices.base.js +3 -1
- package/lib/commonjs/core/OxyServices.base.js.map +1 -1
- package/lib/commonjs/core/mixins/OxyServices.assets.js +213 -22
- package/lib/commonjs/core/mixins/OxyServices.assets.js.map +1 -1
- package/lib/commonjs/core/mixins/OxyServices.auth.js +70 -99
- package/lib/commonjs/core/mixins/OxyServices.auth.js.map +1 -1
- package/lib/commonjs/crypto/index.js +33 -0
- package/lib/commonjs/crypto/index.js.map +1 -0
- package/lib/commonjs/crypto/keyManager.js +208 -0
- package/lib/commonjs/crypto/keyManager.js.map +1 -0
- package/lib/commonjs/crypto/recoveryPhrase.js +137 -0
- package/lib/commonjs/crypto/recoveryPhrase.js.map +1 -0
- package/lib/commonjs/crypto/signatureService.js +230 -0
- package/lib/commonjs/crypto/signatureService.js.map +1 -0
- package/lib/commonjs/i18n/locales/en-US.json +4 -0
- package/lib/commonjs/index.js +22 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/components/ActivityIndicator.js +203 -0
- package/lib/commonjs/ui/components/ActivityIndicator.js.map +1 -0
- package/lib/commonjs/ui/components/AutoHeightScrollView.js +46 -0
- package/lib/commonjs/ui/components/AutoHeightScrollView.js.map +1 -0
- package/lib/commonjs/ui/components/BottomSheet.js +407 -0
- package/lib/commonjs/ui/components/BottomSheet.js.map +1 -0
- package/lib/commonjs/ui/components/BottomSheetRouter.js +366 -0
- package/lib/commonjs/ui/components/BottomSheetRouter.js.map +1 -0
- package/lib/commonjs/ui/components/CrossFadeIcon.js +106 -0
- package/lib/commonjs/ui/components/CrossFadeIcon.js.map +1 -0
- package/lib/commonjs/ui/components/EmptyState.js +41 -0
- package/lib/commonjs/ui/components/EmptyState.js.map +1 -0
- package/lib/commonjs/ui/components/GroupedItem.js +87 -82
- package/lib/commonjs/ui/components/GroupedItem.js.map +1 -1
- package/lib/commonjs/ui/components/GroupedSection.js +25 -25
- package/lib/commonjs/ui/components/GroupedSection.js.map +1 -1
- package/lib/commonjs/ui/components/Header.js +111 -47
- package/lib/commonjs/ui/components/Header.js.map +1 -1
- package/lib/commonjs/ui/components/HelperText.js +103 -0
- package/lib/commonjs/ui/components/HelperText.js.map +1 -0
- package/lib/commonjs/ui/components/Icon.js +109 -0
- package/lib/commonjs/ui/components/Icon.js.map +1 -0
- package/lib/commonjs/ui/components/IconButton/IconButton.js +159 -0
- package/lib/commonjs/ui/components/IconButton/IconButton.js.map +1 -0
- package/lib/commonjs/ui/components/IconButton/utils.js +155 -0
- package/lib/commonjs/ui/components/IconButton/utils.js.map +1 -0
- package/lib/commonjs/ui/components/LoadingState.js +47 -0
- package/lib/commonjs/ui/components/LoadingState.js.map +1 -0
- package/lib/commonjs/ui/components/OxyPayButton.js +1 -14
- package/lib/commonjs/ui/components/OxyPayButton.js.map +1 -1
- package/lib/commonjs/ui/components/OxyProvider.js +41 -372
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/components/OxySignInButton.js +9 -13
- package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
- package/lib/commonjs/ui/components/ProfileCard.js +7 -4
- package/lib/commonjs/ui/components/ProfileCard.js.map +1 -1
- package/lib/commonjs/ui/components/QuickActions.js +7 -4
- package/lib/commonjs/ui/components/QuickActions.js.map +1 -1
- package/lib/commonjs/ui/components/Section.js +4 -1
- package/lib/commonjs/ui/components/Section.js.map +1 -1
- package/lib/commonjs/ui/components/SectionTitle.js +6 -3
- package/lib/commonjs/ui/components/SectionTitle.js.map +1 -1
- package/lib/commonjs/ui/components/SettingRow.js +77 -0
- package/lib/commonjs/ui/components/SettingRow.js.map +1 -0
- package/lib/commonjs/ui/components/StepBasedScreen.js +188 -172
- package/lib/commonjs/ui/components/StepBasedScreen.js.map +1 -1
- package/lib/commonjs/ui/components/Surface.js +258 -0
- package/lib/commonjs/ui/components/Surface.js.map +1 -0
- package/lib/commonjs/ui/components/TextField/Addons/Outline.js +46 -0
- package/lib/commonjs/ui/components/TextField/Addons/Outline.js.map +1 -0
- package/lib/commonjs/ui/components/TextField/Addons/Underline.js +53 -0
- package/lib/commonjs/ui/components/TextField/Addons/Underline.js.map +1 -0
- package/lib/commonjs/ui/components/TextField/Adornment/TextFieldAdornment.js +155 -0
- package/lib/commonjs/ui/components/TextField/Adornment/TextFieldAdornment.js.map +1 -0
- package/lib/commonjs/ui/components/TextField/Adornment/TextFieldAffix.js +144 -0
- package/lib/commonjs/ui/components/TextField/Adornment/TextFieldAffix.js.map +1 -0
- package/lib/commonjs/ui/components/TextField/Adornment/TextFieldIcon.js +137 -0
- package/lib/commonjs/ui/components/TextField/Adornment/TextFieldIcon.js.map +1 -0
- package/lib/commonjs/ui/components/TextField/Adornment/enums.js +22 -0
- package/lib/commonjs/ui/components/TextField/Adornment/enums.js.map +1 -0
- package/lib/commonjs/ui/components/TextField/Adornment/types.js +6 -0
- package/lib/commonjs/ui/components/TextField/Adornment/types.js.map +1 -0
- package/lib/commonjs/ui/components/TextField/Adornment/utils.js +62 -0
- package/lib/commonjs/ui/components/TextField/Adornment/utils.js.map +1 -0
- package/lib/commonjs/ui/components/TextField/Label/InputLabel.js +176 -0
- package/lib/commonjs/ui/components/TextField/Label/InputLabel.js.map +1 -0
- package/lib/commonjs/ui/components/TextField/Label/LabelBackground.js +84 -0
- package/lib/commonjs/ui/components/TextField/Label/LabelBackground.js.map +1 -0
- package/lib/commonjs/ui/components/TextField/TextFieldFlat.js +377 -0
- package/lib/commonjs/ui/components/TextField/TextFieldFlat.js.map +1 -0
- package/lib/commonjs/ui/components/TextField/TextFieldOutlined.js +361 -0
- package/lib/commonjs/ui/components/TextField/TextFieldOutlined.js.map +1 -0
- package/lib/commonjs/ui/components/TextField/constants.js +50 -0
- package/lib/commonjs/ui/components/TextField/constants.js.map +1 -0
- package/lib/commonjs/ui/components/TextField/helpers.js +490 -0
- package/lib/commonjs/ui/components/TextField/helpers.js.map +1 -0
- package/lib/commonjs/ui/components/TextField/types.js +6 -0
- package/lib/commonjs/ui/components/TextField/types.js.map +1 -0
- package/lib/commonjs/ui/components/TextField.js +339 -0
- package/lib/commonjs/ui/components/TextField.js.map +1 -0
- package/lib/commonjs/ui/components/TouchableRipple/Pressable.js +12 -0
- package/lib/commonjs/ui/components/TouchableRipple/Pressable.js.map +1 -0
- package/lib/commonjs/ui/components/TouchableRipple/TouchableRipple.js +258 -0
- package/lib/commonjs/ui/components/TouchableRipple/TouchableRipple.js.map +1 -0
- package/lib/commonjs/ui/components/TouchableRipple/TouchableRipple.native.js +107 -0
- package/lib/commonjs/ui/components/TouchableRipple/TouchableRipple.native.js.map +1 -0
- package/lib/commonjs/ui/components/TouchableRipple/utils.js +56 -0
- package/lib/commonjs/ui/components/TouchableRipple/utils.js.map +1 -0
- package/lib/commonjs/ui/components/Typography/AnimatedText.js +62 -0
- package/lib/commonjs/ui/components/Typography/AnimatedText.js.map +1 -0
- package/lib/commonjs/ui/components/Typography/types.js +26 -0
- package/lib/commonjs/ui/components/Typography/types.js.map +1 -0
- package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js +171 -0
- package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js.map +1 -0
- package/lib/commonjs/ui/components/fileManagement/FileViewer.js +409 -0
- package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -0
- package/lib/commonjs/ui/components/fileManagement/UploadPreview.js +181 -0
- package/lib/commonjs/ui/components/fileManagement/UploadPreview.js.map +1 -0
- package/lib/commonjs/ui/components/fileManagement/styles.js +868 -0
- package/lib/commonjs/ui/components/fileManagement/styles.js.map +1 -0
- package/lib/commonjs/ui/components/index.js +29 -1
- package/lib/commonjs/ui/components/index.js.map +1 -1
- package/lib/commonjs/ui/components/profile/EditBioModal.js +181 -0
- package/lib/commonjs/ui/components/profile/EditBioModal.js.map +1 -0
- package/lib/commonjs/ui/components/profile/EditDisplayNameModal.js +207 -0
- package/lib/commonjs/ui/components/profile/EditDisplayNameModal.js.map +1 -0
- package/lib/commonjs/ui/components/profile/EditEmailModal.js +184 -0
- package/lib/commonjs/ui/components/profile/EditEmailModal.js.map +1 -0
- package/lib/commonjs/ui/components/profile/EditLinksModal.js +315 -0
- package/lib/commonjs/ui/components/profile/EditLinksModal.js.map +1 -0
- package/lib/commonjs/ui/components/profile/EditLocationModal.js +273 -0
- package/lib/commonjs/ui/components/profile/EditLocationModal.js.map +1 -0
- package/lib/commonjs/ui/components/profile/EditUsernameModal.js +180 -0
- package/lib/commonjs/ui/components/profile/EditUsernameModal.js.map +1 -0
- package/lib/commonjs/ui/components/profile/TwoFactorSetupModal.js +467 -0
- package/lib/commonjs/ui/components/profile/TwoFactorSetupModal.js.map +1 -0
- package/lib/commonjs/ui/components/styles/overlay.js +85 -0
- package/lib/commonjs/ui/components/styles/overlay.js.map +1 -0
- package/lib/commonjs/ui/components/styles/shadow.js +132 -0
- package/lib/commonjs/ui/components/styles/shadow.js.map +1 -0
- package/lib/commonjs/ui/components/theming.js +116 -0
- package/lib/commonjs/ui/components/theming.js.map +1 -0
- package/lib/commonjs/ui/components/types.js +2 -0
- package/lib/commonjs/ui/components/types.js.map +1 -0
- package/lib/commonjs/ui/components/utils/forwardRef.js +18 -0
- package/lib/commonjs/ui/components/utils/forwardRef.js.map +1 -0
- package/lib/commonjs/ui/components/utils/hasTouchHandler.js +13 -0
- package/lib/commonjs/ui/components/utils/hasTouchHandler.js.map +1 -0
- package/lib/commonjs/ui/components/utils/roundLayoutSize.js +9 -0
- package/lib/commonjs/ui/components/utils/roundLayoutSize.js.map +1 -0
- package/lib/commonjs/ui/components/utils/splitStyles.js +50 -0
- package/lib/commonjs/ui/components/utils/splitStyles.js.map +1 -0
- package/lib/commonjs/ui/constants/iconColors.js +84 -0
- package/lib/commonjs/ui/constants/iconColors.js.map +1 -0
- package/lib/commonjs/ui/constants/spacing.js +50 -0
- package/lib/commonjs/ui/constants/spacing.js.map +1 -0
- package/lib/commonjs/ui/constants/theme.js +123 -0
- package/lib/commonjs/ui/constants/theme.js.map +1 -0
- package/lib/commonjs/ui/context/OxyContext.js +198 -853
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/ThemeContext.js +36 -0
- package/lib/commonjs/ui/context/ThemeContext.js.map +1 -0
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +349 -0
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -0
- package/lib/commonjs/ui/context/hooks/useDeviceManagement.js +73 -0
- package/lib/commonjs/ui/context/hooks/useDeviceManagement.js.map +1 -0
- package/lib/commonjs/ui/context/hooks/useLanguageManagement.js +112 -0
- package/lib/commonjs/ui/context/hooks/useLanguageManagement.js.map +1 -0
- package/lib/commonjs/ui/context/hooks/useSessionManagement.js +261 -0
- package/lib/commonjs/ui/context/hooks/useSessionManagement.js.map +1 -0
- package/lib/commonjs/ui/context/hooks/useStorage.js +79 -0
- package/lib/commonjs/ui/context/hooks/useStorage.js.map +1 -0
- package/lib/commonjs/ui/context/utils/errorHandlers.js +90 -0
- package/lib/commonjs/ui/context/utils/errorHandlers.js.map +1 -0
- package/lib/commonjs/ui/context/utils/sessionHelpers.js +103 -0
- package/lib/commonjs/ui/context/utils/sessionHelpers.js.map +1 -0
- package/lib/commonjs/ui/context/utils/storageHelpers.js +119 -0
- package/lib/commonjs/ui/context/utils/storageHelpers.js.map +1 -0
- package/lib/commonjs/ui/hooks/index.js +14 -0
- package/lib/commonjs/ui/hooks/index.js.map +1 -1
- package/lib/commonjs/ui/hooks/use-color-scheme.js +29 -0
- package/lib/commonjs/ui/hooks/use-color-scheme.js.map +1 -0
- package/lib/commonjs/ui/hooks/use-haptic-press.js +21 -0
- package/lib/commonjs/ui/hooks/use-haptic-press.js.map +1 -0
- package/lib/commonjs/ui/hooks/useAssets.js.map +1 -1
- package/lib/commonjs/ui/hooks/useDeviceManagement.js +73 -0
- package/lib/commonjs/ui/hooks/useDeviceManagement.js.map +1 -0
- package/lib/commonjs/ui/hooks/useLanguageManagement.js +112 -0
- package/lib/commonjs/ui/hooks/useLanguageManagement.js.map +1 -0
- package/lib/commonjs/ui/hooks/useProfileEditing.js +123 -0
- package/lib/commonjs/ui/hooks/useProfileEditing.js.map +1 -0
- package/lib/commonjs/ui/hooks/useSessionManagement.js +261 -0
- package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -0
- package/lib/commonjs/ui/hooks/useStorage.js +79 -0
- package/lib/commonjs/ui/hooks/useStorage.js.map +1 -0
- package/lib/commonjs/ui/hooks/useThemeColors.js +31 -0
- package/lib/commonjs/ui/hooks/useThemeColors.js.map +1 -0
- package/lib/commonjs/ui/hooks/useThemeStyles.js +69 -0
- package/lib/commonjs/ui/hooks/useThemeStyles.js.map +1 -0
- package/lib/commonjs/ui/index.js +1 -4
- package/lib/commonjs/ui/index.js.map +1 -1
- package/lib/commonjs/ui/navigation/bottomSheetManager.js +180 -0
- package/lib/commonjs/ui/navigation/bottomSheetManager.js.map +1 -0
- package/lib/commonjs/ui/navigation/routes.js +80 -154
- package/lib/commonjs/ui/navigation/routes.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountCenterScreen.js +67 -67
- package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountOverviewScreen.js +217 -98
- package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js +514 -429
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +44 -59
- package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountVerificationScreen.js +12 -19
- package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AppInfoScreen.js +36 -43
- package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FeedbackScreen.js +14 -14
- package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/FileManagementScreen.js +674 -1968
- package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/HelpSupportScreen.js +26 -23
- package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/HistoryViewScreen.js +19 -59
- package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +79 -170
- package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +13 -40
- package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/OxyAuthScreen.js +436 -0
- package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -0
- package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +18 -24
- package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +21 -9
- package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +180 -252
- package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ProfileScreen.js +7 -5
- package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +32 -70
- package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/SearchSettingsScreen.js +26 -99
- package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/SessionManagementScreen.js +24 -16
- package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/UserLinksScreen.js +8 -10
- package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +64 -67
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js +11 -8
- package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js +124 -122
- package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js +99 -112
- package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js +12 -9
- package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js +552 -79
- package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js +12 -8
- package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
- package/lib/commonjs/ui/styles/authStyles.js +5 -11
- package/lib/commonjs/ui/styles/authStyles.js.map +1 -1
- package/lib/commonjs/ui/styles/spacing.js +60 -2
- package/lib/commonjs/ui/styles/spacing.js.map +1 -1
- package/lib/commonjs/ui/styles/theme.js +1 -1
- package/lib/commonjs/ui/types/fileManagement.js +6 -0
- package/lib/commonjs/ui/types/fileManagement.js.map +1 -0
- package/lib/commonjs/ui/types/navigation.js +6 -0
- package/lib/commonjs/ui/types/navigation.js.map +1 -0
- package/lib/commonjs/ui/utils/colorUtils.js +52 -0
- package/lib/commonjs/ui/utils/colorUtils.js.map +1 -0
- package/lib/commonjs/ui/utils/errorHandlers.js +90 -0
- package/lib/commonjs/ui/utils/errorHandlers.js.map +1 -0
- package/lib/commonjs/ui/utils/fileManagement.js +181 -0
- package/lib/commonjs/ui/utils/fileManagement.js.map +1 -0
- package/lib/commonjs/ui/utils/sessionHelpers.js +103 -0
- package/lib/commonjs/ui/utils/sessionHelpers.js.map +1 -0
- package/lib/commonjs/ui/utils/storageHelpers.js +119 -0
- package/lib/commonjs/ui/utils/storageHelpers.js.map +1 -0
- package/lib/commonjs/ui/utils/themeUtils.js +47 -0
- package/lib/commonjs/ui/utils/themeUtils.js.map +1 -0
- package/lib/commonjs/ui/utils/user-utils.js +53 -0
- package/lib/commonjs/ui/utils/user-utils.js.map +1 -0
- package/lib/commonjs/utils/errorUtils.js +14 -4
- package/lib/commonjs/utils/errorUtils.js.map +1 -1
- package/lib/module/assets/assets/lottie/welcomeheader_background_op1.json +1 -0
- package/lib/module/assets/lottie/welcomeheader_background_op1.json +1 -0
- package/lib/module/core/HttpService.js +94 -4
- package/lib/module/core/HttpService.js.map +1 -1
- package/lib/module/core/OxyServices.base.js +3 -1
- package/lib/module/core/OxyServices.base.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.assets.js +212 -20
- package/lib/module/core/mixins/OxyServices.assets.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.auth.js +70 -99
- package/lib/module/core/mixins/OxyServices.auth.js.map +1 -1
- package/lib/module/crypto/index.js +16 -0
- package/lib/module/crypto/index.js.map +1 -0
- package/lib/module/crypto/keyManager.js +204 -0
- package/lib/module/crypto/keyManager.js.map +1 -0
- package/lib/module/crypto/recoveryPhrase.js +131 -0
- package/lib/module/crypto/recoveryPhrase.js.map +1 -0
- package/lib/module/crypto/signatureService.js +227 -0
- package/lib/module/crypto/signatureService.js.map +1 -0
- package/lib/module/i18n/locales/en-US.json +4 -0
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/components/ActivityIndicator.js +198 -0
- package/lib/module/ui/components/ActivityIndicator.js.map +1 -0
- package/lib/module/ui/components/AutoHeightScrollView.js +41 -0
- package/lib/module/ui/components/AutoHeightScrollView.js.map +1 -0
- package/lib/module/ui/components/BottomSheet.js +402 -0
- package/lib/module/ui/components/BottomSheet.js.map +1 -0
- package/lib/module/ui/components/BottomSheetRouter.js +356 -0
- package/lib/module/ui/components/BottomSheetRouter.js.map +1 -0
- package/lib/module/ui/components/CrossFadeIcon.js +101 -0
- package/lib/module/ui/components/CrossFadeIcon.js.map +1 -0
- package/lib/module/ui/components/EmptyState.js +36 -0
- package/lib/module/ui/components/EmptyState.js.map +1 -0
- package/lib/module/ui/components/GroupedItem.js +88 -82
- package/lib/module/ui/components/GroupedItem.js.map +1 -1
- package/lib/module/ui/components/GroupedSection.js +23 -23
- package/lib/module/ui/components/GroupedSection.js.map +1 -1
- package/lib/module/ui/components/Header.js +109 -46
- package/lib/module/ui/components/Header.js.map +1 -1
- package/lib/module/ui/components/HelperText.js +99 -0
- package/lib/module/ui/components/HelperText.js.map +1 -0
- package/lib/module/ui/components/Icon.js +102 -0
- package/lib/module/ui/components/Icon.js.map +1 -0
- package/lib/module/ui/components/IconButton/IconButton.js +153 -0
- package/lib/module/ui/components/IconButton/IconButton.js.map +1 -0
- package/lib/module/ui/components/IconButton/utils.js +149 -0
- package/lib/module/ui/components/IconButton/utils.js.map +1 -0
- package/lib/module/ui/components/LoadingState.js +42 -0
- package/lib/module/ui/components/LoadingState.js.map +1 -0
- package/lib/module/ui/components/OxyPayButton.js +1 -14
- package/lib/module/ui/components/OxyPayButton.js.map +1 -1
- package/lib/module/ui/components/OxyProvider.js +45 -377
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/components/OxySignInButton.js +9 -13
- package/lib/module/ui/components/OxySignInButton.js.map +1 -1
- package/lib/module/ui/components/ProfileCard.js +7 -4
- package/lib/module/ui/components/ProfileCard.js.map +1 -1
- package/lib/module/ui/components/QuickActions.js +7 -4
- package/lib/module/ui/components/QuickActions.js.map +1 -1
- package/lib/module/ui/components/Section.js +4 -1
- package/lib/module/ui/components/Section.js.map +1 -1
- package/lib/module/ui/components/SectionTitle.js +6 -3
- package/lib/module/ui/components/SectionTitle.js.map +1 -1
- package/lib/module/ui/components/SettingRow.js +72 -0
- package/lib/module/ui/components/SettingRow.js.map +1 -0
- package/lib/module/ui/components/StepBasedScreen.js +190 -174
- package/lib/module/ui/components/StepBasedScreen.js.map +1 -1
- package/lib/module/ui/components/Surface.js +252 -0
- package/lib/module/ui/components/Surface.js.map +1 -0
- package/lib/module/ui/components/TextField/Addons/Outline.js +40 -0
- package/lib/module/ui/components/TextField/Addons/Outline.js.map +1 -0
- package/lib/module/ui/components/TextField/Addons/Underline.js +47 -0
- package/lib/module/ui/components/TextField/Addons/Underline.js.map +1 -0
- package/lib/module/ui/components/TextField/Adornment/TextFieldAdornment.js +148 -0
- package/lib/module/ui/components/TextField/Adornment/TextFieldAdornment.js.map +1 -0
- package/lib/module/ui/components/TextField/Adornment/TextFieldAffix.js +141 -0
- package/lib/module/ui/components/TextField/Adornment/TextFieldAffix.js.map +1 -0
- package/lib/module/ui/components/TextField/Adornment/TextFieldIcon.js +135 -0
- package/lib/module/ui/components/TextField/Adornment/TextFieldIcon.js.map +1 -0
- package/lib/module/ui/components/TextField/Adornment/enums.js +18 -0
- package/lib/module/ui/components/TextField/Adornment/enums.js.map +1 -0
- package/lib/module/ui/components/TextField/Adornment/types.js +4 -0
- package/lib/module/ui/components/TextField/Adornment/types.js.map +1 -0
- package/lib/module/ui/components/TextField/Adornment/utils.js +57 -0
- package/lib/module/ui/components/TextField/Adornment/utils.js.map +1 -0
- package/lib/module/ui/components/TextField/Label/InputLabel.js +171 -0
- package/lib/module/ui/components/TextField/Label/InputLabel.js.map +1 -0
- package/lib/module/ui/components/TextField/Label/LabelBackground.js +78 -0
- package/lib/module/ui/components/TextField/Label/LabelBackground.js.map +1 -0
- package/lib/module/ui/components/TextField/TextFieldFlat.js +372 -0
- package/lib/module/ui/components/TextField/TextFieldFlat.js.map +1 -0
- package/lib/module/ui/components/TextField/TextFieldOutlined.js +355 -0
- package/lib/module/ui/components/TextField/TextFieldOutlined.js.map +1 -0
- package/lib/module/ui/components/TextField/constants.js +46 -0
- package/lib/module/ui/components/TextField/constants.js.map +1 -0
- package/lib/module/ui/components/TextField/helpers.js +472 -0
- package/lib/module/ui/components/TextField/helpers.js.map +1 -0
- package/lib/module/ui/components/TextField/types.js +4 -0
- package/lib/module/ui/components/TextField/types.js.map +1 -0
- package/lib/module/ui/components/TextField.js +333 -0
- package/lib/module/ui/components/TextField.js.map +1 -0
- package/lib/module/ui/components/TouchableRipple/Pressable.js +9 -0
- package/lib/module/ui/components/TouchableRipple/Pressable.js.map +1 -0
- package/lib/module/ui/components/TouchableRipple/TouchableRipple.js +253 -0
- package/lib/module/ui/components/TouchableRipple/TouchableRipple.js.map +1 -0
- package/lib/module/ui/components/TouchableRipple/TouchableRipple.native.js +101 -0
- package/lib/module/ui/components/TouchableRipple/TouchableRipple.native.js.map +1 -0
- package/lib/module/ui/components/TouchableRipple/utils.js +50 -0
- package/lib/module/ui/components/TouchableRipple/utils.js.map +1 -0
- package/lib/module/ui/components/Typography/AnimatedText.js +56 -0
- package/lib/module/ui/components/Typography/AnimatedText.js.map +1 -0
- package/lib/module/ui/components/Typography/types.js +22 -0
- package/lib/module/ui/components/Typography/types.js.map +1 -0
- package/lib/module/ui/components/fileManagement/FileDetailsModal.js +165 -0
- package/lib/module/ui/components/fileManagement/FileDetailsModal.js.map +1 -0
- package/lib/module/ui/components/fileManagement/FileViewer.js +402 -0
- package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -0
- package/lib/module/ui/components/fileManagement/UploadPreview.js +175 -0
- package/lib/module/ui/components/fileManagement/UploadPreview.js.map +1 -0
- package/lib/module/ui/components/fileManagement/styles.js +864 -0
- package/lib/module/ui/components/fileManagement/styles.js.map +1 -0
- package/lib/module/ui/components/index.js +4 -1
- package/lib/module/ui/components/index.js.map +1 -1
- package/lib/module/ui/components/profile/EditBioModal.js +175 -0
- package/lib/module/ui/components/profile/EditBioModal.js.map +1 -0
- package/lib/module/ui/components/profile/EditDisplayNameModal.js +201 -0
- package/lib/module/ui/components/profile/EditDisplayNameModal.js.map +1 -0
- package/lib/module/ui/components/profile/EditEmailModal.js +178 -0
- package/lib/module/ui/components/profile/EditEmailModal.js.map +1 -0
- package/lib/module/ui/components/profile/EditLinksModal.js +309 -0
- package/lib/module/ui/components/profile/EditLinksModal.js.map +1 -0
- package/lib/module/ui/components/profile/EditLocationModal.js +267 -0
- package/lib/module/ui/components/profile/EditLocationModal.js.map +1 -0
- package/lib/module/ui/components/profile/EditUsernameModal.js +174 -0
- package/lib/module/ui/components/profile/EditUsernameModal.js.map +1 -0
- package/lib/module/ui/components/profile/TwoFactorSetupModal.js +460 -0
- package/lib/module/ui/components/profile/TwoFactorSetupModal.js.map +1 -0
- package/lib/module/ui/components/styles/overlay.js +80 -0
- package/lib/module/ui/components/styles/overlay.js.map +1 -0
- package/lib/module/ui/components/styles/shadow.js +128 -0
- package/lib/module/ui/components/styles/shadow.js.map +1 -0
- package/lib/module/ui/components/theming.js +111 -0
- package/lib/module/ui/components/theming.js.map +1 -0
- package/lib/module/ui/components/types.js +2 -0
- package/lib/module/ui/components/types.js.map +1 -0
- package/lib/module/ui/components/utils/forwardRef.js +13 -0
- package/lib/module/ui/components/utils/forwardRef.js.map +1 -0
- package/lib/module/ui/components/utils/hasTouchHandler.js +9 -0
- package/lib/module/ui/components/utils/hasTouchHandler.js.map +1 -0
- package/lib/module/ui/components/utils/roundLayoutSize.js +4 -0
- package/lib/module/ui/components/utils/roundLayoutSize.js.map +1 -0
- package/lib/module/ui/components/utils/splitStyles.js +46 -0
- package/lib/module/ui/components/utils/splitStyles.js.map +1 -0
- package/lib/module/ui/constants/iconColors.js +78 -0
- package/lib/module/ui/constants/iconColors.js.map +1 -0
- package/lib/module/ui/constants/spacing.js +45 -0
- package/lib/module/ui/constants/spacing.js.map +1 -0
- package/lib/module/ui/constants/theme.js +119 -0
- package/lib/module/ui/constants/theme.js.map +1 -0
- package/lib/module/ui/context/OxyContext.js +199 -855
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/ThemeContext.js +29 -0
- package/lib/module/ui/context/ThemeContext.js.map +1 -0
- package/lib/module/ui/context/hooks/useAuthOperations.js +344 -0
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -0
- package/lib/module/ui/context/hooks/useDeviceManagement.js +68 -0
- package/lib/module/ui/context/hooks/useDeviceManagement.js.map +1 -0
- package/lib/module/ui/context/hooks/useLanguageManagement.js +107 -0
- package/lib/module/ui/context/hooks/useLanguageManagement.js.map +1 -0
- package/lib/module/ui/context/hooks/useSessionManagement.js +256 -0
- package/lib/module/ui/context/hooks/useSessionManagement.js.map +1 -0
- package/lib/module/ui/context/hooks/useStorage.js +74 -0
- package/lib/module/ui/context/hooks/useStorage.js.map +1 -0
- package/lib/module/ui/context/utils/errorHandlers.js +83 -0
- package/lib/module/ui/context/utils/errorHandlers.js.map +1 -0
- package/lib/module/ui/context/utils/sessionHelpers.js +96 -0
- package/lib/module/ui/context/utils/sessionHelpers.js.map +1 -0
- package/lib/module/ui/context/utils/storageHelpers.js +111 -0
- package/lib/module/ui/context/utils/storageHelpers.js.map +1 -0
- package/lib/module/ui/hooks/index.js +2 -0
- package/lib/module/ui/hooks/index.js.map +1 -1
- package/lib/module/ui/hooks/use-color-scheme.js +26 -0
- package/lib/module/ui/hooks/use-color-scheme.js.map +1 -0
- package/lib/module/ui/hooks/use-haptic-press.js +17 -0
- package/lib/module/ui/hooks/use-haptic-press.js.map +1 -0
- package/lib/module/ui/hooks/useAssets.js.map +1 -1
- package/lib/module/ui/hooks/useDeviceManagement.js +68 -0
- package/lib/module/ui/hooks/useDeviceManagement.js.map +1 -0
- package/lib/module/ui/hooks/useLanguageManagement.js +107 -0
- package/lib/module/ui/hooks/useLanguageManagement.js.map +1 -0
- package/lib/module/ui/hooks/useProfileEditing.js +118 -0
- package/lib/module/ui/hooks/useProfileEditing.js.map +1 -0
- package/lib/module/ui/hooks/useSessionManagement.js +256 -0
- package/lib/module/ui/hooks/useSessionManagement.js.map +1 -0
- package/lib/module/ui/hooks/useStorage.js +74 -0
- package/lib/module/ui/hooks/useStorage.js.map +1 -0
- package/lib/module/ui/hooks/useThemeColors.js +27 -0
- package/lib/module/ui/hooks/useThemeColors.js.map +1 -0
- package/lib/module/ui/hooks/useThemeStyles.js +64 -0
- package/lib/module/ui/hooks/useThemeStyles.js.map +1 -0
- package/lib/module/ui/index.js +2 -4
- package/lib/module/ui/index.js.map +1 -1
- package/lib/module/ui/navigation/bottomSheetManager.js +168 -0
- package/lib/module/ui/navigation/bottomSheetManager.js.map +1 -0
- package/lib/module/ui/navigation/routes.js +77 -152
- package/lib/module/ui/navigation/routes.js.map +1 -1
- package/lib/module/ui/screens/AccountCenterScreen.js +67 -67
- package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountOverviewScreen.js +218 -100
- package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js +515 -430
- package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountSwitcherScreen.js +45 -60
- package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountVerificationScreen.js +12 -19
- package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
- package/lib/module/ui/screens/AppInfoScreen.js +36 -43
- package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
- package/lib/module/ui/screens/FeedbackScreen.js +14 -14
- package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
- package/lib/module/ui/screens/FileManagementScreen.js +670 -1965
- package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
- package/lib/module/ui/screens/HelpSupportScreen.js +26 -23
- package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
- package/lib/module/ui/screens/HistoryViewScreen.js +22 -62
- package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
- package/lib/module/ui/screens/LanguageSelectorScreen.js +80 -171
- package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
- package/lib/module/ui/screens/LegalDocumentsScreen.js +16 -43
- package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
- package/lib/module/ui/screens/OxyAuthScreen.js +432 -0
- package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -0
- package/lib/module/ui/screens/PaymentGatewayScreen.js +18 -24
- package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
- package/lib/module/ui/screens/PremiumSubscriptionScreen.js +21 -9
- package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
- package/lib/module/ui/screens/PrivacySettingsScreen.js +167 -239
- package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/ProfileScreen.js +7 -5
- package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/module/ui/screens/SavesCollectionsScreen.js +35 -73
- package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
- package/lib/module/ui/screens/SearchSettingsScreen.js +29 -102
- package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/SessionManagementScreen.js +24 -16
- package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
- package/lib/module/ui/screens/UserLinksScreen.js +8 -10
- package/lib/module/ui/screens/UserLinksScreen.js.map +1 -1
- package/lib/module/ui/screens/WelcomeNewUserScreen.js +65 -68
- package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaAboutScreen.js +11 -8
- package/lib/module/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaCenterScreen.js +124 -121
- package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaFAQScreen.js +101 -114
- package/lib/module/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js +12 -9
- package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaRewardsScreen.js +554 -81
- package/lib/module/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaRulesScreen.js +12 -8
- package/lib/module/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
- package/lib/module/ui/styles/authStyles.js +5 -11
- package/lib/module/ui/styles/authStyles.js.map +1 -1
- package/lib/module/ui/styles/spacing.js +12 -2
- package/lib/module/ui/styles/spacing.js.map +1 -1
- package/lib/module/ui/styles/theme.js +1 -1
- package/lib/module/ui/types/fileManagement.js +4 -0
- package/lib/module/ui/types/fileManagement.js.map +1 -0
- package/lib/module/ui/types/navigation.js +4 -0
- package/lib/module/ui/types/navigation.js.map +1 -0
- package/lib/module/ui/utils/colorUtils.js +46 -0
- package/lib/module/ui/utils/colorUtils.js.map +1 -0
- package/lib/module/ui/utils/errorHandlers.js +83 -0
- package/lib/module/ui/utils/errorHandlers.js.map +1 -0
- package/lib/module/ui/utils/fileManagement.js +172 -0
- package/lib/module/ui/utils/fileManagement.js.map +1 -0
- package/lib/module/ui/utils/sessionHelpers.js +96 -0
- package/lib/module/ui/utils/sessionHelpers.js.map +1 -0
- package/lib/module/ui/utils/storageHelpers.js +111 -0
- package/lib/module/ui/utils/storageHelpers.js.map +1 -0
- package/lib/module/ui/utils/themeUtils.js +41 -0
- package/lib/module/ui/utils/themeUtils.js.map +1 -0
- package/lib/module/ui/utils/user-utils.js +46 -0
- package/lib/module/ui/utils/user-utils.js.map +1 -0
- package/lib/module/utils/errorUtils.js +14 -4
- package/lib/module/utils/errorUtils.js.map +1 -1
- package/lib/typescript/core/HttpService.d.ts +48 -0
- package/lib/typescript/core/HttpService.d.ts.map +1 -1
- package/lib/typescript/core/OxyServices.base.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.analytics.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.assets.d.ts +23 -1
- package/lib/typescript/core/mixins/OxyServices.assets.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.auth.d.ts +70 -42
- package/lib/typescript/core/mixins/OxyServices.auth.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.developer.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.devices.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.karma.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.language.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.location.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.payment.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.privacy.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.totp.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.user.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.utility.d.ts.map +1 -1
- package/lib/typescript/core/mixins/index.d.ts +26 -34
- package/lib/typescript/core/mixins/index.d.ts.map +1 -1
- package/lib/typescript/crypto/index.d.ts +11 -0
- package/lib/typescript/crypto/index.d.ts.map +1 -0
- package/lib/typescript/crypto/keyManager.d.ts +73 -0
- package/lib/typescript/crypto/keyManager.d.ts.map +1 -0
- package/lib/typescript/crypto/recoveryPhrase.d.ts +57 -0
- package/lib/typescript/crypto/recoveryPhrase.d.ts.map +1 -0
- package/lib/typescript/crypto/signatureService.d.ts +80 -0
- package/lib/typescript/crypto/signatureService.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +2 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/models/interfaces.d.ts +1 -0
- package/lib/typescript/models/interfaces.d.ts.map +1 -1
- package/lib/typescript/types/bip39.d.ts +28 -0
- package/lib/typescript/types/color.d.ts +18 -0
- package/lib/typescript/types/elliptic.d.ts +60 -0
- package/lib/typescript/types/expo-crypto.d.ts +28 -0
- package/lib/typescript/types/expo-random.d.ts +8 -0
- package/lib/typescript/types/expo-secure-store.d.ts +20 -0
- package/lib/typescript/types/expo-vector-icons.d.ts +9 -0
- package/lib/typescript/ui/components/ActivityIndicator.d.ts +45 -0
- package/lib/typescript/ui/components/ActivityIndicator.d.ts.map +1 -0
- package/lib/typescript/ui/components/AutoHeightScrollView.d.ts +23 -0
- package/lib/typescript/ui/components/AutoHeightScrollView.d.ts.map +1 -0
- package/lib/typescript/ui/components/BottomSheet.d.ts +29 -0
- package/lib/typescript/ui/components/BottomSheet.d.ts.map +1 -0
- package/lib/typescript/ui/components/BottomSheetRouter.d.ts +14 -0
- package/lib/typescript/ui/components/BottomSheetRouter.d.ts.map +1 -0
- package/lib/typescript/ui/components/CrossFadeIcon.d.ts +27 -0
- package/lib/typescript/ui/components/CrossFadeIcon.d.ts.map +1 -0
- package/lib/typescript/ui/components/EmptyState.d.ts +8 -0
- package/lib/typescript/ui/components/EmptyState.d.ts.map +1 -0
- package/lib/typescript/ui/components/GroupedItem.d.ts +5 -9
- package/lib/typescript/ui/components/GroupedItem.d.ts.map +1 -1
- package/lib/typescript/ui/components/GroupedSection.d.ts +6 -7
- package/lib/typescript/ui/components/GroupedSection.d.ts.map +1 -1
- package/lib/typescript/ui/components/Header.d.ts +6 -1
- package/lib/typescript/ui/components/Header.d.ts.map +1 -1
- package/lib/typescript/ui/components/HelperText.d.ts +47 -0
- package/lib/typescript/ui/components/HelperText.d.ts.map +1 -0
- package/lib/typescript/ui/components/Icon.d.ts +60 -0
- package/lib/typescript/ui/components/Icon.d.ts.map +1 -0
- package/lib/typescript/ui/components/IconButton/IconButton.d.ts +99 -0
- package/lib/typescript/ui/components/IconButton/IconButton.d.ts.map +1 -0
- package/lib/typescript/ui/components/IconButton/utils.d.ts +19 -0
- package/lib/typescript/ui/components/IconButton/utils.d.ts.map +1 -0
- package/lib/typescript/ui/components/LoadingState.d.ts +9 -0
- package/lib/typescript/ui/components/LoadingState.d.ts.map +1 -0
- package/lib/typescript/ui/components/OxyPayButton.d.ts.map +1 -1
- package/lib/typescript/ui/components/OxyProvider.d.ts +4 -5
- package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/ui/components/OxySignInButton.d.ts +3 -8
- package/lib/typescript/ui/components/OxySignInButton.d.ts.map +1 -1
- package/lib/typescript/ui/components/ProfileCard.d.ts.map +1 -1
- package/lib/typescript/ui/components/QuickActions.d.ts.map +1 -1
- package/lib/typescript/ui/components/Section.d.ts +1 -1
- package/lib/typescript/ui/components/Section.d.ts.map +1 -1
- package/lib/typescript/ui/components/SectionTitle.d.ts +1 -1
- package/lib/typescript/ui/components/SectionTitle.d.ts.map +1 -1
- package/lib/typescript/ui/components/SettingRow.d.ts +14 -0
- package/lib/typescript/ui/components/SettingRow.d.ts.map +1 -0
- package/lib/typescript/ui/components/StepBasedScreen.d.ts +3 -2
- package/lib/typescript/ui/components/StepBasedScreen.d.ts.map +1 -1
- package/lib/typescript/ui/components/Surface.d.ts +76 -0
- package/lib/typescript/ui/components/Surface.d.ts.map +1 -0
- package/lib/typescript/ui/components/TextField/Addons/Outline.d.ts +16 -0
- package/lib/typescript/ui/components/TextField/Addons/Outline.d.ts.map +1 -0
- package/lib/typescript/ui/components/TextField/Addons/Underline.d.ts +19 -0
- package/lib/typescript/ui/components/TextField/Addons/Underline.d.ts.map +1 -0
- package/lib/typescript/ui/components/TextField/Adornment/TextFieldAdornment.d.ts +45 -0
- package/lib/typescript/ui/components/TextField/Adornment/TextFieldAdornment.d.ts.map +1 -0
- package/lib/typescript/ui/components/TextField/Adornment/TextFieldAffix.d.ts +73 -0
- package/lib/typescript/ui/components/TextField/Adornment/TextFieldAffix.d.ts.map +1 -0
- package/lib/typescript/ui/components/TextField/Adornment/TextFieldIcon.d.ts +78 -0
- package/lib/typescript/ui/components/TextField/Adornment/TextFieldIcon.d.ts.map +1 -0
- package/lib/typescript/ui/components/TextField/Adornment/enums.d.ts +13 -0
- package/lib/typescript/ui/components/TextField/Adornment/enums.d.ts.map +1 -0
- package/lib/typescript/ui/components/TextField/Adornment/types.d.ts +12 -0
- package/lib/typescript/ui/components/TextField/Adornment/types.d.ts.map +1 -0
- package/lib/typescript/ui/components/TextField/Adornment/utils.d.ts +12 -0
- package/lib/typescript/ui/components/TextField/Adornment/utils.d.ts.map +1 -0
- package/lib/typescript/ui/components/TextField/Label/InputLabel.d.ts +5 -0
- package/lib/typescript/ui/components/TextField/Label/InputLabel.d.ts.map +1 -0
- package/lib/typescript/ui/components/TextField/Label/LabelBackground.d.ts +4 -0
- package/lib/typescript/ui/components/TextField/Label/LabelBackground.d.ts.map +1 -0
- package/lib/typescript/ui/components/TextField/TextFieldFlat.d.ts +4 -0
- package/lib/typescript/ui/components/TextField/TextFieldFlat.d.ts.map +1 -0
- package/lib/typescript/ui/components/TextField/TextFieldOutlined.d.ts +4 -0
- package/lib/typescript/ui/components/TextField/TextFieldOutlined.d.ts.map +1 -0
- package/lib/typescript/ui/components/TextField/constants.d.ts +32 -0
- package/lib/typescript/ui/components/TextField/constants.d.ts.map +1 -0
- package/lib/typescript/ui/components/TextField/helpers.d.ts +97 -0
- package/lib/typescript/ui/components/TextField/helpers.d.ts.map +1 -0
- package/lib/typescript/ui/components/TextField/types.d.ts +156 -0
- package/lib/typescript/ui/components/TextField/types.d.ts.map +1 -0
- package/lib/typescript/ui/components/TextField.d.ts +192 -0
- package/lib/typescript/ui/components/TextField.d.ts.map +1 -0
- package/lib/typescript/ui/components/TouchableRipple/Pressable.d.ts +13 -0
- package/lib/typescript/ui/components/TouchableRipple/Pressable.d.ts.map +1 -0
- package/lib/typescript/ui/components/TouchableRipple/TouchableRipple.d.ts +62 -0
- package/lib/typescript/ui/components/TouchableRipple/TouchableRipple.d.ts.map +1 -0
- package/lib/typescript/ui/components/TouchableRipple/TouchableRipple.native.d.ts +25 -0
- package/lib/typescript/ui/components/TouchableRipple/TouchableRipple.native.d.ts.map +1 -0
- package/lib/typescript/ui/components/TouchableRipple/utils.d.ts +11 -0
- package/lib/typescript/ui/components/TouchableRipple/utils.d.ts.map +1 -0
- package/lib/typescript/ui/components/Typography/AnimatedText.d.ts +35 -0
- package/lib/typescript/ui/components/Typography/AnimatedText.d.ts.map +1 -0
- package/lib/typescript/ui/components/Typography/types.d.ts +19 -0
- package/lib/typescript/ui/components/Typography/types.d.ts.map +1 -0
- package/lib/typescript/ui/components/fileManagement/FileDetailsModal.d.ts +15 -0
- package/lib/typescript/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -0
- package/lib/typescript/ui/components/fileManagement/FileViewer.d.ts +18 -0
- package/lib/typescript/ui/components/fileManagement/FileViewer.d.ts.map +1 -0
- package/lib/typescript/ui/components/fileManagement/UploadPreview.d.ts +21 -0
- package/lib/typescript/ui/components/fileManagement/UploadPreview.d.ts.map +1 -0
- package/lib/typescript/ui/components/fileManagement/styles.d.ts +860 -0
- package/lib/typescript/ui/components/fileManagement/styles.d.ts.map +1 -0
- package/lib/typescript/ui/components/index.d.ts +4 -1
- package/lib/typescript/ui/components/index.d.ts.map +1 -1
- package/lib/typescript/ui/components/profile/EditBioModal.d.ts +11 -0
- package/lib/typescript/ui/components/profile/EditBioModal.d.ts.map +1 -0
- package/lib/typescript/ui/components/profile/EditDisplayNameModal.d.ts +12 -0
- package/lib/typescript/ui/components/profile/EditDisplayNameModal.d.ts.map +1 -0
- package/lib/typescript/ui/components/profile/EditEmailModal.d.ts +11 -0
- package/lib/typescript/ui/components/profile/EditEmailModal.d.ts.map +1 -0
- package/lib/typescript/ui/components/profile/EditLinksModal.d.ts +18 -0
- package/lib/typescript/ui/components/profile/EditLinksModal.d.ts.map +1 -0
- package/lib/typescript/ui/components/profile/EditLocationModal.d.ts +20 -0
- package/lib/typescript/ui/components/profile/EditLocationModal.d.ts.map +1 -0
- package/lib/typescript/ui/components/profile/EditUsernameModal.d.ts +11 -0
- package/lib/typescript/ui/components/profile/EditUsernameModal.d.ts.map +1 -0
- package/lib/typescript/ui/components/profile/TwoFactorSetupModal.d.ts +11 -0
- package/lib/typescript/ui/components/profile/TwoFactorSetupModal.d.ts.map +1 -0
- package/lib/typescript/ui/components/styles/overlay.d.ts +4 -0
- package/lib/typescript/ui/components/styles/overlay.d.ts.map +1 -0
- package/lib/typescript/ui/components/styles/shadow.d.ts +3 -0
- package/lib/typescript/ui/components/styles/shadow.d.ts.map +1 -0
- package/lib/typescript/ui/components/theming.d.ts +8 -0
- package/lib/typescript/ui/components/theming.d.ts.map +1 -0
- package/lib/typescript/ui/components/types.d.ts +80 -0
- package/lib/typescript/ui/components/types.d.ts.map +1 -0
- package/lib/typescript/ui/components/utils/forwardRef.d.ts +12 -0
- package/lib/typescript/ui/components/utils/forwardRef.d.ts.map +1 -0
- package/lib/typescript/ui/components/utils/hasTouchHandler.d.ts +6 -0
- package/lib/typescript/ui/components/utils/hasTouchHandler.d.ts.map +1 -0
- package/lib/typescript/ui/components/utils/roundLayoutSize.d.ts +2 -0
- package/lib/typescript/ui/components/utils/roundLayoutSize.d.ts.map +1 -0
- package/lib/typescript/ui/components/utils/splitStyles.d.ts +20 -0
- package/lib/typescript/ui/components/utils/splitStyles.d.ts.map +1 -0
- package/lib/typescript/ui/constants/iconColors.d.ts +130 -0
- package/lib/typescript/ui/constants/iconColors.d.ts.map +1 -0
- package/lib/typescript/ui/constants/spacing.d.ts +33 -0
- package/lib/typescript/ui/constants/spacing.d.ts.map +1 -0
- package/lib/typescript/ui/constants/theme.d.ts +97 -0
- package/lib/typescript/ui/constants/theme.d.ts.map +1 -0
- package/lib/typescript/ui/context/OxyContext.d.ts +23 -17
- package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/ui/context/ThemeContext.d.ts +19 -0
- package/lib/typescript/ui/context/ThemeContext.d.ts.map +1 -0
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +51 -0
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -0
- package/lib/typescript/ui/context/hooks/useDeviceManagement.d.ts +27 -0
- package/lib/typescript/ui/context/hooks/useDeviceManagement.d.ts.map +1 -0
- package/lib/typescript/ui/context/hooks/useLanguageManagement.d.ts +25 -0
- package/lib/typescript/ui/context/hooks/useLanguageManagement.d.ts.map +1 -0
- package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts +39 -0
- package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts.map +1 -0
- package/lib/typescript/ui/context/hooks/useStorage.d.ts +22 -0
- package/lib/typescript/ui/context/hooks/useStorage.d.ts.map +1 -0
- package/lib/typescript/ui/context/utils/errorHandlers.d.ts +30 -0
- package/lib/typescript/ui/context/utils/errorHandlers.d.ts.map +1 -0
- package/lib/typescript/ui/context/utils/sessionHelpers.d.ts +59 -0
- package/lib/typescript/ui/context/utils/sessionHelpers.d.ts.map +1 -0
- package/lib/typescript/ui/context/utils/storageHelpers.d.ts +31 -0
- package/lib/typescript/ui/context/utils/storageHelpers.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/index.d.ts +2 -0
- package/lib/typescript/ui/hooks/index.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/use-color-scheme.d.ts +8 -0
- package/lib/typescript/ui/hooks/use-color-scheme.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/use-haptic-press.d.ts +8 -0
- package/lib/typescript/ui/hooks/use-haptic-press.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/useDeviceManagement.d.ts +27 -0
- package/lib/typescript/ui/hooks/useDeviceManagement.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/useLanguageManagement.d.ts +25 -0
- package/lib/typescript/ui/hooks/useLanguageManagement.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/useProfileEditing.d.ts +36 -0
- package/lib/typescript/ui/hooks/useProfileEditing.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/useSessionManagement.d.ts +39 -0
- package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/useStorage.d.ts +22 -0
- package/lib/typescript/ui/hooks/useStorage.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/useThemeColors.d.ts +94 -0
- package/lib/typescript/ui/hooks/useThemeColors.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/useThemeStyles.d.ts +45 -0
- package/lib/typescript/ui/hooks/useThemeStyles.d.ts.map +1 -0
- package/lib/typescript/ui/index.d.ts +2 -2
- package/lib/typescript/ui/index.d.ts.map +1 -1
- package/lib/typescript/ui/navigation/bottomSheetManager.d.ts +74 -0
- package/lib/typescript/ui/navigation/bottomSheetManager.d.ts.map +1 -0
- package/lib/typescript/ui/navigation/routes.d.ts +4 -7
- package/lib/typescript/ui/navigation/routes.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountCenterScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/AccountCenterScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountSwitcherScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountVerificationScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AppInfoScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/AppInfoScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/FeedbackScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/FeedbackScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/FileManagementScreen.d.ts +1 -36
- package/lib/typescript/ui/screens/FileManagementScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/HelpSupportScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/HelpSupportScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/HistoryViewScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/HistoryViewScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/LanguageSelectorScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/LegalDocumentsScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/OxyAuthScreen.d.ts +16 -0
- package/lib/typescript/ui/screens/OxyAuthScreen.d.ts.map +1 -0
- package/lib/typescript/ui/screens/PaymentGatewayScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/PremiumSubscriptionScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/PrivacySettingsScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/ProfileScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/ProfileScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/SavesCollectionsScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/SearchSettingsScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/SessionManagementScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/SessionManagementScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/UserLinksScreen.d.ts +2 -2
- package/lib/typescript/ui/screens/UserLinksScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/WelcomeNewUserScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaAboutScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/karma/KarmaAboutScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaCenterScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/karma/KarmaCenterScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaFAQScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/karma/KarmaLeaderboardScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/karma/KarmaLeaderboardScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaRewardsScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/karma/KarmaRewardsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaRulesScreen.d.ts +1 -1
- package/lib/typescript/ui/screens/karma/KarmaRulesScreen.d.ts.map +1 -1
- package/lib/typescript/ui/stores/authStore.d.ts +1 -2
- package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
- package/lib/typescript/ui/styles/authStyles.d.ts +0 -10
- package/lib/typescript/ui/styles/authStyles.d.ts.map +1 -1
- package/lib/typescript/ui/styles/spacing.d.ts +7 -1
- package/lib/typescript/ui/styles/spacing.d.ts.map +1 -1
- package/lib/typescript/ui/types/fileManagement.d.ts +41 -0
- package/lib/typescript/ui/types/fileManagement.d.ts.map +1 -0
- package/lib/typescript/ui/types/navigation.d.ts +36 -0
- package/lib/typescript/ui/types/navigation.d.ts.map +1 -0
- package/lib/typescript/ui/utils/colorUtils.d.ts +14 -0
- package/lib/typescript/ui/utils/colorUtils.d.ts.map +1 -0
- package/lib/typescript/ui/utils/errorHandlers.d.ts +30 -0
- package/lib/typescript/ui/utils/errorHandlers.d.ts.map +1 -0
- package/lib/typescript/ui/utils/fileManagement.d.ts +39 -0
- package/lib/typescript/ui/utils/fileManagement.d.ts.map +1 -0
- package/lib/typescript/ui/utils/sessionHelpers.d.ts +59 -0
- package/lib/typescript/ui/utils/sessionHelpers.d.ts.map +1 -0
- package/lib/typescript/ui/utils/storageHelpers.d.ts +31 -0
- package/lib/typescript/ui/utils/storageHelpers.d.ts.map +1 -0
- package/lib/typescript/ui/utils/themeUtils.d.ts +24 -0
- package/lib/typescript/ui/utils/themeUtils.d.ts.map +1 -0
- package/lib/typescript/ui/utils/user-utils.d.ts +29 -0
- package/lib/typescript/ui/utils/user-utils.d.ts.map +1 -0
- package/lib/typescript/utils/errorUtils.d.ts.map +1 -1
- package/package.json +26 -15
- package/src/assets/lottie/welcomeheader_background_op1.json +1 -0
- package/src/core/HttpService.ts +97 -4
- package/src/core/OxyServices.base.ts +3 -1
- package/src/core/mixins/OxyServices.assets.ts +225 -27
- package/src/core/mixins/OxyServices.auth.ts +144 -80
- package/src/crypto/index.ts +20 -0
- package/src/crypto/keyManager.ts +213 -0
- package/src/crypto/recoveryPhrase.ts +146 -0
- package/src/crypto/signatureService.ts +258 -0
- package/src/i18n/locales/en-US.json +4 -0
- package/src/index.ts +13 -0
- package/src/models/interfaces.ts +1 -0
- package/src/types/bip39.d.ts +28 -0
- package/src/types/color.d.ts +18 -0
- package/src/types/elliptic.d.ts +60 -0
- package/src/types/expo-crypto.d.ts +28 -0
- package/src/types/expo-random.d.ts +8 -0
- package/src/types/expo-secure-store.d.ts +20 -0
- package/src/types/expo-vector-icons.d.ts +9 -0
- package/src/ui/components/ActivityIndicator.tsx +254 -0
- package/src/ui/components/AutoHeightScrollView.tsx +50 -0
- package/src/ui/components/BottomSheet.tsx +443 -0
- package/src/ui/components/BottomSheetRouter.tsx +407 -0
- package/src/ui/components/CrossFadeIcon.tsx +140 -0
- package/src/ui/components/EmptyState.tsx +39 -0
- package/src/ui/components/GroupedItem.tsx +98 -96
- package/src/ui/components/GroupedSection.tsx +24 -29
- package/src/ui/components/Header.tsx +129 -49
- package/src/ui/components/HelperText.tsx +160 -0
- package/src/ui/components/Icon.tsx +181 -0
- package/src/ui/components/IconButton/IconButton.tsx +235 -0
- package/src/ui/components/IconButton/utils.ts +190 -0
- package/src/ui/components/LoadingState.tsx +46 -0
- package/src/ui/components/OxyPayButton.tsx +1 -12
- package/src/ui/components/OxyProvider.tsx +49 -381
- package/src/ui/components/OxySignInButton.tsx +11 -18
- package/src/ui/components/ProfileCard.tsx +7 -4
- package/src/ui/components/QuickActions.tsx +7 -4
- package/src/ui/components/Section.tsx +6 -2
- package/src/ui/components/SectionTitle.tsx +7 -4
- package/src/ui/components/SettingRow.tsx +76 -0
- package/src/ui/components/StepBasedScreen.tsx +205 -187
- package/src/ui/components/Surface.tsx +384 -0
- package/src/ui/components/TextField/Addons/Outline.tsx +64 -0
- package/src/ui/components/TextField/Addons/Underline.tsx +78 -0
- package/src/ui/components/TextField/Adornment/TextFieldAdornment.tsx +208 -0
- package/src/ui/components/TextField/Adornment/TextFieldAffix.tsx +212 -0
- package/src/ui/components/TextField/Adornment/TextFieldIcon.tsx +195 -0
- package/src/ui/components/TextField/Adornment/enums.tsx +12 -0
- package/src/ui/components/TextField/Adornment/types.tsx +11 -0
- package/src/ui/components/TextField/Adornment/utils.ts +66 -0
- package/src/ui/components/TextField/Label/InputLabel.tsx +219 -0
- package/src/ui/components/TextField/Label/LabelBackground.tsx +100 -0
- package/src/ui/components/TextField/TextFieldFlat.tsx +488 -0
- package/src/ui/components/TextField/TextFieldOutlined.tsx +464 -0
- package/src/ui/components/TextField/constants.tsx +48 -0
- package/src/ui/components/TextField/helpers.tsx +612 -0
- package/src/ui/components/TextField/types.tsx +156 -0
- package/src/ui/components/TextField.tsx +578 -0
- package/src/ui/components/TouchableRipple/Pressable.tsx +41 -0
- package/src/ui/components/TouchableRipple/TouchableRipple.native.tsx +146 -0
- package/src/ui/components/TouchableRipple/TouchableRipple.tsx +347 -0
- package/src/ui/components/TouchableRipple/utils.ts +66 -0
- package/src/ui/components/Typography/AnimatedText.tsx +107 -0
- package/src/ui/components/Typography/types.tsx +22 -0
- package/src/ui/components/fileManagement/FileDetailsModal.tsx +137 -0
- package/src/ui/components/fileManagement/FileViewer.tsx +380 -0
- package/src/ui/components/fileManagement/UploadPreview.tsx +175 -0
- package/src/ui/components/fileManagement/styles.ts +860 -0
- package/src/ui/components/index.ts +4 -1
- package/src/ui/components/profile/EditBioModal.tsx +184 -0
- package/src/ui/components/profile/EditDisplayNameModal.tsx +205 -0
- package/src/ui/components/profile/EditEmailModal.tsx +188 -0
- package/src/ui/components/profile/EditLinksModal.tsx +316 -0
- package/src/ui/components/profile/EditLocationModal.tsx +278 -0
- package/src/ui/components/profile/EditUsernameModal.tsx +183 -0
- package/src/ui/components/profile/TwoFactorSetupModal.tsx +442 -0
- package/src/ui/components/styles/overlay.tsx +88 -0
- package/src/ui/components/styles/shadow.tsx +136 -0
- package/src/ui/components/theming.tsx +114 -0
- package/src/ui/components/types.tsx +90 -0
- package/src/ui/components/utils/forwardRef.tsx +23 -0
- package/src/ui/components/utils/hasTouchHandler.tsx +23 -0
- package/src/ui/components/utils/roundLayoutSize.ts +2 -0
- package/src/ui/components/utils/splitStyles.ts +60 -0
- package/src/ui/constants/iconColors.ts +88 -0
- package/src/ui/constants/spacing.ts +45 -0
- package/src/ui/constants/theme.ts +120 -0
- package/src/ui/context/OxyContext.tsx +276 -894
- package/src/ui/context/ThemeContext.tsx +41 -0
- package/src/ui/context/hooks/useAuthOperations.ts +400 -0
- package/src/ui/context/hooks/useDeviceManagement.ts +108 -0
- package/src/ui/context/hooks/useLanguageManagement.ts +152 -0
- package/src/ui/context/hooks/useSessionManagement.ts +378 -0
- package/src/ui/context/hooks/useStorage.ts +104 -0
- package/src/ui/context/utils/errorHandlers.ts +136 -0
- package/src/ui/context/utils/sessionHelpers.ts +146 -0
- package/src/ui/context/utils/storageHelpers.ts +134 -0
- package/src/ui/hooks/index.ts +3 -1
- package/src/ui/hooks/use-color-scheme.ts +24 -0
- package/src/ui/hooks/use-haptic-press.ts +15 -0
- package/src/ui/hooks/useAssets.ts +1 -1
- package/src/ui/hooks/useDeviceManagement.ts +108 -0
- package/src/ui/hooks/useLanguageManagement.ts +152 -0
- package/src/ui/hooks/useProfileEditing.ts +151 -0
- package/src/ui/hooks/useSessionManagement.ts +378 -0
- package/src/ui/hooks/useStorage.ts +104 -0
- package/src/ui/hooks/useThemeColors.ts +26 -0
- package/src/ui/hooks/useThemeStyles.ts +85 -0
- package/src/ui/index.ts +1 -4
- package/src/ui/navigation/bottomSheetManager.ts +191 -0
- package/src/ui/navigation/routes.ts +107 -189
- package/src/ui/screens/AccountCenterScreen.tsx +67 -63
- package/src/ui/screens/AccountOverviewScreen.tsx +237 -95
- package/src/ui/screens/AccountSettingsScreen.tsx +546 -474
- package/src/ui/screens/AccountSwitcherScreen.tsx +113 -116
- package/src/ui/screens/AccountVerificationScreen.tsx +18 -20
- package/src/ui/screens/AppInfoScreen.tsx +37 -38
- package/src/ui/screens/FeedbackScreen.tsx +15 -12
- package/src/ui/screens/FileManagementScreen.tsx +764 -2026
- package/src/ui/screens/HelpSupportScreen.tsx +30 -23
- package/src/ui/screens/HistoryViewScreen.tsx +25 -56
- package/src/ui/screens/LanguageSelectorScreen.tsx +84 -170
- package/src/ui/screens/LegalDocumentsScreen.tsx +18 -41
- package/src/ui/screens/OxyAuthScreen.tsx +402 -0
- package/src/ui/screens/PaymentGatewayScreen.tsx +20 -22
- package/src/ui/screens/PremiumSubscriptionScreen.tsx +13 -10
- package/src/ui/screens/PrivacySettingsScreen.tsx +150 -198
- package/src/ui/screens/ProfileScreen.tsx +7 -6
- package/src/ui/screens/SavesCollectionsScreen.tsx +39 -62
- package/src/ui/screens/SearchSettingsScreen.tsx +36 -86
- package/src/ui/screens/SessionManagementScreen.tsx +25 -17
- package/src/ui/screens/UserLinksScreen.tsx +10 -11
- package/src/ui/screens/WelcomeNewUserScreen.tsx +41 -41
- package/src/ui/screens/karma/KarmaAboutScreen.tsx +13 -9
- package/src/ui/screens/karma/KarmaCenterScreen.tsx +70 -70
- package/src/ui/screens/karma/KarmaFAQScreen.tsx +96 -96
- package/src/ui/screens/karma/KarmaLeaderboardScreen.tsx +15 -10
- package/src/ui/screens/karma/KarmaRewardsScreen.tsx +605 -60
- package/src/ui/screens/karma/KarmaRulesScreen.tsx +14 -9
- package/src/ui/stores/authStore.ts +1 -1
- package/src/ui/styles/authStyles.ts +5 -11
- package/src/ui/styles/spacing.ts +21 -2
- package/src/ui/styles/theme.ts +1 -1
- package/src/ui/types/fileManagement.ts +51 -0
- package/src/ui/types/navigation.ts +61 -0
- package/src/ui/utils/colorUtils.ts +46 -0
- package/src/ui/utils/errorHandlers.ts +136 -0
- package/src/ui/utils/fileManagement.ts +190 -0
- package/src/ui/utils/sessionHelpers.ts +146 -0
- package/src/ui/utils/storageHelpers.ts +134 -0
- package/src/ui/utils/themeUtils.ts +43 -0
- package/src/ui/utils/user-utils.ts +58 -0
- package/src/utils/errorUtils.ts +14 -4
- package/lib/commonjs/ui/components/internal/TextField.js +0 -733
- package/lib/commonjs/ui/components/internal/TextField.js.map +0 -1
- package/lib/commonjs/ui/navigation/OxyRouter.js +0 -213
- package/lib/commonjs/ui/navigation/OxyRouter.js.map +0 -1
- package/lib/commonjs/ui/navigation/types.js +0 -13
- package/lib/commonjs/ui/navigation/types.js.map +0 -1
- package/lib/commonjs/ui/screens/AccountManagementDemo.js +0 -298
- package/lib/commonjs/ui/screens/AccountManagementDemo.js.map +0 -1
- package/lib/commonjs/ui/screens/RecoverAccountScreen.js +0 -137
- package/lib/commonjs/ui/screens/RecoverAccountScreen.js.map +0 -1
- package/lib/commonjs/ui/screens/SignInScreen.js +0 -270
- package/lib/commonjs/ui/screens/SignInScreen.js.map +0 -1
- package/lib/commonjs/ui/screens/SignUpScreen.js +0 -229
- package/lib/commonjs/ui/screens/SignUpScreen.js.map +0 -1
- package/lib/commonjs/ui/screens/steps/RecoverRequestStep.js +0 -135
- package/lib/commonjs/ui/screens/steps/RecoverRequestStep.js.map +0 -1
- package/lib/commonjs/ui/screens/steps/RecoverResetPasswordStep.js +0 -165
- package/lib/commonjs/ui/screens/steps/RecoverResetPasswordStep.js.map +0 -1
- package/lib/commonjs/ui/screens/steps/RecoverSuccessStep.js +0 -159
- package/lib/commonjs/ui/screens/steps/RecoverSuccessStep.js.map +0 -1
- package/lib/commonjs/ui/screens/steps/RecoverVerifyStep.js +0 -144
- package/lib/commonjs/ui/screens/steps/RecoverVerifyStep.js.map +0 -1
- package/lib/commonjs/ui/screens/steps/SignInPasswordStep.js +0 -358
- package/lib/commonjs/ui/screens/steps/SignInPasswordStep.js.map +0 -1
- package/lib/commonjs/ui/screens/steps/SignInTotpStep.js +0 -188
- package/lib/commonjs/ui/screens/steps/SignInTotpStep.js.map +0 -1
- package/lib/commonjs/ui/screens/steps/SignInUsernameStep.js +0 -509
- package/lib/commonjs/ui/screens/steps/SignInUsernameStep.js.map +0 -1
- package/lib/commonjs/ui/screens/steps/SignUpIdentityStep.js +0 -200
- package/lib/commonjs/ui/screens/steps/SignUpIdentityStep.js.map +0 -1
- package/lib/commonjs/ui/screens/steps/SignUpSecurityStep.js +0 -185
- package/lib/commonjs/ui/screens/steps/SignUpSecurityStep.js.map +0 -1
- package/lib/commonjs/ui/screens/steps/SignUpSummaryStep.js +0 -138
- package/lib/commonjs/ui/screens/steps/SignUpSummaryStep.js.map +0 -1
- package/lib/commonjs/ui/screens/steps/SignUpWelcomeStep.js +0 -150
- package/lib/commonjs/ui/screens/steps/SignUpWelcomeStep.js.map +0 -1
- package/lib/module/package.json +0 -1
- package/lib/module/ui/components/internal/TextField.js +0 -729
- package/lib/module/ui/components/internal/TextField.js.map +0 -1
- package/lib/module/ui/navigation/OxyRouter.js +0 -209
- package/lib/module/ui/navigation/OxyRouter.js.map +0 -1
- package/lib/module/ui/navigation/types.js +0 -22
- package/lib/module/ui/navigation/types.js.map +0 -1
- package/lib/module/ui/screens/AccountManagementDemo.js +0 -295
- package/lib/module/ui/screens/AccountManagementDemo.js.map +0 -1
- package/lib/module/ui/screens/RecoverAccountScreen.js +0 -133
- package/lib/module/ui/screens/RecoverAccountScreen.js.map +0 -1
- package/lib/module/ui/screens/SignInScreen.js +0 -265
- package/lib/module/ui/screens/SignInScreen.js.map +0 -1
- package/lib/module/ui/screens/SignUpScreen.js +0 -224
- package/lib/module/ui/screens/SignUpScreen.js.map +0 -1
- package/lib/module/ui/screens/steps/RecoverRequestStep.js +0 -130
- package/lib/module/ui/screens/steps/RecoverRequestStep.js.map +0 -1
- package/lib/module/ui/screens/steps/RecoverResetPasswordStep.js +0 -160
- package/lib/module/ui/screens/steps/RecoverResetPasswordStep.js.map +0 -1
- package/lib/module/ui/screens/steps/RecoverSuccessStep.js +0 -154
- package/lib/module/ui/screens/steps/RecoverSuccessStep.js.map +0 -1
- package/lib/module/ui/screens/steps/RecoverVerifyStep.js +0 -139
- package/lib/module/ui/screens/steps/RecoverVerifyStep.js.map +0 -1
- package/lib/module/ui/screens/steps/SignInPasswordStep.js +0 -353
- package/lib/module/ui/screens/steps/SignInPasswordStep.js.map +0 -1
- package/lib/module/ui/screens/steps/SignInTotpStep.js +0 -183
- package/lib/module/ui/screens/steps/SignInTotpStep.js.map +0 -1
- package/lib/module/ui/screens/steps/SignInUsernameStep.js +0 -504
- package/lib/module/ui/screens/steps/SignInUsernameStep.js.map +0 -1
- package/lib/module/ui/screens/steps/SignUpIdentityStep.js +0 -195
- package/lib/module/ui/screens/steps/SignUpIdentityStep.js.map +0 -1
- package/lib/module/ui/screens/steps/SignUpSecurityStep.js +0 -180
- package/lib/module/ui/screens/steps/SignUpSecurityStep.js.map +0 -1
- package/lib/module/ui/screens/steps/SignUpSummaryStep.js +0 -133
- package/lib/module/ui/screens/steps/SignUpSummaryStep.js.map +0 -1
- package/lib/module/ui/screens/steps/SignUpWelcomeStep.js +0 -145
- package/lib/module/ui/screens/steps/SignUpWelcomeStep.js.map +0 -1
- package/lib/typescript/ui/components/internal/TextField.d.ts +0 -41
- package/lib/typescript/ui/components/internal/TextField.d.ts.map +0 -1
- package/lib/typescript/ui/navigation/OxyRouter.d.ts +0 -7
- package/lib/typescript/ui/navigation/OxyRouter.d.ts.map +0 -1
- package/lib/typescript/ui/navigation/types.d.ts +0 -141
- package/lib/typescript/ui/navigation/types.d.ts.map +0 -1
- package/lib/typescript/ui/screens/AccountManagementDemo.d.ts +0 -8
- package/lib/typescript/ui/screens/AccountManagementDemo.d.ts.map +0 -1
- package/lib/typescript/ui/screens/RecoverAccountScreen.d.ts +0 -5
- package/lib/typescript/ui/screens/RecoverAccountScreen.d.ts.map +0 -1
- package/lib/typescript/ui/screens/SignInScreen.d.ts +0 -5
- package/lib/typescript/ui/screens/SignInScreen.d.ts.map +0 -1
- package/lib/typescript/ui/screens/SignUpScreen.d.ts +0 -5
- package/lib/typescript/ui/screens/SignUpScreen.d.ts.map +0 -1
- package/lib/typescript/ui/screens/steps/RecoverRequestStep.d.ts +0 -24
- package/lib/typescript/ui/screens/steps/RecoverRequestStep.d.ts.map +0 -1
- package/lib/typescript/ui/screens/steps/RecoverResetPasswordStep.d.ts +0 -24
- package/lib/typescript/ui/screens/steps/RecoverResetPasswordStep.d.ts.map +0 -1
- package/lib/typescript/ui/screens/steps/RecoverSuccessStep.d.ts +0 -19
- package/lib/typescript/ui/screens/steps/RecoverSuccessStep.d.ts.map +0 -1
- package/lib/typescript/ui/screens/steps/RecoverVerifyStep.d.ts +0 -26
- package/lib/typescript/ui/screens/steps/RecoverVerifyStep.d.ts.map +0 -1
- package/lib/typescript/ui/screens/steps/SignInPasswordStep.d.ts +0 -30
- package/lib/typescript/ui/screens/steps/SignInPasswordStep.d.ts.map +0 -1
- package/lib/typescript/ui/screens/steps/SignInTotpStep.d.ts +0 -19
- package/lib/typescript/ui/screens/steps/SignInTotpStep.d.ts.map +0 -1
- package/lib/typescript/ui/screens/steps/SignInUsernameStep.d.ts +0 -28
- package/lib/typescript/ui/screens/steps/SignInUsernameStep.d.ts.map +0 -1
- package/lib/typescript/ui/screens/steps/SignUpIdentityStep.d.ts +0 -26
- package/lib/typescript/ui/screens/steps/SignUpIdentityStep.d.ts.map +0 -1
- package/lib/typescript/ui/screens/steps/SignUpSecurityStep.d.ts +0 -27
- package/lib/typescript/ui/screens/steps/SignUpSecurityStep.d.ts.map +0 -1
- package/lib/typescript/ui/screens/steps/SignUpSummaryStep.d.ts +0 -17
- package/lib/typescript/ui/screens/steps/SignUpSummaryStep.d.ts.map +0 -1
- package/lib/typescript/ui/screens/steps/SignUpWelcomeStep.d.ts +0 -14
- package/lib/typescript/ui/screens/steps/SignUpWelcomeStep.d.ts.map +0 -1
- package/src/ui/components/internal/TextField.tsx +0 -876
- package/src/ui/navigation/OxyRouter.tsx +0 -216
- package/src/ui/navigation/types.ts +0 -164
- package/src/ui/screens/AccountManagementDemo.tsx +0 -297
- package/src/ui/screens/RecoverAccountScreen.tsx +0 -141
- package/src/ui/screens/SignInScreen.tsx +0 -297
- package/src/ui/screens/SignUpScreen.tsx +0 -239
- package/src/ui/screens/steps/RecoverRequestStep.tsx +0 -143
- package/src/ui/screens/steps/RecoverResetPasswordStep.tsx +0 -162
- package/src/ui/screens/steps/RecoverSuccessStep.tsx +0 -148
- package/src/ui/screens/steps/RecoverVerifyStep.tsx +0 -154
- package/src/ui/screens/steps/SignInPasswordStep.tsx +0 -343
- package/src/ui/screens/steps/SignInTotpStep.tsx +0 -163
- package/src/ui/screens/steps/SignInUsernameStep.tsx +0 -560
- package/src/ui/screens/steps/SignUpIdentityStep.tsx +0 -217
- package/src/ui/screens/steps/SignUpSecurityStep.tsx +0 -207
- package/src/ui/screens/steps/SignUpSummaryStep.tsx +0 -155
- package/src/ui/screens/steps/SignUpWelcomeStep.tsx +0 -127
package/README.md
CHANGED
|
@@ -23,7 +23,7 @@ A comprehensive TypeScript client library for the Oxy API providing authenticati
|
|
|
23
23
|
|
|
24
24
|
- 🔐 **Zero-Config Authentication**: Automatic token management and refresh
|
|
25
25
|
- 📱 **React Native First**: Optimized for React Native and Expo applications
|
|
26
|
-
- 🎨 **UI Components**: Pre-built React Native components
|
|
26
|
+
- 🎨 **UI Components**: Pre-built React Native components and router ready for custom presentation layers
|
|
27
27
|
- 🔄 **Cross-Platform**: Works seamlessly in React Native, Expo, and Node.js
|
|
28
28
|
- 📱 **Multi-Session Support**: Manage multiple user sessions simultaneously
|
|
29
29
|
- 🔧 **TypeScript First**: Full type safety and IntelliSense support
|
|
@@ -158,8 +158,7 @@ function UserProfile() {
|
|
|
158
158
|
user, // Current user data
|
|
159
159
|
isAuthenticated, // Authentication state
|
|
160
160
|
login, // Login method
|
|
161
|
-
logout
|
|
162
|
-
showBottomSheet // UI methods
|
|
161
|
+
logout // Logout method
|
|
163
162
|
} = useOxy();
|
|
164
163
|
|
|
165
164
|
const handleLogin = async () => {
|
|
@@ -170,10 +169,6 @@ function UserProfile() {
|
|
|
170
169
|
}
|
|
171
170
|
};
|
|
172
171
|
|
|
173
|
-
const openSignIn = () => {
|
|
174
|
-
showBottomSheet('SignIn');
|
|
175
|
-
};
|
|
176
|
-
|
|
177
172
|
return (
|
|
178
173
|
<View>
|
|
179
174
|
{isAuthenticated ? (
|
|
@@ -184,7 +179,7 @@ function UserProfile() {
|
|
|
184
179
|
</TouchableOpacity>
|
|
185
180
|
</View>
|
|
186
181
|
) : (
|
|
187
|
-
<TouchableOpacity onPress={
|
|
182
|
+
<TouchableOpacity onPress={handleLogin} style={styles.button}>
|
|
188
183
|
<Text>Sign In</Text>
|
|
189
184
|
</TouchableOpacity>
|
|
190
185
|
)}
|
|
@@ -330,6 +325,13 @@ import {
|
|
|
330
325
|
OxyAuthenticationError,
|
|
331
326
|
OxyAuthenticationTimeoutError
|
|
332
327
|
} from '@oxyhq/services';
|
|
328
|
+
|
|
329
|
+
// Crypto module (for identity management)
|
|
330
|
+
import {
|
|
331
|
+
KeyManager,
|
|
332
|
+
SignatureService,
|
|
333
|
+
RecoveryPhraseService
|
|
334
|
+
} from '@oxyhq/services/crypto';
|
|
333
335
|
```
|
|
334
336
|
|
|
335
337
|
### React Native Exports
|
|
@@ -347,10 +349,12 @@ import {
|
|
|
347
349
|
### OxyServices Methods
|
|
348
350
|
|
|
349
351
|
```typescript
|
|
350
|
-
// Authentication
|
|
351
|
-
await oxyClient.
|
|
352
|
-
await oxyClient.
|
|
353
|
-
await oxyClient.
|
|
352
|
+
// Authentication (Public Key Based)
|
|
353
|
+
await oxyClient.register(publicKey, username, signature, timestamp, email?);
|
|
354
|
+
await oxyClient.requestChallenge(publicKey);
|
|
355
|
+
await oxyClient.verifyChallenge(publicKey, challenge, signature, timestamp, deviceName?, deviceFingerprint?);
|
|
356
|
+
await oxyClient.checkPublicKeyRegistered(publicKey);
|
|
357
|
+
await oxyClient.getUserByPublicKey(publicKey);
|
|
354
358
|
|
|
355
359
|
// User Management
|
|
356
360
|
const user = await oxyClient.getCurrentUser(); // Get current user
|
|
@@ -432,20 +436,21 @@ const {
|
|
|
432
436
|
isLoading,
|
|
433
437
|
error,
|
|
434
438
|
|
|
435
|
-
// Authentication
|
|
436
|
-
|
|
439
|
+
// Identity management (Public Key Authentication)
|
|
440
|
+
createIdentity, // Create new identity with recovery phrase
|
|
441
|
+
importIdentity, // Import identity from recovery phrase
|
|
442
|
+
signIn, // Sign in with stored identity
|
|
443
|
+
hasIdentity, // Check if identity exists on device
|
|
444
|
+
getPublicKey, // Get stored public key
|
|
445
|
+
|
|
446
|
+
// Session management
|
|
437
447
|
logout,
|
|
438
|
-
signUp,
|
|
439
448
|
|
|
440
449
|
// Session management
|
|
441
450
|
sessions,
|
|
442
451
|
activeSessionId,
|
|
443
452
|
switchSession,
|
|
444
|
-
removeSession
|
|
445
|
-
|
|
446
|
-
// UI methods
|
|
447
|
-
showBottomSheet,
|
|
448
|
-
hideBottomSheet
|
|
453
|
+
removeSession
|
|
449
454
|
} = useOxy();
|
|
450
455
|
```
|
|
451
456
|
|
|
@@ -459,7 +464,6 @@ const {
|
|
|
459
464
|
storageKeyPrefix="oxy_session" // Storage key prefix
|
|
460
465
|
onAuthStateChange={(user) => {}} // Auth state callback
|
|
461
466
|
onError={(error) => {}} // Error callback
|
|
462
|
-
bottomSheetRef={bottomSheetRef} // Bottom sheet ref
|
|
463
467
|
>
|
|
464
468
|
{children}
|
|
465
469
|
</OxyProvider>
|
|
@@ -485,30 +489,65 @@ const oxy = new OxyServices({
|
|
|
485
489
|
|
|
486
490
|
## 🔐 Authentication
|
|
487
491
|
|
|
488
|
-
|
|
492
|
+
Oxy uses **public/private key cryptography** (ECDSA secp256k1) instead of passwords. Users manage their cryptographic identity in the **Oxy Accounts** app, and other apps can integrate "Sign in with Oxy" for seamless authentication.
|
|
489
493
|
|
|
490
|
-
|
|
494
|
+
### Public Key Authentication
|
|
491
495
|
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
- **Session Management**: Multi-session support
|
|
495
|
-
- **Error Handling**: Graceful handling of auth errors
|
|
496
|
+
```typescript
|
|
497
|
+
import { useOxy } from '@oxyhq/services';
|
|
496
498
|
|
|
497
|
-
|
|
499
|
+
function AuthScreen() {
|
|
500
|
+
const { createIdentity, importIdentity, signIn, hasIdentity } = useOxy();
|
|
501
|
+
|
|
502
|
+
// Create new identity (in Oxy Accounts app)
|
|
503
|
+
const handleCreate = async () => {
|
|
504
|
+
const { user, recoveryPhrase } = await createIdentity('username', 'email');
|
|
505
|
+
// Show recoveryPhrase to user - they must save it!
|
|
506
|
+
};
|
|
507
|
+
|
|
508
|
+
// Import existing identity
|
|
509
|
+
const handleImport = async (phrase: string) => {
|
|
510
|
+
const user = await importIdentity(phrase, 'username', 'email');
|
|
511
|
+
};
|
|
512
|
+
|
|
513
|
+
// Sign in with stored identity
|
|
514
|
+
const handleSignIn = async () => {
|
|
515
|
+
const user = await signIn();
|
|
516
|
+
};
|
|
517
|
+
|
|
518
|
+
// Check if identity exists
|
|
519
|
+
const hasStoredIdentity = await hasIdentity();
|
|
520
|
+
}
|
|
521
|
+
```
|
|
498
522
|
|
|
499
|
-
|
|
500
|
-
import { oxyClient } from '@oxyhq/services';
|
|
523
|
+
### Cross-App Authentication (Sign in with Oxy)
|
|
501
524
|
|
|
502
|
-
|
|
503
|
-
oxyClient.setTokens(accessToken, refreshToken);
|
|
525
|
+
For third-party apps that want to allow users to sign in with their Oxy identity:
|
|
504
526
|
|
|
505
|
-
|
|
506
|
-
|
|
527
|
+
```typescript
|
|
528
|
+
import { OxySignInButton } from '@oxyhq/services';
|
|
507
529
|
|
|
508
|
-
|
|
509
|
-
|
|
530
|
+
function LoginScreen() {
|
|
531
|
+
return <OxySignInButton variant="contained" />;
|
|
532
|
+
}
|
|
510
533
|
```
|
|
511
534
|
|
|
535
|
+
This displays:
|
|
536
|
+
- A QR code that users can scan with Oxy Accounts
|
|
537
|
+
- A button to open Oxy Accounts directly via deep link
|
|
538
|
+
|
|
539
|
+
### Documentation
|
|
540
|
+
|
|
541
|
+
📖 **[Complete Public Key Authentication Guide](./docs/PUBLIC_KEY_AUTHENTICATION.md)**
|
|
542
|
+
|
|
543
|
+
This guide covers:
|
|
544
|
+
- Architecture and concepts
|
|
545
|
+
- User flows (creating/importing identities)
|
|
546
|
+
- Developer integration (cross-app auth)
|
|
547
|
+
- Crypto module API reference
|
|
548
|
+
- Security best practices
|
|
549
|
+
- Migration from password auth
|
|
550
|
+
|
|
512
551
|
## 🎨 UI Components
|
|
513
552
|
|
|
514
553
|
### Built-in Components
|
|
@@ -540,31 +579,68 @@ const styles = StyleSheet.create({
|
|
|
540
579
|
});
|
|
541
580
|
```
|
|
542
581
|
|
|
543
|
-
### Bottom Sheet
|
|
582
|
+
### Bottom Sheet Routing System
|
|
583
|
+
|
|
584
|
+
The bottom sheet routing system provides a clean, professional way to display authentication screens, account management, and other UI flows within a modal bottom sheet.
|
|
585
|
+
|
|
586
|
+
**Quick Example:**
|
|
544
587
|
|
|
545
588
|
```typescript
|
|
546
589
|
import { useOxy } from '@oxyhq/services';
|
|
547
590
|
|
|
548
591
|
function MyComponent() {
|
|
549
592
|
const { showBottomSheet } = useOxy();
|
|
550
|
-
|
|
551
|
-
const openSignIn = () => {
|
|
552
|
-
showBottomSheet('SignIn');
|
|
553
|
-
};
|
|
554
|
-
|
|
555
|
-
const openProfile = () => {
|
|
556
|
-
showBottomSheet('Profile');
|
|
557
|
-
};
|
|
558
|
-
|
|
593
|
+
|
|
559
594
|
return (
|
|
560
|
-
<
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
595
|
+
<Button
|
|
596
|
+
onPress={() => showBottomSheet('OxyAuth')}
|
|
597
|
+
title="Sign in with Oxy"
|
|
598
|
+
/>
|
|
599
|
+
);
|
|
600
|
+
}
|
|
601
|
+
```
|
|
602
|
+
|
|
603
|
+
**Features:**
|
|
604
|
+
- ✅ Full navigation history with back button support
|
|
605
|
+
- ✅ Step-based screen navigation (multi-step flows)
|
|
606
|
+
- ✅ Keyboard-aware (automatically adjusts for keyboard)
|
|
607
|
+
- ✅ Dynamic sizing (fits content automatically)
|
|
608
|
+
- ✅ Type-safe route names
|
|
609
|
+
- ✅ 25+ pre-built screens available
|
|
610
|
+
|
|
611
|
+
**Available Screens:**
|
|
612
|
+
- `OxyAuth` (Sign in with Oxy - for third-party apps)
|
|
613
|
+
- `AccountOverview`, `AccountSettings`, `AccountCenter`
|
|
614
|
+
- `Profile`, `SessionManagement`, `PaymentGateway`
|
|
615
|
+
- And many more...
|
|
616
|
+
|
|
617
|
+
**Documentation:**
|
|
618
|
+
For complete documentation, see [Bottom Sheet Routing Guide](./docs/BOTTOM_SHEET_ROUTING.md).
|
|
619
|
+
|
|
620
|
+
### Using OxyRouter in Your Own UI (Legacy)
|
|
621
|
+
|
|
622
|
+
> The legacy bottom sheet component has been removed. Use the new `showBottomSheet()` API instead (see above).
|
|
623
|
+
|
|
624
|
+
```typescript
|
|
625
|
+
import { Modal } from 'react-native';
|
|
626
|
+
import { useOxy, OxyRouter } from '@oxyhq/services';
|
|
627
|
+
|
|
628
|
+
function AuthModal({ visible, onRequestClose }: { visible: boolean; onRequestClose: () => void }) {
|
|
629
|
+
const { oxyServices } = useOxy();
|
|
630
|
+
|
|
631
|
+
if (!visible || !oxyServices) return null;
|
|
632
|
+
|
|
633
|
+
return (
|
|
634
|
+
<Modal visible onRequestClose={onRequestClose} animationType="slide">
|
|
635
|
+
<OxyRouter
|
|
636
|
+
oxyServices={oxyServices}
|
|
637
|
+
initialScreen="SignIn"
|
|
638
|
+
onClose={onRequestClose}
|
|
639
|
+
onAuthenticated={onRequestClose}
|
|
640
|
+
theme="light"
|
|
641
|
+
containerWidth={360}
|
|
642
|
+
/>
|
|
643
|
+
</Modal>
|
|
568
644
|
);
|
|
569
645
|
}
|
|
570
646
|
```
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"ddd":0,"h":100,"w":600,"meta":{"g":"@lottiefiles/toolkit-js 0.66.4","tc":"#333333"},"layers":[{"ty":3,"sr":1,"st":0,"op":151,"ip":0,"hd":true,"ln":"5179","hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50,50,50]},"s":{"a":0,"k":[90.383,90.383,101.119]},"p":{"a":0,"k":[522.369,51.74,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"ind":1},{"ty":4,"sr":1,"st":0,"op":151,"ip":72,"ln":"4078","hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0]},"s":{"a":1,"k":[{"s":[101.644,101.644,100],"i":{"x":[0.607,0.607,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[-0.003,-0.003,0]},"t":86.999},{"s":[0,0,100],"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":149.999}]},"p":{"a":1,"k":[{"o":{"x":0.76,"y":0.003},"i":{"x":0.331,"y":0.996},"s":[50,50,0],"t":116.999},{"s":[-176.666,45.934,0],"t":149.999}]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"shapes":[{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[{"c":true,"i":[[1.293,3.325],[4.726,1.905],[0.135,0.049],[0,0],[2.593,0],[0,0],[0.132,-0.054],[1.871,-4.814],[0,-8.385],[0,0],[-1.293,-3.325],[-4.726,-1.906],[-8.231,0],[0,0],[-3.264,1.317],[-1.871,4.814],[0,8.384],[0,0]],"o":[[-1.871,-4.814],[-0.132,-0.054],[0,0],[-3.113,0],[0,0],[-0.135,0.049],[-4.726,1.905],[-1.293,3.325],[0,0],[0,8.384],[1.871,4.814],[3.264,1.317],[0,0],[8.231,0],[4.726,-1.906],[1.293,-3.325],[0,0],[0,-8.385]],"v":[[39.707,-18.735],[29.369,-29.266],[28.965,-29.417],[2.869,-29.812],[-2.962,-29.812],[-28.965,-29.417],[-29.369,-29.266],[-39.707,-18.735],[-41,-2.833],[-41,1.667],[-39.707,17.569],[-29.369,28.1],[-13.758,29.417],[13.758,29.417],[29.369,28.1],[39.707,17.569],[41,1.667],[41,-2.833]]}],"t":69.999},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[{"c":true,"i":[[1.293,3.325],[4.726,1.905],[0.135,0.049],[0,0],[1.579,1.682],[0,0],[0.132,-0.054],[1.871,-4.814],[0,-8.385],[0,0],[-1.293,-3.325],[-4.726,-1.906],[-8.231,0],[0,0],[-3.264,1.317],[-1.871,4.814],[0,8.384],[0,0]],"o":[[-1.871,-4.814],[-0.132,-0.054],[0,0],[-1.579,1.682],[0,0],[-0.135,0.049],[-4.726,1.905],[-1.293,3.325],[0,0],[0,8.384],[1.871,4.814],[3.264,1.317],[0,0],[8.231,0],[4.726,-1.906],[1.293,-3.325],[0,0],[0,-8.385]],"v":[[39.707,-18.735],[29.369,-29.266],[28.965,-29.417],[3.665,0.188],[-2.165,0.188],[-28.965,-29.417],[-29.369,-29.266],[-39.707,-18.735],[-41,-2.833],[-41,1.667],[-39.707,17.569],[-29.369,28.1],[-13.758,29.417],[13.758,29.417],[29.369,28.1],[39.707,17.569],[41,1.667],[41,-2.833]]}],"t":76.999},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[{"c":true,"i":[[1.293,3.325],[4.726,1.905],[0.135,0.049],[0,0],[1.579,1.682],[0,0],[0.132,-0.054],[1.871,-4.814],[0,-8.385],[0,0],[-1.293,-3.325],[-4.726,-1.906],[-8.231,0],[0,0],[-3.264,1.317],[-1.871,4.814],[0,8.384],[0,0]],"o":[[-1.871,-4.814],[-0.132,-0.054],[0,0],[-1.579,1.682],[0,0],[-0.135,0.049],[-4.726,1.905],[-1.293,3.325],[0,0],[0,8.384],[1.871,4.814],[3.264,1.317],[0,0],[8.231,0],[4.726,-1.906],[1.293,-3.325],[0,0],[0,-8.385]],"v":[[39.707,-18.735],[29.369,-29.266],[28.965,-29.417],[2.54,-6.687],[-3.29,-6.687],[-28.965,-29.417],[-29.369,-29.266],[-39.707,-18.735],[-41,-2.833],[-41,1.667],[-39.707,17.569],[-29.369,28.1],[-13.758,29.417],[13.758,29.417],[29.369,28.1],[39.707,17.569],[41,1.667],[41,-2.833]]}],"t":79.999},{"s":[{"c":true,"i":[[1.293,3.325],[4.726,1.905],[0.135,0.049],[0,0],[1.579,1.682],[0,0],[0.132,-0.054],[1.871,-4.814],[0,-8.385],[0,0],[-1.293,-3.325],[-4.726,-1.906],[-8.231,0],[0,0],[-3.264,1.317],[-1.871,4.814],[0,8.384],[0,0]],"o":[[-1.871,-4.814],[-0.132,-0.054],[0,0],[-1.579,1.682],[0,0],[-0.135,0.049],[-4.726,1.905],[-1.293,3.325],[0,0],[0,8.384],[1.871,4.814],[3.264,1.317],[0,0],[8.231,0],[4.726,-1.906],[1.293,-3.325],[0,0],[0,-8.385]],"v":[[39.707,-18.735],[29.369,-29.266],[28.965,-29.417],[2.915,-1.687],[-2.915,-1.687],[-28.965,-29.417],[-29.369,-29.266],[-39.707,-18.735],[-41,-2.833],[-41,1.667],[-39.707,17.569],[-29.369,28.1],[-13.758,29.417],[13.758,29.417],[29.369,28.1],[39.707,17.569],[41,1.667],[41,-2.833]]}],"t":83.999}]}},{"ty":"gf","e":{"a":0,"k":[43.023,0.417]},"g":{"p":3,"k":{"a":0,"k":[0.523,0.98823529,0.25490195,0.23921569,0.762,0.9941176449999999,0.32156862499999994,0.433333345,1,1,0.3882353,0.627451]}},"t":2,"a":{"a":0,"k":0},"h":{"a":0,"k":0},"s":{"a":0,"k":[-28,0.417]},"r":1,"o":{"a":0,"k":100}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]}],"ind":2,"parent":1},{"ty":4,"sr":1,"st":-17,"op":72,"ip":0,"ln":"3287","hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[101.644,101.644,100]},"p":{"a":1,"k":[{"o":{"x":0.167,"y":0},"i":{"x":0,"y":1},"s":[-195.867,48.231,0],"t":0},{"s":[50.133,48.231,0],"t":39}]},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-100],"t":0.03},{"s":[0],"t":74.466}]},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"shapes":[{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[1.78,-2.983],[0,0],[2.179,0.941],[0,0],[-0.393,-3.414],[0,0],[2.342,-0.465],[0,0],[-2.416,-2.541],[0,0],[1.609,-1.692],[0,0],[-3.516,-0.698],[0,0],[0.262,-2.274],[0,0],[-3.273,1.413],[0,0],[-1.185,-1.987],[0,0],[-1.78,2.983],[0,0],[-2.179,-0.941],[0,0],[0.393,3.414],[0,0],[-2.342,0.465],[0,0],[2.416,2.541],[0,0],[-1.609,1.692],[0,0],[3.516,0.698],[0,0],[-0.262,2.274],[0,0],[3.273,-1.413],[0,0],[1.185,1.987]],"o":[[-1.78,-2.983],[0,0],[-1.185,1.987],[0,0],[-3.273,-1.413],[0,0],[0.262,2.274],[0,0],[-3.516,0.698],[0,0],[1.609,1.692],[0,0],[-2.416,2.541],[0,0],[2.342,0.465],[0,0],[-0.393,3.414],[0,0],[2.179,-0.941],[0,0],[1.78,2.983],[0,0],[1.185,-1.987],[0,0],[3.273,1.413],[0,0],[-0.262,-2.274],[0,0],[3.516,-0.698],[0,0],[-1.609,-1.692],[0,0],[2.416,-2.541],[0,0],[-2.342,-0.465],[0,0],[0.393,-3.414],[0,0],[-2.179,0.941],[0,0]],"v":[[4.028,-37.763],[-4.028,-37.763],[-7.544,-31.869],[-13.479,-30.024],[-19.945,-32.815],[-26.463,-28.286],[-25.686,-21.541],[-29.354,-16.711],[-36.3,-15.334],[-38.789,-8.005],[-34.016,-2.985],[-34.016,2.985],[-38.789,8.005],[-36.3,15.334],[-29.354,16.711],[-25.686,21.541],[-26.463,28.286],[-19.945,32.815],[-13.479,30.024],[-7.544,31.869],[-4.028,37.763],[4.028,37.763],[7.544,31.869],[13.479,30.024],[19.945,32.815],[26.463,28.286],[25.686,21.541],[29.354,16.711],[36.3,15.334],[38.789,8.005],[34.016,2.985],[34.016,-2.985],[38.789,-8.005],[36.3,-15.334],[29.354,-16.711],[25.686,-21.541],[26.463,-28.286],[19.945,-32.815],[13.479,-30.024],[7.544,-31.869]]}}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]},{"ty":"mm","mm":3},{"ty":"gf","e":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0,-95.122],"t":73.999},{"s":[0,-102.122],"t":77.999}]},"g":{"p":3,"k":{"a":0,"k":[0.523,0.98823529,0.25490198,0.23921569,0.762,0.9941176449999999,0.32156863999999996,0.433333345,1,1,0.3882353,0.627451]}},"t":2,"a":{"a":0,"k":0},"h":{"a":0,"k":0},"s":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0,-26.341],"t":73.999},{"s":[17,-26.341],"t":77.999}]},"r":1,"o":{"a":0,"k":100}}],"ind":3,"parent":1},{"ty":3,"sr":1,"st":0,"op":151,"ip":0,"hd":true,"ln":"5186","hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50,50,50]},"s":{"a":0,"k":[62,62,106.897]},"p":{"a":0,"k":[427.719,45.683,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"ind":4},{"ty":4,"sr":1,"st":-22,"op":151,"ip":80,"ln":"3286","hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[5.518,-3.817,0]},"s":{"a":1,"k":[{"s":[108.042,108.042,100],"i":{"x":[0.607,0.607,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[-0.003,-0.003,0]},"t":86.999},{"s":[0,0,100],"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":149.999}]},"p":{"a":1,"k":[{"o":{"x":0.76,"y":0.002},"i":{"x":0.331,"y":0.998},"s":[50,50,0],"t":116.999},{"s":[-170.731,53.241,0],"t":149.999}]},"r":{"a":1,"k":[{"o":{"x":0.221,"y":0.947},"i":{"x":0.667,"y":1},"s":[-27],"t":63.722},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[1.017],"t":70.009},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-0.929],"t":73.602},{"s":[0],"t":78.095}]},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":1,"k":[{"o":{"x":0.531,"y":0},"i":{"x":0,"y":1},"s":[{"c":true,"i":[[-2.023,-0.939],[-1.946,0],[-2.219,2.164],[0,3.378],[1.6,1.584],[2.271,0],[1.6,-1.636],[1.078,-2.058],[0.133,-0.746],[-0.658,-0.892]],"o":[[1.703,0.58],[3.251,0],[2.271,-2.164],[0,-2.323],[-1.549,-1.636],[-2.271,0],[-1.549,1.584],[-0.755,1.441],[-0.334,1.879],[1.291,1.372]],"v":[[8.761,-23.664],[14.113,-22.629],[21.332,-25.628],[24.739,-33.941],[22.339,-39.8],[16.61,-42.254],[10.803,-39.8],[7.082,-34.681],[5.262,-30.513],[5.586,-25.768]]}],"t":59.229},{"s":[{"c":true,"i":[[-2.589,-0.962],[-2.666,0],[-3.373,3.289],[0,5.133],[2.431,2.406],[3.451,0],[2.431,-2.487],[0,-3.529],[1.177,-1.845],[2.745,-0.963]],"o":[[2.588,0.883],[4.942,0],[3.451,-3.288],[0,-3.529],[-2.353,-2.487],[-3.451,0],[-2.353,2.406],[0,3.128],[-1.176,1.845],[1.961,2.085]],"v":[[-13.478,16.15],[-5.596,17.474],[6.876,12.541],[12.052,-0.091],[8.405,-8.994],[-0.301,-12.724],[-9.125,-8.994],[-12.655,-0.091],[-14.42,7.368],[-20.302,11.579]]}],"t":73.602}]}},{"ty":"tr","a":{"a":0,"k":[11.317,-11.087]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-11.207,10.814]},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-28],"t":65.518},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[6.781],"t":71.806},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-10.425],"t":76.297},{"s":[0],"t":79.892}]},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]},{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":1,"k":[{"o":{"x":0.167,"y":0},"i":{"x":0,"y":1},"s":[{"c":true,"i":[[-3.001,-14.338],[0,0],[-18.287,8.73],[4.239,11.107],[0,0],[19.132,-8.124]],"o":[[0,0],[2.607,6.85],[8.686,-4.147],[0,0],[-5.356,-10.141],[0,0]],"v":[[-56.89,11.414],[-47.36,39.191],[-18.771,42.698],[1.571,24.192],[-8.302,-5.094],[-37.845,-7.954]]}],"t":61.271},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[{"c":true,"i":[[0.92,-13.268],[0,0],[-7.743,0],[0,7.744],[0,0],[7.743,0]],"o":[[0,0],[0,7.744],[7.743,0],[0,0],[0,-7.743],[0,0]],"v":[[-14.02,-14.02],[-14.02,14.02],[0,28.041],[14.02,14.02],[14.02,-14.02],[0,-28.041]]}],"t":69.111},{"s":[{"c":true,"i":[[0.92,-13.268],[0,0],[-7.743,0],[0,7.744],[0,0],[7.743,0]],"o":[[0,0],[0,7.744],[7.743,0],[0,0],[0,-7.743],[0,0]],"v":[[-14.02,-14.02],[-14.02,14.02],[0,28.041],[14.02,14.02],[14.02,-14.02],[0,-28.041]]}],"t":71.806}]}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[14.767,-13.066]},"r":{"a":0,"k":45},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]},{"ty":"mm","mm":2},{"ty":"gf","e":{"a":0,"k":[0,-90.912]},"g":{"p":3,"k":{"a":0,"k":[0.608,0.67843139,0.44705883,1,0.804,0.764705895,0.588235305,0.9960784300000001,1,0.8509804,0.72941178,0.99215686]}},"t":2,"a":{"a":0,"k":0},"h":{"a":0,"k":0},"s":{"a":0,"k":[0,-24.366]},"r":1,"o":{"a":0,"k":100}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]}],"ind":5,"parent":4},{"ty":4,"sr":1,"st":-22,"op":80,"ip":64,"ln":"3285","hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[32.095,-32.948,0]},"s":{"a":1,"k":[{"s":[108.042,108.042,100],"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[-0.003,-0.003,0]},"t":79.999},{"s":[0,0,100],"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":149.999}]},"p":{"a":1,"k":[{"o":{"x":0.76,"y":0.003},"i":{"x":0.331,"y":0.996},"s":[78.714,18.526,0],"t":116.999},{"s":[-47.695,18.526,0],"t":149.999}]},"r":{"a":1,"k":[{"o":{"x":0.221,"y":0.947},"i":{"x":0.667,"y":1},"s":[-27],"t":63.722},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[1.017],"t":70.009},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-0.929],"t":73.602},{"s":[0],"t":78.095}]},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":1,"k":[{"o":{"x":0.531,"y":0},"i":{"x":0,"y":1},"s":[{"c":true,"i":[[-2.023,-0.939],[-1.946,0],[-2.219,2.164],[0,3.378],[1.6,1.584],[2.271,0],[1.6,-1.636],[1.078,-2.058],[0.133,-0.746],[-0.658,-0.892]],"o":[[1.703,0.58],[3.251,0],[2.271,-2.164],[0,-2.323],[-1.549,-1.636],[-2.271,0],[-1.549,1.584],[-0.755,1.441],[-0.334,1.879],[1.291,1.372]],"v":[[8.761,-23.664],[14.113,-22.629],[21.332,-25.628],[24.739,-33.941],[22.339,-39.8],[16.61,-42.254],[10.803,-39.8],[7.082,-34.681],[5.262,-30.513],[5.586,-25.768]]}],"t":59.229},{"s":[{"c":true,"i":[[-2.589,-0.962],[-2.666,0],[-3.373,3.289],[0,5.133],[2.431,2.406],[3.451,0],[2.431,-2.487],[0,-3.529],[1.177,-1.845],[2.745,-0.963]],"o":[[2.588,0.883],[4.942,0],[3.451,-3.288],[0,-3.529],[-2.353,-2.487],[-3.451,0],[-2.353,2.406],[0,3.128],[-1.176,1.845],[1.961,2.085]],"v":[[-13.478,16.15],[-5.596,17.474],[6.876,12.541],[12.052,-0.091],[8.405,-8.994],[-0.301,-12.724],[-9.125,-8.994],[-12.655,-0.091],[-14.42,7.368],[-20.302,11.579]]}],"t":73.602}]}},{"ty":"tr","a":{"a":0,"k":[11.317,-11.087]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-11.207,10.814]},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-28],"t":65.518},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[6.781],"t":71.806},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-10.425],"t":76.297},{"s":[0],"t":79.892}]},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]},{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":1,"k":[{"o":{"x":0.167,"y":0},"i":{"x":0,"y":1},"s":[{"c":true,"i":[[-3.859,-14.132],[0,0],[-17.727,9.818],[4.901,10.832],[0,0],[18.607,-9.263]],"o":[[0,0],[3.015,6.681],[8.419,-4.662],[0,0],[-5.958,-9.8],[0,0]],"v":[[-57.167,13.183],[-45.979,40.334],[-17.23,42.11],[1.959,22.411],[-9.662,-6.225],[-39.324,-7.299]]}],"t":60.999},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[{"c":true,"i":[[0.92,-13.268],[0,0],[-7.743,0],[0,7.744],[0,0],[7.743,0]],"o":[[0,0],[0,7.744],[7.743,0],[0,0],[0,-7.743],[0,0]],"v":[[-14.02,-14.02],[-14.02,14.02],[0,28.041],[14.02,14.02],[14.02,-14.02],[0,-28.041]]}],"t":69.111},{"s":[{"c":true,"i":[[0.92,-13.268],[0,0],[-7.743,0],[0,7.744],[0,0],[7.743,0]],"o":[[0,0],[0,7.744],[7.743,0],[0,0],[0,-7.743],[0,0]],"v":[[-14.02,-14.02],[-14.02,14.02],[0,28.041],[14.02,14.02],[14.02,-14.02],[0,-28.041]]}],"t":71.806}]}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[14.767,-13.066]},"r":{"a":0,"k":45},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]},{"ty":"mm","mm":2},{"ty":"gf","e":{"a":0,"k":[0,-90.912]},"g":{"p":3,"k":{"a":0,"k":[0.608,0.67843139,0.44705883,1,0.804,0.764705895,0.588235305,0.9960784300000001,1,0.8509804,0.72941178,0.99215686]}},"t":2,"a":{"a":0,"k":0},"h":{"a":0,"k":0},"s":{"a":0,"k":[0,-24.366]},"r":1,"o":{"a":0,"k":100}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]}],"ind":6,"parent":4},{"ty":4,"sr":1,"st":-22,"op":64,"ip":0,"ln":"3284","hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[82.965,82.965,100]},"p":{"a":1,"k":[{"o":{"x":0.2,"y":0},"i":{"x":0,"y":1},"s":[300.107,50.038,0],"t":0.03},{"s":[424.807,50.038,0],"t":39}]},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-100],"t":0.03},{"s":[0],"t":72.275}]},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"shapes":[{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":1,"k":[{"o":{"x":0.531,"y":0},"i":{"x":0.833,"y":1},"s":[{"c":true,"i":[[0,0],[0,-7.509],[-5.588,-1.677],[0,-0.053],[0.051,-0.016],[0,-6.152],[-7.484,0],[0,0],[0,7.509],[5.644,1.642],[0,0.038],[-0.037,0.011],[0,6.193],[7.484,0]],"o":[[-7.484,0],[0,6.152],[0.051,0.016],[0,0.053],[-5.588,1.677],[0,7.509],[0,0],[7.484,0],[0,-6.193],[-0.037,-0.011],[0,-0.038],[5.644,-1.642],[0,-7.509],[0,0]],"v":[[-12.266,-26.739],[-25.817,-13.143],[-16.157,-0.116],[-16.071,0],[-16.157,0.116],[-25.817,13.143],[-12.266,26.739],[12.266,26.739],[25.817,13.143],[16.047,0.083],[15.984,0],[16.047,-0.083],[25.817,-13.143],[12.266,-26.739]]}],"t":59.229},{"o":{"x":0.167,"y":0},"i":{"x":0,"y":1},"s":[{"c":true,"i":[[0,0],[2.902,-6.432],[1.29,-4.223],[0.005,-0.054],[0.029,-0.045],[-0.206,-3.853],[-6.332,-1.267],[0,0],[-1.842,6.121],[-1.014,3.996],[-0.004,0.039],[-0.007,0.037],[-1.148,6.174],[7.506,0.843]],"o":[[-8.34,-0.014],[-2.196,4.982],[-0.013,0.04],[-0.005,0.054],[-3.778,5.763],[0.197,6.089],[0,0],[7.507,0.844],[1.898,-5.882],[0.008,-0.029],[0.004,-0.04],[0.981,-3.016],[1.184,-6.76],[0,0]],"v":[[30.357,-30.69],[13.85,-20.51],[10.618,-7.55],[10.693,-7.423],[10.461,-7.387],[4.281,7.285],[14.804,21.823],[22.067,20.64],[36.336,8.305],[39.794,-4.348],[40.365,-5.661],[39.81,-4.517],[44.645,-16.357],[34.196,-31.375]]}],"t":63.999},{"s":[{"c":true,"i":[[0,0],[5.485,-4.576],[4.012,-3.855],[0.025,-0.047],[0.04,-0.036],[1.114,-3.081],[-5.161,-3.551],[0,0],[-4.191,4.598],[-3.636,3.707],[-0.018,0.034],[-0.014,0.036],[-3.434,5.153],[6.621,3.489]],"o":[[-7.842,-2.865],[-4.19,3.496],[-0.038,0.037],[-0.024,0.047],[-5.13,4.691],[-1.902,5.26],[0,0],[6.621,3.489],[4.171,-4.577],[0.026,-0.027],[0.018,-0.034],[1.037,-2.646],[3.68,-5.522],[0,0]],"v":[[39.364,-34.249],[20.037,-31.413],[10.01,-20.884],[10.032,-20.742],[9.777,-20.805],[-0.342,-9.408],[3.683,7.437],[7.386,8.624],[24.963,2.663],[35.158,-7.446],[36.266,-8.673],[35.235,-7.593],[42.842,-16.342],[39.067,-33.687]]}],"t":68.999}]}},{"ty":"gf","e":{"a":0,"k":[0,-62.001]},"g":{"p":3,"k":{"a":0,"k":[0.523,1,0.80000001,0,0.762,1,0.866666675,0.141176475,1,1,0.93333334,0.28235295]}},"t":2,"a":{"a":0,"k":0},"h":{"a":0,"k":0},"s":{"a":0,"k":[0,-17.609]},"r":1,"o":{"a":0,"k":100}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]}],"ind":7},{"ty":3,"sr":1,"st":0,"op":151,"ip":0,"hd":true,"ln":"5219","hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50,50,50]},"s":{"a":0,"k":[60.045,60.045,98.362]},"p":{"a":0,"k":[176.5,50,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"ind":8},{"ty":4,"sr":1,"st":-27,"op":151,"ip":59,"ln":"3283","hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0]},"s":{"a":1,"k":[{"s":[106,106,100.952],"i":{"x":[0.607,0.607,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[-0.003,-0.003,0]},"t":86.999},{"s":[0,0,100],"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":149.999}]},"p":{"a":1,"k":[{"o":{"x":0.76,"y":0.002},"i":{"x":0.331,"y":0.998},"s":[50,50,0],"t":116.999},{"s":[256.344,48.864,0],"t":149.999}]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"shapes":[{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":1,"k":[{"o":{"x":0.531,"y":0},"i":{"x":0,"y":1},"s":[{"c":true,"i":[[-2.833,0.021],[-0.703,0],[-1.723,0.433],[-0.57,0.482],[-1.951,1.753],[-1.416,2.734],[-0.327,3.753],[0,4.568],[4.092,4.092],[5.874,0],[4.092,-4.092],[0.75,-5.838],[0.128,-1.737],[-0.961,-2.747],[-2.479,-2.982],[-4.026,-1.816]],"o":[[0.643,-0.005],[0.653,0],[0.628,-0.159],[1.85,-1.566],[2.051,-1.841],[1.715,-3.308],[0.303,-3.483],[0,-5.875],[-4.092,-4.092],[-5.875,0],[-4.092,4.092],[-0.442,3.44],[-0.247,3.367],[1.382,3.953],[1.427,1.717],[1.809,0.715]],"v":[[-4.445,28.048],[-0.275,28.125],[5.47,27.198],[9.975,25.166],[13.501,22.084],[17.589,16.497],[20.702,4.997],[20.8,-6.412],[14.537,-21.362],[-0.412,-27.5],[-15.362,-21.362],[-23.25,-8.037],[-24.128,2.883],[-23.039,13.747],[-17.802,22.158],[-11.187,27.091]]}],"t":54.124},{"s":[{"c":true,"i":[[-0.667,-0.533],[-0.933,0],[-0.7,0.5],[-0.333,0.933],[-1.833,3.167],[-3.6,4.8],[-2.3,4.033],[0,6.067],[5.433,5.433],[7.8,0],[5.433,-5.433],[0,-7.8],[-2.1,-4],[-3.4,-4.4],[-1.9,-3.267],[-1.267,-3.733]],"o":[[0.667,0.533],[0.867,0],[0.7,-0.5],[1.2,-3.533],[1.833,-3.167],[3,-3.933],[2.3,-4.033],[0,-7.8],[-5.433,-5.433],[-7.8,0],[-5.433,5.433],[0,5.667],[2.1,4],[3.4,4.4],[1.9,3.267],[0.333,0.867]],"v":[[-2.4,39.2],[0,40],[2.35,39.25],[3.9,37.1],[8.45,27.05],[16.6,15.1],[24.55,3.15],[28,-12],[19.85,-31.85],[0,-40],[-19.85,-31.85],[-28,-12],[-24.85,2.5],[-16.6,15.1],[-8.65,26.6],[-3.9,37.1]]}],"t":68.498}]}},{"ty":"sh","d":1,"ks":{"a":1,"k":[{"o":{"x":0.531,"y":0},"i":{"x":0,"y":1},"s":[{"c":true,"i":[[1.933,-1.933],[2.8,0],[1.933,1.933],[0,2.8],[-1.933,1.933],[-2.8,0],[-1.933,-1.933],[0,-2.8]],"o":[[-1.933,1.933],[-2.8,0],[-1.933,-1.933],[0,-2.8],[1.933,-1.933],[2.8,0],[1.933,1.933],[0,2.8]],"v":[[4.725,16.725],[-2.375,19.625],[-9.475,16.725],[-12.375,9.625],[-9.475,2.525],[-2.375,-0.375],[4.725,2.525],[7.625,9.625]]}],"t":55.969},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[{"c":true,"i":[[1.933,-1.933],[2.8,0],[1.933,1.933],[0,2.8],[-1.933,1.933],[-2.8,0],[-1.933,-1.933],[0,-2.8]],"o":[[-1.933,1.933],[-2.8,0],[-1.933,-1.933],[0,-2.8],[1.933,-1.933],[2.8,0],[1.933,1.933],[0,2.8]],"v":[[7.1,-10.15],[0,-7.25],[-7.1,-10.15],[-10,-17.25],[-7.1,-24.35],[0,-27.25],[7.1,-24.35],[10,-17.25]]}],"t":64.48},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[{"c":true,"i":[[1.933,-1.933],[2.8,0],[1.933,1.933],[0,2.8],[-1.933,1.933],[-2.8,0],[-1.933,-1.933],[0,-2.8]],"o":[[-1.933,1.933],[-2.8,0],[-1.933,-1.933],[0,-2.8],[1.933,-1.933],[2.8,0],[1.933,1.933],[0,2.8]],"v":[[7.35,-1.15],[0.25,1.75],[-6.85,-1.15],[-9.75,-8.25],[-6.85,-15.35],[0.25,-18.25],[7.35,-15.35],[10.25,-8.25]]}],"t":69.798},{"s":[{"c":true,"i":[[1.933,-1.933],[2.8,0],[1.933,1.933],[0,2.8],[-1.933,1.933],[-2.8,0],[-1.933,-1.933],[0,-2.8]],"o":[[-1.933,1.933],[-2.8,0],[-1.933,-1.933],[0,-2.8],[1.933,-1.933],[2.8,0],[1.933,1.933],[0,2.8]],"v":[[7.1,-4.9],[0,-2],[-7.1,-4.9],[-10,-12],[-7.1,-19.1],[0,-22],[7.1,-19.1],[10,-12]]}],"t":72.991}]}},{"ty":"gf","e":{"a":0,"k":[0,-74.488]},"g":{"p":3,"k":{"a":0,"k":[0.596,0,0.68627453,0.34117648,0.798,0.23529412,0.73725492,0.67058824,1,0.47058824,0.78823531,1]}},"t":2,"a":{"a":0,"k":0},"h":{"a":0,"k":0},"s":{"a":0,"k":[0,-26.341]},"r":1,"o":{"a":0,"k":100}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]}],"ind":9,"parent":8},{"ty":4,"sr":1,"st":-28,"op":59,"ip":0,"ln":"3282","hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0]},"s":{"a":1,"k":[{"s":[152.579,152.579,100.66],"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.531,0.531,0.531],"y":[0,0,0]},"t":54.124},{"s":[154.85,154.85,100.66],"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":68.498}]},"p":{"a":1,"k":[{"o":{"x":0.2,"y":0},"i":{"x":0,"y":1},"s":[254.912,50.568,0],"t":0.03},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[48.296,50.568,0],"t":39.143},{"o":{"x":0.531,"y":0},"i":{"x":0.833,"y":1},"s":[48.296,50.568,0],"t":54.124},{"s":[50.568,36.938,0],"t":68.498}]},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[57],"t":0.204},{"s":[-43],"t":68.498}]},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"shapes":[{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":0,"k":{"c":true,"i":[[8.897,8.897],[8.897,-8.897],[0,0],[-8.897,-8.897],[-8.897,8.897],[0,0]],"o":[[-8.897,-8.897],[0,0],[-8.897,8.897],[8.897,8.897],[0,0],[8.897,-8.897]],"v":[[19.827,-19.827],[-12.392,-19.827],[-19.827,-12.392],[-19.827,19.827],[12.392,19.827],[19.827,12.392]]}}},{"ty":"gf","e":{"a":0,"k":[0,-63.018]},"g":{"p":3,"k":{"a":0,"k":[0.608,0,0.68627453,0.34117648,0.804,0.23529412,0.73725492,0.67058824,1,0.47058824,0.78823531,1]}},"t":2,"a":{"a":0,"k":0},"h":{"a":0,"k":0},"s":{"a":0,"k":[0,-17.451]},"r":1,"o":{"a":0,"k":100}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]}],"ind":10,"parent":8},{"ty":4,"sr":1,"st":0,"op":151,"ip":54,"ln":"4091","hasMask":true,"ao":0,"ks":{"a":{"a":0,"k":[0,0]},"s":{"a":1,"k":[{"s":[83,83,98.81],"i":{"x":[0.607,0.607,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[-0.003,-0.003,0]},"t":86.999},{"s":[0,0,0],"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":149.999}]},"p":{"a":1,"k":[{"o":{"x":0.76,"y":0.003},"i":{"x":0.331,"y":0.996},"s":[78,51.002,0],"t":116.999},{"s":[298,51.002,0],"t":149.999}]},"r":{"a":1,"k":[{"o":{"x":0.257,"y":0.425},"i":{"x":0.667,"y":1},"s":[-0.008],"t":50},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[10.566],"t":55.833},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-1.636],"t":60.5},{"s":[-0.008],"t":63.999}]},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"masksProperties":[{"inv":false,"mode":"s","x":{"a":0,"k":0},"o":{"a":0,"k":100},"pt":{"a":1,"k":[{"o":{"x":0.76,"y":0},"i":{"x":0.331,"y":1},"s":[{"c":true,"i":[[4.774,0],[0,-4.774],[-4.773,0],[0,4.773]],"o":[[-4.773,0],[0,4.773],[4.774,0],[0,-4.774]],"v":[[61.301,-6.879],[52.658,1.765],[61.301,10.408],[69.945,1.765]]}],"t":45},{"s":[{"c":true,"i":[[11.563,0],[0,-11.563],[-11.564,0],[0,11.564]],"o":[[-11.564,0],[0,11.564],[11.563,0],[0,-11.563]],"v":[[-16.937,-20.687],[-37.875,0.25],[-16.937,21.188],[4,0.25]]}],"t":63.999}]}}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":1,"k":[{"o":{"x":0.76,"y":0},"i":{"x":0.331,"y":1},"s":[{"c":true,"i":[[9.853,0],[0,0],[0,-9.852],[-9.853,0],[0,0],[0,9.852]],"o":[[0,0],[-9.853,0],[0,9.853],[0,0],[9.853,0],[0,-9.853]],"v":[[28.426,-15.917],[-12.645,-16.347],[-30.485,1.492],[-12.645,19.332],[28.426,19.762],[46.266,1.923]]}],"t":48},{"s":[{"c":true,"i":[[16.569,0],[0,0],[0,-16.569],[-16.569,0],[0,0],[0,16.569]],"o":[[0,0],[-16.569,0],[0,16.569],[0,0],[16.569,0],[0,-16.569]],"v":[[17.5,-30],[-17.5,-30],[-47.5,0],[-17.5,30],[17.5,30],[47.5,0]]}],"t":58}]}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]},{"ty":"gf","e":{"a":0,"k":[-0.314,37.699]},"g":{"p":3,"k":{"a":0,"k":[0.523,0.19215687,0.52549022,1,0.762,0.427450995,0.5921568850000001,1,1,0.66274512,0.65882355,1]}},"t":2,"a":{"a":0,"k":-53.8},"h":{"a":0,"k":48.027},"s":{"a":0,"k":[-0.367,-36.38]},"r":1,"o":{"a":0,"k":100}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]}],"ind":11},{"ty":4,"sr":1,"st":-33,"op":54,"ip":0,"ln":"3280","hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0]},"s":{"a":1,"k":[{"s":[102,102,99.029],"i":{"x":[0.833,0.833,0.833],"y":[0.817,0.817,2.094]},"o":{"x":[0.8,0.8,0.8],"y":[0,0,0]},"t":47.999},{"s":[81,81,102.532],"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.8],"y":[0,0,0]},"t":52.999}]},"p":{"a":1,"k":[{"o":{"x":0.2,"y":0},"i":{"x":0,"y":1},"s":[302.499,50,0],"t":0},{"s":[78.499,50,0],"t":39.016}]},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[295],"t":0},{"o":{"x":0.333,"y":0},"i":{"x":0.833,"y":1},"s":[131.426],"t":59.678},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[136.078],"t":63.272},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[133.831],"t":66.865},{"s":[135],"t":70.458}]},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"shapes":[{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":1,"k":[{"o":{"x":0.2,"y":0},"i":{"x":0.833,"y":1},"s":[{"c":true,"i":[[0,0],[13.974,-6.069],[0,0],[4.266,1.853],[0,0],[-6.069,-13.974],[0,0],[1.853,-4.266],[0,0],[-13.974,6.069],[0,0],[-4.266,-1.853],[0,0],[6.069,13.974],[0,0],[-1.853,4.266]],"o":[[6.069,-13.974],[0,0],[-4.266,1.853],[0,0],[-13.974,-6.069],[0,0],[1.853,4.266],[0,0],[-6.069,13.974],[0,0],[4.266,-1.853],[0,0],[13.974,6.069],[0,0],[-1.853,-4.266],[0,0]],"v":[[31.085,-8.998],[8.998,-31.085],[6.688,-30.082],[-6.688,-30.082],[-8.998,-31.085],[-31.085,-8.998],[-30.082,-6.688],[-30.082,6.688],[-31.085,8.998],[-8.998,31.085],[-6.688,30.082],[6.688,30.082],[8.998,31.085],[31.085,8.998],[30.082,6.688],[30.082,-6.688]]}],"t":47.999},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[{"c":true,"i":[[0,0],[14.476,0.106],[0,0],[3.812,-0.44],[0.695,-0.502],[-3.692,-12.19],[0,0],[-0.515,-4.783],[0,0],[-13.687,-1.605],[0,0],[-4.005,-1.588],[0,0],[2.569,12.791],[0.375,1.38],[0.417,3.887]],"o":[[-2.834,-11.962],[0,0],[-4.216,0.571],[0,0],[-7.946,0.447],[0,0],[1.058,3.332],[0,0],[-1.168,10.914],[0,0],[5.101,1.105],[0,0],[13.518,4.407],[0,0],[-1.637,-4.494],[0,0]],"v":[[30.424,-10.755],[3.721,-33.252],[-1.444,-33.085],[-12.917,-31.92],[-18.273,-30.888],[-33.542,-9.139],[-32.96,-5.284],[-31.282,6.274],[-30.728,12.548],[-9.315,32.857],[-4.432,33.814],[7.9,37.12],[11.411,37.746],[36.843,14.781],[35.975,9.185],[32.336,-3.97]]}],"t":50.041},{"o":{"x":0.167,"y":0},"i":{"x":0,"y":1},"s":[{"c":true,"i":[[0,0],[12.353,-0.877],[0,0],[3.357,-0.476],[2.674,-0.235],[-2.2,-11.073],[0,0],[-0.696,-4.461],[0,0],[-13.508,-6.418],[0,0],[-3.839,-1.421],[0,0],[0.374,12.049],[0.609,2.246],[1.841,3.648]],"o":[[-6.127,-11.297],[0,0],[-3.562,0.36],[0,0],[-8.046,2.656],[0,0],[0.56,2.746],[0,0],[2.791,9.258],[0,0],[5.625,2.959],[0,0],[13.232,3.366],[0,0],[-1.503,-4.636],[0,0]],"v":[[29.743,-10.701],[-0.633,-34.518],[-5.256,-34.451],[-14.251,-33.431],[-23.516,-31.899],[-35.174,-9.845],[-34.059,-4.582],[-31.927,5.208],[-29.234,13.455],[-8.504,34.092],[-3.739,36.025],[8.659,41.534],[12.925,41.923],[40.454,18.408],[39.672,10.751],[34.602,-2.856]]}],"t":51.062},{"s":[{"c":true,"i":[[0,0],[10.69,-1.902],[0,0],[2.711,-1.825],[1.749,-1.265],[-0.086,-9.487],[0,0],[-2.089,-4.567],[0,0],[-13.254,-13.244],[0,0],[-3.606,-1.185],[0,0],[-2.738,10.997],[0.942,3.474],[3.86,3.31]],"o":[[-12.449,-12.459],[0,0],[-3.419,0.472],[0,0],[-2.489,1.791],[0,0],[-0.146,1.915],[0,0],[6.264,6.274],[0,0],[6.368,5.591],[0,0],[12.828,1.888],[0,0],[-1.312,-4.839],[0,0]],"v":[[29.288,-10.266],[-8.317,-36.209],[-13.189,-36.001],[-20.293,-33.616],[-25.607,-30.025],[-37.269,-9.352],[-37.326,-3.154],[-34.434,6.181],[-26.582,15.885],[-8.234,35.736],[-2.939,41.736],[9.737,47.794],[15.071,47.848],[45.575,23.551],[44.914,12.972],[37.073,-0.762]]}],"t":59.229}]}},{"ty":"gf","e":{"a":0,"k":[0,-77.352]},"g":{"p":3,"k":{"a":0,"k":[0.523,0.19215687,0.52549022,1,0.762,0.427450995,0.5921568850000001,1,1,0.66274512,0.65882355,1]}},"t":2,"a":{"a":0,"k":0},"h":{"a":0,"k":0},"s":{"a":0,"k":[0,-21.42]},"r":1,"o":{"a":0,"k":100}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]}],"ind":12}],"v":"5.7.0","fr":30,"op":151,"ip":0,"assets":[],"markers":[{"cm":"5_sec_Lottie","tm":149.999,"dr":0}]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"ddd":0,"h":100,"w":600,"meta":{"g":"@lottiefiles/toolkit-js 0.66.4","tc":"#333333"},"layers":[{"ty":3,"sr":1,"st":0,"op":151,"ip":0,"hd":true,"ln":"5179","hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50,50,50]},"s":{"a":0,"k":[90.383,90.383,101.119]},"p":{"a":0,"k":[522.369,51.74,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"ind":1},{"ty":4,"sr":1,"st":0,"op":151,"ip":72,"ln":"4078","hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0]},"s":{"a":1,"k":[{"s":[101.644,101.644,100],"i":{"x":[0.607,0.607,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[-0.003,-0.003,0]},"t":86.999},{"s":[0,0,100],"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":149.999}]},"p":{"a":1,"k":[{"o":{"x":0.76,"y":0.003},"i":{"x":0.331,"y":0.996},"s":[50,50,0],"t":116.999},{"s":[-176.666,45.934,0],"t":149.999}]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"shapes":[{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[{"c":true,"i":[[1.293,3.325],[4.726,1.905],[0.135,0.049],[0,0],[2.593,0],[0,0],[0.132,-0.054],[1.871,-4.814],[0,-8.385],[0,0],[-1.293,-3.325],[-4.726,-1.906],[-8.231,0],[0,0],[-3.264,1.317],[-1.871,4.814],[0,8.384],[0,0]],"o":[[-1.871,-4.814],[-0.132,-0.054],[0,0],[-3.113,0],[0,0],[-0.135,0.049],[-4.726,1.905],[-1.293,3.325],[0,0],[0,8.384],[1.871,4.814],[3.264,1.317],[0,0],[8.231,0],[4.726,-1.906],[1.293,-3.325],[0,0],[0,-8.385]],"v":[[39.707,-18.735],[29.369,-29.266],[28.965,-29.417],[2.869,-29.812],[-2.962,-29.812],[-28.965,-29.417],[-29.369,-29.266],[-39.707,-18.735],[-41,-2.833],[-41,1.667],[-39.707,17.569],[-29.369,28.1],[-13.758,29.417],[13.758,29.417],[29.369,28.1],[39.707,17.569],[41,1.667],[41,-2.833]]}],"t":69.999},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[{"c":true,"i":[[1.293,3.325],[4.726,1.905],[0.135,0.049],[0,0],[1.579,1.682],[0,0],[0.132,-0.054],[1.871,-4.814],[0,-8.385],[0,0],[-1.293,-3.325],[-4.726,-1.906],[-8.231,0],[0,0],[-3.264,1.317],[-1.871,4.814],[0,8.384],[0,0]],"o":[[-1.871,-4.814],[-0.132,-0.054],[0,0],[-1.579,1.682],[0,0],[-0.135,0.049],[-4.726,1.905],[-1.293,3.325],[0,0],[0,8.384],[1.871,4.814],[3.264,1.317],[0,0],[8.231,0],[4.726,-1.906],[1.293,-3.325],[0,0],[0,-8.385]],"v":[[39.707,-18.735],[29.369,-29.266],[28.965,-29.417],[3.665,0.188],[-2.165,0.188],[-28.965,-29.417],[-29.369,-29.266],[-39.707,-18.735],[-41,-2.833],[-41,1.667],[-39.707,17.569],[-29.369,28.1],[-13.758,29.417],[13.758,29.417],[29.369,28.1],[39.707,17.569],[41,1.667],[41,-2.833]]}],"t":76.999},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[{"c":true,"i":[[1.293,3.325],[4.726,1.905],[0.135,0.049],[0,0],[1.579,1.682],[0,0],[0.132,-0.054],[1.871,-4.814],[0,-8.385],[0,0],[-1.293,-3.325],[-4.726,-1.906],[-8.231,0],[0,0],[-3.264,1.317],[-1.871,4.814],[0,8.384],[0,0]],"o":[[-1.871,-4.814],[-0.132,-0.054],[0,0],[-1.579,1.682],[0,0],[-0.135,0.049],[-4.726,1.905],[-1.293,3.325],[0,0],[0,8.384],[1.871,4.814],[3.264,1.317],[0,0],[8.231,0],[4.726,-1.906],[1.293,-3.325],[0,0],[0,-8.385]],"v":[[39.707,-18.735],[29.369,-29.266],[28.965,-29.417],[2.54,-6.687],[-3.29,-6.687],[-28.965,-29.417],[-29.369,-29.266],[-39.707,-18.735],[-41,-2.833],[-41,1.667],[-39.707,17.569],[-29.369,28.1],[-13.758,29.417],[13.758,29.417],[29.369,28.1],[39.707,17.569],[41,1.667],[41,-2.833]]}],"t":79.999},{"s":[{"c":true,"i":[[1.293,3.325],[4.726,1.905],[0.135,0.049],[0,0],[1.579,1.682],[0,0],[0.132,-0.054],[1.871,-4.814],[0,-8.385],[0,0],[-1.293,-3.325],[-4.726,-1.906],[-8.231,0],[0,0],[-3.264,1.317],[-1.871,4.814],[0,8.384],[0,0]],"o":[[-1.871,-4.814],[-0.132,-0.054],[0,0],[-1.579,1.682],[0,0],[-0.135,0.049],[-4.726,1.905],[-1.293,3.325],[0,0],[0,8.384],[1.871,4.814],[3.264,1.317],[0,0],[8.231,0],[4.726,-1.906],[1.293,-3.325],[0,0],[0,-8.385]],"v":[[39.707,-18.735],[29.369,-29.266],[28.965,-29.417],[2.915,-1.687],[-2.915,-1.687],[-28.965,-29.417],[-29.369,-29.266],[-39.707,-18.735],[-41,-2.833],[-41,1.667],[-39.707,17.569],[-29.369,28.1],[-13.758,29.417],[13.758,29.417],[29.369,28.1],[39.707,17.569],[41,1.667],[41,-2.833]]}],"t":83.999}]}},{"ty":"gf","e":{"a":0,"k":[43.023,0.417]},"g":{"p":3,"k":{"a":0,"k":[0.523,0.98823529,0.25490195,0.23921569,0.762,0.9941176449999999,0.32156862499999994,0.433333345,1,1,0.3882353,0.627451]}},"t":2,"a":{"a":0,"k":0},"h":{"a":0,"k":0},"s":{"a":0,"k":[-28,0.417]},"r":1,"o":{"a":0,"k":100}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]}],"ind":2,"parent":1},{"ty":4,"sr":1,"st":-17,"op":72,"ip":0,"ln":"3287","hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[101.644,101.644,100]},"p":{"a":1,"k":[{"o":{"x":0.167,"y":0},"i":{"x":0,"y":1},"s":[-195.867,48.231,0],"t":0},{"s":[50.133,48.231,0],"t":39}]},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-100],"t":0.03},{"s":[0],"t":74.466}]},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"shapes":[{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[1.78,-2.983],[0,0],[2.179,0.941],[0,0],[-0.393,-3.414],[0,0],[2.342,-0.465],[0,0],[-2.416,-2.541],[0,0],[1.609,-1.692],[0,0],[-3.516,-0.698],[0,0],[0.262,-2.274],[0,0],[-3.273,1.413],[0,0],[-1.185,-1.987],[0,0],[-1.78,2.983],[0,0],[-2.179,-0.941],[0,0],[0.393,3.414],[0,0],[-2.342,0.465],[0,0],[2.416,2.541],[0,0],[-1.609,1.692],[0,0],[3.516,0.698],[0,0],[-0.262,2.274],[0,0],[3.273,-1.413],[0,0],[1.185,1.987]],"o":[[-1.78,-2.983],[0,0],[-1.185,1.987],[0,0],[-3.273,-1.413],[0,0],[0.262,2.274],[0,0],[-3.516,0.698],[0,0],[1.609,1.692],[0,0],[-2.416,2.541],[0,0],[2.342,0.465],[0,0],[-0.393,3.414],[0,0],[2.179,-0.941],[0,0],[1.78,2.983],[0,0],[1.185,-1.987],[0,0],[3.273,1.413],[0,0],[-0.262,-2.274],[0,0],[3.516,-0.698],[0,0],[-1.609,-1.692],[0,0],[2.416,-2.541],[0,0],[-2.342,-0.465],[0,0],[0.393,-3.414],[0,0],[-2.179,0.941],[0,0]],"v":[[4.028,-37.763],[-4.028,-37.763],[-7.544,-31.869],[-13.479,-30.024],[-19.945,-32.815],[-26.463,-28.286],[-25.686,-21.541],[-29.354,-16.711],[-36.3,-15.334],[-38.789,-8.005],[-34.016,-2.985],[-34.016,2.985],[-38.789,8.005],[-36.3,15.334],[-29.354,16.711],[-25.686,21.541],[-26.463,28.286],[-19.945,32.815],[-13.479,30.024],[-7.544,31.869],[-4.028,37.763],[4.028,37.763],[7.544,31.869],[13.479,30.024],[19.945,32.815],[26.463,28.286],[25.686,21.541],[29.354,16.711],[36.3,15.334],[38.789,8.005],[34.016,2.985],[34.016,-2.985],[38.789,-8.005],[36.3,-15.334],[29.354,-16.711],[25.686,-21.541],[26.463,-28.286],[19.945,-32.815],[13.479,-30.024],[7.544,-31.869]]}}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]},{"ty":"mm","mm":3},{"ty":"gf","e":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0,-95.122],"t":73.999},{"s":[0,-102.122],"t":77.999}]},"g":{"p":3,"k":{"a":0,"k":[0.523,0.98823529,0.25490198,0.23921569,0.762,0.9941176449999999,0.32156863999999996,0.433333345,1,1,0.3882353,0.627451]}},"t":2,"a":{"a":0,"k":0},"h":{"a":0,"k":0},"s":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0,-26.341],"t":73.999},{"s":[17,-26.341],"t":77.999}]},"r":1,"o":{"a":0,"k":100}}],"ind":3,"parent":1},{"ty":3,"sr":1,"st":0,"op":151,"ip":0,"hd":true,"ln":"5186","hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50,50,50]},"s":{"a":0,"k":[62,62,106.897]},"p":{"a":0,"k":[427.719,45.683,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"ind":4},{"ty":4,"sr":1,"st":-22,"op":151,"ip":80,"ln":"3286","hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[5.518,-3.817,0]},"s":{"a":1,"k":[{"s":[108.042,108.042,100],"i":{"x":[0.607,0.607,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[-0.003,-0.003,0]},"t":86.999},{"s":[0,0,100],"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":149.999}]},"p":{"a":1,"k":[{"o":{"x":0.76,"y":0.002},"i":{"x":0.331,"y":0.998},"s":[50,50,0],"t":116.999},{"s":[-170.731,53.241,0],"t":149.999}]},"r":{"a":1,"k":[{"o":{"x":0.221,"y":0.947},"i":{"x":0.667,"y":1},"s":[-27],"t":63.722},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[1.017],"t":70.009},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-0.929],"t":73.602},{"s":[0],"t":78.095}]},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":1,"k":[{"o":{"x":0.531,"y":0},"i":{"x":0,"y":1},"s":[{"c":true,"i":[[-2.023,-0.939],[-1.946,0],[-2.219,2.164],[0,3.378],[1.6,1.584],[2.271,0],[1.6,-1.636],[1.078,-2.058],[0.133,-0.746],[-0.658,-0.892]],"o":[[1.703,0.58],[3.251,0],[2.271,-2.164],[0,-2.323],[-1.549,-1.636],[-2.271,0],[-1.549,1.584],[-0.755,1.441],[-0.334,1.879],[1.291,1.372]],"v":[[8.761,-23.664],[14.113,-22.629],[21.332,-25.628],[24.739,-33.941],[22.339,-39.8],[16.61,-42.254],[10.803,-39.8],[7.082,-34.681],[5.262,-30.513],[5.586,-25.768]]}],"t":59.229},{"s":[{"c":true,"i":[[-2.589,-0.962],[-2.666,0],[-3.373,3.289],[0,5.133],[2.431,2.406],[3.451,0],[2.431,-2.487],[0,-3.529],[1.177,-1.845],[2.745,-0.963]],"o":[[2.588,0.883],[4.942,0],[3.451,-3.288],[0,-3.529],[-2.353,-2.487],[-3.451,0],[-2.353,2.406],[0,3.128],[-1.176,1.845],[1.961,2.085]],"v":[[-13.478,16.15],[-5.596,17.474],[6.876,12.541],[12.052,-0.091],[8.405,-8.994],[-0.301,-12.724],[-9.125,-8.994],[-12.655,-0.091],[-14.42,7.368],[-20.302,11.579]]}],"t":73.602}]}},{"ty":"tr","a":{"a":0,"k":[11.317,-11.087]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-11.207,10.814]},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-28],"t":65.518},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[6.781],"t":71.806},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-10.425],"t":76.297},{"s":[0],"t":79.892}]},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]},{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":1,"k":[{"o":{"x":0.167,"y":0},"i":{"x":0,"y":1},"s":[{"c":true,"i":[[-3.001,-14.338],[0,0],[-18.287,8.73],[4.239,11.107],[0,0],[19.132,-8.124]],"o":[[0,0],[2.607,6.85],[8.686,-4.147],[0,0],[-5.356,-10.141],[0,0]],"v":[[-56.89,11.414],[-47.36,39.191],[-18.771,42.698],[1.571,24.192],[-8.302,-5.094],[-37.845,-7.954]]}],"t":61.271},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[{"c":true,"i":[[0.92,-13.268],[0,0],[-7.743,0],[0,7.744],[0,0],[7.743,0]],"o":[[0,0],[0,7.744],[7.743,0],[0,0],[0,-7.743],[0,0]],"v":[[-14.02,-14.02],[-14.02,14.02],[0,28.041],[14.02,14.02],[14.02,-14.02],[0,-28.041]]}],"t":69.111},{"s":[{"c":true,"i":[[0.92,-13.268],[0,0],[-7.743,0],[0,7.744],[0,0],[7.743,0]],"o":[[0,0],[0,7.744],[7.743,0],[0,0],[0,-7.743],[0,0]],"v":[[-14.02,-14.02],[-14.02,14.02],[0,28.041],[14.02,14.02],[14.02,-14.02],[0,-28.041]]}],"t":71.806}]}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[14.767,-13.066]},"r":{"a":0,"k":45},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]},{"ty":"mm","mm":2},{"ty":"gf","e":{"a":0,"k":[0,-90.912]},"g":{"p":3,"k":{"a":0,"k":[0.608,0.67843139,0.44705883,1,0.804,0.764705895,0.588235305,0.9960784300000001,1,0.8509804,0.72941178,0.99215686]}},"t":2,"a":{"a":0,"k":0},"h":{"a":0,"k":0},"s":{"a":0,"k":[0,-24.366]},"r":1,"o":{"a":0,"k":100}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]}],"ind":5,"parent":4},{"ty":4,"sr":1,"st":-22,"op":80,"ip":64,"ln":"3285","hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[32.095,-32.948,0]},"s":{"a":1,"k":[{"s":[108.042,108.042,100],"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[-0.003,-0.003,0]},"t":79.999},{"s":[0,0,100],"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":149.999}]},"p":{"a":1,"k":[{"o":{"x":0.76,"y":0.003},"i":{"x":0.331,"y":0.996},"s":[78.714,18.526,0],"t":116.999},{"s":[-47.695,18.526,0],"t":149.999}]},"r":{"a":1,"k":[{"o":{"x":0.221,"y":0.947},"i":{"x":0.667,"y":1},"s":[-27],"t":63.722},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[1.017],"t":70.009},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-0.929],"t":73.602},{"s":[0],"t":78.095}]},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":1,"k":[{"o":{"x":0.531,"y":0},"i":{"x":0,"y":1},"s":[{"c":true,"i":[[-2.023,-0.939],[-1.946,0],[-2.219,2.164],[0,3.378],[1.6,1.584],[2.271,0],[1.6,-1.636],[1.078,-2.058],[0.133,-0.746],[-0.658,-0.892]],"o":[[1.703,0.58],[3.251,0],[2.271,-2.164],[0,-2.323],[-1.549,-1.636],[-2.271,0],[-1.549,1.584],[-0.755,1.441],[-0.334,1.879],[1.291,1.372]],"v":[[8.761,-23.664],[14.113,-22.629],[21.332,-25.628],[24.739,-33.941],[22.339,-39.8],[16.61,-42.254],[10.803,-39.8],[7.082,-34.681],[5.262,-30.513],[5.586,-25.768]]}],"t":59.229},{"s":[{"c":true,"i":[[-2.589,-0.962],[-2.666,0],[-3.373,3.289],[0,5.133],[2.431,2.406],[3.451,0],[2.431,-2.487],[0,-3.529],[1.177,-1.845],[2.745,-0.963]],"o":[[2.588,0.883],[4.942,0],[3.451,-3.288],[0,-3.529],[-2.353,-2.487],[-3.451,0],[-2.353,2.406],[0,3.128],[-1.176,1.845],[1.961,2.085]],"v":[[-13.478,16.15],[-5.596,17.474],[6.876,12.541],[12.052,-0.091],[8.405,-8.994],[-0.301,-12.724],[-9.125,-8.994],[-12.655,-0.091],[-14.42,7.368],[-20.302,11.579]]}],"t":73.602}]}},{"ty":"tr","a":{"a":0,"k":[11.317,-11.087]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[-11.207,10.814]},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-28],"t":65.518},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[6.781],"t":71.806},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-10.425],"t":76.297},{"s":[0],"t":79.892}]},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]},{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":1,"k":[{"o":{"x":0.167,"y":0},"i":{"x":0,"y":1},"s":[{"c":true,"i":[[-3.859,-14.132],[0,0],[-17.727,9.818],[4.901,10.832],[0,0],[18.607,-9.263]],"o":[[0,0],[3.015,6.681],[8.419,-4.662],[0,0],[-5.958,-9.8],[0,0]],"v":[[-57.167,13.183],[-45.979,40.334],[-17.23,42.11],[1.959,22.411],[-9.662,-6.225],[-39.324,-7.299]]}],"t":60.999},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[{"c":true,"i":[[0.92,-13.268],[0,0],[-7.743,0],[0,7.744],[0,0],[7.743,0]],"o":[[0,0],[0,7.744],[7.743,0],[0,0],[0,-7.743],[0,0]],"v":[[-14.02,-14.02],[-14.02,14.02],[0,28.041],[14.02,14.02],[14.02,-14.02],[0,-28.041]]}],"t":69.111},{"s":[{"c":true,"i":[[0.92,-13.268],[0,0],[-7.743,0],[0,7.744],[0,0],[7.743,0]],"o":[[0,0],[0,7.744],[7.743,0],[0,0],[0,-7.743],[0,0]],"v":[[-14.02,-14.02],[-14.02,14.02],[0,28.041],[14.02,14.02],[14.02,-14.02],[0,-28.041]]}],"t":71.806}]}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[14.767,-13.066]},"r":{"a":0,"k":45},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]},{"ty":"mm","mm":2},{"ty":"gf","e":{"a":0,"k":[0,-90.912]},"g":{"p":3,"k":{"a":0,"k":[0.608,0.67843139,0.44705883,1,0.804,0.764705895,0.588235305,0.9960784300000001,1,0.8509804,0.72941178,0.99215686]}},"t":2,"a":{"a":0,"k":0},"h":{"a":0,"k":0},"s":{"a":0,"k":[0,-24.366]},"r":1,"o":{"a":0,"k":100}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]}],"ind":6,"parent":4},{"ty":4,"sr":1,"st":-22,"op":64,"ip":0,"ln":"3284","hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[82.965,82.965,100]},"p":{"a":1,"k":[{"o":{"x":0.2,"y":0},"i":{"x":0,"y":1},"s":[300.107,50.038,0],"t":0.03},{"s":[424.807,50.038,0],"t":39}]},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-100],"t":0.03},{"s":[0],"t":72.275}]},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"shapes":[{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":1,"k":[{"o":{"x":0.531,"y":0},"i":{"x":0.833,"y":1},"s":[{"c":true,"i":[[0,0],[0,-7.509],[-5.588,-1.677],[0,-0.053],[0.051,-0.016],[0,-6.152],[-7.484,0],[0,0],[0,7.509],[5.644,1.642],[0,0.038],[-0.037,0.011],[0,6.193],[7.484,0]],"o":[[-7.484,0],[0,6.152],[0.051,0.016],[0,0.053],[-5.588,1.677],[0,7.509],[0,0],[7.484,0],[0,-6.193],[-0.037,-0.011],[0,-0.038],[5.644,-1.642],[0,-7.509],[0,0]],"v":[[-12.266,-26.739],[-25.817,-13.143],[-16.157,-0.116],[-16.071,0],[-16.157,0.116],[-25.817,13.143],[-12.266,26.739],[12.266,26.739],[25.817,13.143],[16.047,0.083],[15.984,0],[16.047,-0.083],[25.817,-13.143],[12.266,-26.739]]}],"t":59.229},{"o":{"x":0.167,"y":0},"i":{"x":0,"y":1},"s":[{"c":true,"i":[[0,0],[2.902,-6.432],[1.29,-4.223],[0.005,-0.054],[0.029,-0.045],[-0.206,-3.853],[-6.332,-1.267],[0,0],[-1.842,6.121],[-1.014,3.996],[-0.004,0.039],[-0.007,0.037],[-1.148,6.174],[7.506,0.843]],"o":[[-8.34,-0.014],[-2.196,4.982],[-0.013,0.04],[-0.005,0.054],[-3.778,5.763],[0.197,6.089],[0,0],[7.507,0.844],[1.898,-5.882],[0.008,-0.029],[0.004,-0.04],[0.981,-3.016],[1.184,-6.76],[0,0]],"v":[[30.357,-30.69],[13.85,-20.51],[10.618,-7.55],[10.693,-7.423],[10.461,-7.387],[4.281,7.285],[14.804,21.823],[22.067,20.64],[36.336,8.305],[39.794,-4.348],[40.365,-5.661],[39.81,-4.517],[44.645,-16.357],[34.196,-31.375]]}],"t":63.999},{"s":[{"c":true,"i":[[0,0],[5.485,-4.576],[4.012,-3.855],[0.025,-0.047],[0.04,-0.036],[1.114,-3.081],[-5.161,-3.551],[0,0],[-4.191,4.598],[-3.636,3.707],[-0.018,0.034],[-0.014,0.036],[-3.434,5.153],[6.621,3.489]],"o":[[-7.842,-2.865],[-4.19,3.496],[-0.038,0.037],[-0.024,0.047],[-5.13,4.691],[-1.902,5.26],[0,0],[6.621,3.489],[4.171,-4.577],[0.026,-0.027],[0.018,-0.034],[1.037,-2.646],[3.68,-5.522],[0,0]],"v":[[39.364,-34.249],[20.037,-31.413],[10.01,-20.884],[10.032,-20.742],[9.777,-20.805],[-0.342,-9.408],[3.683,7.437],[7.386,8.624],[24.963,2.663],[35.158,-7.446],[36.266,-8.673],[35.235,-7.593],[42.842,-16.342],[39.067,-33.687]]}],"t":68.999}]}},{"ty":"gf","e":{"a":0,"k":[0,-62.001]},"g":{"p":3,"k":{"a":0,"k":[0.523,1,0.80000001,0,0.762,1,0.866666675,0.141176475,1,1,0.93333334,0.28235295]}},"t":2,"a":{"a":0,"k":0},"h":{"a":0,"k":0},"s":{"a":0,"k":[0,-17.609]},"r":1,"o":{"a":0,"k":100}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]}],"ind":7},{"ty":3,"sr":1,"st":0,"op":151,"ip":0,"hd":true,"ln":"5219","hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[50,50,50]},"s":{"a":0,"k":[60.045,60.045,98.362]},"p":{"a":0,"k":[176.5,50,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"ind":8},{"ty":4,"sr":1,"st":-27,"op":151,"ip":59,"ln":"3283","hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0]},"s":{"a":1,"k":[{"s":[106,106,100.952],"i":{"x":[0.607,0.607,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[-0.003,-0.003,0]},"t":86.999},{"s":[0,0,100],"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":149.999}]},"p":{"a":1,"k":[{"o":{"x":0.76,"y":0.002},"i":{"x":0.331,"y":0.998},"s":[50,50,0],"t":116.999},{"s":[256.344,48.864,0],"t":149.999}]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"shapes":[{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":1,"k":[{"o":{"x":0.531,"y":0},"i":{"x":0,"y":1},"s":[{"c":true,"i":[[-2.833,0.021],[-0.703,0],[-1.723,0.433],[-0.57,0.482],[-1.951,1.753],[-1.416,2.734],[-0.327,3.753],[0,4.568],[4.092,4.092],[5.874,0],[4.092,-4.092],[0.75,-5.838],[0.128,-1.737],[-0.961,-2.747],[-2.479,-2.982],[-4.026,-1.816]],"o":[[0.643,-0.005],[0.653,0],[0.628,-0.159],[1.85,-1.566],[2.051,-1.841],[1.715,-3.308],[0.303,-3.483],[0,-5.875],[-4.092,-4.092],[-5.875,0],[-4.092,4.092],[-0.442,3.44],[-0.247,3.367],[1.382,3.953],[1.427,1.717],[1.809,0.715]],"v":[[-4.445,28.048],[-0.275,28.125],[5.47,27.198],[9.975,25.166],[13.501,22.084],[17.589,16.497],[20.702,4.997],[20.8,-6.412],[14.537,-21.362],[-0.412,-27.5],[-15.362,-21.362],[-23.25,-8.037],[-24.128,2.883],[-23.039,13.747],[-17.802,22.158],[-11.187,27.091]]}],"t":54.124},{"s":[{"c":true,"i":[[-0.667,-0.533],[-0.933,0],[-0.7,0.5],[-0.333,0.933],[-1.833,3.167],[-3.6,4.8],[-2.3,4.033],[0,6.067],[5.433,5.433],[7.8,0],[5.433,-5.433],[0,-7.8],[-2.1,-4],[-3.4,-4.4],[-1.9,-3.267],[-1.267,-3.733]],"o":[[0.667,0.533],[0.867,0],[0.7,-0.5],[1.2,-3.533],[1.833,-3.167],[3,-3.933],[2.3,-4.033],[0,-7.8],[-5.433,-5.433],[-7.8,0],[-5.433,5.433],[0,5.667],[2.1,4],[3.4,4.4],[1.9,3.267],[0.333,0.867]],"v":[[-2.4,39.2],[0,40],[2.35,39.25],[3.9,37.1],[8.45,27.05],[16.6,15.1],[24.55,3.15],[28,-12],[19.85,-31.85],[0,-40],[-19.85,-31.85],[-28,-12],[-24.85,2.5],[-16.6,15.1],[-8.65,26.6],[-3.9,37.1]]}],"t":68.498}]}},{"ty":"sh","d":1,"ks":{"a":1,"k":[{"o":{"x":0.531,"y":0},"i":{"x":0,"y":1},"s":[{"c":true,"i":[[1.933,-1.933],[2.8,0],[1.933,1.933],[0,2.8],[-1.933,1.933],[-2.8,0],[-1.933,-1.933],[0,-2.8]],"o":[[-1.933,1.933],[-2.8,0],[-1.933,-1.933],[0,-2.8],[1.933,-1.933],[2.8,0],[1.933,1.933],[0,2.8]],"v":[[4.725,16.725],[-2.375,19.625],[-9.475,16.725],[-12.375,9.625],[-9.475,2.525],[-2.375,-0.375],[4.725,2.525],[7.625,9.625]]}],"t":55.969},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[{"c":true,"i":[[1.933,-1.933],[2.8,0],[1.933,1.933],[0,2.8],[-1.933,1.933],[-2.8,0],[-1.933,-1.933],[0,-2.8]],"o":[[-1.933,1.933],[-2.8,0],[-1.933,-1.933],[0,-2.8],[1.933,-1.933],[2.8,0],[1.933,1.933],[0,2.8]],"v":[[7.1,-10.15],[0,-7.25],[-7.1,-10.15],[-10,-17.25],[-7.1,-24.35],[0,-27.25],[7.1,-24.35],[10,-17.25]]}],"t":64.48},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[{"c":true,"i":[[1.933,-1.933],[2.8,0],[1.933,1.933],[0,2.8],[-1.933,1.933],[-2.8,0],[-1.933,-1.933],[0,-2.8]],"o":[[-1.933,1.933],[-2.8,0],[-1.933,-1.933],[0,-2.8],[1.933,-1.933],[2.8,0],[1.933,1.933],[0,2.8]],"v":[[7.35,-1.15],[0.25,1.75],[-6.85,-1.15],[-9.75,-8.25],[-6.85,-15.35],[0.25,-18.25],[7.35,-15.35],[10.25,-8.25]]}],"t":69.798},{"s":[{"c":true,"i":[[1.933,-1.933],[2.8,0],[1.933,1.933],[0,2.8],[-1.933,1.933],[-2.8,0],[-1.933,-1.933],[0,-2.8]],"o":[[-1.933,1.933],[-2.8,0],[-1.933,-1.933],[0,-2.8],[1.933,-1.933],[2.8,0],[1.933,1.933],[0,2.8]],"v":[[7.1,-4.9],[0,-2],[-7.1,-4.9],[-10,-12],[-7.1,-19.1],[0,-22],[7.1,-19.1],[10,-12]]}],"t":72.991}]}},{"ty":"gf","e":{"a":0,"k":[0,-74.488]},"g":{"p":3,"k":{"a":0,"k":[0.596,0,0.68627453,0.34117648,0.798,0.23529412,0.73725492,0.67058824,1,0.47058824,0.78823531,1]}},"t":2,"a":{"a":0,"k":0},"h":{"a":0,"k":0},"s":{"a":0,"k":[0,-26.341]},"r":1,"o":{"a":0,"k":100}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]}],"ind":9,"parent":8},{"ty":4,"sr":1,"st":-28,"op":59,"ip":0,"ln":"3282","hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0]},"s":{"a":1,"k":[{"s":[152.579,152.579,100.66],"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.531,0.531,0.531],"y":[0,0,0]},"t":54.124},{"s":[154.85,154.85,100.66],"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":68.498}]},"p":{"a":1,"k":[{"o":{"x":0.2,"y":0},"i":{"x":0,"y":1},"s":[254.912,50.568,0],"t":0.03},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[48.296,50.568,0],"t":39.143},{"o":{"x":0.531,"y":0},"i":{"x":0.833,"y":1},"s":[48.296,50.568,0],"t":54.124},{"s":[50.568,36.938,0],"t":68.498}]},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[57],"t":0.204},{"s":[-43],"t":68.498}]},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"shapes":[{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":0,"k":{"c":true,"i":[[8.897,8.897],[8.897,-8.897],[0,0],[-8.897,-8.897],[-8.897,8.897],[0,0]],"o":[[-8.897,-8.897],[0,0],[-8.897,8.897],[8.897,8.897],[0,0],[8.897,-8.897]],"v":[[19.827,-19.827],[-12.392,-19.827],[-19.827,-12.392],[-19.827,19.827],[12.392,19.827],[19.827,12.392]]}}},{"ty":"gf","e":{"a":0,"k":[0,-63.018]},"g":{"p":3,"k":{"a":0,"k":[0.608,0,0.68627453,0.34117648,0.804,0.23529412,0.73725492,0.67058824,1,0.47058824,0.78823531,1]}},"t":2,"a":{"a":0,"k":0},"h":{"a":0,"k":0},"s":{"a":0,"k":[0,-17.451]},"r":1,"o":{"a":0,"k":100}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]}],"ind":10,"parent":8},{"ty":4,"sr":1,"st":0,"op":151,"ip":54,"ln":"4091","hasMask":true,"ao":0,"ks":{"a":{"a":0,"k":[0,0]},"s":{"a":1,"k":[{"s":[83,83,98.81],"i":{"x":[0.607,0.607,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[-0.003,-0.003,0]},"t":86.999},{"s":[0,0,0],"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":149.999}]},"p":{"a":1,"k":[{"o":{"x":0.76,"y":0.003},"i":{"x":0.331,"y":0.996},"s":[78,51.002,0],"t":116.999},{"s":[298,51.002,0],"t":149.999}]},"r":{"a":1,"k":[{"o":{"x":0.257,"y":0.425},"i":{"x":0.667,"y":1},"s":[-0.008],"t":50},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[10.566],"t":55.833},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[-1.636],"t":60.5},{"s":[-0.008],"t":63.999}]},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"masksProperties":[{"inv":false,"mode":"s","x":{"a":0,"k":0},"o":{"a":0,"k":100},"pt":{"a":1,"k":[{"o":{"x":0.76,"y":0},"i":{"x":0.331,"y":1},"s":[{"c":true,"i":[[4.774,0],[0,-4.774],[-4.773,0],[0,4.773]],"o":[[-4.773,0],[0,4.773],[4.774,0],[0,-4.774]],"v":[[61.301,-6.879],[52.658,1.765],[61.301,10.408],[69.945,1.765]]}],"t":45},{"s":[{"c":true,"i":[[11.563,0],[0,-11.563],[-11.564,0],[0,11.564]],"o":[[-11.564,0],[0,11.564],[11.563,0],[0,-11.563]],"v":[[-16.937,-20.687],[-37.875,0.25],[-16.937,21.188],[4,0.25]]}],"t":63.999}]}}],"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":1,"k":[{"o":{"x":0.76,"y":0},"i":{"x":0.331,"y":1},"s":[{"c":true,"i":[[9.853,0],[0,0],[0,-9.852],[-9.853,0],[0,0],[0,9.852]],"o":[[0,0],[-9.853,0],[0,9.853],[0,0],[9.853,0],[0,-9.853]],"v":[[28.426,-15.917],[-12.645,-16.347],[-30.485,1.492],[-12.645,19.332],[28.426,19.762],[46.266,1.923]]}],"t":48},{"s":[{"c":true,"i":[[16.569,0],[0,0],[0,-16.569],[-16.569,0],[0,0],[0,16.569]],"o":[[0,0],[-16.569,0],[0,16.569],[0,0],[16.569,0],[0,-16.569]],"v":[[17.5,-30],[-17.5,-30],[-47.5,0],[-17.5,30],[17.5,30],[47.5,0]]}],"t":58}]}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]},{"ty":"gf","e":{"a":0,"k":[-0.314,37.699]},"g":{"p":3,"k":{"a":0,"k":[0.523,0.19215687,0.52549022,1,0.762,0.427450995,0.5921568850000001,1,1,0.66274512,0.65882355,1]}},"t":2,"a":{"a":0,"k":-53.8},"h":{"a":0,"k":48.027},"s":{"a":0,"k":[-0.367,-36.38]},"r":1,"o":{"a":0,"k":100}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]}],"ind":11},{"ty":4,"sr":1,"st":-33,"op":54,"ip":0,"ln":"3280","hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0]},"s":{"a":1,"k":[{"s":[102,102,99.029],"i":{"x":[0.833,0.833,0.833],"y":[0.817,0.817,2.094]},"o":{"x":[0.8,0.8,0.8],"y":[0,0,0]},"t":47.999},{"s":[81,81,102.532],"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.8],"y":[0,0,0]},"t":52.999}]},"p":{"a":1,"k":[{"o":{"x":0.2,"y":0},"i":{"x":0,"y":1},"s":[302.499,50,0],"t":0},{"s":[78.499,50,0],"t":39.016}]},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[295],"t":0},{"o":{"x":0.333,"y":0},"i":{"x":0.833,"y":1},"s":[131.426],"t":59.678},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[136.078],"t":63.272},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[133.831],"t":66.865},{"s":[135],"t":70.458}]},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"shapes":[{"ty":"gr","it":[{"ty":"sh","d":1,"ks":{"a":1,"k":[{"o":{"x":0.2,"y":0},"i":{"x":0.833,"y":1},"s":[{"c":true,"i":[[0,0],[13.974,-6.069],[0,0],[4.266,1.853],[0,0],[-6.069,-13.974],[0,0],[1.853,-4.266],[0,0],[-13.974,6.069],[0,0],[-4.266,-1.853],[0,0],[6.069,13.974],[0,0],[-1.853,4.266]],"o":[[6.069,-13.974],[0,0],[-4.266,1.853],[0,0],[-13.974,-6.069],[0,0],[1.853,4.266],[0,0],[-6.069,13.974],[0,0],[4.266,-1.853],[0,0],[13.974,6.069],[0,0],[-1.853,-4.266],[0,0]],"v":[[31.085,-8.998],[8.998,-31.085],[6.688,-30.082],[-6.688,-30.082],[-8.998,-31.085],[-31.085,-8.998],[-30.082,-6.688],[-30.082,6.688],[-31.085,8.998],[-8.998,31.085],[-6.688,30.082],[6.688,30.082],[8.998,31.085],[31.085,8.998],[30.082,6.688],[30.082,-6.688]]}],"t":47.999},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[{"c":true,"i":[[0,0],[14.476,0.106],[0,0],[3.812,-0.44],[0.695,-0.502],[-3.692,-12.19],[0,0],[-0.515,-4.783],[0,0],[-13.687,-1.605],[0,0],[-4.005,-1.588],[0,0],[2.569,12.791],[0.375,1.38],[0.417,3.887]],"o":[[-2.834,-11.962],[0,0],[-4.216,0.571],[0,0],[-7.946,0.447],[0,0],[1.058,3.332],[0,0],[-1.168,10.914],[0,0],[5.101,1.105],[0,0],[13.518,4.407],[0,0],[-1.637,-4.494],[0,0]],"v":[[30.424,-10.755],[3.721,-33.252],[-1.444,-33.085],[-12.917,-31.92],[-18.273,-30.888],[-33.542,-9.139],[-32.96,-5.284],[-31.282,6.274],[-30.728,12.548],[-9.315,32.857],[-4.432,33.814],[7.9,37.12],[11.411,37.746],[36.843,14.781],[35.975,9.185],[32.336,-3.97]]}],"t":50.041},{"o":{"x":0.167,"y":0},"i":{"x":0,"y":1},"s":[{"c":true,"i":[[0,0],[12.353,-0.877],[0,0],[3.357,-0.476],[2.674,-0.235],[-2.2,-11.073],[0,0],[-0.696,-4.461],[0,0],[-13.508,-6.418],[0,0],[-3.839,-1.421],[0,0],[0.374,12.049],[0.609,2.246],[1.841,3.648]],"o":[[-6.127,-11.297],[0,0],[-3.562,0.36],[0,0],[-8.046,2.656],[0,0],[0.56,2.746],[0,0],[2.791,9.258],[0,0],[5.625,2.959],[0,0],[13.232,3.366],[0,0],[-1.503,-4.636],[0,0]],"v":[[29.743,-10.701],[-0.633,-34.518],[-5.256,-34.451],[-14.251,-33.431],[-23.516,-31.899],[-35.174,-9.845],[-34.059,-4.582],[-31.927,5.208],[-29.234,13.455],[-8.504,34.092],[-3.739,36.025],[8.659,41.534],[12.925,41.923],[40.454,18.408],[39.672,10.751],[34.602,-2.856]]}],"t":51.062},{"s":[{"c":true,"i":[[0,0],[10.69,-1.902],[0,0],[2.711,-1.825],[1.749,-1.265],[-0.086,-9.487],[0,0],[-2.089,-4.567],[0,0],[-13.254,-13.244],[0,0],[-3.606,-1.185],[0,0],[-2.738,10.997],[0.942,3.474],[3.86,3.31]],"o":[[-12.449,-12.459],[0,0],[-3.419,0.472],[0,0],[-2.489,1.791],[0,0],[-0.146,1.915],[0,0],[6.264,6.274],[0,0],[6.368,5.591],[0,0],[12.828,1.888],[0,0],[-1.312,-4.839],[0,0]],"v":[[29.288,-10.266],[-8.317,-36.209],[-13.189,-36.001],[-20.293,-33.616],[-25.607,-30.025],[-37.269,-9.352],[-37.326,-3.154],[-34.434,6.181],[-26.582,15.885],[-8.234,35.736],[-2.939,41.736],[9.737,47.794],[15.071,47.848],[45.575,23.551],[44.914,12.972],[37.073,-0.762]]}],"t":59.229}]}},{"ty":"gf","e":{"a":0,"k":[0,-77.352]},"g":{"p":3,"k":{"a":0,"k":[0.523,0.19215687,0.52549022,1,0.762,0.427450995,0.5921568850000001,1,1,0.66274512,0.65882355,1]}},"t":2,"a":{"a":0,"k":0},"h":{"a":0,"k":0},"s":{"a":0,"k":[0,-21.42]},"r":1,"o":{"a":0,"k":100}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]}],"ind":12}],"v":"5.7.0","fr":30,"op":151,"ip":0,"assets":[],"markers":[{"cm":"5_sec_Lottie","tm":149.999,"dr":0}]}
|
|
@@ -85,6 +85,35 @@ class HttpService {
|
|
|
85
85
|
this.requestQueue = new _requestUtils.RequestQueue(config.maxConcurrentRequests || 10, config.requestQueueSize || 100);
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
+
/**
|
|
89
|
+
* Robust FormData detection that works in browser and Node.js environments
|
|
90
|
+
* Checks multiple conditions to handle different FormData implementations
|
|
91
|
+
*/
|
|
92
|
+
isFormData(data) {
|
|
93
|
+
if (!data) {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// Primary check: instanceof FormData (works in browser and Node.js with proper polyfills)
|
|
98
|
+
if (data instanceof FormData) {
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Fallback: Check constructor name (handles Node.js polyfills like form-data)
|
|
103
|
+
if (typeof data === 'object' && data !== null) {
|
|
104
|
+
const constructorName = data.constructor?.name;
|
|
105
|
+
if (constructorName === 'FormData' || constructorName === 'FormDataImpl') {
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// Additional check: Look for FormData-like methods
|
|
110
|
+
if (typeof data.append === 'function' && typeof data.get === 'function' && typeof data.has === 'function') {
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
|
|
88
117
|
/**
|
|
89
118
|
* Main request method - handles everything in one place
|
|
90
119
|
*/
|
|
@@ -127,8 +156,8 @@ class HttpService {
|
|
|
127
156
|
// Get auth token (with auto-refresh)
|
|
128
157
|
const authHeader = await this.getAuthHeader();
|
|
129
158
|
|
|
130
|
-
// Determine if data is FormData
|
|
131
|
-
const isFormData = data
|
|
159
|
+
// Determine if data is FormData using robust detection
|
|
160
|
+
const isFormData = this.isFormData(data);
|
|
132
161
|
|
|
133
162
|
// Make fetch request
|
|
134
163
|
const controller = new AbortController();
|
|
@@ -137,7 +166,7 @@ class HttpService {
|
|
|
137
166
|
signal.addEventListener('abort', () => controller.abort());
|
|
138
167
|
}
|
|
139
168
|
|
|
140
|
-
// Build headers
|
|
169
|
+
// Build headers - start with defaults
|
|
141
170
|
const headers = {
|
|
142
171
|
'Accept': 'application/json'
|
|
143
172
|
};
|
|
@@ -146,13 +175,29 @@ class HttpService {
|
|
|
146
175
|
if (!isFormData) {
|
|
147
176
|
headers['Content-Type'] = 'application/json';
|
|
148
177
|
}
|
|
178
|
+
|
|
179
|
+
// Add authorization header if available
|
|
149
180
|
if (authHeader) {
|
|
150
181
|
headers['Authorization'] = authHeader;
|
|
151
182
|
}
|
|
183
|
+
|
|
184
|
+
// Merge custom headers if provided
|
|
185
|
+
if (config.headers) {
|
|
186
|
+
Object.entries(config.headers).forEach(([key, value]) => {
|
|
187
|
+
// For FormData, explicitly remove Content-Type if user tries to set it
|
|
188
|
+
// The browser/fetch API will set it automatically with the boundary
|
|
189
|
+
if (isFormData && key.toLowerCase() === 'content-type') {
|
|
190
|
+
this.logger.debug('Ignoring Content-Type header for FormData - will be set automatically');
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
headers[key] = value;
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
const bodyValue = method !== 'GET' && data ? isFormData ? data : JSON.stringify(data) : undefined;
|
|
152
197
|
const response = await fetch(fullUrl, {
|
|
153
198
|
method,
|
|
154
199
|
headers,
|
|
155
|
-
body:
|
|
200
|
+
body: bodyValue,
|
|
156
201
|
signal: controller.signal
|
|
157
202
|
});
|
|
158
203
|
if (timeoutId) clearTimeout(timeoutId);
|
|
@@ -373,6 +418,9 @@ class HttpService {
|
|
|
373
418
|
}
|
|
374
419
|
|
|
375
420
|
// Convenience methods (for backward compatibility)
|
|
421
|
+
/**
|
|
422
|
+
* GET request convenience method
|
|
423
|
+
*/
|
|
376
424
|
async get(url, config) {
|
|
377
425
|
const result = await this.request({
|
|
378
426
|
method: 'GET',
|
|
@@ -383,6 +431,20 @@ class HttpService {
|
|
|
383
431
|
data: result
|
|
384
432
|
};
|
|
385
433
|
}
|
|
434
|
+
|
|
435
|
+
/**
|
|
436
|
+
* POST request convenience method
|
|
437
|
+
* Supports FormData uploads - Content-Type will be set automatically for FormData
|
|
438
|
+
* @param url - Request URL
|
|
439
|
+
* @param data - Request body (can be FormData for file uploads)
|
|
440
|
+
* @param config - Request configuration including optional headers
|
|
441
|
+
* @example
|
|
442
|
+
* ```typescript
|
|
443
|
+
* const formData = new FormData();
|
|
444
|
+
* formData.append('file', file);
|
|
445
|
+
* await api.post('/upload', formData, { headers: { 'X-Custom-Header': 'value' } });
|
|
446
|
+
* ```
|
|
447
|
+
*/
|
|
386
448
|
async post(url, data, config) {
|
|
387
449
|
const result = await this.request({
|
|
388
450
|
method: 'POST',
|
|
@@ -394,6 +456,20 @@ class HttpService {
|
|
|
394
456
|
data: result
|
|
395
457
|
};
|
|
396
458
|
}
|
|
459
|
+
|
|
460
|
+
/**
|
|
461
|
+
* PUT request convenience method
|
|
462
|
+
* Supports FormData uploads - Content-Type will be set automatically for FormData
|
|
463
|
+
* @param url - Request URL
|
|
464
|
+
* @param data - Request body (can be FormData for file uploads)
|
|
465
|
+
* @param config - Request configuration including optional headers
|
|
466
|
+
* @example
|
|
467
|
+
* ```typescript
|
|
468
|
+
* const formData = new FormData();
|
|
469
|
+
* formData.append('file', file);
|
|
470
|
+
* await api.put('/upload', formData, { headers: { 'X-Custom-Header': 'value' } });
|
|
471
|
+
* ```
|
|
472
|
+
*/
|
|
397
473
|
async put(url, data, config) {
|
|
398
474
|
const result = await this.request({
|
|
399
475
|
method: 'PUT',
|
|
@@ -405,6 +481,20 @@ class HttpService {
|
|
|
405
481
|
data: result
|
|
406
482
|
};
|
|
407
483
|
}
|
|
484
|
+
|
|
485
|
+
/**
|
|
486
|
+
* PATCH request convenience method
|
|
487
|
+
* Supports FormData uploads - Content-Type will be set automatically for FormData
|
|
488
|
+
* @param url - Request URL
|
|
489
|
+
* @param data - Request body (can be FormData for file uploads)
|
|
490
|
+
* @param config - Request configuration including optional headers
|
|
491
|
+
* @example
|
|
492
|
+
* ```typescript
|
|
493
|
+
* const formData = new FormData();
|
|
494
|
+
* formData.append('file', file);
|
|
495
|
+
* await api.patch('/upload', formData, { headers: { 'X-Custom-Header': 'value' } });
|
|
496
|
+
* ```
|
|
497
|
+
*/
|
|
408
498
|
async patch(url, data, config) {
|
|
409
499
|
const result = await this.request({
|
|
410
500
|
method: 'PATCH',
|