@oxyhq/services 5.11.12 → 5.12.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 (322) hide show
  1. package/README.md +48 -7
  2. package/lib/commonjs/core/OxyServices.js +162 -12
  3. package/lib/commonjs/core/OxyServices.js.map +1 -1
  4. package/lib/commonjs/i18n/index.js +40 -0
  5. package/lib/commonjs/i18n/index.js.map +1 -0
  6. package/lib/commonjs/i18n/locales/en-US.json +681 -0
  7. package/lib/commonjs/i18n/locales/es-ES.json +689 -0
  8. package/lib/commonjs/ui/components/GroupedItem.js +2 -1
  9. package/lib/commonjs/ui/components/GroupedItem.js.map +1 -1
  10. package/lib/commonjs/ui/components/Header.js +4 -3
  11. package/lib/commonjs/ui/components/Header.js.map +1 -1
  12. package/lib/commonjs/ui/components/OxyProvider.js +110 -103
  13. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  14. package/lib/commonjs/ui/components/ProfileCard.js +5 -1
  15. package/lib/commonjs/ui/components/ProfileCard.js.map +1 -1
  16. package/lib/commonjs/ui/components/Section.js +1 -1
  17. package/lib/commonjs/ui/components/StepBasedScreen.js +16 -16
  18. package/lib/commonjs/ui/components/StepBasedScreen.js.map +1 -1
  19. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js +15 -3
  20. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js.map +1 -1
  21. package/lib/commonjs/ui/components/internal/PinInput.js +10 -4
  22. package/lib/commonjs/ui/components/internal/PinInput.js.map +1 -1
  23. package/lib/commonjs/ui/context/OxyContext.js +128 -12
  24. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  25. package/lib/commonjs/ui/hooks/useI18n.js +22 -0
  26. package/lib/commonjs/ui/hooks/useI18n.js.map +1 -0
  27. package/lib/commonjs/ui/navigation/OxyRouter.js +11 -131
  28. package/lib/commonjs/ui/navigation/OxyRouter.js.map +1 -1
  29. package/lib/commonjs/ui/navigation/routes.js +127 -0
  30. package/lib/commonjs/ui/navigation/routes.js.map +1 -0
  31. package/lib/commonjs/ui/navigation/types.js +7 -0
  32. package/lib/commonjs/ui/navigation/types.js.map +1 -1
  33. package/lib/commonjs/ui/screens/AccountCenterScreen.js +55 -47
  34. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  35. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +69 -61
  36. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
  37. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +378 -37
  38. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  39. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +52 -34
  40. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  41. package/lib/commonjs/ui/screens/FeedbackScreen.js +40 -36
  42. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  43. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +105 -78
  44. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  45. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +1 -1
  46. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  47. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +92 -60
  48. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  49. package/lib/commonjs/ui/screens/ProfileScreen.js +21 -11
  50. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  51. package/lib/commonjs/ui/screens/RecoverAccountScreen.js +30 -8
  52. package/lib/commonjs/ui/screens/RecoverAccountScreen.js.map +1 -1
  53. package/lib/commonjs/ui/screens/SignInScreen.js +47 -26
  54. package/lib/commonjs/ui/screens/SignInScreen.js.map +1 -1
  55. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +31 -24
  56. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  57. package/lib/commonjs/ui/screens/internal/SignInPasswordStep.js +11 -7
  58. package/lib/commonjs/ui/screens/internal/SignInPasswordStep.js.map +1 -1
  59. package/lib/commonjs/ui/screens/internal/SignInUsernameStep.js +12 -6
  60. package/lib/commonjs/ui/screens/internal/SignInUsernameStep.js.map +1 -1
  61. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js +11 -7
  62. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
  63. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js +15 -11
  64. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  65. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js +19 -27
  66. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
  67. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js +8 -4
  68. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
  69. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js +14 -10
  70. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
  71. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js +7 -3
  72. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
  73. package/lib/commonjs/ui/screens/steps/RecoverRequestStep.js +19 -14
  74. package/lib/commonjs/ui/screens/steps/RecoverRequestStep.js.map +1 -1
  75. package/lib/commonjs/ui/screens/steps/RecoverResetPasswordStep.js +130 -0
  76. package/lib/commonjs/ui/screens/steps/RecoverResetPasswordStep.js.map +1 -0
  77. package/lib/commonjs/ui/screens/steps/RecoverSuccessStep.js +13 -13
  78. package/lib/commonjs/ui/screens/steps/RecoverSuccessStep.js.map +1 -1
  79. package/lib/commonjs/ui/screens/steps/RecoverVerifyStep.js +14 -20
  80. package/lib/commonjs/ui/screens/steps/RecoverVerifyStep.js.map +1 -1
  81. package/lib/commonjs/ui/screens/steps/SignInPasswordStep.js +22 -8
  82. package/lib/commonjs/ui/screens/steps/SignInPasswordStep.js.map +1 -1
  83. package/lib/commonjs/ui/screens/steps/SignInTotpStep.js +161 -0
  84. package/lib/commonjs/ui/screens/steps/SignInTotpStep.js.map +1 -0
  85. package/lib/commonjs/ui/screens/steps/SignInUsernameStep.js +12 -6
  86. package/lib/commonjs/ui/screens/steps/SignInUsernameStep.js.map +1 -1
  87. package/lib/commonjs/ui/screens/steps/SignUpIdentityStep.js +10 -6
  88. package/lib/commonjs/ui/screens/steps/SignUpIdentityStep.js.map +1 -1
  89. package/lib/commonjs/ui/screens/steps/SignUpSecurityStep.js +10 -6
  90. package/lib/commonjs/ui/screens/steps/SignUpSecurityStep.js.map +1 -1
  91. package/lib/commonjs/ui/screens/steps/SignUpSummaryStep.js +34 -4
  92. package/lib/commonjs/ui/screens/steps/SignUpSummaryStep.js.map +1 -1
  93. package/lib/commonjs/ui/screens/steps/SignUpWelcomeStep.js +9 -10
  94. package/lib/commonjs/ui/screens/steps/SignUpWelcomeStep.js.map +1 -1
  95. package/lib/commonjs/ui/styles/authStyles.js +1 -2
  96. package/lib/commonjs/ui/styles/authStyles.js.map +1 -1
  97. package/lib/commonjs/utils/deviceManager.js +1 -1
  98. package/lib/commonjs/utils/deviceManager.js.map +1 -1
  99. package/lib/commonjs/utils/validationUtils.js +4 -2
  100. package/lib/commonjs/utils/validationUtils.js.map +1 -1
  101. package/lib/module/core/OxyServices.js +162 -12
  102. package/lib/module/core/OxyServices.js.map +1 -1
  103. package/lib/module/i18n/index.js +35 -0
  104. package/lib/module/i18n/index.js.map +1 -0
  105. package/lib/module/i18n/locales/en-US.json +681 -0
  106. package/lib/module/i18n/locales/es-ES.json +689 -0
  107. package/lib/module/ui/components/GroupedItem.js +2 -1
  108. package/lib/module/ui/components/GroupedItem.js.map +1 -1
  109. package/lib/module/ui/components/Header.js +4 -3
  110. package/lib/module/ui/components/Header.js.map +1 -1
  111. package/lib/module/ui/components/OxyProvider.js +109 -103
  112. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  113. package/lib/module/ui/components/ProfileCard.js +5 -1
  114. package/lib/module/ui/components/ProfileCard.js.map +1 -1
  115. package/lib/module/ui/components/Section.js +1 -1
  116. package/lib/module/ui/components/StepBasedScreen.js +16 -16
  117. package/lib/module/ui/components/StepBasedScreen.js.map +1 -1
  118. package/lib/module/ui/components/internal/GroupedPillButtons.js +15 -3
  119. package/lib/module/ui/components/internal/GroupedPillButtons.js.map +1 -1
  120. package/lib/module/ui/components/internal/PinInput.js +9 -4
  121. package/lib/module/ui/components/internal/PinInput.js.map +1 -1
  122. package/lib/module/ui/context/OxyContext.js +128 -12
  123. package/lib/module/ui/context/OxyContext.js.map +1 -1
  124. package/lib/module/ui/hooks/useI18n.js +18 -0
  125. package/lib/module/ui/hooks/useI18n.js.map +1 -0
  126. package/lib/module/ui/navigation/OxyRouter.js +7 -124
  127. package/lib/module/ui/navigation/OxyRouter.js.map +1 -1
  128. package/lib/module/ui/navigation/routes.js +122 -0
  129. package/lib/module/ui/navigation/routes.js.map +1 -0
  130. package/lib/module/ui/navigation/types.js +19 -1
  131. package/lib/module/ui/navigation/types.js.map +1 -1
  132. package/lib/module/ui/screens/AccountCenterScreen.js +55 -47
  133. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  134. package/lib/module/ui/screens/AccountOverviewScreen.js +69 -61
  135. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
  136. package/lib/module/ui/screens/AccountSettingsScreen.js +378 -37
  137. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  138. package/lib/module/ui/screens/AccountSwitcherScreen.js +52 -34
  139. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  140. package/lib/module/ui/screens/FeedbackScreen.js +40 -36
  141. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  142. package/lib/module/ui/screens/LanguageSelectorScreen.js +107 -80
  143. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  144. package/lib/module/ui/screens/PaymentGatewayScreen.js +1 -1
  145. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  146. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +92 -60
  147. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  148. package/lib/module/ui/screens/ProfileScreen.js +21 -11
  149. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  150. package/lib/module/ui/screens/RecoverAccountScreen.js +30 -8
  151. package/lib/module/ui/screens/RecoverAccountScreen.js.map +1 -1
  152. package/lib/module/ui/screens/SignInScreen.js +47 -26
  153. package/lib/module/ui/screens/SignInScreen.js.map +1 -1
  154. package/lib/module/ui/screens/WelcomeNewUserScreen.js +31 -24
  155. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  156. package/lib/module/ui/screens/internal/SignInPasswordStep.js +11 -7
  157. package/lib/module/ui/screens/internal/SignInPasswordStep.js.map +1 -1
  158. package/lib/module/ui/screens/internal/SignInUsernameStep.js +12 -6
  159. package/lib/module/ui/screens/internal/SignInUsernameStep.js.map +1 -1
  160. package/lib/module/ui/screens/karma/KarmaAboutScreen.js +11 -7
  161. package/lib/module/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
  162. package/lib/module/ui/screens/karma/KarmaCenterScreen.js +15 -11
  163. package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  164. package/lib/module/ui/screens/karma/KarmaFAQScreen.js +19 -27
  165. package/lib/module/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
  166. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js +8 -4
  167. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
  168. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js +14 -10
  169. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
  170. package/lib/module/ui/screens/karma/KarmaRulesScreen.js +7 -3
  171. package/lib/module/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
  172. package/lib/module/ui/screens/steps/RecoverRequestStep.js +19 -14
  173. package/lib/module/ui/screens/steps/RecoverRequestStep.js.map +1 -1
  174. package/lib/module/ui/screens/steps/RecoverResetPasswordStep.js +125 -0
  175. package/lib/module/ui/screens/steps/RecoverResetPasswordStep.js.map +1 -0
  176. package/lib/module/ui/screens/steps/RecoverSuccessStep.js +13 -13
  177. package/lib/module/ui/screens/steps/RecoverSuccessStep.js.map +1 -1
  178. package/lib/module/ui/screens/steps/RecoverVerifyStep.js +14 -20
  179. package/lib/module/ui/screens/steps/RecoverVerifyStep.js.map +1 -1
  180. package/lib/module/ui/screens/steps/SignInPasswordStep.js +22 -8
  181. package/lib/module/ui/screens/steps/SignInPasswordStep.js.map +1 -1
  182. package/lib/module/ui/screens/steps/SignInTotpStep.js +156 -0
  183. package/lib/module/ui/screens/steps/SignInTotpStep.js.map +1 -0
  184. package/lib/module/ui/screens/steps/SignInUsernameStep.js +12 -6
  185. package/lib/module/ui/screens/steps/SignInUsernameStep.js.map +1 -1
  186. package/lib/module/ui/screens/steps/SignUpIdentityStep.js +10 -6
  187. package/lib/module/ui/screens/steps/SignUpIdentityStep.js.map +1 -1
  188. package/lib/module/ui/screens/steps/SignUpSecurityStep.js +10 -6
  189. package/lib/module/ui/screens/steps/SignUpSecurityStep.js.map +1 -1
  190. package/lib/module/ui/screens/steps/SignUpSummaryStep.js +34 -4
  191. package/lib/module/ui/screens/steps/SignUpSummaryStep.js.map +1 -1
  192. package/lib/module/ui/screens/steps/SignUpWelcomeStep.js +9 -10
  193. package/lib/module/ui/screens/steps/SignUpWelcomeStep.js.map +1 -1
  194. package/lib/module/ui/styles/authStyles.js +1 -2
  195. package/lib/module/ui/styles/authStyles.js.map +1 -1
  196. package/lib/module/utils/deviceManager.js +1 -1
  197. package/lib/module/utils/deviceManager.js.map +1 -1
  198. package/lib/module/utils/validationUtils.js +4 -2
  199. package/lib/module/utils/validationUtils.js.map +1 -1
  200. package/lib/typescript/core/OxyServices.d.ts +57 -3
  201. package/lib/typescript/core/OxyServices.d.ts.map +1 -1
  202. package/lib/typescript/i18n/index.d.ts +4 -0
  203. package/lib/typescript/i18n/index.d.ts.map +1 -0
  204. package/lib/typescript/models/interfaces.d.ts +4 -0
  205. package/lib/typescript/models/interfaces.d.ts.map +1 -1
  206. package/lib/typescript/ui/components/GroupedItem.d.ts.map +1 -1
  207. package/lib/typescript/ui/components/Header.d.ts.map +1 -1
  208. package/lib/typescript/ui/components/OxyProvider.d.ts +1 -1
  209. package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -1
  210. package/lib/typescript/ui/components/ProfileCard.d.ts.map +1 -1
  211. package/lib/typescript/ui/components/StepBasedScreen.d.ts +2 -1
  212. package/lib/typescript/ui/components/StepBasedScreen.d.ts.map +1 -1
  213. package/lib/typescript/ui/components/internal/GroupedPillButtons.d.ts.map +1 -1
  214. package/lib/typescript/ui/components/internal/PinInput.d.ts +6 -3
  215. package/lib/typescript/ui/components/internal/PinInput.d.ts.map +1 -1
  216. package/lib/typescript/ui/context/OxyContext.d.ts +7 -4
  217. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  218. package/lib/typescript/ui/hooks/useI18n.d.ts +5 -0
  219. package/lib/typescript/ui/hooks/useI18n.d.ts.map +1 -0
  220. package/lib/typescript/ui/navigation/OxyRouter.d.ts.map +1 -1
  221. package/lib/typescript/ui/navigation/routes.d.ts +9 -0
  222. package/lib/typescript/ui/navigation/routes.d.ts.map +1 -0
  223. package/lib/typescript/ui/navigation/types.d.ts +24 -10
  224. package/lib/typescript/ui/navigation/types.d.ts.map +1 -1
  225. package/lib/typescript/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  226. package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  227. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  228. package/lib/typescript/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
  229. package/lib/typescript/ui/screens/FeedbackScreen.d.ts.map +1 -1
  230. package/lib/typescript/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  231. package/lib/typescript/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  232. package/lib/typescript/ui/screens/ProfileScreen.d.ts.map +1 -1
  233. package/lib/typescript/ui/screens/RecoverAccountScreen.d.ts.map +1 -1
  234. package/lib/typescript/ui/screens/SignInScreen.d.ts.map +1 -1
  235. package/lib/typescript/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  236. package/lib/typescript/ui/screens/internal/SignInPasswordStep.d.ts +2 -1
  237. package/lib/typescript/ui/screens/internal/SignInPasswordStep.d.ts.map +1 -1
  238. package/lib/typescript/ui/screens/internal/SignInUsernameStep.d.ts.map +1 -1
  239. package/lib/typescript/ui/screens/karma/KarmaAboutScreen.d.ts.map +1 -1
  240. package/lib/typescript/ui/screens/karma/KarmaCenterScreen.d.ts.map +1 -1
  241. package/lib/typescript/ui/screens/karma/KarmaFAQScreen.d.ts.map +1 -1
  242. package/lib/typescript/ui/screens/karma/KarmaLeaderboardScreen.d.ts.map +1 -1
  243. package/lib/typescript/ui/screens/karma/KarmaRewardsScreen.d.ts.map +1 -1
  244. package/lib/typescript/ui/screens/karma/KarmaRulesScreen.d.ts.map +1 -1
  245. package/lib/typescript/ui/screens/steps/RecoverRequestStep.d.ts +4 -1
  246. package/lib/typescript/ui/screens/steps/RecoverRequestStep.d.ts.map +1 -1
  247. package/lib/typescript/ui/screens/steps/RecoverResetPasswordStep.d.ts +24 -0
  248. package/lib/typescript/ui/screens/steps/RecoverResetPasswordStep.d.ts.map +1 -0
  249. package/lib/typescript/ui/screens/steps/RecoverSuccessStep.d.ts +2 -1
  250. package/lib/typescript/ui/screens/steps/RecoverSuccessStep.d.ts.map +1 -1
  251. package/lib/typescript/ui/screens/steps/RecoverVerifyStep.d.ts +3 -1
  252. package/lib/typescript/ui/screens/steps/RecoverVerifyStep.d.ts.map +1 -1
  253. package/lib/typescript/ui/screens/steps/SignInPasswordStep.d.ts +1 -0
  254. package/lib/typescript/ui/screens/steps/SignInPasswordStep.d.ts.map +1 -1
  255. package/lib/typescript/ui/screens/steps/SignInTotpStep.d.ts +19 -0
  256. package/lib/typescript/ui/screens/steps/SignInTotpStep.d.ts.map +1 -0
  257. package/lib/typescript/ui/screens/steps/SignInUsernameStep.d.ts +2 -1
  258. package/lib/typescript/ui/screens/steps/SignInUsernameStep.d.ts.map +1 -1
  259. package/lib/typescript/ui/screens/steps/SignUpIdentityStep.d.ts +2 -1
  260. package/lib/typescript/ui/screens/steps/SignUpIdentityStep.d.ts.map +1 -1
  261. package/lib/typescript/ui/screens/steps/SignUpSecurityStep.d.ts +2 -1
  262. package/lib/typescript/ui/screens/steps/SignUpSecurityStep.d.ts.map +1 -1
  263. package/lib/typescript/ui/screens/steps/SignUpSummaryStep.d.ts +2 -1
  264. package/lib/typescript/ui/screens/steps/SignUpSummaryStep.d.ts.map +1 -1
  265. package/lib/typescript/ui/screens/steps/SignUpWelcomeStep.d.ts +2 -1
  266. package/lib/typescript/ui/screens/steps/SignUpWelcomeStep.d.ts.map +1 -1
  267. package/lib/typescript/ui/styles/authStyles.d.ts +0 -1
  268. package/lib/typescript/ui/styles/authStyles.d.ts.map +1 -1
  269. package/lib/typescript/utils/validationUtils.d.ts.map +1 -1
  270. package/package.json +49 -15
  271. package/src/core/OxyServices.ts +138 -19
  272. package/src/i18n/index.ts +39 -0
  273. package/src/i18n/locales/en-US.json +681 -0
  274. package/src/i18n/locales/es-ES.json +689 -0
  275. package/src/models/interfaces.ts +6 -1
  276. package/src/ui/components/GroupedItem.tsx +2 -1
  277. package/src/ui/components/Header.tsx +4 -3
  278. package/src/ui/components/OxyProvider.tsx +105 -112
  279. package/src/ui/components/ProfileCard.tsx +5 -1
  280. package/src/ui/components/Section.tsx +1 -1
  281. package/src/ui/components/StepBasedScreen.tsx +16 -13
  282. package/src/ui/components/internal/GroupedPillButtons.tsx +10 -6
  283. package/src/ui/components/internal/PinInput.tsx +15 -6
  284. package/src/ui/context/OxyContext.tsx +123 -20
  285. package/src/ui/hooks/useI18n.ts +12 -0
  286. package/src/ui/navigation/OxyRouter.tsx +15 -134
  287. package/src/ui/navigation/routes.ts +153 -0
  288. package/src/ui/navigation/types.ts +28 -10
  289. package/src/ui/screens/AccountCenterScreen.tsx +47 -45
  290. package/src/ui/screens/AccountOverviewScreen.tsx +68 -70
  291. package/src/ui/screens/AccountSettingsScreen.tsx +265 -41
  292. package/src/ui/screens/AccountSwitcherScreen.tsx +35 -33
  293. package/src/ui/screens/FeedbackScreen.tsx +39 -37
  294. package/src/ui/screens/LanguageSelectorScreen.tsx +99 -70
  295. package/src/ui/screens/PaymentGatewayScreen.tsx +5 -5
  296. package/src/ui/screens/PremiumSubscriptionScreen.tsx +56 -54
  297. package/src/ui/screens/ProfileScreen.tsx +14 -8
  298. package/src/ui/screens/RecoverAccountScreen.tsx +29 -8
  299. package/src/ui/screens/SignInScreen.tsx +39 -30
  300. package/src/ui/screens/WelcomeNewUserScreen.tsx +31 -17
  301. package/src/ui/screens/internal/SignInPasswordStep.tsx +11 -8
  302. package/src/ui/screens/internal/SignInUsernameStep.tsx +10 -8
  303. package/src/ui/screens/karma/KarmaAboutScreen.tsx +23 -11
  304. package/src/ui/screens/karma/KarmaCenterScreen.tsx +21 -11
  305. package/src/ui/screens/karma/KarmaFAQScreen.tsx +15 -33
  306. package/src/ui/screens/karma/KarmaLeaderboardScreen.tsx +6 -4
  307. package/src/ui/screens/karma/KarmaRewardsScreen.tsx +28 -10
  308. package/src/ui/screens/karma/KarmaRulesScreen.tsx +5 -3
  309. package/src/ui/screens/steps/RecoverRequestStep.tsx +20 -17
  310. package/src/ui/screens/steps/RecoverResetPasswordStep.tsx +133 -0
  311. package/src/ui/screens/steps/RecoverSuccessStep.tsx +12 -19
  312. package/src/ui/screens/steps/RecoverVerifyStep.tsx +15 -24
  313. package/src/ui/screens/steps/SignInPasswordStep.tsx +19 -6
  314. package/src/ui/screens/steps/SignInTotpStep.tsx +129 -0
  315. package/src/ui/screens/steps/SignInUsernameStep.tsx +11 -10
  316. package/src/ui/screens/steps/SignUpIdentityStep.tsx +10 -11
  317. package/src/ui/screens/steps/SignUpSecurityStep.tsx +10 -11
  318. package/src/ui/screens/steps/SignUpSummaryStep.tsx +24 -9
  319. package/src/ui/screens/steps/SignUpWelcomeStep.tsx +8 -14
  320. package/src/ui/styles/authStyles.ts +0 -1
  321. package/src/utils/deviceManager.ts +1 -1
  322. package/src/utils/validationUtils.ts +5 -3
