@oxy.so/services 6.1.0 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (934) hide show
  1. package/README.md +80 -136
  2. package/lib/commonjs/assets/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  3. package/lib/commonjs/assets/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  4. package/lib/commonjs/assets/assets/fonts/icons/manifest.json +5 -20
  5. package/lib/commonjs/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  6. package/lib/commonjs/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  7. package/lib/commonjs/assets/fonts/icons/manifest.json +5 -20
  8. package/lib/commonjs/index.js +21 -15
  9. package/lib/commonjs/index.js.map +1 -1
  10. package/lib/commonjs/ui/boot/runProviderColdBoot.js +2 -1
  11. package/lib/commonjs/ui/boot/runProviderColdBoot.js.map +1 -1
  12. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js +2 -3
  13. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js.map +1 -1
  14. package/lib/commonjs/ui/components/OxyAuthChooser.js +16 -32
  15. package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -1
  16. package/lib/commonjs/ui/components/OxySignInButton.js +1 -1
  17. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  18. package/lib/commonjs/ui/components/OxySignInRequestSurface.js.map +1 -1
  19. package/lib/commonjs/ui/components/ProfileButton.js +1 -1
  20. package/lib/commonjs/ui/components/ProfileButton.js.map +1 -1
  21. package/lib/commonjs/ui/components/SurfaceScreen.js +21 -12
  22. package/lib/commonjs/ui/components/SurfaceScreen.js.map +1 -1
  23. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js +2 -2
  24. package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js.map +1 -1
  25. package/lib/commonjs/ui/components/authChooser/SignInRequestView.js +6 -17
  26. package/lib/commonjs/ui/components/authChooser/SignInRequestView.js.map +1 -1
  27. package/lib/commonjs/ui/components/authChooser/TroubleDisclosure.js +1 -1
  28. package/lib/commonjs/ui/components/authChooser/requestSurfaces.js.map +1 -1
  29. package/lib/commonjs/ui/components/authChooser/signInProgress.js.map +1 -1
  30. package/lib/commonjs/ui/components/authChooser/types.js +0 -8
  31. package/lib/commonjs/ui/components/authChooser/types.js.map +1 -1
  32. package/lib/commonjs/ui/components/signIn/InlineCommonsQr.js +1 -1
  33. package/lib/commonjs/ui/components/signIn/OxyAccountPicker.js +2 -2
  34. package/lib/commonjs/ui/components/signIn/OxyAccountPicker.js.map +1 -1
  35. package/lib/commonjs/ui/components/signIn/OxyAuthScreen.js +11 -5
  36. package/lib/commonjs/ui/components/signIn/OxyAuthScreen.js.map +1 -1
  37. package/lib/commonjs/ui/components/signIn/OxyAuthenticatorPanel.js +325 -0
  38. package/lib/commonjs/ui/components/signIn/OxyAuthenticatorPanel.js.map +1 -0
  39. package/lib/commonjs/ui/components/signIn/OxyDeleteAccountPanel.js +52 -56
  40. package/lib/commonjs/ui/components/signIn/OxyDeleteAccountPanel.js.map +1 -1
  41. package/lib/commonjs/ui/components/signIn/OxyLinkCommonsPanel.js +48 -38
  42. package/lib/commonjs/ui/components/signIn/OxyLinkCommonsPanel.js.map +1 -1
  43. package/lib/commonjs/ui/components/signIn/OxyPasswordPanel.js +141 -0
  44. package/lib/commonjs/ui/components/signIn/OxyPasswordPanel.js.map +1 -0
  45. package/lib/commonjs/ui/components/signIn/OxySignInPanel.js +502 -194
  46. package/lib/commonjs/ui/components/signIn/OxySignInPanel.js.map +1 -1
  47. package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js +211 -42
  48. package/lib/commonjs/ui/components/signIn/OxySignUpPanel.js.map +1 -1
  49. package/lib/commonjs/ui/components/signIn/ReauthStep.js +186 -0
  50. package/lib/commonjs/ui/components/signIn/ReauthStep.js.map +1 -0
  51. package/lib/commonjs/ui/components/signIn/accountFlowParts.js +103 -26
  52. package/lib/commonjs/ui/components/signIn/accountFlowParts.js.map +1 -1
  53. package/lib/commonjs/ui/components/signIn/signInFlowStore.js +50 -0
  54. package/lib/commonjs/ui/components/signIn/signInFlowStore.js.map +1 -0
  55. package/lib/commonjs/ui/components/signIn/signInMethods.js +12 -25
  56. package/lib/commonjs/ui/components/signIn/signInMethods.js.map +1 -1
  57. package/lib/commonjs/ui/context/OxyContext.js +125 -119
  58. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  59. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +11 -10
  60. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  61. package/lib/commonjs/ui/context/useOxyAccountGraph.js +4 -4
  62. package/lib/commonjs/ui/context/useOxyAccountGraph.js.map +1 -1
  63. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js +1 -1
  64. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +19 -9
  65. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  66. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js +4 -4
  67. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  68. package/lib/commonjs/ui/hooks/queries/queryKeys.js +23 -3
  69. package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -1
  70. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +8 -8
  71. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  72. package/lib/commonjs/ui/hooks/queries/useAuthMethods.js +27 -15
  73. package/lib/commonjs/ui/hooks/queries/useAuthMethods.js.map +1 -1
  74. package/lib/commonjs/ui/hooks/queries/useFileQueries.js +5 -2
  75. package/lib/commonjs/ui/hooks/queries/useFileQueries.js.map +1 -1
  76. package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js +8 -8
  77. package/lib/commonjs/ui/hooks/queries/usePaymentQueries.js.map +1 -1
  78. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js +4 -3
  79. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js.map +1 -1
  80. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +6 -6
  81. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
  82. package/lib/commonjs/ui/hooks/useAssets.js +36 -20
  83. package/lib/commonjs/ui/hooks/useAssets.js.map +1 -1
  84. package/lib/commonjs/ui/hooks/useAvatarPicker.js +6 -4
  85. package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +1 -1
  86. package/lib/commonjs/ui/hooks/useDeviceManagement.js +5 -5
  87. package/lib/commonjs/ui/hooks/useDeviceManagement.js.map +1 -1
  88. package/lib/commonjs/ui/hooks/useDeviceSwitcher.js +2 -2
  89. package/lib/commonjs/ui/hooks/useDeviceSwitcher.js.map +1 -1
  90. package/lib/commonjs/ui/hooks/useFileDownloadUrl.js +1 -4
  91. package/lib/commonjs/ui/hooks/useFileDownloadUrl.js.map +1 -1
  92. package/lib/commonjs/ui/hooks/useFollow.js +2 -2
  93. package/lib/commonjs/ui/hooks/useFollow.js.map +1 -1
  94. package/lib/commonjs/ui/hooks/useFollowTarget.js +5 -5
  95. package/lib/commonjs/ui/hooks/useFollowTarget.js.map +1 -1
  96. package/lib/commonjs/ui/hooks/useI18n.js +4 -1
  97. package/lib/commonjs/ui/hooks/useI18n.js.map +1 -1
  98. package/lib/commonjs/ui/hooks/useResolvedFileUrls.js +2 -2
  99. package/lib/commonjs/ui/hooks/useResolvedFileUrls.js.map +1 -1
  100. package/lib/commonjs/ui/hooks/useSessionManagement.js +3 -3
  101. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
  102. package/lib/commonjs/ui/hooks/useSurfaceFrameWidth.js +28 -0
  103. package/lib/commonjs/ui/hooks/useSurfaceFrameWidth.js.map +1 -0
  104. package/lib/commonjs/ui/icons/subsetGlyphMaps.js +0 -15
  105. package/lib/commonjs/ui/icons/subsetGlyphMaps.js.map +1 -1
  106. package/lib/commonjs/ui/navigation/routes.js +6 -4
  107. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  108. package/lib/commonjs/ui/navigation/surfaceRegistry.js +1 -1
  109. package/lib/commonjs/ui/navigation/surfaceRegistry.js.map +1 -1
  110. package/lib/commonjs/ui/oauth/browserBridge.js +247 -0
  111. package/lib/commonjs/ui/oauth/browserBridge.js.map +1 -0
  112. package/lib/commonjs/ui/oauth/completeOAuthCode.js +1 -1
  113. package/lib/commonjs/ui/oauth/completeOAuthCode.js.map +1 -1
  114. package/lib/commonjs/ui/oauth/explicitOAuthConsent.js +1 -1
  115. package/lib/commonjs/ui/oauth/explicitOAuthConsent.js.map +1 -1
  116. package/lib/commonjs/ui/runtime/createOxyRuntime.js +9 -8
  117. package/lib/commonjs/ui/runtime/createOxyRuntime.js.map +1 -1
  118. package/lib/commonjs/ui/runtime/runtimeContext.js.map +1 -1
  119. package/lib/commonjs/ui/screens/AccountMembersScreen.js +7 -7
  120. package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
  121. package/lib/commonjs/ui/screens/AccountSecurityPanelScreen.js +35 -0
  122. package/lib/commonjs/ui/screens/AccountSecurityPanelScreen.js.map +1 -0
  123. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +3 -3
  124. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  125. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +1 -1
  126. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  127. package/lib/commonjs/ui/screens/AppInfoScreen.js +5 -5
  128. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
  129. package/lib/commonjs/ui/screens/AvatarCropScreen.js +3 -3
  130. package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
  131. package/lib/commonjs/ui/screens/ChangeAvatarScreen.js +1 -1
  132. package/lib/commonjs/ui/screens/ChangeAvatarScreen.js.map +1 -1
  133. package/lib/commonjs/ui/screens/CreateAccountScreen.js +1 -1
  134. package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
  135. package/lib/commonjs/ui/screens/DeleteAccountScreen.js +19 -0
  136. package/lib/commonjs/ui/screens/DeleteAccountScreen.js.map +1 -0
  137. package/lib/commonjs/ui/screens/DomainsScreen.js +217 -0
  138. package/lib/commonjs/ui/screens/DomainsScreen.js.map +1 -0
  139. package/lib/commonjs/ui/screens/EditProfileScreen.js +1 -1
  140. package/lib/commonjs/ui/screens/EditProfileScreen.js.map +1 -1
  141. package/lib/commonjs/ui/screens/FileManagementScreen.js +25 -11
  142. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  143. package/lib/commonjs/ui/screens/HelpSupportScreen.js +1 -17
  144. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  145. package/lib/commonjs/ui/screens/LinkCommonsScreen.js +14 -0
  146. package/lib/commonjs/ui/screens/LinkCommonsScreen.js.map +1 -0
  147. package/lib/commonjs/ui/screens/ManageAccountScreen.js +57 -61
  148. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  149. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +52 -62
  150. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  151. package/lib/commonjs/ui/screens/ProfileScreen.js +5 -13
  152. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  153. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +15 -24
  154. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  155. package/lib/commonjs/ui/screens/SignInAuthenticatorScreen.js +14 -0
  156. package/lib/commonjs/ui/screens/SignInAuthenticatorScreen.js.map +1 -0
  157. package/lib/commonjs/ui/screens/SignInPasswordScreen.js +20 -0
  158. package/lib/commonjs/ui/screens/SignInPasswordScreen.js.map +1 -0
  159. package/lib/commonjs/ui/screens/UserListScreen.js +3 -3
  160. package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
  161. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +1 -1
  162. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  163. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +25 -17
  164. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  165. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +2 -2
  166. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  167. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js +8 -14
  168. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  169. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +11 -9
  170. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  171. package/lib/commonjs/ui/session/authStore.js +4 -4
  172. package/lib/commonjs/ui/session/authStore.js.map +1 -1
  173. package/lib/commonjs/ui/session/backgroundSession.js +5 -40
  174. package/lib/commonjs/ui/session/backgroundSession.js.map +1 -1
  175. package/lib/commonjs/ui/session/createSessionClient.js +3 -3
  176. package/lib/commonjs/ui/session/createSessionClient.js.map +1 -1
  177. package/lib/commonjs/ui/session/deviceCredentialTracker.js +42 -0
  178. package/lib/commonjs/ui/session/deviceCredentialTracker.js.map +1 -0
  179. package/lib/commonjs/ui/session/identityBinding.js +3 -3
  180. package/lib/commonjs/ui/session/identityBinding.js.map +1 -1
  181. package/lib/commonjs/ui/session/index.js +6 -6
  182. package/lib/commonjs/ui/session/index.js.map +1 -1
  183. package/lib/commonjs/ui/session/sharedDeviceCredentialStore.js +2 -2
  184. package/lib/commonjs/ui/session/sharedDeviceCredentialStore.js.map +1 -1
  185. package/lib/commonjs/ui/session/tokenTransport.js +3 -3
  186. package/lib/commonjs/ui/session/tokenTransport.js.map +1 -1
  187. package/lib/commonjs/ui/stores/assetStore.js +12 -0
  188. package/lib/commonjs/ui/stores/assetStore.js.map +1 -1
  189. package/lib/commonjs/ui/stores/followStore.js +6 -6
  190. package/lib/commonjs/ui/stores/followStore.js.map +1 -1
  191. package/lib/commonjs/ui/utils/accountDeletionHandoff.js +1 -4
  192. package/lib/commonjs/ui/utils/accountDeletionHandoff.js.map +1 -1
  193. package/lib/commonjs/ui/utils/avatarUtils.js +1 -1
  194. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  195. package/lib/commonjs/ui/utils/deviceCredential.js +11 -4
  196. package/lib/commonjs/ui/utils/deviceCredential.js.map +1 -1
  197. package/lib/commonjs/ui/utils/fileManagement.js +0 -10
  198. package/lib/commonjs/ui/utils/fileManagement.js.map +1 -1
  199. package/lib/commonjs/ui/utils/sessionHelpers.js +2 -2
  200. package/lib/commonjs/ui/utils/sessionHelpers.js.map +1 -1
  201. package/lib/module/assets/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  202. package/lib/module/assets/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  203. package/lib/module/assets/assets/fonts/icons/manifest.json +5 -20
  204. package/lib/module/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  205. package/lib/module/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  206. package/lib/module/assets/fonts/icons/manifest.json +5 -20
  207. package/lib/module/index.js +6 -6
  208. package/lib/module/index.js.map +1 -1
  209. package/lib/module/ui/boot/runProviderColdBoot.js +2 -1
  210. package/lib/module/ui/boot/runProviderColdBoot.js.map +1 -1
  211. package/lib/module/ui/components/OxyAccountDialogScreen.js +2 -3
  212. package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -1
  213. package/lib/module/ui/components/OxyAuthChooser.js +16 -32
  214. package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
  215. package/lib/module/ui/components/OxySignInButton.js +1 -1
  216. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  217. package/lib/module/ui/components/OxySignInRequestSurface.js.map +1 -1
  218. package/lib/module/ui/components/ProfileButton.js +1 -1
  219. package/lib/module/ui/components/ProfileButton.js.map +1 -1
  220. package/lib/module/ui/components/SurfaceScreen.js +21 -12
  221. package/lib/module/ui/components/SurfaceScreen.js.map +1 -1
  222. package/lib/module/ui/components/authChooser/AccountsMenuView.js +1 -1
  223. package/lib/module/ui/components/authChooser/AccountsMenuView.js.map +1 -1
  224. package/lib/module/ui/components/authChooser/SignInRequestView.js +6 -17
  225. package/lib/module/ui/components/authChooser/SignInRequestView.js.map +1 -1
  226. package/lib/module/ui/components/authChooser/TroubleDisclosure.js +1 -1
  227. package/lib/module/ui/components/authChooser/requestSurfaces.js.map +1 -1
  228. package/lib/module/ui/components/authChooser/signInProgress.js.map +1 -1
  229. package/lib/module/ui/components/authChooser/types.js +0 -8
  230. package/lib/module/ui/components/authChooser/types.js.map +1 -1
  231. package/lib/module/ui/components/signIn/InlineCommonsQr.js +1 -1
  232. package/lib/module/ui/components/signIn/OxyAccountPicker.js +1 -1
  233. package/lib/module/ui/components/signIn/OxyAccountPicker.js.map +1 -1
  234. package/lib/module/ui/components/signIn/OxyAuthScreen.js +11 -5
  235. package/lib/module/ui/components/signIn/OxyAuthScreen.js.map +1 -1
  236. package/lib/module/ui/components/signIn/OxyAuthenticatorPanel.js +321 -0
  237. package/lib/module/ui/components/signIn/OxyAuthenticatorPanel.js.map +1 -0
  238. package/lib/module/ui/components/signIn/OxyDeleteAccountPanel.js +54 -58
  239. package/lib/module/ui/components/signIn/OxyDeleteAccountPanel.js.map +1 -1
  240. package/lib/module/ui/components/signIn/OxyLinkCommonsPanel.js +48 -38
  241. package/lib/module/ui/components/signIn/OxyLinkCommonsPanel.js.map +1 -1
  242. package/lib/module/ui/components/signIn/OxyPasswordPanel.js +136 -0
  243. package/lib/module/ui/components/signIn/OxyPasswordPanel.js.map +1 -0
  244. package/lib/module/ui/components/signIn/OxySignInPanel.js +504 -194
  245. package/lib/module/ui/components/signIn/OxySignInPanel.js.map +1 -1
  246. package/lib/module/ui/components/signIn/OxySignUpPanel.js +212 -43
  247. package/lib/module/ui/components/signIn/OxySignUpPanel.js.map +1 -1
  248. package/lib/module/ui/components/signIn/ReauthStep.js +181 -0
  249. package/lib/module/ui/components/signIn/ReauthStep.js.map +1 -0
  250. package/lib/module/ui/components/signIn/accountFlowParts.js +97 -26
  251. package/lib/module/ui/components/signIn/accountFlowParts.js.map +1 -1
  252. package/lib/module/ui/components/signIn/signInFlowStore.js +44 -0
  253. package/lib/module/ui/components/signIn/signInFlowStore.js.map +1 -0
  254. package/lib/module/ui/components/signIn/signInMethods.js +12 -25
  255. package/lib/module/ui/components/signIn/signInMethods.js.map +1 -1
  256. package/lib/module/ui/context/OxyContext.js +121 -115
  257. package/lib/module/ui/context/OxyContext.js.map +1 -1
  258. package/lib/module/ui/context/hooks/useAuthOperations.js +7 -7
  259. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  260. package/lib/module/ui/context/useOxyAccountGraph.js +4 -4
  261. package/lib/module/ui/context/useOxyAccountGraph.js.map +1 -1
  262. package/lib/module/ui/hooks/mutations/mutationFactory.js +1 -1
  263. package/lib/module/ui/hooks/mutations/useAccountMutations.js +19 -9
  264. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  265. package/lib/module/ui/hooks/mutations/useServicesMutations.js +4 -4
  266. package/lib/module/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  267. package/lib/module/ui/hooks/queries/queryKeys.js +23 -3
  268. package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -1
  269. package/lib/module/ui/hooks/queries/useAccountQueries.js +8 -8
  270. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  271. package/lib/module/ui/hooks/queries/useAuthMethods.js +25 -14
  272. package/lib/module/ui/hooks/queries/useAuthMethods.js.map +1 -1
  273. package/lib/module/ui/hooks/queries/useFileQueries.js +5 -2
  274. package/lib/module/ui/hooks/queries/useFileQueries.js.map +1 -1
  275. package/lib/module/ui/hooks/queries/usePaymentQueries.js +8 -8
  276. package/lib/module/ui/hooks/queries/usePaymentQueries.js.map +1 -1
  277. package/lib/module/ui/hooks/queries/useSecurityQueries.js +4 -3
  278. package/lib/module/ui/hooks/queries/useSecurityQueries.js.map +1 -1
  279. package/lib/module/ui/hooks/queries/useServicesQueries.js +6 -6
  280. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
  281. package/lib/module/ui/hooks/useAssets.js +36 -20
  282. package/lib/module/ui/hooks/useAssets.js.map +1 -1
  283. package/lib/module/ui/hooks/useAvatarPicker.js +6 -4
  284. package/lib/module/ui/hooks/useAvatarPicker.js.map +1 -1
  285. package/lib/module/ui/hooks/useDeviceManagement.js +4 -4
  286. package/lib/module/ui/hooks/useDeviceManagement.js.map +1 -1
  287. package/lib/module/ui/hooks/useDeviceSwitcher.js +2 -2
  288. package/lib/module/ui/hooks/useDeviceSwitcher.js.map +1 -1
  289. package/lib/module/ui/hooks/useFileDownloadUrl.js +1 -4
  290. package/lib/module/ui/hooks/useFileDownloadUrl.js.map +1 -1
  291. package/lib/module/ui/hooks/useFollow.js +2 -2
  292. package/lib/module/ui/hooks/useFollow.js.map +1 -1
  293. package/lib/module/ui/hooks/useFollowTarget.js +5 -5
  294. package/lib/module/ui/hooks/useFollowTarget.js.map +1 -1
  295. package/lib/module/ui/hooks/useI18n.js +6 -3
  296. package/lib/module/ui/hooks/useI18n.js.map +1 -1
  297. package/lib/module/ui/hooks/useResolvedFileUrls.js +2 -2
  298. package/lib/module/ui/hooks/useResolvedFileUrls.js.map +1 -1
  299. package/lib/module/ui/hooks/useSessionManagement.js +3 -3
  300. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
  301. package/lib/module/ui/hooks/useSurfaceFrameWidth.js +24 -0
  302. package/lib/module/ui/hooks/useSurfaceFrameWidth.js.map +1 -0
  303. package/lib/module/ui/icons/subsetGlyphMaps.js +0 -15
  304. package/lib/module/ui/icons/subsetGlyphMaps.js.map +1 -1
  305. package/lib/module/ui/navigation/routes.js +6 -4
  306. package/lib/module/ui/navigation/routes.js.map +1 -1
  307. package/lib/module/ui/navigation/surfaceRegistry.js +1 -1
  308. package/lib/module/ui/navigation/surfaceRegistry.js.map +1 -1
  309. package/lib/module/ui/oauth/browserBridge.js +239 -0
  310. package/lib/module/ui/oauth/browserBridge.js.map +1 -0
  311. package/lib/module/ui/oauth/completeOAuthCode.js +1 -1
  312. package/lib/module/ui/oauth/completeOAuthCode.js.map +1 -1
  313. package/lib/module/ui/oauth/explicitOAuthConsent.js +1 -1
  314. package/lib/module/ui/oauth/explicitOAuthConsent.js.map +1 -1
  315. package/lib/module/ui/runtime/createOxyRuntime.js +4 -3
  316. package/lib/module/ui/runtime/createOxyRuntime.js.map +1 -1
  317. package/lib/module/ui/runtime/runtimeContext.js.map +1 -1
  318. package/lib/module/ui/screens/AccountMembersScreen.js +7 -7
  319. package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
  320. package/lib/module/ui/screens/AccountSecurityPanelScreen.js +32 -0
  321. package/lib/module/ui/screens/AccountSecurityPanelScreen.js.map +1 -0
  322. package/lib/module/ui/screens/AccountSettingsScreen.js +3 -3
  323. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  324. package/lib/module/ui/screens/AccountVerificationScreen.js +1 -1
  325. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  326. package/lib/module/ui/screens/AppInfoScreen.js +5 -5
  327. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  328. package/lib/module/ui/screens/AvatarCropScreen.js +3 -3
  329. package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
  330. package/lib/module/ui/screens/ChangeAvatarScreen.js +1 -1
  331. package/lib/module/ui/screens/ChangeAvatarScreen.js.map +1 -1
  332. package/lib/module/ui/screens/CreateAccountScreen.js +1 -1
  333. package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
  334. package/lib/module/ui/screens/DeleteAccountScreen.js +17 -0
  335. package/lib/module/ui/screens/DeleteAccountScreen.js.map +1 -0
  336. package/lib/module/ui/screens/DomainsScreen.js +212 -0
  337. package/lib/module/ui/screens/DomainsScreen.js.map +1 -0
  338. package/lib/module/ui/screens/EditProfileScreen.js +1 -1
  339. package/lib/module/ui/screens/EditProfileScreen.js.map +1 -1
  340. package/lib/module/ui/screens/FileManagementScreen.js +25 -11
  341. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  342. package/lib/module/ui/screens/HelpSupportScreen.js +1 -17
  343. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  344. package/lib/module/ui/screens/LinkCommonsScreen.js +12 -0
  345. package/lib/module/ui/screens/LinkCommonsScreen.js.map +1 -0
  346. package/lib/module/ui/screens/ManageAccountScreen.js +58 -62
  347. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  348. package/lib/module/ui/screens/PrivacySettingsScreen.js +53 -63
  349. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  350. package/lib/module/ui/screens/ProfileScreen.js +5 -13
  351. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  352. package/lib/module/ui/screens/SearchSettingsScreen.js +16 -25
  353. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  354. package/lib/module/ui/screens/SignInAuthenticatorScreen.js +12 -0
  355. package/lib/module/ui/screens/SignInAuthenticatorScreen.js.map +1 -0
  356. package/lib/module/ui/screens/SignInPasswordScreen.js +18 -0
  357. package/lib/module/ui/screens/SignInPasswordScreen.js.map +1 -0
  358. package/lib/module/ui/screens/UserListScreen.js +3 -3
  359. package/lib/module/ui/screens/UserListScreen.js.map +1 -1
  360. package/lib/module/ui/screens/WelcomeNewUserScreen.js +1 -1
  361. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  362. package/lib/module/ui/screens/trust/TrustCenterScreen.js +26 -18
  363. package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  364. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +2 -2
  365. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  366. package/lib/module/ui/screens/trust/TrustRewardsScreen.js +9 -15
  367. package/lib/module/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  368. package/lib/module/ui/screens/trust/TrustRulesScreen.js +12 -10
  369. package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  370. package/lib/module/ui/session/authStore.js +1 -1
  371. package/lib/module/ui/session/authStore.js.map +1 -1
  372. package/lib/module/ui/session/backgroundSession.js +5 -40
  373. package/lib/module/ui/session/backgroundSession.js.map +1 -1
  374. package/lib/module/ui/session/createSessionClient.js +1 -1
  375. package/lib/module/ui/session/createSessionClient.js.map +1 -1
  376. package/lib/module/ui/session/deviceCredentialTracker.js +38 -0
  377. package/lib/module/ui/session/deviceCredentialTracker.js.map +1 -0
  378. package/lib/module/ui/session/identityBinding.js +1 -1
  379. package/lib/module/ui/session/identityBinding.js.map +1 -1
  380. package/lib/module/ui/session/index.js +1 -1
  381. package/lib/module/ui/session/index.js.map +1 -1
  382. package/lib/module/ui/session/sharedDeviceCredentialStore.js +1 -1
  383. package/lib/module/ui/session/sharedDeviceCredentialStore.js.map +1 -1
  384. package/lib/module/ui/session/tokenTransport.js +3 -3
  385. package/lib/module/ui/session/tokenTransport.js.map +1 -1
  386. package/lib/module/ui/stores/assetStore.js +12 -0
  387. package/lib/module/ui/stores/assetStore.js.map +1 -1
  388. package/lib/module/ui/stores/followStore.js +6 -6
  389. package/lib/module/ui/stores/followStore.js.map +1 -1
  390. package/lib/module/ui/utils/accountDeletionHandoff.js +2 -5
  391. package/lib/module/ui/utils/accountDeletionHandoff.js.map +1 -1
  392. package/lib/module/ui/utils/avatarUtils.js +1 -1
  393. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  394. package/lib/module/ui/utils/deviceCredential.js +10 -3
  395. package/lib/module/ui/utils/deviceCredential.js.map +1 -1
  396. package/lib/module/ui/utils/fileManagement.js +0 -9
  397. package/lib/module/ui/utils/fileManagement.js.map +1 -1
  398. package/lib/module/ui/utils/sessionHelpers.js +2 -2
  399. package/lib/module/ui/utils/sessionHelpers.js.map +1 -1
  400. package/lib/typescript/commonjs/index.d.ts +5 -5
  401. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  402. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts +3 -2
  403. package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  404. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts +2 -3
  405. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  406. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts +8 -7
  407. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
  408. package/lib/typescript/commonjs/ui/components/OxySignInRequestSurface.d.ts +2 -1
  409. package/lib/typescript/commonjs/ui/components/OxySignInRequestSurface.d.ts.map +1 -1
  410. package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts.map +1 -1
  411. package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts +1 -1
  412. package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
  413. package/lib/typescript/commonjs/ui/components/authChooser/SignInRequestView.d.ts +3 -4
  414. package/lib/typescript/commonjs/ui/components/authChooser/SignInRequestView.d.ts.map +1 -1
  415. package/lib/typescript/commonjs/ui/components/authChooser/TroubleDisclosure.d.ts +1 -1
  416. package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts +1 -1
  417. package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts.map +1 -1
  418. package/lib/typescript/commonjs/ui/components/authChooser/requestSurfaces.d.ts +2 -1
  419. package/lib/typescript/commonjs/ui/components/authChooser/requestSurfaces.d.ts.map +1 -1
  420. package/lib/typescript/commonjs/ui/components/authChooser/signInFailureMessage.d.ts +1 -1
  421. package/lib/typescript/commonjs/ui/components/authChooser/signInFailureMessage.d.ts.map +1 -1
  422. package/lib/typescript/commonjs/ui/components/authChooser/signInProgress.d.ts +2 -1
  423. package/lib/typescript/commonjs/ui/components/authChooser/signInProgress.d.ts.map +1 -1
  424. package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts +1 -12
  425. package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts.map +1 -1
  426. package/lib/typescript/commonjs/ui/components/signIn/InlineCommonsQr.d.ts +1 -1
  427. package/lib/typescript/commonjs/ui/components/signIn/InlineCommonsQr.d.ts.map +1 -1
  428. package/lib/typescript/commonjs/ui/components/signIn/OxyAccountPicker.d.ts +1 -1
  429. package/lib/typescript/commonjs/ui/components/signIn/OxyAccountPicker.d.ts.map +1 -1
  430. package/lib/typescript/commonjs/ui/components/signIn/OxyAuthScreen.d.ts +7 -1
  431. package/lib/typescript/commonjs/ui/components/signIn/OxyAuthScreen.d.ts.map +1 -1
  432. package/lib/typescript/commonjs/ui/components/signIn/OxyAuthenticatorPanel.d.ts +19 -0
  433. package/lib/typescript/commonjs/ui/components/signIn/OxyAuthenticatorPanel.d.ts.map +1 -0
  434. package/lib/typescript/commonjs/ui/components/signIn/OxyDeleteAccountPanel.d.ts +10 -6
  435. package/lib/typescript/commonjs/ui/components/signIn/OxyDeleteAccountPanel.d.ts.map +1 -1
  436. package/lib/typescript/commonjs/ui/components/signIn/OxyLinkCommonsPanel.d.ts +6 -6
  437. package/lib/typescript/commonjs/ui/components/signIn/OxyLinkCommonsPanel.d.ts.map +1 -1
  438. package/lib/typescript/commonjs/ui/components/signIn/OxyPasswordPanel.d.ts +15 -0
  439. package/lib/typescript/commonjs/ui/components/signIn/OxyPasswordPanel.d.ts.map +1 -0
  440. package/lib/typescript/commonjs/ui/components/signIn/OxySignInPanel.d.ts +21 -19
  441. package/lib/typescript/commonjs/ui/components/signIn/OxySignInPanel.d.ts.map +1 -1
  442. package/lib/typescript/commonjs/ui/components/signIn/OxySignUpPanel.d.ts +16 -7
  443. package/lib/typescript/commonjs/ui/components/signIn/OxySignUpPanel.d.ts.map +1 -1
  444. package/lib/typescript/commonjs/ui/components/signIn/ReauthStep.d.ts +34 -0
  445. package/lib/typescript/commonjs/ui/components/signIn/ReauthStep.d.ts.map +1 -0
  446. package/lib/typescript/commonjs/ui/components/signIn/accountFlowParts.d.ts +38 -12
  447. package/lib/typescript/commonjs/ui/components/signIn/accountFlowParts.d.ts.map +1 -1
  448. package/lib/typescript/commonjs/ui/components/signIn/signInFlowStore.d.ts +20 -0
  449. package/lib/typescript/commonjs/ui/components/signIn/signInFlowStore.d.ts.map +1 -0
  450. package/lib/typescript/commonjs/ui/components/signIn/signInMethods.d.ts +10 -20
  451. package/lib/typescript/commonjs/ui/components/signIn/signInMethods.d.ts.map +1 -1
  452. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  453. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts +2 -1
  454. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  455. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +4 -39
  456. package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
  457. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts +2 -1
  458. package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  459. package/lib/typescript/commonjs/ui/hooks/accountDialogSnapshot.d.ts +1 -1
  460. package/lib/typescript/commonjs/ui/hooks/accountDialogSnapshot.d.ts.map +1 -1
  461. package/lib/typescript/commonjs/ui/hooks/mutations/mutationFactory.d.ts +1 -1
  462. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +2 -2
  463. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  464. package/lib/typescript/commonjs/ui/hooks/mutations/useServicesMutations.d.ts +5 -1
  465. package/lib/typescript/commonjs/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -1
  466. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts +19 -1
  467. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  468. package/lib/typescript/commonjs/ui/hooks/queries/useAuthMethods.d.ts +13 -20
  469. package/lib/typescript/commonjs/ui/hooks/queries/useAuthMethods.d.ts.map +1 -1
  470. package/lib/typescript/commonjs/ui/hooks/queries/useFileQueries.d.ts +1 -1
  471. package/lib/typescript/commonjs/ui/hooks/queries/useFileQueries.d.ts.map +1 -1
  472. package/lib/typescript/commonjs/ui/hooks/queries/usePaymentQueries.d.ts +4 -4
  473. package/lib/typescript/commonjs/ui/hooks/queries/useSecurityQueries.d.ts.map +1 -1
  474. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts +3 -5
  475. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  476. package/lib/typescript/commonjs/ui/hooks/useAssets.d.ts +5 -5
  477. package/lib/typescript/commonjs/ui/hooks/useAssets.d.ts.map +1 -1
  478. package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts +1 -1
  479. package/lib/typescript/commonjs/ui/hooks/useDeviceSwitcher.d.ts +1 -1
  480. package/lib/typescript/commonjs/ui/hooks/useDeviceSwitcher.d.ts.map +1 -1
  481. package/lib/typescript/commonjs/ui/hooks/useFileDownloadUrl.d.ts.map +1 -1
  482. package/lib/typescript/commonjs/ui/hooks/useFollow.d.ts +1 -1
  483. package/lib/typescript/commonjs/ui/hooks/useI18n.d.ts.map +1 -1
  484. package/lib/typescript/commonjs/ui/hooks/useResolvedFileUrls.d.ts +9 -7
  485. package/lib/typescript/commonjs/ui/hooks/useResolvedFileUrls.d.ts.map +1 -1
  486. package/lib/typescript/commonjs/ui/hooks/useSurfaceFrameWidth.d.ts +12 -0
  487. package/lib/typescript/commonjs/ui/hooks/useSurfaceFrameWidth.d.ts.map +1 -0
  488. package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts +1 -1
  489. package/lib/typescript/commonjs/ui/icons/Ionicons.d.ts.map +1 -1
  490. package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  491. package/lib/typescript/commonjs/ui/icons/MaterialCommunityIcons.d.ts.map +1 -1
  492. package/lib/typescript/commonjs/ui/icons/subsetGlyphMaps.d.ts +0 -15
  493. package/lib/typescript/commonjs/ui/icons/subsetGlyphMaps.d.ts.map +1 -1
  494. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts +1 -1
  495. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts.map +1 -1
  496. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +1 -1
  497. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  498. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts +7 -5
  499. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts.map +1 -1
  500. package/lib/typescript/commonjs/ui/oauth/browserBridge.d.ts +97 -0
  501. package/lib/typescript/commonjs/ui/oauth/browserBridge.d.ts.map +1 -0
  502. package/lib/typescript/commonjs/ui/runtime/createOxyRuntime.d.ts +6 -2
  503. package/lib/typescript/commonjs/ui/runtime/createOxyRuntime.d.ts.map +1 -1
  504. package/lib/typescript/commonjs/ui/runtime/runtimeContext.d.ts +2 -1
  505. package/lib/typescript/commonjs/ui/runtime/runtimeContext.d.ts.map +1 -1
  506. package/lib/typescript/commonjs/ui/runtime/types.d.ts +2 -1
  507. package/lib/typescript/commonjs/ui/runtime/types.d.ts.map +1 -1
  508. package/lib/typescript/commonjs/ui/screens/AccountSecurityPanelScreen.d.ts +11 -0
  509. package/lib/typescript/commonjs/ui/screens/AccountSecurityPanelScreen.d.ts.map +1 -0
  510. package/lib/typescript/commonjs/ui/screens/DeleteAccountScreen.d.ts +6 -0
  511. package/lib/typescript/commonjs/ui/screens/DeleteAccountScreen.d.ts.map +1 -0
  512. package/lib/typescript/commonjs/ui/screens/{SavesCollectionsScreen.d.ts → DomainsScreen.d.ts} +1 -1
  513. package/lib/typescript/commonjs/ui/screens/DomainsScreen.d.ts.map +1 -0
  514. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  515. package/lib/typescript/commonjs/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  516. package/lib/typescript/commonjs/ui/screens/LinkCommonsScreen.d.ts +6 -0
  517. package/lib/typescript/commonjs/ui/screens/LinkCommonsScreen.d.ts.map +1 -0
  518. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  519. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  520. package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
  521. package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  522. package/lib/typescript/commonjs/ui/screens/SignInAuthenticatorScreen.d.ts +6 -0
  523. package/lib/typescript/commonjs/ui/screens/SignInAuthenticatorScreen.d.ts.map +1 -0
  524. package/lib/typescript/commonjs/ui/screens/SignInPasswordScreen.d.ts +6 -0
  525. package/lib/typescript/commonjs/ui/screens/SignInPasswordScreen.d.ts.map +1 -0
  526. package/lib/typescript/commonjs/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  527. package/lib/typescript/commonjs/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  528. package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  529. package/lib/typescript/commonjs/ui/session/authStore.d.ts +1 -1
  530. package/lib/typescript/commonjs/ui/session/authStore.d.ts.map +1 -1
  531. package/lib/typescript/commonjs/ui/session/backgroundSession.d.ts +3 -4
  532. package/lib/typescript/commonjs/ui/session/backgroundSession.d.ts.map +1 -1
  533. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts +2 -1
  534. package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts.map +1 -1
  535. package/lib/typescript/commonjs/ui/session/deviceCredentialTracker.d.ts +23 -0
  536. package/lib/typescript/commonjs/ui/session/deviceCredentialTracker.d.ts.map +1 -0
  537. package/lib/typescript/commonjs/ui/session/identityBinding.d.ts +1 -1
  538. package/lib/typescript/commonjs/ui/session/identityBinding.d.ts.map +1 -1
  539. package/lib/typescript/commonjs/ui/session/index.d.ts +1 -1
  540. package/lib/typescript/commonjs/ui/session/index.d.ts.map +1 -1
  541. package/lib/typescript/commonjs/ui/session/nativeSecureStorage.d.ts +1 -1
  542. package/lib/typescript/commonjs/ui/session/nativeSecureStorage.d.ts.map +1 -1
  543. package/lib/typescript/commonjs/ui/session/sharedDeviceCredentialStore.d.ts +1 -1
  544. package/lib/typescript/commonjs/ui/session/sharedDeviceCredentialStore.d.ts.map +1 -1
  545. package/lib/typescript/commonjs/ui/session/tokenTransport.d.ts +3 -2
  546. package/lib/typescript/commonjs/ui/session/tokenTransport.d.ts.map +1 -1
  547. package/lib/typescript/commonjs/ui/stores/assetStore.d.ts +7 -0
  548. package/lib/typescript/commonjs/ui/stores/assetStore.d.ts.map +1 -1
  549. package/lib/typescript/commonjs/ui/types/navigation.d.ts +1 -1
  550. package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
  551. package/lib/typescript/commonjs/ui/utils/accountDeletionHandoff.d.ts.map +1 -1
  552. package/lib/typescript/commonjs/ui/utils/deviceCredential.d.ts +10 -3
  553. package/lib/typescript/commonjs/ui/utils/deviceCredential.d.ts.map +1 -1
  554. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts +1 -5
  555. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts.map +1 -1
  556. package/lib/typescript/module/index.d.ts +5 -5
  557. package/lib/typescript/module/index.d.ts.map +1 -1
  558. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts +3 -2
  559. package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts.map +1 -1
  560. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts +2 -3
  561. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  562. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts +8 -7
  563. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
  564. package/lib/typescript/module/ui/components/OxySignInRequestSurface.d.ts +2 -1
  565. package/lib/typescript/module/ui/components/OxySignInRequestSurface.d.ts.map +1 -1
  566. package/lib/typescript/module/ui/components/SurfaceScreen.d.ts.map +1 -1
  567. package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts +1 -1
  568. package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
  569. package/lib/typescript/module/ui/components/authChooser/SignInRequestView.d.ts +3 -4
  570. package/lib/typescript/module/ui/components/authChooser/SignInRequestView.d.ts.map +1 -1
  571. package/lib/typescript/module/ui/components/authChooser/TroubleDisclosure.d.ts +1 -1
  572. package/lib/typescript/module/ui/components/authChooser/primitives.d.ts +1 -1
  573. package/lib/typescript/module/ui/components/authChooser/primitives.d.ts.map +1 -1
  574. package/lib/typescript/module/ui/components/authChooser/requestSurfaces.d.ts +2 -1
  575. package/lib/typescript/module/ui/components/authChooser/requestSurfaces.d.ts.map +1 -1
  576. package/lib/typescript/module/ui/components/authChooser/signInFailureMessage.d.ts +1 -1
  577. package/lib/typescript/module/ui/components/authChooser/signInFailureMessage.d.ts.map +1 -1
  578. package/lib/typescript/module/ui/components/authChooser/signInProgress.d.ts +2 -1
  579. package/lib/typescript/module/ui/components/authChooser/signInProgress.d.ts.map +1 -1
  580. package/lib/typescript/module/ui/components/authChooser/types.d.ts +1 -12
  581. package/lib/typescript/module/ui/components/authChooser/types.d.ts.map +1 -1
  582. package/lib/typescript/module/ui/components/signIn/InlineCommonsQr.d.ts +1 -1
  583. package/lib/typescript/module/ui/components/signIn/InlineCommonsQr.d.ts.map +1 -1
  584. package/lib/typescript/module/ui/components/signIn/OxyAccountPicker.d.ts +1 -1
  585. package/lib/typescript/module/ui/components/signIn/OxyAccountPicker.d.ts.map +1 -1
  586. package/lib/typescript/module/ui/components/signIn/OxyAuthScreen.d.ts +7 -1
  587. package/lib/typescript/module/ui/components/signIn/OxyAuthScreen.d.ts.map +1 -1
  588. package/lib/typescript/module/ui/components/signIn/OxyAuthenticatorPanel.d.ts +19 -0
  589. package/lib/typescript/module/ui/components/signIn/OxyAuthenticatorPanel.d.ts.map +1 -0
  590. package/lib/typescript/module/ui/components/signIn/OxyDeleteAccountPanel.d.ts +10 -6
  591. package/lib/typescript/module/ui/components/signIn/OxyDeleteAccountPanel.d.ts.map +1 -1
  592. package/lib/typescript/module/ui/components/signIn/OxyLinkCommonsPanel.d.ts +6 -6
  593. package/lib/typescript/module/ui/components/signIn/OxyLinkCommonsPanel.d.ts.map +1 -1
  594. package/lib/typescript/module/ui/components/signIn/OxyPasswordPanel.d.ts +15 -0
  595. package/lib/typescript/module/ui/components/signIn/OxyPasswordPanel.d.ts.map +1 -0
  596. package/lib/typescript/module/ui/components/signIn/OxySignInPanel.d.ts +21 -19
  597. package/lib/typescript/module/ui/components/signIn/OxySignInPanel.d.ts.map +1 -1
  598. package/lib/typescript/module/ui/components/signIn/OxySignUpPanel.d.ts +16 -7
  599. package/lib/typescript/module/ui/components/signIn/OxySignUpPanel.d.ts.map +1 -1
  600. package/lib/typescript/module/ui/components/signIn/ReauthStep.d.ts +34 -0
  601. package/lib/typescript/module/ui/components/signIn/ReauthStep.d.ts.map +1 -0
  602. package/lib/typescript/module/ui/components/signIn/accountFlowParts.d.ts +38 -12
  603. package/lib/typescript/module/ui/components/signIn/accountFlowParts.d.ts.map +1 -1
  604. package/lib/typescript/module/ui/components/signIn/signInFlowStore.d.ts +20 -0
  605. package/lib/typescript/module/ui/components/signIn/signInFlowStore.d.ts.map +1 -0
  606. package/lib/typescript/module/ui/components/signIn/signInMethods.d.ts +10 -20
  607. package/lib/typescript/module/ui/components/signIn/signInMethods.d.ts.map +1 -1
  608. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  609. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts +2 -1
  610. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  611. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +4 -39
  612. package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
  613. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts +2 -1
  614. package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts.map +1 -1
  615. package/lib/typescript/module/ui/hooks/accountDialogSnapshot.d.ts +1 -1
  616. package/lib/typescript/module/ui/hooks/accountDialogSnapshot.d.ts.map +1 -1
  617. package/lib/typescript/module/ui/hooks/mutations/mutationFactory.d.ts +1 -1
  618. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +2 -2
  619. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  620. package/lib/typescript/module/ui/hooks/mutations/useServicesMutations.d.ts +5 -1
  621. package/lib/typescript/module/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -1
  622. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts +19 -1
  623. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  624. package/lib/typescript/module/ui/hooks/queries/useAuthMethods.d.ts +13 -20
  625. package/lib/typescript/module/ui/hooks/queries/useAuthMethods.d.ts.map +1 -1
  626. package/lib/typescript/module/ui/hooks/queries/useFileQueries.d.ts +1 -1
  627. package/lib/typescript/module/ui/hooks/queries/useFileQueries.d.ts.map +1 -1
  628. package/lib/typescript/module/ui/hooks/queries/usePaymentQueries.d.ts +4 -4
  629. package/lib/typescript/module/ui/hooks/queries/useSecurityQueries.d.ts.map +1 -1
  630. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts +3 -5
  631. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  632. package/lib/typescript/module/ui/hooks/useAssets.d.ts +5 -5
  633. package/lib/typescript/module/ui/hooks/useAssets.d.ts.map +1 -1
  634. package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts +1 -1
  635. package/lib/typescript/module/ui/hooks/useDeviceSwitcher.d.ts +1 -1
  636. package/lib/typescript/module/ui/hooks/useDeviceSwitcher.d.ts.map +1 -1
  637. package/lib/typescript/module/ui/hooks/useFileDownloadUrl.d.ts.map +1 -1
  638. package/lib/typescript/module/ui/hooks/useFollow.d.ts +1 -1
  639. package/lib/typescript/module/ui/hooks/useI18n.d.ts.map +1 -1
  640. package/lib/typescript/module/ui/hooks/useResolvedFileUrls.d.ts +9 -7
  641. package/lib/typescript/module/ui/hooks/useResolvedFileUrls.d.ts.map +1 -1
  642. package/lib/typescript/module/ui/hooks/useSurfaceFrameWidth.d.ts +12 -0
  643. package/lib/typescript/module/ui/hooks/useSurfaceFrameWidth.d.ts.map +1 -0
  644. package/lib/typescript/module/ui/icons/Ionicons.d.ts +1 -1
  645. package/lib/typescript/module/ui/icons/Ionicons.d.ts.map +1 -1
  646. package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts +1 -1
  647. package/lib/typescript/module/ui/icons/MaterialCommunityIcons.d.ts.map +1 -1
  648. package/lib/typescript/module/ui/icons/subsetGlyphMaps.d.ts +0 -15
  649. package/lib/typescript/module/ui/icons/subsetGlyphMaps.d.ts.map +1 -1
  650. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts +1 -1
  651. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts.map +1 -1
  652. package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
  653. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  654. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts +7 -5
  655. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts.map +1 -1
  656. package/lib/typescript/module/ui/oauth/browserBridge.d.ts +97 -0
  657. package/lib/typescript/module/ui/oauth/browserBridge.d.ts.map +1 -0
  658. package/lib/typescript/module/ui/runtime/createOxyRuntime.d.ts +6 -2
  659. package/lib/typescript/module/ui/runtime/createOxyRuntime.d.ts.map +1 -1
  660. package/lib/typescript/module/ui/runtime/runtimeContext.d.ts +2 -1
  661. package/lib/typescript/module/ui/runtime/runtimeContext.d.ts.map +1 -1
  662. package/lib/typescript/module/ui/runtime/types.d.ts +2 -1
  663. package/lib/typescript/module/ui/runtime/types.d.ts.map +1 -1
  664. package/lib/typescript/module/ui/screens/AccountSecurityPanelScreen.d.ts +11 -0
  665. package/lib/typescript/module/ui/screens/AccountSecurityPanelScreen.d.ts.map +1 -0
  666. package/lib/typescript/module/ui/screens/DeleteAccountScreen.d.ts +6 -0
  667. package/lib/typescript/module/ui/screens/DeleteAccountScreen.d.ts.map +1 -0
  668. package/lib/typescript/module/ui/screens/{SavesCollectionsScreen.d.ts → DomainsScreen.d.ts} +1 -1
  669. package/lib/typescript/module/ui/screens/DomainsScreen.d.ts.map +1 -0
  670. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  671. package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  672. package/lib/typescript/module/ui/screens/LinkCommonsScreen.d.ts +6 -0
  673. package/lib/typescript/module/ui/screens/LinkCommonsScreen.d.ts.map +1 -0
  674. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  675. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  676. package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
  677. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  678. package/lib/typescript/module/ui/screens/SignInAuthenticatorScreen.d.ts +6 -0
  679. package/lib/typescript/module/ui/screens/SignInAuthenticatorScreen.d.ts.map +1 -0
  680. package/lib/typescript/module/ui/screens/SignInPasswordScreen.d.ts +6 -0
  681. package/lib/typescript/module/ui/screens/SignInPasswordScreen.d.ts.map +1 -0
  682. package/lib/typescript/module/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  683. package/lib/typescript/module/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  684. package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  685. package/lib/typescript/module/ui/session/authStore.d.ts +1 -1
  686. package/lib/typescript/module/ui/session/authStore.d.ts.map +1 -1
  687. package/lib/typescript/module/ui/session/backgroundSession.d.ts +3 -4
  688. package/lib/typescript/module/ui/session/backgroundSession.d.ts.map +1 -1
  689. package/lib/typescript/module/ui/session/createSessionClient.d.ts +2 -1
  690. package/lib/typescript/module/ui/session/createSessionClient.d.ts.map +1 -1
  691. package/lib/typescript/module/ui/session/deviceCredentialTracker.d.ts +23 -0
  692. package/lib/typescript/module/ui/session/deviceCredentialTracker.d.ts.map +1 -0
  693. package/lib/typescript/module/ui/session/identityBinding.d.ts +1 -1
  694. package/lib/typescript/module/ui/session/identityBinding.d.ts.map +1 -1
  695. package/lib/typescript/module/ui/session/index.d.ts +1 -1
  696. package/lib/typescript/module/ui/session/index.d.ts.map +1 -1
  697. package/lib/typescript/module/ui/session/nativeSecureStorage.d.ts +1 -1
  698. package/lib/typescript/module/ui/session/nativeSecureStorage.d.ts.map +1 -1
  699. package/lib/typescript/module/ui/session/sharedDeviceCredentialStore.d.ts +1 -1
  700. package/lib/typescript/module/ui/session/sharedDeviceCredentialStore.d.ts.map +1 -1
  701. package/lib/typescript/module/ui/session/tokenTransport.d.ts +3 -2
  702. package/lib/typescript/module/ui/session/tokenTransport.d.ts.map +1 -1
  703. package/lib/typescript/module/ui/stores/assetStore.d.ts +7 -0
  704. package/lib/typescript/module/ui/stores/assetStore.d.ts.map +1 -1
  705. package/lib/typescript/module/ui/types/navigation.d.ts +1 -1
  706. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  707. package/lib/typescript/module/ui/utils/accountDeletionHandoff.d.ts.map +1 -1
  708. package/lib/typescript/module/ui/utils/deviceCredential.d.ts +10 -3
  709. package/lib/typescript/module/ui/utils/deviceCredential.d.ts.map +1 -1
  710. package/lib/typescript/module/ui/utils/fileManagement.d.ts +1 -5
  711. package/lib/typescript/module/ui/utils/fileManagement.d.ts.map +1 -1
  712. package/package.json +4 -5
  713. package/src/assets/fonts/icons/OxyServicesIonicons.ttf +0 -0
  714. package/src/assets/fonts/icons/OxyServicesMaterialCommunityIcons.ttf +0 -0
  715. package/src/assets/fonts/icons/manifest.json +5 -20
  716. package/src/index.ts +8 -8
  717. package/src/ui/boot/__tests__/coldBootNoIdpRedirect.test.ts +4 -4
  718. package/src/ui/boot/runProviderColdBoot.ts +3 -9
  719. package/src/ui/components/OxyAccountDialogScreen.tsx +2 -3
  720. package/src/ui/components/OxyAuthChooser.tsx +14 -36
  721. package/src/ui/components/OxySignInButton.tsx +1 -1
  722. package/src/ui/components/OxySignInRequestSurface.tsx +2 -1
  723. package/src/ui/components/ProfileButton.tsx +1 -1
  724. package/src/ui/components/SurfaceScreen.tsx +19 -11
  725. package/src/ui/components/authChooser/AccountsMenuView.tsx +1 -6
  726. package/src/ui/components/authChooser/SignInRequestView.tsx +5 -23
  727. package/src/ui/components/authChooser/TroubleDisclosure.tsx +1 -1
  728. package/src/ui/components/authChooser/primitives.tsx +1 -1
  729. package/src/ui/components/authChooser/requestSurfaces.tsx +2 -1
  730. package/src/ui/components/authChooser/signInFailureMessage.ts +1 -1
  731. package/src/ui/components/authChooser/signInProgress.ts +2 -1
  732. package/src/ui/components/authChooser/types.ts +1 -13
  733. package/src/ui/components/signIn/InlineCommonsQr.tsx +2 -2
  734. package/src/ui/components/signIn/OxyAccountPicker.tsx +1 -1
  735. package/src/ui/components/signIn/OxyAuthScreen.tsx +14 -5
  736. package/src/ui/components/signIn/OxyAuthenticatorPanel.tsx +294 -0
  737. package/src/ui/components/signIn/OxyDeleteAccountPanel.tsx +48 -61
  738. package/src/ui/components/signIn/OxyLinkCommonsPanel.tsx +43 -35
  739. package/src/ui/components/signIn/OxyPasswordPanel.tsx +117 -0
  740. package/src/ui/components/signIn/OxySignInPanel.tsx +542 -203
  741. package/src/ui/components/signIn/OxySignUpPanel.tsx +186 -56
  742. package/src/ui/components/signIn/ReauthStep.tsx +201 -0
  743. package/src/ui/components/signIn/accountFlowParts.tsx +139 -33
  744. package/src/ui/components/signIn/signInFlowStore.ts +41 -0
  745. package/src/ui/components/signIn/signInMethods.ts +12 -27
  746. package/src/ui/context/OxyContext.tsx +124 -145
  747. package/src/ui/context/hooks/useAuthOperations.ts +9 -8
  748. package/src/ui/context/oxyContextTypes.ts +4 -41
  749. package/src/ui/context/useOxyAccountGraph.ts +6 -5
  750. package/src/ui/hooks/accountDialogSnapshot.ts +1 -1
  751. package/src/ui/hooks/mutations/mutationFactory.ts +1 -1
  752. package/src/ui/hooks/mutations/useAccountMutations.ts +11 -10
  753. package/src/ui/hooks/mutations/useServicesMutations.ts +4 -4
  754. package/src/ui/hooks/queries/queryKeys.ts +26 -2
  755. package/src/ui/hooks/queries/useAccountQueries.ts +8 -8
  756. package/src/ui/hooks/queries/useAuthMethods.ts +22 -19
  757. package/src/ui/hooks/queries/useFileQueries.ts +2 -2
  758. package/src/ui/hooks/queries/usePaymentQueries.ts +8 -8
  759. package/src/ui/hooks/queries/useSecurityQueries.ts +4 -3
  760. package/src/ui/hooks/queries/useServicesQueries.ts +6 -6
  761. package/src/ui/hooks/useAssets.ts +26 -31
  762. package/src/ui/hooks/useAvatarPicker.ts +4 -4
  763. package/src/ui/hooks/useDeviceManagement.ts +4 -4
  764. package/src/ui/hooks/useDeviceSwitcher.ts +2 -7
  765. package/src/ui/hooks/useFileDownloadUrl.ts +1 -5
  766. package/src/ui/hooks/useFollow.ts +2 -2
  767. package/src/ui/hooks/useFollowTarget.ts +5 -5
  768. package/src/ui/hooks/useI18n.ts +6 -3
  769. package/src/ui/hooks/useResolvedFileUrls.ts +8 -6
  770. package/src/ui/hooks/useSessionManagement.ts +3 -3
  771. package/src/ui/hooks/useSurfaceFrameWidth.ts +21 -0
  772. package/src/ui/icons/subsetGlyphMaps.ts +0 -15
  773. package/src/ui/navigation/__tests__/getSurfaceConfig.test.ts +1 -1
  774. package/src/ui/navigation/accountDialogManager.ts +1 -1
  775. package/src/ui/navigation/routes.ts +11 -8
  776. package/src/ui/navigation/surfaceRegistry.ts +8 -6
  777. package/src/ui/oauth/__tests__/browserAuthTransport.test.ts +8 -8
  778. package/src/ui/oauth/__tests__/browserBridge.test.ts +198 -0
  779. package/src/ui/oauth/__tests__/completeOAuthCode.test.ts +1 -1
  780. package/src/ui/oauth/__tests__/explicitOAuthConsent.test.ts +11 -11
  781. package/src/ui/oauth/__tests__/sharedCompletionPath.test.ts +7 -7
  782. package/src/ui/oauth/browserBridge.ts +234 -0
  783. package/src/ui/oauth/completeOAuthCode.ts +1 -1
  784. package/src/ui/oauth/explicitOAuthConsent.ts +1 -1
  785. package/src/ui/runtime/createOxyRuntime.ts +8 -16
  786. package/src/ui/runtime/runtimeContext.tsx +2 -1
  787. package/src/ui/runtime/types.ts +2 -1
  788. package/src/ui/screens/AccountMembersScreen.tsx +7 -7
  789. package/src/ui/screens/AccountSecurityPanelScreen.tsx +26 -0
  790. package/src/ui/screens/AccountSettingsScreen.tsx +3 -3
  791. package/src/ui/screens/AccountVerificationScreen.tsx +1 -1
  792. package/src/ui/screens/AppInfoScreen.tsx +5 -5
  793. package/src/ui/screens/AvatarCropScreen.tsx +3 -3
  794. package/src/ui/screens/ChangeAvatarScreen.tsx +1 -1
  795. package/src/ui/screens/CreateAccountScreen.tsx +1 -1
  796. package/src/ui/screens/DeleteAccountScreen.tsx +13 -0
  797. package/src/ui/screens/DomainsScreen.tsx +187 -0
  798. package/src/ui/screens/EditProfileScreen.tsx +1 -1
  799. package/src/ui/screens/FileManagementScreen.tsx +15 -21
  800. package/src/ui/screens/HelpSupportScreen.tsx +0 -15
  801. package/src/ui/screens/LinkCommonsScreen.tsx +13 -0
  802. package/src/ui/screens/ManageAccountScreen.tsx +47 -82
  803. package/src/ui/screens/PrivacySettingsScreen.tsx +48 -67
  804. package/src/ui/screens/ProfileScreen.tsx +5 -10
  805. package/src/ui/screens/SearchSettingsScreen.tsx +15 -27
  806. package/src/ui/screens/SignInAuthenticatorScreen.tsx +13 -0
  807. package/src/ui/screens/SignInPasswordScreen.tsx +13 -0
  808. package/src/ui/screens/UserListScreen.tsx +3 -3
  809. package/src/ui/screens/WelcomeNewUserScreen.tsx +1 -1
  810. package/src/ui/screens/trust/TrustCenterScreen.tsx +25 -29
  811. package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +2 -2
  812. package/src/ui/screens/trust/TrustRewardsScreen.tsx +9 -19
  813. package/src/ui/screens/trust/TrustRulesScreen.tsx +14 -14
  814. package/src/ui/session/__tests__/authStore.test.ts +1 -1
  815. package/src/ui/session/__tests__/backgroundSession.test.ts +2 -61
  816. package/src/ui/session/__tests__/createSessionClient.test.ts +7 -9
  817. package/src/ui/session/__tests__/sharedDeviceCredentialStore.test.ts +1 -1
  818. package/src/ui/session/__tests__/tokenTransport.test.ts +9 -7
  819. package/src/ui/session/authStore.ts +1 -7
  820. package/src/ui/session/backgroundSession.ts +5 -41
  821. package/src/ui/session/createSessionClient.ts +2 -6
  822. package/src/ui/session/deviceCredentialTracker.ts +49 -0
  823. package/src/ui/session/identityBinding.ts +1 -6
  824. package/src/ui/session/index.ts +1 -1
  825. package/src/ui/session/nativeSecureStorage.ts +1 -1
  826. package/src/ui/session/sharedDeviceCredentialStore.ts +1 -6
  827. package/src/ui/session/tokenTransport.ts +5 -4
  828. package/src/ui/stores/__tests__/followStore.test.ts +13 -15
  829. package/src/ui/stores/assetStore.ts +15 -0
  830. package/src/ui/stores/followStore.ts +7 -7
  831. package/src/ui/types/navigation.ts +2 -1
  832. package/src/ui/utils/accountDeletionHandoff.ts +2 -4
  833. package/src/ui/utils/avatarUtils.ts +1 -1
  834. package/src/ui/utils/deviceCredential.ts +11 -4
  835. package/src/ui/utils/fileManagement.ts +0 -12
  836. package/src/ui/utils/sessionHelpers.ts +2 -2
  837. package/lib/commonjs/ui/components/signIn/OxyCreateAccountPanel.js +0 -236
  838. package/lib/commonjs/ui/components/signIn/OxyCreateAccountPanel.js.map +0 -1
  839. package/lib/commonjs/ui/components/signIn/OxyRecoverAccountPanel.js +0 -170
  840. package/lib/commonjs/ui/components/signIn/OxyRecoverAccountPanel.js.map +0 -1
  841. package/lib/commonjs/ui/components/signIn/passkeyError.js +0 -46
  842. package/lib/commonjs/ui/components/signIn/passkeyError.js.map +0 -1
  843. package/lib/commonjs/ui/context/passkeyFlow.js +0 -114
  844. package/lib/commonjs/ui/context/passkeyFlow.js.map +0 -1
  845. package/lib/commonjs/ui/screens/FAQScreen.js +0 -162
  846. package/lib/commonjs/ui/screens/FAQScreen.js.map +0 -1
  847. package/lib/commonjs/ui/screens/FeedbackScreen.js +0 -601
  848. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +0 -1
  849. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +0 -968
  850. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +0 -1
  851. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +0 -132
  852. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +0 -1
  853. package/lib/commonjs/webauthn/passkeyClient.js +0 -39
  854. package/lib/commonjs/webauthn/passkeyClient.js.map +0 -1
  855. package/lib/commonjs/webauthn/passkeyClient.native.js +0 -34
  856. package/lib/commonjs/webauthn/passkeyClient.native.js.map +0 -1
  857. package/lib/commonjs/webauthn/passkeyClient.web.js +0 -57
  858. package/lib/commonjs/webauthn/passkeyClient.web.js.map +0 -1
  859. package/lib/module/ui/components/signIn/OxyCreateAccountPanel.js +0 -231
  860. package/lib/module/ui/components/signIn/OxyCreateAccountPanel.js.map +0 -1
  861. package/lib/module/ui/components/signIn/OxyRecoverAccountPanel.js +0 -165
  862. package/lib/module/ui/components/signIn/OxyRecoverAccountPanel.js.map +0 -1
  863. package/lib/module/ui/components/signIn/passkeyError.js +0 -40
  864. package/lib/module/ui/components/signIn/passkeyError.js.map +0 -1
  865. package/lib/module/ui/context/passkeyFlow.js +0 -107
  866. package/lib/module/ui/context/passkeyFlow.js.map +0 -1
  867. package/lib/module/ui/screens/FAQScreen.js +0 -157
  868. package/lib/module/ui/screens/FAQScreen.js.map +0 -1
  869. package/lib/module/ui/screens/FeedbackScreen.js +0 -599
  870. package/lib/module/ui/screens/FeedbackScreen.js.map +0 -1
  871. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +0 -963
  872. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +0 -1
  873. package/lib/module/ui/screens/SavesCollectionsScreen.js +0 -127
  874. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +0 -1
  875. package/lib/module/webauthn/passkeyClient.js +0 -33
  876. package/lib/module/webauthn/passkeyClient.js.map +0 -1
  877. package/lib/module/webauthn/passkeyClient.native.js +0 -28
  878. package/lib/module/webauthn/passkeyClient.native.js.map +0 -1
  879. package/lib/module/webauthn/passkeyClient.web.js +0 -52
  880. package/lib/module/webauthn/passkeyClient.web.js.map +0 -1
  881. package/lib/typescript/commonjs/ui/components/signIn/OxyCreateAccountPanel.d.ts +0 -24
  882. package/lib/typescript/commonjs/ui/components/signIn/OxyCreateAccountPanel.d.ts.map +0 -1
  883. package/lib/typescript/commonjs/ui/components/signIn/OxyRecoverAccountPanel.d.ts +0 -20
  884. package/lib/typescript/commonjs/ui/components/signIn/OxyRecoverAccountPanel.d.ts.map +0 -1
  885. package/lib/typescript/commonjs/ui/components/signIn/passkeyError.d.ts +0 -16
  886. package/lib/typescript/commonjs/ui/components/signIn/passkeyError.d.ts.map +0 -1
  887. package/lib/typescript/commonjs/ui/context/passkeyFlow.d.ts +0 -92
  888. package/lib/typescript/commonjs/ui/context/passkeyFlow.d.ts.map +0 -1
  889. package/lib/typescript/commonjs/ui/screens/FAQScreen.d.ts +0 -5
  890. package/lib/typescript/commonjs/ui/screens/FAQScreen.d.ts.map +0 -1
  891. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts +0 -5
  892. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts.map +0 -1
  893. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts +0 -5
  894. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +0 -1
  895. package/lib/typescript/commonjs/ui/screens/SavesCollectionsScreen.d.ts.map +0 -1
  896. package/lib/typescript/commonjs/webauthn/passkeyClient.d.ts +0 -20
  897. package/lib/typescript/commonjs/webauthn/passkeyClient.d.ts.map +0 -1
  898. package/lib/typescript/commonjs/webauthn/passkeyClient.native.d.ts +0 -15
  899. package/lib/typescript/commonjs/webauthn/passkeyClient.native.d.ts.map +0 -1
  900. package/lib/typescript/commonjs/webauthn/passkeyClient.web.d.ts +0 -36
  901. package/lib/typescript/commonjs/webauthn/passkeyClient.web.d.ts.map +0 -1
  902. package/lib/typescript/module/ui/components/signIn/OxyCreateAccountPanel.d.ts +0 -24
  903. package/lib/typescript/module/ui/components/signIn/OxyCreateAccountPanel.d.ts.map +0 -1
  904. package/lib/typescript/module/ui/components/signIn/OxyRecoverAccountPanel.d.ts +0 -20
  905. package/lib/typescript/module/ui/components/signIn/OxyRecoverAccountPanel.d.ts.map +0 -1
  906. package/lib/typescript/module/ui/components/signIn/passkeyError.d.ts +0 -16
  907. package/lib/typescript/module/ui/components/signIn/passkeyError.d.ts.map +0 -1
  908. package/lib/typescript/module/ui/context/passkeyFlow.d.ts +0 -92
  909. package/lib/typescript/module/ui/context/passkeyFlow.d.ts.map +0 -1
  910. package/lib/typescript/module/ui/screens/FAQScreen.d.ts +0 -5
  911. package/lib/typescript/module/ui/screens/FAQScreen.d.ts.map +0 -1
  912. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts +0 -5
  913. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +0 -1
  914. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts +0 -5
  915. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +0 -1
  916. package/lib/typescript/module/ui/screens/SavesCollectionsScreen.d.ts.map +0 -1
  917. package/lib/typescript/module/webauthn/passkeyClient.d.ts +0 -20
  918. package/lib/typescript/module/webauthn/passkeyClient.d.ts.map +0 -1
  919. package/lib/typescript/module/webauthn/passkeyClient.native.d.ts +0 -15
  920. package/lib/typescript/module/webauthn/passkeyClient.native.d.ts.map +0 -1
  921. package/lib/typescript/module/webauthn/passkeyClient.web.d.ts +0 -36
  922. package/lib/typescript/module/webauthn/passkeyClient.web.d.ts.map +0 -1
  923. package/src/ui/components/signIn/OxyCreateAccountPanel.tsx +0 -207
  924. package/src/ui/components/signIn/OxyRecoverAccountPanel.tsx +0 -154
  925. package/src/ui/components/signIn/passkeyError.ts +0 -44
  926. package/src/ui/context/__tests__/passkeyFlow.test.ts +0 -239
  927. package/src/ui/context/passkeyFlow.ts +0 -145
  928. package/src/ui/screens/FAQScreen.tsx +0 -200
  929. package/src/ui/screens/FeedbackScreen.tsx +0 -766
  930. package/src/ui/screens/PremiumSubscriptionScreen.tsx +0 -1103
  931. package/src/ui/screens/SavesCollectionsScreen.tsx +0 -167
  932. package/src/webauthn/passkeyClient.native.ts +0 -26
  933. package/src/webauthn/passkeyClient.ts +0 -31
  934. package/src/webauthn/passkeyClient.web.ts +0 -56
@@ -1,963 +0,0 @@
1
- "use strict";
2
-
3
- import { useState, useEffect, useCallback } from 'react';
4
- import { View, ScrollView, ActivityIndicator } from 'react-native';
5
- import { toast } from '@oxy.so/bloom/toast';
6
- import { surfaces } from '@oxy.so/bloom/surfaces';
7
- import { useTheme } from '@oxy.so/bloom/theme';
8
- import { Button } from '@oxy.so/bloom/button';
9
- import { Chip } from '@oxy.so/bloom/chip';
10
- import { Badge } from '@oxy.so/bloom/badge';
11
- import { Card, CardBody } from '@oxy.so/bloom/card';
12
- import { H2, H4, H5, Text } from '@oxy.so/bloom/typography';
13
- import { BenefitList, BenefitRow } from "../components/BenefitList.js";
14
- import { SegmentedControl, SegmentedControlItem, SegmentedControlItemText } from '@oxy.so/bloom/segmented-control';
15
- import Ionicons from "../icons/Ionicons.js";
16
- import { useI18n } from "../hooks/useI18n.js";
17
- import { useSurfaceHeader } from "../hooks/useSurfaceHeader.js";
18
- import { useOxy } from "../context/OxyContext.js";
19
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
20
- const TAB_PLANS = 'plans';
21
- const TAB_FEATURES = 'features';
22
- const BILLING_MONTH = 'month';
23
- const BILLING_YEAR = 'year';
24
- /** Yearly billing discount applied when extrapolating a monthly price. */
25
- const YEARLY_DISCOUNT = 0.8;
26
- const MONTHS_PER_YEAR = 12;
27
- /** Simulated payment latency for the mocked subscribe/feature flows (ms). */
28
- const SUBSCRIBE_DELAY_MS = 2000;
29
- const FEATURE_DELAY_MS = 1500;
30
- /** One subscription period for the mocked renewal date (30 days, in ms). */
31
- const PERIOD_MS = 30 * 24 * 60 * 60 * 1000;
32
- const FEATURE_CATEGORIES = ['analytics', 'customization', 'content', 'networking', 'productivity'];
33
-
34
- // Pure package-name → display-name mapping (module scope so the nav-header
35
- // subtitle can reference it before the component's render helpers).
36
- const getAppDisplayName = packageName => {
37
- const appNames = {
38
- 'mention': 'Mention',
39
- 'oxy-social': 'Oxy Social',
40
- 'oxy-workspace': 'Oxy Workspace',
41
- 'oxy-creator': 'Oxy Creator',
42
- 'oxy-analytics': 'Oxy Analytics',
43
- 'oxy-studio': 'Oxy Studio'
44
- };
45
- return appNames[packageName] || packageName;
46
- };
47
- const PremiumSubscriptionScreen = ({
48
- onClose,
49
- navigate,
50
- goBack
51
- }) => {
52
- // Premium state belongs to the ACTIVE account (the org/project/bot when
53
- // switched, else the personal user), not the device-session owner.
54
- const {
55
- user
56
- } = useOxy();
57
- const [loading, setLoading] = useState(true);
58
- const [subscription, setSubscription] = useState(null);
59
- const [plans, setPlans] = useState([]);
60
- const [individualFeatures, setIndividualFeatures] = useState([]);
61
- const [selectedPlan, setSelectedPlan] = useState(null);
62
- const [processingPayment, setProcessingPayment] = useState(false);
63
- const [billingInterval, setBillingInterval] = useState(BILLING_MONTH);
64
- const [activeTab, setActiveTab] = useState(TAB_PLANS);
65
- const [currentAppPackage, setCurrentAppPackage] = useState('mention'); // Default to mention for demo
66
-
67
- const {
68
- t
69
- } = useI18n();
70
- useSurfaceHeader({
71
- title: t('premium.title') || 'Oxy+ Subscriptions',
72
- subtitle: t('premium.forApp', {
73
- app: getAppDisplayName(currentAppPackage)
74
- }) || `for ${getAppDisplayName(currentAppPackage)}`
75
- });
76
- const bloomTheme = useTheme();
77
- const colors = bloomTheme.colors;
78
-
79
- // Oxy+ subscription plans
80
- const mockPlans = [{
81
- id: 'mention-plus',
82
- name: 'Mention+',
83
- description: 'Enhanced features for better social experience',
84
- price: 4.99,
85
- currency: 'USD',
86
- interval: 'month',
87
- appScope: 'specific',
88
- applicableApps: ['mention'],
89
- // Only available in mention app
90
- features: ['Undo posts option', 'Improved reading mode', 'Organize bookmarks into folders', 'Early access to select features', 'Edit posts capability', 'Enhanced customization options'],
91
- includedFeatures: ['reading-mode-plus', 'custom-themes']
92
- }, {
93
- id: 'oxy-insider',
94
- name: 'Oxy+ Insider',
95
- description: 'Exclusive access to behind-the-scenes content',
96
- price: 9.99,
97
- currency: 'USD',
98
- interval: 'month',
99
- appScope: 'ecosystem',
100
- applicableApps: ['mention', 'oxy-social', 'oxy-workspace', 'oxy-creator'],
101
- features: ['Everything in Mention+', 'Behind-the-scenes updates from creators', 'Early access to new features', 'Dedicated support team', 'Exclusive content access', 'Beta feature testing'],
102
- includedFeatures: ['reading-mode-plus', 'custom-themes', 'analytics-basic'],
103
- isPopular: true
104
- }, {
105
- id: 'oxy-connect',
106
- name: 'Oxy+ Connect',
107
- description: 'Advanced networking and community features',
108
- price: 14.99,
109
- currency: 'USD',
110
- interval: 'month',
111
- appScope: 'ecosystem',
112
- applicableApps: ['mention', 'oxy-social', 'oxy-workspace', 'oxy-creator'],
113
- features: ['Everything in Oxy+ Insider', 'Create and join private groups', 'Advanced search and filtering tools', 'Customizable profile highlighting', 'Enhanced connection features', 'Priority in community events'],
114
- includedFeatures: ['reading-mode-plus', 'custom-themes', 'analytics-basic', 'group-management']
115
- }, {
116
- id: 'oxy-premium',
117
- name: 'Oxy+ Premium',
118
- description: 'Complete premium experience with all perks',
119
- price: 24.99,
120
- currency: 'USD',
121
- interval: 'month',
122
- appScope: 'ecosystem',
123
- applicableApps: ['mention', 'oxy-social', 'oxy-workspace', 'oxy-creator', 'oxy-analytics'],
124
- features: ['Everything in Oxy+ Connect', 'Priority customer support', 'Access to premium content and events', 'Advanced analytics dashboard', 'VIP community status', 'Exclusive premium events'],
125
- includedFeatures: ['reading-mode-plus', 'custom-themes', 'analytics-basic', 'analytics-advanced', 'group-management']
126
- }, {
127
- id: 'oxy-creator',
128
- name: 'Oxy+ Creator',
129
- description: 'Professional tools for content creators',
130
- price: 39.99,
131
- currency: 'USD',
132
- interval: 'month',
133
- appScope: 'ecosystem',
134
- applicableApps: ['mention', 'oxy-social', 'oxy-workspace', 'oxy-creator', 'oxy-analytics', 'oxy-studio'],
135
- features: ['Everything in Oxy+ Premium', 'Advanced analytics and insights', 'Promotional tools and resources', 'Content monetization features', 'Creator support program', 'Revenue sharing opportunities'],
136
- includedFeatures: ['reading-mode-plus', 'custom-themes', 'analytics-basic', 'analytics-advanced', 'group-management', 'creator-tools', 'monetization-features']
137
- }];
138
-
139
- // Individual feature subscriptions
140
- const mockIndividualFeatures = [{
141
- id: 'analytics-basic',
142
- name: 'Basic Analytics',
143
- description: 'View post performance and engagement metrics',
144
- price: 2.99,
145
- currency: 'USD',
146
- interval: 'month',
147
- category: 'analytics',
148
- appScope: 'ecosystem',
149
- applicableApps: ['mention', 'oxy-social', 'oxy-workspace'],
150
- canBePurchasedSeparately: true,
151
- includedInPlans: ['oxy-insider', 'oxy-connect', 'oxy-premium', 'oxy-creator']
152
- }, {
153
- id: 'analytics-advanced',
154
- name: 'Advanced Analytics',
155
- description: 'Detailed insights, trends, and audience demographics',
156
- price: 7.99,
157
- currency: 'USD',
158
- interval: 'month',
159
- category: 'analytics',
160
- appScope: 'ecosystem',
161
- applicableApps: ['mention', 'oxy-social', 'oxy-workspace', 'oxy-creator', 'oxy-analytics'],
162
- canBePurchasedSeparately: true,
163
- includedInPlans: ['oxy-premium', 'oxy-creator']
164
- }, {
165
- id: 'custom-themes',
166
- name: 'Custom Themes',
167
- description: 'Personalize your app with custom colors and layouts',
168
- price: 1.99,
169
- currency: 'USD',
170
- interval: 'month',
171
- category: 'customization',
172
- appScope: 'ecosystem',
173
- applicableApps: ['mention', 'oxy-social', 'oxy-workspace', 'oxy-creator'],
174
- canBePurchasedSeparately: false,
175
- // Included in all plans
176
- includedInPlans: ['mention-plus', 'oxy-insider', 'oxy-connect', 'oxy-premium', 'oxy-creator']
177
- }, {
178
- id: 'reading-mode-plus',
179
- name: 'Reading Mode Plus',
180
- description: 'Enhanced reading experience with focus modes',
181
- price: 1.99,
182
- currency: 'USD',
183
- interval: 'month',
184
- category: 'content',
185
- appScope: 'specific',
186
- applicableApps: ['mention', 'oxy-social'],
187
- canBePurchasedSeparately: false,
188
- // Included in all plans
189
- includedInPlans: ['mention-plus', 'oxy-insider', 'oxy-connect', 'oxy-premium', 'oxy-creator']
190
- }, {
191
- id: 'group-management',
192
- name: 'Group Management',
193
- description: 'Create and manage private groups and communities',
194
- price: 4.99,
195
- currency: 'USD',
196
- interval: 'month',
197
- category: 'networking',
198
- appScope: 'ecosystem',
199
- applicableApps: ['mention', 'oxy-social', 'oxy-workspace'],
200
- canBePurchasedSeparately: true,
201
- includedInPlans: ['oxy-connect', 'oxy-premium', 'oxy-creator']
202
- }, {
203
- id: 'creator-tools',
204
- name: 'Creator Tools Suite',
205
- description: 'Professional content creation and editing tools',
206
- price: 9.99,
207
- currency: 'USD',
208
- interval: 'month',
209
- category: 'productivity',
210
- appScope: 'specific',
211
- applicableApps: ['oxy-creator', 'oxy-studio'],
212
- canBePurchasedSeparately: true,
213
- includedInPlans: ['oxy-creator']
214
- }, {
215
- id: 'monetization-features',
216
- name: 'Monetization Features',
217
- description: 'Revenue sharing, sponsorship tools, and creator fund access',
218
- price: 12.99,
219
- currency: 'USD',
220
- interval: 'month',
221
- category: 'productivity',
222
- appScope: 'specific',
223
- applicableApps: ['oxy-creator'],
224
- canBePurchasedSeparately: true,
225
- includedInPlans: ['oxy-creator']
226
- }, {
227
- id: 'workspace-collaboration',
228
- name: 'Workspace Collaboration',
229
- description: 'Advanced team features and project management tools',
230
- price: 6.99,
231
- currency: 'USD',
232
- interval: 'month',
233
- category: 'productivity',
234
- appScope: 'specific',
235
- applicableApps: ['oxy-workspace'],
236
- canBePurchasedSeparately: true,
237
- includedInPlans: ['oxy-premium', 'oxy-creator']
238
- }];
239
- useEffect(() => {
240
- detectCurrentApp();
241
- }, []);
242
- useEffect(() => {
243
- if (currentAppPackage) {
244
- loadSubscriptionData();
245
- }
246
- }, [currentAppPackage]);
247
- const detectCurrentApp = () => {
248
- const detectedApp = 'mention';
249
- setCurrentAppPackage(detectedApp);
250
- };
251
- const loadSubscriptionData = async () => {
252
- try {
253
- setLoading(true);
254
- const availablePlans = mockPlans.filter(plan => plan.applicableApps.includes(currentAppPackage));
255
- setPlans(availablePlans);
256
- let currentSubscription = null;
257
- if (user?.isPremium) {
258
- currentSubscription = {
259
- id: 'sub_12345',
260
- planId: 'oxy-insider',
261
- status: 'active',
262
- currentPeriodStart: new Date().toISOString(),
263
- currentPeriodEnd: new Date(Date.now() + PERIOD_MS).toISOString(),
264
- cancelAtPeriodEnd: false
265
- };
266
- setSubscription(currentSubscription);
267
- }
268
- const availableFeatures = mockIndividualFeatures.filter(feature => feature.applicableApps.includes(currentAppPackage));
269
- const updatedFeatures = availableFeatures.map(feature => {
270
- const isIncludedInCurrentPlan = !!(currentSubscription && feature.includedInPlans.includes(currentSubscription.planId));
271
- return {
272
- ...feature,
273
- isIncludedInCurrentPlan,
274
- isSubscribed: !!isIncludedInCurrentPlan
275
- };
276
- });
277
- setIndividualFeatures(updatedFeatures);
278
- } catch (error) {
279
- if (__DEV__) {
280
- console.error('Failed to load subscription data:', error);
281
- }
282
- toast.error('Failed to load subscription information');
283
- } finally {
284
- setLoading(false);
285
- }
286
- };
287
- const handleSubscribe = async planId => {
288
- try {
289
- const planToSubscribe = mockPlans.find(plan => plan.id === planId);
290
- if (!planToSubscribe?.applicableApps.includes(currentAppPackage)) {
291
- toast.error(t('premium.toasts.planUnavailable', {
292
- app: currentAppPackage
293
- }) || `This plan is not available for the current app (${currentAppPackage})`);
294
- return;
295
- }
296
- if (planId === 'mention-plus' && currentAppPackage !== 'mention') {
297
- toast.error(t('premium.toasts.mentionOnly') || 'Mention+ is only available in the Mention app');
298
- return;
299
- }
300
- setSelectedPlan(planId);
301
- setProcessingPayment(true);
302
- await new Promise(resolve => setTimeout(resolve, SUBSCRIBE_DELAY_MS));
303
- toast.success(t('premium.toasts.activated') || 'Subscription activated successfully!');
304
- setSubscription({
305
- id: `sub_${Date.now()}`,
306
- planId,
307
- status: 'active',
308
- currentPeriodStart: new Date().toISOString(),
309
- currentPeriodEnd: new Date(Date.now() + PERIOD_MS).toISOString(),
310
- cancelAtPeriodEnd: false
311
- });
312
- loadSubscriptionData();
313
- } catch (error) {
314
- if (__DEV__) {
315
- console.error('Payment failed:', error);
316
- }
317
- toast.error(t('premium.toasts.paymentFailed') || 'Payment failed. Please try again.');
318
- } finally {
319
- setProcessingPayment(false);
320
- }
321
- };
322
- const handleCancelSubscription = useCallback(async () => {
323
- const confirmed = await surfaces.confirm({
324
- title: t('premium.confirms.cancelSubTitle') || 'Cancel Subscription',
325
- description: t('premium.confirms.cancelSub') || 'Are you sure you want to cancel your subscription? You will lose access to premium features at the end of your current billing period.',
326
- confirmLabel: t('premium.actions.cancelSubBtn') || 'Cancel Subscription',
327
- cancelLabel: t('common.cancel') || 'Cancel',
328
- destructive: true
329
- });
330
- if (!confirmed) return;
331
- try {
332
- setSubscription(prev => prev ? {
333
- ...prev,
334
- cancelAtPeriodEnd: true
335
- } : null);
336
- toast.success(t('premium.toasts.willCancel') || 'Subscription will be canceled at the end of the billing period');
337
- } catch (error) {
338
- toast.error(t('premium.toasts.cancelFailed') || 'Failed to cancel subscription');
339
- }
340
- }, [t]);
341
- const handleReactivateSubscription = useCallback(async () => {
342
- try {
343
- setSubscription(prev => prev ? {
344
- ...prev,
345
- cancelAtPeriodEnd: false
346
- } : null);
347
- toast.success(t('premium.toasts.reactivated') || 'Subscription reactivated successfully');
348
- } catch (error) {
349
- toast.error(t('premium.toasts.reactivateFailed') || 'Failed to reactivate subscription');
350
- }
351
- }, [t]);
352
- const formatPrice = (price, interval) => {
353
- const yearlyPrice = interval === 'year' ? price : price * MONTHS_PER_YEAR * YEARLY_DISCOUNT;
354
- const displayPrice = billingInterval === 'year' ? yearlyPrice : price;
355
- return {
356
- price: displayPrice,
357
- formatted: `$${displayPrice.toFixed(2)}`,
358
- interval: billingInterval === 'year' ? 'year' : 'month'
359
- };
360
- };
361
- const getCurrentPlan = () => {
362
- if (!subscription) return null;
363
- return plans.find(plan => plan.id === subscription.planId);
364
- };
365
- const handleFeatureSubscribe = async featureId => {
366
- try {
367
- const featureToSubscribe = mockIndividualFeatures.find(feature => feature.id === featureId);
368
- if (!featureToSubscribe?.applicableApps.includes(currentAppPackage)) {
369
- toast.error(`This feature is not available for the current app (${currentAppPackage})`);
370
- return;
371
- }
372
- if (featureToSubscribe.appScope === 'specific') {
373
- const hasExactMatch = featureToSubscribe.applicableApps.length === 1 && featureToSubscribe.applicableApps[0] === currentAppPackage;
374
- if (!hasExactMatch && featureToSubscribe.applicableApps.length === 1) {
375
- const requiredApp = featureToSubscribe.applicableApps[0];
376
- toast.error(`${featureToSubscribe.name} is only available in the ${requiredApp} app`);
377
- return;
378
- }
379
- }
380
- setProcessingPayment(true);
381
- await new Promise(resolve => setTimeout(resolve, FEATURE_DELAY_MS));
382
- setIndividualFeatures(prev => prev.map(feature => feature.id === featureId ? {
383
- ...feature,
384
- isSubscribed: true
385
- } : feature));
386
- const feature = individualFeatures.find(f => f.id === featureId);
387
- toast.success(t('premium.toasts.featureSubscribed', {
388
- name: feature?.name ?? ''
389
- }) ?? `Subscribed to ${feature?.name} successfully!`);
390
- } catch (error) {
391
- if (__DEV__) {
392
- console.error('Feature subscription failed:', error);
393
- }
394
- toast.error(t('premium.toasts.featureSubscribeFailed') || 'Feature subscription failed. Please try again.');
395
- } finally {
396
- setProcessingPayment(false);
397
- }
398
- };
399
- const handleFeatureUnsubscribe = useCallback(async featureId => {
400
- const feature = individualFeatures.find(f => f.id === featureId);
401
- const confirmed = await surfaces.confirm({
402
- title: t('premium.confirms.unsubscribeFeatureTitle') || 'Unsubscribe from Feature',
403
- description: feature ? t('premium.confirms.unsubscribeFeature', {
404
- name: feature.name
405
- }) ?? `Are you sure you want to unsubscribe from ${feature.name}?` : '',
406
- confirmLabel: t('premium.actions.unsubscribe') || 'Unsubscribe',
407
- cancelLabel: t('common.cancel') || 'Cancel',
408
- destructive: true
409
- });
410
- if (!confirmed) return;
411
- try {
412
- setIndividualFeatures(prev => prev.map(f => f.id === featureId ? {
413
- ...f,
414
- isSubscribed: false
415
- } : f));
416
- toast.success(t('premium.toasts.featureUnsubscribed', {
417
- name: feature?.name ?? ''
418
- }) ?? `Unsubscribed from ${feature?.name}`);
419
- } catch (error) {
420
- toast.error(t('premium.toasts.featureUnsubscribeFailed') || 'Failed to unsubscribe from feature');
421
- }
422
- }, [individualFeatures, t]);
423
- const renderCurrentSubscription = () => {
424
- if (!subscription) return null;
425
- const currentPlan = getCurrentPlan();
426
- if (!currentPlan) return null;
427
- const statusChipColor = subscription.status === 'active' ? 'success' : subscription.status === 'trialing' ? 'warning' : 'error';
428
- return /*#__PURE__*/_jsxs(View, {
429
- className: "mb-space-24",
430
- children: [/*#__PURE__*/_jsx(H5, {
431
- className: "text-text mb-space-12",
432
- children: t('premium.current.title') || 'Current Subscription'
433
- }), /*#__PURE__*/_jsx(Card, {
434
- variant: "outlined",
435
- children: /*#__PURE__*/_jsxs(CardBody, {
436
- style: {
437
- padding: 20
438
- },
439
- children: [/*#__PURE__*/_jsxs(View, {
440
- className: "flex-row justify-between items-start mb-space-12",
441
- children: [/*#__PURE__*/_jsxs(View, {
442
- className: "flex-1 pr-space-12",
443
- children: [/*#__PURE__*/_jsx(H4, {
444
- className: "text-text",
445
- numberOfLines: 1,
446
- children: currentPlan.name
447
- }), /*#__PURE__*/_jsx(Text, {
448
- className: "text-text-secondary text-sm mt-space-2",
449
- children: `$${currentPlan.price}/month`
450
- })]
451
- }), /*#__PURE__*/_jsx(Badge, {
452
- variant: "subtle",
453
- color: statusChipColor,
454
- size: "large",
455
- content: subscription.status.toUpperCase()
456
- })]
457
- }), /*#__PURE__*/_jsx(Text, {
458
- className: "text-text-secondary text-sm mb-space-16",
459
- children: t('premium.current.renewsOn', {
460
- date: new Date(subscription.currentPeriodEnd).toLocaleDateString()
461
- }) || `Renews on ${new Date(subscription.currentPeriodEnd).toLocaleDateString()}`
462
- }), subscription.cancelAtPeriodEnd && /*#__PURE__*/_jsxs(View, {
463
- className: "flex-row items-center bg-fill-secondary rounded-radius-12 p-space-12 mb-space-16",
464
- children: [/*#__PURE__*/_jsx(Ionicons, {
465
- name: "warning",
466
- size: 16,
467
- color: colors.warning
468
- }), /*#__PURE__*/_jsx(Text, {
469
- className: "text-text-secondary text-sm ml-space-8 flex-1",
470
- children: t('premium.current.willCancelOn', {
471
- date: new Date(subscription.currentPeriodEnd).toLocaleDateString()
472
- }) || `Subscription will cancel on ${new Date(subscription.currentPeriodEnd).toLocaleDateString()}`
473
- })]
474
- }), /*#__PURE__*/_jsxs(View, {
475
- className: "flex-row gap-space-12",
476
- children: [subscription.cancelAtPeriodEnd ? /*#__PURE__*/_jsx(Button, {
477
- appearance: "solid",
478
- tone: "accent",
479
- onPress: handleReactivateSubscription,
480
- className: "flex-1",
481
- accessibilityLabel: t('premium.actions.reactivate') || 'Reactivate',
482
- children: t('premium.actions.reactivate') || 'Reactivate'
483
- }) : /*#__PURE__*/_jsx(Button, {
484
- appearance: "solid",
485
- tone: "danger",
486
- onPress: handleCancelSubscription,
487
- className: "flex-1",
488
- accessibilityLabel: t('premium.actions.cancelSubBtn') || 'Cancel Subscription',
489
- children: t('premium.actions.cancelSubBtn') || 'Cancel Subscription'
490
- }), /*#__PURE__*/_jsx(Button, {
491
- appearance: "subtle",
492
- tone: "neutral",
493
- onPress: () => navigate?.('PaymentGateway'),
494
- className: "flex-1",
495
- accessibilityLabel: t('premium.actions.manageBilling') || 'Manage Billing',
496
- children: t('premium.actions.manageBilling') || 'Manage Billing'
497
- })]
498
- })]
499
- })
500
- })]
501
- });
502
- };
503
- const renderBillingToggle = () => /*#__PURE__*/_jsxs(View, {
504
- className: "mb-space-24",
505
- children: [/*#__PURE__*/_jsxs(SegmentedControl, {
506
- label: t('premium.billing.label') || 'Billing period',
507
- type: "tabs",
508
- value: billingInterval,
509
- onChange: setBillingInterval,
510
- children: [/*#__PURE__*/_jsx(SegmentedControlItem, {
511
- value: BILLING_MONTH,
512
- children: /*#__PURE__*/_jsx(SegmentedControlItemText, {
513
- children: t('premium.billing.monthly') || 'Monthly'
514
- })
515
- }), /*#__PURE__*/_jsx(SegmentedControlItem, {
516
- value: BILLING_YEAR,
517
- children: /*#__PURE__*/_jsx(SegmentedControlItemText, {
518
- children: t('premium.billing.yearly') || 'Yearly'
519
- })
520
- })]
521
- }), billingInterval === 'year' && /*#__PURE__*/_jsx(Text, {
522
- className: "text-text-secondary text-sm text-center mt-space-12 font-medium",
523
- children: t('premium.billing.saveYearly') || 'Save 20% with yearly billing'
524
- })]
525
- });
526
- const renderPlanCard = plan => {
527
- const pricing = formatPrice(plan.price, plan.interval);
528
- const isSelected = selectedPlan === plan.id;
529
- const isCurrentPlan = subscription?.planId === plan.id;
530
- const isAppSpecific = plan.appScope === 'specific' && plan.applicableApps.length === 1;
531
- const isAvailableForCurrentApp = plan.applicableApps.includes(currentAppPackage);
532
- const getAppScopeText = () => {
533
- if (plan.appScope === 'ecosystem') {
534
- return t('premium.plan.scope.allApps') || 'Works across all Oxy apps';
535
- }
536
- if (isAppSpecific) {
537
- const appName = plan.applicableApps[0];
538
- return t('premium.plan.scope.exclusive', {
539
- app: appName
540
- }) || `Exclusive to ${appName} app`;
541
- }
542
- return t('premium.plan.scope.availableIn', {
543
- apps: plan.applicableApps.join(', ')
544
- }) || `Available in: ${plan.applicableApps.join(', ')}`;
545
- };
546
- const getAvailabilityStatus = () => {
547
- if (isAppSpecific && !isAvailableForCurrentApp) {
548
- const requiredApp = plan.applicableApps[0];
549
- return {
550
- available: false,
551
- reason: t('premium.plan.scope.exclusive', {
552
- app: requiredApp
553
- }) || `Only available in ${requiredApp} app`
554
- };
555
- }
556
- return {
557
- available: true,
558
- reason: null
559
- };
560
- };
561
- const availability = getAvailabilityStatus();
562
- return /*#__PURE__*/_jsx(Card, {
563
- variant: "outlined",
564
- style: [{
565
- marginBottom: 16
566
- }, !availability.available ? {
567
- opacity: 0.6
568
- } : null, isSelected || plan.isPopular ? {
569
- borderColor: colors.primary,
570
- borderWidth: 2
571
- } : null],
572
- children: /*#__PURE__*/_jsxs(CardBody, {
573
- style: {
574
- padding: 20
575
- },
576
- children: [/*#__PURE__*/_jsxs(View, {
577
- className: "flex-row flex-wrap gap-space-8 mb-space-12",
578
- children: [plan.isPopular && /*#__PURE__*/_jsx(Badge, {
579
- variant: "solid",
580
- color: "primary",
581
- size: "large",
582
- content: t('premium.plan.badge.mostPopular') || 'Most Popular'
583
- }), isAppSpecific && /*#__PURE__*/_jsx(Badge, {
584
- variant: "subtle",
585
- color: isAvailableForCurrentApp ? 'success' : 'warning',
586
- size: "large",
587
- content: isAvailableForCurrentApp ? t('premium.plan.badge.appExclusive') || 'App Exclusive' : t('premium.plan.badge.notAvailable') || 'Not Available'
588
- })]
589
- }), /*#__PURE__*/_jsxs(View, {
590
- className: "mb-space-16",
591
- children: [/*#__PURE__*/_jsx(H4, {
592
- className: "text-text mb-space-4",
593
- children: plan.name
594
- }), /*#__PURE__*/_jsx(Text, {
595
- className: "text-text-secondary text-sm",
596
- children: plan.description
597
- }), /*#__PURE__*/_jsx(Text, {
598
- className: "text-text-tertiary text-xs mt-space-4 italic",
599
- children: getAppScopeText()
600
- }), !availability.available && /*#__PURE__*/_jsx(Text, {
601
- className: "text-xs mt-space-4 font-medium",
602
- style: {
603
- color: colors.error
604
- },
605
- children: availability.reason
606
- })]
607
- }), /*#__PURE__*/_jsxs(View, {
608
- className: "flex-row items-baseline mb-space-20",
609
- children: [/*#__PURE__*/_jsx(H2, {
610
- className: "text-text",
611
- children: pricing.formatted
612
- }), /*#__PURE__*/_jsx(Text, {
613
- className: "text-text-secondary text-sm ml-space-4",
614
- children: t('premium.plan.perInterval', {
615
- interval: pricing.interval
616
- }) || `per ${pricing.interval}`
617
- })]
618
- }), /*#__PURE__*/_jsx(BenefitList, {
619
- className: "mb-space-24",
620
- children: plan.features.map(feature => /*#__PURE__*/_jsx(BenefitRow, {
621
- icon: /*#__PURE__*/_jsx(Ionicons, {
622
- name: "checkmark",
623
- size: 18,
624
- color: colors.success
625
- }),
626
- label: feature
627
- }, feature))
628
- }), isCurrentPlan ? /*#__PURE__*/_jsx(Button, {
629
- appearance: "subtle",
630
- tone: "neutral",
631
- disabled: true,
632
- icon: /*#__PURE__*/_jsx(Ionicons, {
633
- name: "checkmark-circle",
634
- size: 18,
635
- color: colors.success
636
- }),
637
- accessibilityLabel: t('premium.plan.current') || 'Current Plan',
638
- className: "w-full",
639
- children: t('premium.plan.current') || 'Current Plan'
640
- }) : !availability.available ? /*#__PURE__*/_jsx(Button, {
641
- appearance: "subtle",
642
- tone: "neutral",
643
- disabled: true,
644
- accessibilityLabel: t('premium.plan.notAvailableInApp') || 'Not Available in Current App',
645
- className: "w-full",
646
- children: t('premium.plan.notAvailableInApp') || 'Not Available in Current App'
647
- }) : /*#__PURE__*/_jsx(Button, {
648
- variant: plan.isPopular ? 'primary' : 'secondary',
649
- onPress: () => handleSubscribe(plan.id),
650
- disabled: processingPayment,
651
- loading: processingPayment && isSelected,
652
- accessibilityLabel: t('premium.actions.subscribeTo', {
653
- name: plan.name
654
- }) || `Subscribe to ${plan.name}`,
655
- className: "w-full",
656
- children: t('premium.actions.subscribeTo', {
657
- name: plan.name
658
- }) || `Subscribe to ${plan.name}`
659
- })]
660
- })
661
- }, plan.id);
662
- };
663
- const renderTabNavigation = () => /*#__PURE__*/_jsx(View, {
664
- className: "mb-space-24",
665
- children: /*#__PURE__*/_jsxs(SegmentedControl, {
666
- label: t('premium.tabs.label') || 'Subscription type',
667
- type: "tabs",
668
- value: activeTab,
669
- onChange: setActiveTab,
670
- children: [/*#__PURE__*/_jsx(SegmentedControlItem, {
671
- value: TAB_PLANS,
672
- children: /*#__PURE__*/_jsx(SegmentedControlItemText, {
673
- children: t('premium.tabs.plans') || 'Full Plans'
674
- })
675
- }), /*#__PURE__*/_jsx(SegmentedControlItem, {
676
- value: TAB_FEATURES,
677
- children: /*#__PURE__*/_jsx(SegmentedControlItemText, {
678
- children: t('premium.tabs.features') || 'Individual Features'
679
- })
680
- })]
681
- })
682
- });
683
- const renderFeatureCard = feature => {
684
- const pricing = formatPrice(feature.price, feature.interval);
685
- const isSubscribed = feature.isSubscribed;
686
- const isIncludedInCurrentPlan = feature.isIncludedInCurrentPlan;
687
- const canPurchase = feature.canBePurchasedSeparately && !isIncludedInCurrentPlan;
688
- const getCategoryColor = category => {
689
- switch (category) {
690
- case 'analytics':
691
- return colors.warning;
692
- case 'customization':
693
- return colors.secondary;
694
- case 'content':
695
- return colors.success;
696
- case 'networking':
697
- return colors.info;
698
- case 'productivity':
699
- return colors.error;
700
- default:
701
- return colors.primary;
702
- }
703
- };
704
- const getCategoryIcon = category => {
705
- switch (category) {
706
- case 'analytics':
707
- return 'analytics';
708
- case 'customization':
709
- return 'color-palette';
710
- case 'content':
711
- return 'document-text';
712
- case 'networking':
713
- return 'people';
714
- case 'productivity':
715
- return 'briefcase';
716
- default:
717
- return 'star';
718
- }
719
- };
720
- const getAppScopeText = () => {
721
- if (feature.appScope === 'ecosystem') {
722
- return t('premium.feature.scope.allApps');
723
- }
724
- return t('premium.feature.scope.availableIn', {
725
- apps: feature.applicableApps.join(', ')
726
- }) || `Available in: ${feature.applicableApps.join(', ')}`;
727
- };
728
- return /*#__PURE__*/_jsx(Card, {
729
- variant: "outlined",
730
- style: [{
731
- marginBottom: 12
732
- }, isIncludedInCurrentPlan ? {
733
- borderColor: colors.primary,
734
- borderWidth: 2
735
- } : isSubscribed ? {
736
- borderColor: colors.success,
737
- borderWidth: 2
738
- } : null],
739
- children: /*#__PURE__*/_jsxs(CardBody, {
740
- style: {
741
- padding: 16
742
- },
743
- children: [/*#__PURE__*/_jsxs(View, {
744
- className: "flex-row items-start mb-space-12",
745
- children: [/*#__PURE__*/_jsx(View, {
746
- className: "bg-fill-secondary rounded-radius-max items-center justify-center mr-space-12",
747
- style: {
748
- width: 40,
749
- height: 40
750
- },
751
- children: /*#__PURE__*/_jsx(Ionicons, {
752
- name: getCategoryIcon(feature.category),
753
- size: 24,
754
- color: getCategoryColor(feature.category)
755
- })
756
- }), /*#__PURE__*/_jsxs(View, {
757
- className: "flex-1",
758
- children: [/*#__PURE__*/_jsxs(View, {
759
- className: "flex-row items-center justify-between mb-space-4",
760
- children: [/*#__PURE__*/_jsx(H5, {
761
- className: "text-text flex-1 pr-space-8",
762
- numberOfLines: 1,
763
- children: feature.name
764
- }), isIncludedInCurrentPlan && /*#__PURE__*/_jsx(Badge, {
765
- variant: "solid",
766
- color: "primary",
767
- size: "large",
768
- content: t('premium.feature.included') || 'Included'
769
- })]
770
- }), /*#__PURE__*/_jsx(Text, {
771
- className: "text-text-secondary text-sm",
772
- children: feature.description
773
- }), /*#__PURE__*/_jsx(Text, {
774
- className: "text-text-tertiary text-xs mt-space-4 italic",
775
- children: getAppScopeText()
776
- })]
777
- })]
778
- }), !isIncludedInCurrentPlan && /*#__PURE__*/_jsxs(View, {
779
- className: "items-center mb-space-16",
780
- children: [/*#__PURE__*/_jsx(H4, {
781
- className: "text-text",
782
- children: pricing.formatted
783
- }), /*#__PURE__*/_jsx(Text, {
784
- className: "text-text-secondary text-sm mt-space-2",
785
- children: t('premium.plan.perInterval', {
786
- interval: pricing.interval
787
- }) || `per ${pricing.interval}`
788
- })]
789
- }), isIncludedInCurrentPlan ? /*#__PURE__*/_jsx(Button, {
790
- appearance: "solid",
791
- tone: "accent",
792
- disabled: true,
793
- icon: /*#__PURE__*/_jsx(Ionicons, {
794
- name: "checkmark-circle",
795
- size: 16,
796
- color: colors.primaryForeground
797
- }),
798
- accessibilityLabel: t('premium.feature.includedInPlan') || 'Included in your plan',
799
- className: "w-full",
800
- children: t('premium.feature.includedInPlan') || 'Included in your plan'
801
- }) : isSubscribed ? /*#__PURE__*/_jsxs(View, {
802
- className: "flex-row gap-space-8",
803
- children: [/*#__PURE__*/_jsx(Button, {
804
- appearance: "subtle",
805
- tone: "neutral",
806
- disabled: true,
807
- icon: /*#__PURE__*/_jsx(Ionicons, {
808
- name: "checkmark",
809
- size: 16,
810
- color: colors.success
811
- }),
812
- accessibilityLabel: t('premium.feature.subscribed') || 'Subscribed',
813
- className: "flex-1",
814
- children: t('premium.feature.subscribed') || 'Subscribed'
815
- }), /*#__PURE__*/_jsx(Button, {
816
- appearance: "subtle",
817
- tone: "neutral",
818
- onPress: () => handleFeatureUnsubscribe(feature.id),
819
- accessibilityLabel: t('premium.actions.unsubscribe') || 'Unsubscribe',
820
- className: "flex-1",
821
- children: t('premium.actions.unsubscribe') || 'Unsubscribe'
822
- })]
823
- }) : canPurchase ? /*#__PURE__*/_jsx(Button, {
824
- appearance: "solid",
825
- tone: "accent",
826
- onPress: () => handleFeatureSubscribe(feature.id),
827
- disabled: processingPayment,
828
- loading: processingPayment,
829
- accessibilityLabel: t('premium.actions.subscribe') || 'Subscribe',
830
- className: "w-full",
831
- children: t('premium.actions.subscribe') || 'Subscribe'
832
- }) : /*#__PURE__*/_jsx(Button, {
833
- appearance: "subtle",
834
- tone: "neutral",
835
- disabled: true,
836
- accessibilityLabel: t('premium.feature.plansOnly') || 'Only available in subscription plans',
837
- className: "w-full",
838
- children: t('premium.feature.plansOnly') || 'Only available in subscription plans'
839
- })]
840
- })
841
- }, feature.id);
842
- };
843
- const renderIndividualFeatures = () => /*#__PURE__*/_jsxs(View, {
844
- className: "mb-space-24",
845
- children: [/*#__PURE__*/_jsx(H4, {
846
- className: "text-text mb-space-8",
847
- children: t('premium.features.title') || 'Individual Features'
848
- }), /*#__PURE__*/_jsx(Text, {
849
- className: "text-text-secondary text-base mb-space-16",
850
- children: t('premium.features.subtitle') || 'Subscribe to specific features you need. Some features are included in subscription plans.'
851
- }), FEATURE_CATEGORIES.map(category => {
852
- const categoryFeatures = individualFeatures.filter(f => f.category === category);
853
- if (categoryFeatures.length === 0) return null;
854
- return /*#__PURE__*/_jsxs(View, {
855
- className: "mb-space-24",
856
- children: [/*#__PURE__*/_jsx(H5, {
857
- className: "text-text mb-space-12",
858
- children: category.charAt(0).toUpperCase() + category.slice(1)
859
- }), categoryFeatures.map(renderFeatureCard)]
860
- }, category);
861
- })]
862
- });
863
-
864
- // Show different app contexts for testing (development only).
865
- const [showAppSwitcher] = useState(__DEV__);
866
- const renderAppSwitcher = () => {
867
- if (!showAppSwitcher) return null;
868
- const testApps = ['mention', 'oxy-social', 'oxy-workspace', 'oxy-creator'];
869
- return /*#__PURE__*/_jsxs(View, {
870
- className: "bg-fill-secondary border border-border-image rounded-radius-12 p-space-16 mb-space-24",
871
- children: [/*#__PURE__*/_jsx(Text, {
872
- className: "text-text-secondary text-sm font-medium mb-space-12",
873
- children: t('premium.dev.appContext') || 'Test App Context (Dev Only)'
874
- }), /*#__PURE__*/_jsx(ScrollView, {
875
- horizontal: true,
876
- showsHorizontalScrollIndicator: false,
877
- children: /*#__PURE__*/_jsx(View, {
878
- className: "flex-row gap-space-8",
879
- children: testApps.map(app => /*#__PURE__*/_jsx(Chip, {
880
- variant: currentAppPackage === app ? 'solid' : 'outlined',
881
- color: "primary",
882
- onPress: () => setCurrentAppPackage(app),
883
- children: app
884
- }, app))
885
- })
886
- })]
887
- });
888
- };
889
- if (loading) {
890
- return /*#__PURE__*/_jsx(_Fragment, {
891
- children: /*#__PURE__*/_jsxs(View, {
892
- className: "items-center justify-center px-screen-margin py-space-40",
893
- children: [/*#__PURE__*/_jsx(ActivityIndicator, {
894
- size: "large",
895
- color: colors.primary
896
- }), /*#__PURE__*/_jsx(Text, {
897
- className: "text-text-secondary text-base text-center mt-space-16",
898
- children: t('premium.loading') || 'Loading subscription plans...'
899
- })]
900
- })
901
- });
902
- }
903
- return /*#__PURE__*/_jsx(_Fragment, {
904
- children: /*#__PURE__*/_jsx(View, {
905
- className: "px-screen-margin pb-space-32",
906
- children: /*#__PURE__*/_jsxs(View, {
907
- className: "pt-space-20",
908
- children: [renderAppSwitcher(), subscription && renderCurrentSubscription(), !subscription && /*#__PURE__*/_jsxs(View, {
909
- className: "mb-space-24",
910
- children: [/*#__PURE__*/_jsx(H2, {
911
- className: "text-text mb-space-8",
912
- children: t('premium.choosePlan') || 'Choose Your Plan'
913
- }), /*#__PURE__*/_jsx(Text, {
914
- className: "text-text-secondary text-base",
915
- children: t('premium.choosePlanSubtitle') || 'Unlock premium features and take your experience to the next level'
916
- })]
917
- }), !subscription && renderTabNavigation(), !subscription && activeTab === TAB_PLANS && renderBillingToggle(), activeTab === TAB_PLANS ? /*#__PURE__*/_jsxs(View, {
918
- className: "mb-space-24",
919
- children: [!subscription && /*#__PURE__*/_jsx(H4, {
920
- className: "text-text mb-space-12",
921
- children: t('premium.availablePlans') || 'Available Plans'
922
- }), plans.map(renderPlanCard)]
923
- }) : renderIndividualFeatures(), /*#__PURE__*/_jsxs(View, {
924
- className: "mb-space-24",
925
- children: [/*#__PURE__*/_jsx(H4, {
926
- className: "text-text mb-space-12",
927
- children: t('premium.why') || 'Why Go Premium?'
928
- }), /*#__PURE__*/_jsx(BenefitList, {
929
- children: [{
930
- icon: 'flash',
931
- color: colors.primary,
932
- title: t('premium.benefits.performance.title') || 'Enhanced Performance',
933
- desc: t('premium.benefits.performance.desc') || 'Faster processing and priority access to our servers'
934
- }, {
935
- icon: 'shield-checkmark',
936
- color: colors.success,
937
- title: t('premium.benefits.security.title') || 'Advanced Security',
938
- desc: t('premium.benefits.security.desc') || 'Enhanced encryption and security features'
939
- }, {
940
- icon: 'headset',
941
- color: colors.warning,
942
- title: t('premium.benefits.support.title') || 'Priority Support',
943
- desc: t('premium.benefits.support.desc') || 'Get help faster with our premium support team'
944
- }].map(benefit => /*#__PURE__*/_jsxs(BenefitRow, {
945
- icon: /*#__PURE__*/_jsx(Ionicons, {
946
- name: benefit.icon,
947
- size: 18,
948
- color: benefit.color
949
- }),
950
- accessibilityLabel: `${benefit.title}. ${benefit.desc}`,
951
- children: [/*#__PURE__*/_jsx(Text, {
952
- className: "text-text font-medium text-sm",
953
- children: benefit.title
954
- }), `\n${benefit.desc}`]
955
- }, benefit.title))
956
- })]
957
- })]
958
- })
959
- })
960
- });
961
- };
962
- export default PremiumSubscriptionScreen;
963
- //# sourceMappingURL=PremiumSubscriptionScreen.js.map