@@ -7,6 +7,7 @@ import { fontFamilies } from '../styles/fonts';
7
7
  import { toast } from '../../lib/sonner';
8
8
  import { confirmAction } from '../utils/confirmAction';
9
9
  import { Ionicons } from '@expo/vector-icons';
10
+ import { useI18n } from '../hooks/useI18n';
10
11
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
12
  const PremiumSubscriptionScreen = ({
12
13
  onClose,
@@ -29,6 +30,9 @@ const PremiumSubscriptionScreen = ({
29
30
  const [currentAppPackage, setCurrentAppPackage] = useState('mention'); // Default to mention for demo
30
31
 
31
32
  const isDarkTheme = theme === 'dark';
33
+ const {
34
+ t
35
+ } = useI18n();
32
36
  const textColor = isDarkTheme ? '#FFFFFF' : '#000000';
33
37
  const backgroundColor = isDarkTheme ? '#121212' : '#FFFFFF';
34
38
  const secondaryBackgroundColor = isDarkTheme ? '#222222' : '#F5F5F5';
@@ -291,14 +295,16 @@ const PremiumSubscriptionScreen = ({
291
295
  const selectedPlan = mockPlans.find(plan => plan.id === planId);
292
296
  if (!selectedPlan?.applicableApps.includes(currentAppPackage)) {
293
297
  console.log(`❌ Subscription blocked: Plan "${selectedPlan?.name}" not available for app "${currentAppPackage}"`);
294
- toast.error(`This plan is not available for the current app (${currentAppPackage})`);
298
+ toast.error(t('premium.toasts.planUnavailable', {
299
+ app: currentAppPackage
300
+ }) || `This plan is not available for the current app (${currentAppPackage})`);
295
301
  return;
296
302
  }
297
303
 
298
304
  // Special restriction for Mention+ plan - only available in mention app
299
305
  if (planId === 'mention-plus' && currentAppPackage !== 'mention') {
300
306
  console.log(`❌ Subscription blocked: Mention+ plan requires app to be "mention", current app is "${currentAppPackage}"`);
301
- toast.error('Mention+ is only available in the Mention app');
307
+ toast.error(t('premium.toasts.mentionOnly') || 'Mention+ is only available in the Mention app');
302
308
  return;
303
309
  }
304
310
  console.log(`✅ Subscription allowed: Plan "${selectedPlan.name}" is available for app "${currentAppPackage}"`);
@@ -306,7 +312,7 @@ const PremiumSubscriptionScreen = ({
306
312
 
307
313
  // Mock payment processing
308
314
  await new Promise(resolve => setTimeout(resolve, 2000));
309
- toast.success('Subscription activated successfully!');
315
+ toast.success(t('premium.toasts.activated') || 'Subscription activated successfully!');
310
316
 
311
317
  // Mock subscription update
312
318
  setSubscription({
@@ -322,22 +328,22 @@ const PremiumSubscriptionScreen = ({
322
328
  loadSubscriptionData();
323
329
  } catch (error) {
324
330
  console.error('Payment failed:', error);
325
- toast.error('Payment failed. Please try again.');
331
+ toast.error(t('premium.toasts.paymentFailed') || 'Payment failed. Please try again.');
326
332
  } finally {
327
333
  setProcessingPayment(false);
328
334
  }
329
335
  };
330
336
  const handleCancelSubscription = () => {
331
- confirmAction('Are you sure you want to cancel your subscription? You will lose access to premium features at the end of your current billing period.', async () => {
337
+ confirmAction(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.', async () => {
332
338
  try {
333
339
  // Mock cancellation
334
340
  setSubscription(prev => prev ? {
335
341
  ...prev,
336
342
  cancelAtPeriodEnd: true
337
343
  } : null);
338
- toast.success('Subscription will be canceled at the end of the billing period');
344
+ toast.success(t('premium.toasts.willCancel') || 'Subscription will be canceled at the end of the billing period');
339
345
  } catch (error) {
340
- toast.error('Failed to cancel subscription');
346
+ toast.error(t('premium.toasts.cancelFailed') || 'Failed to cancel subscription');
341
347
  }
342
348
  });
343
349
  };
@@ -347,9 +353,9 @@ const PremiumSubscriptionScreen = ({
347
353
  ...prev,
348
354
  cancelAtPeriodEnd: false
349
355
  } : null);
350
- toast.success('Subscription reactivated successfully');
356
+ toast.success(t('premium.toasts.reactivated') || 'Subscription reactivated successfully');
351
357
  } catch (error) {
352
- toast.error('Failed to reactivate subscription');
358
+ toast.error(t('premium.toasts.reactivateFailed') || 'Failed to reactivate subscription');
353
359
  }
354
360
  };
355
361
  const formatPrice = (price, currency, interval) => {
@@ -393,25 +399,31 @@ const PremiumSubscriptionScreen = ({
393
399
  isSubscribed: true
394
400
  } : feature));
395
401
  const feature = individualFeatures.find(f => f.id === featureId);
396
- toast.success(`Subscribed to ${feature?.name} successfully!`);
402
+ toast.success(t('premium.toasts.featureSubscribed', {
403
+ name: feature?.name ?? ''
404
+ }) ?? `Subscribed to ${feature?.name} successfully!`);
397
405
  } catch (error) {
398
406
  console.error('Feature subscription failed:', error);
399
- toast.error('Feature subscription failed. Please try again.');
407
+ toast.error(t('premium.toasts.featureSubscribeFailed') || 'Feature subscription failed. Please try again.');
400
408
  } finally {
401
409
  setProcessingPayment(false);
402
410
  }
403
411
  };
404
412
  const handleFeatureUnsubscribe = async featureId => {
405
413
  const feature = individualFeatures.find(f => f.id === featureId);
406
- confirmAction(`Are you sure you want to unsubscribe from ${feature?.name}?`, async () => {
414
+ confirmAction(t('premium.confirms.unsubscribeFeature', {
415
+ name: feature?.name ?? ''
416
+ }) ?? `Are you sure you want to unsubscribe from ${feature?.name}?`, async () => {
407
417
  try {
408
418
  setIndividualFeatures(prev => prev.map(f => f.id === featureId ? {
409
419
  ...f,
410
420
  isSubscribed: false
411
421
  } : f));
412
- toast.success(`Unsubscribed from ${feature?.name}`);
422
+ toast.success(t('premium.toasts.featureUnsubscribed', {
423
+ name: feature?.name ?? ''
424
+ }) ?? `Unsubscribed from ${feature?.name}`);
413
425
  } catch (error) {
414
- toast.error('Failed to unsubscribe from feature');
426
+ toast.error(t('premium.toasts.featureUnsubscribeFailed') || 'Failed to unsubscribe from feature');
415
427
  }
416
428
  });
417
429
  };
@@ -445,12 +457,14 @@ const PremiumSubscriptionScreen = ({
445
457
  style: [styles.headerTitle, {
446
458
  color: textColor
447
459
  }],
448
- children: "Oxy+ Subscriptions"
449
- }), /*#__PURE__*/_jsxs(Text, {
460
+ children: t('premium.title') || 'Oxy+ Subscriptions'
461
+ }), /*#__PURE__*/_jsx(Text, {
450
462
  style: [styles.currentAppText, {
451
463
  color: isDarkTheme ? '#BBBBBB' : '#666666'
452
464
  }],
453
- children: ["for ", getAppDisplayName(currentAppPackage)]
465
+ children: t('premium.forApp', {
466
+ app: getAppDisplayName(currentAppPackage)
467
+ }) || `for ${getAppDisplayName(currentAppPackage)}`
454
468
  })]
455
469
  }), onClose && /*#__PURE__*/_jsx(TouchableOpacity, {
456
470
  style: styles.closeButton,
@@ -474,7 +488,7 @@ const PremiumSubscriptionScreen = ({
474
488
  style: [styles.sectionTitle, {
475
489
  color: textColor
476
490
  }],
477
- children: "Current Subscription"
491
+ children: t('premium.current.title') || 'Current Subscription'
478
492
  }), /*#__PURE__*/_jsxs(View, {
479
493
  style: [styles.currentSubscriptionCard, {
480
494
  backgroundColor: secondaryBackgroundColor,
@@ -503,22 +517,26 @@ const PremiumSubscriptionScreen = ({
503
517
  children: subscription.status.toUpperCase()
504
518
  })
505
519
  })]
506
- }), /*#__PURE__*/_jsxs(Text, {
520
+ }), /*#__PURE__*/_jsx(Text, {
507
521
  style: [styles.subscriptionDetail, {
508
522
  color: isDarkTheme ? '#BBBBBB' : '#666666'
509
523
  }],
510
- children: ["Renews on ", new Date(subscription.currentPeriodEnd).toLocaleDateString()]
524
+ children: t('premium.current.renewsOn', {
525
+ date: new Date(subscription.currentPeriodEnd).toLocaleDateString()
526
+ }) || `Renews on ${new Date(subscription.currentPeriodEnd).toLocaleDateString()}`
511
527
  }), subscription.cancelAtPeriodEnd && /*#__PURE__*/_jsxs(View, {
512
528
  style: styles.cancelNotice,
513
529
  children: [/*#__PURE__*/_jsx(Ionicons, {
514
530
  name: "warning",
515
531
  size: 16,
516
532
  color: warningColor
517
- }), /*#__PURE__*/_jsxs(Text, {
533
+ }), /*#__PURE__*/_jsx(Text, {
518
534
  style: [styles.cancelText, {
519
535
  color: warningColor
520
536
  }],
521
- children: ["Subscription will cancel on ", new Date(subscription.currentPeriodEnd).toLocaleDateString()]
537
+ children: t('premium.current.willCancelOn', {
538
+ date: new Date(subscription.currentPeriodEnd).toLocaleDateString()
539
+ }) || `Subscription will cancel on ${new Date(subscription.currentPeriodEnd).toLocaleDateString()}`
522
540
  })]
523
541
  }), /*#__PURE__*/_jsxs(View, {
524
542
  style: styles.subscriptionActions,
@@ -529,7 +547,7 @@ const PremiumSubscriptionScreen = ({
529
547
  onPress: handleReactivateSubscription,
530
548
  children: /*#__PURE__*/_jsx(Text, {
531
549
  style: styles.actionButtonText,
532
- children: "Reactivate"
550
+ children: t('premium.actions.reactivate') || 'Reactivate'
533
551
  })
534
552
  }) : /*#__PURE__*/_jsx(TouchableOpacity, {
535
553
  style: [styles.actionButton, {
@@ -538,7 +556,7 @@ const PremiumSubscriptionScreen = ({
538
556
  onPress: handleCancelSubscription,
539
557
  children: /*#__PURE__*/_jsx(Text, {
540
558
  style: styles.actionButtonText,
541
- children: "Cancel Subscription"
559
+ children: t('premium.actions.cancelSubBtn') || 'Cancel Subscription'
542
560
  })
543
561
  }), /*#__PURE__*/_jsx(TouchableOpacity, {
544
562
  style: [styles.actionButton, styles.secondaryButton, {
@@ -548,7 +566,7 @@ const PremiumSubscriptionScreen = ({
548
566
  style: [styles.actionButtonText, {
549
567
  color: textColor
550
568
  }],
551
- children: "Manage Billing"
569
+ children: t('premium.actions.manageBilling') || 'Manage Billing'
552
570
  })
553
571
  })]
554
572
  })]
@@ -568,7 +586,7 @@ const PremiumSubscriptionScreen = ({
568
586
  style: [styles.billingOptionText, {
569
587
  color: billingInterval === 'month' ? '#FFFFFF' : textColor
570
588
  }],
571
- children: "Monthly"
589
+ children: t('premium.billing.monthly') || 'Monthly'
572
590
  })
573
591
  }), /*#__PURE__*/_jsx(TouchableOpacity, {
574
592
  style: [styles.billingOption, billingInterval === 'year' && {
@@ -579,14 +597,14 @@ const PremiumSubscriptionScreen = ({
579
597
  style: [styles.billingOptionText, {
580
598
  color: billingInterval === 'year' ? '#FFFFFF' : textColor
581
599
  }],
582
- children: "Yearly"
600
+ children: t('premium.billing.yearly') || 'Yearly'
583
601
  })
584
602
  })]
585
603
  }), billingInterval === 'year' && /*#__PURE__*/_jsx(Text, {
586
604
  style: [styles.savingsText, {
587
605
  color: successColor
588
606
  }],
589
- children: "\uD83D\uDCB0 Save 20% with yearly billing"
607
+ children: t('premium.billing.saveYearly') || '💰 Save 20% with yearly billing'
590
608
  })]
591
609
  });
592
610
  const renderPlanCard = plan => {
@@ -597,12 +615,16 @@ const PremiumSubscriptionScreen = ({
597
615
  const isAvailableForCurrentApp = plan.applicableApps.includes(currentAppPackage);
598
616
  const getAppScopeText = () => {
599
617
  if (plan.appScope === 'ecosystem') {
600
- return 'Works across all Oxy apps';
618
+ return t('premium.plan.scope.allApps') || 'Works across all Oxy apps';
601
619
  } else if (isAppSpecific) {
602
620
  const appName = plan.applicableApps[0];
603
- return `Exclusive to ${appName} app`;
621
+ return t('premium.plan.scope.exclusive', {
622
+ app: appName
623
+ }) || `Exclusive to ${appName} app`;
604
624
  } else {
605
- return `Available in: ${plan.applicableApps.join(', ')}`;
625
+ return t('premium.plan.scope.availableIn', {
626
+ apps: plan.applicableApps.join(', ')
627
+ }) || `Available in: ${plan.applicableApps.join(', ')}`;
606
628
  }
607
629
  };
608
630
  const getAvailabilityStatus = () => {
@@ -610,7 +632,9 @@ const PremiumSubscriptionScreen = ({
610
632
  const requiredApp = plan.applicableApps[0];
611
633
  return {
612
634
  available: false,
613
- reason: `Only available in ${requiredApp} app`
635
+ reason: t('premium.plan.scope.exclusive', {
636
+ app: requiredApp
637
+ }) || `Only available in ${requiredApp} app`
614
638
  };
615
639
  }
616
640
  return {
@@ -643,7 +667,7 @@ const PremiumSubscriptionScreen = ({
643
667
  }],
644
668
  children: /*#__PURE__*/_jsx(Text, {
645
669
  style: styles.appSpecificText,
646
- children: isAvailableForCurrentApp ? 'App Exclusive' : 'Not Available'
670
+ children: isAvailableForCurrentApp ? t('premium.plan.badge.appExclusive') || 'App Exclusive' : t('premium.plan.badge.notAvailable') || 'Not Available'
647
671
  })
648
672
  }), /*#__PURE__*/_jsxs(View, {
649
673
  style: styles.planHeader,
@@ -675,11 +699,13 @@ const PremiumSubscriptionScreen = ({
675
699
  color: textColor
676
700
  }],
677
701
  children: pricing.formatted
678
- }), /*#__PURE__*/_jsxs(Text, {
702
+ }), /*#__PURE__*/_jsx(Text, {
679
703
  style: [styles.planInterval, {
680
704
  color: isDarkTheme ? '#BBBBBB' : '#666666'
681
705
  }],
682
- children: ["per ", pricing.interval]
706
+ children: t('premium.plan.perInterval', {
707
+ interval: pricing.interval
708
+ }) || `per ${pricing.interval}`
683
709
  })]
684
710
  }), /*#__PURE__*/_jsx(View, {
685
711
  style: styles.planFeatures,
@@ -702,7 +728,7 @@ const PremiumSubscriptionScreen = ({
702
728
  }],
703
729
  children: /*#__PURE__*/_jsx(Text, {
704
730
  style: styles.currentPlanText,
705
- children: "Current Plan"
731
+ children: t('premium.plan.current') || 'Current Plan'
706
732
  })
707
733
  }) : !availability.available ? /*#__PURE__*/_jsx(View, {
708
734
  style: [styles.unavailablePlanButton, {
@@ -712,7 +738,7 @@ const PremiumSubscriptionScreen = ({
712
738
  style: [styles.unavailablePlanText, {
713
739
  color: isDarkTheme ? '#888888' : '#999999'
714
740
  }],
715
- children: "Not Available in Current App"
741
+ children: t('premium.plan.notAvailableInApp') || 'Not Available in Current App'
716
742
  })
717
743
  }) : /*#__PURE__*/_jsx(TouchableOpacity, {
718
744
  style: [styles.selectPlanButton, {
@@ -723,11 +749,13 @@ const PremiumSubscriptionScreen = ({
723
749
  children: processingPayment ? /*#__PURE__*/_jsx(ActivityIndicator, {
724
750
  color: "#FFFFFF",
725
751
  size: "small"
726
- }) : /*#__PURE__*/_jsxs(Text, {
752
+ }) : /*#__PURE__*/_jsx(Text, {
727
753
  style: [styles.selectPlanText, {
728
754
  color: plan.isPopular ? '#FFFFFF' : textColor
729
755
  }],
730
- children: ["Subscribe to ", plan.name]
756
+ children: t('premium.actions.subscribeTo', {
757
+ name: plan.name
758
+ }) || `Subscribe to ${plan.name}`
731
759
  })
732
760
  })]
733
761
  }, plan.id);
@@ -748,7 +776,7 @@ const PremiumSubscriptionScreen = ({
748
776
  style: [styles.tabText, {
749
777
  color: activeTab === 'plans' ? primaryColor : textColor
750
778
  }],
751
- children: "Full Plans"
779
+ children: t('premium.tabs.plans') || 'Full Plans'
752
780
  })
753
781
  }), /*#__PURE__*/_jsx(TouchableOpacity, {
754
782
  style: [styles.tab, activeTab === 'features' && {
@@ -760,7 +788,7 @@ const PremiumSubscriptionScreen = ({
760
788
  style: [styles.tabText, {
761
789
  color: activeTab === 'features' ? primaryColor : textColor
762
790
  }],
763
- children: "Individual Features"
791
+ children: t('premium.tabs.features') || 'Individual Features'
764
792
  })
765
793
  })]
766
794
  })
@@ -804,9 +832,11 @@ const PremiumSubscriptionScreen = ({
804
832
  };
805
833
  const getAppScopeText = () => {
806
834
  if (feature.appScope === 'ecosystem') {
807
- return 'Available across all Oxy apps';
835
+ return t('premium.feature.scope.allApps');
808
836
  } else {
809
- return `Available in: ${feature.applicableApps.join(', ')}`;
837
+ return t('premium.feature.scope.availableIn', {
838
+ apps: feature.applicableApps.join(', ')
839
+ }) || `Available in: ${feature.applicableApps.join(', ')}`;
810
840
  }
811
841
  };
812
842
  return /*#__PURE__*/_jsxs(View, {
@@ -866,11 +896,13 @@ const PremiumSubscriptionScreen = ({
866
896
  color: textColor
867
897
  }],
868
898
  children: pricing.formatted
869
- }), /*#__PURE__*/_jsxs(Text, {
899
+ }), /*#__PURE__*/_jsx(Text, {
870
900
  style: [styles.featureInterval, {
871
901
  color: isDarkTheme ? '#BBBBBB' : '#666666'
872
902
  }],
873
- children: ["per ", pricing.interval]
903
+ children: t('premium.plan.perInterval', {
904
+ interval: pricing.interval
905
+ }) || `per ${pricing.interval}`
874
906
  })]
875
907
  }), isIncludedInCurrentPlan ? /*#__PURE__*/_jsxs(View, {
876
908
  style: [styles.includedInPlanButton, {
@@ -882,7 +914,7 @@ const PremiumSubscriptionScreen = ({
882
914
  color: "#FFFFFF"
883
915
  }), /*#__PURE__*/_jsx(Text, {
884
916
  style: styles.includedInPlanText,
885
- children: "Included in your plan"
917
+ children: t('premium.feature.includedInPlan') || 'Included in your plan'
886
918
  })]
887
919
  }) : isSubscribed ? /*#__PURE__*/_jsxs(View, {
888
920
  style: styles.featureActions,
@@ -896,7 +928,7 @@ const PremiumSubscriptionScreen = ({
896
928
  color: "#FFFFFF"
897
929
  }), /*#__PURE__*/_jsx(Text, {
898
930
  style: styles.subscribedText,
899
- children: "Subscribed"
931
+ children: t('premium.feature.subscribed') || 'Subscribed'
900
932
  })]
901
933
  }), /*#__PURE__*/_jsx(TouchableOpacity, {
902
934
  style: [styles.unsubscribeButton, {
@@ -907,7 +939,7 @@ const PremiumSubscriptionScreen = ({
907
939
  style: [styles.unsubscribeText, {
908
940
  color: dangerColor
909
941
  }],
910
- children: "Unsubscribe"
942
+ children: t('premium.actions.unsubscribe') || 'Unsubscribe'
911
943
  })
912
944
  })]
913
945
  }) : canPurchase ? /*#__PURE__*/_jsx(TouchableOpacity, {
@@ -921,7 +953,7 @@ const PremiumSubscriptionScreen = ({
921
953
  size: "small"
922
954
  }) : /*#__PURE__*/_jsx(Text, {
923
955
  style: styles.subscribeFeatureText,
924
- children: "Subscribe"
956
+ children: t('premium.actions.subscribe') || 'Subscribe'
925
957
  })
926
958
  }) : /*#__PURE__*/_jsx(View, {
927
959
  style: [styles.unavailableButton, {
@@ -1020,7 +1052,7 @@ const PremiumSubscriptionScreen = ({
1020
1052
  style: [styles.loadingText, {
1021
1053
  color: textColor
1022
1054
  }],
1023
- children: "Loading subscription plans..."
1055
+ children: t('premium.loading') || 'Loading subscription plans...'
1024
1056
  })]
1025
1057
  });
1026
1058
  }
@@ -1037,12 +1069,12 @@ const PremiumSubscriptionScreen = ({
1037
1069
  style: [styles.sectionTitle, {
1038
1070
  color: textColor
1039
1071
  }],
1040
- children: "Choose Your Plan"
1072
+ children: t('premium.choosePlan') || 'Choose Your Plan'
1041
1073
  }), /*#__PURE__*/_jsx(Text, {
1042
1074
  style: [styles.sectionSubtitle, {
1043
1075
  color: isDarkTheme ? '#BBBBBB' : '#666666'
1044
1076
  }],
1045
- children: "Unlock premium features and take your experience to the next level"
1077
+ children: t('premium.choosePlanSubtitle') || 'Unlock premium features and take your experience to the next level'
1046
1078
  })]
1047
1079
  }), !subscription && renderTabNavigation(), !subscription && activeTab === 'plans' && renderBillingToggle(), activeTab === 'plans' ? /*#__PURE__*/_jsxs(View, {
1048
1080
  style: styles.section,
@@ -1050,7 +1082,7 @@ const PremiumSubscriptionScreen = ({
1050
1082
  style: [styles.sectionTitle, {
1051
1083
  color: textColor
1052
1084
  }],
1053
- children: "Available Plans"
1085
+ children: t('premium.availablePlans') || 'Available Plans'
1054
1086
  }), plans.map(renderPlanCard)]
1055
1087
  }) : renderIndividualFeatures(), /*#__PURE__*/_jsxs(View, {
1056
1088
  style: styles.section,
@@ -1058,7 +1090,7 @@ const PremiumSubscriptionScreen = ({
1058
1090
  style: [styles.sectionTitle, {
1059
1091
  color: textColor
1060
1092
  }],
1061
- children: "Why Go Premium?"
1093
+ children: t('premium.why') || 'Why Go Premium?'
1062
1094
  }), /*#__PURE__*/_jsxs(View, {
1063
1095
  style: [styles.benefitsCard, {
1064
1096
  backgroundColor: secondaryBackgroundColor,
@@ -1076,12 +1108,12 @@ const PremiumSubscriptionScreen = ({
1076
1108
  style: [styles.benefitTitle, {
1077
1109
  color: textColor
1078
1110
  }],
1079
- children: "Enhanced Performance"
1111
+ children: t('premium.benefits.performance.title') || 'Enhanced Performance'
1080
1112
  }), /*#__PURE__*/_jsx(Text, {
1081
1113
  style: [styles.benefitDescription, {
1082
1114
  color: isDarkTheme ? '#BBBBBB' : '#666666'
1083
1115
  }],
1084
- children: "Faster processing and priority access to our servers"
1116
+ children: t('premium.benefits.performance.desc') || 'Faster processing and priority access to our servers'
1085
1117
  })]
1086
1118
  })]
1087
1119
  }), /*#__PURE__*/_jsxs(View, {
@@ -1096,12 +1128,12 @@ const PremiumSubscriptionScreen = ({
1096
1128
  style: [styles.benefitTitle, {
1097
1129
  color: textColor
1098
1130
  }],
1099
- children: "Advanced Security"
1131
+ children: t('premium.benefits.security.title') || 'Advanced Security'
1100
1132
  }), /*#__PURE__*/_jsx(Text, {
1101
1133
  style: [styles.benefitDescription, {
1102
1134
  color: isDarkTheme ? '#BBBBBB' : '#666666'
1103
1135
  }],
1104
- children: "Enhanced encryption and security features"
1136
+ children: t('premium.benefits.security.desc') || 'Enhanced encryption and security features'
1105
1137
  })]
1106
1138
  })]
1107
1139
  }), /*#__PURE__*/_jsxs(View, {
@@ -1116,12 +1148,12 @@ const PremiumSubscriptionScreen = ({
1116
1148
  style: [styles.benefitTitle, {
1117
1149
  color: textColor
1118
1150
  }],
1119
- children: "Priority Support"
1151
+ children: t('premium.benefits.support.title') || 'Priority Support'
1120
1152
  }), /*#__PURE__*/_jsx(Text, {
1121
1153
  style: [styles.benefitDescription, {
1122
1154
  color: isDarkTheme ? '#BBBBBB' : '#666666'
1123
1155
  }],
1124
- children: "Get help faster with our premium support team"
1156
+ children: t('premium.benefits.support.desc') || 'Get help faster with our premium support team'
1125
1157
  })]
1126
1158
  })]
1127
1159
  })]